diff --git a/Pixels Composer.yyp b/Pixels Composer.yyp index 92c43d90e..68063684f 100644 --- a/Pixels Composer.yyp +++ b/Pixels Composer.yyp @@ -33,10 +33,11 @@ {"id":{"name":"node_2d_light","path":"scripts/node_2d_light/node_2d_light.yy",},"order":40,}, {"id":{"name":"s_node_color","path":"sprites/s_node_color/s_node_color.yy",},"order":0,}, {"id":{"name":"s_node_image_gif","path":"sprites/s_node_image_gif/s_node_image_gif.yy",},"order":7,}, - {"id":{"name":"node_VFX_effect_wind","path":"scripts/node_VFX_effect_wind/node_VFX_effect_wind.yy",},"order":7,}, + {"id":{"name":"node_VFX_effect_wind","path":"scripts/node_VFX_effect_wind/node_VFX_effect_wind.yy",},"order":5,}, {"id":{"name":"s_node_3d_obj","path":"sprites/s_node_3d_obj/s_node_3d_obj.yy",},"order":3,}, {"id":{"name":"s_node_scale","path":"sprites/s_node_scale/s_node_scale.yy",},"order":6,}, {"id":{"name":"sh_color_picker_value","path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",},"order":34,}, + {"id":{"name":"textInput","path":"scripts/textInput/textInput.yy",},"order":24,}, {"id":{"name":"node_dither","path":"scripts/node_dither/node_dither.yy",},"order":11,}, {"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},"order":7,}, {"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},"order":8,}, @@ -82,6 +83,7 @@ {"id":{"name":"colToVec4","path":"scripts/colToVec4/colToVec4.yy",},"order":0,}, {"id":{"name":"s_node_vfx","path":"sprites/s_node_vfx/s_node_vfx.yy",},"order":9,}, {"id":{"name":"draw_surface_blend","path":"scripts/draw_surface_blend/draw_surface_blend.yy",},"order":1,}, + {"id":{"name":"node_string_get_char","path":"scripts/node_string_get_char/node_string_get_char.yy",},"order":19,}, {"id":{"name":"sh_simplex","path":"shaders/sh_simplex/sh_simplex.yy",},"order":22,}, {"id":{"name":"node_noise_grid_tri","path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",},"order":25,}, {"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},"order":0,}, @@ -117,7 +119,7 @@ {"id":{"name":"o_dialog_release_note","path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},"order":16,}, {"id":{"name":"panel_inspector","path":"scripts/panel_inspector/panel_inspector.yy",},"order":0,}, {"id":{"name":"node_padding","path":"scripts/node_padding/node_padding.yy",},"order":10,}, - {"id":{"name":"node_VFX_group","path":"scripts/node_VFX_group/node_VFX_group.yy",},"order":6,}, + {"id":{"name":"node_VFX_group","path":"scripts/node_VFX_group/node_VFX_group.yy",},"order":4,}, {"id":{"name":"s_node_vfx_attract","path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",},"order":8,}, {"id":{"name":"s_node_pixel_cloud","path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},"order":30,}, {"id":{"name":"node_noise_grid","path":"scripts/node_noise_grid/node_noise_grid.yy",},"order":8,}, @@ -126,7 +128,7 @@ {"id":{"name":"s_node_compose","path":"sprites/s_node_compose/s_node_compose.yy",},"order":1,}, {"id":{"name":"s_node_switch","path":"sprites/s_node_switch/s_node_switch.yy",},"order":20,}, {"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},"order":2,}, - {"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},"order":3,}, + {"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},"order":2,}, {"id":{"name":"s_menu_black","path":"sprites/s_menu_black/s_menu_black.yy",},"order":2,}, {"id":{"name":"sh_blend_multiply","path":"shaders/sh_blend_multiply/sh_blend_multiply.yy",},"order":0,}, {"id":{"name":"node_bevel","path":"scripts/node_bevel/node_bevel.yy",},"order":3,}, @@ -136,6 +138,7 @@ {"id":{"name":"node_displacement","path":"scripts/node_displacement/node_displacement.yy",},"order":8,}, {"id":{"name":"text_file","path":"scripts/text_file/text_file.yy",},"order":5,}, {"id":{"name":"s_node_vfx_wind","path":"sprites/s_node_vfx_wind/s_node_vfx_wind.yy",},"order":3,}, + {"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},"order":8,}, {"id":{"name":"s_node_vec4","path":"sprites/s_node_vec4/s_node_vec4.yy",},"order":8,}, {"id":{"name":"buttonGroup","path":"scripts/buttonGroup/buttonGroup.yy",},"order":5,}, {"id":{"name":"s_node_image_sheet","path":"sprites/s_node_image_sheet/s_node_image_sheet.yy",},"order":10,}, @@ -146,6 +149,7 @@ {"id":{"name":"node_color_from_rgb","path":"scripts/node_color_from_rgb/node_color_from_rgb.yy",},"order":5,}, {"id":{"name":"node_transform","path":"scripts/node_transform/node_transform.yy",},"order":0,}, {"id":{"name":"curveBox","path":"scripts/curveBox/curveBox.yy",},"order":8,}, + {"id":{"name":"preview_overlay_vector","path":"scripts/preview_overlay_vector/preview_overlay_vector.yy",},"order":2,}, {"id":{"name":"sh_gradient_display","path":"shaders/sh_gradient_display/sh_gradient_display.yy",},"order":18,}, {"id":{"name":"node_json_file_write","path":"scripts/node_json_file_write/node_json_file_write.yy",},"order":12,}, {"id":{"name":"s_node_chromatic_abarration","path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},"order":12,}, @@ -178,7 +182,7 @@ {"id":{"name":"sh_vertex_normal_pass","path":"shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.yy",},"order":5,}, {"id":{"name":"surface_valid","path":"scripts/surface_valid/surface_valid.yy",},"order":6,}, {"id":{"name":"sh_blur_radial","path":"shaders/sh_blur_radial/sh_blur_radial.yy",},"order":5,}, - {"id":{"name":"node_VFX_renderer","path":"scripts/node_VFX_renderer/node_VFX_renderer.yy",},"order":5,}, + {"id":{"name":"node_VFX_renderer","path":"scripts/node_VFX_renderer/node_VFX_renderer.yy",},"order":3,}, {"id":{"name":"s_node_invert","path":"sprites/s_node_invert/s_node_invert.yy",},"order":25,}, {"id":{"name":"node_array_get","path":"scripts/node_array_get/node_array_get.yy",},"order":10,}, {"id":{"name":"node_lua_compute","path":"scripts/node_lua_compute/node_lua_compute.yy",},"order":7,}, @@ -206,7 +210,9 @@ {"id":{"name":"node_combine_rgb","path":"scripts/node_combine_rgb/node_combine_rgb.yy",},"order":49,}, {"id":{"name":"checkbox","path":"scripts/checkbox/checkbox.yy",},"order":7,}, {"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},"order":12,}, + {"id":{"name":"s_node_random","path":"sprites/s_node_random/s_node_random.yy",},"order":24,}, {"id":{"name":"s_node_color_remove","path":"sprites/s_node_color_remove/s_node_color_remove.yy",},"order":6,}, + {"id":{"name":"sh_average","path":"shaders/sh_average/sh_average.yy",},"order":7,}, {"id":{"name":"node_mirror","path":"scripts/node_mirror/node_mirror.yy",},"order":3,}, {"id":{"name":"node_corner","path":"scripts/node_corner/node_corner.yy",},"order":35,}, {"id":{"name":"vertex_function","path":"scripts/vertex_function/vertex_function.yy",},"order":0,}, @@ -216,6 +222,7 @@ {"id":{"name":"s_node_threshold","path":"sprites/s_node_threshold/s_node_threshold.yy",},"order":45,}, {"id":{"name":"node_condition","path":"scripts/node_condition/node_condition.yy",},"order":0,}, {"id":{"name":"sh_draw_normal","path":"shaders/sh_draw_normal/sh_draw_normal.yy",},"order":12,}, + {"id":{"name":"preview_overlay_rotation","path":"scripts/preview_overlay_rotation/preview_overlay_rotation.yy",},"order":1,}, {"id":{"name":"sh_seperate_shape_index","path":"shaders/sh_seperate_shape_index/sh_seperate_shape_index.yy",},"order":0,}, {"id":{"name":"node_registry","path":"scripts/node_registry/node_registry.yy",},"order":5,}, {"id":{"name":"sh_checkerboard","path":"shaders/sh_checkerboard/sh_checkerboard.yy",},"order":12,}, @@ -233,7 +240,7 @@ {"id":{"name":"node_pin","path":"scripts/node_pin/node_pin.yy",},"order":2,}, {"id":{"name":"sh_noise","path":"shaders/sh_noise/sh_noise.yy",},"order":16,}, {"id":{"name":"sh_skew","path":"shaders/sh_skew/sh_skew.yy",},"order":6,}, - {"id":{"name":"node_VFX_effect_destroy","path":"scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.yy",},"order":14,}, + {"id":{"name":"node_VFX_effect_destroy","path":"scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.yy",},"order":12,}, {"id":{"name":"sh_bw","path":"shaders/sh_bw/sh_bw.yy",},"order":1,}, {"id":{"name":"real_comparison","path":"scripts/real_comparison/real_comparison.yy",},"order":1,}, {"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":16,}, @@ -252,9 +259,9 @@ {"id":{"name":"sh_threshold","path":"shaders/sh_threshold/sh_threshold.yy",},"order":48,}, {"id":{"name":"ac_flash","path":"animcurves/ac_flash/ac_flash.yy",},"order":0,}, {"id":{"name":"o_dialog_drag_folder","path":"objects/o_dialog_drag_folder/o_dialog_drag_folder.yy",},"order":2,}, - {"id":{"name":"node_VFX_effect_repel","path":"scripts/node_VFX_effect_repel/node_VFX_effect_repel.yy",},"order":11,}, + {"id":{"name":"node_VFX_effect_repel","path":"scripts/node_VFX_effect_repel/node_VFX_effect_repel.yy",},"order":9,}, {"id":{"name":"s_node_alpha_cut","path":"sprites/s_node_alpha_cut/s_node_alpha_cut.yy",},"order":1,}, - {"id":{"name":"node_VFX_effect_attract","path":"scripts/node_VFX_effect_attract/node_VFX_effect_attract.yy",},"order":10,}, + {"id":{"name":"node_VFX_effect_attract","path":"scripts/node_VFX_effect_attract/node_VFX_effect_attract.yy",},"order":8,}, {"id":{"name":"s_node_text_splice","path":"sprites/s_node_text_splice/s_node_text_splice.yy",},"order":17,}, {"id":{"name":"sh_blend_multiply_alpha","path":"shaders/sh_blend_multiply_alpha/sh_blend_multiply_alpha.yy",},"order":4,}, {"id":{"name":"node_3d_object_transform","path":"scripts/node_3d_object_transform/node_3d_object_transform.yy",},"order":11,}, @@ -271,11 +278,13 @@ {"id":{"name":"node_palette","path":"scripts/node_palette/node_palette.yy",},"order":2,}, {"id":{"name":"buttonColor","path":"scripts/buttonColor/buttonColor.yy",},"order":3,}, {"id":{"name":"notification_system","path":"scripts/notification_system/notification_system.yy",},"order":6,}, + {"id":{"name":"sh_shadow_cast","path":"shaders/sh_shadow_cast/sh_shadow_cast.yy",},"order":0,}, {"id":{"name":"node_color_from_hsv","path":"scripts/node_color_from_hsv/node_color_from_hsv.yy",},"order":6,}, {"id":{"name":"s_node_image_copy","path":"sprites/s_node_image_copy/s_node_image_copy.yy",},"order":6,}, {"id":{"name":"node_boolean","path":"scripts/node_boolean/node_boolean.yy",},"order":17,}, {"id":{"name":"node_grid_tri","path":"scripts/node_grid_tri/node_grid_tri.yy",},"order":21,}, {"id":{"name":"window_command_hook","path":"extensions/window_command_hook/window_command_hook.yy",},"order":6,}, + {"id":{"name":"node_average","path":"scripts/node_average/node_average.yy",},"order":56,}, {"id":{"name":"slider","path":"scripts/slider/slider.yy",},"order":15,}, {"id":{"name":"s_node_convolution","path":"sprites/s_node_convolution/s_node_convolution.yy",},"order":46,}, {"id":{"name":"node_9slice","path":"scripts/node_9slice/node_9slice.yy",},"order":6,}, @@ -305,6 +314,7 @@ {"id":{"name":"node_noise_simplex","path":"scripts/node_noise_simplex/node_noise_simplex.yy",},"order":23,}, {"id":{"name":"ds_list","path":"scripts/ds_list/ds_list.yy",},"order":1,}, {"id":{"name":"o_dialog_gradient","path":"objects/o_dialog_gradient/o_dialog_gradient.yy",},"order":1,}, + {"id":{"name":"sh_channel_R_grey","path":"shaders/sh_channel_R_grey/sh_channel_R_grey.yy",},"order":7,}, {"id":{"name":"sh_blend_subtract","path":"shaders/sh_blend_subtract/sh_blend_subtract.yy",},"order":5,}, {"id":{"name":"o_dialog_file_name","path":"objects/o_dialog_file_name/o_dialog_file_name.yy",},"order":0,}, {"id":{"name":"panel_animation","path":"scripts/panel_animation/panel_animation.yy",},"order":4,}, @@ -317,13 +327,14 @@ {"id":{"name":"sh_posterize","path":"shaders/sh_posterize/sh_posterize.yy",},"order":20,}, {"id":{"name":"s_node_mirror","path":"sprites/s_node_mirror/s_node_mirror.yy",},"order":3,}, {"id":{"name":"s_node_blur_simple","path":"sprites/s_node_blur_simple/s_node_blur_simple.yy",},"order":41,}, - {"id":{"name":"node_VFX_spawner","path":"scripts/node_VFX_spawner/node_VFX_spawner.yy",},"order":2,}, + {"id":{"name":"node_VFX_spawner","path":"scripts/node_VFX_spawner/node_VFX_spawner.yy",},"order":1,}, {"id":{"name":"libfilesystem","path":"extensions/libfilesystem/libfilesystem.yy",},"order":3,}, {"id":{"name":"s_node_equation","path":"sprites/s_node_equation/s_node_equation.yy",},"order":22,}, {"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},"order":4,}, {"id":{"name":"Apollo","path":"extensions/Apollo/Apollo.yy",},"order":8,}, {"id":{"name":"rotator","path":"scripts/rotator/rotator.yy",},"order":11,}, {"id":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"order":20,}, + {"id":{"name":"fontScrollBox","path":"scripts/fontScrollBox/fontScrollBox.yy",},"order":26,}, {"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},"order":22,}, {"id":{"name":"s_node_text_display","path":"sprites/s_node_text_display/s_node_text_display.yy",},"order":19,}, {"id":{"name":"luaRenderer","path":"scripts/luaRenderer/luaRenderer.yy",},"order":2,}, @@ -336,19 +347,21 @@ {"id":{"name":"sh_shape","path":"shaders/sh_shape/sh_shape.yy",},"order":3,}, {"id":{"name":"draw_line_width2","path":"scripts/draw_line_width2/draw_line_width2.yy",},"order":2,}, {"id":{"name":"matrixGrid","path":"scripts/matrixGrid/matrixGrid.yy",},"order":23,}, - {"id":{"name":"_node_VFX_effector","path":"scripts/_node_VFX_effector/_node_VFX_effector.yy",},"order":1,}, + {"id":{"name":"ase_object","path":"scripts/ase_object/ase_object.yy",},"order":7,}, + {"id":{"name":"_node_VFX_effector","path":"scripts/_node_VFX_effector/_node_VFX_effector.yy",},"order":0,}, {"id":{"name":"areaBox","path":"scripts/areaBox/areaBox.yy",},"order":1,}, {"id":{"name":"node_noise_grid_hex","path":"scripts/node_noise_grid_hex/node_noise_grid_hex.yy",},"order":24,}, {"id":{"name":"node_lua_global","path":"scripts/node_lua_global/node_lua_global.yy",},"order":6,}, {"id":{"name":"o_dialog_preset","path":"objects/o_dialog_preset/o_dialog_preset.yy",},"order":1,}, {"id":{"name":"s_node_erode","path":"sprites/s_node_erode/s_node_erode.yy",},"order":21,}, - {"id":{"name":"node_particle","path":"scripts/node_particle/node_particle.yy",},"order":19,}, + {"id":{"name":"node_particle","path":"scripts/node_particle/node_particle.yy",},"order":14,}, {"id":{"name":"level_histogram","path":"scripts/level_histogram/level_histogram.yy",},"order":1,}, {"id":{"name":"node_array_range","path":"scripts/node_array_range/node_array_range.yy",},"order":12,}, {"id":{"name":"o_dialog_graph_grid","path":"objects/o_dialog_graph_grid/o_dialog_graph_grid.yy",},"order":3,}, {"id":{"name":"append_function","path":"scripts/append_function/append_function.yy",},"order":1,}, {"id":{"name":"obj_reader","path":"scripts/obj_reader/obj_reader.yy",},"order":2,}, {"id":{"name":"sh_invert","path":"shaders/sh_invert/sh_invert.yy",},"order":27,}, + {"id":{"name":"preview_overlay_puppet","path":"scripts/preview_overlay_puppet/preview_overlay_puppet.yy",},"order":4,}, {"id":{"name":"save_function","path":"scripts/save_function/save_function.yy",},"order":0,}, {"id":{"name":"node_perlin_smear","path":"scripts/node_perlin_smear/node_perlin_smear.yy",},"order":6,}, {"id":{"name":"node_alpha_cutoff","path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",},"order":37,}, @@ -359,10 +372,13 @@ {"id":{"name":"point_rect_overlap","path":"scripts/point_rect_overlap/point_rect_overlap.yy",},"order":2,}, {"id":{"name":"s_node_bevel","path":"sprites/s_node_bevel/s_node_bevel.yy",},"order":4,}, {"id":{"name":"color_selector","path":"scripts/color_selector/color_selector.yy",},"order":4,}, - {"id":{"name":"node_VFX_effect_turbulence","path":"scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.yy",},"order":13,}, + {"id":{"name":"node_VFX_effect_turbulence","path":"scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.yy",},"order":11,}, + {"id":{"name":"node_ase_file_read","path":"scripts/node_ase_file_read/node_ase_file_read.yy",},"order":14,}, {"id":{"name":"sh_seperate_shape_counter","path":"shaders/sh_seperate_shape_counter/sh_seperate_shape_counter.yy",},"order":1,}, {"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},"order":35,}, + {"id":{"name":"s_node_text_char_get","path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},"order":23,}, {"id":{"name":"node_timeline_preview","path":"scripts/node_timeline_preview/node_timeline_preview.yy",},"order":2,}, + {"id":{"name":"o_dialog_fontscrollbox","path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",},"order":4,}, {"id":{"name":"s_node_vfx_output","path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},"order":11,}, {"id":{"name":"sh_greyscale","path":"shaders/sh_greyscale/sh_greyscale.yy",},"order":6,}, {"id":{"name":"node_global","path":"scripts/node_global/node_global.yy",},"order":3,}, @@ -383,10 +399,12 @@ {"id":{"name":"s_node_array_get","path":"sprites/s_node_array_get/s_node_array_get.yy",},"order":11,}, {"id":{"name":"s_node_BW","path":"sprites/s_node_BW/s_node_BW.yy",},"order":11,}, {"id":{"name":"s_node_compare","path":"sprites/s_node_compare/s_node_compare.yy",},"order":20,}, + {"id":{"name":"sh_camera","path":"shaders/sh_camera/sh_camera.yy",},"order":43,}, {"id":{"name":"s_node_vfx_spawn","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"order":2,}, {"id":{"name":"node_shadow","path":"scripts/node_shadow/node_shadow.yy",},"order":17,}, {"id":{"name":"s_node_color_data","path":"sprites/s_node_color_data/s_node_color_data.yy",},"order":2,}, {"id":{"name":"node_simple_shape","path":"scripts/node_simple_shape/node_simple_shape.yy",},"order":4,}, + {"id":{"name":"node_random","path":"scripts/node_random/node_random.yy",},"order":20,}, {"id":{"name":"sh_channel_A","path":"shaders/sh_channel_A/sh_channel_A.yy",},"order":0,}, {"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},"order":42,}, {"id":{"name":"s_node_feedback","path":"sprites/s_node_feedback/s_node_feedback.yy",},"order":3,}, @@ -398,12 +416,14 @@ {"id":{"name":"s_node_twirl","path":"sprites/s_node_twirl/s_node_twirl.yy",},"order":39,}, {"id":{"name":"sh_2d_light","path":"shaders/sh_2d_light/sh_2d_light.yy",},"order":11,}, {"id":{"name":"node_image_animated","path":"scripts/node_image_animated/node_image_animated.yy",},"order":2,}, + {"id":{"name":"node_palette_extract","path":"scripts/node_palette_extract/node_palette_extract.yy",},"order":7,}, {"id":{"name":"s_node_solid","path":"sprites/s_node_solid/s_node_solid.yy",},"order":15,}, {"id":{"name":"string_hexadecimal","path":"scripts/string_hexadecimal/string_hexadecimal.yy",},"order":1,}, {"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},"order":3,}, {"id":{"name":"sh_vertex_pnt_light","path":"shaders/sh_vertex_pnt_light/sh_vertex_pnt_light.yy",},"order":4,}, {"id":{"name":"surfaceBox","path":"scripts/surfaceBox/surfaceBox.yy",},"order":22,}, {"id":{"name":"s_node_csv_file_read","path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},"order":12,}, + {"id":{"name":"s_node_repeat","path":"sprites/s_node_repeat/s_node_repeat.yy",},"order":23,}, {"id":{"name":"s_node_array_length","path":"sprites/s_node_array_length/s_node_array_length.yy",},"order":12,}, {"id":{"name":"string_splice","path":"scripts/string_splice/string_splice.yy",},"order":5,}, {"id":{"name":"s_node_vfx_input","path":"sprites/s_node_vfx_input/s_node_vfx_input.yy",},"order":12,}, @@ -413,7 +433,8 @@ {"id":{"name":"sh_convolution","path":"shaders/sh_convolution/sh_convolution.yy",},"order":50,}, {"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":4,}, {"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},"order":13,}, - {"id":{"name":"node_VFX_effect_vortex","path":"scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.yy",},"order":12,}, + {"id":{"name":"widget","path":"scripts/widget/widget.yy",},"order":25,}, + {"id":{"name":"node_VFX_effect_vortex","path":"scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.yy",},"order":10,}, {"id":{"name":"s_node_skew","path":"sprites/s_node_skew/s_node_skew.yy",},"order":11,}, {"id":{"name":"s_node_feedback_input","path":"sprites/s_node_feedback_input/s_node_feedback_input.yy",},"order":10,}, {"id":{"name":"s_node_noise","path":"sprites/s_node_noise/s_node_noise.yy",},"order":8,}, @@ -429,9 +450,11 @@ {"id":{"name":"s_node_vec2","path":"sprites/s_node_vec2/s_node_vec2.yy",},"order":6,}, {"id":{"name":"node_twirl","path":"scripts/node_twirl/node_twirl.yy",},"order":30,}, {"id":{"name":"s_node_decorner","path":"sprites/s_node_decorner/s_node_decorner.yy",},"order":15,}, + {"id":{"name":"s_node_text_combine","path":"sprites/s_node_text_combine/s_node_text_combine.yy",},"order":25,}, {"id":{"name":"s_node_gradient","path":"sprites/s_node_gradient/s_node_gradient.yy",},"order":1,}, {"id":{"name":"s_node_padding","path":"sprites/s_node_padding/s_node_padding.yy",},"order":4,}, {"id":{"name":"sh_blend_add_alpha_adj","path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",},"order":2,}, + {"id":{"name":"preview_overlay_area","path":"scripts/preview_overlay_area/preview_overlay_area.yy",},"order":3,}, {"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},"order":10,}, {"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},"order":7,}, {"id":{"name":"node_string_trim","path":"scripts/node_string_trim/node_string_trim.yy",},"order":15,}, @@ -455,10 +478,10 @@ {"id":{"name":"s_node_loop_output","path":"sprites/s_node_loop_output/s_node_loop_output.yy",},"order":13,}, {"id":{"name":"_p_dialog","path":"objects/_p_dialog/_p_dialog.yy",},"order":0,}, {"id":{"name":"render_data","path":"scripts/render_data/render_data.yy",},"order":2,}, - {"id":{"name":"_node_VFX","path":"scripts/_node_VFX/_node_VFX.yy",},"order":4,}, {"id":{"name":"addon_key_displayer","path":"objects/addon_key_displayer/addon_key_displayer.yy",},"order":0,}, {"id":{"name":"s_node_blur_directional","path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",},"order":9,}, {"id":{"name":"distance_to_line","path":"scripts/distance_to_line/distance_to_line.yy",},"order":0,}, + {"id":{"name":"s_node_average","path":"sprites/s_node_average/s_node_average.yy",},"order":48,}, {"id":{"name":"s_node_sprite_sheet","path":"sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy",},"order":1,}, {"id":{"name":"s_node_grid_hex","path":"sprites/s_node_grid_hex/s_node_grid_hex.yy",},"order":4,}, {"id":{"name":"s_node_3d_cube","path":"sprites/s_node_3d_cube/s_node_3d_cube.yy",},"order":0,}, @@ -494,6 +517,7 @@ {"id":{"name":"node_sprite_sheet","path":"scripts/node_sprite_sheet/node_sprite_sheet.yy",},"order":0,}, {"id":{"name":"value_snap","path":"scripts/value_snap/value_snap.yy",},"order":10,}, {"id":{"name":"compat_path_array","path":"scripts/compat_path_array/compat_path_array.yy",},"order":0,}, + {"id":{"name":"sh_mirror_mask","path":"shaders/sh_mirror_mask/sh_mirror_mask.yy",},"order":8,}, {"id":{"name":"node_export","path":"scripts/node_export/node_export.yy",},"order":10,}, {"id":{"name":"controlPointBox","path":"scripts/controlPointBox/controlPointBox.yy",},"order":21,}, {"id":{"name":"sh_vertex_pt","path":"shaders/sh_vertex_pt/sh_vertex_pt.yy",},"order":2,}, @@ -518,6 +542,7 @@ {"id":{"name":"sh_gradient_points","path":"shaders/sh_gradient_points/sh_gradient_points.yy",},"order":19,}, {"id":{"name":"s_node_vfx_turb","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"order":5,}, {"id":{"name":"GmlLua","path":"scripts/GmlLua/GmlLua.yy",},"order":0,}, + {"id":{"name":"sh_shadow_cast_light_sep","path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",},"order":1,}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":16,}, {"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},"order":44,}, {"id":{"name":"node_anim_priority","path":"scripts/node_anim_priority/node_anim_priority.yy",},"order":2,}, @@ -544,6 +569,7 @@ {"id":{"name":"scrollPane","path":"scripts/scrollPane/scrollPane.yy",},"order":14,}, {"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},"order":29,}, {"id":{"name":"node_transform_single","path":"scripts/node_transform_single/node_transform_single.yy",},"order":1,}, + {"id":{"name":"preview_overlay_scalar","path":"scripts/preview_overlay_scalar/preview_overlay_scalar.yy",},"order":0,}, {"id":{"name":"s_node_3d_extrude","path":"sprites/s_node_3d_extrude/s_node_3d_extrude.yy",},"order":2,}, {"id":{"name":"buttonGradient","path":"scripts/buttonGradient/buttonGradient.yy",},"order":4,}, {"id":{"name":"s_node_texture_map","path":"sprites/s_node_texture_map/s_node_texture_map.yy",},"order":36,}, @@ -563,6 +589,7 @@ {"id":{"name":"sh_grid_tri","path":"shaders/sh_grid_tri/sh_grid_tri.yy",},"order":20,}, {"id":{"name":"s_node_text","path":"sprites/s_node_text/s_node_text.yy",},"order":16,}, {"id":{"name":"panel_menu","path":"scripts/panel_menu/panel_menu.yy",},"order":2,}, + {"id":{"name":"s_node_ase_file","path":"sprites/s_node_ase_file/s_node_ase_file.yy",},"order":18,}, {"id":{"name":"draw_line_round","path":"scripts/draw_line_round/draw_line_round.yy",},"order":4,}, {"id":{"name":"vectorBox","path":"scripts/vectorBox/vectorBox.yy",},"order":18,}, {"id":{"name":"sh_blend_normal_dim","path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},"order":10,}, @@ -579,9 +606,11 @@ {"id":{"name":"s_node_array_add","path":"sprites/s_node_array_add/s_node_array_add.yy",},"order":13,}, {"id":{"name":"s_node_counter","path":"sprites/s_node_counter/s_node_counter.yy",},"order":0,}, {"id":{"name":"s_node_image_sequence_to_anim","path":"sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy",},"order":9,}, - {"id":{"name":"_node_VFX_spawner","path":"scripts/_node_VFX_spawner/_node_VFX_spawner.yy",},"order":15,}, + {"id":{"name":"_node_VFX_spawner","path":"scripts/_node_VFX_spawner/_node_VFX_spawner.yy",},"order":13,}, + {"id":{"name":"sh_channel_B_grey","path":"shaders/sh_channel_B_grey/sh_channel_B_grey.yy",},"order":9,}, {"id":{"name":"draw_UI_scale","path":"scripts/draw_UI_scale/draw_UI_scale.yy",},"order":8,}, {"id":{"name":"s_node_RGB_combine","path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",},"order":43,}, + {"id":{"name":"s_node_shadow_cast","path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",},"order":47,}, {"id":{"name":"path_function","path":"scripts/path_function/path_function.yy",},"order":4,}, {"id":{"name":"sh_channel_H","path":"shaders/sh_channel_H/sh_channel_H.yy",},"order":3,}, {"id":{"name":"s_node_RGB","path":"sprites/s_node_RGB/s_node_RGB.yy",},"order":32,}, @@ -596,6 +625,7 @@ {"id":{"name":"draw_line_curve","path":"scripts/draw_line_curve/draw_line_curve.yy",},"order":5,}, {"id":{"name":"sh_blend_screen","path":"shaders/sh_blend_screen/sh_blend_screen.yy",},"order":3,}, {"id":{"name":"node_group_output","path":"scripts/node_group_output/node_group_output.yy",},"order":2,}, + {"id":{"name":"s_node_palette_extract","path":"sprites/s_node_palette_extract/s_node_palette_extract.yy",},"order":11,}, {"id":{"name":"node_palette_replacement","path":"scripts/node_palette_replacement/node_palette_replacement.yy",},"order":54,}, {"id":{"name":"s_node_scatter","path":"sprites/s_node_scatter/s_node_scatter.yy",},"order":19,}, {"id":{"name":"sh_vertex_depth_pass","path":"shaders/sh_vertex_depth_pass/sh_vertex_depth_pass.yy",},"order":6,}, @@ -604,15 +634,18 @@ {"id":{"name":"sh_lum2alpha","path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},"order":43,}, {"id":{"name":"button","path":"scripts/button/button.yy",},"order":2,}, {"id":{"name":"s_node_3d_sphere","path":"sprites/s_node_3d_sphere/s_node_3d_sphere.yy",},"order":8,}, - {"id":{"name":"node_VFX_effector","path":"scripts/node_VFX_effector/node_VFX_effector.yy",},"order":8,}, + {"id":{"name":"node_VFX_effector","path":"scripts/node_VFX_effector/node_VFX_effector.yy",},"order":6,}, {"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},"order":0,}, {"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},"order":1,}, {"id":{"name":"s_node_vec_split","path":"sprites/s_node_vec_split/s_node_vec_split.yy",},"order":5,}, {"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},"order":9,}, + {"id":{"name":"s_node_ase_layer","path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",},"order":17,}, {"id":{"name":"_f_p1","path":"fonts/_f_p1/_f_p1.yy",},"order":1,}, {"id":{"name":"curve_bezier_function","path":"scripts/curve_bezier_function/curve_bezier_function.yy",},"order":0,}, {"id":{"name":"sh_blur_simple","path":"shaders/sh_blur_simple/sh_blur_simple.yy",},"order":6,}, {"id":{"name":"s_node_image_animation","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},"order":5,}, + {"id":{"name":"node_string_merge","path":"scripts/node_string_merge/node_string_merge.yy",},"order":21,}, + {"id":{"name":"bin_function","path":"scripts/bin_function/bin_function.yy",},"order":11,}, {"id":{"name":"s_node_feedback_output","path":"sprites/s_node_feedback_output/s_node_feedback_output.yy",},"order":9,}, {"id":{"name":"node_3d_combine","path":"scripts/node_3d_combine/node_3d_combine.yy",},"order":10,}, {"id":{"name":"draw_line_dashed","path":"scripts/draw_line_dashed/draw_line_dashed.yy",},"order":7,}, @@ -624,6 +657,7 @@ {"id":{"name":"s_node_group_output","path":"sprites/s_node_group_output/s_node_group_output.yy",},"order":15,}, {"id":{"name":"sh_channel_S","path":"shaders/sh_channel_S/sh_channel_S.yy",},"order":5,}, {"id":{"name":"string_scale","path":"scripts/string_scale/string_scale.yy",},"order":6,}, + {"id":{"name":"node_repeat","path":"scripts/node_repeat/node_repeat.yy",},"order":26,}, {"id":{"name":"s_node_image","path":"sprites/s_node_image/s_node_image.yy",},"order":4,}, {"id":{"name":"__node_value_processor","path":"scripts/__node_value_processor/__node_value_processor.yy",},"order":7,}, {"id":{"name":"s_node_group_input","path":"sprites/s_node_group_input/s_node_group_input.yy",},"order":16,}, @@ -639,7 +673,7 @@ {"id":{"name":"sh_displace","path":"shaders/sh_displace/sh_displace.yy",},"order":5,}, {"id":{"name":"node_group","path":"scripts/node_group/node_group.yy",},"order":0,}, {"id":{"name":"rangeBox","path":"scripts/rangeBox/rangeBox.yy",},"order":10,}, - {"id":{"name":"node_VFX_effect_accelerate","path":"scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.yy",},"order":9,}, + {"id":{"name":"node_VFX_effect_accelerate","path":"scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.yy",},"order":7,}, {"id":{"name":"node_frame","path":"scripts/node_frame/node_frame.yy",},"order":1,}, {"id":{"name":"s_node_scale_algo","path":"sprites/s_node_scale_algo/s_node_scale_algo.yy",},"order":7,}, {"id":{"name":"node_bw","path":"scripts/node_bw/node_bw.yy",},"order":20,}, @@ -672,11 +706,14 @@ {"id":{"name":"node_solid","path":"scripts/node_solid/node_solid.yy",},"order":14,}, {"id":{"name":"node_iterator_output","path":"scripts/node_iterator_output/node_iterator_output.yy",},"order":3,}, {"id":{"name":"debug","path":"scripts/debug/debug.yy",},"order":9,}, + {"id":{"name":"node_shadow_cast","path":"scripts/node_shadow_cast/node_shadow_cast.yy",},"order":55,}, {"id":{"name":"s_node_3d_obj_combine","path":"sprites/s_node_3d_obj_combine/s_node_3d_obj_combine.yy",},"order":5,}, {"id":{"name":"o_dialog_assetbox","path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",},"order":3,}, {"id":{"name":"node_lerp","path":"scripts/node_lerp/node_lerp.yy",},"order":6,}, {"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},"order":40,}, {"id":{"name":"node_texture_remap","path":"scripts/node_texture_remap/node_texture_remap.yy",},"order":32,}, + {"id":{"name":"node_ase_layer","path":"scripts/node_ase_layer/node_ase_layer.yy",},"order":15,}, + {"id":{"name":"font_sprite_loader","path":"scripts/font_sprite_loader/font_sprite_loader.yy",},"order":10,}, {"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},"order":9,}, {"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},"order":2,}, {"id":{"name":"sh_time_remap","path":"shaders/sh_time_remap/sh_time_remap.yy",},"order":2,}, @@ -776,6 +813,7 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"data","folderPath":"folders/panels/data.yy","order":9,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"inspectors","folderPath":"folders/panels/data/inspectors.yy","order":6,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"preview","folderPath":"folders/panels/preview.yy","order":7,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"overlay","folderPath":"folders/panels/preview/overlay.yy","order":4,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shader","folderPath":"folders/shader.yy","order":9,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"3d","folderPath":"folders/shader/3d.yy","order":29,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"blend","folderPath":"folders/shader/blend.yy","order":18,}, @@ -783,6 +821,7 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"channels","folderPath":"folders/shader/channels.yy","order":42,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"draw","folderPath":"folders/shader/draw.yy","order":39,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/shader/filter.yy","order":30,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shadow caster","folderPath":"folders/shader/filter/shadow caster.yy","order":52,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/shader/generator.yy","order":19,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shape seperator","folderPath":"folders/shader/shape seperator.yy","order":35,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"sprites","folderPath":"folders/shader/sprites.yy","order":20,}, @@ -949,7 +988,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_rotator_bg.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor_rotate_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_cursor_path_remove.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor_scale_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_cursor_path_add.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_cursor_path_move.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, @@ -1006,7 +1044,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_ui_panel_active.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_ui_panel_bg_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_menu_button.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"A9Rwvus4g_1fk5bwb_iqs.tmp","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_checkbox_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_bg_name.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_inspector_area_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, @@ -1038,7 +1075,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_junctions_array_hover.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_junctions_array.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_vfx.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"anchor_arrow.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_noti_icon_tick.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Assets.zip","CopyToMask":-1,"filePath":"datafiles/data",}, @@ -1053,17 +1089,24 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"FiraCode-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_textbox_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_textbox_code_line.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_prop_on_end.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"1.png.tmp$$","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_view_group.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_key_display.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/timeline",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_timeline_ease_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/timeline",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_widget_highlight.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_prop_area_type.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_file_explorer.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor_solid.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_cursor.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Collections.zip","CopyToMask":-1,"filePath":"datafiles/data",}, ], diff --git a/datafiles/data/Collections.zip b/datafiles/data/Collections.zip index 63d75e23d..b32ec34df 100644 Binary files a/datafiles/data/Collections.zip and b/datafiles/data/Collections.zip differ diff --git a/datafiles/data/themes/default.zip b/datafiles/data/themes/default.zip index 7b0e36d7c..89d00f91b 100644 Binary files a/datafiles/data/themes/default.zip and b/datafiles/data/themes/default.zip differ diff --git a/datafiles/data/themes/default/fonts/fonts.json b/datafiles/data/themes/default/fonts/fonts.json index ab82c7897..6bab2f853 100644 --- a/datafiles/data/themes/default/fonts/fonts.json +++ b/datafiles/data/themes/default/fonts/fonts.json @@ -2,41 +2,41 @@ "h3": { "path": "./NotoSans-Bold.ttf", "size": 20, - "range": [32, 127] + "range": [32, 255] }, "h5": { "path": "./NotoSans-Bold.ttf", "size": 16, - "range": [32, 127] + "range": [32, 255] }, "p0": { "path": "./NotoSans-Medium.ttf", "size": 12, - "range": [32, 127] + "range": [32, 255] }, "p0b": { "path": "./NotoSans-Bold.ttf", "size": 12, - "range": [32, 127] + "range": [32, 255] }, "p1": { "path": "./NotoSans-SemiBold.ttf", "size": 11, - "range": [32, 127] + "range": [32, 255] }, "p2": { "path": "./NotoSans-SemiBold.ttf", "size": 10, - "range": [32, 127] + "range": [32, 255] }, "p3": { "path": "./NotoSans-SemiBold.ttf", "size": 9, - "range": [32, 127] + "range": [32, 255] }, "code": { "path": "./FiraCode-Medium.ttf", "size": 12, - "range": [32, 127] + "range": [32, 255] } } \ No newline at end of file diff --git a/datafiles/data/themes/default/graphics/graphics.json b/datafiles/data/themes/default/graphics/graphics.json index 7d17d098b..b6c3f5936 100644 --- a/datafiles/data/themes/default/graphics/graphics.json +++ b/datafiles/data/themes/default/graphics/graphics.json @@ -158,6 +158,13 @@ "yorigin": 24, "slice": null }, + "cursor_select": { + "path": "./icon/s_cursor.png", + "subimages": 2, + "xorigin": 16, + "yorigin": 16, + "slice": null + }, "file": { "path": "./icon/s_file.png", "subimages": 1, @@ -165,6 +172,13 @@ "yorigin": 24, "slice": null }, + "explorer": { + "path": "./icon/s_file_explorer.png", + "subimages": 1, + "xorigin": 20, + "yorigin": 20, + "slice": null + }, "fill": { "path": "./icon/s_fill_16.png", "subimages": 1, @@ -410,6 +424,13 @@ "yorigin": 72, "slice": null }, + "inspector_area_type": { + "path": "./inspector/s_prop_area_type.png", + "subimages": 3, + "xorigin": 16, + "yorigin": 16, + "slice": null + }, "inspector_padding": { "path": "./inspector/s_inspector_padding.png", "subimages": 1, @@ -564,16 +585,10 @@ }, "node_pin_bg_active": { "path": "./node/s_node_pin_active.png", - "subimages": 2, + "subimages": 1, "xorigin": 20, "yorigin": 20, - "slice": { - "enabled": true, - "left": 9, - "right": 9, - "top": 9, - "bottom": 9 - } + "slice": null }, "node_active": { "path": "./node/s_node_active.png", @@ -656,8 +671,8 @@ "node_resize": { "path": "./icon/s_node_resize.png", "subimages": 1, - "xorigin": 16, - "yorigin": 16, + "xorigin": 32, + "yorigin": 32, "slice": null }, "node_state": { @@ -927,7 +942,7 @@ }, "anchor": { "path": "./preview/s_anchor.png", - "subimages": 1, + "subimages": 2, "xorigin": 20, "yorigin": 20, "slice": null @@ -946,6 +961,13 @@ "yorigin": 24, "slice": null }, + "anchor_solid_hori": { + "path": "./preview/s_anchor_solid.png", + "subimages": 2, + "xorigin": 32, + "yorigin": 20, + "slice": null + }, "anchor_scale_hori": { "path": "./preview/s_anchor_scale_hori_strip2.png", "subimages": 2, @@ -1237,6 +1259,19 @@ "bottom": 4 } }, + "widget_selecting": { + "path": "./widget/s_widget_highlight.png", + "subimages": 1, + "xorigin": 0, + "yorigin": 0, + "slice": { + "enabled": true, + "left": 5, + "right": 5, + "top": 5, + "bottom": 5 + } + }, "textbox": { "path": "./widget/s_textbox_strip4.png", "subimages": 4, diff --git a/datafiles/data/themes/default/graphics/icon/graphics x2.ai b/datafiles/data/themes/default/graphics/icon/graphics x2.ai index 927bfa45f..c88262731 100644 --- a/datafiles/data/themes/default/graphics/icon/graphics x2.ai +++ b/datafiles/data/themes/default/graphics/icon/graphics x2.ai @@ -1,5 +1,5 @@ %PDF-1.6 % -1 0 obj <>/OCGs[33 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream +1 0 obj <>/OCGs[33 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream @@ -24,22 +24,22 @@ Adobe Illustrator 27.0 (Windows) 2022-11-26T09:16:08+07:00 - 2023-01-05T08:39:55+07:00 - 2023-01-05T08:39:55+07:00 + 2023-01-12T10:35:57+07:00 + 2023-01-12T10:35:57+07:00 256 72 JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYqhr1Zz6ZjUyI CfUjVuJII2326ZKKqlosy26CY1kA+LevfbfvtgPNUn1C01XUdV+rkm306CjGQAgvVQdiGG9SQNqD r4ZhZYTyTrlEOywZMWLFxfVkP2fj7eXenuZjrXYq7FXYq7FXYq7FXYq7FXYq7FXYqg7y4Mc3EziB eHJSQDyNTtvkohUTCzNCjNszKCw9yMBVBrdOZwvrgsZWQ29BUKGIB8egrkq2VHmtDTr2yCpLpMGq JqM7XEiGPcSUjZeRO60Jkf8AVg9fUxPuH7S3TOOtoyB85A/70J1haXYq7FXYqsmiWaGSJiwWRSjF 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 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9k= + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUDaxXqzgy AhV5eo5fkHqfhovamTJFKu1aa/hsmaxi9W4JCgUBoCd2oStafPMfNKQj6RZcjTQhKfrNRUtC064s bPjcyma5lIeY1JAYgAgEkk/PI6fEYR3Nks9Znjkn6RURyTHL3EdirsVdirsVdirsVdirsVdirsVU LyRkWOj+mGejSEA0HEnv7jJRCus5HkiJZudGIV6UqB32wSCqF3cyo8vGYRlFBjj4g8zQnv77ZIBU dkFST6tq/wCnvU9VPQryrwb+6/lr6lK9unvTI+v+cK7q3+/9DfxY+H6ZX38W1/6X9Kd5JodirsVd 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 uxV2Kv8A/9k= default uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:7647d1b0-ea83-ca49-b85e-bbc9513ca4bb - uuid:018a141e-13d8-4fc0-83de-89f585a15136 + uuid:33296a54-7cc3-4cf2-b243-bfa7a5b3047b uuid:673f9e21-4d80-48ad-ba53-812ef9241a78 xmp.did:efa7ff44-b17d-d449-8cbc-4cf525bcc8d1 @@ -71,8 +71,8 @@ True False - 48.000000 - 24.000000 + 32.000000 + 16.000000 Pixels @@ -309,20 +309,20 @@ -endstream endobj 3 0 obj <> endobj 35 0 obj <> endobj 37 0 obj <> endobj 5 0 obj <>>>/Thumb 1326 0 R/TrimBox[0.0 0.0 48.0 24.0]/Type/Page/PieceInfo<>>> endobj 1323 0 obj <>stream -H10 ݧjq@dBM8o:H9-Z ZYŁvmINEpL/.)rSl:g$9iF?Z -endstream endobj 1324 0 obj <> endobj 1326 0 obj <>stream -8;Xp,*?>+_(]]W#%j(~> -endstream endobj 1327 0 obj <> endobj 1329 0 obj <> endobj 1330 0 obj <>stream +endstream endobj 3 0 obj <> endobj 35 0 obj <> endobj 37 0 obj <> endobj 5 0 obj <>>>/Thumb 1440 0 R/TrimBox[0.0 0.0 32.0 16.0]/Type/Page/PieceInfo<>>> endobj 1437 0 obj <>stream +H10 ݧjq@dBMX- Է(kjeE{w'^?#&n:mQ1mO 4 J霑f6g49kY +endstream endobj 1438 0 obj <> endobj 1440 0 obj <>stream +8;Xp,*:#.X~> +endstream endobj 1441 0 obj <> endobj 1443 0 obj <> endobj 1444 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 27.1.1 %%For: (Makham) () %%Title: (graphics x2.ai) -%%CreationDate: 1/5/2023 8:39 AM +%%CreationDate: 1/12/2023 10:35 AM %%Canvassize: 16383 -%%BoundingBox: -23 -168 574 0 -%%HiResBoundingBox: -22.5 -168 574 0 +%%BoundingBox: -33 -168 574 0 +%%HiResBoundingBox: -32.7582081502569 -168 574 0 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 14.0 %AI12_BuildNumber: 196 @@ -348,9 +348,9 @@ endstream endobj 1327 0 obj <>stream -%AI24_ZStandard_Data(/X,+֌ djIK Y}!͕h$ -˞-N'Xt͵ x:lT鍣MFjϰ:yR7d*KT2g7A^>JE{%N͔iȌ{9b d`Hx` &&4,2:V -Gz)eMLQo6f#B*V=%tdjs7lgrG2z-TKɣP *IFZtD8l,cjd9le=]IL5o9g[D%Umk.ÖX˟tjԒ7(w(Kib7zQ)&#l\ -$o,!qqu4E-RZ'1+=KָLhU5>Y,4a;)gDc'+Qz5c," ^>,uǾYf"K)RfiH{^H~TMnDKM\òJj#dr040Փ^"A4RhP6VFu;Ѩ[ꗭl5o=%?ϻl6(? ,M K K.AEkO2I#Os*D\  -GNt$eît\ҸL@ɤ'qjt+qRW"(K2iXwnx'=OQ2z)Idj '8OylN*c::F#U(X`0 -0,* PL8`a ,*PX@T px@Cc tc:H0:@0f0Ca -6h A͈lwRʕN3ug8L5z0=S&Mͩf4V$Au 9 QdUUɤА p ?'a!ly7h ij.0|pl.044DDԴa;@t,)-/3A{C} p78<@<CBb$f:j+ u(>9:{\`8@2Z`)3bÙIq g0Z#nYCX`X`xH\ZRNj~87)ĎTgZ-3D65CHLăr$^sdw4;n7<+ e(8Xkn ˭e̯XW'3!xnr> 01shDH@@@<@8@4@"!"рsxp("D< #=m+q'Ϗԣ:nUfUfԜjfW>an|yoYv$$ "$P*-0`"B@ejz(Z --` aa&a&mnX`x0#,a |wxy"a1؀(tbf>!2"%r>>74 ؐ sX`@;88< (!!шpFԡ }ثZSq|rpn< 8 3qPŅ*T01!-@AE -&@E - -&$< (P1 PpQ&4TЀA \D#L`@b d * \X| - AB"HP &8 &2Pb"*\XL8`D -p&H@ *X@**T#@Q @B\Dd0A* *&"H@ ` T"0 Tb -`A.&$ "HAj -$p!40A*6P"a . "*2؀B0 *` 8T@ ,0Hp -,XXT8X`pPQAbbbbbb -<b" 8  -8Ѐ,` 8D -p`XTApD  - X, "C"\pa1CzDB &Ll 2#l@Aa"$\Hp0! - +endstream endobj 1445 0 obj <>stream +%AI24_ZStandard_Data(/X)+֌ djIK Y}!͕h$ ENvUg"J>qtQ^iH^Z5OLSeIJ&GI=gf4}dɽ120P**LThP1@Hx` &, fQ#0;͏~ f\k`p]4`X)鹧$[uRw71EYۘeXėБUϡ@\葷S-%>@1<'=k ᰱ=氕%t%18 8z9'o\RVX[b/ҩQSKOF#l܍ӧ.I(vEt,qݎ*hqakyP>HJiUF Ǭh,Y㮻3QVd^s׳d4پne ;NdDDCC6`5ijF\-0ăFIg$fQ%jCl  ( ".!1@a\`X`|L SgI0 %[`锪U^Xl6ԡg`~"npḧy g& \`8D,F\E,0Uhem !FbA"b! a A{puq nzxC/piI9iV2)Pdbfj33Rį]Ԍf(҅~Tmےkoe2#+H{X֞Q%C +шJtDTdS9APITQz;ʡoki_^`xJ!"4S?~qP,4"~9jkDC@_`(ox# kkqrD"_)`cF2\b}-Q2wy61EsI!"&[Yit^>DD˿ @tHLDta%7h5h0xxxxxxX`pxpxhx8>܃`Pppp8:`P4U N0CBD\`p#<2 Wh\f4m0E JxC +֚yCrkY7;UɌĿfrf:456O8@L\#,"1 HD@4ܽ!! "$O%C#EsOFJo#stXQssuF]da)AeMؑX`pxC̷ ++"*$Jj5*+34[5<AXI̶}Fa%<ף"NCc:FN҉lH|Ȉy_C\Іj7`C6448Casx8D#*J%P ` F 4    Ȉx6hHXkޝ]oNm0sCYDVME IJnj@pX` +(X` +Lx ĢcINz'dFӬ khphxhhhX`h:C9 z{=C>!Aa +Aa q hETE8"0"#!1 0 KJ%$$$ $"$$$l eqʒD# +Z`+)(bp6,0gۼP&%, lfe1(z(zea]$( ȁL FE!BuhC,jVTb"aa>Ǧpƌt\0 Td0qqa +.*, LLHh PgPQ (P¢„ d@"d` +T \TD@ &4`PaB@P`@@H`Ƅ +„"HP$T``@a "B T +0q1,E P` +"ń +&,*PTh@aB4bL + +FFńbB*‚bbBF#(*@ ' E*X`h `x@… \H LP &T`@`@8p ., H 6P #*` +&6p,F`A $\8B *TTP8p0B@`B.&H4` X00B "lAD 8B` p \XLhhhhhpA&0`BE BPP ,0LD`⢂ʎ 2pPQa Tp0Ań + 6 P" +D\H@1*&8@`ࠂH"@` $P8p  ppa 6p`QA1 4@"B TH`!&201 +,*dP +.*TaT >P>P!80a \LP@&Th>,(D \0 +XDP$D -*;6AE (&**&`P *4؀Tp@a (lA \XLpp!aD TL L -."LPX\ !Ž *>a 4@A^&Lx"&x] (.*&L؀]Gń -*&TX@ЀÂ$@pP!LȠĄ -* DA (L@pP"B gLf eF+`pEf˫4ssidF:kY4'3nriC"BӃv%3p Sb 2*+WTfL:s2ḧ́? -hWY_1{eҋҮ]LP1[kLO=OZtT',&N7< *5%DɕPLD:p!₊ p8$`P¢B - -T\0ఠ -xP h`a -d Du &2 A"/B -@ .&(  (T "DpQqń &H  - - $P" ($@XB,0 =ZQTaA $8\pab PPYaA ,(P˂EC +0aI#pp +64ؠB.A \X\PAEEHxpA x<]TT0AšOzń<*W,bB*.H + B$xE "4LAʁb3hT}$x1+*pQALmYP#x.**\HxxpaqA, &p@@ +lA T`D$"T@ﰠ"*.0F +,.,0"1@ \q!TXb45*Z"XXÒ&"hAE-P 40!&`E,Ja_SfQ*y5Ua &lAӃsυ)e ;Mslcq#ʌ^p11ABgs ߡh .lyUFߜtynN0Hg-dMN3mHWXD`yzЮdΔa\LaU]ftXeZ{ +wI.BM2"S!m*K>fLzQڵ+ *&\pkmWcVBꄥi&?6D@\dC([;@.$XX\P1T0L +\XTPA &2XT\0Aj ,0;,P 68<.D$HTDx4@PQ$8$Ta +$B@1a@B.*.x0ð $֕wy3xMl˺\4cBhN(9xz۟_21f~'XJAYnvb1zIQMٻ&t_N"bZFE6iiM)Օ%ySe!M~uf0CCĚLQ][42Yb:U*L*wn5#q7(cohrF5u9ǬTC?mT10gx72Kv)n=˪e&t:?{I*NCFAb-L%SV>LR}%䬚R%X.sIANl~M29ki*U R^H&2?ݸٱ^^ե~H%S}{󐐛guFLVZjHשQOHSKil)Z+zfy͢B4-eJ )2fژKQf)mQP*Kan֑pjLYfu[M(̰fu2]tS)E.Yjw]EUԼd\lJ+Lbn,4zFӫHzT")Lj1iĐ*y8ӻL/6"RAjKHw4r+kD2ˈ(y;q='/Q֦l6vuu%i4(:+I+)eY:tnY.0]b#MbGbzɔ=tC"V3՘*zMCHM}JeohF)2o:4K!ܭ\)m%;"\+2]5I:{dR]*-jyO*^bYFrZa[O杬YE4:g]$*iz#eb/uh81=wźOuJTy%ҕ.M~,^ƣJSKm/ks/}VߌrG1YM{F7$'/"٫gfdFÃ-\B9gSFB;LU{4(e !UDhfvgcwS󢺛}xdrDDY9e9"윙^KKZ%v' },4ot8kSQgЃELgeoM^G]fI6sbN\wi"˹_0m&U]'ʦ!|;bellkv 2mвs]J6f/&w, ݔ=%&ww|#b]u=ڋdob)MW9?e;šݥ4dW˳˺[mjM,-շz~Q/oO2lͽϪ\vXlJf6D?ɞwEe.+h7a U]SvV&>wwsH׽)d5Ě`vyYͽ(s'&֜7rlRXsouOJe5`+"u~YQ|_Bl7fq%[RE%x|wrogy[Rܠ\cCLJoxJ EjHx;uyĦh ̍ ՔgX2=Ɂc}d&V?u|K -itNy %r&5iP.y gI2?<<xgR̲eBX3s~ b>ɵDΣ+FM)D[ޫ-[ڂ׮|ʱT6^la̯ˑf&x̳UsHZ9Rjl&I_L̯JmVrm,t,zҥn'2+2>R>-^KPR?S5`[nF>V~7˼RIQ&3+" -77}]/R-Xv1+Q^6#d%O .ݓĴ^dXURܑ?BY"5E|;w6wtW&KlO o'I JK"|MQ^w'LBl?rK9sNݳ—&44Y6#wXȡVHh,u>{-~*wI%n6Y6'vl+X5ˁԣ٭̯]r,́x3=(/QRjO$4 cd M&{&;ђD7CS~hYU{$T4uB@*}dHQ?z!K:;]Оv#8iͤR<4 OT #=ɶ[щK1nIY}ndu;&YfȈf%0f:VG+[o)ql}(I ǷT,eg9Nqdypj<̳1^UOF͑SCv,4hǒG쎈R %m?7DܜHP,kɤD'VHrX3[sEmE)fΘ_> +87f%hiUWmwW$6Y3/LXٍ lG(snrܞJy1FCQLgO&ZIs6!"J³)EQzF\RHX9r,:PkU\|'dV1 ̼| #j{)jҧЮ%Yt-y;Ǟ7tY)jL)Je$S*25 ݕo-Reۜn¼}TdUjZu - 5QSwaJӴZ~F:\VZ/uVYI&>ȒN^4 WeݤEcEWLq ُ-i)Ff$ tK,oBB1gLt-2A %n_Y}KóV1>x65Я0Cvnsl:l OVte eM/,Knխù%?ʈ۲E?ާШ}lfJ8gRU07:d2иc^lƹ|0OstvE(' ˈzu_fz7[FC39kw*g_Ns:?wh_/og9ߡ9}qN2wj>M[R4wO2X#»7Ғ,;iu Ѥ54֦%!iaļF\dITvcx':BYޔH2q ˊ~]6cuiزHΌO:dhx322ˆshT#e녔c$2DtZ]YXbUՑQFRԞ ag榫F;aFYڜdGf#xdW;Qe3ڬ. vvti}P.Gpe"ەLt̯h SwR~ΤʂdvS5Ѥojb+)WH&A(7J%X'3[W#~'X]Ӫ?D#StT+*SvYy&q[;Y%UDdS0'[s%A#lCiOFL4ʘ6n%go>]M.3jȤOZ͹w3$WK,Iʣޓ(y £6&0he5sx w*ęAɶ5Gꙍڴh}Z:aL^3_w94夫(6M_].Wjgv*[_5[}ɪoC7q|Ve߸4.7&x-olW?+ݦ:=ac>-[y㬜BGVyģt^ҿӕwӺg㡣KG ?&릳 jʕ,I8jivMt&Mw_Ne_HmW k]s)Gl^gmb5[ԈiƬG-&0-mU2TD]UJwi͜VuYJNFi<(Q>4gMmݙN;b~)7cujUֺjiHݠToHt7[V}f6)՝8.WO)U7=90gI*K hY_jFPF//h?&x=I5QAVͪ=xoRopWFV[(A$!lfbh*u##GaK! k b9ծr8v+WW%)T\oԞOzӪ $q<9OaMI8:W<$l5NvTGiĺ9ue>?>l68~*ً]ٍrXlZd!~$3d0e= ~dAKrFmH2qñɘdSd`쇒3G:ȷLxQ Rzʯ-ͬTx>{/|9e>4j]ZaOW,Ay9[KR9Ɣ*G| -V8YӒf0N.Z!.&qq8ڮޞG\L$3fԌshwlLcf6G \D<( -HxxDT8 -,0 -*$  *B*"x`0A $T $LBp0+ɢAà - p0L\bYOgdByX^Y.|(hKkĪrU'X,h餰B8g`#xON1 [ ]/4#IbJL,T)CGT-FʼU;̀ZOēeDiPR%QM=vrS oLhx-;0˻|v(s8hc5zE.gn\>9g1>k[K;Ndun`{H96~;R}FGM;Dù4q1b~J<=ي{%͙kqܣݫI{ZECys"SU`"l?;f8%34l6vT7ҲyN3<ÏL ϦgUJ,?k8 x8fcUtHvhawx$V:+tY o &RI&)T2gC9DCbb~Xeb7%v7b'v95bGWXM9%r84F_S6 8=|yƄcD˹:ՙzwTkTojWԦ\V|ָ# kFy!mM!˚ټ*롋Jjyu kI3t㩞|xy#n -rɦX*+6=xLHH4խS{"6W|ۤE)e!]kk4u>5;Al ?QV'InR?K:F,,JˑJ!8iOc_įo⟙=hön-N393g{sۙY1MF~}5f>744;ީUu>*O-N;UL滪X,='_NvKVڵs2I-*+SP$ d,dә\1Y^s5P)+K>-D!NTTRN$CGr#52gD#S912"SIwAZ!\.#)V Ɍ8Kl|endޒ\ɑ,REw%Wt=r*')"k$&dV_l711l6}2Ivms%Mkh4!B674cVF&tRlAb++gэSBUb&ɘI^On^հܴkT(陔Rn;yR?'tDxFr~l ->6gÙqrlifSה<B}%HtrNdhVgH#H*/(=7&Svgab&F URx'gL&\)WNSVX9H-)#)J!~.dv'bHNX%仼/9J9¢Hgfx#o{SO^m0s,{6x1݌9)MeӜi͡eַhwizWQfeJ3XB͹ttZLJs ͯHҡ孨҆/وEU^xY٬58Oi4ySZ-ݬY<~xHH Rfi6aG4*̱vP:T:ռrǛBf~%'R͸>DTӏTeR)CwUT5d\!y+\qsڢre4c|?j|/}Bos;E>CM]E"+Cig?GT7^&&;":3aNxUohj*ER5cUxuKIDJ"&%ESr`, -Iy'+uZqoRW"zy3EQ&{NmcUd9f1ɹQy̱{󪨇V43锉|#7hW CB7I{2C*~JEQ>xqC4'՛+ ~!eZ~ %^Ld霵4QT\Cҝ9ҍ>;+ -Ν' T'8YDž7=z M-rSΝԆU%N&ުi왒aN-Y5:3Q&s5D)Յ -$L ((*\XL@#uPxjʙvX"hIsf\n袲"2_WvQV^6+w> -9t7M)dMvg1vMe Yt;ž,QӵNԼzÈtV$LOF+괝IyI4q6gsg:s zlz鹪f> if(ȘB -s`@<ɌzÜ@F@őc`@h,a9i}JKG*\X3?Rh\)(ʏUj}$Mx(Sc)㪩9DF~7,1uKҘǙl'V;GFM9[j >I=l0DVxJ<7|c~}l|jzgkqjxpG>@==㴲hS̉АǛmLރ+n\&LJ -;dKܩ@3X^7ֹ~X|/@t{ Y0?JQ1 icV2H2J<ƪOs:y쮬bcF!Ŕ}1yVVѸH*A`Rn8`"cqz ޥ~PAf&?!rW%֕U[_d7ڜ gՉ {ʤ )f d{ %t0XM>P[8a*ȸ=b푾2s؂:R蔽m -S! ;(ZYփ v10t PoyEZw(!2tLY>j4CL=tHm"MɽIL?-(9XAwL7P#XPRtV2Z,? c2˃\)l\t.Gc8]~d/CA4f2O,J`.R,eMscÊzm}ABo "=C:#هoߘt%zF1Yݚl", 77oEb|ڪ,-_j͉4#΅M!9 9KeLR{;ߊyhRlE&y^vp<^ļ+^#5#}ϱ%h/:pYh\0hL\tP -&C#@pE":DJ&Zl+MOAopjG~ё .!X7ҒNjae8ۋSzx:GƐ_R./f%L n.5>]7M2N`g>-q4 Fu]T1 >]x4|E 5ĹhSAH@lYfy@= xXX_(,!kPNp1%"MYCr@ZPK(Q9&1`EAi;&/!ݒrH]w8gFjA#uvJcB%1rl`5rGI]d{j%FP%$5lwd+(Gd$!X-fP҅*ވZ:4Vlp6cGn lXi"ͿcL|]Hፍk5F"%Q:Ħ/lYPdϾ|gw.qM2t4]ZT@e@ p򧑂Q_ -򃺏epԏAMIeA}hsA7 -&C)ce&< j4"v?-07 衎"'jԉ tzknFATFMHiǢEGGQ'O5ꗽ#E`=vr5jYdv*=:!?>3NAUU֜}k-긠e,9sZ;Lޯ6T/ːb~["DG*ZITm7=\ 5S0ʀ_zLu~^Z>cui+nW46t/ʌhniMbW6fc/I$qZ^B5@Wh e~</mm-Smj[;ۖ7_PK4q+T"c-Nrз\UW7|)q+"ygO[瘅t-F"u$kvA8݉=Hvw5m| -zkXުcl,(|[F?~oa޷pJ&cw8&g -ٵQCg0Ϳ9OPZx]Q x׏#>˶' 9Y"~Q,r8gan *B ks.6|g43dVO9z0 \6T3Y ] buDB| -+p@ SE jxC6φËv\X\Ma{ȁǒh7\h.To]5"lNs.ow$+Z.;:-[󐺮U9I?/<zњAO@A/9{^BkozH?($'Y/݁Nb1}>!qLv加bx*ڔ v`ucoiJSޭ9uksW߳zx&ƃ:j%wjgq#;XIRic?N5 :dxo[v4h763:,9*w)jpۓ)[};5;f"ĝJ:<bݩE;w3|omNG4$(@p-xQ#xB<#6~f8!5=鴔x;UEķ1%Fqv<fSy;k Xv'xr2 vJ>M6PN~ZU)W>3M\~#؞@e~ZuT+rޞ -d;E} W8Vm8%=dUqECozX?cz(2Ng$=\J$륌n[]~*y&Alrd W_I'jmP2·+lJXs w1.w傽\<~ -˃^Ye}6D~^1 ؽ)ć.^K11y|.EP+'֊' STc4_]·Jlv~VL?o۬ ߬@Gess>ޙD߸L>0>pM(g)I^8Q7u M >orޚc,49ҦsoE!N?QLLtUf00?"A7KD8-B!7O~ -[BXps&ck[W̊q:fqaʐ^#xÆg~w3;0&<`iZ5z;g*^6LkH_E:A }G?bcT*58)iDκg,_CXM6P}RЯcSF:wY O#B @ikDNP%5 -h - 6Tp;p+u3y$@ gf񨏢z~'E){ڌ1cP7~"~aQ(:#dP2Q 6퉊GeIu&/'Pq m1 oj1a50= -g`b [Nؕb 4d bq,P@ޠ!n}a V" Ҡ9KUh&YrCf{rAFZ! 7fUN B -LZE{18Z*EQֽw$ŭA< Kf/ 9rVdcE܁1Kk*o,1G5rۏ[Sleڂ^cxol/826XE.+")p -IZ+rk.89-ʧ";ͦi,H׹3<2`W{Vސ/f 60 e+aS})C(5BxL`7cFR`݊>eٻpX,R3M!yͧM({Y.*̘ $8 ;+ g :T67T* yFO# -}Jc%W ^H_s|3)=(^K?F2m~ԉ3#_Y\\V*B7hGSժ:$"/nl0P[]H;j?5TLE `fi#1o<9?$$\&:ZMzT<̴s(8gZ$$Rsc :^|*%\ *##n|o'PƗ𰂫rTQB`1]\^fB0alu%> O&' #췫+S?Oz p*aC\MРY{ägCDYa%>咟ɈT:o7`_VE,{yӊ%!(Zr8.^aIQ/<H9ړu*Qt*C!т? - jj d\̚(}gcI+|[XV0*QF,΁_5HUMmai -=qBT(0ٙ0"$H'E_^^CxWqET /l>Kn`HU["  Af\ U=Rv 㠳Y pHρp杶pu0ViM< -AR 1\a1'S~ز{UKsZ"pTXXIO2+N ηߡи-}d2#Um>±D? - DFE#cXSgYH`i*GW ZHod9MqS$23<]˻5DȡٟKc 񜗂W>ԌU_ -D$|V&,77 cNSsNզ^j)?'M"xs@n()CE?+ۏD\#. 7c̭<'4GRk0XDlb9toNnG 2,]B߻jo:Le$@_{+SO٧*,U$97΢ ն7vXjZAFn,z°s7έI{-]~uIfZ6+i/uR$.!s$zGFjljL y[0H |Y-a1o3{up7HNbY&A p)) U/C!kFM,$^Ȭ'+/7x㕲Wtr2]Nzw.N[G6AQ;t;w}IĐiOiD>e-ڵZSO<ଊGX2b27L -z ]S -uH)1lZ{&s`> WXUevX$O qJ}p3J$rw_a;遽%Y'!W,sbw2-s`-?#Dn*wA -Eh8Z<3 z/'XUH{#VTL߃^<,)laĒmj n. -=òZ@y7Bbna&hQ=naHbhvD?B(]K,!#^?yUUP%#W֛\D? nZ8H عi0f -< jIp,Vh5<_2ڞ p0flÌ*qkUG,(FN,7cRqer7BXrҟ;D^i>_j!  JqHN{] l%gbz"ّ>9;LB4|ƇSaw޿@!Y9qȃ{q -oE>Y07( RV,,ˮ ePe[@ d%AZ2U X5TBV]`T1F!^suRuV0 c=v9kG+2pNJW΍q*'R^19}f2ӽZk:<0ZK`}lb'ܿ7Sb UUbXqVmLkX%Ai$7-`| %U}&s-ぇ1bdN /vC6`*A(-Ϛ{ ؚx‹v@$U')Dhْ;`#ȔBt@4xn\kqMrC|%>@, (TYv(q^9Y6BfW& E" IMVA`q@(a@ѹFDXʅ(9yS{چW^a&/xF>t -n<əK]Z:8SpRIrwERgHNՒL_(A0PհK] L)'\P=!nbh^T<̥zyv4tXxRFQ}ah6 kfX/<VN _Չ)ЊyE::ᳵp  pKZdЋ$;jx ETGX`([/X/jA{'3sNPrH  EvuNj21~9@eֆk}zh/ޘwMَz'2) p!"ԺJeT&=j XDxI"^KkX~vW@Q-e]^bJ ~fzy_{i5&eG-nyN]PbA~l0f -6E -A4փdx &%a4R}֚$uwV&%,W%cgnt[~PnYWB̥G!:s{eOxŐRNv/YŒ& -i)D<=;f/(hs=\'LH~戺i޾hrܡF 뭍!V;+RлEeF[7]G5-]$~IEqrW籚15E^CU&.;j<2X %xTxtg6Ȏ){)F50[׃z5{m)chl=Z;{Tp2Av@'*-Xi ?І;^SF0J9:VՀ>eVӚ TŻ/|gxG`6Q&/'$ Q/\֠.J sь&pFɎLMSY*u -:wgT2ݡ,h0Έ$ -xOr'!$y׉2#fЩǑ wF¦:i G.bضiFimA쑙U4V@2vLC:.Bpl Ӛ)f=ITdY;wjMCWth$ PQZF+},򉀆4ck ->Q wEdMUA;rgp:|T4HBidSxT-2!Ɩ@ z~@4¹g^zP*Fd'iDR+NH͙IVL(•>Aş< 3)F_BH&ˇ5Cc$D$m(RO`UDS'wpu7vCW3V,n[Svd;1!{Syx, # 싢?ǣb9$'磸 g? zv5l//`jNcP \d ;IyQ>KrHyoN>Rj]60|7n`v hD$Zl#">d*s:Fi c`eJ)5WS7BoIu.HMUPG2H'vt5VwIId{+{zYu8"y4-#]UH,v"']d ¢?`"m9;DhTjV\/to&Jf?̵$6c/Cڰ:@J+rK-0}zE G0Z:3x2 Krz-v'M?&Xo -sl3^&Nq!j/VnXrRMTA-i?s1e@nOո!]>z~Eݫ )K2@*bmMw( _[@_QT N_r&Qx4Mz#nnvyLKC &m$'yhT|-m8ՈثJ;Bs=ҷrf[v?zӨ`U43 -9 aBȗeKL.*)28څh KdSG.Zf![ 4#kb|?c:Q) A{NW mE&;;ˈ;~O'dkX47^_ԦF^%Q)$:pQ`Y2 t*k@-<*zaRDlM׋2X Qw.Y}݋ QKZU @b-Z<)nT\FzScTFD"@z<1 - g%,$X^H^~L dgCu#mB~{uh􄟒z@H{kj*T,& ʲ7T}>YA2*GD0DN['E93k5"]"ΰfAO7yS qpљIU ~#~Ȃa'b+AI5LAEP[rLAQ,Y OO+YCdDqp{w3bz8 t6<7bQR\pwhpP5q} -Ra]/%}>c6JJ(zlӯjҦq˶xS*K˵319΄&G>7ek9bݟi!tVg/ a$4q+9;g LVL w,hxgqnps5G,h/5XsѸ=I0r7hOmP,j@{ ɵu1‘qHovWlJ4Zg!ߵԂ,9^u_%JתӜ eVӿ@C 'nA`z̕Xt T5n4ه:#BF(@v'Tx -UE7Xh1.D -}vSo-k-ZQP -W\EI(4ʚu3l9vi-B2KR__Z.A&WҸ&w 7H j0%uVyҸ'"]Tj)Pw L4^us?fQ3 5&?&{PS!>pNf]qx5>\ ^?as|=>2Aw3PfR:: 7#RY4²!"z3K qI$]"%ަކ? Q0Vhd+>w=3`E2uQ! \wNU*Hg$ &a!R#dL;6 Qt@=wIS;K``}e1Q<;x<>3HH8-V`d_t$W٩<8 )媢lbG 'kvHT@J;ѕ;JH)7tq)`Ŵ2};j2/C7 Xj4 -nN+@h$|< eS*Ksz5$,|i~ҎEXD(Z_$iʝ4udcpBYÀ o<'8wКgskRD4*%ؒP@kB:4<˖أx4(A}-CnI- Xxу> ,1%]ܞ`h܌25`7NY⅊Tw~6?g3?Me4||N B<%C ei !hnM ^n S>-oO9WшPh6" -b>\<{J0ӻ^1~"bDn[tޫ޻p %\wTg_HuRz*Bn` NNNTgahA٤rJ2 4]%IԛdpT̶HY̲ $PL@paX ~AÞ{.o_#4"'G&pjogC?@/cȣxYE㹎TR*==  שt]XPIOgJԛ ͹lVa_h2C 0jv( ޲φigNb7Qt0z]45"$p'B !gF3FưsN -(E|}ӣa%EKE-@9 m\hNԓAwd(ma4ОjвA3yqAkMd:VogHđ( (Rph>шr釄m -D!uް4&&@6[h%u0I iWU -qKmC( N:jd7kxջԀ315?r072-5 [Q6}6rҾ+?KoNQ?TGkCL7#>>vM:$g.nRN!*T]Cj2hRZ!=k`LX2JZ'/uIxmhX۱D5TivQ'Q# -<8A%ާbNW^7ZTp؇*bX]b V0U$r_sl* !0f,# \@=l'mz&%7y8~9Ј(uxM:R(G°9İ`iL#`*]I}i`^n읨l\˙E .QMpG=ÂJH.o&TҸ+G0O؀Ҷ>>\K5+  DǒO\azR!+yG%&tB&2B#+}5y 4#UFRG\\uca -` A --bi, -L -pmxK0.JL -eE!{-%A+C\߱FW N&".I&1^M]V]c@6~ ")deTWeE`{s㇔f@3wq3`8&̕w;8S\G F%ٳ8BՠRАë́ɐD~l7jltH|}56e[`՗a!V#"@͵jjQws<:0( -4Ux8goaz9znW?e txLuDc |qz%ETʒP@7Ug=ewMCc:SӠ#2-<诉f6P=RGf=.kENH7zcX`B6_F (Q3#Kz{a N(ćh(7 枥޽W@nʶwll>ZE\u1Ͳ, Y'1^7h LOM?.Ŵ|0;L(; X0m@׎h(gg,|Nt_BvoAfǴ4<,sA\~ڲ"0`eU"HQ'3!j-.04Qd)NT(LZ\pNyvx]SC'"}8XZE QHSX7YM] [TlۛVEecZ-pT\DP3\<~I5:ߪ뢳 q=fP -K8dnY! ]CFFwC)"Kz^гJ lNDcWXD3*V.ϸGCHpe?F6U*ER;F% {0o♜q7`щy BT( PK0ޅR_K[X5C+TSB@ Ame~|fLZ|3)ۋxo+Zt}a#vo?]pjf'[^)Rfv1D1_fb37#g:$R\C'i SeBWEchRE:DL,dJR)^Ȭj5.Iб -Y˰ZsfER;9ds8uiQ'OϧZ -Èb4[Aoʆ|u^ЉTQʖD S߅ZfP4 we )J_s AvH#Zx -T"vqBEӫWH0m mBe0C%T%fdw\tl, q)dxQO)$78[6˙߰itB%*O=1]n,{B,I51 %03CBhxZ3{JJ@ao2_cm -G(5ٚBEDK)Uf -VdAp& -qڞc*:حE#+*Q& UoED! ) Z2bގ\rTПeB$ Q=P__p%3PRя2wA FdW @EX*8'0gJ85* 9J8BxIVx q<ƚӧոXyi$i0b@r?_4 ZUGn`Yuy;~0a[T>' - Gk"iGI׎c,4ʨYmHt/4MqkjD\1AMWPAnrε"1>h"Sq_~V -bjp![c[=7M2ެC#oN-Ŏ3Bdȣ9#+Q>p{[| UQs9doPVpE{s.'؂ʢeqeBt%9<2RzȊueӇQ_$Q>V 7~(STkXpv*G!LCã44?BcVW&4z~VuFyEXUPݽ"D{<)vX<E*!N\ ѾX@52REPgywnqv0SrUH|ʖ<儓쯊½2T&_j8!.>8/ v yNa1_pC.AЮ>qn>eEjfN1Ҽ'&v'0C9Exą͠H-*SOrZBeJ1s"˟Ʈ{ptWfCZ¢ W3̶J%I#!l fK~2n=ݼ!sQˈAX> *s)݅6G w:עچ`r +]]$'7H?K R4C W@%lsCk] r^FQ N.njjicQX@ jFDR0P-7'^ _O0M -Ec=Z\@JFzN7 -d1Glu}G)9]JH˟^Sȁnl@枍_2??mA,m)kI`YA V- vЩ<ݞ"ߪ޲BH$XDf3J~$i}PNN1sg ڈOM es>v&|\/_']uoS!(yf#%CãH|AL_Qfx(2Vʑp]C⎧Q<6 ,rq\^ C=jh %)a<\q -XcP)aMr.7OH-s ?[Ĺgg48]јxA5"(vID1 #HhqpTm$46yJ3hT ꊣ^F U8dI -^8tJA\f9j -}Ucx*6$JM*B]^h 3 녥)`@}>JvD >=tMƅ ]K x6SY,'j*v/Lq5~jXP}`R -Y0›bW ' RѩgU@ϵ>~jp@1Fm^ - [@sbB/Glyaڒ+"HCR;?4TƽxϡbtM>L6 ͨA5SYѲrRKGzٚp&>IAܠ+1-he -] sԴ,G d;rZ"TVX3w7^#nk 2g`ED30nj԰5h lN3"}ن㵴]5vt3p)/r, ƮUڸB2/[ B?QVh99eU((*RǥVf QgA`_w%@4iitjK_kX =+0BNXUXGEVa3W4]Yfb=<[wY2>)v+=o߼wM/]h$Uu*&ա=spqͽL,P  N -8Il?Sndpq/% >b`PSP&QiD+2pT{/D1}/R,kJB]3= -WW@Bi)UztNOf4r9ɱxɯz{DYpr55&WbSa:d3]E_6eRQ=TR-EvH$|-S%,j!efR2#y - ry`1*fD3ZX\u $en -2?HSs`P(-6.A;kKvʤq\@ -u59%:Ҋ$}$P уRBcE' PBR'0H{xӶ{O?* 顏enj`lNX^8dgewb;:3N(2+v G^Ӏ9]"ѱ k6ëI[5@W &&P1In ͇6f{fj&F sX -6ppqlDw9{j?"N{4dc㵨z`$}Z=,ߴ>yEN\ F-ipXq cqa 7@ 4|alS0ޝc __#Ʃ.DgGcJ,ʛ{X~hWksXՐ004#lU&H|SC{)F"NFW1!VPNog%z %%WUdRpW] -R{jLU W3%Pm>h RQ8ڔqPLwkPԨ U,ZGэSma%8[ ˤ2gvC(??T Rgbf[*Vۭ㬨f,ApbMm=c ?ڇ`[95ajs(d\ -K@šeUشɂ2gi(2ǥk q]xWTi>kT=vK~F."jx13@Y9'C˷y̗(QdT(p/$ҕeٞ!G+t"c' %Ue6\m8s4tqoIUɀO]Q,PzD.AE@ˑD /w>iF>.\~_MJ/,?m,byld_Wn@6K/GUQ:%ZuwLFc&w'#5`1uX-f/n*<"@eEtiek<ۘ$VhP *0w0]#n6V&+۱&b~YǑIW'D61'H< rH)WQS1^`W <@{rӐ?fhF]XvMBE̱<`Rosp(F$Yf*?, DSaֆSs -rzk<mJ -2_ CWvẑVt͇p.ŕAg|7msכFpb'I24?`[ `+WaWlRTP:v4T2 >,jEL'1C'^ϟD93 'M%J[+^-NSU d ֻbt(bC4veI{FI;|.Хsԝ-ӪHkeF;u7k~ aj -:6kgg}b2zl'-~t%<i}2)%7V@1%eb6Sms -de&񏓚GTJa*?x M–Ivk^H|qTUfGԵ32I̙֛ -D&c3O8yE[aDsZT}}\ļ=">SE"_}"Y<]#' -w3"4GJҎ9>)n2993$>C%r'|$u_V5LT{S7x7V&a[Uxx"Uyztr8%j_Qy\yU,|EZ1ܡo@*D)cPD8C|/Щ{iQMGh4s"PWHU-SklV^J1ׁWu8N3XeZ^<-:{(d1Jň_PgCP,ܭ FE'TDHQ iTx/fP aa*1GsKy7Ks&Y4IuE)\5LԉdL+aP/y\| - \Uᗾ*9Uz+ veWjiU?DVNQ<&{?`;ɽN)L*Si-Ϝp!:yvmoA2p&?"Ηo_h:$IwלPz {#ׅ<(ۋeOC}wN#~qא7_dnNڕ#:7N6n}Ey Kzˀ1ɣ\2eGJ {|Y^#AIQn.ڲwZʼn]=R,S#n -CdftrSR鯖6?p6o'cp}PZ -t laI2 '4[-tt4vP!G} D EPthG8?0{taYƙRT9nj&l1'&ԍW/ΛMS6i3>4Sj0eߺ1k9ڮ78]\nMM1oٖE2#Z(׆<u~FT+(W0 ­IaU5T7O'y*\Sl/'MTa42V'vήz۰ 5HsM4B*8pQ^@t7Cʥ WlWP1|:t6 ǚ# IOzT6;ZSxBiݰ2*%2]! X%% ~ފ_@Jt~5Ȟ): -fo@jr }hVEI/K}Ky2NV2MV/Nd -B_,y0^io)^y2 -)45I6`Xu]~/<}8i'/}"U @3S94+j\s_SmU ¥Gʳi!Oc*;m1"@$D!ThPJa|oC@01c9**wϪ_pH{V3ҏR䫂ҁ NZK:s23NK^ý+i<8Yr(aOwTrG2⩇O F>uTǫplr]O֎[$蓫ב82o Ly&۬j' VP$^dܭrUa6^KӘqD1uFDkLJUΓx2Rz8cޕnM9i:ƪ6cg\F7x}󄪈1 ֻqD:2mjY=B[͈}e}5j#1bl!Ru6Ҿ[67G6vkAB=hP8v & -rˍ>s'F^E IA?# Qh2ckl~FyzFA,7}ip(0i*+H^9k%2A\St.Z`P[G9Ʀ -ECmEQmQOO֫ csA|e0+wDO?\;t V?}`~f\a*}`wKvM:X6U~釰 /ًnn[ߑ;?+ýd.qqQb% {0 adHFiM4bb0mũ(x*Ϛݍi^)q[>ΊPIX)Hx?m{ I|:BZ 5l?pt {8*Kmf2&iLN.háltu(a;xo˖)G5emE_+A~" v\cLmAgT9]4Ufj6J;*åeI>n@h: t&LUEJvRnB_Jsh96a.wJ??B>IS PJPBnX<>Eu:z^9}YLUUUfj>DMRBI}ߎ3QWvwoN["0SUUU)l v߸]EXgJqzWlmrU3{FXFFiF&G+,9/r4Z c\32oϕT lZC\ŏ[uXǘތsƯάf<絙ޘ_OmպZ+[+YWϺuUt|5iqvϿ['sN:-ΝgZ:km7]/}MkλgtMzm/[oKwSMoiyzqvΧ{]\5֩LgO4cm~։{Ϭoj}ΕSfsyR9Ҫ'܏zjqyuqZK97~fmΟ>7cqg{1͓Z8[7b_gowJ7eNo\ڧگ҉/oo7cK[O;-6tIm1T_O|)OwƏƘ_|UvL5Og޴f}OZ*gb֙S:\n-_jRҿ֭;K:7͗zm)}WZ6_]}Z_C׬NKkřN-q޷~_J_Wk޵]vgzkZj_[>ղߛ֧ޛTZү3jmYix/+Ɩү[ߓ{{M/vOtWl[:TM5'՚MwVMkyf,5zqڻV=RZśҟZ/9KYy{3LZk靛sƓyw[뽻f_uvxz5nJskN'7bJin76ӧ^{-[۝VWvZc[-:ө+|5U_J4ߍ~5}[w\jLo:xӹu_Y[;ywTk7ͳޫ~tcxۼުy?LR=<7l'{үz?ޟ_mYW[-~j-;}}-}ڙ[LZ+xf{mu9[|S/blg~koi~C[;kfsLk֫kZIlgs}܏\uNwwIcL|3Jŕ~wj4M/ߺ3Ə㌳7+X}5>[?_;Ls}S=ZrKi޺x9?I5Y^iz饛-띛=Z~\V[W-ݗbJ1Vz߸fJ/yZ/8yߍ'~/w_/t}Zi޴rz1bsOnk{sxM5zŔRj[L?S{Ιę^msַyITck7/үWzR~Z[iwҧN}=[[\߿}kks[u}m_u>[ۍwZSklf=R\m_y7RYk5W?WiՔZﮚݚyݛvӚNwϿn|m1xު/暿Zl?cSiڟ5cL+~VǸ=w~Wbmguv:ϊ:8_OO)Ruu~s=gڿs|Ik|r]ozfݕ-ΚfL'b}ugƯ}K;?-x_]:i?ﴷ~[c_jGYK{/T[s2z1?Yg3Tǯ?zΙ58W9IiYS]qZŸR}zj[|1{-մRM?[,w;~TfKsRΙ-wc+޹wwӛj;~O/XK|s_Z毴5}|5Ҍ뼸|1uZLt^[5Ʒ~[gfJ[{uS<SnMkݹjwTW:[ucZfZKY[}umΊb/W7ղZkƲZw}ZjKbk[jV/3)m_oY+ŸV{≳k1RLZz5޺-SuoֳjsOI+zfsoJn\gVSo)7t}+^לs9ܚ7ʻi?kxjk~l'ijzyVNM+?k1ƙNLoޚ?ZKib5wjkΔ֚M[׹zwtn:ՙmo'ӌŵ\qJ;{;;ל8gYyLl+N\Ͽtg|Vjjۜ>|ݵL-b_^wV+W_{u78*5}LgTN7;[l߫k?Rz뮗j|L1V9mRzO5կK։zվ}+߾}vbL+bK6cVlrfoLuWYZE_v]j=mw2ϵieukk{ִ^}u7ߚ\͹Z59?tk%ݒn%[SyK}}޽z+_":Uη?3k+eR*i+V,qT9ROSj|YfKw7l_^*՟TޢߗVvNkSĿ]'\l5V|_y)}zb-<o{Sly^ZXbklmbZʉuVN|'ښv-r:^ߗZkVY7[wjZ7r_O\o?~=O_o4KMZ+w旚j,giS]-RJiγ>SZƛmܷ;[{y9MThQ9iSb]!$xrULY(Sֺ)g>1#Fm;1Ŕ$/ф4YOA)9UDIG؉+^@ULa%Ar^Ne9fT,U.7zV#FQ0+CB|=gZ0(C#r -yְ3*nqȤ1uʨF+%.C#Ct_>Q|)/>V|%"As\nmJ1Q - LJ쾺1HHVjgBIğ Yb XwY>5>k|sdA1[;x3aY\ 7:._Zؓ:hR!LOa4]Mhā~c%bCF^u̮x _>""`I x8aUS1Q;$^^UFjO̊m|@o?ͯʗEF]YIВR4IPbF5d=5(QʇX$ Yn$*r#Fw]SFI1mF q|#EM|#@@~ݥ) Ň ,J&ʒDЅQ8bPQL@G.LՏdzpḧB oA.OTw䢸V-@a-^v虳 -]ƣ#VpqJҔԒcƌJH3\$5&MH3FLhipYdvbv @#%F R -,+ea˓{X rؠAƌ z3\|h(u.8ދӍYԈ36wҨF,!U( I?o[\qĦ6^|5h|@t[V -u԰@wa)f0_ViEuk 򭘲Scv4[M 'c0 F.)>d?Gp (@Ak+%0GOf{~T/O9x-"φ $LUqPcx3X=:eG}H!};Q)a;fU>$+%N[~@P2~6k zmNX7kCiSaċYu*=qk4qWtW$bXDjw̬'>h1!%ƒ@u%qpȢF-&2^|H3_>@b'Т&B -7jacՎ#>EnjZn`! &$2(T1V=l,h3ThqB --5H(%\'$\\sE׉/u'h8cS'N8NTYpVI@sZNd I<RPQA1C AHlʚ$*+k=dn4dPH7hOa!a ?@b(W!EE`'`(9hQJWآpW ;H3Y>Ę*OR RSsv5hr&vC\Gz:GzO8I0bkqe'iDwa q*lYuΫ11O49qu+>X7l$:"g Q6hb+bb!Ӗ5]Aq\A| ~t#|~~a0V;dr4bJ R HLDTzI 8p7$DLy8bT|],MT),CB|8bQ6_.=G4"<kĖMJBҁTŅd>rX">HWY*mƜęR(DDø[̰›(fIzyܲt7PF8k{زOܯym݄AӍ^M # s4]L""hd)@I`N##hNx4q.3! b='mJ)E svb8$`؁EO6,f3&b!&0/TKD1 u# A8GKcE4ETBE m&/jxK0!8bU"OVi?q["81 ,IpNԺںBʙo߈IqDZo!gA Mu5*>D bk)3VL>nXf \16]Q'b؈"J6_&iDvd:q'YxK̉BA/Kx4xqD)H.Ko\e Pq>.(R6eq0(456}Q"|Ҭ|0U8z0P7z0RI=0ׄ1.;£(1k -an`t A'0*䉛AD![|hYev0T:x2` )oʚ۔xS&l9At[9dS&Eu'N$Papdx4\LԈԒ$$Zxy*a +` nxq'7^ `6ݑ6BD.>DB8) G, K<).@6ER:cգ7dK s0' gx3]L'G͉Ɵ  *4D(}b[?qD'kj -{޴D-^. [:o'45хCFIFH: $d݅B^"裦 3Z>5* ߨsVqȢvЬz8ceӶ5@2DT$WldQEWԄ7N-XH8Y -=( 4!!]|t-IG3^pΤ¡ a@;z a %9cUMo!b%f%%xx Xs`z3]JLS - R/G^:egÅIs'ՃW#I4`K!LarFˈTejр-3`=&P7Č;lV.Ke)'CqmƜD%EGx;rH/U-H.KQ 'dX6dQNU"Li;mTEJ8 -(hcQgyD:,'jkF(2F@@rM,1AAzד(3Y4\L!qGm0_c@JF `SPAP6wЮx)i,@DTDAqȢFu_AA~e@sZ(kI)%PjIj˦D1p,[æI8_SZI$%CԅΤ:NI7`RrV#T8ӥ0%, $2[K5NKAkqX" ]/3&PF6%6ƃB6)QgJ{5_K&̇V% dM,15_Nb Oī{x -*k"vԨxNA{B%e -,laCD%y>pZ}x3 -*m6?!BL|>n?C&mxUPJI-`h*u]'QltqqƦ~ Y=nX]mIu7}u6C65ތE3(QG;iUQ ]\΋ DHĺ %dO: ޸ -)j7F5Q^`6a,%#AK(UH1KQki?pX>5,TZ0U8z3Z>¡#\D4n 7nF4u:đZlБmx.C8t%Iu[F:{F@Y8˗CV%Uu)& * UTY;iUmSJye;iU}'X9/M9z/N73.kq!u#e*ѓix9fWa[q>qY\'Jq -{زxNA -yخ8!]\E55/1*k -uԨOVxuVAc8DgsҦĞ8+N "7n "%8"և|!D5.A87E nēDF:8 -)d!>4فqFz $e 'iqD1}޴N1;iU]΋-1O01m3*fC I)E ഺ[oĐQE1D/ߏ[ȃiFs`P/ؔX$Q@?~=D._Џ߈C6%EBvZP.b(HX -ՅDF"#cc a>_Q -5ވA1H[ma7ar/=|*MYS!{.=#.Tiq#bc'uHx Xs -]Ԡ[&Bq֢_^ MفF:#)r -gĚ.'^$ވM3YN sah8 !\arlš8MS!hCRx4m,%cFŃ渠n^FTNٔ{ڮxSh%xE9fTݖNf%OI2Z>@.D~IY%_U|CTxUPY!u)*$e WI$G|CuaYV0fQ@AzWyBABuԦ+>""%f/uTv_mM ~ap/RI=qĦD)˩aut`DW' DWAxA%XvQ`ApLAaT0Ry@>"0x, 0+aTx,P|AP лa\ H&ʑ .LaVxv<0CKz=uX<#\Dx/n Qp&]10'b&sBC7ElDq=q/b]TuҪPkAQLLaEMR uS -@]8 '=Rbz0U8z8eQ")m .GV%pubpK0!ETȺҺrE o@#<.P8Jz)` - $C]8 aKH@SBB)Ly1_['9J݀D7 sF@Ñ^#pWP~tHƒ|:jRw#,ФŠ&ib ,mn8 aJz$t @$qq jG:QŔ2K#bO<9=.^p*w'R091ȗO笪 1pB#ChdC ~|)1M(G.Q# "^a@@hB&I2XJ<.<(Vދԍ_$M7dB8+цIKkoΜxmDEM$#@u:U ,l㐐P]ƗTRiGGo(ARU@NF5i#F1qp!ĞHhqG I 0.b]`qQ@޾]8^L4!-@‹A*H (pSHY/0'AD ,p#cvvhLz"W1em59B` Ӗ5ބI>sY k"x[UpIĝ rP׭t$)J$)kAm80hxFz)i o;hW<ŔqN -AY\In48e&xPRODA B68>l笇-q7^Q/O3)'`J/Bgx.>npa5^pYAP1t-'#qG$WyQ+Q+UB܃MIZ:ԅ+I3†4ނ X [TI! ㊛ =5`ONMH oE n܅PFt`&@`\Ú$DKq Wf - @Ox2'f( Pf ;AZC"A !pH*ATx*qVDd1 y;dT8@8,)D/8"I'!L>$ /%eq; q!F-1fwy7aP݃( - ^ѓ4qD1>d$E x$DMF*p쉳e8b8̍'d|-ce#,''&qFK ThA! -3L@iqSi7jP<")a❀4~#6%lI6)Oi!g:4~S&l57eQ`PW5Uz WO p;!TIx -+fH#Nz+@X - tVw"nAPD˥^p2XJ\Gs6u2_9$Dܗ$N|('\{1@BQBB X$0$ 㱸&&:Hx' -8R#L񥀁']EQhn+F̩aA -",ARں -(jc`_"ā`BցDVF DI -AG-@,/)#&z4YNa̔RL)GO&GH[6]Nݧ-k%|--=d+ȠS,J|0Q;z-"xF~-3T#^]] d@A(C]"Xb Y7l4AD/qZWMGďj8-] F*GG' -c^FZRZX@ - -)07eOUƋ |JBk٘5tG-4d2 O淃ߐ=qUxe|'M+RPd94[KGjd6]Ra rHa |Tu )h&q? h:#p%Mx6 ; \BHφ Iu/J6 &)oTD"ʚFHU|/^(q[lJ7`Rd-9hSrYNRAY]F d~=OxQ3_чQDjPp>mZ= ,@OHA@X"b(u!`.tC['B"VbYev0V74.BXR$ -_ Ѕ)%*'q4ژbU\8R h -fz UBv]9mR]C%t=1PKbN/3 ,l]]H -TA{݄A  o qāS@rq.,E}^ր MF :.W K]zF@0uV: -*g'.'K-,K|4_J\f*بIZR:QGSXވ90_ BI~2>P%$!DbD$6Iѻ`9u I AEM$qGC yҬĢ|޴:w@'B"fqĤYUABr^#%h0lU\Qu57cQ"#55E5`Nדh%ڄ9$j,G8hP"А+ċD _ Yz^M`tȣf}ⰨubWz8bT-kiF7,!H%brnʞB&PO@e,L&g%i(˜Xs"HR6X!wX @::._͖S9)1Kbqmj8d ^@*Tx!h@  mm]ohKz0M09>pX]FK)o̞BRz ,$pI7D# -%S:;~5sĮ: ^6Cl͘īQBʘ#˨d 40 bX69h2JQXX` Cpc5'ƾ9nQm=Q1'k:V7]D+|${f|OwNP߷~c} -o#4{Ŷ_I񯒢{pO}f - kn -ÿ+76în1{mlx,=XU Ч!P`2/n(WгbtLFGӫycwQr!ﭠ? uSwFnu~Kϩ)L-[i-ߥs.lpռjŷw60c >Ջ/iqyܠ{-8zx1E}8b4ܴQcCP{J BnI@Xơ9stejSq_  1M)^{FZ.{@=f|m`l׺ &SfoS]g-?myI5Ϳ~78A ȝw!z.Zǽ桡~zh7տ>mx]/q|{##ܴ^[f 3;n%0ۮWGݯ?f8pO?%{FE ?g)/4"6c?'aؠ[ Y!7PX"6WCz -4z߫G1]3}>\go/4k^,?x|4{rH _ܗ^7n)4^wcXОޡnXw n]%+w)}ᬽIQEIVR)f6Zmk2Зy:rYnLW(R݇\,߂3;YAȎs?ܰR5N#|sTQIG[Q4d?+rA\j_47F*Nϖ-DYqnݕs?k !|9Tҹ_WRF?&uM0DצH. 8O!sdBc);l+39~7:8,DQ=Kou6d٩á>C8;T{S o$Ɯ_X /\/TM!Ԏ˾WZaV8vZp+y atu%#J}(v.U 3Zf T/ҚA5HM*9xG&vK :@ -=~ t/T &ҁOOEʽm)".Ͼ7GI䋶B0*jm(UiG'k:JC Çs3 K'p7$nj=)h)f -EҤ1'll1ȉN}n*Р1%aӖaNBU٣M{Ws|D".L]MwFXV -K…vMuAL{㋚ $ ('WtxJN'4sTVoæ2L1+6ء$Bl+ʷi9 w*dHxAX^0Q8M m;҂|evWfɰ@%6Hey)o#tčZ;҆1R"܃jRb錏 p\U{!ߗCv=/҆!%4EXsiyC͝9h>_'H(PX]?dvɑЎ>Tz ͑M [:Rܷ;Q 6c\}"F-fꎀB3سa~s'$'nїUDŽʩ.7c-{ͮ z 6̱'E"ryE@D!uO.젶^ı08%c>dӤm7}E b&Dᖟ%+=/@ar-iVB;ѣ!D 0+/ȖM'U4 JQweO6 1HUi4`\ Tls(Xғ~v)ҡ"LإS|?*o'k]xl -(ŠF{ -^)G>`˄[QO_j! }`Jtsn{ĻF U#D&TIeC+/;6 bzȎ;[bd8!Eq;7WyVm8E -_0)]~pZ% d\7>6g 먜'xwOeRT.4ET9+8oaw#7ѭ5]ھ r̛8C 2u -Qu {|/"ͮ>nGT*amN$.PLD fâRǮ b7^6.:S\T&::ywʼLO)b:jviXԬśS.6\dbE~1m -&qul#hTD"ȿ3>8[_2!z5Iզ2sMvKVi |o.@ |Pl7FKH$y wkY -\"%hdN F0X$Dֿcg0; -"~g«ؑ[~GFG9` hq)4a"a #pEdbNTq"K'鍎s`)vQ'HcWHp1]_L玺:,hl h(l$QG3"v1Ғ}#7r -}E)л̥0xIq3"cdI7 -R_]ahOcBῩ{tb01[WA9a -f(+*%c6/@ic3k#5 RSe1m}-K voPCڦUUn匴øMasQw(* `ȹ{tt7^'b Q3;c[@u${xꟼ+0y$(qQd+" MX.2WB[NK!C\) ao軤bLG9qDM6r-,`L -ڀr-;Bo JS6ٿHhr)l77ݱsKG- sK[뿆=E$[~݉I,Mn0_PYδ{hSX SW'@<I>\ Q6ТG_& L ~5sP)MEMJ^e]^qHL+9|,'G gRdC\HR =T@t_𤉚x7C1϶U,u4L܃im\Dl2xG9b썘1"z6j5ӝ1)ٷ"EhVbZ[jxnDA;[~qu FKF(|hv XhEX"z.;pNDhq g&Aa]6&ݾe@ֿ"`}Q[@A"\C.i˨KVT.FRD32KADnVd .= (u'',Y0{/h"/;^1J\߶#)$oЈ䲗N60##J{,hyܣи[Erafa#ȭM4/<yץD$ipdԉPH*.B-𝗊r ?j`?*)actB-XĻhsXY{:\wk8N)Zh Qet7:XXWBS:̳~c$FNb7<ˠ -syTBRk}IPynB!r̨i -6Nz>xl*0 -\ <2Tp6Z&st\%\CӮfo3*hۚOO:Pm H9w=-~QV7⧺Pxnos]kaIvqӽ(Dh@-J%֔fι W$k3 eڠ)6ӊݫeEqmŕbryO#D;=⃶d@{ 7>3)Ő@e:ڜ$fJpՂ3$2H?k:*r[C8 b㶧F7' -QyGiGBD'( )9 ٍJwSo\*Ҳ ]N=[P_R.]$s"N~HP}o/s4Bh}7Ufi X^ #LMԸ6*C'UD sEY@đO~UápHj%".?}Mx #4?7u䡫RO:]+`dkw@?r%gI^~W3.]>įiQ} z2zqs]547 -1]Jp 8Ӣ@tnLJ" YPT$L'$E ^K-3 y#*Aӟ=đi5Irdj)wR_TߪR:j6g%0u&jF8~k Ӟ&&ky@Q!3_0tAM2~R0aVt݈H=Ύ3 zG!Bٮh4ĨAtM/a.dtQldeg̑5|孉0&UˉB2.hT pzaQL8@Dq@/e1"εI -倸*-+V&]2G󬋚断3.BbHw]d5 j!x̽>stream -q5r2`EglZ/EVZjgqX%,Җ/ٽ+?ƁruBgP,h Lo"1V"̳#JNLBu3{ r/[ɣw7=j˷2E$+A2 |x,W:Q%eϘ՜JEf>9BmEnA\u+jJ1?Ǟ3H]aprŗ"Cۭf$B p81 v` ~bΆ>߉3:>\2g?J;0A0úͯĥ#9N܃4h,Tҋ/k-jLnRسOUYSUAs"]ɠp& pUi!y>C$`u$c9Z R&jmkpN4 wMs{UV hFŖ+]CŀLYSˡ3ݨ2~dЈYi$*(fubhIf@Uv*isXL:^Egu&w6P?[n)+& ۶ -в]Vk兲A˿a85 *c]߇"t%4'Jy~ -]^Yˉh*MZ5M.МoI n*_w"UѨA -cZ&O1oODy([s)Oڽ:}NLq" >%HPUDg tAPd$ θi £MZ~Y9*^pL " ZEp -Ȏ5ʓڔ;J G -"0܇=%g3pJ.Pr4G,S=lq~)Ylz̾_q45{ba -Ok\s+ >Ghyvv!`!,+sUnRTwXu֯┏2Gqjx_5 /Yzd>6#bzjxuSq -퉑zߥ?m$hڈUP9k'HD7 E5ZrGR!C̿ -я2f*B*"<}$!.(0='_˃iGNKZ6FUsc-'tI0a(NoZE$Dl|4,d|E6{"]m!5]nQ%^- Em2~ D-oJz;Go7[T&@<k~)FsjY)$]`ā exsi"omnSkdJ*h<L3wW KԈb($ 6܄vdQ~~wC l&6 ^ٓAN -EhBUh0?m_[J"ӗ#%hQ HHSD+^81;rʽVZ*0;a`*:= C(x6 l_"T4: -Zc4~u䉋sD.Pl=,{$$'RS)fU)Fv$ -YJ|c@nNݩ6dffYK.d<'AAڰhAw;.;٥8GAM=rX÷)})Ս?7vxgS3ucBK{cMSU) 2:l2#l"C=_fxC^WV<E. -;Xϑ\!2Y6 V(߱X9Fx4 jL$,>B &#(ӛ9Wn>707)S aGS[x_X*P,5V0ou!SD$]@k"Mt/J L>߸YR+/(W ݡAe -*xq2ͲҰ[#* - ?hY.km sȻf4W0gviuOԝ-l7|BDk -9Psb(Tc'eckSwG\Ix`|S$Lt7=s((t3O$RO NTZc\GQ;l8:iGyVI`aɄxSIB d8 3ZѲfJߌWϔ)?%l3Rә0G. w΁(Kop,#璧E󄄾IpH~: I]bN8{{Wm)ɻI!& J΂sGf3 yhyHFs\O4(b+5?Гtq|/_PɚY[^6?0l*( (Ny>b4&cV4=Š3pk=H3IJ2T,Facxv1 G|?g2*(7Ly;Vm!Tٙͧ t7ͼ.oP8Qݺ[y9fS;SSf#.\>'Ll3 H22xՠ<+yGyt S1~{r)0( (}A}%FNTOLm]qNcz-O_!E:2,sv(?ϼ.K[ؾ#QP>ҵ&m'ёj/ĸBЭ] p/ +7_:q^A!4 ;堔I bB( ^OGؐtar+rCmfqeYe<<;% awu҅؏_! jǥVBJ5K޵atAok#;eaY3g>ޭiq%҈h$eEM|mXlƵSYU3m -ɳ~6[C"gdO'Ӗ^ıAR/MN{/uضzʀ`DQ9Sz4@ElMėVF n117tzԩ6"҂lhnA<"+ -Kl kxhD%)Yv1$v9 `9Z2I^9@!馲D}_@#p|!QCs^ 8E¨^9XK!h㹸UЁGu4 3 iSO$V~x-"TI,9Ykqdr0?¡^'`oʒ`9o ŮctQ-A1nDc&TJmI -Hj%`te0:f[ݣV5\rFo0 [0"Si4Y"_|;YA(fFh(JÔ_cqc݊JSk+ z1 X 89tfhQϟh5ny}@y<whre!!Np;ez+daփ#}3Jh%f nfp-ZyIf --ѮYLA%QJEzH?߁d~n]VI_=Rȶ._4_:8BƑ#̛LK -]kLX3[v?*\ؒPU_P]8*tISah~=rNSQ9(r'>%d3P'$WW LjsaX;M'CIx8^tÈI=Vك{0AA̫>̝N(C=?:DݰdNpo! R遀&1~ALvN(8 B(;'c⑐BHD'B_$p[7;'R !ʜ,2(bzqbE"##Nq-6p"uLG>?B[8y -q`E-|oHdM( q$&D6*MIJlD%&u) (P%.cD*KW[JMjKĄ$JL-%X&MEs;gLJwM,gRK4LXkLI'r Gdrm' #c2PDx:FZYX,(}`"8<5(ȆHEF[PP,Y1ERlSEL6T҆"εnQEHэ?#Ѩ70zi\ܓãGD~p@hD.eE qp""G%"@"r!%>dr!K/G2tqQ!!!ё99, x8|Y+ΐXǛ iC6v<x!j-dގ, - QH1 Mȑq@:$d`!Pņ&iB0A"?)iE~@0\(Ms -rN?f`JMȾ gv?cN -pj#({?$ڏqg\ DVc@3L=~L pnv9 $K"A/ b>2QԷ "cu|8q r h{Z{0G p(m;P q2HzLP\=WK==Nx2 OFy{%șG ^o܄o̙Fqz#XʨDf v&o0<QQn"_ENJĕxXDĸ1"r"7ocߋ$psHJCcBx,#3ZmiɈ6(s#Ɔ%*1(ccw$հA##g_>5^#aT$ڭs5* -I«!f5ƃ -F$fj]$'t#Y5Z$Ƒ$4V$MʖDMI6MBHiI$di%ٍ%$t`0%*84 Rh$V:Nq+I3Ē[>cYrD[a-3$:.3p%"q|_rfٌ!m0f@XLɪѠL"3ΘI~r&҉ș$4mxTeY횬\fe*|JkI+peNR u1 -NmxEs.X'}.7:pdH>d\u2\ $jE,(?5D5Ja%ݱQEF -⩊ /,.T)“ZZ:饄+fS"g^ؔ+(f<m*> %=y<=So -* -rQ V0@*_&> JbLT]EW*O}mܦEV1~XU*d*dؚJTQWQ*h^T\&5c記Eűg%Y@VdkЧ(sJzN&W-]) -KSL%a"ϥ`D1 ,(F)e3h%fGErX#2DzjaQ"LFQ\W{Dfy=ibT(H B90(BzuqO)-O}WHDh'xJKy"NNlh'E{TЉ{iRsXɑ|/'ƌ5lj˾2Zv0'jВyZT(tqm.evu,vL-TsLM-˜@Gr&ZF^WX:&έǺͿ6aZYި51ִLGoZv>/-DeB2L5&\ p\KDˈ]%&hW'%6F 8DŪĆOT\gJ+Z$H_Pbh9I,g$&dDʠb+ip,h˄KJ5m{Iph& $ͨ)hf _s w3/o [P;bvxL){ơP39M;S2ԕРY:bbĞJ>f@sh4ėCCԘ)Aq(&@̪[Y_M>߰XS?Jt F5sCɹf)n IxM:6\洺jfC† УÆA&k3 [9tQ4AVFH5t]yrj3FqmeQ tۀ wY 'q&^gdP nq]7mxK3,͞P@c˰~2`uRF@fIH2`oDG\bw 48̍ae '@S s[gx8/GA[8 őq 5N(by : q!վPؐ5GNS/lGHdpG+ܹ,W A!UhEU(>;TQ*Ԅ;Z=y3)h -K_ -{`R0G:!PwnJXDaPݙ ;젰?d -{'Ÿ}GO<_=ϋ?=)uu)@O]&67f QJy4Yf<[Pt,GaMb}$ф=} dK}&݅vQt3*?|k8V`P>@ y"b ,Tb EHKҜ"ZM=,p=<U0]\;FRu̿ Ã@)~-WEgAG%zB.w 44C"˹Fm8Wsl?H:H!V pzsULv9 qKP%MKINAm@X?7 - -i:29(,zc7Q1enÙSTYsyrUDM({rk{7oLF<(m׹6(j^3 K "\4*A\e>1Zh({s?LH  -#4huP`-iYX0Xh@lz@uW^ kgl&/M7`eA\nIwOI#k -WJsqb wk\S |}@/W1s`=-Ir 倊͕Sa`* ~'[5 b|h0cy1  XD=P|A@D-zz9"xWwlS6 D2 $R L"ǢgXB-Zϟ].-~ͲqCԧ%cW {+JoX< -x_LgbWph=N]VV: V&+pů%cbnp2*h^Tu |e@L즠#0.Me)K_3n V& -4QFX% -N#Y4P6=~m.8ugKEyx'PC]:es3Ã`xQ7A 8:p* 0~ cÙB'V;p:u^ y׺^^`J os C ̫Ě_y]hpg"@1;N ֎^R6%-zAG @`ߎ. o8_k-c6::oM}nSV|&eE$*yj\Q+94I( -i c숀MEA[:3ʤK[@7WJ* Anyb&KZ@^1`ՖK%x8rbtV6eHAaC KoH/gӣ#c17hM5vcAq]s$@ހcrN=ۂgea -EB1x Pt%D ?JpawS8~6:G Lp@HbmI={(>4~hT>^n`Ǜ@{[%'Al)ֶ]б˯t($,Kz'eH古`@eIM%Jx|RE?ڦ$ KxZ{31$F1w]} MUv7Qm4`|휞{Gŧ4wkP{635cGgA`x"wQo/ N!JFm^u/Rٸ扏On1iIwp -3{{V'*FO H=wM ȅ,U} -mc~؎ fMȴFߚ=ww] -5/{CӾLsMdDw'װLH@O>?~Y -ӯz{glm./ 7m?lẽ1~l4jc8MxDlޒoړ?WJD{FwrorRJOe_)R LԄWd_ԓx#WfMCcV҈= ֋*џ"AG MkT~TAK]^1&\z,hAދPpD K}Ĵ>CT7S}ĸ3zTFe^Dd^H~qߊN̨&*JRLu@ZQO30ɷ9xZFk#]Nʈ<5h4}50Kw^q{w<ȷfҵ Jk-wإ(DzCH -%7Y^7%UEC2U}iPX_! -*nsc"}xi~|s ݃>~702[??1'8|IdPϋrjF|y6y~:PLJycDx!?B*\7_iN}|jӴe[~HlC<5V-kQOs5[udV(2SV90Fi]7H+6۱YKrݛWKкHU1_XܞڬgZycE9_ -|A~<Y|/\ &hNZ.hl;)!ZQ o#OaATIHe IE"IS8 ?ׄ|\8_Ǫ:@;@bQ*?IxqR_L|@$p L9U7W/ζ18pg.w<xDb,A#V1/Il KtkŃ 5  -Wrpx!>5gPӃ:?`3(<\3qlɕĽrDquyǽ$RX):RqM.s>iVAT}`1%ƇvBj"{EO0Mo|}W@ITo]-j;D @xhJi,QƔvx![B_+7 I~W qω渦V g8Y@V?46 -O^v&^6*x?DH-_4،7-cU0vMA~ξ6KOd)즿=`wTy죥luզIw?u@[bsׇ`n0* UjrfgwߺS"σazA`ѥH^:K OKgb+ǺreoX 8JB#_R UjuH.c";)!PXdWA1O~w?7g:B}@%Sߙۈ:@SS_A3+hHEE-Ior9C}l)^شf1fPpԵC)ɒ^Podz԰knsg.ŠAo ,yx`A=6 -ݚ0"b -eJu2u:߈彅yP'.FхF,=*nu"8( - 9U냺Y%N=TrMGP.̊~Ff pf1UU/5zՃrԥxbO:xI(-P1z0a-5^F"p{>TfFڡh=dRo08MұT20f|dKy6>qQ4/?+'+H:;u*H\_eGAlJΖo~rMGѫ4 хH&.}kUCZI =[;xuY[؄E5dϠDg8 |@/Nd9^~f׼lyBh'#JSyy>!9͋\6`7Dpmhm{lKî+l.[?R5Ьe*)|^ XTnҼ @##LeNgKV^ 8bjFd/Lxzqxu-v".6Tw˖QmcZzVt]UFOq$i"_ P{O<> 踓&DXao?=>[Y=8uMty7)^(m#.wHz'=}y 78׾)K-ZYp{87R;zjF9|\ʅ(.-o!$ 4gK.B".O O S)E+<綁)\fWw41%D1Ils}~6DxNG5˜ e^jT ~a*#MkRbW}qC|JE%sCGt4 -<;*`~Uq.l3Nt , g Ti7bb/g{!| axzkЌo]K**'-tr@8LROޓP]F>F-w^D{Gؙ|(:8j@4 "-2e G h6& -XI#-B{|ʹ{[#bϫPnӻX?pTqyS^m[_D3ނrV=n:rS y KB@w~Ɖzxg2hٍ0a 0|-Q_!psmoC$NR3ҶBy'ζV}IBTqQUtL BJU#2ct k$&[9!+li-% %#ڋVM`oN<6OvA"#)v5կ_GqTv h(⃴О> ~#=L5<Fn]*g -0V/;{2Ra* v]7]h- -5['AXGm1˙c:1ִjqp_ŎLͦ^n={Q~Iد/]s~R%@l%iC{hu"{QX]G݉طεE^]V.dտgqg&SUk-Gk -+RA_i׬]=D :(Ny6ڕւNnS3u]kCuTKIТ6A1u`+N^uz`T %fKS:˷eas~)Z]EVBPAy9}rjş19"fUhdcOKY;l|6r񙇬[s6%! 4 uUVer^۩+4㞝ոRkg-OBbo([w E:p? ƅȎa ZSioUS>{[(,uBYS-~4tu'`V ՖǤ?A[t?C4\ڌT,l U]V[B-ն,x%Gʇ,EרF.֊⠚j߿v OQa -VU5 -MPeM cꓬ/5duO+$VE^Ed/$(E]ڵh䬫@Rc$kF=Ѐ zӜx:>@(r>nOA>uHmZ$s> `2)[XeI_)Pjgp`Je|hUxm_UsPwBKUōKS饉cr`v͘ kwLu0F]Li;_P"sލBSg߭[CEn537 (},0*-]nWr) Uijݼ8ē-E uڌwՂ&kJT|MK=:S}7n< -hR.ƧM0-T[8?S2uIU:>*UԂ<+kʌR$+F*7k8bPF".+ryڤ8 (+2J?ꊣZU6 H!ڭuFkHRh'F+GWf0L7M̍r{ -oWf,U6^2T_Q_ÇwfR(_WJKwH%^* +̯?' -s3W򰪛El*䂞{ˆwVxh?s?X"*&߁`Y*q(7K3Y We#q_̩Y(ǥ^1>},? ƏO61aٍ?cMQÚcM\^hDK[, rQT!$--o=q{%Acְ?LcS^|t`7+#>UY^y@+q' -D0CFg"S&oٵvSWZY!T@fm[^䙧1y d$9Bq{_2@2p3`@+0-RJ) "Y<= >ey/l YR;Ṋ _Ćf7P9q>̧.'SP> +H 4brė%2XG),$ir2IU#E2D.zW[e˛of_岦;BsD1+ږT48R rOSы^Oj56y̤{ u7B-IKkJ/ɛ*{ h3I~R$dڢ9bE'RifBHTyk|vwTAxsD84cΡ|CƻYr}#HqYV},3ޫLRw2 +ko e(ѝjeC/!gմ*rwK +ubk3uoYtMSQN߭drG(H4y^v͎.mwCj/ٜݛ<ۭ3bHZTCNj|BZZdL+eFWLX3nkM?o)8WbHAG5\"F0Ki҅RY +sDS#{e2jRFgd6sb{J(uɒD5W*-%沰LTgSZ\gKtc~'7^Eң*aM!fRI#TÙezeFiR;XB+Ys^i^C%MXFDۉ*Q婗HWBl6AxU3*M-]υYv|3˹3d5vw>BhTg.򃖒5qs HUO q:2Umf(jݲ&DhWٝ]M]΋n·chQ e؋sfz.-}kW/|W8MFAps&Zw.Dc$[Iw\ɹWbmܻOIܯ?zAjf6]*.}F?SeӐ~2uX665K;Gl{M6hYJus.Mb%{v}g;Jnʞ;y.ݺeEk zx1Q즫2X]eݭ6E&^xGe'f8ߧkeQ+3-3ӓ|7b2c9SuB?C4곮ʩ|ݽԑёSw4WzXg ŕI(Ta%e}6$}Yd;BCF\0ݫdFt7A#Q +RlxTJR} je]X; +}w̖PQ3`o\DLϱ-玿$<3Ye"z]H:vu?i|6k+{Y:iw7 IբA\wy#σw5Cɳ EJ:R|vYZo3#"M3_ޞd&4{)U7&~z{ %ٔl~=>#r=]VD n”xT6BDrC3!>.l#%}*}7)>L}OݑZ5{/Sj5%j{eQOd)M9oؤslOY$#,ʒk6VE<`5Z}WWؚoF'͞Jf:5߳3J~{#[8?6A\9ߤ9.e')%KvA"]>=wM@)ǩ.exWWzJM&OL*խ,+&VAKLjҸ]VNϒd~xy,Τe˄~Ia/g,|Zk-GWߍvϻSɷW[]clL2_#M!gA:[-XrԲيlMɓ4(3_JNy)XX$K9OeWd"|f|Z罖(D= Q 4w-~jM3}KoybMgWDZLo*od^XeZVݱbVڽlFJ]*'Ii׽$f,hEإt%ws#E^k,3))v$m +;үMƑ64?2z[ND&-$O| _×srg/yr^"Τ.DAŹ?>f?F鷦HLuYj4~eZJ1u奲J&VLۍ >BH7m˞tY^*_9Ϧ4KcÑ5uGP k`;..zsy%JT6k|K%|T9{S<>*aɯ&~[O2ˌbz| "P]:򎲮{!ąEw +=% +0UuL}qt'yG*;kZ,e&ezjFiDF,v|;,s |$X:=q| +R?ukFXL)8eeV#{\j0zK@P4'mJuHk;,@V.T9@(Fo)qGhwFj1cF&=ٝhIQ˛́UWKBE\'Gɑ53#څJi7ӑhL(C$AU[kР:zГldnIY}nW%(OQd8ڥW63&:"2zHNfCd5jY&y吭hUD8vZ38V5+Ne"jfӪю%b6J(~n&9L$yhl3o#}X֒IN2(6"g抜x͋L}S.cY1#}&WXpnJKҪZraHLgKmVݳ\g_֙6Wg2:;َP$b=!~)Yc -飘zϞvewM= ,6l8CD|gS2T*.)Ns(5bYVuE֪IK]OȬcy4A*G(RfOc]]K.!>,[ftw=o*H/R՘CSX3*L %|HxUtmej!B+&/[D˰9 eхyld랻>'k2 ubri=b0u#ιxCדg1txteֈ}Tε^ꬲ4MJ}%Mus~h ?D":I) Ɗ[4Y ZS +H6';::Y,b2ϔZdd^-J|'/ſ"$)g?c +}ljh_aه t؎2M>˚N_|Yݪ[s:J~eG,i/TOQeU#̔qΤګ&aoru>d2q%ǽ<ٌs!`\PNv5,tcg7n'6g҉s*>$UPsTh'#YoKu~~) (_,8sCsZ _a(e4|Λ!e=hֹd*F4wo%SYwĻIkiMKhsC[2!LȒNtDG5"'Y)|: Ш~Gʺ )Hd銵>RŪ#x> =A䝕MWvΕYڜdGf#xdW;Qe3ڬ. vvti}P.Gpe"ەLt̯ʧ04 "IjI!+CVShULLP5nz(%KN8fF8%NF%_U~N#F$ VRUL*vJ ^7aN +%JF ~PڱA2f[YϮtWS4KC62铇Ds݌&IG$)KG$4'!J*vG袍b6y?h^&fÝ +qfPtzf6-ZoF#ӽ ];}9;MWW'=Uڙ +֗uwG[:{_l|Yx7(ɤ6^>JNOn;cOu yGf8+gБUF^0(tnwxqFϡI,dr%KkfGw5ݯIݗSٗ>Rە*FZW\(יG[xXzV-5b1kgˬɩ:LvK[ Q|W]i3gŮ:洕eF ,m&Q:ʩpx'Yf!tdn[wfbvXdEwZ}8R7>ͪU7Gt余+M3Aug9SJx~}pDR7xB7Zt?KD;OAI4^FRMT{GІbj*,^%}7!J}p>Fh2/ӟ}v<3*e9IO{N*p:e6mfcXS8Φ8(.I4{6qSQ&.G`~gYnF+4 ߫osWdv#&n!+ Y?LcY4pj$iyg7Y6|gP撜ŪoL|pl2&T6()%̑Ϋ:7A+E(9wTG~*kK3yj>4 qLnÖDccsѬ5xH͎R<Zi>g't({2cgR!|LKkΤ!4{͓"֪^K2 hwU-z>Q 6JMGHۜZ˻}9Lhz3[hZ `ִW9ތ[R7{vHFî }&_y{ϩkFVc}XˤrP^~NViT1E>Q!DŽU9{ִY$"= ˁVFHIbFw$q8v0If(˩&'٘V 2m=)) AxP*,4  +p X` + <ߋ$.*(&THAp0 x@!<0QB]H *  +$0.`e$I)_Ŧ$HɄX\y$v#OQ$SֈU()OH'Y2DIapF(z2<'b^:5(iFĔ:YRZĕy4-vtW!,LS($'92DKN{{xކZ&yG#Hv1C$|v(s8hc5zE.gn\>9g1>k[K;Ndun`{H96~;R}FGM;Dù4q1b~J<=ي{%͙kqܣݫI{ZECys"SU`"l?;f8%34l6vT7ҲyN3<ÏL ϦgUJ,?k8 x8fcUtHvhu7(u:}#M4x#PK0K&fFZ iuP>* kzIzEjך[r8ct,':A'1ΤAm3|ߎ0Hh$+V[[;&\^iaT7-_7jvTSN=O.X(4 +]dr_ Xe78x8X?R,Y2H'R$N  ga~Xݔ݈Ԉ]ae7s$N&MMj܃x›q-VgQMS龩]S^Ss]:[iX&d:$$t5t/kf󪬇.R+u-'Ѝzv:w奏^Ժ)ʅ'b22|g>D2!!M WO퉬z\m _ӧ9tEծ9iB2RG[N':ڥϒ}K2rrH*++.+](x<^(tf9μlcN3nѠzfk, Gcsj$Cb8CGR)xygG)vgab&F URx'gL&\)WNSVX9H-)#)J!~.dv'bHNX%仼/9J9¢Hgfx#o{S ?c٫ fuq%s81' Ccs s9tҞ6#M:,LRi+_H9NK2xќItnI:;U%(tݾk213+?I>&wJB#E5! tS],&}3쨞FeY9nJ[aSxTڬODʣׇ>jqJL3~(ۺꞪ&cV9>+=ds0r%+;.1szC"[[Tκlf,QZ"OagV累C_ou~bg߹Hdev7^]H۫ۄu#^d`RxYZ6b&U _MehXWw,W +.Xz)3UI;$¡DhjSW̓Q!>)dwV$ l!IѤIښGaHiH9(F9Xn:ew>sԠVwkag|wu';y69r4hw;>}Zw,%fGQ4JaMl0w̓!l|JhVhe5aj*J*~&$vs/SSM2Msj-kx%wG?}+Hc呭+S$ʢҽ9DsO"Dߋ(bc>W }9fjEΪQV-άR.5~*:!1V}N0Є“9*:DmWŴgWe9Uuӝѵƪ'>> ˼SrL<ዢM̬TYM$3òK4sm,Iye]e*1MH'6@n0O;We\w*讲D.2UJz)u)2םG9SdIhTv9VEcVα7zhE3̞1N7Rjn}.v!z!N=D!j?T}Ҩg}~H#Ϗm +Cf ]~̒^cͫ8bǯC1Ьڡ^_|vrWm ?mmvZ#yUFPQ%qTﴄQ?[|謢" ?&26pd"tqz ;~O/!>\6!r9WW/x># G{d˂+ud {iM%2t0BML,}8a$)ȁ=`:R< +r$jZBk"lP<"c ;Eᐐq 0 O:^u_wNoH)!# QȚa *dB3+h[d #{<2V +ĭ6ɌN\**΅ d\˅|MCdl/RLgl%9C^ i'KC!#kp Y=8\rq!siOhlvoL]!8 0@\4fYZ,6 +Ne4&$Fdԃ2F`ĪDvs T| zaۗ9GX"BS%nN"? ` #̖+X9޳,,'#XYHA"OC=xA9NlWX|5Rl;l週F<>%UfF~&icvl#(d\M,qe.q: Scpv?GkC'R.!J|gx GlZ_AIIB^KFaPN2H nH';;+R0n9zoV΃ Gʎ9\A5B"St + ]`45 uSa^,]h B$, 7SF9ĔP,G\Q SU0y/g+Ԙ̠2"h,On[0'b?+/oJ9^JxR1,1XqPEu}cɭ EHy#y!k[; f~YtM,[X9!8c;.yofV6Eg's˼ "y#댷57DϗbkpOz08"<;֌~~Ys2 ;X¥}Ġ}2RKnv+ڟHC{JD4)hgӯh=Q\FcOØAn+8dGw)tUc/ҒNI'ݚlO씆`%*2,"Kt.mZ.*LweKj:=}B:T5NSη4Z|A}ӻb=huE mSi€z~{l歀9X_N !PN,h2$b ]@~Pˢ+Q/ /!pXE`4;%/n{YGjـ#5KזHj%1 %Xl`T(gjH|I [Mݒ#zwn{JxWi` Vëd@q7JȎ"-6O5|bjԀ)4㱦QDLoh}tdF;5B{"H@.2, 7 k_Z%vj_{,&5,@0 .49wS ~PdQAY/r?> ]P〈D5XPn{ +꧹qd֙CB۠"[#=Nϔ5ꭟըy{WG F}3e@“iԍH7UXVS;wQ΂1W <.űz)ʲ uu,9uZ;eƯVl4^!q[_E.EkwDM:(Qpomnxp5$n(Z5>&v{~Z@ ؋RWu4tOٽh #1+{ YVB$meҙߣ3g#,OhG/ҹ'KKODěX<ܖug6s^۷~L~+5[NQF&ڐUn48ݝ#C~6en~ z?ڽETxؔ ]p%PwC=&bmԪ3XϿ'(ZZ[QG0ւ N9YOKO!ԴB3ROcG6h7 +*eV&U2rZa>)ଙ,bbՕD9uNW|ћ<[HFTj%~C76Φ J^z]h %^3q+-jNiŁE/MFmT$~;TA~#"(7D{`Z, IvK[:w%^L[P^ܿI +MooVfg"Co1]i$38.#`N 5]nd!p$4 +/ +x-W!%ldT jߎ!ys =LU.IH,LYg +8߉<54*:o;mªgIfvi7CPK#lÿ[z|ԾFoh%[*߫Pkj•ya _펴e|4󛶅/s03$7My7=ȡ)l'XpߛcBp1(fa?{/TxݷAu-5t߮ȱ|p+b,כ9q%),A6Fz_=Lgag>9A;m[%?hDUߋ8MY? NE-,4GO0y@3\|$%xۀSx֫|  +q6xY"e}ND-~,4)N +W2|(i' "t(d?@&m 2]Sl,3yޱӳEM׫"f&glSJ? eW$Tl⺫:04u_0Yϸ%"gI2Q3{7E$F%zQ p=qNS2.s##.>,1g1VL%3$Ĉ{߼ +cezģ@4 `$ĉl]NLa$n)^zL؇_)AEb!(]TEF%Q)^)!xF H,[^ǚ0 H2]*Vv|B=2ojnWy̩y1k&wT2VM[Y"b9UIԞQw &KYÇ̉uYrt0gs[myFңsny3xZH[zGy3 @k.@oA^@8|tOI +HC_:Olъn^4};ݣg)teJro0#BNtӫk<d^ӽr"yȎuQ_6:u˚Naʨk&YG֟ذKrh{? q.Cgy?C]{}S${5ڲpS2hߖJm;#ssܡ/۽<صҚ$܃r9CW,Iǭjw`G uj)b<G{/U*|<;&j1՗ѵwկ aߌXxpjSD> oj*O\ 8S33 "׻q ]A/)zsc/5PqO9榼_;޸#e9GwBԎ/ۢcJ!ϯ'8l1~!v +"e[ߤBg\koM[[9?#:?}4|Cnye~74XVU͜B?П61W nB}ą~J7b١c/.U-n]pnü3 32դIU?/ +,582"ߟ⏥+ۓh\$mLWko?K8@9;N)?acF +o68*Dźh_!&T>1B2w ?{HzHohL` IQe @, O;S9DHmj$o2AnOQu~UDeZ))pJ@1 3l3{ 8_:S9LP%{`r 4K@M)"`~v] LdB/޽MM?^Y9\P,`a+iU & 5R\pBҀ<(n~9PZ tߦ ++ + !_5}nm͑M*1tajo)GbXP3c}d0H,t)^k+3]fFGbbn³Ãol.d*ˢ4D;람O˥-VSќV}S +$fI9̟==+7ANL,P|L'0=F`;xȑxoW9OƋ$ AYڑDg&iRvaniW>~ 266.J<푙| E;:5FYyb^A?dj|. 3dTdL$eפ:vi[S~3k˻k3x)ousʶڟpb}mAoHF!5"@%Hڄًgs)B@1)-|c7 $KH&A[`HR0yPٱy]_3FSBJ ]{~5vx`H;;.c&];T'ΰȲbzM*ZI}\A#xÁۋOd:K@zpڝw~[e*dy +K?0:D.鐐r S03CTF*'B /Ȃxxc| +g~hJBB`OP +F\ks_bN5#[Bw^<0ˬQeu@>f`ⵔ4;+pb6'!@_xv?3rK Ph xcUyxյ9 'eNNck@oCN}<5<(TMe\ECU 2Έ~(@lWt뿔o:4'BT +0 qܥ b#0r_yH?0zSeWuʼ{т1Z9`(.` а7"2'R~s#GI✷`|0p)G@ן oϛC3yqsb,eG1+m쿄cұTF8|M- 7K)}=԰<͟M ۱BtZݓy9,NG20 =OGkf䰮>"?k + +3d:! +R:{ccLD$Xrۣ+G +#7]bn!CUF-Rg 7fQ7HyJ'oA_N H#P@qU/3d% ,b@QJnS82wtH[{^#8o8P.ND={.ݾǤlxA1{S]ɴOr-z+@>n ܳ`Kmi|qmuU |7ԡRe7Ӡ @>=FzRn {@o/phU[ӂtɰsU0w8VI}+| {YL :b:'|:Fn =[z +wqtk|"_ +LK(j r^,$3>9{9QH +_m 8.KC@&WJ}Ţ0ƍ(AH)dѹ9_BdCEQm@H̰|DPFCDڪ@GvjŲʻG/qt@ z_z9wJSWA`,WW nF'#!B~f"ff%x=Gӆ{[(e*[2Ka5o{-4{c3rƊml2 D| &T7I*F c* jWu.ϝPY`*SvǔW5& ԉ0 vL 9exYZ_Ώ $YM%b +ys5{(Jy*pSK0czxE-:NXݸUfbVۆ1MHo<}J5̋Z ?H?0/\A4b_:ek~/?r4w!4_)F )[)eDi4#O>C<8}`X3fa2"]T(diVL50<@*䠟J ;! Y:g#OAwlx푏 +pO'&c’Y^|@#?G(-Gx䤚;X${\u-ɶQ"$ Qң+$eϙ%"I:F@t ;|JAApj5W 4';z@W}W= +G._b1 ڙ"aIqi4" #¯1*Dt؍76Vm~CT0(945/."Ӛ/5d"ʑ L;U%&6T]%;0#:39z9K +apa]_*XueqB6Eo򆚵5Pͅ5xdz,_84g&a*.,>Xm참Zqe +,cP~2"G@\GLʌ]^c h5{:iavh=Nqʞu/0nќ 3^4qvc@/4@Ja6E.PG*.$pϒޑ(ߪR&5Opݡ&Y2ֲ#bPQS w#A:iDA;7obXiim쑍oѸ<-@2KqU%&S41BTQ^5pӠ;kύ͖ԫT>@ZjH*C1H ȱYFX-A ivx^ w$bUԅРu*WF̏lt`kĻ\4oG5J!JwFV)Ws3,QA 6abmϬ_ ouL>@i4 ;CkU<(HϿ\ /⛸f0] w>pX:rcuh\";{s3S#w&D?[eVUĘġq-E{Nv͛/eo?a[& 2qfw(2vt)odBr:˨UXUpG=u?v3FLojġPbF12FD&еjY@O] +ZCIh69mѵ_>}&l8U4}oycطpySkϵ^؋T5CS727r.LJIObz袸FF[g4aqƛ?2b eX{yrcrzDXF0fbaK; RL&Z铕 ζnRx5֮]~%%t@Of6Y&8f&r&=f0'iGn`<nʂɂ `R:ߙ&pHipha9 |^qcI(̆UP]b3+ +,82`*dZNY ~]L?W[w}KKZ:y_YCݒlm'r}Ea< +t! EhԷf_Oobw^T]$& (s]$'?&7,iuf{ `"NzٹlFh\ .;{HFrv&9T^}Xҩ2S?¢04<9l;B#I@\|fC&!~ "M&ړ@Q}5K-;2}FQFo`E"d1H.J/vu'h`NJPgNjc,!*~aRXOP $V[e?+1esCYU}<~ +W=S%F*f=C>hnPP1 :N ^kN_r)(17"Mq=#TH]i#\ 7p2hyT*Cp ՗xR {EYJf-GL3 3U°oRtsFvgH,YEA &]GaRRʄbٻ0? 2%lRZfhGs@B45bNE̤ ,DOx,lΡUAp;UU@`RsIDݷO~a [6r*>``5իNB#Sr{1` _/PGF_3!$-o^--Th\$ +aeE|+7h&+;VTSQF]V?oK䖣! -R{,jMaFFvbqHX{;Ǥs{ {f?nd2;ONxgkSy!h S_fb`7[!ޙ(^q%Q [o(Yla*ơ|LQ6}R֢]ϳ)[ 1\Ybȯ/fHg, GʷX"Z];dݍ>ST "pJO;$<mp' ,/NPV/eF'Q:6~"mucjhuk[kT{% &Wڶ7qF^Yߡ +K +."\-O'į+1뗚D#]vJcAAwͩ0Yd蒿yr.?.Ȃ$Ct)sA%RhFyR2@7lKƮ$C4=yۮ=f[sExsbje@2Xנ*9F3 BYn poJ;'>uI?DPWȤA/lyIĿmHcY0\XC(|1_= +w0NnXJXVJm;k,բ1&Oשo3n 9?AGX܀+'&W'tPpT^lqyFؑC̖(iu1|x|_%~k_J8vb"O?p-Z5cu퍈d՘+k#!Ըs vӻ)輄8I=:Bԣ@灤'>V'cui˺ nEwv [qZUvExUSQ# +}ly#9{(M'f|*Z.";4IaA+;x4ndIp l*C쉴\8NqJ?, +2D9a+V@M0m!c$"bZCwƱDǞ e >oƃc@<%֟i +&۫#dOJ +EרPY)QjgU$e8W]Vj TR]} Й5HF!>WZ(G#] {L[UnVK碏@X$Ha(>qg)Z.5=>'&=3_w:V/"9d`vR_"%V b@Zѡ=C8 +jvI KgԷQ % \eiM2(ƔpfT,sJHJL*BaX;kf }a +sNԀW/􂆠z;iཅVp$ZQхF|}ګlU33knYwS9Q0 f dmhlew/Nrޤaf>d%ufJ1!1 kP^q0+ۅ8D#y[8Ӄ|?##ŋ{7B TS<0)BFFNnH>0,IS|)ݜf\`P^F:M69;tK}0])@L.=""F40>S7rv %èw7Lon am?^B%4+T``~5#( .I+C%t2zwj$shBhGSK, i %ړطOmH:2|Y/A̪c񶇸IRv.!uCŰOM 0l&VRs5Schr<E+4_UcNF>V WR"T6 69E)(6Y~E5 (AA<8VoQTt9lFeHb,@l߱UyՆض4!;O YS$ ӒM5MFn]HGH`onfiEvV#ʆu ))dMןuhkU. <]rfؙdk,ua;;rD݈=?aÉ~(=!+/`u@<_8}YbYԺ?g"H8Wf,Ʃ*QYFӥkU '&G#!E#q HI2W9!!X6"?Ԉt|t% I\ > ;Myʖ%(Ra)s +|fE<\|css-JHo\vэWz)KCbpsI5eWjNDpY- +:Vϗf u7"ê,wFYBa )ĞXK٢](a`T3H="z5+D}ݑ34^ǝ"3ZOn~&C੐bնޥ+~HČ,Rht:ڱ6 jutm1*f.(fKĸvA/S;]$S~Hy +S٧ڇU}.mrReB߮;k4-L>5-AnŃN/]xT,q@ N =5g~}`}vVIW0&˳_sncu8'+R,Țv͊"ėE2NVxWn(h ƀ-0fOe.. +|`#J d;`h5K?|CQ(j.*Fl,5(Cin|4mF$r@VQTUd5nʌ+^3j`0EsJHw yCz+`*T+n[o8-GƦeGլP]IEdˠ}"" +,/DO]D"Xd%'5srkwUَ 3Sw5` H+?V'rk^k8V )oQ"Vgɥϒ\uC\@e9]u  T`T,μ{k8r0h.5&Gy}1rI~b>0;uxq1wM18y# ʘR +~;&yQ +McfXM:p`3xlLugr54]G'jxKR#&&5ߍF[^1 +6 tހH7ϗ8VEŨ*4·ףlEj5%#(ϊ79A dYЫ +16qvB"QrՆa84eN/qڑÜA4#㤉IN/zA,#GT ŕ`X({L'Ym "3#E17¾܎$z-!'lD7jT7GN.^r +Cl鍡ӆZ.t䅝x|7gUƖ}[ TZSˉ;0i_߁t0<ާ-4i)AzCU|DT,> +U^{{g*J1kY\ nlzrYS4 dʇ~([.z+QٞBO̻+#Q.Vps؞ʢj"<'MώhӍF]?D͇[/5A փt($t(1t|Uh +Ȥ -eա=z*^xT.Df<4y`1ZX*%䣼+Nf 1+G-yv[7YfxmDL"9/]@׆_@’Bt7x&+V,鸬q%Y.J0ּ8P]?=%1?U.1<jeꦶ, 4 XYJǿ9xZȆ2EEЈtYLzZ% ft -8Yp\` TCl35awRJ)vRHeA*H6_hG b~A,0b G8?F0!B^5>=#OQ"QPՋ⏋trF>?q[E:{6E8?EDCG&%-HR()//j_DQԑ3Ӷ~V0sT/TDR }r(f:| #{'$խ(K視~ɳ\Yu^҉P9͒E =!,bLw! 0(ܕ|WŤ"mb{lZͼ0St](/1\#H.ŋ N@u|080ׅ@[W`Q=Jqz a-&s!ͦW=DP, wO*TqL=ҧPJs +aP+g_'fæ Mc(xB Ą%N賤~6"KGߌZ0'tIûA?Y1& {!  BQBd ^j("lrS+G=SYIY6\%TiAUOȁ*羰%[ 毨tU 3J+'@`S"s4(:bW +N"߱8l6X2U/-b"; & G)\‰,Si`V$-%%:@U2䱏RپBG1My1k7ctcVA|hB6BG^]"<?N?nvcKt" +:T($-ФoSWjB9vf|WrGy̏f$bF &oKH6>&^ Ҁ̂;E-\~ đ96>8# lWuN5,)akbyh1ֈ;2iځ5f&"ek@7lHQƛ`[6b6Jc)Q|"T>5ThT=*YeTSErS$‹ HHzdeq&+ + ebr e0Ҙ$Y)p@.w@2tࡡЗ-9hb])hV7VzƙcZ:dȿP=e(*?4a2k pEQ{5rW%EIᏃݼ򸈋ĵbvVQzb SDB(8K53 +U$&3VFˍ?E^\":ht\Y#}xrmEuq'[ +Dd]lO(!Ӭ6S>(a?J_eUW##E?5n][(}qa1|R:\0 M? ('uT_"AYy Id{i +֤:wPO:!y0n|5!9F;,.,mNeU:=<('kցS-l/VjH]$6~tSDŽ\bG(*ڃ.S4 *zsF?0tiV,Q /wuxuMhM5".f |&BȺF-8{3 29Rg( +AI]>v*wDfe=W- 2~vJ޴|xY$v˒4*uhs≀)pNuj/9 X-A'zcST2(e7E8}V,N,݁~*nFID)h$KILgjJi+~zE6󭮖# hE}]GkgtHcD9ƸOmC|d il(F1gJex^ҡ8}V=i6] ֦gR(mo'C;)KxUBKԵPZ,d%Ϊ$6wCM~#LJ_Ժ6_ AgUD_|**uqRdUI1X0ij6LUu$7?L +>aNt!D0J}}L@ʶ)U=Bd5rBI_f6=C]As QgE5 %H\ƘJFH8-G=qv;\7< +B=ťQbѓLG7$̵bp zeb`].73*P.Ho$m utm\`| $L@BR}.if;fh. N%lIXPF309E/s>")<cۭ(で,\٘+P4|zxi}H1l:1ꊷ?_9Q@?Øc᪐`I؇1B&+Mr8Rפ`Lpri\4$ĨD/cl$X YL#=ozƺZۙ3WC-'EDj,lj?i c:mfH)\iXY}[b /|Fkw FgnP'2;2zE* +z̝  o_yzg6}?" a׭=!"k*滰Kr3h.?tvK͈ꦡ+\S* gV{o#G熁ŧģ'I2h~x+ `+WaB@qA'DNu44~VG%2Y?e1X IH~F#1䱤.փ=Kb`¿wZj~ がQf"Tqo7ꕲM4)r< +]C JOYK\¡x8_zlG ]g/! N=Qz` &3)lNJlϫvpDwSW&'2u2DDS]EHlV`3>%BG8mT|tpl8~8}~h)^?>YoM%Hc +ƎƯL39S3J],-s#}iw2h`O4m;|㯋خT1}'2نշEp@RũmtZ^nfY.2M/;DYڱ\>ғgRpϰZ{|Q[ԈýR jONVM%wV+&EUǗ(fN,򨐧IɰNtt*t -&V*T3!w(ax bR?3ĩFgYMp^]Z:*Uߤts2M\::W/RUˍ&"Ub-jUp?̙|/ny-u-%zx0[2&{b 㙯hxPРw)BvgR)N\DR5}u4ueP\1SΏ^n˜'$9S$ |f&~UDu|S0{8DB<(R \+X5+?}t9Hl+W vyXR1ԊӪҫϫ("&$1K'r7Q7H;s$FE-Zt +;A9W)K {fVȏ?]?IFxd:fέDtST]YUbuʲ>2|^ʈMbF_'{~=r T-^sSPsYb*W+{CשV_:V'ҩh;CSr}[ʂ-e toNz'vieGG"h^\*у@9q/,}^n O<IQ_ +yELeRi`r'V+΢^ cWq9%\ivly>L3xeT= ePSqI +?nap nyߎ*>6Z>$v!8lK4#4"pzl78 U,YIԺD JMzm޲v(d):I(vwklpiU%6X#o0ͳY=쁫Z-Csvڕjh( +zʹ cT$1% @̹ ez8ܤ޵`7dON>!w8Y- 6pj^HX7TϿԞ(Dw5Ò (45Khڏ[$] =36;ȑ >>mPo PnhF8ȡ?Y03=<;TuQKO ^ 36{uVlyǓQc=xY"vW3 it̝$ϊCGF  iR6XJC?,[ }gNB]_"tYS>jAskk(g& }]*;wIX9nn5Y7´8$FIe)?M%l6N3" v\ݯ{" (?%-:p96eZ@D3>[Y?3~'(9yй 6 >j,3IaLXR^ݝc&i4~K i`0jƺߺoT׮8Ar }yoeS7 :ZG;8:_ZփI+WPvO0q=7`[3YGo|kg/T+<7FNN04¤76j:ij3#L=$S?cr,憢'YagV}bIT`J+_CFvť RK[hhIN<9Q 5V(ݍGn!!{ZnS׾9xs V7Q il㹷( ~_{{0wC5?rU2fo@O}hV$V{&e5KC^-Z5kV ONy3TWjRlЍ_ +Ry DLct&քMĮ:)׀>ϴ_&o 8胊jf:+qD m;o ˃EP҄I{8c7yr$ۄ𷅞M z}wl. iv׾@9E2d!p(VrQ͡ 3XL?qڜSp@+~?_%G5^>XYkkv ˁ8UMQRY fz, b&LϙGJCȸcJow̬i#@'(]aHdCwQ,>x;VTZL76氺:[P9>jtAohj>Ό&z+俎xrΑrL篣Jxʺs䲢*qql'(6U1'TU,rݮ&yhW( BDg'0'f* SSyۢh˒E5/tӯr?p1^DvDo뎕$LPU4Óudq m+nwͩ)s8t4E~:ij:4o\]vs+bW#b"!aY+{T@3 m=6#~Wΐ݋{Gi#]I/s>5>:_ ҃|Ldn>UHpZ 92NgMQxS83"F3j1hC,W<\!w+mB+ cPS|h(!Ӝ}iրlR;``)Grg85b3w&v|0gIfZDOWT7.5/W:`$~ZOFq Gk9͘}KP1E0)6EL;* 9Vz;DfЉy Q\ƿ+ɥlm/8p+QJ֣H( Of|m*-umr\Bp5@R'vP5WБoDʼj~ wT43rJ%r+KM]5Ώr4H(By<;.['U v/kn/k-}>~IPwfˎTbfWh*(UhUNT\r40O \][,ҏG3IBKUa,2%4^Ar(kwۦ~]?IES PJPBnX<>Eu:z^9}YLUUUfj>DMRBI}ߎ3QWvwoN["0SUUU)l xXgJqzWlmrU3{FXFFiF&G+,9/rƠZ_vLkY捵ꏁ-Ykkqs~{?Sۛqwޙڌg{6ӟZ[봵~Rzk\{;J3Yj-uuǘN?-ϟvwI':1ڹtZKgͿ:?~ky[5{~ty̖λWOwW}mn)-4O]/>yO+}:;Lfϯ:WwY_ݹR}oJҌq7Oj֟:9RZ3[O5ԴRSKo:g]OLz|ߧfL3l8c1yRgKRzWLqw뿓n[̘IumOV^:s>~mwfl)|봶iߘN<4_\?Ɣ/51Sk￾j|Κ~z̛֬߾~RK[L?:3}J{ύ?[[-Zj^wҺxg_ۿ1_Tϼ-Jw޿櫫o_kwii8ө%?V߯KqͻV뿝_y^k^[+7}k?ZV{/{SܗJKZy][}W:Z:+1tRu{|wϻw]ֹj:>sSZSΪi5όe_/t[{7ҪWJxSsWK2gziޘZ:+3yo)Tk7sS]ux9ﮚbkuwLk}o]xMiv~չbM8[I5W[L)Mfkxk*1_kwwZl}w񿱥[g:uښƴKi֔1ob|+nZMo:9kk'vS=Γyy{5o5now[<\14W3JvΟVfkKxz~g]mVy-V_kg[l1Vk1TҺw3Wי3olV[LYmo]3mk[vj}'͗N{]s?W{s9M'a3͖-+Wm{fҼ7xg|?׏3Ζެү;ctJVoXW||K3mO5O|jΟ?I/RzζI<'gz}_J륗nZwnJZk{snZm_t_)tS[wM)iet}7޹TӭRjw{Ӻ_it[LK)?w{bb<͙k}7SJn3L;ggzκfuޯ['ͶR뿘bKN;_\I[jm1uI;}oowksųnJruo#k{oiu~Zom7wiSkNzŗ֛|Kqy4Keqvtf\\USkjwkzvoCMkߚ;җ?zw̻w~T7yҚkjӻOW՗kb׌1XjS|[Mj_jY-ڍ<+O~-?͖>Iuu[y]Jj]%Viw}նNvW:9k1RKWNzם-\M?S|u{Ϸ֚oUUWoΏm~fj3-t{S-Jo{뭟2g8S?[;g\L'JsfMuV{1T_Z?Ɩ;_kL)^K5T]ίo{-ҜsfJw]++_Ӌ+_:V⫿f;+xoM_9j_:4:/;_LoS{7V_c֙b{ルީ;coǔ;[Zw]3Օݘ}VzRwV_)vۻg⧘ŶZVKsxXVKwVKmvZlx[-J{ͿRMo8oʩi-8Ӊ-?[3Yk5UW,NmܙZsޕֺ)y:vWZVM:Sb1֚+^i[<}'ug=sl:KpU 񦬩H]|G/S# ZSr +_F:f|qDEǫ k +mĜ: !s2WJ XåxՔd5`MeI<ЃU l̈́at 0\$;zG2Z=z5]PKT҇H5ZB\h.m\%`\8;rQmP -+pKN JKyR0O8@1(V4ZM"hB lA6_Q"Z'aḋIZ/]qeIqX}.Llq. Gn1ŔnqΞ8U56K(K$)yج TxŅhd r| |=jYcOگIbz0Q>z$(QΫ+KAvG AnƚF3an0q T?R}2# +-^j<.R!TJܑ2[9:l2VxQg*tiZ\X)KSRK3>(!py6b~:l֘x6iL #-2J0E!eI<ыځՏ\D-H)2BK‡<.O"wc5ZF,|a3Z.|pi{/N7z8dQ#TIex$˷bNT~`kl5&^6mLS(#}ttImjrczb*=,Q%<ൈ<.E8G,j1oȞLS8"&K!ו!ez8dx!|]|5ZlB +"rtB +-+ܨH0W;\3Zha3lҚlʠx/S9jX"P ) p\\pJrSυZRA$B5҈aCK IL i&L'# +-6J8-|QÅ9x3\t\|4\|4>8jlAb +MƘ"Q-Ҵ"=RX4iL|Өh͢nBXĂB;zM +a-z&ǕUXkR=EBAG 69Ykm댯xkZW\eP,by?۟Ukko1޿閱7S{yOfyzwa3+Ư]ݯn톲U;Cm5Tgίu:4Zgf7U-ZYngxV+Z,r۽wFmKm-[?fgs;뾳ΚmTKgkz-5OR,{ۗ:9㭷T޽_Ku{mv+vxk_ճʪ:uQͿ~g|s}s;ܛy2k}RӷF2묱ZcMqSbʫwWVc|Ug:O)To:,wU]els;[[syYJ2[|7UnrcnW#X_T`)b~4,ߍS٪zC 'qJx5uI TG)FNsb )d-BȗAraAʙWvG))uLƢ%g}@;i6]Pf˩t9񜱨$8$9-NZU'bc2$ nDz) t!c u a $e6eME +LAJ2p7xRcx^F0T1emQd֋E00SIƫOGn +lQ[+Pbٍ,bLމ'h +)m}k)9M49;!.@@ #=#=n'u1}޴Db8qE6N⎬:[UQՋ'|ָqDHR6 O4111iyήƠ8._ _>?E|?s?ÊIuH2[9@1%qL  $JB&*$e +8 `"&iq1*cvuĮ & }TDU!!\> +XRMC#tQ`p5bK D%!H@ +BEF9,DWq+莬6cNO)"a-fX?vYYh3$|=*==MVk˜D Gۘ50T7x0X:pʠz sFM XА->4ċY2];@*< ߔE7eM\mJ) +i nqĢ jcx0O8z2Xl1ŭ85l5=oZ]/XK-7T!c$f# $bŠ[![/dlQ݄A-o98dQ;hV=jR2TKXTiM K"*+bb6+jBa'Öcx^p].>/SIH8gRP0Z HO d`XDUDa7B˃HJ|vv[UakT@ +%HX?A%-'Prd`@ZT47#l +Jx@p j'5Ng8x34Eߒ2u */R ^Ӏѻ9i|0X> U?ry6\F1W=dx;nVaXSC fJk +sԢ[TE dakž˜`OUaī(2sF,<ц˓7^>ha4+l +䉳8ΙT8ԓsqȦ0&IA +}ضz]8dR * qGl-jB-Ӎ#+H9iU'B"u֤x *NTxB +q^g|2XJ!U\,A@CE͆ 19'qC ]dՁlCv`o6~r &d>!6`O<ƪ(c$0uRԺЏm(R6ƍp8cS?I76sΤ:[U쾺OV!oƢFŁh~Ssʨx..DŇtu"$b݄2߉'g o\k~O#ըZ [\Y{ܰLYM%*%(5]8,f |-q*-~" +77q#PWqH-I6fA6tboZ|I񝴪.Dŋ'|ֶza!$"?pZ7bب"Jڈ +"ȗ-kAmBt[#9q(glJrw֨F/o!qȢF!;Q(W1la$ BB~"a#10PܯY qoĠ$x60R0R9^ 𦬩ߐ=qᑋhV*Ձ8h ٍOκ$`I.jP-hhM@!8kQ`̯/kIq +x#^Gm +tTx93WKbMjoĦę,Ѕi0z4[LKpan0R9z6aM)!)PFKBG܁,,%0ցh4&ˇI!G#&̉quUXLƟ_j +k8Po笪`1q.G-kA$l$Qlz.=: ȃ!1IuׂB *H3|NmȚO\VA +qΨ)L u:-vqΠĘދ2twܮ1&P#т4(H0P=z/M9dx4`J|C!(bvd~JGjIBK/\B$` +8an#*@g|p1(_ 0O8YTq8bS"ؔXwʰ::0Ϋ@B։7eRMSsFMAKn#" +,)! +F*(CVE4Sz%̀ +/z7l 9ɄX9r1) +Vg2ph X't> q!Ģ+fr܃Sdr\h&(u'nsER̸ڂ궸NZyAJz- J )CJB!?>.tQ[xbY_Z G`TBJZLTS +G,JD1 hN>Nnc &d +YWBZ7A.M\C#`!@I/L] 57{Gz!`  (p҃Q\xbZ(B )/fx+^`$"WPiaԠpכY!a{8ҫ<sj0p~PÏnXݖOGM`^X3$MlЭWTY{ L@I4s 6Am;X@'6XBfbYqD'g p _!Q n]2$c#]X +&g7FU!!^#zv4@\"`|D0bMу,sb#aЏ/%f%jDQ+(>BMD2PK'gœ{q#Rg%ڐ12\p8HXO1%àmr#5)AA0S8+i pfaXy|u,TD/J(hZG܁e8+ɗc&EZ ET W .LK9kT9hW*0xCĻ|1VpZ,`@}??8QJN\A%mllaE{`GāC^# N'?vYa eHk> A@Tz%d`I?!JF&$d1ŭ2Jŕ7~w(aSP9ѥ @x"h#$g"Dj+fH 7kO<3^ e)萣z `YXY!figJ4@Bएp#]0 +Z7DGpGG2AOB "<QB&a" ́YXNЅ@41ND2D 踊(i &gIӆ UDaDBŠ*nŔ9.F8 @v?UOBW~@$L 8o>!(DqʦD5*n#ތE!쾆xqQ8#IO3` o H.p  +8SLI- -2P` nStH⡁x aNQ|>pZ7_T3!|;hWn|$`[NUq2lA-a` + qO|'%0b6K*5mBB2#&SFUǰ#7RҒ nHF1GX &ncgJdqō؅(:0K4#3(' +ԁa p@#c5X0A00z"H Zc~VB]p`dqZ8{$<2u%aD3 ALx"l 81*D%<$WLYqƤ̕Xo :6qb‹љ s +'m>5.l !H<6欉'4)*#@ +T( +pt`Iwa-,vN<_6m9fT< +lqN\U6@D,L TP;!΂#N bHt4\N YRf@Px;8eS(h>V'gcIGxYJ|@qn7OmH0#%jq)0Uofh5L.:8& {pPU81`+z&(2Ƈ쾀H !o(TB=qV WLYD3 e,u D4$h +-( e (06nʞB W=:-F G$%LoĦD-)&)4^>D"cR'Poʤ™&, + BBF*WSjINz' +8" OaŬ`Ix$IoHK8AĐ.1uWA ""8ցh4 PK`wΦn8B !sv5 R‰E4|/fp HH"X"]h 0Y#wb:$8w<WD[3Pg Dg@x)0h6 +m%و9u5,Q!h[SD%BJ[WEm,Br6 @8qL:Pڈy Cu_;iU!(Hw%qĤ|5[O&)R4di~Kܦ˩eBu$%ǂp4`J^B &jGE>7Be +3Zb ػ Up H1H7u QDQK,!&F6܃6Nt7SB|Ar^}g* $\F x*lI&a:竪Y8eSLf'x_uX}DOƛ"a C QpAq1EIF4d=*XDYAq h آJ q4cM9bWLp10mJ.k)YJ;hU>5˨̯X/Jr拑!~;0H-3VѢ +. @çM`%Ѷ #HKĒB p= ܅.bhDHJ,1mYEs3[=^ WMSHx?q['hcѓ, +ta,5pҤzEUDBWX11YM%t ?W$ekBIF D.K"HAr:gS"%fI,YGL H% +/ (᱀ r @Mp`Iσ &gh)2SBZ!% &bt0W8zAA~ē1bJZ'qGozUӆsԞ`r-3\x5JHc$<"#d}(Wͨd 40 bX69h2JPXX`h( +pb5'b n؇m3ק'(w1~!=c7kޭb[Ϋ$> ~5>y^3}g+}m_B ajm^['߿n<`VG[7{ i> Mn30,<" }vJ{+ONc݃5kj95r +ka|~+y0M9` wheb{;[o̿WceliNF/L |]}z>-=N> ot?C38Gs;Fl6z97zhzO ^WC>? :4pz{=otB?GW6U_;"Zy{mZõ +c|JzYrjb9%5I}OEfnl\7~\|cj3>󗼀yB-@z[Xq{{GQ zC} oky +܆{7g72Me?Q"vu}E}ÁYnD\PT?K Oc/bK}n=jzrƇ +ǒ^ԃW^?M9e>{і&]}? b1G_ؓC_^ΨRv_zIq؆g8/ڍaA;*c/͟p_-u?W/_yݥ8g:G%^:[fKIRh{ҷ@gBF%͞;6ˍֳ"$1PtV38XBg#=w31C8H+:༢xkFL欢Gۡjh~VA㷥%hdoU~̖[d5+B'O$0R!T!rHڹ[URLFMa0DӦ4H]8OgH?򵝊5W>&m5]P"}( +ďN{0O8pirKd ʺGF}(v.Ed6.TφZښT3#DFxIvKs =u/ dk)Ƚ_03 +i)b\þo9iE+Za0Z1C?QUyGIcmsg`ErO`Oqo.FfR8hRGSde3EBcNN1D-U*!T Ɣa-K1Øнm6 {7 D\F]] ޙHIJI5=5!I6^Q( +O.&X0*q hrihQY MeXb8Xr"AI%YwW+or hUlheRz<̣2GcQھv &K (KEARö) +KXm䥧M7FKۦ¦#TӝwѪn`[RH͝P3ꇮyZ0 Y<=ccNn> g uI6Qfju˽RX$E}O[sniJgA%M? <GVidYoԤi@j7V1~RM&szW}L Ӱ+c26*^E~-h;Cw~̇.?)[-X D3l_qB.lA7T)Ә)}EI֗=+k0pf{o .#9Ӏ-*2rƗ8 +&Jm-q VJU[w(O k"\x*Ȯ * uZ+YΔrZ?|ZL±h.Cs;:D+hQ6-tCk`^B1Nu.sb#ѐ!^X|r)@VOW/0}sugw$ˊpCWUn cɱ2-3q:{Y,z9"|uGD +E_v _N^Bm8П(rcb/ݥ_f^՛ӊjXﰷ%ehv-vvtRI~G#P$c'qV j0*$U,v ɸQե:H6qn}WceO; "̀~H7b6Htf},r)CpDs(i3X7e{aBSwIy}ײ/߿ 0&6v~D{̲[^'Ї;HxP.'F;1$!,3|"c}\k gp4jAI0Ғյ5/;(ӓ%~HcGQy,^;{dP%ŵ4 +~d,uEDoϊȆ8ƁC`^P.7΁Udu@tsF:ϛ ]FyXnt1f;96D&vDAJ.~SKlHKVܤ%K@W39Khhcp@^DG AaLBB O_& ߒ*RF +}ue >cS5k6oщ“YlM\(#n$ϕN +mBxT(AubŽۈ*ݾյ@/dxLA6 |Ug%w`uK :Ҏc<6:D9 +_Co9_am5iW4_8䝧vn#5(Ji0&݈4H61:aZa ju:.M Qr#NI0vB ) 5)D1 hd_8ieR+;bL5d/"y\uvbʥNIophEJ.mt† nat'c0owKs.p|T`WeAϱαd=j2$ph!Nc-T/|$kbq-h/GB8tB[ $t!OALy0 P,3>״}@t6~Zp\4"x:TQyvuzZY>Ý#0! x|Ms!.K8|mCL ~&j 9/WX{wtTqp6C;v۞zUbe2 *dWӎ4}K!!G6J)<>stream +h4q\Rr6^|wf +YlZ=E{ sl3WqbM}Ri /S]՛x@OubtBD +4 LOYx`%АsBuCm A-P 2q˫_Djw`Un$+A2CxN+#2 +&& X!6 ""Z:jJA.mvŶG`pr!f?$j%4 ]ZP:ѿD [lc]?!yNrI>-OVcK\ 0Ckif za_ӑI9EDcAZ4*f)/@-j1%7OYp)lߧR҃,T_A9젯dЎɒH |!Z$!Rm$ApGXh7`n=e ]lUK -FdEJC kScЉh7mR=2iYɉ +e148Gjw58wAQga:TD?|+{ҫ yQMh")]b+t{ylP_f8I 3GTDCuƵXw֣H:X %kDK FM4'댆ln7 +˯[*u1sɓ#p}#e+,iwWb^fqH028EOciT9H%cwP#A>yD +9(IC3nj28pW*.lET'eU pUfF\+'2dsGM bd0Ycϕ'ɭ0:%Q?ֱ6c6\0IX7tA_Ic$`P +DM:O\3 l $)nx:$q%zཾWѢ0Vx8FKΘ{ONP" +Vf8FEUe?1#w)O?j ieM!Ö 4b"QmEK֐T!Sb [a/mtXDHH&"f$I|IYc&Lk ٩<|YKkfojO:]: F,R&Q7V6Wf//S#8ndm pRʑ*%1߅peProV~wiS 0/O_ɯ2pld-+dѵs8P|D`\-v|7sHImU `|/&A5⿴u݆L +憟Õ*coWF&,C|{c5mjkV(`m49R%c}inE +2MGNAB+_.Oq2_a X &uu.Eh҆X?fbICSǡ^ r`2Qm.<1s>J`X xЏ0N6ck{p5o&]Ytت܏+K S5Ky_ ޝІ @߬j4(4kҚmz`&vp]po?%5#3Ҡ+y MS? :9$aĉY,Ocڟ.ŎY@.SMꃂf-vxyE!Jls:bFplJ~t]"ưHǧW1N#iaqV6V @Yg88VJ +Jˌh\}Lǰ~߱"aD8-Zwbʵ|Rc+8<9kazQr| PG3!1VG~v?pyLX;f!sclѦs + ձy*#br5:X<0#CL]xJFT$i1CimW2%~+! AG0 FYt&: y2uZ)g'2F+$+( {r,Nˠ3 ecd< +4Chai b`BքRJ+ }4vLP+@ 4ǤHoݍYaݻDMDݼNOGPഠP0u7@{ + P +I6V4F( @eX%B$Q7_Ĥ.=l_Pq_>^!'k  +5:-q&и]%ID!m(E}8҇ -xPD'*4yN#i +V9KA#9.bژ# ߴ Xxwf6yb4D7_` N,( ܇Gs!Ւk:Lɚ]J&h"lZg3]vRg''a45FdP ٹrpM%I2³`Qaۂ88[I|LU9YW\4Op050|cj]ݯľn\1h H&PDeH@>P?!J&7CZl\LUHB-k レuG#̸9[_LgL_O?}RwpvI' w])t/j@ cVݧP쟔%Oa%]py΃MyLg 0HLeZP(ͤ'.?.lar8yiװX܎ VbF4&#R4=ŧ3pk=H3IJ2,JabxF1K| 3U6gq)(WL9+$cmy!Rͧtڷ ̼>oЃ8qٺ[y9`S;KRf#>\.6:E2މXI +2ʤxkP"+yO=: + )~z9P*0(x>`Z:8-w' VX%}P w!svqOcbO-AQK-8cw#(\#5魾>2Xۻ5/l;/UGj dwiU A in~ʔtl#{yNX9Ú"RBVOZ=@as~d;O &/tGX7?t 8X!Uቀl/'fp ](A-.RɨlX QxYKDI=u_<JB Ri[؜f\z/@ T}?sփ&<;-0UWƶ*D0lFd2Yǁ86H!C}etx[V2 15qcZFYBhmۘ!ѕr-MG?7s߻ "JefjTY+6jE7'AEw/d)4iDaGĉ  Ol2[)S^X18u=DzJSgImĐկS/]è"+xI{R+ c`hVtW'I\rҕ dzIw1'6DXv'-}1~隃"We33 f$"h=l3|2{-Aݖt#k:E3v]/Md @JLϫdԤqn ["""NӄbXMh6|~!Ouv;Wq`htt45hȇ(QO:e#/m7_ndRdջΆذiOF$Y81(:fIbڰ%!$:H3 n*K4gQ5A 4G +?4I`PS$j!iŻzbIY-xT`=ukKa燷"bpO"PʯH +@ѵY&KcxWzbm0L5I=vدP6EF 0uʀp̭g^{ir +hY{#Eږ_RpKSv $TW.Mf8Rr#WlF6AעA*q֭C|T_@kZ}=Z%Ł|7AMs*4i9e_Љ]^zgٲQVƗoؒU*TP=Pi@* NANoi]F:>Ue@HkL;a萠+H;qu8>Y;hN,jb1{FӉxu2h<|4U N&W=@[ej>T Mb5?$_X@7BW x B-_ -D*sɐ8["ȅ⫮vPeNR3rE"^™p1_"EHŐۅIQi:bd#8 .|x`EZow` ]$6s(%6$$&+'-D%3 +8T)D&۫I JMZP`b4 NL@@ IxӢořXLqM3K4L뵛V&&Jd2Î "1Y'b }"j`Di&t)З\ BIn/FGA%(`Pn-ȁBM.R&" S@%0ZS%1,! AP' T<`IcJ y(T` ؕ+m% + Y,bdUWR%ռbG*y+?%߂E)8,ˋLRҁ,($J< TZ2C B%^$gOI$E^n2Na d Bʷ8Ò|ŷ, ᔄ\H$3ABNvd9$FxTP,t0ʥ/(vEr /މh`-0=$3-F)*$#!!v$ CC yo1G:4(1&uAC ŨG:1ȓGxݎw"C)PH[x oB&%'! GBa7Eq!B:Dz<#A2="{푴w8B6Cc 540\ ҋ傠`Aևdr=A>Je&?B= Eҵāp?D41Mikx r+$bK"9j@< -]򨍦w?H5e J |yA" ii7O gr$A,x~B +0WBdg)JIc ~1:n29!]f_|#GI Q(!lwTTM ~෴^FVIrY~$Aۃ{Q +N?:>K$i 3V m飮AnԦ ǵGb9AփH1xQcE=Prz!`_b) ثɱ=]"v +g8\Bz8*BTMAPCCRʑcE; e6DqtCti=dal܃5wka +HInh,?@}8:5h.pJDXZ[}couo啈*I%U g"I'"p7nEF)r9*rsCHP(ƍZd:Q.6HO oTh2X45m఑,7"X2ˏa9b~l<Ցb <yd#1?L׀}!e(ץ]R<.B)U~I,z)Ɣ +LW< r+?9,EHv0OA+~~[UPh+^JZ^TrG+6HeԬDS*Sy*~cWѕ_TUϫV +C +81&f7ғ**8GNի<^*+ˤX:*JJQY*8MZ]n++<S+1ZIW +0vR .SlIJ0EZr)h+ɴˣPQ)D +Yh1(#cn똌"ZXY,(˕Q,O+x, +j8 +RȂ()-ҀZ?q\<?Q +;-Ғ}vZm<1=mV)-?aѲ}?t CJ+Ę`cw{rwZFheS +D)[;`X&0M"n GL6ԢiE9(,h!'er ÉIJX7&T xRK5|&FMhM3L䛲L3Scb>bÅ0rZěhKe\bhĜ(!b'Z"YbȚ\0D%+SeE)J-; qgmI̟=IGq,=F$%HCºYDHl$>͢ol$yZ7 vfy[8\5#,ɿ*G̢ѽ7KvAvS[b[͓er-X(J ׫ :-)ykӂ8e껵`ELh Amѝ CEaόLR[$!\pqȘ`44b׸2#\e.ُX.Pط^ш=U3V.jDAs\D#)fD FLrD˥)4GӠЈ"eӴՂ0#@BrbшAeׂF@1f#KQrafȾ_8o.È}@|?.#u!)Qa@yS$XwAwY"/'"X;e`^B# FWgDDeBX_!~d!싮,~N/jcrIC sB,?`:-˳TA[LM#-)W ќ$#!-DNb_al3&E0 ߂* jüI!$a 9&kdkO1kDa#PLsi ~e2Ǐ~LZ9y 'uLa?- kg%<Ÿ.Y^ W%?)a8'J8?Nȫ+~Hft [ gK@_b^@@[sz&u@OB{BCJlܻV&d dNen{ ƭۄWsgP@5BU" \%5BĄՄy::ҍ M"kbg&/AJEϨeƽﲑ1ȋl&3 "T JuE΂#ԿzlU7{^[BE _6RG8"hmѺq.)'E'vRq3XxH|څA.ag`af +AS=Rh&]RDa4\S™R+"0x,#Gˬd5F[ +T + +"lkR1͏JJQ,m<K(Dؤi#4]Dx&[\<’ <= +ѓ)`y@1UD88 Yܬ BAҕPzAb=k6p2{ί)o!,zfC8!*5ą !ӹYYۅ UD|7__T]T6]%0מB8\k-39(鱛uVVu# ŸX Kt. ܝ"d{e +Nv iD;GXE;Sl+ dۯ(iahV<jl cOj< +c=n* +l @?xp@}4%&K'2G|XwP3=I_/-z@PY@z0tsaMXeap7"рPH@"물h>F +^+oZЃ F. ;2MwD]\<+!.qA|}ˍ/(N%b6Vh?a&t= +㉯GTЩ~$mN b`91<`0ca10rW?XD{@1VG;Ƥ zUrV"٪Sv^Ȉe6 &X[ T $ pgvÇ{'С߬]YsSà +~Q7A t:0F `U2./%<(? B0CUs6%!$;a/a LyS3 OtU$3?;/ JDE`$ĝoW[RN$ 8 `Јg^/20O Y+~`N,:,DfLC +LCfCBN/Qg$C=rA6uFF^q?B@`?K}]؁(cSI a?@{չK*0v2O8<23Wq[[{wU5YBmq M[ErdFz$xiY2FL*@CU:w,W сwdXp\覍3b2L-Q@]P&ee_o@0.b8/;0rq? 0`vp #Bt%79+ArC\!U*~D4w{}*h30Gƴ[PR^n v[10;ah5"6x̀pjE\}ZT]_WI;Bʿ h l0x*Qt `qaB-Cg(@y+p8 +RH[; +9/&u +|~l RXr2M#{&Bl{7/ ؅ 4($VX3 .m \N ?)&gSuee2}zEIL-F\zq2(o$nNȖ23b#f $ۂ" @oID55l9z-Gs ȡSO g B:R7*d> P yoo MݷC'1+mxml:b/[DË.cc(ie79PfzC".U3!=:XgSWc +)FMC$Ah˫ #`kN0\ndžO}ѵ1 x87 d2ТZvR[VUVo I[WxL +PovD@:PTI(HOs[Us'@s G1DM"` P^;H2ʧK]d;MvWJ0 Ayb&KZ@]1 ziˏ5% x?8r۰a:t[6rEA mK`|o3٣#X +17hO5ub)]ևqਗ਼9:@Io@c9=ׂfeo +ECa P|t%F !JawS8~XetG ޙ8O@H!b(mIP ihT|+I$!We -KL3ʪW -(9y$өPy,?Rh<&f&; +2þ*A;.Sd;+/#pz 7lVn.?fO;"5#.')n`]m_Mb9_r1s+qIZ$\bMͦ釩<<ú'kcf'[qy'Ѷ`B]e>z[ѡLkVտb&p^@ 4.=B0&?H)zFV>ɧ_hiYSim_)o47oc䄭IsФ>ǯt2m@A0~]G؆]uj\D"ʩ(whpYO/}R`3Pb~3pP~ITw`ߝd9&?J|;^Uk~g;b~ú?h5 Pe59ٺXˢb;?0@KL0za|= +孪@ \-9Rola pgHڼכ.w7>)M|Wg\~&q?OmçlaA}UZ1h' TR`yWsx?Y2Xe{;!,̕OQxIa_MWB9V Gi36tqX/[vX^5^#}v%7S7U+\p=zJSvo^CWFX+`˘KqeC2E0oq[!EcU;lCm_(9}邾>2=}8ud!JGJIÒG4aK0%Z᥊|#LIز˞C4fhcdgCI$b|4U4>c/  9=wOiF-7բAQld{t+<ǒ7iׂ0 $.T. +'riݦ/˾2E}DeG&D6Hy\ۚƁ""&5 vdZ}[hOy\. m^աiBA՜{Y2ylkzd5L&Eq=¬%'ϏNWQ[7|TcFJyp 2u rjڃ ǝlM{OўRowрԭH^n.}8VnԂ(S5!/ٗ$U{ s*%=bOz;SDa$*Y+{ahRMpRMshuR##f`=3_ >tFO?WLQZUT8Yzٌ:ԩ7mu"M])s(S8!u+h0.踧M`Lӗ26R%iێ.r\FSWzCtqGI*Ey#F2ć͉z掾BӠQRI4$^/-5p8D_F%:GvLC_o>wz8?Ɓ=Nhyvn_@Z{,J..h C-/QPɩw< +M*g6OUJΉP~g0`*1~"~REÒA`߽!i +(s _{-z7c}Y~{鰆r\.!e+e.L>Xƥsp»˓]zFYw/r +O8@_ݑ_8aH6Cl {Խ =+X;JnEAΒ'«[aͽ,wrKN"Aqcl| ?&Ө;%QOѹow9X'DD ?M /!hOB'5~޶SR)ԕY34_Goz{Ƿ#nAK2S}kO*nhS3-<Q(e\KC9Rl >ѮE@"h'B%@yv"'Zp\8=dR_mj*@8i{Q_PPb0,~%ip= נ$>nyC75'v?b0^qc_XQ >Qvm&a$CՂnI]'è6TYYѢ~L <˵@+Z'rwDx&zM/=3<-uYFʕa.* ݊~$JxVES YVd@ا`CaՋuhTE.Ű?ޜ=1ln#넦..Ny| d1ԃ_ق#Rk`#d 28Y!|aAs*_P#l'=zAQPPet9U˴q`7u)KErӠ}vhkַAP(4m _V*;ՀF,.-:88v3tPft{:;AQgmRmQq*AҀ񠾂jtST3kG0X;52Q=7=W{hֳ?DsPwH:{z)SO'BoRONZ~}P~5,}vziCF*\E5N3jՀc*9&C`JI:~4 ׫ +-7+=sd9~Ҥ&X00w"V"}s~}qcG'uIRQ T'{N M*-:[I5Ej."|Bۻp?y:C74bzI3UwߤC0}*{śJ|%Ɇޞ!r\4Q= ڒ祁'%xyǴ6$ഝ'#R/: =x=A5[ݟ97_#_.y`gI/2 n@Ehcg[vp&ds@5u8ޚH򭹇fdNRYu6ddŢzIpD?-@pH ˑeVsl2,#ϣ5.zŎY tJ$;fSnJ] +7gq]ba\T5\bܸٓ_m ?}Ij|Xh/gYrp/Țt_>Ɂ9V_×ikd{EF 3d}'|Php;y|~fcdGA*۫$vy1o`WF4ļ\9ۂ :\3r~ +o!9ejAD\g}%E^1O[|3檓Rv]z7&y̘̾1 !v?K(G +A0+Io0'~3dR2<9^Nթ._ꏍQ X~#BrǼkՠs_yk"8s/v\?t:X!TJA +PY2Qf݁)#5فP+(w%ХWoN^Ezu#)lJM QLN0-y}ӬJVA 0IZ֖H>CyEظkIH/[䯥">SF35z8V6~* +̍Kǿ _JAĥ +Rǽ(n Al x"{n<xcn4)iF5Ҏ7D?wXYT1a[H)p<]ovc 4Lt Jy'T0g0K}Yh"0Ǽ0֋+kIy麫mm@[ND)׍a /^;AoE=6š:Z *UTqA~⟼'W=ϻM)}^M"N^5&,Eؽ|:Pj@4 "2K,G ܨ2& +֩K# B{|y'#cPnӻX?Op$TqyZm]<3sPnr[] +yKKB`Qw~ Ɵzxg3ha0apS WN'>AHè%%f!tő#R!u3Z~!:؏yW*8LA\ c!Έyb$}\0"yF8g"o_ǧ { ;CvѧIQsbf +v.v9}UءeEL P=tﯻYrc=UD~r4T5zD{e௱^ki4\hSrJmj>ku2SN +U))L&2?Lp)7tNwd_b)OXcַ4hn}/3x0֎Pc rz /gY^Z 3>GܐSx + B/Z]bL[u3k˖Ϛf.>udSPc<Ґ!:hlEc]\k;xE6֢zܳ3w[6%BHU (X1W!֠Ѽ/DbM$\wYὃxN +X`2m!zdZI'$#/|/T֥!# Ms|#O)i!_O>gWb,ˈAZ& 7LB)b='[#$IcaR~9X56#(H#'qXCk&˺qܢc35.X* +ֈSPM4(XS to;|SODђCEZw0Pu+eMѢ2v*y'l?"zt%Lu>x+colxN>0YXW% X6p:G5he8r_8NUKQ &xVʕ}J^X 2/eU~ZQܪP(-Wqsޫi0\fg +c'`(&֮.p՜sA[ 8V ͪ6@K1^dޓV*+vkI~k&[ Qm+aCk"׵o> IYP!jC]i0]l415rJ)=\)TAm~JpaY`Bo#RL}9WK|i_a, !ў +Vx#F30f~XR*Ͱ_mn֯ JNyt,,ZM{̱ZZ>cL8oKvj +N lơˢirK-֏^f[e dq~Uu=s3w0ήY5ɣ 풟7k 3Y;";hӈNAzJJiٗi_dxN{:wvYY\ `@W{v4f+޼6la c{䄿=8&pl!X7JNq[lS6-p"S3tC[=QtoDQ)hH Q5K|ޢ.H\zkqD7G L<+C]RkhzE2W5%-ۅN +޳=!x,mKY8MwgQ$=IZ7xͮ)Q[3 x#`l1acI'KQ4BʛHЉ;~QT O[c{=Lgw#A79հoJhrt7+?U+3^yBS+N +F0CFf!"S&c٥vSQYT@ f m[VOcy [d + Hh\n9Bq{_2@2p3`@+0-RJ) "Y<= B/l YR;Ṋ _Ćf7P9q>̧.'SP> g+ߏY>Wc8? _90~MzNl`G>F<eUf2k#ᣠ*""k^YG9OG<vx"42r:ޘD6Cmqߜ( ??48Pq=ᲾUNGQu?vPi0x2x,x7pvp:8J5J;pt;aCqiv#UMr~ O)_G993?W'w^~T <9AjĻeDd X{7X+܇z.mg"Gb "[CVESu7z=>{x;J|:>%pEX]v돀m\@|" |ߕo',|?|G[o/_G,|?u~PN'Pxij}Ttաw-OI]pw\5NԌwʢLF-y6HѢLQìCoTlhXQ68 mNzQ_B{/X`|)_Y~_~O*??(|S~W,7eO(rcM5{Q6}Pߴ$4=LN49z Db-+$Q8]&hamQ&]j)#^i2;f=TNƺ;T}fSef?SHC?HA @@ -763,64 +771,70 @@ yG ,Dȹn];)v.!-v1"8rqv>;#[%T'n"7$%" 5mbHfbHdi;n:뉱 :ԭ|PB:MIΐx[ȑwx5k%^͚C%Dju@B߮wyW}ͱXINUVGTԸ8"1' ٤7RNG]utkJ4qy* m5205޿mUMPүzrDO4!C%=}qdRM260ʛꋯՇ*z]S f0)٨~RUTXSMH^0b$t3NH^'jBsRIwЕt\bqm= UmhҮ/٬#3q5Ašhd&=4=^<,(YNSw6 7W$[M6T-̡>URϒ -aI[M> gCT@:' (vL*F!=v/0w#^FD=Ƅ[zb/|}L\x aUjC\L8HkYo`6JIcЅ;51Aߺ.A(aݓG{?- @ZZ0t-[R~Jpn,Es6sk}!/bA3C}qqΛĸvrCj T'bJ }:I~jDOU[p\o@xlzDK6 G"Ơ*޹ԣp 3%)P9JK7E8"]A1zvEjTFuܻ?BSOUߨ7%Q/}#p%A" FaD])&>Fl$Ll'm)SVC (~]rl:!܋rli*̱ڕǪE*CtH@hع. .1Icxi _qBw"֘n?U{ByL=%nʸ!8 k jEi EUf!D,μ'{N@D00,<:<9QXDE.m"?NlZ,ʀ$BTG0~F&#+m5流^q4lD`[jEmNzbQH7D8ap/uD 3WN@;;OāÁH7,b5,h^Yг\|ţD;3MoN,"T>8|h!Գ:yBzg/$v*B8klOw6^W<=3bl,NzӮ4 -u-v"C;LN\%i4u}T¼G2eNWο뇙B|)() HA^=TPI~h>ԄC*&w b^Zp0\\YsCu>"ƸTU+-Ae>}9N] -I|t@?}7pWOqE* Q<$ P_JIʦR援nU{$8WSۭH͇k$l1Ƒ{tA =viz%Uh}Wf=W\K@3>rVf}1|0;C0Ϲ{O;H ]J7x<>NͬR!o79E# J_YUI * L&<G贞Z9?B.Nz?$NȒZ\c=7-7Ɖj4a(imހ)Sv$Qߺt_j0dHWa!ote7@hBT$۳PE\E(E̬];EA6{c.8%ҩCF3)!z^*>^%W?'@ -/y p"Pg{8U4 -5 -,CNI pp#R -eن_g#}=]X ;; W@3,P/QN2u/WHNf@+-SpGbB Iv]3z^uZzg߽^7!52jTw(3>$Kt@PDCJ4 / ?*3Feߤ|Gfpq20+iSCv_$UR1H܏d3*IPg@ZFB=eQ܆!{z$UK}%ˮbD|SU-(ꁂ1| -3;_hfS,`~ 9 xvr븬|074IzNf.^.R;D+aEjQ/GGS>C9\f.zާ }钎|z -*wB¿)?va|n/:_Ag깩s}Pjr4|o|/.6=u?,nH*Qs XC#dy8X|5R q("f"6\%L \b)~aXuhˆ|0 -?KG1jl~+p \po4?)7|_!'A/w#^&v6eS-=Kֲ ;j8u!kGÕ2ŌF{$xb+}\AfsM>_}HL~S |6;&Wp^l~P o|iRr:19zӦF׵G<:ugU^H;U]G;TUG7| ߙ/A9ߙ/XEV󝪩%ݬ坫n],;^;U]s,dގ3 fBgAPٰ>IUu)'M:‹ FAf| -@S9|39 :`! fn~eGA+1_*b 2jN=r5YzGiz;P'rFa&1i/RiB*ίp`vhq|8;T |)+C׀QWd|G.5ǣYohY5ϴ̇ -g*Y&0x4 x4`Л&mRB M;7A3W z~'|"OE/PL _g*DPu};w=ngk狣6t rlk=f{[C-5rN;};2}M۲CG -Ud3` Xz.2+;Tri~?gb7HTh~3|߃.姠\x AWJLUk},jY̍vUr_饙\WJURoǏɼg6lpQ _Bwv81|$~|cQ - /0$H9N:p3H6hv/R$t6T\:֌I{hZ~lUS\N*)4|H]>2?/('EaQ|S{#Re"]XJEE8E9FrjYqu;h{$!h;=?<+9bҢ9~0wQ܃.fݤd -K !qt&r -.s!y)#i7Vg֕'Ċy&-oe;ظV!ѕʍ=NL8 7Ԭ-͠.Sf( H;j~X<@NNLi{Xėn1%])Ri+cn;0;f khd5w*tq^+)(e"Fd -B$G =}2t3.&60{mUGjP-&UʽG1k+XO͋pP)P\ -=z,md -Zם,z7x0{gJڗ] o'BWɧ'Z9N=8* >D-j%N)DglOݽAvvP0!%aH8w7K42wkt# - -8˿<anfRԗP/ "'Ro0o!KnVM-Lqn"HՌGh1ho{Q*ih`5pa򞒽O^t/$ɜÝ;\Ëx8OA:%\KA( VFHuQ@+i 0r7/\X]N^o oP/GZl5zA^O|Cl%-q_0'Sʸh$'!6G*'0'# -,Ex -ĜC}T -ishKPA@đNqF:^e vWx/s([t -;)#/|"6[c:l˅\*DO?=܍SH3j;grm,n]AWޕzk:- ]ÏJNBŜ2 q>݁g`*+4ᚎX߯<;60lgl.O)5 BH3mWV;V vq;9;wP@2 vZY#RV5lNd]6ܭ|XG: PE\h.1 ;ZWk^E#$5o: H!TW3nL]猗0<ǒ3}.xE7D.Gi .V*eW`X0*m^ -gv00}j7YV2b\dG="m\6Ncӊb'G%L[+`Z3q ̾ݦ0N,ƿv ' u$3ro_9 ȉmx|C-WAgv~(n#މcp6NMOu=l%ˢi -\F)e_6 ^FH9 ۯ>ie. v1Dӎ\?jJeM99tXN(V^ ;+.[N Vm {B\jy$ w!Ba.(#}5c1VԿ -VP(hʛS}hG.zy 1j7%Nve([Zwa\>F!pOu[ (Ǚ$p4OD܌_l9hpѰ%x 6x -!y"vo?b 8F|u_ye.>`vy'^W~"7fЙ_1E<&N7q_8݃%:ï̼fYW1mvqYñfUͣ~:I+[2eL~SqUVDPn40}h9^~Ty{ͤM 5mx:~j?0!ە1$r·FPNsovHrPdY#J@&W޾VRq qq;O>3薻.zgv݈![]S~aI)j\tE7:Tgpo+Ox,6 ;H$ Fn L8LT#7:fMga[He5^]!ܻYE8yz䞮Uk?yh]WUTIB:>y6;rErZF Jn1L7"7V3@чYo{$fLk3]۔nf9GԻw,ɷ4ea˃Pr0F5l*RFRer0;nâz/^4o),u_@~.2gWjjj汍n@*H`kJ'$~!4#~j KpS&nTHf)-r8: *p>1!*xU#Anjݼ~hXPq릾A>qƇ`8|Xj3J#HBdray]pװ:Yk`,(#)lYaueE-qh覫y,newg~M~'[9 {j$ 3o&z{K\X0ކm`.P0iUܼ"0p94%-WQ]|!6H8|)K)pZX:wQ%[}KJE-n_b^:I%#&aM=Zq-|SiV $ǽ;CoZJCxHHq 4Q[L6~jc,%սZ[\S|H>,iH4|8LM.gfLc -n<ZI'!"w,pybnq*)8 d\Vt׌rQib #xf3PX31٬UDFk)m~7):s)t_H&Rh;% 7V={MˁOo4BG6Vq]xQ4J* "XFWT {бzSD=& 8 <݁i71񬟘|MIm 'p]Ge-w8DL§VܕFq#wS̛Žs$I8mrf$:uLMS>Sѧ l^tgsXPIL@ZDo 7? |/H'ջpk5W8C$y$ -n - '^[fx<(E X[%nlw;gngO2x<qxNIZ# ȍ?>yn&0~ ?,Ъv*镸m:3]"!Zixo4ʥϬ^ nDd@ -pH: \-qyqWFXIFJ`V|JtMY>pf$3GiXJIgom2Koc(N8= -^!:M5d~Zr搋waJG8k5 4 -"T4IPu5xtEv 6{Q;&xw|LCBbcwI'b!X3u 3¶q -'Z8IV^Hx2mGW4(}쫔7-Ze M㫀dzR,ʷoǪnZQM(XϨm\ -']sԸf)<@m`p^"D,W{D\KL@x`yZ;j&#% B uݍ#Iw\F?X`F e(*:)0t# D`HHH2pu y]""ںe$ 0pYp&DdH HhhKW#. CFF0P`4tVK .Me0pTSEt-12". ^D\G[.]CBpHh QVQWm eCtJklD]Q" 0 e :E$EDdAk PR!( ?,dhUOQF4 lmA_N^dÌ;8eNR9Uм* ++zPD:6Tlצл^[EBZ|h!k =!6.EUK׹*pVtmE,QNBsQx. S,XӪ +iЪ G6,Fb}WDW Fi<[gR^`"o&Q|V8N,LV$'mhG3- ATb[Syϳ'vPo9-mjK~ՓL :<} I*CH}&j1QU_|>|Pj0HOEFmU\=o(ŚjB#֠ v +@ +Zl=VLJe3%k[a?fjCsv-x)fA JD;&l7 QOdArHwmU*F'jWzn e$d~TOrUW +.mIE= 5RhMb9qe@pcWA4 +F{ 26"z1&,[m{g Dh^H ۯU"g:Ǒ|D?~w\zC%;o@]sW`1kv匧Sβn1O _qU72Z " '(3.,3SR GŒoTI=(Uyp"KLe )$B@*WdZAȱ.b; 7b4-t#J9{ULQO +UP#zzzƒe#ZY85UΥDX?lDžDH)I'MAV^ʹ(,r ճ+Vs0:x8T5i,oT⇭tF8-z"p7}FEN) +L~qe{.2i6ZM &J79x0b%ab=(mL)ҷ|47L@c# ^ `UM#]D݄DUGVaծW-0)5Ԃ"@H5}Zq>xoY,(sq"WH:\Dd䳾 +z*@+"UI"a#iRJR6r5Ew*ޫG 9ਿnEbo>\#9d!`6l  = b=塟ePtR8>у|BQqx1MDa\`Kn9UMJh%Kr.׆R6?%t JcYQ@f! xq$.fUU*AՓCPB(g;vleyMQeV2rPy;ׄ-{۩ȔZk'J[AذS:̑>]aI(p$"!D$ޔf=rSMnO.]-~B?eUhh4%j(qUw0UnmW˫GS Z8NóZa#a"vfucKz{GpHƒ&[ŝzS7,S0B ѡªз2U@eF?—|f~σg~{ޫZ".a۶+0čXqH*-!1[t?|;; zB zd8G. +^e8 tJD 듄D_`  -_kT^\gԩQUStO++B 2 Z"F÷2E ~PL͏/4W&Ix΅ػxYGZR,y6!wRmf} +y)aPȪJ]Pa68Bʩwdp!QvBz7썇Gh16NUS? CCICoD}Ly%!֥R G*8̌>  }/ |BJ6"%W| ܞ j,*"OuUE) +DefYt7,҄w)wut@hW#՗N=4I0 R*=R~ɓUOY/*8qI P9VdJvH+poSLJ=R(6:Fg \h5_.g$L|r{|Br2Ziq +;{I;z$ώ[=+}X]TD Q"q XB5id_<&VKF1N TTIa&|4$>[ ,㜀~%A 36_RR'aUvJpq5+TZ"#"ŎU\it)l&4!>TAWA!~) `} = <@* +z0JR <&{ϱ d 7,Sx@[VƇC#"0|Ž'|O[zn~Ssn +.7߯7N +>+ ۚ4 +_Vx=2) G?SFWIXm^wgا}(a}Pc O z +WbîBJ +L0^X1JiQ7/=qvO{R| +x͟4)-8)44xLuLȻTJ<#T[F:v=h8KaLa4xţ*bYV E-S&YJWǂзP::؁7dG4e 9BC)!A_"Rjan|)9_@Q7*3& =*53߀͗YI"!|qE~l%QlMڎ8<<֚5)k6\Dk#Z0}(/^v/#7ՔnA'(V#fSB3;L`Cp|8l'|_ee,9Lp2wr\!zXQ= +.TÎz9b<╞jX-@ddB7kv m>]Kt PVq b%M5 [-I7=߃3 8;'# p>S C(J>?Ο|?0q{'&Xw/ZT.2izw$IFS@Z2Y.rzP 0E(".|C,LCe;)J:7?ίq >_|W5R r>SMR5|廨|v!`5{a9wkDr.Vbk:2tp$uZ櫑lC1Y_*eZЧgM& ƪC_6Q[B??Pc#|/5_ g|oͧ4/H ' +99zѤI2y,#jY,LQÑCf_Y>.f,63D%qǃWXAc$ +"}7,FpПkrM=?COfr|8@_^{D49͏bZn>ϷǼ|_|_KՉЛ65J=qc=ۭBک:ڡ:pKuaj;Mm41ȃ/Ѳ U? @"_iC9OX-)hz_ + 96?gBq1k'(5|iΤ|$82- +TM-fu/\u3b\JީT_xNspہ:c63ICU?]_}>HLBG7 V p~ ;E-`D _,{9H!_ "&S7wTHG?S29ǣYpǣ] |4 nWoڹW r~Aοb|<9Ȇ| +.:?eZ,>'T!RTKu ,4?(Or|e7eˏ0&Q1_巠dWx6(TU'Zo/`{5ɭF6~ыfߎ[=*u9] SԂVA}(,uW^lPofSpXj_4c#Fc09aT>'_(8_(HWOc-\c]7rjyϔwi+,^6a+,oږ8UT\%KfsynGo^ߡCL'C ->AJwB|eΟ4ۜw.(? RjTb +^^cY/U|Ȫgn\37ڕJ/Rxz;~L0=g#`J@_` %%AhCUh`|!qDt14#G)Gxz@T)7EItӯ`=V4/ABgp)H건*h]wK9ߐqw +*i_v;3&8 +A^&>Cȶh:ɲ*k\L7TF_1=rG F +4qBv+ZĹiI *"3; ɽG27̑:x#>Ū{XI|3lF6J>^8 OŴj-N=$P@8|Np8al]G>wA #q<l/i^\ʈ'ށҮYt @*+, țIR_B/.:xbH(a$.庹[5^3Q: zT3`ޣI|GlMd1O?{U{JRr7"LF#̈́i~XJ& Dqv]zWꭁ,t ?*:5 -s&,fd0i*t)jZ߫Tмk:b?#v8|np"YtQʶNh?3!" TVP*n^_YVGX-dڥO缗H +@m0igDKIGXA0:u̺*s +rWa逼7RC5q +2j_vNz^?(4owL [P-_  2v3^hrKTid?6G[#O\aixc^ؖy*l^]w(fY5ʈq 7BOq;kN+ww83=omfj5R +0v8 rS%0ԑLx˽}l ' '¶iRH<\ !\dBFB{'.Te;5=E՗,)|s},l`z3"s&0|jl`0M;Fp )5hp 3 ۇ350 +3Qqp똽6Mnb."xurfi#kycNئ#2+*맲o_VﲒJYN4)G8+%&}d4 +D2Fi0Lg8A )x$WXQ]1l)۲ȑT% +0s(Z+UZ `c;Vtձ&!B݁ + sO!ISԶzdx^~2S\I , v_2BqP\(>{J[Wuw]U=P' D+nd4ʙ_ jQ3(wŤt +2qS4XEbgA_wfy[ޣo ?! B.mIrΠOlCHQXA&,@&x8D.U.) ' . +6^Qζ_,n7q+8+Pēt5k%#w"Ot,̆K_FĶb3Imtw b\nSpISޱ$𖹲ۆq.BA_xBHRog8H IU{Q¸F= Bbt{ycڦ,'S}}U_}%6 INk(!Ќ<|).,e [;OR!iG ӶlتLcDŽWW= HJH +;ϻu~cAQUJhxkaIs c( K = +d ȅLf(@ w!]dUF8e ԕkƷqOD 4sRS)OQj en&}a9L(Wqb|Ōap Q@Uv2bpI?PQh84nu]}LC)AQS1y2O'.d3㾸Ź0pw̟vAkH~!ͤy6?z8P +%tij^Y?AfJhT.z#j1gNj=4ŒBB% GA+sbaK||fYmA/]얹3Ac\sA|,@4o^8g8 R5rΙnJJ(b$d4=|Z.wPͬxBLeݝ}65lχ'[7XU'`h ,9w4Q&f=V`t _}O0JC`@!AAGPX4 <$ϰ \̶>t+~wĮTi[(AnQx6^)h@ +6 +/ ̼q \-qaYxFB}B ¼VqS<\Evo>x +#M8,iadF` oi,)0?|gx'=Zxy4hƵM]XiPp i ( "#I1BXDFm1Tjm!rM1#^("N P0}j6m@0͎)T}4@2k%!t:T߱ '_ǩT6qZ-_3EPDV(jc0@`d2zW=rd0jkC<n ;o"H9\h$Br`[IP7er/6u=DaÈo+?*i^a{;g׸a)?/m@> +@"ZuuEG}+:&`bb^MP5n"+CMq 3$st6kij~bY7%񬭈y\R],bcM\-k3^SwV*xOۅVhJ6[U_ +WMA} @ 6 + oU4sv  ĕ!` =ʴ5haaL/!ᬕxT-ugtL2aLi#; 4y_IFBB5iU < +6 [I'w [Yo)Xoux̠]PKFDaL-4zI{010;zLߚ˝=E: N9!euh=B. . +*w֘FE>̄O`Z6 LChPL8 DGnb:p^ 3Qxә1aU@u'1ChqXC=-X0p, o# ^T~2yb\:' G 1}X(|%0ğx9o C8'ү2z->$c1oq3Sκ򖸱ek +n^l 삇v \?Bko@𛖒Rᕷ:% kE,"7繙H n&SSCEةW^j8t5LVjɧIQҴNr*>z &)a#-0 :r=Q_aA')uZN:*55e9MTo% +6ӭgTYo`5q'#&hv4׉u [I\l͓IQvXjEN,|8/o&ll5P AfRVa +JQR_2F I9^0I(T`5 0T@ +,#.j$8MbݓwWX+ 񤛔pbQK>ZeշlZN2 2-6s4Wbm!z}$4@8OMloĘۘ~*e_ `w'Z7l+)AT2aY>(P$qlOm/u2vh:XJ *xsƫk6Րi C.fX߅q+!'(ītz:P*;k$AiG5ۙ3 \D |8g3 ]SmZ|M܃k&i`18k +)h\ hX'YyU#VI IÇ_!WҠ%R޴h.7a~Id*ߪiwZiqG5cUS?ʪq'+$t!dV<&R6lk}l5z\zZi~qq/1 HfjR ^>k3%h9v7$ݽsi#`wF?X`F e(*:)0t# D`HHH2pu y]""ںe$ 0pYp&DdH HhhKW#. CFF0P`4tVK .Me0pTSEt-12". ^D\G[.]CBpHh QVQWm eCtJklD]Q" 0 e :E$EDdAk PR!( ?,dhUOQF4 lmA_N^dÌ;8eNR9Uм* PpM\Scjͼy"5o86N9΢΀O- ;w>z{ "n ,Hly;(AB~۽!1p{*@5p{ "zQ3nF=DPfQ`s_aaƇ^(H8v# A9]Ə m'p16q.tPw w3l;|`<5p6uN]@w)8K8qh%( ЍarJ 7"#QS*x=eu냥T:^H%Ld4n?KSI,b>6 NCK@Qm ,x&G8%L/`G/#ј;[Zp˾Hc\kQYH4GC8YxF?|ʛX}B[u1$r#j%>ԢS| ?}:~S$ @@ -846,395 +860,404 @@ A 5m&$&b2m5jt'rT A7 {tKi;@ѧTZzozģ\5*,(Jq ǘ5^%m \x&/MCr890;-A\Io9" }ec|4^> UK9nz}26.;"#q*p;x Jwz; َrEu_l WJG Oy -2V޾n2C 0/5 5,玵)vRʹ~+*E4 5kY@~<Aynl/M9I=U2 v72eŹܡ/wgv7qϣxN|&<7p: Zb6SH6c%낿MqcX/wj<)"nx"E<%92hBolPI'& GCL}p4D |:M-_aOrV(f\X.{g Z-vHt$Y+UұUnhΔy3u"c"Yg cCaDdc 4 AXx|bH """DAQ͛@!(i3m‘Dt -`Ih̼nlIe&orN +p`v){ww*&9grulsrڒ9=9i^׎Ct -#Eisq -a ,jy֘HsiAc;SnvN`եWQK_*jREZmJ}*a&[")%NMγ=[CIhҦ|'+g~ߔn5LNgO w;Iz /l Z`?^^qUOT|<팎]=j}G4lD*oہ q Cܓ2fw .o\!KwϚn%zV,)YՅE]|m'+\q^YzGGIcsJc2ٜIq 9M>\wđ ~V ]V͡j~k~V~Iԟ54ܗ> -?W^ָӹW_yeEsYQ _܍VDzm8i7fꙴc֯<˩!mM)k埏Po6 rܞbp? #DEַɍ4' $=:k4ם+O:~Y[i=ّxOyZ#S;':y0l-Uj?~yoϋ]-{-tb^|'}(.zu\y/} Et0DބbJf%ZDkO Δ !yAm*$Thme~E`8 `}>yP? DݯxߟbX~un|[2~a%]8굩%oS` Xے-YC N5[ào rCbZaP'Kn3s"9q'Kb:.(.S-wvNqSgЀ0#R7JLCu.hp!)!hd6\Pךhh*1\c=N{-}”v#F˿{'47͍ Hn!*|nFI+pQu;9OTBZCΨlΦ9k7+4$]9336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.252884f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-5dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter +2V޾n2C 0/5 5,玵)vRʹ~+*E4 5kY@~<Aynl/M9I=U2 v72eŹܡ/wgv7qϣxN|&<7p: Zb6SH6c%낿MqcX/wj<)"nx"E<%92hBolPI'& GCL}p4D |:M-_aOrV(f\X.{g Z-vHt$Y+UұUnhΔy3u"c2Yg cCaDdc +W AXx|bH """DAQƿ +A!*impq:%a4uM7F֤f۟SM79pz94sݢU,L~mN/щ6'-0E(zON; 0D'5r+\v:FI(a`Qi͌EZH#:N}up .|*93ٖ1=ϰ,q=9}Dl `N@U6$?f_ 8VtVa~: PӿIkakmEW)۹#/)XF)gzB&9^ ~(tsxYE6;:4W ?}J3optTw`ɝVEh{ͣp/ba~z<3:k=eȾ*&wiwAsNVy=u{Jhia0NDw\Y#\Wh~?k:qnYObjSS1}e;P?7&&_̸74c=\<| +D_Cĝ'(a'~x{I- +#k,B?pB{?ǹ{=';fK/ِUᨗy'"΂d7q5G¶Yp6`zJ[1+7'> OY'k?kp(<"FVU_.kO݇vN@ ߚ&gUqoG>/~pTFV ζXaS׀vϓh7/nz?OѮqd?|t VYedB(V7ÛQϊ!?+LlIz vn~ _:هO '3mL=vL㷼g98p)%uÆaV.Q 9Y-~hz-Br ɂ&t-Z?u|})Ẏ?B@xE}VVZxd||v$fd^xIfLYKڏ_bWo *_h:1ϿCnړau|?:Nc8Wj^(˭|_x@# :27a|}YI63ړ3$;>Hhn~Ь + +i`[_@}5xN*R_O?|<'g0+7ڥΆLCGX}Izmh9<1B}*5TֶtKBhSV4 Ny5 ~1d-9N1<'k$u7G$luAPyz堂R%`^)nf$bWc."#$%D׆  _}C}2tǩx%4?S2zN7rnTyOT?}BcuXa q§m͸nZ7oD%T5lʝg4D+#+9336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.252884f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-5dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter / : -/XMLNodexmlnode-nodevalu(fnam/ArrayeTurbulence;children1nodetype/(t2attribute; (result2,noStitchsTiles0.05baseFrequency2numOctav,eCompositin(SourceGraphicoperator10%xx10wwAI_Alpha_id)idyheigho/Def ;fractalNois4GaussianBlu1bstdDeviOffse1ddoddySpecularLightPointL1(-5000-yy2zzl-color:whstylspecOu5surface1sExponent2Consta*q*$v 9T)v@0p0EA@B!DHBH@r*Y[b%t9$h1Jq3+])ÄB/9*{_P(fw%o,ґN~=Nl W2˄Ex0[ -{޸=r'=b2ښ+'캫,ekI Qq!)%>*S0CfOơxE -~2utn-g-<1F6z%q}JcjgioؕHnek3"/̵6dU*8 j< ʪ0k݂6BL Dwf5X;BGi-^d K"7M|c;őidB N1N{ %&Mi$@Q#8O~ײQ?\R˄ ;tv3QzdW+[6n/ۚ20gqRq[㚈r|SP*~lg GtIGcg$OjWJ:HLǚ">a*Ot* gk;AL5[ -ΐn*Y)E=bTkRÉIN5hi kZ:+]XhyN;j~yIG"*%HE/%N<%;]Y<{rMZ,Q|&NT >6Ρ9 sFE]6Z ,:'i30303cm&?^* #qEzmmR$SʄD"z~ o9/7+_lmLC2_P{йsA&|e(4i9L -(|"b\E x(.XӱD;: CT"*(R@IS-^DH4T*<%=%1P> & 6(q'nؠP]UR_陀$%S4y-(uZ+?{+6+Y! &;USV 6 vcJ![} &JS^KYw=VT]ePATPd1xj$02ff"!z"Hr4 z52"6]ei@֔/tVakZ3LQ(UHd"D&2Ld"D&2Ld"D&22E&2,Cj**/dl[s󡲖]0sKY^yuSv][ٖ0xyfW6ǜ8}owUG{1knVF}neٺcm1mYYx{ -Y{{P;k? Y[eqYVLy, ovlw]9bLy;yWʚaSeʋy&Ja"NpР`R陟ad$z6mV_ZKX4.` gpy%O྄y̬5k̗0\s}lֶG1037m7.&\/cF37V =q!h$ -DIE$lP(bD&2iͱLd e@#!28<bG{m~<}[:i]ϱiyVCN&L0$lPD&$H X7>MN4ՂD&FFY$<@DD@ -4 I 8>tel}m]Aۺ>t?}ܫ{u{C_=s.7\oTwo{Mn{ڜ.krk.do6zW1]2J5ne*;uLvYi{^;iǼ nc~ˌFbeq,6 td @@Ph dSI -KF*P204"DQHa 8 ÀPc!ihŇ%kW"*|]ROT,OS{iA> q3Dmd*p@Y_Q [︺Lط*N/G+6՛-da7VPIƄuIOڱggx/ ,{ř#[(M})Kl"I> ]<ʐQظxtAn=({5  -, zsP50nD Sir}\?Hnۓ^0`4^R-eC߾^2֖G1\e ePD - -E A]@Iݱ$ėaLCu=f9 @`fKZ3{0B)~3|-҅$扷aaEvkkBJyAp1V2FACb%&鿣%A&IJXG zj7 .B+)[7¸)'A.ѱM-e))zS4&s$ڊGHG<&] rQek12'1aUPJAOZZ#d- W1Ӹ-R s+*|tp>r:zmkG\ax_a0|yrś *u@Jcrc;CڬA7Z4rp"%Ѳ5iNxH3^+V.;%f(P,^ZmvʤdzZpͯ,|L,uNYE2)o#] XnQB9QRBx`K*tٝ5,~:w} Ԁ,~wD}ġXv,-Z^/s_ 9Sy^iQ7xFed:%r#Y2z rEnm::e_ml! eS٦J "^R2 59lIX: l>TTE>-x/QF&xc 0TR2 -hc2Ku !Dald&nc Zp1/jd`6 ͚L H|o.O%U0gX &fd,M?Uzl <,tYo[kfa -"-, lI!%! |h>^D/|`Sry6R(mDSv+zw)+88 |vqq 2NEH)Wb']aɻmXE#uTM!DE]^T~ #WsxUߛ:>Y̎GEK3بEp &c{]%!e,;ce/D_|{)")`Z NR;u!B!<T1N c$6,-<EKOBLY[V.m٧UٚIb[WXi@_v5`!a|bo}ÕRU¾G{_<5[܏kHp[KoA1ծ1 ɊyRF+q7^>'"U.&{$ ? {%kfF"s -?Y#AUm sl1gǀ'pNѢmUw -BM%,x?[l@AdXvQ@ {kӈ2E W RK'c9n?kܡ- /+LX(F*ʢK}OfO2# mƛ*}/MW@P-Y"P8Ðqr&p 2SMG7%2 .?t }D>t1{R="-tc8;^!NkrF۸~ i苵 sEx$C^CU<4woZ2i䵾z<lS5ز/戮

ӥl"dy0;; Ge#l&b,TT0O$8 -+(^bN GO:D{b JLPޕ<$=GsW LeQhVL+0p7`\ٔMuDkF0=0.|b8WMʽb0ϱ[_WĹelPnB8yoP4oYK+!{oEgn db~DHY$t8  d0-:Nb&{ 8e.h6Ǹ{ᴄJ\@Kn]~~l K3Ai g,CWkZyo jS5HW|/ݞDzlIt]ĚeiU,im-8#Z`@LR#Ǩ2ЂI5aZSʵqb) !6 K Q.kХʱ/ |_7I"'ﳐӴlݛNv-D%~)$%s9:n H>?n&@,H[S$l25~ti `xN%Ts}u{ѳ8JI©Z %2RŽU"SjI1C5G8 w bZ*[֧/zOS b؜. !F\Rޯ4jRV࿗S -__{"&KͱMT~Z BFienh R{ 4Қ+!X/HkzUv1=qKdnY^Zݠ9 -o76#!bWz9HtY^ǁzq5Ʀ -w5P<)M)U(mW>' s#̳`궂4BmR \u9 "&j6nFCbW#0 5%祫 @'UqFWd{O@3NliT. *-j喻LfP osS]1 \7%րƙ)m !Ni*p%!7 8~ԡ;}'G -f5nF|4m`n Ai %@s'8OQ1*kEE8b X\k m6l[r&Pxk煪aCuoŊ)K{T6z \®Ww8 -/5Q ![u+BM<쮪3C ^< aSBgZ-knSe)%EVpK2ElnG›ܙY<ď~WytjMhkʶPz4%i )F:fj -ƍ⛱'ZG ͕6g;>$wV0`(OHdPLjyA*MnKi=svpO#zCpYPƙU! Ţ`dJx`4FB>AYf@ k/ Ex2U$IEĪMޗ>|do`#mY3Dxv<َG/4PJ 3ry\%RޝLCgwsѝxby&,a$aҘ|K[nkaO8BIÆU8ނ> Z*5N`h.dhϛSlD<ZB0G{OmP.S,GEh$F2D -*wye1Mm9rOTh!nzrtv\M=TDi/9vCnL c|~ΛiXmJ)Y%R'[t"v!",=ëEP -]̌3[pu7NivEKk6nP4:_7TxȂP*Ds|"v5 cȞFG*R) w_+GJ0F%ǕMAJ.Nq^J_^ 8 lqSw Lgб7"{dYKXJXv}{b$#ü ] /Y˵Q tQ/.,d0=`J/Zw. cB PUgN;YfZ"[G#%mB[,{qb([ R]M,@++HN`"нin.\DP sJ>Z'#s.+! y$deEXF0^+_f{'7$n|! .=v(\vH` -!:v1.e|jbiim M#kKFAIy,E[hc$$CRɴoӎlj( ,P-KLs8v ES-)haPz'n˳ r\Ȓ?~ FF D-p@[lR]œ2PnNBP=VB%>%lȨ f%CjBzJ tu(6/(K \ZB0%6aDd԰ˑ($W -Ucwwꪫ.?0|^5q;eڸI[&l]'cseE:Dd]uF CxzJg/ʌitlg$ދx9<<&XDvk-EX 6M/lyp}q{$dbe-ʶ)TQ>zϔZ+/Q,_}>͏-$-XNT~"7ҟKkmx7V~]Ǟگ=+(z9Z!_VF? 5a3}5ʏ>egG3u9qt)ot4e!?4x.i~[G\p'+'|>8lmX)*aSBk-V,٩X8nc/?>|z//W9Oٜ{j?VZץ3f֧kgebV,;wIot@t]Sk.o>;T{Ϛq—?QIG qtw;k8NGi;9:}38]r~c~>Z'1Ï(QgF[p̕c㿌^'37iv峓FǓq‡g)U~O?vb3kc~:qj ״YS7 Zvr9:>jmqډS> B'ވ9;;H?X ߻?vVՈcd?S~q<7{kc ;<Oވ'?_T6eH}<+b>wY;@Oώ>ϓ0g~}×ayg_—mysV,cs]xi3T~pbޏ}Y,7GUOP?Xr p8#|8gJ|@|>c."rZ,3P0cɫJN3̾)J0t|>}>~r>1ϋi3GG*G;1T,]qV,i©+OimOG2,yFu=~-ڕVkS+训)EoUkava%w^jy[rJ:w4)7kX]I[N}[Uۯ$5֭5yPjCoZ}sS`[)8)Q4'd=)=Z)lU.vR?3ԵDΏ~[ٮۜCD5*LSUԻj캵nIPk$/v IbJg&sRYNTi i)RZ[(]Nۥ, EiO+ -6Ք%<nrk~ -(|]+8+KWۯ˪VU]a+' -' g^cO7'/ Dd-'5q[ n)z)Կ)ɫ'~Xn'rYQpgΘB,s&N>މڒ d5~S(ZW[FoVz%-(Iա۷S0_1b8'bֵE-JJPj%:uv+|>rک$?1O Im$ݸ>ԓPM|iUn)WuX66qřڔSg(IIÝXo{n WTZN --1ܹRXՍ᝞%iNlyJ|'])̯WZVJ^mY=. fQ.l -NSՐbJQ=eTtJMUD}Jz6҇{ZIp$AIo -f*)KڟYUZ9W4iMVҶz{Eٍ-yJژ,?dI"nbI> :)/v+]1|]N -}nwOSsު5Ri)CCT0YҔ.vw9&[aj^% -k+|1':e6di+o5**jz{:oݡIO?T&L9nToul@NkR/Ӎ+J?3RZ|+3:Amc[IsVRև[ڭ%tVK~J"aYZ4Q!\C* -%+(1|Ц24V0۪T1R^t—Ԭ@(SvM _;/fXDaxS֫ӬuP6O4P[7xХf -0|y)KTCm:mi8Ye ȵA}@ns{xv56 hdQ&7QuuhsuLՠK`ʮnl:M0,Iuht60ž4"R$@!iJw[D)`@Edw@6zgqQR\-Zz'URg≿k犂YrN؛ -o~R|Y>/-.oO;ӟfKo3?4WzZZJz)rbio^Ǖ3Sygl*oKs޶QT,Hp#}ۗ0 P\dj_N{5.v7m.Kgs~δ✭˜?u>.џ0D<}VaR%i -Mtm-Jى.$JueS:<LO.t.>0O<$($;mllcD?p"7*LcM[l Y틈50l8Ffbqx~iĽɺ4Mn=^gu{=a6/퍲F^\`q˪ fha;qo76C" E"tMSB>ޗ_HYFP6!6y]`9ȶ*6Aav :hl6H?&Z?Y7&L5@zxEٲݶe[d[m)òmicYEa:Fc!c萎ӟ h f5 ֥aںƦzYSu;M0 t9q7ŒB8C( -yK*\'Kʔ{?7̓Owœl5 {&jk+sY+[Q3>5%JDa-;=sZNiVkH -:10Ee\iʖ5xIN:L-NJR(Yk!~\-MlSyړŐ^U8IK? -06(8pqACBF` bx` (yA6 A@pNBAaÄ"'AK$KF&j0\ Kdx*GAhZ@P@$-4pRA&(.J A |P  @Q@ x@A >(] \*~# p<`lfĄjC9@r$6FjTaH(*r*9#'TK`I'h D[LD%7l &L4|D@`"* eGHОեba"$ho`P`PMC!)@!)i pJ>|Sd!F>Hl|p"#HF¡n()pa) R!BaA8Ho)P><!0 2$g@‚ Б"*84z"*84ɡqTL2R1Lf2 s6"#Pd6!BR17D 0}n"(j0@h\*P/Kw8qht'\fT, -ݥb8q(q8aT#[0qd$(cJ NAg@DT4x(}2[*,L4BF,#M dhX.+0F`@ xJvtcA1D9,F 1 0idLKs%h׌t[ -@ L $(ܖ -<A8h cKX  aPd^( yXdVT,ZG"#݇@DHrAA`@Pd4dE+\rC -@tA`P\0((2<\ 8aAdNE#҄\ꆀ"C$`v> JZkԡxzX$" "$&=` 0s -H֑/$p@ E0 ,H"@&ѶB1 .'Tfe"R(00Pz` Xt$(Båb I"?&>a 9̓;HF#@Bm wh.ˁKQ&6LB5R  ƂÙ#;HIEɭp:KrmlPƇ#\xrHDw&$dITWgpH,h$r6"5@TpD2UaCfGxBo0lcqXh0 0|B$lq(2'AT,Gwp\LD\ FRl( ,dCHʌd Fd0d iJnf,F9w\8py C. Dd -F2-E,!G]*lo6Izpp"TK9&dHd:$Dn@%p@#@T,n!m hAl"h1 08o, yXFJ2! H;pX%A%'( $ tX0(:.8* =$aC#e"e~h$#-  -T,&X ;#"9C6 !  4ryC\ H2PHxpx?2AA`LBWr1a#= $ >stream -E %/OȜH0ԃ;ό8` Y BT,3P%S$]s ʐl"Ķq1dA&2hBL $#. ?/Ko(B& ! 1u5 bG=Yp TQE#"#Ba4م@ 'sX<Ԑ#8$YddHF)SqQ!BKDdԎ U?al&DcdԙYf!frh@ytfvdי0..K r+$B.rG&FȶƄGdA^(ɘM9!5(b3xt&?Rh2 6T,KÀDxQ -+$B2 Cb+\Pĥb!J6(LRС 9)@p&7 -earf HH&CSԏ t!wg DJX!zU. "摙 T, |&nȍ Q$Ȗ'"%BfFD0p$ -QSfaP*zH>0"H0 - A0 -Ai4;4cݯp+8h-nD,w|GB{'  L_=l*OkY9&cxP1hgkB@Q.r13VS}W nX|5Y -$r2tmt38"bCq$;..p?E˿Xw>RxyVtZef:Eė2xhgPT{HAW5F%R끲qd#m?m]C;7Pɡ $j-IyRum&X<3 -pX]e|Ҁ֤ -.)uWe#s͛Q{brƎT궅m_? O 8.f= Ex\6&X eڊTJإ~2"NVj}WC8z>DC1mp>)!G%jߤ*pfAt"̟.Zؾ` ߷HQRɰQWeƵlŔ\?\90R NEj.^vN~mOQW^M3@Q,#] -d猡 H7..YΜl}9E_]{Q\G1_~oׁ0ZW/Ծ4(`wJ_QX2(֐&)+R=/gC7Y׶Ts?w :ChE -yK^\]=hWMiVPkFQ"#˰cAm3u+K'QȄ -<-\'(oS"|pqa*˛fnEUޠ!' ;Cbi~ -TjLrȿ3λ0Xt[rJ_G7aáݎMRBp -tp7:Yb2A$T42$]F9˜;sUCOfHt0e|0pQa1!̧rv3o -Nh]:TBQ#k'X%o&. 3G(V==Da^NQrߩD-ɤ!Ff3Yi3h ?%8keS -]G)~|X;6][Juj!{K U> ܁uLT;hx {4zMO3oFmQlخ 7%ڌ(LiHpk n#E+,.Kᗀ -$a-`J~G#׏P$6@ PIaj&gz.F&Wz31~yI]dXm0`!Tg2D^ 8XN6yAdP.;C E-ayQcC\r:9JapL4o $J(xOYדY9ѲSKa.@Po,GjUǀF)[Y%H&, 5 ;*TPti2ԇyQGHip1A7vJ ,oQix ^"|[ k.fuL;8N80+jX6x{%׳s? - 5|l(: ^H@\4;i gpV`#99z)29"a^QYm'TEpuyL }\@W:aK"J8{:y)y!,\/7RoݬfxL%wHl*h_oWGr̳W3zQIx6תNg_c5HS Ϋ-l3qB[(ڲ6Ɍ >8jr?8[9H76C꫌sB+@,t(Ǿ>C][e,70e>yOa gc9l~_F0K[rEK7,sҫ_[=\O%k#U9xJ2W! )EJ9׈TXԊ?QcbL^XRiTh'@1q.ƁeɄFK -, ~LEH=1b6]>GrЬ3G h nAxe1⚳T\$bHS>0fD$c\_`| -Z5}W+Y0C}Hi)[A - (jrzus۔,OT-90Ix1d]SQ12xh$jE>1da;`FX'?G"Uz12mI桶xw%F$dZZ|^o'U(>cqB`pbfa oe3{I$ |p23$G 7A@/iSW>CSd_& leC.Гl&4k |Gw*f]),I^3W_RȐdi nňԈ#W'h\c9?l5J [Qͭ?Tu63a Şē3|v豆4&3'vLz~ᄏ率`ޮ5͋Л8 ujy8  tK8hM{.< -Nʅ7Q9[a~')$P쫼"`(P C0遍wbSiA¦4eP\ n2/$k[d'wsa|l`÷%|#{eYk#ȕHzAe4h{6@=x? ,Uy.^9hS(C~ /! 3"ע? t'KQ)x-t[8ki )EQM"|;L[1@ξ.p.d0)pz\9z 3e:Z68r?qvӠ !>~&LfV'] -bQJ<_*(/|L PC2MPkYSKHi<ңu,cQmpJ @sqvL,{'b5&jq._j6j/S2&g$mOs 22"ht`fb e هhE%-2ϧA*̙? )m{R0O^:9pRtFEιUDLN*%!]^sx:ֿLd&kTqnmQu! FQ*;ػ5[`nGjՅ5\$J_аVm~s U/5B8az&3m0Z{- Fr:eӾ9o^4i"QYF?1+ЦB=j |BQs-pyZR:U"T U~ - 1{qujU@= 0_|7Du~ ?6@xwxc^|$bl3.n `UL-Dyhqݴ ROvQULpԗ4J6Tϻ(RCANjQEOWvBJJ0m܇($H`nS* `{}eqd{DNo3p(/n,Mar j~z;iX<93R$6`CqMe˜ZƔDQA=J0S0]얲 z؂xc([o -oY$Wt-<2:8ձqO?+ľnfyFy46 8{DQt ';ʌ@c\w!(K%}G>l[-4qq7 n~ rxD<d` Orv~< 8P#bf8Q3hPyYh>+)If):ZGɲ7WAp=fsppVnE= )Ea0~ՇR&V}^R~39[ 2g3[̑6ooo:dbJ3oKLWv6>)` %/"U2|v|5r. r7MɐYOUzOw/]QsaЉ21m@{L|ȑ1Gty,> DhѺ*#nQtmHVQ#D:QV -cfx <jrLhvTĄ,@;) ][x`2}dRO1]݁3Bz5Ɩ@ jSJKi: ȣOIyRH5#Ag q٨XЎl~ -!/Ujr4fI~5xyX*+BYEw>%t<F 7>-u>n;#S${y~؄9V 9vs8ՒMx[¬@w,&Jp[n 6ٰYr3tQqI/E8/0a@Jn 緰KtmVRe˄=: zr+zDsʒRG -'&ĉ܆\FF[ (l8 -ySmsmͷ(M64{|kV,@Y3FN -}Wl%"`|͘4JP -F͂?/Jo֮LS3.6ܛF[Ql}IJaF|qG^ZۢΎ&A9{џMY:W,EA --sbsv(!) y,*QZ{Lm`+10÷( 2aG7 0qxswҥd'4d~ 3G"@ApeE2s]!Gs,~&f( =5$=*sKBȭozo#گf\bh+h= 6lT4 QtF%jSұF6h> `6fIJW-0Ol g 3K -dƹD3-VdD*"),g9*MTʆTDDIZX7\VL -hyQdC,#I!YI_@Pt:7lA }V<Q;*ԉ@_ɡ0b s';ZF={cMK-[w7)'TF2s;<;:%qqDz;nזʊ숆M8Ri[#b[PaY bV2?wӈľowE[DźAP~ Q55eE03b 86mj\'FaG&%\92\P050i|Z`pozyQgݓ|ԣ3iΫJ #^Vd7RB>RTt=y RT&$`8S NjX-T>ڗmۥ O)oM`rqlBqJ*EUaˎJ!d/[\G5!|Q#Q U;O9*CJ(ͪ }E`@Vox/_X.•˻¦EY,W#Z1SȜ'.^ 0Q г2"]K?4DP1- --ռ ʋp-.O"}&W/ z\>BäH%k_+)pi3mkd3ŇQ)H33SXI`!8Q=Zfe$Ez)[fUaȚ淾T!3bZ@M^F)@M9(x}'6ݦ*z%JopP\BSA?,!VCrK:{sm~a}g;=Q2Y -x=tOaBb OQ;B#Z0>Ų_=2W9!uNib - 9nOW4]e|ϙzZLau7e玉<\l lteEj4U<ҋRet亗YŒszM{4D%}tL'\elǬv@?8l]y >ġՠF,0%&72O*#51QGP @D:ΕsM,FHD6V\6ܞ3z&| K_C!Eɹ{4z!TXqwhV;est9"Oa\pdžr lM{aE_ߚL/ВءR7_0ws|4Kֳm*6^j$JEF8,V"aRET`A[@<Jv' o(1?d&#kPf&R ;89$N!1+rҢ!!%QA;DmYvXE~Y84zVt DnlOgF! 0[^[)q ""Y5z&g6Ëd۞E$r(oGoz9{ З|J -lrAkn̔ІAHC}?6[\c*C,*ͣ*ӗdԲ穭TxXOA-9?\:nUu{hPvٴ99:xþ/ڔZ34E;~S 8⇽%cIw]j[CWCO +viwQ&;lj L:=&rBU0NJ9G"~M`gp KƲ)Tzp3P>ċrQrQ0m B9L08ʈbLMntέslCcrg[P(̡R[vK8)s#"5Vyj\*R`CKȻ,[?4My[.Ei~3f+tqe/g|~W֜ q۽/,v(bhtܜu3fa*VS13+YQa qF<"1Yp,8pC0b̓^rWVd]EIK`YY7Tj\u!e\qI_O1V+$s;Jj jmIț=8/aGDL|dk–V0*/_h~k -o/D^/xX/͞5r~/a5%TMEY#|w/.FDb5?+k|5^XΗso%ꭐt7n*]t2x Apѹ@_$d4!v2'8 E3԰!`uD[nR d=ZⲖ>6R -*3{ʿlE}ΑN rUl& u5(πSCEbi{,IiZ bl͛kHAMG3d@ϑ͹[:X|ڣ~!1IY[]<=rJL3^SaL@(5"J%4;@vTQ3XXmeJ -,\KmnXxv4{<6sgun4%M -Fbz)k@ŠG/C(1xFMb~3_gP-a| ޞƇ:"7h5+gͿ`8/ZjN-t4k4FSO/OM]2b(l]τF]U B@8g+1!jmZMg'ɵŒ8K̐MHv \-68S j{oFh -xQɠ Z'۝`)̙޿5=&9\c7Z?n- -i;,F0>1>[g9)0Ҹ͌Cz1<*_|..(r?|&ihTN,)t[ч0>g,/G϶Ğc&`: U"btEJrR)ٺl$V}6@C=A%\ lpH8UetsU;&p8`:i'"qaKai5Q -wDH9rR6J4ӅPɇnGz8cv} pCŏD3MH✝9=JFkquمz44 kZ\ƑғAOQAx:67s fRCpe676ֵװ5NNn2쩋KD q֣!B>;}ÑnzY)wgmQUk$c0|?Un )Sp+1o8nTUwӧڞ_AzF ⋈Oߴϕw;w Mi/ۮ{q-9wQP֫EE ܥ$1a IG"QhRݟ.TH-FܶpZǓ5Y<ˑ+A9myaUyv_ZeljH1ȬH,L.ʯKR{ [\%VEE4%NuٱLYu5iGXŃ\v6< ;\w ZLxaRt%tH5`VwF »eG> J;΅@ۿszKN YSh wiHxɡs9(.I2Q8[IYÉ@QTD6뎄'F\i\t1j=E SEje&HxLBFn)y_( qtѣTmkMh >ZBxࠠC!# Ewji_I t,, -*udWD @<կgݧXCaq 5,8#Y?Fs$z*a?7 &='ǔTX,yo&+=j׮t2zzȓ"I8WD#['6F+X -' )R-\NcO vSQT#@YZ !\UYOpi:]Iɗ2$D[YpCk@th(9iOM~uWwN F3 p+yl_-C?l0BȨU!/Ndx+}/}%,w%TlԈp| t+H*MQ5U.4(Dk@SHO _]К2l -i'$q>ꈼLT9*"^4(Ϻ ܕL8a I&Aȥ8vR T@$6 >NmW2cHpvq;ms @`²L.\% DsWeE90(@¾ђ+sq35%(' 3]٫ q}aT* dt Rf3]X%I:ɱ,U}HFF!^ُ$gu\9d\ 3I[{2V;y틐pl`1V!qFlrf@-դ3=*[;q 2/o=K봍Pf6J!ABD;!p1B&u9;A.U6!pEv9K)UȝA\9r L{({(Hpo[$!;_; Fv9Wdƅ - Mlt$@ЭRcP: (u8TGӞV =K*yۖYN*hfk\}f#^6c۶+`$Ŀ[@T>|"yx8!7|h8K53\j`#2&ujA8HҀNȵ2s%s9RaDEɥǹq8[Dq$df-; =d@h+fN!?;0U+~+\$5ML*L1KRI)h|=Q|'Tu]۠<:ԛH ꯠ%܉q4Km@z%~᥾oҢLiY=`eůY|.,刭?stGs>LJJt E܋(( {(L^6~(쑢<˙8暇Dj2%g7H)E%C3|7JQC.*G/0? - !4V),$*,`?_;5ep*^ -E\io&+QA64U+V4Ir$r{8HCCiE -BX!1[zc"nJm]괍)Bm&b(,K*PJi KekuvAF)7D2|"f vF_J/06 0 -IsscNM[ M A G Ai%6̋fb\JPcU[l%3:HR\4ZнZ7:?:j'iCbJQg$Z}Y ؜85@B3ӶҮȜZ) 1ϰfhN43vrc,1-,]D ;pMʼ|"iyDm Nv -PDnO)I"7##W -@B$;}Z.Ӷ2[S9H=$b/i&OacWwvA@a6-~jTjQ?2&2iu6 brn9ƇӶ9@v -s9eb -2fRuL65T\ɒ -m9lt%&d/4_7t82GB ¶;mȜx{҃F~@w/F - BP=:mhH|ڥw uGC!~Bt@b^$5^[nj 6c!3[ȅ/}~ƫd 1v4]J:< FCbB^aڈť嚔1-iuڶfcdu66Ӵ!3jWqH)Dwf'Ph0n*@%)ݍ*P NMPad xhZa%R+J -*S|h-CmmܥMDӶNJ9g+Hd?r$rk$RH!X+.h+ٸ O*)T;C1!i4(+:m_V .u~ y\&H6y\eX{N->K,XUn* -w>/?tb%RVTC 81S!pxppt"D~aNpeD~MXiZۓUoj;1"8Ѽ ;״CbYںf2+b6J[zG@i1_ilEX"7F}Xl8Wx3Ju @7JLt3i;9uo^)_AMm;dKrُ'3$Lh{io `*iaBjwkD!!+Q 9W#7Zt3,th#s#ֺ2N⎄l+b(Ak< $"3mH$NxߥDLTw} O6֔\XL>AYL§ɴJw -dWɕ6v>͖@NV5wJ8`xxPn6Xe[Z)+[IzT渺M (,>GB'SL",.ԃ"*nA_HHHY#CɗHfrseik"!>B}V+ӬW&'-E#|ceg$043#r2" -cRƘVյ:_@  1`E_]"2@UOuP S'brP̳N+1޹']=$I]$[ix,wM }wP|E|mXGcQ_L >oa`Hc_Hؔ2i:bd <%\_NK/*2Sʜ<9 !~e2d 2۲3L}cg /Zl -cJ읶u'XEme& - -MLdrUCjsd7J#H?/u_5Bx%jыN:8 DcOdP_ Lj@EBo0H\&.[PiE>BPGFlwz FC./Ȉ{`cB4f}_)1⎅ꒆҦKv!yU+toKáh Mw!3_SX9q!q(HZ\kkd$rJrR2(+8(FĈ(Hf AHP( -qNºF&$D֝0;x8qq9\ hV">ef@PzGȸ+ !vֹp2dJPV4KP33,0U5V&gKbFǃ&5QfJ }H4/Fj9{_h0} I1q-+fAf`$MHL8za2"]lB^2?o'Č *b2yfeEy`efEԃgH;,"?J&::q/]A榀,^Wvr'M&{BMSѓ쨶h/ד$7􎞨7[u]4!]UWzj[\ 뺮>-^t*߰Yr~r gsP?Qr_M=/=4UKgvOmkpj[,?;gh=GU;r2_)1 -?xJ|t$G.!V@DDbi}ךp ݆ 6>l0W2g],"}irHV,R362Ĕh;oLsq"):[NuI"LNupX!Oj =;Naژ qIӴN6*!vv$sXpɕ`qzO 1#| -J{k0hې0Vm+(3vK)|;m^I&/i(#LeZ:iȯYzP%!IiGݬ+؜:]^$ǵ=Vɾh]@]E%~,VKo\¶'\G1z)lkH9;Q$ßR6(1omW_-}m/-=͵ _zx'mX.%g4{CaJ -Kb8ĬTR^Z'7r;mpD) }z%괭ӶoR3@ʍ0$ﴍzJ -pA5E6FkPi)p|iAf"ψNF;F06LC*ܨV w 0x[3E4(L8J$,&* (D00bIK6<|5|`X:,*4@H`Fs 6р5MM9H=h0) v7K2]6˹r8q Z& :q?JPQN"n7]Y=G g6Йp6',2mNtl"ZڻBtA ?s}$&cAUnљYW!ahѦx&`CMD(8>ʉ{Sf`a..'xPknpnKJr 0q¦7*4Є_m! Sg'*?ܝ(~i=g7 ?G;ݽtb?Ri\D)g_EQ 2l_ң`KԤ|5Ђpܿ7oȳ7/ (4S1IyyM}\ϔ ۱}KmW(Lt,p9#Z$u(E(<:z|}Uꬄ)rFop2oJ韺hCyԩԋ˚LǼ~9lܒj" -P}3J,R)$1JY%J7<@}V20WR6&n]W9b܍VmEƖ6}O:^O-Ot6^/l~ ͙T\Bd f`<˹T~PeM,@mj}dĊdurx^8bISm=૚F왜Zz%DМԹ]Ϥ? o'|z,OF|#uLMSo%{Zߝ· -{/9lS˛ d3]q5gߵ٨Cfŧۦ40O KtSWHp®$fba5-E&-o.s]S]n -T2f{8Ap{vW2G -aX ī~o_lƅTl&]G7FQ2[{2a* 1A'ukb\@P&!.%\Qx-s6s'@sDfŐOYwm~ĵw ]ο;Х [^G%@ԯ0ır1IU @{j(lJcۤ=ǘDϮ'H6[5u)}Ip9Y _V^H9)y0U.ZX:GW_x!}Ds̮Y'cqW9~5:yX*3GmФ|~ - ԰(5)qŴq[ٚZ hSoHthEnnP.ˡbpfO/&7_WOر:%=۔/-8"D5tAȮItP4Ik}wU$,( +6#7?Z#}MS-異O( -01,w׫jI:ue8J -^]UQ@_ZYE ŋqk٭(?bF4QO 3!` ;6uSxڻv)kؙ*Z-N&8 wqTy;aS#: c\'i`f#WE%߸0.xZS+}ۂ0R'>c76be>4JR-!טM̡U]HvS`~I߲7-0R{÷f r6U7U"Vu,Not lUOaUL[Ѽ0WE/=2*=J'v &!Lͭ[gaxM~].Mzc.ljx -#ݍ0ثiNc.:Apm{/k!7MѾ/-ևphܮ)yzoxkڮC_{ƮW]N`Q =vmeDi@n{y^'.`CvQ,v]H@8-j%vRk)]ovTzv %Hu []{0 -` n{;:n k>]gԌ]SWF%TLܣ(,^-G'iSh0!ZXӓ!$`02B~dlg'j`'@v!: -3k˸,lpN5ޱ:rٌ -R+" -&?J:"etb>O(c/ z1CmmfAA_V8 - OK"K[BD4VYδa%? * ӱ.Q5GRIh!sa>wT. \fR$qo4 >~@8ҹ>Q̦,$^*^wR^7} ]ݰX{WdS3&vsp+}mh\u$80<4gQe}FPw(Aa#,0"$ G ՓXYʘE'K;M\u_8:s?̉iYuo 5mhsncP9 -렎TWBb$aGm -6qO[NBBG'X*x&~|Lѝ 9%dXqm8o=)pxR wEeQq]$؀<%A'WaӢdD]ZE|Q' Z*?LU]Pҩhoo&ѫGd* 0sInaS9* -z \>JZ3PYI|!s;o^b2D>2.Փ.b7\Nd4,uK/;9ݛ ntU)I2i%FzvF wEMH -|X)+m.d[bf4$戊I*߮t66c -bnR2s5@8_͐$8Tǒ@. ȿDRL̙0t厧(8BÅ4Et$>2L-$8tYw0TfD.L=!wK~(W8(4t3% -zel*…w[X$SƁ0 -9 -g"IШJz2ɣh$Zw/6m ")AOEӰd -\nU {օ#:݈nWVg +Msft{#yŷ$IMt\nɯq C9Km nDuS]^;"1o_HP+I=QO*:NFaMy!*d E1U* J!|taAE-<\[!=yqHrV߸g/b@"ۏngg5rdBFmXKُ.A" >̲6) k} xGTGl^~#㙏[Bp(Ke9u]tm HGx 1AO99$Օ}QxF>7ƷKAbܓo!krɣQ螈s̈́!7Ccƚ[Mup1wtP}OWYgiw-@!Q=O?tP)5Im `݇ng)#]ݽIK$)y^{dsYҊ -?"bF*h /R3xOq574),k) -1 PzN-ԊyAhO:Sɛn:?`W@GqA⻗vlfkg -\6"p8<Z]J.FL"iy"^. +#miܪJJ;dR$,P /%yuh#M25wH{s&FtVby0whT'`WmxJã*oR/-}

:Vpy,:j9¿R&ئD* FFuU&|):l ۇF :?Ja d$o_{w - -t[bsXWR[iQE*̸V$Miaǖfַ"7 -_wƍ߂@D30<2>$Axl 5|wY!rj8K%ƘDC1~Hƙ_Kg;uNlv !xx-I/L<@VJܞ\@lX"!Wڛj]}t~"|R-{g0 V󜃣pwU* -Ni/׊K G;&نZGFsY(RG瘜7VTkGTkKY %'4 G\LJ*P :&L\S[ZtR[(H*\2-2;z. "ݔ*_# )濅cOJBs/ Vk4NG̍'Lˆ+}&Fv -F`RA<λ˕HAECY[6"ڋIAzC<0 ڊ + p0!@eHEsap#!Wmö3$M@wS-:P]2sB@3+-0OEHl(aX< -ٔo nԥ,y 0RO5-A -\[\Cs*VSSAT -4+P%'݁{:nȟ Wn'OM>ľT2/s7jDZȿ]3 'hQ;+; -Cy/`~w UܑN['8GýDzHHZ2p[t5&Y"F#Ⲍ̀\REo -߇$]bUbHsl`Y7 -n/!``xaQKS$//Vz*ePD.DjP+)ZBB%+j}`0i1 &R _YM37#Z+TD޲Vﱃʖt}^R9t(NGY".݄C08!gT@\[!Ґ:vaQE^po !sMLYԬ۠Gbe'^~Zr٪;xO\+ϰp?$U[fؒda3Czlr .*LA D`ll;L -KR/wG{$p~+r,7|\wzi~:6 aӝS:WP3*:ӓ@0nKwYyr&CptDv\H[yxFtxtLY&Ր3o.5n,BĊ4Mud> n-O71o+@m(=fO;a>&ߪX>tl^oӦ|4$=dcnX -*֘ZUB%<w`\|Utj:<ϐfG]hrP EinOl[@Rt:jP@e.U".pBtMlťU 8E$'nU=~ YU}KpV -j OQ?k\Tm'Y߂ -t;Op͋ѩ~Uw$Jr esw߬'- + ]Muxz7JlU Bo7 j|}Si_`FbBKU.m'ג we޴.Vn ^tOñZۑO~G =q@uQG%,0ъV8 -lkd$Xʿ; #8ؐp5VXE\ʩQo -'fHeɽWtLTӆ̭V@f  & &eh>p%Uayo,fgI|N%97ˊ%U\uB5qW*si\u{ @ h=)Y~.CfCEZ:Xeg8*D aI_Tz`T< GSd J$ۯڋ9X;RD˂׎4l*>xzS 1v۲}xy\Kel˲.Cojg;??0Hm( yZ"'%| ;Q(Urzw~e@$oYq4?Vd"N0.("&E_ikIIRBhWI@4\U׉S(&k OpE -Ee+P6nryNĤF0[T=PR VIV"r}?* okfC9TNaGO$TwйgD(ImjL`zi/BD>!ϷqE%: =_1~7 -DR_J6J$P҇ԍb8n2[wkF/ ǘ%.AJxBۦۈlI'N{ R5{kq#wmÛq|Ω4h,8 /\a͉@՟ټ[ 1k3%(^X nMZZoF%XLȷzO$fNݮqKXk.U]vF% zeN8(a&r.BHGO͙f)hUYhPdxx&8.lcVK∷R1b ]_,>"=vJ#5$~%.RAkrsD2YPeZۛf^9Y G\uFjrt"@Ex9m7``RKZ{?SՂ#.wvpyVD+/f,(^GGΞ׮,1Z\y(v俄' r=԰\܃UՔp$_) 0Dsb@}<龀,O䲐,Z5 -v4oͽzhp]DMa>fe>s"IIґPn{?asn78,꽱R9ŲMqj"j%j +:RmSt"(6;^<}g뗛1=*еʉ`$,:R!u36B[k!nM͉3y<6iQJO*ȃ~X<=BNO|҂M+%FG^6>c/м'ǨlyaB^6t 5[If4=2$&zWweCDHOp !$q !fk8s"ĦfNJ6_ -=+&_-}*gЈLE!q~„)-*RF`sJC@:AvkeBz+++e#>gr 2T*݄ =~My --v`%GtL.DL*T$ZF-!Jb3O5\}m?c35hyZ^Z]A@QpLrDbVH傕҆)\T-= N!^kه;rէFCϫpS8ͭq&o#-tV/*,Lvcԁ[' )5ѐrߚR{\ YeDP 4<@ϠG2"_.=NcdE# M|&g1t\$HsFmN9[6[F &t -%V)/KwAĸ5¿Y%9M^-l`mM1"!sP:x2MMtܹ;{[{uk} άؐ_wyj"q0\ή]T#>c1sC0В]w'vL^R-UEyb1a4Np#:Jw%^ VݏsOۓI}m6h ؠ-l=.@;4TVyT9=6$ozv5 6eCm6X q!@^;8lp,zp0Ov\ -v@#`>V!5=?%d&`2E`A¹`3*DldGqPZ'ܺZTpBm<$-\E}HX!]n 9|DRr@ )b!|WCS0}d]Os!5%I?D\[(<>e&>>7&j]-4}a2Dw)I)KDà_auaPx28^ ȲƉwY##AW ir4̒?̭^J ƉziːKwU%(>G[_NWXPrSN -b!>D쏲Ii)x@#|qjx<4JlE`3+|Z@cv&vcv.!WVK"2Å/,CVA3Sjx|$ȅt"V~N|VA>1-,z GW*gBD]i: u{}VwD@kByץ' Nu|5sS/-u6v47r!5y5)yu`.}U46KTXIy :[Qbk [ Q91[9Ƞa0SxUL(;LxwEj}׏$.re5tqնiՁ+~ӯG~ -lzX K s+mc 9_&B}D7' -DUF]DP^&ɝY3rSgji_7ox!UNpOP$J -Pʂ7e'< /epV=|6,#(44@ƿcOGE%:[{Z~2M}Bû3^Yxv8ȋ3_lH5tF*NC0an{\¯zb"/6]J5\ҷ^ аN"۸ ujj'ޤ33mH|'88S:l 29p/L>u列''xiY"yMv= C֤m -1(߻7Ȥ(nA8o yjɷ`><亮SpN%gK(ls2¤ fY-55=p< gԗ]]QEs}Ԝj婆ȟhas."T }N KtT/u o/oT`__ RmIA>nn1{F]_ HL_HD<܃g'ݞ -&[qgpkH`Ø2cbt ˙W c6CayByN`Kv] - \58R,Ϛh4t~ w -m5xh0mthx.ZS|Ds V#ny@-$Y@BJ(Z:;? jA!d[~r_ >>P|>Q^Nq6G3 jnSӇiV[qz.c g&nXxYNg쎖h(sN42cEG'N_4W'Q7Xa46<_ncAX)I,AΙ.LeUmg9}dD䌐}P1Ej2 183?3LPQKxz5Wʦ4*+jks\ f':EfW!V19nMYe=\USkmR+[wG] -Ӧ"!?&FDA# O 5F} qܡ,wRR8@/@08S8vc;<&5Eu->)WpPx:p:mԐtև6nwrDWLaU\3 (` 8H`@ -`݊DseAI3_nOjMocxvzxs&x|kpll &PCd],Al -BA E)M \ii,f(|6C_7¨YG@nWB2<&a'%%]f}3T4hJUg+ +NT_t8W'RF`i?O]ߐag,![@9XP0'/$ni+soI]}Ic%XhoPBMG5eeO^v%D;`-RArA6,KG$PYLU3CmGze4rBE~Y{%׉/ +T[X4sC;@z>JWNz +%_=' +(cobXxj!ITT@ID$Z$cAJ/(NIEDCMPʩ i D"ibAd*+#CtX6Ő(qq88smEH*bP@դ 5TH@} $$ Q$z)4B Qi*JaI @by@ ri"bx,iBF%Q&*a2ᶼ PO、U@؇Bmm~5 +"&j + BeС,M̴WBSf0׃Oy-eqAlݱ6,f==gas(K۝5vk~X冬8άm+TۼS7;ޮǜy1A޼ּ+?eͰ2ż o9/7+_lHfغ~YC}A:gEhy' GHEMD0 2OT!DFFY<_}+sϡ,Ǻo=sp=t]c] +ҀeigR;oo~9&g+ LPCUwvest̿HPE7¡,wAp7!2sr3JJ!3X2=S5DT5mgk+]+m, cpTe` py%O྄y*Se`@?]kt^ܯd2T vcn6om2n4]nAj]cep[S'** J*"YB!2 FCd"D#2HFPH "sO.~Ѷ 'bP49 AҐa|@p$1"MPP`$G$CM +TF(T0,0 +B@0 € (A@  `m]9.Ҏ?:FPWH<8&t+ê<1%{U{)J?X颀#|0>ok<*7Re$<L8+ڳ?:)(ƴךIp ʖ4>fNwHC3F|قwLKG^{’O2_cdkpʶ&T3$F +2դpSyyٱhH#/= .ľ;TنDbƉ&w 18c=9 >q5 \>z.J*a .\{n״էRCe74EɬEHu[='0{Lreki{J3:^A<`qpʮ(Pð)۪wG.;hЪf,b\]S ({=U `}4vOCDkؠ4pod\'QJv}ݖ'ܗ}H\(rLIj sdʱ%}G`/5M(tJ5cvœ\qh wQ)Gp|[V+4 Ma rŜ.ׯ b{~P?`f(ǧ } +H8‚e bvqY'w. eEWi?E7:ݽOVcad.Ket#_H D;ˡz 5#fS7ܨU! + k1,/rhu0i=)0=@v=<%Zpg~|~8j) +*%͊$+K϶L7WEA!xHi)2[Mfw$h Q1n#<(3$K= +J9&De۠(8!8cZA {ֳ +qIm(X沎"X"RRQ9$Zm]8 gìsRk&lD11{Av'BKBAlhF43 3fX#m9<:7I;y399m8ʼn-pC&p#6!}} x(aR[ &v,3~axm{ӏ?KDUw73/" /jO* ʏb: ]q DEX\@t[7uyY@fia9.|&'Q%">ϣU2<4A;RmaCNH;j;| Y{~DD9,oZݐyQ*N#5]rgO/2rU4I*p?#RkT?>Z4!cj5И 2z`bh ddXoAX'صZC%< E*lȰ4߳_h{;hVVIn(_6l8UNG̼(ieetd)3M0K4ݹ2 hC3xvf8,‰- j:k˗);G6nf#GHe-lx=j>]ӕ-gG)2=|P X߃M?ĿFpZ KuȘj $`r6 JgjiLܕ%2O4hPj_`zHK˽PÊ6q4t٢krҗ%NB)jN>f!c !۾ GZsru3;2i+88h A浔sԅNx?$[ZTk1Q5)qd0 +sN{f,3œN`ں@*`o,PN +%Wֽ\35HyN\[AL J;nݸr8‷Zm'R ahYui7o5{ 3a"t-porDuzVO??y,|t[LQ Џe |T8T,˜Xkqs:3%& ;98anJ\B Z14c֦'lǓگm؛8`%{#쌙VZ5ř%[-tK< 8t|NJw@ f +RU8p7DG.xx#4aQ!H%y1:pR&Dh#+ITwf3nJMRi(FLUy0:ʝ@[(f+\;tfrJcUkTSnhZIqKJʶ캳nbT7,zˊE{z5*s%`JLʺZ}D\9v )+xVS@q'{~e #4n剥ѦZb꒭\WqG؝,gL?Wrg,˓z&Km6Zѵ%~4My20g':;F*WC-G\uw.S! I= *pG +;$F0f}/o.FW{S7 qۡPaqw%m:`!4C}n|yJg,{a&Hӛ]*Fb6hdyx4(Ax ̋WG-f=iP?rTx~$HP p7Qކ]O6s:V[B|DSNҕx}kz7鬿AU3|*D֏lJ\ ӈ8Gh=sRX1p;s"}g`kiZk)ѱf"_.+4Gʲj7Ygb+Xy[sƆ]jurA) ɁCWS +&*ì]em"PG"s,j]ܹ婤udVK.1|t?Y4賡F;NM?S#+ĸ?ht\K{&Vk 0 J?$1$M.r _%BsrECtѱ:q}rه&LmHХo*n,#a ~nٷؒWNF[EX4=M*˜֒qs5ⷶqE@j*^~yZrpPT]wu 䜤Fu])J?|e]* '.V7jUwxѤ W/AĜk%'OH!+dTAO=Y&#yq^zd{Ug?yc%$V$:iF?nօJK 4mO (B+Lj8#'_CآK#:aB'˗{s&{S )hkA! ԧ'r-2F?3cK4WY<',]pU*wA$tHtuz'A ">1;H>svTykHխF>mkJՈS>M7LȆT-0Iu~oUx ?܂EOqS<҇"Ί‘*r;T "'H0)Ut w~]MhXK%H؊z{>/\Wӿ~vճZzTANdXgE,'gͅyׇϫt; =xG YxZ$o,C&;Ug=?W ^rg1UOuy!3iv~sE«)ھ9GM sO6m̫;Ӏo4V=+sAdE~2g$;r'_:Q쵲Kr7CZ +ib;JsaEy u]&?7׳KQeBQa@]٭ԍ›|^Vr*۱*-bpcEqMH>ߒ4XX&MNZ+ĩӴ1h.r|`$mݓk#obE$-Z4FIu.{huAr (8d_] +}M_Z)(OIah\ +orl="5^\86X;n'U0wCz/K+=9Řxlbmle>?b?jjVjwTY()T^q=B\T( K-lʜ0r[CkfDY>J854m?i{(գ't28'TLZP֧9_~;0(k"@Bቀf6rq.3_uB}wkϰF _"ˬOcCdbDd]*‚C0%6"ed6JIBux_e)VT;SzrjPyUNJ +#βO-W&KcBW$VT 4(STӴCBe8 b +R3^0is0Ne?b,ű++0Rש6J|-[Zou6tJ{ZKo>e0:ұ;-}j_:Rǟ13O=F[,׈SKSN*Hk]ZWP#p:TUǐAQ1 `M BTF9.ݭh}b)@.60(au12 HI-dp[H:02rcgn)attjt5NW5 +4Bg( UMm+44%-"'B¤htwIeed*/vs#]˴]g- +ҶPeB2aNPw8MAË;벬BpT(ds&oczCGUQa )*Qɺ6[=2RpN(:%WH+JTQ" +8ʟd2$MRpd'kZJsT"562ŏ]Ďn(݅Rlxjtd㩐jӨ£qQ0:tB8DdNw.\&]t2/ÅRq!ee! +qZÖ7-UL%Y=WKg2#-W7J9d7Iq!S2M>Z((PqaGkJuൕ n +y:^*c5 Yato?ҩڋBҵ=Ygy^(F;*Wi [aۧPbJ%u_|ɇe"!?S* j|~Bi!w_G|A0xJ(_};ځ1y+.S*aM9Z#!v^O1Q/}SKa|2WBwORnzc=w}O,ux);Nl|ҝ[kFn:);wO1YPWkP>GUJ$9+nIaZuc9!uغu?C?)zRBnRs>Ű~ZJ%`xv߹QNKX*cXBCVhG Kо?Y)Z;anb[iu3> ݽJҝGʲ:>JBsb sY!~0zaR]w_g%NNFW~%ҡ| i|hv~%B&4ң+)$8-ҫ>1vT +uVJX^JTZ?GW[S*ghPVyO:鮏%du/8> ,sءN |h`N tFJyS?Wsi]?9{w{ꮳ9(9\IsR9ܭޡx*mev*>}ԏ/tG}SJ t9%ʸfX:MgtdNcx,x, ?G־#~.|oMi'R=v(_()NRPZʟFƟa;ю_,?zy/Q*;ipJ:۝ (}TF$Iy/O1z%Kg,ucL5~KifmӚetG==IM$,wVOE\񋢝O,>%қuInpq>}hge5JR_{tћojI?%e;GBk$mӓW4guZVk_EXO&MXRZvz"Ro{zg4Җ}{O+M:Nj~|qJɘ%E ٮKZ߱>iŗULU;}*N}_>;׍:ߢ* JO?_)4W( \^1Vio/^Y_)'UiR)֪rR/c=\>I4s6eZwN5MKWytY}NUO[UIχwT#RT(zQ3Nu\/rWzI7+/iD7LKRXDEf{Gޤ|8b^)I@((z.7~mMsݥ~|T|.?%])BWFV;gO}G=>ұ8VWd瓢oGV+=kiJ{~t;\;"*Ӕ/Ӕ:}|tGJ狑vw"T]xcnԓt7ٟ%_חsyV{Oo9_;N4/xߔ?߄$T%Q^6꾓d?}Fm[)1]tDa.5~=ilD3RrRIHYz+$b$䀘/j#j^lsx=>:m_xuџ=,Icu"{:kDmpRIy~{wIi,ѿd +}LY-hn]FiRn˴-W&]N; m$otәs|HhE8 FUr1Qx7 [~Z«No[w@׶]cJsj Y>q,*?в|ڴ,˦A-t!DcX2 Q + Tt,aŕZ,xߋ/z夎#vy)3_IWާV*缘X6oJJ%}[)wNV|_Gh)zo/J>_*ߩ0X?c;c\A>ء|*|zqڧZmItFR2ccFkeo|[Xoh}l_Vwia۟N[kN5N;gjaN#~=lxF+1㊟hZarvBAK*{Lօkh,*h@u +ez uzO휕=JOz11|R颳Bw: e)ceT],OԪ"k +7YpS*veޯreJY@Tl]{Oۋ+0LmVKX$9 (h1 +֠e(d],+g0 FV%Y0 $* fm $ +meSK@$$(Xf]԰4Y;ShP06Cx,[6԰ NYS&iMoAҟ&$.8e( NUܤ-jkK,k TUA*DUYēi%54 7KCVX'dñ8$R!g%Yȴ;-g\WT d c`.YM|R$M[@keX!QrZ *[ i Ki}&Qe +rY(MZ[.tU.A9$YrUAk9VvZv#9K&8t'a9 ͢2)Xe1AS"eε- M=Ģ6j2}b}rteB0_!Z,;%5a4+TKTuyhPFqEMAք˂NjC#]Xx6YzҘkXxkhR#Džs2UiYq]҈n( M\EU]|i-':K%!ٴ'AU"]VGkh:HMTF1氆-WF9珽:I9wѥߋ֢ŗn[wk 4aXYLUQkhK UzU鍭W" 7J莫QU%p$a]+;;ZE3GAWUIkSUzൌPГQ7 +U7R[@׆ca/HU8h͵MkFWQleqqZgվ楠-tW1teCCS̙EeXO.O2l +9mݩAAYhdz4b8**GW]s +yRPAbQ'DŽYT'X@(e˘mΤuU1e@¦ϪK.LÚ3 vekA6*$fu'+M/J7z|֥~{/*W(:l/朒xz:ƞ󓓜oMO)+r̳QVv:f<+#0u/r4iޙh}ޗo/-JבĮ̣($Nz/[y_|1ba;Q\Nmz֍G4S7iYY:'nXћ6'aK_nIlgon#Z'Fmuc+%{}őd.ݧ>.zz8r/v~ڭx_Rg]yj-QLRNq%4(NZ;UͺX{qʏhq~Fsz3hVeLõR*I'Eciw-~ԫ|IҍoRӬ~N6;_s~{ӛj津 ʢ@GF:a\WR>GtzS,W̓NtRY_>ijDW#'ggN;EYY Z~si/G/uuK唯 +OjK9zqחkz%\fCm9w*IΏ[u>[i~|RYIws:?hc-G:|}J?z_dhMzG/o9M;dׄR³7t_|QݿH•++=}#ƒ"_}M?w;]l]sS>,떾l}g~k&l18%JR~|6;Qr۽I:4_[z_碞.g&hð07nvpYP#odAŋh H3O<5(q-G}R1qc"XaҰ_B4l`L`D8\Dd.|cҰcJ4 H ̓D.U@5 S܄,0,Y!#nܓuy`L<0&@\"d 2bFHAmL bs(Bn` +(BnjH:  9BD(PG ." !FB|8*Bl +  MCvU`,BhHp!O0i + @Va +q&vá`Z( F<q1 XY,J TM ByY Pat> fƕ&B, ? *B813q+˃RPI< +4Bj w +PvGdYhALl.GB402 R f#SHbÉ[$p"dbRp6 [ƀR8Em'A`#Z+#@Bȋ'FCsobDD4hm4B2(`2%CA#|/Pqh., +à Ȓ, &P N (AŋX(c0BD(a 2%J%+XX " )lҰ@C͈ut$ i?ᯅRqa,|*Mj@@e<'d?JE F". +2hdC"k! TP*\ZE+Y6 M >B m48 0-@@G*ޡAvB`( eL$xB&!B8AF e& Sx Xxu-Kf= I@`T^=g#4J:t;S? +t8lP b9J./qўxAId;~Gv;242 /=- +kL> @8 +9bJ'44^ @? 6`L`>"@*0!m0J#р?FrFЮ +̃tN`0aAA %fh2(ET~!`g#a cy^3Fn$h0`ȫ*e51\XT6JPSH|(,X`H]!|ylF -Lh4 ( f&,$c!Pql0Iq + fhn Ѐ,IHB$@ ;6@(ֆ#9(0 9 `THm&pWAp]a`!,`(,0@ +endstream endobj 1447 0 obj <>stream +9/ e`P6j-b ! ց M X(|UH -* +)@F$ 0rP`2LD"N`,%i z546 pFAkh,΢e9qUm*D2ڢ:} .Єaզ=]KOH&pZưj|2h"]4IQ0ðT$Um=aTI&XS&-FX2}{_E,ޗVeЅiY%];îܨ3(s$B8# x drM [f`P(|J<2G"@0 + (A0a9$%4~{{gf,KDCu+9t|2hψ1PrTfW%@+RTI%ñǁeUE^U. (lȚq 0yT{8ýN|aÆZgjugi< h /ץK5`,\ŁY6L#NXl0DE;r5E~yJ4hly42Jyy9H$0;!HK-_&/$s\>u1< g<8 |7"3H w wlle ?̯QA`7;1kdZ_z  ;=/XBqeN,Aӥ6#;S;if-pK_|rٯqQՕLDu>5ԕ.;PKF./rT{$C?8 0ńއdЪ):Wy3a +p5&;ucfXmP~y;FI#Z8U ̱LsTlx.US[ФCNqhھS%ZN.3~V8RwG}$QBtٖ'rr& !?0b⭆w2ޅ>.^{!͚82!b)IPNKzݿ#&6ZCe?A[8]y1'R[Fֈ/B>I cLsՑqcUU [ n%It zB_6$:yOq |Zfd:Ѓ H1pl\=T|WBѥLW{gC?Òcܩ/>xν=ꣂY`c*H[3彐Y'8MҠ|-=QԎTPG9o㍟ZM FC>qAH~9bM`oNcDNWxPcYOŇLjLKmĖz<;4 bZ_?+0u9P`t("$ :뻴dayu 㷩[):B2gWFȍ\V0ڭT͑z\8k +}Ez<7s ˫d +TE9@w"C+GR }󏵶{ &#DJu${=wB8m9 +άgHTQsTIxzWfS-8)\ G"Ʃpʢ {y:LaRA4i ĤFHYض.FAM7@ƚH*BWhcU_;bluknkd3~<޿u XJ=LYQs 2=G]a&NN!{Jgmx&R9a7g* Bm*MN{=MKd,m65?o7jtt_[ (G|\6#{󜇞6 I[jе6|sL' ΀LztSđM[` "3ZKrM10Ua~;) +{)ОQYBT*.vC#؊kWwo-auTlIwcYǁ0‘Cg6.5d +#F`C_&wS"t7e傠%n ۢ${QJ%־.&`_uBU"eKGH# v lqI{uyZs(rQL.wbsC_X l@ +)ڛ@wG .r ,9f5q(2%Ez,6qևE"eG,>B03M<l M~:L +.dmy٪-xW&G-%zVS^Dacط!Rl (0$eDJy5i>MM Ë}|$+{>b'ARă嗐-[ +e +lV`RhF4q_l=bX)|^åR ;VQsq˄>b)L|ۈkVYײ⟈ꥀ֕]߈!wxBE l&`^6jP2)4-0M2ˀ&M)ꡉK1挩uD- +~wCͣqbI,D@ҪV^4Bg7s*(i5$ࡇ"xQ^A"g@0iǁRU.kc,*2H\ ѐ8C ;Pǝ/oR4m9BH"ǻ RBõbY{a &R>G5}YXMurKȞqE\Pa v$_ŗ2=5CIr ܬ8@hmU:Z$DY= :R)'x"PR|E9؜ n&f.'- dŜr4Z_*sOYUxR5Z| +.E€`Nrm GY}Þ2#Տ[e pFvԖ n3N5#?}Ԃ?]n{w*@[tg5EJQ"+FV2I1gK{(OJZ[tŷa+E;qSj1ȯq&Lc{^k[tSzA7rctX>6qxדx 'e A#Y(4 N(p:}ΖGyy?Gm5ֺwX4wTxnȁJ +C0(cW +j3G~/#= ۻdd^J®;:w]8(o0p(Wa½; +XUŀ$i'&Q;Ds$۸ѐ0u +tz6OMyC"d'0FǝR sܩ%zjEѩYj|4ˁ2p|d;THA'@w.5RP~Nsl (P$e^xVWC PߟpE΄Luٴ!4رka`{CBRaj!t]AHW٠ YW;AeE+I1Ȍ"m7IW_ yͦcIQq2Q+']odqڳ< )OnjaKnH @ 9W[ps,*X?5luvˆJ%Ng:]>ᬭ}*c fb[ߦ ٌm2<X;/(JVX)KLw}wyDŽǼ^.).ZQL;.#&էIYԚYB\)e'|Iº"БZl^l.IptNbth.8M"K:L:y?W@Fޟ(OAСvԸ&Nj*vJO$ya E9qf,OZ<]Al# Ʊ>'Mh$8$2)x1ݚ|Xv>L/ƘR#FؙĄ3UV5db=Fs*Q#MGPlW+%yTB|IYolKEru9\ 5N&cs=LяL|o}d(v ;jvWq06 L1 \YwSsxF{9t&<0/ʴ$ !07ԕ9CگɈCO"b`. +*&_AcsDc[IS奥U}rKen.K^P?eh?J ɻ]i;_ɳZ}lCfK2otx59 +E)s*(-'yHTJeI(RR^(g.w`l-P$gUyJ>f}H`3:-oM2=cX&<45mf*;V=:8 xD9{,!8_Tӄp|h]tUwOO H+>e2djHahf[QQVy8I婘CH.ny92.~h=~G@aH|p9tjܑ6sFA VGgj컝qM|C˶󜆵2(#_4h#Ey{y9"A/8v)~piT? I;BHQ&"oqu+ ീעh9Hhʈ]3[3kdā+)~ /GԲ +47'?|>ClQJ٢0i(y?@@`@>Nh q< #OFWA +B`%_hBZ|O0qŤ9HFFɉ*o7%:eW[Zgt;`jkx1b>{-X9;%v!z2f8$\ +Z"\Fnz@>Pn Cv04vtyFCb%H"dQ-IٖRs&W9 L\`2-@1xhtx&v÷)k-hE +@Qj3#ŧlu2v#d(d ɭ\Ԛ;&W0rDmV2F/ +g (]Fܽ? G"e $N&1O>t31ha@LXɊXj+ +77WriͲr\؍Yի.]Q5mU[;3%Ulr_Q2RAZʒɌ|0,~9`JIG~xt\./8de) uР\+hdӈK'*ϧCt0j"#NzgOoI`.5̳&AlJr@uI}FP P/\wk9=-i}P3L{xv#?+Le4NN<صS? +`t/-OOD:_Fߔ{/n\NlFʑ ynAN\, 6x@ItenCEblDqDiɸnތK ĸFV@6%-9tAX"]M̎62WH93Oi^!ibҥ|XlRێQ-"ˇ}q*T̛ĸZfY S U5#VFYj-\-nVpUI +O/IN2_dka2$}"8{CggA`ჺTtAdt|혅0sټ|HI2)L:|qTd Y{*ΎŠo cTvrh1S|39)̓?^Ȕԇ&L +#*PEGVQ鬄Hm4( 0$ŀ +[`U(YV1.ُCh5+veӪ,^K;S7{#;erAf|q'Ih6\+U6ť0jmu16PwЅH=3ecE~ qc|A;; BٗKJ40>S`уju/ӆ >ia5i|]u-[FEoOZ;vq&뚸ODif;Bԕ%9Uo61Hn0VT þuxJw_qوؘ97x0g]Xe BoN XqG1U0NsɪMxڔ[f0 +Z䢐-v֫[oHmoLbTGժSYLf/")(C~p'T*2J]hIxUE@ީN7BU,˸/3||}7L ϴjZ(Hʢ N=8ꅦ6KB}BLs +ۊaؕq< pPCkGs֗;%(_d'4RNt4ޤ!r9&o3 &9}ȳle5` J<<ɠvڍCSaFiD='"b\ܥhs7u!:?f#d ˥a]\ h2؛GpDms_JSE|hb _ayzͩo +k{F9a 3Dk@;ɱ})5KC]]8S(j$*Qƌ BI%S`d/5 +H7hݽrkӿ hG h ns};xKܘX08z`,p9!Bi&jaz((EB!>ЫYU ұjN(>o~pzzOZBLr 1/Z+,0 A)UaMT"?%tS8ɑ\2"Oc 1#^|A10U\I_DB躃_ %@#\&ϲϼoN04=]e.Z\ @KJFgٴuoXXKyR˰q+ +aeSP(/_QWUiTc^m*"?j ƃ)5F1ca}q'' +$`"_CR !ט.ғ +GQV ȶhZl4 +|qc|m/ hxHE&nj&XXtQe~!w Tx1zٜ8!# cMbvX-YK*4LRY:r*p=s1.H/ A1RF`^D( D.ETX`ƅnJUIDD^%`s 4 2.E (ݧ{ְIR|ґX~u.po*O{F][aZ5)zpP>0G#&!_J%CEgly3hBO?<ݼ +%I~D* fCxO,ڌ0 /ʴW|DēffϳۄZK4LE22OwRa5fd Ӵ`tr LW$uPZ迚a1T>nbeiN QYmřќ<7{"ҳ2u.^+A%s#CN(MI?oew|<͎:/~Co?zY}qp՝{_ 򖒬 c,$ئAЂnϤ }5h|su䶰)%x7}5.Ho>3$+J%# + BӁZ{9*2G5cYF/pL`;UcmqLH?::z>()PeNuG/+\$zq;n>6 A XӢ>cFit\#bul|q\ux #iAWJ|zQx8Zt}]~(&o˖:3m%F?7nZ/Ѳ iS>PHa J Ź+IxPB" 29FWϯ5G?*PVF2NCԈC "ꀓoDH%d+=0 +Y]r/_>^#%dz1"fT-=`?4e5^O}[CHAsF:d6CAJ,b5+ªۭ瑯ZK@/g +D\®{x{.Ǣfic]k5}Z02CU2ydDQY*ϠP`W+2(ud `𷺻ҚZ9 +d'^ +h3XÀgCion)ٲB<L,.my +RӾ_- Iӂp; qnaơA$<28i15x]"eh7& +K0S9!_\j-1@zu"*=Zb#ّy +U z i<ˍm해 +@ :$Q"SBOO7 Do;p_w86`)] ( < AŨ o>/6I=<H+5{QsJg^YԿMNv7mV ~USZnhmyTRq2!$0\9@UGB_sU˜soޢ}UϿʱ +D5m˶ =1-c.+8(mB1 +6Y5V!Txٸ\&vܥd(i$azWI[l>, L#En= Sxn}R*^U|9)K{9-ס?C@X t),3d!98zD&e*U +)=>m1U\ +*tNՊצӸB +f+ݒ=^üIERErg#Ys V;0ٞy9t&sz~\,4sBU"(iT(›i}{P)|'٧;q^[eA{q_۠";d5-I`Z :Jt(BJTܰ%ʼnfCB Qܰ0b+OZFiw)6-޶tfC"ݮ!ID B =CYrg +MuO6\+❋NNt6K\IEiGvVVBpG/HwCOaףm^4: 8;$bH;#z&⢡ao'7-d3#Ld鋈CSU=LuO^u~ 3QWCebqqݟy U)By;-WI$ArG sIрy&ʠ)&vr^t@vܠS&~gGm]^0j&g>U%:e>AGh|]9*?om9ɉ^53>f瞈…UnU[͍Π+ONPmޮ~G*&**_?ĝ[9}X0W,N%a r"Ukc{wUBlҜL~#- +n yX崯ƝӬ e+S4f4ZLa{e) )JXoO'2ϙ X͏۩ ӝ.VQt:YzM,V"_U~· qӜ8SA fršI>Lb> |$;lU7K؅NL T DD xj~Y2Ҥ3-Ne[-z2eg𛐸"zqN) 7EU*֚,QP^0 3h4L$"| 鲘Ampc- AūY, JӿG1Dj}!Z,g g䯦sn%dF6ReZIF3 J$<0LtڻDiBCYW8B_n(ak tWL QLLًGʜ*Й m:J)ݼFrW)j6&<*/oB=mN|$4N347[m,uW0]Fd:݆ + q M OOpJ}m +oȋbUf.(iIYT̮7z6o]鐡Z\.50/;!!é*lZ1r *ȋYxgRfR6{0t@2N0z@Q' tM_^TCXg0iY-D ,ChJM(uSC8~2l\;0pM7mf6H2< zC~P٫XoZ!nɳlBI-X2[#|5f yYB mS"כ \KM"$%'tF qv]1vLZչbRELykjBC53$n2χV?2?(x@鐴jѭrpvδc1g%,wU% AG# `E4\Oy6FUf²pj{ eKH <CYW'L$$ ౚ*-VDx273]9Z8%8q,QybI\+su2FA~}Y{5zeW .:ތm@9oBATS_Ƈan?C[s⪮ܫ0D}wR Nt7CNp [,3D"nAc< ?G Yݓ0gY1 OX«7[|66NVF SrO +Q}z9Ac#NK"B&TBxɵ ab'TBY"9E҂&u JD; "JZdLv&qˏ(TA6\^u gMl6^b/"&z&Cc`,T(?hU-noc;ΤzϮVJ$.*4LFŻ4{́Bg`dI@3rD±bJńĵ1OU2p4h@o4 ooCQ8F_{C}O:OFAx_U&h0k4IJQڗzKuL E\J(NݠA_™쵑FbWRCho,0s`Ɠݗ(XROZ7sok+ĕ uoUmKV,[C'>߽l]SPf +,O=~1Ko>> ;91NkMgUibΪ&J S# ;ZpX2뎃^H(߬ @9JS\E(z*s(.UYDB>lك2*l'$q>ꈼLTAfU"${lJdvbō$qT\ƲT!Ur!7II7 7 7G 4n 7gX+e:W;ypl`1V!qFlrf@-Մ3=*[;q 2h/n=KZ lŕWQCTsC$cLrvɃ\\+&l.C LnS$9qXv-.2d]{?#žm@^>o(z~QJ0\ +p=0tH,'1[:|p B-Pj 7TGӞV =K*ғyۖYN*hfk\}f#^6c۶+_$Ľ[@T>|2y8!7|h8K53\j`#2&ujA8HҀpNkeKp!9ss kˆ "!1!rKosm6[Dq$df-; =d@h+fN!?aƪ L&&_f$_4,_|Ow8i/u]6h7f;'>o wba;W7M<4 oW^K(-r\fYa񀉙2;ZZ3Gw:ǣ/DGy(G_8T4Fc@ 34ʳQtC|D0YĻ¾pGa +Nu9_0) +cyHT *sZA!Xrrx\Y;wr28b(He]'G=Jhe!Qܩ)S1R`.8Lx0o_R jR#&ƃ)gyǷ, _"4SUzaH ]w!|,C3$փtZqs$qkRH'8#^.͸*.rC>DU@?tJ +!ϑgńoبR&}gLm  4|_|OqjG)k4Ŀ'>(ٷ`-rt{<雕"'~!Ì1Hy iG{dQpNXi/ɰdi+{mpZI ?pe)>ثܤ|5j+V(%и@oÔ@vhmcǭ#"UrXq P|'j8#t"7ab$S&bQ $.H69 cл0_SL~n㹅b-!#]|)LDsMu' Mngl68|8x0CXjGg>B.>ƈj5"ŲC )uBHeE;H(ƼQV MHdfq.k_V&JEƮF|,(( &GWudJ% +6ɠ"n$M.l7g)I[Nxqrm3W^phE$n:2n@,JnSuXr9BFbwYbr*ǒD%)>́zjNb=кtMߟht!J- +P`SGD&7-6N XV -pU`NhY >gS&,c&!L^7\ l\@ 4YR!-Ğ%x&܋Aƣx_stq5>K1,lhoU`OOh%ШB6!UrC *g 5n'67v;7HP߅@thCډ"z9&@$Zf@sp lrh.<ϒ1&8v1ЉۄX'\5pAaiNYVD=2I%7@8n-ZwgN@{qX̦`rv;5.HsHR㵥}̸ko(>2\ggjJHiMS5dÃÒ[a4$={hˑ+/D)eƪN +_\ZI2@C;NX*"=g 4Ӵ!3jWqH)Ds22q_h0n*@%7)܍ +)m&i(02P<4Issϰ{n݌%wV )>ȁhm ۥMčh+n$7,6n Jd?n$nkRX!X+.h+ٸ _*)T;C1! 4ыiPVqw,bB~Y9,l 4xpoȫ5AaEuSz9~fhY`Fgj5`tcmWQy1.~m !ĉ +Ãkh RHWF՞;Y +~\ gń{B†=v[ .0ƅ$P@ yR^;d)aPhCɃ ȨwťX)/]\N9R 0nEaR& |s@+"[ʜ8Q\ a~AyqLM JqD1B mvqWjBܞ;.ox_!U H69 +s?@c2'NWPЬj{mFE *fG3nI> ^Z[ؿbZdG}XǃQiHJT͕*:( ܈>l#!:[F%Jsxa`BOD]L[_q;HugjiMō,xL[t ^yL&[~\uV\' D]" _ _w`˓59\x5e1דye59I +WA"śv2u{|ḫdAs'Qqvp EBrd@j  e =d$_"ɿϝd@ Yx~Y L^L#̌Ht8 kK cZyV׊W]Q_.DB8E ʊu_f(&7'ۓH2NCbrP̳Nؕx٘?* kr(|I!c|p;َY;nG(aa'ܾҁ 4 uN9=E\stiqkuX|Z^DTPg~51| Ja}_c=!DNu.70Ж߾vs ÎVLK2,(ܴa /VaLT>sL-{ 4 8G9|@f\(2Kcsy=y$l5JE!J(S!̳rpn1o-a$!{Ok^G(Ku^vXNas{cEj +n-!>l)&mtl2%(+%([~~ M'xK*+r3v5`1V?B~YQ(Xh`3>$wĈd=[y4 ER뺦'?C@/}ɹsU,\z5-?7p;P+a]T銖( zWjy~Z+圣u]_uְvz~i=WS<zp4|}}O?OO*D`RTH/\dD +K\ g/p0_&_ H&C7wHk>誖Ӏ 1@HH<{@vNv$D3[ޱu@3Nq$95xz9bqI((|5Q6'aʌ38>r7,?g|LkOɶJąm )BPiKJ9U Sʬǣ$7w b"+&K˼քo6 @& s%sxޕ)p] Ny-dbH*e ".yV r{ MJ@I9Vy/@~ܶF'R>E5mHAYL[>œ@#^I&/i(Le:iȯYzP-!I 4bYW9qd:mkq{Xqy\܋jX&3m1NvCi .b$ !zRɑrJiw:7@+lPD3cr#`J\߹%+5Ζ_Q'NK< +DnNU@ ++V&ظ20o*oxc@ ۢc?۷f[QՐ>p};6 w|3E2*L8L", (* ( DaQE$II# b㺛R}^#aV-1i0J0ֳM񑌎_[jNr`z²-sS +Մ^$E$r)|hӑWj<7ȶi~:"UBY,;-y)!.M.ݳ2\n[tfT ]쪁 +hyMRۯv^dL);7I^biTq ]qBB¨^Ыg&t,(_ѻkYGmGf?# HL:::V AdR-BrRFCpY$Qs^aj{/Γ&ч%( +0--*`?Մ#|y6(^p[l5P@My/iNYEʑG8X'$bP,hmZ=i4y:g(b((QMOM {l4l@u4XG7I3GxR>.>Za'!+$ ߝ_t8o#D ջxEQa=n%^Afe"De<7!8CLV0 -_.qŚk:P04Q'q8:8&e}[#X6KaAIq4Z!\.P +e%1}\0p]l`|*WńFL˨Uur6.=k.%q6JDa( 4\H񇀢RS.&>m(' e B4QWI_.oQ۷}HIcDFg % GNkeqb*]#UmjIPjnD=S$l.yZagL(|I +[˕3/ʺsBՈޟcyg)9i myBy(`;!7Iյ$O +ѥ%=`W$ԁ*;K? ^q2=}.F)!y&߬N(MI^ E?LeZ~%Y/S߱-!M3dح1hȮ =n2K= rh~u +BJ6>8r4hܤ@Owx~ H&Z端 +p^EAJ@;N-bmD9mK >o.?\CC=Kc?3J]R俁y+ smK?;nYX9h`; kt%#$>W )yd<$[%ϟwq{" J r+Z2Dm\.M4-ݛ"ϙcq }~*Ҟh84nR}KUMwLXoyj/.)vZ 7Epnrs+{Rf2Vϋ@ !bF*M=wB>s|. |%2<6MY(4C⓵@h#1cCaoЇeR|rj`'` V, u䘹wB}At-Kdyo:_62)^,$vŐ]ξW HJ";9}Md@0I'D,ݑ<X˄l`"MMYbVJ# ٚ!%/i; -"J8ɺ!c\ӁLYz˅pIܛeSGl{PpzrDB Gs47\8BnʮJXÜ '$ݶ1E#]b?QI+b +7q o$=EF؉BP #۠bь=ɸVQ/ 4(S'Kܦm & 0gEyӬ.{/m@m= TԈD!W2gІ%y#' +@telR k}xkzԹGŝ^ڞ#{Tp+{ +CZTQw]f mZ#?{H`c@iyl j|(x}![Y3DT D7kuXSj*t~fBMt}z(7Blж1R޻zrnD(+, +Af PI8mS2O YRpw̖g yJpGrpL/Rl ;m ^]ݸs|͏_ dҒ140 h޳_ pU !@GPwʔڣu "+X|drԎ˂<hL[I$X Hw[0!/QX +ȹ%j0դ;Qoc_BanX1ӭMJ{ q裈wHL9d^J=j器BZ;l-d @ޘXt3}\ה]ϷH%LZ/yђuhݝni7K+Rk9IȁWhILae,Xwau6@c8z' hZ,v[Y {n#էDR`'32mdeiun:Axo!d[4[eU4q1+!$f765!O+ \*{*ieW% +0۠sّ1 k^}NQyZ#<[7H7}sAN?&0 +`WoOow}0VTYTH]^஑bϞ~ݿ*@G9#.(pg_ʫZWF\^fl3:զ-GyXiP Gٕ1uvNiŠUp5C0 *DwRE[4&knW0kw\H64ДlH7 d^: FR)rj54ּmB:_8'laԥGN}g+3HJVMWJ7V +*}Z3IDw98t|,5ꝩqLX5~m˝ yA .`-vn "6iA@xe\Les.9iŠ>æ(:@XI{t8f +n;@=Sl3.R` ΉĆIwc+a}c +@r3 LÍ&9aqtÆy2ܛ{ %vJ/T*u~`—ِ<u^ڔDdEK %k3P#g!wNMQ 3!S1C8ljȂlzMTz 慎"w=7-fGv2%++r@5n7OK(;]W#ͿwA@+d޼慇sqL +I6zT ǽtnU3-F\rǦ +4_+E~'k(bԄl#)"IYTz +*Ir/,GwRBAmL$$X iLNS8GJ. ʩ=m]ߎ\YT"΢Ӈ8 +XM3hTaomfʉ4\$=3J(|csjβ(*.l:KSʸdъs63o/z:5ĈAE'4~U/ :O2/] HF)E'vA^z@L:mV7UMR|pPXYC7l6VqA8u)SR.+rzc|+ݜR ïIEl189[sEVfgGlJuI=WF%0Qr˗i.sYež/eSbT0xq0#R;h\)`  φD{)nXRhߦ=籏gpTAe£ h\|]|JhK?-q/:AD}u|ZaU+'+ g +-^l7rzZJ'Pa1am@e4-;fofWgtHQ-z1fv>m 39 IGZAc5Qa>^ .??΄%cH#O4@&U*4|7PgOv ?AW%'MYS4:r܂Erm*3pk6HOgEHy8},?Y6o-Q5OB8Xw9/PAOSU\)vQn5}1% oH:2Aۛ"Ez(gHL}pxa%{}蕯PtDH O` +uu-!NjI Eڪ9yQNu!N-/xK91D8,#x)W tů댞nDX# ήe/#4Z G)y"D+z:aϒÈ~'4'5,Qx0TnV%0p|a#!}iDL C|&Z3$롲 a+L[هgb/ Q"x\+y; *"RޝUS0#+jq!A[,B#+}C+ᩊTƚdx-Dk0qtϜs˴'v=+~ě*\X)EMT^ MzOj:s!75I'ڀ&%^qU!tU@%DLv]g.j`w]˹Uex +9ݣ2h%M[kVh~dC&`JW٪)^Lj_;9wTapKU\CPwݟ44)#o¡JI9(`A7]zr Ƒ$lo'P2 +i \bh('92k)o/#A"C{Q7 \`}Yy+݆}8 ߢn-dD@y/Z/)Gy!rwnfC߇PqUIڇ`q0reVIXv:uƍag.WNRzxmҿZ|i dtК^N 7@n'@. J|R1}XXd Dw67vG|G`M^\HD1w,F#=jXeKM12u"Ž3 8ylLۮB1I0;rXmM;%:9˨ڿ.˨xc*RyCOQ;.>ڂBdw֙+(MJ[.85۱ӂr&̷C >zۉvP!-C ꊠ׼T7[YC*!u7-ׅIYZ{p'[B'I [T@u;9^0lʊv+qa.Mkەy$߇9v#t֐R{Z3o|G I<(s!ZQ^$iLT; z[Se|8`IC~KKJPuYR(!6K* CpyAu `HnޒZЃ4$&AL=Z G @s;"ޡ +5$oB1i]ʓ" >YZAJ|d?pՋت+78r4t C]wBq%v[l21)L4 +M0-y\t3\Y6JKU'4i bRsH+{ XҰ&l`X@)~2ZpWIxGI)#61lj8 x4-#d (a>#8tÑ:`R&ul'^ds ځvRT/+qy)ϽS9Mih"0(K/ZXyWuS+#"ĭ U[ȣm'~5K!gu&\q{ޓg=Klkbe?3CdWUQlF(}#vKR]K˂;͚܂`Z]7MKmFTX樧nem]A/m!ٝ#B*eU4bolVIu?bXx qDSH*B{ETS!"͎mpۖ,|Mf/?//AɶML*e@ٌZ:GH3೼lgGzkı3&܍8ȡj U @z.!,dq"O['0odej :MdP!Yj] !,Ki'|vEmk UPڹxu+lp +ɻ]s/bm:B_k9T152Y$Aʨ)Pĝ4$kǠ^DdW. ǠTDD8P\q&Dg:0DQA(h XLZM T-xN8/m%3e7ckW0 xTěfh?gF7]yW Zc/< +Na1ɝtl` =oS[@\8t&,jߖ)'w>>}b{b-(&I]}1)KMQn%od`xx [kђ +ӌkK8.I"1tH6`NQNR zy_camz^o|xPܚz1fK@nnwcESJk&O0&XZA0:!dJu8v8mV 'w zn֗_3⿏+i(g'=6?1l1`c_ٱ$!m?K?/E CU@dL#Y{[5.O 3{x>:-HG%6 68wfQ2g`mUniH;G X` Mɟ $78 +PrNvJ8 {) ` LX:`OPv..aɈDP e`-DEN8(F{v]IfMU)46 FmKQSKSQ8Ү+X`m!CH.5+EvZ$9G@;,,CaTUTmClp^0Υd͙}&3K%A:!0b\HQB3x;@xGY9`El٥2h աlU'&FKISx+Kr[z# 2$T%DRS_( 9$N?w +>:B4ѹ9K1 pgCJIӂz{~eSZr8{O xZ}CEfX]ک7PP10_J1Scb 떑&%)ʜ3L7o4ҕyí VlRRJ%WpCn5Ql ۹EƩ 5fħ8lV|\!񗹾.1DJ}-oʮoa}>[f]ɪFq[Ds/h\߾Oq|c30'f^>P^q5f: D0TJ?bq} ʞV+C H:iKw<) !1\`%;X( p`t +=消 ,Uju*}dV`evM +'P5]|k $y5;ol:Q%g-0y=x^qBf8!yp հFysg)}Eğ9v)!Μ l=`؇XT~iZX%"hkضynNiq6!gZmϲ/*Q>L>Bm60$z7P11]LH K+>L*Ҙ.n4*D5T&`Mj:` +Cbt-slb#fzv2S1LVF`ꊏV<Zhhn1"X ΍6<ޘ8QG#Zպ|*³Y5}Mp!s)P_L4mA~g̔2E(䮦V!FhPۯA3BQE;)vSx^KqM`;,3۹R+D(Vp0O@Sz0 c[hι,H>:tVKMCmr~oҮ3Yosdowo ֝U]!?}d(AR!.Ѱ`ΖYJV0J HFcH +[(Y$Qu; !~` +Q`8 > +B +x'4 9 +lxE2C8szHqGL$t*V($"MR-#ޮUa0<n@(A7 9Ƃwب3eIl@(a^Q@)C* % SS Je2:\.WW4(`4F@ABZYKtNS: IKhBnB?3qE.3yZ`3 +?% [jBarEgĆ3 &З)(eIڀP(͎H% GfOY5,ٝ/KEJM4,wȴCMKP 8$?.l cNg7Y=.ÕtIz,)g\z:,^j6tnU 2UP>SX*y-dRC}@(—d~R2_tZԂ,(Q'1b +f(摳< $r$gQ~dXsNw%xYbӝLf5.(ejw[Mx&*ahWХw>;ެgm<ҩl(x:;UVU]^u(D7u\-ʲ҄}%^Ӿe(3XGL +mrX%,J#Xl{migϵIto¹3?m`f{h5+akzcIZDʘM"9YusK62;꾬&N9=>S4gyV2o x>IRz3lY C?i{fɀEU$/)Q*r'P :YUU!dB2QRQM9rdyr99rȑŴ(9 ٔLH1Q8pf肐"~qHsL,'"BtY9d(2lr$SiB|M2, (2]Z%jgEv& %wq>|a?V% +/E Ja]oC ,¹y?Sdg};Xl"3@x8CWX9S7 *`u&`M}K B]+4Ct,7snА\dQH,ĕse;N+9g! ZyZOԇ5LEo|9wCDMhN=<*:DP,Ȣ {6eHt*Kn%Xg=Gl'1]Ӟ #;NUCJ21O< PRl4eCB2Lr%FF4CwLTOEunC.%udKː>{s=l)1E$<3[E +6 AF/e-UN)bVveb56a[UFRg'g*0m)F*s}WʶKb8$U6e*3Rݝ̰TL!~xv(W,eqoz2h~%BI\pg +Y\ +0a*Q!TT9i9uwC, +uzg,!ЙMۢcg!WcS\uPb./C0Lgb&uN7ԇx!C3|SGʳx gifX1}yte!J;3xRgf|T*8ՉNTɓڃr!qIj_%V)U5UQbT*xYlXGwsc۶}d&{@ĻCЈm.=̈@cT͸SM(ODDSVMP?P^!! #Bq?^!!]կʪщos3w$ %i($zP((C$TV7T'Q]kChhfLK~.KIE2U誮Nvpih%sDf6J׮vxhßhvborlO%V+ + {)5j1g3}˹+{잓Cdicdn)6lj,<bkc6"4H;Ttv7X=xcc@@^oC\Z"v:cX17Bd͕ddt*$#"FIm:qx"}h%|Ɏβ*cfV)͌dtd#N{7'ƛv;֝UƀP0%8 t@(8P>JBPW>e*ʇh]g('nt`]rdX@[.6\mI2!f eN@-9]J +S93&Cs"u5" +me^{?mn)dsedF$@8$H0 %1>p4H86e“&1e!D `Qc1 +XL^<S q~][ϕ=EЁXm@^2ᰦ%l !70MGb+%ZFF">4dT +Af7$IobVf"^Q.vkIa]wgk^z:R%,Fa"_Q}e-Fӝח[s RhRlEmX+0VHɛ.nbUXl>jT$W*3]7A+X(e'% X]EA2O7&܊(\#~ꑞ/(3.( ͽ/{8B#(R²(9ĖPsJ1sS)i|'󇁲þ98L +dlDx>Aq2Y*nc4ԣvXϒZjR϶&@ءvjvE[*E?O +\];UbwejRV/}rj+-씦(9ڒko8;3Iˡ{{?4 Ѡ)ZI҄zC Wn`cMlHo)ƵY. JIX[R2ЪHq6{yL'E,zUA +)*^L X[ b| "&Pɺ?`G j&Gkbl?āM7 Fxp羆ed2gqZak9KZ/%Ąxˋ UɽcjK +")i*Zdkt']-zh왋VS=`1]"عߖra:ZoH;?ؙ 1÷hH_'A5d mj9V湕]$K9O!քA[L"c$4l|7rP,ɁLe(MhW +zGm4(a}KnD@E Ly™;Z~=qyܙg2e:ILkm CqyCl'j8ˏ`ӈYS2FS p6E(Im1h0O{߈"^stE(ۈo GG=n&ҍ Y*vҹV4K]]X " Mx:fcxbHeY!V9ibMÂOj͚6 @gJ p2Vf,tEM&P͢TI(КjbFR*"EPeJzjٲN#Ֆ7-]X+R Aa +22dyx&vSBM?c{1Fi>e. / +ΪCBr!ExuhJE]Y`fDO_@0A pbk)&^]3n%YК*׎Ǣ7gV33@`e픍{tNls,Gh䇈-*n2=wÍ$g.rj +rXpm~7P&|_aޢgƒcAOU&y(w5پJ37Ӻb7YS OɒYVu8 Ń@9/b>BtDܣۏkBC%sČ3P ɺjqD˴W./J\> +V"% 3ڻ>ftIWߙЎimPAe&zk-j&:EX!Wn~hɞLpdUQMVĔߊ̱ Vq`dfe%C 5lP3)[OǓ]aZy*p(ʣd6V.U~\jNt@٬ [H+.Aq(2ߘT15MV_g*͖P[ i\q +G@X=iWt +NbGxVj04fqL. =jHgJ('4rW_7upm'0%)͝mƣ T&4}(tNWi2<ہ=\t4lU5"Dsߎ'~Y jgKcͷiR1Lp)B$I2D/f`@/x~ov:Km:=BUk1v,˷~ ~ۇ&1u+eV?:P5"9XSqR, 5"4 yƯCGW"Yv< {n.a{ +uH/VrLrۋU&Tԓ H2}_|f͎F2$VDXh]yRI)M(ylA^ dQH+D\I8ze JIg΁QaOU9~Z#gP) +s&Hot:=ם\a$"T(%L`p^L!Cc ]@pP9f{+ߦaʈ +z]'cZTzF:F0Ozr* +2Y GvB !zC`E |xAl-)7pb^f}j?$M=LixFb'R[lDSES/2APpZd N2&_[ű.,6TǷoc6T{5Ŷ #PR@0UwqɞH/V!LDOzIc>Rhʵ3  z5-3H"%4 ඗|YB0u;.q:cw&9|b(ӝ)>,Z S6UAc2k+q9 +`/ 0I!Ay=*V^b %ӡo{wݿ&MH]h/P[WHLL/a+|1<Ob;wxXătМL`Ŷ9 l=!<Em]M)G @gF3 +;H1M'Y IC N͞D~ݲK*&I4Q> ?|+D@I&Mj _q ߋ\Ovނ9BhQIݛAAf. d$(BM԰uj9!@+]srzp OaT2eC.Ķ&?GcED7-'"1Ru7m,BA +ͼ`R "0 Ԁ[J [j)tݫrHFoM*,bI#k`$[ {{k_ً&ᩖNjbGnF;c8t16{D[ ʕ심g!Ui:mp |xocZS2dЌ_j]UsbA:`"` +1,DR}P)HH(KLs&_ +ܡW؝C\X2m!ݕ) jd,cW  ɘ z? g'pJ ݢG 4JGa!z'mТ֏=b嘮QD؛ZN;M҆`W|~dm}}ʱ>zSO]q+Z!ɦy*ODf.&i?Sycyʡ/d_kO0k*u|s)+?IQqF.{Y*Pb!M+ ߰xجE-E[E^#2%88pDv+9T'UB^'b~eLkUc719=ʴ]RJ!`t0;ZGdl>wLD/3C9frd (-yj<8~ T 9DVNEo TW:lNK6r0,bBTyk:qι[;fz k:<=M? {%s3 b@ a#)wbq8L *DnxTop.07IdԄ)0iz;iXc LE ׀ňWw4+FNTr?W~[ j844nCdo,%-V#K[oTHʬ2`fHYʃHlD< :6"kO魈?tX.yQ~KP$<B)N+0fෲQiÔ i֏=1;r (L2BDd@[PP/Hl6IXO9X!ـjU~jiTɕ ]%ƍ+PoLEVlvM]tEaY0йJ_q")D] p 9qG<+a^a%F+6#gg(0̶4 +۠CO-&2Ndo/wVj`s J yS +!dʹ@W+?&%r$q4&r#$6m0ٲyc#A@Yz@ h]2D'M=ϱvLf5D(B 7G Y`+ yUȮ}lo[ b!m7EOYb0ʖU*Qt{cO]N'^UY +*ؒX51J3& ,Q2|jpj@rSK9*ˡθA:A}vYw`u ve!~XEsMi@/NO*! |ʤ2_jYz-LJJ'C"Zғe~VIHon֠=荠0ZMݺP0F0qZQ W1!"i9`_^e4Q-B9hw-"5[a|VO\hu|#̫ځ _a)l6\'-@8H~H(CGHNj,T'߰dpı=a=@pʼn]<=\my>NcSQL*!@5co:"E 1(M]Y8}G@ۢwC2C ] {g]и -\d\n'GQ&@kaV,ʾ+J2 +&oeqr4=XH?Y!x9s!nٺLO1^]6;_ jurg8ig%&˓ݑ"\,ɂjvnsTM;hS}>+yfp B\}=b_ϕ~Rlr{cƒSΕ vɏ\_Oڬ; !~J؎rQ_@6ܰHyLC52kʃ z'>?UChB(U}ݎ|D%j]ƞG~8,V#`*(T`¬ОH^َ0X6bM$pVHZ42.W„RN1$1ډWMqedaB'RpsSyG6Ӳo# *vJ؄9]=y:2vk.YT&i&]$٧=xӉn^X* S'0X^32j_y$Ӗ `& 1؊<72^LdqL$_d/ܴ's iiÔ8,s Q}fpHbdCQŠYV'9rHD%ommCî /q-WGM&LK Xg8)T4046AY;lSBU _m6 b*P~M" 69E +40}` +^ȈMP)3?(_B:Ę* hEJNL?(pATf1 VlV7urKxߎW 7'KZG*%F;-O>RJSr;FlEފ9M٬5In_uU#[Wcj.ұi8jZV=flGϹW22U?C$tbc}% 6=+cdۋ Wl{D 6iLCX@[fxkhX!j<æڻу<qq@XB[Q6S(78K0B I$9[tΗڊxu䡉 +a` A-V ^m\~*]NAN'%35A.2-?CR:fkXY8ܾ32)Gg_dD392a ;EPذc %.Ƀ6ƙ6h8ѕ'\(oD,'Vm[qHZM`N._Ve3tVg>fD9 \ P/pC3Qi=ܒ+frZ&g3k/PcQ Dܲiroe:fg(k7̦EȀ}>| 23ǴT!~-t*\$lVD(uj0qAWӵWC>-3'㣐N/aKϫxpu}=:tVYU;ͫh[L_5GQ8[ +<>&B:v{ *rґQTqSx,]uy"f6xR نhy'Rw6Jh/ ^ /xĻ +-tDn'(Z 26Om~7oxf3WuN~t$rmk@hы]+E* +(Y]}ҟ<"{ĉaѰu.^%y$'^ nB?lǔ4 ۞Lr & i9k;,uA0bvS Z3^ƁYһ\kUQ yMyxP?NḀ_Գ$rn,W–ԔrXO+=  kCRsP87Ƈ@i"5;őT2m8hB;韭A.䰅Er]Uz]Ic ߙmb ~Ûü&\!)@??RB$$y+ߑlo'g|B댳.)&&]RLK>_r<@ \-@;@ A_0?vұZ4``:Bl$RIge3(1QX2%=?Kn1wM"F"Gy7c4nčϢ&كC![Ec-o_y3xEUo,\ZMbɢZ!;) +?[8puG=IY@>wةC市̡F%;̇ѡq sX(C6'Coyt?)y| +movǭyqfAxޒ^O)8>ة5(7 18KC0;S%U6㿛02G#$Xv3M@ӕL- 8aPŦ`ۗʨHP3Y9WM@Ku`a!ْM ?%n"Ď9zIN:^ ㎸6اLxۀ\ù PnPfcbB/֘[mmrbd/;n iƛ-h ;B'UtrP'"թs%Fq 7_fsuj! InFVHr' 6he"ۚtUD +9S,Oβ@/tlrzh'jaCn' +XD /Ɖʠu_Oj*E3?L=: +m(gu17N9WbL# L8)IY5=$6ˏc= 1\J4T#ݨN(:'f24<"|C5W)gvWpyC+ό.H|LSu8WҢnZ7gNˁ5|z6!^o%EY az`] +@˖Vv*IY9:Dqo?cA8̒K3? iЀЉsYuf;jbG  mF6&hN' +md/V4I]zyrժ9cN"_l0M>wI,4k u1\-jΜC.+'?]MZ7XuF]fxzq ͵QfILH\ X# iL=- U;|B3YwFP1K4G} }{OfPNT~`:D.zX6o#6D]ӷZe#zwp }nx)^LzЊj83+`8de8Y02ؗ(ȚS| N qup p;Nٷ9w 6uf;FK7_էR[1[`C#:+;˳Mғ(­⋯4pODjV>]ރϴXncP/ ̱ZQH+\ZQsR)р҅VUʝGfZl>3t(l^>)ԍ{td=FG¿&G V.DI4d0 +^>?fFd1}JϧxE +>dLM&X>m^cǶф:+ X=Dpssk *F*ͦEMhv8]Q =F!|-(NFz')lKu6L2@sH:)F<2([{+&X0'mJ60$t?Fe1udH^,h,# jK0nCZɰ&K!Ge +~"](ƂexN{`#wF&SՌlUˆ`f*##!C̀d|f{SSm= 6g;cI֜pigSA)+Gܚ<{x>KG=5bPy(HR aI&&U*JkQj^Vseepf9atmC1jX?)n,(> :bT. q~bL줥Mo!UVƩ +ALJm\Mb|,Tj\waܶĆKZX&q?٫-x9<{0`mZ)`S T:8iZ0; Gj0"toD #b:ARטzsm])myZڭMVbi޸@ƴ_@e{X RJ?b3cZ w!rs4-bkr)ELh`@/c2J +$Pk+){\qX5\X.hªUE}\ÁZ] BŽPR.#Bܻ 0%|mLàL&F܆ju{!C +$gВ~8,!OG=W}FQ6ߓ؇Z!=d J,^= S^ \|9nl"3:+צWMi3'QCcURf!(  /4c4 |"RK;J2ֻ͆6eSEgO0NZwĊ"aSW: I*(iJx_+i9#n~ =9[ +lRdlem.+BRw*En],Q6$' ʙ"T?; |dV ^gTb67uRz}&\(b՗D~dū$Mw. KTy8!P$oڣs{ _rJlV2 5m9Ln u{h<B B +UvjL0?[%*X=ژ)BA7aeFڎHE$e3h)skSzؒp/', +%4HL:YΑE.kVX +OHwsa 7]h7ߤ k1iIE&9$yd낯)̔( .HNJS @թ؍EnFI9ImCt⌚rk; wnEws v\lr|V W +g ڑ0WiJmv!f٣y[iTjgz·G،((Lzfa]Wl+$v X9fueDJjB/T[ P +C=] ' RѤys40oBb1LٷהJe<^@u0As'%.k >\T5 fݫ_.[o>PBY|J]LռCa%g -c>147|?ᩌ |8AVL3]͓wBh˂AN)Z#5˩}.@ " z0&0qȂt= X v,ϙs{ʕTgҀ8&p& ZA_\"$ןlu<)1}H*@:"%P+kqr-9w;Odtv#җ!caFK֗>R&bU(o?\@NL+#w(R;3JN=tc\ؔ(uU>o\׉!TG氇8ݘ^LUdY;TB!~A;i6uiurK&+eWeb@`^PVϜN5>ܑdV) kX8bx}ϙ`C>Ww@ -} +e5gM\}F!6]A8.bX:.Ѓw -@`fV*Ӕ4Yb m@(Ly.4C17Z[2,?% [jf7d gr -&З)(eIڀ@P!/J4̞j,Y&9;_.hY'(ȴCMKP|H6rK,JܞCIJ$BARti&tX!lnU 2U. +W%OLj(v)|I*?({}@(dƠlG̢LG)Ljy@(P#gy@8 I΢x -R(cQd+Vk2<zMy{.C(YR܆l9xJK; <%Q/oP\I]ԍRV!ZVpR͇ލ̹G^rSFbBDGgMrX^(xCQN -'6,akS5; -Id+ jjFM 1+UHaXva8 T½{ɵ?DگnEt鼍O5:xQx>2ºf* u:]CK5jU-wp\9Ej"4Ll D@W%u@lR ոj%"xJ&YbNNa%,fNyJ3Ic - vy?cOR)Zox!֬I%iK-K˼Q?" -ĺ!ndVm)a0;t8hoL*mD:6!(SSޑd)]rn-GR(!(-)IiB4.SXU%yT Bq% 0 GUIiPC*+GCr Ҩė U݀P;XIhP8%GG a}#'B&,0pH.;d2L:~ojZS 'G.h -ZGbYXK,PGcef/!2/QJn8oJ:]TgesSHt#wAQ/wU[&f7j:G3IW kG.ռ8xYf=h3ِNdDyx'ة-UUUNtS,%M\jh,4zMB6Qg>bVWht͵*aQĚfkH;{OWxΝ &胙 \.׫_Yي'}֋K:$:UƼvЇhmor>G847DN+tVݜR}7/ICKޘ9Esvoa[(á2O,2-[V¤*M: |a?J*_A~+zG6Đ -([dg};Xl"3I¼Mi8tR7n[ -@a@ q~v%c4$YT=;-K(o;q%לXWr #|&١UN4wݹ ->!!c';N=<*:,(!2$_%gr}3#yuxiORS!%\ -$[%Mxd+UfwLTOEuw'y.9\(%#ԑ-e.C>Mݔ¢?3KUTP q F= &Nc4Kݸ86Ciebkzpg6Ȫؘdv~N?],jQ -4Y"ZMƢ̓L?s<voQgA/"3h;1}lf)X1Ps 1ɝuHOzefe'hiG܀P*#c\bfG:k" -C"și x\gU-h9 i'6As /ȥ}|s0hAAjS 6%+,ۚ樬Li!2ʦCXܴmjyO[z+l) - -8śS9h&M "DXQXC,td1x8eZϗwguE3CdCd&rxy!!C@IIIffffffffFwfVUfvW֯N.*g~ϕMB)#TʮLL<A2y}4GuLsD9w#.H+#Ӂuɑ9 rwqwjKzP y0ˇ5d(%xDʩĜZ9RQH]me^{?mn)C]f鞙C`@*щHD9Bvts VdF@8$H0 51>n4H842=Mb CBhCnT?TrnO80><h( |`=-8?UT\ґ˱Lo iWx JU^foe -;r{;ׁ.l~*&JQA`58'*FcB9I )P'hdeIΜ  - 9~|wP+-N!4T- >B++福d#AK RKdz)IĘ"\~JH`j( Ș_Ol# L!e!BHЛ/?]P5Es-mpA\V_R#H R]>nY4X O?z1I;1t%;X!YS&e;ԗTK@Y,~lr(%a 1:›Q!*9gK '@ z񬑀kWtpMy@znoP,g0VǺ"Z+a l 2^;kW,lS{sȱ!::jH3{Kڿ'Xg<{2qߥ%t.'d S$y GdR] T;gñ{?dC&j`^x1͋|d%n #2AIxd{clOsa. D,ö2(98s1 %'|5x z[/N@` D4B*'aڴ3=z!ƈQx/ jbS Tr> D 1svXcҐH}-#I[2ѡ~迉c l(;ʐ -ι{|=!]'Nmb QI9RδR`0ZO؅±oyz w"(W/]Gc-fJr&kB%O5Z D_/$^ѫlaA[Չ5v{@jH-4\f(?B4>q> u! -@yW.f7䝳J6rU f;{hEL ä>xL A&:Cҩiy qnvj+ߛ&C=pUdq4Mdß!3\t&HZz?{祥ODpLM"̾{/6`t+ۏ2e"\ :'^E==sd0| ژ8gz-$tckˋD>ټ i-;L_qP|`RJ$Gd.1=|kbQ~„𙽣ŕ"R9et032Nk@Z|ˍ:WFMNYNDӹ6b;S%j *#%I- OW bGg6yyZY9(qXӹsp:(&YE, yV^~b%6Z0bD.)b_aA:3"QH~ Usvsn.] |ج]ɆZI]9 $6Ph,gxe*06jcAK;7v`\/IQt]z>7? & u q5(v0LCvM8[ۤn aƇ&+DҺ&1"H:A}tuqVk4V/0͇UTآμ,_=b5n&?UKY*ˣj.xOPvAձk,s}\̤썛qZ__K9 o=z>8Gc);G?2r:CRВ$>ux8 @?~a @+DBݑ)\[|)iO 8;$/F2Jp}fXΌp2k' $hJ_:2qE>uv|wB0p訢8&ᘔ)VRvݩK'з2 Pk=ͲG'_vJnf΢8{R—\ t8lg=IĶnrS9F.ckROhb xITζL{m?eJRw6|ˇ44s67"a.'Xj#}E;Tl&n4l='RK,k4[S)!s_L.0cyR@Uc6{(b 3cw3Fz@%˭zB0_#tA^ 61z*>s%\#OEp8!n,y:gG)/jɐч5,66*TFzhС0WЗa%[b;H'87C,4#-$BcˮuOcBG0F,uhUA .g㩇{,^o?䈛f)hXBk;@mf!tG -zx =)Ѭ#,O"ҧ|FJ+i2%۰i_&bz1{nGZ~](P\1M W:!]8.tlQ*zlO9TJ=5!mm@UQ%xȄQgmց -HGņs/kBe(j&#^MKNMi{c幔s1^/V "{*`r^fpB,j~C+|KUљ/v2n')'ϏZyɔq ?0kvXA˿~o jBƎ ?&pNX`a<:E0A5ŻYTP^4Q&7>H]Q"иTo+ ?&//fKʥI/(ZGyܲ: Uvpu.wAcC$$)fbӄbq (JpǝS{)t~xFeF+I3LyŤ#㈂BnTn#;)cW.G2Ĉ`YPUV|8/ۂ0~6Γknw !? 8,4<-14 b,JI**TPJ5Fe+Faff|&ԔXlx1@t6"Ri eP йyQkHXu_{)SܣZg,o24fi.֏ cfP8Q '$ R;^]d-.AH u=sE;LVV+|IJР4n=IjYX_ GViX]JD#('{|V+H 1YŔq^0ZǷ5m~K7yQkdWFk"4%8?]0]2'XC~SSs#ʹ[[ɦ/F`Qj-. Rg0["T~PHNԟaK:jC[ -'8PKdps&%0fX)U/XEfH"6$J=4(TkW^(;8nӌ?c'UyD9Jo=V?B;;! jhqw's!XÀv$*2"q &c߫<(41GJPjT"exs|IR=:!_Wco,Pnv ::mu-݃E!Ҧ*2F`Lxuy7%Z"p pYʡ@&]78B!3a_H&İeK5`ݕ1qn갔 [f: r1zeN=qٙܰ -~mdfti~c Π,lgW -SJPf'4hedFDdUљGUuU {nP:Ch+GDw@bSƋgv8#VֵҎ8xb_`TF'SA#0v0"8̶]ZeiGfl[-Ɉ̥&tӑծvk0Ȕ!]UPE6s>>61=Y[u_4Ș A,&(Sd]DY} -}'?IB5Gτ*K+BBe'Ei9{v$ +|@Þ_ A3pt!դЋD{z\+2%5 k8n*6)6]TcA4(-Ue!캎4YJP?Ŝ!+qk,<y=$e+A%۲GdiGbQ\w(Pzb|n9T ypLJCyo lI(ˑ<ֆ_^rLP[h}JKQpRuDDB_SEq -|9q=^eTh1 MZkMC.SzbxQ6—#ne;@j*_߸E&$"(/_"Ȯm0 ODLBj =Ɩ -Bގ-O !: eNwq,1gN[li|q^A<[d\OJ/F(G=A0DsklȂZGF+S@lqmk[qkWC}>hYyOHdS^1@s&/Xk $dz\']YLfqʁt|Or{;xtdӌIbb-Jp(3kxUlͻw \%\tX :@^}3ٵ #6wXDNlŪrWhK91eX`P/ШZu -C^O2i 0 Ed 'ڇP`#aD,/sX_[E#-gr,>r[惺bOZᲩtI,#31VGT *YzɊKCi:r)LRZ@>˦&dnSpπZ"KRwsJJM'L */܌ {Nf&\va&έdou+XՓ1΍ i+!!F>N@/Fq)nG{{1LlYЇ>FfP 7G9}v:9E,r9+uo8R. =4辋Tb},ԊsfHqşWhl-}Z(BS=VI \ DqunY;Ed䖐cW~AR8:n6L~?"EOEcֺ3vɸ=#_Pς[h)%e7;{ҕyڔ?%R -%L~oJItZ#\܈$!)T`3)j}Qh1+ @G* -Im) M6];75w>I'r!37y _嚕dXև}$PXt#Ch6 -53q J*s^1'C΂MRh5w5~e3]F4LL4ޅpdˀ+0 -oHƱn˝b1Ftz)a$ڿ-5صӓVmqIKvBs*}g3LԢ?0UQʡ.G=7I7:מ #|"moFwcO -1a'o,g. 31@$: ѱU&MFŚ:;jm4_[QƭV(f߇] 7 ,mM1MR2('q֗EVV4ץviK)_ap0{UB7_0>@8K; ad16lPQ.Qz+z -m`*"?9a=}$u0mXjd^@L ~DAIAIoQJPfԮ |BkߕӖܯⶶf0N6ZH22 -"j7$g8D-B5`I#-ѝ0SqRzUUEȣz`YBwp熙F2AcXyBAT`ΜvzF%|]S.([čW{w4+>}߽ RWFgqY,'NO-3E؇ ,SyD$)OpG%3!Q^ڷUn*Nb'?pit_POFBIFn4$%!څXVvڛ (MEhGOWVh@F'g)Te5};P«D"T`q&f@(5nإ a'?+M -2{ǒ^z.qKۗOn<Į.HZ]AM<]+ P,1}GIcݻ-2醱G -AQ,}P7b6 Yp"vQΛS -xa@ ʼC B[<ϫѢݑ>.q`D"3&53%I#$TW쫿8jR߸WQ -feѸNv|Na: IdhGqXM5FUE%,A! +/"0LKٳD `}ɤ^b* ddHUbM8$F3|VNj B[Ke7  z9x5< Zf#t29 .qÜH$]}A%)H˻MR݆ cfHTĞ;!B^ĭRQɃʟ#EYM$v$ɽ{QS^4&=I .Y||ZŮ!/d'C0Pa(R/;IAH{Jx3H5ԟj wK$ uפA~rpI0NSAK0A@˞h,4¿ <gcxGYkEG0ZRsX/a/X$>Wm MA DX-zI8U`mb!wqh2qS!U?_QL_Yx!FJE_-nNο]/*wTN%F{i+{]Jh1&qfxTZsݻ1樈H[Qk]<(`{LqModPGwGY S$yZ8iN?bСU^H]=U"tl>TG))[2LPie +-> `Vy)HkwqfplZ9Ui>Ɨb4LS!иBdN\űQ|Y]'ȳLkn , Keļ~ҜzV 0J>ک~^"NgД14q|t2cFpf`.+Ie=ؘiXԎ䯃V~桧CU"x6XV~bV+4 -IJ=Twb4%]6n[hBYr, 5/w;P9EbZ+=d:oĞ(2bqɒZ&N3vŐVCv*pQNUƷƞG}'o1de!n=%Uאa0 ? n ٹvhoϢ#b%hszWPT| TE,`͈Ct R(:+ә **Sي!Ozh@,QrP\\vh4SAN/cckKHgbƒ?x+&`'rX+҂.9OnlkD=`@ zɬ${\67\BhuZUk̒YE Zrpf-Xv$ØrMNIr<@(5S#`-NgS -q:u'l-,eiզMHX~oMa\?MmtQE=&9nj lM&4C{Oljʡ0icl*ѣڑyг%;F1bwd cJ++BxN5"$_&]!{!,rtd J?^6{H$1\yy#GcJ0+8mz\l41(gǑW &X59 -W*']hXA1{9z&&sDQ(MJ3<&s52 HW[1cwd)X%+$?p# II&Կ֌.՛ɭ6=Q_U'P4H&3w]?vFawAg\]Z-a EnVc3 -Ǟ=sj]ͣɿga=ơtQ%(P0MUN="RĔf S $XxsE\hM$7V6:d ꎷ>y;QIp ;w9"h%* *GA"M*SS" @$@}ڌA.d{BFgY6Fv:bjZ& w>p&>/ >ʆȩhC EL}YB\1AN4q7٘ojqsή2O)yX4:H 5n CuNs/ jR-ʱvp|:Xg~]>HvѸAPK,Vߑ/QGm S'@,F+{Ri,0֟SAåQ_w꜇2SDs;.:cmTqHL8ȉEA=3qGV>bV2oW2N<ܳh"):}" NZ5q9bT qt|B?Aƀ{%kㄢN}:\{4#p ^9Am6-/ZC`JtX{>Xcee+w˰Dik{ -Gݜ4뗶 ϋeXjBG -:H={)R=vT("cA^WUai8k%lD'5nqK@^!rY7{# S9zTf$Š.БQaS-՘DUlt+-dX!zy~ů H-YX'P/9E". u6QQkQ|5]OyYu!%Bt:#pEK2>p :8B>x -{<3b2E .uSbW.;pS2JB6&8-[^s' :kզ$ĝ*M5fdgo".,.*ߦHDQw?z@j@ȵ>e?Eޜj+_]̌v-){za -+}iˑ*.%{2B0vWg#Q jns: Fcm89$3LefTx? c}W !mT,M"'=(,+vH1 ("Xh;Y9?>݉\_ 87Kd2S3T>;-UD=BRצ#I fGM:O<0:3@H@<KɯȠIArxQm)n;HtƘo?y=r hF+=K/A -6Op=hQpLo(9LOC8>$7@s#pU^A]y@^w'3r=szX!e]\Ћ?FcCq.\P%)'}Rf )y+}jTR^"oeȹgto`hܧ[}U>a`֑G(\;a^TɍgH~b@P% )Lr3KBsLifqt+yuȚsjg$?QƸ_3/,Lw+n%^Qٚ0N܁~P"Z [jޮ(q#/6\xGU쵈c)\$6)S{3 ke?.AYft#·oYŸwde6 ̞/B۱>_dgqxT1'BDXéUƾ8pxUFC*Fnء>bH6ybo?ֳpaV~ T]_`=+dXq }t -݈sCx>M-8wY~2s/y{T!Z\`L- -Ul 6t}}amx')Veò&z _6~3I1ncI:fp\F5ak/TxKs7՞!ءp ǞlcW܅L3zO\{2^q3`{8qٟ`~&@tL8Y}+/l}!P &~tpf].m!; KGluY:; -[:|d4<|- cɒ^)GdYѫ* ހ)~[ -R!==nd`LiA}O[zC PQ`x.]I9>4o67y=,L]cN3}'x8Ucz'3Ք }z6NM>JIuić(Z^Y9p)80zwk{딼 -GЩ9gɋ, -cܲM -uJ j}NJ/뮹mEsoPtqH?{%ampzɄV)W!3Jס!9 gLMKZKNfҐx]Y6zT(}'^KiTɂ\mQN4}2~ө%oOV  -!@ĬǺPM$AU4C+dȆ@yLs nL 瘊v5܊8i7×nA=-1,eD?_1ŒI5`naU6IX$%NF6k)6hҮ/9n.զb-6e07S?"F/PH=ů*yWz篻^N!8W^]w:C#.U\7 \%QbZ ]e@[է=LRW B+kgVď/Wi'lI˳9lN,;"Lʌ߮`QG*Gy^. K8֛=R‣@M7}Ncۉ M ܤeS"2J V%N|0;ls|y7G;* ^ }.' ƽ^4@*,n;:{j1"^!^J}T5h;0\ `G$cLfDOzo1j)@=:,($ijRxD|o^isKj(wU*SݐP= -]1šTXC&UnH<8mM}4GFvԱx<b̦3+(?åB7x(~vVVYՑús.y_qށw|eb~QZ=Hao3t\Ql/ +*GmSٕ(?ɤ e>Fv3]rT~(sȡ *;:&WGdӿfgggie\692lv8Z3f[c˗NJG3S2C~"/n߄lw@LZdR b_Q5Cx>0ՇL^P4CB/#Iɕ$m@ LMl 6ɐaFrLѴ5PȰ-3򸨐سX  ]ULe*Dı eh+ݠ[gi)sݗ7VEs;W -g\㱻 OI1#ވg 'tF #C~;zAC3Y7;e}z;dl6+nfelvV -,, 33eWQzY˕(#fas,3-fNv IK-b\qx -+M@VuUrY~Fffqޕ&C"΍1s Ňjg3;;cNɂtlBK,iMiMY.ʧTw4XZNzkX7 !]n kKY_U? Ӂ%9ycNӁ2e&,L猕;v^yڥaq@!SLIaaE: - -7.t`ᔹ*wRdq YX  z;4oQ'ZrM hi>E]1IZ+[rV-TVڔ6jd2ZTtd"+4M4'J - M۩jA]%W:jАqaezHIUfBxoEi6IX~2914AJM_੕YsIؾ`Del['.H!jfgҘ7Ӣ]dol -슯b:<ʺKjDܞ Vbթ4HGC9T55$"8YeJ^ѱ6Gdw*WddNfdFFzfnweVT_qfTSEDDU9SSxe LK97d+ hРAĄ -2Xq - .L (B -₇ -&4$.@DDp  48j6R)zw7:tenVRZQ :bxk"ݽw\ك+6"U2ؒiq`^ FKoV|^ -3 -Da@ȭ;a75n2Tu+AQVkD.JSif d]'Jt(F_: dw 뙮xWZS+T%2:YQ :3aaUl"fڋ*,^%62@ GeB%"L=H`ep0P - -B -LCBR4jA 3'*5)+h|h@С~^VpJ@6TKŕ@*ӂȨTṠ-\c™fVJ5gR")ی N6o*A$ULN$ <"á(Qid&.:%8IAA ! e@h0 -Fzn5t檲J\ڇ!VM,K7VEv۴.d;b󿬋k,gr2@(hۯj8ǭY9R^m%D=|&۔շ;E05 U}Zf2:f ]<r(t= -Iى8#3/bzY*Yf/(lB[ؘ_d-w n` -d(\`ғ!FO_Q[."9[UZ(U'V/рaܰ}U(ЇBwHzWNvq.z|%8GpʋqJcXB:6ݝwT/J+oZd/ruzpBFʉJ,hG8Gkq -bfEeZt%o֮(ʩ7?9MV ֬){21BE@"ma^ǞqUQ']`ܔ}H [O݇oGJr}IznƩgxڰB `ɠ˔}PL}!" A&^8Ѱb<7qPisde%.lA(/,|I)ȰÕ3vB|02YLֵ`?rXPu&#]ݚkZê]g D!9ybEŗO^fhR=؏!6aEӔl~ $XÙF!8L`B̵kwɍP(n}eU7kPBLXQDbvt)0M]҈y+Q!UVܕ\ZcDzYٟ0D)z7+N%GP5B- 2>VKtt*LY?E%ndOe 2f -&&J|GPj*\"JG*3jdSO cB1/uYĦ#b!g B+בش)twr\+]b̯襴s2VBF`ѯ㱿ei]:CNP[77Ƃ87tYT-!HZ5hҦS$u׍mYZ&.8 -snSrazN:%|IcϑTn_DV^]nOI&,L32S uԌަ<*,v0Ӑq&a\'.$d+S㓵 -N;i]6cРfE+ T;T"h1$<@gT|R{p}7c` ߫wrR2j$A{ q$~Uro='"fMA.;·m)Uhh#vwׄ a}*.=F7<[e@ =W[MnZΐ!)!Yo:A$wwd Sk Yã3oxmXʽHOW|_ZBG^{, L5׭$nϛfi~d$(QT'$ ! | l -:'cƓ4&V{_~cE!מ<hGnk|J}b>KeA D+m~;PxI>đfQ6oQͰou29oJ-f4rO4!}jF*`9Xy9x^C33t=C̲B^g+qA+c^[ha@7 \n{=J]ڠ;@mr0^~jۗfaZ@ p@вl}Wheߩ8#.AKѣ儒9)^j& VXwc-@T8.@U -q|?y䁯mnX*"2h)xM7!G͌~Ǡ VJE~BXMKxgfÅ赾dY&e+d -֘1H0# -U"`,rGA5I{jFjqQW2 EC 6TkxWKUxD1Y[`5˞[!$/x"t$M߁XϺHs -ՓiK3g#0l'h-\ECsG8NXj\H;7.O6òBa<[yݛЗӻS~. ZX2 Uգ(;"y`A޶2x%)vƘ5cXMIQШTzq-5/G'qVFi+"P S* -FIRXԕ$mτcJC^T4(du7 M Axs4 -XG4V:oPIZC킂z8zrC]*25Uũ -\y%9". jYpӣ˝s/95Q` Kn9u:a1@o8y!|# -endstream endobj 1334 0 obj <>stream -_Qm;É_2\XHmEO;/^-j -tUa3LF{Xy3ZȡD&Ks mϿҍ ;{)0 -K'jin2696s)ðwHed$a\I$&Y~adsjfS`2e!'aҞ}ys|ޅ(rqy&]AmcLVld'lm }>^ XdxZ cYrBϾ/U!_`D |Yp*z -^ $-:dATd9-@M$IB5oH`Vy)oDr8 'L .OR0o?Q5ի GI~"zoS`iN2zD`DA/sԗ׀HV?b/ۙ ;@ts{P{=!A71o'ĥ󡲌-!CHH*KSGBLU ÷8M 8 #]Iذz }b L3g/40Dw=MW6o/lMjG-IkΘLDe֙B 2L8ى6yQA-O]oR; e8u3Y$?F3[x7f5h[ b!`^+F}[W8d_ Cɕ3cxK.r rjɠBj7dBa&ͱ_*]]8x5ʅHKhsu73mD,M$]n/h؃ $e LOq$VA~3A؝[jJ#Xq 4ꚔT>ˌ#)fe2[*pSr@čy)3Hrr-i7"ʁO/j4)9M2hF34n̚A98h6RBŘoHa4QԟpL+6͡H=*mNPO 32֊O_4# @  6[?=eF8M_>#>BvOD|{h1#UrkޥY$/-Ů%[jp>I+PK̬HAnxVS"ɳy - ri5vƇYA]@g.Y?ts9+.!NXlLIod $ٍY$L|MW}p#83S\ JTȞ<>`A,tLlMdP;6jUAii|shikVo$sMچ1}&c(>ʒ#7/6[-D K~Gqu0)!`ia?hUm y}xM]|%_҈wP9% CX/ن9`5tpLܕۗQ9uC^*EЕ$2C%ێ߯Zpo@&IR bdgp/8п(rڂxzz8%U(ԴypWLYM5`.{F>tz@jE"/+À`A'+ylSsOTZpOTttS0nP14 -5CwmXtg- 7\=X>f{DHL `]-)?ܝ{'f'-FN)0P"8.q bvbp&0!Jtr6ClFh+٫ؔ uxgPGgG >20t)p♏{\ :.U8+X"_ܡToKAȦQO[ZG?{T{2&'W a&uG(=grGKɇz aT?-5(2:\nwR&41=gDMu?]7أ!)EH+`?sT!- -ʧބ E~tC FoB5QUʃ {\`LxϾ&ަWS6&tR_%m[9   2D-s^CHQ#`BurІ q ˠZyyct6!k}R.H~E}db)cHD\ߣlxǾb{ih̲7.Jٖ#WkB -N.2V,"2څBE߽Hh$KS]U@}TӬ˶ 歘TK[l]93eikoA4 ( n0tZs y5BRfy_*Ip|OزVn৕p{e"Z]7YBՕ^ё|EjD%'N ьʓ}?,q4H4 l\\-*j6ƒ@pFN<6XJ&ң4{3R]3K[l,!G kyS Nʊp4`bf?g?d!5) tW+*^lI UmH+MIfEA?,9MWhLIuy "{hQ**͂n:ev;  f07!`x'WMFiX\B:+Q<*ʮbRn>.z&UMOms0<,F{wʸW/l[="_y,= ,m#xჰ?bX ~>_Z?7"8lGvĺz w'Sژ|k9@aEK.ڐ3+x -: N.rt},m`h>qNV -˾iF^'0fk78ryƑ;&4Pq0܇FXղ%|0NG9(>XiARVAŰh"-=u~ r$L$hjL*A;DR%ŋzg%zsR,,sj:wNo3C恏֙Q<–}"wC#kS̞+`X&G^<@~\SͿGWxHA]Š_Yru7iT7w.i!Ѕk( 6_tkbY?-C" \E6'~W~7c`{A?e~Se2?\ŏ& ~Y@g!5V`ìOE̳@ڜ8sA^=xh`d{WC#_y:^O9H']3A|y{6X2]mHM&Y#TLឆwi;j*shL@ Dq+^5fSyE.QN @ z;V-/3V.NDc`)ż&@# _߄>Ǟ58:;]l9D9,R%QOcƪ=hERffl6C!ޠ3vlPrkX~uǝZ20?S1o &Ӛ -3%8 ؐS|c7 *YdGhmZ2m- 82x2}ꐰ¢f8ȝ.&oDUC,Ȋ\qy޿ui-l͂"3+)6i 4Mt͂՞cKyU=>zbf,\ 㦀 Ǧz )aƫțHC+ dqpA=6viXLZP4qXUӞ sK䧋%QJf+ 7.yAM^~6.)̎$`9OeZTPV`iTY.8ԸQ7[7ksiWv.&]cB& -%8s;n\W'q/,$&(i)'p&puT<Ƙ/T!M@b@3&$Xy^3$hؒB Z)H` 4 -D l:,8^#{FC [Ѻd'y%7|]zu# xaҴ+/^Z JQۜ:\?{nCC}ZdYfnߵ$i N\C_QtQ5c=0CHgP -CDF}VHwV˕hgg`y+Åz,WH躱;Mjlh:E8po098rΖeZI4|2e{Qa Q?XM.Njc+p* Dmaf? m5$O8*DC g@ 7SGR( |_`un;*BVf1?UI $>.OO -.bل -zPkbUxZok_JcJC\:*cB'<{yل߃Nj^:SuAQ7á}^s#_-vnζyLR B0k|Mi5B=|oh SjV<,O m-:&L@"c(P .MT3HQ6I  2gȕm)HJ+bXn90dS*KJA*ԶoB>,C- ;̂O +\2/h!_,;dVbM cUΖЍ|/+\V.cݥ26s?3#2=d. ht8#c`tn)7ŠEWlX#E <' ~/Kp*FV ڱ{>SwWct-<9I<iJ;m7ycheڕ*\ MҸVTuyg2h %~.6fâ -qL?O8(!Eˡ1?ч -ZF7[b@J6 \2`QG5㎞eK> Q3K8߼ZМH]^<XlN.,n%k؁cV RKrvSnEIG0 -ŧMC[^ -G0h?Ɉ3r쾣.e4'Ty-l>آ}Wbq#k 2oVz%gJpWU:JSA(<=bp͈eK/' ͆c'#!@$QrX.v,ՙ&G,$zdGz t7ha NP?0^]n #N i)]?Q=/$0eu!Lw+\1ap?FLTMBaB̕ԋ~&ރ 7( t.!V'IŴ(55[3p{uvմBbebJc-_uqehIU4ke(D EPGJhhfU8[dИe͎901q\ݸ`J-J*Z̳U#wcf ,_ e|lKykpӵոe!mta~%+P4foSK޴x%BԱ!Իb&GƲ1>g"#;>g{vGOp36\4_/Ѯx[63}aBq^FB;_D[%~@+F6MeTDWO(.ݐ50հP*33au>.݄J[*Us3&p@& $Ү}fb@'Yp{z^~TB`k=2x3 uK 5R$~S>I)}"1VLQv 67 mz,v ;V0vy۳uGKկ$_[NrqЖbVuot:\:4~_p4~SbHNgnNABړ R6fdPa @Dٴw5HuvB|f6RSzEUUU.#lȄX2AxN }w Lp,OX"7{_ú_ЩcOMg1,#4zh ;MޓThߚ{RguYu5yj@ sIhua6=kpɵtdpc@!g 08h|iZtv[*x|s.;U%*Nd2*,Mp灹6+]> -k>F/'ЇC -$ ںRZ1bn|v$ټ%UeQ7npk6ڢWs y]C%p)d,d!p/:*xw7p0xAл:sh‡X?h'MmlmZ7UfTNxf {Yi1jAySLͨ:F2?v$R-+9"\J>?n0PИ;IXɿ>.P*̠,0r>{y@PFG9M.EsBemhƑ^MOpedWmgk{muH@H8$փWSs' *y, L)͈<& WLl''@,TE^>Tt4<B 0`>ƕm%@]}e(aڥ,g`gcdu?^eGpۢ܆5$"v >oGD"U 8Nuo´RR kG^"z2`[C4Rͣːjs#> 53Y `dlE\4>{" y ' arbXH 3~C%Z$k&x\m#c1J54vĞB)D:ﱋj'U8M5D%PO ɓOyz퓙D:~v析6]xk [dl 'QdƳ~{IԾqN!ի^"l#8xݘBB'˜q{+k +;PbZLv?k^Fdwtǫ##@ wJѻmg(FFN [k W^mcv"XWF ze*f,1PxF`#FIm#*/x3P,CynUҘ˿@tОGpmRIJbo!ؾh(/KnYɵ7وWI9_=49b-6nfgb)ZU8-5=C; ̳`5%^ D^#HqM!J`LU#uo^\图tFj" N:?۹M cɫ xڲPhcxխÄwebv9H}(W-~]DnZLa2ۣK -#mF;ǒ+dUG#%Kr bn;>stream +>1=1~ I~'b벁yg\yg\(>0]88y^ PAE:QZ%'G?ކK'  +$6X-vT;CdҳsHHJG-2setUt ^ct)+u[aV&L3 Gdcaku%ʳ6&24]Y\&"+`jL1Wt f7z *jR0rf3ӹKƑ<EM& ֚\}u,Ҧz FTW:S+&m coMRwё6S⫻WF¹#Fjڏ=mg6XKۦ5@/҅#\#uUBi9ΖL-E/!Rrh%>'`,<6#S7(Y??pk5 "8Be#3{$; %N&k-=`JZŶ_[;oD~f XM +0p֒Lnf gE`zyғ=Gbu~0QY{\O+o`$:' `=G;)1J{6gJ ar,]@ UV;q;.$rqC;[yn/KJߴ"yF[yus{/cv^ nbzY8&غY2h$x_>ʌqF` ?}wZskefEqN=7oe{^Uay9(C>ʬMZ`y,W\g#D+IYN>0ҍQU/ DޕFY/e6DȠP>zq+&B= 'uЯy(͜6o}ȔP[YMY ҨzpB`< ~z~C}%=~ae~W`bT {C/ QU4lq.YwxN1FA +p*"k"vD\I(!њŔjuS*hIud#Ȭ =Ρ&V5sYܑ]@9E0&kT!).!AY fBŲfC?%  + Zȥ,HBBQyYU7ÖKdtA|6.^nn9hv]|Df0C@7hT:jqe# X J j.*@!i>U궃8s1yPͩ\,;=rT#L Z_;:g 'kwQNрnwVI( u! qwӟL-p%bۗ'$ϛ4tu6 >>RKC:`XJ#< M^hm MR\ƧOơ%r]S<ҟOj:3$Nbx chG{ՃtdR䋬K pZd-qXX(.`=:"HXcRH3VRa.I$?˙w1!Ϋ:?hC@+x`%Lək RCXeTvّnZYJƺ"_'ѯ{ODF!BȀ[D)A|)C ~ُyW!jsUEGr 4P 3I 01떨@^ +9$?A=Eh%>mɝO6@ۮ75qܘ\ peO#Q0)GQ2$Ld1$mCSԆT2x4NJBJ*p΄G )t+0"Pr!~iV/D0*k#SΉgGj/P#*AE>'] ܃ :@D禳 +~vzI,Y.#}kCi a-[@@ Zz@Cdpߠd_KB ωw~#dUL{ +2h9T-o]t),,Y5+l`(E:auX|0*0U,!xc_[Xa7bс{7ZJSw;L cJUx`idнB*ɓHM]W=AϾrk3LI, +nW'@P戱[y+6<\-ntʟ]YrJ:;c+?ybQPÛXd$Gf4Eܠj0'fF,i72,IUm^ vB'ld7Y$ Q +[7i2Ym*9oZ?;[NR'H^m;o,ͬx6(,_?nh͆v$,iFP}6DG)30##l|(jU^}:@AOH M}Y3–^Lw]v凡pT-T۱9HX:*\ A=sE +o3Kpy7bw:<<waûwIM DyS9{O.-eT*nK;2UkpKJB}idkLнgQDrF$˝KphZ N#:3Bbo^vҦOׁe9Y<]lWϞU)-bĠG/O4DyBm$n5ղYuI9&TڲE\M*nu3I߱:壅y(0$y1BNkzvk4C۩d@+O95?߰l0kPR nOKDҕ9.tPڇZlOK&NzǖB"W.@@ j!9+JNV K<'^3"~xqLxBR3YH- ?ƉDƽB=ʿ2ɣH%ER2 "?Iwج9F BqUj$0 ݜx.Q27dzJ ۪h$ i^ M4XLU;8>2ܡJm;ۂŗ@MJ MZLzȦ0T4quJv04 Wl"fG)hL#{v{FXtH0cK=E$`JE_+.z_F*PcTH|lxC(yd4$R"&g#H#O;TC'o38Ҡc_Е;Uo4H I4 W߯b5e f : Vk0 KE9P*_aVP~Kr=l[Dw-Gq/R_> ;,2k6aK- qږ<֋2e*F<Z x`mx|FT_9^ß͇}I< 2n۫s@Gx##^I[Ԧ1ʠ':RzF5TтL3u;AnZS氏-G$ k6$uߙ6's:ާW +.'`~8Z + +'LJGORx`!=whE\Ki&وw})3z1'a"=6//5{];sܙFl??º58P'  KnZA~Wphwm˻m(tM҂&Q^Qꤖig9p/{gg}ݱ;~Y P?7,U-^;>0A1Rx[rU-U %Ul?Wz>dx4ժRФ¿7 {* /[8p#ْ뿦0QrVL" n1|s{ꔎl-^İ@\Nƥ<'PkerͽjgL18`j‰ XXlx= J&:G>qj`P!>>NY j̥V1`|N/ j@ `V=a=&*'892$Ci + ej` !N .҅g(RSsr.4 AhKʿo]R>Bه ~Q[7E5iǻp+!n$j/}.4|v)sPldi0؇b F~{KߤD7%@UAnUt-)7ef41WA^Ɯ΁6whO0/_֌#Jb~NC:|wx؆/5* ¬oY־!`w7 -p"e3voM1%N!d3ËAMzCul./酏~˷VS}1 +6 NXFk5 X(ѿV jJ3;D6yͨҙM,:%$Yct]5R]Wቃ&8Oyx?&@n:B{*!ZKPs{nFWؤ[FTI&m%x-M7B7xS%4_bqER/Htm<'nrH1[` Zhq r[Hva:Z``,XKS\RG95@ RM#o>5ϩq =!oj1*2L0=$ϗh6y,&2!w +ԄJ665WM;)uRIv"ꔴ4wB_e!5<@b+$8__F KF֓y?fԸA}Q! +(=7LJ|nUiZRF-  Bssbklj/yj|\Q]#[/l#o +Y.F)/&LCTF1iO%֯[ qJ117suAkGD[cfN$hD%./t']Iŕ}O h<{"*Cʊ}2Йשj |Wf$3e*%VJG+gnQqKhI"xٓ,ՖXJjKM58|ՊKkQ|rϵU̫h0(qg $ l~#&Q޺Me\2:W殍j4 k.Õ +ui)E h(8fgsv)Ŭ8/AZs^RON9&=z/΁G v-O{x,߻|`% +NDAnDKr]SgC(ţԵ/ˁ3F.Ohho縲 ~?b]9 \<&Vqgk4}°,dMAHSY\~gI;DPv 秙F bv_M֋TY(΂?d?P(^YִG +ƹ'6!)C/rk3װpY:#qhC"׹c,w=E?iڻ#r {LgD$1ܰTEؼq'Vٌ/qzOei@GU|$if&Zb<5]"K!]lJ':?V1qC]X 'qwS^a$a<}086!_P?Vty;*v)fH(hXCammv\塂e*3$6I>N[T #nc z< f|1`fS g\ϿΊ +:+:RuXw%﫣;{=b;;L1V)Lu~a7|~ t.+r^Z~m*?3Rr;w=]}ƽ+?\.cwe5ԅ]eavtGGȑ,sWfwvvfv_Qe#&醣5;|\vRҍ> +2C~"/n߄lw@LZdR@8F3Rxه[0+ "rYe$I2٘!հm!&325ۻQR Q:YeF2{Vk;!t2L83g)kuvLicwiqYuW1ȈjF5UDDT5]!QA"9sJњsMNfdWAXS-fx0c4[873z%&S3SQ;d*n&Mt&.8E8IAB !!E@fF _΃:fQ9Еeʂe+2t2oO6/L,eQe.BYXz|!:@yq,dam~ +5'FI?EO/ #'c;99&ԯ+]&o/z'5U|1Cb@O7gGcx;uXH G@>a}e;3rQYUiEpNKg: KH0lMֺ +pZ${F.AQq +o5<+-WQM)TJ~a|=WٲM6'< ۮ1z]-_AXیMnmk0ppF=8RvypڜKs ~vM4S%upc77 ?倿W{7 +x6Cl}%#o,IQ>85\Le!Uʩ.r?QEzCC/ ΞۚM.b>ܬGKc],㹀.³m (GxA@ 7/Nfi<6$22q+˧[KZICKpFy@\q?NoZR`K:)ޠF}k?%+$Iv8fM'ͺn)$U_n2^Iȓ. ޲i[&~~՝JȮd?ٔKvf"Z._5Zj +Ҫ2̜Y;/rgb 6V`˅̂ ++wD) XCh<b Ni)Hw?Bf|"=؋0o5Sݦ8+ IXÙF!JMq7A;Lwɍ3L,4pWL{XUMmCwgabx4E<mo8-XrC<֛KH o 9AkTF^Kϭ:z#L[$3gnZZ-lh+i ?ڴ/dNeei ]EHQpbO3!Q:v3I9yD,2g?f~f z1Z \xy]&XRK'K0)v4#B@KJoI0Q誼vRr%@!3b9S^\U^%X,Vzۼ%f:}rҨnW^+ƒ Ϸ eB+/C=㰅=}cz(ۖe{ 5Jv|tښ󓆂OX`/vQ;n}|WQph61(f7~`2f'Ὣ`âdzɝEIPˣa_N>3ǀ/Ykh(ttNsZx'@J2FP]䒼=6d%/[p=$Uto$(n+8x,wep㮤Wn4tΫ/I\sCUedk /)#aSkX˯?x_'꧇` z0QٍZ\[/00 ʕ }"y=kiA Lv=P,@#F+5] P` Ã>KFT i/TY.#jkyk,Q3 ItwRhMotUZiY`DV)e|TGd㖆,fyK(( slQOUV87B{m{Q$N\=&"Zʾ,4@La촥nYoܜ^IdA\qC iF}aK8Mj.t+2Cakyz ѣ~B1>stream + +~LG"L@/bC('-vhyZet>=IT+N<LMJ.[M LWJ;Xh͓-73_s/ހ.ȧDUؕƠnauHݤsӱ`kr"޶7d@vbUxQ ')W;1] G]^xcr0r$g҈5؝RH20$IaGʎK#!eÝ8>NHR&.G]9(ZZK띫 Mm~^ ?߄QHOie%[%9kfuv0gBItc3VREܓ\swC["rvӺȍ\]1ÎiOeJZWuëܷ& ͐0OX BM;d?RIq r;٦:Bxm7XDVyi S  ӖpAvB(H ARJ:m!TSЩk4jeiȌ&vЏYQ72q|w%b6d{TβHV̠88@ڑPC${Gan a[0eqSf2[ KGv_v4BJS= 2/<#}9 QӢmq%~ߪozv ىڲ#[챫JBegpfV&8<螋sA߫:ztY0d"Cp-96|1׊bZB`)A=%Ӣ,$Dq +_V/v(N_Wo]hg5%).6w:|zEXvXH$@^j]*.U7Y +HMMKd>xPLMcI<#S'WDߩUuyi.?V-b8%`^C1C\[4c͡ʊ3hpEk;bR@kH +e8蠌lJ߾@NQ#X99S |ToDXPW &`\ظBEc+?dOL-&)ɍ 5> ZS *Ƚc#Mk~,#|;Qiao8y Ȼb_Yɵq$K5jde-kOq` oEa +=`9fXp9!$f'bsHijNӹ{K+`@f,0}jRP 0uGM4Y&1L+D}Ga|jF`ň/]UV9$>/MRQv[*Hq,1!_drl6AH,^1 f,aνf|^RԺ6yyF8(fO*67`@:ɻZbG;1W.s=:p"Ům$vmRZrZ1T(w.MSFFn-:4Wyy:ۊFנ* +,Y:{-s*@Yk8KЕ-tӀ)}źcxG;p[g%0Zt#]- ,LAtoNajn4}qX`<ˤLFf6F`wG^`a[K+\O]e #+W.o;e"~ y0\T{~p&ݡ0q*{M b?ݽx)la-@fDb4Ҏk'm oNmD ._7ڂqX%M%?1_2qea[:Gz۠&W}+%=jewn2Z/ϲnKSb &K|>($1; ϺckNtR܁|½{'6w|R{Ԋ"ǻrTDjduHEΨNrd7sQ>).ep1k߾ =qS2D: ICl P%ySދtڀ\!n3/b)湔A{+4N8"{Iǹs {Z,Gdzry^%y!W>ۓ+iO\p4ˬ7ƇQg:,}6i;y7 ;-}׭#nH1asu!,_ 瓿/t-CWjNcȠ3GP_k o|\3yep)[a,J}vfVK `!LsD'Ų@f֧{ +P+ku쪎C*9PG8DEZf a-+:KpgBB»lb5!H0x!ՏV `t)0\!N&Vr&T .\aړ|')]'%%;Kk %ٷ1 +L-Юc wmmg-Aۂ I-go {HHQ/XW +h:O80e_v3l`;p{ŵ&cZaZJYx"}. X#@=Avy%y#*o`-o +QxH(6ܻ'lNyMZTr }#ӷ&9%-i &ʘX|oK4;.vDT"}ڃ4YZa.6_o@Ėi4;t ͅ~a[?F# Zf٫ZRlRVZpTgoxq+^,$d8P=0L r;)ns(R^/Jץ5C5S)ѡ$ {]O|; W:bFpl%ogSɡL!@*Q~n{ ؝;ޯRcخgP0s.2@ ؤߞFŒMk=9эgo"b[*B`ue0{#@6j_GW-msS 'q:/0!Z0\@S,_:v$^4zIG_@eiU ڗ>>qx/0kG?H b?h >_ * Dn( +"dVy +~ŕR;(bԸ|Na:5Lڥ}j?TCĜE܂^fшYDvIdude. +KgӢ%.Vu4 ČSeSY0S]F :H)ڋ’ ,pBnEuYMW42̛1[&ݐ{*9%uWف~Iqu {6zPyL/ +X^ IWiusb[6!28{̨m ."0"#5VNK?A"0<k\G2Br*U U_0x3;r)mhw<IB +L%pBo΁:="gGL*tj_]q5 Y {l\}8|L@y@ܬUcR I_*QŽ6M Ӧ?$5s9̅qv)e M41U!UXJIѶ&HUC\nihQHrcy u&H(ҋ$Ӻk +z  S Yf6r +M+I1%`km{2/wt<)ED'm`b:yPk1kN3 .a9񵷇Yd/av2)={TXz +xAmo5Y1H98,wzudSXZ,UI]55dˠKP_ᬕmfl\\#`  |d-eA +7j:Ъ}m.=AH1X}JA)`*茩۲4_/X>+LH{8i]E2^;jo}d ws/5zy"N +D 38.Qr\.;c@$3'DQv9QTT@CË܊F`+aW`&tuO69i 8BQfq8kR¯b'g}o"P.x-=`}{k# , X~>lF{hg*H4'v~w\l:e&/O/a{y5Gy + }j +Yq|@ouύV}d1<|r<* $[ O%TX„ǪHF3 v F xBj<.&jq3Y K qib._3LJHѓRWL2 ]mSUJ%E7U.p"юXW]'AJڸ;_G<} ̦90QĠ`FD?/ǔH}\ڹ|I^3WٍfJP)$ 3&kG$Jz)$r] :БqHr!N|ʩ oEA$)yݢs^pbEB0 g;Įر\җK a.)Ʊp)TZӜZ %߰^"rHо\Eb6fޮ흚XǸNۆ;E?]! $K E[-Z3 Ks]K{ -.2k|Ӄ4Oa|nPm_U&  ki}:6zub,#x`G}sc>c.!2H7}YiϞX+a,qCxWFqߋ'$ -(ՖgOM"NԂ2M@hD^Flꀷ=8 &AtT*[ʁҩ@y huaĈa7!@-1@EuZw&^]sYj|T|՜Ce +k5JZbɋ8'y +CwE!N~H( qմMDe02$,Q?`] D".tQ1k-}ܯT${.kO? +b\LQHKALlV"O0 LDКJ@gZp! HbtBy*# `5# +F>;қhc,@8ƫyȳEeoʄ5<*NyqDZ0 rUaYq_aBA1ʲi$\N0,êd bӣpBvZs>7quRgJ# #nE x aw7yݹc,C[*DRܯI0b"S 4/- l;A'D&Z; aL墳6A()B GuI)-}i٦B42]^Zc##A8>U\^ɰmBzʮgGMFF= s8CFyCh&n0Y; +׭^p" Gjڝ4vIvK&MfOO{cximdC̹j$>OnO6>տ {;V`hW+' +`mQiR"J)a-F>k5đa78%<29o(զϫd$*c5d7 +QH;M Q\ƮZ-u`0`#X2bv kyJtV\8ی܃b-RkTV9zٿtaRe᱌d_Xr5YDmv;Fic.ugͶT1LN@OB,GͻݿUM-@SG `_9k2?r6rǀ6TMWv }˪UyKUu4]xK;jN!|b 3ﳪr/Mho4+,ֺL*PEP$6|OȎ\S.ب~]5oJ40Њb{BEPW>g3QSX0+\ '8s5jpO4\&"klR5`*me:€B_x/+P +Uq!|zn?@[U ۄ$q:JSzN4}5ķxۛ%x}elc ~ ĩ/6ߕP1Kp/r䫘ܻ!=C4*z:vU6go{O uj=<8f\W~aY)!;T0ӴG%YCѐt4J'5 UϽ&{Z K?@e=4wʂQDkX 4*CqPӌYxÊwi<3m8fB3pTD Y.PWb\63:5P`=`[ƩwSp + +JrWsz\樂郇Nޅֻ ].ڋ}O+OL +endstream endobj 1442 0 obj [/Indexed/DeviceRGB 255 1449 0 R] endobj 1449 0 obj <>stream 8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn @@ -1242,7 +1265,7 @@ E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> -endstream endobj 1325 0 obj <>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream +endstream endobj 1439 0 obj <>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream BT 0 0 0 rg /GS0 gs @@ -1269,30 +1292,20 @@ BT [(S)-3 (a)8 (v)10 (e A)6.1 (s c)5.9 (ommand)10.1 (.)]TJ ET -endstream endobj 1322 0 obj <> endobj 1337 0 obj <> endobj 1338 0 obj <> endobj 1339 0 obj <>stream -H|TiPYj (FfZPSTXEPQD[Cnhi\QUcQTDcYd\'fg11[0Ƌ|e~E☱ zz~n:LSGI)WO&9Ke5FQϟ}E>~Yzsq{vd]]m'u/Zh:<J~MrFV -;Gdl -B#S+5Jvrda2,NTB24LV*dqjBWEOf'daQ2K6 mo"ltFpBoI$Ch &']S>#!&fzC){c^z9Aâd=([S>f@D?2q{L( u ZSz0ǛBO_:[V}Is^R -(mrPѽH%HwYho΢QTNlIޞrZ,dHGh,yJ~C_Ӊ-\a>}QnܖB)BQ,Xia~BE..oxEoN{?Ws*GH -Z?r4Mnȇ>v2!Ck[a9,u@n/ 3! 'z >;Ib3и@i -<`oWĒH068άlpb6qgWTEJ -,\O,f ](މls&)XoooIxl>L8 -/Xs``29ȗ;u G[7$A, h 60rT]A7O4xldKਔ^F/: {G'?؂zή:]zM[þGT70ߋA_8Yvn#ZU+]uME -J-cOp& b'G=@NRZ}G2ڀ0+wHhR'oX'd~cbl[QTRyL.E6dZ SqU׏]͕5el6)_/:.!%RyxG=w+[7D3aYHs~e>խ1 `֙F7U@$g;Ea!} ܬ+wMK$ؼb϶Dppꔔڜcx[7+ n\'sE\[d?ahyo;n6}B˻wMV\3ÒFz|; U fm29d=j.cJs\DdƫR~@0C''%F -?/~gRʐ y ^|0h̿g)ȁChhXV -V.J -W}?7lێ_a>:s -cXڃ f;cdz^GOI=v'dwuqtN8V0ޥܐO%cG=EV^/-Ay0isuC@"{ ElQIw3׹u%@HR,yq/rVU:C런=,@='=/^ogs3T>Ea}@d>oۍCeVk#Stl.>>Imba( ~ %oɂOpHK>ՏqȽ% \4P0ONopीWPoBEŠPP^Vޱlq;B8?;?'wRSoǡAr:Q>]Vcb hkevpech݂f٬-}.,@YMtnʤXC>llX?臅A?l(]ǦHN!IAX@hՑ̈́{όds's1|4mMy`EfEg9'"QF݌g㰏IݲFlx8m]QWE+pt^JCoǯ`2|~#| X8>ys15zMsW\CE賃,@)|5/#<3y9,؋>- %ƗLjPk[Fo"-.#3Gc.fh-$m͖6q{c@+&w -"z;<^:#8=& /:vo/,),.t}-r:vR|,{Eȉ"W_UzH SNr $@Iܻϓ5ta;l(fכc$”II>d2Njxfle:'ROlm𷅡KgQ;s`iXϠ> endobj 33 0 obj <> endobj 115 0 obj [/View/Design] endobj 116 0 obj <>>> endobj 34 0 obj [33 0 R] endobj 1340 0 obj <> endobj xref -0 1341 +endstream endobj 1436 0 obj <> endobj 1451 0 obj <> endobj 1452 0 obj <> endobj 1453 0 obj <>stream +H|TiPYj (FfZPSTXEPQk=8ZFW4t{QQTDcXOubv& ̟"22_}{8fj8>skVof~UXO&EhBdʘ/q~)T-Bٟ?A4ezݗS,1M2&V-rss3ZIj'sXpuyc2xEZQ+2H$ZR*qdaj",^Pɂdhp_UArET*BcOP¢e, : jYP|3 +Sxo-{1 F`؟L0k c5-0pl's~ l}uv+jN|ǟLx !&!cD +-7!n{҅6YGD֤Oi1\o)3t+be ~f;A6z-dt)X-`A/>TpPvA}gvs~(> MwYho.Q.lI]9}e,THGh yJ?}C^- Zl |/p-Ů R a8ASa\S{5,>В/~:Tp?7~h:-܈}LuN#sc:εA"2sX>gV#pNwBEq}q7q1 2y6$; +%`<ά^q}LGEq7TCJN.b3Q$BR^k+h )|p ^f4Nd/w/4HѷHX;0LQBwE=Pi Rh y<٦k\uMv߳!%̪ͩG_:2`:Zum= `'.FSwe@$;NCE~>} t~vn)qqە̻_s&Dl^g[}VJڜc=x+}ATᇶ3߬OqA\ʕtrջ2a|4 y V|DXaܕWGFjϧsUpB%a5pOP!rX2o5,TUpl,&Z7eMN[lOkk  UcSTHDG , 4fB}gForϹ9>`ʦ<"KjO"](#nFqǃnWR\#?w IZ>,SFYNf<̘_ ܦw+^B"AQ[OJΑ} Uy TYֽCDMA/J*f=$)'9n^$I]ʂU⚎s0rIS3͇1za$J$USkr'5qn,\gPݨARzaP7ɃB 9{>&Y%p]o}]_> endobj 33 0 obj <> endobj 115 0 obj [/View/Design] endobj 116 0 obj <>>> endobj 34 0 obj [33 0 R] endobj 1454 0 obj <> endobj xref +0 1455 0000000004 65535 f 0000000016 00000 n 0000000147 00000 n -0000021648 00000 n +0000021543 00000 n 0000000006 00000 f -0000021832 00000 n +0000021727 00000 n 0000000007 00000 f 0000000008 00000 f 0000000009 00000 f @@ -1320,11 +1333,11 @@ endstream endobj 1336 0 obj <<9C5FEC96FF6FCE418CCABCD6C0DF98C0>]>> +<]>> startxref -238078 +238781 %%EOF diff --git a/datafiles/data/themes/default/graphics/icon/s_cursor.png b/datafiles/data/themes/default/graphics/icon/s_cursor.png new file mode 100644 index 000000000..4aaf04f14 Binary files /dev/null and b/datafiles/data/themes/default/graphics/icon/s_cursor.png differ diff --git a/datafiles/data/themes/default/graphics/icon/s_file_explorer.png b/datafiles/data/themes/default/graphics/icon/s_file_explorer.png new file mode 100644 index 000000000..a4a81159a Binary files /dev/null and b/datafiles/data/themes/default/graphics/icon/s_file_explorer.png differ diff --git a/datafiles/data/themes/default/graphics/inspector/graphics x2.ai b/datafiles/data/themes/default/graphics/inspector/graphics x2.ai index 3ae86adda..cd314d6d6 100644 --- a/datafiles/data/themes/default/graphics/inspector/graphics x2.ai +++ b/datafiles/data/themes/default/graphics/inspector/graphics x2.ai @@ -1,5 +1,5 @@ %PDF-1.6 % -1 0 obj <>/OCGs[30 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream +1 0 obj <>/OCGs[30 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream @@ -22,23 +22,23 @@ Adobe Illustrator 27.1 (Windows) - 2023-01-04T16:08:17+08:00 - 2023-01-04T16:08:17+07:00 - 2023-01-04T16:08:17+07:00 + 2023-01-09T14:33:05+08:00 + 2023-01-09T14:33:05+07:00 + 2023-01-09T14:33:05+07:00 256 116 JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAdAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUo84/8ohrn/bPu v+TLYY81ee2us/mmvm2G3diugi9RSGjtgv1P1BvzI5/3W9a1yyo0h6wkiOvJGDKejKaj8MqSxD80 73zBa+WC2hvwuGkpdFeBYWvpP6hHP347rvk4AXupd+Vl75guvLAbXH53CyUtS3AMbX0k9Mnh78t2 3xmBeyhl0kscY5SOqKTSrEAV+nIK8fvtb/NhtcuoeTHRvrEikLHbcfqoY1IcDntH3rXLgI0h6X5O /wCUQ0P/ALZ9r/yZXKpc0pvgV2KuxV2KuxVbNEJYXiYsokUqWRirAEUqrLQg+4xVKfJ5lby3YSyy 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 proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:bb3a5c06-6927-6f4e-b81f-8de03347aa02 - uuid:a1c407bd-25cd-4fc2-bdee-0f6b5e1d0563 + uuid:d9d79163-b197-4a45-acc5-f5e3084f8ed1 uuid:e533c052-f7e1-4461-a18a-b736b27f9a25 xmp.did:2821828c-6479-484a-813d-42d196335bbb @@ -70,7 +70,7 @@ False False - 64.000000 + 48.000000 16.000000 Pixels @@ -295,17 +295,18 @@ -endstream endobj 3 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 26 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 16.0]/Type/Page/PieceInfo<>>> endobj 27 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 64.0 16.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 12.0 12.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page/PieceInfo<>>> endobj 34 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 40.0 20.0]/Type/Page/PieceInfo<>>> endobj 35 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 43 0 obj <>stream -HԕKN0 >/0m<: V#4b"`344,:d;_Fj4rݏLWr+<FGOteaGسv9_ڡFBCD0͞աcL^t+=Ԃ'V5e 7 'u17.-xƅ3J"-f/Rqa8Е ^Ħ|3,P"+,X&q`,GۥKiP?"V||W -f{8p/ - -endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream +endstream endobj 3 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 26 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 16.0]/Type/Page/PieceInfo<>>> endobj 27 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 64.0 16.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 12.0 12.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 80.0 80.0]/Type/Page/PieceInfo<>>> endobj 34 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 40.0 20.0]/Type/Page/PieceInfo<>>> endobj 35 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 36 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 16.0]/Type/Page/PieceInfo<>>> endobj 45 0 obj <>stream +H̕Kj@ :.`{4ۺPHK0}P@E_i$6 .x[,JuC8Bh[xzC +Umj}G恵G8Z-T7wRm +,t%9YyӲR#`x1ƦM>MAk'$}Q/}s6ib&Z$<2E:^ oII3ߓ*)J"I-o(L,c,C?BY'#E&L:3Ȥct.BE&t4IeoUҧƞnNJݙCF +|.k'Ya3b2FʪR-3t]HA-( Ae] +< 0E$q;.zs^䃟g/|?Q> endobj 9 0 obj <> endobj 10 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 27.1.1 %%For: (Makham) () %%Title: (graphics x2.ai) -%%CreationDate: 1/4/2023 4:08 PM +%%CreationDate: 1/9/2023 2:33 PM %%Canvassize: 16383 %%BoundingBox: -29 -153 318 1 %%HiResBoundingBox: -29 -153 318 0.75 @@ -334,9 +335,9 @@ endstream endobj 8 0 obj < %%+ 0.921568632125855 0 0.294117659330368 (red) %%+ 1 1 1 (white) %%+ 1 0.894117653369904 0.470588237047195 (yellow) -%AI3_Cropmarks: 101 -89 165 -73 +%AI3_Cropmarks: 166 -89 214 -73 %AI3_TemplateBox: 8.5 -8.5 8.5 -8.5 -%AI3_TileBox: -263 -387 529 225 +%AI3_TileBox: -206 -387 586 225 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 @@ -346,9 +347,9 @@ endstream endobj 8 0 obj < %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:24 4 -%AI10_OpenToVie: 83.3235294117621 -31.705882352946 11.3333333333333 0 8317.85294117647 8256.13235294118 1176 924 282 0 0 327 121 0 0 0 1 1 1 1 1 0 1 +%AI10_OpenToVie: 36.2941176470595 22.0588235294117 4.25 0 8356.70588235294 8271.41176470588 1176 924 282 0 0 327 121 0 0 0 1 1 1 1 1 0 1 %AI17_Alternate_Content -%AI9_OpenToView: 83.3235294117621 -31.705882352946 11.3333333333333 1176 924 282 0 0 327 121 0 0 0 1 1 1 1 1 0 1 +%AI9_OpenToView: 36.2941176470595 22.0588235294117 4.25 1176 924 282 0 0 327 121 0 0 0 1 1 1 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %AI17_Begin_Content_if_version_gt:24 4 @@ -361,201 +362,178 @@ endstream endobj 8 0 obj < %%EndComments endstream endobj 11 0 obj <>stream -%AI24_ZStandard_Data(/X.F ,m -m/a!DfI+4 Uo:m U9of奈[yZ흼)f2AzyAQxDv'ZhfvJP/-jFNHe,#?jgvS/9$qiCgG n#ѲQI~Au$'v+:q3#Asm7)"m&`ZL֦jfT&mwZRk:v7 YGMG,R( ^̒FHJiUF Ǭh,Y㮻3QVd^s׳d4پne ;Nk$&V<6wdVԚA|>, CCbЀ -WE" L\<804$!  O<!C':I@`!xxaaP;,@T@|'vZQ`ł B1`h [— TpO8(fwH,ΒP14b13RjuD8C-%Nq7`NKePSfq,aP}bX8,/rqdh0"qO(rX<@8"JƑGX޸GQ7*32lTX5 ^wS̓x˚X<@Tch|Axi14P갲PbQPQccZZ-a -laa6k2C ?~ - nHXhh <" pS\~xwvtN` s0!hqC/@Q  804LccS4\{k[Zx>&RcDK)7(M?N7F/b{=)){3+vID,B+E&-)2$o5db/&za5hNeXau~TPUjFoPhG%"jshA+Y4~ڨb$aϐndyF6z{ULtF*Tf坆,n[B"Jt.}n8FKY5mJ4\2kZLݛdr&]Tw*3JkMe>j~qcKK6h!!7v댘"ҵՐS++ -EټGΕFhQ<17ȧRtT6*#c(붚Qa}͜d鞫Rt]$:QJyɢ,,#ٔV&י>/3XhɍWwJEXSH$ĩc҈!Upw^jemZEFi/Wאgeq|c+e"Qvz*O$Ml>Cq23N;bKhP^u,Wd;#IVR&ñyH.Yg**F6,e.cڔlf%ґKZֵ#jE~e~쓷TՎ*jdHtG%/t,jzQ<6GɎ>$eW$;Oh&rIi:!4ENF&TRR}*541uNc)2,j]a~GFĎ^)=3{EgI1KU9:^2ӧ3ЌLSvYeethvCy[G\KvD$WdjXtL2\UTIJ*ۇs'¶;YitκH;,U$F5ʦoF_pjc"zu~zK+]6Y*G^֮_ ;CܙcNL;n;INN_4DWyJAK8[r$Ϫͧ8Hwrf #ɩin?X:,#6H̦j,\9vwv&=FMً辳IK%H7eOt+uRGFG>N\9aK4WB$%S=bdH3EExDdXh2Jve MZfs)tI">w$JA JI882uջa_,qYqMI9vהy&XdtWӼ[QGծ9Zy-DdafMCxh-s^]AMu,Q$eΨ9jHS" 'I6ވgՍo_;^Cx6%3d;DĈ\OB0**դ*P =Fj/ۈeqtQ^iH^Z5OLSeIJ&GI;{ĩ2=}qsr/G| +(@$p D!$T ͤF$av6d- 'n"g8idѱR8sOI(sN"*j[uĢ_SџFDGyO]H#QLՋJ49YfUX%yìd ؍}).oǭҪ<$YY]wgrE*z.g IDc'+Qz5c," ^>,uc,w)@t=MuW/wg$Q^;4I(>-5q *M,gGVOze.mАgJA hZlGb6n_򳩓 2Lj?GyH$=l ``Rf'oY<6'1T@`1z  +`HA (  +@$(*Tp .$B "$,.XH Ѐ` 0 `` a&`h BBH+ Ue#f4$qXkVy7az#LSh,D! ~~ ̜tbd Ǩuj @04Г@2Qf_AU[ky~> JXHԡ0 +:CCb?Lfv{q(3C.@r(O CVƌ +2\b}-Q2wy6,#/Oxle%CyxH\]X[CCޭp"FY( [آ4 AP(  +EBqT ++LQ*ÃÃ`s(rq248 `hC* AဧdhpfARԫz^u.3~~6f"{g% C֚yCrkY7;UɌĿfrf:456ObF1y{=CbX(\" H\(Eq䑢'Vm7nzTǍ ̨99:#Vͮ_}2ðݔn ޲&@@048(eh(0pP, hZ T:D%XC=DAXFeevvvKXBa [؃A̶}F;Р0ztuvv;_Bq{8, t@> N҉LC*!!r>>'DD"0=tXP.pX,>ԃB! SH@xX804@$   t=''# ]EJ" iP,14*Qp@Lx`h|D]A}65A!Y2D g+$  +n" |f*) cb14(Nq/~L` ZC14$ +$S9U:34$CCȁP$ O<[%(AMLghxX\q|Nsȇ\"2t:-+()@:`FC =ޝ]onaӶ=!ah6{ȪZċ-(C=؃a +Aa8HC$   1CC-NYCeh J\Y4*?"q6ՙ04gP&!0KXڙͬ6Q(E9+ eUE5A JPL FE!.MbjN!a0|rpn<04A 8 3*``A(Tq +$`(8 A `&DH`B4@„ +Ѐ  +&DL \ + <0*lA$t0a!$t D`B +P8Ð0a.DaB.P P0Hh".@,T AB  Ha,D&D ,T@ l P0*Ȁ(0(\@``,T04TlA  !&DA>! +.P`!*<tp!20PA.PPx` 8@fx@"\aă[fLB $X@) , $X@ D`A 0`@Ap .LHL(i}#ӤH9PΕcIl ߃v5. (@!x0at A$<@! +(H ,"B4y 8 2\ &D\ "L1XЀF.HP &t  \x*<`\ Bh\z`,  KFaD@Ji븀X,T@ +_6U9eF)  +F^M}8a l@CA)e ;Mslcq#ʌf@ + 3&3~2< ̖WuiI<8L$3Yˢ9qL&P0<=hW2g0e(@ A,|ʴ.H +~t+1РIFd47أ{.Lp_es~I/JvE##A Zezy؄"`@Guk~΃L\dC([;8 P AB$ +f\ 8Ȁ "L B4PDxP ,D< :px@U@ ,T0A+ 1C" Lp"0aB (D$P 8PaBD`!(DР + &`h0pA05ʵ`,C$`@ +LPYqAH!U(" qA *H@ "$x`2`\a ` +(h +*@L0CC4.PA"XA* 1 #F P`.p + .@`A1 c, +$,@0A xpB "@ $@1P +lP"^KžUl1K4L(˫8%Ob:M2uiXU*r}t%C-VL}tiZz֠PISfbfWd|f#qe*rU Sj@'IIŲL4Q(#F;)^oexr4I=R fA;&/)KeRXHҴIeJF8"P|Q^eKlaǺ.ooI-Y˚fzZi>S4\{k[Zx>&RcDK)7(M?N7F/b{=)){3+vID,B+E&-)אы&:^aDbM-S,VtX1{|*f&DgG1ZQ7G4C:ZcV*!6s3d%G;ޞe2:Q$Yy![PݩKv[&Qh>rVM[ ,~ǹ Z'V?S&I4tݪJ)~/~$DGknX/vG?)>ڽyHͳ:#&tE5Ԋ'EʴBqQ6ot-=fx!Iz~񖲏s%hpT3Om̍(i(](0 +Hh85X,3ʺ&eyFfX_Em3:.f)"],NTsҢ*j^h. Du6u L7wr]$=RRa&5 q4bH<]ZYftVQ %boE9Kx5dYY\"8SyF%amfc\Yq[Fj߭c"ީI]2͓4Gr:{VP7a)#wYצ4g3+9o毴Ć^ ufQmW+S(cШvPQ;&C;,y8fАogqfd*,Ckʵ8(X#"ɕ(mWdjXtL2\UTIJ*ۇs'¶;YitκH;,U$F5ʦoF_pjc"zu~zK+]6Y*G^֮_ ;CܙcNL;n;INN_4DWyJAK8[r$Ϫͧ8Hwr63hIE5nY"B..Eu714n"܉rrE93]\JOX>ɫiq֦bΠCϙޚkݽ͎Փl%sm&^Ŋvr>E$5syatM<ONMCv^w4a,DAe6U۠e*ͱ41"l^DMZX*A){KLGĺtz :1LDIwSrԋCK'cuiȮgu՚xz%d*VJeG̴NOULՉ6 pR~חӨϺ{>+uRGFG>N\9aK4WB$%S=bdH3EExDdXh2Jve MZfs)tI">w$JA JI882uջa_,qYqMI9vהy&XdtWӼ[QGծ9Zy-DdafMCxh-s^]AMu,Q$eΨ9jHS" 'I6ވgՍo_;^Cx6%3d;DĈ\OB0**դ*P =Fj/ۈe2Ju+}ʟ:%4:CVAKLjҸ]VNg"LYv~LrfίF̧5֒yteݨi9|{eA[ڕO9&˔-,u9[yt߱uU+GJ-$yKEƲh>ObN񎮰# dmiCsY##$AiI)kNIͷGn:|i?g.>){V',%,L:pBTscc~kJ|Yd;Ȕ>^G娨FjW%Q\~Z^*;ШobτIJݘ(Pxh/ tӆLǑZ"lJ46ɡAXSgyt; :WiAe3{fwYg{lNÎ7S:0i2W$s*1i(' ե#(:N"O\XDxʉ XBK -S?Z_.wGwwso*֬e~R&螤C3{=[}MhhamF̑Cg'bYt)[UJmY6'vl+X5ˁԣ٭g1vMe Yt;ž,QӵNԼzÈtV$LOgvfuΤ<$Lg3͹nb=w6Jt=\U3{yH\ ^ɤ8x5LB[U^7V#/4|1yΧl*/Dy!O*[-[IuD9]v S%a# В79W4iͤh7gSʱ:D)Jtv8ڥW63&:"2zHNfCd5jY&y吭hUD8vZ38V5+Ne"jfӪdu;&YfȈf%0f:VG+ۺٳZR&/CRxP"yfRvH/[8uPlSLlh#\ֽ8K z]ϙ)5j9a<3fXeX3IN[:ǑяIB2&ƴ7{U=!5GN !Ѳ|$Kʳ;"Jm&/QLss"ZKCIl fe#gF%~dZQ"mcEl92*C]Ʋ:c~9G(wF%ioL>D(cBw%|t6'A90omVssBd~M]XrRl_4Vf5y9|zX2&WչKUvInӯ|UDYDzwu7)aX3]Czr|&AkQ 3#ٜfd[dyNVy'}D;1z;_KqfpEbƙj77D)|&s޴u)(A}$ӏU1){'-b-mX'MZMcm\BJ/mdEDe7w#$:9ɚeM!н,kIɻeh3V-؋$cxIFg8c/#Ó$x2̻M:ʢ愆 6 $d՝.ǃU3Y6*[|4$ٱtӱl8F;Rֽ^H9F"c=MMtLWՕ*VUYk,IL v&lnZlsfhTМ Hvtj6Gvn ] ]v=`NjnG)H%r4 Z6)]dLwtSJ/ ҙTYn&2]MlE9] -4%[WRcFxj_kTUzZ4hdNj`%Uej.+$bk; -apudPr$h'<]0(cڸտJw5E˺::Ϩi#>yhI4htt_M2/$)ztxOB{mNb7n~4 -.ژ(fÜ%;hb6ܹzwg%J g6jӢih92{Io|ؗ4}uu"n^٩o}Yl}q$ݬ%ZƗՎJ|hޘLjs莿/_izt3fzTG~oa捳rf -Ye.oyIOWiOv.]g4+B6)W$Ḗa}t7Z4} ;}y#]b4uuϥ{Yp׋ըzoR#v̚JKdUPwU)ݥ6sVcN[Yid) ;vhR񠣜zzP GЈwb8eB7Mugv;)VaLթMVYtGKZ몕ާ#uS!ݬJnYusDKޛۤ8shTw\=TWXs` TѲL^^"ј Mz6j -;6U{Pa* ޸եᨧtPꃃI4BC,|l6=vC eIf*a˺{V#I8ɲ;2,V|ېdˇc1ɦFI,%gu^Ցo Z.BɹYwyVo Og&4ҙ-4q _fwkZ{]ao-=;$#Gac>w/սԵFRMK>,銂eR9(/?'XUw`I*G֘"V(cB=kZr,rb'I\1ye/j3rj9ɻG61{yBL#y{s|i* (<< \@L$<ؠ8 a - <ߋ$*(Q&p < "0 -",D/#Ɍ*+UU9VR5eQ~+: -/GQQ#< *J$3ǒ$ɡXǒֶStoo5w3;al26VAoY+r6U蓘sfsӏft$JY\Vsha#gtԴl CDyawx$V:+tY o &RI&)T2gC9DCbb~Xeb7%v7b'v95bGWXM9%r84F_S6 8=|yƄcD˹:ՙzwTkTojWԦ\V|ָ# kFy!mM!˚ټ*롋Jjyu kI3t;tTGx/j K“MzUtWTm3zZ"&i۫[DVumIZSxCjלi4}jvX~ZԭNg'z.~t[XY#CRYYwYqjɟǾ_?3{|mZ5[6fs$g>3#b;kxIN}ohhv8/S|T8x[&wwU]X{ROd5ke44Z^UUVPQPQ%IX -ɔ#3UbPjb RV|ZT(C(3 -)2Fi(IFjdΈF912"SIwAZ!\.#)V Ɍ8Kl|endޒ\ɑ,REw%Wt=rj('9O9TY[%Y7!bfYf9qM2kL+m]C ɿ+22bS {\Y9G$Pnrte3NdLzrC\sDIϤrΓz-9 ' >4.,cS99μlcN3nѠzfk, Gcsj$Cb8CGR)xygG)vgab&F URx'gL&\)WNSVX9H-)#)J!~.dv'bHNX%仼/9J9¢(3m3<7lT|ҩ'e6H9=nƜ&ﲎ}iy4MO2S;J{ڌ4+(2IH|!\h::-DGs&%ҹn$VTi×lˢSu_L<̬l'Y4<)- n,dG<$Ou)W4ͰzurdmXsm(*znj^NSk -?)u}өGˤ>SR豭j2fh+C69 -.Wҹ"3Я=+Efi%"-Ff^9%M6_w7|#&}؛:DVhwu~䩺oMX7╍vjDua#fœX%;T&J}j|r%ꂥ:SDh#L"J?ujLfAMk.L2Ni1<qSI$II*$QOYI2,dY] -!z*3Y*㈰Ѕ9eRPgΈs'42BX0;*iծEThGxg";!eFU+ꬪf0\:;|MG^gjn5ua2}#5|VØ9/U)>~G>]wRg.G~gܝQ:M{Mqsާey̢XbqZDL.<ۏ] i|Ϧϗ4f%B++TSه ᆱԬuS|LS\mZZ<^IđOfJ)ҘGydkིtbܓ0"Jؘk}UC;yg滋+;sFq t3KdMd_fftjU2L*;4dβN,vU1-UYzUt'uttI氺OC2Tdh379eV#̰l+0͜szoR,+l^YeDWYAL:B7Pn4Dz9~t9LU:W$]-,4 hUǡ:q^J]} uQYkG)7;U]U嘕s,l&F1nͫZ gd>,S&*Z[ߠˢ]5x|H9iQuZUh49nzsV34DBK)L8V&6*~kW3g~WqgsgE$>gZoIRn -߹ڰd١[?mݐ=S2!4+CVgc&"ʤRpH2PA*H@"" (HpamԔ37ر8Erђsf\n袲"2_WvQV^6+w> -9t7M)dMv$if(BHs`@<Ɍ|Ŝ@F@ʼnc"`޶ 貅 hѠ̷J4b9l1p+O<.{ %Lc8Bx7b&Z72h9 ВĿ\[b]ĕ Xl[>bFA&Qūey\ -HHXȏy;6cj 8RrM剳ܫli~2xE$|ȈRqrh'C^^XY<.΀{”yL.X=B5Vb+nr^yaSuO,}{ (}-Zs6VpJ[yosʟ(,ڥWjV&Na ykFh\b"㘲ܿP玱Qh6nS&%cKTK N3U'qRXA5>,w\㿨h(],0 y &IS#@NC!p^qH8CeLhyyID-LM9v ՈlDn㖠,i")N`p D)䬤U>c, H#L:E !s'?YGԣCO ]#/N-vWSQoNV/sWoW5}>ƶG2z&J~E6E,,a]Sdu2_p!?9PkoCғ7^viO>DA+"e)M֠6B^fw&4R HɆS<vxvA" GFw;SMFtȔ~jǂ{ /6J]1w:͔ۂQK584&Xη>[ǖE7p8F]U/Gg~}D`y Wì0ޕT̙K,7 VX x#9 kי -:4kކ4/u]{͙vl4#,C $>yZh(M3l=9/D):V]gv`Cd*I{( g4/Sc̈́`8[h@۽.E:4-G C^.>Ќ[D;4OD;G0 4:1PudOz,&xk4>iS|J?/OV¨`7a1`|xp´iR3Ćuw9 w -vF?k= &>ޅӔ=V:GK䅸nuKn -,c֒) -Yzp@?%joeқBa_i(˩1I]Hdc:Ót(DR3pxŔ#5W?n?gC)sԶ~N_ @%1)kKjYhPÐ΍j6}I컒z1/IZwA(aHWiDaȇ@q -gGGQC4 ۽ai:5*1X'QV8ߌ;)ƉCHQ;/ӗ.  *,%^/0%x -QtV:ʜzlL f?W(ؾ5t !S -j `q(hF#t=rA 5FZ2?7Ð5=(tK~%4짍aP"ШCIP^ʹFf#47GӈzOiԼG{aƋg"A*;[-OilX4B=In"ٍ$tڤqoL}l -(䊣 RtT*g꥝/;_.i(]Q0Ȯ}bKab޲lGM׶7&Bq4 -Tx[IvjfOC[Eă-Lr7O@T#oh$nƖaXd7ǗȣE'!|* -v\ g ﹖;ɻ lG:߽aI򾿀#ј5!Y 1^F/I[`j .R8 -B=!2%Xz.PmD f£4 ;*<lfJ$j+` -8B6))2FY۱ڌ߶D1r,~[s{8Is O/(HG.ެC6ǁFJi];dTƗ -k$5^<53D/J SO߶TJ$A~GTl4m;\n1']uo}az S2ԙ/)sdV7p xB@6om w86,STNkiIN,S훦ƿۊAyUu x -=9+^˧$V3_ܘ; -x>O9Jk)4J<)rYT@Oy*kzD2 A~8"oh4K:#_HM;14Z>8!7]b[QPTNv42ZEIDh)2Ԯ`<`\ 2 kxh /tq[80VM4̳ۊ(]`ul;9h)(&]ɋbɆF߭pn)\Z'z}Ut d9'Ε_kx֜"CJZQ-ؖYo}+/f[wE=Xۀ8A~%l@\ԷaBꛫgBy 7|OKwZ9Gݷ -l~(VͿi7-H.<5fԔUH - O <w.I3g.^^u,og`l:? ǫפ𵈌n dI1;+\ŢЦYkp0VRcW13k>]#nr4zAF12߳m&Nϼ/?XͿH-M8K)'t$uv1A[)`9w; BC14V|6Gݸ7}$g$9kƭ/9D]/[ܫ jxc}R }#C_#Iѷ=nH(e 'YX8{Kc1u^oq\&s~LuU*[vL]U(߬ؐe̱r?j^.sٯͥwv3e Y6+/\@#5zHm}v}-zS\؛>'f/yԙZd Wsm/=oO;o+ݟ_|vOiS9N1}O ˃OeY0[^$0^|ⷯc) OtbVRSAɗj %wo(IJO"Wx>25kGT~,qd֏hW2 7]lh|Ji}(;!yD? AU.e:+懦 -fŸ+@Go%)r5GuRw9{XC,sIe=e8 rlBZd7g/#B -nB_GB7ڇ_ֱUFP-q6Oޙӆ~5CC˩Xh?JxEN -$QOdH5N-gޢҕs_F Y7@xƴ`Wh:]hD(  %F8 -@s2@_kd %\}z/kA0 \7^" @/ !( -haZ?Q1mA)bLL=La a1іj+u s/YLh 0g\lWx7OK9F%p&𻷎)и {ʤ:al+ph D*sڊ:-1='ye g@\hh;U(1'vupAi>[+TB+FZĆOg;ԡdN;^3 ə8̆np&x&eoNdNM1NĕGřll ")K;{EWAU1MGbv}W%ZSe]8afmH''a@ U)S3ˇ\ESxx7|Θ'; -H^'\=Yj aJݖf\*B!#-q0O[o{u= -oŌo&QۖUa?ך q=OAec=cd]7Be0fƭ/P%HR>U/`GsL.+lj-mr}^d!\$c_+&ģ%ZMe(N.YO:𮻗 :m$S -)fkTQ;kL:Ć!N3|_=*7'ar`Q_WpC-Do:TvSwRdwH,5챎ǻE 2'W>ԌB*C_Ќ];x֐/7 A7 cyS6ski}" 3?tE!ש?"cQ=V #u2L2v㢌GQ𴸀t¤ Kڪ՚eV%QWW` L:\tP ~4*aٿ{R .9=rf0/rY?~_akb%3/ @v bSj?KoY0".no["1 -s.m'~D;KK4_ͬdCFم ^l]e/ح4ɂ2@ 3׉N 2btJ<# jWFgZP `ϭHr6EP+g_'?^YDZrW ˨'kփ"("{C)OL(s@FoԼ<+Gz->uFkSȏOoAsXGbj"Ƽ4hDiI^jRth+J ԧ!꧌=#ê?WIU\.~kV"0F,Xׄ:t (e:3iGI1ڋLIrdqޠb7/̇;(Sl!ܲJۿOe*9 #IB]];'1FISB"m V%OOΝp]M!ؔP0:~hLڐo]q'h,VMׂ7kWa=)"R|3VP3mj#xH1a^C-B1sUE#s e ,Gߍ='a*8)&o!äfUXlfn /1)yX5jd`@; Q$t^jYe6(>XVw!>?W8EƄk/xŽ\J)pՖmPVs@a7XM#T\1e^%a=gq -]J-4J+{9/[jjь./]3{Ũ -a|XXO) O'ߚ⢫v<ī 2%1vm m,~8bdzK$F)L7U ZjqgSzڹ?E,^(1?tko^)x0N5M|.<ŚKrup8r(8R`wKARg(&OQ$.ApPofٗT&T]Hz!1Djh~aߝP*|W-0WbBb$/73~ٱHtpNT\^J>¤F"vu橀輛}.<1m(*VK>MQ>(s-zi̎xgGSd$pH"]&QEX}2-5aQDn?$ay)`k8E.hF{yhkoԛ4yx=[?fd!n 8wwa1gU8ʣ #2I/{qImAh4x3q#VzN(*}d`(d,3D&>[טo ΃Z%0ZcAZB+vCSҴoxf`dZ vl,cT&c`Y }hټ࿫q3 ͣihJ}%5 nuwV<CƎ -B9()Y_ njzcKs3-s˴P8  P+}\f* -ӉD*جe`U?QAʏ_ s= <'ZZN%# ve<2Y|<Am䏏6py2vCa]jSx9?Z{أTGduߓNP  -ߓ цX{U͌ttPN$N& ܳn੽Bɑj@֬]B^0_ K ./~"f 1,=6v^k\9 1Jh́AjBv?µ[\<MжJS1.u|="NR&jP'_MDfҁĂώ2H셠Mn['?)Lٵԟ">_ ,@&z/rE.\9ш&`Uɕ,I6Y*{k:Kg]ݡ-䒞!Nr9O0C6rב2'xaL{#1owRnF;d1ie0 eL,; -BP s;% iDŽTC^;ۤJFJ L[;M˨BϷ"fz/?pw1Ѽ^pEM NOVlyҁ-BMii,K* laUӻl'}4OvGr NX)puM~ZT33,n~Q;¸M7ag".PyN_=%? LAwhUXAkSJ]g*/bQ,qf볛ױcHtS;\zKV͍ ?2 nl[Uc!c|n_0 ̵vN3%oN 1Jb1DHh[ pKC -AFȾĆ+bCzm5%z`jZb(2 -rG2X*UN6(9r9Όi4ew[3BhG6Sv1AgT^&8v \J>FD BrXfZVȄM$RJ\TFS!㚛/.IgJ>QI?c`H9$ r bx)#3-WGI)]Z{.RPI }ouh-*G8 TpV;aJ\ÇQ -RGlM$ʝuG>5jƚh̭ 6_ts<^zr^{>jٳ@la_ۉR9UQ]z#Ő[PpE[ɔGl ).gsй -$b Aw5F fD;h ?Y2 - QO+D|v32Rs |q*p^JJX.jGk2Et<*<7g,0u|Q(^r[?g)O/آ=%ddޏd4#?jg*6o(MyKKBXd-òR0l QP)i8davPwf+PDPYaQ{y %yE߫, ᒼD*6q2~|!2;(/#\#Te(@+>SM,o{e@ Cmj;.H7vy %B <_z*XL~RYm3hiZ GFARz3s8jxݚrKdf2ltƥ̥.1 Iޒ'<\YH.n. -u5ZoΙhQ)7g -2t`+,220٦HF>zgX^ɦ>n3J؜O:Q2[*U[>XjIMϳ7˰@ -ɹX@f7ّ,#s*.9kDOo mx'=v -]quU&8Dup@ c @Cť8`A2RRYtx&nHS)Gl|Jç.&$dL+"[۴9B1:W{ö[t&$"G N9!: nI<S S44?rZl `G /21-,H*WZ sT 21ZR:$/<γJP2%e5ζJ:D9G߯ϛ7vmF ~fO>[y VcCPQ{(!ɭaNi&r,q^rɫZP"D~|"q"|hO0zN@"F즼sRz)ISuL?cD[Mk-2ąvkG -B,-p4/Ƕj4.oZǀe, uKd=k!@\4s4K5ʉ+* -nɋ8!xkx6OjAM: -km -Gn,yUKgNh{ۅ:s6bJ.n7Q)]1z 0'Pg@V[ekB,`?Zqz(U/F% -Q2z} FvۆDBT~ -Xå]A&~i2] ڎwp,&j~ɚ"TݩqȂR3?* }Sb~e.~Xg3?5Lڐ]j<&S)*Hk䓽}Gp$n1PDlvg^ ҙY2'* _gz^-F4#LcKcNm(XC*g“f@`-IA25kY a?U`"=>++ J0mTHD6є*-J/wXRWv|oHtEAx[K''|&vwQ%7`xj!JDKgO/CB^t us:"p̒gI ̪' &SNĴj97 i9s5@˃"7~XOKl7V)ņˡjaOk! -.( -~nF P5,*)AvfO;KUΨx¸VKq͒b2Xa!64pE D,X=Bׁ ܄ _8k*ḴtДx`$5ԀWZ>uV'FIH9U.Btu*~5kb叡d:"I:y SK\v_G ab AG7}MiY I_$xΘbr%iU 4BcB[9;9t9G(B%uLôx8j f6Yy텗9CFb̑2VeXXUD-YN||СfPo.@ I2$(*AFSt m*$=? - apq2F w -d:`Pa$AJH}п'=D[ Yp ~=xlln LҿN,Zy8- /&gWE)b;9u }Nx}wbZG -Npȴ߲ ` rvlƏ2$bNÚ}BTh?kV&`_ɬ+D$ Ȧ& #T9>:](E]2fkGݑg-ֆAF)1woBAfmGԪ.Dxb={ -ɶ]466];w1W 08*!\CCts|+:/,AS;cqqAfVHB9GX"Q$׬U L`[,G#AQ9p E |Ag8 |waH0/<t%i {\p!> ;4e>en.@/̶ y<utMZq} B k.^%~/P{йBv/ -̈thQl3z<7 oyMf}0FΐP9tbQwyJ9HR)M m@ѫK#d:UV66 -wY<&@B237Qc:Za {x 8|97?ٶ9f!4&Rghʉm}xlO6LI3uMd;ޫ]NI:PECL_3F4鏉n N1)>]:8F7_!u q0'(n3;M Pg -M7=U:1%·RG>N@&1V&C *Gs*༃H[J l0L;V2TX@N\&I6)pdؽEQ~ -lI")Xu)"ƍ+g-bW8|% -ɻ^eᬥL\yd,aTS)Qp ]EpuO;.[)<T5א'ilDiڌSKJ!NOlRe.<Ӎ$zGͶIVՆ.9:V f1eY4V|(_djND=NJckU#e}B@?,ڋ$^ԥˢ_>\*"8՝m0;IdiOe0Z0O3y]b|?Pǜq"2X$ P<]UF$6ΐ21nChf3l2g\mhyNXR MNKub W×!t5әf[^1/ -6t$ -:/ _,G+fakKS0FG6Z̪X5z SYkڙ Y9xv7W95LW99j}aNNQZRf$|Ŏڽvj. qʀtU\UD:q5B˴A{#HH}oi$So U)!av,ԭHT J30ԭ.RAw[^jؒ뉆qDx S>wh=( -0Ƹ8Rni%At{HjvP%L],(,5oήVuGm=EQNt>tø{niR|M)tIVy ⫏8FT+t^7eAQ3 -TeҹN5l? ) $.Ndd*[Dmk -ZLu`xs{j񊳿x%D6=:3F~ t \G5A"mn=r?[mYIP>.'%u{h!!ڔ~g)^U'~&\+kAv7Zdy?%O݂vO:1ˬ% tE d`-G|AߟC޵l&=,7}MN/~762@} %#!A4CSEf74M-5cdSe+Ն{%$PPR;j0_Ȳx#NS2Irܸ+'~jqG d!.mi5ꕇw.zuRcC6Wdc -_&P*IUoAȑ,wK>m#'ڽy0N k ,?P2T〱,uM - G{PF,U z8w5.cy4PI̢E7|$d -#.üHUFd{2So<[в $7_[$J4{,'/{tr{"CNe󩤛sGrm}tB5M }RV%dZ)Kªb^ɽ5%*%d%T₳ EemL6z3@FPé!cat%6%ӏ;u)bx%*RRT.u*=/Njʦ&6w`EG˝G5bm]F94d21_H#idsYK)擒 -įy1" NvI,/8"4Q;Q2]ޅfd]C8JxEu:eBM@ƹ%|as~S!pp"Iz }bԚ( t!2Z Q0CըÝfd\uml",Uu!)OSUnB= -X0٫߰-; %mdOHbQzB, | }x:cL 5kIalvهÎ 2[qœ]SH/18B-DD-ѡQP ߬ ,lc U* 步VQx )C͊Q$(]  -*\?q9AP׽wz-|[Hf uq? Bc!yGE>C2$9QJ6<55dt8UGFK[LF̃yU`%w Or%q2 -"5yȚoVT q(P1o#Nyd2.#"76})pXTD:/ߌ}3RooН~*t;lM4n/ MX4ls~YN d4]Ȼ@M(t{5^2և6</6r!/RXjtKc'%-FJs+Z D#.nªE`= rt&0\Ǡ+x! /A[S"EJ5-`T,`.{? LN6Ƀ6X ǙdPiK?$\ -9Hu@m|KU|浸b jBrlU^L^N3!TZ5u gqD*qeOVX$_IZXSԋtez<]Ƀ"̨tm&p<BߴQcөGRNڢjWzO99 Oܑ X;g: nj 豖*XZ}04rߊDp Zs|,.7C []1TxT=`$J,˞A+Iv3CىG uig. -(̂tF275M/)@JBWKe- 4\#Q7E-qz}#y#3& uV/$nwm-В\`Z%#hNbO֘lΛ[|G)9JE̟zW/S&ȁklҲPÞ'{2Ԏ?ş sD'II٢C _IB6CmsR ^;sHΓc(>ZgpL=ZA1.%S'b8f`3A!% |Q?PAt?NQtɫYVxg)‚X#4}C~Gޑ]IhU< Ը{Vi;c ּ8 zo/$\:Bҩ48SPT$Q>=)L85})C智N,z)Og# Y*s<2)]'JAl&(zeDTP*]ۆU(T!Q^h^Ad|R|'(f;9:xhGT,L^ OeHdN.p1/;Ll *~Q9[m#fS^IG*3I=IR4d?`n+ %[{Hx -=}gUXns`h-h+~'hjsɈY93 ` 5*󖓰:c 4IVI g9dJ -2cYiG}d'`u ysͺW/g 2R20،!G .K@b{tv!jAQt_@޶8V!yܶ_ȷ982pE-&#1Ec¡HÐC'WWWq4hJ8J -q+a8 "ɾj ci>a)J{a0>Y`1~8H$`V~DW/!]E4NJ+/)ҡ1/@{\+{c\ ۬D&r:I-,zq:Z2~kekMb=ROxBvb5̥H"6WU: q,QD֘"x 飉tc(F31(GH֟w>9$1twz"Kׄ -h#NtJ bmuen`yt71#AC&a49t Ѯ y2l<9 `T-ROmP6e(,O(8"8 :ae7]ӌE]+Vǯw7zi}EO紭E,dKPDfY0h X!N k&QE`1:Ilr[\Hr&a!8aPmX -T 9?5+WKʹ#,8R]+DSƂa:UI;!G däF VyX1NxGK^!5.t@R{VRZX#y"mfWNw8/Hҥl: "z -2‘[KYxM͆V#DdV-x^Py%Cq"lrUy诸e1LNj8SݰPV_~V^Q02>%OmsLCl4o+8 [*II=/p2qMiF} qOQ|x :[eq7r[V?E>R -Tn{,G6'B$̵wB%kr+C]]FV⡲/Vʋ0Wkn4U+9&F'7G-CG̭?'2BS՗EHxx pb -O8&r2]m&[]dMs5RX,D/'>'!gRPgH-ݟwa{2[5w jOF{VzWKh -/Q$N|:OIyNt;κ'WWy1$Vg>*W3DPxj - 63 g7p[Z:-*yޤhZ H $7FH;$ \%%iU8Nd^-u-m8-m1aL2ňcS_p`(Fo$ Z2c\ Ԯ+u4tZ—L6(CNM/aR$˜ [+Q - -f&:wY0ulӕ=6CN^2JIl.t%/}AHUەPs)x?mh[bUӢ+?Qua?iW=^yO)#T&q-ߜDovjgl=hy}ʻ9,䋒 4+_|B^Z gɌpQ_~W`9 ɷ!r%SpǏg}1fVza[CS[O2ZЧ^tv; gv-[-SrdމUOId̪] -ܛK4 -"G@:tBpc.y>l -< -$B/YEfxEee3Ez':>FqJ{&X& ~cZ:]@^`O3ȃTtOP䧈RAO>ASFmyMUnY<U#qH9IHc3hS۟C^ I9&B Qݠ mo*vƻJDRC֓z5IzS!ȧK0wa|H0m}RzX([L~o[h؁JN+d1-0f&A kJ_Zu%ډ$'0>)q2RE-6-Xpk6o`A}PǿԞ*slaIKz#[j*_lEO- Ih"(jkxё~?^56;c! ^5U; -+<$Po,_Wktxչ>ECq<F/y6Jvi}Dqؽk&:ŗ|/ 5NSWdi͆Q\3xtg[IeK>bhwz|^!nA8eH%J{NpٻL,m1o+{5gq߯~e'+GW3Ly!C "3ܝ_gl7J$\=PJc 9-T;8P>27dflq11]|YܔT;^((av |5'+ -ruXTX`p4QsqT>#^0+ (jrF>1@q7ǑsAy| S5D} -;fHXe8s(`l,+ҤW A(+6ԍ/^- qJf=DݚycTZ4O-q3ߡp~-j?OK -@{/|[ܚVEL|:uFI -{*E1XzcW u&zDkǦvQgg msB X-AxXi @| N>"Mv+J\wUϗ\`p܉d<GoQLZ]Ɏ#R+:7BceJ-[N|iE_\Ɋ]"ʢImB^%.L"d1S?hZS?M^|]yB?o0_ D,7m3Qqn^Y߹91k{~z?&5 -tr "wy'Y½-w3x8͓]8N ''@h9͎h(Whڑ2sVY5u![Q̭QG O/y)y PI/fA1> A98 -W3%6؏ȊBhpn-^̰XX3K^h&2;D#a:wG?M?>ES -•hKѶm۶mt?NK?_;>;z;lOޛ؇,'6GE {O-NB{I3skLxn$RλjgnwL|U_;1nίq;)_'=ONUO}vuwZ/kkߓ^z{v;/tjrJmw;͘W[SDSQkr'G8iOuo<{n{ͳoLgrXcqk]9ͽr⤭w+s]S\XۭN{펝齘~w:Mggn+nwǵOy>O1ݵnf]_3j-#aqҎӎO~1zG4kHj;;s{fm'E|תjrK7T[8"zqMԄD\y|c#vjWnwh|{zNs{t[mwP{ki4yoM/Ҍwji7mr~koŸ|o91l{VۋnmR{1nj]ޙWb}SRyZ3JX[kWLR+v+VcuWkﮖWީݴJsW{8sZ;5fqͽ^yZ\wݔ߬oǔZmSoz_^uƗrjwմW[quk-W|9syngm{֭yӊ5vk͹˩v٭ƽs5bKyUo~XW\Z\q{󫻶+bN-nw6Ju뽵8[i+5ZWWsri՛w֮siWZmۋs:WJjm_ָjkRz]WiŷVZy֛Zswkwj͵|ol-\gݕlknnnV-V\'Wc]jkvm7}ڙ/ּf\LvcmK{ݹv[9j;f3ޙ߉-glޫw|kvl1^͵Z~k9k--4c1ۚ٫ŸMy|j{Vuiuj+ڌ_{goR{q{=jksj;;Ns\5گ4nW^V+Wnr^qL/wMWmy7];ƹW^s[}[-ͺji\νk+i[묷U]kskִRUcoʳ͘q~u7i|_ͫTomMݶ̱ޚqWlffq՝7ߩnUgbnsjZc{Fw֋ݙzyuZwr5Vog:_yxq\Wj{_+|W{)ߛcLĽrӌ{+Wl-]q~i9_n}jU)rZ1ouzuVc8^ޭvsNWo~5jw|1͖g\-1ksַrM7z{ߛڭunJ+]c)XWsګ5~npj9omiV3[Z>9ƔLΕ1ݕsj9y_Mqx׍Zwbo7/֝ju:߾ZnWiy˯޾5=J'5ߺj~uoj+NmŜoힴZ5߾մRj7WKyb֛k>oN3{kۜ8z֎kUתksڮ5׺);Wwz5v\s}ss{ƵsOoֵc]mXWUmT׎Xk޵fLW^57Ruwl8vWs߻کwc|57֙K[{xNƷrqjnW{)f}ic1XziV)VNŕj3͖ls:;Vs|uK|^jw3)Rksm\oޜZ\4w\m׭sZwǽZ^sZ_^mf;׻nZ3Ž\{Z{vʻyk/ϵֻW[sn=9U[mioy5cK5ޭuzj:oyZ_iߖ>PܕB"A:V5]@tVdZGuqZgm"ilX>2o34p5!)5RCF%a=fVdϙҶ~<2BOCGPJqLjY}ڬȢ0bIهaecXq4YֆG|gQ}|d,iKG|cã>E6/Cڗe#EYg,J\؆4Y Nu!;GQ}3M%*Oyn[Ho#+c8H+ihi+ Ou yʦՑ1,j z"}ԮA?nWH-I*oUsfƆ5܆28 -I7 ]%_e%h=BrZ% e}rl9)[%"Q$#wƤ#›.#$ -;";WT36U -a J4_S%Di*hJ iJ"@&(uʠCyТ8DAhJ:iM.R 8J&x &D &h-wآ)HXU84TaAd?L*t!M4TK@D@dF#0h-k3QHcp f 2lЁ  :AM,6RLFjc65Ct]? z"_DA -}qg b- cXi.qZ>iq"fJ=jWP7+#mxus2Tr[gMe}K[JpE҅_ZwȪF)Ip|p*OyI|Ny$Iy";҅! &g叛!c?jZ^QxbeOָcu Ii)hcu$hED2IDr_CtbC9!gjI$|iK0ؖdPiˆvUpI:^TU%E+~af?f!&J9@mW֑1hNk\啝hCs_~ŞY GFY4UDP 5Dy_P?q5m+HY~(er[DְI:cNhIؐFoeD4T_T9 ALq7VUyhW214$fUE6YH6ZL VfIO$"ie`#K,$$֓jm8[H~MTqXM*݀!ܮ<J 5Mr*x*̾a -Sfuٔ "wȦOU$mHܕ*ʜ/'#&U<@jY檈'M4+_@Y"-`BV6l$D0a&}"4?f&( #;8A`qLJk]1DlPxEHS$4"Q$HCD(aD -a#O\H6`ǃ"ḱヅD+HLr$+jt r[Y59O}Qvgnlv9VW˧bk/Rͭݽ_g޳g\oV[m;[iזw[i0G͹~;{v̧ȭ1|Z-cjқ{^z1OL+^s}jz/c]鞽qޤ~IٹT'%=5қ^z7N+j>{'n:yywl'߽k޺swqߑ3\Νqz[whKoYuSMuֻGrJ1yٳyߊgg;ﭳ:oμ<|g8Odisf]s}L35힛O4wL+כ{lS|To|{oƺo)]cM3x罳8cw7c͘9f=/ζ޻׻mqzɭuۊ):W{n'ŚӼ-|n;)ޔb'vg<{b=w֓]_:՗kմ\^];Nʷ3tflﶜ_'io^'=kV[/rnyݑ5{9S[kln{vkVnyƓ3߶s|7߻Rm[>wf:I[kzo~m{7Zn'Ti6έxrZrgvK'Śo]<ŗswRj3IyN$շZk/ڽ9NYw'O|k95gVn{s>qt繭wm/$Nf/8|=^wvmy֭-YzG{/Kw+Nz\ξ{ߋ8jm;_~Ns ޗ)L)c5+mYOvyVϋ/ϋO\flΌifLbyq{k1zo<7;ky_5ts|'Vwlq4[w'Um|Os|Kk֍.:S^:~NMsϸrhnofDm;htfݳ3;ZOZcz5ZWj><5j=OtZv[dy$LqxO3u'ѩکw{꽻{o9Ɠ/|;v>;ߙo|MyozyޓoL37SNޓֹNi[Jvn餵g'qY/rc1V';[+NK/rҋ;>[9Vqw{k5jszwj٫[wX{|okc~ܻg͗{:9ou>Y6'vl+X5ˁԣ٭,)5v!˦yM3bvș?ͿѲGߝM޹'}6ƳwL}Y6)4kmy/H~B+F+괝IyI4q6gsg:s zlz.鹪f>ǥhK6I!q*50koFb_fi*+XcOY5VE'T^B4FU,[bs8 t9wKJ(3$fGt%Nor64\ixBI+InΦcuU4S6Y#e쬥qK海lgLtDd66̆j`ղL![)ѪpD71fvqjg'VbE6.UIyd1f_cǰW11J/_35+ .IMMO1B^ˤD(EcEHZLaʌVF!eQl5:m,YiјhҠ}vL̐&oKatZ$_k%5WRyuKMgӵFM_8χeD, <Α^qT AظG;ѹ{q$3SjrhðyfL˪gv#uz#σ35?W9eMi'ozB6jlBeHF;vu-ɺQݝc +ˬx5Va}Jx%Bs 2)^][}PƄJ)2mNFY7sta>*2*5Yayr(Lz]\iZeX?#jbs.$$zYeL2]D5bUs:$MRdIS\_/enR +¢+fG4MVAv3ɎnNfN7K!3e&٠Wˆf7Ku񯬈>%u+ǘBC<ZWx!;9x6c{L+òO貦S_h%jsemYE?ާШ}lfJ8gRU07:d2иc^lƹ|0OstvE(' ˈzu_fz7[FC39kw*g_Ns:?wh_/og9ߡ9}qN2wj>M[R4wO2X#»7Ғ,;iu Ѥ54֦%!iaDF\dITvcx':BYޔH2q ˊ~]6cuiزHΌO:dhx322ˆshT#e녔c$2DtZ]YXbUՑEFRԞ ag榫F;aFYڜdGf#xdW;Qe3ڬ. vvti}P.Gpe"ەLt̯J04 "IjI!+CVShULLP5nz(%KN8fF8%NF%_U~N#F$ VRUL*vJ ^7aN +%JF aҎ  .h1KmJ|ve]JZgԴI<$sf4I:&IXG=:'= Q6'WV7?GmLahFk41=;U3mk3izt4$g7XriIWQl:]q7LTطk8UnfjC%qGi4\~oL&Z9td4=~VMuzbw3=}[#?0Y932M7BG鼤+ﴧuCGg.XU3LMMg!Ԕ+Yp\K0>T~Mʾ<ڮT1ֺRF ͽ,8jKjpY\;[fMN%a[ڪd⻪H9+v1,4ѝNgi;4)xQN==(|h;12 &Suۺ3wSn&&,%uJ]đAސnV%9%\mR94;q]R*ǫn{90gI*K hY_jFPF//h?&x=I5QAVͪ=xoRopWFV[(A$!lfbh*u##GaK! k b9ծr8v+WW%)T\oԞOzӪ $q<9OaMI8:W<۫Dg85Qir ֙wjdȻBf/;wEf72}`*jm{ʒ̐U4uKF'qvewe.Y!ɗ&cMeYJ9뼪#~2]sG%H9x׫)4jSIf>l O46;ZG!UC~3~f>KxL(3v&EWɴtLjO<)bJN$~p&}WXB=itI1,'.̄W:5 nMK}c+͘%ugdD>z콾n圷VHitiU>ևe?]QL*n,IS~\êE}L(XgMKnE"b\2B]L0'I\1ye/J2cFYN869yƴ:f/Ohis$ooO1M^p +`BsA4³J.]+CC62Se$j1::1gɘU̍[+9_䊮'USRd?T#SSUdmd݄ +&=f1O5خm3sĶv MҚ&dS&fdRM5h_seB9qѕUJ̤6v;32) ݫs͝J%=Smg:O5.</Hs\ЏMPl89N ;,v2YGS9$UΩ ͊ IrI\^o])G|{93r,4WI2r\);NA[a#*eRٝ6Fk#9aINF ~R(rT(>Έ7xG.޼2RI3 a6[X2lchsRп::=9 ;7=1CˬoO(i382$!fsD/͙H_C[Q _/OM~V+33Y3kpdhx,4b[ĻYyJG<ե\l7ÎiTɑctuƫy97O*K/O!O~e/LJǶɘ%Uo|(̻\Iʎd̜C.KSpU{4})𽿎bow.YM7~gt=>6a݈W6ة9G8^y sƫb,CWS(-.˕« ^J"LU0p(Q>.ԕdyTxO;YcCUs3DB5x=}eR4i5GdX RRJa9XwFU|u׳e)oJScgVY>3FY՝n;Yަ Svu$-Dˑzե2GnU[^QΔ^Ek{wݫ?+ݦ᳆,3IjY7AL2;ZqoRW"zy3EQ&{NmcUd9f1ɹQy̱{󪨇V43锉|#7hW -tNCiVCU*'zs9\L ,r)gJ$N笕̙ߕnYQpx~>Ix::.[hl9w6*wvhw2VOh7dϔ srh9͒ZY(J"ɔB  \  :H88P02 … `TPt SSܴcɝFKR ΙcBDrʊ|"_i*tD 5jalpQkXy4j$!c="|3.ush5ZGҍFPM_,@B''R_KҾBSŖ N* BYL (\5s"W5 ~PLペWG~< (5VPFAZ +j<Cà [t,A!c?mFoFIJd@0u(pk5j6m|F8핟~hԃ~Ff]<n>iԭ oQW#5T`UMSK03GWx F\z\KV-յe^~5m+?]TC6 m-=jLޚ%s}6;a*Z먡\z?w2ݻ_SL{j 6^\&blگil!}{l7QIfYI5IO&Uu/c~;!fg]hǡ%omWzT9'/,yi%OKIjPw;";g;$4In"،=Now\BW!Ý)5quD{_E$* +lF880 R@=rm3BTV-!Z΁\&C0h^U o</ݑ0ֆc{{{wMx#ednwGfm.`Q $ +8 OJ+45X3);VSJ$yFήQk>/'6 WEhPtުVz9F@9pnV?6^GFx9}yd#ˁ7|QPsHxFdVFLH@S؍rGx9Lx +)W?H/ZH9R~fKVc_cA Me#}%e +\ᴞFX%e}wWDMѴ((߆Й)| + |;KUύyLgH@ GJn"D&% w9rç:X]02%n] +CĿDVmEXv(b(ϡ}ZEߜѺ`)@ǿhW27++]^81|]5;ay:7l ?5(_o@Etx\Zxu(MeTMƛ ? +j +}9vL^=I7"Њē8+pF\KqT>xU},jP)jZ벖LI+Rŵ90eQ [kCi?x 8W8+Q|Xwqr#|1jnɭLoܰ:4VHpqf廈7WϧvΜڗ[p17b>1ޒ fnG=o UstU#Q7n̓7ïx^j+AzR;D>7B&o:lq9h4JCtZ~!#lWW#mG^6ҫ=JI3 %҃٣6_׃5Hd*9\c]^EXy > WDvzqSo͘YEq襰`ԆI;5[rHn!? %`3 Dl=ٸĮ;5j[${潩n?p?ڶ# +hgk;ssf*ۥⶇCRlf%:w8+ƛ\dw ͷ߰Љuڝ{uz禽Hd=O4wMZ]DtbF,a8~鴬<|un4RT&F|v.(j^<^ _hOw\ xhSAyN<^N 9<4_$;fB\>@Hٞ)2ʼ4 +^El`@bSUl} 8V}mrq%}f8]zEc7}qADZ:z(֗f_ެWJA{8Lb=7IW5pӭER2[$LfT6{`1*ˡ ay۪,~E"_݋uT|!ReXlE>>>h>2-!X~͑E5II*G9C_`pMBw1niWƞcH@ifuU@I˼/2?#J9Rr^vw7Ws L1c9HU_e~;:~IRxΟ=u]7l޳!0 B.H?@ $_~pB"+?(r6\)rB5#Q +ݩ +?EF iv]W8˴LF׍Hby{=V'* hi饤%)%ƀV3~c= E4k8p~XWy4\~|L06{G DuY&6'NI&,c +n^5. xgurx +[!xLb`4d ﬑ ,mGJxKk . on0H*ort<{g 45GcUo][k)3^TV{BǬ axIepD?äCKZ;PǺ]d"1ÊĈ uѼYD{a#Q$+>yVqD;tҮ LD&Q# _Gz{OL@#P1Y4 mpz\.##2⮀Q-AN`ATxLvŵpi3|Cd6<)2 +5@J`wȤi5 6G9׸]6Ҷ݌&}1Z)ufcy 1&ڠ!YF< +}OϜWcҨ-@n$/Q&`0̠<Y3$S<• 7{!qPp#lx.=4A2 _6*d`ew\!libكzVVŧdz'@>>z[GM`dd߁y¥`' ӑrsT?P-q9LE g<;!d%ɪ84> YX@U akC0O{Im.+b(Ӧfr`B<e4Bw +^~`JvGHcA|k4m+Zqm2uzf|5B?)GyQy6 wu3N >c_/2h,l%ixPU@((ܴ1bx8#34Pb1ŖR.Y'c$ t}IZ"ʴ,(!k,6F +EXF[f}Qզw +C뙁!0X E ֟0Vk]`Wtڇt9t/̡O CJ ҍ5lGx⏤s+rS㽊dbq +m:vBi͞m8 +}u1!tqD +N#/'r@=RIOR%s4TrkD]1-:! lw|a.,:p{ q`eToEwH͚6 +cJ$[֒W8O i.PjT" nN||X'@OfJF>YmP#owBH3n4dp%=f1%n^@> ;Ɠ h}MG)L%wA#= >T@:7YO[3K`u » ,쵦E!%J蜶=TW|2T?I'JE/9d_ i!SMH!p[_אFf8~?%p> ^yfVG3˾v Y^JL/ 6mUېkE{^(X!N$~wzs4oݏzl[ NFj׉aZD2[e(C&dX]w;, +lOutM hFkM &.gY8Tq ݓ)UIp$@"W͢U +ob+ѤX8InHݰN2֮{"]uqf6X3 ]B"sm=#ڥX9k,f5@ofK j!̷R;ތKNe\xOٖdԬ *ULʅ.U2\T%%S!hRy#q%1u!\W'Ɩo/TЯyjMAW|5̄9?G+ ym]_*G9nwj"-,jopz-zcdئ.թӘo;cX+:M4T`7iU,~F0&UL0:Բ65W4u¡,s軕sI#l#=Ť V*L:K,zvCb Ve xX_W YUM%bHSů{%fUj⃥kujK>)~G|Ut@LXrBV;ɥx0 Wiq۞1mdEfHy#4M8}!JF5SZ V3~6#/ =կ룴vo5F-O>5A8_lКB:w)E "ti^\t#bCR!Qv`@,EC,Ti8줥Q:9p6",́+I&%4zi]g\!I!b(s="~X(9yE|nZ+^d(x24ō +.(yRėJ@pD*8Ryn9wˇTά9;NQ{I#ZX(`޺r/]:L`Y tc&bM}wBxગ|F>E&B]ֶ7bͣ#J7FA[r ):Ϟ1%0gI/,TD/1*.TB'`[YȰjO P_Bk/2Irn 4Y`@7fs +PżTkb/1cY;:QϹL3 չSsĐ?PL+oTlK m[1śgM- tp0~2!͊*2BP*qOn9!{$kgwM{O\-rD7eSk%G+LWM6 ӫf"[yuKޅE(m뎰Iz!eU')RvŤō$$9Cm􅐝ReB!uD`Zl\SŹ4;/7mɲ4TtJt$MzŚ {a "3+i59JnH7eSD]='XjbXnߖ+#UWք-EY!axh2vVFt%lqP@eZOANިN(ҙ^jlaTV"BCDVR?1Q-sY۾FOȂ~sDiѵD ȴ +nrPBB%bPLYٝv鍰'rBr+ +#ޗޮ8KA/$IH,9WQ3v"fpUÄ7',Ud +P+<Aث}^{mFbLc>#[w5{m)1h={>0;V[(vFԆoiC=־Q+#*N7:ԀCuNdI )Զ,36HZ"k[E+&G̗&˗ʙsMe09(c;پ00 LiӮskCL p t4lAk+Hߓ\gJhI(8f}M\01;.rHBߥkFljj76j1*1^oJrZnvWm7%0fhŠ +vʮzܳw:{:3@@V-,Gm:((֮0k03>uubs*2QX/rȯ(SV$kc7V Q4Sm!fIoQ3?H3[ :ͰICbJg|l2˾ WȆէ%`AZEQd0Mem$X\ޞ6(Mݳ9m i mJS;nFEcB)So0,8k*>TUfu g8?#>=T!KARb֑qIbkR]T$S!T4] gJuSHF6çsp7S._Z~M^etSzWHo(G/ +Z*,9q\? qꋭ'ˣPN[JH;[y'|n(85SKA'vHp(=.y|T`gV.}mU;8eg2+FZ>CCARuק$rϠs;H*[2" I; yĀ ~ Fʜ:g=XXf-BJM{& թ=z,)zbkW+ kib1.)7w =c=ؤ?8=Nҏӧ\l5~ ~x`^DKP$,V;o]4{\/VY0*0mG˿`lzWRP.B3}ys.߃LW8m|BeVu%ŖJ>M D4D!w.4\+u)veO\@=Һ`AkVx/cFRC.hȨ?HaP)Bl-1DLÔ=լiW+j^eA,5RC ޱ@\ 'b/EX39je9%]GC >%Qۑ pd,u;.@l(-:e5pVbJg+3J5xК@ɚҘ> +^1 핛ñg~V6LLF$ `w_\ꢾ [ywjRr7T'DD|3#Pa2[-1ateWfvDJF(zog.j)4Nr6i`) +ԯu2jv41ŚRiD3nd7[h X 9 ++d + u/$CcL2;mU rirm +~ +;f=vyc#HH8;bm9 adPZ,YvWmL +gT"gV>I||[PeXp1N fV|E<(slZM Ugxǫ`_*u +ց"FYBeFkPHmI}"P݃&e3$ϦH߼ 0i#r|a\gGm|x]G8ٓxLEwF,:tnW$4Ly +%(V$H jYV JqePI5 gi@6%ylA)&*-Vlc[!o0lmך +<=Dv +_1 !neb{kӫR~-:Pk 1wN3D:&꧋N[V6LoИvj<7HV\7 bF Yl% [Y9p@sw-qZ+8bVƏ{PtCEAa [1 :*>O1M6m({kjцxEW;Sψ8*4H9J#o7kK#LI͟b!|+7_ ۠^n2X-M!wN'[TOt;D86@,$7Zk%}h= '`L4nkbќ۟`Ωt-i'.UkQp,b,㴑!ƔxsϘ,ȩr ܾJB_-v|&`;ZBef,uLdՙ+ь `srx=818l:DyGvyz2\E~xu_ׄlm=^BT(O Ԋz~E-WOi,vW^`k46Qe>v} 0 pM.x8t;b1^ snzӕ kkFWB ,qONCƔa~Y~e%1>̜ G|L 1BrKhs"NJEQcUrw'B&x @JnΒ;|u&̵l">l0e\jG2nT> m 0ssg DM!_O:\-0YYIIJmD ǦH$aMªҢ֋Zw`#01c0Hie2'?;=|EHI'ҁ*7ݎ$$UfU6l;ERQXhPZ-(;9N'Xt-󷒿FoM|> 2K'=}_+P6p?֚{fC7rkBA*FiZ>َL +16kS}UVyKk݌ kuǏ,Ȓc5_8;'؃ 3DXC "HoP;)__O+im@4>l!aD=ތ+J[z1~BdNǂ84[3s䄨ާ b[<*6Գ$YZF1)`uON>jYEBPhV&%.&97ip1$oR3b8e+8hc) '[9Z}H<;B/ tdx2KM(I~FRȧVbTL0*DR⫑` i.&ZlJ癤{)oN6`Mh}uԸ1`" @ltFoI(;M69:FK_`D1ApL= +|!F([0{>vgt.PĎB(0iG B +q"1=kO/F{ȮW MƪqREGk?wuԒab(: ԭPC̚ -x +-\ĵ'1]atZ"!+ \oDW6j2M \ hP6Dʾrxۭ+c+#-͠!ZG:q׉{t`tWl*whvtl(Eb:&Tt5"]ހQj)ZANǪ7g[Vc"&=# Gf>EGvC4kƻv:i?D y@5؅d2{s&PT5,3еk"naw䬖KQ}Ji +R2F׻7HuZjUeX^fhdۤDuy׼]?VU0}D-(!Z ma *X+A<. VY"oMd;th/#D=X5PaPkN*kGG@b b|7yO5C^C|P٨PRkyaJ҅sqMwh}*bf,ʽ]LZx@Ӯ^.򸬍l'MK(W4)KIQ3P-2)̟"KUE1V_1nVR)2h2N9#B+LEI LYHq> +>,{ f́?CKW3Q.{ASG̒u'2>W[gb^(x*Lo $2i,f +?t,1ޠėiNԢ_<3xrQJaP3 A:幙baEN kuZf{jӝ=^[׀ Ta3@OuSL*PwCRE%S;gqۨpi:gTaߍ<dj"D.#@F9e~!@H 429O](vzO|MBgDe +/Ōye ILWX\U+ʂڲC!JX%5P٧:}B"JZݬ@䢤2K5>ڇ~\m}W m<[n=6uэԱ4r[]gQ+ʥJ՜):] +ö-K`, +1¢H:p!=uºLJ)2`BjwC +# /HŹɷ9'fa,F0cpBۜ:f$I. )nTH%4\!eأD]>75g03ߙYxMX0K{FN8:9@2{rrZ,g N9>&5竮(s9ը 󣃃NNWZYR:$yrY]gxT/ (pNUE~NT]ġbMzs\BDNAS) \̖O}[2hXHCmqp*ހ]G%UPKj-3-$Ht:C-ٽ w-ɥ+BW|S7"[̜tԩ~la̙r/!$Llle[HOy IRnL]/tαV4jtJڨ׏EJ `JM\ltU~t"MmP` +{3>[4$%|$3JR}=DsC4*MRT )*=T"oO̵FJ ++kAjX w} y%ORֿ~YB 4[8QDL`97?Ǡ~#=#<'> ۵m%[2Ky$Y1o&ϕ +CC N7#a3 WwM մ#!!4Sf\hM_bĥ:–厀3Vb{%$ P&S{i0RTxHgɤS\'~kqR^: !VO:($N Qh,ld.Y˗v[RJ +ʥ^ępD?8=d4. /7nlS* +KKP +0>gEt>T4^[̟k[@`PZ_ن$֋)So Av8&( +'SvA!v@YK@Q9F5&NriJ3i>bB~^i*W5`bwcU9:d`-wkL؄;OJEQrGްTNda"7^K2KX"e0F7!ǭ)4A( +L@*e6iCU@A)Chx}Ѥ:1 V;Ԇr@blцzֶ꩐i +)ZOq@ͤ\sE;:i3m àf 0^ڃXz O5>\!U/_"b/(z8 /5ؾ}e 4] +F^ۍϒ":5Fr)׍=hviY"LzJld-?dQ:K[ ԔGp[l',5U,cYw`a?8Y(, wx*RTmlHcNLC +%VI +A0ڭA%Vf Lc9y>t8%%T]krtN,:;$K)>rRQp)|5#9#/+,G}N8De8c '>hMRͮ*Q\`$Hk`fuNjh88^Ϡ/ %&''RBStN$eAvF(3ߨ VnWPKO,UM[rC߷"dRH =#t}g\kPIْD-c.SQ3TUR>mF yixh.m +Q;xM N%Bh?,ACv W]?KM*8[$Ԁ-MuHE6Ĥy)E TM~6|zYHvK4"hE+i Vu*t8Ն?SE=JV2lD_T_Tzy=E`XcC,v5l$AZcЀL-)_۷0HJn17 JBiͿ+mp-%Eh.OGr ȏңc5s6,qΨ(l >ԗ/ޓIT^uJ`1ܲ:63(R2p˪F Gm.L(t#HeeL$nziic/o)' C?zW|ƀ%+O@ZJ3;{b +++[o,lD )V0TaC,"TWxSP9IU^Q`R4"Ŀfoe5|ac{(TebqSGQX^<"ĴjAӭ^efC޿pOX%ykVUT9~KWGRؤ⻧ +WQ1rg*'CpjlփS8hgj\RrΌ6 UɤJd(h"KOС$smPT.r|M, ((?}Ւ Eѓuihۼ$yUQW4~jst8n9j3]^vvXu=Ts $ī.%%+{* c3KI=s,d_dS0 %Hv%$ё +w82"N%!J[ +VdC,xEx(rFe szԵk`9<|T5'!9u@I֛\As}dcG![}lOyoЁ y+_N:bFebC*8*Zs`S2V2b{t=B8Q+Z#pCƠkYբ7=O=^Q[7A9ޙ6ðh6KU)]kst&ԬUZ3g8Η3-+8si,#0f6|:LJ28?EHrW8Kq4HKK +q{+a8 &ɾko cia)J$b0>`1~8H$o`~D/ ]E4NJ+``RCc+/8}< bc 󬗐 H%0Z?SiiOG+Rʜm pS%^x'}_؈AV{T]y1Bd}|%$_Uf- R1XUGke-V O P!.$}yckiBh+F> 0e:DWh*<@jZ:'lh6,(]v|@IҜ\vz+AaDCo@HPjjc]j桿qe;?Lu=By||6#)? Fӫ̺cc10ü-F`%^ +T3euRK3q~GSi֎N46?SeP)DW/DO"5Ħ 3G"E&dE'N 7wd.d(P xfh$U=G\or[YRxC_A'Fw-BbSn;F)-nᓽQMJHt@}Od"n ^/ݙyً>mqLCL4o88ׯ[pxIɤ ߖ14wwӳ㉊M8§(2텡7;0-_'u@r)A0JEj)=#Kw +y1sݼhh) +RWȼw1goExc+EQ?=ZmΉyoQVa#ALGpL-jeU$<3n96,Y9r}"fvX$⚲{ e33)3"P=_$EQ:5p;-ӣ={Ν&om'Rn`mUzlUDn)mG_KLKSb~/vk㚌9FQ+\ʆE|`_\cg!T&.I_(MA'?Ӡ a:fyE+(L* I*gB&,zƻՕ:Btfrϔԓ'$.<4gB`fzIK_'y9Rx(w%r/v .,U Ztz缂b@Rzn5z%30y#ñGkcUh&GI%=1'Q}M¨`z3FwVN $pKFH'T/_Ѽ넥g4=NST]vD]<͋˜lKwOD#bq+WӁ 4 Y+ +X#9\C*%h~Ͱx_hscU 0's Bh(®Z1ֹUt*ZUdu5}SسGO$QHʙѰUy{ӦGjZEyܫo >x +c* ✚ꞶF"/iB|Z@u۹Q`8{50o_Y>,NNzOɛV+it#h\z& XdTD3@1jRg6)M #@RzUdW$TV&?]xķ3̽^SwOpS@IvL˧) ZjJeAGk5~HFu{ZS|dFhȖL-NSΝ!O6śW%4&F\j;,>; +{_[ :_~})n[W;54a=pQ'G|..|+ CƇ 'yp+{ Hnu:j`ڋ&u}PP_NMo ĭGO7:a5[8Or|2''Iosq 7fƣ{lݽ pKY!6kݯX, ϊNClD!#sSjc}&4;Cu +/]p@L9 <}7^][fCNj[^A#5:Q"[ݐwCJ&KA4"{=e5BK>M'l0$6b85ۺl-'o»NS +OzEQ +&=A_P3=_Ҷ {/&BmF4-Ty ԁ;Uo3ٱBWY05)M(ګAy ԅILMZkIb]1/Wϴ7_6o! aug_>@L^;E  _.oioeI҄@o#L"wdQz7΃zI%P\f#bE?\t̜+UawxVm}~`f]Ũ*q׆xP%p:RPbB*d89;0ub+#Pz$tQQR6Br(,Uܣܹ M?xX<=͟m)h+b"?W3?'Wq*/{=*٬;JR S jOAX DLH@ǏLFfyL ry1cHKPĝF2(!ن.NSY ZQm7VI*`>_aKgW +UQW$;]]c>ƃ2_C3gGCtǥC8jtۥ xGl7!ה 0Ŧve!gƛ+BBGQЉn7VW7o\'բjtn+<𥦝Q7xĠNikK +0v#Zvk &+W/i2_|H#9g+.M ptD~L8n.To\ovrqG7c0(`Y3kz&:IS|QaxxbɾčekHo$yECI3b8~\%#MGff=jAcS5ѕňJvy؏LHkwGֈZf%Z+BzO +r({Ys{ykFKQKj<.Tz8#ɠ4%+r)N +  +m+F{Óu˄Wg7#W$YH\X|֣F6~?J4.ES +•hKѶm۶mt?NK?_;>;z;lOޛ؇,'6GE}yjJ4[f֘ܚIw:<ϭ֛۹vbܳݜ_v)R8O{v[|sk^3\mvN{r˱Ͷ\k\~L[36R\ջR>Zog{/Z-\Sw1gmlbg>okͺ^uߴ:qW{my/37s|[wֽ~Ƶ9֝skwmWcsRk7Wo+fmW+VwZ9i׻[۫ڛ+^Nھ-͖fk_\u]L5uŕJ4u5W95^{kZ)17~wfŸqy4Z^Ug7ζsLnkXZo͸W+VN3Z3θqx^mqު3}L19kk5b1νZ#vkR~u<׺y;w]ŚW73k/ZwΙfqߔslVʹu7oN-Z;6ֹK-׻^-t당Wzy/6w^3^wpyfj7v^wvZj]wM-=Su5͗Zwۋolڪ47<ךkֺ^=y[WżZ/omZ}qtۧ⮷^MzZlmݸZ[K+i{g6~S;+\~5s|i^q٭ݛ׭+չz_Z5ϗ7׮-ʻ絖^ݫUg~qR6s+=z'_K3/kko{ڻ/xs1}k'ιvm-V>滷;5[]unk7ߺoV[wm7Ɣn۽+Yu+7ߋַs5:Sk՝s]k7g\yW־-un\V-tcsxߪqδ[syo{yuښ|\)=ckxݘ^ySj+\iֺY߾R+νҌ/:_{յw8wVc)4qϷWMgsU+f]sx[s{wZqtWzou|^\[~b>9b5Ɣu\oYw7Vsպj}oj7sN5[u9Okj-[^εv:뭗ӭ\^u5r/wƜZ\5ΛsS[ol8߬{nm:gZWJm鶶׻̽jVmƴk붝ws5_wvIy:[ʳXk+Օ>jޜOyՙrgߵ޻w^kޝ_ڱ[oΔn3[Zi4g+8j7u޻物ŚN{:߾9޽ozo){jj7n7ֹj{[-ns[^-ɫ՗k^-{g⻳^+tjźZ{5=g'gz55gqƓZK|k/Z{cwju}9V7ʹ[qj9{V+ָk/s[mu}cwպc){^Z3Ͻqtr^Ol^i\[>/i[LWl3k\qxk5xҍ;ϓnZ]99"[ys̽>wNv9gyg~ym3}|꽹{[kuw^}s9lsfRuRj'wR-cKgOwr}g'׫Νs[m't1לܸ;̙ۙ]g3#~mOl;tjy[שmSn/߹uc^'wwgl̘+7[ݯ7LYcWo|j1xlq3VOvc;n6߫3xR/œL+=;ƽ1={MK:bQXԈDEy1(̊gPs XFKXSEDSsžFD &F%/'(l1y+_t6%$HTk{ҬH"NI;aUvS}e@oYН"ڬMW5PaTI[j!elHcp3~ +n7b9"{ЮQ|ҘϬD]@A}*kD2(!sP%Cc\a+~(h"VY@lZxR ipq5*a*<%^eQޗ?1J4,'QAnY?Kbw\Er@WҸWxrV6qŭ|!EEYYK[Y#K'e"sĚH! Zgq;eQVWʘVy}1QG u ְ~֓*Oq,-;bRL!HA6A@qW ~[سv5Y=jUOOi)kjZM} 9QI C"}@35X3DHExud!c8^Md qiamoF*Y!fF`MQ&H2>:1a+ȼTӈ{̦Dx^lH i=hT_HY=gVNXJ)| +=ߢA1+yҪƝ2gJi"¼%e?#ۏagdYFY2- Uؼ -k_emxKܟV3+ipagd.";?DJ+߃F}ΰ7rkXī4 +iDt^C6yĪʝ)lo㋜Gd"oo(켆:_Q%T)D5,*yҠ~MqT*65HEQ/""AD2^4WFgJ%xD-ZnjbUi{sΞ&(23N ͖ Wq"?A!! #3Rd&kTU +e!  & >dJ #@2ia?fB(!4]7[GƠ9q3oWv}{f +'d^cfET BC5s$}Cy[ĝ%+#adQ- OmqX4ߓ&U9y%aCYzҦ͖S $ j|Ql2XVq#"^ U3Ed!h16XM›'a\?"!Af,o8[Oi:"l!5QE#?hbI4qDtDq˩,JU3FJSІ)>O;dS^'L!?iW%! sW3+sWDe"ž4HO|emė Y +ڰ]VcFUeq 8*p r3!c1 o̐(p! A2>L0 # 1Sċ0$i8$(2"@FuH"AE"a$NӈDF" iEHg)RHڷG3۝zfډ/Z]-ZޣWUW{4_K5v~yϞqZmoݧSL\[mwny5;S1"ƴi9jKou{n̻>1|bzq齚^ޯێu{^gǽ{ړ'u\gRRJogz:yު}n{ޱ|q{;u-}Gμs;w;}=bqgN|})[t=misܳw1n\o9oLSvn̷{5뾵v51ށN17cxӛ8x^zc]'m+\1)kNx)wR\xS))bs]c|jͯ[O/:w}V_Uns{u8)~kәr~ZjuZ{-Z[mo˹uG֔^Nk/ǓSNm=vһquۭݻsZO'||J6[l-3[{ޙ'ql;xk;[{Smڌ;ir)f-kuv]kҋ_ΩuvJʹZ'VK;TjOk8 g1Z<1v\לi{f[-Vcko{}Zş=ӝv=O8i[n{ŷmY^gb;[/=:8)/s;{}/NڪR|;;WoΝ_.D{_'VN3Riּ3߫+ygR/:g9락+ճ~gY֔;|=}OͭflVv\OZbben.y$MCFC(8EXQ f`_.-`BV_Q )j>-2"d }ئ%dKH}jKDr_C-#Ӓ Ւ XsEDI #$iDyLJ>lF{a>qU#0r( "mHRE ,kC`J<1T0ğ5 yʦG f0*Xچn[Ϋ4+l!m@;'>< PatAŬ$+ O9<sPot1}::0(o6. sƘ/kY9cJےjW>.˫`BVpV`BVu}9! &g匿2RWĶ5*Q})J#%bÞ3+Rg,z*x}NEI4+DUPW0!+W<)(}KJMʣ'g !QrBdH1*";! +p%'cC-&_SEDA2\ yҠ>A2*0A> -'[HA1+ ae#:dPHI׿8!|qQ6^H6[F9aO h̫x"{ܬę%QG,jr"u¢?`YQĖ?Z<%:PA@:1fII.$9(WX 2:"C0aix kPj| @,'!~1$iJ I,)`'D'_B$)ix6_0BXe qJ@ F l bf`-J;"+GW~.@_ey%D]=F8E1HKd!GXBa/"PĖOrb%|e B8OUf"Av$@ -9] >T!K *y=Ơ7QEB"e\!. ACzСBB/Cpl6M`R@ . (RP%(F,P,b -xaN `~%|N!^ c&E@ 0!( <HPҠY(J/xAR,a`,"ETvy$Cd>AP"?߁XD "94F 0%3` ;H8~Vbr1?bRaD1H 8Ad_.pBGG%R!$@?`" Z$|pI!$ /$'R@Hr9&O#˚!!* c qO~ B`,%HH%pO8 zb<Ae@)C|oaL’`(K  29_;,e)/ȫ QNK1 ! JE> 4D8`Cp (B1-B h$kۘsX"C+KOĤ>7@$1t_ߠGRo5w~DLg 1mڀ'vp?'9 -B.0b(%] )1eL6(#p HD -~~C_ٯaܘZ 4 0cQ@0$#^P-AO (fPaXYK)5,!̕7Xl##2Sքx26YFKJ{=qP gWU01#U@)#Q$6A4SCfJ`͖` -'b>ΐ7FU7[LNU J`M(!.1.A{"o۠H>\n'#W- +>(c pT- OiD Klq LR>U)4E#+k|PU'F%]d -IȎ/ M_ x9鏭`}>a -u ۸ qGzNUؼ ,o:R\C!A YcHBCGxr7^CL -y~FŒRQןb<Dy xJQ8፼+A -2j |MAZ4Y+eTaK*' yx"Y<)2'i$^1 q,zҦ| n_F6_K[$1we.s/5CKY w%cQgGvՁkUgH͋,~%i~'hCMrxV@C(A -t~( ![j MY'B'y_.r0)ȼǰ6<i|y#t>rU"&`"/q6@_>X 0z#+iU~q#8 !=9+$csPWK[i[I#[)f'#)ࡏ'MA5  -yp1J LFN2G^ڰkBkȂLEBqœ?+=gV$֔8to|8JSD iZ)[$#QA)8aLMW!W7L$Ȳ6⾦a ySD~2r+╡Q[YX)! ֑ 0# 4 Ab6(BKp%1JY> -:jH -kYc -)_!( wb !VV "B J1bX[/D1ʟbb\a/le # @2[GT-ȍ>ck7'fPBfd+m)kJZ)5,+gyNCQ"WcѷVWR7dF`H%% -xKPf,A^Bf'XA"/Y?nW~lj9"U9/ҼaO,#CTyŏpT!edi2e2=<G -rd-,/]F$ܑ'Ȣ:]ؕ/JҵD0 p!x9o|ˠྀڴ ~i&d'`oEu6[L!#+#J>mXVP(oKL&F2$Ca 2~Ĕahty/'E0@A~3 |ЬR kt+ y#$xN!m5 +@_F mHJهe4(u0%xSD @EܡrQDYʞ$=}̕=/<ԧv6%ܕ4 ܲ#R}!ku֠7_N@2'OڕĀ,A E -<"0,g6"eas#CG^8H+J+%BGbˈV:&2Ӡd@*e:@Oe7[N]ק孴*ܕ0 oFR4E{^D^6E2@%_e Aia0Da "#2} -~ f*BK`!7HhL[I؍/q @( ,nk i7[LfiZ -PRКVnlIҌ*nTJ}m\8Lolw6TdB Pi n("ɨg "G%/` }$T"TJw_K;fQ?mT<c4WJ5$d&"U!Ͽ]J-CѺ4j!(?I3V{̪:_R?+jb2"@psNX*Qy-92zȈCa/m*eV g\Pߐk}+] 9>"bm3kOxNG~m>$ov[#${ȶSrB{p}{@ ǪW76nں=x,{{"?ntYrOu(lJ/?XܘQ^7YExLbףӇy>1/wC-џ^: ]wOF:?r)S4A?ED.g?ӗmLп'j^+Ao/;I Rs?>ً/>Yn{-\;4OQd\px?bnn(cqC `A=Eg Uz]qR}"IXЬs1xthS_U : 81YXP;Fz{r=f|އkSVfSg-?mqI5_m7"8ۺQ3 λIz.\Enᦷ硡Zw$u7$!__<5O:}w|^{#ۮܴ^[3{nmWW"*XN?ҍN~>ϒ/!iELcRe_O?AϷ:Y}Cn|!X%6WSM`zߛ}>sGg{/^lz~O}{rH릗_ٗ^ wưs~{ggUwOX롡zG݀~K$SqOv_V0Uv$}\fHM)=E) u͊@H }XӜ{a @7ȸ3 d`AZѿXK(ś1b7wUo4mN#lֳ^ +'[HA1+ ae#:dPHI׿8!|qQ6^H6[F9aO h̫x"{ܬę y Gr`~"I`-#xK`!u'(tb̒]<HDr`-P( +d(2u1Da>2,!%3"XNa[B bH XSNO$jIR 0qm,`@㔀  +AA! \ ![v,QEAV>$\< p` JH<{0q$&ac,̑!"6<s LF=%F5!BnYCT$!S +۟. 2XJ 2Jp +x7(R7 ߒ +…%)PxAhAdr J5vXR _5W A,#c@B4|  hp2xAPQcL[54HX1Da +VI-}n&Ib达Alq߀!9k%`!! "b>O"Nr\`Q(oKR58bXC["lHAPF&<& *i% _1$Ah@1 C!` xaH*1F[!)yj!@}+ y_Q! (f :T!J"B!, +I_6L6L]LA)~֐Glj7!`\ +#(J%!9@ \Dc"A(1@.Ei|?@a/4H +VK&Ab_H$/j;/;FG iW^~ϚYsdy$,jƗ"/ӆ*!P" "FExz0s#,j n?@o`*B "͆ +JX5DؓFE'R]HT@=2JS>?KOn9,q#i|5OE D*$1DKdG8">i zZo"a` +"nm? ȂÄ9O o᷆Ë%'cT̒qD5@^(ިq0I%y_ "6 Xȣqf[X"VCaAP7 MF P74Hp6@o y,o )h/}P"HðB 7R2kXB&+op3(G0&G|e2 adl< {tN2¯̫`Rc#%sGRFH2Emfi(P-!N}'!olAIo7`M2M!M%/$*#PB7]LcP]DހAOGFc˛4ZV +i}Q ༓Z>(@"-}RhdGV%PΫ#OiDK$?a=L ^7U 0r$[|$<ҕ5q/- /yX<0t)ܑ&B Ɛd `o* "54R,o%%_1jUGVȼ 0s#.@Agy@hya\=)9 xI


i:""YR2p"6p"6 2,3 K]a DF[|֪ZշBYK\7}OІ,"7QP.C&%U3 O8N6]`\Q+Sy}i%a mx"F-"}䪄ELD_m |aFWҪ1x7FpAB?zrVI0҆FS>OsGRCOA=kT$ʧc&d.seaא&bu<9W{άH)q"q ҔRIJG6,Rq˜F"B4)bo :2ILݟemx>jW(ļ2O6qxBhrъ"qH+#b a3DI&4A$Ɵ+DP yy!@-$JELD 1i;_LHKJ xBGz`sx" +u4b +/إ#p#/K#X]#ihi+Y6y])y v +y&x #`~BLahiF$.i`A *AKqqzR^X#(iƖ /s>DLehY,$3< [oaB)A;OÄly +M m> O8;" +@DL P7UEz_>?dE32}'}M!pe V+C1 +v?r&RC#AaF0h*,mP?8Kܧc5}tb%Րx^B`TI[RdlwU+0e~KzO90?CS jFJ\mV-:eN^ ](dXq8H+idy*ƀڲ<b/,ZFCF0fGBAB\Q/da u>Vx4Y-Q5UDDE~!ЇL x8g rdeLyė}ֲRCQ @B#>0@ D@7b-Œ/(,_5Qc?Ÿ_D:2ʈAFA(ae78 ;9Z;|B (0n-O̠*Q̠)$XW3S>R(nkXtV&^ɿE9on›hK J%lq$" X!Q8< NE^I"ܮsFE3r"_y}ÞAYF "3H Be ?dzx(ZX: ^ 8H#OEu`C!.+_kaJ{aC 6- +s0>A }ir[/MNqySnx+'S7am ے'j %'`’1$haX2(dwuĠO՝8@?œb.ܐEXcM yA޲^|m3O%CF 5VF|ڰ:PޖL;eH0e)فс %8_N &aH:y!EhaX2(mD6S7F02,q0W}>jWG-Kᅎ!Ėu M xex|5SDF"BX#'$1GP=5l5HTЖ J|ɯG=iV?.q*2 Ah8^M$Q6dlfkg  <UZ,lG6тX5;_S?SyʦbF",y1";}heAT +t""o!O#[iU+aPY\52PiH")" ,l!d<ؑ^ < oVf% +;52EEU܆10چ7 q 'l#! +>3APD QE$J_hYy}'HK4D@!C4S0`o%w-1HR ?2);k#kpG|g_?f8tĠ!.IJ(!"RMᐝi܈ isDCUeFB dB`уf>4J#$X-sȠ;jP"̏#cI2yФ|-ryjo5WE9\QcΗr*S()w¨NX胶EFp@ ,B -2Œ1 +@O`TD @%X]Bu[Gj#(i>Ɵi_c,$cNXOkDְjkSVUY Uܑ ї6YI$5BX26,@oW4ZK@G#L?R<AQEY3Բʞ4+Xcu$(T%sGd 40 bX49h2JAXX` C~PVmF]7^ǰϝ?|TzwHcbunCa/m*eV g\Pߐk}+] 9>"bm3kOxNG~m>$ov[#${ȶSrB{p}{@ ǪW76nں=x,{{"?ntYrOu(lJ/?XܘQ^7YExLbףӇy>1/wC-џ^: ]wOF:?r)S4A?ED.g?ӗmLп'j^+Ao/;I Rs?>ً/>Yn{-\;4OQd\px?bnn(cqC `A=Eg Uz]qR}"IXЬs1xthS_U : 81YXP;Fz{r=f|އkSVfSg-?mqI5_m7"8ۺQ3 λIz.\Enᦷ硡Zw$u7$!__<5O:}w|^{#ۮܴ^[3{nmWW"*XN?ҍN~>ϒ/!iELcRe_O?AϷ:Y}Cn|!X%6WSM`zߛ}>sGg{/^lz~O}{rH릗_ٗ^ wưs~{ggUwOX롡zG݀~K$SqOv_V0Uv$}\fHM)=E) u͊@H }XӜ{a @7ȸ3 d`q1ѿXK(ś1b7wUo4mN#lֳ^ DžmwQz }cuYfIʊ&A!,2NX8ٖ\-E ɧxN%7SI MwnZ[׶9%!ӦD|?vWF#gZ;Y Gt9j~D"#WqB:D64XG >Div|ٗM^EL`'w\˯r hxyUAbFn":(|J3tNpfob>c2 hm p) ('+ \g/%'{HKw$m#,3[\k"59q <\Dg#jĪ& cffQ_I*uɋgatlVb٧?>P hVxO [rA`!dDهUlU—#-g[4r(%s^}LDPCV1PDj*t[ڵzӍmƤ{YY`|zL@`}zLq0s`搨_)Q oLG=du*ݝnl;<M.l~:xYHt6I7E:F<.oo.$:p +!a \TUt E} 9 ZmI ,= =zBG.ƇB viwE~*legTttz?QPO"z|EF~r!AGըDɩN#\@@kmh*~4@S J"(.r0SmbK\ u3-|Hvbwjox(7B!"7sVO|$_ 9!oR<4\eT넁U {.)w/nQfжjУ"+koN8:h(&GN˰R b-٬()9YCXvZMOswʰ'O)a`]jpi X @jTjŖ -ήMb9mǺ`~lmi6#VkmѦ7-$q-2fp].E:Mԁ$Gk3ҩ`uwDu"/ X]NG00c3b7˵"d_>pLEإ\^sˊL#v.uMKj/DWa cASCd k#@T;5ELۀ(e_&U"3r3E^ta6z8v EzhI$؏8iB~RKTl9'z)zD`C%2nE*ǻuAԡҋKrw yǒi}rdgG;(>4Dž⺬, ? `4͐\³͊6{E UaH̫q7r^v8(sS>"V㑲0%aK Z .<_3~!޵vbb i_&{;0d.R^)j݀f:a6  -O$^|{Ёs v@@zm%)5tclƷxԘe@1G *"860_n^30|.4 qseFƗIa&Hr2]0x-p@-*O('"[qKoĥr atG)?<ŠQB3!sݼIEEܶM䘲y HtB>2W ;BSݛ+k mtظ-+̷kM wFh܆LӜ*3Gw&+;ښPPiCm=O~ 4^hY:/ v;I-TB P!NkX$ PsZaujVn@5DE ]܁ւ?y˾C`Q9V K5x䑕 ^$Y$6)p3p+;q #tqQ:xz',j~m5@>@ZtiKUPzCn2E}?It5]Dޥܭg,ſ~\Q! =Zs`q֞{QFʏ)[f݁s D WCޣ v1 G̴AlD5bb 5:m -[AM"+@3 cpb/l36ՉG2#{,R DEФ϶O9;=~!_NdIS'ؖ9Z|PGֺ"~@& m\=\ύBuO(-DRSlew}v⠎~_uƬ#D4 #.-5,&/wL.\qW)===JyŠ+?bj0=?a㓚Q{[4ځ"ؚؚd(>dhd /FGef0FWq)g &,goO?tpr O8wkᶧ3b7zULad řwG4Iȸ'Ef'kQ<=r``Mg=K]@,.RL=[KXޯR-]]xse]8}9֜ +[AM"+@3 cpb/l36ՉG2#{,R DEФ϶O9;=~!_NdIS'ؖ9Z|PGֺ"~@& m\=\ύBuO(-DRSlew}v⠎~_uƬ#D4 #.-5,&/wL.\qW)===JyŠ+?bj0=?a㓚Q{[4ځ"ؚؚd(>dhd /FGef0FWq)g &,goO?tpr O8wkᶧ3b7zULad řwG4Iȸ'Ef'kQ<=r``Mg=K]@,.RL=[KXޯR-]]xse]8}9 endstream endobj 12 0 obj <>stream -ީ 0Ge~PHFnvf/$_GۢjV_ V*18o4& /B6ҜQj!;Xh,e6#'֢G!7y3ON9 kxgϴFapE  w8\ik}J  S3$p0!Uq +ީ 0Ge~PHFnvf/$_GۢjV_ V*18o4& /B6ҜQj!;Xh,e6#'֢G!7y3ON9 kxgϴFapE  w8\ik}J  S3$p0!Uq nٕf9(^^UFv*vjw9zkt)n% 2?#~;D ~83`) L[ h/C2 Q[M/g.NͮfHqAԑo]} {j!/@m4}: J gA0XɫU#D x>h2~úK%H[P^,UhFte[X*s+XS'|jC ?{e/ a1oݻ$vrZ+%gQ'w⪫0TkyM#Q{%@ ֋AJ0#T&By(K֧ }6pfc8CoX1,#!5Vҙvc> tTB&a4f:  Z.kygn2j(^DT0 8gj$It#GH@S6YҊ<̖$aԌJeXɧ<-FgdžLDSYt-Xd;;^Z5:BAVG3 +a+!LVp2Ef쉤 ˆ#p|@srB!h~=hT@8mM Of%uPM!+ݪ;O3bEZ\b/s ]\|<4I!b<]u,YT!awsmAW3selݓy;W9b|BYgKF;Yw ЉH\؅E7vFl)@*eZ' # J:@T*lE*ne/ RX!0o]TTA!!%ΩmtFzj8.FCWn nZ4yɡN;obf+0NIgC+ mߩ͡dGD+n VxһSJ|*_6p><ECW jy؀qyhOcJ]!S1{nYSk\Alj@^ X#-b)z)!h OL EqA-ooWuC)#atʬH"&j>IE 1J] R NAw`"*h6zH!n`f|ֿVn;U/K@d-H `a QތH?Irc9 -ٕX"g|̰"?5pKmd>k!eJ, t_D?2e\&:J`VpaG|vLL@gyW~RsdM]`\Ae@7&n֝"dk!eJ, t_D?2e\&:J`VpaG|vLL@gyW~RsdM]`\Ae@7&n֝"dS5 U&VY=QrǰW1:~QC320`-P<ק Gs 6Ԭw a_GN: vԊr c1U5Ͻ+ʱDbCXxn/P}$?X墳)@efڪHF*] _XsPc@~ny.y5G,!)ij"oQZ#˶<8 6ӲrpiN$?81EA-4V@9\ONK͠ w9##eM;nFjAf -ucYƊڜ̚ݓ<|M,3*p Et۽0٩&99jLƁ(HFh.ɕ_ϰJJW5-=p1*F b/C-y'L:-CX YHYR4nn$YPd]M&K;$!Y8?'B32 Ro#uY:u4](A&=wٻR?7{/d{{ƴ)[wHl/A~ݫ/=SƑ\YvzM~ݣ_lXOݖ-AY5[\3ߦnP#T4Ȃ7a.#<2 e9"wRs NT(4HN(u`A:Y;~Ci:Kx_Cp塲=Hqaΐ=w06zAPSN %̀c 9AHeNf"9Iab":! +ucYƊڜ̚ݓ<|M,3*p Et۽0٩&99jLƁ(HFh.ɕ_ϰJJW5-=p1*F b/C-y'L:-CX YHYR4nn$YPd]M&K;$!Y8?'B32 Ro#uY:u4](A&=wٻR?7{/d{{ƴ)[wHl/A~ݫ/=SƑ\YvzM~ݣ_lROݖ-e.|.r*tURa<&/p$/# e9"wRs NT(4HN(u`Q:Y;~Ci:Kx_Cp塲=Hqaΐ=w06zAPSN %̀c 9AHeNf"9Iab":! h99i>$sZ7C0 'm$⢔NFӋ^žu1^8I؈ GK#f/`$7O_?~Q4_|' 7"8{Hfz !THB1H@0"Qa bT$ix)z>#o+cH׍H3 !D[:rd9G&#)CIyne82rdFZivp͞qF:3ȌfFCFcjͅҧ! /S‹lX k$E -Ȫ\cEZW]ʊ =UdAE9/mR6K䶑7 =)r/qEg7n&_o a hBӱn]l6tp"rx(BF@Gb0 ?0%U݄ 'Dna -c%%~L(R 8o"# -B rBԈuGƒ$\~hD9 -!@w- >P>j7c>/ v$|̵&h ȗc&5LJt 1YGɅdžh"=lʅב _Q!uLz%q# w)a4gh3yyH~q' ւ |?C$%?Sxk|K3tI9-/g<%7%f<0i3hI b"͘}LN͌*1Lr$gNq M"I-F52lr2IM'UPE~~ɐ'G[!<9ј c9DU cI>s"cH'cQ:y1^D^ (WhC1I8&ocbXL) -SdZ -+ ::a?0=K1<:X0TD0fDB`\?X ~1N^/N|/NT|qd^tn^Й 8(yx \N.Ĝ q! qP9Wu]db:bٚ I KFD.)|xY'h8}'qI'1{d$Hh-`kQ>V %S!RG-6JTbz-"Z4'eY4r߮m((neFEQ -\QjǂGa-7R zK42hJ(S{`cS`Es -򔥈SݮAW)OyX -*0ms$W+ЋJ,Z}b 4#Vb*Syv]?ti|zLaVF>1Sۇ6AW2j9惪I "|l48%كc>&&wI Ve,3mM=l$J42ؠup`̤&z(I3,ƒ^,my@ù)r&`D:svny~/u}yI@0ÀiCu%4Ft"t8 0gCG#qYhY( rgi*b494{`AVހ' -5FC@J45;IjjW79ovxfQoqnx9 -oC^g8kTՆ]`s6t^.l8@6۱ ~ {L6q]^6p6Xfj&6W^GLmF~PJ\1l3T4nFn3K4`7$aIh P l3r&nixJ<>qlV%bOM77II&13y#81#@cj1=zu C'A@8z1pefPqEIǙ>~arvͅm/8br^PΰК Y]儯 L1'h9΅לMQbs$Ņߗ#9AY-T1:ktz-T:L'0-x:KQgPzL`Yp0@v,|$ł :Gda+Le'/WvjgM+}|Ov480w!H$*TzWXxOQ T4a}N3P/?yfdKN?c)\s/a$p O>KHQy%\?*y^P“ItT^+4JHX- HbH8 n@o $P;Q7_Q];U " dRg㐵gA@r(Xv;0,75n/kGz81qv9Y#$ F*[# Q?ILhiFW+Ep7bh".r[{. -J5ET3ϋ`1dsN=i8!&`US^u׺EY^EXĉi^HT0-E<.؞[_"= H].Ёo^ooFp](S!HI*c)Ybj*Q"ՏXV`[*D;0Sja0@pїT/)uѹ,f@SlYd`% } 1UNL$Yc!wVC!UO9"܉\"𕭖O2\ "V̅ HzCh-ɖHY: s\!dq¡ɘV6TU!/:DԂ#3nDPfte\ʵ] 9<ǔ}n 42KK 4CPbv@GVwv!H"tDdB[B?~򽄐yPczoG5LJ-x7=ҕ')@H@,V"%&D0'0C![+/I>EN 6(IV +Ȫ\cEZW]ʊ =UdAE9/mR6K䶑7 =)r/qEg7n&_o@7A,D G Q+X@B@~'9FD JmȸI'q`@+$4y +_+x:֎u(dC')BAz"d~\D_Ls + G\pۊMHzqBTt?`NȾ;b*yPB:"ɎbW.BdbAT G D Q~tĠx凖AT!ڎ.  hyBA6r(}̏Շ`j(o}Ar;Xk"&;qLgr|HoSn"{{l]ܦ\x:i;H+"HzN]=W-J={NP=p2 Fy{љG <Oۄ5#Y!$:5l +ë!a5fDfj]$Rt#Y5f@L4$MiԓI6M4$Oi Dtx0%D*84> QhT:Z DqW3Ē'YGE0U4X; cb?boC 0:5 IJao;!Z'c.@:h0CUVpNd e<ϸ;:/UbE_,/X`9)f_N[/JEw 9k ~0Bd\u2\$[>D(pzRgO__|d[OC[bO~_j@P2*2(eb+B4-H ѲE3DgQ9&ͪ ,a̟ZX}]Vy#`NR “-X~Z-Ǻmom'̬ Q kZB&7->>20|TL4_Ӳ%n%]$LiKIh%%8D "ĄU +*aeJ@(Z"ZơhA𓘃i'$$px0$/~$:1E94"d"7)BbA#,1!YmGovT:"~z3 ˒z:fnxpx{-Ҹn-Ryc.RZiq<-EZ̭ew(`h"#.j[Zrl/̈\3{ Fӿe  3BvHB#vK>3ENW.s9XŌ[ ȥ0is\rF$r[I)mcF 4ր6\b$V92KFM.\6^-Ȍ 4Fz\E!_y-jE81\BJ5.>ȭ3#r~1wsF\]5lM \ l܍"U,@umO% T e=^>-ȋ&b53z Y/^6E!C,c/vz_*! _d I댵,Rm!tC0Y+ +FnNQvx0 +"S9 *0zI v0 DFX$Q9 w'Yu.x@!ܪd \ @z1Wczؘ8Fa3lc>q=&0X+#C p5眎dA$sd6A̒1NRd$ @dv+2xE߶exe6ml: 80xyHgfR=f)nZ3%TL2Aowst&vfv`|y~=uL9<աǀ֩˧-&Al!0gH9&HS6(Ma$Ủid.4L`8܀O 5A R8@hjoTs88T`\ +q +_͘owv%;kZCb7oMҹ\7P ;6P & m` Zݝ`Val)6ac#5lnоl:бLF0 L(mx*)6XfT4 6FF$7gBCh85IC1mg7d[wn xKf q>a8z2 [KJ)Ct#dXoΒ 7/8I"8;GpFC +ҩZ1k1# - PBH8 3rG񁐑L z|n糳&pO*QXXI4aR: H. ̐p>n@HEN 6(IV +g$ ea>ړV@}'hA i__`luP=-͞pgE7w~na`Av#DBBx+XBWʯCp}fk܃4'KBOR* :[yYC*GG˃N y .ndxp?. --SqT;X9eϟ@ojXwF>̓]]+BQw+g#90I%S4Fh@3*r.d9q6$);zhT^eGsCoKݿj59l ` q*k%Tr!7(jv +-SqT;X9eϟ@ojXwF>̓]]+BQw+g#90I%S4Fh@3*r.d9q6$);zhT^eGsCoKݿj59l `%q*k%Tr!7(jv LnUO8gG : q^ 5 A`C$S`"y5\u瓃j2Ԁ4M4E8E]m0U?4ݻP팃P豢^$=Dj$}apMwi i2"q!E]ų(%ndpghq1!cnFKhb DNت@a`+1\ + tMA'ss?[4,'`.ߊ~o+F:[dƘG/x&g/}%uJ ֹ5s/P{|np_-֦OK̀CD ^0Xڴ?P"nuXAo}QY(:2yjC( U \kKۨ+lƮlc% 2.W J?AKC72=_Bg*8|> ~yʒ`5:`juCr҉k%6( BAS,(mc=N3R1֝ ? NHf_9X'%4Cs䎭VULp0Asyg|!jt9 phsxX<LkvZŌCvth+iZ(?aū_t928 ;\ -.ݔ 12Bb(r@qp1D"}HlXH8l_Fu,wD*"ԥ@ff%5 -u+4@\s`W# @H\n*ú @/` IwllmLe`' ]@RpFnP |10b7V[#zX}WD~+.``e/0tusw ,j5귻fP>@&/ \^Z0, 9DUWcf40j(e~ƭ_1BH G(|(p"^F^TtL6U^8̂6v7εO&0j.@= ,LcK1^:Y[qOEڱ}Iί^ M"0IEL4<(=$l3*ҠSSC̃-@&n耀u.@x6m -("!%؛H3C|8I|X@8s #9`/p9㼄1ӱز 8mJ1& )fMSȕaA;JTc"v%M0QMQ, g]LE!Fqb@+8u1HɷuPT ?^M'o[WtMo_#~5I|q?G^ba h55R`)0GXx$޻BSqpSdj}wG;Ů] '')(`7CrXRH0?w@]_;b~A˃'g;o}pl5á kjr䯓u1{b, I\5~+߄Jſ!gԅi 26d0aUqp5C"Ch=^F>j6+err k",߳P>6{|?i8ǶrU*SW)P ]L}wc}cn0-W&?G=v%95E^p|[Po7w۰y Eo>󯇴`yOhD}vo<-I:S "S#Y8fyvaka]`ZXN[N J4 =|r}Io7w^a~QXrRFc_Nd˷u} K&y2_̾ -i0sTwxf񰢈AHb6jSSxic>)`P?&CEic6Gј+ar(@PhHU1IY%~Xn}>9lócݎ/ʇ/E? AHj]"E|M4CZhc& aGYhƸ$ARԄP"oӼS8 ħ|o1qc2@ޚ@37@~P\TzS&Q?RvVpjW ubxx\Jw1{t Oynx:+uI ̈́x|6+G=e'qexa/1\yplcC)~x -Mޛ=h^P( ;`-47%F([ -+zGo@VDS /f+OOdVjzA~‚c"YRѢ~Y D5[uNoߡP]9wj(Do-ÀS{IX4H@v{gCٱp:;2O;ie 8{I+/@KZ;U !TRR` GT;popXtW @~\7Na^ʬ DU JȠO|Eg;^|@Nd9^~kHfh,yZH%9Z޳>*Wt1]QBEab~؁,sBe{JX^k'8>!< p$b -1Oa9Ĝ717(Sʘ"2ɘ#̘__Hr_9tR~ۉ\0cĭI3WFM1'ؓkaa5}Nl.1 faa# Wn0i->g :צ6qIه9dea<7a'#0W>i0C*Ky sDC!% Kf̵8ù1wNDȼf[Ss1愽ISØgf@^TG[\]Ӈf̋ ԯ %c+#K04\ƻccvIױ10=W޺.Xq@^K:+.NEtp٫RFK[2K;5/ pLw8r,J$57X(\U A!3$4|~.̅eE\_>1~rfDe>#?bnpp^ G[Ҹpv{FMvc3Mu!"0yp7Ose ,S380dK;/x;76%Lފz6t6vu67-̑'^9`&(z/s؋v'8 t_cO'Igi˴}BsDȿ{V ɣ -+r@ХT)h~<.z;$=)5oH}*~`y|;q;_/0HqT?& 7Ѣ*؍~GzS301}i<39a6n P_w#ךg=쐛Tދp-7;H'k<ڇwmVݳm'zwvIR GPjfwMzq.9Z(x6P~(=(oT |4ȭ>ȸ_\n{`|N{KCrF,&JQQܹTB˕ٻ4O2V-4cn>A,Mry#*&1b(7lS)ʤBUq0MQ}]Uu*r8!̀mȋn+Uɛ)+NaaB9(XNlKQn?!B)59*S| pۅk f%Ek{j_8/>lzRԶCNP؆7ITyئ2ێ&gI,Ħ2܂0X6_amm`%偬 {b/c}J%G%ng@ؕ{8R- -m)MIx7i/$J/e6^;Ȍc,6J c/ hgTaDť"o|}-y -}g|5̜DU)dRAOJ< b;ZƖٮ378m٫)vu,rCً'wzQV&edE:+ٿDO-ݧFpX/kƻl yL-x쑝iU}VIC-3Y!p_`N08θ;쇩Ɔ?1ICaR8ldI~؝ea'_g$ {#v- l$sU#^ -vep ӑ{Um˶(7nYy*L~g`> B^zpVO߰^\#s9uU"f;kxc0UR.Ml> f -0ǡsP/%q wrcpR2Ni_zfVWq^b>/7 [\#z2PYi=C\IǩV - ,Zw]Ę"Z.7ygfǢ5\|!"N)Zaxi!CgJ^_3;EdE֢;ֳv%R|`b%I Szl >kp!BHs+Ckn<`Y:#l:9`=4k4Nk,pA9ƷT]FY?UftuAEܗ}3 ]ƿʟY-׷V O([Ju< tRZGW.Ӱ쌪].HOJV撇X-1[7c \kKiCoP#W֔Ex߯WlFS/PŹESc)I/u'KIj\[E^U9e/hFMEAJҵ^WctL{{ ЀzSMđ:}x (K}tnq08rHu Ȑ"e(u)i0ˤϳS?ܡAϰ~ŔxUReKI,{1 kG&kԙf_Ӵs5^m -0 -9x -(JzyřǗ7SɐG_$9 pehnUag{d-E݀ r>jTJ -!T| )<:[}7^k@Rw -kaclKN4Ue`"4?f`f_[f:P3n \5U'[%:n!1D wK0ж^f} xrWy#V{*] Nˁ\Ul /q)g zE25F%fT6{?xHY}MvC.%k8?dS#lK*FRbro 3𤟏~;'வ[l7w Z%VYD7.~ E dx x\q >--oB+Xۼ fET^ +.ݔ 12Bb(r@qp1D"}HlXH8ꖬl;H"B*5fɛޕvp/Li`H/4}!ݮW%=+3ྨ% gۘޅ<Kݬ4aĀ<zFE- \6W_7_ b^!Y-  P.jcw p8&|mPE:BJ7+fDSp+jāp6Fr:`_:sy E/cc)eepƕfb-y`5S8ER,4[!<:,Ck'W:(FʄMLȫ G נH0fcKەG?k3+xcln=+idrҐvb+1{VUJp"_ I( +i! kxD@>[TI-ZHEx[\Us'PgLP +?$hKu.iS ' RXeNjO%V`X$0Qxq@gOڢMӟM0Y] "$}]M@S8͚+Âw&ޱDLJta7X$@H$ǃ11B<ĀVpbKo1֡xnמm0d68Lw13@w]#今BONR@WݱQ>}n~1 'ױd'a~/)կw>HO06vj(?C)n_'b\ŊY'LkW -}4CΨ dlĿ`+,ê6kj E(>'Y{"|(lW~/<@DXzugyh}l>~Ӟq0f mgU R27=C2"*4UaZL~=zJ +sjJ9n*T04a@B`}>_i 474iߦy[|uvAԷDsjGԳ }q<> ~Zw;ڕh%zޓro  ѷ5O7*f .h[ǾɈǗo-3`#6(-L"d+~}\a:n͎-aEw }l=ԦpK}RF;~"MyVn486C t̠=E2{{@w:; +{WiL;BbɃ:UbEc$>êcQ<ߍCFX]"b<)m(ݛ,(vd'Agͷnif~#x 5L3;^ϻ0ǡZ,|8STH +)($ B=>)*̧R UuJB] Sob#?J&mLGcа2elF/9hWfyuv:a#1?WOXM9as- +!)`,w*/7yo4 $qœFZ>2:j9é޿A۵~ƚȅO>^4Mke\7,jʮ$~@1I/b8_T'o͞w݇»V"7/fH]Y8fZǽ~N+װ v8?Z_Vli[-ojU0r7mBuXo45~1hxK(enړ?Y{JF F9ar쵅=t>) &26Ȟ'ADWf0XE:럺lJ轵/kzE,GW-^L PcOg{mcvKs?Oˡ4]Y_T围=}\&z3feҊhlW}ǂY".d/K2G\!.R̙25/3)M׵TJ_N:$k%wНR7MCI +Q 4T3}V!7zi)T!T\\D0}i~0A?Hxf/ᕩ|^57^eHrx}[26^?Zcc:P.yS qQ?"*\w޼=jE\x?eYsmCr5Z[# ̛Os6[UdP&SF9"}lp15V ìQ,é30ڡК"c4J<|)r,giǺs__~,fոNE\ ?LbPW Ŭ ab3&r,>uVT Y$lV k{hOr 65v3 _+b@ !^(džISS^:7{мP(avZho OKPW ހ +_׵*WrU΁僟D+-"ouڝEˣExˉkx9CrP/}Z9 +ߣ-hφ ճctqw2e@zwq>VB_m*|wBl9T!.wDI}=߈/ +X0x i;-h>Ag|/NIG>4=k/ U VR)m4T[YQZVTq$r0S3hYxlkK"U:XrX):S(r}'9_J`؇ގgSv2ܮ1Wv5{NڮIF9:^-0^S c-hjnHvax+gei].Ѹ\)B䂿h"o@<;{'oM;. ux.Я:4_P(eEb\Pi`=Pr` 7E {'b.囊O/cqq),ǀ9w]Eu` ߿K֮oUǦ$ +02Z̡ bpסf0*dur]gz%tm=a`Y+hT>L:KOaulbX_p WcG:5rj !:" VDXu:QbVOu|wRr@MSzUJSS?&(&[=wGrFV[w ѷL]dRVt6tTv|n¼B=@e{YЫF8oARTAw^ чȪrL%`<֐i&k'C>jöӐ9uP]s7o_|Q1/Y6$,G)gΑAKs~}gyv`j#̗ yWDЋ epXms١awlN1j]譹y5Ь`*ewjԂXj 9 9МUP9rDewxOPvtѰ^%l!3xic+[=oQ6 4ƔC~o3A$n2{˟[/. 0i/\tT`p˗akԹ<*X4>N/˴տ|lF5qOuc/V嵴#a"'r04S2Bߋc/g*A[ >sWjhR u +Y r|w}c03~faqu;|}U c86션_]Y!%<!,NpP}1_C y@ILb>(s9 w٣ob>oP1?Edʓ1Fx}1T-s.`<[ٓ gwz b?OC'] +Or=j0%ȝ ]bX9ak-Gd`=[079a}< tM7lS㒲sž +cyo*NF;?GW-a |,`.U +'}ؽy4.]C6K$ d1Q!U' 1 ͘kOps)cy9?̶b {19:˽(:oǻ79&?)72_gJB/V}}Q GHTahw(,W@cc^azwu]5‼t^+W]:$VyȲ5qQy:ee ,K;%nwNvPK"w cR* r%wj'?-v_ +=fS)[ώiօTAJT'IA!ޖHáE辑 D[䕥\;yyzrI7A*Jvg7Sȿ vqR_.q xxX` 8x {O5ӎW?EB:Ÿ.6xBQ3)ZX7xCC+T]%FqGQ3MSq)4r35 )}0^+Fo0P4xaӪD6,{W-\%;4Gw2(~^Vj=#͍0RC4qV#uc!K|mKnoWIl#Xz~xǴBqiDcL:(z7YֈBBڒ(R(3"ᨯ0g)+qPPxBo +q w7p~`}vHq Li_-GCs ݀%zi'maKR Jq-6 ؍4A8ׅ9Lo@$z<)2.La̋#-!۔2rz+~iLص{K}8vz:p>H0G2^xjGXpb/nVڝ<-nF}?u<"&:FHO/ !^V^Yq~/$* 3e[ZARJ Po oƾX"@D" +ނY:0~S T.#!2BQ{T7D`7V{i$ZaoO9HT[>֏ @U|yix\k{CnRy/MgTCfbX i6;hqX vN %KU2uwCQm=K4uݺDh|-J DB9=FSFnh保BPv2p5 nH"~nVsR7blD;{-N ] *iGFq~S -WNgH:4_Jc^Rl'+lU1-eUff1aM}Y;^]6zS,a~xT*2Jzg_SU85O]^A<~<δ>+Vg$! ؖ,`/IC'Xbg\TbcCɈQ}܋!0)62p?2Sܿ3τ= ;σL6r~9ƪR2iHsܽ 쪶e[M֍P}t_7<&bl~uk!{e8oXkho]5sWuu uI1]G*J)z&h6]39kԈ츆9ͱDQb)eX'Ň4 jn}/=3xm֎P/ p-k=(,괞!bT+}.rbLpig-3k{cQY.>ynNc0k󐡳WKX/癝"" kѝzi[z)>dޒ$) b=6QXYh8kv!Z9YЁ!57}v,k 5erOu}I'ƃZWKN ։_[YP*IA"n# ju<XTR| ҂FC^url{؎;X/R뵄"?nTψ/T:޶GOaP/BCz$dZu.fr Z%l4ֿVP6k5bwM}O#6XEOk USVM ˽``{(fT|e3g|?)[}-T$&qS. EM]g*C: ~"[o}Ǿj._oϬ@[i'-O@jw_c:)V+PiXvFUw.]zV+sÁrKu^-Dj |1.ۋ7|k"TXW+I]\W1闺Dݓݥ$5-u"yRZM_P`Ez e %ZS@R1:k& FGhz&?>Gg%>:c]AJ@9:Zkdr2 I`S:Δ[e I)ƟSPgXbJNqUy<_)]s`[ݲEKčKcz饂cC`xŘކǣL5FbLi9_oP6SaU,U(i* euy3NCn)8U.Z`3PX }!G*&4^XCcN+V UzÁV@ 3VUHG +I~1Lb#^m@/~/06w8Bp5W0z0OCkfDS\3s-b`3sFbZYY M΂\ܕgj}chA;4<EcqRW)82m/v=i[Բ +1LĉjyRd:m`CB0U,$m4?--oB+Xۼ fET^ "Ĭ+2 ,X{"؏6;.F߉(})iq8>/|u#s,%?z۽-F Y4bVľ )u[0S -b{' `J+LY#B+ҳTbyV:oDw < Zh08Jxl]PALP:Bqp}^87`@HDRJ)"Rō3SMR]/0;]MЊFz!R0}>7/co5ηA%%lL ~HϠ#;_k x3 -}9fTq8d|1$21Fd_ !|> 2_\C;,~g'$'P4/R|OKJ58@gnx@͇*o [Y 9E5)ik''+BֶjL5Q?ˀ}8\QCje RlUS>ͅgs!까wc7xRqV54pt/Rd;{~ͷ0D:'4_D -ppշZ9ꎕyPX?͌fIW>+_YLFMqC9^mF JA14 G̒L~P 'O e W>gA*+k8 -I&U1'P[LS]PSiPn$$bو5wζ)?y=%F)Ӵ -CS4 |߂B|_/||Gay{#WS#bg?G;Yw>l@ău$]˥hXGQ,[~2^OB/^ӍƔ\Ow2USr*jL~ ,tew/|_SӼ0h(ǵt@l<Ҩ[0Ra^kyL^%Q&(!G$F2F fABԳ0eFٜ\VQT5;Il&$3/|Sg-?|U~O)_|? -PФnBpHo`R"Z*ljF)86tə4pwow~! -(b*_w('!oy8II|*jl4p<.G; $ h_<1I~īhK+t<ډyxC\,UȮ~m\t%TXDTBҷb<7kL㞖Sj.GeI(e)0`_a9XhΛ=-ͶxU1L7V Lh'HW6fQȽ.ΉeE"UxM ! Y((q*:La"Ge h}YTl ȏ<\2Dn5I򟪈2 goճ2񵐑v6|*+#VSWZX/+ ck#.1} ~T϶sk)E&%ބ+Eq2#cɝ>;5m*Ou(QEaeZDy恗) ;0 8c #'y wi;B3 ]͜|&na{|ٮcT= -f,kҤ5 -  d+7r\},~HV\ݲɿg@3|Cv}]GZ7|[5wZZ$j) u"ËTDY^!Yۮ} -#bfDv ()_3 ,! sԶSZ+FDcX# / - ; _kQD\MgFigT 5긬4xklqkĀ7v#]h}.?"+K1턴Uԋ5!Iv!B2njGYGYGY:lNy: n=Ka;IЮ- [Y}j8 Dn룦f\d'pcܳ kt 3]+W5Ϗ+ %+d"$jy5WÕeduk7tB ⭒\$z.(1ٷ<^Q1C{""`Eɲ%r|掬G›ng,fd-)1F(mI~iƹI+G[-&ҏLB˪@:=Ɲa&38!-0 -壌|ojE/U_p8x1#) '3ɥ[7+y NnNi8ԃ}x'k·GYv4fQ!dU{&&{8VJQ5,{V ١nxƐ1PQ۸N#_G…b{-E  ސ[c R1b&_$QH8PȐ|vXmNR^NK bwUH} |bHvGG*=g·fPIz:t@pămu.Vd+*$j#m룝 =Yek F{2mާg\& -4s c$pk~ű(v,!8WD6d+rO 26Z$lHP.%]ϭ^FWf5t:ވ=rÛ#l4Im6Am.Km -IJ.mk"G}vV}Co;,R$TQ$Gݤ᫢Uqѵ )*"/v< 4Q8Wq,]z\*9Xl٤meIAVEQ\? ڬ~k{x!Fkkt%m[̇pW[OZ9MSܵIbb>Ny"vo}/ot^-NI#wE.Y",Xcj$8%\`;mu4BBzki6x/ ,wkrH&-ܤe9KO[7(eI"߀_Fhv-^9%!g e& fȣVL!뽾e@f:ˀX;<|썽vF뾨BZ< - , -l0m YnJ َ@ -YoDfpB^o%| -ݲG%$!7ZW :/@8O[ohkD7awfFTW$H -nWos)#"6.hW}5 tuCkW%+ [I?`|#iQLfWT?XшO^d(sQ5ܓPR@m|wP^@UKJm8^|ɬ]~z[q6 zkv.wq'tȊrwc| -MHbp<8!x.+!wGF$GNF[lDm뮨ANwDDmE FqIY .]%wBaUƗ -Q=*72'r<DE~s|Ò5ͺ*M)q  tw`KPm ګ6Pm4&.+FDnvM{# CύŻ/4].]|M7YQc 6+#&+c=忷$nT{*E˻3>u$mז7y,rJ>$(t;[V{wΡs0D(šgȑuy+o2F&0MghRڵ]R@#*(%B#؈RK@m > 7~ZjSƻ(5ۿ*_7X@57mX|- O15swBN)o&nkAȭ$ h}uq^Pb"Rb"粸 b`(ZFB?aol{1pYͅ>8$e4JhG)aMl<'isx'`o)na7 |]'^$~"J ٿAMRh<"rOf4봼oGӂIїȤTBkcHb!mX\$ƽ#\1q4 j@lo@T󻈊 )XQpT _&*XW:Pib}೰޹u.N@]sITDUFFo0-(=^[jGY6t@7>GR/'Їf0S)XMNt.G:&mS5ȹ>n*xkTpP`P -kWrO բÖV. :WN.̓W'aX|9xn Z-NJ>i @bB -慘x%&yȿMB/`C_1yp`(b[%U.<}-)o7`I~sQK~%5cԅ~oiР'51kBoZs Zu#&jV`+"- -)~ds쎩Axhp/o#yp6nEx4ikv|25wuabt3r*8SfMu -hOkTB~#Jy|JJ=Ѹ)S:nR4-..k\E0H;Aɖ >BˑC* #c eؑa8e@ʥpnFRV J,FxKkWZa*$ϦP 0Z+'n`nG˿ &`as}e.H(0lO߭yT:y5 -EHd=L%~::vi0Qٌ"*)5GAAAeԗʉm|: K`O 1Z&"."1-Z6Qc]GP l/V^_y4[fpo^Y7OŁ==H'(wpƒ+]R=-&\t+4(ح1!{3c$`OJFEKi'ѳ )gL(fM5: 5\օ3V]Kam! '.ULG[CUIgPP6tuH]FNx6VpBil9+~j^APj[~Hؓ)v6ϵvo;]]*qnZ§rb!ū[,$4;\|_t{%WN= 22NOGxuRj~\F=lpc\5a iK)rEk@vѵj|13UF7uJ -!-m.H[XB)&b[+rRڶr̈[[=ޮ x#2yTO+@038l>,< 0‹kR_5@px>C`_p[;gԂ)8H|ClH ]0=a>G+MAFf c}'Yqs`Bj+b~N(C땀Edx')e[[j -Y~VbYD˭ZoW E 6^I_WE27_|2,]^HRWRuH6C~D#vX+o:KMY} O^ZNB!Mrz@B_vk!WAϘ{"V|C3쒌=׳xGiYR@TODjBB_ X`{&zP9=g L*4֖~7?cT>˷`%SnJi'G1 qc$æ'mܙDe#wWbDR~تGZa,j\ -]`{=ހ~Zv큀t&X{Hs}84lJTX/5*5A\l>7|A(J@GLGX@ CxkDV d+Fbw̯|O6oC2K߻ױշf%!nZ=(; mW@`LvHA hRY]v*< -5c:Q)|ƒ?UT,v— ~W[_oGԤ|EީW[rzwOu0&.r0T](͟ -Ik>+GDEv#WQG"'r$Kr^RbO6bZT@5I?q"FƇiR㩨'˸ÄG?XCoP >WQΗ:tr>S%U0,:5nMNm6DXG/PYUު16ǩ,&S/%+{Iz_Xt㊪ZЗF2: "4\ezP0XlQ OǡҋmRJ*2"@ 5pB +"JQJlѿrC=,9ۤذjԖ}W$=H=|9`LQYǩ,$pñ򰵱|I ׸ؠj_/ze70S<Ѹ"b eFבf\a,4Do</4A`0`CJ NпBbn~JQ9)6'Q1..9f p0^>޽q۱SRl^-IZv6y.y]D1dR[3A#EVYD ?ӯ`z}DByq7=]?@ L<>MχPjz>@e-)vS ~ّ?@(4ee$ɱQ-tZs @9(z[a'j~ -p-3h!8+ϖ R!P<x^YT(`xD`7YIC~RE )>)gv|>OA/&Ώ:v~U͏2)Hh*{ 枏]ͽ!|cUVJ4*ɨ,& o\F&Җ հӓVuTB)/v1k/ 9 -AVC=_A%0WC;?''LB_]~o.*^h]:43z̳=r'Vc:&6~Lx-05/xl&#Hx7F%M3.yMˌ/5_!}+!?7^n>/|ͷ6>?r|!9?I0壤DQГp"d/]C%vkE=_ʝw47bLmcSl67W=#[ N2@$|oϓxR?NÁOR]aЯpz~Ώ2/7?xm>r |/̎>UJG+UwourbUy[5 i39A!n~O>;G2B,6_+u1@?(6kyPj|U`e yZS7~rzݽk50q(9ԇYDB -Uԟ:66KV Z_E>lnf7F48&7x -\z -Χ5_eNKI(`eT'{rIe!e>?40nbaC91d?8\ySOwkc@p `.#HR4\! >> -g܊ joxbƑNkZL0as2v6 B ]iض#yD+Չ V k ɱ8Hs,1y3җ J`83r[(l_Ǽ; 2B0/p׶ǐLҏ [rɱΔ:c~\7odvܒ H>H3WY#?:!Ýf;m';O/>1~ _ 0|kQtk"lB6V0!a<:}ZN:k4:"cմo C68;h0//٨Z3uUNry,v%w 7.+VϰANaՌ7H|o9k i'ɐt7v{&uƪ SrN9=}8O9ƕpLTBBqM|_+ka$] -_Z,u -w%Ϭ./0̛\-ϫ]jW I; m`m0:M5DP-&% Jw|$9Dc~fBaH5jMNWv+u( zK^"VԹ/zmagOG@Zh7jSLFL&Rn5zZ@D-!"'8Bk}7:Ѩh̑\;Wl(?GH!u 4cnYwzg3p #sp9sB8H mw!?yq_i87fbV\)la7|rOUl1epan5M\ )2vUĸ]sp7*ѸK8!p{,rB8|&pNS:_oyӼh:1[Ffȕlzxϙ޲V̾l1 D>m8TjscE=ՓBa g'DXVZ5>chDb`D}hxf6X%N̾Q.6t< ->/\~x -- V, RiAǺt"Fc 8yva-wlqH%͋Fo0}vзtCI5δ%9@C ů"^ #OQ#h̍N4̝\9op\Ck=zD/|z "]򷆻-}lF\wzS00#]tz [2q"."xsw&\&&/ZpNgK`w`E&v=YG;3y4.6ذq W/֥ŶR¸m᭓2%Mi!UE@0"'x>J-^i -$`){Y?+ԁvߵ(:Ƽj3'c5CEڍbl*Ñ s"P'"-D h$)p`v4|)"Y?R+,vg7nL?=GPWޅ2H}1.& -s!`R?@_z.Fi`Z-|lm' ? ]hA|ڂ/rAp JRZW!)TD>\(TPGQ*AxQDv:QÜ,+"0*t "*u9eO^;Q2/n_q#`#xĝp?# e'dzWҧf/l:ͣ]8w4<Ǭw48eۀ׹ԻDMC8yyшF䣲nvCVF@M`]bvHYb([ۆ.8e7ehtЅoAMqaPC4O'NRPC85kXm*R>"mk7ĝZILB>"abL'ފz^AZZCLmEFo)n9X4ln5fqƏXLtlh=P-NJdxf<ҋǼntWpŬ+^ p6oムq&xOY _SNR_"hVOP-p=ig#^`5ކ|ÉHM=.#!h ͤmSIWtHfjɈ:zJǓ|V4OGB; NߖTùġT#X% ?ȴ0`IK!TGF^<=}['~/XfCx3H(nbz% ɗ'4,ye6YM8Wnk HT@ƺ$Nqs&<[gR/2o390$,NQ!p#*u<|&NYSJD5t:ܘBv -4sL >˿O维>ak==T Pw2l&f[O:ÑκF#R~P扰J2n`֑B(xK7~VcgEo#,l(&"Oo-b%ċ@(n?VS,aֳN0zhT>VDZ-~;w,[ؙ̼8t"sB7 } /~n -k/V`aozp_]J쳗d9Z1~]W*pfB( -(}Z -|3qM>_ 5n0RF璌O`|^eóa/XSVQI&mi5;͖Q>p A D{|'rﭮ/*ocxyX3ܧrh@5qwL\U@,|"iE/VԅqV7Keo@Ap#]K\Z_*лvM`!D{OW@naiK5RJD"#nTHӲ!t 5y \:"U M]nu'dio)Ԡ׷ٸJXR.~m "^iGq}.+kÿ~e> _ oذ#I# -7F_‚ LL`@ -D<ri'k"53 ~B"J/0x2vv[NG`oAtjv:R5!I_夷vC`"'n-]Si(-Ed" qCrvhNw7Τ^ġI_>zAC - -epD7Mˆw[,}ecg8h,[NSvZ?u[N&r˥qi '. #pV»4DC12pw4-(.B"bRI^0^9 'os밧t_)m_:A/ <ι -N?> & &3 B߈(ePsOƾYCE·i(sXH"O߷ƜauԄ c̀-aI3@x/Ŗҿ+, U-Q>>=Fvb+,>uא7?K%Տ\@-tkzJXr5s|6}n}]nwLb\iW BS/"'ԑ)ob]+xi<DZO΃yTC[Z -N»2nVV_W*&(Fy:˳\jG\S~GRfAl_3.[K:v:& (Lߔl:Ʊ$ -@(J3*([)KA]` -`(()1)I8B0!H& aLČƘƖȚ& M@0tVV6!ISQ1&$#1& dJHcLaKK&@tV)H& -(M`R -{pTTd!W -Aj,$:/d9, 1&1 aPhC;?0Say38XHG0$ 1$oyș@ύPn 3~Qcpׁ{(G+lA0d7&n#"-sx:] ;8E7ue_ N`N-!A8u͢cٗ } - ->u$x"u%SE#iC+rcx[Fn/qi0m{ -Zkp^m={;z9x6t{ m$AL\e$F(D>|{ΤⷦK%ɐ|([ZpM<eM\WȡYp>Jޓ9u&$R-JY}o2%<ê&~SA#S 8>:}ŮFU!QB] ɛ)5p*Yz,%ƱiFfbͤ1vtA8jRϸ ;?vF%wJ$vd`1 oQ{bQ+fD:f\ X6"?@SW8P9zE] F> -vke=\3qv{5 7i30A3 q+ ܋DbH H_?e |{0v!w+mʱAUVY)iew E㾄*Ly}*6&-yUn<&nW U@ԟT3w$u^c8Ǽ .ʸ^R H!eCP'"OQ/bfPL60k8Uћb΢gv]^+a/' -%JP* -}qX/s Sr3tpCU<4 C@[zvl@d^X2BJDbHtF9_$.ɻ|;O%>S聇oO_h=N,"qp1,G,8*.K5sk,MU]flAE"ϴjiSAyWhլmN[A"Se=0 }DЇB1g@`a L{i72/U4XT@B|J1G# T},Ʉ~:e7Fܕ@ 6#>R&Ȑ_x*x",re׿t -Wţ?JxL40@]G.0D")x}| H}ieS@]XN R/*Q'P`o#3'܍N4rP J 6r;=2}n cK9;0U܉D a^ A"R!q$xPA}̗hu<.t$ r/ﮏ]?v -\yrұ ҅ ug=1~o|cR̉z+NrXP (ܸj?X}4{\CD0*keN] -DAh Dbfich崥xpOy!ef0NlsH+5ܙhPJ-$yN'.QOrAy78L7&q#}?;S3¬8$=ԁ.!OB^gbbw[ٗ'̃<s" -:8i' {4]u+Xw(ڛƃWJ}FQVaE<&K EM\'fUX(b`65zg:FQ(f_nv-'0;z;4Ee6JTQwp2{vd̮QҾn93}ȨrH5ta=^C _Qg@Qԑ(k|=k4e-u8.E`y&>݅mWiW; ڗo(f+]rNa~'^e.pyUSg}2wB1W O/A -?fļ0_-ce}0.6=)?P*q`Ztcߓ,/:+Rl?5<pOzq\q0n[^t*oէD=|N^gQoo+fFFQ. Z^qbXC]xqOSxʿ0ХYYș)kb|enL78' l }*r?F1OqSjEdӹGAtۉJd<8.h; [c?erqNA fx?qRhsOL@L@_ -cYoq}1]Ρ}ctkUq] SۍT(M8η F}2WMw du(n `}#GjQ"L6$"RCQϋ&P.$jBfS0C -viV#S,rVBDqTƒTҡPBAE]ǫx[z" @Fsڻ~URTJNgR{0v?[FËLuKrG@m!xň!V"4 Z30@`P G6 z^Ҫv`9qUVr1)ǫ^4vW7 ZW^S|߾Wfy5q)mt1ׁSO{8h3R=0y O?=E.id_DC9 D#(av/ZN f0-fL9,!6f#\#QR2Ygdcadc t A`x`| b""""H$ Iak ;z!AW!g0;i1⤅`يhEfkz-3lzv8<'߀χFsnP!)zCTiI Ov,V!FN -i9 9ôS0fʐH+3. ='uM$ZjUQP !MVsqa&["owOμsIz!TX~AL9+ >g,)^:P+`|:?%[WIZwX5g[l}G$.)GO=ȝqsX|Hh}C^,:a@/Y^nqJ|'j׷Rvr^pi$Ś(?>BN.}岐2F\{T_]ݫ(;Ss٭=w{Ju)pN#zF$$|Y#[O6Y_q8oc?ĝQߖOU!- -g#$kʟB&χ 9?}1hc,;a~V3~LQ{.l|@Ўguس-1ys@kZ(?פ'SY^Q(<9/Ϫă}9 0Wz9 ~A;=X o]3?NYx2m;΋1LlubZsahbyy2)ȣXůǙ\iD guǽuuY zf Gw=M՛5MGi[D;d9gD ў.SCV)~D%C"wf~V=,Vx7\Y*e༳RpKE~'`ղKϹ_E7ûZyЂU<-I`ͯհ[ݜ}xdA[p2Gވiv],*M)>OOonO@1+N}A#= ̋FnEZ4֝_A]Ǐ!{ۿ>[{+xd=YIh9t 3C\;>ck~~, NŶT?oVcOGeXOlBg<=ccs;>JZһ mˆ̘CGIl^z+[Y Bh>Iz yOU\e_1ܪ"[(ăoB"ިn_~!\meAH+$mVBtZD-%336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f849 670.25284f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da85546125237-dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c543.ml10SVGFilter +b{' `J+LY#B+ҳTbyV:oDw < Zhb4l֌J:Bq{_2x =0QRJ)|fqT'%k|T6΀5jdX R0"LFO׷ce~T߅_O\v~]>o;(%fJ ~[ӂ>R35<ߨ3_*,^/ „!c'IVO j8YXG_S>:烇x~ПR3|t!+:ӸZ +O*BW|"`|oo~A@)J/@YI*I `W$tʁ=*ˀW@kyҵ~f2q X5EyJRƩYG(ayrUF KJٻ9֎6m2Xc!bB#9ZdA/b@ħ/"`P>JW(]~̏6| Y(`~ ?6(7J: tK @x[n`\=:LL`QK%qc҅s`d I>Vf@TQ1T 3G^+$X l P /e2נ |SO|]w0|O-|o{W°rVByg[òI5"&:b9bCɽTX5EZLabFI2e2f'̂8B̓gsJ3"2"Y1ƹ8zDwЗU-=Iga>W+?| ]_*_{?O)|Uo̧BM^Zy¦у/TKU@B1Zsl`K3wmÑ6p@tfJ@}cTqeUfPI>VefAUr`eAfTKFBC JhuEQ/o[狼R )%,bnu~̟.w0|*;(G$~U~N$81sOޕM> +0^1 thWkI{+ .4d,qYTQK%aIPsᙰusONjHV}}e`oMRu>՞;Zz FCE~o>?5EP!P\D=/o~Ͽ??9* ЏcIє︖jK )yD- H4(ɯ7|u - t4wR S=3[!15̝MI~!ϣn8 ˂7ΔfA"( iNF8T 0:Ubo +(HO>% Bҏr3TPWQMcʁmHyCqzc` CIX]<9 kzeYv~#x}[Ж?!dUj4*yJɷY5Ș/ "e:@?U9N'Xi9Nh64!$/6?S1 &AO5P6JXTQd-~Z*6(`o#_1u9Cf9)Aիn_'^];і |$eTQLU!m/7. n9)KLiKgykVZdLCL8e sx0R +YW0Bf+fibY&hmv:Dd؆ii090".ڪUv3s43 w`ZXXeY`&cm ܴ#+0f,IYGyZd`#ur I)D|u 7j0ϲllx \n*OG#\˂kIy#j$4m>*$Qu,puXm~LEX +~OBK vDv}+#&b<@)zx;N'`a@ހqn6m ȻYHQ֭RqG" k%+%) mvFx%{x!NՆkt-m[ُ;*/is$p(k䎍8۽fXȾ b [azze\JeacBДtvA +V*IaH}@t@z!`ĵV@,-hD x#%igN8KYKM so#p;T%L-FaaԸb[w[GݒƑD4Aa41DmRU7GCv{}͂s"*o&1!- .3xY-<ׅQy\x1YSb:W_f1v86Y-!5 иㆼލLxfLˆJ%C4'Y;jv7$ȽH[?=GďF ?N ƅet^Y+i ?7 +cYD@&$z Wa}X/d{hze=9;`!I7pXWRWNV*lJ'~A&B"8 iUg<`hM ֬g8jȇimW +@,J82j?Nq!=mgͯC8mc_n}1~fM-\-8E} NR)k=M/,9䭱w1ȓݮ_]SXQ͜U }qGuaw@ωۣvXm$!o'N0I[O"lk0٭ (ŠmNPȰ e[s^qy(7 +%1rd;iw8 .D> >'>(gȉ}SxZnKaq8K>S?WY]ymݴ^8fa3~ \iJIUR"Bd9`?EիP䓋*i$mal`Rvku6loBLK. _'!Ε;2U> ߪ&W H ciӌnlRx'4(ha v}+ j*.W0W}1'S;Ԫszz|z$`_VLO' E^ӰQ HB,i/x 8Z+0ؕ-!Dm^j=?>w$H;ҰԓV +[ 3v}:/"A:z ү 6c 8Նvu $}/9?1k R2820xbHDž3W+qxO)q#<^huKNjpURGyGXԺvldXXJ82I8`$TK% ް0׺ Ŷ' o,OFp#\J\D$&<>zm0U݌*295OQQQuԛ҉uBSaP =V*' 1|%%\ +Z,~%R~$27\]q钮ĥ+tc`1z4.:ט9Z +1m HQ䣋R,S*[ 0+zO99Ì3+&8'EO.\ye0kOKe>ufcl `%n\Mͬj1BvA)fǡ'E .Sj_ p|T#:VuӅZ4#ԧr9u#:!錢羸~ؕnE{\>DQ߃V,vTEc0zļ`u^,eYeU ->Ku>ɕYD _uF(6x߰|AM_.1*8VzT煜m2ă`x;r_Zyg"9\K>,i7:%-9$}#*.Vo]`;UXPX9y5DE>m mJTq>5'v[In$a@` 1zˀ)B(n4ӂ?aăi]1e\ytbQu6[O@f1oNrN#H&?텕P:ƅ9dWRV_gd +KĦTKy9Z{HN~SSMiUf*yb>qbww6G7KffA$N zsrBZjKSO@zյk97Wh7uR*Da-m>H_YC*(d\,sTܸt̉\\=V:6 C3Đz8U_#K'9'048p?,=0!ʈ5c5@rz>D|_\<iԆ*9qWI|< }=Ua^+Maf@d+aqshRj/f~N(`աKd#G2xr:-wqel=^tiYuce~g%dQC nח Ο0?-fX:z`#&W:H!c&#Րh?&V˻,STWiSBp~$4\ kzUL= */rGI HC>\|=Oy'ezhME&<*Q|OUYo@Y,o¡wVشR~#|Qg 4_f| ^4稖|v/p)$#_@-B:p~ʝK]@F{{+; ]MnY-,ֿ~~WWߪԇzyKπ&ݓ'BMHBpRZ^+*> +9kBY)|ƒOed,Ÿ~>U_c`POبEɫWcr|wO&/0V^0͡Jo@F{c+C:meTkڱA`: J[l1L+ +6'X+RF(X'2ghK/620C~a>\ԂeߤcGx Pt =$h'^"3(-usYFSI>z%`{,UV-Mrlz.QG}W +-7(ѷq Vq¥}T\E *851%HE߃iFc9H!|ooT\vTnnXR|NK?k3kގ>1(ɨ-~9^L`QXƤsdq$PՉ3xA*j\1haÃTt[3 "8z 08AE܄_ac!G28_h|b|OdG8W1!^<9)K6 ,m;<<ҲM BV9-r#y~ˬW#Y4B&@Sg܂㠊. \ ?CG6> p 2Pǘ; I’Wܨ>ewP^Ab^W} .1Z6\TQUAog8JJ$\gۄuzԨ>/-*D"0ɫ-!) >W3 Xʱ*kd80%UKiJ_5bfRLtH^ >[LΧBztjq A?z>ϗ҉0Rpx7/]ˊn?+bdMM><8l`2ă2ɷJ 5^˂2Hk@:~p!$zg$22yI+r15$ ;WC=No@|/7e#p9^o 'PCtЋrcOQã/THc^&N"׊zƤ;#p,qȠ$߸:h` X0"'o2rzˡH.f :y?|I_7>,Q EÄ_'83|E7F.:Njg`~/q|,:_'@ޞ }$qgWse_+.ej+8 +8y:ɘ#QR2#'jԷj0 cHf1s_qKB(}E~x>d@?1Znwxe?Rn|ͧ3{(JE"0?~2 7: w2jr>o|_m~Lg4Ϡ|P7, +#VO6Y/%kKC}ewX-CiG2$ղ"2jAճ֊ ݽ\ETvֿr[!N{wɎ>wa:;6Qp1ezޯ`1b3yTI-sAs"@}bʾN]8h/S\1oy +V-zf6ُ|.{:e.vk{ +^003fR!p[{D!N8Cx1Ȃxp?N`M gpģl=(\ϛJV3zi#g?3{p5+थ~l&r!)2iCx ^%ό +H2 (u̱.!0opx}/~nLN#8 g@:ہ +GK6D]!_`R;΢A<]|M["_ D́0['9|a[Q+(5c2NA0`"n8B+rbaD9 m?澯6܋]pD| C+̶Yc m ++leǿ](eӬDy ;(gַҰkpos1o$bF~d +@0w {PIkXHFq 6Nd.GJx qF#sTډ'F=p%n&a7 )*s P40obb?mn 3rY?:Y*N63ѧ8Rʻj(uˉ,wf- ƙ˙Z# @._#:p" U [z_d7i{LMݮ&Fz_b⎀S$p/vM9}MIߑWq[ţUC3|3_QwSWjf-"^1+M\{Ĵ[ y-i!?rkC1IK݂>grm/2o/YLZa2p}6^& 'AEd.ۙo̍B(;~`Oe߮f}k卬aw xĺ[ӟvyFHmYgu\? jS8rKEL_jϹVµά^.deO`J m'Mқ i4I7@H=|z+5Doay[hմdDG(#yҋ2Ns^?*&q!@<&yǁo$C7b\ri|=q>c#ٗ N>T +u7u4q7 ]P Oyz:YjKM ,cT8t +2GF8xw`ܝU6ޤ`];ۧr3r{TOªspY 0~=e݁F) Ypy;#Q+ob>Ip%N\<>~aN#H*j_͢˸-WY+[~n=LcpVU,zg_ " ]Y+rhYSЦKxбrA0y +FeEVX7/x4+l ^qx!L@ b&Q讴닽~Jy WȾ_KoZ.բgfyzP.620W "sw(<3zp//΅SY7f>.xlXFٷ'r.## 4&<NoB3C88t5t$ */3E1Ou"KIGf-+Z;bE!Y\Z;wxfnX/n_q)1j81ZM \YG"C"q%J,A|]Ihɉ=ƹ [:ZDXS]Q4:5?P7tK` 7.lɄ6w1ym1.,9.[ Ō΂S@`_"0]c`ĚI#i04KzS0YC 3܁~ߵ)rV:B j4/c=&'cYcl* sD"ĢQ/*5Dx$*qav@5|D0GIõ~UBg)|[n}!AzxPfB7V+Wec][ NODDA64KF{\!9[O:("] "5&`3 3s9n\ĴJbj0蠞Tl3 qF! DE!sp< ӮгXgpNq z;hǻIَ 10V48w^f{ߚ3g5s#]Hgdލ㈗n<|s}8ɷL!vHF#$7)҆_a;b4vyʙ3ٷcGg:Tl;F\Lh"REB֕eSIG"=ZI"2Ga证)÷xJX÷&%Cw"nƍz \0UVz+ qo!as0BzOpW+t v3Ԃ򮰃@ z vpXdJ$;(`@ JŽkf]6}U8y7Τ]C .{PÜ&Q.:V֧zzzjƀI'8o6vL ^TwYS! AcXo(˺dzNZ5VLFZGJrX?[HTwB" +oY -pd4--m%$.:y E$ s T:h]dXj)闿)qo^0o6:&Y?}yݢgf5tF,_l=7$~ 4q DXG;\RljԳw(r"9ds&J:6x6Z?*! IN#[nƐN(a`0J@ 0-(K;:AB0D"lk8Jg@YL5uo&hH +%#' 1>4j?͒tCh26Z>Žj" K +֖!v(O[Hb}uK?vf?emO'v; {#Y'^ 1wp?pL+udJٷޛ ĕ1mfY}6|>օ(;0O?I;%>텵wF(ģHe: +I)(l0 qЧ X8>d|%eĄÆ:C=zs !՝vpG, f3x`M`o.0feŸ; 䳆"JSNq>Rs}\ k c5e^;*x`_/͕' C' k)'"&-#& `"6S I[ sT)d9,0neޭsXJDj7i [wuE|чDHp7Hw 1y$|;ͰCFQY~Ԓ_3!9}ej;.2 wuApӋi׳A+#mD[`2.[IG&x(T@|\SNF*'ԒњȈ=?Tl,gsCxloՂH[-C~j=s +6*euc66ح2q˟>H)nc]ﭫ{]}+aʲ6lI,DL?ї`۪9ׁ5BϯeZ +ĺbMLG) N(.|n]laQ`17jn벨~dLj;i8{K E$*Bjs c冸l;o <6ke;rVP$0qZ":yCxAF҃mýPn?3Qilڋs}'SUy;\.k` m'maָHTtWRkemT"2Js[Y[YCxiĸ6l)[51Vq $G0o t{ +s# ʽuU:_70)ha@㎀ ӟi yob>NTB9(d_ϡԗp[PjTY<4cGkcJ}rRefP@#,`bwR +I-*Ll 13.R?@oG>fv +0?7?[-Ց^D.ulX6t|:7}_o\iX ߂S?2'ؕ*pc^,yj`dz΃ 'yUD\[= 0UN»3VV_ڏa&6(NB ˵^(H^TτviaXF݅$WMSR0)5vͣILB^b +b(,-!5 -I@J0A 鈂& +bcGdMIaGbaJJGaIdLGeN&$Q cB +33 $!HIYӑؑ$&1 HLL&@W JH„& +( MhZZ SJ ! m +iILXS$3'%# bGLKdaHaKcu\؆oYRTXZ[AYӒ%$% I((5M(+S:*SRpDD6ahU-% +HȂ// _FB6XYZx-)x0 dmS +T7u D(K3̸,ud6Kٽ@Du;k )ͷ3),+og;=%ggbvELyDC q81 qvC& yB$:HxTE`q9|N4J3d;i 2(oqM]% xSɧ;Ѩ?8ѨSqy78ZLH1& 2&R Iqn 3rcp߉}*H,ntB17Fn+*5uyz$^.;8M8v,82v;M/Ч' S1+`ܱAҍʚ깮c6h >GsPIh1y3^Bu;E-bg +=L5yMIE٧+ E̅:>]x8E:˝Y!L܍DwSf-t 1\ Lw Lͣ]ĪIc)>8 t 9;L8>P/д-fj7y%n8 %yWXܑx2ЇA.H/|TRDzϦ.ߩԫ1u&R IH40zi }lx n@.gpgPQWPJ8)Ș2p2q{ ]>Cd B(X08>c=σwTn9R ǝ u2ߡW<0nx[~I9zbݾa,O) JCj J /G>搎1y^=% DOˆУf9!DOP_pͼ'ШndlE*!7yٍBf{yULH#sHq_B1$4 +ȂWv{v0] ?8GhahRC!pFnJ4 D(QKZ6ԞŒ'}*{dn$b1g@bq 㘷Ԑc`%,q. Dx 7Ⱥ}%N wKcq9U짮t Pw"*ďP(Fi! +y!Nr+!7XQX4z*vsS9` +N8*(5 wx]ح]C9`#h܇BW9% tc=B}҆b1>J}T8kp\~p_Qy/̅͘<<_4MN((B ܮv{IA^4p'w#`|T8P8@}<Х_r^Ef$\0SS]1BAX7^lTZ7k!#lvĮV ʈB J$D|)!OP?"3(]d0 GD.py, ϡ@^%~D1G#X.ɅzΥΒGFA VCFZ&̘az,z$-sf׿JW@L|N81A}g/̀aE\sp)*:Ż"jndPO4И0H/"q"PD݇OO9p+ ov{e:זpw@bq/-apz>7&QnWJēfD Dus_9E +s_Z2nۙ3PS>N{[*q:2KjgX.pׁ):z<]XB'ؗ +V3Jgq?HB^~bCw.Zr ;Ѩ yv d2o_t0p+褟|Y0gNaF!yDn>SA?)5ϥUjaX,hA3i?ԋ NrG}'o y"QF լK8-4s; "gvÐȻgN$jL0F!ǼpRH]E䋟 cP D!"Id  (;fC^BɻIfJ!xF sɺ֩ +B2oA}a^2U{.1pW[e +1C%;(HJ G +.SfQľ^a9d_ u< >: }CEd>䉨 iev5H9~$EM&TYn4\֠aX)#pw v!LBI+̸&9좧t}o`1Crw1@>F^A%a&V؝}[l[NDZ?͆UIJm/+!^Ṛl= OeXem ZQַbC ,&) VM; d~x q"ࣳPlgСyOrt\J2 w"c3D#,UP1}u +~=B}(g%J/ w".sv` ,PCNߩӍHP,A<}i"Ƿԥ(aק>M?}{9O%GV{x0˝Yc,+qdv`Ø{_wm*+e,&0F`MOY)k: 9-rXfro'p̥وD %.NWp/NuBw̙Xyɱئ.}B$ J$@c>0Dڅm=-sg +g# 4҉e*k`ʜ'Yov:RSYpzp0#|_Ž+vkv<ۦ./2Q?\9l}r70e{ <Xl8sgQ'|{]pºȒLء+rxfz\rv; + uнfzS[_٧#i>s4W!~A̤lK~7~ N9yua 1>#Am,vYl?ЃөP̛xDC 82Bk%Ͷi[h}d-vj{;Z( Z6lfUWaN!=e?>dGI|ۋLf@:/i{ a[s@er&NI h"S@ =OL`l_@-k[su}q]|sWrq1KSۏV,N9QFR/W2Mlw*n `}6COrQ&M7&uCrFp.LSX<fPTu\E-!ܳY x61)b_w +Z7hߗ5\ }0*۞Ө97वlE&Kn!,rdz|Jfħ|WkUfxL{^Z^1Cpcf~QjB;2U8駑 +|'roe.F Pr:NO>t91ۖ ;~yDOx_pdS蕺10L"]ti7鸴>,sg3.Q2Ygdcadc t A `P| b @$ RP5Sz!AW18⤅`يhEuN6a[Txzp29L]sݢ,)z#Ԕ黡I O_;bAQ+Љ搅FN +i9 9ôX2 "-SVAʚRGD4t} +i4a<-K>xJ7'aB{ջ`'W|ϲX|S4V.tӿo]Ik0Y,nRѸ|"w b͝#|6^cz`u{3Kd?A}30踶C%] ԏV/V|Wt:o[@8׀{X!1"t^R2sli5+ڥ9~;;; %:]盿%o5ݢ~ڟqYu1v~ +C㜚jG.XydžgF{rg̨69Lο{2/_LA0W'zY& J|gjhQgW8B!YI&2|Oq>`GGM19ֿm=@Y&?<#?kbPnI0țZ{t5x*~ֶ?CH]* #ǏFӨ?k$o: _ؿ&7} PIfʱY{i N65ɞzopw^8[FsטmokAzg9w[f)l0beJ%ND^06u=i׵fe<ɾ&y'y5Řo1|JoP)ڞX<3\gR>| җd z|&vX7>w\Yj~s{g.6&Yo:πW.?2뿸"{ ?n_w㷟C>dv$I~#7WnfsٓI8 f{+-~?/:7Te?q>i=;kՏtG$2/ELn,>nkIft.X[w~EOGu?j^ّTOȼcm>s;O:yв*o ]-{-俼tbܷkO㞇.zuy|_jhZjJ7u~ >=YIQ3ڟzIs?gzSw|AUd +H;ےy<ۈ=a=`>ec=@(tG8 QDI[չ'{h/i@ y'AMZOޒv4<wlջ~t$UGH|c6 $üWBO`Br2Hq%BDt*yz\~D68%""q h(2(qЅ褕ݻ]"(dǧA<,뒈Vs78f)YҌ̠9|h$dzWd`S*cae"UX2G+nrN[yQ-f!P~.Cv!#TU:Z2Z2rh5 qLȚ=u];'Pȸ!4?֐mյB9]$LB'47vǑQ0/ƒzeh<4% lƈu&/HrWEx-QWb O]@}:Q Ҟඒ7{c-1tBVS!fhlE -^`VM 5ZZkQ3j>1m~-ABޕ1eFVRS/OYs]\@~wUu]ؽ/v]"!8 fIfż*:..t_JB@EՂ)cSv꺜0ԵV՟dܲ( |M8Qd-QƒYnR2tkɔY׬W,\tָ3kVyW{Jsʍhڜcwe`mkM^~3%@у*`4DfQ(YY5Yټ ,{/?2[d[ 5=AgD@Tc9 -۵"~,r\KLe`I,NŠYiD!M H=x M 'BZHN ߹L[M;nSלz_.t.]*zޘ׮5W;Wٕ9ɶ}KN\kɯ^?f}sι>{ka][ƺ "cXSfbN~n~/aTԋeN @2IO -QF*`84*$ !aH0(@0 1y_Ok >?à 2Ďiec9"q9R!H[AmMP -EEJ2zfh5.~ʼnjn|}xJ3]hRwQ"U܃]Y\Yp$Zo9YO!Td].e1 `1MOT4ٯ̆yn,N`Wb] A/ܞRaYI"͓m"OhI*p[]U6 ! [b=z=2*;'5tFYOPE Maۖ*:H -N%ӜC-:8"*UX<ADZ*q7쉝We*D+ -rcz#  -O@1KOh'12H$/Stp[Ǫc Up L,`墐)9!bSj@",x9n}^)wE >ѭH;M4AXB§ʫ=)&<~=Xk,V\ueS+kP2)K&BkP&P/`8&?")mȓAԝ*FbZ<_4,eV-Ғ|w4j5U:{+`ԋNM % 1NVt_=u%;G>4:-_%ڄ,o=W &M<җ3b)P5bje$!Hjo1v>ZK)v4DSL`L)*M'ئ8biSuN8\&1JhFH @?[-(xl-^jq-@R8Ff2'-GeL,:YDfB:i8l,=^;5Cŋ\ڌJCՁҘKgE6l6?_r./-;ЕFU,>9fc+*1Bz-LR6I }=*;3pz[ -| -OdSw5F4W>m?LJ[-5U5#xN%5q~,)5 ӻS;IҎO}PY8^0~_"~Ƴt/R(F0v%0AKЪxek36Et&XI@jG !ZFmW K +}z ޔ~OMqeF0eh(h {je}t\-! 'B.K)6B @\$ʻ R6^Nyh=r}b{[yˏy-C@lM{zBpK~A ]D36|p ?2pOxMX<.8:@b nYu oxEk{|"_\H% -#+inSH%Ț6=,J(Ǥ6|pL{1 śo4}rb:Jem->-wPxRzBK -+O1ct$f]ȇIb YҴ٬F4z1۵KtYX$=XCRO ]l@Iu5ͺw6:?TV'n႘Sl>( -Ԉ#Fq+ۨ dNۭߥq@׵,b/d\8@k#VN 3wQ괦i'Q>RPIHRr&^W˷ɺ(Wdw,435"DN ?7ɲhY_^p Opqk B%mjaedݩ#+Z烲I?PbQI0BDY[!,dI 4EÄVXV:sFevZ6R bG k^K[Pcl(m+i?s_9}&fPEO":_OY5D -qA\g]]v`Fox8f">_.&;'83 ;%~97fa igpo|UDכ=|@9\jQ3O #| -\U]G1~]@|8*sh:AےF\*cjBBM^A?9Gvw@ZaŌMkR\[ 0@1 H`.>Eh~(XܿatL/[?l!{m)J #E"2nl4CbT0LTϕ1Id_* -`˯t^'HԬ1$8x 4!]}d !VH rZA|h%@hJiϨ?Bɑ'=?ɳc?0|R_DRZ+WFoEZ2Q~vDWdkDgԹUk7r2͂^RۣwxYViuD;,+-HHW-m Ϋ9*C m>r>JsU-!ɻؔ+Tcd8{|R>Hf` aEN9J8D1X!(Jl%@f8דT=FV:UoP?1nx+$WED?Bav`kRS-KX͚G ЪgʢhyqkE'rVL5PW%Q[@x:k3]w/C!xD*S)e9}'ߍ! HShpڂ/"zOU~9U9DDuw; -M:jvq4Pr{N`myvt 8 k80Q`χ-k؆Iq_5"G \x1Z!&7nJr$* aV.)%.MFK09H VS׶Z0s5aB^ucF!Na> s̄j6B5[-6LU . -6Kģ/˴C# `48]*U5mTm} &D_"y3xt -XFPP^#38 ǘPmpۥkZ"brqj  }TIT+h /RlP&ɡ}|D VTwDCK -Օ-aZ"ՅWLDGĒpuJ|Hތ]L$p[&mGeiY]$e$5O]IV!' ---k滠ESTRYd %64 Fz' Ƽ@cP' MMP_ uijKyG,JȕOLZ,n0qeQ񘩟CA;J"q(N2Y 3Ύwr5"? BZ躈/ac's6U`w,H]ىӋg9̉hzٮoro퀐MA gI#^Dxt$߿C\Ƨ؜HզکdR/Օ:4R"4qA$ķŒ2 `(jlѝߍ'Ne`3|vD_u5@EL*i5;F[]]#FwLGb[Y)$$G0'`hIöB}"^gs,! {}7buܤ7t:r;iRa sMk}pO9܅θ3i²}òk<03(y-a7"B bYM V_ C!~;c״NäܑU!  # ¤iCj -u#R/2 -/|Úgjw@nM8Q{gwˤ~Qjp=#HKA3>gcvi)ހøWASU߅t - z^k-΁]?I:7f(DsX҃r$DƇ؎ ƚ$1%K|p#  gPdiE=@*W2Ou"ŏ~ΫN -b|_a -L*7cYZ)h _+I@dg/_9={(4J='k_SC2$(sG7 ,F }`h'8Cڰ{1j!s1w>u€! ȳnѵ=>PG}}I,cusGc4BUNL v-ITMàEl#"g! hчb&f2K񓲱擲Ey85aaX/$J8}3ptiUٚC {AŖZԡdT, y*+.FbH`AnbϗztNϚ`({#lA("l-]հhǍ2I k̔F.8X4Od1ESz( {rS*2UYPS*]ՐCEZD2O)Z4J8_DS{ cou'7I oʚ(_RcuKP/L{}*EM2z5U)y2ѲW# M? jЊp䔇{dK,Z?Ib(RM g#kb?t0ٟ)ܯxUFv ,Z0旈uAr݇pM/to4 x>WTwWvQjbOh`Dߩ/ -(y'Y{vI;c`n4`C,kgGG;!3vC\ĸն55|`01`I-#5bYXCYEhQ;.؞q x7etW}ZiFn -g3,bKenၕ\%a^LWdmLJ~#X7@wj!qAo\Z\FBl!]6¦ֳz+X;t `7䟈g0ݸ>ўIȡ2|@r&Tc~ɫ$F4se.Rg5G\1mJhʏ@ŋ?]pTuҏ.>yuSi駄4 -Z -J,|Ix/9(!T/5TQI8ǾO2:-4Cԏkf0q*JMrX7@i>UOsrldEuKBj3?0EdnxՌղHIx HLRJ%kPx` ->I - -;}vw?: <`ع=7w;Xpp{y; 5UڃgC3Az댯ܞaAp{ݽawsy9_yܹ,ۙ٠?g -;!;̮%HɢDMG*c1W -0EQfg=JhjW)gr@Z -pJ6r -|C9܃tf:4d^Վgu=&0۪&XKJR6㈛5CBM,!~ ="Y;>;1fe5=ÿƹk+rŴ(3ûs, 7b_cpo n5xww]\oq[_rlu̐#Joۿ5u~yA ?QsЇa|c(^9!A|x9k ׷;޺~kNo5fgy5\:]?zsh2&75ۙ˞ د!ޚޘ/C.so ?`5Wx{wz |;=9A}{ּ_g9_0ƽqT9޵xs߯Ρ;]syS_9^3s`!y\|yssoޜ3:wgn쵎)9;c7q^Z< j]^0{s7|w®x9Bܱ^sa=*j.>0syo9_Nß58^͠uLY}>.z7~>Po3ח,gt֨r.̜wYs3cowakwX1_{qZ5ma'rp޺ֱRR=}u-P_^}Yg?bSZk>4~ǁȅsaq; Ds>x8qBTq%:ns.wwp_3oƟA7\^5 fyW6޵F#<EMMkD.OEQE'Z?Xz$Ə_1Xd< ;}Ӹ|okN CQEQXE׈o[8ylbAH -"1̰O%JCQ=WBL5$dLY1e@@hs6 - DmAzxqAẎK҃<.\QRD3yLeZ3CTC0klrX6cUpm0ࠀt~:KZpZ#cPAbi (hU *դh<lPFB/e nAz V#Hz\0* jq0ZGXǨbWbp5xls[ Gp{ F`N1,/iA j"Xbx1pt23(HPPEI5i-<{`%E?f,:UdY\hUbY,dIc *fnPNRQPP@J Z%@Tt -6 -"VaPc-TD6+BΊxP.XL5ڄw@’PP2T%>F&\ɕHV2bVjS 4%FJ>-1q@ .Z$N&ac aIPJ%h'6;QG8__4Dj5s$ #1ʨmueju1p!tI 7UZTGSgbH2J#r)\(v'* ԵTJn28K6Jd .)dt1yDzU.E>="Օ}]H;0uݢUl J5 I5pZ_ZPIL ݊ҥ'ΣK8/΃); :iu3udD/DQu]}] e r~N HtS mU -G뺮 ]NrlKtD} Fn}M~!lh"ߚ1d"v¤ $nOdk;'$/i01KI0!}XPe 5#1фP@!tba͵j; ZԠBZ"(D -6X98D(Sz@tn0 0 cla[d284&`]w@ Nq0&VƓoAkAƛ@sP&QТx+u)躽.hXu 0; "l:F`}(Pf@`]LYŀ) mF:&{aDӈm( Q4$x )}̆\}1@'Q$gS L]׍lkpukj8]uv]ש$xju]b]%]ש ļ(/R w8Fuw] ]x]ם2Au]׭2`%]uH9.рt݆u PE3H֨cD!0}8kTN;!M6bauLo|o3F?c^!檹k,ѥbMRɦuX_\WZ#;y3C7ÂrŨ骙 ko)핢7A$ϔ59.\e/\GEǵ>fw&e~ -PRR6d(,{[+2WzfjPl: --{{ -\,ph=k)O6Wqy.mSyvmY).dTG lT]kS5*̟K1%u>3ș-:IRMgSbMy: _|yvJ1a/_cY -(En<Ǜ'C°>IN-;~2gRl5Ry\9S5WY6VYtfdTqWSo'gA-YS8i_UtBDz&+YsM?EU]K)W -X33)Ckʃ![j-հAWyq V[YW`H"XH6`R ϴf&[&J-GNΓ#- oX|; 0- $g$:`h/`LsLO fi&Q0|p--l$.`$"Ģw66yv@ -](&[g3ԥ1 4JIKH# RМGR]6?*)PdTf8Kzi' ! -a S1L"L%,6˽zJ@6ΑEˆs)6*_*`µr@R*٭6>x=)€m!s; ltuqx2@f~ ±8`R|hdZeW 6@Qdw;D&OH%%r@ARaGћ4j5~SM`X9[VHgX*c /D8Hd㠁ÈFHVA)B"JȤ$EZ䠔PTJ}Ni9JLI2}1azw@xO2HS څU.bRƱ$DI ]Ҧ%P+(P)|dFLFi5$f"8Ѯ53KH0 bHTB -3)QP=B74,"$;!3[}hkiш>3zy -<@랁-heA&pjZ)f81F 3;PK -mnF!cP۞4Qc4Rp5yjF,dV24hd :J:q"hl!xH?e#錗. -kB|߅; eADr3`YEe: Z\X0A,`@pf%AC ,pǶ*UaMJz L:+Y%tb2!@~Ef_k7̰bAyF# -G < CXIWiʯD { 6t$:Pi zֱ{iF { E:,g Ȋ'"gxѴtLlC_) nyBi*as!+ZЈI-:c<*}Мj2OSyGP=Ny(; D˴o H|ԆpgLS68\(&MB)n)禙t,&7ءDCD]{Pw@xuFpOQB&r1LZ nu՗Nw`+|⿈> -M|4&ldX"Iˑ$ђx7% G /lNIܙw bx8I -]3-`GBma|S ^Pf(@: We#3И6.t_a&P 3I-lqTe~C{ĭu#àW5iaU2ҥӅFn׉" jbad$%&Z=Vkh0КUƭ/#TRY V5'kêHȩʓ<1a;H|4 -endstream endobj 13 0 obj <>stream -ĩaBEГDNFĮ\ck%c΀rb[(_Bq K!ʗ|Qb|3V1cf5< G฀%Ya-퇵^ťd#kiWAO.>M{`KkIG6y`NgVy,V%gdUJ|,΂[8JX I4J@U%D8$ ţnk7@J -V}9%ɉa:N *ZTdJTMhw@(@G` -9 :;1 -'ܬ'@3B'4ӂt&VOJ}w@hhHW$P0;-$݁i#rE\_u"N 3I&G h JQv,02r@8M #!M@fULp% VjbjVZ}UFZR 44蠬<J  }æ/c8Qb(%DZ:XĘ#ĘzKl0jZyd[#‘Dhl"l2 $ $k6MUHU10P+ -z<$``ǃ]ck%O9 aLCPBuH} ."US-R=Rmr-/c4aRi=B.)ɗyHP{j8.Xi@rq\RϣCY؀aP[>jZe4f"Cq\"mџMZ"A؅UF,%VFLU68KaLDq@d4E#d IiXf i6.1 %\M wƈ##D FmӤXDh7,MjX"O'kiqr42DJhl9 Zcp4#P-[*EZ EaNZ `|,KJXePq)+c; TGR@w@D*!7Ȁr1u[ GbH84bS&ަM2 $gLc:x%ba8y1>|KdlH9!#e,,AS'x: bW(€U“PY%lV *`]$Xo@Bj uq⎄驈PU`< qd<hAub >"*4ЉD1YNr(F1q߄N`]o nhp)'d'}%M2f4Nabu6,Au4vB˺jJG wl{FalΧadxD%9Jwyc] V&ȧ@< O k|zAY pS arCa8 H D_uK[th5V>jmXait;Xi1"SDa3FM |CJD _ Qq2 :lQ@%JАƢ\9}٠0:N.c3U->\JH}:Kb('K.u(9i(PUɬ|J|NYR*@я)ȥ`m *P Xl}"IwVQ0Wj&X] -@~RMm(NVD#)((,8Ft9h*R:)oHC2N2r< -ʏ(넿Oh7*'S@+@FxЁѼDgF$^Ckqrk\>]YQ60أbx4Ov:kuw0IȬ[(g%"6Cc`*g -VXWVLw@*. yHVh2XL9L,; Z8$PFB!yN^` 5x5$A0$--K ~-2yDPǡR>lMc7?2$cM*7kufj6TFа4JT"øW7?HMk[1ʑXYCzho8ҧw!*,"%NrN.0rr]dM>q ixxU#HKΙqNN}n0zVOvus~Nf}_ꠝ&, 2 -C<{g/FӰã3E=]k:1&tHteQ{(4hj`9hw8ȅ Npwт]Tmܡ7, Ć,U -aٜh6~ 'YKAKCbS}=kJիwH FFdՏxgcd6x|ݮYqKȮBvVO5\9b61 "#Fmt!j~V~͜.L8h៏U5{M-z- *rreeA/[eэA>.V2`f\7}15pyw14ܑ*cg#(lc5*͘´S>8Gѫa]c&{dc\d'ftfEp -l{ x@X(#nC6% Wq!.lq t:>.$nTC#A[ 4O hv `rtޞ B* `W.'|7]v1KОoVQ^hG]?c9_8Q`0(պ>@?1Ы? ü0NtDʫɂ-zZ&i|N7~o} 'Y|U- 4We>jr<33cA+ES@p"^&% tW޽r>kV#jgOwM˄Mgp#&ːQs@+z* b2Z=: M^SnH2 _?[5-Fo9taV"k3j)6tά*LȲnp R"q^L@14V0у붶[~,u !rL &*Lhua3)ťHz8yI^LJ.lo7җ[X 5*XH : xN[9HWI}*f|oD:ST- }E#Q>T;Z!(m -<5#J[^G;kB8t<0|{ a|iy~B?% HNNSi Ќ΂{6f6={Dc &;_i$?9Ib*vB-&0s;_@fLXwAk"l]qc"q -;OOJ 7r2N NJ -crFm2A~VJ6U./J):*2ҹ7vXH? DJAW66c݊uJ7zOZ0U%`;jA-1#Qr&+*zk}9steuн5l&/ )ZhI47Ym“~L>@p9ᡋw^c:&Od>輾9ŗ5t$o%*ۺn]؀(ڵ.'G{}'3VR[ A}f˯½’!4J-Ӟ?)7T|@Lpt1L ۣ T [UYq{pӨ(=H`:1ٞ8@l~c3`iѷ{H\ rx*h38PK>],Y>HmT8WݝK|5+90u=|zu b&(|MF"&8dGF^.Gk 8w]S8(VT4x,YVne0KvӮ<3Ԑ57-eBƞf5Y=뇣Idh$@S`>T?RjS">S -y: b=vV:#æ hgGEyMH:/!Bx:.~TnNW[ry3q8KN|/sa)se52F4 1οd$,^ p%莽IcO?Œ8h=>YMsC&cW/iN51a1!Uy%xSc$a6bAGFn*ɬ`]lu7! ---*BQ@kCf]ίp4X0ܰ%ؕYc_^1/%T{XO¡ua;L|EG/c؆8 e MOguNCR~ЖUV$v(hin&~,:yVpuTĥ>0׆t p6m!BB -ҎBv_7:j=nsן`j=+\i#Kc> b{OK9k# 5UQNǀIܜ YU[ gaW m M%4ThEle+A^gݷ F˭&3ĕR`C,>xece5*0!g{ 55.Ծb?yF8iZf r13pl38=!yhî'YKb4rUFd {3CXZ8TSYwpA(wng*є:ͱó}6N.FKK8H/}1i_Nd>0~Ip%X{T֘DN$I  QBY´`-*oU(Ro5px1~8\t@mڙt:#2뉥vlSp`RG`pp,|:2y5(艥knJBL21~I{GyL.Ɖ4r!P-)LbVXMIQĔltmSҢY)´Z6utp8b aH[<Ќ=լ#3?nՈi@LsWb"Nl5(9Һ Cd=( ъM֞]3hyFltO݌.gj9(p1d>fL&"[4`k-)sW5D9- BGG UI[LPKlJUXgNQ4Ję,h+T,Ɛ;~ Pff,ob('}1OX1~wm~'WĈ3c%?4T~@ ]frʨ ٙ~,rdsҢ+"j#F*!)Q3 m4 _>!LH'!IK;}+ - -"}[UR|wɜ:7Ev*o]X;dOpZ\0]0=tOA5cxv$]F1p`U0V(!8N4 ''Ea՝u|2elթE -7Nyk oR3ZS$x ?fHN}3Pf)fdō qC:[-3uR4Ω|d3u*@Q /weD=w.*fYQam1-_}@M -s]{~} 4`,+e*$4:QżhȁYhcF(>ãp}r&2Uτ|ˀ;&Y%L`OY±!HZ/}z4 ez$7v{Np>@Y:| <!8 p԰ cJyۖTm|l:mhˋsl4 ^Llۑzzj) -ɝԑ_"1ۭº&TC$n12o1/u zEnE ђ8gteQ\`^Fܗ3ی2q/نmz;E /AdxPy3Ap"-d>Di24}4W yPM6^Fb2f -"ۼ4eX5'hQ*W -E?@ L3W>;**ض‚`N*>EL]%0|8BӪ(5mfG)dl=ѝ胹 B<#Dq*@fnURoR -!K ^y9q?+D)w{ӗĒX67 ATB7MMJE!su9Wt5M&mԖ!}< LD/&b# ُaF.vZ)1am{'j Eh,Q:߱J B;{wYX&2VZDaXcR/[2#4#5(#$=#K3PiuI]1,q Z; -z2LWFQVZz4 ^ʪeyUFP4[Iapo/-;W6Ew'm[.%#}v/C[:<7Cɔ5Hd%g.H#Hc$w+#0i>$+IdZB^2Q6$Sh'q$TΫ"F:|]wj$@~\HĉD[9Mu={np`-W*餓*V,-(Id}vxFwEp"T`o "o*9xV?)m?z 6An&"# )RZ@UH@jgj Z_=D`Q8?-LJ{*=DWX$vmh)ގ61;S1A^pAlaYZ5T"@$ݩDN`u|Azнd<\^R{*h;{X,^ B{ tGy8p} -![ 56F!!D\yju OuWb{,k4ju= ^~Ai}ݜ۹AOڨжUES1utR`i8h@د1 ܿn!TsIhI'cO+sGTV}0Oc/|Ϯuev wgnb_ Q=\< 3P/I]K$=>c0k;OI2n@;NO0#D mU i|U|3׉ -+QƲi@4ˎ&=)}*M:7W4QnLio$$/`͛0A=upvCkh~ץM̦qxq\^Yu"g*Rs!VyuI >5=9|֭:)0"p@e& 륑#ki_ -~e5v(ŝIL\%kb~;]Cƕ؎XvPg_qѲZe#u`}{1n=mmߺDw!hҟ$mbh{Pj u}VL7PNNu-;d ^3H;m7-f h]n@@uTM oznvv?uPn7&Qsya~'Ӻ.]${%V`'#.ͭ"gʸ 5B掫,.Nb[;iPߎdQhIi%2{YYńx#mSʐq).p-\b׊AaYteb[-Cݟgs9oeb_򣂄q;VZ_AB5/[t)=*ȰtH$jnq#b̸Y04"rHehp.A]hXb9^úu|W3kkzj)\Y LCgI+KVzWcDl+Dp DQ=W9oc,#}D@MβڧID*d0]/ jq<rf7H)XF}.ҝ}K~#hT, -^;<-9&>z'>m[>D,9ru8zvf0 *EjCpVG[GGZ5ď3}^{4* siRhєXUlֻ~XqI >~>_iNt |,HuE2|PLcc,+ŅPp8`ƺ7y?YU?U*j;kIqä݇C"T q&½`hh -d9^kR<6v1S%= P]YOle^`1Pj?HmI$(" -|Ne&V$,ڟE"{^&w޲c"@!49Kgwliu"Źžfy؁r%!(ܾ186SUYg qKK/g8]VG4չ5 r1cî{}~L/H)B;>T3"Nb G߇$$ 5+N+P +d+,Vpfz;Cm?b}&L_[:Jc+떖v]%͘ՃiTW֜^sSUYNӤ+jb5=8N*ҠkQo“.pdx宲ReE.ыZI׳Rj"nVs?pU-nmS(…w>#Mg!]EjFD32 -v} z8,!.^ -׋(44?h&?gBJt,*FFB MӸ|ӝTL9曌t .<* - tCtP55ʁ thcCހ>Oi'/S )S!`96E =#$ ;z27# )Y$эq'}ja.P,prR=<~FzV+]? t#xXU-b/mU< ՚mD-LdFMH]ɷxaw#tWС6MK!'R)4h.%b,u{<)6mOS͓׬aR{I",`)Q]dmd@OF0׶zlf'^Cd% - '^5Ey(c6*k6s 3ՇY]\($ P&R;[ @!]tZnc[ÄR\.9?> 5Y̚o%p& O ꋍyʚxsAz&+byzڣzqS #{LWB#;2]_L߼v܌R rRZ>gBlr!m~.VMû 򢻩O8:vg&i? DXԀBܕk"M?qɔsa-十\-@!82REHyx=Γr;P_6|?@S!&@YD -摃5H&F+Rz#d_K?i5@>0Wά7k'<ڬ"A9Y+ Kd9ڼ#*Dqŕ{w`_KHݳvV(jDXQo -t|Χ^dm\Ϳ YJ9̹o[xTZt8V>Ih.pCLdL-Qnޟ+p]oj˲bxZeZ.e׉@2/Ӡ/)_ͫ Ζw~f'l8#-LG ~4UYu4LJH2veEڰ p3 "Uz:L)g." -M [kEf@v>#c({h)bmx o^klU:j4ccQdբc$1P s_57xJ|Wju-bT@F-61vTOojae[4MH2Rt,mۂC@AmtWwLm+ڬv&(8|:˧qQ>R=&>B)99T%lK-6 8tE M㶬 YJ>J5 -Xj*ړF|h8~; A%R@]l-4S-zpZV[@gANkg~}MrY%dVxj&uS| -.9_T3Cx3t",ƠٿeB -| P2(eAA$ _@U"xFW27x0,Z+ZXY&P}zH[q콍Jqa7D!e$Ft靫%XcF2ֱ-ڙ?ePj~ B HV68Y~b*CG6>MG]k̞ 0_.ԇj\pꧪ7q2A/Xj/x,,:Xju*YhG>0٠Z嬔ŵ6G~F6pIf{` x5=@짙*Nt7lpIB/- Vhq hj$q)>K{$/XmR@ZBՐ1uI4.98a_qk"P-cCIͅ[ X{wjr>cm=;z)k+ѭLU[ؔԌ54i~# k6N{۽sz_AFc$"\:Ʉ -4U=opoUjehǯ1#.^ '#>KnS/F6o;Y"%ldrW1lB9qtA\>ɱK8pI.u37G tQ kf.YG0?i"%ykޟ}ke+YqYHc69G硘G o.1ʀ& }G<2fxGkg5A8wXYnGW^eDX>vƻ,3[&;'Fx9[2W@֡1PޝEj8` K9p.c#) ם(_H@ zeC6r*(0lCDl(ޅc _k#e)'2!d #R8D73YԶZW2i[.8H(ܪ/Z@7hډ>r^KdȖ'œ+*]X^P o<ИȜ/cby+#Kz$VO3:l^9+ E{-DzZmd{ ir2컛k1q`/2uJ?h, {dFM~buӮ_.;Q9lR(D[ԐE꒡{i8[3tWƉAv>V9 ؐDa SDge+,ia1`VM㘦1?6be 62gؠfV-03ҭ̭9-E %e7}evxԁFg㧌 ۇ;맳7hX>f@&"ʹb8u:BAUbU5 DFs@ؓzf7١]z˚v R8]ī@B 'ʜyW kۉ|U<{D/M"sѝA׽$#‰(`CKy. pE0K.Yz*re}g(=CF;QKp>Tu6H' (:fDDk Uv&$$ih4, p6M*mƏZT-A*,$~Ƹ4ƾ~8{&!;Z -LR3~Ц_N6o9+nr|N!M^j$9 Z5T10: Ni|} XpMRMVR`=}O -]\*$(fVd|.>g^~>^$8-2)VȺf -qcrgmȄ[N薻+d}- K#QK:~KFhb$R@|PJ'$ܐJs dncK%ʰqyVC 2+>Z#m\,Jr B _r:f$z4. X& "Y%4JGY\ml*0hK@9|M_pW&!Q(ͦl5LMd eefHC~jeU< ?Y۸Vu5_1V"',ug]NEȠof/J"c.tU!*%Q VROv`P:$ʷqɈY|ԣdMx#0@O0W[ 4+T#iBO&@O`u^ EB/`<6zz=a4,KAUp di#(. =x4) ¾0dm\ƝG]FYj2}# y+6|RQQ-)-GZRZZ5%[YhU3d!V ->ANZ$'HPhHD6D*UV5CjVOfBc mlaQ ] 6$ l ۰ԾpZ<+'ӊ yjUkAFR4# KRe$ϸȄÒ`2@F$"540k! %iZBhCq{&HuiΆ~ -2 @My$UCϫqDCBedJ̕1q]p1VU%6Ϝ# yŖ 2}b=9 zw4€KNDROی&HL(,% Fma+O櫕rX1>Ф ̂nԃdQzR,B)VN,Ao͢ I56࠸(96ۅʾ)>NEcI=Op8$Ҧ6;Y]0Jm˂HLxm20Xs)l8)WP`I=jGd=0p6XƆķrXd. -[AA]'NZ]GĊs:SW,>Gxc% ބ -o I*uurqx -A] ƠչXِ Gq`ǒCJl jĖ)Ɲ&IꁆDd f * 놴۸lZTeIXiKEFĬXF8!~t/ (,Y7F9q -a16n(Lx zPim\ִ Uŕܐ -t.٤3@QX dASKܳ*(e2o4=#z,C3m!a N>bج -ܐy:hX1m\Ah%&i8%d}7Sh6D>(CnH?T[fM $!Ef^R"dn Xqc0T&46dƅ.a=6n@m+A,fI҄ިhxj7TPMIH.0I`HJ+m2pp@h)(CtCS F+4J`F$)e2od=| -o ųvPX2Tډf -rR`\adlL)zaaAT)*: HJ=*iV$&E}iȘԾòBG_ BCvv̇.Z+q0ց`ùazqqD.z0z V@@kG]abpHYoR˹!R"~wQoJjy)Io@|V]/J y<~wƷ,.gwbLfwؽ.raGW9klnf'; Pj7U}Q虐 -4y"o&DHs 5dr`ԓ0iN +A' ZKсGE!! 4LLMD4h*L> S m1|3Ja^B`L]Q6>D{yRMQ!؆p݆㢢l?X1cYHl -{A۸&RO AGB>,EdBUC(_mؐ"E])CPEV>l HaM@8`e94m\#5cG2TDS"7fS˓V&#٘ Yy1./9=Wr,۸Hv`6۸\9p(beTI#*snLC& [fXm= (h2tJU!b`iCHV oB4Kʀ08m%-ցUKCp),r@Rr8շq=,zqg &#) -)Lj -?A^}D._i.3A}Zg8aAB/gNECo=Ĉ B8BJidRb*T fCfXó'"I6Zz!Fz .65lK j.TK6J4R(Ӛx| *=@Tb2F@h*o: `L9ӈi!7(8B题FtY^ OƅqG+[-TIe7MFXT3hEkMZXMZbIb8SIfL>C)$mƁ ۸xd"IUCNgT6*x9̺Ed*NRw4KmRdTQZ|c^r|ms]kst8:X?֏0sֿq*~l5_c;rmj77Mq;Qo7Vr}swm]w{ew_d}8wۿ;;s޸dz}~/vX3uo4Kk}mr;{:ƙrEl{wjnvۼis9~;ovMk^zs_Rz45o5w9ߥ.vz޹|;={9-nsݹY7*4YFpRu@3Ūlݼ/9w^{uo_e|s.sι&xc5s7s2gؕދqbpaYy5e,Zؙ&>f;wxy\o7Τs:bwy;=r>>1,onM1~>^8E.>j>jjuS8og\f;}0w7Ůn]jkE^i%{/v7}T7df;q*goL5ƙ8-8uoq{Lx͍So<>77N5G1&/ X  PX^,γ7]%YC6*h*%{m2r PP{yN i-/Ɯ|f/GDsTJJ4Js8kLfmt]{76ǫ{Yfmٷon\]wGm{;9c?f|9nߙkrSy,ޯ;7θ/ſ1o}T7b{w7{8/w_3c5.7ל.v{}Ms3ݎ7k6uoyr-vq-w7ͶofguYb\w_=;-vYs^45uqo6qϜ3fxsQin{?͸-]mϿqĵױgf@DL84UX^P4R4:&("0, -aQ 1ʂTTBj0Q2?Rhה+y`>0$eˣfx'Y90Dѹ?k&HtNˍEcDDM`QJc])G]8uP]IPj#繧B$->+M^<͑YZM얫 A:UX ) e3r_!Y7 #qKXNIA.!hQNFjknc a &'RFe r%& R$l0Ta@t,ހ.p-7Ͼ{U=.s7dq}]g5l ʒr0!b?23ÚzRd%t'ɐύLEr< tE813cTͥ(j(/Y,un12' iM-MټwhbD#:o8MR #Xw ?eN OGˀ+f15i7|],>#g)g{+q! )نnLpK&ke|E 䫍~uBvIm34VHQ^-V@QwQG+U<:@%h[G&2?  k wY{Vo1M&So^c@da4-b,=Wx o#'29+chߨ*/fORv¥?|b5Z L&T_:ӑt?TA)/kT5TѶH GQٲ3'Qi0&D ڈAJ[>?-`Jl&QY$xgSY XQ9"hN & f~E4:]0ngpBDk:HjAwȜl[x,kNuF2h[L +ЪZ? {CTI-`7rf2 6R) *f14$r (ŗӅwv欑rS1RN<} M쇸<#AAǿ;oOKſ(;K -ɇq 1orުg۸J(0MxB -]wekTryTF-#uTaP.E`Q!޼Y[M B[i8@-1|5/pd"<or7mD+YUJeN0>A5iC=s0! QsKbA{ kFHW=Wj<>p[X+CգtH-\ьe#DEmR:;=0kۊ_ːSA<(e ^\1_uq%v ǣ^mPjO:Ѭ43:YY 77fGa5UûYqcDeWOem1װ>5.Y5:F0[sun)D`/8g+m6LA\>Y[3b@C! ;s}/pꠠ75,/?&RH4{L0`Aze"[H[.91\ʁ{ ۹h6*9-Q T]Jda(V}$Ą^mv"e/{V*yqP념%]y%Fd{, -ڽ^@3] -Yj$0\ OZEa s8(0A^)2dbA  -rA2,%<䊥?9".¯De+ Gc -,_>eE]5|gt5aGCC@!v$0sc-]7O$eSC[d Z\5~ŞmJ8HKo]hMw4S橁MƹIZb!Hu(ci;~:PSXzm79-[U5p"L&/t6Cuk,,1y~FS0SjP"_KsQIM3w"\Fd&\ =筇j'9?I5 -0A[Bvu(Z Z9NglpX%8ϒ2[bƆWMclL%VdBg|5(Cs߁ gǓ:s#e2W{HF]rj|^V4?I|G!q# &koߘ {r!e; -L$MF7HLݿ1}"))ЉpIt"v&8 - R*OWѰ6Ȩ:G{Iggw \7dPNOڂ5sY/ŝJK;X.*'c!nJUN<8 yp/j机QЗK-zuxge{l'9*2pt{6)/n5eԏ8އFv+\dwYR\a#'ax 1%,S=N*GI3|h]ɐO~rgU*̎ x"hxîV̎_I4'F_-C!5FMoKӚ0(]NT~aGOxY8JCbc-T]'U wN#ujUZ$(Do˿8#foijDU -@|Z-oCJʞ̭(y#3uS"rӟM)w 0Kt;=868_mݜzP - ""if9lrŧ\KNdwJ e`s:/)dS>`S;<{(`Ƥ$OrhK~ɂ̝\S+LÛ"{8| LbBXU B/ggxr-!O FhSf9?/0qw7aF&o!ȱ8VtͪnSS>;>ՔEFj!~^An+(ʮg!{tyɍ,Qӳ[D&psEThVq/i&GLeqގx ˺+v+|f]NVpSFͩ*Ϣe-Q -s)]!, =""DDd.8ȭ&0aHȮZ׃bhNsŇ s*J1Pc}<ܟHH=OHO[ow546P%Q+(Wj3FdžA)f5͚leɸ.̌#69tB+n7qfTĨXȻM,h] ]Y& Q>@Kpqh߇ qUج u&4H07Kr$,X25½fR{\b=TWsƒ舭3PK4?EK|Mllռc$-Wx$&, -t 4Ti4Wy\664 ܁ASQ+ ZQ^zտO -]Xd ˍ -#l?-s҄p%R}[cyZ[cGc2USKnQqF1oEǫan"hQ(]rhSњy\yӠҚF7oDWy""?@OqxSy#'ry^t -PJHxS;wR Tmj*v ^.{ƼI -MK -0ߥe$WVF/v#Z _a5u+ 'DQ:n4aٿhVu3բdQmPV"?`Rk,‰̿I GE[6%`9?QʲU?ZU$8`jAx !5۳jEKcUX8 h؛Ҕ(fp\;/~p(Pd `Y6zA~5!\%7sY@BID@tC<6N>WbK+ E34w+4/w(< E|?ƜAolq6[IQP`Y A| )Sr0#C\d!.:8/t0xZ3<;;TÔ0$Yyc8R.tDmܣnuQI+ ㎯Az -'H/D%giTb*6u~<`Np!5 y]uE2ShBH#% x:@ۄ핓,m]djcۜ#l !.,[ZB)gU޿r~xAPMM-kՅ¨~U <&Hx9a#l]%Xbc8, _ ) &!-ݷI'́?Ff=8_JmPtR-t%6S_OSr3jA:^.=}'FNr]z> -n#r""|u8:Ƨ6XϢ-TT(^A|j+.U_$H$b8g+!l"^H g_y}}7kӧ2#Y'#ujiq"Q,C4>*늢o -@GXoM0AZK -e[U˿L2CR7{k땠,:" 9qxcqi7Ph℘YuE]/$fA_ʞ񨙤^r&ѷ{V-\qj*DrT3&݉׹çd}X2&ئO)|6,wwTwCP%ϋ99%&ѱr5ߖ+Y.'QCNE>ƕH>Nܖ+7LǸл+,@퟉1|pr%pTg@՟X~{ɸcu9KWݛF'=.㿛!pܬLyihlO&e,n!̖n -ySYs xjYIhxʶi5Je}/D8 D-6)0qA*sC8c*;8sWݼ& v<Z{r^ONSZDpo~.2f4*X#];.kȕE9{!daxY%Q)/5Ff5YA;9M婅z'[1aCbSB -F\qI•%0tY2TS^<Iد"mE*/*'yLKD-U j }m:B?f \oH9 fHНo XgQ.6¼0ӭxJ4}QDʶn/G\\H_1> JsZz$5B$/"?@С;ͽL葧!K=qٿEHa;dtԣLc?phDȋ:ll W,] NN]:Z*K,{\R `!fhZJLɛ޴Ln!|(»Ԅhz7BĘ:%KpÏ~[]* x|{ -Uh[X&Vd(/_UJ2p.CDE e(wjcZp+vĤ2[ "bGnޕ]fTg2'a[+! -Ġy"v٠1ȿE.|MP40(/k1% (2/煹w72:{R] -?9GLrjIr4{}QU6ԡ8/e4rQ*;'+Y0̮u2rzػ]KлܓaECNf G܇\ShWM3aһuf!XmEWFh{엇?C1֓%"M pvfN/6]{FOelIeNcn#9VF%_W@گcŐKF}xݗ80l! -'[Y^aM1X18M\TR/ܙI䘑ĩk98JSzyKY@ qn*#ɶUڳ.+tHcCtۦ>~"6oCT uЌV)Ku1Nsݥ'ã_-˞a1٧bShop5ȭ'۫`j{\&.CDWW=h"OՐ%DXEFqqeN{GӴ׹"B$5q:- -{F\Wgg m &ݛ77KL!{%F}k;QG6j%*lTVDTKG8?:{1h10 SƝ!0q r? ,gދ0D܀remf lMe0`J?8p\'Mx,h70 NR^(SywBNk}Q7i4uWEm ?`E:װ}D΂n$m}ԄWcqk!>yz,X JaM \1 -+/}3#B6 jAU $ȌyqXDn "̜uJgt_xDYHlCN5O[+O;D>cr+2n1tKQt1C ͩf!lù .nW!md\ʎi -P .WTC0>+lULp%;VnN0i>T2I%Qtш̕l&4k'x@u;q|^0ekCj7$!;aZOBH_A Qqpe< &CE=mV{lO.aE:ȔFܣ@BB.I6>tjKjDWWAp )!M/]>ZxԽrV29IZSBX 5Q7\>,BLdR1 ΅{HIb") {63;Ju U*U 8`\?~KjS\?s|V65de~[`.`7o]. Ś -f -n(Q: EㇾZQ-imdN)u%kv_ 4 Xb1AKk -tPF@ Ҽy0!)Ž-mO ˜\\Eh4WH ~q7MUɾ!KڽclE,>9Sp1L6bCu޳Fom &M/t3DBVs0*&Mc1H.0/Rֶ?ԃ#G2bR")^\RW*{x4k)W -9 k -kP %g8L*k0SWL ZprcX[y?F, -\IO{''+>cF>R,UQ׬ h,6Wقtq_،|kBmFҰO:nrEWV|g)d/!^K؂.teMK{b>O!l -Jy:iH[g:ڏ;?zN̓dwݘGzy,l&\AxKr #EC#B@8d˹6F;C|`쵡4,^ze99u'^Sow->UB‚UQ\āEKp9%qzowqkȨ98k?ī)pfTBkseī*=qD0s_ -r_XƉð8o&}P:L)󗕄Q̊J䷚_UNg'xh A -E@S?Ne~3~}~H:*[hʹAO:t(f050i=v=GL0x a Zpߨf (;ZR~acKF%:yo#]E1}9Ys=8R݆o,c&c'*N.O(!g>>0kHSK Űb;Ӑ0[&%}!^ZdiI$0ʙ䌄y<%$c smb"?^AdS߬m'B}E0gU5evyt{u, fنߧTp/9nw$;G5nLp[Ob/Xnט|^^e:_gڠ yOY}iZUv`rKZr"hR?(ͺ|G ~` @7 -y\QSܜRE ՅN)jlQ*x-Μ2ƈo#Zaݘ琢bFtSKb%uڸ3Y̏1:f+`dḧ́etEMoTz̎2cZʘA,h6TF3@cQT#R@OSI'kHz'&ړM`gB)?p -lƒL'=Tn~CS-N -t9tEUBBDX&}5@aű2&͢#Я@=V6:4 ^Qteo6*r^fnCo֞v_#vЕ~\M- 9~oKWTpM%pk +S_w -;O9{@m-rYe2絛]i `IF$S*58*HŒ!&[zE}%fH, Q88#PR!9s3H{{F]NUuD~B}L`?$r;ðT#d%L8$2y Mc&ܕ/"M[%QQ%[U=w}ӹN:h*HooC`C \]Vo 8E )ښ mXlkS _~@.i%P -{WfxNY@HwPVnVWA 5MO%ŢbP:p!_.هzSã_!mHR -RɸYrK2vgʈ -tad-Z;PitsV^1 o@f}tQ=P\O -Dz_ЂP4Z"+f*u+mNNvL5YsF8cFC+ۗa o fl8=MX`׼.7ݐr53낲omh!-iUGeąS+e|xQ&iylq_/I$pY획AMrX *@ G[$H@Xd}2^;DF3Kjy؏s/7T>ϒzQh%%NHS0I%5FFՀkzѨ73yQt>F 5ϋL69 %kF,VG&|ay/Qzr6Xl` `%QC̖V<&[I ۫hTkSN߃b)Tw$!Sg#O~嚍]s -pAi2|.+3Y~4JA$' q@]c%9wr;EGAq4),MfI kbrQ,=KIJF y_vaTn XyB.".- ZҠe˹ٰ0 /j~9qӇ-BI{^XIW@@7]#0J~ m] ,bOKrHg]5:V )>z3LLSK7Esy0V"j<(MǨ)}C47"Z95B!Nr,նLg`th=9~DM?G*ʹ*ʶδSٟўJ -endstream endobj 30 0 obj <> endobj 44 0 obj [/View/Design] endobj 45 0 obj <>>> endobj 38 0 obj <> endobj 37 0 obj [/ICCBased 46 0 R] endobj 46 0 obj <>stream +/XMLNode(fxmlnode-nodenamvalu1typ/ArrayeTurbulence;childrenresult(turb2attribute; ,baseFrequency0.05stitchTilesnoSnumOctav2,feCompositin(SourceGraphicininoperatorid)AI_Alpha_idx0%xheigh10ywwobject/Def ;fractalNois44GaussianBlu1bstdDevifeOffseodddSpecularLightfePointL-5000-yz2zspecOustyll-color:whsurfaceConstant(ExponelitPai "$I(1ǘM(@p@1P Bhd!F9bAe F$E<9gbl+c O;wv|۲2Vq0" L-4ݑFи)khn`U=#Sgxa8qɋNVKPzGqxO1RINQ&u^6󶃆j. )ڼjDB^\ ȕa*戺h` 8wU$Jf?_ +4,IRK,=2[ej%q2R@!Sô2Ȣ"O)$hi6Fƪ fK.:$%^u\]oATRBJ;UCÜP?"OMEM%S/$/D')7/dLݦ_lRC + +eپ*|1] pS NZxYІN[I|~v$ײD܋bDP+x˱1d}-cQ|)|dt~cZ7;\'59;#Bk֥(VO\%4K1q89d|hͰ3/F3m@nȟt:w?4oh8a"s zy_C\K :NciMʋ5iZ:]R/b^qgW.&-$򯓁HSZJtyųkRdNy8QpVX8P' PEx^'rUZ*:`g0 0 0 7RK(Z/ٻUNhkį1wz̎$eJ2L,D= +},5o?W6xeܵzu˅6ŦKY >+;9~>}]$*q@bPPr@*E `թ" b!$*z@"ѱOd 8'2qxLDʁ$EA5dS%XULfD@Dz + EM-%HIFC?,Y6ֵ9UQBSDS&i#5U h$*B"B4 (""PUDCjX܅ +gB`$HuG$ q4)<376-g^*cM4UHH*04RQ + EPE=Qj ea.gRno}cf: IPU3vBVmryT<45}e۷ǭ3w7Oo9s+ $;wss7weVeV]pU7׹ њBױ-|[ޙ.lk/qB_u.l-t -t_t|Zd߳{o_.764EC$q5tGCYu+..}LeX]r(b0>tlN]>6,}) ۟Y?X:mXj݆n{fdXY/eaqgִG_{KYΙ(7*ksݕ-jl{_s׽omWN(h@BJ2a@ + X84L4L4LkE4LTLH ĐTEDA!"5hVL0qw=ڗk-w-[;"q\ϱia @6yɸ©4L4 , L88~2mm_6tM]s.}Pߪcyt뭿zzc_T_]\eW'.9ysm%{Xޛ:綦jeKY &@&ɁMvͯYzozKT-"@p GCIO +KH*^:<(E!qXa08`0h +( ѵ +~ *$7 +L;n%%)M#(xH@2' "ߺWؤ,cBX/-ī}ڐ9f>1*c)IUQ_0"I;?7D+3šHHj%zPJjX +5v,1oۋ՟7"ĨׇVZ7t zR=9NT Ž~Iz-AAbӡA Cu( hՑHD FEו8G"UNj͗1%7U*zS/ʱ9Ym躗$Zh~j5qE4!n,'ei#bYJB`~ + vzN ƣ)U$q>$`ԡ6r ^U 0r=7'ioP_,MZײRJbG7 bG.Eʤ-W~D| + +Š}{`>+/'5Ie21vޡ kt1` I:LKOywKmGL W:f:ن Btk}=b,{ĀH?jOo+ȿ}דdQ.qГJoa)d: i8(/3'}ЬER."(ǵ{CS~k~aYRud@.+0O 3m3>S1pJp=ÐicDa,oµHG'Ff"ܫH)лq&証d$HΎ!8B<- #ƝxH؜tJzu _S ɲ 81¬KSp@Lpq;-nGtQ" 1\摼B8W<nP, MÜ}c>OT]Py0/r(\FR C/QrHBiA2V(xEz?1tq*K@.x?vִX{5>t| +%`EUHo*=ձ<o3<Y(tlnLƵ9{mD +b +^ːTf*K?׀iY4KډLuAg7WdN-xt5WJ).Qg1i+OS>x-T(x؂iւ sg4rխ.(^镑Z4p7J FN| %،)1nY@Δ!}k[^NWK uWW)c`Xn2}xl58oUf?8|VɻUpyWM+֠߷ &_syW%F&P,@ (wJb=`x!Ōq$ SC)_ +z)kqknOp1m׏XzI`M BK01ӕUG+[ה*)q)!:ywY&jʻXk~~;"XSP)׵OCMc2Utk}̼v#|AA'zyhBjَt6+Rj  `7u`n<_:e)A360X1MHfcz +ml- ;>I|\Ph +M 4twj\q%fʹ{e,]x`NomC|JuPRT$|'-\\^j +˅8[mαj}{Ÿ$nY@_Dq8D>Xr_b>_C@4%ky.]K)T 5ɋOѯz x/:䤑^"ʩ\Lv N:j,c=J] 3X(U;@D;GWmԑdӏ Tz?{tz+TM?f!ieU8 5@L ܀6ESˡcD_s(a rںbvJs-M: 4Q&[;c`Ռ;+_0VfDI\QX#Km7YcHL.7,3b +TwcHE<+q(^6^~)s%q+SeԐ,|%.x7wjINJ2>Kv8LŒy07wxn]hH0>\UK!CPJ920NQ]$,":/ߡ7!qs!E/'~V|88S|(x.F5x+Vlv%xxx&H-^ :jM>Q-sYYF7l*M/J$R*Ub_o-&/G d!L[owtI_{(UcKHb6吮A*eMsjpxPQrSeZؒ-T:ӿM8 ݋w/8L*0,Gገ4!BgdShSu cO`$'.Rckc~!NGG';J!Q'wTA܊7SF:F(V3ȴ$m*phK9:[ܨ?'Sgӂ=OoV}iD!DgMΦˢ!3($uUö<%g-&VRM+bCH_ +z0V# +~-4~Q0謌ټ:BTԈږdCqڻ4++Qt3ԭGl&VFNd,́Y[4]V~B @9>qG֬av\Su޹R ,?J'{Ў.=L8 !e-Xr|`ne"yUHPeɅ0'ݲsH:{*'3+i#/#V!<öy 3ebؘyehM ?MZxj8T0n.aY!mM +'7(:; LcMk#eA}ٌ`LP^RL]%.(IcЫQ2ְeJ׆Vyޠ :0`)+RX"iꃆ?dHT^Y!RwR + tً^ZI ^|CGf#1 +a՘Y{d[ZiߋMji

)i5H5ALL:O9n`Gi^_@$ɬN|DRڗ^Bu!@&"a M`@铮?E/zJgĀ4]"n0 RwDB +ѝb<ֽe Ue +4Θ&p&T-jH#8$N皅-=Mb +q&A|ST@N!HZ)LgDLʲ&?(R$wYq`V/ )륪st4 C"R4$2>Bȼ"!%UTV Z 4{£uBx._{R֞DJ:}y|Z0srGa@?`B)@J)00™im9raZlH|fGa[nLA_7&vea `6G`aZC+kR?r:`ᦊ4 fv6نNhbհw &>D#DŊ8|m!&wY5I? 5".z=~}&LHcE86 kyZ +N܈0`Q\| @?ﲤ +,,^GX䛈xVV'ȝFp N7R$(TNwYh_&/*ԩtfx*\\Xw&@w WJ;QKb;^:D,yYBުK .<r=hkBhsZ7;шDѭpp}5Fi +qpk٠Smm4zlQ@ d~s+:rǂቦ nQ%+/CJ)~eeh ^j +>k]% PnI#N ;'K%̀Ῠc 1%KwÏnEoԶfbg1kwTK%K9m1A*Ġ4(,5g2 *Ksq%Ԓ5raRHqj0D8 *-)ӴX-b'; mMG_"}B7e u>pͧJSirLق%52F4EXگ@M3 +ʖ)\fhf^ =}|z\'w>JW^BfbuҒn *i7d} c#\ 01u0+0WbCHzzۑKev<0&*vSP$)LUN xWB }ywd [y}UXr2Z j# /\=E+t9GNUmΔuT!!F q|)U<18eg`f!q@26 +z%y+QAC2`%(f>)67,ӭxIK4 +JFv’W0 +rBdB=X04?NuvɊrgIP3n)],j z%K"~tM}̄ ?Bop;JeHdA F1%1cQ@b?gRd؜MZW>$R$-oeЖITH:&[San'=à 2aՈT'X}3h38C1`<SsOk;6i΅ӡN:;NG T#@ڤy +G +?Z4?0EdnxՌղHIOĐ@BRJ%kPx` +> + +: ;ޡ={k7Pw9Cw{]{uy Pos0 1wzn=?1u9~1ߝg=89ctbPwk{Y:kγ 97_yܹ$۩٠?w +=!;\ +P^v-5p l{+9Z35:\)9Gy PfMQ45۫39 Fx`?AsG $܄CqI)l_!H0kdΌ〠phRt49 د9 j__^co:|q{O\?avqt?wXc`y|@__?o" /ou/jל0o <93:ntd0 M;7Թh˛e}Woqno͗!9o7ss|w@w\x@Զd?s{=;x=ja栾=k/|x3{ל/^޿A*]ZsoW.幼۩9mߐ<{.Osϼ_Ps{j{997ro_û3mZ͜ߝf}}sO_ /b- ~=xz|?9pW;qa?q!X_0bC|ٮ|r3_?  +u;y_? zPĜ3X Pzsy! 7`:s}"}o8?Ng+ip5:s9qzfk{g]9~q9" / k*55u/Zw=> īqr}qqQDž`ds:Kt4\g??/ÏoÛ:kz-}mk)(Ftybm#njx#<剢(n\^]^-c?_~Gb9$ 3 vX`yL> C9. ō(9 D&g>~q8"9 ~s^ca^`t{ы#QtFct]y_uBكDQt])8| +<躮kE۬k]5Qt_~(,$[__!L[sMdPT2D izc'ޓ^?5Ĝh`!NB4[*SF UHP<Mh C [rUdHPkkt#m2` GDbdԉP@f`)di-c1`Q0`d0a[ ethNd&0+& ;eN,'_/?]*u]W$LZu F׭E WRBu{] 1գ 0`w@D,DuR f]Nyŀ) &G:E&{aFԈq( (Q0x<֖ʘfC.⾙G)3SApBlu0%gZufa|*ZnDu*:I6>xt]k0Du Gu.3/ !)]*TDCaSXazu݌)1O躮)Ln]t]C+Fw] (uzDBDuG 0@? *Z$[L98kT P=*M8bau.ouɴa2AJ92Ρ @v4 gh e8eG1tyRd%ۿ5ș-:%l͙PsMALf[9rSSV婚 V{J5VPJmɲ$I292(i:r7Qc5e\4cj̙AzWu-jjmӖ,yCX)ޢ eh_ltî)INvjXW PА&awykR-Ws( +9rSi;\ 4==3yjSҙ˧6VΛZΑLOr^&<1UFs|" e^)Agrp fY;.j +HIj9͙:(R+Ei3$q?ioj{+q?Ire;)kr,3W7 -Qeqmʐ+ 9έy +PR&7:Ta6vyMU5ϱfZPʬX)pmɖ[Kl[[8.WP5? ~ź.?=A0T{ ۹+>dHk_Ư0K9kM۱MW5{$p/~!}׽;${e?~07b$QshBS a0I[I`ƙklzcH~GB p08ݻvv3!ǯ? k!z-xqLˣ5/sZ+Iac8/178qUwc݇`Hy K?1W͵e]c.EM{ʘ#roӺ?;耭cJk :ٚlj:<~-):5& 6VmS= 2J,CMjmZGeo/]aQE=k)O6Ƕ%<\GylGؖ5.7qyߡ[5&GY;zklZ̮NL"b.(} +Z$V֕bw@n4Tl!$V},[(+buJ ZW'd7 (>! BkMuV\|qx/JIx'PW Ht6265Uj"Lzyr4ma(]x-ie Yt$,KDS +8j")Cvv|ȧ<)#aSM`ᚨ["+rH.&`$"G {8yA #~N #& uB G <;=iw@>c!9C +0_* I&`NƠ3I1|יv !pN J0$ t^b; + $olO$*}p:7JAP&\[k'$)*N.-Sت L'>mfaӍK 2Vc 8I}~iS])ؔI "J (4Trj$\|þi8=H; BU4 $mRƴV]~V3iDh׀ZCؚiZ@ %Rf"Y +%(J@BW*xdBQJҙhڌ>Czy +A|E,Rh35Ig3$ۤ(WIbz؎$!$!h.; )FnHjxlb$ɑDb!Jĕ: {<" $(4Hk l#i,bRb!0XlsB0 JV*4*WP4 +hH)xAˤ +F%Gp(b;BEd3"dOa@ŊJ(@UMxD(4 UQKX*3CXkdա\ęi%*#f%RV@ S`D gH!Oum6֊I KR* G L( =5RމH $T3G0$HPiI ^sKigcQj3h];NbB=uӊ$=е΂ΫZw@\]Gt۪S`UI!TgfȂ.2L#r!\(v7j)ԵTal&OXΥHtEE2dKWY,7` tѾ^nSQ:n0a 0zn[ݕ]S6yNV +IID[Ayt }0yӦHa=ViڣtjD@!.>.I`w$L82|>:%C U +) Y X+{aցpC:)TAJ@4l2S!+ +VGԢ0a:4)W>LHb5,aIf(X]|%ȶ)1捭i}Vjj:yF 7bOCP2LcK[ -NWu<\c#{]eW]v2#ureQMmqeQ) QMpP(_ځc8:hlO@@L$.mwYZicܞiu2:Y,NDzD: NRp 7'p8 Y/tl +~Y!lL} +NIܙw b|8I +];-`GBmaB ^.Qf(@< We#5؜8Nt_0tc}uv: +I*@NjࡽFкa+ٛ4*Y…A7 +uE=nb%Y͒wc<VAwP@Co2n}IdTJZ):ysm^ETDNWt6 @棱%V@TE}PK@0 K5f<6 +({D"(_DQlQMK +0ct`8Z%Ԑ.*hkiA^\ZKNI@2 v +endstream endobj 13 0 obj <>stream +x&aCxF 1v%٪pZJXY|KGڴ:; P p!aaTEa8NC€ᚨ[J  }ç/c8cRb(!%DZ281G>171aM1` {0A!%aqh$H)mxHsSО!! 4t +}%iRKiDՖ&V'kN#c٪ĀƖ>HM5¸RaP 8ʗHgH( +sJXcY"UJ/+HNY>J"RIUH˩3ݲw@H:KDґr68ld YsSX,ɜϷMϷ4Ld@. )dng dlhNyX4(jӃ-^H(_WWeOA砀 ,aRdR'x +TDnf w$OEpP]  `IfSO`,vdIW%:(!Id AI & ``hH$J +mlenDFf󺚍 pR,/)ϦN0^tđ{gʶ4F|MNw@PcRwLt6 @MaH\؂T+dAX.-b$)a@Z!FQ$,\^)DV+ چ_(A7!=(CQ"REI6#okX +A+QJXg! %dؔ+/6Fep2|@xKI*P]cS erP:ۉ2%u]t e*o/`T/Iq;]%@(40:]b`u[% +-АQDx<66 +;K|fvEPު//dp:; BBc!qF\J6q"u@Qy[PG+`ぐ@PF H<\(%*GQAw@Pl!a΂F +pDHw@O`Zy pɭNp9>w@\$veyGϊAㆄ<QP^I,/a.YPJD-lǦTB'`hU{:1\Vh4XL9L,; Z :dRҠND!}P1^` $ +o<؄Ùt[ʹi6>'ւVs'QvVnUζͥw$ܩh&>ThYS`&=$40Q>Tm3NЄeIaSA8dHvZk,m28#Je$Yb|:;CC 񳚺p>{@&Rk؄@*b]f!rנ)Ja@҄fC(`n56)j`yKL\~G?$ S +<5"xA)55 $Gܥ(t5S͆L~]ɰ-݉s.ǡp<.;:`Gqޤ DYd1K*3ziT6'Ap&Y#AFl- +:Ϩ4M$՞ k_4K#WYBGA0,-$%8%DL!=9(`EVL -'l6K'"u| e=?'q1YjsCham}>.zB +΄@s %o6U4 lPø< +zR5DSv}9&יתh tk$Y EGv<7!b(n>,9hAf¯A &D6Xrg" +j=S1Z.~QشM QUÏWՒdWNZG#QP^4 !(+7J,4` AgxM;Z2"} A0Q2x#a7sT䵌qhEs&+|NBhT~@3TkS38@I5~j+ ~Ibڠya˙wewd:M 9q!W4H?uO#;(7yC +˄ )|B&e4>qWnzv2cҶˉj=>Gk\UWB[>ߐPҷ#/Ew,K0~C_Ki 14mh˟S}zd-f);nr!&Vc&?gb~MJJo '9^KgO\&20Z"g ցdr2Ҽ0&{ѹWܿj;Vdqj;Xlv[1L,AD鯖7(j$xԇ 8+$jBd#~X]Un[L@И4Lj`ey+-cE݆lI#D]+@U"4RCB6p'"!0*|1~u-~s±'F-R%pAmM%1r@Q|5lZ雦CP +H`Ƀ aZR3{M6H?NPV틆x:+-Eq}7X'-=MtՆ B+t}gMow$[)m_|/G +WZ7#Ju`Q뫾WI Rs}WB!Q6M$?{Gʢ |)tNc^& 2ٽJT#@XZ +Wqc2؃6P,v[! %oQCV*K/,:! iavI>.-ォ}b`MBY :F4N 3 ,,H +g3x[hᘚ::)tydc(v +WZpȐ77v$ᦕ@#i5πKE1 D@ +SǝBFfۚ>mi6o 6A}2801F8WkwQEnJ՘L{#+4d +ҬȌl*͋0œa$d +7CiŒ;@jӆp׊?,SeJYm'ݦ6v6B: $Sc0V@D|'Q8%5u:,0؇~;ÂޓN1>H;͉COK/)5ldB*|ޓ'8v>bT`$j%* bGZKYAlzoS&*ZZZbB< +pC +E{:"ipC.̯iuݭ-pHx1@R fC΃x1fA\A$#A._\?ph .8 Q +XIC97>e"KzBҮ]ӟKsG-{%?0U-lz DŽn@\H> +1* <4<.܌y u +u#'"[9ȺGMܽguyf]ŁK ̣d%1? m>C6Qѕ|ܣf +Tw-axk`JCvĂ#]6s7Pj~i5kVvTW}8/TȋL + +U" j2B%^?ÐHڗ sd5}nj˦4F%β΀# +֭EDm~8gHB"2~^]}OP'C25UA/GI 5h{KɰyóvPemc9 ?eG..a/lcM̭'@eѬPK #0w%p:9#'{u pdBF p1Λi +> {ɱ1[Qc|VsEi)M8,:8r-fR))HD +`?FhٌB+Ԓ#-5k&ٶopN!a&gNьa.S&!}o$b~vn+_TwĈ[ތ +|~Z5ǂ*!u9I +?mM +2&> :4g7Uq-t}rU؅V5V@<wS>7}zI-I(gR\> +EFNRNGR-ρN&C>0rdg3F\,{A=¬Ԅ̪:Ҟ-!iN._pw2o4Ó{V מE8s_pbRmce5XYQNW۸k:yNE#.v&4 +69ܩj)o7Ƭ>-B̛j,r#UUm `3eWODȈ9PD7*H^yj6˂ۥ6Þ~n OF8D`A5)WY7|Ƨ}9k\E^/EN.v{̀6s'|O.Lamh fd `vLQyC#t=;l}MWp?.6ߑM1Zl-7ыC.+; >5d jR?rT5YM^@ D D<LNĉHDΩ|F'pvLFp_~ʆ3w܇{YD\;C1+C@}tLLٵ{*+U.Ԍ*W -%1)Cs^>IYp1\Ph`*-F-?ΒwZɾ[ѡ^!Bho=U ,yvo+sDMBĐyU2Z^ȐOAfz Be.`'y 8mpYh +oL]둝7i*E̕n ўsd¯<ȅ+#U9,m>exU(|ô֢ { ֪w:t;6]1wˏ!`$^QpJ''U{s}r!5~K^,9>!B'wNu LԂEH'pXހ^0k A`db)V;ς $QmŔ +goXxɕ-ɒŢnd_+kJsW re (/tRR! UM`[>'z,mf["a*>y,%$١Nf@bўK;{3erN,Rczqu"+ҫB*r9~{D+ci0wz9BfS" ׊^T]op-IQ-0$jc,[|T=\?i^_Tn=1) 6sZk<1QTcxA';X`u:Yэ31%CY_" b@+\΄]~xC9G/0$h iă즋պob<ՒδU(W=?;'dgMYeU1d>r#xB*,&ޮZh]5l`;Ȼгb/k> u9GI%ˁ^_~BhfxsA,~^Csl>ҋ4;[(u|7k^Np7 hF9Aǩj x $ z=|bGv0q^m_^= -/_O'SKJ1/dw+A1hɮ[CW6 5"8 S-nIB _43@@ w ˀGѣ 4WTusvc"Sqfz(QdNAJwORəq'{< ~P4u@xIe2!)xNUͰ1^G12Ί4:=jb*n/$>i5=KR XNOmwAU2L'hޘ$+N >늣p@P*U)+c]>w7RyQZuM1預zHXMEb'*CB~zTdTd}6\*\;T?Y\4ҽl͕JPd$ҋn]R)>)r'ׅz iŒ,%Z!0p!Ni,ߦy8+&v)SJMR}^֜lo9?B00  C|^7"qTaa zQ("ZE`ݽB:P wB.G5ZFPGe"YpG )B0Ϭԛ4??<4;=Be μ[thJCt +!ɞ' /r43XGzA:Il9`Lt6$f)(Jz["{ŤC +N@[%qΜǍd1tLpn""MXB=M8A4/w3AuFBLnxCN.'%mDxΆ'] T@3=RBepIA;jxtC;7 +̈tmINe +kUElVJ{v=wtZT2G?2af;.@Hu VެujeRD e,#ŭl)Lq7n2]S%h  +̵ʱ{ejNhhQ] vT8 +0YU4e;/{fY\~Ka

sƚtԟQt0 -5 FțBh3QUGNEXYA2gCJ(f>9TMQfdRc+lP)q E&9P!Īt3'VYaSmָ4z%mw#=q2] GB6h x]&WcL߅ -#aWy5F04S ED%nH2NsJpjOiM2s ZZIМg0ւ*ĖI3 yPDAw ֤Ќ(ܟwco1jCsSk8AUg?(+kSAR W|9蹗VZWp{rk|3dc;,]GRL^i|Z4'! ? mhw Y"Q_KEgh=_1'f"Y–uo}#*+bܜ6fzfmiV=2Y}G%7jHsGKAT ʬCYB?'}Ů2iFmh 3++ʬON{Wur1Ǭ{!@rfax +eW^Y)xabvw +!B _&-XŘ)cV볼S{y,nLcʥXEƎiu;iGY6(eb' jbT웧=94~ EzeW-4՗hD3>3fҭ z%wgˢk:.h]]Бus~-=H[֭ɝvPY&_@K? /Y=Ydۢ9=qG7 7.|^C{ +.dEROV IJ'dݓ{3<˦HCV0=>Sf n:t`>brѡ9m"x[>m1@Km$krPԽR t{!72\9X@- Y{F+U6'N!>]{9!/ G?4 +SւYv\6d1$x`@4#WKħ"Am\SUYjJ@ĆѠVF+0ShҮt=FA2R>KnP ɒ}Rd$(L 3ΰr8ƷV%7)Ǚe$%}c ;^O*B@q RQ3G-tMk`<ͧaq6Y@{<;qZSZw=ozc(?+Bp582l Kv;)l J\whڽG9F[8RM7n6ʢtfr(3 Pgb6 +_J&7Bx/ 1K#짘#`J7L_FIzQ&wvtO1WhamC7@e̡+QĪgtSƦ_O{X&G9g*KҿG'%2Xo!u? R Q+ {>S(4w⡍tRzϫJTjn5^.hӕRǏXJ:Rfy$$xK)׻Lb7Ȭ?*(/9R7/2|xgd 0a,`ʽ3;gDί j~-hUiw3(@#зz }-YxEXlpMpCzsKh3LG{moY˿I+nT4ʹCB)Ub5ېPUU<0w o!ξ^bVpa =l`ixtʪH7ƥ(qEIBg:^DMsuM)kY= _շ!".S:R Ƿ#%Ӗѕ +T/%楗#+e"r!8`?}PQfE"5FfGܓcL ^j' O1xZR?45WL/+)C`ĤQH٘O:3l9|d o# +KK޿nAU`{"qabb~ Z#7;eNogddbQ/6Wq){ɴ-wZ2"xov?.jkj^vݵiʱ0BE&{eĂƻmH޶wzg\yqWsm@⌗x.3hqO_urR[p +][]$fc7K$BK(R)zAS!pO:q @:jL+3Sbi_[0-& Zޛ ʌ[OVko[p5qn2Ȕ /'GιVƸ{ZDoYpEҮ:֓RFN"}xKr[ꦦ0VnOgo|'Iִ + 7zt},!aźx{!DՕFO!{$o3AܘmYw?]~I3 銀t"H& .Ԁ5`hpb@ Uf2ס̓CVr1}%$E&bc&0lLHfl1A`!CJI7UY W7{TX E0=/WA=1#\eLL[d: ܃?Pn Bh/+Z)OD>uwS>χ`S. sH+QEP)\jSkOy + =WzW:UIy.!ģ?rn]V\n Zu3QJ ڡ$W^ H!o!S. Dl%rkZl5"oW:m*%E)ؖX91rEgJv ƑnjSzenfBryn<.1Y +69+HC Y@\aK^Yae葓C_' /3*XW5^)"֑WМh;{~i.~~XU_[ Op>;vj8~fcG܈pl珇Ⱥ_Pxue:Qݷ2Ս +T_u4ڋ Oւ73m/vpZTK8"܄ypbtk˛j)G:pɛ !ʀHwzXܼY C-6&$l4pC(dT;'$ +,~oQy +)H&Y`9%Q^E _DU1sS!a}MP׆`ylU Tҭ(>h+ b0=t$rH0dz;#u/AvAT iJ,+zLU$>kU܌e\mO +&Jwvu|JTMI Ӗ\ЭA<ϭ<~]evWGI@y%gD/:R$,P[[B7Fj~L1st7u5}@ ˲"@k|`wmw{ -߮ZRkq:)Bg.sM!.M?F ΠLh9ckAF28Il}b=j% Jyow+>D~YZqjrqzhh^ʎ3 ~^ EYbQ+I/4.,)ro&.1cK>r}%fpEDXYY=ol#,sџý*[JiHSe4\3d#,ѣ84m.TְKsGg 2Vu=oh9k΀\Y07GD跘i(jx ߷mz+W|@5k\TE,[ԟӍ@1oG\[t S+yˏ^$pGm̓&lsB +N{<mpjk O+Zò>SN*;XEALf \V#F]ǽHҧԐ +b)dtśGоBp flUjF-SC?$a{74. +vNr@B'XY6 U'>8|_}b0*wB9= Ě Cʓ|gުcRpr,.q[J~7%ҖM%oƱ,?ԞS[նUp#ϪBW(޳$XzL93[`5Sa3:(OB 0K{pC$[jTLc(8/Dmsf~K`[tƩϑv]  SQOͼ-H:WѹASaJ־LNrA˙_Q4)2@XoI4' ג/R4U8Lw)1=' :`M%\p+msUe#E `ʆ7koZpj>s G spb &J?M?XO.DGʒ9A\z7jրVl(1h=2Ry{?wj@L|0 Lh*S9 H^F;yӖ@O +;YP2e1jcCÌMj0,v'4dwjTL\:xĆfzn6UiK7h$e:VM?VW+`9i=㼆thJ`un\϶?'dFpBl#]W%<]tТ6&f -6Dn=K^:U_CJkR2r.|:Q1%Dg9G"NKM 3KSgi[h / 4f/ c&ek[/hڙ!gؙlg5K.x%9$:PCC&0 lօ, @70 (oFpg+65GIH; c8/vԛ>OVb<Ȭ8{5;s.:d^Qd2Qנŭ *+Q"m}e;RAdb.Vq@ 1565^)"界6짹oz$Zl7A-I, qrneUQ~ ǁP%84V$=O9Ԡ?FGGlvuH >g4^_9A,D;@ء`ň![ ++C=$zZރA@ۏt<;b ]D tb,<G( S ݃L6)6J`~H6 HD1]z©`0B(VB”hY=@+LZDT +RM eFs- X +~1w-*VOSkN((0 +xڌjaO}mmEY Wր*0e!+lȮmO$/JOb|.\p`p>(>m1Eِx1H'B4FD<lcyǘ%p8T1=k4`Wڀ,4}1zDрp.*yڦe1kb"?gg 2ٜ:eKm (zVe + 8ck+%r]Fk>mߏjf[8URLdWӶX*"2?Q- "(,,sI֤ +jH8 02JJ 8q`zc\R2,DQ~I"A (:.3LHʀ) + ,m:O.\%BGH1=,>2+Ãda,a|L8fFȤsz ++YOAR-kS6|PK ӔP6a2Z4H4(XFdY=k`i[tPUPԥ +~. #Ln'aˠʯXaWRNrytG4}iF`w!W_g:zRTusܭs`U (ZgH0 +FEW/ + $JC)[<cݡe60:9 4,ϱw`Z }Y&ӶP@X X*/U ,"Z=*ǃirN.yQHeRщz0 +Igѕq2AŴ:N \Ύu "IA NzږL+3DS=04WYE1 BDu:6†`29Z`Z 1h` 6@de3(Hd=mH0*XA`gс]E=> 1o +i5`Pq2 ;ƮŦ !,vXlK2<ʀmѝoto`WHdo!coHÜ(3v3T$>lTTP]m +OmS~cBE4Q舠@ YG^  +DGңGY@t6P֕q%0%@O;=T N2'C ?F~JP%TFt0Zీ+A">,`eмk#O4 x +pK (\|O?&Qz#6 ,tUPLTT$J =   $SX>lW P}1u.642hII-WUePCtLhqY 6 gtF+Lg`>!vYI|B`3ZgҸEY^>"뀂r 6 g $_ cteTB@| iHoeuXIX'&Ӷf0O] m76"=]@ A<]#႖K ̙ãئǬNѝӶRrF$2$D=mm% n+Zr8sN}|gk[v!wǗxs1|j9JU?9/{{Ǐ׎_"k[ʭ}?{Mݭ5a_Lw+v2>?"?.# k9!sͽN(r-Q ͬ +}4u!w|%LԀMIцV 2=QEǍUd@FTIhp/L6'bxGj ʯZP0!E`+ljE +e kDru Nqy*aXBWTL"EYs$P!mcxTBRE(#MW)5Zc +v <`^ $@IpTA8JJ20BX@iY. sa>R{xvx+!q a9n#8J0ppo EYOtJBiTׅ:F؉o\)F0pA6:*lYyT8m9)B=𜭅Dev" V**63ڌ=!va!( =4bUP^&:a?Aaҿ&R 9YYlQ$V bzF&NVUlb%ÕC(EtJSy+37!^B +@\ \9- g@>liA?#̞yi 9%JcfM]i#UuӏXzZ mSzFFsS *0`-$(H+sO!WD$B}\4ڌpyOLC|\&pA+i[6BU~݀vzo>%80|& `$r\',U-ߛ wOm8{{/?چ޿c{ue}]}kom9oI1ͅIR}m1c[kg=kj^s:Kr~1~M{Ӝ/-iIKv1:z\k[9>q=~r7pem3q-$7s<:|ޜkڞqZ"6?;g7[xs9wo5n,yzvsZkSXM?IZn$Ifk[Dr{sy_~qsvXcYm1$9sY\|Α"^5IZpw$&9!gW?m(~h?bbkC_y%78wkoꖇ\'ՙ̻CN$!Z;`mڶm趽sm3WwmC96Swn;yWf✯\YPCkm3]M0omC-~,>m} nq_|sRծUPoL[VLdSPZ+U5fRJbe,<'\0(EZG$9ްӪUR#Rk$*d'IJL+m3zrE;I}W<4E#k1Iα_1&l{-1';X$֟ŷw|YO64w}{vͯ޵[~j<_Ry!gvo1Gdoz爷]c3ޘ\3$qWk +g2nƤ\_Mf%9mmECמ-b{]}ő9\᝵VOwI5ةffD$84UX+\R4R28&( B8, qQ1TԱ+|c!,sŹ"$6הඁ,۷+wQXϲAdVCO2q;_"V ,@`ᴚ(Cij&yc:n&4a+hUvd'BZo0,ٝ~2x".?_޼!&/= n8a_j!r_K"%Cd*-tb˰c0I(` AkH>>`I@R+bӺ@xEߊ&V5kAo-Ј -9&ZK-:Bug0%T-~rmbcD߄tj%IHC)qBP[&skx`݊L+G +)"|j7`m,`,Y6v^0lNH=t8|ڳ >`v<5[ @<ϔ?&wMor Qz ~LF^9)Q'8ђV.h!StIw4Sd<먇S;Eʑe/!kؒuWt82lEr9ؼpH' IiUG-TJt2 =FLxօ *%v# +}+LjtaPL`)*wBxbwon H3q#t5EbA3A:avP,J]̊l1ZLgŠѢ'ԗy<8v8i|Vw | +bunkdc/Ut8B +%\Mk/XVZql m>[W% Rɒصf'aD`+or!W gtڅFZ5RɊ/900:Ga9{voN( lbbr;X< hr]`C/⹥p„șw\c1@8T4z=\t}pc[Fo排]en]e7}vCnJ#mǨA%mI4;~@/ip d-y)6԰XOfФ!cQ4YbzĭL9FDՅ 6T;rn=1- $Ί h6IfR7oc8XTDYS'vQ?6FcF1 dd Pc#䊮62(vcW*1]iΦ 8֕@ͪcN~񘇹"& m u9D9*g蝸+gMKK/.K@F0ȱ(C1p fF(PW?1Ʀj+X4~x7KQX1+#h˂ +qU5Us'HA+#$QQg 樸Dv֤%qVmDNV[k:ɕEX/ @4EdMY^{8$Pjy2YJ\Nr3o~&_-jh*L?evUD$xM-eZߦ5Ix2ckSvMfW6=SQPEړ0jO8z:>~D;dH-m7wY\/+@i7] O}~ye4jIh #eH'$(ւU_֤uL{_с&}$Wp4|Ba>bM3@(xoK?Vԑ=R#q [-{ "x:.IL#,03n:VE1Gb;ĻZlY뼌Vsn5 0126L3THlc 43Le E(|3۹A,VjxnI2 <)"ItM}˿ߑO| C#"ZVY&&&)xA+m5Q9Y,RQIB5O]vj\BBz"=e Ji2S:ח,reO֥t[(n!T+7*Q6e=̝Jx{۲UEn>4G(61vMLfj7L + *7"wK6_JQjw23urzDy3 ۈa +..2uPB2܈̍kPil腝@?"\t$Mg7We"":C~%d-r\T12~ghM9Ξp {Hˉ|IpZUN27.䖙yjf %߆6 ܓY&ܣdCn:f lDyJR93 4!bVFKCK|^8n4Pϗe9̼X-Uꕡo80;Obucx 9!56-0ԝv‘t(Ƽ93;qzh#hNgL HqJxO81 '.>:{#,9Xj׃$Ԏd7 9,3EVmnϢ$(HѯߕwKa?崹:.Xߴη,YG)3ׯ;oCS,Z "Ka3ˮ@v;To{OKlf\ ^17g%24Z=LgO :*L:nvf VBya)K4S2vٕ%Mř/)m\bHgA8AZ"q.;=lя: Wh0.t , kHXX +q"NYe Fxkцܴ0l| ư5,ű (ոj +== *6t;R$U (Q6]-4Hv΅+Q5C{ +Lخ| k=Nٞ}2uи>ozled ,PS6dYL5_|%8Z^0)sPal2;lgmkV|?^9I@da ߊEY+T\ YiOlPHB3x*yQ::R"kJ`EWA*Y`OhG8aH7 ~TM aoAQGW% ~<0?AYF /rdvMўzO4f: ]tRi&,]3b/Jfke/AIþKDf$V% UlG\/kmk* ܖ}nAd0Ұ rҰ{HlVΘ1^SwgnqCD$rL^[oԲ[siUj<8 _d-劳$6{)SYG3<$v_@eQTII8-cU[(@ + 9l:]4OրRv){-S欵ux9Swj^;rCr3Bj?myrU͍|&4!#IjEbcq^b~wsHd7P*)?cpHULPWP +\rp,S?]obW؅Hbԁ=aj;c@@:A֍z= U9 +qG=֯0e$lȯoiQњK!?BJ20ɆĜG +V÷UKa+ZNe{[Lspj|E@Bq26÷ *g wdQ۵c:' ys*V^+vH;Dm@8TF木 $ Ŏ3[O'0V t0"0@la#Kd.I G;sY`]ґ^o?. _%u@sjXβӋ2*iv9hOhNJC&8*`OS~ڵ:\%c` +&zw˪سJg\ sv#DAUqgV+=Uu29a d#20n*ە'Ck˴,P;êNF^Z'E%'Cu->Pt%mpӈDZ?6bGn< nwRN۲rT䮳!6qze#,yӫQ &ߛibX i"g&|WӐW.0x Q:Ӆ)QqgB:*]]5-.>\GkJ&ѩ +qT$= +amM=7fO:/c w,f,ns++ +*lx "s◟Pq x"sm[0}p[vFiM{i@.# ghaHZɱJ9l?em.TJj=e;!+k%;ސ+Wy1I ɿyڅ|EX*W5s'#ه恗%2fMZCu PpsODRaTxdysh=U}af;Fh%4bFj=;zb;SsQwWmԸj X71;s9W KBHӮuܹT'2zKܝoOK7&펎3Mk'OhnLVDvK]buhY,HK㖯T HLx9 ֲ½ֲRTOWkZxR9d#V>^pu|>bىވZI%t<SpR p~T~u;KmuՠWo +0)K,Z_ + +cW 089ESY'eV0}_#khfQ zFV*lqiqPmx_վUzSNm) +dL +ZqbHj3@%mHz7Pz1B JMZ'6TNc/5l0B\ ];#g 6;p_*'# }i +P݂E<*z].vؐ( VD)E: n9a(mZޯ%AL`wzD g&pN`PfX:I6Dl82 ww]՘hS϶Wq_W{J`N8\w}9&S˞h{5wX-"<ˆS~HU2jmާ/e^S˄1ep],S52k#Qϲ;/o{7?U˚l{UL7Բeǀ6V%S[Xv:O"VuFJ}yJ=EX/ @9?٪/U«˥P^S|z2z@AI}C=U`7fkJPؤq骜IK} _NYPX Tw^k^.וNhv:ŖlhQSֱrɌB2NO*~AwAմ c_1;a3+)p@+G%g?s~u,\JYۨߞ#|VGbAt 8_K)QCt/-{TFuEr{+dKD Y]7sC^HԍDX+&foצC)Z⨵# tG$o'ʷ7:97}LcqN-Wa n h1qj3 HXj ~7{j3>ۦT;$#jUdnjj,q%8!g7ڒJT[2#ʻm\ȳSm8K3tBG+@dq0-eJƸoJWuԵ֊&]z:)Ʀ[sC7 o` +Ѐl%sv)ZN(dgl fX[f9V"P6ԢMQ28wcIS{UbmR{9W]^%s6@l:TpSII֮`,g &Z9%rr}Pe-seN D7]+c48=KNwc!DBnZRkRcڮMi*)lk:aTT.,BUy[Ls9d3-I6ՔjNcHƊw +dyFxZN wV].Q-\"9 uPrWgp[G04Hݍzsq>r ŅUTm]#.A\>|ʿCA9 +55"P-Ё}`u&I߀K9qӿN_RUyLIt8FG% K ݢ[|r \kxӻuAO p>7vMt╥ ~Jb)吵Va}×T'oY2BE H6WBxSY6z+\k(M}K4Ip rQU_Jn +w!+_{'pػF"*fE~VGeriFr#y5~D|,#W[v7!ϩ%TGI5QۜZAkv\ds[ujd9Ů=Mn"iwHvw9OaR{t.^I ejN3p;ZYXr6-ڼ f`qd,{eܱcso[j_2( %2 Ύj|,?(< >~ש ̖TKu[6b:KʧH;ez2r3hwoR&zvjy!r׺D[:ևʕ{mSoB*D-Cj +D|1M¦g&lks'JԜL5J0`Ȥr#"!VYIJ5 b466'LC4MQ◲? B~"]jm 4<l8T}%4UK-_ QzDLsI +iv^?31 h$*O +7dU"!z̿8Ɯzig84CZ[ѾHy +- v͇޸~0Yh6L!N:/1B+1p6D|TdF&Quz53qGJ>H~MY!7ƱeD a`=J Xv3q E{V2`X'LۊY Ge6`%d?3& i=ʀG1o`QvF8frKs =}]TTfB:FT@GHFRvp77Iu8]*YY#=Z T{7̓| oɬzazA) %`cwvV!}b@++8C`&" &=m!/cNyY:Vy!1c21W>M]w;~Ҩ  T6sSu12y6.P Tv7j<NrgC{:QiǮSvf#i5Iʁ鍢ˎ?[ɂpya_k bC+LJ fTB7/bVY++P=&nt‚_t:}+B|ڂ/?mp+4i\՛(s87j# ^U3M$f!; 2R@0ՊDY I M3-e O̾Mf^֖R39ݴv+^YxBDHXP')FplA4>'6>gTAltD4–IP|K}ӈ*I<Kv HPQ-.wPA`qPeulI+aҩ}-81-q2,yD/g.r:*WYQR.tl[JW#d'x䅌E S?fZ>%}f$m;[hAwQ@:)pH 0;0vLgG5<- YgW-CS5A+,"hbBUq:oF:F1qr[ i꿉n:KCbq?AB`6+"?nBBvICcH>=h LH8Pk0 nbDI#u7m{,l,9))mб5(P).ҖG0tFeJ:Oʩ;JwVߨH c[4ULj?l*0(RQkU~x"ǝj>c"$N ;͝8puWHO#H.PЄ$#LeŸ?1XkIZe@ys.qK8o[#arXۮm $$q]KRng&lÇ.s̨;,^gU@61-׽{pkk. +DUʬhJ B[iYqce4^q|k4Hxb_jrRaP힯+GNWR~x # QnSAV4L<\)W>N{ng8nv=d9׮t%'9wÛ;5qHV 6)1~|:7vj&։˹'I&@%N[h kTEĎQC&EைXjqF-RFN`1R(GRtWΐ̐!"5h "xlN4*\iSBpCbw##KG34yפ n GhQY|"c2;%_.ĭݒy{!3KDUk/lıvedHIĨ-+AMIMJqq1IOuN/|-[^R6>mejJAJqy_]*nU]~ /M\v( sl?19eSx@}?R]yPH + E:PZR*0g+ -=J24z+os v7!xq7o* NKx&_,k^GmyE\ZÃu` nF{3t!9R +k*h=^X=p'O-etKb\a@$cOhKe=a'2I;,=$52 +ϒ2*~R%ƙO沤jO;4ĨpM5}A :JSe(j[Dy E*lsq2Hص}ơLﳉS/P`#ezjǹɠFMB6x_g9IB>e$G&fA:!HMVDM3==$$ۂ0lqTб5aRbAsj)@YqzKYG>w,E^*N!8U!)@L䅨m!ChbMEPJ#ʂr5^LPP³,;UrL^A6-1-; +BE{kT}[a|`qm4)Q8^bR1Ae'jYoKHL3ÏIB?s4)P SŒA&5ILgФ\k;U•-! 5HQ]oW[VfHD* pFW2Eda$Oms$߉ػ`IY/ˍ.IUo}OtآJ{Ir"YYl;,VԯQk2ςnC66>(C?ʗ͆:L̄_ AEX3rC>>@ 7"J -Y0==_ͺ`l4D;M~.X;/ȺE>HvAM-p+\m dJ=)? +8fR!&w"Xoi:<"Ca*d Iq`/;^1|9kVYTیC~ݔM|Na^cذGV9L>g/[翝&"zԜ..K;t؟b8}, lxq@a{ [0;.4]s-G~5llZgҍ&?p t*~YB-Vx^hW} 8(ׅoE>DcA-tS|4h\h$|InP2ʬx!Qel͔f +sCh!)wʄ'ynLoGGG.˃^g~e&>Z 41R{Ib_q B$`\9Ei3QxG!f!~J:ĺ !~RScӡe;z*uC  <09x8gV)!>4TB( +pC3Lq AC%H=>!NT,T!M x϶HsB_~Gh!-Q"A@]HPѦ& 1 1tY>Ԣ-mIs?$N(lv{.n{IH[T~IG|3eÇsp(y\ yB@4Oѕ +?KٌsM~R+ ғޅuhABѐPxw9HT֨< 0SQ N{. 0Jٰ9mmqBLӮa/ސ-s vxiɡ +@!Ɲ`-YsN%IVN( vZJ0CUV5\$;I ;7N7 $I-owY!Ё*b{wb +oNp)52j L/7ڈ gi +z-:l.XD Klm9S +tX.ɅΪ&)8Odl]S 33x FʹaZ6'ʍ,{@ў# {匨"!l C%e +9 ԬJ#"͙f 4~sg)5_A V <)MDgg{β ]doO8+[N,`C'\< 'g+'}g' lCpJ:IDa*K[948ّ[/ f +endstream endobj 30 0 obj <> endobj 46 0 obj [/View/Design] endobj 47 0 obj <>>> endobj 39 0 obj <> endobj 38 0 obj [/ICCBased 48 0 R] endobj 48 0 obj <>stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= @@ -1070,13 +1058,17 @@ N'  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km -endstream endobj 42 0 obj <>stream +endstream endobj 44 0 obj <>stream +HԕKN0 >/0m<: V#4b"`344,:d;_Fj4rݏLWr+<FGOteaGسv9_ڡFBCD0͞աcL^t+=Ԃ'V5e 7 'u17.-xƅ3J"-f/Rqa8Е ^Ħ|3,P"+,X&q`,GۥKiP?"V||W +f{8p/ + +endstream endobj 43 0 obj <>stream HSKN0 8I[ b5B# V4AlPıt|q<w+8C a: >pۃ$g pEqbdv :mb҂aj,@v+% S*CԕTkכ.]Z~ZY%'{ HtOTs{*T "٪欴fl1ȄIU9Ii$EP19voR*? aqVYʘ )H}&\KFX: w:j*52jV/t ? ؑ -endstream endobj 41 0 obj <>stream +endstream endobj 42 0 obj <>stream H\Q +RU4x')[b-ז]2vC&<3 6b; ]N eV)".g (iYȃ(^PfKCG#p LT4Զ+{_Kl)ʵh(lUF vgumJ`='4Wnhİ\*עrۆ= #|KMW -endstream endobj 40 0 obj <>stream +endstream endobj 41 0 obj <>stream HSN0 +i`)g 8p"-g{[&ړc'a43)rwz/u复 @@ -1084,46 +1076,46 @@ H Ã/|bC $PZ:nu)Y#ZLz%"l ڙSlTe5ڙ=s_ b y =3,WVMM{檨 cldA&z/Gv'p -endstream endobj 39 0 obj <>stream +endstream endobj 40 0 obj <>stream HT0 +IڤW BBZj|@.2~g;I;+ɳc;ϱ˗.[w7r./d/wٮ~tۡՏ{"FBM3?pZ)Z4C%b;4%7+V_VWnC;A}w'NLO3R:%gʲ+,u5YwNp|'NJɾp EaHH,a{m|iV޹y蹛s? qGZdi7\__ӨkHV)xaj%Zm&TSl6|֗{l:&EBdFz$Q,@e>)d S-J%Xs[BJo]q濐*h3'k3SRH;*ɡmޣYf ޶>stream +endstream endobj 37 0 obj <>stream HSN0 +IhJAVhŁKiKNEH"9w<'pX/gp3 m0,^nRzL Gc69bٻ 848 fH#vbJӝqYhΖ2!Ϊj$&z ʉ.k&hUx; j"gCpEg\LP$I l dكF+te[3)$A4_'^m* _z^t^ޝɴXojuifu"o~>+_\{8пw/ -endstream endobj 5 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 144.0 72.0]/Type/Page/PieceInfo<>>> endobj 22 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 96.0 96.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 40.0 32.0]/Type/Page/PieceInfo<>>> endobj 51 0 obj <>stream +endstream endobj 5 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 144.0 72.0]/Type/Page/PieceInfo<>>> endobj 22 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 96.0 96.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 72.0 24.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 40.0 32.0]/Type/Page/PieceInfo<>>> endobj 53 0 obj <>stream HTAn ,@kӪU@m/ٕT{Pqrz[t^>=/wpH'| N˻üׅ[+7sll|9_uLDà i*<JTi$ehfWeʲ2|~¶TnSx1܁|;$4MSR/~$3+¥s40C+W_(2( ^gϒ;Q(u@HvBN Pʐ.CM L,L#7/m<|uysqCFCΌi̙ehfWe<K6E!@6RHH6U!bGU(Ldh!ցS|#7/m|9 ϳǑ -endstream endobj 50 0 obj <>stream +endstream endobj 52 0 obj <>stream HtKj0sƚ ]z$$Sj'z oc3 twqBNO/'A1HDX_Cc^RE~b=CX ۬~:y|Wm05;Q1ޛ*e1*<\YfkَFҫH4 kʶx IgRXH.Ğ{[ k4۝]!Y# -endstream endobj 49 0 obj <>stream +endstream endobj 51 0 obj <>stream H\10 Ew_% kbB KM˓`E5z<qq8x q[靄8a AkJ;5]}KFКk~W?: -endstream endobj 48 0 obj <>stream +endstream endobj 50 0 obj <>stream HlK s2 nKL6ibk0g@<A a7 S t6 FECPYސM_B$ ]SRqc.di/҃ϙIxCtT.@\M:בH^Lp=o2*XHͷ 05Nmw:.` -endstream endobj 47 0 obj <>stream +endstream endobj 49 0 obj <>stream HUKN1 @$dȖPłD E*\G,дɳk9unY@Ճ 4_o>n{P.KA/` >)[u(F!PD q-jzfH:=iuī9$ ڋ䄜3&kx EA-`AlXˣ&69ULDH&)k"̡0p1vf𡰙[ap4Vܩ} މ@'Zsь\AQ̨F B[˷FIf;A"t*ti;D#C}%Vâ7f61ea %w؂򌐡L=^A9.Vѐe^4"9buWɫ`?wK/ރ=Էi -endstream endobj 31 0 obj [30 0 R] endobj 52 0 obj <> endobj xref -0 53 +endstream endobj 31 0 obj [30 0 R] endobj 54 0 obj <> endobj xref +0 55 0000000004 65535 f 0000000016 00000 n 0000000147 00000 n -0000023069 00000 n +0000023547 00000 n 0000000000 00000 f -0000202092 00000 n +0000204817 00000 n 0000000000 00000 f 0000000000 00000 f -0000025853 00000 n -0000025925 00000 n -0000026120 00000 n -0000028627 00000 n -0000094216 00000 n -0000159805 00000 n +0000026844 00000 n +0000026916 00000 n +0000027111 00000 n +0000029594 00000 n +0000095183 00000 n +0000160772 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f @@ -1132,39 +1124,41 @@ endstream endobj 31 0 obj [30 0 R] endobj 52 0 obj <<1ED07A5599B3FB4CBD8A4B2D80445C33>]>> +<<89FA0180D3E9A94689D0D1D2D108AA03>]>> startxref -205815 +208540 %%EOF diff --git a/datafiles/data/themes/default/graphics/inspector/s_prop_area_type.png b/datafiles/data/themes/default/graphics/inspector/s_prop_area_type.png new file mode 100644 index 000000000..2038e1fb2 Binary files /dev/null and b/datafiles/data/themes/default/graphics/inspector/s_prop_area_type.png differ diff --git a/datafiles/data/themes/default/graphics/preview/graphics.ai b/datafiles/data/themes/default/graphics/preview/graphics.ai index e0e847248..641599579 100644 --- a/datafiles/data/themes/default/graphics/preview/graphics.ai +++ b/datafiles/data/themes/default/graphics/preview/graphics.ai @@ -1,5 +1,5 @@ %PDF-1.6 % -1 0 obj <>/OCGs[30 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream +1 0 obj <>/OCGs[30 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream @@ -22,23 +22,23 @@ Adobe Illustrator 27.1 (Windows) - 2022-12-19T12:40:15+08:00 - 2022-12-19T12:40:15+07:00 - 2022-12-19T12:40:15+07:00 + 2023-01-12T12:07:26+08:00 + 2023-01-12T12:07:27+07:00 + 2023-01-12T12:07:27+07:00 256 - 144 + 148 JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAkAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYqgZNf0KO6NpJqNql0DxNu00Yk5eHAtyriqOxV2KpfrnmHQdBsTfa3qFvptmDx9e6lSJCx6 KC5FWPYDfFWNf8rn/LUDk+rmOL/loktbuOEA9GMzxLGF/wAotTFWWabqmmapZRX+mXcN9ZTjlDdW 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 V2KuxV2KuxV2KuxV/9k= + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAlAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYqgZNf0KO6NpJqNql0DxNu00Yk5eHAtyriqOxV2KpfrnmHQdBsTfa3qFvptmDx9e6lSJCx6 KC5FWPYDfFWNf8rn/LUDk+rmOL/loktbuOEA9GMzxLGF/wAotTFWWabqmmapZRX+mXcN9ZTjlDdW 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 XYq7FXYq7FXYq7FXYq7FXYq7FXYq/wD/2Q== proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:bb3a5c06-6927-6f4e-b81f-8de03347aa02 - uuid:c90ae499-6044-429a-aaba-5c89074addf4 + uuid:58aece21-2b32-4a9b-be06-d0ad04da4066 uuid:e533c052-f7e1-4461-a18a-b736b27f9a25 xmp.did:2821828c-6479-484a-813d-42d196335bbb @@ -70,8 +70,8 @@ False False - 36.000000 - 18.000000 + 40.000000 + 20.000000 Pixels @@ -409,6 +409,15 @@ 33 11 + + R=255 G=145 B=102 + PROCESS + 100.000000 + RGB + 255 + 145 + 102 + @@ -592,29 +601,30 @@ -endstream endobj 3 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 26 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 27 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 64.0 24.0]/Type/Page/PieceInfo<>>> endobj 34 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 14.0 14.0]/Type/Page/PieceInfo<>>> endobj 35 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 36.0 18.0]/Type/Page/PieceInfo<>>> endobj 43 0 obj <>stream -HTKn0 HJmݠޢ0Y$w CYi(Pt€!ψ/6oBo6ʕ_g.Uhn;TvKP -J*\fڟRR9{̵6zLʥTzq`ӄ~G4BL8;.ƭ -36pۮC#D{(׎w9zvb(K[ˉU欆]#`7+R >XRoE( )AK[`22W |c#~ RLmVr.>ۖ*xZDh WUQ -nH!J$mt*84|L`ǡ˘7C#zRk=4ª@LU?v) |ε%0E;uw3>E -endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream +endstream endobj 3 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 26 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 27 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 64.0 24.0]/Type/Page/PieceInfo<>>> endobj 34 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 14.0 14.0]/Type/Page/PieceInfo<>>> endobj 35 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 36.0 18.0]/Type/Page/PieceInfo<>>> endobj 36 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 64.0 20.0]/Type/Page/PieceInfo<>>> endobj 45 0 obj <>stream +H +0DM^"UJ~+T +R$Bef3"Me$:0x]0&J_Lq +rC:l9yja3XJy-׫i f4>+PDjnS& +endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 27.1.1 %%For: (Makham) () %%Title: (graphics.ai) -%%CreationDate: 12/19/2022 12:40 PM +%%CreationDate: 1/12/2023 12:07 PM %%Canvassize: 16383 -%%BoundingBox: -35 -72 163 38 -%%HiResBoundingBox: -34.5951051953625 -71.8048007089656 162.949325561523 37.5630098754828 +%%BoundingBox: -35 -75 163 38 +%%HiResBoundingBox: -34.5951051953625 -75 162.949325561523 37.5630098754828 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 14.0 %AI12_BuildNumber: 196 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 -%%RGBProcessColor: 0 0 0 ([Registration]) -%AI3_Cropmarks: 0 -73 36 -55 +%%RGBProcessColor: 1 0.5686274766922 0.400000005960465 (R=255 G=145 B=102) +%%+ 0 0 0 ([Registration]) +%AI3_Cropmarks: 38 -75 78 -55 %AI3_TemplateBox: 8.5 -8.5 8.5 -8.5 -%AI3_TileBox: -378 -370 414 242 +%AI3_TileBox: -338 -371 454 241 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 @@ -624,9 +634,9 @@ endstream endobj 8 0 obj < %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:24 4 -%AI10_OpenToVie: -9.29411764706038 -35.5882352941135 17 0 8209.64705882353 8246.20588235294 1230 924 18 0 0 319 121 0 0 0 1 1 1 1 1 0 1 +%AI10_OpenToVie: 24.0588235294108 -33.4705882352937 17 0 8241.41176470588 8244.08823529412 1176 924 18 0 0 327 121 0 0 0 1 1 1 1 1 0 1 %AI17_Alternate_Content -%AI9_OpenToView: -9.29411764706038 -35.5882352941135 17 1230 924 18 0 0 319 121 0 0 0 1 1 1 1 1 0 1 +%AI9_OpenToView: 24.0588235294108 -33.4705882352937 17 1176 924 18 0 0 327 121 0 0 0 1 1 1 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %AI17_Begin_Content_if_version_gt:24 4 @@ -639,339 +649,303 @@ endstream endobj 8 0 obj < %%EndComments endstream endobj 11 0 obj <>stream -%AI24_ZStandard_Data(/X<N *&6@X"2fm\;K2MQ0 Qt : l wYՠ<^%9, -I -k#Ab7$=rnBѨ$G8r,T*JJ}X>I *vdzT6nY:NzOnT~Z␤ 3sշh`&_6V&ô4u "uXp@ PD!(0 &LP`  -(80!B($ <```c:1(#3 1 - @H@WVtnHݕ$; ` TA"b@#H|p> N j(EBbX T *ʻK´1=4ws!?ͬ=ss'3xr.Z NQf(WЯJ#Fռޝ*)Xit65w6E.M sQ]H,y~@dQ օ)LQ -3$D9 ϊ0 -Eg7X;_P+`:< к{@(\鬼%TvO `a0DMv@^6`d NX@S_ 6竻c"q^9E.hW4MV@j~8ΛLiVUeVMfP˚VyR/>JxFeѬVjg2}v/e6N3syugg9j X(+Pa -Z$ӂ EDѢja#D~Hhx\@'CvpO‰J\ *HaY0O  +< ?/4ِHBZi` 1bJ,n1tz@hX, B8 a(< Ί< ĐhE h h L~ᑹ|YO1+YA'3n˻Ӑ,3W>K#;.K0sŗ̠=:^J~!+\ձ#3#*B\Ѥqd`8 1/dĂd; `hbj*P,,z@-&BX ҂F1,,0 -"8V7:  \0y@YX$gfP4$5`k*l.q5 \1,,+rYU%hxא'VVi 'Ԙq@@$8#q3ccd6t1džEx8 "x@AP(|R(ljRП1nˌbHJA]NY,DVyB8qo^%fۃ#3j,g.!qG~ЗgueF ;lSZfa^Q7Gv9«\Is&(0 )K&Ǎ> 88 D!Ėa(ÂbAP$8 8)JQVxK\(DD_B":g2 xLDBb-#-VE)*Q: \^ 18 D.ED-D≳p@0bAq@$p@40,'2XD< faZ5RRt@(HATZTTH,jdt@al1`-K(nh)LE.a"O| o LXP, 0Ѱ0 <`p.D"0y; babqy ԰`Xœ(ӆYC5C̰h0CMXG "A.B!8#CÂaaX Հ o(LfBC6l>w -/xa7xd"*2:B: N R-h墪z%JQ (j -0-/8-FBCc dl:)+-/1g"dȆ>n/|q7|M8AJX"X$ bUXARH BX( Yh,X`XhXZ/ baX0,P3C11 C2!6 E,LMe .`>X0b|jS0(Tp@a>8   lxba0 E!ѐhxC6`5X5Tp@, g8C2 2C1 B"-lQ]̢aaXH,.-]bXP$W()EC!H,$ E"x"D%($+: ɐTd"d.pxLD<,4nq %.Ϯכ; la ` PJTUUk P8qnjj2 50,pH8|ъ2 DgUa Y(Fq@$&1IL95FC&P$Deqâ eXtEO< WS9 aðQ̂"q9 ȝ8 >8:@B - >`\PAp@AZ*l -@A -L@ "d0N|@ TD - Tp0 8A$`B 4BT`P @ -& ` l` -! ,h 2@ < 2 &T! -DB 6a%H`Ѐ@X``@   @$DxF*<0H`| -"PP  ( &PP!0A #p@@B -"P  -`B(L@B@ؠh0a,d X -dЀMfL"PPC> B ,@@ > P -*d( c,WAuqadL:l`\!&X@HiB 0A *HPA„ $D (@Ph`dd0a!X 2 x2pB@0( 6A(@@ - B@pyTk RF" &Ya*8Ƞ@Y ,q$@L H!B PqBl *TP!p0q8н -< " "@ˀDGP! $x @ 2᠂!p! -P 6` TAW̴ _XeP]W7Ve]v܋&WP:"ZvZUvҤYw+Sjt#U6{xTDfv?dNEqӺyw5hY֊/Sz}r6V̰XdtX81ϲbO{ktMy^lfdU?Gd;C3$󶗭/oi+*Z^]qU}4 gg,鋅h: -7:?X)?#qI}jUe=<&+[bьƪx7t9'ݜNaV`CS'c|t2zHjGo HvW8|cٚ;6XN~}E$^bՑzu5sb,^sd-4shWa<_ڕmCdq~v;"e!XUY?RݩjVE<;֜KTm6ec^uow5YcMzG;"ҥW:y0wŋ˩' /Vݭ>V^]ҽZCn5ltK<xZboR_q"^M]UcdIFO"vB14ie4%b`oHm}F*!|9,Ng{ aǰjvqF9V^=W rʙsvRHsecdϥԒ}:'r9#mXMo5?'u(vf?"ĶU>idRGMk W?2ɽfxd#KcɽIA4h>g~%:^S֕}T$/OxwoGOl=3729ǩ.TxGG?Ɂc%ϪdkzI}>t|I=:d*f-MW꒯t?<,xWRLX; a/g4-Ҷ<^n=eK^yjA3A[GvP6N,!N#K B4$l|&|ZJ4M~h*y,:䭽*>hr+{Etޯ\+ fF'$DwTܺS͈)j{,&f X:ws}ķ3y,INGؑ -$8 -j?ok7K g)iN4b%|#7vi{\}حWmr^x.~>_rKCb+юAgr&װ)$VٳBفe~T{%~'4N|0QB ]HkZ/{2q6t",XH3:Sf|~v\ma:W=E0Y1ٲ[YvmtW;k$u`z2G-s6Dv$٩ ɳecu䝓h#$Vrmw::LxϥS?)u=]u$lDcT~mUJluY:6cb6^Wf}K<el;v;*sвh4; m|TߥI5JM#fg1ѫ^̃'kR6VǶTtU/*{b1iWWٸ3V라)v#e.AMmu̼=j]DG+o-1́DSk1yщ?ځ&H*9Y&U7c_.ֳn#Q_9ƣ0*506Y'VHٰMխ^BvVγ&`V捌,5D3(}@iƣ^wRIZݩ{:h:RIFHbP9i#IJ 0}:vѝw!4z{L7by?-Q\OtC4iѨ$Hx< -j\+sIϜBk4:+TWV~5trvK4MWYbb3gwXEva-Q*i}9ִB`UvG=wo$CYlI[%޽KJMPY57^J/kdȕ6M>}nw5ޛm+zIvMz*2š),,U^3c'IK pN“t 潆PnOI>ɬ9اnPjwcc?''&t L obGÓtY;>a~G9!Uh2_EGUuU7a%]Gj5k%V.؍;gy{c.iS_Ҵ5Iݍ2Zgnb7^Wd)>e/oŇ紼Oٔ^gcե+}K3q 7j4Մhy%QijͷӤءɆ>R+ttK9ϝLpKѠ׽jB#a4U=[2ir*%sҊHEJ}GZe:eiE,þJÒzczڠCC21Zd֖^'E1?R^%ԩ|ǚKVާ#tоW+nξOOQJ3䙴; sBY'QL;]9r5zy(wGkn W#]+x(BlR͆ kh/JoܴR7brշ +%AI24_ZStandard_Data(/X )&6;H(7Ev'(`@@#5 f 4My[ UbЫ6(V{IM#&DJŸ#B5軨rq(.؉mG僑ٰo'IG.h㖥 6N/I03W};iɁ+m_ݜmcei2LKSǰ,X^ A`B4A $D@ + 0@B#  D (80!B($A   t`t`̈ <0f( p@BHʶSGtݕ$; ` \AB#Dp"EX85$ bbP! :v(/ fv놆7~fFfuOED4Lqʥh78iFeC;f_BW+U:xwƗOC#$bd4Y7/Eu!H,E .X0E)̐X$?H<++|(''`|ADXXC~p>RP=65qxـ 8U,8 d cEM}a3؜thĹ dxTaP\.+|^x 7YE2)8o2CZUY5A/kZC '*q7$ )ft?DMI ^ +oeҨ9HiIfP Yo +L0i; ~ X4łDr@袉.4(\ 4 +GyѪs񳧹^SYuVtǻ5F7k#QO39ƣE* @6"$qbOFJoܰGj:nUf=3ˡj:v7Tvw+W֌/,*hfb`+bnAgP0, ĕ4d#p"pVQr< /k֐.aT q@<8+< 'ѠȚ"q@z SXZD1xᄿPE6f `f@YSˣw-3,[,!Ep@; ȜPoFa:J0FA$lnK;i>XဘTv@|p@\.Qw]q@,lꀰ"XX0L}@X`h(Ă[4 "Ăbaaxӟ47IHS\"!=P P8N "aq@(bAq< Yx@\h 4P/3<23/I6FyrB9#3dmywwegid¼e &y4[YKqRo24Dt:vd;cDcTEh7+4 w9 @8  ]>8 X0Lq s@`^q@LMe? C‰A X( WZPh4E"q@`Va`8 APz@$FBz@|la< ά|e p@,33( [56p JQ.,ҪDZM4 k++݀pj8 d`ոљ1~U2Duјhc"N!2LH"H3U@!A0#,aZe5tD I`$ +2H4`v4 +(8 ( &DPfS(Uaf`@înS2Lft$@ lP *T%p0%p0{G(@*2.h@aB "4``H@( &d $@( + \0 LX`&P@ 4P ggLzf>צv"< 8 ]FZ0AQ F AAIב/V .0p.: l RB 0! +4LH QG$L !@@aB*l 2 0b `ɔ^"Vg8ES]9|@O*3>Vdh@mdZUYOIʖF4#.6 ]t7gSXfU/g?n'Pع2^%[zB;<_>XbΠ 񇅓3_Q4W:jXud+i=kܩX1˺Y>d Mܯ?ڼnUf)Ǘve۟y\HtH5VfoUԠkw`eΨ5,UMجW]MVXoh$fюtiUN>)]obvr*.C/Vݭ>V^]ҽZCn5ltK<N<(ZҕիeҺAOqUͪ^{:jw'S},O6zٷb݌)7ظI+)ܘpx#4Fjc5RY aq=K;U;Lۍ32͙}|GiN^Z4 WWWSGVVΜەBD+͠&}.9n +em4f?lR)E< 5TEkhw5!eIWX%:hZ{LI5%ɷX;NgNbm bܠFSF9,.Tԉ4裚=%xy»;~ޕy*1NB˙9; 6iK-Geu{Rj`Wީ%}L֑9&M9KHHþ gw:wom)*H[q%#{ܝrd/z'dG6I)-v(Mny!|J%+F}}?ykʼ\ʽ-^+41 +?xCٽ n%.U;T3mJx&KiFwYzC2*VŬND\lLA^i*egƳCR0qv5Ib5BeBYiir1| _M]Ǟ3{h)vkī׮,|%8ui짜ҐuW49xt&gr i2M`>j=+/X&ǛHWwRA %a/p'3窯nӋK'2jXx8i*ϯ8e7~lF~syS$-I5>mNw尣MٹF_'~d9x2gCdwL2YP +[<;^^8 ]G9:,~F;1BnU(z#΄\ڋ0cQR%]NF4>:MVޫ&Z_wa3&f~q /eQfc* 2G-ȎFʺCF>O[J]Z^X<0 q + F) 6H00 *hUW*y~'V*D3KḺY6RX!is,9lܽЛ-zM"OQordNJ3  ̓FJ>Aa4{_-f/sMr9$jKtV_C&y DS#IHI(v:-KGR4$qä$lP]SiKQ*(OF>$]ɑUgrzLyX醿La]trdc(A= lROHecߤ]it]<*M:}^4ӍzXGtzK<w(Y(*Y j_>EWP>t)S]}%D&ٓBkU#z.1di(Qj 8Ut- ҿK42g?H{d'i5Hi K3Q(]2ٮ¡͘%BɹZN ǃw2ew/_vu yzIBU+7kd^%ZμDt{>=(ԍъf(U,GO5ڪ>ֹzwg%[JwMM~JƯP'u7jh)nmx 3o\e\i&?fSzҞWF6RD4<9,gn&i (v5Mv4;=Gjuu,[3mW-3 -~zajY?nAK[vd̆i3PR0kCəe-lx#ܙg;(TV5˦e7I.n3Ie MA7G,e:`Y{ZRQe^.y>YURHUhw"P&zW(CvuRj畉SSIlI4mj$ǹ|`+XK5E~/"A]9О<|Nsƚ]Zn/ٜnGl,Y:#i[Ȧ=5)ِ2PZlLz^(+F,{$sRn*g^ +~zajY?nAK[vd̆i3PR0kCəe-lx#ܙg;(ڐVYU,݄'3؎+f5ޞ;+VωnvЕ6P|zC;όIx\!L]Ix:ַ\I iv'c<)bjK;[i3NyJX9m:'>Ph:jiDoeIݙ^n3Ie MA7G,e:`Y{ZRQe^.y>YURHUhw"P&zW(CvuRj畉SSIlI4mj$ǹ|`+XK5E~/"Aŏ]9О<|Nsƚ]Zn/ٜnGl,Y:#i[Ȧ=5)ِ2PZlLz^(+F,{$sRn*g^ kGV3gt/eS!Z]iߦ֍R2$%!ͦ3s9!SN^3d!4aF:G -]ÙTה}WMs{^=կjۍTHe;:Pil jvbtFIwXKἚݫcrjݏO &=gt$ VX]ҧ!笪j槬gIZ{t+3ku-=șMqv̅n62;^gql\}:c}>$i+h'S'QrtΔ#L.SCt}}*ʗ{=t^TJUڍ~g W=]jvzSf!f&eg<]SB豭Q7laQm\s0od>Xцsh{#[dUeJD۝%?h^9F{$M{mڟC__{0iW;+EXfV6DH7ģ 3SeuQ#eƜQxh(Qid}hd$ ֯vgF;c8N?5ʁyW 鼻N oI4w[cdIZ5ϗ]H : BHg*R]NzuwSL5wTO=w'9uUdWT)idU]ݝwC5tWX6tiF]Y$-r$mUmjK#/jilU aHtQgx2ޑO;'Ljxya3n{)YާTy̢Tbq,4o–`^w[~cj<ՓXUtXqTt3M4OzVѕn/J\zRxZđ!=eD9V-OI6dN}b= NvQGO4s={#9+#[XI+ᯗFUUHɚ]Vf"R:6!g -Tf4$<$I%Zꨘ*M'+MQO2GќBe¡xӃ61~c̡*B2.r^SIMJ%%Q)>J)1K,Ʋ3n(r7vȪsDt(FdJ%!F.h":I]: tgsΐ+QzY]Nrr*j&1<"3l3|TN&ۍԥZˢ!ڠfcgV..'˽Y{N7GXBJ"1~/̉fU++6we7fWsWE{ItsϬē6CJ!|NnjD]%if3uaNM-&er\t5eRph$LPA $H@B 0@ljΙvXAҰ sUfSb[.ш^hd*ʮBFN#G^ZU}ز ^ȽiN\7y5YY6l ,Clΐ-gYen?ãݝzwƚ3B0=BLɌJL -<4?U Mo*B^6 -yYQȶFLe~Sfl*[Jz:yijjX*AB} M^ǴɌ jzLˢkEoygаF gk᯵K3Kv?fBy2D<+[-w- kpd#6:^jeBçYf -(l^fT%հWuvg:hGt8g34?ܙg%Y'oz4gXIXvakEʫ;"JJN(Yy$e6UQesʖid`M2}YDkM-4G̾iN6TBKL%ud90hasì+5zKFػ# 6IFg_ҙ5׺Up8627p&'}d퍮SɌ\X9&KSOճnwM]{hr7JڜfUQ]i3BdD)tLD#s(4dE$m&MȊUD:̼=3 -YӐ$YR,S_}<)!G2%,#iFchiT܂夛9aL.\mGX$_z7#$ R{ZgH2&5sV<ۡh):d6W;FZtꅮ(kuI^F'*g\/TK;ɨ.KeLRS)H 88 EAٸN~FX<#5nj1 HiVr':[ ^t}Z|au9ưLqTUaS+bѢaNĝ@#*͠joLkm3;FK8RS'2dF;aIN\Ǟ,Ԯ~Q$kԄFs0-*F<18?u?$"1SB"<1Ό2RV+S|ZnW -W*P)l,{s$pf 0W4oC!W=0hR ;+ շPܪjC%^_ .h4$i ւQ豉PRB>&KFx*9ٴ& -8y9=t&7w ~I7zJ !G[SedʢBēГH!+Wb?g2 C𽂣=d$4!}Ӧ%廬:!oл]C8(=c< M2x]-=j9#B+ vs=S?>Zn¦X4=Պ H=TqQ\L-xc %U:Z׵%D\n/`"t^ jH]-|:(]xR2ˣK0olF]UywW֠[>/YRȜR^ uG38],h_Md/>XVӲ P[RRg)u{[ig׺0ܔjAB+ /7`Yh읶߬JfEWq ÁغR;s1a=ûoB7Iߣ&'ӤҚ?[sX޼|vy'6~ז#f<CTfhanzl>uiPZ6ڣOju8)e[~۟:K9|**' d`sv|-uVz+V"=i9,x} qt _1U:zSm'^,>gv Pr -m+)H3{0e%ެHuWk3%E}9`wYp1i -WE94NhF@4]24 ’xO<{r$`+=]ZF"Lh$|H4P\KKUGE*“rtO(#hcCi,jY~A',r]U P5S0H+7_Vu@W>x1,t;VcNpeaX8?7d3ϕX^ 7I aiv2a:WO[ӯ0cU:V+1Rx*$z KN5hNkͬ -VQ{{1jwD؉[!Ys%m1>= t ؋NtD8n5L~ɞJ^D%T =+kxs )P1dU'jfy?iM/%1'y,Ռ:`I؜f4lCW\1HܒaatǍpFw"tk5I1j~󝊥H/T='hU+ưh`(Iiz*N bpV!Œ֓0G(gnj!YiElreʟzۓ0ژ*v9?Q+ZTƱnnGtĴɊ9-M#PZϔ(x-^ uvég-LuCLz(W3lR,E3(w ‘;aI\ >At[ 0C3b?/T cudnTWq~8HY_gh.wD$kM<>h]e9 -9ԓr q!zrćh;'w -1\NZ0X[.ooY'<$eFTc -S*.|"5P{Lm>F}[(AC?`Zu%T&"A&k#)@y]zFЋq@"4k;¡𮈹htpbރEz6p"62Ř -w~Gͪ@lm*;ڵ "?$650\aF'N K'֜ 6Ov"z;ǻ{j}#!Uߜ -~ yD'/o?۪g9"h(xc^ǛeWXqp%# CM* $@W`fZln{H;?Y2b1pP㎀aPsr}>sV@]گO.,rAЩ9U,syhCa3QqG# #6&0UM[x1nq#jJ$ٯ@*ͲkO-"K U[(Wl7h@Tn/K] -|BQK)Vr?)t`?Дtg+4}ZhČV+zU$RqNʇsʼ6 'DWZ`XW:m Ss0zf:"U&BϟnZZNP^gF&/=q,DeN?,]J]&gTeGzT骨g%[IoRNabz6<'~I+3B>pCI P~"?}#o3O}넄liKTr_gvk0iVYTKL5c!g\pM+pJBJdԙ#FkPs+|Nc>}}H4nj<6d>E`̇:^:O&BPaz7tRڍ㏡[mؒӔˈ>x0j/t2 WZ\R;P[ hj"kM f({1{zxƘ1I;gVDtOۘklhK p̥5Yr?p'\sّsMrt Fõ5_[>:$?eohPN柈KgI K/;O-K,c k7]ƥ4WG]-bӕc6 -=Ǖ۞RO \Ps|L;,p%ǕyRUm$sr]CV 2QV\ 5oݮ,.ty/T `K Bwimc9 _ԞY7&h3 t]!!v=7guRh' P'j>paCW3_/D<dPۇO|Q >2ώ9Th: r0 g/}jXD%%Q6z/*qNz4)&Gu 9㌴(04fVXl/Qٌo]Rg_j`u\dz,X0;Y ۑWҙi$0j/H燐hO"D_apfQ gk:LdG3$}<7i=vgO;'+&Tn'dRu vF58/{Ac B/a}DdKbXb -ˣG)Dέ&E[GW%@Rd{רOxඖ\|v_q˝`픆;4(Hrm~jk N*ϙH4 -0ސwtmtdIv]7-O x9[*UҌRbg6%eę:BUK7BAioK2a>ol$<RLo;~&cD䡪SJH "j!H:h@~a8/=f$M!ױI ܟ6#5'y?WypP|jxs7^?VVB@$S˜rO3 pܒU[|94ϯwo3ZOђ +s\U0.I (G_k1`րj؜\Xha/C{a}v6toZ޺.BW -tee;)c4b$2=\Aя# X,R ;ݩtw;F=? oY1<1Gfƺ+H̯n"*N&8ԼdYRa[J!23$QY#-gb{+D@ $Pӱh|JUY}(ά`ag\\A+T5]mOj'ՠp qV 1 W-EG{Atgt!3R9w>xDUElܻ'p¤}Z!/|%rlNMq}+÷)8o:9-K'Jz?42)SA5a\9EA~Z݄j?u⠭u!ڮEI%p YnIOش2@#'̼FF_ qCVCCMZRlL!Sv*2(2N3Ps57B}M0"̣3x_-D!BD9dMeZ>k`ϱ%7L:h;"#}szۼeozokN&ŀ*tf$ EM4AGۺ7R`h&t͡1 G%x=>HLnXW , -鶓)S$=6}B:L킋h=Un}Іh>P@\S$V%B|@FT} :aRAĈqYM) K/PńA#36.9q) c-{ p-L1YxBd1OTR Pp|4 ¢3V-k گ]WR`@]yyWS=PFe=W>n8Ǵv0 Y'8oӓ*pl -I돩$a_1 /MB!ʣ; b9w.=$b_|Wg} |Q&D𙻩9%L·CXEV1{Ca .ބ&NvԠe q"suǭrvv~jW8 =VY[/e?Ʊ%q=gpߔqryub2bq['ErːTը*]ٰK 3Z]>)t+x>ӵTSs" --^vI#a؝yk>- -oixh6ʬskOz"ˌЪ.?rɕH*J~6lO^| -=lHW$2Bː_a\ QlR~,r,u=7.1s%lܘ. 뭩c+nYulQ"AVFw'ZvxBiӏd9SMb ]R"pA|ْlGe[2\M51vm|Q~YE=?缟 -Gscz*أȘ>6h5M``kL_$ޱ:^ 6¥=PF!tCrpB̯pp'H*GQ -fl!7+S9x>e|߀j71V,VB+ZTi̾-fJ-h2 -g0%p_C~o"ShŲru_Us1aGMR\ڷLӶH|b+=mɥu4^hk.s{4fAIa<+A /~`^w6 ;2k΋PSEڄ$dc9K_';|/V8Io)J3PT9#uR}Ո& 2nr%JZ{&q;3^n)Pkrrs+uvXʡЈ.KPV @Hm7b ; D1Iv,*fm B &]K#GM%D-Q| _k@viXRxp/\֟bG6t@㚨^A照OgيB`{}fe&Xd&+|%HNn i,]P,XN -XOΜ,:^AqBQxؘ>EI ˳Cg/ҏY"B!`¾v:3; z #CΦ=CD;^1r}FCa6dϠ>Σb#9a;bGe4f֙-&"' ,x*B160q*֋8G\8V4ig0 GD8rbt=hHA˰ #P Ρ#'G׎rJ:Aqb$ -_s,Y:'>'=ƆNGB1N"Y>IѬCIyn#7CCSv.]F ҝWA W]P+XuY2#Ϧq2b -p?6᠚?A/ΌwnpJ$VR[>D:v)űH˩Gqgj -qAj]e`K]z,В`G>CA$"saGGP<Ī7UFu~[QiUD' @`+N4RprF MD`K`%F‹S'udcqf+j˹WF LkIG}+5T!(EA&(~(9=@^E$hjwG_iP;?BtڜmX. R1(&hHzsA>ʲ=)@Ҳpʣ"?)Gv뵀C \=Tc6兦|W5:Dr%uQW!V%ݻ ܼΖ<׭?z@h[ 8QEfH[yվYA^`4!m-cOyKHf&Mߔ;xN ÀeŝGZtvUu׈[vPEPzeYy.e |0-C, kXz^Nܩ3C砠tLakQ[!U:22@kqFM ! >T'8>$1ݜQD}lbu}yg𬱩e -U Rej\o C&?YQ5,= -*Yia8^v7 3)$&-o˺$[W&d@$p"T3gih5%rR=w+hn`R;eJ]UW!Ǡ-Ja rI`]>_J# -a%P)!UA 1C[P5>MtI"f*pQYHG|UX!֑>"d -V\CR-13ʨLK:O7{{,!Om11kqÑR=mNnTQFP!F%ϥ G -n|,R(K&I;STrn2 -y/^ 5(%*Cy")Dą:$&*:JGpE0H\dEADŽaxYq<ʨK)]|-%=P˥^H-HfVx K2&+P^.M)]t+J793xR-pȈ3 uN*h}3&?x0vAD>twH1>RHyAzHy5$_5?G}:ѣCEøe:Uv>!5zC?l9?+S#-= F+@.ob̍lDv#D2n|HRQ\UQo6/L<2Mcs#["bOF9TDr*VͧpJ>! ~ň)~Seu](y!0E-!Uiy_؅dftzDwE /IO&[er5M4l7EyxA]xml#0]Ȝ-H%Ӣu,.H*6 O-b3깸T #lA ̅@>&~.q -Ytt0fOn:{ -M,E mװ[vB<昬㞓/ uf1LpY -FF^JLwFDNHtEQ+"B**d-`JBU%&V@x)3(S֞',`G ^xA mQ#(Ҿ!}\^ew@%,kq_N`ܢMU - -E>*'n!2AX8+]`EjJ`<7*2|(w8FuyeŃ>1TɄ8K/FD?8Ȗ3i\o]76+p} db=1;h)}Dlћpś{3ƫ e2s7c h~\֢S^zdtuHdrg]±; -ЎCտ55vEPI ,)51"G7ּZ#y;j2>]jAL /ԫto*f͘Jq`Q!,SU<(Nxa"pe!\Bb3Qc$a5NY|PF *bW2;CPPH*f٢:ĨX}Sl:14ejTdB` t[Uњ,M QnAG&ч#oW֣6RB>, NU$z2D7ǙS ENT:S? -7V\tOz.DQ`".5Ax0SQ6 -B!^FgEl02`c'{2+C  #,`VR'h6@wzK'zX'> i<8\ꬌ|wp=,bF" 888`V~T9IUolane%0X6Wp'kD:2d ;;V:Vi1O\‡8tb?/Fb 'ց}P^MB|;`xvd }v-;½l"!DlzSh'Bd:xk~TdM,U-x]Yܷ$NZ+VL_ⳇ\PlifSw T.;eB* BV. LU*vIߵx oM4&5½bQpGVĐ:S (ͦ -VjSgY7&dɻqB8Lŭ<]YCDG62^ՉFF -3nDdIQRpl(6A6OA.J;R-#7 hh%#i^VF?Ci186L14m R_dhw [QY> =(;'ݫI"Ϸ7غW/TPq)cɑm&c9h -exU  "lZ0 ngArѾwxu+*2-KU.{hpZإ\Hϫi\v!’ST)O=)*(7@ep<d3Mh ?Sd7%"3bDjdRGvXOAɅf^k)Xjֶw_~A݆6(\u![RI,|*n=O1$bKx:9MԠYB-^7š؄6q$5LC˺/TRՔ!/lEHY Y3'BMl=JV-֬<ȵJVA)%I&Tjm,r&ļs@I#YEϛILkR=X^pY.޿͸5'AXgo]nP%! -8L'e /מvEgv}V"ƅCK=JE*vGm;kv#sq:%ʏ1"Y(EgŠ[a eeRҞ%^zp@*EpERIoWנ{H%g:1SzNZ/iVPs].r+3  40&E#}ngp' -G ^="vNL8ecK*Gr͠A̕ƄbaqP"6xXJ0B%k$oHGsoS )ί#J㐎p$}TRxK^:48ppv!qː 1ҙQw0VF DJi|#2+YO_P3&_RV <"VdH"u7eBhUW뚅9 ϥW;sy4m -R$QVāq&cM]o=jO!(HP,X6)fwlw3Q6J"BVgDĒ3SW(AM[l ,:q[QOVbtS%4NG" w;y bpv1,DOZj l;dw -\7 -SE 3]{Tywsܥ?\c:1}̜0: ĴiW.o a$zkcC_|I%!Kzg1^}NN{5Jh #L2t@(.-Mba|+6>#PAsk# ;A)uW@GUN)*C`BZ<d`k+^ ZY0Nǀ"&ǣ^-n'J}\_& QŏZ B|f%b"PT&W_I5fttuuѮ kia -E,Rs LuF93I"J<1O:Ԟe`FT_e!$WgaO10򻄣$M5(>:@܆@8?XlP:t"CR -o!ib .PvѸ])NŕuXUJ`b]ld]Wxj;,_Ō4pmTtO 0Uyaft]1qc%Tr|.ͪ/.}BQ ǻXSVFUԯ4Py_`֏0^)O`8 o/7CկÍъUX%P4="3*ԟϿIuR(4yLbeqOLJ pl#҂?gSCnW멽aOeoBri - 4ՌRQMy7rӈ)omJMӈ.?Z|ZJΔBEN[;j4qSIL)+2D2fEq:4FϏjKe}F+/vn4m /=ENty4,=XkB?m;AR*`j|ZxҪ*UV"*OsÒ]8cv\aD{Gꁟr ۨ4)̼“0EK%ch>[?}FF~=W\ -6擖2읫|Z -TL'Z_o_ $pLtdo ][l :csнRXmH0ozR ų*fX߀gV\?W[r:EC]mkǃ%b酂Aa_1s_RT-bkb^v$K"m5mP󨌲'=jh͟&!HǛPDj ܶe)c^g&~[—fGaqa6on+5,s8. hq|9NRV_:q+z,!ܨTxF95/$ŕVƬX1П1fk>Fyݞ(*! -`*Q{D -ˉQH̬s1[GЇRFG9}ffjRZtM<$fKqՓʋut++\w^O}(2[k̏ 1gdЭ1f"EHol`ܲ:un?-By;? -51^BPNyJs74e.fJ iTa,Rr43 ̄dE7U(ZE'M-Bޫve'n+0Ӥz -畁?W^3s90he2hcIfjŃ_LlTXG덦&|ZM>Ts;) JNyX='*N&#,̫z0Xfc9c&f8-sTݨd_ BhZtq(/BZ'Zm9vY\Wnc6"G2 6cnY0fRI^~ܮEu0ӗHLz/~iZB:a˵&X;Y((qEi})0AtEM_SKiǤ_ݍ: >"CR8$bGjgz%EJ(J4 -RH6JhEՐ(e^)~5ܦ4^Zmi&ҙRhYD! Zf2v3&4NBϑJ=Ev'֭L}| v  z Ohk'Wse'/*`O!K$ Gs`ֹF k!C @8' \21J*|KZF6J<ʀnB*R,_˷@d L@1|ʒ'3?ƧQw.j Te" -lZj{DES¤OWs3E'AlL-bТ>a QQVʷEoZK gR/1%;\t6HPF-9c3ʒ|JlHb.mt2+,&leKf_cRjH]If3lA /jsǐY}P_s2?tlz?X -{MOݯ\Шni,;Ѡٛ! Ԇ)/4;4K+΃> tC|VAjuڄQc\Sj4@y(t˒Do&'_\FC:ṡƢ͓ GeϏ{edŐƫɨ l;MTB|xO,p`?Egr;t+@Wlj^x`?>]q~jGݜεZ"HhKPlK 5-\cXӳNp*}-NՂ?4I;xI4D/Y(XGq02[8 mfԢnHFtjZםuo @?4(.-_)֯رjDCYv,=h/.DigE[sN#`]˞$F#Sg' oSqxl 9M-A5Jm.;g.w715Q+T흐^J$J`I1S_F)C]}`.Z h w]kK}QC̒,a}6mm~Ʈy=oC`fMMݜ(^WJ*jm,{R _VhuVAE1p⯨V*(T;RVY>Ġg`+)R1^z~FrC. -""YsOK+jG݃܏TOGLC:p6*fe^ FlEצ G[_#œү)!=_ :e]s߉$n -˙UMb="k7@@gU+J3@A_GuϾ,XGWA`z2/P]\zGӻm>e':KO׌1S+z'?ݓ LL(nXbЋAj4ɦ58(Q= -.XsfhH v9 YoXWW"~>q'8d Q{jDVIBˆM # ut6 n+"@Q}Bz[8l2J|/J\ W(*Eハc=A۠0J` -E%,ۋX?G+z}~y>pkmlƊ99Z\bKxJiZX ӠygWMaR^Uq,Gb͖A8JJi4Ѻ(E77RF"RNgZm%Wв3IY迈 %y0UBf-Tj݅W ʼn+^lJn MMVEFvK9/-1vq uv KVD0PWt*w6s`b5y1=!mC Q"ꁵJ_"]b2Xaxы\.{"vσa }zːzwm&la1, &2p|y!LP022c`&RD e''94Af<Gs;"~0|6KٰsCg]+O[+ .>^W7'͕,*?pe뤵˦Ӌt=o%H #0EE JΪ^v.Ss97H 㙋yUؾ))8 -"_n-I]TSPpp1 ߑx-*znTy@V\5{{$=Ru'fӱl2F,Yg;]7Y -C*1guƘD0k/8P>~^zbX9*k7RM0O=f1{.KjtLѓ?7g<3s1O,_~m_+>6C>\x2l8hAs=҅]Onj5ɡu\զD ^6oɲlJ ܒM`$0@l %nsoeoh6GrK e\0{ڛV@yh'> -H=ۢ#^[),o=(~v?TNPfpu>a1 ػۺC3Q 3JC2!x2@a!2CDHb=?K CD F:>:} 1z諦DW7ꮑ]`]_Mx_00Q lsSqrKM Tu ;+T[wo\靠d?7%} .P OBOǩdfm RUGW=9?լ,hK̞)bh{U~s Q˜}UKk 8尦_!}Tҫ_f M2@ z}aGc15EDT$ŲTI0THznm HOW]aJ3RJ7?ڰ$-s6]5$#76.+]D mtц.?%sq:repr#q4.%.p CX}6)p[[ /mΖs gBdJe~!faQ:kC - .Ї> -YtYy1! -EJvHss( ֐3 ^;CBhGjh!k'Ó3&2S5 -VSa:)N0 e)⪒9%w}r4rmCC#䁲RٱW.R=l[,1^ʵv\ BawѠF"32鋣V\3|/ =D>I W&FG]Hְr9s9BzbYK)"δ3I}L{02o뫸7&Mkj$o 5EK90%Fm[jIu]owXY4RZgh &.cnW^RKibhxE"IUD&Z"$2SDCJXb:vKרk -JRrMK8V]H`l?@S$"bg!LAywD/2O; E GE ,_|2QcťH쐝^+˼t9B /+uЪ7A"4ہ$b rʉ <A狛`BD't ыp8 pL7ש_dPVq2NO?Ha]nHhAoDxwD+T)KrwdJc -P"G@2ۅ'6P GKBOC5L7<эA8*2,!&rgPW/)ן:dkE:}=a1`M_5/YRcI*z}pf)"s๩@%A|{dV4Z> Rnvf-B~ǗiqTVR,Iov&)a`A/2骉JU> -~!H*ƊJQiED&G#-T,*8VXNCV!fh@b+o|֤X@q$D2&vDji+[E.Ռ6؜|ŜnEd3ASy+M#"#qigY+r0jhzLJ}ʓ17>>(s~.[nzU-4ʑVN y -/7_ 'R|PG{ڊm k0_3 -s]岷}2zī;(. nW`y,hrpTX2 ~ ȶDBs+Lc.LD&. bsFm@#/W B<df;m=3H*a@$ݣUcAMR# -]h;df+GW[źB٫,1 WkA?ОQ1f<nu5:lPH`jj/e&*C -'7R_OK/V&GH^[RpۚY.Vׇ4fӼk6MRs% -wb>1Ga'~GmfƦO@rPC3J#ׅnDRQv#jYw(>$e4XWaԢA-@ʴ[lidj]q=/s"{7Neb:ܧe>zn^&֍GII՜^(~ڀkhoFZ1[9 ވCr{ le;kyvxW ќĝxW1& J4vu<x Mºj}q*Hp(03:ziĴj 9|5E!q<^n;Et06"owJ>b #$Jrdfdi̯nŦ| {[#ԉ>YiC64T%tq.G/MSUPUUJ?{E[뇅Qھ-johg!;&պ4!_ժ(k&#;eNMi'㵟1Fyf$Px߷Rp/:P?󑩐L<,8D#]e / 5U[P2zZ9L U!$bx6;l,^{Di)ŽUAPm(c%cq+vE{VuxϛB.-JJP6BxOvUrD&bU\R`*B)0D@áM9bCyd&o6aGfZо}UF>J A$% A>D|o7!3:C!:Њ&ȣi2VS%1jF9'ؼSWvCLf#s,O#^Y,V#eܽc~e+s朒h4r i'C'-fC]/Ħ`S+_߯s R.HLFϞPe%345a. C -a(Sk`On_/{C)+Y<6QMGNDM$0cLgM(clc E!!qc9tCt5O^*3B!5C -a!o)z pH%o.c:Bd8VItq8IҚ2ALNBjr~)R0wFE$R"J*B$t +iR%,*>:$! KjHoGE/ 1I+`h'$ G-lʥ$ '4aګ!ksY gq欌O}piȕj64K/6w.H=#Pqf[h2 %8UwJa#ީkzԎ*kej8ȌGx(<0&B>e2U4REpDCbdl =Dgu-\ %pV.vuiYjdM.)HfR3);4QթEB/dySQ"SlMJ8(N1E.'PYǛ bbNt33fC;d*eé^B4S Ň~ -do5JOU*˘TCǎ+jC&N r 7A%9,Gмod3,Xc9QڅdAmo"Dj$[2#\t'X¦XmYGD.C`E9RR1+&Hߊx#c4E^$68BCcgrOKNI:#eڲ!HrȐ& A9Х ARBmI3[%Z~8&|^Uģ1;T}`\D#+@$&jh,Xecf27]j-rG 7@YL}p^HE$[~ CP&~@UXTX -d.ӮjBh(.X,D0D%naq -pr0&mCɄZsh"P@~xWx`fh(a84~""%P.@",tp"9% bq:)+l -MNCu_ -ufFΗ? cZdC 1HZikCDhADJ F5kF8ΉW* CFÏ`v=&Q8P h4a<ԾЂG;wg*QrDQ/zFW Oc CtU[HKb` tdO!ƃT| -ः:`@  Dx \b@Aj/+Pp((K!VAR8QU *js -(g)^8,ZRMt%ZF'=kaqf#σ1' ͌~$+4fC>s@*krbI20(B\3~0jCsWGǤ(jHYRv8W7ҰdJ:L7I(K"DNd0"y1K戈HKz# DHlLDp-JM8 *SjSUz:%*r*JPSt+vy -Jayт5ZԈ\ !u efxjctyYW؟7樑?Ц%K>2]"i\-"1mµ -]6y͢fl%m)jafalQ=fgZX@tE_LZi&5#vhGXKU]kQEG Q0\Q4bi%i5SBe#eU4dkQ`x2ENc֞+S ()""d`]G3\W|ylzeb|h 8Лx^M* -!"b(kR!ʪ+oYBU.Fy{4܋yq^a(ώz<ъn IBT眠h2l E(Q>CLnƏiw~pԁA@@g+a -g>BZ5މ J7*ye^?tSv0p7[%ehۊKO}'HkrV DnxP)Y$B|"1* FFRSTJ6)TH4;RR1\* ´w< -Y& d@,kI("|H,$^A@!?E^ A11h0"F>aiDaR}+-Q!F &Ē4aHp"z*WPńPUҰDa"zT8="SԘST0%0%RH) /Bw'PPUtu Vl!v4Mr1T4Bt=X_0&$ jCj!/T+,D$0Df`DL`H"P5U"4\A91|# m'pR"Eq@'R"{WLvHKHUC^;#j-ƅ!Q,LLsL .k7T ŚCZNJ(\>!-͂B!: Ewq5q_]T @5 -ŹxK(:Q&_D@[ @H@c\VtT -B`@ Crp4H!qPXZ  Dfe7o6xʹ ۲oΰghY%C# ,`SWGEA<,x5vG)Է@%G=,)]\OH## -4&=h\+£+V:F@Qhr1\Ů ;ug$/yNih/9幭"sTAݳ4^[CA^!$*=HIAF;1devT=b7 ʽtm^ /sH] -&807T# -˸~IJM >` Edꚁ|ΉǴXZݫg|i o«޳ˉNSc. 劥$4 scGґ -mY&G{utSa mw-0}BZ; jBg$)cV>iCMڳW)(%l'ErJ'7 -";ɢ^$TgVP1>I޾H&4jTN Ccuea_E΄-\8ti2XϥW v.xIŀ$-G΋Oo-%Li;*^Pb0ά4ت[)^DT;P@{h*7n_:|ɊFVL:h/L&m;>.3$[jS7=CM]W>*0Ʋ0~޵l`0Xm +GZ[|5<\iXLbC\&BAQ -i!.ԃᦿvNT -kʌ]%sXDRd"Ջ%dBsTb Uɰ.U9;>s2m~4`n:$t'SY%" !Y# "Q*DhIUgPiĎc鹈6 bc`ێy6+P2Iklf!*ipF@Tfԙ A/lwч4Ɖ!Mc@fcbmk9D2ہS~h@Xk C69=X֭k،|g"@w)#h8pD@cJfx-qiHT[ eT3|٥/Yd-hF#Yd)㱶b evy7A]zH"=(MgYhEn4 -t4ҽ8m2N.Cc˷tFW -{1 ;×qO7Zgvbؗ+<fװ&κDŽ0: EZt^?s֙2wRwPm2$21ԎفBzEu ?M{'$r*~q;!),!eMLizFKpA-J`3D"j/@sk@ſt4s̾R `8s W5xg v]f6߰ܔaa8v) );C 䑟LqEPt;KJkoiU>>5@N4*{EFs6>WA=LS=? W|Iy?~Wa߽nT]BTn&` vϱg9D㤒fYǹkWI - -21"8 0sՅf?p C2^N[VFKH¾C|)*urˑtMOR.$Ӭ69Z^AL_2םwpN$.)_EOJ8I&pb8a-ggkWtN I)\cNGA0 =|Q4P-i͐gMdb" ey_E MSHʣF'# -3 )91.Uo*> -d*dL#Dg"ӰQ<K[`vlc͛!8Q/>i4yO+.rP!!@CCpnyQ@$M+X.8hGcO=(0E2,TE_aGjn$B/,=H*_{3 )at6tKoꭑ"-`R-ij, u!wQϟ|$V<:K\뇤 M\h{͇9\1exdf. @(LQfnx3f+j|Fѐ搪:BkrEYZ&`ĭ~!tϓ  4I%}ߵEa@ _x.& ꚪۓ&ԡSM'|?v䚟! PʫTOS -Vv[*sV+|2B@m -]oOs2nͨE,Iܔ?3>"Q3sŊjPfvƺЌ6^[ .]i-kUhO !U]]!,@5p] gH v$%ϪU[ЩUb':Y„QAkc>=>~݅WEV[+㦞#?|!" I> *aKҳO r%$Y~<]- -<(=u7]#n urd?HJ,šzCxrӃq3 =rrߏJ22ݴ(֍ IXJJ#*&ɓ1 i_h}&-@{8fDElqg?Yg$Q2)֨𜥤VqN;~)SsV^~HWکc\B0 -d} &"Ov|GKxbhJb@YЇrA6>$l59` ,oevinjs%(H+7aRHE-FL vPPu10Pa\.k e@.`y=p\1m%,C  &!qNTT >nM=@H+)ہ$ q\v t$M|[OoصoJ_֔NyF{Wvb^(F|ZOn}'!f:?9Ϳumy.g zG啘L=PbGB{z̿4ɥև) kQlN/-Cn9@m XJMVdw>Jt۟sj(p 9'Q]I`ə8?lIx6X!SZc,dr`t$(ra4T,C#Diۗ@՞HNLYR{4s Ss)|߻PLF'W}< iK$" 4hI ,TR6ʝa67# > 7w=|YjU"јK#JB@~[S@y2dѠY$*\a}@LmE{鸳dQ3ܑ p}C4" ʵȞ6Ha`@CD4.,{ lpO^1@#rkEVu%v(l]\ْY˻Q15M@37^[4TIw9^<|8ylxVY;_忈vѳNs0rO&cpT9qI%1П:y4 -9pPBglqY8* -Eps&à* _TfRef .*KMu7fž">Fu(l,x{?BsvS%Cw+w~N}AzFIqgzЌMz 3!>+C4,CnP^Y^esk|FŔwe dwjeRwV ]cP Hk7Sx̰9~28q.b ^!'5&d5u+]_s?`km3j",OoEZ-#h{kZvFC<5W]Fc?*#f9ޠ*BOΡa;:p52PSZYU aD]s2xp O$!U^qܡG):)`fU*8~@ zNt' tߙAfaĚq {=pO/ƒe#8dsA}D=p,Lu/':!ͳ =gUgt=P0+ -v2E0V9 avv g %A6_#OtiE'ao#oIߑ+zBѠP(SZYȋsfrKquC) -H"Pl-*^y"4W6ru&(^3gba*TcfGwcV0Kk梩)(4ۨ*h5?!u4kw'm<{]-xt(q&T?Ir^fyLRnBQY Ֆ0\cWl0 W8ڎϰ[H&m\EHGVR<՝Mp>ل(\%½[m#P敳3}IWY\evSuS -x%n͹/Nhg \`&1Gp>INػrEEIӾMhxSYKP)?-񅂇hWG0VxkI:>؉I !y ]B:6K՟h1W ]l*v8'N1S7&<aYu^nx Rd$2ԕ"ow"hEMN^֏@ڦ62l -i){MFO X>B ^` Wb$w]rgw;HF'mrߪ, DEPġ_t(Z_cnF\ܚ V }w;b]Ac$[((zwۇP[=6)*"/84R !V(j싺#!Gj4Xe)^ 7X{$YIpRG=\ւqNa@Cj1pᄏG΁_"=En@]&^> b&maSqI(@%MxvWhMm0dI+j$slg*6(W%8s̄_(E񣪎PƆyf;P{@hviu}rsϣ6y* ŕƞm.9^sW $0yhǒޥ^M;=OtpHi(ƿXzn>sEFNs^[icc{ rtTk$^ EGa$+CKzF%3=E΅A)-קޤ~gn-`b0cu<^NNl%{<1Ӂy՝[L uoc֞>"erX\v=>}Uc"n -K~%G͑}A'С %Au0ch~eb{׆,45pvRGdq)Հ%b%r1M-?y766DۮzFl1bqeeHCAFnMr $b$#Uqb_c%qg.ZN :k]VY"ED#ƅXki}H#8Y("(YFuysPKߌA-tI5*=DLK2ϡ"y⼞jq8BIz[#X!R ?t3q{_؃][BW.j4Ta\cihogv&=@#Edž|Ԗ g"cᤆz@~ qj<|PHel4j-o&pixe X24,j9)GX99`@K#4]Wl\zI!-qӺ@ςb#85Dzoi#EcO Р# 5žd SOIR0p(,kFv=fcQp'='upB}+$ND#dDq!q-)1B Q!<ƉABH0F. D~#~VlCdq.XO1t\ f{2K19d#-uKdl#I20ȽyBʈGZ"-#y2NdMIFjvPB8S+Pɞq,g܄F(B3hy2i#?FTXWFT>T`d0j\Eqda[[1Pkf 9R|W -l(" -FL=xXƑ-m Y6K7@6 %r#YHK ٍJ&b]o>zOwqPF/ZC+ő8"#79&r#ApAh FXMc0O]%}D1Tr$A~h@ -"4HMٷ\(b -$W*uJ"sԀdFׂƎ%UH d<%| yd?0 BOfrJ֓Iƒ P B0BBkgxj?)w -"DTY$OQ4Џ*[ptB eRÿZJeIj=zYk!E.ѧ~l- )t>u:~Ā}ErsiY7CeadA>CQ7Cd֚ӑZĽ|]7i9>nccb -=\rbq=*A A&ѯ^I\걶( -Fc)!rGb 80EBd/AIȻʃބ<MhڄLx'D_%nB x(CfFwOÖ; w~iDcIAMD!ّYv:SHPQu0 >N G V~Cģ@`،D"=lQֽQoW"*Vyx&7`<(nNs]E:7 -Ɗ +7ȉq#W78Eft/m ##mf96`j#|yMt@97v6YeY>6#b!6NyDGy \ʡk Yt1 -W#!Yf58TU|2TUDQtڍ$9x -$4$ɵN.%y4lIv2 |(IR>;)II~@CɻѠ)Y\4D $WMPhT(1n@+g%|FOFvyi-|g$ߒu1]23@˾$̛q fHȴ$ja1yfxܚ4(2ܑ3΢˰M>vɳ-#I5Y2]ÕلʸoRƋ7 A=MF"%WsBL=2v2_2nLN [[<3991sNtZcp['@óhb)bC1f&b0G** gavrRN0 mЃNv4XG'̂qU*!Nb*0^>DePih/DXb^X|T`6gtvbpD'"DzHyɜ肣EċZDw̉?@c~z@|U>xcU2և)2G>Ȥ͇&%Hd4*!/I{cEme 2C ԃv}!_@<rL|y33&sǃēfnZ3 0i01!oFwP,r3'oҙ6w)C23S~/]z3sHM{T2RD>v+yt54FJEB!=ss}4#a\_,U@憔Eɦ!BNpi4QS葚_8죚}VMbZ@՜58& o8ZkR[pnHk %oC 96k~ T`s mhVד0lP)6Æc54ٜu ,9f6A+ТyO$qj2o,-s6LE7Vmr p#Mhp71 &7=m;C=Q3<ຉm3ԷEA ~770ތ v V<_C'ݨo2<7 a-A8A["8;W ƀ\e  b`S L~: GЃ50Cq$ 7@7Y,dEk.M8/t Isz| 19 K('Y^̄ u3.Pbbp9΅a9MQP9Ņ/,,AmaЉf0:Au-dC{-L'ʴt⡅@Ey0duޓbc] <]GXx ;{y+_v -ή`P -xvdI&S w`5p@,*xUO|vPOrGR!#hT ;w={s)P,x_ -BFƤ@PwtXk2 -) -*#PxwB -y/P0w> ;2gN\q:\\'%sBCM?l<ﮔgiy2c5!T&<犝g9FD#ҳ&nԃ j=_33VG{/3!V=;ivʴ =d&#G|=~3+hB0L7y?} MX}NJ3a}|L#]&q\{zr f(/!9 FO,{  -UOPT%?!S.3^V[% i|$ aH ho@2Hk?Q 7Y* eqf1B5LH>Ox'upݴ -˼Iv[? X-qpxZ#HhFIUUԗ*6# uJ[HK E6Hn"Vm)%>`"ܩOu՟3ċ~4Li3"ٱT`"*VMB^W|UM"^qxE5Rj樼&."mўxg)ĦE0@S]^/44Br>H1An X2ET MR@/REB`P`aSuJԎE^JAc]uQ-Yfe1]+h%:@,~L[\ME8B8 (|9nuXփerU#BXF![bO8u![B C}LE@Oҍ߂:! :yAF.rzё9#ɯrNpLoHÃ? (oWN,Ŷ*˒.Bfջ8$\~mR2r#tOQ I= -s CTr0B{dŘDIa⺶Y-f -tTzo4 VCep7ZR;5|jlP'J@n H!$|@#5p]qW 5{jR9D`zH>U(Qo5Pf'5{hDi -9}EIwbn p f顋$@? Zy.z9V -nrޯfpn$ڿuMC!i.R.k qN԰/XHIS[scoi`H0J=]9-ؽ@&˂ *+ -rՏsV5Aq-;,'6^(C*#rf/Thu910m3}6{]TJOw.xן\@7XR\`w> %yhSoՂiI1bhK3J|п>=y]f b0[iE _ukubAR& -(5LJ^ -zKY4P`m=A\8 Mѥ"Ѝ;P2 bo[HnN3,MG:$N'\&$`Y023L qz8jl{*"SɁ%XTVcu IYG݉ƞ -3&fAbwm -9Kܔ}80D`5XHF7x6Ete:.]lBu/'pDY -DhMk{3y%(@ѵ5Ch91! HdhNs%b usz@Ȁ\'@zLD 7kD7ڀW\T.+/~ E\!%8 tB. -ԣglR $ $&'ğ!'!tYVڴ5T@5JVJd@U{R`C,.LQ@$O@`ӗT _7PLh;5s,; R7̎Jh1,)L$qR28suKೳQK/%ʸ_lbWF K2#u.6e] -0.r]q[Nv67}Gh." -0@ @qbVW> ES/ާEDM90tXQGn#F1,1X%?=GqUIbq6`h& <`^qR$f ;Ɍ>8Q{s{i~ 0J1&l,D̼*MIȾ| F2;-t\]=0t訹^Yڔ6(*m~ek]рԺ"W#HV@l#H)6ՂmҦ~^⇨Z?vV+3)x`>'L9,OEt@KO79b}`_\+P' 6s ؠt`M@Iv ,N<&`3'b,˻B2dS`[tKL"3IZdՅ'F81IVh낊@@O -BCG,NѦn_ )]H&`}@&}}-beK,@@L~D2 ~-;9&)IV B e; {qs*gQLƃP\{;n? sq?ZզP}b>MBPCxۢnQrUtzN,2V @o.gz+9]W/#G/?j 4xѾƯ?evhloӥNPA)MZ(-Ԟ">Zݠl;JɆ?QlHy]Lp'(]0.?IK&LGݯién:(F)W[k|V[2v 15//c8ā_x-@ߚ(z f1,B(9NTLY$ՋASR -+K8 -,L ʯY.|ku=1'(,`-敯@*og9^//y2䊢KC,Ilw@\|Xy#}r}+Cf}rNwU\g'oB3}Ӟnu}jHAB߫ -34_L}m0H}C@+x)4XeT6})H 6 <zpRj`DZBy.FRT :lF햌+fy{M֫ο~fQaюv\gݔo]f_n| /x(!KChT}rfRl#t43^&zc>= 0, -It=`wBo6X%~6:~b WO⏦{x}|Dz:-Hx?ZG{Ŗ3-m'[ihQ@P7y૮ tonV].ctO(!U0eBK P0e|& ɖZ PRL:h4QJ–]zRo?JZ35Pbh?ve#ă <+~֌עrF}H/Tu3 HxMé|?0~*+5<9{d!]412/N7d/XAћ_lITq 1hKd#^GybxH楬tthFAS=,a_h//Yv VܳGXr"H؂' ]nǠu~du`X2`O+ Spo6O@=@;Iؿ XIѽh P2JSٳ#Wj,QƇ5$09pko`7JTBW;ޢ&v/^~}CΑ-A]fr=yw6T7Zƕk>>fPsYoqP11+SfU)d[{*Hq&RB.:r4PK|~R1LH٠yov?驰#QNoݥ -iz F8GVw<&ŵ:|tkwNK) -㍜Db;c?D}hAF$Fi[HI/-⨱*&f>9r1Q)~y)6~N ݟl'ui}>n(|RmXk8of n087CPSP\sp7|k^%؆jyJXLmi#ஙG<ͭ4rP'SnqzҞpHSg֒pr߫EUhͥjd?p,O܊}.0lX)$jB{,% '.!2X'P]kүއ}szy+6F 8Ǔ -um:kvgR5n1o2]8/^vpT[j -Er3g^FҞ9&ޔ_2aA!5.;XFhQmg  -HMDr~jaрQwa߽:H1dePMJ@L}ЗSoq!>aV|)w0`yB;.TF]w/|W`MqfIHeik' Ŏ,}ɛg<|/COoȚr ->`"'?/)6@=5w!`[k ո|/{,{ʾR@ q/2Z,ۼK( S-'iLboo?Zx#-g]}MPE@n" 8mME]e餯ӻ'۝cQ 1&2&sk6 vӳCLCPRN;rIuŤ%E`W~$<;lj&WήuX У4B -p&/[T -|Ze /&x $.W46xq- rSyb)ICz#¾}a9uJu}|9mٴq{0"yWtCD@*O-y뷮0S[/c٫)'*T*Zw҃Gu*>hU 3t}u=I"|pwZ$ca2l -V=WT)P ]@gT؞6X484$R%wο} (Rkɦ=e rꮿZz5zrQP5h6gA1FVP|wTO_9`35_S> ƵmA>e5٠~D6/+*+a!i59! Lw}KT,Y?˧Fݺ9!켧8/9(dyhyA(iruFu`f8 ܃yS-FAX6^殺Y?a쩌aD2HSøDz4~l=;)XAW7lg!űӋQ0FU684}yo2~hՕch7M+kjⲯ i/#&J<]/4t p4Q9+(Γ"!W8?W93`vt\ VvV>ldpVE7ݓ\ݣf=`uW$EΘǫGB}wUfC_hjlj(U9PANߌͻ tf lČzEX ~sP{9qC>f=rMH=o #r*h(zus.{gk IsNuUasgؾ/qf;N?B68j4q6vV׽"Oaw<}nsh2h -!z6Y,$i7HHn4*|qhj)̂.M̡edwtީe~W !LG5CcUd^AP.(ccnK%ׯW#Q̞ +_!2R7}IJˏ㣹<,'ΙV‹$U/?͚4J_wڿ\~=ny@OLB_~b 2HiD¼"'#Cl҆iRDibNg#̓#UJ*S: aQ)D#<0 $m{J:T;p\Uf 0+WC[blSQ $#bU՗ļ| 83-g@nۯ!:Yt6<1'$ʘ" -yϘC^ξAsy8w}\:)킮K1wp~cSe׀7 -rdI1w_:<&*Ysż~\aZX?kH -K. 7-߂ d9X@=!?mJm0z+ aԅ3a!+5c~y8V)d0ù.S0vi0%Ȑ|$*14c><νs9)B9?cM1}59:˛!1׭PU^snǦj7̉4)}g'K/i|D -\aHu5<~X=A$c^+tM.8%sS]GU.y&<_>*J -Hq*K)'%vFʳ -D.!A*JOc\r䧤Wioyo7xG dr~ DW^~vO +UmfR$RF[ .aF~NmrxهI$rFᠬXېU+lՙL|UPě}RO(`3H`!͍7[ުv_&R+tƯEy ܢr38Մ#p~(&L3"UwW_3>R,T6#[>q+EO"̒2lZ;.] )hqg$1l!/CϳhB#S}@H437eu 746bO",5RZ^hrOV`$:+<;^H؈O&=2ID_ƦwB6 -]ې=bKjFK NybY/ر>q??XB熏W?) G{ +]ÙTה}WMs{^=կjۍTHe;:Pil jvbtFIwXKἚݫcrjݏO &=gt$ VX]ҧ!笪j槬gIZ{t+3ku-=șMqv̅n62;^gql\}:c}>$i+h'S'QrtΔ#L.SCt}}*ʗ{Nr:{*Jrb +FRaMbGbziT;E)333ipY<ޝ^,]6x)תQc̑uBm^8hx4'K˦k?E':3Fv58/}c[Zo0kâϑ=۸2a(}Fٱ 3^GjdY#2;K8&ؽsI۴?Z`Ү{CWwV +nk7֫߷mn7=nG59g꼣Fʌ9Yã"uP&Jɣ +*I_Vwƴq(# ~j<yw՝*<ߒh~L-YF%ɒj/G?At:,T2OZIsjzN6DEs(ɮ +Sȼ";#Vk记lҌIZbHڸ2G^Ԓyd$=ro9Cr:WGo~&uf~}ZI@eZ4*`]K2f7xL&e6.tM&m*(0*I*]6TlV(l$4B9*̻43gs7ŬT`<w*Yek]ɮ*32aꕍZD9+":+e4Gᛖsn:ҨʈKMM|تLvEÐvd>#FwROޙդNu@J{g:yQߓ^S,͵O;Eb[ Yj=h(-!ǎy'jHL5N?3DSwki]4ժ*UǫIR +MSFlMdC;w*sO0d'UjZO}Dϝ<ѳ72%Աzid\Uneo|.,c}N0MuhFC“J"TխY9rt"N|$s͹,_--Mg.<=h37Jɑ*$l)0,5ޤTR՜죤_ߛrb,;1(/ϑfi/y~i爬:GdInD6Ybmv,㘄oKNw< oh+,rfrnPshn#rGtlH],  |,ai9i6vfuRb}ܫ帱zs*,Ī$:Μ(i\,2Y(a]}Wi]}civ5wU*w4M'8L);fwuXwMԅ996rqՔv{Jej0!B&`@* +َ!;)l{iUmΎb˺/x5#9VC2s|JlfnfٸY6&f ez;CeQ vwGkqҮszibvIVxCvZݼ|a*NF)WJȆYs3_ Y9˦Cuhs,m訙,)adRsOA68뫫hVw Otg>USCoh ᵒrʱUXD6N~ae2+NMIV N ɤȶ(b,&]D4l +i3%3Vg(i3EX+\0HT54mJ{()JgZG!ReV3:LF>om+A+IϪcѪl A4L4z>.z&36ĪWEi 3-ΎIIhGB&T74WB.,c7 Ćffn9˶l"F7\zq g)4jrXyeRTJ^MڝqZ8 gsgf#kМ:4Fc%aцum)(*9dUXß%VJbWVE)[k5oIf-a6E29S +-2ԙ刳D-{ R,-a,33$'Ig\nvVuc383!7{OIW'3ra,L?W:25v@*is +glUmGu= Х3tϡАSVEt4#+W}3vv=Bm/FmV4$+Ij,ħT5 WAģ1CHdD#ʴcLjk|N4*knr0ov&YUj.V6w#,|NѯbyNG)fOF=U_Hgy9+i^2L׫I#A-:kBW:IЇML/GsADvґwnR:S+fgz9>Ms`5L8\/Cue ݕ/Bf̾5|*8qew."NXK)!WB>6g^Y;tNKxªS*ù爏d[z sYU3CBs%59ec/9pv,[yWGr] +^o̚fz/ƤaaM>vJBjub^f9_uѨ.KeLRS)H 88 EA\~FX<#5nj1^:l +%`+?úu6a͏3!O+zANDP# [ɒE+]3d[4z8~ +AddyD<GRLqN؄Pm.w*:G@=0,IErg$cSG}fǩDb@!(S9Q}5:0:>YI5H8*(]"w٫ݢpLYٗ~܇Wz%́"'lUtrيe'Q̅ycAB`~ޤK}JNwr"SX~P%tjPB44 x=60ΡNbK\1c43bUKc`H_ٚ =i%o0+ -8n1_T8̱@ʙ +ɨSUz@1"W;VG^qANpJ@("s nL85$W 6cuJx2sW={x&vYr:N!t&&p̪DjpL@7 !#B>99dQ-I0HISd+&U9zX^=!tWq{T S5/ +\ȭL߆ȗ'7`id}ToXM,G :o=mRB]O){-g*`>Wp8k^r43[wr "g|`$_-3Ntұ&L2ŧtŰ貋K7xPhQȄp"yp*d{!2N`FV:zKЫ)^=oqBr̦ zp +\:H,@O'A+r6” 1IjÄ]z)n G't=ZW%~`em~ +T%ȕK>7S0VoXE&8N/|s:apa/!Kh$6?XMbXD|AWϩ/Ss T+4^ht7%p';ex3# +ءDyX]HGv8?B:kK E6. ܷk4q&6IDdgݰ= O*_{4L +\Ur6/'S5؞pAso0c HQTYA$8yYqN[M"NXm |N&36VO cZfE$fÛJ#rPxz(q;q`%X"F S9!MP{(J ]΢T'>KcfHN36>3 +`|dL3!d>|4639kQxu(TX.5>HY`wօ`<ka wξ{hE،l/oOdaͭB`Xq 4+,1i .I8n0kNN Bh j@kaa_<Uyμf@vJef)f9# g=zDwvh sW eで +n kQi'J N Bn6[ uL!\r ʍtɎ˄aϭXn + k f5NpjӯzyIQg\c"6:8Y~XQyF=H'+!,$-hXTW[GL`jK+u"BNtrAylG(12[zum $GL XN;zMX(uܛp2+:Bn(fR.ULȋU%yO uG&WǮa=$(GrqW B11ж>jgmz5Nȟv\*޶F0)M\Bs|rWPdQD뇜b/Ķ;ʑ9 03i_i`:v덤L.[ cj!SAAMj+\ ); iw=DCϼzmO)WG[& x'"d,Ra>1f ƆPsfUHk# t9J.)r5H.L`e)~N, `ԏQ&NE0W$R^olDFF^0|Yw.gYsL3(k賙 ]J~>76-R-RIkcTݛEz6O>pG1Xl{8vU طjHbQ}g*@Gn'רr%F !RZ$kCPǚ,Fr.S6$3ឲrh̳ d={[>]4iԙkV^q"ĦAPl4E+bqN35OxNfK;ʅڔ @2Z,[iՂ˩q %-2` 8E M[1fl7j: Bvr"آ"3 .g#MjdFM#:/2&aDIׁ8rt>*5ڜ뙥HA:pMߴ0X&)1 Lr? PnRJ.!douWP3?|g@[J kDDg{E=4ڙ> "rgICt-A +td%6M!Py5%e?iDw U]23v@&rlTg#llzP̨ov6ESL*r_XQ(Df%H +#?AbZ+b-<y.;AHq@Gi疬#yHM!ml /jn5yZ)9y5^iΑ g#fR$`7UY' U- 9\C2k4rg&o.,)( { +h2uTe"2y{1y,֤F *eƽ6.;={0>\ܐ1i<^@ah#S<˶Z`_%Afg0sP**,`;*={kl!`2V*(!NKDhZ]ģMQP:9]of'o1(9w9bg G}:R%vwlݓC; +3 x$M%fy1bY00F ˊeR.&ZBi)! LV6F;I~1lR^mE6.URyt:oD4&YaLrXk8 t>%/Ǯ-^z1.d9rNt$+`b>[MG FgS~01R)7_;BDUbs7Fƺ-ܔ a> +x%OY X)m̜8/xErG[fG*i<6tc4v(muC-N?T[5kê8)rPOzV2U=?i1@#zPAl)T 5+Fi]b spS}rsQA(n&? umղU\HSRDD{ꐙa! wޣT&̼+C]0m*y H:x L$iYi!ڿQf 1z!5j:x% A:Ydr (ĺ39 ׅ2]cUd2-OmRy?e 7ȗXˑעPL3s V[u~[dx^" ;Yi2ۜxPa&ldl+Di>?/TsK g?. ֥".LX!ʸUw4=(K-:A^qasH<ؔ|8sC!KяW<q!*؈&%+,km|{+fсbkR)E٬7כe{}\2#qS?sů_tBǪk@(/o9V>cłB7 4|t7=UIrHw 2cA%) Vv +&Y/bҜkC zm¨uuR; @AtB7q $LA"8†[t;띎@:!Q1 b fܲzn@bK.=?P '3AOd7Ys s# + zF`yfLsVTɴҘ +ph4Lѕ +֦+w@gk=p޽_S=#(X.i0ے[t,+ͷI b@Tqڐ[ а;,)_@\%x]L*QQԉݳUX>P&K`ZH"t{1¶U a䊭_1 {R7֤IP [&;ܝP;0dЬeqrrV 6wտj+8 OzMkPU5N,`6Y#ZsNdM"NT+6EQ U1 _QŸ뻮ŋ:_҆kI%8$h)TKuok.,Ы1+w{ raӡ/B Qӣ^;OOK=;|xxzWRMΟ{*K }}[+|A/Mme(C˯UN7#xo\tD_fOK"hWBKQpvhxAgƮkZQ,T&e@OĘܹC2DfY#XN4,pbF%/\ً<]SƔF !V߫zQ@S6*VOFpqAS{IPy e]-1)P䤽a+$y0^=jqdգk1d?ҙCf@q-35-`3LpO$CքͤvյkUo"ܮpgǯgՓ +{^#7q F+y .\ `eS`iD _l?lVY6?ԂӂaPogK3]-ӖZRGaaàV[BF kL;W둝@t-q:q,2E ΆT +IS8Ƅ!)~qk20_Wɩu(3è&@C2p0ńov ;hYh mkysTKh!~ 5O*@iPMH9>noijp["5 M̋C^4CH]7SgqY9zu1寘⚛ 4ޡ&K/fDkK#c".=t[$Ȱ7Ķir4/j'mvf! `CAK91HWTٲ﶑[jz`;_]c2`P 0BEmBMdcQKsQ5$݅K<7t3vd JPAtW+$8aXB>:oa^-OI2[6.'pXBizcGhf*#ib-es8</%\8$+n$p%X)m&y"%RK%45=_FF2PÀ!#oZ|Uk!!4j(nlJѿOʵ` M*$ev4JQ^ +IÊ\T#lѷ8h- }XM'}OQ͠EH?Rf/jC;ɢd%iBc!QNMvZN2U.60(Rfp&9pip'CɀDJz\QDԅ q#AƄc|W0-߻Z[eeJԚ*8V +ɘev H'^t1?-tnjQ%tasM)'Rq҈=C7&\(LNkͪK*ad8T[\t7mc[N!k)ThMU9e2Rf&8 +eƭOJQրT[Nma28ۻ_ ;Mz9 :14pGܝ6_0 `'3v&'*1G%Y_NWLF!B U! 썵,AUSs .QQߠ2̐00Q(#0,vcc1dC'u?!rDQd;I!4!3RFRυfݹ9sww]3kh.ЙiN垰? ḚERք5kJ+MB697Xlt}HjX>Y*0)H97{$)Inɪ@0 zdo@qp^ccqpg[h^(1Մ#1zp8%;r ӑLD㐜/{ZFNjОSH'n8|Ĝל5mFΉTF`ytZ9#3.-lVgTw .;X7ҵPVp^dot$ I +8W[NMGfv:gʩ =7 wMA8EUSU|R}!W\,%sSdzzEIlvu" +`e1`G2ϚK*hSEt. .Z,Zxa `7Q ^E?sNXx,n uGڡGq'%v οap5N4g*BXFw\jcF`~FP>uJT}B7VBarpnTTF1ITf TYOeU$r>%7N_t[L)S1n|8OYn[2XjeQ,> )!^o,q֝7v4BbQPYzО\/﵇U^"^/\oŝ"yPw{X*Ьe}S,K@ΛYT]6ݺ|gB CJ~ XWX460)ԫW + si& ݶd p9vwH' lWIF\m_=SXS6[ciXS`Vbʊ=sMnh + Kg.+ +Ludr)C2Sk-~¼dy?x}TN'}29"ܲX"} TzY*9?bЪ+>U֖ʼ@M~60,z*9PÒ\ȚT{ΐ|IXO\wuiTHW7ԙ2HbغiDn8뢥3ţq 6;휴UM+h^F%0M11V=-t:$?^(8!CDu932<p7iTN0 ~Prl%sB)b =:`RH0?(dm,A)O{(׉y^ +UMTS߭5:"ae_p fTIIg30D;ӄ6;QKTuQ-"+B{4tSNh>`QR_sdT\H!m"V`%MeLndpJ5sMX\&P^b J( AI D5ayR-YP `ВzO 2 cRxhPfKwL"%KbV)9ݬ,}nKA\ L(KRb)ubsHI)(JiF%OBNJ=!L`B^RbX%wH3Ia`!)zH bDA! y"UWM0? 68#w4e; G)FrH!9=#xQc&E㢪[Тf\xr,D;Q%eòGFIJm%o]ht"Ԧr&d1h:G U(P IA&yȺR9׵{㷕I2+)b+Bυ5Y9xgFB@.@vj1+-}'L:T%;l +E?v|e( Ũf' q/zHOY^4|[h /#=R3t i*9Sj#[Bf8gB.=R:(`9ܛ`hSNb 9swB06lJ] @'DC=!Y4c @0]'@7qDeBe+ E/BLJwDd >MXa%"̢BBt,,?!8T)-sxke.4{YZD8pJ$ݥmTD<CI t;ldbWv*hd^Q)|(zJ洞wa-05]`BX-+(j2Cz]T"!χaq2"0{8~7q,b8dF<8Dk\ǯnlp+pT=-L'}#g,77O0J&4Jx|2'7Η hpv}WK2ڬ SoѯK6&N)ƱLZ j _|jڹfFS lM{Ŗ5ɴVyj,v8קFזIw2#c)`7@o81^Šdj_B@ FR@;ttR"wCRT8ުwtNNsPPEY7#{_tjyf'NY'npj⹬Pl1J4YĻbW=n|jB.MeKIOy_J.c=Wֶċ\Y=mLzɞj?RX8u(Y\/`2=t vpix %3N +_d΍)EqJȟ'VBqD,_~@9Ū>$ T܊:k>VVʅU&җ3a9Q`>K +|KZBvD/?K$q1#n̦Ӯ+kOM\V,Zro\Xh[tԼ sWS)_wYCDVNQO(]?N&av3*e.(^~3_aʃ;D{mAF0hܨ>mT/)D;HU<O(bqMPő.`Gz~}W2:S*8wAeՇ6Jm(*W> /9 o(=PO'V?ԉ>1ߠZ_θ\ gbx/,5{zE+E= jp?5;Ar nm iN<ԭN~ KUC=GY +lA &Mr7]^cHt0P۴/'&-he4w8B*bb`4W^16$tKΞ*Ea\1q Ǩ(ߦ,:Y44c5/HY7TshCپ*FֶC _ƛ"nvY|P~R w.޳F Fgk&U?=.`=iFCHP$eոA+K#g:*Zy}YAi"A(WYyU*.]$wt*&=Hp*KL>C2 N +)F:S,n$`p/)6b_0RB+Z(ujт "#ѧ!beڡ[ǭP=,!GC[PgO噞T_rN\lN/@مp*2PkM:6m6΂4>ӖF,]R҅ٚ4 eXEeYA~Y4'}Y $ ^ 'UJG(&'Ϫ9Ȉ'S![v\)?"xR^ +ʣteɔa\ۡw8HPqΩtF@ma Eϋ$*is,u0ķ'^ݿG1 +O:@(Chx0s~6^ޣ2w!}S1̒B(* /a3[Vg|QOUBk7 Pn +B8S(M v=~FЈfET&?#1įx[.:뀕][4g2+fWiY5i]c1;1%46׌O_cƭL [Sb JHxǿalXCHX?~NWu`$4R4+Y>uƃP31%1݆ @U4f`MZmr,+W+޲uC}N¿s~~/%z ^pm,]ɦE?^UW.Qz4\Rm`cF@Zư0 +W?G԰ECcd"}`_mQ,n + ?Vnt릺@Ŧ :Z-ԲTDlhEҟҵK81D#m62xn}d+2M&vVOхNyq0-ѻ` W5tyM۲'o*e0,V}c._q,nl+GF|,f}ʌQ+ 2d.faSM ++X+ +*e,s! bU|5IFUTI7Zi%z^*pg^uEb.pfuhơj2s֏aj}o5S`4@3VsCMZ$'gJ,WEyrPڪZ8pQRP~[F^}&Xz+-21i;y>& {}*@DpG84x@ +gtF 6elkD#̱Kxޚ||{cCVV6svJ|zooeq\i9 X>٣RI[2u19SDH,0O)/Ƨs`qqᖺH1^wT* FsT };,#>bd|HvC15E$,ׇ~=uiu7Er k="@C88:'IIK69zqe5?d4fBp6x8-Qsô2\쮤:+P)cdoha{(%v;}/TPZ6zݪ[Dr1qRП'ʔn! \۠< nARu加)椔T!b0&ZOES;Q<ߌP2l]d -IS gڠWطsT eMKT$[΄ACB;J)u?8-3F/9Y"EE4Uu~ ;m!m廒jV_H04Y?yXUV`N-.!K7?U #m2^< =u#E֓Jqt'FSu=$Y~)6wJ9BrfVq(n߼MTbwm˱@״#r*:6&tD~@,? (0:exfroO.nG*2_:qZYТ>ߚ pǻ; fQv dK5f?C k@^,"U ^9$tF:wOPjl9d3>i$[E$8 l'SF#!f tW:~L'Cd(7q>JWATϥ~FI4%4Z| oܽMB*Am_B^Ti)TY7ԀKTVHPMh_;)(9Bz.0,ћq9BtKNAːnydxOxJ !r,U"Ȟ>ecөxrФU`Tqћ8C|ZuwWx\7ߢw= +.T6"+DEݟps堠@iA])Vv Ô8# ylQIbeWȌnHABQz$v#w^OS2??ʄ#ds1t%QmĨ́ u!XLJl&}Wq<:%\:XAW>:nÀ?>U-vq~Gߜ:wHPq`ۄM 53RഩU^[6 sR"ͪ}DYXO`!!% 2˨_cHݩ(.@\.eY +NhbiҵWT(Z.r~ucFLef)Pv*۩;,oo4lQG]lNhr:l.yƭk{QӘ:3X"qPpa^in{24RW eW\Ã0Cɖv.Y +@/1t?@Ѽ?\vDȵos85w {LmKzdɟ ry mHj'v^C +ՁIPs5goě'6*>Ϊ/iVefha1]ȪWyėBT4mUpao9ؑG|)0(Ը.fOB!tK $VQb EXBU,ܹȊ90vH O!7ث?I_Uu 3Ed }Id>nY`JaҦr#V`B p1XX +}0r('wҴ+`ۮnfߕK˵4IҹT]K@ X_nٛ082UZb,$ccfC*aY|{igVK#5I.s:,GKZxF7|WM]~ +^"5q S *mH!O)TDv 1 Ye}*""Ҕڣ 7R ?;WE~'KuwX1'#eU%4jr +z)'WrYFUY2m1͗}u6 uvOt/߻33вǘSN<7mCB""J_sb8XXv'uj 2O@{k{B3wPq6slҞ Cj/U}>S7dE\ILM~.GH!̯<=γ3FK^K +O\.;3dMvf*s@W7#}27O} z'.W:ke|;DѶ׼sۉ͋)5SrlZ}#-g]^`&Yu݀+ 1d)FK Rnu8M`I@G:JK.Nofhl,u%N/q9Ào߄1w('FaԿDr0Q\oD-Yw(:)7/h3k2Tj__hrfBd>n"Жgp }x ֙A z_b&4'O:>zc}7cdeU|g)D n04YqpȈSk '\ gA9a] $|UK-ōfuPcj/xM_dWt7jL3N}{b0 5X?qFy (W:U!J5xHZ3 cnWhJ cW5G碏"͝rc%NA. Zӯ~vx? +/3^H'@ +z+0#c6Ie.&ů:"|~hӅyܨdd0@+mLsڒ#b T3,Oa?c>CPv3Z]f;-Q4[l1TR` +u0cۣ7HoN%Myz*]$ؔ ڏ=ƴآk2—ڿҕ%6F|Bsrds9_.\Ԙ\Eq~q1K}+9 # Bڒ-MΨI +Oh.A0п6t#>ys:$ \aD1>X +ևD[Frz,3/X|x;XMdC5T{f#倈=] ڨhkP-1ZU, 3{qgz|*X:' [vߒyr )fC..G7?9A+f7+϶lS2rîе%פ(]C~Ǐwqf> 2q:i"DҀDٕ,ƻ5k9י9W!K\9 NNe%<lhyVq_HOiHF'p)hi=hw-gjAETczkxm5NU.\K~<ĕjk@pc10vE AWyHD֚nT'?""9P74w46 FUA5`jr,%IZbg 0P>QS 3|Ap gaR C%*FUj)2G"A2M֝{e!eP{dy5AJ +h =AT4`:=*2]D*:Af<o;B0yĂIƋ4},F ٛ O޴ƨW+fT{Rjt'؞KjGUpc ,{!o0S.|֞lw^\㢁no+)cx w{TbW.cUlv#~pM1nJUycuN@TKiB3vpn\Z>Wڏ> jc]S~ +@u쒁:péH]Xw}1}gkR9B?A4\aB;J+8*'trdV!?ݐ.||-% _8#,NR)o@uP^gϴ +BYtނ@.]%`wxbp +Og0|0F93x?6nqO|nHN哼 +7ޔUz緣_ۭ6M{mƛp[LɈ @=S0zauzv?G7cL +BGr-czZBlhkIПAύ޻)MJ&ˇа@D$[MK>"cطŞHTx}JhOڒ[~Ilj;FlcUcw(Д+{]n[@P^iMyI}T9 jǪ.}Y|2]59d< rm. U^pq)6ˀz\ +Wc*=ո7,rU\3slu?iV/њZź[m&TxŅ"k 1/]yqE˔H)vRG6ݎ[ +ZW_gf~i!h|p') +-u6[B#bHK|X)3V9F&'j/2;}ӿN^}&CRc_=SQ1Xp@(g+Yl۠Jj̨qn o z µ5 }µCl1DÏKtC:Ӱ⵭pHw~G[i(OIvQ 5 凳(!$e{}QyT/$mؼ')V +w `vGIgn߻EZϜ& 0_opC;0l]`L PڸXՋ4ї$p0`iW&^7P`ʜMvAhh&wd%˱c v#Qz{RPsAg5益?6i5|'s(u#0ǾZ"[Yr#qZ^'Sn(tϓU6 f29;n3R=0Bk\/h\,(* +KAEpi)_MgYXn#N)` +L79[7r`f,bX@WMx{{,|iVeɕ?"u@$F sن.kӵ WWoˈ'Zɼ"y hjia(J ìssf ˖£HH<dFU`KB fshG8)LI&ֱ\A:91]?6Jٹ_ZEcʡ`~*<2 }[X{GK B(wLuiBPثU55UWQ<6~{d̩ 7MzSb0c4H ]L 7<*¾HB'Q!Ds!h܇ ;hܚ, ЙС\hEQH`QŴzЃtFef5U{l^^«L!P&9'/,2^KxN2C9LsNIG4nn!d%pȦx GCC~J8OX^l!pu< ƿ<"+q6bTŻ Qa%ƌ̷b\b RR R Rޡ 5%] DB*E**TY*TjE\ ix=*Ic5ňtDEVzūCv'j5q"v%Dd<ǧBJĢx2֬gdlO)⊞Hɤ9cn24""$DByPlR&E0@)c@iIB*&C!$SZ!",P(0$BL1A !%K XbOB g `#RB:D9!~& ў!xJ*D01  #MP(vQ(Jv $VVCQk'g=4#i{}u@@/R 7lJܮ`G - % St" k:!S6H?Pg֋G%mAc3{XDR cąJNOfnϪ^u28 q*r_χTU ޢS:(0>J\t?q0Hq +$5'=d$R`r︍,1: HDTHX())V%K85S%!k-YT(}uBIbC*Րގ^*25~cVIO IZ($%;2)KIHOli +WC('**Y 'O|Ґ+mi<_l$a>-\&bzF) L7Ͷd4JV'q»?FSU2p%8 Q.yaL7|dh>{fZB3J\M7N렅Ӳ&8[9.H]hS,fRv'iȣSdL/dySQ"SlMJ8(N1E.'PYǛ bbNt33fC;d*eé^B4S Ň~ +do5JOU*˘TCǎ+jC&N r 7A%9,Gмod3,Xc9QڅdAmo"Dj$[2#\t'X¦XmYGD.C`E9RR1+&HߊxC12MS%Ab#44qF*DD3R-{$ lrd]$(֜$8cU釣i8l)uZJ8ZJ<SCLHYfrn"H!*Rl`Ytn?3o!Nk POTeZRR2Q5Vx" RRDDz&&oK/ Aa~9.ъVaVSaU4+L5 +q颸``,#e) BJ!\H &Fha@( 4]IeM<FYaX4T$J…H$r.u^1A,R'%pMBaiK.qrW5;aLcbH!Ʊ|3{yG5{3Kfs;Hcs*jƇ#B0YJEp8˪toV&YL{ř<x#ׇ343Itd~И hɉ%qà qI|܂j¨ + ])"fJڽ(^HÒI(0$,%:,#""-$4!1m[+5jl0LAƪ GOUmQ^踎B׏e*ABvOC@2ӍR +WM++]T2gG ChQ#r*FBhry|Ԇ45'MXgᩍQҍWCGf]"^asv<"FB"\B.trdĴ 7(t85{LΚMVKQ-q['Gӛi]cY}A2i妙v׌ءqH$$#ԇLPβ[qwap\!YꕉE1PBoy5 *\|Y1 5eՕ7۬V*X#߼=ż8/0gG\IhErQVդH!*Ugq]1ՙ s5Pf[WZZa>S[ );KҒba_{e4mgQ!PJ(6|:3 Ǹp9SQ5*8˄Dӵ*ȡRUSm!^ JPLQkp *$DOn yFZ|ԄFj5FU 55Aj9OX$`@H-0B- +}R:HT9ȁů\rEQQ5!xN@ct0DCO!v`*Sf\"/m4*C=p +}{C/_mxǵIӘN3AC;JK3;L  C6U6yE4g(|YC 111:#hs9LȧSWx<|U;qSF%1 KN}&5n{f m[qYMy|\0C=GIBth4PT*%rVddH&|fk$pFM=Ȭ:RN""@ +) vP[q(IB‰ +P[HY,x] !EF (F$7΢I͒`R*)$OBTD@B$5FBhѡGl5:+D1_cd o +r@A=Ն -y +y0k +4C0-.-u@q(B/=ZeŢ>&!0 "2O)FP/ͰHB"PQBK" /! +Q86 U_M|Hf iB)Pł&QD6!Qނ*!qX<, +  !$3~hյ WpH(f=窌Da+$ITMX1G@mTD!~p!F>4aa"A }N C[扄!ԁ@Q&ЉTRՐ+HEp~ĥqaH S`4 8:@33 UlCPoS>ā:3 +רOxheKk)CB@!"%*kG(rM\WWj/h(PD5zq."Jq} F:V$(ИOdT +B`@ Crp4H!qPXZ @g`q}53DTh$ex X=qI<-$^j;a('(ל](<H`G>#XcZOFX&ݫmu 7aUuDG)1oS:Թy- xHị}Kxک0jc54@Ҫr܉)$W\e7l~|"9w_WwSa IPG/A+6%o 5+ +CЫrdihbW"a 'lu^ VsLILb#ÿsm6Rx |'xcLڀDrGsoJxFbl{e9{3n  Q_Փ*p)K[_YS'K IQ:Zg𥛀D"HDFPzqk*B:jw]N Z#ɧ"/𨰡^ٖ̑&୭f8jN$24~~|m/6NidqݰZtw<0 mXh[$?PlNɀ8BeE(7Rc3: Li=֟AE٪rr:oI f" G.Ae[.L]t3斉"ʻSlOXFR\|a890Fi5aQVBẻຽI4zEVmژrr.t%|_)1Ё_=uT:-b[{]]70=o?҅/D4_Ӱ ʌ&܁vtCPVȋ4Tv' ZZ;/1$;!$U1ŵ Ica)wzd:Hc0#nY[ TJQт!jQk3r̭ozo-j*K1FP9X>whVw^/H=\,4䋶=5lfh  MaC!l0NgOlJ۠gMJ6XfeScKcqya4٧6>a:\]@ë(#!ûCv!jaa\R՝$ :R䃃GF8VB]<0ߊԄY5NmեasʛVFȌsަZiɿTqiytiQсt9m%Ky|#7UdFp0NQ%Ќ0ou%x2~ãS}q#t=`I FY<v<j.;!\IJTk Ge \@WZv*'_e[mazH>bķ7ȫʞZ1Y*TY]=+ہ%+gv6*}Q7{tN˻5]Ȳ+)? G()2|E.5] 8Mhb&!V~TYwF@JnT$a9Q/$L`*os-#HL Ǚy(&**Wd;$$GحJY! shK#5gcdfkliOM\i< 7e8 (ńJ$sߗEG5 ]1"ڏ +==x> j;pPZU_3!#ȣcvF/ݖx‹nBTuK Bi}9F7z6/SHI`?9 >MݧrP`Qut2Z18]@\ZS(M'(.FSTڐ c ^ޮN(Ya d5TrDV +)ZŞ5pUw++PtBbļg%i4VqN)2pl {GhJdAHM\IZ~٘rHϰ^IbU8LZ@ˮ ]l}x'nVb -ԄpSb0/;j'-7qԖ+Vdh<ʈ [.EaQ{7W>WoQ* ۿSG%lZu r8v:\s04OMR*XV +$GFX3ܾrĬ!ـ[?Q鲳ƠOdމ3 +Ɠ2k53L}A;'0/YMGb$؜Hs+jPS 2H}md"J?tK [BQPtNG+,a2*NiIoHϐ.& <1L4` ׵^Q 3ax0#0} bsxTVc5ܠ]$2da1b]mr86>c,Ja.b %PJvU'qTT֛=- nXA_eCLնi z̥ |G[LAC 0J +pen-+A|buǘӣ%1n4C;8fq1%L[vYw%ImCm Ps5j6|]2n;gO6?1VR\^,N`+|RQڟW Qj$bc6D-Qn܈qHh|sUp/C+f49RH)heY0`# #TY6lY'|WFiq۝+jKz.@F5p9)w Ə$ޫ#49e~6j=Uǡ1L*P'oҮ ؀b`9m92 qeղw 5-gWkt=;|'ǘ*W}9婜3bUp{u.UHht 7U* Nl4H-x2svw0^Ht`\8vhcu^4(eV%yG\ݗc +4@@hlmiX;".ӄJPku$q8VLyh~&լ[~ +Ҧ"|j,?&K(~NCshI ~ThN +B@8϶cbMM!3n''XOB1M3ݿHcoP%u\$ +s*98gJ ) +zƯdl[='9`yOd И< +@6fO L+urEvhFi597XR@Xh.ۂV#=RR-C 45#6梏!EXHoo/qgN&LYrCs6I@:H%96]|h06D" +㘭I^zag3nԛ&-#r." +ܙe"_8 dž9Twg\3G6rX;Vbϝ\%ф &NKH/(\sIL̀B^t6.A7<+/gt}%׳xG!-隧i +K|sdja}hM a_`G&1 %IN1ܻrPI7wx3QKACS?-c hH0_K݀ܽI:N؉!@FnmFC՟2mcul/f` 7N bML?$;%aquk^D,Ȁ2Ie(39/ +$8sEN<Ǚ*P2ݘ%.q (~" FA|RtNc68P_LV3SDžIJ)=aA|}.ԁMm섋4WRN%|RBQ`%b<2:h)wp(JFL*:ZG [p8[QL54+Z\b@X-w9cI)(z鶷-+6iUL/8T $Q,hNGBŏF$Iif˶p:nibi+<D>0lƭS .!244i%̳X5f&KlN'-i#c8'Ac^#٪x/|(c6 .z4RQƁ9BXb}UCӕ[܍L-*R`zZ(PJ{._sipzt\YPrP̀˼zVGgY\!7WŒ5|4z9]8=e[; ~πx왓WvoaF(B;<\}dY⒥8KIXf +z&!KO rKrXQa%:Yh +jDs!!*&q&wV0,c&DtZ%>nGLcש?bUٖ䳨MN2?>Ȑtweҝ%з4Fdt6rƍ uaXȪH7Y1+B2aShuG7h[KՒ?4!OBC߀ASt a tQ ,Ñ=&[|8BIYgGdC~Xtɑ,?BDZLոg:ƀcԩ ?g!L߷cyRݩ-bǹDHEM&m)v !qRx.elZo&pM/XQJ3Qϥ씛(sE 2@[+VGa#xʯ]݂޺U%q􋤲@g#Oq+)ZXQ:oYF5f ǡAԄžd+m0,5v=0kFv|=4Ƣ<Ҵ:"}B:QJ{Ha#qߴ-ed̋WGq̠Ct tn~u +Gp3N'].+t7;c,U_rQ*\ *T +K2h-Ol2]F^q0bjI0v2stH)~vꠇ 'v@U;_'p;NW'pnj:B@@**@, @  zA;'qO ;'C"%F +NH0jQ,sD7Cl@NH81E@'eVāI-b|*dcwhčF,T8b@z"͏x.D)-o|Hw:IMmBF&qSD9sل3u!J$HPU,q,Dd.LN}Ld"4Y4Mp&t=4\,L"ͤ<1+҉dc$2*'cjO~bh.AJ?ӗ !L2$/G"k(P3FAlo(}%\2TnK׵8Д$dgeJG1$bB$(#݅ +tA8$qV$kJVR\*A+Ty^B*+"?%邅jS9,-%$n*eQKyBP؇J$SZr'I-Iآ$hN܆-2IEF-l\:ń%A.:.S$i.^Sҕ$dwF!dIp#5/r$_׋4>_HtAND#mD`!8Bg< AqH0>N DR#~XB!8L1\ j{RH19Cd#%uKd\#$ȻYIʈGj[b-#92x#Zd=h1wIxPݞ,gB#ȏ)!oHljCk5k4@ u&Cub31!#/ڡ} 1ۑar9w|Bw I~JJ?APbP&Hh J## "_W BGB@,GMV-~>$R=d e OM/ i_ :b'?"A`"p`B)BD`6JD7!:i'Trt @z&qGGћ#+`V-B X#@ȧ%1~4 Z{2qw!;G}쮥}tn؇eQmLh>Z ;XkzL@j;nq|H!>6 ߣã{s(j!GAz%c(_((SV yÝÌA^?$!* 9f(C4!#9C~2=-{xTN~Ǘ( 8ࡨw$w,;,_NcZ44'v6!gG`ف4v8BvxM!Q^GS1iNhh2:D.LBtf!iS:^AMH +!iyd4p9*F:GIhE +9DU8XBR_^HZ QbPrBй%9 +DL)Gq(x-몡h {pV1b7З Ѧ6IvLQC G  "5ȵ& +H5<[,lpvk8rY8-$^Uf$!plap hy7 cY!7ڙ܍?Euq˜*ѹQ3\E.Z:h.26p" LJjPh.=6oڠD(dg%@lP6d̑c\ְq BGT|D058l' ё5@SZRHaVjС@HdDPHC+ O%InuRMmKiPIN4M”0IQ@d)R6 En{+P븂TPɮV܋JL"`ъiV')7bS9*:ɮʃM!Pm*[` LpQZeHxWU8Jz:X9T8ʭTY(*<+k2 T]+>J)RrEq3+he`)).LZqS+WPb ͣN`A):Ep?+Œ"cIQ$=2x"zH!QaWYb=,1 E gQP(?Ps/,ErPpODe~⥴''NK{Ji';-5i`B)-:Di"=-Љuj DYR8v]rzklj.8-:Ni&4p1'M[ kLyY.VɛẸӲ#S\ 5PIHENdd&[-\mmb"6Aj9ϚF- Hrt4iY`uh&R,P! Bc"VaBqZ%'- {7r.Zq suğh$%*%\G [-DCU $*eJtS %~C AE򓐱D&Ƴ[WI"+GX#!*HlHw f!AЇ ,#EEo#hYmG,o8ZtDOY&p]_hafe0gɜlMвFuh+EGBI2Itjɰ {kA [d ##-e]n@QTTКF3IST$. ̈RąFָ "trn*:, ֕ W ٢=CW֫@ZW#:4zI41 *1̥q/I.XJE"r'L@ 3cgʓFdF(y-jK|6.`f\n`h03D@"x7aDZ  .`Q!`6ǿI.*E/of˪&iF"X/j/M)Bqdd_^x˽@}C4D!`_̀]L˲l 9B4RٍI +/фp`$*La?CN| `IkKÐɒ `F D">@= QLb2Z[9#6d=l@4$!21@ 2e6*l]o:p@3<4F)j<tl3|ҿ ^=w#g 3jqfĔg.r3Yg簎$:X|:lUBfih~u C+hG9 +yYʁJ1%,>Wk; +,th?8#5BM pj2 .޵⫙khcΚް֤ &Pxы;ކ^smT`PnaZ];aFPlb g`i\l e F5m[ O!;hȿS kipk&+۰mh8 =`%n4,Nnn{ mpg&fo7ix$3\ML>a&z2X[Jr)CBdxD%7DW!pn0w nÍ;1DοC Gg2]>qbQHH,N`̓%8\ǥ Qat/Xrs Oly/ʄYΆ@.9tIu.\dmRD O1SϹ:>N€IյJkJgV-34-uuܧNy,Xt‚ N`S9$]}9+tvNEKM+i'Kv45܉3wtHUI\Vt=DUB~*P; +)E¨AP$)H˝'N㊦`RA&Rw/OcRQ LQT((хw'tPx;oO}'4uB+\J6o\gHyw1dMa}" /'S1OAY +?˄wCCb%ӏ1 .p '{0CJh?ªbJC n祓$z*tǏ:$O69@ЪHtM Pc  H~@D 4&rsZ s_1n#6N&qw L!M{`[^\-mwrcgi5CDVUku^%!r _BAOMh\ IP  hsWYTնH)dx/l\9^3G)TNjj/pXkEpW oEk4^STJ0EZm.²v[vǞ8&6=.:*EJ>Dn r)JuNME`ЄTXm:!!+"}6Z ikJsP%\\HE@E@tZŒE4/Z +$c +Kf7E`EUh*rD Ao*DVO2 +"I4He=G0>$=:!\K^`$L +!cWgZ(r䅛,W'rD1" +|u8PDVU8t#4f[̮x*_HehVV<n/U$d'm1:$>GvȄf*gn/`*Yj +d  7u)o4oJYK +}]OLK{,Yt_e*PD¢=D־} bjr.V  <&n-;I7A =y;XU B۴7jW𨁒^_[|%@cIҀ@}#u;WMg(Kh #Oۘ--<$wG:nXr5c2b@+W#HVDбP| + +).@!le.pU PO2$yZ Mg&Y\؅^ $ئ+AX5Pj>MgN RXU?$&;F~ӗ=ֿ0 7P($vqX& R7&̎&4ɍa/ 6:d8scKQI/%0¸OnbGD 7ٲ#u6Y -P>.2[[RNv67 q4" +#0@ @`VW8 PKXާҦ".E a@ YtN n#1,#X%?=wqUc6`hd% ,1`feS$vm; p,8Q{u{ix PD1jN 3 xDм*N Y| F29\tLV0")譹6YCYb6(*Fk䪛 2р(HtE$"HV@"H)6mrѱ^!Q?tVW')XO#kr','@m#:WJ'Rp +V1>`D^+uQ'à 7s ءTlM@q}ݤWM@v , p0 +'<&`?bX\ C$)`[xu+/2IaUB,F81iVuA@Cd&}Cw!TnՌM u_~}v}9fqC\T&[Wʂh9p_Y~ 9Y$ +uA0k_Y8S`1(a(ßNu0{ ԱݍXEMX]xXzua9x)j vZ)JTG( t%ַJJLy%4WU@NXZmI ~ t&4~H{l韓~7O-^)۴/.wtBo΂qwɑue)xB:5Cb2/7~}SVrm76/4]p2z 8i7QQ2:CED_T>nS +,k庢3!K|u1!7a9y7Dq*4gF~ =*6y UY4%6̍,ߴE9k׏M \֯7}nci&ϽDnhOuUΣ1a1RD3_B' s?p͏% VTOb`tYY~)V3L(X9VgpkZ_ӓ#?e\퉇>*f0Pk VZ:x~$n?ɰ+."spUqx\ Epzgf ~b޹"YycG#i͇7Z' :MTsVq]π +uofGM{̲>fTˏW,*{kPI2'C&"ᔔ fm5Wt?Mѭ>?$S5]pZ|VBm@ #ސ}!A;[?s׺40iy%v>࿭Mڃ©}CQW5}<{$:ʘw&MYd4@lm K1|Ȭ`h%2ْ~ש#<*oh[O94E=kM~rߕl ;)Y#i9v~e_Syl"?dcQ7!m? et}o0Z'SbM'HI*ўhwhH؟,t)Zbrj d,t(c/{jn8i6i~d)=_ɿ~2F^?>Α`^خ_ +:3^{{AZXzߛh-ske(5 ߌ8&pΘt%$}_3Q +~8TH;z +H? So=/u^[F{Y4`%7bDwu3#JڦqMďIs +U~2IZMA'x#>ℤ]zp4c#WQZ-ZE!jL]ťtLLTf̳odxqq 7&@0I]AOT6 +T=җT+7VK >a)44q2?'T7_n?Ҵ?x?V[Pe[<5-ph恧SV2'͔;8>WnV4baDBҽuԢO + T2_[>h"7[, |X}3QKȢ)O>|ڻ۝/`QՈL`uX|KG31֊X<)7$JrG*MH%~;E$L;  T\x x^b#Qx@kc%fqL!nnM5g|\Rپ1M`kn'wKY|YoƊOINn/Sz2(4KHmر%ufLLU2^Ԗt<Vle)>3 tOwJF,džθSG*rۗ zYGƝ[ +0.;pY:=ﰖvS4 +w}"J-Fm#*ChF[^m7Ud<fpkfz@E.+hx>f]*y/a}Tp_]% ,t\IᝥVNQCjX"ƪw֡#qsH(>wSpFbe NO}UF,*-cR|Mb] ǻR'`ϵd r2_?%m 78~A=퉊(i]SVPQԡ!t].CO_)䵮)ouOʠnOSԚEgP86K۾AJ!zp6@28i,ѓeSn:ΐrviW +`ZN/ʀS p+MnA(gݤYsPV1?T[^;z)iֿ E{*!!’tj0.~Eя~NF S}н ,_B!i,$H^6Fo"kMZ@q [i2@pA-]mS+zrEs ůI>&|6*d^F9iQUDso܎~iPAʮ8Н~nsq'dAF)*&߽U]j>J2遶xyP}Nw 6UL8!B?@* uiX͠?oάAF:_U?wTω}n#1;YZ=mQ#bWz7_cK;;yӾbCBvsr&1u^ .M={5\[u9]3_Nq`Ms|/>2n +GWypu@活HoּfD|O㣍ؖbQIs.w@s.cN7ʑeKve/#yM]zN d::w3TPKAʃrDixs{vg!1_~2UDK2dbjQK/K:W_~,2ypn1>Uu_|2 IIXŘc9ڗVEWuf~gt[k/GH;"ҿI8ac&WMu\`|HC3>am!-VjT,Ռ!u'A1}7ݸ;\o0_ p΢6E1w_bnf{l&9NeJ8(sh*׊R'6l70BH`ǭ̍U}Dv3*U:NۢJZrܢrA,pk:Yn;&LHtK㺂CQj_U*ɪ\8b8#fzCr-.~ϱԆ8ۻ?qXOnlĊW_4)N}0,F񩲺!ꉗ4Èj-۳A YO'x+HAO]F/$l/Yw/Vk%!˶ZoH%5Q&X xN+sOx/_tr.qB endstream endobj 12 0 obj <>stream -'LHx^nK) )=U"Wxl V'|Z"R (b6)݂p_O ‘Wcz&$4y(]Pf̋L@˼Bvnk6e 1A&Mv{{ť4ׅW О$# -;iL* -|SEm0w ?lQXi,njn,rl: > ;N>Ӄ' -*ޫȼ&@w/DN>Ʒ -4J_EI;]Y{tf5ހo~1&ۏ)~aygƔ{ѩ3u|Q뺀\)q{??*s&_lZ-4![ @SH$Fz?:OofpG<}]TpnMv!ͼ@l̵ʛ2teenص؁ % 0n5g6`7 XR1$ùzw3D^b=%:1 G!qhGw,vBEk,cHmU{Lu(% ֘]e0c~Iw*`ȐKDZwJ*-tn$̽T-[uˍXE @)5%rb#L@n|fǒA)TZ ݝ -{E{_M'0FP&}Y $o -PV:j#,(Q裃r~}n=_ا#Smm<)*-CbW$!$m 31RiutMLH|;,^m7T۶jE?vpuoc1{h9{F,%>bOqp+9`dʩ@Th: Q2CyoY洗WByG$ii=g~m`QqE;DQ}ŷRXxE7jJ1z:zϖ aUxO 4_ʀ4g*Q%T7ph5{D$A -` *b.1tҴf &1ᾪN.IizI>H`% .*`uRl[@Q%zF ۍ. b=YX/&o>3Yэpqѱ5 br: P؀2bт6:IO#bTtu Ek.VcV@f 'ʭ3dis]ua/ :ǪePnh@jZf 1e!1=IVznWk e - j~l5T-^O˶漗&uD_*4Q2qm_X3 -4Z* ͡MdČ@: ->ʣx>/l E@62/ -lDNBIYt')?ࡔϰv *=+5i|hiЉ|D/M,!cҞKeEZCudį%ʦoS(d5pJq6I? ܊=d0s÷%3wweB!"]Fg3(nrS^T^-ךEwD qm _Q- N1R+?:t9ӽXsT :{lmPtbdGuHт2::xxj1g!2\5^Z"2/y2Q)z*+8Nwz0ek%Hauv&TM]XÜ3ЋLN+BUxR4_lKZNK G֊% VNxvaezY/E'1nO'Wk̫~,A넧pUc4k -WqxʌW:~=u<?!LfpG!V4j,fبM<͚"6\wbAJX0sS Z-U xsF|l~Kz|X/lE: lQ8wː5W7m6/G h̡ٞ5F,ɉgV֦جM gWP='Ͳ0ӂqecBt|:MJ%R}p촢of-sjÇ^mgh-uQor^ke .6MNVh`hgjw lkkZ. -bm*mp6oܝn7cw7Ͻuۉ b)CKhHu{ k 'qMa9(_6.M _~=ä.o-wz7\@5rҲsoYU"1 "!d14]ۅQO$VN!&5WFJ 30@ĭlLJcT6x 9#p[(`Q?OY}bGԱ8{јR%PV|d{M~ybc@͏wPp=T|p2U)vXqyTgT2sX=|y8iyc bh%> %bjA,FA^<>3:Q˕.]A*i.Dǂr - '_D3 yA>-h =rPaУ'4d"a7"$A:\zB0"ZVVR͟By⺧u>AnS0&K\ WF4IMtb h@É#u -2^cGl(f0ixv TWadI7ك#]̉\B1{ @2r$զwLySBSB!Ixle >I*daUr"h 2 [8[ -9lHLh3hV!*VWV]*' -T.P6" f"!]n A<ÅrhL5d"2ON`h 4c4 $5d,Kr5dSha k5Kpd!5+31`PۀڈmDd9\? 9YwaE-[ Ĉ q-Ȱ*/NVpW:U"[(ʕ7Hn;Dvg&mfYp sFc8#J-,-9W@Ufʎ$)MCesn UfEUśW0Xced6Ue7be8er5y?ҾL\DE>. 3 W$\xDaœPdkX;ِuw vhv4 @\r5az6&pR?ɛV󄵏Z{h.m3k7t}r&~לbtU5v [U9rN{Mȋ̮"=̥Yq~Hy"l h;på@3z @&p2Bw+PHCeD7D4SlW]1$|cD(рzX#xI@e6ޒG'rCP\BjZYKaN N mT E[eҋB]DJ.w*q$jwYP[%jFlxFj/#$5\!INIMd6ِ-5udV}6tI}IջAB}]-Eo5W!OʇBq -Qӂ35j4lְ uK::߱ň%2Ivao$(]a1"Rk:SdN -6OĦ}RP[c//-)0 -Q(KH 95'w{!jjF B?;zLA]]wIB* j* z(vcFA{#]!H' ;uLDrK -t2ћCy@gr -4ӨGK!fQ "&iN5*֨G,XvېVni0F 4RG3U^z#USB{TvUWnVXSe߀`uuXLqHǫ_o)>OrY7Heđ#]$:ߎMs]mŮw]5,lVt~}` -ׇf=@al5VlrKhl|ﱧ&#.ң9\~0`%$&v7!{峓ڜ8F!y*_.muwi'H/]6q%|T;Rk3`Ʒ-xՈζ4tmC m4i*mbn[KloS$f}ȵ d슧p|~;`7wNi[mhEŰ2depnHw7S)W -y?);[MXT zZ{ꝸl>7Z""vDtE-fEz3HFv1(|cxS -]ϿQZ9\w/QP܏O{x -.W\,%z4$[ -R|b+0`. p[¦M$9FRZifp2Y부s)TD)5/:T6“!HWB=`lz݀#PS׬)lxV26N^c)QEA8pEddV#L{IpAF L ]KtLk0I -Ը^^( />_I87pX5l# ajcE"dsZt1 X0HJ>REJ{ BA[ -oH9 EVG~Pٷ:s7BEW@/1[GR* 'DVNPNOu70LR~)ˠl3}י] yjѰDuw̫@0"(9$}_#ME+R-"YZ -nj+5 ߩxY[U;R2D$t76m߮ѕxw?a; \ [ivO;e ޸(F+Eu}[;7]焉 յlkFE|3+ܷ_oʱe3~q ѥ:lb DqmlÿR8,P|1\Ȗ.^@-,ߍ7r쾁DUi@-oB> RMOAZԜ^< 7 Ȓ.at -;2뵳%8)@ 8 6Az^nJI!py? -5I92<3ј5O;p]D0(3qt9 V UoT"W] DVm!5| hTpeo}pblĥVE@&Ca.Sc?>@%PU]S3)p%q6O-%"OIqQ̶b$^%ðB =Wb]K`<[93,n^qy2@?J -qs+&qVs-1^0A{<% >pXaL=+q^[ٺKRV*jKc)^1DJu]Kq3%+^[|/0Ph-{8OOa-Ar8w\m`j>29~Wg FDCiGr%g -krc>79SsP9_Uv'ٗ[Cjg0$@C3ѣT745CF=[:Յ7GHi}ss+s|Gϓ*@ >4. Б cvǭHJSiݶޭգgVD⎃mأaL8kJܳ(mnEpZ~U -TtvdleJԍ9E0> ˹ɵK֧B-i3>\goq[}JoWGXwajDExI|w&1)!͇T?B\ M"e@#!AY߆#*sψ&~:C.3&F<;.Toţq h㿖S9t"/%On2wwSs,}!a\ yP/ <641ͳ]-,T֝${~Yuп!DmWb7Rɥ?DP酗}᯷,$,w);'fA֓ondףz+~(y5F?RcdoQB&bnqOZ SI۷p -RM}˹go`l9sLy\ ˽ިd' oU!XmQbƧ$8@uKJOh',fR qOSuo#С~껸CѮ{}>eAC%{(j/T -5>|ЧïG&\37$Ae͹c€0tvܝh`No]KsR8 tN"/X0 ]0b0k _W- [L/~!ߗq- '\Ix1Uƹ"GV? ȃ 8V( -}Zd!EIu'?#3 hf QZh{ -@~i - &c -Tn!diǿ'51ZZP["qe0@ &!:+:ߧ;ly8j^1vpx*Z+'˱.av. ̭ ^hj|$bo ?gBO;/5\'^ߦJ̀;?Fٞ( Bپwc&ecrh Zރ2ZmLqWCu8#.iC -O;k̭=pXوϏ6 Ă,u cLG9Õ5lҕ/q]Zs)++y}Д"ʶ^†m jcư?ӱLseS -hS} Odf3Sr7CҦYZROvC嚤=`!1Be!V.JI"?bq^pOhΙ{!)%)9C TDE +T4⮅-޴ᯓk'$\WᐻoAДvŃ*fN^MI7㹁f +z>Mv(4jM0A8f̓=~xt.2.(Lgp E&i^p%;g2 TM_(vG ¥uҁb9xZc<&0xG,J,Pp9;k_lqu1-"B$SϜ ے"+"^y лP*K~!]ͅҭ.gz8n0K 8%uSջkMhu-P~T 5GE{h7Z_RjӭNfZέD)\ݷԜ/uϟ>0(!JC $X2% +s7ts7S ]ws_9$eC*[n4t&ʭȶgF9xyנ7;| |L2/b$ī!p^"JiRj 8 nÛ ~HnVܷ%Vto%o aqb:‰>w2`Qۘ5^:rXp{B kyxEyJڵ]2(;b$m/n ) +W%ڝ3 0]U^ffZ B6 g_Vl,ϽGl[0gª k!E26sV$=-*cIB PAՖ]ND[P0 kq{IuS%(cZ|/;Ϩ/ h?TC٥S..` `svTE,HC_WPG{ >ھe~HOov)l +:#b׬X ƃ|/lI=Ξ@!D ][E0K PC\bugBK;"ӟ"-aFU"btV'LQ\F)!gg2mt>[:f{/E=c=Xջ}S"6.?4gGoNR |KbPj;BXTY M v2j뒴sYƍ(]MeO`t,8f;Zz_^MAB5[=:\4ulSxweIgCRȯÎy\]鑏y5]]C=jXhY0'C٣ rд@W󋀎i*qEheT4:{]Zk,qy%+G"Ш1p9ՌhA5@O>ԭwa+l\sCSEGS )BI3_ꫭ'KI|\k"vO/&/('r(MVg;;(qErXk6Fb*4dhsHGЇ+h&G--HCʣefFfEHH $aS)[Xd +Im +ϡ3;3?Sj#0@gU2$Aփ_Dҋc0>Ku,텔/V$hlg*_Br}PpFgg)V+S:C47-L*fj ytocӣ ʍx%fWxG#AMYCGm +`JZG}Q#NIkXaj}[K:BO)bXͰf0 UJM'tT-*S_0cG xVQ?sU.E ~NGӪ u`՞BYqxWܫ(2\ VV+obK ++Aĺ}5r^ܤBv\כ/)f5: 2ڤYZeHjmEq[+GX@recf^uo[|sBc8qr\3~y]1́xu8yYW5A++i@^k +}4LV}AWg|#p{kEatr<܅b7ʲm-malX'H!b"X +؀~cеTc{-dժDJGMy`@Yk78ǿOP 'c9@j]a}rNNf .4&lTg/78?,k a~r + +l!4)HgO]0R#V VjD`"Jc+U +:_(wi\ab)a{9akɊZJV8j|Ehђl0pÜaHpɨO +{&&1ވS܈Y+ ap$kM(%NGS͛*4~}\_WJ{|1V]ʳ8K_ 1A>xmsb!!h\\ƥAM18q]w,P؄6; Q:Fc!wЯǟnx1P &ko枩xܘNwe͑ N 2Ej>mfe-jUL0w1Vs&FmbڎOмf;NHж˜P n{Nx#o\<T)ߖ@d3gHϋcLXA'K  ,a&` y@<. [ 0SpҀ'cj<0(C@J.Fy mg +A߁/_flkhWox]ي<8>c5޵IUNhTMO &5B:DeFyNDc28w\6VYnf𛼤 I[K5!핕'6jC?Lw7ؔxŀͽR#J##d'o:VYxz8QHIK7[GBUA@s +?}F/`nzNẙ},) =$d1xDs"|B&!Gԩᣐ#fU!{J +YPBf95G>ڕ=ւT/U%Q!s?ڌZ42>QŪ/ddz.c= kHaJdȰrS=!?0Z';, [KL'~t <!e VEv, <4VC삣Au4dܚZ>8`rd k &0`8 YhVbCAaN]ds7$1"CwK%2ڋ]ch0ݕ`.&E%3Rd#yo*#izV!jFdt@=9/Qn"X-,EW,2xdfKHxņS#-mrU?IٟMe]Dv}W#@dzEɦE+%WO(V)6y$NrM~rXvt(#$&j?H peH9#VaPRK.aa,ᰦIf)o~S\ɖz2Z7[\ˉHܐ1ЃDG-SFX:ei2GVX. RW޳yϔOg N8XZHsSSb)KlNcU물HUᕭL{VFL[cْYvزZѕK)t٦\p./ڗIh!s(Kk wY3$$7?VZfxc+421:3BF F dcUܨyPܭGfBds}\7 j&8Ccg^\hfM9[\ +m(tDk\v_;Z*,yg:]~8;EH|F},\s[?qq$F\4\a/vJMO@Ō9\:k=24vah#1\ԳBj4 [Ԗ| ;zn lӊTMB!p"kR%ko_-HjrO(.R)I#y+t(C[ +)0eHMObN1RT掍!_ B ] +l!(𦤞Aa5:g5%uf$A +u7Jԯ_2IԜ3m EK'qrD=Pըb{S4j|5"WNJ7r#(C#PPcHqFƤWj:=@R;S!J@$iIkRQ\iq"jO%!j*aj(c^칳?t y`BP>(hyPA4F8"㇭Q j!FDZ—vidPMχ|F풒tut +)iԄ[fQD?ר#F́5j4\[zCëk,,uUSsvT= {zaV}搱IճՁ-jkYLQs^dlX#Y.Wu#ACs]\]&^ eYk\ج2_w ӅdY+_`RÞ/[WlؔIWcOCFv]4G$&]\avJ* IOMd.?f~2R]^hSCK@u5 A::9]ĥ^>mZKZ٨vx2ֆgɮٶY&-kmolԢzłn[؜?&I,6?kȸO8ÍT]>#Ӓ%׸n6НXFh?Ƿ-7a*~9.V|w*)z;M>SzZWm=~QY|V`8ߘ6}OGх$o.j 1!D:cuotV\ .%" +GSA2g =\B]ߪ + *pB*9& )Đ"<鶲'@H*H+3 hAG`&b 8:M_"5r~Eg8*U +ZϠCl<߳/l$8u¶&{08 rdkf#29p(ԜG/N_jS)$W{Wpo`Fn\zHoŴ[u'CϖH+MoخQw_`c6p6|K/KX8Ӛ.ǂ~dD{ÿG MBR9G}OI8-.pP h[^RF}4I4KY{bQ/}#PȀGhBQpyn!Mw*{ZY(]OӳHM*(@KW/)dxyf6e3 4-BWpfi5,$8 [l] P55 Pp&f,.kZQ$&/pf]iQ(oNT@Zwf K@&NeRLګL<<*tܙEc).woИE/]܈Qײ=‘7qJj{ 5sUpdoo{uplc|ĥWE@&bgmaZM\)ͅ #M\U](-:3wY| `vVIh&ɸk)q2MvJ߰z22ҷ3g8{wi\8%~F\ޜӌ8gk+۹#-۴ "j\J\@tŸMМ8QWȉL'CH1ԾPڗHX)!Z+pb*q0%O(7|.`4Zq8C2q\ոΎ|'g4mF gnA..9J{65?K~/VFG_ܫo38Rђd.* W_CM;/WA0a xI`>ldGeayhvw6_toN $h}F\{s>[ su=)Cstf8ː$8)Ê0+Fwn7ztt%]GIl `҇6kzUk^M\&tˋ<}U(xu!%)1S1MXb91WR u6kÚ3zc$oVr]nNKܡT}T:؃S$]`d/6-{߶bNkyUk)*MMN9:lkv)ںwH2->[}Joף?u6YwEkDE{qN[oƢ!f7T䮅޷^PNP F2,jxi鹝c[?oCNUA#3BoQA rG<px<h;KAɓ=7 ;Tȹ)/s_y C;0Wue>ql%n9?2 qqO߬ؐs"}" +qXS[RsO Ѡ5Rze+ čGMVYj 0z1z@zk֬J^6T\n9ZX{۵ nq]>VjPo9W}&!}H,KM{a[d>tpPNTw0 N*I{䯵-԰S g|jӌƳa~*T}aCk^K:~aUr-;!}^}3nIPYqn2h̟0xnwo#2iS[ ҺC:v}  flrע2_}zSCH: +#œB?:`kwBe`v=0Ņ,\ :8䈧=,wwc~~^$>V"O +X"FJK[с?#f"&5L+oEP4-lrfGY5biW?:cmcNρO" /p74 Ru~\ pD<_@VXAY6@nHl֝5" H6  <o +Z-ZDP*W13, dنo8@U@9/l`˴?#ϒJ"6RE Xu{KbbK(ڽ!S䦮Jػ&'N +@V@D/V14|2`DȘf^ +fcz[koSJ-==0Y@-6#O( +NL +w0$kһP5dX? sXmPًG(Dz-,\@~B@)P,2|j4#F]P.#çFgۗ,Fml ܜ7g<_`.m۱?6c^-)hW i @@ -996,7 +970,7 @@ F ?>lGxR+""l_yE;uw?'ly~MI}~ξD*Nb޿0BhS#݄ J}^'18=}>|sy5Nb$9Ἲ0Q?|?&Pm}lLĻNGpKbOI؏>?'a/%Q&-,k' {7QgHbXDhSiz#Oï N>z?4yD;,=)Tx,D<è6 NmYh@}Ǽhk;&Rv&gF@[,0o]!;x6/ (l]B~f7,< f8 m$O]TixE}E=!G?$'TFȓk0vh =7Yzm@~_]yCkքF0A~?ʄGP/~?b&4pѯ&,EGκukAzf~sxg,-gygFء6qFvA.z;FY6&7[Cqw'4¹FЮs&N^Y?g$y?7&P Mn)x7`AٝTTԺ2?|QR1Y?*$C4>7ѥg:  ̮Dg`HD?h2-@$P#OTguAPM~(WE;F@k8w>  {#NC;l ,2 ޙluu~vΖy ;x^揍Ⱦ#qx]AB4y0];_n˽1;{u!-#Fg2 {;б/qh\u:5:vsm77&Omk_,9(й3}n7tf~8ߺq:0,C?)>]mc8WĻd)2 j;.~u;o$P96u> -"Hҩh 4>4~'DH~zO߉+ $D<9޼߳g@AvOQD6h'h?&DwO11xk5M\ͳsMyE% x0M|hVPQo%ODh ??VD\H ZHz"M/ he8zfqܳ ļϣolC:i؅ZmB8z!JnC8ef?.$ kB:2oqΌκۗ;{#4ruI㎹m^n094m+e,\/yK޽̾^So}\25 f˵8tt sHw<HOy@چ|6Jqٷ[D<'iv kf?Lv# yE/ hC*O_ik+mF=oShWyM{ʄ_ {Ŀ#cj:q0y.Fy ?[>:w "L;T9h6r&ԩ/pf[W[ch;5Yo!˻sEfL($*0MF;x6M\2xnoIX., MG-7ļ>$"oHf2G6PuYB 544Q8t7Ζkanl .g2^eٹ_8brHy@%Mہe}|bޭ#y7;.7ytn:t Yf ,~ą,+* Gpc 2|k8 0g /pax 4\pA/ 0k,bp \?59.ȍ i*e.RKH$`yGe,DŽ MND >p`zq(@M>jhhuS#U3ユꦢPPI""EBb+V-K<$+2Fqu2c1$m )^Հ38&ćx5܆p~sx wb LNNK +"Hҩh 4>4~'DH~zO߉+ $D<9޼߳g@AvOQD6h'h?&DwO11xk5M\ͳsMyE% x0M|hVPQo%ODh ??VD\H ZHz"M/ he8zfqܳ ļϣolC:i؅ZmB8z!JnC8ef?.$ kB:2oqΌκۗ;{#4ruI㎹m^n094m+e,\/yK޽̾^So}\25 f˵8tt sHw<HOy@چ|6Jqٷ[D<'iv kf?Lv# yE/ hC*O_ik+mF=oShWyM{ʄ_ {Ŀ#cj:q0y.Fy ?[>:w "L;T9h6r&ԩ/pf[W[ch;5Yo!˻sEfL($*0MF;x6M\2xnoIX., MG-7ļ>$"oHf2G6PuYB 544Q8t7Ζkanl .g2^eٹ_8brHy@%Mہe}|bޭ#y7;.7ytn:t Yf ,~ą,+* Gpc 2|k8 0g /pax 4\pA/ 0k,bp \?59.ȍ i*e.RKH$`yGe,DŽ MND >p`zq(@M>jhhuS#U3ユꦢPPI""EBb+V-K<$+2Fqu2c1$m )^Հ38&ćx5܆p~sx wb LNNK ' ,@0&aB&;00J@ /k/ֈB,_Ț/u2\#&XOECG#0~*vv"!4ra:pxujrv61` ׏tx0!HHc~G'$H &Eę`Q "ËG4/ YB{*'܈FLą1fGp,cB!a %Hfp~^0LK؟A:7?p!ĉ\z 2܆p+ ư`#itj"Hݜp33f"/`z{"" D#8c2P6FCҘ5˨}($\MˇCeL 1?9APuq*pF!#^9bE;zw !hFC,O4aWJC`u)VGF-/$$$çe'pF;!8n*i$yՉ&k9$YTA3aCM=SL'9pNa^ 2Yg wD\kAV h֘1bXL/lM &6BX9Lv:RzZ k:۠щ8#G'N/.<mx)Aq(%A Tv%? S\̀4#9w,=M sc,d},CXdB R:{(hbӻ N19>7qr&`DAÓ科?NM2 h69JWъ6"`+#>'a 4܆]%kx ᜻p~Ãp8WH58/Ѝ0eI(%M7[m&(y&XPJ .}N -_Yc&"ͰVL bE2bh[d |-k3!AE_0"Ҷ!9w];.5u=B8z&R0pi4e\6sF DDyG%TDuDLߛGwx_ "CF0ot0pcOpV*MX6:e-rTʙ)5u~ѨqRȤtLb/&1B5zgQozU*44cg2MD~HSUMRDy6ENE&ͥcTJY+6 @ mRjc)&oB 3*."8uŐ-Wk,U7bI,} ʮ}"^GLi=F0 i⏱YPM&F o) #OCɾN94 2  IUwb 7v~GgZy(!]=Va&$ӫ @@ -1124,276 +1098,342 @@ E SLiH:.%^ a1MJ|W@X>? ]6fo_9'WC`F`rE`"r ߨCaLbH@a@BbAk1#08 Ģp<@Tɐ!HPP2ԣƇҥj:M Q YG<4ºrM-~ w kWsƿGb;첥ŋ`FQȜ\k-& td+ mM(+tοzN>gr6҄ o) -Wp毗-R%(zWꙇۦTU9L;L9xYɑlmNz/ V)OdA_)3P˳,t|Ob/6ILkn.8YT*%%#=o臐w_R߸IqxYE%X`C~N8Wş}V|!~<w!n[(Q:O~"Vӳ}vF'j5<|\OK_.*ylj5Fߊkޞr{VVZuKE x;|qq_gD% -okzY?+~8Cֹ)^ Z!L(ZM\o -׽:0c _{2Au JǾIɹ|~]zfAGG/[>ÓeuQ%iW>'BF0'w8'滏K7S?k}?&G=0gx fAd'{\dz Ϻ#gW-i>O7Z;1?S ޏ?څ:ra~L}:ԟ=؄|y6)/2<h 6w շmyG8f5"var-֕xxx/~6<^,p5g#l]Y zY$/#U; ?ʬY>7m|NCwhU\p34(?k\zd!c3*=\Jo\*+K ,;k!<dI&jF\7t8e۹WM.a˜ToO.`q wUWY57>d6c%Ig0ͯW:\O 4pbefG-˩KDs)ez5/Pqdq{2+9p…JHS|[$8Y%ԏڢizםH/v?^+zwJx#?mǙX1">IMʩ/7]-(?[ӉY;Iva|=KqмP[|_^D mUiGbOȬ$d,e~~g9>*jFM(!;mq/G['B2['l>㱚w!B&)SIsMٮnZMߢ|fV,%đ ^jk"NYN*>frӖVS~o'N#!Q'{>v"aA>}_,-c݆Y(;hVB4)$WlWkzU:#4@uFX+ʶ~ ʺpyq#@'-De4/)[7 $ +ۤKFU"peZ2v!>J4lVlp?MҦ]0]x̬JīlO #nmè/IH4q~?4EXiOj0WR2㕧Ȑ10.:5w46|ؿ]+QfZN}?.iX9?~mx[D>BfVa,y5iu +rӰcϮφjM lٺrw ?+KH?GǤ|[? C ]A?5uF -ŰԮQdLot1>GMfœ uv%yc~1?}9呅I_S $kh+ޙ7@j^co0B]} _AdNǠx =~Mv.>M2O%#ZVC).zW$ny'^~M;>;#x# ;9瀋oj;g3msh_+J} -OG=J3]ECKtm/#Lљr rc/st.e)s&{cv -bXPîeCQ7"-vyA)i;zًKڵ -L#@3kdpnaSӧStܰnVn%Rl>,9#T#3莑fgp^҃f$|ǀ(g剉b6cM60,$_feHyY+!9BՁhk|s .2|pĤ%,mN1W[vk-?![DriP 4&&*P-93iip&ڥe4AVJTGczOkێ':- Ӂ6_pҍ6c,݋Lm22,-LAf_"[~ ϑ8Jxg6!_ bUZ!+{f1-jO_?{z{\M*tGV#_!Ko1D&3w >to;kyQaxde[>c~+byɭ" u489Ht2En-}_2ri"t`4ě>I-X1p΃P3 J -c8l̾,ls(gB#l'Ό*.o1 $T ( yJ qKK遽یcRFzxfDѨFAeBHd4|)x*NsY? ]6fo_9'WC`F`rE`"r SaLbH@a@D!J1Ǡ#08Ģp~<@T!""""""A%)fƇҥ('?C g<N )%F+ f䘔+eG nHsR3"9-]ͩ9ɹ \k'i$n䜑w"9{9(9h9]29]D`'6܁XUЗ9c\<+"^>rV$B*6 L0+l|muoǗrsb/<kj4 o1_#]R~2* C3ݶk?H >^ĻX6xxQo7SvW:d.9o+ks= +X4/|7o8Ӽ恇BՉqM +ėj y[zWnOpJKZ~;҇4/.QwgI[m0`Q7;g[ܭ~ +uԜu>e0GZjlbaV=7.iW@oBd|<Yљ-)%EU]T+|Ix'Bf0tK+?+m?&G0g gAd&Ǹ->䶟Ӟ |YV5jrl~|҆' g4܇(JYo܃}7yeм{t7r9@UP1g}m5z]_sTg.rmx ޵XC 4j;]UA(xc; Eߡ)Dԣ= A +C/o/@8YI5t7^߿ʴ|euYܶ.m|g#i?I;%Ϲ\q~R8,=n?=nt&"?kF·yLْ VhjZ'>h_?|qG|~/ٝzrp?y~%nJI~I'ԫo2iܞ͊}wN6Gz#//vQ'K#MYK?ͥug+R8y:?BRVsRv2ّ {}$'tu΃ R"-_,r0qzj^h@[|_^4Am4GBOȬ$zLdpu'ȹPg8> k6$2sut_Uq+d[>㥚ߏlOOA&ֵts!pDkhA*^1{{J tkkQ!V.;z4(J9捋V>)/tFHNsCb`=##p郄z.~v`k ٖ S{Z_5;}IVWVO~v+n'5S59)!y@(Z V ô닀<[؎|vz֥.W-zGשA7 k$8ބ ?sl"*J x/u[ H?%Mi2لRWOS,j_ێ$#|It˲i8U)2Znͷ-OmȔSì>Gj2c&/k>hjV~Wo}e~/^<;}8n=ٖf;~5n'hejԮNZ=:;l*H?:MX|C 5U،ްԶQz&c31(>;\{uF"1f9šYP~S kSxNw9a7 x5/H}!Bhc@ÎE^ݣcrc<4A0bǵcKƎI3ԸIFѤsL46w?CEve![לAU),H瞽QZG}t{*%9{6ů/f|oz}Q/(zSlS)&;~淎mm6EWk j ,9S dQ42Bk!Esx}oq ;ّ)ۖT, +_Q!F81Etζ,E%Ʒ(z#7VCn9VWC]jT +4{O> 0vƮ߁n&L939TKsG1,}{GnޑeBPH@vQgӋ>z^qAxoZ+U +LA3R٠dQWv9St1.721+n,LJuQJpdl;381 w BG ZXDх67?ǛUQsfKiڈyDߖu(L +`KUI-}?r$ e{@͹k"Y^몕 VLF:]:!,) hjņUbi0YN2B&[cѮhLRU 3i@e !$#Y/Q1Ȼ%nz@sY }^lJIpӢGc߿0sjX/LT\҇zH/Dm<6/~JH?$5)8! C~`挐%+[/dN jTH82 ^=џ2Z +ymӁhYZ +h,E +WaDb;LFYEw ̯Snq- v95f> _`{d{ $a4F@]#NB=޼1DefK=fym20$ddwp|<~F+dy ɭԞ!ur ,x-QAx }2zI 4`S]k@oI= a +cAD@{;Mhf:$$EkuY~%6gWN^$FWG} Lop4GXmȱRNtNhr IQ 3\ +J:N(_/+$o0z@lbS(JOX9ݍ &C)8 t+TW}l&<Tv!0YؔZāԧaslɣOD>~t vRZh7<3ڏ;U ΫO(O8ͺ!PS[rv6R2]`h'^䁞L*, s`LߵoR8zVI;q#! 8wxVDNJm{.ͼ@ȓeJ:sjŷZluTF tGyo c8wO9!%Hv2Az.aLm:f%z=\l_ 􁮭|{\DTVR6۰ތW d +9336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.252884f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-- ! !#H&#}D/wx=8L]Np X$`|z8 mL{8Ycl4;5dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter / : -/XMLNode(fxmlnode-nodenamvalu1typ/ArrayeTurbulence;childrenresult(turb2attribute; ,stitchTilesnoSnumOctav2baseFrequency0.05,feCompositininSourceGraphicinoperatorh100%wxxid)AI_Alpha_idyo/Def ;fractalNois44GaussianBlu12bstdDevifeOffsedydodSpecularLightfePointLz(-20000z-5xy1yspecOuyll-color:whsExponent(1Constaurfacek0k1kkk44litPaik313arithmetMergNod144-2BevelShadowyMorphologyadius1.dilabb-nb5DisplacementMaps333xChannelSelecRy(AyfeColorMatri134m4animfromd(5beg0sfillfreezrestaralwaytotoadditreNcalcM(lineaaccumunon558ccccccc8cc1ccccccnb15CoolB(-D_63erErod6_(711 1;20 15;200 200; 15 20;1 1 removrepeatDindefinRNsplincPixelPlay50 5;20 20;Diffuse5yellow;green;blue;indigo;violet;red;oranDiazimu8elev6d11l5re1002red68834120.0.2ctat800xy45ofeFloo12floodblack; opacity:nsCd35d0n(10Gray-OxCompBlurT1nentTransfFunctabV2FuncG.7 0B1XferFireC,IRH 8 P$ &.z@04a @@ `0 1i ap @BXQfdCaT?`EX^N+jF91juy+7bm"Ri -A4yXФZ\Ŝq -4C68yz3?s$ -X"Ew͑?ьx& f4.RN..P)4~D1o(#9AG&y:,Iyo fzkJB KOVa;J`:W$)OUE O:N:kVCc)FJ]%2&1qV?۽R?Iv*@bNIC >qb)!D -_SpK볱VoVtF#ٶ𬚙6]twCu3$\_NA_(IU ϒ륇pT^Ί3mA Lr>,C!-f&>6fVa2x 7InH޾ m!\lcJo1(}ڵ*DzYs*죀_۳Nm6@HV~yu͏XD4YM gP% L崹8C+"L] O% -ZP$Gఖñc_,8/_1V@eXkE|)yL[?(׏ZȕgÂ8H\dms0Kh+i3=nGr4 -UOJ+ы'Nk^Rqp~]0CYsT7{#Lfc$Y:!D7߰$z "d㓳;`fa:[I'$92Ib8 ,<"v\AE83N -T.m>BFV*4\4Lu`]\9Ӷ6Jz-{SuDŒo k HU֡m*lݶ6:|XGQ߄­!QK_| -$ (D?Oied34hy^, z[!h1ELRWtX^sbktx*<%ڵNMMAF:O4|^f h I -6v -R)Ӓ^Q`f8BUB޻ܛ^݇,ʰ > ˜Da`Ҍmb5?%d3Z-I1sp.%>=gl9+-&O>?bZuF& -K -Ž"#5Yem*7b4^c'f9Y~1̘!];#x6zMLDRlI4 Z:©oN$ȵ{QV9jD1ҡw]\I3% Z"v; Fce|p#=zRRO&`!BPOلFv9Bݵix1 D.'єC:"e:Wc2id:vaIWYp>9$9LFVfuhƠI%HO*%!0)J =3@"V]mٙuW-L{V> Ѯ;T Hر;昷C 2Z"E i(SzrIe\ۇİ$}(j[I'qLQǶT5BLnAۿ4Xh(RQeP¦4Squ豑|Ved}$^"T]<~j'!+11au)^BHp`![@fEHGԴ$'._m1pa$٩4"!qK&XHZ!*NZN oi\kOFTxFɷNw}p)1E}`繆J(҈XOHMȄ*EQgcy89 fODhncJOXϞm ;{T2UEP KZAQ1$6oF$FكHC`V6y\>98C=>OwXRA}6F^6>D4UlΝ#aDVLsPl-aqbunǂiaebңQ/Z4SZ߬Uzq8ݷKdw uz1 FJrWla apC4;лR -ۛqACi =c:XQ[Y' &ͪlOk82:twwJq0jDG ;5DbvmoR]̟@yD՛i#(/!N -d+0@@wL #:uJw4 SYiKN GّC%|;5uY%:ѕh:C0E:\FDDDDDDDDDD -W1VFAء41nyQ.p]:u )RնG}`j>  - xvޜ^+UkYk}Nﯽn9nbf-nZn"l͛f{wj_nq+omj۪-OMo|,/r;/Z':ӿw+vO9ZWnos2mvڼ3?)'}gqtw7KSp/g wzkoٵ>N<ҧvn~uǕ޼i1v~lZj'{={tOjm<=-֖8Ӻ^-Smk}y? -\֋wIOI;i1XkMn鶿])nszs-w?TۉNboSޟcy&wx}έ7o~fk7Ki4riMvӻһK뼸?ung9Ř6ym1/~iݚJ=y`jRoS~S)k3&S˟0ӟη63}]= _2-p<[lm۶;q7>ݯiަ۴oo|Z N̔ϟm673ߦfriW߸en+L&2_j_w}@8j9&sjݦ~oolSovmۦz6p>[߶5}wMf&?H@/HM7WKvf9mJr3m}ÿ{SkoK6o/19NpZ9wҸq9iI;i/JU~˽sFml6xv׾}j7TvF ޜzg3crq88q/~7ǝvν@s̩Vn[9_> \_15[NWj-=kN:͢0tW񆺝owZ=OI;i@z3c8itN= 1LI\ǹ랫~7U޻7޻-כn]n{[sUc{u7=WWx^^˹~q9kNZg[qbVNfq?VŚ> ϶Wyל/ϴN3nm}Wz7r>p}@PJS9jN]9!Fq!pTjS^.3MjS_ӎ?w~m^;^k_g>4}=ק|t4toG1T+@Tısϯymw8Z}?ͼ^qf 9_uXߛ[_y\Z[kkZmZiVo7oҵۉ^_sMM&޶-9oSo/7ޞ)fͬ6 qXͽM9f+N޻n-bZyokg}:ur<oo\ivvkv~勵MwK;= /mj8T;Ϫ'۵fY&9[*8f37oݦ}ULܟ^ަJڷEmN۶9kʷw{6m>ΚZgnJ;pfWK~r;ʫ}k;v߸}@X@b7@ 6qߗ~o^ڭSlɻLxP4z`TWb(2[fZ-Dͬ)ϟ3ּ̭[_޶wkr-ƻq{[}޵os՜?7gݏ7;_[l>D>}]=̽1wZ^}Wz{lgLLm1_wۮr{UM1YYzLͭZy/׿wknMo{sZKkƷ6g[5+6]u7w^Fgmqg=wκ܀J -%Ez@ -4 -=.h_g`[y6@Ashkn+ycq믽unL 6䑱LULc:HUL}Ql:h'L;ڎijnU+C\KWHmǻ߼뮟׍7\qo#_ف^)^齺C^ -cTx +M7`b}ı=ֻ+ZZ'[:ێzuok^WKjz;}g՘i_뭟ޙ뻹w߯XolŴwyg8|-=[yko[}k?۷_l5gM|OV7o7oy^fZ'DGhB|DE/$K4D.1T9X)DRt"FD:; V_뼍HL -=1m(a2\y%ty@ ћҘ6 -Z8*]my%5ߧO^8mm{y)a *`\!9,@QT/2+e[<q2+ 02\ -=p8\Mܫ֛Ŭ2sQBo#%@_LrH ̉@<#z.q,M6TW@G~ZUx2< {uY1N3@ .-g.;뼵< ?']g6qNqX߸94L뼗։g< zyzr˞i)HT\^g*;bP$AqZdlܨ/zMScKlbbDفIK)6+UKye=VvE(X1qokM+m\3ӽy; -km1~z~vsMad,%N7jLfldnfa&NT{TT BalXu$T0x JH g!!K(5v% -D "0= Lwky A@X| 3@tdI va$ @xiP(S6A] ]ѠQU`O,z) JLml>:\+l +/XMLNodeArray; (xmlnode-childrenodevalu(feTurbulencenam/(0.05baseFrequencyattribute2typ; ,2numOctavesnoStitchsTilturbresult1CompositinoperatorinSourceGraphicoAI_Alpha_id)id0%xx10hyww/Def ;fractalNois4GaussianBlustdDevibfeOffse(oddxxPointL(-5000-20zz1yyeSpecularsConstant2(surface1ExponespecOul-color:whstyl1arithmetlitPaik3k3k144122MergeNod1AI_BevelShadow-2142yyMorphologydilain1.adius1bbb(-bDisplacementMapAyChannelSelecRxxb3sColorMatrinn1manimN2readditnonccumulineacalcM5d0begtotoalwayrestarfromfreezfill1541cc8ccccccc8ccc1cccb1CoolB-52413AI_D_166er23Erod664AI__(2_RspliindefinrepeatD11 1;20 15;200 200; 15 20;1 1 remodd1c50 5(AI_PixelPlay1;20 20;5yellow;green;blue;indigo;violet;red;oranDi6elev18azimuDiffuse5dl1re0100122redxx16882-1340.0.5tat(0yy0.5Floo(floodblack; opacity:sC131Gray0O-xxCompBlurT1Func(2tableVFuncG.7 02B1nentTransfCompXferFir2CompШ)IJH008LFMT5yAQ0D a   XA0pL. p6Q̨XFS.kVh&3JgvNȑv?\B\+d-v$6 3]c|\N=Rv=xȾDhr N*iڼ>:q.- ^Zd#%S);NWpOc5#Ɗ' +:8ZKVY9VD +j#ݺ˚||!)mJ6w@X')ޖb +".qn-r$4jơnUOМ^ѱuQsf kQoqZǢazq,*rT~ +|MfHe[|(9G"hqH-dNԡI f6&ry^Uk Jx#k|ZOko3C0@Tf$pΚ^yҝx#qpH?' nKZzmPGXǡݸfMH^ےj$3& $`7FO,qV&ٍ6T>5XA[Oɒ$BV:o:Q74ʯlTA74B+?9e+L**Bj6wjX<)؈#}M?TEMc7Ch"8C6|s9cg@:O$] knˆ@ۆTāЙN#'ع#S ˤ`"ǧo7ZH9B3D~G_ŹoZʚrWzux S~iIT| 24i>wUZ9u^%YN6gu3jG>*A(O%X5p:#i !?,s+ҷB[&v{'~iw9KK5w=׻绞e +r]I{uYS<ܚs׉5yoxn'֓V'LXz֞| g:뤲vRQ>ϪI}itMjzvUf<5ũCjRS)wժmze;6kiezl۶mdX۶ٳ]{nO?K&uwwkt?֛di}=di%Ͻxyu}k''}zR\:]s}雦:dRS绶soYk^]T?O'+nx$88rıN'dL)3eSǔ2 ԴGd2ʨzM7d9jSZ5J$P+$}R(.E5w}8 +ߔݛ-,&Sf JZW١m2\(2ed$&Cm>݀>O8PȄx_N~qxg3<3LWb;:ֺݞK+mΛL+5v-kb=oߧv+}kc=V]dª^eO}J&,ު֬S5mWn{c\[Lŵ[qg\LXm5ɄUwZOV5Wq[wuM^6~,KsoXcMjMڍkդ&IeޫIYV[uM&/Ě&BZ&&q$Z֓zSL'zoLmZ_R?:/ԍ܇Jm%v&lvmom.~,_~5wu&?I&, +9TzJbikv_7ƚ5MڌݣQJ CO*w:J&AugeH]M)&N*t$ڥ:Ɇ%uMӨk2xjMzfɧ{TR߯Wtӹ7#tus_{Tӟ[~kdwMd")uev@S W'y5?2S2e]2KޭO,K&\F֖f[%-[`c.L)3e̔2SfL)3e̔2SfL)3e̔2ɄeLX2IeH*Mwzu^{b7Vҟ/xK}3I&dykҩ]ˮ=&&x:k%Tuyq%̾iL6i]gMڝ&s?dtO[${u^uuZtI:dyk5=6}'ֿY5iNڿ;[[;I5&Kew>Z띳ySd*եN\!dʺ@Z)Lyg6e-RjtbmfDL>Ie}jjɄ%I&"I% +I]Yu-ÐcL>"`]R-PFո$)#2P&^MOUkv'v:?YjiL_t\=\5T4nvm*kS)N׿ߍw9JWE5TgP)$ԙ鹓iSvZ J8խjRW +兣h +A+T2yT=j4[jMR%E*rđ@oD:9]G uHKuHiqtƮč^ +$ +م$>@< +wWKFR^(کF.ōK(JZi͛m~Tu Gd1e(Q7v -/N%Đ, e[ؕtʼn y!7bLYƔm_J"(z[4g}mTj:rשO/s{3}6׭omsŘVK7u+vP$OE}MG#)~c)1{[MF$-sj׿nڌw9g3ΗbݾwcZov]m5] +S~;͵zzv:g}oΚY#9o]bZߩn8{t_ Eӑ5"wkLok $"XҪS餯5cjf[3NkĻ^Ҽk4ctI{bu{z6SUcjW[+7;k׈$n1YS<8Ӻon|]#z{vU׋svŹ:cMGzֈd_o{_W[^}}]3Yk:roH^ڋnu]?z';ۜzm{T_{Kl׭NoƎջV8OX]'YM'8뷯+I+7_~:۷jKqwoߚ5>zͺViknvZmuSTm߫Nu{k3^kuMG^ɧw_֜q綾{m5Iӷu[Mvk׭[IlOj饶u޹^ﭵk:#=’k:rc\cRtg|>Mqֺc1~y>j:R7R5c}O]S[ҪW7nu^~k3X۬H׮|矚ҋocvHR5[iVJU㧚^oެZ_#uOZv_MGWW<3?~;_裸VMGfv)?zO*ΔʊWJ[#no߷ob;O*qt~H}zYZ{ޓJ8Iާx?j:rWH +tRi߱}9{޾5vnlu q}w/qWg]x,vוޭPŏ5>߷7[Z^,󽘦: +QX,I2L +tlXN$ٍcqT d#N1~/N}6.y'a7$2֟Nl-Xo꽱ӽKJ*%ݐS7Ź>z@B.u[Iv!:2\$v䠳H.0q +뤚kl9jHzLgƮinvo[+}EKBL:W>L:}(v+Av,0\yo5SKuIok1vӊ{W7UW|ukNgZ۝/ָb;j3ԯY{j\YW껾8ʬkַ؝uﭴbZ}3.C_ֿ;~ӝ㿟Z={2D52ۧW"d:? + a2Z"HBA33 f CF[;:~띹4:y:pN)hgDT!A`'FY\ȑuFvRRS-`rJLcH UEIB&rX'_oICV M1Z!7Mr9NHZ0|.uM<7)s/H -=~ϠCPnKIK{&lQ"D:q :@h TdRBO- Pe<,d hxy2w 3' -.0ȕretʑMsYdrp9PP# < l= uDq܅q6t%62nTSn ZPa-48 k!X:4;A -/rvP;ѷ*&_*QDڻ6 DJBuI$nMP(AdEABF(ƹd_PvI 24$сnRP&lXk XÚccybW`F4,m\adp^2  |cp!n 5HN٥Hi܁â2V8PXeU7:T$`9Z2X$QhQЉo -\8P -tt(DdJC&nT(8 *dTB%qBp.!D6%E H` *JLLa%ӱ8P*>J905(%d(* N"E`+VLF(2$i$"bÆfL`l䄀&N.ǚvBc0 -IÄM&O: D6^:P&SeWjH'M*jheB[ۤU0 Z L2͢)va,P1ѴC4 -*a1r5jpX \Hct@)0Ai SX6 |32'>GBh4,,Ja`i&)hIƎI"!!H,$#B!0H|)$1+@zxm)U.4 ˌ%k`p] -H~pN)t,<0g"ՠHIXKᚨdT@gѱ`:pm64TP!N<Wc`Q(%f*iJ,6+ 6$"Ȳ(2ʲL F,+= 'Ke$8 UdY -KպlcXl1h0& -~b\ tul+h,r5nV'2:XG#;"4 -ܥX'(O :b!ղܳ,( &1z,ȭD;yDǓeY`e}piR$2XAeJL%˲k"YE(Y.פR"F -nD AeeY֚ G,в,Y[eY6dY"qfYy̵$@ɲAAu6*YV@|Z1/z0:X($c= \N2m0}zhtL";mH=ɲLS)H1i.`n.c`}<ϕ_ ;XiN&NODjE0EaHIX{) DTejy`7`R l|cg@M~+CI7zERa؉+LHSWR՘>%;RSD -E_#PxeWA1Jt꛸<U)ɮ`JF`*d}(eES/EG,U=VuCQzhQ$a0Kء*;pUzWqТ"U)JA!]cW:X$L\0PEp5R*7)1Z*Qbđ2B&6IQ5x+%(l"F λ1׳MR*i!D=Cs -'ˠ PUN6"B9rHK(#P4 -0i>`&A`&ل3”VA^; -H%60 (F3qUhb@ID~U?D X IPa5BY¥LF 4(Xq "H+.2\ocdM^褣)CX2yD"jĆ'FBB(l821fkq Kh ܍ 3ht$`)9!f r4Do#hB= #fh9(بF!'R>F8gX"gx}*aYL(&:]G/c|TقC{@DQFFɓq4(Pхi"$,|$%&P-+$T\Wl'HB}$ܚ,(&ʆW@h)tt) E^JކƒEltKQjCՍ%hH1܎n6I4KAi%@T8Y4h CPTxC>b' V ! uurƢ„PPN:b`AZX Pf PWM7MRjXUÔ$!:2B"@l,z˖` jB7rx"PkW-BJd (N ؕ7RᱺD>IQ"G|:2T/_ E-;84](@9j^OT(QսDٮPdaߘb -cV&V*F`,c"7XN3&iX v lDIJL:?d7no@Gk 0IVGHAQ*JPt#HFлa)< ЍEJl0 ֍~]zZ^ٍ^聾$M<>y5Q_Js`y%U(r"j(o$y! -endstream endobj 13 0 obj <>stream -iqXW~*!4_7](EKt¾9x:Sv&I{@2+BviȠ Go6F:EGla,"ld"$ja TK!@K*xOH)!j^WUyy9'`kk:.8.xY0LIsh~B[ BV&.ibD^]XV -*60$/WU.&^ T,D bISJ{@&* -FiB5"J((֙H :%RƆCFL+VE괟":y$$I`+HC;13AHd2dB3 !8Y -SȠ4TpQ@x^ -\@2^dX$2:{`brp*(QGFHWx2"q+B{@iSLVc4 !bX0 8hHH&RUɊQH -<‚"` ULbbxx.|9B.RE[VQ""~8DlAP$]˒\A,r1U3B8Q# yh!Cp8O"2W8.&Z\iƞ0)\ z&4`ȋ!M2Z&0.[AAx|M!L.iQdt(1tȇb ja(K'Y d\mS>XF{@SFT@seR -ш0(JdB= xj\2N@J#8$QD1c2F!Ìn߽Z>DȁJ6x!x#aPWWdW~v7}qrd4f| a ḱ2őCD>tAFX8ZqI>aƉa76C%G"j}_ %2|JOف^F juIo6\xfܚX# b1!?—, hw]MRhX׷؄>#-;`| *LR!%% ' 5|pr>jTE:h?_ȷ1 Z+5@0/Eɀi-ݫA&Z\H+IHkEtEuwVr{"pV\ {P~!  1 1|KxQH QLY+6ǖ\# @Z:eňF ͅ2.HTf ?#ZCwo%@_`]w>Вt,-d*ĵFӭuP3pgBb`{]XcC< -h ۑʛ<mDG s+t=&x>r ÷\pWW7gvܫj֤@s>!9z -y]$ک_5 scw -s+(X 7kc)R[U7uz鎑}z \vra1*%lkׅ}#*'p?}^/3 -gGUU)h;k$# (LgΌ#VCF,SjP;YG܁q1(ntc"v+aWF3qxZޠ'%·2ikʘ^Y1?w~G2uSC^kZ2ƁuLi/;ey]|D y1xd)itPC|>eRfRrsJ<VݦHi\3ݪ8˃,hoj4/J>m[jtގS <ͺ+ 4g15%r ?`”Cni2򡖑>3LMKj(-̀a vl)T KA̭+x: & H4200SȆ(Q p e3:o]^}C"EP} _z2{@Y[@ȂXo5*C9A$el\ܑNșK}a 6 - Tmz5nAO1FxǻMpƆĵyf0A :BP%`qU6=gT y ⮞zjΎ9rw_рf|G f+i0 -h9P2&FHUrq<ǐvreYqq&ڐ\3)o`4 f3}!ta!I|a ÜZDpb@ɆJ@ cXOi. vKuje|w-E=W: -jck53;vJhqC -@Pߦb`ma8g8@bX&Ɗ|/'W(dzNQ-C' 0 @j@PX,DFm]-ؙ!6E -g[; Tty&<F٪^%kW#BGWX|}K0XFDaTR -^ybzCAed\L_"gso9Ӓ>); -9zo}[@I -n!G])=Z.^l"UnVXF&[A_-*ƻQx|6ؒPWN>4a32DIC|,RuN9EgH͇%x=eڬ?R*;g)5aʋ[5(.ɗMaWߣ.\P]MJxQ߉W -Eˬ;~I**AB֟w,* _}c:`gp)4K/pb_GjZ&$zcgO)y*AlD.dЃKglL) ZkA4u|V!`M}3iNԒ VW eem;/[Y|+P_fޫsE?v"8sOdH`Eq^ w5GN@ dvNɪNKqUDd0gPStk ݅.}3%`S_^M|W'Z1V*eA16dDhG.>~4>ߪ]~)y)&ɳܹ ^/BĴJM` -iԛ=;m -7'sLn@I-"lhR4O.]bԞU<ݜx.A)Hv $hQzΕCdOX - eL"$3/q 1.O-/>ÒXAh'3qB6x}dGW N_ 1Qf2ŹX{25ݤMpOտ:Hksg~Iњ| nbgB^mXF6֍D.߷uo\78I @(e@Ʉz7N^<@_gM]S[IgEHg#ם"Ǹ> R6r潐gz&MՠaIdX.{tAoO,%냎\YeON%Zɑ5tў']荹v8"ƻC͌L@{߲"\5sZ8CBRLoY4Ts9ELF{aEgs-VDH- `7`|8m& Jd -@`Kpe-b 67g+bVE4`J]F]g\0:#R֘86HM\Q*T2cW^>4.RXx%-;i̝~]|8GE /^|^/\hI :ÀD:ȡ"H ] -GXfڑLNSYt"D_QF9YYŗtݯI4,,KG\$xAhd<[ f07٩PSΌĕn%6 Kc4+dA#΀qIpɨ̊#[Cn]#ipRK IΥX&BNj'02Ԃ "@t/,БH#%̝79Ef4l~#x}zNxZvRHE̷耣8G^! -Rte0uWkNb?#'柉k"mv.KMoҳni4@#^v9i?JX$S$u|YNtmv0^@zZ7r#1С͂!*KcᵀLA)D#UEl_D12Se2dxǂJ(a<23YdbhNfR{KȲ -f.Q~P\.^t^bx(3\>Df__Ʌs>L =#yo謞H &mD,QLHZ QOd5h:+1>eXR8)0jM[&~: Y n^$uCl^NmΓjM CƦQE"R=!qLs 0 WTqv_y[@b`R߼8崈f8K=9pc -*c-zLOvtFwse $>Wov@κ&[1ɝ E yt% -_ P,a> fH:|QYZg\"XyQ |g#lU L{$ g`5ŦsRgRto@9U!o]PْLQҿ#)(lqY O&4:-Lc_89OX7`L{`J*PCu^A|^QkIcc`3G B{V?C;{L(*¸8 s\]ie'|L/ƴqA1Cɐ#.|6gڏS]0g疮M]UudI-1K_=oRaHޭ1#Xڔrx͚+GXL!YZ,qKp#m@_VP.b@V6++W]̬N 6-м}%GII"r>M+|rgzVU/!b ī~}kXߢ+m =Lm.DtQp kGzD9-eQBgѕ`mǹ1cꇡf&ZmjWdsѬ((H;qpKZ -7S튲Drd4oR=|U)M)=2lJ%q=enl/]h - -l6;?a<_?i2[{Ѳ2.?HnDKx4A(:&ܸ"i*kcn"RSsc,UvMʃL, -0phBUwp21RCGZQ2 qsBB0K 3"'97ʌjl4szp -ξ!6;Jbh^EBd ~B+xp&8ss|wZ8eE\ԽFER -C30dB[CoXgCJAZ9j^c~AxqkP3񡕎mI'Yq&:w ѶabGL?8'4qkCnfgVCvl<{ DzH(Kڂ⨕L L#.=uۏj77Uȷ言.B9EHӒ\E.O[EQsNVxzDJ,i4ƠX'S*o5ECrtq$8ߥ %Xѕ;r^Ehɖ^4Д4v)?疼8sACcaQFCl⬉)1kSHȳA366g>I*l{A`N|0: ژcέkV?]bIc&z?uSȜ )ZּsS]:H6*ϗ%n!3lj[S'VO}Pa" -h9 q [r\ebdy7GGFnCv8f+UG!G{G7wORO\ԍ^E-W^{_# Ms^UPFPLQRxmX7̐#>rƺBfQf iZ"|MzuU+wak -@PeccgѮ[ґjf%Lߦ%⍙3[o[{#Sa}Z g4m7 -t؂U}n5%3(0&*U>_\Қ[<$xж<0шa$hu߂`ǩo*;3 2Aw, Շ1gQd\1Xc6Wh@bqINm2h:̆4R7c[aU,6e3pb ̇J 1SRY*lwəd7?f># -qH)E)T1t}5Gmok]+r>#?q\(62򣲾IP!{twbek{_VZK!c5 -̠24=,Q=,{eC> dz'dAB֑1?h YJWDLi֓{Hz7JgWy+~`WwI @KiƯ.\gX$*: ԹEØV*f-!ߧ*)2Zp^b3UTfSgK&֩]RP\hgj7&$3gFHтƪTmvE< f: sr۩D/^,5Vw.>wI S)4)jI O+X!z -U;5bKpgKM(`tjFL\*ΞKC ; iΔΣr[ a٩q$>fa]+jy〃h"2z-"{&9nOdʏ"r1CtOxc\=Oe.T -6! -/Jj97|={ޮFO@ QSX.:Q[\>50ew|CNm/QxUeaSfюqeI1)Кy٦W.)bZrU>ڐ1dsI7I/^Ow8*^o$qzI@0:eLj\A~~Åƛ"OV_B`ӫDݚ,"!a#"VɎmЅE ="{3^ϊb%?4Uuޑ(ywwЬCf_p0 򲈶kM ȗ%(86* -}v ogw,juaJo4-ȬAde#gϐ1*bEg5Yw7܂,%isx$Hb<+za;k{-v> -9[ҭ5w`FpNCR*(v}iѧ 1H՞Ak W]u/5N,M F07HC$B :x -ػThwrO%z9Up@ic*~u00L%Kq#w*q>*nb=*XF6e *.%y p_Z ,V`$1J;g9qu -p3y'CZ;:G eGA59cIꋧ-̈aYG |$V-xPu=7b%lxhrN*ƢUZ* O-JeQG^Mb{*b-Z##FYSm:ʲJ̖eb(9L.BQ*vFw([npn7QNidЪvLCHuf1_.09!{tIlDڹR ~?n4oJ,34NwPϣ9GVXY!膌oV,_6kSHna%'zEK6u"OkSz,íFBF ?QJw#p$wƿ%hknEO0Z76.r/)Pff I%Ft\F2XD7+{: R20ٯv{P2i)b"gQ&a]k gwViƟf>np o6]cx"7YtYγ?;;vcBFo.k[rH^lg@eim,leI׵ݴ3hcM>(+KѼ+d^TK}oxRm`w3*+5<;nQNq&FjWLW T>3N֗+7BgnT[[:,BFl]rl`N;dJTE$l`ؤ40nNq'-- f7\TvlRpDbX 5zw_:2TTQΌ@ducsh9@M[@Y38=€}s4D ZEjdbETT.[f$ᒼjjeC1n߀= ?zuf&S7wQD+_U~y{0-r< {~:tY=7+0m}3e9ګ *=b!dZ$ehL0iil10?y]EjΒmG;,m .> H=^hIMjPHb[OuChRGD2q,f=4SONdd_ͯ80ZFDJzU|W;C%Z3 jn)8[i 23 =I\XEܾwJih;nw9 ihT7K`1{"Adp:8-r)8]N7ec8.˗wHE.*èA] j&5'!qC G[m#&zoGF<gwvjzp 4fKʍmjNrq\ -1ƥP1!{[lVM>P$r=CrbY&f{) rJ8tV(DYnݠhȔ -9\Qo qO5Yu ].,^goxm -K/[J@~{$K@p(-n5쬀&]̛rCflM݄U̝ E@mh=-Cjd=&^e0o8Ae.7Z>97ח҅J)8815 -p&"oJ ܛ˲_ ->d SE Į,`kGhy?( ,0 [(Ƀa 4Ambt-1L9Y{-C4|sΥjʩ mrke'gQ3 @ý ;3>T;ˑ?3-ω߯! ,v?Iʾ I,pDp!NfFRVăC(YMLf{π4*RLiagb3)tǪ<7FɅrT?HmôG BݐsUYV֛&8͍,Zck>,|7@l0犧9 8V{LZ(#%ccGJ cAm͋ b fHoH\;bޠxti귌1\.` AG<߂mh/r;z*HiGWO(ܳ0gab:W_ $>X26(OEmմ!sVq!Z ڐ5Q |N |igtm3Ք7Ebyð,`%ݏACIJ"K*:EJǐFc,Kv VǮ%4Z%].0H$LX]wwDAQ[*9n,ݦM  Կkӆfih1+͐V˴]E"ENoa9ĵ،'Z=  ֎9!z A5FN[N \Vr(#)CW{91c#8s١;-J;$JB b >(NGA/ $x6uy v- - -%"n7oQ -%._>Wml¥V?~}!x;W@T/6V(ԧ^^1O(1>N?{o?uȏzdO d:!0?.%PЍ\uS* %=nG5rbzĆʫQL7[uWRv_8bՇq4}Af*da#z%9zLF!*aP(^,drٸH(#t̺)yݼ2DŽ{0X&UK)-(6b1 E_$#W'ۊ}(O$vGKI2T0`i{vn̕4+[ql[eIdh9Fᕧ֞rI-QV*(=Vs-rxP.K -=e'JҫB֠@ I(>/Lz>O[;Rn+<)G/H=Z*OMw!eGE3kyAy6@)ڴdXD v|D(Q\pvjbEQn.CQfdQt7`Y0X {#u֭Qmܸb9+jyŗCo9Kh`P G#W,=rc:ʗw]HBmJ.;>;+R'k}$ -h_qΰ^2L7 9pЖ'y@6q~8j\']W!ꞖI|x\E%9]n؝ -i0wUF%UҨrex20D8. -'j׶ -eC -4.O~L񍏈ԃ߁$P;ee@>G| d:^+Z77q&2cESrXGb"7A}I_r߻$ݞB& 5pJzIh(WC -9td0(hf$TYhP@>i`BW{^~jF]h]g;Y׃K1F5p Z -VB:w -IDΑ4ÁUnpd9@͑@*ڌV<ɈX{& Ep ߎ -~բ 0xJ<`{T)S%͊+$>䐂mDHkثT9ITCW m6@NUV>zAqyc>"ROu<(۠@&_[40^i`Ԋ_7B ֗𲭢JJRPI4[$Qpy-mO"[3^*}Ht% -9ijzGJ8 {H'O&=WB/@Q==/@8?ރ>_sd==g)"zܾYV̙G -✌тTԏqѨN/`7B /8/Ɨ>K?T å֦#!ߥ9bpM׉~JYWG#zHfD-`(M0O?v D)f;[\Yc`jy3-"00j_¬_Ť^ J%CzbބKE9ܹn ->| @BR%H!\1A wJG}/\L΂N/Ar"XZ9fCk -~ 0c)R OF>Usx1հ<` -0k`c2OPPe<`1:9p -Ÿ[{hk,a_ɢuI I)y;8<~n(_.6۬8+c!;m GX JsxL,as.S cjLvHk"DFX@JPg lfN?1l6[8=Ղ&rЙdYr_{Th%My/ ~>r[}v3IUQz|L -=l%o֨_1QW>W4MNA[}BVNh -j[lܠ:61~)dfƵZJHmVuDqe` -P3~6!9m˶7[Ū5{rd%J({Ehlr;Ғ@ mZsQ+U>cѢ"3ϫ*QmDcGriMUi+c#p%1m(斕$ɍŚYQCt5=5˗,_.,NFLtHL Jp {P<3,vPSNmDj ?k@mJ)Jӑ$z !25 ٶ ?`Zg<3v p`Q'l)׬^u:u it`]f_ ײ7[opzM_o.XYz˚8D`<"#˒<ϗ YfHu5Vq|yB%-P b˛'HZ'<=oՊgC/ -CGɠNe0*d2c)ŷPGͨ҂3ș/qB&1ICVWVc$u+(4&,QmD䀓N8 p:A4 7fـ@1g>h ]uUS6Q)RjCf0, B- ۃ?`O[ 3Qx0Qxa[Έj;FFWޤJ -1nQK b>=l,EXDzX1s,P(`,`aX0:֧tb`7њ>o2d?DAJԁnH|yDv)о jPViLT4zp|@|<'%Kҭ ޸h{GQD`^f5zAz =wI/mFodު%&1yu1zf3Vje"F~d!4U錾6 ;Q烉Lt0q- "\gyP_ -(oI;Fx\%̲j/"[.NmM^2b 3cfV0[KڣRjTJmXefCoBxւg[ 3#fmtaVWQIZu(QK3(̊ 1 l敍G u bf2a~ѭ-(MHkF>hC JyXյĞK>#:$r9CpZf9Ѽ⥵!/V6ߛ" - EKdC=mVT pRW!^+zhnePÈ6ǹ7"UҋX F/-\@\A_$s>0|@"lw$[MQ]|YFtHO7C;š`6 &T&8L`B/䀫6ߒA JdPp D,ӡE%.΃?t?g6Φ+TA;u`c]uj/D4KE׻jfNh: ~NaHbH7h>*62*3ֲƁ@{uϳ$Y0 30̊ZJסOO@Zm"Z$ % -Ņihsg˭~w?13*ǘ긝ˉ# -\%`(JZ;~;X0f0l~k+_ݍ]D`Y?r -³V~\'YxB54qE){™ֱY]̉oOs&TZ0]\Bw?K#[㺏§]9@j/]lo͌P"u11 ֋0OY"Ѻl$YT>;ɉ<*6::qjY0*dJ]h**̀DK{Qm}j&V\V&^d E"JSuu!#,wMP8 ^zH+{bx+#^\$DljVFh@q?!.DsD-JY-umʝk>Ȁ{6O]6^L"+~1C'q=E? ;\$fNiDRmXуgl%Шf;A[gtH(uuzR%="Xw -W#D1v\_N̰yWqVU>+#3Ŋ<}\ױ:y؏8M,#)> ЋVU('`!!ob6.5tld@@e({8~+qR^i|R ƨ_ -_ُTF!<zYvkfF~\qP:"(!Iזq?Bu5.a31~SuBv[UR %ҕwRZڊO'k+>C8Qn㾺;)%dx5K%c?o7=æ%XI㺚PzaBx5&>-1&׿^!* FƢFcٴMKnt5Z8^" Gӑ^<Ŋ^`^dF15ʓ譟I}\hqn(Znl2OLz'.cA-v@:n` qF|iI0>Cq+} ĭ#2[|# qRmEPo\,[/Xnk*t w>ʼnP@YQ%d V $z+Ό\$ \A'3 - -ثSe-sش rme-(&H. !Cǎ7¢"A9YCȻ\8 XQ\=dSlzkK X Ez舘xb@1>I+eF@;o -8`p@qIrP1[-"DEiT,- -pGԼ= \,dwSY'.RдU[SCZ xUH67 ;}`^S,wŊ.OH}BODczGoR5=|^ ~Dor0I_17297&q5EliybB1ב0ٵiY5ʠ/fUEP A)İ t([ }D\) DȄMX[Vа0'L@Ey]BkBi.+`[*ufkJc֜^?kaQ$׾eϊTaz1#j3`:wzex̘u+l>!|Xd$n^xMQ$&MJmjC@|\A[bMDbE/H?bD6!WK!zFYKvT -rz'hF"q=[5 uҴߋ qeS^1~BoIpbRE!;ah)2S}n?;DkH~KL "@p4dž0Z3&vbFf+[Bep"(4㺏|anpbKq!k$ãILMye\Hdj?Dُ͙,[l) .LO1jbQׅl>$d0lx#.$4Ii Tvc7%B ~\QpGF83m?Ҵ;`Uhv&ݖ!R"v@.Bqu} y7j!]} ]C$ %u1sJ嫥C}#ĴM,ޢt6d_#zGdu06RZ/dۼk?Jghe\\vc<D$b|kR02o ĤaukF1qOؓ.wFRŬ|}=H3 3|L'2TLQuljD\qQ9X^zO[v\|s׭UU'џ?$ɱ&Inr q9׉ + -+P̃|0J hiu8&I O#6e^6(7]kJ5dh/>/O|M@@U>!6b;a5ԧ_zx/J!ۨ}V:Tn:nJD3As -P]kn-j٭t:,f;x -QxŸ5z7Z 0_9h&f3|V$K?HO 8Qқw*\ ^ ue=s J<`Caʚ)8c! gP#V[icvk@@FKfn6I+0F8zt~&HF3Bx67xIӴ 2CꓱMݶ#`iMgEvZ _-3+g#ԟ -~ѰF[(PKE@)` t3ȚCl0L\Ozɵx %|xqMp uGfP# x1VP4FL$ҝM,Ls -!k''f$e$A~\&tk<6/sՠ(UTIòX;sר:Թ}T}#sEp{5)~7e6#kšr@Bs&@ܘm>.V%kFM;rBC‘qp{N-QH ϊ"gSਔf m_\6Z\XU>;RWV;Cy*\&=&ip]m&靓3ބjKJ+V-wC11 a[v"\ TI~+$\'Ϊx9RcHXfyb9UE׾ssso]{ iyozQOWӧ<ѽ~Uiޣ=;Z/WϹգ%y@ -Oy/l~OOޟ~ss]))'Oڟhz%?~oy_O{n+OO^?"@Qԧiy'_~Or%>էiz'ow#;=r{O{_I -~Sy{Ͻ3=_-ד~)ߟ^|{i ROu]u]ui_u]u|s(WUQ)|O~_ӽ7Gս%='uU=_w/9yt}]>=ݯGU޽ޓUs?'^N|傔t0_RS޻?;GOU_p -~ -NOR'.@;ߟURuMTTv)׹/x}k?'ߓ}ϯJX+PUjZ1VaR -*g+N$ZwR=Mu' ROSr4-ϓGNӎ~UI?Ok:yur]Utv\pI -<)}rIr)޽\%꺦iWYz.PWڻTZꅊD"VDQ[\'nDtE/J]jGR\_S>?&$1*HJ&; WO~vehUU^}Tpӓk*Xyї<*WYUtFsOοg<7\ܾ>>MNoU]Q@ܿ<'w/|" @3}|.XZ*RPx4~sGD|(L:'2Mi;i/ A-tb6jKjAdbUbdalnES)> i& zQ u%'[Mޑ#l?3$l"J0ӷ3 E%b?{} ) e< [fa[&Y#sa8P P͈J <),m\|Y fnX"㺋Y5ͥyv>xwʉ9[}2F[6H!dAfIV,wS I ѻ}u{J!=>IzJ$XXQd/8o;(;fH"3w2sH)$zK&.6CZᡘuq-cpB=]- -x++g @H@(( -0UF4(R>F$.(&Bq`0 #1XDQm@QsӨ955EJh(CnpCZm$Fhx^4=GVq3F֍=KPJ!D>L2Nt9FDuWSGoE٥!~Oȳz[;.b)b*dUym==@HxzVRȅK![7860ӱ#:p{ Ccs"3~EӻH )n;?Ga>2}! @ ->A+~YZ\x$BT gXGy8]Ih7tʧ֋ ?}.~u6JEJ ,'K>ks*4J_w}4#k*\/ `읒a+Bz925εM3{{I[؉0,j|d_Ñqy$MwWU(t$k̶hYQLu}.N~8FTW*={ҀpIPTܵx£b۱.hi a1M"5N֯jeʶC<LeD)45'aP+& -8% 2E?p( CdSLИ<qy%t@ެHr_.6O;hꝎm &f:VL;LƤGF7H`tD1 -i۫M䄭Wh0U#nm8h=qA`Űr H<[N5(6Ƒ8 ɛ?J#uhw3ꔠR˻/ -*;]Ku30`򡤂0&ĤX=xXizZnil{ ,j6E TQ O`$ -57iP=һNhQn<-V_6=DzxqVZ Re3&?@8*>TzVx&@E]'r6`Ql -@8h0cOW`HRv{UpS~+[>c*>e M^C5*>b(4eŪ`XT8 4Uޤ-!zaD95p֋:9`~LʩƲ,AUf8/`n2[[I7Y IP# X} J2>tQ[[ʂbfQb{nUbDfӮ}"ıX?P}nP벀'`S4 -蜅tW[^ 柿#mD=]:5jեR0m`|"'vF 8 Fe2<b\6S u7"Лh/GBVK˕ h<@CR,b Bhd!Dc{_>pq݅gӭjRsi,VZ|(ȚC*br 'ˤi%WᛠSO<:mh (b4-y!|M*,?E ]!T[vH2:M3, @gI5>uhM_;,YT:n06`5BUTuHw͵C<X?QMYU؁u[yoJRo"\҃ |AW@Pa[O;Hu83lեͤ(%e֭~E%6ݛ݋d[v38Z33[]Bd>hJϑ9A6:/.l)]LYs)GD#D!O/ 7~l|zDG0ut_y+ɅB0Bs麛d]qdv h5AKcMKx6=MHM-lOS7[! 0f (ꦰpŞdb@hϭrn*vJTgAJJvmq9X ;l,-jB:Aޕa,$ 8f@|=6i)z\κЊC\J&ue؍ȴN0d1p)?LC8r$06V^:26FF79EeQߕT0TLQmKCo\.H^|4d[3r|FR6o=Y{Yӑ"CaKBkT -.:7PE>b](ɧiw3dev38Ҝ^8W9j{cWj{hzx\֡Fcj//^W+sK-k{㘡ڛ x N-[m{#le٫e@x騖mДuԳ_5e8m/Fceb^^\-h{Tp2xީPCcZf81aj/*5{lnxc}޲xJ9ҭݰ3:- O]T'afNY .W)/9:v^8ݗ TU {2e#b)raT<43Y8jj &3qX+b&s>h@%aз!-뽽Uk֤EӈC]'7I`M2öڃШk}j)? )zCQw$l\IZڵ^B; Q?RGc?'u^WO}|r -BT1bEM8u"d۸1 F2 Fbg?]Ⓘ/#'t~$Hy"fn܊z֙fẰB -3g8D՜0AHs㛚0zO'~SlL\q0 DTDwr8w9qU+G(o|r>>LNox/@;rDș B:KjR~={J.{a/[[lh|VRSV>sEeYƕB.kƕPhUӱGZ3wԂ3!t[;*crʉ2դe -ѭ}qt0w'olauso͍oKSȦinA6vcۉQB#'3p%"IZmp!}:p$xJDu]$;NcMs_8c6 i;>8ksV2*vǪBq j`r(C%rnr_-pB1[.' -6P]?:.Z%!}M\$vp -OF!j-}*~PȲĘ>/4hF:|)D^\@&L_kk1%(цg#/DUBߒ%S-46R~+ h+U\*Ĭ/jUyKjjEdw -\HEEMɾaОCB;[}0)Oa"yJ;6}zȶ(#kvE@. U7w!&U 4<6eе!:`67t>ϬQݶt*K; ?o]+ Oi]*%@2/CJ,GxÝ6Az&~I`Gӿ#Y ݢC'@I]ѲZޠxe1&jWykG8<4-usF EAۯJp(ۢckZ:r}[s 1 ع @f94pp/UQ?@a؍l9N H+(AԮe# -$f.6^nAuQTn+/DZ֌n9T -;gV]b9w;PS5D%Ijr'brhj+h7vځ5F ),OkrsNɾmkw=[O6 L lx4O{FUL;~杁Wy/0ov2 j\ 97U1\^J$""KsvyEU=jYV4[JHm݃>yqbxW_X޾2클 VKcߞ[Hݗ<µ/`5ث*cF G[μNdk} xZ(Z m7%`gꦰ+.jfpD;}YmkG`#{U~AWeE"qNcs1m?E5FfЌ)e;XPi '2@6$_N+>FM&b A2Q)GK`z2<.0k;O0C'&g*۩TY> fid~G-r#iڹ6pF4#N]C%Y!b? 1U,5 a\/1~%F|㗘ŕuںQHTQ&GBrl^LY?*~9:ؠH|v{B˒te+fil 49`K?vF'!a`3`Rزdpי``U/Fm<ǟJ |m/1$J ;Dw26R}Ef^7{¹r{tUڄ$]˸)qsKy' tu oZt$I 귎ّQ}pI8`&A%-NT33o;uW H{LJY;"Msg!;l~aнd@vKIj$!) CM^L^~}״Ẓi@LJK$L8#|B`A0iQHėP$s>gfDQ!?U#kxޫ54Q6\{mNqv( 3yVA+Ȑgθmujf!rթ@"yKOP wnLNΓ0BɈ]wp|rUKNۀ;wdxHOCZ'؃.Jo\dJfJ2:/w/]<ٯԷs&&\!l<} aw,5b.ߛY&T rI;8$C,Mz&URR\ϴrH +d` SסǷ׼kԳg qw1sxIj5B/(ߺpOFT=S؍dhKy~)I!0s[B>H|mch@J++ "Ȗ "d?7>Ch>AT6H$%9|ya$hjBxƽ4 (<ʹ\|6[^`d6Kn i- -01?E(*̌*OFU8$7&41m?m5>ROtŜ~ Jŕ?K+TKY8Ke%?p8rJ;NhtFʧ[!]QsOC)|@h&LQ`nhݲuh - R>D ;1h~`CTj1c7>r2` 8=CҌpR'UxGrf*hGׂ"Ir\î;# n&^B 7/j*- {6R?RuWVe^MJCw`WaM;ZrCA?#YV+8^XTFoXTeA>!=ڰԴ>ek'hkWq l}&AeCdUܱk %muPs!g$(c$ם0\ -Am? -=Wq; 9!.YxV|Ѥke_ߣ#:Ɍb V7TA1 -"^,tCU(ԌLh015pv$ƉŷZI*𙸶6拜 4w|-NYĺ'kqDH=sK&HkVTt)ONV+iVLm Kb'!p!{Ezs{|DͶg $w #NyԤw$~!B 'p 3k[h|`D7*[ @YB `?I)sNH*.s -/FC'5T &3yrEQ;~!Z=1hȕag!GeGe8 DGy55qk;A4ɏ=" -$a͓ez7+h ed^9e9t+dJncdt!Zw|cDlTuDVpA=z7nh5qg{( $GD$5z$%ͽ18D В' ݧa$`Dvz%:iiQXKJC鮭y*MYa nO% -]''Y_}*wb0*o:1^_OvCtBuPTݩ [.mpbfDr-b]Sy0c/KpiZ`!$H/e٪4YvهMn&P3A 9DI~`x[P7VF'M?"6lAx񢺐DZ%وQ-?׀6yV)Rko j$Ӎ r`mpbȨ0oI'4 & ̺6.lssx:fV? +9hM)(Z E~j}*i2kQlp&DDŽUF3Uύje4[#<||ekNc3l*R,ḧi w`Pw<=9nQ2\SH~d*)u݇X4ZM -ug̹1[Dža BQ=} ?b2Ld(? 5|_FK[d5[uhשHrWS_s~Ԍlro.Wz(<]{_ܛB.G@c]]Hy;j` (@m+8vSUp+syP3p0zJblbpeKp(V R4/S -i$6dG'wBY2VK=wF8;#4 -,!7ڽWϲ"jmj8k#8&COUڢBsTiE|g[_"nN{*HRU}ϋبS_p~ dUs)ZgZtݝStz0h[ul u>ոEzJQ^1vAw&n`OvԄ^(Kfm]M0p121ĐյgdPPRr7(R -t#fr=sW@(u ϝ;G`~l^W5m+0^o|A<%aɧ +0z_p>i "W&@ jpQPRpL()L xLRDAkF@QA.Mз&4 d^ U5眛k4T,?ᎣzVGC5f>"L*cqu,v!wo% -3V^}?C=1W@Pa N*c%$!ಛ_x)$MOͥ]CwxaGR1}o E͜DpZS_RWpYRds)78?%ʒRzQ%uEBp!8Qlkd{à,NùC wtoM֚\6FDN[kBS㻉8d䇡PXyd;v0gK&6 UQx! -i/(A&!:1YFf4 dXKr$Bg}8AbtJ?I 򧒥>C Tu5+qUA ڄ49de3 ֳhe?W⠢LqwZ/W߆y^pItx>#arrl+Ahezߓ0l(i2-]`Ϗo f`ƛ5my'IyብcV)KQVZ="+8nhsRfD7(z})NqX -pAm!P-J{FcYwPU͸6#?2X LCpS# ?#:'pZ;,}zՆX&&YKCavٰW 9,Sg/}J5'^Q1KH3PC;۴^.&A\dG޹T%l51~tT\hXKd6 +t>4$N4è#*LN[.Dp - Qr]ü6%T = uϳ7c3!һDm3;RO,qke_v;B+k:"&*:Ns"r -g>93Бz|g|ּjtȚXVHdυ{u= q%0>+ 1Rv$̋c)O3IUN#JqB,R?ī8b,dC2UX!'۬`tlR/!FsS{Fc/37o"`FB|W=Qj.pbM>Qa!f '8VshBLo"c(NWGNu|Dym v!: >Rd!AiP";q 6$'b>ۢ[϶yl2I]<ꂲQf -\1-Bv"Rj|,*ʍ% Ûi:λͼ<^B->K5qz21PeGakE LK^>M҇ -:\lrWk7Q(V! ׃-@iF{. i=lFMԼ22~j}ݱuVЏCksĚViqV5Fky솤hGƯցk73݋j:^ D=BzWux$%!jNnPOu-Pׅ—/ߠidfح C6rA@[4k:,]kqީ*ɚmݾ 1 5Ѹ3 Ո0)61ұ :3Xqǚ̑+Ft<02i3xױl V.rp|/$} v"rHTԠ$ܷFx  (poc2uč_I%;>I]<]bKcGo0Y ̊: 8Fmb[5*=iS Qj"K !r.Xh5,Gz7p)|iU#O3Bx21ɘ;`Ԧr:,BX)d$)Z`| eACQ5H!śU|& X -N2L"CΛE&*ZCr/z ڒHŏ@D{Gv;=˙/$^&fF 5%%Nژ 6UvMlԵ< ާoC$f1%Q'La6XT-Z>;YǏD78A l0q)M``7gH^.vMwN4 c Tm"zazVX*\@gX^%~f`K, k]~BDH 0j'Rye`90QKw);$k;e -,s0 z*Ӳ-#kUF}W|fdSaBXkh!wYm(tk`"HT9x F vE/\;M7+/>nOA$C̔37nytJJIf'!MN*ƮYo[_\a-U6t}HKk+FKi,3l{3a&$L8I7pV\!]Fg3rI>vTV1mب>.+H0= |E.gjeq#q\F{bvQ)-YQ*ctp)'/kH_!l}̓}W [(0#* =4hC]`!W> -tSmT&}l. eIK_cGX7(m]#X|=;>B¢#1hz89;bYE ^&Sc>ԏLN\s?Rي3'&w$nkefҡ% $nvS A3/^b4X1?9uV"_sO.WRi{ vuivTa\$5c5C~+".̺Rv$1q~ c(ӬL /A:p#'&V~ν wl($D]J4j5'nYZC -;;"i0N{)߭_{4ԨHk*!u[227:-J""U ㈊˶ɐNɽ[Q2$R0ÂTR { ^'xxM,ӯ~mq}YiZ#jס–#|#5t@&^F*Ku^f]| -vBoQ3!ptt:,e> :01zR#lq 1 MG3Й$#FflAɲc4Vd -qD= Q{pv "j3>׏J -}ăC@.q_[+V0@㥅G{ ]h)˃%x?وAY"\j2H!9h+= „{g$8þ֦M>a@Jc^ut˯uc`d -F&(BdK ୬_Iܰ@y&QnoY|6]#8:G،{[z^aC/sH0 pc:9kB闣ꙝ\!>`6SgIN]Y:i`,(H~UHAWmB5V#PC8A}}\_qK jK$N\DAl:]peO9gȎX}_=z| Lä!a]c3Rc\\Z:I ,$wI_F*?0e!%*Mk>-͋3D< ;#|,gўSlo)--}ܢ^SM@}֕T Νi[J`x_9Ѽȿ6X#lw̓+;(v=02|V.C|hfȃ١\Y41z$g YS6dZ}M!bRmKbn,V0apr]w-| -H4cNAZTs=׵>Ԋ.kZc T3[S4ҫ+9Y9zbϣ[ EUdPM@ȯ.*L_bP*Α0}3wn0z}]Ug8B¦f d_{o qip%/07:FZBe M$ 8EVօ5'/F^$fMk^*a8(*jp'D @] >PehS(Qd-s!i-'% DȈ(2 >IT'^huCԏaR,30X,r/%_ jhPw_K"'j0>wRܽTI}*1{^smuڕ$p"x'9FȈ n UH~7:c:h* wI{~lYi΄w]$"#_)Kl}BFcPPa]zIx'bB*8x@F6cHf*tT(~J*AS*RTTÉ+@uĤ8@_Wpg{yO81p9dedAtN]}ܡ >e1"5v7NLjƴ|/X;r7t{SɺccP;AKFj vڃ/Aia[YsN}ax !"u&.Ha'q8Sw@$8*@ƞp5ceW_zJB:(M -^B{7edKM"@Kg(  LL)3I=cz>~ VAr":QoFJosbe81f }HdÂ]UMq7;gJaT!oo{͙="ˌ-zR"^JhU;oJ6aJ8UL|6(5zJh,sB ![j՝JraVv434ǺVR+NbÂ.':jS,3T!atpC(Ɩ+yH8Q\cLXTղbpXgAAD2EԸ)򩃔gʑQE&)JRtm -> Z@Œa΅" ɴ,biesK}TNXqMxv֟}Pv1H僦s6b덫ZZ31x$y[r{QG?6zJw}|iYJC Fc%);C̠q1#^a'<͙Ȋdc,C@ CB Pp HpHx - 0`@B $D```3[DRuʹw8<2,&O oMqgez-S$ -Qx_{N""ЖS4txB6 -/d(ąL'84)aOqZWXH{w7:5aja br,ԸUhۢ[|3 BNJ- z+"w;KMvM?Lɶ/9ÍL3E8J -Wk. Ib]7Mgh _bD ;SBzY3z}Z7݇!lP -1[;dñqGG]doQ:M)8"Szprg4`{..ri%cTVY7xO1 LXcȢS}l3Uﻨ5V]X~c3|8IX/g IzW P f7X74o,g~E;'&(TaR  (XFA cuSk00XkkN}3diHT\=lʙWDG{2pܝm ,g`{p3Lm w4hQ 1R-;/rL{4?ACns=op-!elȝRf7ufv=Wq~î~//J·yd!](!!(v[Z-m ѿ;W-zGpo{342U3H! Yq:#>(mv&rwBikvl4@`H-DKkq9%yV@ #2hldL".Ga;h5f 2QbԺ^&4T3\S0^Pn(Twc~DUG{auP?5ecvUT]E@G>bzsq\38NӚ`// ĈWsѣf0Z ɛxY2Y(wʐ(' &u3! --`, IfG/iru_L}MM)t<+D1ne"ԍIH,9.r7[<~NU nj\g⟥wMaA K8?("jH ZwO9gsQ)_tJdDޏ.`#O5!F -FZ v@Sd]a#ZWG] 1#qt YAC!:p>q|(Bߦ _̋%a1堹k%2'o<VG&{$ ptXoZ -xM -ҰR $źB \%0#O߿b8">QA QJS]b=}\)h0,Xkk~-+G=`"5΋eaW92N$w-7,[>c.)!ImGgzV$bgH,_\66g2! .\Kڨj~#X,,BI:F|Yjۡ*){!zI,U.ba8 d60v48X )2Qdgž] -^pӃ;7*g9\ -Mh3!]2y.V89: z۴)Jm8̈W&s-m\ru0ܻ,Vڤ١xX`dI+y|&P4ʾt&>]dCR%N[tz:E\Y -a/7NҰW6kxd::W(BOAo - 2 eƻp bLfv+JxAK )REY5d~ΣG7\KCz=Mkg%hu[3VOo_¯Pbk7g죌Ww.hOhanm+NvCK=vn2}~ -047ZTDs2ЏlD#ɔ-~LwZg):ݴ Zm$sSG -TQ*6[ 4o0ؐ(xj%;QږF$9E#3hM9$lKTn3"#Z"v*a~Y D!8S#Xms}"{AJ;O9@$GFK ?_U$^_pd -endstream endobj 30 0 obj <> endobj 44 0 obj [/View/Design] endobj 45 0 obj <>>> endobj 38 0 obj <> endobj 37 0 obj [/ICCBased 46 0 R] endobj 46 0 obj <>stream +-P(n(lr03$V ;U`&VSD*ǽ@aDp45&4E9@uPI"J PS83`dI!B0H0aD`T9Q0&P?rl`1ྒྷGjp`e # "a`Ӂ 6*3 F.dP.q8d\R"t?#=.mƓN-v>rHYPRjUX6 %#!:DcAZ0ͦI& "ci +0XUzy,F†T*I +,)HH( #iX)h*XrhB@EsPD2 *XT$ cl8 @ɶbUfe"%RP\ +P*WF0d Ie#"G1R42KE&VlSP0g-.3&"2*Y&h^ X6E%~ T"A Bb` 4Nm (s=lFLe]Jy`@< +"<L2 yV 97@q펁ˀƀ 6 π +U‡€ȱV֨>ЀKɻ le ,QEH$&(eD£(AEix։bJ& +pP8A-(b!R:F(VʈF@Q +6BR)!I&,R>2QbP* +Fi@`)b#,VDWضI0WF ++Q\[q|X2d1 @`F y]`qNWH2n8/pI0Wր1BAXa 1@`o1` La2FEeɈB%``C  M19(T.-^#*eѱ b$]B@vqqu(l&<`` t6 &X&\ MV9N'">BGU0 2 ð"2`> 0 :,X +ll$#Q: . ða'PE :P&TpHZS :9BB+N 4*Ouqi1 ,#f1v5 Db~n=0,ð!(( 0 ;Q&Th.BH@0b0U'4P k'a`v`ac4ð ð#s*0 B |42WF'#NFZCs8 +u%)}܅).B%쮏8 {q|MF9H>7~/nW>$LD .Dع{\z* V'"U܊KcRr7Y[osy!J>%i@ى/q'vH\^"\.N/IN<9zRLu]K@!(<8N@>|:Q3iqRdy*$Hխ"HN)٭FمnUaq*Ɩ:HAttũE.Z#< -oRq@1ȝ!`PDBP10D E>[#@8֨%{@-z*oluQzL}Z%LK$Rċq78rđX:ȱ%t \N.OD|؉a7 DɌ"L A-A=/{ĩLy!$ju![\8=tIv#'v Iԫk9 +qlO@nRb\>\8-@TW(raԌ5 + yt$0z -BGU=.tP/}W(obRQ}_^7r. }HY_;qDӺctc';q},2ABzn]} + Ia7v#HB +ijc ]a7݀ХGXaw]SnN\E">ngvck?#u%L^N'􌠫.⽖E !0\\2\KbTu[뾎JeSF%z'9G 9.0􌪮8פ(WnMEj*vZr6așj$>UsIYo-l5SVSsBD Q&:o@LuMιZkw(*i(*m;tv:{!z}QVQխi_mZQ9_|ݹwRiXkdr֞y뮢\eU*O5Vf;}»R +u) wkRY/Ui7 GFG6#)P]t!0q`3 tD΋R`[ +8D b3Dj{0!1=*03#dC!r)iE6ȟ\I&ID#XeM;\AT]"bGAIDpqm* h Jj{ t0eCil0 ׁ8?\4cU4L\g &te ba#e tu +f&Qhu) zN ,tB9' ią!A uڃ/`JCfhE$m,SF/61 a&J^n Mp˥L +3d hځ偨)eni#S[ +>jPjdHDc@|0F&(0,).h&NHr5a0lRF+TUN}( 1`)P?L2ies uxJ֥3/$>>ԁ"f(H#ؙdB-?O9cfÁEEp*!#4 @p2J6F*L2x "p 3> `z>J n#y%4\13E>wYph Έ`0^ ClL2a%Nut ސC@ J7T4 "tƊ0Q&C`2L& F2*G,!A< Hy:m'9r +u)rQ>Bd.]dN9EO8 @87CkyKO5S!@8uGzrq_ *8z OT@% +T.pycZX(5]8EWN:!PM}`Z\:Mu1Kͱ ].RM1LSUkhc DMEO/q-Uإ8Ek^F#-l>]L88S!MR.pXM5]I$S]Su'I&lUvE^tL )cn>H&8` +endstream endobj 13 0 obj <>stream +a*\] + +Ĩ 8T @m)h9ރ*)06 +Ƨ'@ + +E2s!*[D3q0C2ɤ`hy^…za(.X*5QW(*% Q +RT"W +5PU АKlwٸ`BH7zQ.Pdr1Fh <.R'"4AAqqFj5*en@da=Lcs#`V8!D$tdIev`׉Cy80±9y6<@Æb *,l+*8Yt|42F!`Hdt4 FbP2-B$[\0B@fq{!PZL0X sJ8|I2>0%f{DLO&`P3 xtBz^"PYq!D#x\tx`+ŀeCAH"ð9W9q %FlD4H#)(d3Veit"[j#Rk(>/YIHh$J$f +7rN=vO31MQUH&>?}Q(O`f)R~OQ9P"OWp,}%>csVX.0cYY( VA4MqLZ 2S2wc|O4[/ʶs@E=g9"j  R{*P@L#^#cFDtv1|H=t,"?4Fa5Ugڜo/S؊l[|N%p IlDl,k-m"- NkD{WӁ@,.h14wH :/<+V5? + +BI9Na+/R +. \<F|2B_G3"38R̒'dG݌ dVx V^lX8ŋ @ihGAȒ-B۫۫ߺ +-a(k!HO"gOsHxixaPqR$vJ)~1Oٮ(]Ċ, g3lxaIØs&g=U~*h(3/{E,WJުE&5]l>/ ]r)QRV2b2*p`5Qϙ(uE+xY54St{oAClz:Vv$Ϸu[&*y$br7bo4R~Q!ߔy7K 顕dQM kL#Ltd] XU~N(aL=荒,T#. ;ܜq7cVG@ *g%M]2>Xx!!RR(h (ވ}וJ> `LIv^?GpB +o+0A!WLF [= Õ5/@2"R D`m*}jώJ={0KXÂa;z͛}@\&R4k1~smq $׎7ڥ\U07K1$Jc4B +wt"*Fdyq"S=[h^tyJhbT|6Azwa=[ythsO$EҜr0kڑI nq4cN]id+.1jVw'x* # +,mLb@ɦd󫗱' cMEuHENaĹ~GG9* SgЂO3̩z# /iBH}Oc 8Rq7R`&$NK'/LNޝC '1lnP0zKM)@c*^Tp"{6}ԣ<:#&'_ sloΆkt +W-3ytoe fxRްMmLKYnhX!E7rLvS^T@QtŴ>S|#A40"RӅIrݪM,9J=24F\m4oXd{b̧ chbWG}xwi +,ϊU% \0ZwH[W;[ub <ިWf×{Śf]Q*pjg׳f@q,Q! !NM^ۃ@Y78dġ[rQ 7bgu8jֈfÑۀf7ׄY AHPԺ![6m}<-{em; jFY/Q*wn4{6@! /b˙]|-'U#|1.9Puɩ^Q{/Fl"70wL,QW#x,?1XNEqM(0Un>uYIicIuV`K-DĵٚbHa" gל@tIJv{}d`]x*uSncٍϳUZ)s2S  ."L0c %0Kq&KLK;X^]v\`oVi"(ˁ2yK.ZEyeMxc "YKtud1I@Bp&o"k!z$u}CxLc!TZ +gA.Ҽ 1c=NcnEE 2KyBNDeAT DѧrPʲɢ1J;A'LےKz(_PV m]=¼Qw 3m@D(}aD~ :{[:ޛ;_6,S(41[ :4 :-XyO:a3Y8ō9*!ggDE(5}V!}܊}H-akXf@b@YJ.w4x}}ItEا/ %!55,Q)ZU]A66>ch<2߮9E m:cI =mDagSc5|J @wKSD`& &{)R=wz=)Xz90Ŭ(_vftꏀF%4(#7zY[?-{GP,znEۊۗ9%AzMֻ ۑ̼.9 R7ESr,&]I6z'pN)[Ƴ3-4jpoV[ nk^Al@aTwVt?&*O5) #quI )!å'1}tMυbR*9g2LTY%o"DZ`<&ͥ%I3@ͷ2%N/ ROZ#Hoƅqzh&gؗsD⃘l;E莖WU2sgw\}Q2{꠺!Xn''B/Bv$*tK,9+G4@r9}1I r$mmS\J_p~ 󉗼R.l(Kg|K칏MDCB::􋼜O +Yfo&rG} +ܴ_N8&u bzry;֓CNCOӴm‚޲ +Gz i7qXg +={ӷ;3D qԸUT2Sj}֦x-)&16F%]R1 >bOk +CFw)Bϣv^9v 7=0& pivU5+iI7N%拉g ٨ + ek1sYAMS2ѰG,2jQ?̣2b iqlUcDnQC,P-lϚ ζD2jѓ6Nˑ>XSiyHH.n +Cae=ڱdDNJ%W;.k\8:e0 c%hMI?P-KJ cM>ͬ^(uY&y C=u#7` a's*9 "Ko-[ؕ +=U~>23*hp^ ]zuK,װ:h "B||,3iJ>*抗,bq fA9!]L_SyNNm*}uͶ)LJ`ܙ7%Ek.q@4ǫ_- +|aL=݀0}cޥL12-1fk)g,L%vX9S4zKC6xb]X9-tGJThI!:rմF saioKp@AQ$̮UY&!bćSI Sth8l=Bk"Q.dse+]3m-1Δ'}9:kСSK?P?O,Ko#v/M' ~#$<¤&n`P &@r! +]ym7' m">:~sk}OH탒|ir da"[bW!(UsPGֺ{ (1R3/9ahgf8Я5NSB[Yi4?E~2ZriT| Zg[\w>^+7(` +)my_3ǙB"C15RPcaq}x5mk:jA N2Zizz73!hw[kJfi fri1p;uhHҠ]%H)VO/jE{=anL%wC̄$U@J{:I[-a-sr_QR"b8~{˯xNg%ﱒ)@j2Y# v[yFB6$ANdN#lB渣@u1+T*ER#Fb!yyPz"1bn/Sfm |sv Dx[#ϝ!:bok8^3+[,;fEĮ@7n=fܦH7ћ=K5t=DFJfeK&VK@* }Iejds'&?:8EM %Ev''/T-X@c,[=DXZ-LK4!x4&lo9 Y,.J>s(t}m^7V8b8:6ip@Bp:ߕVǂ2 .&r{Gw>` Y$xX +<%Ǔ^2DC)` {2|~ps '==DH3Q!>$=:M2tCj|MeZhs)S"G5IJOH򕳁lYJpNv,m!1l^j.?#_[D +'u'\[PFnR*i9V~LtrIۇ;fIx)u<\gܼݬ߬%jd.^EB.EٜLa$hiE>tqdT8 b +{:`:qZ_C5ȇvGngw>I͐\anuЩC&қpݫ7o3%N3zk"UH$K*#Es83̸?8zRhg$3kҳknj|܌]jTXrhCO)N&Ee|~x^ fQ?Z*:UzF +`I~RðbΞ `n3!Yl=2V ݱޘc VZpnwHcaȚaj} +Md,R2>%ߑ2 RէJh"MT6rM(hFNS2z-4Ofzi<.3sBD!A +k0!ҷiJ`fL|ic̿I=1 7.j!4/ 1؇xA1;ͷ#\6RyWY_JXO`?j"b]mkGPZDW)xZÎ0ŕ9dai=,z}>>_ +2%`SZ(pƃxH+ƫhlhșmB|6st7KgW[֫\_ +ҥaq%,㮑  +ZMAgJD |Idޒ M؃+ u_<{S7y9[2C6qp-+ih^F$V:  Lۗ +x)z孹=kjrI{Aݱe6y;1}el![m:tiԖ=XɣjcD"s$2S:ġ;'׀gɃizu/:M-L78(TZ;$zwz@Q2SC58Gga")#-fp?+T5_G&Rשɕy|bJC,|?p!i12Թi4I 6^wj^VJ*rWH)!,L "z\c%aͿ +$ɫW8XR'+_TpzՎT"[l&h_^x}|ᰫr8Zs̠}!BŊxս^->MA3:v(%"J}>=~nK#_ȗp'B)+TQG'tψ7l"=vS2IF ,F5T =`˓24dHrc-5Z+F1DJ_?M .dzbCMvwl0f +n[!YOn Y9T$Eyc8=ScƠLf845TY(>{=@ I2`''Ln;X"rrtP- Uxm`R+I,ώH1?)n=xmiW2*]ג &"p ]tfHK;gڼg5z5O/%Zs]a%05f/I\kDy0έZ>6.V-QJZӛ 6⻚0'ͦʅ@h_;Z,y֖-3HZ$&#MBD(VCBXK\ ٝ,obERP-b.܉)$ FԵ +-c_Ob +rn41CDa"b?ǡ #?eRDV:݊LrMh9,&_A Er&8ӯQ?w\]1ĭJU8Yn)E<rLnu1ej!%ch)o GDuU>9;"^G,h){cnQV2M:?i1AmdKv!7gl,A@(x scEXGc ?[#7旨 @w/2PA +t(&%*3lR䥦p&8Hy4V_H)lP]y \J|)_冪-H7ف:I0G\ ̝m ~~W_Bm@aϲ]DGNоEO"#k ;=qE٭:^зugFS9gvn++4Adx:`20(i?QD"#aMa[4Q7 $|2,$ތ38b 2jE"#O=T07Zyp0_$:a .46b?]TX=v [Wkܬu u=$׺7i+f|JKwZŕ*\sm%3no]{,|x A)k4\qI۳`^wJNrq2Zǭ*\`gSL$Hۢ7*<(!3ܚg9 -E +_:) km%L@7C*@k/jw*[zt4%A^BbrtNFm,3B)V(o((ƎΛ9,N@0S ,`T3X7_bsua="auR؛Q+1f 16Ej6xcb>@+vl:; 0L8'6hmiJs0BuD/N,z|W-$/6ݪf dT<UDd'BSMiMNvC smkt3glm7PSxV\Jshɮ !_/r0 Aq\f kuW7"ℌdR{e{ϷmA~E&\:kyip Y1bb'*Tp1yC D`6\G z>+ط'Yv{bQNWJHxfRk9V= WI!ga0JL-/ TSY _XW0^iz1)3|Smg!+ `!q;yBpEUE 9u.3nǸ1޷[d nJFъHe%҅oaV>h[JC#r/CW| H/4< J`X\cpY#@N"gkiI+N}%x.Odhy{Z=_1) έ`楋lV xEUc˸˗DI|JXimaY$v+ &GA7'"XQͩJgIH2#0O=9sͦAhrEr u1%",Q\Q"Kf{`BԻ 2ZC@)iZ$a4ѝ$;$Ҩ>]rح7H&? +n1,\K l^/Q|{iAz„ .%pO$i]2Um)U`9VЂ&Ǹ\3O/ ljK})CR\QrSRdcb6#r=/"/DߝAr\QM3  Kv7E(n5pn!:gx]AAC_l̻ &Q8tۡJUE ꪛ$ukJ;d=k/G8(άנHS<~iϐ3~z PW6meq8L&?KVɾb/f //"F9/4j'\8U^4+YKGv[&d;KڊW=UIA_JOi1>޽?:tW +H7- +9mo58 +S]$=R짖_m +":̂2zūSŘ2q^RwҶI:aG+[8tDaUe x:ԌB@PڈYfcr:eҎMY?3FRDŽ3k,SFf5O ehiEA"98 !9mSq#GD*#ץ$\*4GiL&) +lYP7Udm[Lz2b mRu?+=&}i#lLMX;7-fnP.0EMUJrUF<֠\L$IJ:yLqP~c;Sn*<=GudH4+Z?FM'ںa׹ +K /E ]7Ykt4&1Zڠd!HFWQg]8gR]\Oۇd[EQ"a|!rFLaMXAW7+^n>']%w״bBc(S-%LA]wPoJ!3B&Bh8/[!(9 'aqA@ۣs<簏#A׽t"k!Q176XDWo6ip5^^t|CZq'bY/d'-zfh<G?U 7I& :fM#b"qi + 4 ksߢp5@2]M+3.R9*W1~?(-uAiqC)H>z&_h6l\P ;BQ`{E|ZocTu좎bՠlXpԑ1agф (3J~=UtBc>> C"]݀Ng+_QUk/W65>bƽ E.i(*^hW#éRMҪ] دg;!dd7L]H$ylգ/ݥ +mA؟6Zyn:oAaߔaV!MR{^bwҚ;6NFxui8X1oGx,qzk*2T` 9s/ʉHms0[8'))O\ tD2Da.)Ѐd Z"`"d.mGDcT"XW,f5Kt?.p[4%Au ]+`)DC2f #O!X, Hp ɧ5yCDJ'5X^#As0$8NYi~s_F8~( +ؙChMt }"\ ,bdU\bB7S_˳<U*s/Ԋ[2@UO5Fb?w2{"'Saf+fbKOkB}yG&n]%^+bd>rWAYXMZȑb}T$*[@H.2Eߴ{Py&_fali5 x׸,i {‡@hبqa(.a}; +J # ٸ».64cɒѪu[w9r ;ٍ'ZD$5lSÀ0S@w +W : 5 1#RR`Əވ(9 +609GġVxt[Up5SO%;L)Yw{T c('$8LeV tFy9bYQ($c#S^兑SРt?P Q@\ĐA!>^:HHk;gqhq}\{ )B8V4qs%4g+[jyHAn / :4FPsGE6cOI-V-O|g_E]z*/\^uuUx>m$ +2bZE.@8 p'‡ 5<\/~ +v5-LULN +tUq`B\4ݰTmaCi,X% _JHC@0"ʨ:#qw#1ߙ酓OM$w|%ˍ.˙7wMd LC<$j:f5yH-g;qC^f_ ,[&#r'z lZC"@ԸUœG(ZM=+ĐLO* u3ef&(/dNJcXuQ}9lI-lteb`bdlLY?+$Tl 44_bDz ԊO)ƫ>5i NY.-?2A8$ww|a|Łv1l`H^P >x°q{=;1Ts!p^ ~ۜ K cg]&]_Ij䈧}Zz됙:խ @X@4+Ы' + YFLzLe| t)m($q7^eɳ#cRR)²#GnFfެ FZZrI1ZڵD` ^]VsYL]l켍#CMlDw?^7#U2!n@+E栁S4¤RvTexLa{同ܽ+,4(5Mjj:qԖd;mJ"E~Ttf"):#p +%ivJwDu"R:c'V2DmB֌Y3J'P('IwPDBuPDt0LFdݺ*qcFvFGXH,4zD2qAdC"!!? +@ǃ~YAC|ViB|wj]8Cfw9m;a4"dn{HfbkWo""Klbȥx`V"&I0$É`"Kf^NC$4bTu@ *Tx6Ҡ.AET6. .*Hh70u؈* xx`e}I9B z`2b|K\m2DO<H#a>s!v+ğxn6.C)Hyb͚QK֌AH(P:{gQDb085nQ4"=+k qA,5 qA qAvxIJ? +DUe؝ʪܝJ5j*MO)K ?RI n~=zC74z  X$ j6 tސ`\PrZ0EeF̎Pa b(1<`A(AAO0s$GK8B;i +@2bI!c uvFDةfPY@m\!9qD`{.;J;FqXrѬ^alS%٦\t>6逝?SB o;[F ;yb%eބa61l֓0ȚQZILĘX 1Ld-"E$vUbEѨ{ Yj ADvC\Bd7bϐ3$A3? +@ᣁƣ> Yy4ugDYeլfgı2, ưI<0 u1 ^!7+zϻ{7 *l\]O< U%:U8(5&D],|YBǤҦdy̋ V5A璤hZZPP 3ńC0a`Ld]VЯ `NV_;oZvHj`˜Db mĎsqn/"N4c'aa) p; ߓ9{É +F))ͤ6*͂ŠRs@86ɶ-A=q Ά様L` 8)OҗSz DN$qB vJ}b$ci#xeTMgtT}|)!R۸!!,M춳f&6h: 'zN 8!8-"*1d005wqXdYH dhXdk=S5i8ZE! &VC s>lFT= +CIs`q4k BڣQ= +b{͠8GAځOEפHaPY#ey^ 63By%z'NY08`!f,+lqu }|V]2 +Tl֩16nBnZz8ģMCo+cv6,k {wJFq͆/p&^Jѹj.=}V.l4:to&R\#jb]f 1beF0>P6+qX\hqu8p2OҨt&bG0|E2?UrwV+]Jo`VBEU ZI#)a]G28?8Cb$0/ 0@j?(#zjt 'Z,Xca$ +?u"8Tɰ}Bg_xZ(@'AKC!Y#p72,Y.LUDqp^IG+!Ui__7%ȴ>0S'lRf /BSjL)K =/VMJ\<&m'yF`'0c XBP!6a z8P%: +6N*ƑZq{j*C5Pm[c(VqsΣ) ,5@ao \ZFq/VYa& B\0$/0./Z +n͐vXKcFhVUI . @vAEt"Ӧ4)98);;;vRu+(\'i89烳iiިRo;{Dy9Hƙvg]6=r?8~^qǚiL)7QD=MO4{`L.sXql`<4ڧoOE*A*EH5K^Ge5V֫PH9э3}pQ)͓\{li~pAkf{pZs~nizݞ{ʹ dgE +VEg{f( H +u3kCܟפ^omi7SoƙNtiLirsNtL>ƙN}DAߟ\Ӯ{X|82ODuz(DQig =Gs`ꓣɷnzNyO7ǁF;L׭ю~T;zvo4MSyOy>M47Eƙ]띚~]oswQO}O[kߜPqr35Nui~O9i}Q~&Ͻqo~p4M4~(;?}Ns߻9L֟)J?8ߨG&SIv'9_2OƙP?KOnkOSoz~''8@=ߢ{I|W={3H;^FK]H!# +7u#_jFk `ȋᶧC-wL _/ Ee9#I#h4Ѵ`⎅KxА4/3~il)kxxX$Cᧉ x y-q/ "Cv YDt1aøm ݭ@Bw۸RiE@%^,E}0= m\ˋPFV#ۨ +qUuU~Ǝ;.kpx]Y"i5tjaZ .@r5țxU)_ TUd{w) u7ƈI) Jٓ" VUIA⪂ +ySWClE!WGQ!;cW-X*4~i>OܳH2x=&1Y8#YO(,53Vta-S-07AtY0Hm0dLd!?٨t6"hhf (G%tN:&N:F&,&$B`0 C)XDPI`ygA?>¥7A$`ژ>XdIĴZO;oV͈wuVnPFa_N#[EbVNTXtEɍD8\B!=TcNFX$ѷF ;aRyyz'u,~ WPI0ꆙFtt  8SƧՀIO1o|3(Dn(<+넰O'-HD[LDI>&oکs+wN$ kC/AP^-+Sj֯Bב ߩY~rRr"U`r}nBpd]pݭB]LQje,M$ceZkIJd sH/~~7fI-D:p.YE v7MsYH'˯Y6y{GK c AC,mSS`&c_O\_"-T&c xUe?]v'( iQNo$|eԿalMl$T1C3?IΆ7Fbh$uzv.-q`a_@4Lphk@ȼ~ZvZM0'|AMnuGUP( X,eB=E <{1<`4QQ4aB5$5{.|pMuu`W;;aBUL)Cs'\sq# s R}%0T +;+*(4U!F wݪs^J1<-Q# VQU3^ s,͟.V/"`^'bH !|cGMih߫v[Y dbM_IDn TzgB:92=;(A@zFT%)CA z9p~zBuZqv|5Ef@yD9"XDmk@X7B|=@x҆ M l'B/QH2Qzaf0Zg}6k"|nOyhea39ɭ݃<,8]޳ʓ#VoP ,/ +Py +䎍#㻳˂ M#1Jy>jd;DA][B6(PCm~Tjzj %T-navC$$~>YH +tn^C{(;(i0o4EC(E|1F.HJhD˱$ gs@J6Esivͷ^. 0'z=5gRjrYPti3܅ﺃ-[)U:-bW~OgӇZFנ9`1)DHE g+aud䦛I61]pƖd"MfԦv QO@EW/e0v9 GË]e vX.;GpAwϞ{>/ \gGϲ'8?h7YD36>thyVb1 `bs+'Mq" (faEp!36n*oR%yz +DK-hn Q2TW5:wO4lgqwC UZ4p +lE#vrbUaucZ.m&m#ZDi@nWKt!RE5F7-n+]N;|? +py|y:p Me5A2ecB1 AkS[#= +F./V7AiZνBp!}pQ +2NH#ƅ&nY@[ +\3W᢬[:y(ME.9G@j}vH?Mpb,-%mt@:៪:'?.SZKGBjx +Qc27JS: J{!#ѦQt}unrf^M}^jAIʚ˜8tݶ"j\9a @Q\cF`k|Xʔƪ T됻ߤ$b2!<`R[j`ڤ%g|:"/ǵKʙ]0AN:x tHUn'CkaL)ܲ52@BRʉ{ɓ,ߜ9D`z [4c1+e6}a'ʪl$i۸4ÓN'DS;cbS?GB LJ}"Ur0ۡrRd$VжsFAG{0W Ns% sH1,Xa_{9ghD>QW7` c1ƪJ-ޜkj^'~E\5|R )09b A+6c*OR{O+Fv f gp^R84DK',ʹfGp0_]Pig Kgb7Mm`_J\LR2M8G.u+m>)pLZ +G+>]o}@v^-WVej1\ge!G1JIZC(ǽQkם)bdtřubC9e9j +c}ji3i5 +QwǙK7ۅ +"ב6e0"-.W-3X$) 9Q%#,I.G#fU"#;FK(,8%7nh])SAXDP"6c$z7z s( +zM +!$A qDdSr*:D}qgr;NT_!Yz(Z^'ܸ<Dڠ 1V4m֪ٮ%M pPPMK*KrWe9B'WxYP1=F*Q Yf)S0{݇{22ur+W9sj.?nXgQB$ :^>4(߅C}"A9jLs5m(dt b4>) a33`Ey"*C3{<:Mm\kjWvņK"M7-!nR ֢/̍ # 9t~t0:?WGC~GD¥#b}ni[3 觞Q &*3O*u8A4#~V]V +Bke0eVhD!ZW,  +'{>^)naoCܿȾh xjE+li @0/`G_6._hljCƖ +qSY4O,So"5ur565ysd`v+ޕZuInkQlx+D5H:/cq;8r=Y:WLC /$TáDMtS<6+%Eo~]ۏ}c<:l(4t6 A8c,DX;+ss"I3mJdE?Ē;*p/ kAJH.()&[a䦱3WA=eommPM?L'8HV% 6"FdQŕZt1|p{ S +ppH!%YD$o}$N*şZa>5 mFoxu:yaLR^7gkzX>Iu5UIoWjaj396R&K_VVs* b5q$30K`YqO콤^CSg(ճᕯ|=ԇ@ZZ +\REXTQUd2ƭi݃:Yz2kF3"瞜>UZ:HFXԌw<_e2}P`gg6Xjo\mri{9qS5_-K!2yW˾D2*Բm/g7eveѶ.t, ޷_jx[e#qϲ/m4W2bmPAMϓZfְnj/';"m!bǼ;FRua;JRϷln?.OPE@MT7Ri3Ŷ\,1lSG.4L9oncO5QyЬkT'|*6AZ5\Ne[Tf>-*L#<Ҷ=9NveBLM4F5hmP;L5woBfK?Fiu†90i44eYg:y<!!G$HE3XjyUl`]$.U3>J& %ֻ'>bAßMkmקoԠ'mB^ZĻjė^JfdR#MQ%^gŴYğ ~;EP"Q%WbE;!T{|Z R΁נe%/vn7Qst7"" eFkMgF$[%07l(x%<,if{4$߸G[]B[ٖ/aK*#qD biQd7; U9tA@a鬳p.AaST$@t!p\˦ P\,pz$B#_wѼ24ԐK"=I1?{>fKB=ܿ0}R"=R5?&p5]+)!.V5v7G$[Cssjʌt2|;{mEtPz (>_$ҖX)sK KϾ@(+7 +\a-M\H W7*kB +mdN  +#j +l|qLVe1 ȃ>"QݛR9`monr(vWf \ yƾQ@ -GS cm~bP>6ThGI5rCZg㵁Z4d*x:\ 5jv"GD8,srS''puz:'gv܁ⷤ}FyiK?w郞=&m*bᯌ̙[R{̝?ێ֟I"!cqvc%Fy kρTZk;[Lq{"q h1T_'5} 5X}nB.}FZJvG վ 0 wSTr!x!m u퓭caW2+#/bh>.jevfӆdb !7Ѿ᫐VNU霑֏]|!>D cNڤp\2L$]>a;Z~\j5v@ ˡ0%痘}HYs3/1Wb"s|T摨dG2rGɈ&kPwB`4E `o`2]X To` j&c`v "U +6O*n6I6!7{'qH~w0m?гIڢ\g_hC(KjppdERk\RDHRy焁rű'tz'% nS1՘X!du&Y]A #E! `ZvV%?NZ 35Q<%Ewx܀[X$tpH{dJ8tN!D )D`qo<:Fשp" G +k:?R%BT*oVLh+ *2ɫ(Z8^``l$0{dG0qXQ|A梆0-*K m<0 ]H_VT|8$D vp { jMaξ:sJ4nUi,IpDw -Gz‹P-"ֆAG(=Tr#)4_*|\+ޢP4?&*_5"~\XE5)O(,Thn=$oG,%ʽO*el6p,bj 4 }3wP 9FJJC-\0v 6@SEw +D+̤(s.dGqNmv*w~̓d)=9} UmwP.> ~-Ki!ݺGJ\xN,:jp/|!3ooq*փ9q'fG_!g_~ٔ*ė;ow/Շ jޢBhu+Rq1߿&$ڝ5椈H/d)Ʊ:p9牚P(݆$<=ylRRb|df+tBATuj܄" ɐauŰB/xQ2G#"pl vh#%U8jRi"DTڶ[mEX֜UNUépvUA)̽胘Lg&UIڈ|8t+ 98>).MR %>ua'nhnG  +4 Pd̃1|Е!~NY1Nekb>ZN;L:+~ES#`#~:t`~J~=}څNJݲdWL4Z9>qvUl=] 1HyT! Ȭ7c2|ӖfZj7łuI/<*H +&T_КP] +-}}oNN(Kr4~C^C[|Ȱ wLn7ʻxqz"MҮy,7'qSs +̬oeԬ Q<Ѕ QF7h"sT7-+O~Q(KB4 g)J` PnXd/ +'֚ }I)eϒ?r#SyYR + +_93^Rt\F gQ";@զAosc<<&2PayF8 ?Ȇ +M6ڦ~ņIY"<7M~mԲ;ɾ 1}F3 H$}M(6\wCo H'ǜݱo0h^5a[RzהaIMߥi)N&[q~N :ᘕ2LW)F &_897jmB@i84+gGr34T :N~KZJ4*kW:jaI !7(mhhR78?վc&&uajEYmv%&Ewy1))4I\0e, ®/&3E.& u*E[m@7L4UuZV*I+Jǜ]P(XQYV8 kX\Hb, ȑpe!1>yQ,F + +тZNi0r'L +rgiSavo[({5nxZFaa^- 339Xok^W)}F4w:g!ۼ%lBm{~6r `&C߉Oh_؛.;0ߢ#l]MJuwnO̵d05H/4HN)87j.6pA!/PqXGu@{P# 'xU ҧqc%8 !LUǁ*OSz%o=RG$&wXLg36t,ңyTl/!1~.-&^"S;#՜\p] tS".O*"LJ-4 5pH(>8ӐQ/dɚ +Ot\pNAmLXy}&q}tFTd[k8uD_5VŶy)CN6(\oRX`1dcӚ&8Ud􈐌vC3$>[7A:\ނDw>&RiAM&V烞| Xj~]#@@30' =^1muS.98m9Mk&&X!r@]<`kP>: 1pbr*-~_` ;>7"V*<;d+oR'#($ЧG Z%&sDinT{svD +USETq,\3'H+s8Mґ /݅sN3hBfEuDu"wfP=Ә` *aH4 D 1wQEmj$ +`Cte'7Y~uzME`I7滑:Y7Xl\2a'uyO 6Q*/EenAQXQضuBXV~N9-\[xNJ:]b;t.zHC#F7\Jkۍf#2 +IDaE#MA-՘]h [+d1)q]H2`>ɀB6k˯'5޴³-@s'F>D{ 0,:cr5]Q$+@F|vY}m[MC{J|cksBL?V0Z$(2۞ FiV'CΩ%8.مQsD.N..'q l=fkq5D + >ހ7@rtP8#``!ə`YPi W*HO/Z !ǫG6 zrL*L V1ժk5a`_ߍWAP~krsQY˔&)S.yJ+VTM ?p<%h]̉]`}<ξeZw9߹h#e;0M%a:1a|!cqWvDM+d sv1 |CZgwy-*Nݹ?$  jm2PpŢwy%`<ɢ-Ƿ#I/sd6@ui˶GB\U)19N!󄴾jGqZS*z]0rW;|KK㻡J{]C)/ܙ,;bËyxM{sD~ɈV > Ybu*UEB^CFB9.˩n ʜ'{f O{?,}S0ٲߐp*FI.zh[nẄ́|50t)DH8Gu" +483j =$B9 +! rKZ%,,W¢ mUQt4~{͘.dr +FjT Fo䡇&0-U*Ǩ>Sl) +FTPIͥ|`k7ٗ +Z:΢ jc5Bj9>_)v!:h]!z|{2*?؍C=&1 &Q%&sbxl@&G~RVki<2)%q7/-.6PT)^spx;j +VG4 Idg!٥yy-}" 4{`ܔ$M ΣJG@rdI@pLnuBE'yT"g̰vZ+s<!.J^%vEB_jFڐZ& +n?]M<]\cwQ4׳_ݛ3j)$w¶ j›('#"K (z˶>NxM[!'I:;`Lޢ)a_R{M6I'8wd~R7tpy}c $]_M7$AۖYolB}taL)I9Ɨ%A};li\_ozݩ݇kj$a`$F1-0JS VMp:8=@=;8ACO* ;V"q~i`8fM~ p *8hg~  2}$e UH,H%h~pM.̊i:dqJ q17ƃANahGhcW$h#g[;_IWtgydqɈ8.NR43A3m`IJ: agv5'<3Ԋb A@ [#Wj[}VKKCZ[ x' zJ07ʡrwTɓPSL] mfzibD.te!( YR"_Pv^`_hXlJbZP R0b^GU7A2{4n^u`mY;‰e.ęmBN&oXc}2{"J ĒX_`4O5y +G7Z;GX3lSvf,h|͚snC| s"Eyt7r1Q𗲫#f~ .m*#Ȋ%['_M2#"穔4$Eԑs"{ (^f81v,B|4 `ư4IZjkn(hd_>*q +ˏ0y؅ -ͳڞd5cĝMI:w +ۀ$"U,3CmwOKNu%` pKx*~+c:!U w$e"s?'uw?摯%3KeBn/Bቴ0V?XHC l, a" +6"H'C{jsz5PZ8 fc8ԻC߈نk`:D?Z"d*%Gy/ǔd)^+VR]ԤB4fa+3^*䦠|f= +P#H1FHM,J &$^wJeZ  +Nu^g1BʩXL5jj.{cD?IsYm`v Ͱ<- :1- +Ra66>Ti8FimDYHBN;j7!Y#2E-[&J<2e^Y/t áP›q$u i +VS on#fʔ^\`{& ~0W.[u +_-kh* >;C"4lOg`qKC !j%|cb_NpXn>B4;򭘇6rv10% C, bӍjU)JS\ +20r懐/5Ac}&IFy&p>`UlG @:5&z3 0cdtoGz# OPy@#e`Dsbe8SjVpL߇4MVUS V #D y{Gkqtfn^fll[~WKs$&=+S$Vi)*T3 <赢;*ѱ }@4bwlQVw+dfoF9"q8Adn$}Čs5>eez9昍!srӽUQ\w2dJ"֯$fwG'T 5GIC"%FʵA;۸٨zU>bCILKGʌMcΟaCŻxN8N,dLDŽ(hB,<@yVOV[JF{w\1re֓]B30 Sy BW ,(\P +iCWCE1`! ?$cMhm626g6cdH TL#=H|iYJ Fc%);C,q1#^a'<͙Z$[E%%ٙJ&dc$v6Cl܇и0i<bd@hqk? 7Q5NFXW? ᔪ66S1HͽLKS֍h8e!U*p F&REuS\ +zym&s(-d~Xt"jKȴ5*:k&U\Rɠ5i̜UkPp=y;Trxj1{Yfa(Йf23= :]w; vM5t}:;  +DjurUk +ތՕ-;eC1G% $3 AVpPS6C:f sy(5X WODجln5ʆUFFԲ +BK67|x})ԾE ft}!# +eQ! ErY[)xD1vp+F氚ˇ+jGQ`,5/ѨSQ"!+CĚXiZ-LhpP!ٷe,C+&2{؍XfjBF3:NūɇX"Dq37XTղnj%)K(XA2EԸ)$-Δ#L,B!):D +m' P}64%U0YB%EdOeK˰/w,{\2#/O';5b5ppppp@,4`00A L Ab(`P,T` 0@ 8` b@蝴Uz(W`69! f8 nlD&Eƴf;|ۤ&F2',gb;繩3G?t#fg*5i\,} ]>]T ^N;Qũv#FN\UA'˙]Ew+lM*.Ƥ&vÕYǹ<Ҳy]aJlHGtdJnLnm>䃷}!'l!﭂=VQTJ1@2mT:A7 O6@K(3jW5o?{6؂#N~>%x+msoQ7ԫI$Lo^>lcjbPj$eyh˰E ZG"AG@rړ={BALg|9D_0+eհ NBLiXI~"G L_:4hV5a*^7$Ū>3t WN׈#˜2v C7/f7O*2XY ug85~ nhIT va*3jByܷ|6*lH>=A4_,~yQYOCVO˕M^H/IHu^ZyYJq&.)N4Qi:$,Cqh}x/κA:ˠLY zbq⍎vDx8;Dj@c9T8V gfߒSp:O -w /Ze@R!bfgQک?x~ -/kp~ M34P~޶L*&LX2GT;zN9RZӢA/L;&%DKa};mKp͞e<"b x +[ f+(ty$(Ddf9Jm"mTwPSѡU +D EU|> +1G#fdh6_)nM0L2i91ܒJ/8@fEYS.2}oΝC' zYZץEw +bGTˀ` jSdibl@!z;)W. &"+OXմPnhv [w`=Qfd:QW;LnVvMn0*瓦!+t +XSeV0lY<8`퉄5N<?% +(!q82lq.Sê<[e^@-Lj:hifKЛձJuNXB 5ld@}PJI/'e@`T9qb):U +M/؃,~XP245 + MhYAmb&!]s1BSOD7g.cP7} N +SKhLnzV `n eY'2\ibGkM>/qBaC4~r&J`[3{ gQwN`yfK4CK@6I#^[#IX 5|Mt*ifRzp]KCH9LCDЯ9͋7Q@ =`4??~_erqeEpzu#cP%8S.{Blf'` \ +DqKZb`7#k$D!Lb4F6WWF#O'i*DຐsP>@QMPDro+<"iA,4B@gB yPXГND:8Zd2j,,̧R>/J#U׌^%:R!Vs—dlH9<L1^g(WZe+q/b +fGHCw;AA8[{}K5Z *AzF#7[Oc~B,xה`mhPxm9Q3z+rӊ); h(H %iE簤a7Po OĜ#H᱌zp-)C-s1ӣB0T<,fNXz&.FqzW!, Kf,aHᡮ쮻E9WBCr;dcVT1(r>DvB9GpM@VꞴLOp b9՚kyP:&c % մyxۇnkP@ŋ:gXzg.MGʘ6eÈpe=l>_2xX{ a+`x]5E}q'n9TI_SX R4:ڹB )PT Erj)eAaMWkl2j +blag YT! ^C#&SU[l% +PuInZ_SWUFų/ׄm/҆av_O(Am: +(G!3f,f0jO]x%L3a +SʈnH%AHӧ=UM=@0 E#U01g(Z +~HR zhC= +9m'+.kk} +A'MȒɻ Bv4[(V˹&sg_Ou\y9K#v ڲU| Szc^T?>!0kx7ƳV*O{9x/QvRqh66snznոcŊJ.7*d3K*0 6~(k:=cYRs5lް' &>(X{ZY9Ye 7dY@q6@dž]rNt,yl2nAٟdx PO,5 DBfʎn'u=y}-Cx[ܢ=EmIBt&]6ER,YKz9Cr~SCc*yaQg/h(rH@Jо!F?C/N$?䆣 h9(bv侽j-}w|L=z9A@8>g_4E~WQ: Vֱ{( HߍchЎy{= GRS(/(G\ptN{oJDOBniY#&z +< (nY1gqC#p,pFćBYL LbZs4,Mð 0ExWdŘ{ E& +endstream endobj 30 0 obj <> endobj 46 0 obj [/View/Design] endobj 47 0 obj <>>> endobj 39 0 obj <> endobj 38 0 obj [/ICCBased 48 0 R] endobj 48 0 obj <>stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= @@ -1403,58 +1443,65 @@ N'  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km -endstream endobj 42 0 obj <>stream +endstream endobj 44 0 obj <>stream +HTKn0 HJmݠޢ0Y$w CYi(Pt€!ψ/6oBo6ʕ_g.Uhn;TvKP +J*\fڟRR9{̵6zLʥTzq`ӄ~G4BL8;.ƭ +36pۮC#D{(׎w9zvb(K[ˉU欆]#`7+R >XRoE( )AK[`22W |c#~ RLmVr.>ۖ*xZDh WUQ -nH!J$mt*84|L`ǡ˘7C#zRk=4ª@LU?v) |ε%0E;uw3>E +endstream endobj 43 0 obj <>stream HwVu6PprqV*2P04!] .J -Ww6PpV0г4D!݁jҋ -  Ps@ih(oU tI @}Q -endstream endobj 41 0 obj <>stream +Ww6PpV0г4D! ݁ҋ +\ 4T0\.D)ps"@U]`)_ +endstream endobj 42 0 obj <>stream HMN0>\ {l=[BB? ZtJȍYrXeޛXӟ'{ `3ppֳ9e9uKGݙrog:71Fxb*"39 gcJSnNPvѫW ,z]tMš n\ dCճąE9&trݭh9f({KvZI%/uTosuG݌P0xvbna }KykFHr g1Y;OދRO mUSFJ\_L[w.%uHHet(Nc1ì~L3kQ 5Hc| f+ }g"$PP4wL zV-խ~_?  -endstream endobj 40 0 obj <>stream +endstream endobj 41 0 obj <>stream HRn0 VV):E`1RS;%; O YLJ }3>ilże:sBw?H7%;9|`LCC9q5mi*pmP+`zS{ibkLʕ1~s&"G5+kOgtWq%\p# aᬩ%D]ULM>stream +endstream endobj 40 0 obj <>stream HUKn0 %o;-J g1-@#%$'(ƑD&)?<^݋ >|6?끣8^p"rݒ :mf%ybfnFT20>stream +endstream endobj 37 0 obj <>stream HTIn0 Z\=EC t98(N²492{aw#<<..dx~|8EhW@}虏>6$ vvS*BÕ>x sS,PdIO"4a_nbi xֹaWZYRNx[Wj*(C9%I*l51Ihk uHod׹9$3Նie#-_'>=S$SA:$MPk M.L ,Ps$gY,vC;B 9"\]>M+_h SNI[ih# NW< -endstream endobj 5 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 54.0 18.0]/Type/Page/PieceInfo<>>> endobj 22 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 20.0 20.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 24.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 24.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 51 0 obj <>stream +endstream endobj 5 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 54.0 18.0]/Type/Page/PieceInfo<>>> endobj 22 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 40.0 20.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 24.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 48.0 24.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 29.0 29.0]/Type/Page/PieceInfo<>>> endobj 53 0 obj <>stream HUI1 @ZZ5N$4ɢƼ pŒHH}zk>^{s!7]󏃧>χ{?^>Ev%j5ʐ2+nkX`O(vȣ@M 0^Azә? ݘ#*u{G枈"d{|x ҪUa訅KtLStJ('-PObȾ8:-CPN;B!I%"'XRhTx(4R6Y_}Y0jfCfvEtڜWjc0F 2-qZQEQD+:yf88\6wW4dZ- %٨0:T젨CvG$M0,kRi%+VR)UQTQEJQz#J6]A lАfrdTP^R [lנ͎20Obč+DCdeӲHpt&ORmghE!ћyn6sZK\o vԅ+TprѾw&qQ*p&(@&[6Pv1'%鋣ꧣ7C,zWý[u[d"ٗXt1ցͺ8 B6`6V﷕bfUllp4.Hg>stream +endstream endobj 52 0 obj <>stream Hn0 z R(:w(P]}ѦEv*Q'r׃{u>B,/n =8`sonw{U.c } 6N=&b|t{c|x S ̡Ў q|ldi,~iƼ2Ƅnu1v)N]ZW#$RdY;`MSslhʢK03K`84c ^,6 n 2 %LR5F "*Vr#+?L&w\K ԳRc[59|q R(2VY R8] !SԲ|8fNj+7&?w^KN>%%U`c ^OЕco(+ĢJ(RR)mIם6}Ӗ7a>ӯ+bv" -endstream endobj 49 0 obj <>stream +endstream endobj 51 0 obj <>stream HR 0Wd4WB(Izݤ=zh Omd`\JJ>stream -Hd -0 }@n:AYd)Moev#v@^מ)XܗBnz@z[kLr>) aMRP&J |o[]sTc!wC%* QQJ*X*# SEf dvӋwt-emSdeӧ=~uCPeh=& R| -endstream endobj 47 0 obj <>stream +endstream endobj 50 0 obj <>stream +HWˎ$5WkWiVpEZ%"_v"z#Ϊ[]tt4~vu}z5ݏ;~`g ~}@xv?^lBea8LY jwC: KT_ܬ8Vfw~bp+l(rDm7\ԧF9p/ǵ]>EquN`'Z' -EXq}ΩbA|xB\ڗ~L*UBmtk,eS3Qx-tޖeh:O4t[idxr +|,ӝ̎֞Can$Pi4rB)d0`]es50?NRĉt0>?nSM˓2 W|f==EF*$:HP8>stream HTKN0 @ڤq>R HC/Oڠ ijcy'O 8"%j^`YBGrBG`Ӱo;t9yVC*YdGAգ0I4-ah›9+i031#i75^X|bf0݄@ vTRV ɐ$F&oCTƒFH|q!y'HIRph ,t#OI*I#BV ;~*GatW?<))*2''pa(NҲˆ#5f46FkFޟ<c! SEUڊ *(;ϑv7'͏:W2 -endstream endobj 31 0 obj [30 0 R] endobj 52 0 obj <> endobj xref -0 53 +endstream endobj 31 0 obj [30 0 R] endobj 54 0 obj <> endobj xref +0 55 0000000004 65535 f 0000000016 00000 n 0000000147 00000 n -0000046667 00000 n +0000049377 00000 n 0000000000 00000 f -0000231959 00000 n +0000238245 00000 n 0000000000 00000 f 0000000000 00000 f -0000049608 00000 n -0000049680 00000 n -0000049875 00000 n -0000051310 00000 n -0000116899 00000 n -0000182488 00000 n +0000052402 00000 n +0000052474 00000 n +0000052669 00000 n +0000054149 00000 n +0000119738 00000 n +0000185327 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f @@ -1463,39 +1510,41 @@ endstream endobj 31 0 obj [30 0 R] endobj 52 0 obj <<8E8C77CF5C0DFE4FB12FBA33656602A6>]>> +<]>> startxref -236282 +243619 %%EOF diff --git a/datafiles/data/themes/default/graphics/preview/s_anchor.png b/datafiles/data/themes/default/graphics/preview/s_anchor.png index c29758047..876763f52 100644 Binary files a/datafiles/data/themes/default/graphics/preview/s_anchor.png and b/datafiles/data/themes/default/graphics/preview/s_anchor.png differ diff --git a/datafiles/data/themes/default/graphics/preview/s_anchor_solid.png b/datafiles/data/themes/default/graphics/preview/s_anchor_solid.png new file mode 100644 index 000000000..d9f2f8769 Binary files /dev/null and b/datafiles/data/themes/default/graphics/preview/s_anchor_solid.png differ diff --git a/datafiles/data/themes/default/graphics/widget/A9Rwvus4g_1fk5bwb_iqs.tmp b/datafiles/data/themes/default/graphics/widget/A9Rwvus4g_1fk5bwb_iqs.tmp deleted file mode 100644 index 2b0e93099..000000000 --- a/datafiles/data/themes/default/graphics/widget/A9Rwvus4g_1fk5bwb_iqs.tmp +++ /dev/null @@ -1,1314 +0,0 @@ -%PDF-1.6 % -1 0 obj <>/OCGs[32 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/vnd.adobe.illustrator - - - graphic - - - Adobe Illustrator 27.0 (Windows) - 2022-11-17T10:21:46+07:00 - 2022-11-26T09:52:29+07:00 - 2022-11-26T09:52:29+07:00 - - - - 256 - 172 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgArAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A5R5o80a5q2uXV/f3TTXM zcndt+u9BWtFFaADYDMnkxSj9LXP+/8A9X9MbSuXVLtuk1foH9MbQzjUfzF82zeRLDTZL+R4Lecr FyPKisvLia/a4kfDX7INBhqt1YkfNeuA0N6Qfkn9MbVoebNbJoL01+Sf0xtWZeQPP3myxTVha37x mS1kUstFPxKRUUp8S9VbqDjV81Ydbz69ql6Y7US3d3MS/CNTI57k9CfmchPIIiyaDPHjlM1EWUx/ wz59/wCrZef8iT/TKfzmL+cHI/I5/wCZL5Jeb3XdL1JUmMtpe27qeLAxyIw3B6Bh4g5dGYkLBsOP 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 - - - - default - uuid:65E6390686CF11DBA6E2D887CEACB407 - xmp.did:8cccdf3a-626a-814a-8dc7-d5617082f39e - uuid:ea8e4e35-1486-41b1-82a5-da7f8cb3680c - - xmp.iid:0bde4bdc-b9fd-8744-bc99-3de2f0314167 - xmp.did:0bde4bdc-b9fd-8744-bc99-3de2f0314167 - uuid:65E6390686CF11DBA6E2D887CEACB407 - default - - - - - saved - xmp.iid:1ea4040c-1446-8a4b-976b-0ee7993344e6 - 2022-01-06T09:56:31+07:00 - Adobe Illustrator 26.0 (Windows) - / - - - saved - xmp.iid:8cccdf3a-626a-814a-8dc7-d5617082f39e - 2022-11-17T10:21:46+07:00 - Adobe Illustrator 27.0 (Windows) - / - - - - Web - Document - Adobe Illustrator - 1 - True - False - - 64.000000 - 16.000000 - Pixels - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - Pixel composer default - 1 - - - - blue_dkblack - PROCESS - 100.000000 - RGB - 25 - 25 - 37 - - - blue_mdblack - PROCESS - 100.000000 - RGB - 30 - 30 - 44 - - - blue_black - PROCESS - 100.000000 - RGB - 39 - 39 - 54 - - - blue_dkgrey - PROCESS - 100.000000 - RGB - 59 - 59 - 78 - - - blue_grey - PROCESS - 100.000000 - RGB - 109 - 109 - 129 - - - blue_ltgrey - PROCESS - 100.000000 - RGB - 126 - 126 - 143 - - - blue_white - PROCESS - 100.000000 - RGB - 214 - 214 - 232 - - - cyan - PROCESS - 100.000000 - RGB - 136 - 255 - 233 - - - yellow - PROCESS - 100.000000 - RGB - 255 - 228 - 120 - - - orange - PROCESS - 100.000000 - RGB - 255 - 145 - 102 - - - orange_light - PROCESS - 100.000000 - RGB - 255 - 194 - 146 - - - red - PROCESS - 100.000000 - RGB - 235 - 0 - 75 - - - pink - PROCESS - 100.000000 - RGB - 235 - 0 - 183 - - - purple - PROCESS - 100.000000 - RGB - 146 - 0 - 212 - - - lime_dark - PROCESS - 100.000000 - RGB - 94 - 153 - 56 - - - lime - PROCESS - 100.000000 - RGB - 143 - 222 - 93 - - - lime_light - PROCESS - 100.000000 - RGB - 208 - 255 - 178 - - - black - PROCESS - 100.000000 - RGB - 0 - 0 - 0 - - - white - PROCESS - 100.000000 - RGB - 255 - 255 - 255 - - - - - - - Adobe PDF library 16.07 - - - - - - - - - - - - - - - - - - - - - - - - - -endstream endobj 3 0 obj <> endobj 34 0 obj <> endobj 5 0 obj <>>>/Thumb 172 0 R/TrimBox[0.0 0.0 64.0 16.0]/Type/Page/PieceInfo<>>> endobj 169 0 obj <>stream -H10 ݧjq@dByI?(:;x oQqϥʊ,$?uO~hGLMBu -D5kO 4 J霑f6g49Z -endstream endobj 170 0 obj <> endobj 172 0 obj <>stream -8;Xp,*>JPW(]\SI%<2~> -endstream endobj 173 0 obj <> endobj 175 0 obj <> endobj 176 0 obj <>stream -%!PS-Adobe-3.0 -%%Creator: Adobe Illustrator(R) 24.0 -%%AI8_CreatorVersion: 27.0.1 -%%For: (Makham) () -%%Title: (graphic.ai) -%%CreationDate: 11/26/2022 9:52 AM -%%Canvassize: 16383 -%%BoundingBox: 0 -101 151 0 -%%HiResBoundingBox: 0 -101 151 0 -%%DocumentProcessColors: Cyan Magenta Yellow Black -%AI5_FileFormat 14.0 -%AI12_BuildNumber: 620 -%AI3_ColorUsage: Color -%AI7_ImageSettings: 0 -%%RGBProcessColor: 0 0 0 ([Registration]) -%%+ 0 0 0 (black) -%%+ 0.152941182255745 0.152941182255745 0.211764708161354 (blue_black) -%%+ 0.098039217293262 0.098039217293262 0.14509804546833 (blue_dkblack) -%%+ 0.23137255012989 0.23137255012989 0.30588236451149 (blue_dkgrey) -%%+ 0.427450984716415 0.427450984716415 0.505882382392883 (blue_grey) -%%+ 0.494117647409439 0.494117647409439 0.560784339904785 (blue_ltgrey) -%%+ 0.117647059261799 0.117647059261799 0.172549024224281 (blue_mdblack) -%%+ 0.839215695858002 0.839215695858002 0.909803926944733 (blue_white) -%%+ 0.533333361148834 1 0.91372549533844 (cyan) -%%+ 0.560784339904785 0.87058824300766 0.364705890417099 (lime) -%%+ 0.368627458810806 0.600000023841858 0.219607844948769 (lime_dark) -%%+ 0.815686285495758 1 0.69803923368454 (lime_light) -%%+ 1 0.5686274766922 0.400000005960465 (orange) -%%+ 1 0.760784327983856 0.572549045085907 (orange_light) -%%+ 0.921568632125855 0 0.717647075653076 (pink) -%%+ 0.572549045085907 0 0.831372559070587 (purple) -%%+ 0.921568632125855 0 0.294117659330368 (red) -%%+ 1 1 1 (white) -%%+ 1 0.894117653369904 0.470588237047195 (yellow) -%AI3_Cropmarks: 0 -16 64 0 -%AI3_TemplateBox: 8.5 -8.5 8.5 -8.5 -%AI3_TileBox: -364 -314 428 298 -%AI3_DocumentPreview: None -%AI5_ArtSize: 14400 14400 -%AI5_RulerUnits: 6 -%AI24_LargeCanvasScale: 1 -%AI9_ColorModel: 1 -%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 1 -%AI17_Begin_Content_if_version_gt:24 4 -%AI10_OpenToVie: -31.1176470588252 40.4705882352964 5.66666666666667 0 8256.08823529412 8225.38235294118 1189 924 18 0 0 314 121 0 0 0 1 1 0 1 1 0 1 -%AI17_Alternate_Content -%AI9_OpenToView: -31.1176470588252 40.4705882352964 5.66666666666667 1189 924 18 0 0 314 121 0 0 0 1 1 0 1 1 0 1 -%AI17_End_Versioned_Content -%AI5_OpenViewLayers: 7 -%AI17_Begin_Content_if_version_gt:24 4 -%AI17_Alternate_Content -%AI17_End_Versioned_Content -%%PageOrigin:-392 -308 -%AI7_GridSettings: 72 8 72 8 1 0 0 0 0 0.5 0.5 0.5 -%AI9_Flatten: 1 -%AI12_CMSettings: 00.MS -%%EndComments - -endstream endobj 177 0 obj <>stream -%AI24_ZStandard_Data(/X<NF +l -mf)O̱8xt4Wn΋I*7t U9of%[yZ흼)f2AzyAQxDv'ZhfvJP/-jFNHe,#?jgvS/9$qiCgG n#ѲQI~Au$'v+:q3#Asm7)"m&`ZL֦jfT&mwZRk:v7 YGMG,R( ^̒BuI"OF3U/*pdvTAc^%d4΃b7N6hErVJ6\8fEgwݝ'EvRl_72nNV'WLGj~w%X4Eh|}#Y4.J 0}:DSޥLґ+7]ܝ#GzMh$F5,6J:+7 C Y=镹,AC).hieT jٸu~ϦN^3]#mqkbͰİQ-4dI9Bհ,ѯpDGR6H'%D KzL*i||BHG'zN+҉$.qgwu/!_MVFza$Kq!g#؜3eL'Uh$X^ࠂ8`pd  48p#„ uPHE - 8`A0Tc:1&!3 1A $H@q3"۝rἪS}ČFݙ$ S|*"4L}ISs}=P]>ѠpxxOaiJUU'f8FU @eO4(a'@b40 -ڨڐ^kec|]1.JILJyl25i77̅¡!@uX8( "A ua"D"qhX`H<[C9 5<(x6Nuِtȇu+'D%,&2H4LCaР5(/â`tC|CaX`0R,0( CCb]I*FcCa8vRHBZ,0z J<8,p?S!QWFr`iHVE-0!\`X`Cj:b!q۪HC"yyJ>:☘p S\C +_.5X¬P TD nn `+jX`4<8,CC"V JPxW!?ǟo!!ȆLd"311NJ.P #ѐ8p8%wgGכ[m[`Hjʁ7b0 -$@âaa TPAxX4=},iW$̨sࠂaDCBX$ ih5T5!ސhhhP4,FQ)Ja -+NT\P4(AE-n\|X4,a:C9 a@`~|ȇ?$1C-NYzC]`J\Y4*";"q6ՙ,0gۼP&KXڙͬ6P(E5+ eUE5@JPL FE. MbjNa0|rpn<,0 ` 4 3Б B$\qA 0x@AF[X - T`l!h -D6@BD -T@! -& AT`` F -HPA! > -&a D0BÀ!*DHxa$@x -$< <&TÐ@!B*@D` -% XX00"(<@x d  -T$00H -*@D` `H "LAF`! *H@a&D# A -d0! -! *H@ - $8TPC 3P8 *<s^@ P@D&P A $8HQ!Ba0x#[bT9r3ddl`\, !bp0atA  8 ! - d]S4ԥ5bU*{,I AtRX!5<ާ OINl -e$1h&fvEJ:gj1W],]0OԂx$X,$Jbd.9ݏjn -ﱓfx^f'Gk#J\Ql]ndP($MT\4já4H [R*[b [>֕wy3xMl˺\4cBhN 9xz۟_21f~'XJAYnvb1zIQMٻjlΙI;A$"o Zd֔R]_7U2zWg6 <4HյEs*Ŋ+fO[̄ ~V32|2FK?*&qhTSǜC ZxJ8F#q3}w#`G۳XfB3*W2+4dt+Q;uis1*݇^BΪi+U8d_g$6隦ο[U QZ!h(Q{!sЍU]^9%G7 y[gdtZ4XV(.据屢gݞ,:/D3;[/RqB j橍E>` Va F˔eFYդ2 +m\'L\=?2A%щjvUZTEKeaΦ2y!BNn4GU*šB*̤&!NF 3R+ˌn*2*vtWM(~ /Ҽl?+KX)SyB%amfc\Yq[Fj߭c"ީI]2͓4Gr:{VP7a)!wYצ4g3+9o毴Ć^ ufQmW+S(cШvPQ;&C;,y8fАogq#ɩin?X:,#6H̦j,\9vwv&=FMً辳IK%H7eOt2Ju+}ʟ:%4:CVAKLjҸ]VNg"LYv~LrfίB̧5֒yteݨi9|{eA[ڕO9&˔-,u9[yt߱uU+GJ-$yKAƲh>ObN񎮰# -dmiCsY##$AiI)kNIͷGn:|i?g.>){V',%,L:pBTscc~kJ|=!S"xu _BG]riy@~U?z'>j(vc;|C"㡽*84M'3GV:jWγ) p$ebM82C7/؎ˣ~^\^ɧg̈́5Œf Ŷ:U;OJXɼ_9֓y|,*2<//H8T+p;~[af('*B{c ;;ph.}+Lh~SDuIޑƇνZ=Kl{ XQ_ooA4abǷ |$X:=q| -B?ukFXL)8eeVH5bo%g$4 DsZT>c[ҨXne~&ɳxJMyȲi*fӌX)rfOo?we5.XdSy! xUٲlJ% -4_ߍo.) ̐NЅtv8!pM m&$E9R>W%(OQd8.If1kFr2"W2+lD"±Ƙű1Xypj,OW0V%Ŭ*}z_qdƌ+d~TXg6Thj$e65=yL -{-URv""i k*3n)3Jkn[IuFijXGfQDcJ!12CF4_,1iu>|͗8_I ݺ~KMgӵFM_8χeD, <Α^qT AظG;ѹ{q$3SjrhðyfL˪gv#uz#σ35?W9eMi'ozB6jlBeHF;vu-ɺl"?{U^fī1͇ -sgT+KLC2&tW"M^>ηHNaos4ʺ QV -;h5=w+4|NDqO߅e,*ŦzOz(kaVGsȇ'!+-cz%ʬZkYem'i K:z~._Eu,_wR]15d?(ǧilNvt3t2-uY - d)3ѵZ686N^eEa/IS쇕cL!M -+L<ۜA<۱=Sa٧sBtY)/4˒?[up9BGɏ2h"K{ sUhhT`>h63%e3I\vLh1n~q/O6\vH>'9W:"] ˆeD/?sI-Mtb휵;I3T/U'Ɉy9R_;4/73ΜМV׸yX'J;5 CH)EYu'~Mݛ?iTki㝴:hlkSܐvVx~i#S.$*1!QI,{oJ$Ee\MReE?N.C4lY^gg'YK2B4<{$ըam -}IWeo5'4DnPlNh&I=''tu9ɲQa->OXVX6C)^/#&n+ʊH 5T$ ;wV67]-69WG4phm$FȮv: $ˮgYY]lI>2Yܡ]T&Eɘ>wU5C_vA3 TM4)de؊4r -"iJMd{ nj' ֨D*LIR L eUltgTA#LNnœlJΕ' .h1KmJ|ve]JZgԴI<$sf4I:&IXG=:'= Q6'WV7?G1&0he5sx w*ęAɶ5Gꙍڴh}Z:aL^3_w94夫(6M_].Wjgv*[_5[}ɪoC7q|Ve߸4.7&x-olW?+ݦ:=ac>-[y㬜BGVyģt^ҿӕwӺg㡣KG ?&릳 jʕ,I8jivMt&Mw_Ne_HmW k]s)Gl^gmb5[ԈiƬG-&0-mU2TD]UJwi͜VuYJNFi<(Q>4gMmݙN;b~)7cujUֺjiHݠToHt7[V}f6)՝8.WO)U7=V3$on,ӯ5G~(grw4hvh +fTXJ7nju)7B8+#+- |e631 _x4Ohz#Iݰ% IxIq5qNjW9wCG;ڕZ J|.7jϧ?E =xfiUs8T]t'lư$qM+CqQ\h6lf;4Mb]:βPLyןWhr6WqFF,6[EM2y?CY -~ƲniH?nlΠ%9Uc#6$8dLlQR0KCə#gWuoV&Pr)zUv=זfVM|*m: 9?f؝wdY=r54Ex $88(L@+ H@*|   x#  -" (DL Ù*+UU9VR5eQ~+: -/GQQ#< *J$3ǒ$ɡX1ǒ"N ^[u1kg<6r)6!9YnYY;vbĢ;O J]N~FH(E4Ho$F̒ nѵVCy]4(x|oš^4^V\+*X,6ˉN~')={3phea  Mdjkkp.Bt0k -[EүV ;K*~)NKXZ'yxp.{Fwv2}^HBWuV<,),L̓LRfd'φrR̳h?nJnNrjĎϛtsJ9q'iTw5mA$cι&54IkMN!b+# :K)6ՠ}]3D )GWV*1dLȤ '7tjXnZ5w*IOLJN)<؂|Px"G#yQr9B?6Ci8964ةkfy OOlƒpz$:V9F24+V3$ˑz$rIwvޞ{o!Jowq&&irmȱ\%Gxrdb˕r;m3Ԓ22IBfw"J!֮%9/XBI#,QO"8#6xH'zXjl]cܳ+fIiB.7Hch_/=EHӻ⸎2,To΅mL4^4gR"[h~F/oE6|F<,=5]ZCfϬyOҲЈmf͢xH{CB*mTr5KI ;QY'Gf5ۆҡ֡;<6S,_6a݈W6ة9G8^7F̄9YU ;T&J}j|r%ꂥ:SDh#L"J?ubsU+GEcBvXH_y!W9+^!ץfsRV[E`d:Aː54!א1Y5䷟q޿OCM@\5d,>ܽ, -fҐ.אo!Y8ɐ12t1<`C:C@eEFra&٤D6<5LeDgqK`Jdm{'?XC -U"kID%)W`$r+1!H7"ofqY0"wC8f՝ELA},sԣ@k,zxujxA/h SKnlXlkOћt9eYf8#_FpZr#<*.1dJܭ:%iOlIA@'72 o B둲@kPrK HYqXI)ax)ddC.RxGn:[ #fg H9#;͔F,dOcEMte!4m \2eHB!* tت|b2Ii,.2-eo pStV7?SxA0y⌣0wU*%͍I +\̴^ꑼŊn) xahFe Y:j|lnVQơ֖>{Eh.of[t&Ӹ^ *#=]g|;g!2 x~[$=t4߅*g!N fֲϐsb -/B6*4dh"ZFd&HDfyED9AD - -qtXSRwƲvz%& {5YNg)(|e r4[._V2-t}!1JݱaNN{7Z ǧջpcT|~D%P4Y!}l !Hd,2BP'2пnIgbrY@JP֗sBfk|*MR0EP|Ԍ/n1H}GBg ِ#_R$5XIfl`W -VRgc XR[M ^}̚^*APse%UP!y(v̯G`ZVv^FAn-0^kVOO-یճGe5'r-k7jc7#۵o -El[V.;۱ږo`mƽo8IB.'r-UX\ wV)}vUD<%w )]if%~h$go+@vsz8٠8pQVa>s -x8zGz,d#bɁG}QXs'yxfd)VJL@L!r7x;ZLȤ+7[q_?@/ -|Zq~]lnwOAZF%8iݻƗ4$e"}Xw1:HiZ)TnXWS| -*};Us2EQLϡq n-u#@=<{*FqB=r Ou0p87bVeXbMvoHJMjkZ_Xd9 -@ΣFÜ62jfĿR@DծW@\ikOw$Q/to-΁&iێR~ѵ"]vv]~+\VưodF)pn~?.}_9fyW]c$쟀ߙ}kŖM!r}tpjc@h8+f>!cA}ӽNM}7@w[4u7tG:(Sk \ĀohHoYAĀKFU38c mC? ng~ HxV‰Ddw KHYJ3]fM72Bvx/emDֺpިYl-$n{ÔyW/&kdV#&QG]ti]bѬ 3,ߔ'$x# q&>mp ZLqGoo6Bx[Y JQ) V\hā#쮤?0SSuU$ZwQQD~8!o"|Y+dJ8J-qd`GYLZIsI&͎7[F&}>IDsZF.Hf%↥աxշjFz5<׆%+X*cj7H<ܮas# a1sk}ј#G5lqoe$[;}ǃŭ/9J]/)ܫ iǁAnR `a}貭AV=sIi7(U7'YGw rKϲG1q^ot!t7DpyuU --vft7^ѩk8Mudk:M<[ -N6duHնN[/u (z,a8z@=$vZmTYG~ͺeÕxsf+vrS;C -l=b˾upp0FXZn >CCC%]9y ._#tyghe^|4ͣpui9?By" fլՆ +>mpb8>~U\.q>O__o2z IOKd=C1kSk}`֋g6[G?1JwoZ3ڞ}Bo9HWb?SN|voiSW[b8mނ2[$~^t`ؽT*'Xſ\bF-V -))I/k|Cd6?= ;?ӷ ,+i֏Ү{2f= -ٻ"RYJF}'tyD?!)AUyMd Ofq׼6YEo`K 3G*uLUcXsԑAe9=d8rjBZx2{g%F -nB_ FB7Sȝֱ UFP&q 6Oޙ~?jB3˳C ?Sx dag+nbKf/?QC_L Ȱn@Rmƴ5:.goD(pB HE -@V0ld -"fźR_AnE @/ #CDPQ -Pxb@ۙ(% [/F)i3bLL^!c104DusH.ӤԳ@`!XJ0<a4_˱0$9VJ2a-0S wSGIub+p: P 8lE;-Hc^f\Ao>\?%tѓh5w\5ladكzVBJŧt2=@dMC~5RS2uD2k0y0ϋĐ℩Iن*qag&FF.*JJ9k\HsܢV+aox&߈QcQ@zc -㡼΂C0oeՅ}'pdNNƱ7: S4 -|MqUCO _anḎ($Drɺc.#24{׿74mʶivB 0\p\˕h1Sx/y@o$<qW:%ܨ"p‚ tNYj(.jO \O*}ෑ[0;z T q!{ “$Н^{5īH*d֦cDZLp@LY1 -GCvٍTy \#ET\]P[^U ocb$$TPS {_4M\\ ªݡbi$7@XK[:x{+MAvJ@j"`S]a?6ʕ߲V*0|I@s[dXJ`6V@O5}O+9 fYmhd6#阕o[L?C5 -Q3̛԰=?KE.O BEt4( t*FJ -H'N5:X$'6唤ukJE{cBcfZm7z)wE Y,Ag9'X)G+%-D7,1j[Rr.Veu ep'3]_szkFAc9/h}s.m5ګ %Rd?aPjQs}Sh>-̈́ J/`ѩ@h/1+fhnr+؃SbO? p)^q|3$hWd@ޒgzMXV <*]98o^ -H]n$'o~pWC@QXS^,X- - $΁TvI)O))ݲ{M}IpXSՃt5 $ߴJ[vrfY|{{xU{>XZ֒gbEPۜepP,wYG0{l3(ڕ´7 -3^A0;<=\C9l&&Pʍ̗\ -Р=8n1/a AʡisR "L$XiS ~F(ԹU8#[zX?*kW|&秡eԐK-[#rL񚧶+HœKVQp^Knj2?:W 8?Vyhxo}79qh/Р ICrxݴL_W&omLP+r^c^㽧E m2AE`4vhݳz.b ZʄiUxޯ@f(8Ƀqlx?Q6hn -xeB\sx` hwP#Fg{$@W,!>ٰ(iB[xXq~So~m\/y(c!^y2L@41"96ǷuR9G}܎5d VsxkQÛ5Vvc3R}/_/?c؇+v.fw@7T,FFUL;RD=W#81,y軕s^#l#1$**L:¬zvPBUjb}==7yEng}0%))V@(c˯ElV_ZN׷^g+g‚fH.|(nIn6 c͊Dh-Fpy1ox2npLxY!F$bw:ds}߅"۽GWJhh뮙 9@i1FktClSDBWqЌ)3|JiH[b aJ0a'B)d1zci\I< _:{ -9O -[F9`3* HỶ^CŠsQ+vaS,/"W(wwy,-ufHLK`hBi V\ЕЧ2a;͊܃ #( ?w[z۠,.]Jz5;rpW$qM1t۴!v#Q_v -4F#Q¯IrvȝGv>.nj."MB(O)bs8@S*fRr뚈T։ -yUEh/] -:I ٣ ]e峄 6_E3'gQ`ohjv,%)V\$UvxXԇ(UCR[ "Xs 6L?q[(;/1]`_zs[4#xdφ #|-~.,!YvG}i|u}i .[8"EjnĐ~P}64&OvJ D@0ir47K5+6hK$ЇKLWz?HJرʮW94%pV o>6BF*Atsje"aqpU ϠM w5 xda?:~ TQ_&-H -93'5"@Aj3e;v+Q^oLsk tn7%aPoot=g0{S!v:H?+ yuLa ޶4${B~4G]nLk(+Mb'$DZu*uYY  ?¨}Xgu֘h&]%KG3d9%[?PRw>pҴ8 s?uLJzf$vCٚw=6O)f:n - !0rOn:qBfO P|O0m6c͏2bТ4C S(\r"mO;c[%GT]Y3Zot-:qnZ7~Df77'X r"|qoMOPP#l0Ԅbdgb:K4*O]C|4Jg`~ 8@mA`"zI  T;>vp`:m?I5e7YJH{㊸ulp-ώfK.Df\-1R  \5֙)q{9^}u:2Z~K1%xɴ3}q_"$^ȹ`',;#^:Cgo1۴@ZyqpdX)4X2jfhsoaIOG! PE!U*i!`bgIiPI+:CFD_ G#ͬe'~]oӼ^ds45y4:\E_iuGO -qUwrN -|*} NK)*ĴBͩ&f永=0[w}g;ЄqD\ "yNz*?,i7hH v"_,E e7ßc9ȘgQq}7ů87?ygcMṯ$%Urھ[r]}m;}gq!{w0_1•P[`BǗ1Lȣ¯]MV"gy:%(Rd>J$!ӛ@Ɋa.dƖ Gbf::Gil ~^4z!4Nu7 -Qw5uiLUeߙ L:F<3ѿ4PCsꪌE1K[Z5Ài`e@\')tGl7vÇW[m"/OB}:fUkec!f&#R -}lo -47= i -.{{dA]ά]%,b+6yZab};0/],%wJ1L џty B^">DR$<1 ЧBPDrHWO:cSn*pڴs5)N2uX-.!;{wD:3lfB?t쥬[[ef7"k9,c?C Iuй헢PL!f9%6(84]" -K-ΕDtN6e<'8y#d:Vw.:.v'N]@hzؓ3FjQCt5.Rؠ - V.ꖕ1f`Jj$xTR .lKT0 lQX ďPa %:^O^YhNF#C̈́}P@q=#nJ]vI9 lue@ h -ryyY.T|M"[.XLIB 2*g%gy`u#Z!9kgdR8? hwB'ze]K Ox<0K.#eYbղp̉S؝3т#2sg2LzϩLck=V0] LQ팢aR #%H7?E=5>_ݲ(Lzx&&)ٙCv"Ԍfǀ 4|Q~eg`rPg.$Jjցe ˂& H "aa y&emi<2y{\7N t9;y;a̍yzgDWqdx|wBQ>ıCbns+0mi!z -!JpC$4AmYMq&eXI `i@6Y9yL&ᗎ.Mɼ0m`om[Ms ĝDv6_m$n*«Ed-:VuN3tf݌&E*L%h~5hL5078vI^N -0cZYD⯶_|Jc>TJH2_8q4<Ϣ qJbՓmߕ5_;o8oXeیXKp.8|8 w@V  -+CTH0QCC[lu 1oSM6YW3Er 4NEx`C``DE:!ƑMsֵS+ԇ -~Lxq6D 4O~g k;i^;%f 5f.Zǀe^4Ed= ;ŠPYn~Q;'ֵ$c- 2#W|O Hᬌ{#?d|󷣲x+Q>|[89jp*>}-pWOF/ h  ioߒeWFB͝_FB6ң3E$05Vjy>y}$"l|. &ovSܶkSQ}4I4  er#YI94-M^4a C>]\B& }i] ׻<XylmY> .לl   xkw49PjP)C f0^f3jc ȏN~LsN|h p# -p@ b< + /3Jٚ٭^dN'! ªC^[jvqϺhݦ W(c#NӦ`a -+>w1g2n -~Czgϊu R>d$76C6L4V%%yl@$Cce0Jy+=h\B-'ҭ*4ٽU.JvA;{>VQzh_5z->;N1VI _tx@M >/Y2N4}_s4Q6`겡Š@ZXۆ4x\ kRomG*%{8Vy{hyZb@m:Z莥Kݡï[:H -_?1%h`pY`*2?w5X?e ?LKm6|AGpdJ^G 6!ᖹqFZ޷?J>ns?lsy/l)CW6[zrc|9] -%h+Xo TڶyɩQ$?8G&@> I2^V -fpsO;E?9QYMnmc`c+ؤ% 'K#l"IoE @ -5(x{E$4g jauF;qs^)9v|(49I-"OQ7)4VUFyhÔ̜2IץgI| )F{ubYmE<`>&1qmVsDsv7aE,>g̿nј\{Z=0Pi[a&}kL ; -SEff.i'4Za!!k]|dd@$UǶ,J: }uf|6PȾ:B߯Fɱo&Z!-bx:`h|G;Tt"CS㺚:ګQ6exHD֢i-x]ΦT[ˁ XOhg0͛{nyYu@6dPf$.0j"`v )-sF,Ⱥ>jiX4ȜBV*)Bvӭ*B'֙ܳ lOcn#ٵx*rB R{94D BL7Ðo(!|[hul_\gb53Vp< ]ٻkB"X!]CdHE:iHʫVX6*yj{-oKP8]q|C8Q!®M9OD#F[G hڕ9DQ:]2cm\v)W C"#V~si*jKNRq*3"Ydz( X=?*~DX^9 #g+R GE4T YbI1s;e(͈j&~5Hbj,ٜ{Ef3LLB8;PU֤L!/ KDĽY٭`\:O/~ XO/W+rvbHc3/Sr?S~TغsO U|.bRmN~*T#<[د h҆;EֳUo:G9ebnø6GR@)ETk8Ǝˉ4 -M!{%"YOʯ6+nz+a!i]vkPFʬP$s/v ,̭b   (AwIN_OWq$6XY,ݢ8]Hl#<H)jGb㰰fॖ^*J\xƵ$XbT6.rp?,!SKs"]幢 A[vɻ8[ #U"X#Th╰VO-f~QTN )V+ЇmAx|@8TtOVOѼBrD: `f9q3Ydb&Rt,|NE=qBckM_D}E|чPHSvh/ Mťˢ|,(0E>Sq;[t` -^a0NS'a,fˉ1;k BXɏykݠ)S (H>ߋl,2,hf3`ޙgtnhfNXiMNȽ: W;B+5),f{^c`^:lh l_l8hD-oqsi`-D6Ŋd7#echY9A(\a;GUp36 85o!9̩&g2tKpA!#zA'б/=Q`W =9@xry8skwW4sO( ˣ+NP'+-ީqf$묻1Ŏڹv. %StU" -{?a'C홤 Xz1^¦N9UVPi fwH_e6 .k -;)2_;:uD=+`(mv=0DdcD8bo^Up&SM*z.;9 5GܜWuqY-TQNK@{Gغb8lUK b`pl+%B"WXTnl}$nfOz u]= `L/2+qn%wU%W@2b*im.C:G(<9#B;]6j m|(}~&h7\6y Az{)_-lT>IÒ!_sh'!•e( -i<Q'̵~ѥ#kAiXxpw Hxl}y*%Oݪoe4 ?QDLgy`#G)@?*($ 5ЭV/dq1υ##!ʨ(DExE:8ТNx:OF_|;Q[&A˾%)Q{{T9/ֲnќtOpXΣ5Kn]T#&9_IhsFI7gWa1B{7)_V r 5G5C@ HB3] -̬(̢7gB6%/Q͹6,ysa+l!Ghڅ׍7qy܅x RUUvF6t!eQv1CTP-fɮdIl",=BShQ1V)o¸"= --T1,vBDk;P %+OHbQyB, .! ԣ e33& j)e(e 2bB1?BFDRͅVB8 .qbbޓc u-㭥Lf)W]bb )cފ"A/ (aHSd ŧ -*$?ktװw{myW@kqG 9 -څ<`!blF|"n0N}A̅: (ijq0X ^~ (J1.8ő wqq? -1cQ!i(\ |16$)XJYYxu>(hSnZGDf3krɸ4EmhevX/>{iN.3q {;)lqLkC:R7 52ckQ܃[մ:RKƧ Augc .KCՀ[4@#qcܑQc)U6x"Q*k7Pw$~"Xe:7"}I$ɦKa$ w2G ߍTFDe;g -)2TWF _oB\$ґ#2-1o46>E۪QFăoVGSp=M.+sӱZT?DeQxGUD7[q|ri9/kr8[9hb"l鲇yCLV#n#K #/.Xv (iT ʀ(5PL0YO;+iPZI; ,Oy[m"1!`lqzTIjP,;ND6Fk~Lz*׭PϽ{%gK@U3<1K b %6R-}Ǣ%|6!yWq˖!k*3D?:tZA0 -hb uR8 -mzٟ -C`4ԣDKgY/r߷vYi!|J\C%Nel.i(ɛ#gz{ ZZHLcM[*;|Sh{G.X,vi^6_4۟s6QENa'T5re,ԠgclLf6O%ܾI@bPWJkyn;ķlk\( ssltx=Cs~@>z(zɹćƦOEy;LH z/_E:T'ߪb&H4G1-2TGˋ -FGe:$/ Bwש$O[;;o HD/I3l@$V!J@RY -S4ڝ%z%Cľ"."^ ~~u2O -dgx~X&iᅢ6ey @QjuF*sK`G60BTv}q OQ5GC|+" TIpxCU4"#ch^ZTZ!^YWfQԟȕkI(ؓJ*) J4 ^𑸉;\""g&/TxZ eWUS~b2وCς)8 qHQ(Z3pz~yVr`kԫAUv _Z&hJ Ԛ1*J+ Wpq,SbY$'efkS%dLh@#*a̺R2Qׇ5 R6IJvc;~UD KB+$bWLԃM" -lw%U'rFPHAܛF7AnF/ HTqxϺRL,v)&Hu+uR]B\ʹ><̐b`~ $8om*WQ{U5*.YIzTzTL全j(*r4>!N L]X#Wȧ b9#,R'+ mf(ֲRDu(mc* L(-94O[r|,zre',w ^[ *&GroEl2AM|&Z&χJ_w-,'3锗DX -*dՙeqRdET0Y -6HI(u1I&}$x>yNE90"{~ -G?1y4dĠ1\qux -*P:c0D$ 6+IH"4 m2E%2?,,~dr>AE2'8RHU\ݺxxMB+=Qb ̥ؔd =#d5 R݋i ogo\_VT2k7Hؠ@oW| oڃʀ*oJb0KEh4* 1pp+3ʙ^C@`bs:*<|`Ӏ58Ѣ NjnHpH0alYĉĕ0n$ą4YI`܀;cg!?jga, }] Hn4a> E4BמJ1*#GAvg_B:3=j_ /Y5߆*%@J6HsZG>^!%gM|2j<$]p+z԰DVtD(!(Z$DHp]V`רiv1ts=ľ CbgwNi@Iſ d`f,Q&QVnj%N(!7Or|kv>uh-,~q~:8  -b -M - ñ 3EIM{tX)rU:lj ^Jo#jDU="%r08;-.ڷ|~}M_/|2?l}$b:d^TD$|'GKQj8# -q>M\c-5荺_/jÍEBdBF3 Dv0vƈF֡ZYf\U2sp#P\O tua@d}`lu -,Tw/_B toՇx ?HkyA Oh_=YN8!Z~₿IPikiP +wy%OTjjsxI | m~~u&v!-P{,@M33Vc!畁ŧĩ'H2ln  -JϿz4iR;}߾4)ba("'BbȪZz %Nf[uD-d<8 8ghUƽ'J\gB[QRwCoBx'Fw7cBЂSnֆ3/F)-nᗽSMJHpn"P\ޙyًNf'wLCl4VqA{+@/R2t[9bӌMϖ'.`#>BF6J/,:Ze8n9}?8s}ҥc*>Y"ϐT3Ƕ-i^Cc]upgNLfZX]9Ls>eZ01hr<Ͽ>">bNtwdԢV_E3X95]a&.c縏bUD,Q'ť>'1gfRPg-_{\>J2 ZD=&w FD{0VʄWJ֠ -/QdN|8ON(?:&,&x1dwR #w(a[< -S?Ty?`ZZ:U6hZPh9$ό6\fUy8Nd1'ֽRw[Z4--&z?dňF_IpP6`,Bne@gƏ uyUi|/mP ӱb&Λ^.1G[VyIW9,߷4qW4^LoԡuN*wz\Ŝ<9e'Je/ \+jW9ˑd+h*~k^UP+ťW+* u$)F*y79~p!(RF38zUҿ9&F {ewgXv[%kID0en>lS=z%]7z1z@*Dl݄-Eم(e3;H?hD1K rmH^q tIq%ɚVb{ZU$FeK W%Vz%/T Lj㦟'D< -kgX疢[k"?Ub e>|BQ/D^DTfF&_~6}r~-ȫu^e}K\cS'+/lT=ܧqLr)]isvEpey)ey|pbqI޼%kr}:3D&R,AI "AX[|JooH[E"""_+'Rg>Fq v< CN@cZ:]<^`8R3D,5E:B_C2);օir'}P~z-C[^+:GUw(??p7O47F.5X yY+xQIvKl7(p}E}=;$AԻn=вb jh;+DMPd"ZO*sqRg _$aRDp쁴me+P^9=J2x@^FR85YL rYI\%1n8=9vw {٭*v?< Oʜ̆TTK?g3ܼ}Xw/-u8$c}XҒA{kvbF -?C &JjK훡[Z:͝@ p&:# k`ӥU 0.Ql^^ɭGl[lX0Q| -Tqkإ򹫙Z mz -N|@^v=dm)iFo`/J1'! - -J}IGj΂ġ&օ4ЎFX!5ꂄF\?gfwĉc8? :?q&zП{ (:$d ~/ӵ/&#aʑoiAM[vАfO VVB3l Y7&xڵZ9)/ yͻE͘Qbh?D̸Eku<JoZ[]?  - &߾lqk^fY5k1蜅I%I*\S.aq`a]5:V'YF7ѶC /`G[ⅷbi;a/?8"DFz38}), -]+4;مT<_bNݢȆ5$?x_,$="P}Jv)hP2*V9qć[` -؉ z\`+TD]oy׎P|C:LQJ/Xi-cG=ۿa_I7N'AOTS)ҬZqT6#VR'*ѕBp&K* >'rJO{"*/0 ڠIԚ4iSUCJV_}b&-d! 5uPQc 'l{pS5Q_XɘMV;I7!ඈ3I+0OE;OO{a }CBu!;A\G)3+mUX9Ϫ^>ޏ̬ )|EZ;{ Ru)`é\ER2D}mݱep]^9r,[ɟr`VE0e!152U*QuJD~g+Yx Ǖ䰦߄peqarj9N~iD[&26UH@'!xMY96=2Avw} j9+S}Gy^՜_^oSq؀ Ro܅79Мŷ'^Fb⹊o&]s~AÍ'N)w{@7T,L˚EZr_j);z;lOޛ؇,'6GE=i8 i)['4ϭ1ŷ5H9ΫuV˻1y[7sW}ĸg9S|q<9V=yib-}Oz9Ζ}r>yח't׾ޛu~9澫zv;\_qI;>L;>=ŘӬz#bq1]_I]Fš1zR-Rmc$dIxkǧkD>86S pQ9ϘOs]}ޫ96bFpv:oΧ7kwvF:ޭ;(y뽵4gwniƻuڛV|9^ﵷb\kbkm=g}[v~tSkyͷw/VJμRk-ŝlλR)VʷZub7ݕb\ݶ^~/sZ{wNW;ݸ+Ǚq_o7k5kf};jkߝ~3Sw͸oڊ3[slK5ϙ[st7Ϝzomνܩݱ4k͘ZsjnZ+qΝ]8wS9ko3ߗf{1k֍o^f]5RLjkZ-vcαL4S֝v+]٩g3Wӛ-^kuvj;ޱ9kƗKj9:g)}SαZ[)7ֹ޼9ki滷;5[]unk7ߺoV[wm7Ɣn۽+Yu+7ߋַs5:S˹3ʫX~kߖ[qun\V-tcsxߪqδ[syo{yuښ|\)=ckxݘ^ySj+\iֺY߾R+νҌ/:_{յw8wVc)4qϷWMgsU+f]sx[s{wZqtWzou|^\[~b>9b5Ɣu\oYw7Vsպj}oj7sN5[u9Okj-[^εv:뭗ӭ\^u5r/wq^?{֦H!Baj S6F'& 8sd"`! ֑1x55TFę!pi2"biŬIwʤƞ+ѧ͊, *}V,o?O#۟emxw{̮NgGVȒt76<3+_Ta2}Z>R.q_[bϬmHKܟλK+]*}Ԯ|9'޴!:aQD?> >2ƟZh Zאl\sƠ-GI*vԲʟ&\5=gV(olXm(J[KЪdxr}"'jڂ]9 vhoXU-8\P"($Uy ڰ~[*wʦX⾍/rE1rgL;"2B[*|EHRFk 84V>H PiI "$bi#k=fSá?DsȠ-Ewƨ 6.0b -?sȜ'Riiԣv% -m}2҆QP< )#KANA7YN'*]H1`rVY}2U(5![J'Va;fQ_lPii6VG6YDĚ*#,O$5DA'6$xa }ƮT AK[zÏmI!(jK@oWeEE\5:]R -!n!w#'eCbϬ\Vt= uH 5!אœ!:!Q]אE -ڐYIg3MC`O"OK[ZW&$mM yΠ/&j(p QyAt#$41$Cd h-@fF`x" dGo&AƇxx\r.k*dF1j (CćL@3R>WSpI9{ -(CȐ?z8J7`F6[F4S_iƉ! 2&HARMV))`H&)`cicB -i{Шʞ3vUlNμQ^ى?4W왕*y{adISE$ HYHEmwZۖER62`au$ S$1Cd DC&>0CF`HL/LcIa−2 Ȉv@w|#Q@DW8EN#E4IH"FHv 1ąd v|<*;>XHXi+Gr HG8 ;-[uUSqkwjujlwƖk'sku|Zk-ֺ^{^9λV]q|-{={fkնsouN1qmyߙsԜ;O;{Ӿn|ʧҫ9^z/ӻ1^~ĴI<ۧjzyrn;֕{MZkkONqJuRRSK)ޞw{y}r煉'{n{vݻy;<י{_;Εi;{ޞ9mnqݶj/_=_uҩ\]zoqR֞)3c{=N{Z<8Ykzs뎬))^'Z{`w뤷[wr3y͵;{Wgų)w{VkV[x9SwSwySwv[=u=Oytnmn|)b=ywjj{voVz9wkmzbo>ygm֪=J9٫γҫJҋg;E$nV:o-^4yZ/ڜޝڼxjk+4/ZnĘ>zziǙ|lνfƖ!.u?6OY>fZ=}.чʎI\L@lXà"31х362B"T2Q@<~Ȁ2~u}"+J} V`>х%LxK?3s!Ee7[FĚ,!_l OmHkheDyZRZt!k(IApĞ>mX™(9aIɇ ֈb/'jDFu:aR͔VUh"6em \7f*B>!Oٔ""&ԑTiTYԸ3&EQ;eQi 3NRIDpVdt9?o#I# SQ$d[۪-Ew`GL]y9R(* -v(<jIhF$ȓ&5A7^N/JZɳF%<fH =mUB-hd vc /q 0q/r9,&"ET! @KAS< *kC$)m?iyWXBKcWxRM&#S uϚ)R /l@lY - -pn-A>D !y<9 5hR/}!4xyԤX" / m5ZCEJ +g^F߂Y}3Olx"nI\e>|@rFModxA3Hlt!yI+$/0b"EXxėQ}O>W ?rF8?[ M TcYt5y5$e'`aXa9Cu]MجOZU$꼾VUAyRHc6[LA#@': -%"Al@d`y722i?㯭$*s<ͪ0tGV} "@ @IȌC !3w ,hP.b@( va(Cڎy"Nhe\q/HR>U!G fu;aS_+Ey3%!%!P$h0, 54FÄ:g`2</ JF}i;iPjkM@"נ4ouDHsUyؤFK~>qFr3?G;+H80HH>lTF IJFn: N1 j"m04}00hM|Ae`q(Bb<*m?:^ކ궾\yWkty+qPG[}:$}R})j% *kC7Y@1/#(fBtYCze% *jC)jKȆBq\eКVYT6Tdl"IXp %?pU&拈cD1uȤ#?4҃h. '4ZbF -u+̴>VS6ƾ -nd-naU3vnlI'\gJ`ԐQMy%`MU`ޗGᄫ"S}P–о0sEx1(tb|Oa›y֨ĝ(rgL ƛ& J<꼾XOԧ"D E݀k6UEĝDVP 6@t᎜/Dx]E4 v~ yYiY'IHn|Mq'i W0!+c8 qtʠv64+ڰ\tDDc@J3Q!JEyc"A`<&%o {ȬJ 5ςpVq)_tVs+ƀڮKƆmY!š)!š%aNّuʞ#P)A5WB5[E=iS_LJYꬼ-/oDe7aFĚ"/#ؔIyҠɓV5|EEy_>hV Q2)E\ko9`O#U Y! 0h~(8]##3'`!ʚ_g9]q+J2 x #M*E!YH)#]XI7*n'"#$d!=#1 y:2E3 {I=nQ>6oe#9P(;"md0 Q$ +ss]$/ЂeXSGV Q܅FyeZ٢C7}%}~g[אlt5@nWDv^Ab>hW%Nr"y̨PWlIiZYc -ڐŞ 8.ouDHS5D Mk`$"~i)xӅ"w΢&8SdT*pTy PkpƉT \LA+̊PAڴFedPBc\a+Qʡ;/DE -m'pœ?pW -'g9bR"`NX00B/RuƤț'G-K{sĚH 7Iaq!$H ?Po2Y} 6-/#K` 9CKItج4*";2XODOqDw]% -$Uy+&Fˉ "Ӭh˟hCpa\pǫ%Zj$mȉِŞYBlV{ʮ|P!6XMB#A!-΀G@sXRXlCKؓHxQSFIʞ3+CD ZH7TֆGM>[r8_L>g9*}ܨ<Ic%XE$Hd胆?jy֨Ĝ&fkJ3R?TF )$5A5WG5VL("bՐFH"=/rE`#)m'ⴾ'b3qƩ @@MdRMfHkC@L4m},J "|ZՈ%B!{ЬH'RG,a~Q^"{Ъ`Ԩ/ JrA7]OB)!J5YG>mX?3?oUfXE'jy3#qƛ-jNXAR=`?)4eàW0!+¼UsFE -qy=2B쟈?kXuĠNX;`S> JN)+Q葍*$^=hT% )GPʆCu^g"ಂ޶H3*ԖE5#]P9+ʾcRԾXisr -IDz]^726 +vذv\㑔ц s -&f)FщBt]ho}F{diڐ8RDA;dR& xDy6H3}Iʡ/IZy˜ORΫ9"yФ[?!جZEIJ/}ЬJ3*ϣ6E]y"ԆyҤOڕ/ (ļg_DA°s0g`qCq^TUθo { /o i?lV(g ,jK+'Pmks6uƜ| !NWhc/)O &'pQ}(Y -n87X!4 #>QcLݘmh"Nsx"N|< Ԇ{άHBo'pڰW;fQjpȎj@mX'+J"""U}IJ!bI?F,$/#bTGMk<亾Pi"Ou'฼Oa| -&a~Ɩ7/b鳆5A?nW~n%*]J 1 u *iНi"OeUH\/rE6odd5#U7̍7@FEðU8!DI_˛mh7}=2IwїV¨aXa+Y89Du^\=jU HRJSԆBo_GeyLNL!/45d䬜VƸVP26*ضCq_%2YiDlsfEE@oW%Q ذ(WكfEQ(JJ -&d'ebWɢIYyTW6$AnY( u=p$I$0Lĵ <`* S.^h0*E t`K 0p%H@0 lQڱDX#x\B$ %K,[/hAꬂ5[FL #R!RA@ -9\BN !U7ϠĠ*Be.R' ppa2փ:xC@`i3bZp1@.(D0by -d#T(0 p(1;5@p0%ƈEF0A(J AE\ $@ @V} "` +Kd1( F×%!\F"YFH"bDΡH7Z)A p%uAAW!= -Ð#@F+J #I@ B 2p>"&8*8& $ /$J+@@a"&3% $ H/1$1$|}$e?BD10xYքe QlOmH+l@;H/ F`)1@B( x \+oܠ*BHrC0KF~#d*CYBG02 x(ta)K7|@^5Gp -XY HvP*LA$C v !@GG1m\ZD#)_c Ɯ%BXYx"& $=ŕI / b80oi< H~8AȑPrSD-'JH )c -oe-ohIX)DYD7LNjIdDxNw AXbk`"ѮJ.YY @:o >2p\UY!6̍I<idʇMKhs$kUF -m^d,qEH X[iI}"|A%Xim(1 - KĤ|2!/a+ic /lQ3o #(D{Ш>)d~`boJʾ /md0vcuAdGV"qt`1ʧ*@⁌D1emER $- JZ~W z;!JyA~c,r.y[چ7 1 e 'le 52 ua< ƣM*6%D>b(lXM1E6@BV5}Jbq5 K "rÕX M(؍2NrĚH lGlaAZ3.qQBQЉ@hWCRy Q%mIaU¯gÔ-<p\G N2m)!+kp?ZId9y2(vUZa aj@n[$0h  mA -u q=hTDI_58[QfCFUTMAd@2=6!":*"/"Y] 0q_YSHg ID ^3h A°J-Q )FKr޲i֐'z@DPs -f(#ar$lGF=/1(IŕV^ -0` -Rv`D2$8 -JDya'͊q;fS#boȉ {Ed1 %,~  -)#Kۗ)A8R#tha0x2 <FՁ xƮ|Q%W܆9L+U ش,(ρ| xX=/ԦOmK+W4!;ZL@Lݐ!'lK..Ζ7J++ KLÓax:Eߙ>iWw<QDO,Xږf -rC}bY71d"#cz"kxy{c.j(kb -<@L XQi谂By[b -?01Doė! CH |COdFD6|96^G(vJD z#uem8Df"lXXaq@' wb 1o#AOX5JhGR>-kAÇ) ~"bp*;xu'VU-&QMEf/y y><,ᮤQ%nU:u1%XC r9 }Ү -o$D` z-BHh<a8) ۘcL:ʰDA\IdU]y,ц:[F ~"14!7aÖ:L~E`>2PHBƐVAI+~Xx4"QA[3(='5Y3؆7}V"F(3 qZ -x5Du^_ڐկ"yJ3L$ViYE0G jcT|M6VGL)=PBBWH |DFprƈZ%:P)+x.r>,oUᮄAemxs4ʔB,"u 0y(҇ @`G2>8` “&5i D22DY;_UjT5GNJ:FtU8_P"OXQ,*ذ`P_ *M !;XES_0TX ATF`Ln|7]'d:@g`qDx]3P_H4Db7[M#КPІ*ȖִucCMҖfTqƠVk7a xcq #djJ+H7v@1 LF=_9(ɗeM=;X# ,Y`ϠWZ1Ao[$䁀,d%ϸV"%!,4 -yOT'FVj%P@%\MB*cV59\Q Șw¢PWBk)g̉CF#]DAPʐ !hB(L<q_7s#]HA/ʤa}V?#㌓W"P$ +i&J5UDCv^ 0s#'`Փ U EA 4 dD>y@xҤ+aؓHc! -A&J2?z ㇏'aˈA5y ~"ikc\pE9_N>-L ;aU v~%ܶK*=1P1``u m_؎n ~-nSn9aM?qX!!cOYUf5TqG6F_zg%mkbذN]h-M03UHDL+TFydeR*{Ҭ#cՑP 649P5HDd 40 bX49h2JAXX`@ ~PVeF]^7^ǰϝ?tTzwbcof_H/ $7} -zGnAm9r_D_W}ɓ<7k -UPHo[Pku|l`-~4-f -/8H&0ɼ~0vk`1؋w1{zi5_G]2{WwMd>s_lܷw7~6?M?)je1֕OgK^vMw83 {G!}dy݆z׾~妍} (pvyÁ%콗ntVХO/b$zӟ7QUbs5:>դԘc>w}|;v0`ыML_߳'iz9P}%  ~ǁ^mn w|vUzgLq}gw obDO?1{&űok58jRJҗL:dN894S噾P٬n $TЇ<P t]@1Xg|X¼Z9#{sSQ5D5?>.eدg7\'(2KƟ-aonR)K)xL|T$yܞT:DqfSd ˸'r_}mk˚|MP2mJW3?ye_:~2D&MJa+` qC8{J{S &_}Itν}J_ZK^$vryTWɏ' _#$oad',_AfAQPy`vA7l&x$!x-{!gWPG` rwb{>2m|Vq뾧a߹lGI6R(F% ̕2n=f9,RO3Ef9«0Q:x0f$rJ^ /hЌ[~v] ~u}2OB؋faYᴐ%?VGFO_}XV.|82)~7U_JRWDT-*_5dsKp@̺; tLK 恌OWtW~2.b_07 jE9._𬘉?۪S@IV9#6޿#EĿ7Dj#M6)R4iD!O"I1S zPFU^Hp*̤11ǠՖt'!PaGo{Dd|($.|^x95XB&X IϚt Bӏ$/Qd'WtN}494 $Ҩx2,1_&09Pº(Ǔiwh5=Hx2/Q8M1c;" `ۃ%-HS-KKu 1Na̹'49A2]M:9/bs}xު+, DvGzP'3“b9jw%^M2t,#ž3(aBd>drMh?AqL M 0=;ɞoo?lYdEFճTۇ?YeRO~s;y@*$w5ImG#nY"ov,u] Z nȯ7{zm4m zyE_s(kҟ܃pw5h E}nkQE(џ --HVi`YoZiz[}9VQc=N&l~^gst[i[ݮ+6*[!#?^4t~؇bz?Tvd,~]M-wv| M B|i8z W {T&E Zd0H =di b63i0*VqB -&҉/q!LtUJU(O2]x]e *lp]2 |ZX2c[{Tlю_~c'GtdyS{4B˅xkyuk8d]wTAQ9v)8"Ů! u ,/Tkh? .oHbN7a:h>!R+c]\0`e _XAfR aXZ" q HhBo`@i)ЋOF% kGwwD4u("+`\eB^ݞ 8*t!.+oÒ,M`D03$_b3CftOkCU"2%\Mshj{(1 ?l@#Y: DA"kG+=`;qZ6Rl˕s,_ZÝjj4 abҜaL j&~&15TZ;/]ġ~;aa?dUz~uBY(^1|9{k:VDP57u OB :@e_0QEF4ϠEjF(Bp~}IvXac~aiN|D:xy8 - <]Էp"=4's Au:H \)^3Υlv܁? 7-}AUA6m 9QOL0!`P[-CVFK_de}Ƣ~8km%HfLOŠT4Y8'Mpy_±338SǜE#V@<4,3 gRXI>Z5 bh`ڋBE:r+b1(UHj-E@Qll+ԑ`Pт" 1K>stream -5=*ϋC*|*<':T|۫%9=b#5q)6LH3AU;X95}(1ۂ&ة_9&k{ in,2m>W€jg7_l+pX#FE4U=.OcN5|,+5DtZMP -cCmƿ5)v_SZ3y286K~4wLNGZ&<5KJ$}p- ,ajdC3x1.hFP DG.׀:ԏPH͠[Px B|s&6\ (X&< KעU"AՃQ:y+u%HWL U_g]kQ, pQGlda-%_UP +;ڻ)eH-i;Sy"]n{LvNl"fN @.<^'=kMј9`⻣UO{Diq -@IB Gln җ5 X.B9@.0i00T(9b4 PȰ7ʽj's,-V|v :2+\iD Q??sWUB5eɢnI(qyWk+6;ZJg_~Cvn?}cɒR -ŲV9.j(^}&bgR8sIqx~}j# +dfπXv`Aj'a6HGn!@gוԠP=CI6H Ɛ9Z[d='k3Ap7 # b rw/UV7\DL[:7W$L 7.d]D]eeqK.@"EU utL \p?&+vf 衈8"MiR^U [)|ˋA+p| Z! ׊ƺg5yJN< -]_Yn(>򢓈X5M>МS2*_!U4MjaεLl1oCD/)`wT~hg0  #;hΈ -RM !ɣ`,AI?8^MWerT%-d?AR;+0$j}fYLe -P9=@h 3%w HZEևv=ʒ! V(9r4sD,B{l)Y,J_G9lX{U -OzbszOu+ -مG`L;ɐW0Ӄ @6+Zih9*7;;RT̺er5#8q%~_4z56QŒ1{RK5t8DU ze?2rt}m2^h5E$L[7rĤJ-GR![A~_ڸcH_V! QL2E#I0Htk Lwj!vP|hXXKX (?]t>,ʮӛX'In,_! K䌏1YniLPj ?\WKa"d _LiDD[Q ., Vis h)OگjXrNɔKq;lƤP@vԺNm耊P -|>Znpuֆ' -SFR^Pņ+yR# C _!~Qr5'mk+^P`y?bV疇ՅjPAlerb95t '&$ ;%H#8YKFyc]^9N:+$1*ϡYFORY%s)I`Q5wmyM Y;gkHL TBS 1e̕`g'%* Hņ*FZhq@)[y\LTRx~pDc׎xȬ؏ZIʙ\(~_EPQD %aF:J/GS'b\R'8,Jf9ZWS9!1^WpG~ s:_h;as{ pR:dGijśAX]ۇ0Af߈Lx{+y!2ýT߮ԑ2#!DRafk/.s3؂?48-g!N FT99Ih#:#eM U уΤq5i(h B[IB!;%ȥ-<_N,rN q&+yDh34Vh -i &-5v̺Jw + cO":?>w. W=]_eO۬&s*u$nVYܾ ^rKY0Q -r}lGTmWha4_!8К9ms&X;罕;;芚5֪3n,Zȡ'% uRRdFu 5u9T7?]r^E4 Ϧ89&e]XъJn" -1%0jZuE;fWNKLj衢LK  ;ӺHtR_e![ڼO DTozBm*b*I(vOEzFVJ.d3Z]u (DvuMDSN9IP F@vuw?5|`BtB$R^pLWM6{ bg{zdDU! -eMady7Ԭ -`9͑(;q}ftiv+"a^Ma|YOKR.TV/-lyw$+=eT7>Lb|D8Btn敻hVrHm {kxdVfя h`-=߈U*?,L(+hTiM\OpI@9nLvh[%Q1zlyLQb_ yWC[=;5] -sKL{]@D&93>"t!/ieDI6ɂ臭CD%2:L ޾ۻAMItx¨%D?3ڶ;ÐBC*l4"DC-h!1=I;{>گ OQ4̰$\1eT1{p1Z驻`GkzprFQi_@5y$_ʁM4ȵ/ A'AOu,p q*\񍈅F!NW&S3^J´ʣ @ۯQCg0@s କވGorIBܠmzGY07 -?ي1> eXTdnA,z]AԵ#ءnU.^`O h䏲UI˶ե:nKZ bVXMbn[]̜Py9Z3m}6>;ׅ!E lWbYFxVgyHµ>t(WYgHFIS{ / `:k-QL"$|m:(2;D KWZi!3*O,I땓f)A~@ "G+b+Mf ͵S{68 l7"G*,cQ^yᘘܙ&v.թu6ڞlCjAP="+Ol xD))Z Blv9= =xY:!zůOx^QЎ$J-Ct$aTUuMS'-?H$JyT\M.L'F}T'v[4c=ժ8_k ѻ#"hMO]F;Tf vY &므}4Ubhމm -1=fK-映KAYdhlPCI(?Qeʉ </2aT1RM; #G8;#Ț <̙l:1iLU@ ;$.9_Ӓ=ƒ\B`dscdqyLӡM}Xc#E+ )lp);.$ T$& o8bX+7#SKo &׺QKukFe -7RDS k &t,mϘ>bX"fҭ?Aȯ#s*8r Z]ѨHμɯKt[L5e7U/gW?ŬB߀[$c{*tæOd~=rTià9r'KC$!R\v>AҲ#vPXׯs0 ئ xxT/MI=fكdRaX}@AjtBHx3<,]぀ ;'P8L B= H!D'h /'+;'N!dNprfrҎD||(b8"򒵈E,C 'QUe:b#( .lbE-owS$s,%6$&KNb/tIЄM4T)5WrʫxJMgr`B4Y%&n IuD=hL&3Iy&JNd+{҉Ʉ}%2yۉsyɘ,x >x?Q QJ7%&x`%#aY(ߒRv 10;P%ebXp{[r\K9E(s(%qC$YR>*Ē LEX*r -AnŊVRwV|Z%+yW,JEd+rH%o~E⧄-X6%'ŵp$%7"UfRDIK1寑,0:+C?P7 PXZ'Y\iNRj,'ZDq5k{L&- [qIl|'\|u\h$˅$]BzRy!H ! Zޱu{ c)N||AnI>FG - BwtsA0' !;Y^OKmd}d3`ɏTҏy.dyq x ii ?N0Db9 -yŜ@,RZBK:H(ycYG#' ĉRy Dj$P ZsvX>֡( <8!9|A Bn v_qk ??)ȓ9z7!yk :!cU~Fך|~R@lD~@AB/?d.8~D@{g nVFK6HhG0p>A/ iitC}q̃ =xe=:CrH{vjAsD(AL}p^ ^(9=zbxʃzXZp3.UxyLKBNUwrfh"<4!9iAۄ:0=#nE"OvCv0P8 kꦆcpu?W4Dp#Q{u{Q -FDșH @Dzh;E.2s1vn*7ȑqE>7EVƻ6V#qZF¯mOڸN# m F K'Q6#SI-6ޑ԰AEqG} >Bk\Gt 3^k$JUg AxzkhWCf5J|U p@DH&FFrjL$?$iJItƱ-ɓi"\byHi IO %Hv`J~F-Trh|Ш*;jA@cWgHĒ|KGb mC [!Wa9jLKavBr['Y' ܸtri0G'1 pbH lYY( Z5J19%ر@QT&cQF~V} .,T)'%Z:XD+S+g^ؔ+(&<-*> %<;)oނ -* -vQ V@*CWTBLTޮ*6~S XU$*`(aԚ˾JKW*zUrT VFcevT bg%]`J+@ŵrS|x]JrNq%W *]) - K -]KaɥWb1_)9 ,G@Ȋg Qh\%XƢuX!wD =ZS$XGQ+rDсY4KBCYR*$ ՜4! {SZĽhO<>%>tZ'(%cbNeiʄM-{̉GtPnz61?.ܹZdS*N |2't90Sˠ2(N~ViMwb|I- eX4-đf"k2!HF&[?i KOZ%n.QZqDKVs%Z&hK[#[V"bUb 2%-ďv(1~˱IXms @+E%KIUHޯFbb w r!DGqo?l3#,(#Cp̢e UfwGW,m##.Ј7KȌ)r&+TxcaCV.ZҸXTB^lmV#jbrD- Xƍa˺ObF {Z.uVE' S1C#&q^\fu,y\X"x-EXJ.qUK5%8F$w2#~@ws #]N l<"U, :m\&Tܺ eET^>uȋ&18z DX/"^6E!C,c/vMr][ˑ_~2DM ,R>B0y+ -Fn~U"g`y0 -"]9 :0Ļ¤ N0EF1Q,Q9 Nw'΋u*x@H!d ޡZ@8{1Wc}188Fa3lc~ㇱzL0*~1C K aTiAn9Qd̂'I2컇 H~+dD'nȧxedl'J4L|8Pyyh33&d ͠)nfޅpLT7swؼs3ÿt&^Ievݔ?=0w9EMա:hO-v M: `lA`bϨhM$ޑ.PDȖ.iX)~j\qx4@"j,RqԈtpªb8_͝ohXs?tdxnxߚs\)n޼ gx͞ma &m[=ٰPlckxlκP~H{Pc Р0\D+mz6>9@ u즡6xfT4l6FF,07GBChX9IC3mg7hͮwn xOf@J>a z2L[%e")CLQdx, =738I#8& pNCsn1|(ZpUk1# - PBP()8 U` -fNn nT6B+_8 ߗ„RhŘt^*ԝ[GaRF=Ea@(TwBaw';(;_Yry 7'POx NxZwJٲ&'0^yX`$}3}TeϤ.h?yfL;CKXc . s?o/adp 'sK{%L?*u9P’u` -B/p)4J{H(- gH* o@? ;D7A\Q=52T "z gR`㐵# A@z8Mv+<,5m wZ$18kP[#IF`0*4$&nF&+rFs}h".r+FJ{n -Z5ER*m}f3^Ë $9NvV鰊!}jPM^q׺EQ^ѢJEXgż -He*`"‹ -g^ v=‰]EhRhDA -І+DH] vH(PS!n*7AmL>)ybTODzν",T*T:)tA"pT -^t(ћuѧ,H30Dd`E  c@A咡NDYcQ@. p%K4$"V+O2;"Ei$zCh-eOɖH/yGdJ~­ʘvTZg "ejˑn6D{2Jʵ/5Bչ<=}I3C0bvNFVu!8"TD46Bxq[3Bd7~򺄐#˨1=oBG՚LV7<^?=}Eҕ)BH@0V"%']C:b8[!()$FO h i -#Ifax:7P@^K߮A?q [H9xEn5>WpFeăvD^VXBCp$Fji'KN]* *uyiLn-@UFGjN\U,8hxp?&mT]weO;A@j\w0F ̓9]X?׷BQw+g9d&S*n"Ag9H*r.9qv$)+ā֏T4]i>gQo 3j5Il[ `@ԑ*kK(0| -Onj:z@jO8c u qP k@lXĐu`U#yj5ku'G˴ em])R/nUc$ 0 ZfwC m U]hຜwq팳U Mke=HaGzMui.i*BnLԍ^ԵsFN`1#K v>|cŀX-br:cdJ00qW* T?F&[ n1^0P< ՄȝXuV@=0Mb'#4/z`9x';,Ewd5 H%؂zt}ÇB -mnd*~Z 8D ZpMKKNP q@C)ȭD] Hz@'6t -xT}gc2QNϗw)o7NYJ -~]?MV7{5j(8Zbe*P(q͢ax ܆7kC=Ij sT BN>8`X`+5`7bXNK/|̺*# 3 -Hbd{Q` ]WPກ?EʗK~fAsu Lx3EZ -#PL& ^:)8٘AV%e3"mb@ lGYaOln -=d#L"&-T)mL !G یhQ -t!AsV72 V^\ާ9HBHLM6AkE]~ ܻ .شe9/xx˘kZqـXO4jk>H  r@fBq¦0 Um2HȦ52 Z@g̦X[;U -@m|4ƵJ,ެ oeQuNCF@R+ -B h176" [}es>R@nfxy ꬤ,'D9P|h>Q45̚}\4)BE)2b|*'+0-*GOV3` ms4GV.jzM& kث.%$q&)㊚ueAw&JTo#DLe%H0SN]$@$$ZZ1E7qb@VbKұ2C~ڱ,϶0jay]&p}કf-e@+%>~F%} ~<%@#'ʒ :lwm{1@t5S@ТtPn{| Ph7D3@#\1M5`-]$Vq`Uծ! Jod8=e -ۂݴi -0M0 KF%񧷈)X0"G)LҴb@IXHZmI7{Z 4lThKoLǍx f&-6E%mmªw,ֵ\-(5yjgUzqpUoX8_&X|󆝣NkEauo).=!Cz `X.+GfO^!5 ?7`>S]_bͮs*q#VZ -d\>b=1釡<ˢ*<úx g'jXE?Tl䈈* -gܿ#AꅄjC/^3GmQrm -6;2]9L,@2iR]zT@ta]_qec%S}H1?Q˂R)o\):uFe_>IlqA*G/1a~I855YZf_G)p5GG =Mʩ(w8pϲ~o{R1WbnfV&) 8<`EC31 #r~,"9?w,/)w$Je1k|pj\(?AI.nMk_jb{b@, \&k`*-?iK2a?`/ZUqkj1 E>$="@-,׽Wľq <@D~R=d MccjR27C2&$Β*[UaaL~=H -jK 4;-L14ζa@b }_o!<5/i+V|v/;(O ϓx|%:~򇭅;ia-wl1+Q$h-"<[<ɷ3V?| @ﻈd ]О -Z0ܓA@H [_2_,s~ Z}GALs#::Ge6S?UE<Շ6eY P?yK,ImB*9ڹ D\m.L҇33< Ӥ]1#b&l%f~` }&¯ -7-}U|9ꒈ9aQlso~j`AN k>I -J8kRkJ EOwta|fΰ?8$E2 Y>R8J|j/ %OlG+OSC,F*jeӛ/%]&04<2Iv2f#LB>r};ĉUe9"ޮjQ -K~qmx%73kL+8Od =OcOFPK}ɡ[*09Y_GDxhX&~zZKHWz{#4֗wTT#$ٜW00n[ j?1"<gjޒn3*%SD{ ITw0aOGr-Ek5DeR D j\dϪ'#gQ֬ *kO]A' +7kZ"H^Rr&v0Po ׳+g[s=jZCdIY_C >.i\=e")qiȂU"d.իd$4q_jާnt2v)w3ɷ8oRuZ@GVNˈ7yj4#l -@W^q;l)MkJ_keh֥(7*=CI -F|QOW,WT3}zy y \0?{\o -BcL9;XUbXblgO"z8R&uF_O{Q%U_ޒ5K9;%XIϿ]M -6_T?KWJ/K+ҿ_+b4~!<6'N+_~H)fF|s??ϑ07RCTbArP"o0www}osgύk# -` g/js; +PAb1gU_Q $#b<q9$11:ae) 3O=B!e*]W] !N⋙1NYveӸUG=K`UQo: iHįzŁ k?? 7ҙ ,`%f0,,S<]֒}$Jv̫3-_ 3,ć(lb='1R0',!a&(=ۀf3픏 PXe^7?s}01?\JzHfRU=1&W\9sa8s51g7i{$;Go:Eu ;p;%99}ǬHy!zuaڡ$rLd30tIXWlc` -r\;/?浫}e]AxIWk שx]*aF>72*@Eה+fv4bT^X*%AƟGyH$f]<8!<_%1ͺ\03h_q'C+9TR8vu7rT;e<;s/8F"b!3QߥZ*a#XO!G7{+& -2𧬠oKǣwIa*9` )3ZX7x ]^-X#fq_AF#<>-eeI)*cbȃqX7BdF&zq eZ*49v1JN]\ܳ =c PmcV_b=؂V?\B¼"./ ?934SZEe[V,WxO`q7 SR lihJ8@ =={&/g9A<8 DO9h^&si/ ӫ<7L2oqt ^n;ǵ ǎwi첌Wѽa(W+K#8A h.MC!IYg){}B}Dʿ{: +sL%T)m~B.z;$={5o -I}x "~7ay&,;o8A}]X/|7@"{ ?&& 7*؍MPo-TΧ1/+m?ò, HSw50^ n(wU3-7ճk1,$ x'kܩw&8LRIJ#anXk[`w"t:q$*a Wގhw)=(do)Lv{NfJx\ݟ\)u=0>SF4y}$ݑ_#in[U(Pw;rtRnn!L{'z=ʹX:妣-3@)œ"rF265%[@BBP%0L$nߪGmaW{e -%-:d1L3nHp%0}b1cߊmSfSKvFXM"{6:Z'DdTrOnF΢naZ"CYI1ކڳIm7ۤdD$$?*o$(%  =6Xڃn[` kHe^#RlgI+v^HjO8KjX:A[X9mTik-`dG8Ջ[0W?6D㨩1@faobݻEj8CQ:RϾaJKz4_nΞ n6f)jO`2VĜgf;,aM}9;n]6z@,=.xTj2znQU;4S~A<}H<δ<+ gڈdK!ؾͿ/IkCwXLS\C(!Έ -b}c$y6b\2S^G3 {؈ ;Cv'0yv9b@;.it9ݽ H[eBL֍P=t|rg=_r\uI^{eĻ/^ki4\hS"}kJu׌uaIc*ZIR.R&H2+9ktԈq 䪣D]bHX'wֱ4 dn=/3x PG\n˩VA - :-Z]bL4Z\3koBQY6.>"d) <4ːQWbXΓ"zE2֢zܳ3w[z%Rp^U XYh8!L!Z9 ĚH9`Y:CkZ\5eCOuuI'Fk1WKNֹ_[YTAC"# fuP|՛R|5QW?n}β_=&| ;X/S4U;k/:ޑD! -:!Fr)(ZZHW vǍ=-N?UftuT@E׊3VˏY-Ǯ9 O[ŒMu?kt\ZFW ,۰ln]VO̥ -,ձ,1y%wʇ 5bѨ1p9.viCAuk﫧F SJa?_-$M=M=@'-_ꞬKI⸶\Dǽ -^HI4~Am[7BŃkϳ֯/:I萬:4:tT P嗔b:)}1!iE8P$-Mi 8SҖoaIsP(d7u^ɹO+T=PY"@XjFTOw&lTh NX5R))R5pX*,UN}XA}*MajJm@Pt()꟢TT=z?G-rWf\{aM&0*#CDpCh\B_VyzS#:r\aUG5&ǪaZmeŊ/To֝Z4EV@j^qVLcيBѶo~z{YGI -^s< GFϞKW<8&+egWᝁ~}75fV:J}+Iu Ftal -=r"Cj>5"b#%fpS7OzqŖvsKXbջO2xP++1֧Ʒ5NРyF^ -@G@zEf{w@٦ ^6|G;6W\CЗF?>*b.ݷnw2'%R̯U=~vKUTokT#;@Ҋrai0y#}"3Q`XIH'Ø05# Ԉ0Dz6Q/CV3x֍:F, <b1'~J:Bq{_2x =0QRJ)|fqT'%k|T52qfr)cYF&[ ڱVU?d*F¯Ft |;.v7|3i)v|~oTx /[~_aױX$짃O5yCZaQ YIY\$L,Q[sTqTeHGSbn,|H/V )EC0*cO8lAs4D48Ax  -H,2M7~1}$'|8_B͇b#| 18&3M7<Nϟ Щ1I+ EC>z('m&dELږVQ́fAUQ *h9Ps/ hCZ$_KJHWl6D=Q%pzP+6*|CRRd>WrxiϷ7?| |֫Gde@VPs+yҵOY-?]ˇ3ޝOBo ) -} ~/`UD*JiXh WFhQF?3*:R\U]XpAIRF D;x09S3 WВ W((?| -T=^Ox?ҕYf}-%$JY3G8yͷ=߈}au9Tk+!܀aYy[ǤH1wsǡ^kyL^-Q&01W$2 3fAATPJCԳPGGeG٬\^QT=;Kl*$3 0U>oˇ._|WW*|_| -RҦpDrJpaS*Z* nlJ-96t%ٙHxN t{F:[KW3% O>VT18G* 3j$j ATQ*h90 O3a*%#l!iBEj@%(^_wUR)a {1EB7D@:?|_|cO#vBD?TBjV^ `9E&DrgPcB:y=r[_UJZ,($L|LZY 9٧E^+ɾTɾTTKTҲ\&:Yj@{X- ^[WI!"?_Hexi~NJ7_(V -z" ~7_߱hw\KLLg % R"$WK:X˄?V;L)YAτ@&p$_uQZ7KFEeAOJgDTI 4@'#[BT*q7Wk\$' -GE!G9Q*(σ1x6U8m=1\Ρ$r.bvF위fӲެ HZUKPDzxhKwuKj]Y(b&䋐ޗ{]Ӕ%{&Pܴ<5D-2&D|ky nrʂ2UDG$xlnǏ]OȏL D_Q$y;4t5w}iUCgʓjW)ԚVωz|I>5+{$Wz+#{#Y_=-^f>.ρR"ڻ\j9p6l6PZz2*tE![2#c$raEvq<,+a!341,s6Z;VV@ "lXAlÌCFeEsIm*;ę9U{UÉ;0-{,'a] 3! WZoH"g}w{'&ɮ}>DLy7 -y7* -)(Us+O}ʹ)#g Z6\1VoKO+IbcU<|ܬ4T$T=c"h~ /"뢥|t LtMTd],\-3|w ^CLX+D_]M[e&(Vaǫ3{>pUkNY]2]I,=_ f]a:!꒰_.]5K "ƟĠ!N~!:r]b_qpz-jUY/^YE[$c$aiS2$N7@VPx 3ye! -#c9#q(2(RFiV#r5ӒѕВw VH6;#ߒwՂ='FjC5{{і-Njqȗ4PPڹMl5r~D^_WZ,zd1P}0TiZXF.Y%2ETٰ ܱT!`hJPq -K: @w - -Ih~0> :o =`0ZX]+ 4䋒4H3'm,ݥ&O۷*gM#Ⴐ`Gjw;-#nIHe -"h i6vأVL!セfAh97ɊZ{Z|ۏ,F¨C\<. < l -׬p 1+/;nk َPYsEhqC^Z& -]3HX&aY%ޒ!wWڬ5;a^-iuG#GbB U۫*@oR "[9\Tn0댰Y.<&ٲ8``wz=Ylm{|--+m%)3#5tb?`o3OI>(F2%4r3%67]V.WVf5—YS 9s=“ĦfYCѕ֭LDͱ5 /x$ nxd$2ܐWM#+#/->2öuY`!v;"Zb@ CM߸%t\.-wBau+ 1WQ]*W -B(ZU^h{` $zm & -PdE-Ldj<@w5QzI5ؑV˵w^ H OHFH:gS`#ߖ^U|A< .  ̥(_V/nxJpFsy*H ~MO K %B֕女Rx,k'Z#@ .|ߝƁ`/-n$5ƪئ(-flcW@D|A Sw RELaXb{6~j9~`48tb71+Qp/||CiTAÏCU]*v` o`W^4v[^mEzprkA$\A$6,6"f@enD9: 7t mda(X Ɋ-6B;dX5y0̽ۧ/7 `L;BmMl -}E[dHF$ĺ3K)H0}' -O(ezW dm 3e#Qa;=uC9  YTxU-J($%K 0ѥk"gd B@Nf޽k~: YtTHei (*hTRMJ;ZaY9e  VYŠT0LF/.,eL ~UEu U_ӷzaX_ ߱htwU}. VDz8jMIXi@-^VЪ@zr -vBnⱮ -1UؔOM.}D4qӪxsњb7YpԐu9Xpd5~>B{Κ_e#pڸ𹉿nbpW1T jw͚[ p7[pSz_XrF[c}b']ԧ!9*@6UわBj$t%G2HH BN`0bET0@a[|FQVݒfÌp:2oq]}&ӯJqJybi pgpVOc בT}W[= -=*Dr2tkCWE'ߥ/U:+I¬'VlH,\p-TOB7n +w=dX}tIUML5:X)o!ǦӨ'Éəё`*jOh;P+# V6Tw].=-`S b\O4vVMUZtg ˩IWkp%/ `N@"yԊ}o!a%4X;*^0b6yp+Vaѱ+[} C|HEcz0O{y}%̥Hށ v?a3-Q'0fVu - ^D1t -Υ_T m|@b.qb㽑 } sI0^r~/ceqHe`4Ő grV R2}yf~$…: zM)vIеЧ`Ό1t L>ÍvT-VH.598տRDveJPNjD Zժsx^+fDTT.ndPg]:d1QpTڏҍs~ ߇!{0oъÎJo F?냥8|, - vnV'2hKވņoփ/ 3+%FcPcJ B\o 2Z꼐SMVxP oGcB9/L8K?zɇ% >rBBZ'ݰ>sDo]UpѥԊ́  -V -+g3擨Ƕ@ZYM*F]$ծ;"{ "-U1$,H@!Wz RzP=E(PMfZ'|Sx8 0,;C7ڂNp],ֆx , IiRR7uUJ^GPԸ6XtJkp=,l bAX"z\Iؔ*v8ϵwpc;^+ro[ɉ¯zj)ͳ۬@%Ol'Nnf}H&^~ Sč>(aRzXbNnbC\SKBmz :CRVV~V5Ýw"'-F[0]*wb[Z(⻥iu^5kHee -9G=B&q(cAϵkd gd#cǕTF\q5dR"|RNG co 𾕋G"0V!#*oPq/#P{Ş)ЬȀvXs%,nMJ%̯)bL:߻~ l]&WRO. ]G.c=.5ylսlbLzĚl0ahmR73ߕ KgT`D]dJB=bD?vgjy؝7MvzWhq7xua}-UσRAE4i('}ˀ1,Z/ԄT6 * "eM84=t -2BVj1}o>*L:Aˬoы.~n1dD+յYBHOZsܳHro~xĸ-Gbi4rded{}**^[w||0@^P_0=(黾T jtH:hY|>[USD/7rkRJ@ɦTec^#l`"=pK"{/ -YSKcH'K%[Xt9`CbЄ{\)BN~W˫q%R% gT<rM(5Sx𩌌ԃVr0@sǣ*kLC -I69ғ?y[}Ln[|EFݫ9@HhObrEv]TjY@;9}@U'9`}X!SI} ?XB"fi%cXb+}=Bh$28=PF @}F&|=/|‡Ztԁt /:޿aJ kCw&en.cs`*iyڂ0sG]Y{E@z٪TmP/BÅ^6o*X:` .*.A2/ R'&&"{#|Ӣmˎ XI}9~Mbc:٧#%Eyb/NjI,*[˘q,:z&]q=/^v^Tk"-`xjtnvxyaABCQCÁG 1Ȁ4 },C$_ -G!)~|R{^XXRJUç *> 0\TC몏%F@+І1* r GII+pl\nURc煠EHx&yUE47eӒ{Jt~Sv|>w|<[ !PABϷ|?[[r ̾q"{?p%k[9VeQÒڂ*a)t1PIBRIыgpITt>Tο"[ |>.!臓Q"R@:ft~P -|eYGtE ܱ-L=Y&xC&vAIkYP 3c HOn2#]OTDYB&/ xOn1AaGBjO hp>|.:?Njo_*:z1wTn~)*xx% -i,dW=@$ZQϘsgDe27@myF@FU~9tu LD'/ k~p?*w0~t#09Exq ̏>Η=ޛE(3cO!W9q{sյkť[mc]a5UY's$JJ|D[ݽV xb o >f+n)}Qx>ϧ 0P?Rp>P4zYHgT= ~}B:bw1Zq|>@,p8 ΈaVqF,qv/٢ЯFO5N)'Ȕ>!~>OF_NtQMgcC `xÒk͏I,3Z -\UA3vj&9"{MbcHOF6@;EM!{4#xjPY[Ykņ^aO;k_AYػdG JMb(UDJC8M 2pُj=W_Te_X'.ީu.{ayj9C E!B7幜eάFA˹>Osy0o5 dܽwChѢ\O\ALs Pi!s+(Ag|XD@w( -<}(`ac~t"2_RĝX/c vzNy=M\xu^3s)[O| -g8=YˡÏT<dAi <8KN 'L3bQxM%vr3qw=c8wzpR?@}6txi`KC!Xip/Z˒gF|Lo$X78m>?7\&P 3uxL @#%"zƯzR0VgюO qQ-/CPu"@-tj}z-ب1n -\] ' n0GAPQQrkea|91N6sJYE.~j8M\!!#N8w_ΕyԻڻ)n#%2xn y. ̃0xAEO-Mx+(Pf,1͈62.2i~弅Bnz[i5X7`B ùXŷF~1lLn ?2k srO;ýSw_vKs,$8M'NAlcp#%8 s9 [USZēN#q8p`qǂ{q _~lVx9(F@7ZQҌg`x q\9pntCh?c|)]5DĉL q;LLYLcnlԑ}Y~i8҆-vGq R=A&a&nWYe -=UDFR ~pQ`B1tqG)DP8X;&T˜ƾ ]&ZH+rf˸-Q/+sa[nCUl|핂&abZ-셼4韋OWU!ИnAm39cay`ŷ{ܗWŬw&-]>Bcዓ"27zF!I\hsoWŵFV0;| b-ibp #M$𶉬SºPh5)9"/d\V+ud ZrgV{v/Z2x֧`s}0t&J MՄvդPq$K\gdt"7ݰ-jH2"# -ӏyajxW-)rV]*mb`C8OǑW92ƑĻc:M\>&6ĮBϖ1f>M#z|V5m{"^0)D0Ngg▆`LG$:-_ymOȄ.tg pA:/NW vUo^mZ2gs @>gr#{b;Zͬ7gZCwz8垂6U_+/ >) P0-.+"j0Ǻ|N_ f{lܘh ao6Fw^_u8H0U[bGZ~u e"@Ns,lC9{17uwv0b, VUslLr>]U+_E|Q6g# 0G`pDZ!?vd?SVO(1בan퐃[ƹEF!㹼4e_ovDG>]_޵q-=3Ы慂wپflsC(e׋{yv.:5FAPwc40/ξ=sqO1y 1pz'a)w$P7TN|ADo 1,7y `]\@,N:2k]I. -qbWvJs6tĺ t]4s5N1Pĉ*mb:A(e $.mTb -%C& -NBNN$& 5L 2"2BL" xЩ8w?]oq_;lqueL&9܍kqaȉuy\(ft Z&~A4#`&L)LCQ)^q$x'XmFnTM;bZ8Vy09+peCUf%(w%uzQ!#%yW H$@9Js:3pLrv{ #ă2^Y*Zp0"" -2 uY70V 1z DqZ,/E`V7 -ج0sq\^-!ˁ@p *%UShI·De\7 -h N/ -qseEa 'xv%D`Ţ>#H,whu[kE8L:vAy.h vƉým<L2ۻ\A8MmG:'\nG׫T6O: |W}h<8c̚ -I'Ģ}CyGX<}uҪb2:RÒ$B7Qp~iӷ&p yUnimi3('ِpAo%[h/"acQED*$#RKLG0 mMNx |!XH_71͢m=3eאַy3bf&x,m 2r<:z8NCq n39@Dդf‘$X-i/#&l6tNCE K>b4Icl{ku1-g,A!5Plemtpl2ZX+x`K%_/ءVzn87:aXK9Pw1qo1Qg @^HdkH9&wϹf tu.n<MĴR"¶PIi:;30/->$EŜGro./+pdy#`3ܩtl@6rL\0P, ɉeO+V؉uW^8k@Bp#^L]Zi#ߪнvIJ:2C6䟮Ҟr2ZW9!\FFbeC`98EĻfKuDxNDxj!@PSQ-konm _8FNq]W>o]k]Y(V߰aO`G b p~V͹]|~%( -P E%k -g:JIh d^pBvsg -` |~R'|ĸlUs[E{$cPIsEP[$l("TRk+7ey[Y;8m,9{']&q$ԑ;h4%5lovs4rv(Mg ^s=Qr \l;n ,<, FZ+k o7Q‹H[̇$l `Hܪ RK'>x[x3vVsIfPůîA L 08G+:'w/oLK̓Cq - "%µoF!j} ߂Rӧjr]=_WU/5g! [UHBoV`(`^pz<5vxn](؆$|l"2wcUrEύ) Թ,ud,2~eOs(d2'91ŮVbS}?Et1>΃"JeY -pޝqR]~[5!Fw -XJX2VG wG¦2DE}&FKƸź5.$)'$ |lP4N9ϮioMLB^b -b(,-!5 -I@J0A 鈂& -bcGdMIaGbaJJGaIdLGeN&$Q cB -33 $!HIYӑؑ$&1 HLL&@W JH„& -( MhZ -C{[BZ@$&a,(()iIilYRҘZR u\؆oYRTXZ[AYӒ%$% I((5M(+S:*SRpDD6ahU-% -HȂ// _FB6XYZx-)x0 dmS -T7u D(K3̸,ud6Kٽ@Du;k )ͷ3),+og;=%ggbvELyDC q81 qvC& yB$:HxTE`q9|N4J3d;i 2(oqM]% xSɧ;Ѩ?8ѨSqy78ZLH1& 2&R Iqn 3rcp߉}*H,ntB17Fn+*5uyz$^.;8M8v,82v;M/Ч' S1+`ܱAҍʚ깮c6h >GsPIh1y3^Bu;E-bg -=L5yMIE٧+ E̅:>]x8E:˝Y!L܍DwSf-t 1\ Lw Lͣ]ĪIc)>8 t 9;L8>P/д-fj7y%n8 %yWXܑx2ЇA.H/|TRDzϦ.ߩԫ1u&R IH40zi }lx n@.gpgPQWPJ8)Ș2p2q{ ]>Cd B(X08>c=σwTn9R ǝ u2ߡW<0nx[~I9zbݾa,O) JCj J /G>搎1y^=% DOˆУf9!DOP_pͼ'ШndlE*!7yٍBf{yULH#sHq_B1$4 -ȂWv{v0] ?8GhahRC!pFnJ4 D(QKZ6ԞŒ'}*{dn$b1g@bq 㘷Ԑc`%,q. Dx 7Ⱥ}%N wKcq9U짮t Pw"*ďP(Fi! -y!Nr+!7XQX4z*vsS9` -N8*(5 wx]ح]C9`#h܇BW9% tc=B}҆b1>J}T8kp\~p_Qy/̅͘<<_4MN((B ܮv{IA^4p'w#`|T8P8@}<Х_r^Ef$\0SS]1BAX7^lTZ7k!#lvĮV ʈB J$D|)!OP?"3(]d0 GD.py, ϡ@^%~D1G#X.ɅzΥΒGFA VCFZ&̘az,z$-sf׿JW@L|N81A}g/̀aE\sp)*:Ż"jndPO4И0H/"q"PD݇OO9p+ ov{e:זpw@bq/-apz>7&QnWJēfD Dus_9E -s_Z2nۙ3PS>N{[*q:2KjgX.pׁ):z<]XB'ؗ -V3Jgq?HB^~bCw.Zr ;Ѩ yv d2o_t0p+褟|Y0gNaF!yDn>SA?)5ϥUjaX,hA3i?ԋ NrG}'o y"QF լK8-4s; "gvÐȻgN$jL0F!ǼpRH]E䋟 cP D!"Id  (;fC^BɻIfJ!xF sɺ֩ -B2oA}a^2U{.1pW[e -1C%;(HJ G -.SfQľ^a9d_ u< >: }CEd>䉨 iev5H9~$EM&TYn4\֠aX)#pw v!LBI+̸&9좧t}o`1Crw1@>F^A%a&V؝}[l[NDZ?͆UIJm/+!^Ṛl= OeXem ZQַbC ,&) VM; d~x q"ࣳPlgСyOrt\J2 w"c3D#,UP1}u -~=B}(g%J/ w".sv` ,PCNߩӍHP,A<}i"Ƿԥ(aק>M?}{9O%GV{x0˝Yc,+qdv`Ø{_wm*+e,&0F`MOY)k: 9-rXfro'p̥وD %.NWp/NuBw̙Xyɱئ.}B$ J$@c1O9Oc,A|N]؆2wq:2@#XF-f̉|bE=qnWs,l>>(XΘ?8e WqgnO 38OA7o/0NXܻbGy(Xͼpnwsm".hEkS.P܏H8L.|SFrQ6s :y&y  !ˁ,|Ϥ_Za,'g̕.wia0K^k;[\?}:Fs0OcqxhdAL:ζzY 3T(`7%̆ci ==z żG>"p_#Ql.z˻_lƹ%Oy؝@O&b9h!a~nf]n~k -S^H@|ķPLa$/?{1T&mtDK=@^Z^O&/2+ɀ܃8v -رr D$e|AibtcR7*={ j4n_8u *(d0!ʏiٞD֏Z; -[~Ч`7wSFQ?ZBkEV ZS7^-{eYst8wyzOُatoN{oS_ HA}Ht'8u֖W - -%RKLi,L:2 $TK\0" pFAR}5VtW)Dw.,f`H40)ۉkr/ش4< a]N3(HD06^-,g9 2naoNY2Zn \ Bk'}5diIҽ -sWPJ$Z?0ϐc^$.),¹2o`Ͽ[j_MY |MOfv,@ D璜kPo2 m)%!h/t2d?͆ N$F&47Rj!`ĠɧjhA(N|(~ ov~Yn^P+pa7M1p:<mU&/ -*s_~ypw"Vn0 ,c*y+ZML>OWm9378HJT - LA= ^$E'o vKS02wTrY -gdcadS -W: A`t b""""HE)(IJAF,68i! ߒٵaOSeyIBUD S/+d9}99IȜ~ ڜpQkG ( t"񎑓9zNjKQ)g!9 ȿo636u`lba'2ro\9>0%qg,|=<(sUmUhpʵOB& >ο>1!b,F~{?&7ޢ0a'?8Ϛ-ɴ1qs]?7zjِzNGҟo:eH^ ^OAv}Ab;0jQ@۶ϋGu9uvAknSy D#GoFB@ɶ&g=TqZXA d_1G^5?zִύ!x@ߩ[;96".;AVFxC"&iޯ8i|J} Ҽ'|~Bq>|=;kG#/"nN>nkxtֶ\w6yEO|??BNxEeǭ|xHmc;;O:yPj-Ul<| ]-v}Ttb~w'}wÈ.zuNq׼P][Itt$ :%7Hy}z%PE"pg> '9>ʠ̊aγ-9ןpQַ_1g~CCt|tPtIs#&kI#\RN|_:YMAxmx%nx~u씥Ugz\C~g=I_XY? IyySKA頢v ~ 3AWD3\\K׀nz#^4"r#iFʳw[&y@~k2``a)|SHBT3/ 6.6&X̤w|Ji,-T%9336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.252884f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-5dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter -/ : -/XMLNode(fxmlnode-nodenam/ArrayeTurbulence;children1nodetype/result2attribute(turbvalu; ,2stitchTilesnoSnumOctav2baseFrequency0.05,feCompositininSourceGraphicoperator1x0%xw10wheighid)AI_Alpha_yobject/Def ;fractalNois44GaussianBlu1bstdDevifeOffse1odxddSpecularLightfePointL1-5000(-yz2zstyll-color:whspecOusConstant2(Expone1urfacelitPaikkk2q*$ɰs&v@8p2 @ C"  )b+Y|!Tw0&D޼b& ZQ4ipfZ-pד-1ŢyWH)ߍăҏIg6ڢVQR[c,z6MnK @J'%1tmUQ[5w - x[o9~VP&`v -`3bxq6a@ШڸTdGĸ%!*.ů3 U;8x lj`8nH4B!ہ&`4I˘#Ҧ:]8UIc31 @Ǒ{&=\%Sr꺬} nkDBk(md~\}bV^=*эNWp/:J Y(l!vH9$jXYU264ϋJ&h߼c/h$rD+q FݙUlP9=XZ"__FMYSy2J ˈ 3DJ?Úu3@HWչGr{m0;̄xBaKjG3.ߚ,-˯ x#Wg Ѧt8v L 4a@}"P0RLt5뺌n AMpN,QO^cSj3M5hiMk -Z:,l6{e!Nwvjwݿ]G"/%aފX~)sӇųk=LtM=h6XJ6N9ᜌk"rNW -9pi FfI7f.j5FֈB3?&)S)ed4p=nՅ_2o,w:쭱^rMJϩ5u_O_("UӀ Q&h0`p^* V-x]@yD &N -L  r©(XMMf1PGB&[Eq  %=j555;&"qH8C+@Q&JP"$!)D*Bjh"!1(bBcv3!0E$=$zH '*ihRPRTT\lEUh\Eu -VUPE b(Ryy<<{n}P#<=iyD șȈ1Q<09*UAE4IB5*PQH`',<=É`J8GgzZFÙ$iDj+" QQPQDDT$rDHXBk* -+3Q Y.\ׇ wjL/H1umPyispvP=( lTeɌۅ4_.{\^޿ܵymD`2&J$*DARdA45,T-xH%Q-羻v4Y^;V&SMY[̱7QZ -P,,,,,,,,,,,͒(fiO,)'5uݹl_;W^$ -cy)-t3Da.lDyVl(ObNMN>cX[,& -l.|5kIr7k?ֺi<)'Km% -Ӽ],{/;KvoWymkj} asGY:Uӷgs&QoSr~w*{1l4麚h_* Hu㕉<[ilRdL+I"U -hLZj"oJI f 1~."ˠZF| 8yZ[si? A2z!-k=1":$ZWoKn֌ߤ5N2F[.z ̔VSо'- m/I3a ֔-{mCQ'>K9;]c?^@M6-;t -^9z_hmCQ[/Z즽I;3&K;ǁ) 2l_YK g6>ĮzlgrY'ir(HEҥl !&5("mT>rqZ 1@~"P |ׂZŠ&2Otgq۳a_By6 |3Bk`986Eg$JkþpWYBBYҬtK|eXRu8 95-ƆpF9k.)m-bj@fHP)ӌQWD -(4ba}ߎmaDS+(ճT'Ė}_YfĤLfhzL ׾jʊY.υ?Fm xsQl5kJLHu2Dje?)lpQ?T~F }o=WC'BRp{+X;&7p ?n3 -@(\ !g|$X`>`n3^v?QW_%ʦ|A[s`{/ h [$;~ KW`36YֵoU<(đGcuHgaV8f>2 ޶[KUL]p㶃,8BR^ⵦ=, -*iwQPǦCT ]j)gq8R;߆J/_sa(B0/ph<O]u}p܅dh3ℬm&Dנ~,̰TBՓeCR}! <.TW ~h -۔B!߶!*ɩzպ @~{?Qz+\0;_3KsVPJ"jea&M2}$k>UG _cӌCyq(Ȃr1(g`C1O4\ -'R:ި5kEgʠ{N5u M?Bmeoo CRQWKV'y4x9ٚ{\mlI*myF<~^LA,!c%ܚr Pɋ jɼۣo\Kxڇ@|t]_Ѷ4p%F$L9BIK [Yك6aYfYO18*֮AԊ/1H:{؏sL-e߼J&FJnP7kD)& Za>nWh- !AlE6ڿ"Ћy͊GeFC*كC<+m#G qJҩ3:Sɜ rPe#( !j,v -E_C1!設NaNtaso2)UyQQizlieˢ*/n=H!m;;n1\䲭zs3@38O>\q`71\*5ٸ`+ã^U:.kpOc( HR(C3/E' âÔ6hzmm}3Y,Y! \QݭAev sk?1}a cHUZ$Ǐڭkkgėp6͉j}ӉnpF}6ZLcI@tphO\CC牪 -l,r`\]˿#lSl%,(-|PF qfF"B gz9SsDNql6G©PlSp Ay]P_{3PxҾy>CteY?s˚by}XE|'ۦfz$ryez fo}]DGJ$b x`6HH< -+shլq55h_'ĹJqm>q"2tFRIs3*Y3Rn Qvx-!^$kZ` m!Μڸzog"NYELFò@ic"%y~-Q*A7*\0%7a_zdADQBEe!fIVʃoDxPGU5b Vҙbb: Ac$ҥ,^GM>SRtGQ7+K z$#å`P*R'|_TȺF5piRШL9,P;uG#dYDY" +Unpgg3p\QbMA|@q:DSi^uHK+~=#D$_뙗H̟rw@5u ~כ,zVUR7}H$Akg,r;r {k+mZjc};12LKmH8TL rk D:z-4L` %]HjR/dgtF/i2rԆ2ϵmj9Bϟѥ& .Ă!zorH.[j}ʉ)B1(^OSv2r`RB5TQ.ca#)9A\w) -.`h&Dn0'TsTDGVi{ dR҄cP-\E'$1ϐ EgRbv.Ѥtx 6IrF8;MZ755eK`)Br0dڙӺ63埦K`#TOW%Q fg H5l1EM̤BSj(#'1uJ Ě6/'>#xe'3%=6Ms'F-KXA$% xۏKXv`-I^x;c{פ[[猂rNS1NQqIaPӶ3v5a5Ddjy EE5k1n>@ |ު>̑^6'1_ew]ajIDJ%@?GJ2+KG - DfPY穇aGӎDp;>L RIf+hPCvKN!#T^F )]"2/.c(;H6ox]|tH fihd")ԸC\\־Tmk%pD[hplH"Y r{>X_'bq-m,j`i0SBؒκ4S,`n",TqA%R,*V=L2]3{F8ν.{|^l˔}[ -B/,&о;GyNUgh,Q T -rB0%6ZIC$#6(伌4X,7^ԷJ*6Pv{?\\ֺ19gMzkm;d8dۧR7Jk1zĕLX7^Qg=m餒^Z*N5[5pMxZŏ(j%m6Z!ɰJZi5"Qa=ot9nUSUUkrϷVkR*x\Lg[%ϙʗEmogv*+b'-;?//OO!֑qSW⿼e|:tIfi-[ksƳ+Οobj|isZW+G$* H:qWZgk}8O-/Κs?Zfε7׉^[+ϭyRD;8"ԺZܒx~ֹKe*|zWV{fY3oֿ֖uWĖ֒Dž~Yzk}]ߒxj_k/uQJoK-Y,xrZ'Wqk뒯깭eU[U7/ΪiDrͺ%wwϊӯO%_[[ \kߒmǒ٪r[%rKS˽-ɭ\r%eI斴sKD%%wuL] :liײ۪Wr9oI[|~j^3}{Yo'Vuu:r:WGuYJ;r*u]Seo2U.SEV,8kkeVO'65skݹſ_+cY*{oj%C}u뺮NDr]f}sMn|cm#uV=k1+W;j}Zϲιn+gZ4}z-}KR9ϴ{r˜Zmezbڶc^m[f vx>iZ',EYޮz[}qmbL9 c ¶Vk۶:}OxZ˶bҰY´eʶrv}Un=j>],Wַvn|{ ֒~Ŷ븓o*'K~fS,鵴LWt5eU@WjO}S/ڶ-8¬Du;o\'FTֳc+82 _gY޲ؗFUS?Wur( |YJ($6hWL߄. ^|K>r\fuw±u+hq좸]eF~}u#H}OT9#3AŮ"uFbA1G=W߇sTO{ߏ18zhb*ON_881&F8^27onEJN dAZ5L>X(~Ttr-6Uz~#a+ -q^hsK];6P><;5ļR |wۍH9Ql#qú C<'ST8~4 I<.{) -h_Fq1 -DR (^2w - -,*8R2 ؈mUSe#*S:T":ř`6cj7_wn^cziblb3nSMݖI%W1[s|g:5ڽ5VW=쀶ij{g-7ߧJ]}ou>ƖJ_[qֶZnz曱WWWl-֜{#i9ל[bMVw~sr|u|q{)f=rJ=2oת5n~뭯鞐// &"D K6!8ؼ6cVة{4J,u!q%8?{3λVśs/J}|I5$J]\j Pa/b&z]&B;u< 4%\k5I7uONj:j&k3חL_yxR_E/XI!vAE{]q,!n^wE.H OIPHv:kl}u~ƕߛyRNm+Rifl'x?~JWM-_5ΗkwN*k}{5zlVnO}n+7xY/z?R99ڊ>O3j_{)/ﭷ[cm9~RokȾ8Ϊ;gZ_km:""G^T{Tcu[pϸ.jػ@L"%Jw|oj_y>oSy |k:㷓O*Rw6$/3[|<4A}ESٳF& -`u" gT"QJDx P JD2RB dQWV"PA*}x  ]AD$D- jK,HBJD2R c4.ZH@mjau-}.( +Ad2*ICfhK?ЅGBb/U! *RQPW@ -k̥*\:"9&P0ZH6,@DhΘMI^5; a U"˥Ym>=*4jEh LB%'`^Avh%":Ђv(5fr?AROC$@%3\ -:fHwFG!.'` a d!dЎx &! f/;#Del uԋN7t3t@`#°WDefܗ4R\X8P*$Oe-A&AmB> -J@xH4\T"9x+ S(\TlPcG `BƎåV.`c0?CDUX4L'BW"R@a<,ڈ0'u3@a8\R -d?g Aq00$@R0O7 T߰j bƁ9> -^-ufnƌQRfEl7@dCxiV -G`(6X`[H(. 6 Tt0B<J_mv~F s/>V ",ffʃ50@_!qKqUM -+Ρx'EUyQ;geB&<@ -3V4 -@LՀD`24]4``*ۧuޣQHzhSYX τE.p X xu6"/cQ}!6Sj=ިjENFR+8T+TE{=OS!vMXG'q׃ VԊ.Z61 b*.8bO:߼sq j 祼'y1VԸ19X'1No[\}O&p㰏Kցrh!'aRd︓0q0Qz)~x8vQv({.vT n~︊XE" |3?ڼ]2却9]h@nVVeC}uȥDu1z8`mdHn6Ka.q$/M|:于md9zBΆ}P? ; )f+q#\2u;uA) q#:-BmJNO (rSq3^ona'mf ;Ns qݩouf3@Pĺ5C(F.bis jSFtqi44q6G4b޻Xw8E 8nN -1L>@qPiTi]ְOm< 5jJ w~LXBV^:S,_{V`'uXuK(b䣍Tua`"a(N{8O23 -Įt]1QKO< rqV#4,r\})Rd9{WฒܸCмba(hQwg|)1Gmzg;okʭ~czT ۚ:Zc-J4]^X|',cwf-af  Ѹx@eRY* -K`|:BZut.WXl.e A#H2xŒ D#%eh7 A@ [c~(!a"ɓ0yfJT&|5kH(Q6 e<"=u4xheaP@0`jfvN9Q1Hb6; FhkQUA`<ݰ(<f`%cwf^`,2(]ƢS6AX)S BS"(a`§!$dt6>_H DLL8* $$lT5iN$(@b[ HxJh@ `cB >P"T"Lq(Q22.0`-`Hc@mF -I!9V"n\R~"%4hfb[&RNad(6AXJDIi0͔0Y]4,͔0)u\$L< _@mM3)&d`xMEtplg !|6V!<""SH@X12#f Aapj qpPE!4(pPE!p$'4 -A( -i6`\1! -&#5wBN!D+I2`>T&36o-lcSwD$olS\.V!MXj"T°xhG8"z`' -HneB^, @h`k*  - z"<c0'z/  -l*5B9z, !! f9*pG #qL<ltKԌjT:M"`.+@|, %"i0*@;085D3j0, -'E„u? "8N mLx -m!V"'ܩ@!1;' -0NC!5T>Ί0KBA=XF)B4X}4Oˆ6TOGe*p:琰/"h0!``q1pJDRg0P<Q onCºHSU'.ڸ - -7 M +i`P}CˠѪQČ!Z - JB Ѕ.m+bĐ` -Q<NB)8 027 PA@ mcM0TJ8@e𗌁D8]vjL -!C@ 3hlf(X "tq><  P7aDDZ!EDfǺ8QDT"/jH&PwF;Vg RT`DxЁ"p)SA"6*eVP LCJ(8"%'FQ`Pl dʀ0\(P2 ʟ(!'"@EFX8Id\!j{PMh -);L ¯*"P=EuXp6aVx"ړB7aH ÂIBp !SD c@̉B &F lcB1 #'$d0hi&lCp* v -=fF'`c^O{_A$!gpPgvJh7tsP=G27xBntN_5֯֟t/m]piɜ$hJC-ar`z"nSfi&x )0A? ~HE]&,r?|vzx38u*(݅P`I!78&E -,{*ŕQT}VA f W 5 5c2K -v>ytJ;h1Q6*ZQybKu'-yt]u*JsC>l}K/Glh_UkCh`X~ /\6C((46_k<>3hyugo -a 0pVd)x?{[D 'NqrhƓg7K \e ʽ -hNSՃ`ՇQ]A"Ep4ʟ*H~)ݲD4 =7\0nɌ52d7c{$iaH#&T7M|`i Y o`E|@smh !BvAlTVQSddRSܨ -Lq#=ƏƁc[ܯE7{HLQD߶YxxR4":EԐm' -endstream endobj 179 0 obj <>stream -!xn[F {^ɓw JD8()hdo5sMnNE'zbq}6ȓpz -z^_ -TQh6I`u*&mmQ U8M\yQ4r^zv1Է$[\3pۉ nJ2]2N'96cr>'8?Yd; "TZ$WAa6_OSa1APؿ6 ƀOcGv׃@.} U1/(8Ewzvk uكRXd\.P1V3/ܓHG!,cK@g/Hgq[H6R1#㘛u4w.l)ad*|w^, -_~3>G3ځ0#;0£1g/_])Z^BN(бu%8U]hvI7RRGƇDBʐR<Fކ!ܕk{L*,Nm`ĭU6"D DJ$dn/ -NYpL!E\Pn:},%e\T4UH17E47;2bG0(z=S{@~ݢH3I5:k88vNG]1[ -ʟOJ=r2;.ܐOzB<YY.SY)g_=JhRlIuh8ȫz& OxfyAy > wF6@u5i[8Fq(EzKD!5Rg%ؔ-d@q:U4+pU)C'fKS2'Jg#zqɈaY; ف<# Sg!赫*u5&:Pھ@QGDZjNb،a|jI3}Sp|þ sU*r[ëIv>Fܜ Yxap q,Kvd/Ue9ܹd> -휻e9d䫽d߷V^kXcN2he.F|_@/(w` --x|L/7L=sVpCy1JN 'עkbmˎ*)>cjGiTRӟ1.>dE]ϺMu9#AeZ6NK3*_s.cCZ$+=df΅EeԞ .Y:R6 IVw1- .l\ݬ a.ALvZ{,pVIN88gm1Nj;OPq-R<եnq db@ Spb[Բ=b_]VԜcf@l 9\2G-}6A([>BQj?SvvSnwEa,$#- 0X0<N&~9HQ.=ϛ l+|`ãbL^ *aQabi$T&181I ]r&}^bN9ю*"-GkFLr(HDE[b& ڪ0r|63L8U9鳏8Vs=*>=2!D;QLhl;fּye>{q+5+DgW,@ ?0xP`R $0S̡c1v`96◖+X1n~G9F,bCe`chNG9 wGe v,[9*Ќ$sqXiy?IM h-isgn|pO(&& ȺLHd;3-sV3"T99oN97c V"g /bf(Z[ ,,~c9M ӳj0]NEHnh -Uٔ"5}a>'wJڽ k1NA}"o'.߫`;"L6{bEET7w.̇KDf̯°mX\,]fՓKۣ^qw_8X(fQ0YJ - ™g[J.P,qDЏ+B7Nw_pr54x!(&.gk?l t/,N q#1:ʷ{)eθ~i G:_aN)@Uⶍ:V m%NrQ/!7QlXj`]z#nAxgp -7вƍIsI,t3R׃c -x=56'ig{F£yl#ɚvaMm`\8!#&h2EEΔo[C[̴ B$'F弲8 WyĴS, G~[+qw>&ۖ̽^{qZ9,_o+[\7}$ZfA]LV$ŧB- L@ВГFSlEϙ5Ob6 @:,UފLΞ\a0=U4 ՜N/Җy(5W~-j̩DV7؞7Rs"|pd2NKע^#PM:T+ J@@ˑbXIծ@(7״S" Mg7D -u_'v$Q ]GX3p8D_2ӹ9I -0 q,^i.6xW6Mr`IfH7}.:FRl"H -u-V{U0!Pm{ٱ;!'G7.ی}A}_U%mmIB2 -gH -,kv~3業Q"0'PK3CծX5Fs㉁Ij>J3QɃ,8/ת%뵗Aִ΃GoivAHu\5Iǥ̵F./ؚg)Lj "G|~}!GfZgVJU*PzICkXͪc0v0|,Fp;%a=y%?;bHQF-l͛̀[LjF4cZ̼z_qBԷ˹#Ly -7$KvVN' IQRڄB_{B^| +BA@ E:m ꠇ%D%ի6cf>Kdg}RG@BHA(3ހ/lƴ_ɂb븥j}q] lQKip]O.Wb #*;'KӲ Ufʐ8dVmvE@=R#* PW<ݩ{Wy,9f q-j[>}Za݉njjGɻd(Q/]^#Z.ň:OsnK0AW?OE|^^#JBxae>B&D¹Wm@=G`e@Z Aa!Zm' Ѻb?J, Y*_y0]o(=;IIM$:j_*0SG Հ<͏JOɄCw -XeP?`\ ! Z=f'KɈ~ΎN޾ Gj(2 ? W/>'>-,ݚ(<@Y.@埬Uq8!eH1|6P@Xر*Ww.f+TS@߱R,g Q 'wO6dM7e{s -h-!#QfBt%?@8Z(9x5T|ű>$96xB*u|O olZ ]O\noajO_1\I$ b;=` ?4#<[À;֜0(K6#W2Lf5n9(V# *4s*%`$;Jވn:;@S}1ΔreH;EΉĔN5zYڞIqHMNI8,%x`243e8o0.j4>4O|Eq#iBm`*U/x'[tySb BBu 8A},HHͱϔqAavhduedm*5E@$QgwW8GWB֊-Ze_n;wѸZܲ@7'^'Y7Y;D"K ʘO=Ntn20.Z5^BR.>t,t1 0?3Ihl_T{l -- MֈX|)|Φ% r[ Vnpd'|4Q@ДR3":8W9'UeI+0 -|vbGm+8LSj)3mgoB;ʥM;Sʐxy"( EX8F{Mi79sSz\*QU* J%XC,)7v1H+VγN,˯ӆ[MԲu.]BBDB_DnڡZ i˥jZ -nV?pU]]WBb.}kS9&kE}x!"nV)Ϫ*|jbGe?zqqdgu9BS4|K[ft"*W!K*{!׃ -_z2* EF»_&quM;&3j&| )hcV&U[fW#O|X!ܸ){Rcc}WbM 4m34Փx#;Gˆ%6 l=mM:{l4 \ ^ ֶ_tu8` [ɻ0Q6FpJi1~ f$ *ZU-%9tiNʺG(|V1z>Yߌ[Jt-qXhw*UxFoNSU/:⋩I6i,J]6nЛwdAe&,\ZY-Io#V;5cC0E<FxJ-&RY3:ԩ`d6P*an*rC@zvi1 !IYa"a),z8RZ=Pd -rXk]1 'P,P}F/BZbS娇9:&:fSWBf[oqr80_8uC(SI0 Ν "6͕OQJSN)a!FKPMy09y78)g\?&_zE~eWTr=>Lz PV$J,eŲEtGܢi`_܋ WEw~FZRsа(oEivAͫDV30p[tm+Gc)j}]|K0]7IϬ(n[h zfu>_|vI7W=bL^s@~L)}s-3[VP}{\zt ^''xA- EMF\4zE#$ų4'}9"WaTUm;\꒮Gʙm"]ߣǞm&~-!p2kp*~bXp)ޠ_Mw^y^kbd)'y\c7:mFT'ƤbS,Ww;h/M N=C5jr<yF_8WHm)7*} bxV'F?XJ*PRGt,2+IoF-@wAeɆz8.ʲksƝfـ^&戒*DXB&}xD! e{f&bYUE`Yd_2Yμ sFNёS Jtv|xvrK]Ntj ܰ)rxحIz; -$U.a!hq:3_h1ׁb׻#יY1{0n{fR6P 4d<3&ّ'.+5JR3_$㥗u1DTr0{?}.w5_8ߚfFץL2wE03v IC#BB_KQU[ MꋽMys8IE ʏxSCgzp&n_ .["Dwa푐 -f߶;FʤhX.w+i&?LD=n!fZ28M)ur]jKÊ9Cwtm-ߘ:HJd<6Of%o'Xa ;Ip= zy&bHL̼M̚!2L B$N5%ȍoT~D;(1'ʆN5㉬!Kw;3(5ɷp~Q }ׁpG&9jJV  E1JD!Z;h^BXG bWl{T-Tu@A 2]hXy875} uW]{(Bg^Ǜ$;tQ>J%%q׷nZ#:툳o(ؖuMȘIJC決Do܆U 1*jJa"$7ZSZT'gqYA|ex4u_mP -g:95$Ld~p|{klBHgCúå[dW^xjn؉x k ;bE.@d;F?VAVaw -D9nLj5732_v4ਈ+xBfNeZJ' ~X!ftú7uT0]0j -Dҧ} n()C̰'Nfd*`y<"U2p+T ;xAsKKnQ>J]W1x`EKXP!+FRjnW{B>a!F4E}P (יZ 8+.B,څG9 . "Gழ'7&p)w9 CÕ`6rMb{9ncZ4<_ NE`r(F.蝲9n||>BmrcGncSjQZ Y^['eXս6A%.8x8z]VVIR. -nQ!BPm| Zw.UU=+Ǫr<(#HDZ4CwK-ƈ`W$x+  -z4޴* E% j'HqdDQUt!Ӯ)w2l:Ѵ?/X׍Ktm/FZ08u;'ܖd9W'iK{vaшV$Idh]I">. kVyhWq'ɉv4_1sUaH{e~QC.hb^@ҏlXfC?PiiBÉ`Ď9J$; 9x32"q B3Pab%DV?`p:4x3_+'Gu?V2<':1*SCnf1Zm:oˮQ@ xঁB]W0Pmi]=4ALw]tى=洋Ýr0~G q +hl?xfqp;tX&"&.P::|K"FI@q8m|9z›BLcF9 5R7iӌOcdrC25ɰ8i?U hY_Sp!na]d+7!B"r ķQ·h{vRǴ[gMRru(ܔH 4cCN_LGBw@ -ږU}o[MI0>6Qj*"fXwP`6j&icLGwm %_tDwf\"֗]|YtSn\BK>d4צ봣UNLOϒ! Z$$"K%_jlC0!lEt;8>:Mpd 9!ɁpcOLo.-Zjfad@|*- -m!]ddu!esbqCy2suXK3OS3)b XFnֳ1٠$TYԣ* &?,YsȂ\2X $e9 k 68"0w;@_˥A|u(jFH?e8r!f(/ Fr[?4kcLȄ1Tg8l 8=SH|hxqB{bO-2q:C;gj*_R~e7~VaJ"e -A6BHQ54I:r* A>#h]\iL\[9 -Ԋ'%O]'a2 -n_3^S!zN@C k;:$sB}\ޝǨ}?ps>B}G~1;хG$3S nv+~!EoMm EEJW,}`nN|3IHz~#F6V FfGn:UJNtIg%e!'W7 - ϫ˛Yc{?dlt5iZ7 Jx h%!ܼ|)/"ei+@ njPPڧ nN[f*-K(LKc ?fTɴ&ہ4ڍ N)L4Pls̲zVCy C( bvuGG'*Ze -䲗 hl7 fyȍLS6Ԣ*sSAf#5Ūpq-MhLY r4GL.쨙 S%tdC{$HQUDE*9C1 C2eޒ~J' =kF=KT#W,5MY]ߥ2/&KaFgS6Q a͍2( i*SohX+TuPԚR"D㏇ٟFTm8'KUq+e!*d@9M)䬥{6ٸ6D -N7w8CDY ?[MNW$|<]Z )%qX"` 52F<+N0t57tb_F1GJW'$q>zϫkI:`J7VD66S@{ׯ,)I#D6ۆf pr\e`Ӷ{5]ҍ}EOŸ"'mp`:b,F4OB~D)._ 0C - ߱W4mmA^ĢaD1@/8hOu! &j † rWRp1n:%"#TDK=,/ۮNEFh>H`ܑi2L.<-| aDsW=eR,Ha:њ,w$A)-t Uq˲UTӶu`5F8ӟ6'I. ]D/(ٽbA&T\"ǶVӰW!'My@q\@< '9"-p8i JվHגBrrɀ-$he'>3bP˅2:̆]UPc=_BUl8jNbRP_\&l. uEv9KqTkW%PnRw>Bޛ -.&#{=(& Pa0˹"3n4 -#PԲ6Ggj< KexJh%\iSЧxyۖYJ{hfk\}f'^&c۶+^d?o'❶M%2{qgd\S;5+?r*TkR5I5Kp"U9)Za%]uڦCEg?g(IPveae=~IFd2i,Ei)㏈`%NLr&$LY03pf%;w%W55zkp8{+G}b 4 uрAOqN0C:3,"vH/ ȺQFqJŽ;k8HH΅s ٜ.[3  0>0x@:1!P:>!=ƽPYG!?=Gi{w7|lCYIJ -+bO.3;,Ls DZCga`IN"$}*6ۛcqxu@-˼Nwen COCA|ע6dod,#FDi=O@xD(m"XrDAj Ľqy_B٢g]tqcfñ H}Ϭ5R?:!c\\Dg(֍$FD$?H(]?WY!09Ư ȇ٣??fʵxxtl)w8 O| 1Ns(+s( ǘ2v>,H_&!O9;,q(O Co,|ޅa|^A[($k -gBt|)$We$L|2Lr;8xQVvֹ0~.Sτ7daD2Q9hjeek&U"m)& C&D$'GsـZErHAaO#>_% zC#ќHȝ+r.pAR$S,4RJ wMCCiAJbvc 74L-A&ϣ 8Kehꝶ)l"MdX<,K*{`NvB.˸ת40: l< ҝmgY+ç"0:&Q3x7qpm?R{ѥvcI1QӲW9o*쎰EHl}P8ہҶ9FEԇ%Zk 7uQ1u/> `C2DCF/JqMP0}hfwi]0iWVdRgZsi(E([<*u"k;m`CM*OwQty607UaN^w`Ap"!7(x%:`Twޖ33,XωuSn"ǐ/Ƣ[`_ &Gn4BT[!HA18R˕-Hvg,0㵴mN$2ӶXkM)c1U2ԡ*sJFa} %rXJ:Mxij 3ǜ.d(n3W%4aoX*;'RPL*'<6O-M>n""T@*..n|w4bhHSJ"iNL! L3(ްwf"@4uƑ6xzuNۼ8x] %:m {T5 ^al/z&`LT(gi1|W5C(m^L*s/ nY3g?KcUB IyҮV4u+d8 }kgowfv&cDrKXjkfV*ăwvϺOv,M;"cHqm7 -g), UyV`iM` -@PVm&(02X@4-Jsr+}X*^[KrN$lr r 9တ> T:m;eq#Bbb?;փ=ϘdAXm&@XYT -M `  "7z}qGXY{{1Pw(AB*+vj DPxV8QTQ;* i_̪]"HPySklRNTǡ9C e/.s|80 lʴ5GMX_Nڝ;?INm|M@!5QpEma(ݴaS.#rȯÔu𣴏se!ǯ>9iwVPi[mx"`7_`jC VKy"n|EK:yuOK Z!ilm& 4 R˜@vaRmm Lj%ޚ)>JˎIP)>A .INV= -,&X2 9俹9L\U!eWY`t@&BBl;XC@&i ym!aą\h]> -Y# U<%ٲG1]HYBvC^/%p2a4I!:x@Ε}ȕ*.m@?hm##ֺ 2Nl+B+{c7ug ' z;F$JHklX@`\0|]” 56PV_^iCN,ʖ_'WF܆ڏtچ1ٲ(7kKKN!; …I5xiL4~D^z7(^v$;mC6!v"%]Iyp*m C0ӈǡ> IZ,6 {Wek@Nr/f#| WaAOP l. 5!9H&?& ~ 5'#{ዉOYEk^-l{v)iP\_3 ~G|(` -?=p4x۾kDKquˌ"%& +l14wh220ʓeABCa]VUA{YR-XЇ$:yXD48+2q@hdѓ+)(.HT 9zyq6Bn&`eZKktyyIآn y2BD -˴d8z +3 -9 Eܢ.2E άe3WjPHXLObd< _$-~..y@cEV7h@\F45ROCKIa]m6hbcVC .7. % Ӷw]dN鐜tHVc"7PeZe*jSnr(ˮr?}/rQEziєj) -G}ks}#7DM^͒DyvmPO~SPzӛ7Sλ[em/͏~<,}sN6 &8=#('8Hjo3܀DLrR<`-}s,8 ݰս6 Yw̥|8r Ve -[XYWr7 Qmh01YQix8@@"`&O×&0Q}{,$̕"xw!F ňFSHgBl2-l$ A3p`=}ޥN&}QkW>({aSK(=EHQddj:mۜިőffDh`0 HseS>0R4<$& cP0) -P@Oٞ|YքYpi>HcPn 8Qǝ#kpogɪ%QLW@ ڬ~sX}9`_+FKDKN]L":آóBt"O6Ӄ]@̒3V#(-v09$'8 B4/7VuQEEH 1e1ee~p,ωycMz.f[*-*.k -`7&}PKbZyUֹ B?44I{ ztv,%{+Y { 0\B\%qPD8̺rZ4?٭2&srϪc&x` .PoRǟ/|!̉>w}}0dQ?P5sYr+m]Ía5C-> /+hKyh!оt2Z̍:ڲ?웆Sq-?B^cG i Ef-]wʜxA/]po."7K/dL[ϯb*[Cg&2_(PҺUvZ_ghu^ҷz蜵,5iBņT2(Ut3.`%Cئ"}G3-pkFg )#1=%+|xg+@ѻc5m3,҆iztbYƯWYȬfBߨJwpqh]H_/miG̓ӛfJ, p/R<{&7f~뵟T5@za9DSk Y[y9Dj?.BlV@!6=DE5<{WJ#'jw~ָ\d"ႰNu0ǩ[ S"i7a0;ȩ3ӂw["lZ%uս_|Ԑ L^RA,?R=r#& )c #&so/$Rr%]nH9E4~t=2a(uot*-} -]ĭ˃h~5B%sA8iSn޽Hr2OkOĝ(pyiZZȪ?Y?®'?،=twع +:dm1tUE:)% Z {*NSF]kBzbK$cE=?tl%ʤAXAiUt?U &8-SoCiuـDz] MsC=] -1vCt3L2+. -boerh.-g/EHFP>u⥦|Wb -9ɕm=ʮU]*\fKEɘ{`[EصiH$  v1GUm7Ĕ{2kUx1y<!i4'0N@?I+3QįK5`hyg<, f!w+z{/qѩS*X_ )^Hv-R~dTov;ljɐu+fUu|`zZ$ó_V{CҮt3mwd5[ęA3yy\0H`}b_xZyxru=u9qթ>nz@ OF5G"h"\Zzʨ Q4X3zk!~ +0J -A©у(>8UϞdbfKέS鞄엫 Uy|f8oa+NO DakLu=.xu!UxYJ,H\ Rgн_gu40Ϥ!%hp+.5("h -i*r?#eÍ3Ln\>F%?Qe}tiiek^em[fo[Xz ?Nհ15}uaOHI)G!XΔ -.j\xx~종k\)- _.F^ssDܽqk/76n5enr%nC*}Ñ|-N 5وk` v2j4Ζ}٦k Z5䍦ᙽ@4 -4(%Aj"U78SǕp/),LXsK:RDg{<p8,V>[ }oع!:8_N [6TeޢgA[d#ckok @1%`?{m͎ ±ec0Zy ch VU::P- AO&/Ss5uEUExє|W,ˈxߢرquta$-he>D[9ZqGBCg9Ev*Âʍ~Q})ErT,ࡧ)M*󑟈O$?sFNsEźF>8[cQ?h$͵ggs{jT]g䜯߄nA+=HBr 7h.R7Օ2}wG niEQW_C"2#ׅH"ګNrY<~%59$fbZi`fJ[8ب.^-rIFV^Ţ|!IٟSC63*M= aE-{ŴoPs La>$ǯܨ)V;d+y06-Uf4y9LXP/&uXM dJN1->H?\O [X8!p$5M 9Xё=,Rwme k'u9]LtngC!PIakNz0nA6 C4tJWjmwal4.I̫Ԝm_#uݪ]9ۘ"Lzp"V䷱X޹:ꪸJkGW? !οϳ4!E4xL7 m!#49kpިh'O_. wqȉ8F S4.E\Zc5ghf31oVv7kٹC`#2*U,t -gUc^FApeZVb^ʺe b}O-!#ߐxaYj)1PZj|1\xo-xSRy ȫ -e[F=KdX;% Sަ=t PU}[)1[}A>=LQ@fץia ֝ZF5:DDʲ~Hsv6gs5^H}|ȋ G):wœOOFRj=ǧxH,Dhl u2\=X-PIH>D|WQ|K %p <"%'p}zȂᗎS@ΠkHB%DF먢+VfRh.›?rJbIHXN.$T[t#j'љѸDHu<6R ~YPB,>B('~HE|gs:‰$ -vAb --P:eŲM|(v -<础pNX'N-S M!'S;qN;/$=(\%gGh5q#: owf"IPP+rKfTW&xȬ=жm bSV'w՚߽RL ;QQ% Z` ,H)FP/UBS ڿ[C&2g |f῅RdTV*Zv -{9R wĩD>mZ&:C$Q{+4R: yUdRb@sgZytOGj^b3voFq 1x8cy{FC`_ا)zkJ}+~kn07uhbB%u\jǕ Yk'n gT -*h|ޝ#TF"d@Y;"s''y o.cU*sJKMwY8o͕JmJnņm,, HhdS%{+&K!94Ӗ46( -lº1J2vw4My̕E|Hv %0G;@JsK-5zٸN0"pG^˥jhȸeo{bp٪Y!qR3;x -]t o.L5Pk}:kyL)J>&yzgIy!:%RIVA(soH$,6 $y+Z)@^ԳoTXk,eZbvKPw_2Q|'O'Dl0mK a^;VUT J?ߨ>Cɚ֐ Gn3fmP51./Dܨ#)_B>C(;کS=BVf<.c&/ :X`*#,kP.-YۦRAL9Pd@q2SE"RbC;oi @|NWZyVD/ E&;h8X|aeٴJ"L_A?GmT фتS͊C2=]&s!̓^e*Yd]'Li68vuUaHNl2Xғj+Y&|`L'L'Y|39|>S6Y̹%=*y Ԥ`(ՅqO`+Db=L(Ju1ߢmTT PCbs57<5?.(#u# H)0f7s `ӆLbwQś?;1= pHm1x6sYE!=j%䶊1B#^=qNE@Q=j~w>AT5CK\(2 -3]Mу GZ`N'&o'`dMr؂D]EB\,b؄i8youw`r0K=ʀ䅭S(7T+RX=2RW|p*;n}Eg6d"?e ۙb0l$YxۿΘ"9rۅmBUʓH0)cW|ÍSFCH,ve5xH`IlmAE4o: 8ECO6ҏ )3i#5=8m0+=6;}^E\e}$ˑ0"@+Rm -m6smɽ!>xTRҤoŕ݀Kܘ5MO-!jXPExoįYad^J.P;k2qQjS͉WM8p*4E: *ZĂVY|h"u%zb_0\ ~[dEir)r7[DZ[DHH멅{YȿLI"ElۣAGu_ {[*0zfrDGxHC \ hnhK~E.g=(pM~IiJZIeH_L95oڶVu?1="CN̆j'<vBnv al|\v^i-!t6s{v~$!q0Iq=Mb7z4NHNCe7)hIWg㜲!tgqlYpL7c*˃+;\3BTF!n T@UA%CM8e= )FH>(,ɧMRbI[O" kZxӂMY^ -Eɑ!l;2Uaa^5y|:8-ϔ6ζ)#/lޒ>>n׀A_l$m5ϻN-Hys.%Et3+nk" -ItQKQoUP\ q̿[R䎑\?(TmK[ZCPNo;&@V𖨹}B -\3J5WUQNus^'Jr5Fu[A^y}x&dN@C#yn!m]3 -uC 9K@Y 1YmW -Ak<|.Ntwv\%<-|v\\kvg8a4 Gq|kk~.ߎVjM'C! &5!ϭ7bV6AL-CRP-TKI!΂Ԝ{JFn,PRVWҬY&/#VM,H?zKEwݝUO Ao#Z5y@Xm8:Hl?8/:٪ /侹x#=gn׍-ݻvveKhw%;;<WJ  75W qe8ƍOi* }Z%hںL6y½iM)=UT[ECNQ`ABfb1Ye(5d6njfY{ܲ<˖ -TxϽ#Ӊ+\Rc YB3z@.0?丝~XH!UB#CN[Ef^NmNҐ*+*.N 59T &RgVGKF&(hڐ BK3'^98>POsJ2۫DBئ;4 "̗=yrGW BC2cٔ3IVkb7F%(aŚ%ݛ_.-QG.6pJ} -HS7;^']CUR(XvNlrہB1[c'X+UEPŽ>%_U^T[èBK>N7$0;RĬbG}/F57t[s_*qu7"I|!q0XŠ*[i -H+t9^~CH+ -c )'vѨ#O8uX@͍L\,G6ȗ% -چb0_y|q5; s9\\], Nt'PM[BvoU( OP0 19jX$`.QL X뉏j !@BO8$&!~zo̡ 1(*#.!4;+#9{E>uH)l6! >s`! L]@݄b;Jm3: G6H!E3۰C:\gppХa!X/Xr/}p'1[f/S4ƬU -FoIgfyTf3qh#I+PU"k""[5DM:H@zJhr&,4tIz7_&jQ* -VT~Jz<@Bk~+5N.`p;؁z)b{%"!֣U`mIN.Dj:Q\^IjN(vu(S]c.4~ZGY7]ևXOfP -RBƅ›\>⪃& @Lu-!PVtMQ>:zO%W.D% 8dh -`xnC iOØ`P /z6{ -@W;S q:`G4Q_b j̑ԧSop|$Jo" *|G68H ^BN+m:c"Hw( = e6[cj̝QA6c=ioᘄv,(@FL86=F`+$Dݰ_y"dGҞ(t֍C.2|Cqg.Ԕnc *rYYH'*.puW#2; -'#arQ]FB<UǪ'2f 䠾%M!JFp=2:̀ QQWh˯DjѴA ^:՜u 2q5nR 8!_a$K4 -%hƇ*P>)[3Z ; L#p,ZmG'C!TcBT#'E0z5? -"EybNV@8Wz$ cm()C/ <p\"T ,m:E|wI4i@g -`h܃G`QW]aijvrAm -`+p(\ NTAC=ET{k뵄GV b'S<$%K-9%<݌(B|:_, '6sᩍ:'doڙd_پ|"gwT EH @0 D1żHW2kJaRTj{םL)9r&R~|M4%6D -utˎ/ E!u\΋ncn J2v {©bdvVPw-.n^"vvbRKkf[reduQ9;[19bNK;_v8 -,@:p.͝=+VU5Y:[-f9f8 @ rh.dF-粭ɼqDgH͝4ֲk981p+ڦ"Vci: :"Q(1B6ۋAu3q{Zj]"u1 ͓9w!N -8j ^O_xKy.NYs^*Ƣ5W -; -B$0O\j\cabW)7D=f>ҸhI!" -ŋ""<4 7lŵq'S>HTΰ u1瓙\+W)2r,cnJI&: -U׬* -$u(*.+/C4G`*Mb -e/TYsW҆,Ӎ|th⋔R:26TC(.J;fGaϬS_ '%f]0.],?yt+˩>E8Kpc,DrrHzj'jnW?>t9 ;fھr;&qp,,JrĽ(DH2IEb5:= j";[k&-VuVi9+"Yk>Rۛ]%" &tv.+ ٭) Cp\)V=VРPk!cTm$yݴgC 䏦3F"9Fd%7^J]a* 0R -@ ,2jM5B@! 7.vT+\mqFA>FQSr1!8d]h=O)!Kd _epp_ ;^Éغnh(}(E!R[pyesXCCB"ފ^` .‰!_ -L`{H@ܖ]fF/hQ؎vW`{d6mmUN -R$&6ӿ +0&ߍIHn 4!I}a"G?|uLfݤE -*SϼW2LԴRѕMYjջ'/ --b%>.ڞ'+64#)`=YXrp;KiZs]_z׎;찊Zj+&1h_ c ԰8x -Bn,aLqQGX~k y&Neb11~/_,"֡THN17tRa,h#-0J䅰@}l9dU5;%exQl|$Qy.*KcEhNy>йsK]#db4 -;o]*aAn4moV(L (SNeO,a%XK߯@Nh8L#e$/# T,viج%<L{hDB_IF6]8N*]I -1ח}ؔ<3` =-p\GжZIZz,?lJ!uJmCSϮIϫ 7:2.oPzCJ;iCۨl0t[ߋ[Qgm- r`~hpaX|d}l3j| BtH?2ox8` 95,na6 Wt ml^_04׮k9c*<,{&MhGuv)GC}yT#(.S(3Mmؠ, =ʋpfKz9z!aB#|q >Ō=͚eUѪX.-v-4Z8OaЋ!G'\YGdȧ֋Ӡ<^^,pv$(bowxHڻo$N%qa[ ZYQH ̘4s0'S:gam<66hӁLĨϋPiF8Y0#bbne5[Oy1 }7Q9bJ/ N;B9_l/1Mt6=/1܇Bv\Jht0d? lQHgK\ք 퉱&(f|o*\^eiJQ3&! n{۠<ҖPt ҡ\f7 ,tj6"4#42e*h3wE*UhUr%\>t,o}anFFl[ -(jw&T"W)%9fvu~m -[k̪䊞BkFvc $ppW"sEEĽ6WL]vfl zL°|,4Tlj~l=7{q,wq7(#}-*&a\,CνXeC<ʽ[-e6·⡅m\&=Efq/6Ck7cީ8>St 8\`B:fJyvC hxrԢV8F5MX6(]_Q14.+/y](MA8Dܯv{ 4n25\R&Шks)ʎ)C~M&^qdG*ND8K4nAPKf #udNf_%|h3۱:Ua]t[{Qj&uJP<|IAc'բR ] J`^ Iw03,Tټ"DFt{LF M)s'KOº,1E{eLnFyl/**mJKP1ɳFlQ1{l*C3B5 J>g|&WISk -8,N ~TUC9*q#~ۆ捖QX'D%<6;ߐ{h̸`Jwk _ ҨyCLǯN1{J/O63D9WEʡwqolV ?9#.9U LD̓ -I2-! y;Q4Ի1j숨T~$(Z,S֍.nHD֤Sf BF Oa(u2x#0ˆ -Oa0jlQ5KqX<]Q- V_FJB -j eG(GG c$.5N|#ѲFkl] TTmjTQ煊ic`/xmQ,IcG(4@Τ2h2p'dhZXy%J~DB»:!:WekuGKGd) Teq0QH8BlGmэXgp} @B=+1z$ڲԟRJ:jCOaQS;;a1v3hh&="'ʋ&ί툖T_kÍx87y/ -(F§@Y&1P9<&1gWbI\T0 -\!E9(̋) -x1B0B zs7%Mm T8 [}ɓmk^0x5y$%C#xP/0ZI_yOoA*&*Su,̫ WOiQxC 8c|)M ^xj^{1<'aC0ť],3o#xIN"PO6&^e/TGX5?)7`JC#hvI$Cy# ->{ VcJ FdCq -F j6qLaMPHv [Xy0p@kOM>ˢ(^HaZȜċPRO Py\m5ku0^"~~C -_ ,N5-1W%|>`Qi+w<1;n$Ooqd6T!Pܓ]4ͧ0^+Nu=~ڌ`e.me_e*SW ];'6wh2G~+\g^ěJhx5fE5s -:GmowC2vsZ?~tڔeC hAi0j wJ8۴i\˕Xwe:<>ɯ4 -9}#{{1IIE`~LcK6Z;0Ȯ"ύѯU#}9F](9Ss!¤ NNY0,ex)=[S4MFcׯdFXge+%ϑX+Yr$fAHr/WBmiZN3E1vݯ[r#hКyX)g:C@ Nյ3kkϹ<[6 %-6:YoG0BxE - -D.K|qMَ;>*iM98p7&[ x m!ȍxj5&>_V˕~NSSEk43Xq!%~ S9 3bSҹO3e7?dhѱj -*ma}5dHg)͠zXx ڤM1׍h5x0RA2Ӊ*$xK_tk,Ļ(do腸]a[" -Īé@|R'uSmk(O'b2"@/TRK5p?5(7+(]Yr;5IWKk!Oqu%gWqhbԾtg &Hċ~XJ1 G/@}gRp973via.H,t_ɰ *jHU՞Vr^UpIC$X)hdÏl -*>n4?O0<*+d &5(KdigWJثpqg%CV#e@[*jj'1OSY_@gi\cQk K's g5rՏsX#Hq1tj-gE|KB[Y> P1 6:> (Oh8S+=t][e܃-YR{NA\~Y߭-!pށב?t!\`1\;8`~:FǀxJ rQmx 7os/Pd -׀ARb7D -spۀccGIڞi%$I,q6so)3e=^xVבT-JRf7MKm$x =Z lrїh/B{T׈}J8]Sh`-ZfYW{& 9}F1ٚw㥉pP\%߼,QŽ_m*B -endstream endobj 174 0 obj [/Indexed/DeviceRGB 255 180 0 R] endobj 180 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> -endstream endobj 171 0 obj <>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream -BT -0 0 0 rg -/GS0 gs -/T1_0 1 Tf -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 12 0 0 -12 -103.0967 -61.2773 Tm -[(T)7 (his is an A)11.9 (dobe\256 I)-10 (llustr)5 (a)4.1 (t)5.9 (or\256 F)26 (ile tha)4 (t w)4 (as)]TJ -0 -1.2 Td -[(sa)8.1 (v)9.9 (ed without PDF C)11 (on)4 (t)6 (en)4 (t)3 (.)]TJ -0 -1.2 Td -[(T)71 (o P)5 (lac)6.1 (e or open this \037le in other)]TJ -0 -1.2 Td -[(applica)3.9 (tions)11 (, it should be r)10 (e)-28 (-sa)8 (v)10 (ed fr)10.1 (om)]TJ -0 -1.2 Td -[(A)12 (dobe I)-10.1 (llustr)5 (a)4 (t)6 (or with the ")3 (C)3.1 (r)10 (ea)4.1 (t)6 (e PDF)]TJ -0 -1.2 Td -[(C)11 (ompa)4.1 (tible F)26 (ile" option tur)-4 (ned on. )41 (T)7 (his)]TJ -0 -1.2 Td -[(option is in the I)-10.1 (llustr)5 (a)4.1 (t)5.9 (or Na)4 (tiv)10 (e F)31 (or)-4 (ma)4 (t)]TJ -0 -1.2 Td -[(Options dialog bo)14.1 (x, which appears when)]TJ -0 -1.2 Td -[(sa)8.1 (ving an A)12 (dobe I)-10 (llustr)5.1 (a)3.9 (t)6 (or \037le using the)]TJ -0 -1.2 Td -[(S)-3 (a)8 (v)10 (e A)6.1 (s c)5.9 (ommand)10.1 (.)]TJ -ET - -endstream endobj 168 0 obj <> endobj 182 0 obj <> endobj 183 0 obj <> endobj 184 0 obj <>stream -H|TiPYA2횩jAgTNQqEWAa=8FW4t@EF@DXV<׉ٙ,|L̟"22_}{8&2pu7[ՑnWņ'%_Mg1̀_fV~9vFh}k"Agg[Ik?e嶋/rWEdRy@ ##QjF&JR*yF Q)r!,W+BGNf'rK<yb9Vjly8/+1 F`؟0s c5-2ql1IyE ?a&l+vʱv|6V2%\]# -QhLJD$4;d˸x$ڤʹfSQJZ#?ֈ v^#&SƷNh%[m& r+|=ɈBZo17=EwsQ2 )B3 [I[) ! -HkPz7)zRUEJ?8/Ԃ^ͺJ_+@E Xhร؜D~s]wЏaXlUi}lER/xC_U^zo-a>mK}+\a8;;߉AJd!  h:lxPSr>ě&gjR2emm\òQ0fym ɸy$͛H8_Uǀdʡ ,X:$ybz`܃S=@I/P^v1n*;H84(`Q6Zѯ<t7ؚAD"CWlfz꺕@z/wtF4<֐ک雃7GnV7^_󆀟FÄ ?XpU0fv#S<a~pDuARĢ\y`s`GuAɤlGcũW.4o6(p`H> yY9%̇6?[#4'9*)ك CQsTtǷ3`bۚYTn7iK,by>n ܺc;)ת ٺml/(VTr{0~f<8 -$շh!YJ͒kd. 6o;l՟c>Y%IЖtD&mXcgSY%6Nn'ZpĐr H `*/}xG=w)KaI~g+ZW,3.*0w' -?!} e̻ƥ_sDXh㮚փ#Ǻ|I!}otӃ n^'rl͞;d;ah!zo ofV}B˯윬rJ /j k> fi9d9j&}\b3J}dʕԆ2~@b7E'&$C^_yԧ2ʐ+ | g^|hg˗l\$A ЂsM{0vnSF60|,L($'"Ōw'w]?|<u2 w84 P6Ŭ[1 Z̟x~J C~~ OKǎ*ZargMu /Ql/ec׋=JǴvk:AD?ZF9:c:37K='уedTϲ^EafPG楟=̭݅CUB’tl.66Amlf;a (q?>! oH?Վ;ѡ1"MiyQTT[R@ZpB J{r2rNekU63Ocr QwF9>nol|r.#V[\_o`{KgGtEMe%e^хESNO|eB"Uuoh9Q<|P˼‿Ya -INb(I{y`.Lt~za{^2R _ǔZ܉CMՌ2 ̔Q'R*-7#]m04t 9jg6="k<.+= =Uci5 _J** ^? |/8>b -suz vb=ʔ[/QY37Nd亏 י~@;T7*Fv~j=o jG`zfB7F$AVl?@[_:;*OV8¿Lai`TUM3TH \ <sp=?GPF[X juRZƠtjINx5yZŭǴCDeŬ!Qv l[mDˠo%@!HH36ޕ>|%Kciņ;{wl/M܈S `X`͋uwC=:M88(Fkɪ"X.qw5w(K$[׬\_ Uki_1& -endstream endobj 181 0 obj <> endobj 32 0 obj <> endobj 66 0 obj [/View/Design] endobj 67 0 obj <>>> endobj 33 0 obj [32 0 R] endobj 185 0 obj <> endobj xref -0 186 -0000000004 65535 f -0000000016 00000 n -0000000147 00000 n -0000035553 00000 n -0000000006 00000 f -0000035670 00000 n -0000000007 00000 f -0000000008 00000 f -0000000009 00000 f -0000000010 00000 f -0000000011 00000 f -0000000012 00000 f -0000000013 00000 f -0000000014 00000 f -0000000015 00000 f -0000000016 00000 f -0000000017 00000 f -0000000018 00000 f -0000000019 00000 f -0000000020 00000 f -0000000021 00000 f -0000000022 00000 f -0000000023 00000 f -0000000024 00000 f -0000000025 00000 f -0000000026 00000 f -0000000027 00000 f -0000000028 00000 f -0000000029 00000 f -0000000030 00000 f -0000000031 00000 f -0000000035 00000 f -0000218023 00000 n -0000218210 00000 n -0000035605 00000 n -0000000036 00000 f -0000000037 00000 f -0000000038 00000 f -0000000039 00000 f -0000000040 00000 f -0000000041 00000 f -0000000042 00000 f -0000000043 00000 f -0000000044 00000 f -0000000045 00000 f -0000000046 00000 f -0000000047 00000 f -0000000048 00000 f -0000000049 00000 f -0000000050 00000 f -0000000051 00000 f -0000000052 00000 f -0000000053 00000 f -0000000054 00000 f -0000000055 00000 f -0000000056 00000 f -0000000057 00000 f -0000000058 00000 f -0000000059 00000 f -0000000060 00000 f -0000000061 00000 f -0000000062 00000 f -0000000063 00000 f -0000000064 00000 f -0000000065 00000 f -0000000068 00000 f -0000218094 00000 n -0000218125 00000 n -0000000069 00000 f -0000000070 00000 f -0000000071 00000 f -0000000072 00000 f -0000000073 00000 f -0000000074 00000 f -0000000075 00000 f -0000000076 00000 f -0000000077 00000 f -0000000078 00000 f -0000000079 00000 f -0000000080 00000 f -0000000081 00000 f -0000000082 00000 f -0000000083 00000 f -0000000084 00000 f -0000000085 00000 f -0000000086 00000 f -0000000087 00000 f -0000000088 00000 f -0000000089 00000 f -0000000090 00000 f -0000000091 00000 f -0000000092 00000 f -0000000093 00000 f -0000000094 00000 f -0000000095 00000 f -0000000096 00000 f -0000000097 00000 f -0000000098 00000 f -0000000099 00000 f -0000000100 00000 f -0000000101 00000 f -0000000102 00000 f -0000000103 00000 f -0000000104 00000 f -0000000105 00000 f -0000000106 00000 f -0000000107 00000 f -0000000108 00000 f -0000000109 00000 f -0000000110 00000 f -0000000111 00000 f -0000000112 00000 f -0000000113 00000 f -0000000114 00000 f -0000000115 00000 f -0000000116 00000 f -0000000117 00000 f -0000000118 00000 f -0000000119 00000 f -0000000120 00000 f -0000000121 00000 f -0000000122 00000 f -0000000123 00000 f -0000000124 00000 f -0000000125 00000 f -0000000126 00000 f -0000000127 00000 f -0000000128 00000 f -0000000129 00000 f -0000000130 00000 f -0000000131 00000 f -0000000132 00000 f -0000000133 00000 f -0000000134 00000 f -0000000135 00000 f -0000000136 00000 f -0000000137 00000 f -0000000138 00000 f -0000000139 00000 f -0000000140 00000 f -0000000141 00000 f -0000000142 00000 f -0000000143 00000 f -0000000144 00000 f -0000000145 00000 f -0000000146 00000 f -0000000147 00000 f -0000000148 00000 f -0000000149 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000213738 00000 n -0000036005 00000 n -0000036210 00000 n -0000212564 00000 n -0000036276 00000 n -0000036437 00000 n -0000211999 00000 n -0000036513 00000 n -0000036714 00000 n -0000039207 00000 n -0000104797 00000 n -0000170387 00000 n -0000212049 00000 n -0000217909 00000 n -0000214256 00000 n -0000214341 00000 n -0000214725 00000 n -0000218235 00000 n -trailer -<]>> -startxref -218421 -%%EOF diff --git a/datafiles/data/themes/default/graphics/widget/graphic.ai b/datafiles/data/themes/default/graphics/widget/graphic.ai index 7b6544155..4d535a9b5 100644 --- a/datafiles/data/themes/default/graphics/widget/graphic.ai +++ b/datafiles/data/themes/default/graphics/widget/graphic.ai @@ -1,5 +1,5 @@ %PDF-1.6 % -1 0 obj <>/OCGs[32 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream +1 0 obj <>/OCGs[32 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream @@ -23,22 +23,22 @@ Adobe Illustrator 27.0 (Windows) 2022-11-17T10:21:46+07:00 - 2023-01-02T09:36:13+07:00 - 2023-01-02T09:36:13+07:00 + 2023-01-09T11:34:45+07:00 + 2023-01-09T11:34:45+07:00 256 160 JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A4LfX15f3k17ezPcXdw5k nnkJZ3djUsxPUnMhChir1W313VNP/Iays7Od4Ib7Wbz60EJHNY4rfirU6r8dafLAOavPG1O5U0aZ gclatDVbgmgnapxtWb+SfO/mfTND160s7+WO2ltS7RBjTkGX4h4Gmx8RscatWKP5n1pd2vZBX5f0 xtC0eatXJp9ek/z+jG1Zh5B8+ea9O/SotNQlj9SzlDEGh3XjUUpQitVPUHGr5qxrSbPzPr97JDpy SXdyQZJPiUAAnqzOQBue5yrLnjjFyNBvwaeeU1AWU5b8u/zIVSxsGoNzSe3J+4SZj/ylh/nfYf1O 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 KuxV2KuxV2KuxV2Kv//Z + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A4LfX15f3k17ezPcXdw5k nnkJZ3djUsxPUnMhChir1W313VNP/Iays7Od4Ib7Wbz60EJHNY4rfirU6r8dafLAOavPG1O5U0aZ gclatDVbgmgnapxtWb+SfO/mfTND160s7+WO2ltS7RBjTkGX4h4Gmx8RscatWKP5n1pd2vZBX5f0 xtC0eatXJp9ek/z+jG1Zh5B8+ea9O/SotNQlj9SzlDEGh3XjUUpQitVPUHGr5qxrSbPzPr97JDpy SXdyQZJPiUAAnqzOQBue5yrLnjjFyNBvwaeeU1AWU5b8u/zIVSxsGoNzSe3J+4SZj/ylh/nfYf1O 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 default uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:8cccdf3a-626a-814a-8dc7-d5617082f39e - uuid:58028dac-1cbf-4854-b1e8-275824062b09 + uuid:1987420b-987e-4c92-89a5-2e772b109f4c xmp.iid:0bde4bdc-b9fd-8744-bc99-3de2f0314167 xmp.did:0bde4bdc-b9fd-8744-bc99-3de2f0314167 @@ -295,17 +295,17 @@ -endstream endobj 3 0 obj <> endobj 34 0 obj <> endobj 5 0 obj <>>>/Thumb 226 0 R/TrimBox[0.0 0.0 12.0 12.0]/Type/Page/PieceInfo<>>> endobj 223 0 obj <>stream +endstream endobj 3 0 obj <> endobj 34 0 obj <> endobj 5 0 obj <>>>/Thumb 280 0 R/TrimBox[0.0 0.0 12.0 12.0]/Type/Page/PieceInfo<>>> endobj 277 0 obj <>stream H10 ݧjqvR  Ƃ–* N5> endobj 226 0 obj <>stream +endstream endobj 278 0 obj <> endobj 280 0 obj <>stream 8;Xnf&7>J -endstream endobj 227 0 obj <> endobj 229 0 obj <> endobj 230 0 obj <>stream +endstream endobj 281 0 obj <> endobj 283 0 obj <> endobj 284 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 27.1.1 %%For: (Makham) () %%Title: (graphic.ai) -%%CreationDate: 1/2/2023 9:36 AM +%%CreationDate: 1/9/2023 11:34 AM %%Canvassize: 16383 %%BoundingBox: -13 -101 151 0 %%HiResBoundingBox: -13 -101 151 0 @@ -334,9 +334,9 @@ endstream endobj 227 0 obj <>stream -%AI24_ZStandard_Data(/X ,m -m/a!DfI+4 Uo:v SH=څ*7ۃR-<NHB3 YM=Fv̼ Ѩdrg"-I4jy3T;Q́UWKBE\'Gɑ53#څJi7ӑhL(C$AU[kР:zГl 춛 -6do0-F&kS53*҈J^綻UZ-Dڄ#u)Åu/fIY#'gJ>^%hyc\Kg| Vzs C3ޫ$Ex'|z`飼AӦ3;j *zʒr%M5{%N͔iȌ{9 ``T@x*< XH< 6 (&`h@n&5"!khg=qi?˵\ %O# ‘{JEY'qwGԛY成UO| ٪Z 4ټܑiyˡ:R#yRú أY>i[YbOWSÛ`sQ(eU%'5d4&8;}D؍bg^TJ2*f&Khn\l3Mqx41j`h*;|A1 8i"$ЬlWFՆdZ#.k^Ot,3ЊZvs\<(ЇŃb`hH,34\Q P*!H$2Kij>14g#dh$Q3 l24$514, QpEȒ23 -C@2* X04<\>X(  d [ LY*P2S, bSV{bCg9:) ijʌpf@C=CY!@-kcE ĂaРH>stream +%AI24_ZStandard_Data(/XLΟ ,m +m/a!DfI+4 Uo:l BciěAy)brwV{'o$L#;f^hh293݉$(T @˪ګ%QhRY#E⏚K}\BHsl&gaxߠ-GlhPI=I݊N\̈y\vMsvy7y#EiD s*cZ mBQ˺Bĺ3%sxwQ{ٳENvUg"J>qtQ^iH^Z5OLSeIJ&GI;{ĩ2=}qsr/G| +(@$p D!$T ͤF$av6d- 'n"g8idѱR8sOI(sN"*j[uĢ_SџFDGyO]H#QLՋJ49YfUX%yìd ؍}).oǭҪ<$YY]wgrE*z.g Ii<}v%;Y\y2իݕ`ѨYlIdѸ+`fu,]K#Wnz;#qGޏѠIB}ՍhkXVImdluWnf9?z+sY$h\U?SJ j]Fʨng<qPMgGTyG֒żaa%Hh[&iɒ4rNaY_ȉlNVKrH3"T41j`h*;|A1 8i"$ЬlWFՆdZ#.k^OpQJb`UcsGhEIa.|zApX04$ Z  pX$%L΃CC +nBij24|p 6ehâ dIiyHlj{!`ghpE P,.pP,C -|@e b&{b, ah(C)1)UV׽^Lԡ3T؂]^p TF 5eFdh83A C!b^ᖵ1\b`hP$X04ЂB8 %)!!f%3"M&v +j63#ՙVˌ*ѥMh*]n!MeѶ-Zjo-:kIFV(3׌hhɌϑQ9TE ѡQN r - hEUetXMAQ<Pux$KaTMuW .4S^½:q B#'$(aK"Qr( er0& K%aơ5ˡ?wHS$Y 3*sFdFolYfhx#?v<<<;a N!!ZwX| p tHLDta!nq y‰4f@/laZ, BP048( Qq +0E)Gs̡ʁơ@炡 xhbQ<( ,#PzUϋeO\${7ahZs$D_hpH$ơЀwppP bчz>aP0Bbp S04)h D!Ѐ|PxD[H_)V$!- E=CC%j Ѐ x+fs04$\h2404!l@BА8mY!̼tZ%e!pqL̂8)!vp/,aVr(Ud*"Jpdhch904t C!xg%I@ +Ϸ~TC&2Ne%C%es@LhHX[û-tڶ[14$ fY5@xnj -ff0p`h04Lcc]S4ԥ5bU{,I EtRX!5ާ OINl -e$1h&fvEJ:gj1W],]0OԊx$X,$J2bd.9ݏjn -ﱓfx^f'Gk#J\Ql]ndP($MT\4jفá4H"[R*[b [>֕wy3xMl˺\4cBhN"9xz۟_21f~'XJAYnv∼1zIQMٻ&t_N"bZF(E6iiM)Օ%ySe!M~uf0CÈĚLQ][42Yb:U*L(*wn5#q7(cohrF5u9ǬTC?mT10gx72Kv#n=˪e&t:?{I*NCAb-L%SV>LR}%䬚R%X.sANl~M29ki*U R^H5&2??ݸٱ^^ե~H%S}{󐐛guFLVZjHשQOHSKil#Z+zfy͢B4-eJ #4fژQf)mQP*an֑pjLYfu[M(̰fu2]tS)SD.Yjw]EUԼd\lJ+Lbn,4zFӫHzT")Lj1iĐ*y8ӻL/6"RAjKHw4r+kD2ˈ(y;q='oQ֦l6vuu%i4(:+I+)eY:tnY.0]b#MbGbzɔ=tC"V3՘*zMÈHM}JeohF)2o:4K!ܭ\#m%;"\+2]5I:{dR]*mjyO*^bYFrZa[O杬YE4:g]$*iz#eb/uh81=wźOuJTy%ҕ.M~,^ƣJSKm/ks/}VVx sg>"j:34|&99}^=]6+-%k4lʑt?F2t eܣ'Q,eMѮ"B3;#ݜ##s')˱atr]Z*N?I_c$qxY:, '?g:+{ku:B4;VOtGϵ{+vʽKXni5pgD>9U6 {+Xec_}TmE -zKj:uGs嬇uf/D\ ("O!MQRgMa*E#4d4Ih9ͥӽJ&iDw; ̆wO$wݰV޸wl U8s &EΤrzkJH%EŚ,Ϩ'S3jTȾuJcŬxG{ٌ<-OKeM;)QC%}Tn=8=PUrMi Ɔ#94(k,nǡ~v\=;\ZJ><;l&|׬.4K,xשrx}T’_&M9xdS;fQU9ŰxyD¡ue]YC$ 6C9QUaz{K6فCs[aJGb%N\5>TvMךYdݓthxb2gB5^~#˴ #l;H9rlU>Z,K8>#w]R[g,2+|=.y7H882I'kR&ڎmKԴMn,k6͈5ۙ"g64F3}wΣzw6yBtn*#1-eҘuGF"a~ -8g7v&a'e>ۜ͝luS7빳Qrepzꪙю%b6J(~n&9L$yhl3o#}X֒IN2(6"g抜x͋L}S.cY1#}&WXpnJKҪZraHLgKmVݳ\g_֙6Wg2:;َP$b=!~)Yc -鋘zϞvewM= ,6l8CD|gST*.)Ns(5bYVuE֪IK]OȬcy4A*G(RfOc]]K.!>,[f;Ǟ7tY)jL)Je$S*25 ݕo-Reۜn¼}TdUjZu - 5QSwaJӴZ~F:\VZ/uVYI&>ȒN^4 WeݤEcEWt ُ-i)Ff$ tK,oBB1gLt-2A %n_Y}K#d6gϦvliEwX]t ͲOV:?{Qx-+?ҞG4U6X5LILj&WC&w_r˓8WIyΕήdWòaQK7vv\&ahhS|&X;gNRA ?KՉv2bvT 3;4ՠo5n։Rf9NMAiRJQփfIbDSxOZ2Zx'mN!ڔ67$-ݽ(3_Ȕ,n DGHtT#r5ޛC&n{Y>~T}Yяwf. [ֱٙIV p^F'IF5u)]L,Hf7UM -YƮ&"BzdbqӫD)^u1#u5/w5*E*=sI42E'I5l25lgWӝUR0MDf8 sU(9W4^Ҏ  .h1KmJ|ve]JZgԴI<$sf4I:&IXG=:'= Q6'WV7?GmLahFk41=;U3mk3izt4$g7XriIWQl:]q7LTطk8UnfjC%qGi4\~oL&Z9td4=~VMuzbw3=}[#?0Y932M7BG鼤+ﴧuCGg.XU3LMMg!Ԕ+Yp\K0>T~Mʾ<ڮT1ֺRF ͽ,8jKjpY\;[fMN%a[ڪd⻪H9+v1,4ѝNgi;4)xQN==(|h;12 &Suۺ3wSn&&,%uJ]đAސnV%9%\mR94;q]R*ǫn{90gI*K hY_jFPF//h?&x=I5QAVͪ=xoRopWFV[(A$!lfbh*u##GaK! k b9ծr8v+WW%)T\oԞOzӪ $q<9OaMI8:W<$l5NvTGiĺ9ue>?>l68~*ً]ٍrXlZd!~$3d0e= ~dAKrFmH2qñɘdSd`쇒3G:ȷLxQ Rzʯ-ͬTx>{/|9e>4j]ZaOW,Ay9[KR9Ɣ*G| -V8YӒfx'w88IqtmWo#.{aU̘QS3ΡMN=1eۛ{SLSWa@A=6@ -,@< Dh@EW "DXHX9PAa \ÅUc%USFq*'/[g[nrDi93dO2s,)Alܜʋ{},-[]y6>qp&Nyۡ)⠍tjMrU{;$2~bl-8uֹ9׃U!dXH:<5.[CjXġưڋ**lz6Jd+"[h6gn9WBrv&'SuWje͉LUIժ{i"s̰$Q,7K’U8ϬN ?F$3-<U+4_,+ᘍU!١,}?K2kCi͌㢱l4E+wt)*n2̓IN~798=itMtfxf{c#wbV -e c'F,*!ëݠug4HrXD!$FBi/,֛]k5kHC,%N^kn˵eolrmq/߳h:;VvPaaN TIVv,Ϳ,J[OUi-iU˰ӿrםtyrNJGIgXgtg'N'*tUg.bb͒D<$eJ&ql(h(UL<úLF.F -+I7X'qr0hkJuWs/Ϙph9^ǵ:^VumJMʝ:يO7t$!!a(/<{Y3We=tQZI#ݸnaM=in<ճйC7O//}MݰT.<YEyE5;! i5xjOd5Xo4h>7e!]kk4u>5;Al ?QV'InR?K:F,,JˑJ!8iOc_įo⟙=hön-N393g{sۙY1MF~}5f>744;ީUu>*O-N;UL滪Z,='_NvKVڵs2I-*+SP$ d,dә\1Y^s5P)+K>-D!NTTRN$CGr#52gD#cLɘLQ$ ^^t N].Yddd%c6rW272roICW+TRNISLMUUu2+/kl6>$cι&54IkMN!b+# :K)6ՠ}GΕsD )GWV*1dLȤ '7tjXnZ5w*IOLJN)<؂|Px"G#yQr9B?6Ci8964ةkfy OOlƒpz$:V9F24+V3$ˑz$rIwvތ8 S496rtgXh#<9db˕r;m3Ԓ22IBfw"J!֮%9/XBI#,QO"@qFm=r潗O: ٺ8ǒgWC҄͘]ѡ19oع^f}{vGiOwqeY& 4/$ߜ MG%xhhΤD:Zݍ$^ފ*mxxY{jn__ڟY$kF;e"͚ET:.jfvTONkn CEϭC0^)wy*tmVXxy"ьCTN58H_&R?zGm]uOU1KFϕ^QwΕɘ9~=!]-*g]6K3(-ɧl03!/i?SD{13\$2DFo{}$O}mºl4S#rp,1dWj,CWS(-.˕« ^J"LU0p(Q>.ԕdyTxO;YcCUss&HgL&M<\ DJCA),QΨNzvw9]QUiJs_}s*gբWȼ3;SލtG4ԝyҮN%h9wVVȭjx+C\+ʡ;gJ^"5{;՟ZlznSYC}D@ՙ$C5,֠]&d b4p<)d8~G>]wRg.G~gܝQ:M{Mqsާey̢XbqZDL.<ۏ] i|Ϧϗ4f%B++TSPR3!Q?w{յnoijWkY+82sX)5Es(lm_Y"WU!{&^DWsjs'Q]5Sseg.rV؈:nᯗ.sfrݟ UёQ3vRIe&4YVщ%n*8*AT5V=VQ?i_5Ꝗc _mbf0jr$]besncYMee+*T9iRGBh>ʍXv4Տ.i~xڹ*[窜+}WyEw&r@8TR7NKOa<ʙ"Kz(Efʶ˱*rܨ<؍yUC+ȧtDERwtYу p:'!ʴQ*F=9 ќToj&hUh9Cx3% sFERr JwJ7Nl(8wV&if(B -s`@<Ɍ|Ŝ@F@ʼnc`0_-Z6% 7Sᵣ;,q&ك oOB|s !^آeW+B$kyK7q@ -:iއbۓ65_p/^bg}{) O"!>1ds0quej#@[6cLٍSXlhsq(1(91ЖOq#Ї ¼ljdW:50bF ϖ=SήlF 4HHÞa eN'x^fR% S5m%A`CSbriDMr`uĂ) 9n I# qGLјdU(X z"gܭOYRaHH[ˏYF61 -J f~WɸqVJ͉Vdį8zm'+* yTg=a<&Z!+69(xyC)Fǧ $X>{m~--ec+<7YqǪ}Tj@&NA,CFSykq k̉PcdQC6nSy &%VTI N3HO~8YX 4>,w\Ǐh(Aq,p <~ MҀMQX<]TF˘e%C.FfM=^4. 1 l#Ij,q69N>ī*'T "<WonAǃt? dm1-,cp3+s rd =n\ aEk]%>VVj?0'Tm A~O@\OHYS.׋M(GZA֕3!H1"#TkJec @ep"H # -߂i:3[S!Pwnu4g1>,zy|D9A.m.!P2":?g -=(!3*P-F#TȮ{nrvf -hd5un-eWm -٨bQJ\ɐ\q\5C.RN'C&-w*CE'D 9|'Ȫ!&#5v2%lrU!Sfjbh0lvo= P ap3!n5C5qZ+2\l s@ݍ&#a=#K[S"oۋW#,S 6WJ"J*H! [ AY|3v`ōȊtABƉ7 ,2` -e2^cëS#z@F^2=dtX#$O]\ݯD^]l%mێ3?m| eИE.lr V'bn6>z2~ -etz,op5( >%ӄ]8raG:彣L4_5t'c.ssXJ線 3W!<_>3=)gLE"DXsv1Gg$p wK@ яA˵VѭteoXq,#(&R7gӯhRDq 6ܖ85SYN8 քUc;^ŒFO,NLa*RXL~Cl.]^.zQ2+jBzn2NstZhAOֻ`148fEyshAi@%lYbw@ 0tXM -'V!PNd*ry@vPK)Qӊ(IR:LJ\ԞnaLljYq#5leHݼ/5y$F7B؝^cdX,.sV_R>$R*A_v}8_U'Qj,(p]Wi#jJ`cZWGA8>֥E-bVG28D#^Q2)C5jket=qă"d@^RI Q'bqBO}Qo u?Y@te8=A ]7HȂ >Xłzх7HG8υ<?d$h nc  Ri jzzsy|5@R"thnsUNVRڌBH%>iFtgԨX~i9yW.t\xF]` -,0FkOCZYիOee5'r-k7{@ 1X>B --h"<զʹ{i ˥m_/?K2}oXcKk`8:Qص- 5owmF3%vqPZWX{Z63ĭ%wB~kdT3DR []TW@t{5;^o-|3Fim -+ѵ"^]?v Q~+?hVưo싲&F)Dn~d\ۚ.XM9Rye]oI&-쟘5btߘ}zŖut jc/Է+qx8A}|!c}F}7{IM}Gw47FfTS_9QyÀ/hHlY9ẁKF ->8S eC# ng~HxV+Adg KL}Y g]fMdᏄvx/oDfu?p֨Yl$nuÜ?xW/&i$6c&Q']tĻRY3ئ+߄$xǐKN&rp ZJL"_6.=j%}֣?K#Gt{̢x{t5=*[ŽW/ tRWe#o!X'q(e"N]l[32@RuZ!uful\Ѯ~pAciq+vYbW֒N:ri@tɞxo>\7,lxڱWi'jgΩܜ;d -.P([g%mw3!Ҋ&J.o<bŢvޙ{9w0|G7y} Q}DzF0 7a~N_t>s!uMՉǀ Rʁi5tƧ3yď7"znf;}Uɿcc問@>c`L}EZP.Mܼk/ײ;H|Y7!"=cMD>ϵ_K]4~g LWIs)GzĶZ_ߙ7}PПx&I3CI Fw$\^z, ߞMW=t+ֆx$Lz?qSʲl7|a{qBLGW*3>a-,Se'_ʈ&i>YΟ]%|ȸcz`;AL 8ԏP{ FЬ׮Rze=.h߰w1*bB~m{1~,!AUPTL,$$rMU܊#$ T`4Ʉ^{ћ:MnYi@Q\/Vӂ<X$ 5=k#9BOQ@9i WB `l l xise28N=8^bd(Ѓ_#kE>93Y-9L=Kdʗ B'd -O[ ŀdoc?{?֭-^3,H[x[;J,76.*0[A>Ƴhƪ(tc`܆xpk*7'_ߘ[b&jk' -B#Vb9B^߂cj82Rz[|#zկ"i&=B$ \Nk }6ʇ"gH, -3)ဈQ+Wj 6LsTu!faєjrCۅֱb-YY<O6Z@~Rk2do)n퐽y&̾K -?&-m!Y>:jBh,;uQ-Mr&D -O 80ui`2 -7ލ`kWHva -}r'AWL~WָѮPExZyd+6 -:4]|%S>r/n#5}#SW%> 󼅤:Nחs@Eǭa*f(Nh,IREdɎ#BU-$C2|$}B9E\ ofsq[f|gcVm0 c[\+ =V`^4[r(GI,&n2o: -HR^x,c_?6,ģt&%Omd() 8Y`u w(SJ֭)ֆv!3u -D!jhG| g>'dt`QkGtĔ5rSoHȹp[5٣Ϡw} Ro 5#J3!4ystUϒvʍ)fajVڸܖZB%\f -%/Enё:g 5v0~`eeqlv&EρŸ(DPxR\@v6?0H4"h;~Y{;E -Dթ`ajq9z?;逡 -gX0gʀKxF3,څW`+@4[ !ŒhhrC<]EM)ځ[vr_ [7Y!}pH2& 3n tў%l _cVfv^"!r_ 3He,j"GS+ :8}A6J~&OuĶH1qP1Ij̆mYx.컹0 @R5(?dW8zubu'sqvzـx{oO^(qN&Hm8gHr.ߵQumƛ{?VIhӨxZeo~B 9etI| UoR;a맔D[Ne$i86(tAeh?G*IvtRFD2F>,ܖ -:!]1z nxvk]t|!"=mG&<+vrbV txs(WX`[W%:zxO9ݤm\^zTr#e=W@#!HbA`y$Z=CGea#1Y 9iЄ])!.vB=UUnPѽGP띳B~,-kק_)Vb9ҩJ_BS3ya̙f݄LvMe"-r#G'beCMkyBS,(@ONߤ7+ù&eFz$`u?m9ӟkG 4 !S@ro$'.b OVϐ'j&fC랅|v)O%ngM)LMe|*v2a|ǎfⰵApS꾯oOoŃP&$e 8vl@}uT4r:GiwNc.M 0Չˬ :^k᪃~C=C8BI'돽 DS3!<юiC~~[+27X4^K`57(.^1܌\Mce69F4"ނ#XAo M*#UńQ*&NfzAP.}lc(bE ~,{Q%ay9p#12L!C.3=lMREsG3v\gMQ75椳b 4H>1fNSN3D|T:ˏjXl)Q1LesZlAo,M$W&F""k].BB!#ĕQNXzD̳J>6R%Wq{.ykj7 - \t7ˇ/pRp\Jr4FO3KYs҃98E͒,#ZP@^:L`" 5&Ǿ;BxΗ^SD> &r=FIccGN+ݕ7jFA2.)60=#%0{Ϯ^ZhD 1*]UV#BWNbՎgO ء_ "]dI(Si E,r 7s -P ^b_1c];ÑuRϹ|>!3 ERT9!{|7aFr㋰bm3 -1{Mp,0~^!uEu D_!_Pq5Ab?\[{HjA$s'` wegR:x7t -eT QYmuglj k\덮E'MXK0_%.{:%愘 :CյYȐOu1m.i -b ƒW5lZ\LOg&@[t{z<`\Gh 5T'?MD]3iGbj<%f @$OyZ߸s)"Q=볣ш&`.٦݂xX*{Aa3*kUGx`IH_''!M9s5ND td3K',иX(v6Hk?(sx/CtJ -犎Ab.U2Zj8I3 Ox[+`6_l&\G8oh`~+43?0R5]nIAҷ)pI?;TeV9UbfGca0晒 T6sWOkjC]&tFy?]gj4(8X3zMuX:Q ^0{@1;jn,Kt4f`v0FoU]8hpowvY9H`ZƈK a8百5{'(/ܫ.a'%LNp}{!j([n9B(# -w -7Zq"RPh" uNMV4\[̇ٝ[7 h!#Nc RU2QL,mi j Z}s!KHA-c ^m5;"> Hvö7U"L%S)꿞J*LE:)CdF)X4M?W3 -f;NwXrQk>=D0v)1+0U.xG5'U0V{i-MAGe *7 M2 }hΧ-EhA:iiQGe8П!r.A=> f̲KbÕaCGu5Q^bBLSFg#2}'M{#ƻvw'DgF@Қ:}EP.Z͔Qz( rL3zAbAe߄Gyҧ#1T!>KYZ: Τ^.*麌v&j.:* ۟r $Kv9ARK˯W9QUm=ᨪdTDߎ:A]K1+GvbdcT\u՚"tmay!*[Axg瑄{Z3x&sc)$])ǥ,sw,l}Evb԰yNsmTG+A1W}(ؑ_"[ }}zw䭿t -Fp^ 1~NbG4HAn̩Cxӊ bPdf -[Oz u7\@ m"j8Ex>||oL[0[ne8pBNk|'ql dѦmCPK̥3x痔DHB:?l`YdT$ C(>1_d郎6gS7wmcsyf1v 7Q_ב*թoQhʇ+v.:؍p: 8DUO!d@ 1xP!T)DXP 3)i, 7#`/ۄ={I2ӱMֶiPCLjgް-p]e*`*¯mNp4CĬ[j_蔾ee:sg.5qb3LvN18Je8@AMӁt?$WkІ[n=c4"3xpP*k}pN?,w h R뤴1ՒUdF|ΩEFB69,05Wy?Vl>"lʸu! -v)a޶NSQH}x.4H4  e}zYr84-MX4{>]TB&|i0& .`\έdy5z("TA'u'qv v+ʐg<e9 0W_c -1ʼnJQ$:+5EAw!?߄OLpu_ JΈc'Sl|l0e\thmT>m,, 0csƐD[Cfr\,@nDʅƦ8$aܪlQLعa;I`}ӫ8`(?~V_{ZS -$Hhk!xHϫ@(=cb|vK)Z@| 4ZvH*.b \%1Z%Q:|8Gd -NhZV`l ~ ͭˆ9ڇA׬A"wF]*t[.6IzH~-"Ǣ#;O[nYe18=a;Y%3qw' MNNPb$1K7UkQ(`,tr2TQc sY,l8ʭzB$`:4P{ JpG@f s8W>7+rǵQv_l(NIZ~p~K n+UG±tNRueQǔp07ku|>}tk, В 2g6_8@NcAG^C׹Hoܡ;)_OQRmih|lM`6Go2%źû_B11a"[J[y^r:TCYZ׌*6г$ZF8y 09u 'e٤pX 6ջG"|dQԘm|$.B\( B@A¦#`lA-v'N{N#߾Bk9|QQd'nV}(!/#u^XZ#1& ES -S׈7=/4-S&麔 7i/!0řKsoy}\ < 6 :þߧ$&N -w~N}&0Lw-+zO -1-w+;̄q9A`2fGe]h! ᨠPGNě!ǰgE&E^@ #:G -YOZu9vmbʨ(d+s!@A]s񌻺jHɬ9AQzO@{$DPcC+|$d>-#} ؆V@K+!COb6#l&+!@؀1<9jL+4$2WpO+|rRxh[JkޛR(v1NWSY{45 w@A$i-Z0V៉߲, `lڌOeH85B, Ѵ?ڭ" EYWIonMM eF9P](@Q{2fݑG-K)Jma\OB Dm7ݪ".D~bm=fVɶG26uw=hDZ.ʡ!ZtsLU^G+dZ|AܲD{8K7sy.*ã -![e,'\J,QE9~")@|yOˍR^i`|QS[Chy[jJv]iy*v]L~X iٗ y\ͳxvr٥(^M k/,MXͥ/)="9 }o -aDnQ z8U&tr8.,|-P&:bQ/ =D@)cŀ 6s aPL%^kԐY9|̘Ugr" -#Oq[9( ;PLB3 -KDNcz5^m)$6O,\tȗ]WWĶ>^x?]#غsO Un.ڈŤzGNT("<(tF|;K%]Rc?9HXá5L~<6Jb8I?4q8ce!{%?OWo3t~+ei]kPHʬP$s/v ,̭b   (AwIN_OWq$6XY,ݢ8]Hl#<)F°Y yT^b%ɮZ$YsXZTr0Ql,?,!S6K]Gav9 a|[ U\+*YG+WOi%D)\ߨ}JޕT~c)VBmEx|@UTtGퟬFOyBrD: f9fYdb 6r),<'kD}cΒBXڮ+EEx˺}hHXIN'EsYA/"3E=r0:_n0#԰.0-a[pa,fԽNŘ5o<GdpI.PTiUF$~62m3hf3p ugt64^N}MB'z :#&WÓ5ӍfS^c0/ -6 -th Rl_wl9hDŷxsiKs0-D6Ŋjt #eFzk ]GUp 8zQ9flg2q:Kpr !͑SI('ݗT`R >9@~rp|W,g sX?&5烮(LL9(G:G0NVZ`S:IYw)cΎ {\JHpNUEv3YAġ4xM#5PTU7 -.`*30@_܌!.vV7@MO?I]`K_Otw)@vOezwtu$QPKC])R*}ٰ@u9vsYeԨ;ηMjYt_b"-ޱ; c -h,T.@/e;Ǡo\`zo|SY- >ō@G.uv0Ly؛'F.%.[\%$W^2Hؽxgʮ':SSs,!2Tџ!3mc_|(p~&b=3\6|YAz;+_-lT>IÒ!_sh'I!•e,?Q'̵J"#kAiXx}w Hxl}y*%Oݪoe4﯍t"|J0ʝ#.@#=Bnn+*<,0͇}c1!;NĶd끊{ E^O#4!@iݖRfjM/Uƈ:傀V{$ ,PR;j0HBN0IFex 8#⎀^畲&!XOwB~=k{swFG? M^fgf~tk"έZ( ieهKb,t)'r[ixx,Ʌ.wC&:!ܒe1G {F0.㧑.׈Pc?]"lH<0l#H,G{6z^ -"l.v)G<%|pBbJ!LJcw)5=;i_;* 1<_}P9*߉SoC.Y|vCOXdN kB.x -.c*RdJo瘴+u<8c{aK1ыVEqL>$ -G\ZH{2So}2e{H2H!{Z NXo ;{(,sDO^%BxHɞ.'tY|5.6RIR7Ne5xP9k#:(WVEW,ɴ;L/z%@~T"΀ ::$-,?ٜ S#b(ԇ!0( ˕=ԥ\R]8KISr#@KlGV7~RWJ:ʁUo*:;%n)%6]Q~49$cI@Τ_A*%CIp< IL)GB}-i2n‡a$G! , Rnn@B0:>*~G$|l-2}Ԉ~yz~WF-2FAHT/›/.ґ-@ g嬣)0Ju<2Q; Iߣxywj-,QM1yǏ ZnzQ ^*>]K62C$7s%A2;;1#~#, cMyeU*=ڭB.8T"@˗.B +(WI()Qε!Ϛ+Š ЮIziɗG]TU[iXhc ɕ6V%"mjDX5\ 6'8S&BKdia NP XxBhNgs-)TcQg'D r(i TyBSfKdI +O/Jq1ݠ'TUϟQSܣeoBvaٌ/GY1df -5"1D@*ܵ*3ZFTh{ӎ'T*JsCZʘYYQ -4ȧ+ D)"i=0:Rb+ B^"\9lB2q/(hjXdE~ d(T8- RZ&Ԑ5A`:8ZJ2f:x5g̫K0 ,KAxy6DQŨvC|TH6#Hk<~,N?CiHEQ^- x7|:Kf%l R͸IFҤ36$%^\ P@;-~#l] 2f@86wS$8+0 tn5(- ekda1րZ͹:i'ur5Oξ ~]Fܫxoi QF#KcIx{lDThM=*;"xVqP(€B -ބ8Y, R*CdnY٤ -U i@ -w?!+!T.Rȉ50oVr6آ˷U?ɃoZZc=͛5sݱ[-"c+R1OY*"?s-qxw8%\qR8^\gqq RAdU.6[mWG-_ֺ ܦ`*k2u<+STovo{PˆF[=Cf2,ַ5zQӆ[K="Cy_RXug¾򻧊@dMA#ky j&N0);k:RaKXrI#TjjV8x.+{@q29^>t_5!rXu?7( -tY$ӼFC~x_ H2⡥ӹyKh~^/, uLj0)9T ːVSW"+=I-ڌǫ<6"1(zIo&Q\:'"~w+0rLXa,alXTm4o,$l'>Fz1&ˊvǡbeE-ce]0(T*}Ԍ -3pNQ4XU%^y|H|W7qMl -8*@@#7TL dc2[B5ϷYiCJR9Ae%N l.SϛB- -N Y' GMlT;XSBіxI.:X^imf"^kLw_s6QENa'5re,԰gު,&4O!ܾI@bPWJkyfn̷lk\(Qrlnx?[#?nG+c=%=dCX cާ<w&H=/"*oi1 -zU@xc$ỵJE Հ6ڥ!Q`*B+8 z^2',{Kq[^1< A/Fm>T(D,րNP؟2lm9!b*wPљd:ٓ9h ?3hnϲqyE -K!iYM"%әh`5*F#gSiv‘}QE"p#((`P>pU7LwYd %*8V߳n F&(Mᥰ Xf^=$m~r5}x٭<+V5dSX!5LJͫaxzNRHcRSsOQm+ TF U\xä\fNr(*x"OŒCI@mWx\P+FiM}P0V~zQѓswTlqeAH9d1twz$KOyNB- >mCIufYwQ#JC&a4rƮFRt -Ѯ yޗ2l<9`T-ZM/zPL\(7POU"';a(e[=M]ӈ]VϯO7￉EO瀭D,K*ȈRYh1J {!Χ k,>y;E `1[]ϠPG#xaLy:TŒщ+T#lpNEHSb4G6]qؤ;!x#2@ Vb(J %]\!I#. yy#6H3k}6x“9'20'׭#,@kRFڅnZn6J.//myc٭\%^Ĉk*ƋA[@fݵ(y=Dk Uř 1pu ׿Su Wuƿb`67yZRxW,R`#UPN:Lnp40H !@3e_O\ EH!B$>qQHlYusfx/0%wItZil 「㜑# 1rbu1 jd*&nčD -$HNtPYZPxPr%h3-a{j:I 7׍V 5m;3<{gv}iɘyzm'7so%h2%Cn+FN1Db6BS+dlEcfqW'uG [JlW&WCbػy!ا5r,&#yΔLᡒkDZ+ڹ&M[oI#ԅ?l*VHx>l~9\l&Y.sUr,D+A,e&7g&RPg-C{7H|I[4i9w: b'F{x}VئWLPQdN| OIyX'OZ:κx1$WVG*W3@P⍘xzJ\ >31'|XZ:,*Uޤ43x!HGXFHvcܒR[՛sdA$9-KpiX׋Ƹ2Q*F06J^b/r36|-Y5?jrMcWGm5HhQ{ 4(c߸;òH* 1_YOmqOuS[ll}:WtjA>-@)0M=knᘷ,#R'%'^W _Yb0V+7' 3CĨj"LT"`č56 l IO -yUd+(+/.EPvNxs{Og$Ȕz7ޭ}V:9F }ð9`%&QSLFi]v.#Ź cBZ9l<Ò=вmTwG -)gO=zR-Fwި>P&iB7;6ƭt'N05KגN'y>Iyj|[y=esнKZ3xoW,]HbVgE-8AcX PnVSgC xGu|>5(SajWWVpq0Β%wjkN霴:9dxl!%Fihr(d-C3:H!B% -! pg8usk=]!얷(^R-@Sg=_}eQ@B&QZN)sR9#?_ж[@0#~mo RKCyfOK%#Hd8x^S&4dƚ-V-b'eq@ףG%d10J[[ey9YBu7@UYm.]:n{O3Fw8󥍍 {V ;G+NKh\`k5flU Dt Ķpv O/Icr#A$*m[#X;E>oj/%1U)v|j&7GB1@08]S.e,M4%?O܍v-H.aٚº#F]иˆg,8qlZRC6$S9$PsEg1Ot%c3Td$LR2ܛ_6-ˠi7~Ҭ*Jhpߑ V~p=*2!y-JSAh#1Z_/ -*Я`r{,`eUq=IPaBܜdv ;6 oaa?bhؐH5쾉O~8z/K8 {|'!5Z4ЛKWdɾVJ]).uE6G I3G"`iO]$9SrLNA!Tm;UNdB[Xk޹zMү 0R3 XNU{2fd SFձ+D{tJ^z-PES]jx:IDx]gcWWYRP)Ry Jb5/W>ϴ'_6o! aGso_>ALf;CE8 x$HĝoI E9L"^y27. xzܓn ">ZN9&XixVm=~`f^H+:JQ NJȥ*IrvP@FZr}8Ǿ@ML3D6e!_Q)8EIsA<r!Bɡr5:Ҟ[96PUHkAf W,ba3 |+D\7UV7f^jO;ZSfRN쨟JlPzUzTDu7gv#yk \,&+Wk2q9)nM9pt^Lp:i.To\ovr;N7c<"`fvt&u>|;tI "^YZ"F ٔU2e awDd^}P Gs O/y)y pPI/x7 A9z? -W $%~ ы؏be -?vZ1\|g  NJeϿ'][RBͦ͘ttB`ȡ %'X5 1G!23|g2(Y(-c bd1)NZo<082*4m 6"@Z݁5b燾Y4f3 DNxe\|J?@^^dZ?j|Rң$ahK_=NiҘI\ks`B2ЃbI%ҙ0\ -G-U[&_:webA߲6Hk0yl(-G_e4I RS -•hKѶm۶mz`0tQ3P]u>m{o?cs0>333¸c$%bLi\SvvzQzqۮ/wOzUao=njyq1=b$5{ʉ^T:u5E쾵X͹Tfmn1H޻V8oL3ݜ-xWۻV{ݶڊ/7KVkVSlͶlo~֖onj-co_֕yX_k)Z;nK-ŝw:SJ+oJ{Ŵo+Ÿһmǽm^;]jyjyMk4wqW3\ss3R+^iKc'7f7g^żbkyZxKr[7ͶuW[]zN1ӊ)}Ӯ34׫S]79׌onusj/z/V;qEn;L{jz6kN}{:69_~mR{)Z;]L3Ÿo9Zk+\[}:כ7W}-Wgu\祖qW{}oW;{:8<3cj;Lq;W;-\殻㞩ݺnwޚs7[ONmV[śbkRwk]ڭb^wڷ6O]cZ{qMlmlvgn\mZ̭o~mVlwvJL[Nr7bkukk{Vgvo^T뵷Z~i<_o^|c+6SoZzuvWŝZK-9|Z~-k/Zj-kZ[-\m8ڵ8g[ޚzn;luŖֹ|s[mb޵Sz_lV~g{ם7|/ZʳSέָL-֊oθz+vc=}[nu׹q{[ҍ5]}9oͽyc^jkWs63wczy֫{NknsZZ֗f}κK8J3\|Vמ;U{޵Zqܷ=^5֞)ϹzoߗWV-v]oy]o͙k+}s3Ugkqǹ]նʳY㫯ֽyqnqof)S;Isugt[U뮻ުvf9Zou<1ίڪ|o;sz9׺o鬷^N{s{յȭ㛻N̫ޝSysεcj=_uۭ[L+Jvv^5z7[-ުmՔc~՘V}mݶNqn<)WgKykwRۧ5]՛yݗ_=9:S{kͻK;6~͙mrK+w]W]X{ջ<1XSiT7ڻT;|OM|:WmS}6sm}c˫[qꩵnl{{ۍ{uOxRigǸ>58۾gy͜yカ:oNC!Z6_DH " ٓsM PnD"u!xi#s@'2cTY+>(T, +}ڪȟ,oW4!GO҆4XJ{b_HU@pYE˟Dr`eyyʦJ6ET-:_R>kYy[9 R+iTy+[41+[89ΨVbIXɂoqME?tUt=8aLdPodѤ`bJ2(Odkdi+qxy+eDq+~Ә踆?jWG|A'ڶJKLJ/sg SFe` S{e8+ouD9{Bt[gjQH4*I'<Y%D8C5 T)wȤO\֘S$ڀe?b=F:"y22-.&f(4, 5WE6]K ( !F 2O#jǎY@z֮}cFibE^ow;hTYȣf%UDx`^EڟqǠi\q3 LiRՈCir E˷U|+qfƛuiίМ3ELs?ec">6Nryc"דwM93޿b'HD"PDlҚR+K^CF/&za5hNeXau~TPUjFoPhG%"jshA+Y4~ڨb$aϐndyF6z{ULtF*Tf坆,n[B"Jt.}n8FKY5mJ4\2kZLݛdr&]Tw*3JkMe>j~qcKK6h!!7v댘"ҵՐS++ +EټGΕFhQ<17ȧRtT6*#c(붚Qa}͜d鞫Rt]$:QJyɢ,,#ٔV&י>/3XhɍWwJEXSH$ĩc҈!Upw^jemZEFi/Wאgeq|c+e"Qvz*O$Ml>Cq23N;bKhP^u,Wd;#IVR&ñyH.Yg**F6,e.cڔlf%ґKZֵ#jE~e~쓷TՎ*jdHtG%/t,jzQ<6GɎ>$eW$;Oh&rIi:!4ENF&TRR}*541uNc)2,j]a~GFĎ^)=3{EgI1KU9:^2ӧ3ЌLSvYeethvCy[G\KvD$WdjXtL2\UTIJ*ۇs'¶;YitκH;,U$F5ʦoF_pjc"zu~zK+]6Y*G^֮_ ;CܙcNL;n;INN_4DWyJAK8[r$Ϫ8Hwr63hIE5nY"B..Eu714n"܉rrE93]\JOX>ɫiq֦bΠCϙޚkݽ͎Փl%sm&^Ŋvr>E$5syatM<ONMCv^w4a,DAe6U۠e*ͱ41"l^DMZX*A){KLGĺtz :1LDIwSrԋCK'cuiȮgu՚xz%d*VJeG̴NOULՉ6 pR~חӨϺ{>+uRGFG>N\9aK4WB$%S=bdH3EExDdXh2Jve MZfs)tI"D)H=S)IGz7쫕etb78+1[B1\s3i?.;p|7duowK#9<ټR+E<ݓrA+%?lVxbjeE~% +5ߌN=#?ǕoukZgKg66kG-Ưɽq~%nmq.:rsTIs]NRJ*ZE}z" r4372TSʟ9Sc]>&Mf#T[YW-)9MO +]"gR U쒷p:~?<<xgR̲eBX3s~ 6b>ɵDΣ+FM)D[ޫ-[ڂ׮|ʱT6^la̯ˑf&x̳UsHZ9Rjl&I_L̯JmVrm,t,zҥn'2+2>R>-^KPR?S5`[nF>V~7˼RIQ&3+" -77}]/R-Xv1+Q^6#d%O .ݓĴ^dXURܑ?BY*"5E|;w6wt>v_A,#?mh.d$$5(-5EyMZI0 M/M':w +_$DIZ](s#t=/}~oM?l먳hO ʴ5b>OKeM;)QC%}Tn=8=PUrMi +46ɡAXSgyt; GֹOc%* 5k%>mcuv)jQ K~4+z9OEU_f֓e Rבwues''.," DUUqu,!w|Txgͥo)uүc]_軎;;rPٹ7_k2g)MtOҡ=gFiDF,v|;,s |$X:=q| +F?ukF(׎+2+|=.y7H882I'kR&ڎmKb9z4i4Y6ClkT3Eligc#"׌d6DV eWJVEc'1cUc>;X+"av1du;&YfȈf%0f:VG+[o)ql}(I ǷT,eg9Nqdypj<̳1^UOF͑SCv,4hǒG쎈R %m?7DܜHP,kɤD'VHrX3[sEmE)fΘ_> +87f%hiUWmwW$6Y3/LXٍ lG(snrܞJy1FCELgO&ZIs6!"J³)YDQzF\RHX9r,:PkU\|'dV1 ̼| #j{)jҧЮ%Yt-Qݝc +ˬx5Va}Jx%Bs 2)^][}PƄJ)2mNFY7sta>*2*5Yayr(Lz]\iZeX?#jbs.$$zYeL2]D5bUs:$MRdIS\_/enR +¢+fG4MVAv3ɎnNfN7K!3e&٠Wˆf7Ku񯬈>%u+ǘBC<ZWx!;9x6c{L+òO貦S_h%jsemYE?ާШ}lfJ8gRU07:d2иc^lƹ|0OstvE(' ˈzu_fz7[FC39kw*g_Ns:?wh_/og9ߡ9}qN2wj>M[R4wO2X#»7Ғ,;iu Ѥ54֦%!iaDF\dITvcx':BYޔH2q ˊ~]6cuiزHΌO:dhx322ˆshT#e녔c$2DtZ]YXbUՑEFRԞ ag榫F;aFYڜN'dTv5tL6+˂-;ݧ]Z 9kt;0j٤v%:1}:k4;L) HgReA2hR7v5iw+D$ l^%JNfIQ.WiUH):IaTa<*hi"2éMBɹB6|X䡴cC' &eRw7]鮦hzYRV5md'-ܻMIR%$QIhOBU͏FEl~4њ9dM̆;_N̠d[#FmZ>-0G{//ֻwrUwNd{ ӫv3;/뚭>dշu8DPoQ Im}76+MnSݰ1BwLOȏ~-̼qVL#L卼aQ:/_;i٥#VUӟCzuY5J$R54s&Uk_/a/O}+UQ6Cs3 zRZj4\c#ΖYSiu얶***4fΊ]ui+:,AtYMJ4tSO(N dzBTݶn'1?씛:*hsIk]R4qn}7$U-n>}{3WvgrxpDR7xB7Zt?KD;OAI4^FRMT{GІbj*,^%}7!J}p>Fh2/ӟ}v<3*e9IO{N*p:e6mfcXS8Φ8(.I4{6qSQ&.G`~gYnF+4 ߫osWdv#&n, Y?LcY4pj$iyg7Y6|gP撜ŪoL|pl2&T6()%̑Ϋ:7A+E(9wTG~*kK3yj>4 qLnÖDccsѬ5xH͎R<Zi>g't({2cgR!|LKkΤ!4{͓"֪^K2 hwU-z>Q 6JMGHۜZ˻}9Lhz38{B3ػ5-UuД͞abBɗs^sZA#ѥUXtE2UZ$#kLqrq1`U5-iHzwr9I~w1I莓$Nv<f\%1,fC{dcZ'4˴97̧€ÃzЁ A p09 a +HXDH^t%Y 8B"L 0x@AF xpB "@ LUTMulşNnArttrԦDBb=̱Iyrsr(/V,G$;ĶStoo5w3;al26VAoY+r6U蓘sfsӏft$JY\Vsha#gtԴl CDy r53ƲŶ?z&^ӺP0O& ;CM[7Oy7O9لffeY؉J>u7(u:}#M4x#PK0K&fFZ iuP>* kzIzEjך[r8ct,':A'1ΤAm3ToGB$4UKs/¹, )¬)lnZxKnZ2/u8-bi{\QhV>侺 {# +]YboppX|d02O2II<!J3â.);˩;>o)$IL1R՜73&,$Zνqάջj]}Sr6NDuӰM,huHHX#4 nk:^UY]VRC7[XSOO4tЍSKὨuSx7, O6eVe^Qͷk}dBBAln Y &?h-OM/s ^]sӄa b;8diR:OuK%V#dHTVVz]Vx4G'D74aAV͖Mϳ투Ni#^RSc Ԫ:ާId&]|W-ԓf'YE%r Z9t WU)TT(TTId2Be2LU,T/¹Xl삔%U"ʌBJQe*G*)'J#3@&kdLȨT}]//Vld.H,ct2u2c2Β19߫r$Wr!T]]O\)~ʩF*ɺ M5{b6ik]Fgb\m5M&M Xjо#9"rt㔣+PImv2&cgdRדW5,7-;'Jz&%}hukl >](x<^(tfϡpesvY5ev<s6s_cI8=S#H=J$;;JoO鍽8 S496rtgXh#<9e21JRvGjIIUʤ s!;%mkFr’,!~Q'GP|olv\yeN%e6H9=nƜ&ﲎ}iy4MO2S;J{ڌ4+(2IH|!\h::-DGs&%ҹn$VTi×lˢSu_L<̬l'Y4<)- n,dG<$Ou)W4ͰzurdmXsm(*znj^NSk +?)f\tQF*2ϔ;zl{Y2Z|e¼˕tH9ylmQ9YDiH>e џY5>~oIӷM9ם" I!ή~"!4z}wFwݳ#ynn֍xeseiw؈0'k*VdgxDiѰtTXd^]RQgmwICq৮'ˣC|RJ3﬚ߝI&C.I5.W?"zҐrP +yT3⫓]-kN)xsWT6wUܽ}Zw,%jGE4JaMl0w̓!l|JhV"+B5 %?UM}WY]Vֹzx;#ӟ>RS1WQVM){eQ^'aExU1~諆>wUU35Wv"gU(z?gV)ɚl\YN>c'eTvhBcɜeXbZDNZcՓaue^éi9&&fos*ˬ&Ga%VVa96ޤXVVټʈ~}O&u$ohe7IsXrwuIʻw[tWYi"ѪC%uxdϣ)׎R4ًovl"1+XL΍c؛WE=fϘ|XNLT)~AEj=h sLR>iԳsI +fhfY3H>S"p:ge}"H #a,ov +c+**_pM'ǹWgxQX!r#<TX9yܫ΀{yLq{j- #PH!(}[\#o#Xoek3YƳKԪ)8Y;xǎF}91nWYc:w1dq;1'⡡;ƕm +.+޸]1"MJ +;9Ȗة@;gmJ^tw |[ [? _Qѥ Xa~7K<>ӧFDc +y LQN0Oʇ(e{,7k(]/F_x!O4|!cUc _ΨR\ %9wng9*t'UA)2(hZ:s (:Nbr 7P"2ݸ a ׿୬LvX8!:';AN޳Ц)\,> wcDFh K#5JćHTAiHHNmSNm+dE 8'CrŔ 6rj6 Se Ix +N%4ѻF2"[=0FӐ[i|ȕKLş{!eCt4B5ϐ2d 6΄v#M"r0\aQXu% OI-,z^Tqbga9ZۦJd)QV, Jj3VSFd囙W:"k:_Y',zS,EY+,M1T^ѠS }SK'd`v6kNW؛t9Zۡ5Y`X#Y_Fpjɣ,*Y&AdvM~r~ԇSOR^=9bxNX$4͂އLDÚO2H8 'lPr'8Rv"n7BovE!Lo5gdX Wcɤv?ނ%! OpN)`%U`X|(e \].^-L2m6j| !7iN{'ZjA4O/wc԰4eĿ"4ހ }͑ZXVZEa!P/N3nICirY.4P;ܗNfk,FRh̯E Q /:J͑z?fGꓳ!ܿ_0IjPIjf%5}6f+-^DZ5cά&} ^]T`z6q5ū4D ՀCPIuǯ°Ë@F~ aL4j3/ x)S7koiqFED}DѨ%M ,OSHuIe D(4(D*Bz{l!Dh(VПjtMB& jg@DoM` +QF^5g#8d~.:vHp^ #$4mKiOѠ&C}E$֨sW6 +!ZҦFi0EzkԜG|Z ͯu 4PÃg0U,oZS7}jyfB֗U^k EֺZ;Lɯ vkS/]px[ # +]hm=\fZCxc([gSM{e[`|`R-ƏDl]){+vZ7-tF6hbzD]E:-+ ItI"NlٰuhPG\|.U·K;/^zi+i`Px<~3]-Pveَmk&Mn8h+0?6񶏓N"Qp +>O܆Zr3E_;nif$ݟ棑"j^-wRd7*;WV' W,[&)sXw +߿w}ŷ[w } D5!U +z1)|ުtF,hڪexU㳀 = ],ۄj xayXtC >Ŏ6GKwPe6Ϟu=U`HqlS/DYd aH* +M L8'd;xj<I3PaEU4́ $H\P!'L|0ڙxLE=™xzqLQ aqOEFdP +Q<݅aQ; ^{L2<32/<4ͣyѮ5e![<HxJW@_jCEz`q8z|^Ie**at(M.7FfA\Q=t~)IOϥ8qkٿ>a֋g3ކ-F?4{h?ah$kpj{A}{q ]VfĦr{j\0'@ {\X*K' +}%!~* af|½Ǐ("vOCKߪ{s|QM|?J,qЯӟ 7~iA~v1اоM (Y}|(?bEU9%)S1?ƒV]7&M td5AFX>9RqWO"EG9KKR<ώt+0AȦ=#!X#' Gi,A[JǸ DŸTeou{aTδ7;UVTW,/b NDw'aG+&Oq`G_U>{-qjIEqk h1?h_u#_ǃPlTTю`y O@b \lPmHt_;k:y [ cՇh7"d$tH. oxQ@=*Dm- ᔴ^0$o 1y=6PDί\ C8vː2TW0>'Ee){LX +h[(ÄjR0@ +ʉmE1!i@@޳Fޒ3 /Xڎr) T@6-$7on@0HVX LP y%igkkDV!Rm SxL) #PDŽ~7u%Vl CfuqZ;^w E Qsk'WFG% D^GlWd4ñ"bCE8_yg4O +7 :uV+Ct#ؚ.Xir`pq>?šk5M?mEiSVkY?-y}'W8@0$"8$d|~A2#SU-4R+2| +.!}B1C3j*n` ^ X*2GU~}B#GJ'Z0C8M(6%IFa"WA*F鹦>3a=1QBl0$@HAt(:඼0!XW1D$>G@HnIxC )U=e#+Ҭ.HH0Lu(8 +ّ:8Դ3&"1uP~e{U`B E`6 Xj:d>@W @ȷȏzC9q[lZ(G1+m +@17|}x:w\c_6hQ +ULfd(ΜrZwk9m$S*{)fkLQ;:!Nh'|᥼=*2  'lDrI`QǧDoԪrS_HZ 5٣ we b8W.U3ewWj*7l 7# cxyG6^ϵ/FE,悐3>Pk}Ns+gDa0: CNέ'7Gp0("K4؍w[,oKF.)YŜ5_Sݫj4@DiUk_˙5bsA +}$\QȥfN ET8)D +y7}cإ"hMq|hRAKԺ8 +'EB c/`׹.@-a,Yy5b573Q" 5(A:% G.!ux' pb,bONe*LX]/:Kl -k냽%^dj2 zWNx#Σ8P.P&QF=?n# <5!eڬZAy }& 6J?Y|sS*q`2DNjRϲ ĎiPn R'[yJuˎ6^AU&9Oj^j2N[ 'X_%ɦ]Po3Jdg󁻑P&@+F9ұ9ABЭ-?cL[7@\ͬ(˄/"'PS +=΀3 t#S{#Vu+SxF3jJ=|YP ߍcT񉤐WP WM=Dna +IbLֈ2]!\7UUPљ .K}XyJlr*73y̹gUIp>nEE/p0־ǛS(FN|8磻L&Iu>61?̦i>j!TPH94KN^ĸOoxԬ *\=^B07T,FFUL4;bD$W5#p",y軔s>V#l#1Ť V8L:~O,zvcbV[l!Ue x)Y_W YUM%bHSŬ{嵨&UykupUK4ڎ}5:LX!V ɥx"qm"Zho^<}qJ|5@Z" H?u?0W[\PZe{5JS!\yOk!<>/6SК,]G""$YhR\,4G xq2}`XXR|Pis6"@$,ͷ$&G"it"#i]m9BI!b(s]DYQ>6*|W.QЙiP7 + \jաB A^tVZқaO愜?ȭEյ1ķЦ8#jB~kز3"MmRq!)j}r#E|M0ԶNͤI;LfHANnۅ;ןERaL$sEhr,\gGG3M%"j̳TWugSqcݡV"Y%=$}qY%MrY`C6m_2׸2/$^q0{Ht0ޡBzRm m^Lzd`md,k$9$'Tl`NJrCr1*4e0tqβJNy(L +:vfʑnւJ _ LUجpCOT@ gbi30:AGlfrī (;ת pQR2NЫ#81JՊ +2_1+jZ?^kx Q,[p}K<} :߂:2`Gaʥ#FP6BQz^GT"r(^n+-cM 5Y8QcHid"Og%;ʸ@YȚFwM rs`IӢȔp5? &"&2A +d<2!u/ :dq< ;Zhp5\敗t?Szs:g""dad̀{L0 :b%#Dۙ%FKIr68oTCHeaz S+?M_MIl~lDV9:(xלE50,B(9L ;"+'krY6D}?3B@>C=1d 9h C2 42t-( +mL +(^3*lf3#U|o-vWd862LpdCBN5[>zL'96}-Mp+̨3*(2uAImgSo^^ i]s9b@onfG_o}ԑU9;'o7ʇ`pPqu ++ d=c8@CT28aAoR4pux&nOS)Gl}Jç(&$ț"[EMB/q'1~W{Lt1zT"w N5;!: #fI" 44N@֜Zl :vG SNb0-Y+[ -eIc+Ls_8=gѺ 2%d`2϶ؕ:Dy=_ϛf7^岇mFTK<M|6 w@V< *+CTH0QCÓ[ly 1oSM6,^W\z 3NgDJtu@``UD:!ƑMsֵ +~?{q6(/i,O~ -:U' +mY*Ӝy;m I!\nZ̀e[4e۔H{ ;7Ҡ6iOm( KC@ ˉT: 18HCxv08J|ZݙgLZjA/u_M~ XPځI ~ -YU +s{sm9\xYn4F1:'!>g"[Uc^''}@ 'A +WM5wD!g:%V\)oWH2&B^/rެ1> Ek/3Hc}?$/ kM7*E_ń*! @jkw4PjkhWa~ffjSO=S)DkS}Ep%bh no)gp7[\20A}S tiW[^[2 v,4]mթ`B=L]1XtC)d]j+$`mT!#)I؄ɷ*Z`zQ1 Li ;CDguU<@©ɉ +&d +ۊ07`6vng➢*J+ W_Oi4="Q%VרmχsLSkaE6|'تlc)?}t$r{(Qk.PT&˪W*tNaK@t,iC4qE+Û5^Fm'|U}&;Y T{rwdY洪 B +c'DKȧ!/ + }s !"p+̍N +' ڪ'. &R@ic45jaah9D߯ FKuKl5R)^İRukaKv kop!9 eE_&' ~Ĕ`q;sBȰ9I*U|`M9V12;`,a^tB6?dr5-퀄uj`cpG5).e:Y}ܺB㋳PfS^]mn뉍s//J;%'U> ~ pͨbC={CeDWKLp\w9r"P ΚM +. jS3ɱIKIٶ@׀D#6נh",A<+H@T v'an=]V2,C`/*G_syWo< +==7)L=r4C|#nɌ B:|] Hsɦ$O 3t%yizF5# 6/AMӴm3glI$bq0?t+Ɂi`/Libݥig{kP2 A{][T:%Jp'*Lko)ˉAQ$yQY4c}]3)qF-=L|@A3U.]% 5dA|s"[x.t=#2_{4#C~ F1HXul2dh`+Qa%JPl"Fm +DEEp5!v9*MF5?FKRUo3-z[4.y6cR3?Kn^:v:p,t5jydSveѺF֕!}n%P-a3du`wVka?ip] + +h2F8uT\[c q-;^3dWfzݦ+;U@9\DV5r(S\} +A`|bx g|ZۥSL(wvSDRn7uV$󻏑u,; 1 A&r(8N|Q%ΧbXOPuӎuz ٧B*`!..@ޔHd_HVFw6 lc kBل7Uw, o'3V69FؙEQ:pm1܏"5)ƯGg`\т\lޓm|CT& rLQ3C,aS( ]E8px;H[c*t+Fk'đDijFYK͊IJ(@ B鱨'~R}ʲ>Q9`-Xw#"XBd'+уjPAY,tVqX^P\ 5>嘯PPئQresEJ!~@*YV`E މviRb +cG+.9ϖ(0Y2 "x1<'̜Ō6u1 +ݬccC !ɼ9rzT~!Bk{R&z} \q3sw Щi @Ywh j!VYSr{kV5K`C6ꍾ9xuuϖc hYٜe!<}Bd]'FiTv W eքpT\!ѐS yucVqA D?GX=~rqZA9jJ/$k`9N11Q9'QL@9ϫ:G'1PVZScf$qYg>~. >p'7ګUԊz{챤XdleMczc8tj_U2˖B4n%'m^'.Z;No@~WLx'KqKW +$1 Rvo/>+pι{j#Wy.$6;ck~twߥ_g楎/>{"t)^o;CDemCQ "ɿZ>B4Q<=DRؔ,eP|cP8e\oQ* {靀7pj_ݭnYJ'b"˹ ׀8=9! ]/Yr7xn+L v lw/wyu +$j8H(]] 찝./0 Fe4ri#aC ձ,7ؾGo'q"2YE⩌tLz#3K0 7D{ 6-q8`} EM!][+ݓUaojy{MH񇍂ja6 +VvoAET>M?uHP|`_:/)x =EQ=~GBF pa|["P#3Ru'T1 HZTK/xU^eSt Qti'XDѷQGU^hiYc"ybJǫ Vk}ęF,T~idC& K8 j>?)e3R`%~,Fz|Wm̚ex!U.!{zeU.$4#BT/) +3rW2( +I.28εϚ QхЮI>hɗG]֤WE٧4XhIȫ )V6DؚJN%;ӣ&s!&LWdЯJFsMC) +k\ /xÚyc+q)ma00,‚.<\9iU$t+==P|{gNWO/ lM]og瀍(TLq9$bd9} `itQ&1?#:t }}w:UJ2Jԕ +LVΓJT`Fu礴mN5SVH^[|YroUqjehlG^!Vwc oY%]l8OT饝}+kMvelctK7+9zj`6=ne+jq]AQegdTcN*r2Hb=̠[97]r7ݹR(P)b]bV%ln"kBgdeK(˅:|=Z>1ePhIN,\/nw@1 -В\T `X%#XNb_֘NaPm@?Uԣn%OEOSM66tbwPS6Uv ʟ }+E$0@ ү$ĻB&M?ݖso)j:r/7s>"'|x(@78R~ k'P s;ćMOEyeu0LpR^xE:l'ߪb#pp4GHA,- +5~/>ݼASJ[7 6ȏ,B!"jp-vsL!5~jЫPcR [,X!(i\k Ŏ`IQg@n&V=DT,jp1]xP[ REr)fRD`J|AQ%[)}MLbs/('ѕƘh= s`\_j +!dEQl~u7g cե-uոK YeEIJ' C~Ð[_W|> y]I#fؕ0up)/ˆ{C]cZڸTH~%%mA_N H1jE_.JdMRk-C*C1o,+eEX%/ XuϺ %X4JQMݽM +UhLc[y(sA +Ҳca!֤rFW5b͑*IeOTT O9Nx!%+|3KI=9`Ru2A`q(m0%zT^u}LH4 +#}{U*Hs` E-{R*O?hjB +ӈ]2\u5~ +P:c|D$ rIH  Ih2E%2?0,$~r>AE2'xRXUlw`<]xMB+=WjQ|bP̥ؔu =#d5 (zwV o'9hXV2Mkf&W;x8AWxxн*!BSAO@FZmJ50{eh|wNyLKIB`n1s:m;`n{&2`Q!Y+4 {Xh}@q:qwBQR$3wY@1[[vK%F$&:d LL#c}$Fuq oxq^ 3X`42zf{)<~ 8qZ'dV05 +]ҰF':]{Ȝ!\# +L|g06mUXu#\"K f@xhcZϠ!5#Нw_/a""5!q] L{HK9^SsdE++a.tV| +Ѯ RyΠ2l|չ U-[W=|(X?(l'F"P_3dzqM}f'瘆iVqq\3VQ&/Z2dDӌM-O$6]`>BF6^t88n_uR|If6bXt,}"3 >7AcusgsfZ U8Q91ʙv'}.eZV09ќx9m?>bN=ڢ`9])L\dMruvD,T0>S1gvRg-O^{fpM&[D=6wZ + jOG{0iVWJh +/QdN|8ONT:N,x1DS~>#1w(Z1'Խ軥v[~Z:iZZzin21 +F+lI,bGnGD˙;H7QRͩNvoi|/ePt ӹ0^.:1G}Vy_HW9:ߗ4qWgQ4LaNs*x\hx_{BK2cUܺ}ZeGyQX3fuxAJ܉b(XB-n+(9Ё6F&k[A5kK1My%2iK<- 7}$1~~ (uޝubۋnZ^`W#=h ] RZ *o~W`9k\˷ y-SMWbLV֗QS8>[%q2ZO tv};7Lsgҵ[-v+˧er鉽U7?y|ʍ~7NTl#SwƌwaZyhMzS?y*½TaYgi)?Wjx;7xUL(~rŽitʃzlP°,} 5Oɱ.vOk>"k Z%i=ڸ3$Ixt`ЈKm'ghrK2ow[v~+_!2uA+#NF? XqhAԄ"U B:ObPK6IcadD-QXJ3ŮT;jp*j;m*zϩIbZBRr+9D'kңIO|Rd^2Zl.Nlj?Tn=)D&5tÒ *4[MhOn1ë@N2%}HUl2Ѿ,HJWlwaVzxB'{ 4ƔshVyoy8Rzz|,Yb] Γa8V"YZ GEx +X*xu-'{!#] UED(å| `NmBCqq$)-ʠ;I*59GT?[ppd5: +)s=*J*zn)ږcdR6k[f$Anٿ6k?j/ @U27e 9|b iw:9/NU-1V"?2=c6TQYZmA +S/Z$~RCZty.]0݆t鲖;4133Ol쫩);Aq4xlJ\6}NY +('iᴹ / wd&T%b*ٲMra,{FG-/bNI3Y39q!yzt.[5dV)yn`1M! + +!~vf{%NAQ ˆ +4:B5vBF<~g f wc5* Ql82?@?8$`C=z^+a"ēR?ݗۗAsK~~q?iMM[vЖfO VVBs6\7&Gx5\ص(D) yFλEnQh4 +B8GkA.[Z[Q? + + &g_i^fY5KIГ$  +.)f#|c0nÁMF VMTdȡB׭M4u"P \|Eoٕt*/9['nQfqyxD<;t/n<"P&@h~)nh2*Vq[` +T z\`+)gzW{|:ULQJ/Xi-cG'=ۿ_I7Y/'{@JSis?կ.?At*Bv&;vU* ( %O{"(/0I IiM@iSU+JV_aI-dyC6uh1gXk0@4A_8-xMﭜ;I7!mgGx;byw{> %ìAvAG)3 ++mUϪ^>ޏ̬ )|%DyB]u)`ɓru)NΞR7+R20 ]l] yt 3_FU2"{O) +2 G=Si/"/XEX!'?U)_cØs!Ҟ܃=bU2/05 +LQ:AȄind<̙u9.@/ЈEi<(E4 6wQwi} j}/r5Vy1G$/7S 㮒 `eR">P +8%8;BX;.Nu/Qm.]heNc[fyY.v+ 93]: +uӾQ:y#tꕬTEQVWW?M?S +•hKѶm۶mz`0tQ3P]u>m{o?cs0>333^/cI4ߵ#y'=M-=<6FG^tz#ڃcO91WT:u5E쾵X͹Tfmn1H޻V8oL3ݜ-xWۻV{ݶڊ/7KVkVSlͶlo~֖onj-co_֕yX_k)Z;nK-ŝw:SJ+oJ{Ŵo+Ÿһmǽm^;]jyjyMk4wqW3\ss3R+^iKc'7f7g^żbkyZxKr[7ͶuW[]zN1ӊ)}Ӯ34׫S]79׌onusj/z/V;qEnu!xi#s@'2cTY+>(T, +}ڪȟ,oW4!GO҆4XJ{b_HU@pYE˟Dr`eyyʦJ6ET-:_R>kYy[9 R+iTy+[41+[89ΨVbIXɂoqME?tUt=8aLdPodѤ`bJ2(Odkdi+qxy+eDq+~Ә踆?jWG|A'ڶJKLJ/sg SFe` S{e8+ouD9{Bt[gjQH4*I'<Y%D8C5 T)wȤO\֘S$ڀe?b=F:"y22-.&f(4, 5WE6]K ( !F 2O#jǎY@z֮}cFibE^ow;hTYȣf%UDx`^EڟqǠi\q3 L&pI3SJ@C?bJ% d)i2P8Sl dD 1tA >9}I,5QK&JS&5Bs\r"_<9}/QGlZ- cPa.pYgii"dIZj(x54޾'f ? Q;dRR%7L5<ѶU`>kT##.ey'ICu] (eCJJ3}Ҳ =ђ1wa%ըSs|Tq)pI)XSe$X5D*ACq^Csa!NհGJIEW#>4|hJ0֔dHaxfUlE9]SE#~a4bB6,|` 0+Iy Y4q Y,!+ YCw]_I (4M( >4xdAڴ>Op쩴Zi"V$'I6aKBB>bz!Ɠ LCjI'd?uSkhbzA'anjU'F2)&2PJ@f1Cz0!t9u؜D3 "I>bxtA 郇LdUDXU8#dH1F)wy`HЇL&`˜&abGG &=d>d!p*l1?lVH.k\ᑝ`Br^~^YɘGFU3TCL 1Cx^?a5i+HW~'dqZՐlE9bM( ؐ74_UD4Tz_L10!La'V|Q-fhO2!$VUA5XG5YKbFIO "gc #JA#䍖bk7ZG> QPM&|}ڬXʟڔ ֒j*t*~X"0E!9_O_gLE:cRͪ3u`JDt_CkIh‰!!FIa" 2 &b?v1M 7jG4YEd~"=H d#=t؞:hR!?ji!{b~lA̸(` 2VJ%C~ BLdcdJ5[F؈-mƖ7dKB#I&@b;btA!K=H0QG &{$0>dD&$# B :<EAGQk]QCtPx=G#4#GCtD)a<$AǑ"N[G:@ḡsu$ k\A#+f qdd r[Y59O}Qvgnlv9VW˧bk/Rͭݽ_g޳g\oV[m;[iזw[i0G͹㎻~;[v̥ȭ1|Z-cjқ{^z1OL+^s}jz/c]鞽q^v~HٹT#!=5қ^z7N+j>{'n:yywl'߽k޺swqב3\Νqz[uhKoYuSMu֛GrJ1yٳyߊgg;ﭳ:oμ<|g8Odisf]s}L35힛O4wL+כylS|To|{oƺo)]cM3x罳8cu7c͘7Ǜެ{z[-X:n[1XxMXl'o>7NoJ1œS|;vRyko_MsZ/ݵjm|#ob:3w[/ߓ[KNk^v[z9Ț齜bzxrʩNz7νNz{wN+3zljlaoڹo\kԸg1|3Sy|[vm;<kb#[l_|륛G#e=v}wS{gyϽH_[_/V}gj͹˅Gvi[1͚y{u6zRw^;^Y'zb|3{clgƴON3\kl1<븽N5֘w7ߝƼf/[9c;j-޻f6k͹b>5|HN)NySgkwlmg\HsRM3FZkj:YיYg'tn1zrj+wv{]kmu獧b:-wO-F{m1 O'ҙom;=]キH{lO|co7xO<7<7)}wy\'-]YyzVN;tZֳrH|SjyUݗ[|uw1I+sݝ-yfS׹9f'\{yzv_<ޚҺ{gi߻xیgS:uj:uW;uzOmS^Kv[{̷ֹ)֓w}Iwlwk_sfg)_\wZՑyyJ-Ik^sK<+zJ/Ύ;-OyRTOK/FhZRqNLs7˯r9ݩ͛ngoa9bKRzOs'v97_Ͷk9cL̗Ք=iho)[Aq]ȏV]W9cJ۰ƟPu/JY8V/sVEe1oƞ o-] ܰG̰G 6]GDTڰiB0DIcz#%G/8!FPI np_.)P2V>7}2P<ViUD +%e >3u`JDt_CkIh‰!!FIa" 2 &b?v1M 7jG4YEd~"=H d#=t؞:hR!?ji!{b~lA̸(` 2VJ%C~ BLdcdJ5[F؈-mƖ7dKB#I&@b;btA!K=H0QG &{$0>dD&$# B :<EAGQk]QCtPx=G#4#GCtD)a<$AǑ"N[G:@ḡsu$ k\A#+f qdd r[Y59O}Qvgnlv9VW˧bk/Rͭݽ_g޳g\oV[m;[iזw[i0G͹㎻~;[v̥ȭ1|Z-cjқ{^z1OL+^s}jz/c]鞽q^v~HٹT#!=5қ^z7N+j>{'n:yywl'߽k޺swqב3\Νqz[uhKoYuSMu֛GrJ1yٳyߊgg;ﭳ:oμ<|g8Odisf]s}L35힛O4wL+כylS|To|{oƺo)]cM3x罳8cu7c͘7Ǜެ{z[-X:n[1XxMXl'o>7NoJ1œS|;vRyko_MsZ/ݵjm|#ob:3w[/ߓ[KNk^v[z9Ț齜bzxrʩNz7νNz{wN+)ϵZکVk|Z7H8≱O|-L3j[{ymv'ךc>5<}r8Lg/V'r+n6Ϻ=XyzqHYO}]ߝws{1VmUi~srr>9ŷr)ŖbLuvq^]ͳ>i>/yvyq9㉫ߌۙ1ӌ)[5:nSc5]wg1㋱Ɩn-Ffbj͚isO|i9ߺ1ҥSgkSgک:[yWn1tTӌh-Zά{uf{gYI+[c\o;ZJ]gך>u[gyiNn;u[)F7t潹b$:z[;{Ow{m1=;9xœo}'g;M5ޓ)}M/{ifi{w:I9sKi}V^-Vb$n1Rr>+ߔZwa_nwݝb9t3\w3sygԼunY5^w^;{Ϫ9Y{Zonn56;N9N9NݵSm+NK/rҋ:=Z9Vqw{k5jszwj٫[uX{|okc~ܻg͗{:9ou>7}2P<ViUD "IIƔҔ⼆5ZED')% jHRT &Iv%у&zt](zF{`EH5=hT%aCVԆ8x{ "?oI!Q_ٗρIY3 ۴P]WYG&#Z( vbO$9҅rOp")7Z`?Daݿ趄!| @#YI|P[WTsfU95WF;eR`G}1|g_2 Kl*HK/s_Q_)jWh루 cAY˱9Ki 1"ܴH-;muĢH)R +CLY"dLЈ꺔n )C]#(o$! #jAtZ$]%%dQRpa*wʤʮkH[ɢFkP g 5VBseI2K%;FN#(gA`PQ+|YUD$7})/})HFH̉<5yM>O[(ä5A7YMd {"wʪț-QƩ IJl P*@ Cj  +Z)d{تtXŔ3K1e-#Y8)EKH|b/r#.9T#ox#ot0}LocX9"%`ho̯hB]0}TJL]W$$]%%dQRpa*wʤʮkH[ɢFkP g 5VBseI2K%;FN#(gA`PQ+|YUD$7})/})HFH̉<5yM>O[(ä5A7YMd {"wʪț-QƩ  P*@ Cj  JC𯈠A ,(IJ2~b7$ hvCLleO{*<P`j腁#T"|(@ >2@ h .>Ȓc) w$Q8Rx:k#/Om|#Q,%pAܱ%GPb Hd$N( Y˯!J^8ă hUi"DB #?r? B5( y#A)Be$-) tAȖ"P3(켔tʠ> "w$ -Y4Uʣ>"$cօ%"eϿr[JMÒ G]] '?$jUCvcB` agVy δ+ LЄ` 2RMDu @ʨo?iX%Zied2 chY%" m?hN1Ae3,%PnŢj%y̨~Jd 40 bX49h2JAXX` C~PVmF]7^ǰϝ?|TzwHcbun"bm3kOxNG~m>$ov#${ŶSrB{p}{@ cǪW76nں=x,{{?ntYO}(l2/?XܘQ^7YExLbףӇy>1(wC-џ^: ]wOF:?r)S4A?-D.g?ӗmLп'j^+Ao/;I[ bs?>ً/>Yn{-\;4Ob\px?bnn(cqC `A=Eg Uz]qR}"IXЬs1xtOjS_U : 81MX;Fz{r=f|އkiWSfSg-?mqI5_m78ۺQ3 λIz.\-nᦷ硡Zw$u7$!__<5O:}w|^{#ۮܴ^[3{nmWW"2XN?ҍN~>ϒ/!iELcRe_O?AϷ:Y}Cn|!X%6WSM`zߛ}>sGg{/^lz1~O}{rH릗_ٗ^ wưs~{gg]wOX롡zG݀~K$SqRv_V뢊0v$}\fHM)=E) ͊@H }XӜ{a @ du |1p1ѿX%ś1b77UO4V#l^ -Lm7Qz QcuYfI.ʊ&A!,2^x8ْ\-D ɧ|N%7SI M7nZ[׶9!ӦDx?VWF#gZ;Y!Gt1j~ؤD[V1B:|44wYG ->חD)|ؗM^ELb'7\Kt hxyUAbF~"u(w| fntLpfGbپb12 pv5pp/- ('+ \go%'{HKw$m#,2[\c"59q <\Dg#jĪ' chfQ_I*u≋ͪgaumVB٧"~}Z.P hVN [rA`1{dDڇUlU—#-w[4n(%{^}LDC1PD -*tȴ[ڵzэmǤ{Y[`L`}zELq0s̐&_)dQ ϊxO=ddu(ݝfl;=,l~:x~Ht6dB/E:F,>/o.$3;pWō!`a \TU=J}Ls ZmI l= d{G/ƇB a{E~*leGqtz?`O""EV~r!AGQ_GSO#@@mh*~`i@S -J"(~/rƓ4j'u0G׻խba12iAgI|h- ރ] aGFBra'ʍ +FΡwp5 M1N/kV e8Cvqp.f0 ?+Sb;a|s)9>$`"hbD7^۹T$&ȅǃ캠(à²t -W%J) qǖ1ң▟fg}rAG>-ݼZ~w W?)`CEG[wmld2E`EKA84$8A -œAƱo΁b=q̎aZWt7J^/9]a~aަIgۂŖQ@(gf_x֩=3uKQ^Eͨm?ԠnT.$jޜp$쉚]."cZ7c@ŕS2a6ĹaޟS:7vi&+=AZ.65Ŏ~g<It,xԁ;(8ĵ GdB;IM|gy]vKw@y. TGkġlMoZH$ pkͮ"D1hdw2& CI'fgxBEzR>v$ԽG E:ξ`fq"4B2H#aƢgvE^q D01K 9,+2MnP3H;C(p"h_ .:DK4& e( zIBS3)vj!Ң}śT ̽ECP%9`q$FI3""d门A(OPmBJ?btR1QUN@9 -f(/*%y=\IZi[cM' ROLſS5{-}NJv7(<ڎQ^VGaƎo\yM!(On`벋ȹM:t7X 3AcJ"@u -Ht4GOޮT$<F_OƁM  [.&+lVեQ+6~)l'hb,<9U6r )(dL m@BÖ/7j#Eۿ"bk,R4Ch_CNᆄF!x w阋3 -,3E:Y VF= bNdjȆ@M7+(⸰APRm.$_<&KTM?zYGQS2?J/–2Ю&.A*9@&Uy`KɑrNb=7Uj:_@v7Cr1n*6˺>jFA6TY."S2/u:Gz-4=FRa}XGʆc'-MCi-X9H֦%a:% F}m4G;0׿_m\8HhDu{%#t;,w4Ӂ<[,T,pm=x-9bK?^]EJ(KȧXM9Qc"ӗYt9p@`Py̌_Hu,[͐{L/b4/#w`@ ? ʣ -^)sM{tܬ5ƶȺ\<2Ǯ5=9pGevOtVXPg훬jCYC9xey8@ &CP :F'D"싆8 ` I&@Q̝r!ԩ"D ;EQ3}S[ l$-< -OoB._lX-hûSfG V۷̚$ -cG )l'ЭOCŮ>%3طx2Si҅8Ls}l,=3~I!Tvzŕs .a |Y:v# -Gtؓh_RXB`zL@U -[<:H[놷c7B=44:Pp| -59`{r7Jo'j GPp#,y} uDA`)$0fY$n_i\ܛf7DԽJ;QRD͍ W\Ct,^%=˜ < ؼ,hkIk&u!K*3C1lbv*Ƨ~-8r^0`.z [|FX=5+1i2xX-΄;ƘMB\N-Vl)2/?YFxPv0+LVVrq"eB>stream -(U2j@Aa¤E_jsKF0LP@V:hM/n̶ $D?tWu.An9'n[0 }2~ߕ0 5\?)$ !sSͳ$8q77!VPoQ -xו9kr^N I+}ĒM⑖Ʉ#N.Gn%'edfG;~ 34*sZftЌ3^ @<@/4EGmӄѠ!&|5,*?!T3b{,x)?T 8e%2 q1Nɓ+DZA[BRSc2i1!~ngOb N[m`IG)KzPE"oIm11F蒸vFL^ڿڏ՟?E૞ Z쩾5NwKwNد3)}xPݛ -G#ׅ,XKsqfӴQ +Y4Uʣ>"$cօ%"eϿr[JMÒ G]] '?$jUCvcB` agVy δ+ LЄ` 2RMDu @ʨo?iX%Zied2 chY%" m?hN1Ae3,%PnŢj%y̨~PMd 40 bX49h2JAXX` C~PVeF7^Ƕϝ?|tzwccoUeV1N\\ߒk}+]B9>cfVOxN$G">zW#{`m9rrB*> UgUWol(-Pkںb{X`"?c/8OPؔ^h?~q51<7ѳTEdG;yc8ge^r-? uFu~ZeSF-/[iDý]NLoռ9VBo/w7~AP1 -}<ۋ/iC:0}܈Zwh@ȸPx1o&ܴQJ/:C {ϰ.=ne=1eY0)`bwzNcѦATpc~ӱ;o?wPҭ\s]ez^kQcMqX?]ܭ??OSk2ߘEp'>'%/@w:{]V~?CCޑIoHzï}zku^yFYis_pc8 +;]=z_E\p`9xR<%鿄 ? `oug= uCtc\FO5+}o5u{Xu߿({]{? Xb?I!zگ^>\n_z HJlóq o{ÂM_\ߛ?auBT/"h>qZ)+ýVڽN1G7S7`1NNmuv/7T4+b"5ar%T8l΀/>3}l cDb!.aoLjUT4I&pWzo:(fEY,Pg* jf'tK(+"T#bd_rB0~2$9M?%4QkY2.a,<_ۢ<_``l~L6B}^id =ap;] +c|0;N8cm) ‡fRGSнj&=Exɕ>?&8Pa<*5 KҔLN)D$*.m?]IZMVg{t2?~FaQh̬D#1]֔a2l{6pq`&R pʡ9RGa4?̮),| 7D5ͱt#HVD~F>U7'0D739Ex~[ra8d'(>Cۿ,'pr㸘=H#Erg_D8%4"ďad!a&g4nvisEȾ8h|&8KFI7ky 3wyա^8;Ƌ/słjc4F&ihG3HAq;5͘iQe_MDof˽p"mr݋(oiIq$Ime嗨TrRW\(<¶Dݽjs9:v@pknLzgjzv)Nao^a ݴlhMG9F|٩\ >"cv +WQr)#ذ!V_\S]W('|E\ܒzM +DLnDe\P ħq - ܝR9;܏=-f 4 -V1Q LItL29E"cx]8韉A%>$y*D֧-PQ5eC+s-SfAϟ41Y{ Z +7du;ҵD#bhxEk`4 1JA.($A5 Vꂠ7_vbĊk]x3DU_lZ(Zv3R.,,['EXKq80תvՁd5$Apdά-@;=MʫyaK8DZX׷_:7] 퉒}G+>q,%G^tq6YuΆa1~*wI^M̹ɳv9Tp_ eѻ / fq߽0B'$scQNjA#v꼉EHG5%>^k6m\r7ީB 02{%Ojd9a( a 9ďW^0"}m]<,G_Ez>|~/#W(ʈuNpO1 mؐޅ',˿ -D8iR~$ہ+j!LT<( 9Wǐ 6,b=# ӫ_J>LuI")K8&'@>uBij呺P@ZDL3繆B0a9dfzcN҈ y}LՅ$'eFW[말e3r;a2ȿBW*,'mVG|A@y9jЙt w8 -zAh+IȄtx˗E)$iBw%2eAh -G@>׫uxݎY.!bO dyLIޥVؘB9#9b}!ֺ{gJ瘟Bk bII`dN}iW_fӷsh^7b6@- 6_A.q8o-5 -7"+2 xT}b'bG^Q3sAtuƍtX ^69ڢY -@ -lȵ򰎕uf" -#Ǣ·KUޫNqt2D4٤ Xd=G -BnXP8A~GbylZWzBŨͻ @}4/5꘠HO]By@\qM%$N½`v8[_aUxƯ~w N -خhkA):|Ab|WooCFR(C3O`n(`DːJ ? ot![LCX ($崬9lu \Q039[o3n/ NRv4ne[;)̗#4Ki cѶݕЅh%W]p Z ~} 0ϽhASPͼs^]8 9Sarm r1q x춥+J凅 x*5y˵N" Hg~Zܚnm5 -3֎ 2")J3*hKPgwMd\٭k9RP#7gć].D%¢(&uHDv')pBy2v{WehoSv0Bh S0hggyHȟhx1]j d]״'隀c'bXP{7:ͽV?3 W *V|T"Nmj2 oٶUG2 VxIC.AlRnUc B@ y 0d cx*.OZ@=@ snW`SЧ}00vaJ, *t@6W Sه.}J. + sɨijOQx=)qPD#"b_R%^惈aִo-lq3yiJ1&->>3AГH4%w L0KzFg,YQ%%dgav%b)džфm-MsXQL9Kb -&Y}T%OLE -Uj -5 J,8kLV2oԨ+Nd8ȐJ.Vؔ<Rb1HJV č,%-_@J U@ЂDqi|O8Ŷ; d"jM׬E4 EB"S[en%-,ɝpqaМ.“dtXЩ$]Hb$Y]HrzD GGau{v#p! 2&> m|" #{r X! O{>AhɏvGTDۏ8:?4.C0"W|~N v:)]G  @X;a!c'!Փ )ہW"H5A? V-}ANHtyס( MR>`Pǃ^!1v ?(q,lsp_ Q$@:!{scتdyA z?jĴ ;tn[ȊX5bM舁~ |QAF;~8D>n ?V˂6H飼8 sZj 1Gd!A|LA86Qb!=ps=D WAgD A@r^I\,9=z°vʃ|z^phgY$DKBUoch&<5!r<) :0<<`Nt8ѳ y<&> -!^QrBt;T'h 2c؄Q;@>;dˎ=яEر7d S:о|=$C M9THN -Id:) B1:6w:T :Vb?G^9Ÿ,+$!b =]CGz!Z/bxԒrorN&V"] -zB;l!jlT ?{~1ݱS a!AbB'1rzeZ;06 !"G׌ZxDRMaCq4q@>[ h4~шpG"j=F7@vo` u%S%73H(p7EueUDV$"gƍI-n;y^$F#126=#j;dM\HHll,AbiApQSu$ zG† ?<5P$ɦk` 9 ֨- \5U[aSH^ 3QU5uF7J$2Sc" 5z1D4$I^A,%4$7FLrDmPJ%i~H(n4X!%b)9K4PơB#$^֊ BSl?C$͒/ESxk%A3tIҜ./g<%7f<0i3hIjb"͘}L͌*1LÌ gNq M"IԖK52lr2IM'uP%w~ɐ'GA[Ԏ!<9ш c9D cI>s"cI'cQ:y1^D^ (WhC10&oc6İX) -Sd+ :8a0=c8:Y0TaE0g3D?X >bN^/,]" ^xNT3: bdđ^t޼0(yyx \N] .`C $P9.t]d3burq  K\iEyqN 8Nz I'AO Q'l $H-Vhm֢<%BF-"Hbi!*nAhO$,ehzZP`Q?SQ -ԎcUH)257R,7i(e|aѦJ,Eʂs_r% ҕb]aCe,L[+\ -}%+(x@dH,GXve,Z75:Q\Kd#W ; eoźG 0fh(F8KBA~8@AbE`@x-Ci}'JE{'V}v.ZƾmE (Jsx9" >N\;-`&Բ9Q.E'N-֢ņksSekjѤcjjQ|Fڐ~02ZD`7qjyMlkFʚZ>e:h}Ӳxii&M,D11"L ^&Z-@xND-1OD I-,!%b0 i%"ܭJ,(S¤E(%@ˣO; #&ȷ$$|#, Ν%ӐYNohQfQt-yz;|\k#;78]Ŀ#afwtÛ%dz8'h-{hWFB-'杖-#kmilZD `o-{ElhqA[Aьx)fF7[4-[͈!\h0#daۈ׸2#E.rKK., l\J?ш -\N3䴕p5"-,ʢ٫Ј-fD B#PnppS˥K-("h#2bhe\i̘ @ieqшqeׂV#\c%VU#xrI"ш:3b(lC7a%_֤ ̕@(JX"Tgn@E ] -yk"Vy,8"XeQ{"n// m_` {Ihadv!UB7BUFI -4!j`H@xE sA0 b A@aD 0R0' i1Iwýy] ^Mby2V@­J&mj1k/81Qq\ `cc?lsv7~ȏueA3>2ZF~ّ6TL2!Kf1,tBj {H ޶2,2𭶌]FFҦ@/=,/if&e#x@I Fkc"$;\xy9cy;\HgP3Yf/M#g2swSԡ:*Atpa5:@:)фzi*~9lYʁy1,R%◩vXO&HqFjBHMjN - !.a 5scۮ$gM[kI87 kꇷaZa$ 6A3(lr &uulD=VЍڗ@N8:ր T K/SPC44%k/ی&ۈ$Hh&nv '7i=C8 gun3MP 7OFoR[A+'e"݈ SMdx,'uwǀPбp-/Z@:k8U w0@ AC0Y)=1ΰкƁgN("qZ{q_ { 9[sA 4(X^fB~.\r.uD0 8Y( ֹ:ξAuN"Q+LPeA;IEǬډL+8דv;yl`F;g*Ua&N86T#SnTqPmSؖ;8lMAKaMX)L -$H -u禣QNQ -՝q0Χ@v,w '%x"SsxT]'9dm\dx>?9Pg}"g(^a xEO=3P%l1 .Ϲ -R'%px%\ޟ[?pYS|P8!(1b՝~ -Q!D8 -!ϦJZBt21[&BbͲ22/itz -X7A 4 V.--3!Ͼ{ 5sAړRBD:[ܼlG*ё˃yg</U7k#0J~'7|6x#ꮀVip:iGel!dؠvpHްz [2m5DCYaԀ`W*hݦdI¢D*fLC?X .]x@;,)xU2jhZY+@r3t4~_؁^SD]@hLKu᢮|< `?q[3v7~:m] l[.`l-0@Gg -GVaN<`#IA.Ko`]DgF' Š!Z~21u ˙ ⾃d:%z]p'Jos.`?\G*mG=>_7|`h in1PK@т?',m,; 7@]n>h`ᲆ`eVZv`mʨoUW26*& -+PyЍL*1WPY -D5 n -D3ץ`$n eI-)uM#$Z]ddjM( -O?+D -rsد}O1Tes'7Ows7nN4<8a)&(М#k-%'yEAy& tk΂D"%,9,O|J0P`fI@TEP , u&/ C/HQ-8, -9DEWc -40kވe~_1BH"G(|(p"^F^TtL6U^8̂6vwO&j.@=-8,LcK1^:Y[qO Eڱ}I.^ M"0IEM4<([ܙM$l3*ҡSSCL @&n耀)u*O[n -(" !%H3Cl8I~X@8w #9|lo9s^B1ӱ׊l 8mʳDK4x {F)|L)Ỳ3q!+1#q¦a'AUd@kP' H:Z@ɘMX[[1>7 -@(EihQk;1ڽT+@*NWp -o<" &*mg~'@F"-YOYNr`|(F|R4%:4N)ЍE)}|'+0- -G'`V3`mQs6@VNjzv&j.q& )fMsUdA;JToc"v%I0SMQ, e]LE!Fqb@+8u1Hɱu{PTM_MLt 2Pĕ?EG?BIW#eO;2ܶeg:)~Y )h*=(a=}0(4 h@ :S͟.@.nXVu<7fSk1`YYsDPx3bv8IJm3`09e||Ã?Q84m[PRN;Z:nF͞@d9?[q$d2)aIp[]u@W JMA?Adm\\^qV9Η ,߼aSZFtw]%zexƄe>?&ʻEivǢ[>$ Q[zV"Ae+hwӇT`nf%nR_\K! Kߨ:)=0Ͽ]T|X7Oy+jt@ME'z-&/9"RWU$T -hh&v7^efU%+"h@"MKJb2+w{|ԏ)`:UT/危kEG 1ݨ1kp\#y"41]:c3%=/8!ב&CKԬ(5.Tbཫ)D9JnJSCͷپO}7cyԿ޿W $$ãnpRpYq%;B --rYzg[O1tyYlfƁZvy8ָzMMu.uO}Q^~;w˴HWI7ጼ0mIF ƹb2*nпw.[qhC_u+]}L}BS -xMW{V7yvf5CTX?\f**!}04+cIp,_OQu&wߎ+QNoBCn8$gpv,/ I~NSߒq7_gjWD}A>wv`xUˏtzQ%,O{#5I古`@eI! %J|*PZ$$٥x>{1dFqt4u]} h1.Qnl`✞G}?iFk[S6steI>>g!0rJy!"qc7MK]@BW,i Xs[6'N1P=ļ]ى\4cѴR=Q.Ʋ;&,HbIP qC{.sLuRvϨ_Ɉ=;}$krb^thڐEsk}/y K Rog@khUYooŖ&rf8,L^5XzNU6z.W]n,=/l{-5v>&0ȗ7eK#uDZO_,Q<6tH/('/^c(1rͼ4wnUA-2e#҇y(m(Seŀ`=ZŲ{< -*>1I3-G"bxVx1Q' Ȣ)q6{X_$ɣu}sK `ݔcA877 ו$TʘJ aw5&Ns^[h.ȯJÊ#Y CD+6G -n- -qo[Oؿv]oL)_/1)/^b-Zc.iyYOf(Q<.lSﰘ<# "K /9 =i~x&-&NP ~1|11*RfSMO3v(|_V]#z[G~?;@_|C<~"ZG "6W/6 -?Es;0ʹGWSt%"ԯChqo F瘂ߋN*~Aw 8ؽo>2Tώ˜d}K+clƁXPz^T\ީKᲕRxWS $8Z^ ^z#n+â*ls {ĉH($[H7^5uFkHB"[1Yzȧ \Xso(jckYctƥz}~Lg|dg*+ -{/W4pIȰ0Stn ֛=x)ac{;Ÿ 7r^q oۍDJ{iN' D:Anzd{ŷ#B`{GL<O1ݺ \sSlD&hoB%yvvN4js\@8{d\_u*@=i,xف4?P`*{%P1=U!n~%v2z ;DAn'ncJ7^*FMaRXsޫ`ZtW6-^Lf$#-M-w %] ⮷zuIiFW?~u0y3kcYp-w%u/=2<>YI>!)a}:. N ӫ{).d@N†8êVE/>ݍG96T:@V.NY d_s $.Rj?Te~zuXf&00/zsU_P~lEzA}QգVTPǥ%1t0))>dӭ)yuerݠ}hlkҠmP(/MG _V |##Wn-A9862頾fqPSFֽK>AhסݬfQRqj^ViyPjnB3˘ 0'X;55={={i5OS -D^vH.U9zC(SOBџROWNwӑ>^v}!!tFIվ5tꄦk=&ct-6v~i2 0]Kפ -X½7+~$+DQ:s,t2IHeTbt@EVD:sY*?:gɎ蒯(A=wMG"@Fle-z|EK/D_" Bvi~y\:`oZUms -U&$+B -M`F+{}:S=mhzDv"s/1C0t{ś4|  ߞOCJQuIIQoAO+5r]Q/CXyeaIUdMz_Nފ8VB/iyn˿ ?QsGe(|L)c~1ߓ^1?|![|Q2eo.y[72&ef_<$&UO  -G&d0O:;i;cf:s܎Z$lɀ?)72WgJB/D}}Q SHTahu(,W@cc^zwu]51‼K:_+]NE:$Vy5q<=ee UL%nwLj`Mvn%#{ RMrwb'?#v -=mH㈉L1-yg4Jr̠y%*Ǜ$oK$OP"tAR} --RϽ<{<芃DC=|j9 b| #sÒߞDO%` Jq8Wr/q^`T{< <{n,y!Ʊ0FԁE9bUGt>:Ŕc?WqoM<14,u1B8}zOhߔHrbOg{!yTay@Z *UToX@~߼'U}ϻ}#MR"oޠ@P&,FЁ|M77j5 w2jpؤ܀3&TֶK#1B{|y& #Abס:wZ<'N[q[g s{n:F0sG~xGfލj{`´=xN*_pԭ eam[)IJ>CoQZ,`iN1rCD'vnpOz -L޺$Qi5nЈ[ҝ3b$ѭU%ЍZ͍t۔oKwtwEt[UP1" 5޸dHHWfUmJ 7슔pLSw吇,i n'doC^,fLv[1Ľ-J hIqZ AdFrb[b=JVYTCW" _KWdwH +)\P6Տ4^~fԓlhwp6'T6v51D?b!vƲ {@mkrH,dmcV*͐,q;{®ÉW76UPS'| Ӧj"Mһ zqIusFh5c)LU.,{W@"S ?#⯣.yكB7SLղ%J*FxrFVI2^f{ELofߘNi3fo$,ܗEel^<Ų Ge[;)'{(Y!z5ZzOD^dKgjcLȍmpH ҘN;t‰;5a?b팘 [OǽHIa#&~N,:txMCPXd,,GV&@YנI*Ŵq˞2&8ܓE㲘h"`O NHe(0h$V9S |*I745L̈`5" Mq> z[r䙏$ߎ9(d:cg>}:Xd>;*c080Oj$ZrK(yS9g'#VjO|O_̏:*5_hE'2Cg:Si`^{$HǑO};AC$9p -ICgO5eh-QO!Eԋ%}?&#bl>KK69ɀopzN͏+L_Y("IE%I[;"njj;4M=|:`MA fi(J\eO:̈́g3|h -ɗ#7ZqV54rv?"TfK}Ϳ1?e;(5|_e%$-pկ^5+,z[̑{Hֽr香lg*#s闣e_ӳ 4JH$$KV;A1`O/@lv~ϟ3>g-%寰?)/D3}!9>1I>1r:cr -dlzVxZ昢7B#VJU$o|0X?w_wP#'*";b:p5+k$YW&E4M"04 'yY$9c$Et0֪I.F*0WIMvQ, :>h_>O@E to)]>̟| -"tʠpJNQmP|%W3#ǫ#{(VPIBIUFJ־Fs~5tL19ޡr Ir7LHָdף͡ǝq  OGA)0mUUzj=ofJSz=n'Rc.S1ش$R3`OIBgsd)褟 u+$i-ZZECĂGn^V~Ĕ!O_-_D' |Qm.?/?Q> , ~nHnX9d#Z(w(+<9Զ90\8ɧED%c@G΋{4 TkvNA!9L̀8D!j;$"z/_|s\7%A7cL_c~'U>O*?U>w/?iFa_)__|UW*Q~O.|W~'e>: m -*g4Ъ6|_RcC^[j cn(GK[)j j -96QQKaKSQKu!h -jD,QiгZ2@'WB;rPiрH9pW~H-dj4;R>"p[aMBR,(<ͼlᇙ,:9ǚ#jȽSȽSSJSۯ6'XjZ F6WI!"?_Heti~NJ7_'V -z" ~7_߱hu\KMH -c!놘pbN6VGL:@8ۄ?Nz5d(0Zw+-1ɚ$#EܖE]L\,(zR;)[ }``@/TjCʈsvrZkGaxyNpC&%"_VRvr2H%^F{W8e&+"g&e)n٤1H$ 2 u#.>0#]Ǚ bcs}>xCd z#aγٯ(&!ycEm돯;T~SW]0kZ-'O@W@.~'{$X> h*-Qyu<W$څ4eiuR[X A@F#Sܚ r-*@"&YlѵH.n#u&d#ca']ҲqξWg C2{ -C!aEY"F#r #b:ˢiA̚A&>̀?>ϑ{/|P| ?3ɽXǺXȼWdVȽ#"|p5u5u߱擥E@FCTѵӄZZ՟j(-Oܦe:ffaIzN -- {,R=KeFH505J>;MJ"&JWoy?XXսfCt!'2ͤC̀2|1T5"V]D8:RuD [yF x8gymި$ZۆKy&^bJIk BkGX$jW& !jq~z2J3_ @DA*cؚ̉{R#bٶYQ^ - ZJ(&{GSDKFMKߕСQ0^_bDLCPҏUSdNGidk G;Xv@p8pXkhZsE! 2nY 3JF QsÒ2}qId|+&jtM&Tk"1jde_<8(YI€D䂵Eܰ~Sl^&zm}e 0/nR_!*m$m;.VA#VW@huƺWxwsu8"`Mɬ>#˲xq*l/UE;ƺCسY<m mCTK\T= -oʕf5t<އ?nÚ$h2Gi4?i,IiKL.ZM"GnVS"gKvC!Upn?A{p&oU݌͒ɚlsbCd987Cwա'-bi`i_]u "yS~#||Vm~e3 ky;8u.u8>8U={"0d{('ZKBJ|s]/XgO`Bֹev坽GWX4"F&(k(85\]IXRLFDM wGYC ||)\wxoWmJP"~JE:-9x4/ֺ"#4at [XFЃ@+jd; džt(_4Wl~.,`AD4iI4@8~H(cެ͕cxtb:;05eD]d}A'XuqC)(Hķ~8R2Ae,Gc=!v4Q@x;|-ev-!cEjA\;UNCk>!"('Vi ûa8 Bʷx$7TPPN4 >TnUWľ]7~"/ɤWm+Jg$[S}-HEAWڰȌ) e(BՄ݄wԓQ&`B|NXl:T!R'acwX>{Hǒ|`YM{"aUk +5+CF:_q^CMphkҨKyJc82XoΙDVISAPMeZ)#!ƨB/"bjgoT 8|.)t*E(\3iq'x!s oȧ;̆yR:aɇkӺxìvz[baDja4cʵ}<8.Lq +ZV I4I΃Ib駸FCw>6\ӏEǻuAԡҋKrw y5ǒwr$gG>4Å⺬t³ ? `"4A̐ó{͈6{m UaH̫q7r^v+8(s>"V㑲@1%aK$Z *|_3v!ߵZF _&bi{[id.R^(jd΀fA. n-M$oz7[Ёsz{@>@z6+Z)5glƱxԘ%@2G *.84_n~30u4 qseFƗ a(H^0x-r@x-*O 'r"۽[oY9aG)/<aPB5ɁsܠIEERb޶䘲yy ˱tB:W +܃;Cc훓m-+,k wFh܆Ҝ)38pݣ&+jMbhCm%O~#\:/] ;;!IzntBG Z({!N{X Љ3Z0ujQ24DD]@ւ ?<ȾC`Q +zx|,vTIǹ)|3j0 #$x8Qq<,}j~mOZ@>@ +t  fxUP:CnE2endt)]hWwf,B^~\H +D~Q- =Xs`]aJKqǽD|IɔĹ|﫿$oxCf >9QaxC^2N[FE؞k2 e):QȞTQQ4pN_ϗ%ag8rxS?E#~!9 %A+/8щ\~xk:@ĨӤi봇%rQ Ŗ;4UHj[x"γٮWQhтyHfd%|en\+*G5k\QqE \f3lPj𥭝ڬ[YslŇtFQ~Bpfyò"pG!Xn `c T?F)HP8C^w&O,=ͤ,_@y0" tK] [1EZg̳j+UX\U }•;zXؗR3|~֓ s\n |fG,|Brup-:`fվrއ +endstream endobj 286 0 obj <>stream +b#ן\H`&*[ ;XQКz_ݖmJ~ׯ +\s=O4LGnxā2~+KCa@JE~) !V'yRͳ$?qooC"W塖PT +y-sVeli]v2U%?;&摖GSRIO̸P;8fh*0̈rƵi@XK Cb.;DAպjTy3c21 ~niggbY۶jYDp)uPE"7+.Fk0i+\n&_?E *S5#`a'_/SZP41 +1ׅ,X&q楷4F2L_9;Ǭ{Z, 8XIgލ +$LQe +It*x &XhE!P-NxQ208Lo$1SSUdNhVd8S[;Q3JkOcb~^{Z [ck3&wVfkDĪѶxѡ`T bJ[EGH=.YyLGX<aZۂ<6jG$]F|Q[OUu(P+AQ5 (y2+j V܈꟠wk<ˈԺg$SUΰ.*Z6c'T(]Ӭ7['p2v[jJPC$ +{-(ԭfF;q6T08.=&J[9Cs_޶g#h +@CBQaE=4ZZCpZqٸ8$3LW*1cL'{DCj!#6ơj W9OAo Lz@'c7Q %P2eBu@2 /VFd˿?j˅J2}$+A2/ -y+ƨ'2 +zgB%L&f!mةs5ʵ7:CJ\ڠvN3x]+`pˏzsSJX6BCű;'NW^buC +,g2R/O1mL⼽C-wEk ?R<צ(Qȥ8R00w@GhKh9fǓK,A#)ăvjPP\$+Ǥ(rU<WHgkIX"Gk]Z~dmw"n4GpÁ?aesj ٝiyKV`劄( ?0 hN?|snzX]hst$)ގɠH~Md("H-wb{W7q1yTv1.+”{ylP_1K 3Bk#dD9bcuW %sB׻W^KTM 4uZ +םIU1 ڙsӃmTp[rw˯ gq߽*0B{Dgc79J(,zUCA5G0HfT3 P.'?2$uJm|E ._~hsw]YZ3:$!G>\0Jsd͏zJjIi6mQ\6ހ^q71aQ/]GOM^ ʹpha+cFDT[%I*2|+0HQ0Kw,0 +"d!*X! ȗnXZF|Vm/^n֚O;{#q+NՇ%AYtz*"$ɍd*dWb1f3#px-- ʬpT)b$T}Ȕ;gph*U%1m2_UI9bK7vq:ݘ$:M;I#M]rCAQobFKѭz03Cspu&ޱBC 22Nj$a(aa qW9^N"jAXF'EI;z.#G"ZyfFvdn^HErGMqèʈB\0(2lبY',FnR6u R+BLTu=ZQ >c m@BEU_GL;̦I|"_U+q&_a):m4ՏU`P !7[ZBL3Gμy``T8ڔ@2}u糱d;c&Ǽ۵j>fxoJE 3 f4? V}fto%-pf ⃾muƎ49Q۵El)ፕufE +3"owUΫd1G4ϳIIrXy Q $]!]Y)NS}k(y'x0,Aj8HD7TzlN8igGbyhZB-d{ b@K4?5HxON@T]q\Y%IN=a`uHhz<[I¾LUxFdZvQخT|9)! ^}Ce|owAF\QC3TOx(`DZː* |-lt1vNC\ T.$r2kb6 N͊\Ab͈ -3t<{[o3.,ҌRRV4nwr3;ݫ)̕#VcݡЅj;-d%]p oI~0݋hsgPg^=m]d S]gsm.s1Zq ^2 0 AFIU +$ [f~ Zvn4m5 +w3F 13)J䫑3J%(gK:|)k%R#X7gfn.jA&`Q(&YuђHDF'i8ay[5v{W%\)&S.4Eq (gHvehyHfehH1-[,d]פ&{'bqO‡P fV?|ڣ *vH63AGգ YƊĚݓ<|M,*p et߽0٩n9^k(؛Fhɟ0ʯ +oJ%q)V5mѣq1)F f/C-y'L:-CXYHYR4nn$YPdiM4K;$!Y8;?Z32] Ro3 uY8u4]p(A&=wٻB.7/d{{Ɣ)6[wHn/@~ݨ/SƑ\YvzM~ݠ +EaO-e.|.r*tURa<&N/p$/# e9 ws@N:T4NuPaR :Y;d {Ci:@x_Cbr=Hia̔=@Kw057Ѝtr{AQ=N. e@t0 9AheNV"9Ieb#:Aa?Y\9i?uu&s;D-7C0v$㓉GFET]_LZ8! ؈ +G(gAQed+H+J-n0|HH$47)` ]&!6Yr{٤3L*؄.lJOѭSP_M6[jw8*1qLfH&O,&Aĥg&5oIULj3aJr"[ܗN& N;&(HdmO)&HRҗ5&ȄHF[VP 5Y1SE'Tq҆ kcnQP<ǞHэ?0Ѩ7a"i$'FG}phDqE""G$HC@"r!29>dW!w/GfvdܘaDC-+oc1B RrȘBBj &1$<!0]G|^,"c!ܢ?[SwQnh;Ƚ{DA |Ah$ |Af.\n<$>d b+AlF, ȃ ϥ=#GP+ [ rȉ/W _!,@hIB6?:8 >2zҕ81@;dB \MdD8/.m#:e?dx =@F2?"<y&μ&$8!p=/2-QL)!}GtdM/)%~@QS?d($C :!ܢa ?t̕OHATfaTm4}C0n Cך@Hm|6H9>G7<G^{ݣ$`_.L8Di>"!偗ǔ$7!'&&bȣZ"す0MHÃ@3RMdc-PܱHw57DA +MH{!xYv ƎfcŽ?u=qd=!A9WbUaBuS!w:UH.BOX0CHG +ѱ4z~6]@z^^ZslBck9Fq1;Ir؉v-Lt Iqx\1q-?qBwMAʾC=hUdisYlqxCm=d !l53"p# | +HM]h,wYpT5P.ZB1pڹ 5hvol7•\%2V@Db'"p7EF)r9ܫs]HVaEO-90Y6H J:n$2|ml{xFjr6m@HhlLY8史1?6^u$eA򎤆 /7|ulN L-"3't@aR91a2HN~ӭӺ]w&Z 党X5-GQf"2!ڎL4[>i OZ%D.QqDKV%DLL["[V"/*A3%+Z$įv(1$IXms @ EaKbIIUHFbf ,9 r! aGqo?l3#,(#7K\p̢e UfqGW,m##.BhV̌` r(mR*gbV.{ggE#XD}kB&\&S"4\&FFl+ۘl =v0#U-r"H.# +ЈcZ'cQZ`F qE##~^ XfrFK\U@E#̈mԾ_p\ĆW@| [.2W(O(a@PxI.wY"OD"xL%D^G"p֋FcMDDC9 C싦b#~/1rHC QsB<`:o-[X[L +)CՄđ4a?'j0q6s0L&oAl̤ Za$$$Ap#"&vxĨK ob"(& D*7b^UaƘG1x%6&:~1.a\ >#?1?fj&BF>"s9#3|dF/g'${pjP !0 emvD[_03T4;^LAȸtkFI6w6 rv'0pgRYGrdt>}gCu1}$4vK jt>!t,[ A3?T4 Jr4Qbb٤K6 +9/Y4h+S=DM d <]X5B\lj5㫹kǶ]Κހ֠ [tn8D ;o Y 5La(ɡ 6qf6+l" VMtult~ oQK/i8zT(/Ƒ6PC47+ی&hۈ$&Lh7 +&7i=Ch 3un3M@or ' FoB[ s+[ eI7 ORf&2\'ubc)chpGZ@N +Cv0 xĹKACHjYgY@g^(8{8/PxMLNz&-/P29ˁqx9uæ [gNԹ5'&}zPz2J t":f FGen(E*UО,L O'Z(D, O0 /,uSS,t_'`vd ++ι+|raNcv +g;dN&{;~Be+\sCr!XS`VT^-$F&TRz +Nޠ))LP+,;?HBݹ(/djS)BAug\(zw2(l;?Gpx @| ģpNZ<"xxބ&A$[+3-Ϭo&@aHeΓeܟGY="hzQO!Gh#e&F{xf="1, Q=3*`vF|@ lڕ4=-k}5X5H kqT(0GUL ?x@gVT~ +y~u9&@0{ ;Op/g <ꏸW3Ô0 %ON'H*S$>p9@ЪHp20xР"CD~sZ {O"ގгpm!56_+wQ Z9S[~ r{=P[ZQ8F׫Ev*!MtktAWbBf jBr[.:z&v;+b FPPW[/ g2UzHRDϋ`?k˙Uyyj" g_y3/BU-Z^^ xqEPTR`jKw~qw!%Ew'wNx,X6H:@nf `1E8"X +~S7V! 'NEDGJs*~LES +R7(B +JEEY䥏E@4$OESZ((* .Ƥ*!L8:b+HᣱzW!j!p!UD[F2'<"ql)!$` +9N!ܚi+`?rq֚ f 8+I\ӂe=-_QCxNsk!Y:_j34vETAd)B]R+K\V+@qtYdr}%c ]]O1F0D...A8iE@ b!I’@%i^bقFذLU@X_9Zp ËўBy$# ,Fv*+7j`O3W=H;I߫_-4= YPz0ytk2:RVby&Zr-3+ODZ_?V$~207L~3b$1`RlmW "~SIVgSHG!LBN_\A:8F+u.'X_\w_/ < Ӵ4Wi pґhK |z. 4I0pBÂPD/5gLl"pN;Kp<ϐ'*:%P8p$`SE^<$XxX$CV{A|-0ڑ rbH#8.$Υzl"PFa@+,-R;BiȈi^:@WCbY&YQq+.zSAr_w]K/ ͼ^xxo[ a USjZ઴EtariU : ZÂw7HjՔށ!;"P:ZVʟ-:L Wnʉ́$ !Ie}~Pt9`"Qڅ 0R4}6Ete<.Nl%+cPTPOk`̀QJP50[)49*SAXQ]H⾀nWǫ p_Tmȓm̊BȀnn|0b@΁oV]#b J}.WDQ)`e/1كsow (`D5걻HgP>dX&i/ |^Л4, 9DUWcf4j,gnƭ_1®H 4G((p"^F^AT{L6u^s,̂6v7αO&03@= ,LiK1^2Y@qEڱ=IW7' ʯî2 "0wEpL4<5+l33* SSC]F&nuЯ,O xoJ"! 7HsESpIu0@86#9`,pmsy U/cc/*a%pƕfb-y 5ӯ0ER,4[!<:ĘCk'W:(F΄M͆Lȫ G6 H0K򷛜߯?k3Bb/xcdndV|nrҐv"+1{VU*p"? I( +i' c؈lKTI,zH5Ey[U'Jg@& :D<0ZC@ O@) 6~ юO%@$l><ȯxA@gDڢKY9t? `Y] RHڌOM@epr5!W˂La+RLjڕ8 75EHI4# fbn33 ň"ed1CQ#OR=۪`蘅m-?M`"@&8?֥X0@L&WJ*"hu&) +4u_1&@.KǕx$!3Je}-6؋H.ܪwU8-( $_Tb=$t0y߼8<&hd&(;a +e}*e;,S1&:/"p@ hbV+r?bO3;5-,Gnֳ}_U^|ofFZʥ$}c?jA-x-EUy?pfL* 1DQt$K#ˡy_|5AS?(GVb| tؘ559Tj)pُ8U  {BSa>qpSe%>,ߜ[w[A+ŮBMRH`C1 r-XRH?w8Z/)wb~>¥ˏg>;opjϗgdnk +w&b{ǟf,PPK\5~+ -J?%gЅi 23_dp,bUq5p50 E">="yFo Kdxf>|?ӞlEvU-CeW)P ]L}wxc}cn/W?G-n%95Xp|[Tgow0y EPk>9iAy Dhoy\-IS?Aԗ|uk+Ի\}}<>~Z;ȴ;ڕhAzrѷ3OjTDM.hSEϺȠ/36EMP2T[,DW~}G(Q:uS]zc2s?ZE t2Yz(ENj㥍4FcBBN{A6y8m⩇x z2]\A8aubw6FV?v酾bW} Ŏt}UǺxчT D|_/RPۂ7?XPNњO%%Ě/5,"G[ +kgtwiC +4s.q))zP~.I&8vZ |<РjI%X%#1S&1j髾{g$%"s^'#B EtF 9ԧb>l)q|A}#޺e4jc-9rz/#SU#)4kOPIiz'!VrG)E)yN☤zҎ`KAѧ( 8AE +5C:G&&bCK7c&#\丁?}ھL^Y ,zM*EzҗWTn7l<"v>ԁ0ț7Ke#͛ǭG_,U<6tG/"o^c5jͼ4wUE@ +m2emQ$1^(It5!43&#!jLX]&Dr :xM̾)1Tl)ڇZjd65DX9+>R\?cL^dv[GhJeC3 V<#Ͳ9Q|מAx|a&^b0@LP.aT8dqlʱ{b?T׬͞0/*J#-rd~oi+u]~g\zՀr`+P,5p z1a]ëvwXFѢ~Y2D-dBNCP(Y9(DoK-ÈBu{IX4X@v{gC p:92Jie N/AK Z;T !VRP` GZ;opXtW~\ssSb0+a)ؓ_jl9wlI5rQ/߇S]֒*bMR_N:9V/?i/fv˟?խ޿[ź6pnwՊH@gIL + ac`|/siap|#-_J,, fȫA;=`ށ|'a/"0Yژbn + + dᇘ*TH?\kAO|]ikDH3}H~ +!|7eAd*I|3«dBSkg̱}"nodM21}ulԛ5yv?+Ştq v^+\mMw/3wY`=7 FstILWoA D a>G.XXO6]IL>9+ ss8a;2g0ٿjهcf`=V+̻b0?`>G w`.#% |DT$v>c=΍vR&BE0ښ1'M9;x7b:jz  攜>1+`^fȤ~em( [I5!]R2_-GL埏yA#uIDZABTD#q-G,+-)"4D]"aBUa|yql7f4 x,U18nP))Rb{!( aU:{ ߲Yo*UT"ߘ^q~Ǒ߼':Ma"RވP(,πɽ|':R7^>4"CdA{!ؤvbYTM#ᨭvs'?&Fzנ:w~<'m Nfg3@{&tf50sp-%I1{xԠeI{v´iD.UpbmD>^'0%:Y ޢ4X&RC#4ڝ7rG@݈ۗpu9;ЁtGW_4p-?k#ӼVIw`܈eDv(n;Jr:77F ̽Št,=rǖ )In9r\ńFV C-!!_T:W& +a/7ܰ+R½NC* +7p yq1lh*y1eEmy;#,d(6wIm+'DTr%'5gQa_n0t-_!ѬpumoCi'U3ҶBmROvV}IB?*_Tf,HT[2X+쁶 ٣쐵aO%Z)6CVЯa-J_A}-64> 0僤#]L֚C׫Gqs AfQTMd]}TŢj!8TDpOA2g* J74h'55['AG 2[*bft i0t0\.Km(y9Oř>/1֙gvDsŽ Q ǃqjkVrznv:\w'bv-t٘ruT=M [91Oȯol9(0}ڧAʫ^/w)3|4wd.ۼjWl4zUc5}oRbbRE> gAL&8t5b8݃Ps,X*XI=u! [K ^*Z2ƒ+Dl=Lj;1r!@&ŷ(me"czfmo,*kP>-tim2XtZ'.Š.LAfj ,9M-gŸXݵeA@nQc&5Hp<>GU.A&*XkGAB5-X+{jE/7:)9ZU*^0B=ĿEcDd`Q{7`F倨dz #Š'=_ "Vojϩ4ЧR!dd +O)LŎPAգ:T **wfUd*Jѐ:"`VE}[kj/qZYn++VBUf}Kqu&fkiR+ɊekE$˒m٭5o 3|\ךy0SPQyX*`bjW,B|cSvS}'|q6V琌 +1l;?7P9X,92mjܬX2 X!X,#)Zh95C(<ǢݵZt!Ksd /Ymi ZI7 \/#k'[d.9-09e'#WQ,,Ϭ܅fYpvWg!IʳohY1 ܉[t8)V; ثZ qjYU &Ex)-oD+Xۼ Ɵn^"Sd X{ُ6Ъ;.F߁(})iq8#?/|u;s,%?z5-ČF y4НfVD )s0G ~b~' `J3L]#+ҳTbxVj:o (I*Q#+%< ' 9Yy)iQx 4NU;Bqp}^8Kood{K)R{fqT'%k`zzu`E;N>R_{hZG +~;]_@ۥ!`W0eUQ̇<kSU-u00QK<,RJ +Zɦ.̅:&͆9&͋3 f#O1{#|+|)>?WJ7>KOk> _o"4mʁg>|;jLw0w8u8Mwx^`=M{p|XwÈ.?Ѫ1h˩/hILF\nobX>]oe>3?|?WK 5wr"0!($ q?]KȖ\F=Q/?DrzTK^l~/!/|&:Wdv:5?|Q2);?|eH'Yod$m]HYڲ^ +j4,nFa4-U[+q ?J6̈́)$_W=,ob pKRR$^˱ꬦK2j1*IW3g,[iyǛcZ}ԏZ)Vwpjhr]R|? `~);<@-tP|\DXǺ wdUҳ#_mz7,zDqxvdm Z&yهJ^'5U Fw`7|c>[>')+w0)@н+)!8EA\͌(ﱢ0[A% Y' W)[ʆ;}8lL1ٗx1 J?/$9`L0!yX1G^&6wjƵ/ç$ +Zr>Sw_UW HyU+BLeGK5s(OaǨ*c6J̀9>% ú~6lPJ֝ϯth2j}  z%[ S>} ~/QRGc~̷3OG7#0L!aW1k%,ߡZPsyD$=_;/>ҀSa!j;05=H'a|zWqǖ 5;2]/[~ Jˏ-W,??W,|W~_>̧64/ [=.u6('k6 D7% LQzj(SM:NDpIαL10ǧ9Sl1i61Y6Q6#8iPz'I b>̇*|[~aW+_G)?U_-4_耂;)п@7:z| +H(v<RK zlAnު%~@L;'m-m`Yү'䞪)FyCF/5/ROF/Յd)ճ#D0GYԲRu!FxA#Y7woˮC[R-Aw1EB7D@:?|_|cO#vBDTBjV^ PAEF ^!9ud H7J(חm]6I +I9:wZR4чf³kfx9 RO!NM)OE;nڜcG"޻jYgp0ZۼK__'p#|!ӥ9)1|j}B[=*+{49_~?sT|ǒ)q-5!*= b±N:v@jH[=q0`Yl:i& S< r^:Zb;=l2Dg>ЅڐvV5è @pYIc> {k +2bKx/fQ)b?%I1 Vc&):.2Y]h烇oUQ/5Go3ba1HT$^fE&wxǧ0}#}&$tF(u\hyb߭ln'kb;$Tq[ bv-2qU:YKDl%\݃EP})#1iI +uKpk9i藈@~A(gZJQ5F Yx noA\jdC reF Y2p0+EO[H<Ìtg}c e>9ϲwgM=Li?hSN^w9k<] ] z%ZxJ`$X|$˫/LLGO yjfhm, {)9{'Yjd1|d*Ic_$mj{ (|%u!8201'bkb kXI )/'#LfۂgEy)$ j)%:L5/^ 7E8, +~WBG x8cy1`q8XñNֆc],jY$FZIf'p(e!3D K(2J Y$Qկ|5IPuVcĨ+R}~=H">D;vdm;& ) gsr]@ +.2O{a-=.> +ۿH]~+doċ3lh[[]ǃǣ;ƺ>^y<ⵚ>޹2ɮ:ԃ5Q&F +Xd gF!x.yvaM32ViF]b"B{gAh1x!!"('Vi ûa8 Bʷx$7TPPN4 >TnUWľ]7~"/ɤWm+Jg$[S}-HEAWڰȌ) e(BՄ݄wԓQ&`B|NXl:T!R'acwX>{Hǒ|`YM{"aUk Ԏ06*a΅exȼOAo;QxB!ӽ5s;2;AȹNv*Frea*v գn=[NnQPKjeBtIp«d;t{." k >\=?IdLHe' hLRNF<`Y9V9`K ,EL ~UEe U_ӷzaX_ ߱hr{> +~bYDA&% W`VX?d}h0*$Ec]K%_8{鐯%!4[* h4]%3f[("  ]-Sg+X+kA?(mą8 5: 'tqc`o4i{cI- ^-8E} NR)k=M}/,9-7QH;]ԫ)* 6UBB*J'Koo5H@ DN`p7ގbDSX0?V<@ۦ a J#LHo-)xcլ-n&p?6\q/\i/ -0}6jN=|V @@ -718,31 +736,31 @@ _ v-1\E\*Cpi^tNpQ=Lb95QCÁ>H1p4 },Ol|χ`1H |1&/CR739?(1:7OzTkm!y6^EU/+̀UߍcST@E7Yz:zܪ4 A hK87io%%ϕ? =>ϧ)|ﴓ5RxϷB𡂄>oӽ24 qV?{cF28Zrϕvr:ٗ%ԅ`KHDTQ25e[V |.:?o_*:z1wTn~)*xx&k0dVȼA VMϖqgerd8<o Y"c$?E|:p> ӌC./ ?kзp>*_w0~t#09Etq ̏>Η=ݛE(3c?79ցj{cť[K]Seap5QU#uBBl4KͽU x C g e#n){Q~x>ϧ 0P?еRp>Pӵ4zXGCgSͼ |{C6^s-Vmz?cA(r8ҐaFq6bf3٢ЧFO5N)(Ɣ!~OF_NtQMgcC `xÒk͏I,3Z -\Q=/xb*9&kUBǃHyφK7TaFq6BVGU ٧PēP˶ڪHTZsb SvY[ -ʊ-%3m6s.tk:"W 0c?g>i_ZzQ^Lz _[Vc<҅&>{aGpP^xgNשc51[l ;1 ,xm{B:{e>/ynJ0F<^kxyy;a^}%&}(r0!tËDoq9K\Yrs}JY zcajǷ{2MRB8A/W`B0`YO5q{XE:w -'mD3 -1$HG+q %y'w;{"X-(ZN<ʖ ;VB÷̞!B ->4i) >xH\H/wzġp`$4px,e+{:p7 GA -Er .A} .ƅe9]U F$-Ui>  ;潼e7qqXz4ޛf37DB={ۗ-FNqm .N5r7шqNQ\? jS8rKEL_jϹVAzػ\iK`ޭOXF m'LћʉhI7H@=zzKHEdCoAy[XŴfhqi|a~ixJWF- RV^a`B7gROǁW앸1EpƁc5:ŃӛvT8{ kb{yLw5}&nщWHŴp9va7̷;;; NஃYP#.0|- Aۇ:H‹ۧ/!|it7]Cu0W7͋I{{U언2m197[{תk`Ӟ1כwVp<*mDW:m% O?Hߴ!:RF$$o:}C5+pb6N"/d'1S_e.Na`[.{9ZN:!U u!# 5_3~ 3q9gn\RBj,hdl3( iF" 5mHwx7t$gHD%sǻL5O1vm/0"m J@-1vUCBM6f̩ݠ{ %Q`+A`[PP7tt`L>[CZiրēΐk I,y#.pw"P(!+ -=Ț7v_\Qw ~Cv^KY;.vf^9D '^vU̾l|卌o7s;=.D}utL .73 D$FJ-QIFO~;M _]:Ua -zaqΏXlP44^]010&GEJ.jߜݍ2*@}) -OOI՜C4=}_3^WTӓ/5 @ZUI>o_)\`xy45tx]'FX7vTG̭*lb t1[}2p9` -2| NTԓJBGVuܥYоϢ?:H7W*rm-T(si{SV4 0VNDmPE˵^I`T͆ȿrka\FM~JG&I(LE:$ -B$K5(m)JjyWLB]b< ĜQXZBjZaR2''' aMĎƚƘȜ&$MH0& lBX#% cMGNNeJGHLHbGNȖƚ˜$L ɭ@  M $)e5QXд$$AYR1&0 bIGIeNNGIIKJGHbŽČޠ$ YA Yb%H:K 6́}֬<5-IXBBZ4a鈂X22#2%% Gc`IcM`I_H=nL +F ?}ō. 7 a# (_9Pl +\mS8IBcykCY=.|i8!\!AF#NwnΕӈwK9 sU\HL]vr\tY2p ^Z#9֛N%VO>̶Ic e+kdǿ^2)~ռ>nz[i5X7`BùXĶR~!@\ +B0w߇{g0IkXIBq 6.cA!S̍H L8(oUL=*uO*}{J BK3|e۩o SH5 V@_ޤJyGvJ4"9b.g`ռlf7USeAƢ&ރh%wPb-2]27e3 u D!s'Jj+w -fFú]E-pW ?Dy'J +E p& H?H_PݴL)sr(w $ǯ/cyz S|C/M_]r_cɧ#%h3VKDo*'S,& bTd;-!;8M maF`ԏR0I08 +SvVDBF$yL $=SA|Y6sxNql )m__& K]Z{U4BwSQG9\B DI·N|zOP_%' 6̟1"L̚" wȥ8u>]Gna_:lQuu<&ԉ_kqayla.2: MA B}~ %E 0@F"H'IF:-bi +%`G ղnva F6ĔgUNuUgN n2)jX|-$zCA݁D]^4Jh"SIU~i8_kjE 3vԝ4BpaX8AX_ay ̟Hl|h4:nyBh9xW- apV׍"0FH|d@~9-/@}ZNpJ }$Cz͠Db.9@4X(9Ԃ#p1BЃrڑ6 +A 1qXZ?KCՏZ"|&$'Lc[BEnwEo{@ .\NUEڨJ$c0ҎK'ا+0ah;UOD)&57_[iX:Wͺ<·B qo쨾o͆Dr[-Cvf9s +7&dub6&Щ2oK>s@)lb8{]W_Gq𷲬 ~ ?Os%,ls` V0L+HaXH)%5Pz +E +n-=:bX,N"vWEmSьH&͕+Iqoᖰ|SFDm."#p[wmGftlwH +L>vS0ıSH:o9п;(|@~.̦i{G@Ѹ#${ugZhS`)}sv7Ws(\>=%UsH}mx]R%OOF V, L,j9H sxJJn)da<5r6C*o#a 9 qx&t#(u 2*g\IF=aF"1WI8MaƑZ8h;{ōN#! >{ENω˅4v9 ȩ0d6]/gnQi}*!@^N$`Ģ"rwP"/A l˃2vA1C'n7a e1l Zkpbq>z2?PCg(L:y @@ -760,253 +778,254 @@ E h {g2P cU\?@e|aބ#R7-{j4l^8s d@Bʏkіx<֍Y;ҙ[ɂЧ\3w%REHP?b2jV:S 7V|-yd Ysl4vwzO a.Nwo ^VSĒ_ @A}4@0uV7}s)&4?{y E|g%իhARB88ć@?1CRؾ[|F*!uNYօe<|H" OW rp4|'/oSp B "A1k{ -2'9\P\16Q'`% _itБ)iaTrY +2'9\P\16Q'`% _itБ)iauTrY gdcadS -W: A `t -bH DAQ -JAF,37iqB6kQ࡮ާTS a_s. ]s[0A%5"s1hsF-t$ЉpRwCc99aZ ,j /941Qf=t!nVPBz*9a&[gE n˒aLfs2IǦ=AUX+?3,.ߔ4_`>x:|J/YW}Zr5um1YH_R -xH=ӕlH`}Ϧ;[a`^`?Xv^>2UO_oηY?ȺQP*~2Nm8N. 5V˂ġh~UPڭBv);>8y{p{Jzi7}.-Βeo`ཨ_onge=n៯yNMۼ GMüdž9n#ou|WfM:L޿{2/iB bpQM'zNY$|gK2W̢ p>BvS\ϟ׿<';emzf[f;÷!̂d;q'AluK2m GxoW#,z9Z6dpQxgăNv»Wr}]0tzПv:?k;P:wO6XێQxnW~l5]Ś 9=owa(VMȳTPRmI .w] k;z#krq̑W|tϚ5scYDn^׍>ϲиonςbp/jA#]YO'Z"4J^ _Ǐ!^Qؿ>q+}b2V>;Ri#F􆮎rZK;_^>//1!_I0":K^f8k^.˭ KӤiDt[}z+fӵ?.u$sGδKw|4A7È߶Di~o#OFG}Zʧ |3.?8E(J?=W2[SQvJ$0 -Toָz7׆[2WNYZ𫸱:EHA<f=8'Ia>wJl ^uw$5o}:h4 BկaF5x%/WskѸoWBD$P_3@HcQ͘E -zY8~rϻDEI$!YC뗠}F/(aһJ f%_I,%Z336d1063-e4b3-4c2c-bf11-1cab41a000d99172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.25284f846b4-97b6-42d5-897a-4f6e51d87d6483fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-dd9630ac-5672-464b-bdb9-a8e30fa3deb5e287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter +W: A `pt +b @$ RP5zA/ t8i! yb𥮙)NxIzTa S/d9M5ۜIudNmNZ8¨"N4,Ac`(5tN;PiBZHД:&BLXUɗZ¯@>avIYdI#Ds/PcΞ;[YoJ/n:*1KmqM=ERyG/)zF?RLtBls{$ gӝ-v0 /0 j/q1*'ؿR-x]?d]X?y(b?wxO '+euWG\{~*](V!;>׼{:p{Jzi7=IgɺB`ཨ_6g}~Vulݮ2=v^u&ac9n#g5>3&|&_=/iB bpQM}nY$GK^>3K:WfQ p>Bvs\͟߿<';e:ޏɨ=L;w.v:&4QluK"m 9gWYFg=SdY%ss +[7 +2$/w' `a>1ol>~w uL,.-F≣[ylr ^5A7 fiQr[g,gDh'G`u-Y jF]1G^?kzִύ]#xDߩ[;'=j-D23\V>L%5HL\?+ xf^e0W:ax8|?oc.? CX9%\QXv8gUjX?k<͖$`׹ۭ8>Ay8woivz_o,NG2Tny}0}p{{wF Gd-^nxtn\wvO:~3[=#6^5LX>Io Zy=/wq[PӉr՞=#㻤աnvSjYn%]x_>=M:/FA@_?ߧ2+ `&9]R/rnLKiB1P'Mc-So۞Qփ)#GcFCt|48G +f}Cr.i,A N\Oޒo7<8vJҪ;_與DGc궇 $'YVO)xr2HxSKx`,L յ)BH3\\]Ql4y_ AׁH 5_IHsA +x-~b벆a wՉHBTò/A6=.6SǤw6x>+$[9336d1063-e4b3-4c2c-bf11-1cab41a000d9172551d9-9ef3-4ed2-bbc1-3f2ea79f1f84 670.252884f846b4-97b6-42d5-897a-4f6e51d87d643fe3bec4-4b95-4332-9b12-a4179f8af2da5546125237-5dd9630ac-5672-464b-bdb9-a8e30fa3debe287865f-b4ad-42d4-ac77-1898149a59c43.ml10SVGFilter / : -/XMLNodexmlnode-nodevalu(fnam/ArrayeTurbulence;children1nodetype/(t2attribute; (result2,0.05baseFrequencynoStitchsTiles2numOctav,eCompositSourceGraphicininin2operator1100%heighwwxxAI_Alpha_id)idyyobject/Def ;fractalNois44GaussianBlu1bstdDevifeOffse1ddxxoSpecularLightPointL1(-20000zz-5xx1yyspecOul-color:whstylsurface1sExponent2Constakk1k332,q.$ɲ 2P)v@p8p4D1P B" !bPVDBR v ->vQUAx,Ӆ=02>HԂKsq3\d~ƞo1yd:P!XcԭT9i*"-3 ]:wo u>9]Yo>>4?5EE:ӃzDӴYEF*P^$^8d(mbYo!syq!sTQB(e-hh=`J#~PA W*%sm SÈ\7?&L7M7ՓǦ7\,ˋ=M3ˣC]6dEeQ)jC*.aѫ,EEǵZ@+!Z$b%v1TwnHIFtp 8z# [?9sޚc"veUZR\_)=17$?`F/|p1c3b7pz%ˀvUFfn:$Be;^Uydp -}QO~;W|D$ a:΋5TN/x6WwfW_ĝ~5{0<#I6h'7J/%dM<%;Xyq@*& -$ -D=E:*SI`\3~=. <**Dh&z5.qqeDa kˑ/tNakZ3̉2%.qK\%.qK\%.qK\(qHMetCLmk3uN}>Tٹ+3NF|~{% -( W7eom% -7oxes%ޗDqs fDas+tki3ȉ4)d_k{ް1vgǚ_7|!k(3k -6ofv3/?ԛ7Úwe6 ^;iǼ nc~ awp4!)p2("ԠB:*aぞr Å}>Y;sV6BUUWS(Ǻo=sp=t]S]€L0|3en% -㝷`c0DPBvuTiHv2u9}W7{y箵]n1t߆9Two{Mn{ڜ.krk.1]m !E űPyݩ{?g{ϺLs tktN @@@x H2EJDND*`468" 0 `0Ca0  J ZDa/N;D MQM1]ɁCSԈN|q6WҐK9PT4;.|?g>Qx)csN:#jw:I^J9:Dj AYK*@t`(=8=~O0^e7Qo. $Q8},m,Ba{Wtǂ/:Nmxj-mœFṄ= s& ,WbSLxmL6iI* }ٵUi)33ԯIص_|ހDSr쉐VEL0j#kny"kzHZٺKfSNy~RL9p5ef˥;&)w#$Xk7KbU>1j xԬ~O Aig30mf="y՞E7ڄvCne<.K ejaE^dFJjb$'@&zdcЄ$Jˏ 3~M 1.t!3f@/ǫP!>eFdq]Yo d<ޭga <8bA֞Ơ]DRIe_KSBTvрi&i6t °Ai)֊ۍ1W~JD_ 4N8W]f3.8n>VA 6F.I$ϕԟtCy﹢i ab {JsI y {&!Zk0dZY1cl%TW U|wb rp{6A^#`S z^W̊ p P^ˎ( -y "xC$C+4MCjՠEP"y0?Lzg3duxeN[2 ߹IwdDRM dТΨgDI+޸29hfjį^pr@I$+e]Q7:n8} q2 A\-=(|4]ioJC%NrBA_ - &[Bt@58O7q%v'[ X`+c(yF)_-)vp-{B:1- hdhʷ'8u(e l% H+Fud0aR8o, -SRP"3o#R.w]`B+R!Ry -gnX|=Nyߞly.y#1/tPl"ҕYBb?6x",*F4WhX!\i8:=T%T `*@l2Qi K0F^%bn"쇡^䌒QǍt,Y@CU^GiY,punFU`t YCk}U[A,t/m1wJN՜뚳f -ZqsEn0al.Wy -tt$OMh-,1%<6!heިMCd*En @7Q䁮> )Qq0T<xr,H@TNY7܈>Orx2R -8o8 Ǯkzۺ$*̪E#Փ}zQޤ_]gZ'C'C 64Sz<]O#ƛdZduBLL{/ܜx9i:zEyY:>.b{Bt-%tsSfIkC!hŀPA'F+kx"Z;yn Jtǽt46#2 (窡9jounѦ~Ⴍn8=]0|2w:8͞ :-bZ"{]8NFRu-ϡ!.$1["[ڀ+,hwgV~)q!ȑ'rGɅO7 -84P-~g<k9/KÌ.Pi_ځծxfA+1 M%̶8V"]X5KrnG4}2P=൞0k T6Jz@R hB0Kxgy2fe^㽛y 9Cpq  A,.mhjQ^d0AIWfQ׮/AE)kQ rDb#k$Z=`/f1ys̲|j$Ҳ%F,5@v<O?sֿ8#6bOJ$>$O)[st@NxI؋C4$r~8gξ -h|:gQ) -[0 Vl%ZV+_*OB&V*'bbOg;TCam%s2 lBEKG#}?6t|FmkFe=dʐb0$:Ϋ.@KFJ},MZ`dA -6 åPf/jq[fMnE_؄`dq=v4d}3ױ/3j?]ynq맚qlw-X/YSL۸LS ~&XN cs\6hWNbؽH]SSN\ׯdt@+@߷O?$"YؼqM>]%[r!/]ǁjb,Q,2" -P=cIDҰe]dG$ 2#=Cu6oQd"UB&LtKD |D&"y%rI#ց0җ4bȔĥ@eջQBiVI+%"P+mƲ_J*3*h\,eKF ;jWW!ŃU:Nd}Z:2Q$JLXټGs)/aB "$J\ Xu[re]skIyR.|%ZolI7;zzs>zĕLX7^QgޖN*酫4[[8[[*Ѵꊧ[lI(j%m6Z!ɰJZi5"Qa=ot9nUSUUkrϷVkR*x\Lg[%ϙʗEmogv*+b'-;?//OO!֑qSW⧗׷,_#ο?w}?"l]>%y˾|-yxVyS-_VL-<Ͽ_:-rwZKjDeAI3J묖bYs'\̹:׋'Sj//ފoԕbuDBKˋk-WY*b*N7S=]oٌZR_jo1֒3Wyγʫs[{{ڗW(-zic+->X:_O.%vfKbloܪ3[{R+IegHT{rɳJ_Y鴖J{Iew~ڟ֒W-)uzlo;Γˋi5N 9m^=fYKl<7gJ%G$ZW[:,Y/]/6]j,˲t󭵳sw2[UؒZ~fv}K⹫qڿZE)}kc-Y+fi{i\ŭ%K^xIZVU)h~yΪiDrͺ%wwϊӯO%_[[ \kߒmǒ٪r[%rKS˽-ɭ\r%eI斴sKD%%wuL]W>g;5K뼖Vr[ۺKLuV_Z-;%-OӹLKչ:Rڹ.S2U:e\==XqʭNhٟN:6Ffn-;ke3S]zMUrȽu]ՉHKu]׬_wɭޗO~u~DrýN_88ԀSıw5c !!27oč: τbMq5US$4;봮C]@:jC0>ޮ<0r6Wu |wj:,"ʰ{}$M~ݻi{󶺦_?֬NYZkuE齖kKήenw۬1̭z9cV|w Ʒ׬Vq9m^bfYOOL',-m]uV[Yvة)m>Yzݶk0lgKvz2YtkZ۩gKۺ-IimŘsv+ƬFmmllmuO'Ue[miX,ZjavwOiu+ʭVSZW\էej߮͛oaZRu7h=Y S4jfMeZ-RhJoW[۶eZOֺnKþq4݊dDTֳc+82 _gY۾z7rG*Nq$Q4QI$m&n/hmSb_6(b͆٪>PiSӸQiǏCO3ryza] 0D(7>ψ^ȅ`ǴqaHҭNBMWb^i:.FBpB67!KgLn] _}n3vsuOz7])1ֺ-6o+:c{8qmTblqu7wScN[muh)iwz3}}:ԕ֯:k|_Lcl_ogm^nm[[~ZzuOb͹οo@?RƜs)u/Z[iݴoy秺^ΔZ/^}/vӬ'X_N)'Rk|7WtOȗM]jID" %}{MlG -}[aѨ#( ׅdǕĮ:tW8ZSk+oS˿J*%ՐT܃ 9r0G\.8 ~$A@-4ȄuЃkyl'݀2OWl'T\B؄zcMW~5y)ߗk17b]'؅'!n^GU?VZ㝭u-iۺoַ֭qo=c[o[j35:ϓ^[1i\?W]k/5 |uk[~ P#@ `dΪ;gZ_km xq+֏7ݛ~[/Z^73d.޺r]y}ř㭯VuݕswDJ SHw|oj_y'>oٳF& -`u" gT"QJDx P JD2RB dQWV"PA*}x  ]AD$D- jK,HBJD2R c4.ZH@mjau-}.( +Ad2*ICfhK?ЅGBb/U! *RQPW@ -k̥*\:"9&P0ZH6,@DhΘMI^5; a U"˥Ym>=*4jEh LB%'`^Avh%":Ђv(5fr?AROC$@%3\ -:fHwFG!.'` a d!dЎx &! f/;#Del uԋN7t3t@`#°WDefܗ4R\X8P*$Oe-A&AmB> -J@xH4\T"9x+ S(\TlPcG `BƎåV.`c0?CDUX4L'BW"R@a<,ڈ0'u3@a8\R -d?g Aq00$@R0O7 T߰j bƁ9> -^-ufnƌQRfEl7@dCxiV -G`(6X`[H(. 6 Tt0B<J_mv~F s/>V ",ffʃ50@_!qKqUM -+Ρx'EUyQ;geB&<@ -3V4 -@LՀD`24]4``*ۧuޣQHzhSYXxqR~䜋Lԑ u6Q<`I0m\]~LXhC}hb7]ҁEʣ N($e .@gXau6d#mdѦBB&>+"wɔ7(v)[EXLX԰7z}#}EFos*0"6NFüLBU C_qy}TE|t}S$Št"F]Bmz"wdW<7"&QJׁ &w$&=N(=La]z@E 9A"&{ǝ+HƱFCLv*,*`aWQB6=TL-<Ҿ:~U* םjjSD m6rcq7-ԺuBB,zx<.)ՇE7bi?07C0CDlf ;-1e3@>PvZ&8XՀ$v*b, -i_Fq - XXTaBqebFlƮ"*A ˸ǕKi(GH>.}ĺO6T~C =,%m#/5R׭@Mjy2ƫu#!ȡHpU^¸aF$Jo1_5׭gϩ_"~U]4Zo|E= g+Ct|4_h ,, x4V&x4,+RHPXB=ժwFspd{p(- _x$UE* ȕcf\4T!.q-C3=AȸٚC1T tH0T¤0IXOEDY"|P\j%"Y ؘ)AT7կSE+ =U3sΉYF9e`\0B(\B(:jEy 03(Hl|3CNcA"]4ʵA |JZ` \H*4A c!&S-֩j"t„Ba ]=|C/d `ToyD J@ur903QEf2bpjAèG}1! -Ua|!qB@+ -4> q'!JD%dx4&``"$PLh,$%`Lp AJeESB`JL! -4eTdDqA(,fnCrm3POḆ:@q"d+8)ID32 t -#C šT"NJLlaTlI"a2Idmkr4I 0$Cn*GÀc;k?ᳱ - ANJDȞł 13dpfDg -S30 N`8 - -ɆEDG :- - %Y?ѧlFP -FSFFH1#` Q?6!f .!m|rp!'ZH,LJ2AxkaP%".(,0.x`JFFr0\ aHxD$t3֭@:q]PHP ȸahZ^AHCB_V"f܍U! $B|UXPJ.p0h[ VEpL̆qI - -GHh kR -~(d \ "Sc W z툌FZ@cK7C`0NMNDnj !d -P`8T! ;$ @J,"2 d?ʼn2$ҦPۃPhBcPPNYw`B4l~UQԅ)2DXLB £ў - ,N CeXL@t - & "ZkdN4b0 0 Nh`i >1D$!FC@L0aA EsPb36JD`я0XP T ި4DRP0`$Ʉ&wjYL,LF.P8 02bʨj?+b%Q9[qH@/wtvX]FhPx(.]|X l?;'`H*RK, -vc:pG]'O6s2٠ 9޲|u)Nb3ҺHףBj̐w.#gt򸰔36Mq8iV̗A^~0. XꝨדWN5]:pqg;0-:h^0U(?82' ePӲPͪ<]-%( 2~ؒzW\[ ~erk9І^} rqvb_ %|N65n?W0j'`Zi nIBZs~E=9y ,);td kE}njmVpaKp/ۜW-VsRk: ¤ئ{b2x^z3AVoM h )`e*pB#/gFr4Wpo\ۚ؈C]HugC0#*t\Ҫ3Ls(좢nxSQ.WΆ kdd."}K;bdVW(ХFе+zWBOëGƖ\QIl|Z/˜ {x|`K} ,9eƀicPkԴzP'm-y|==p0ͿWvx!d zs;)&ew?? -ޕj`O"ɞlyZ"ђŵnKrC^|oQĥɽ q<*N -endstream endobj 233 0 obj <>stream -'&;\i0<`I*pyD F";0DIj27bi x c{8+–&Pg#|ce$@ YO9NEr/ yl(%.!Fva̭KV_ -tFд SyDq#[ƛN>cP ׯs6dl&גԈ1动en,ށtCuފ&;?j -;&J*p]\mB4YI7i.c:(O(=Ry}U**&\_TE:뛜ܮ0뻮Qt 3tg[3nחb2T |lkV|Ip<t1FLF@ XU~G`fx,h Sq`b60qGv)]BR͗kKʜb$ EdaZʹp -Ʋ]K .Md:`XMY-|u<p^a(#!I0GِҖiGONLuGJAL"9ic|'dA;?I`ۭl9gK†l bcCuBfK5=P%>t쑀a>J"ܱ|ZZ͎J`ؓ_}G@hH5.bX=X|ϑ`Whb E>Z~9.^zKB~պRk6BN]bsO$&یJ{'>DK^`S\&>Pp7nNJD>HaZ1B:O|ߚv4tjd"8z%86H&O$ B,G*f -P} hAn Ac;.\O" )E [bRk~&Ej# pڹ< -njWXkP/xz|kWǻ\SJCZu‹hy͛bݜcg2et|zBuWkyKQY.D0`hG2هP{NQSl@_l|*䭠w7J6|\ZMq(L/\g77n})bqľmQwY *(re浄ɾnm^;W9|< C94 -~G*뛷*`Ѽ[;vb7!x%M-z8+ĥk z9<5UQF -L6v؝EP%ڗsCq!Ty,=⻽9g -f/!rX7:,Kƌ(ڄ -gs. 8cyȹ/ˣJ1ޓHƵ(5d%êE ޸@D)ԠkGͱփs:BZ0B Ŕ&M^ FggP/U[d8 }TPpCY0,eF9rs6JAtOh2 -+e|[2+eϥ@%<CP– ش -rD90ir9R_13gyi֢HN_5l6p}X[YH>wѕ@%82$`\ ]J-k;mU!} bDAխ o -*pSeYÓtZ>6I^uPKX&8'75wUk!xL_ 9JĚR`x,gt.5&x˜L N:Ȳ57AdQa\H {ObI6g-5g*L,VtzrSe6]aä:nM+PZSimVzΜ -jI£6)uk)3TE3zIPq)Ky8 -p<@Ľ|BRɾ_KFʾmP]H"f؈["giVi@WZscZ$j8/Xwfc=ƢxCX}J_{l+ -0.sZf2;eP%T.hn7׻s@;6^rDT@=~"ᶱY$A5$ -3j̬mn`xe0Da^bL#57"`3m^ -bm ح ȶ=Y"_\iëL'3S)| -Bo,nQ (Uzj1;]:ڤn*|h?~0#S2 `x'wXq+}hj4br&|Сz*ֿn,]6rcHBZ]R1_7.nLXR45MplsPaq\ȍQ0ʙDzt:?8m,bC U /c1<h O-٨=I:BFOre*f(4vL!oIU8|!wzQ\s<-"_zy :nb.T!S}`J(c!HNu~uǵLz6 [ ϗS\ցd4"R]J} \}-h1 E3 -D kl3M$F?rsxdޒi&W͈qUڊ80tg42"3a[1-c0];)`g2DwE85nZFxDk#ECz< ph+EVx:;Sņͯ$[zun .6{<(~ʢGH\Q=:?9Զ#?t䐞-&mW |%%`^`ziOj -((LfQ'leM:pE  mW4*j֗Z|1;&`AS$V bUd 5j6\!JP',}Z8SrYy(4 ?%+Ǻm@49+Vjm\[DR-D7:*{sBtN7rA)(1J1OÊQvؕaO֤T^1uklQBhE fVoav L9[(ݕt5wXbx"Pcq㋛X0mMoЖSs面oҊ k=ofd57 Leݦ"I"WapvȏTfJ:!k铦~|:[,!-?a7=Ôo𛗙f#Jrw*bK|{lػѵ`^R]@1p2;OBnƼHxդz SvӅl?3 I|$ ]$ < [lcW41o6L͏聦?* R/Qxvǿm kXhۓ 2ڮQXR+Ǟ<, aX8%C!2wj zh8d 3Hp0س=ktM n+|ɶKIAO*٧:^гɣ LQ oíDL|Kս؈ OI{MVbi7b DU{(iWWJxGilÆ[ y*e/:Qxt];cT˶d(Yp?{UI%kg=kEmB7J 9ఴ(\l:$EYbp\DVb̻m_MK{4?6aCg;!CT(Kc/- -2Enl2Y -h,\?Tݔ:|B F b5v:m~#5'ZK8.ʇh "#94 -Ι"a.#D+a&πw - 𼻋JyO! O\<_;Δ+wo[NTwHx{w&.$pe<11$;.:m] h0A6Fݎ$;˝L)xu"I"dӫc%Yq!^<?%uoEsU׌(N2PK <×3VS}r(2d6#:j"ǹ%(͢W9ղOW[jag5##^M[qjcѧ}8p\ɑ1,`au?YVmS -P?&tLJ݅m2Kİz@ՏMn}>#w>@}lH +۹{lwġܩdm0Ὁ o r #飆r$.Ar2# +/XMLNode(fxmlnode-nodenamvalu1typ/ArrayeTurbulence;childrenresult(turb2attribute; ,baseFrequency0.05stitchTilesnoSnumOctav2,feCompositin(SourceGraphicininoperatorid)AI_Alpha_idx0%xheigh10ywwobject/Def ;fractalNois44GaussianBlu1bstdDevifeOffseodddSpecularLightfePointL-5000-yz2zspecOustyll-color:whsurfaceConstant(ExponelitPai "$I(1ǘM(@p@1P Bhd!F9bAe $1wJkpkhŗ31ȧ;ӁY\mY+8ZQDH#h\󔵈V4v7\0t30H h'x+S%(ǣ8Ķ@$(:cyAC5 +m^b5"y!/QW0@sD]KR^*%3/|WGp$%s-qShd))aZ cdQ'KH4g #·mcU؉܍%VVHX:. *iE*Oۡ~aN'覢)SjMۓvXkn/6 ˲l_>ɮDd{'-Trhw$>{;hkYIEDSZξ^()e_GC6"%'i۟n%[WOS> +>g|:yĝPI.Aܓw ʚ]s5RRpщe +\Z`z82>yorJdDfؙH6E P7aS:Qك˻şs740gbn`S9D=!VSI xMʱ&Ś-.)lZp1 +uuzcM`?@T$FR)-S:5)ZLtM<(+,omheN@AF"<m+-LZ:`g0 0 0 7RK(Z/ٻUNhkį1wz̎$eJ2L,D= +۾g٭yaK-]Ug5֫X.|)6]q p9U]޹k"TQBLRt-(bNQ Q%9TB%x"]yy<;($AEIᙜ'BE&,h‰09#zL$MI THGҚTI(BEO4E (q0$!^ ޢ.ԅ^n=νOU]k,{6vu]׆Hr$Nh(KcxUu]\E߅KY U%U ƧM٩rS|TF=45eat3KVgmKM }LvL55, :5̚h<=o) 9sReV|mαe0[]mkM^~S@EM8HHI& Aa iiiͱh`6?9 ABB*( D ay &@sNCyG=K98m=r]{ڡ4L<<6/1с@T8UiaeR aOݦks/j[Uwy:O.uBOoWkךkߜd>%'{Wvk{>Uܹ]T`]u) $$9YY .yo:KTFT-"@@@p GCMO +IH*^:<(E!q`a08`0h +0 ѵ +K&+IѕI?/]mX@.P8#4Ad%c9OaT^cFd4!HĄ +>1LT $}nG (aL{Ns%T~{lb$%8(o)DߍZEVYdcH8^K=Y9~ $J@O!}j[I,h'W,&K"qSW޺&Oc4 !"yLX| 4蘇ve`#W5I1 +~5q-xp(7ME! +!V!="GF'~fT\1&6ؔI)kWvM@)["9QсءuzHx5>Mwhqg&0?n-Y6_#ha >}4$.߿ݭZ۴6r<RW[ yZcH@iCFBY8Ao*iU\:Be2Or[Yyrj L(MLqfCK'Dߊǵ5VlZCM :+A4 >m ^l@ 3?B=NuPaa0Fp:|tdnRjE:_Z~:`h:OI|Z7@"靽1Vk wb%0VbExi1ܑYQA虻pYW7Jeb+!X:.W̔Bt!m eDxe΁00bUBjq[%?A4B_MʈDf_5lؗP|@5p2ޓե +"qio?)gxr঵@Ȋ*Jh/sAmji/zUљT9Oҹ+]OJs1o&Wx0'Iu@k8Lf$E=fu43y&Z [Z%;ǒ>dɌ_0KuUIdiDTgW$p*OjkrHukhZi-Ԍ5S_ey~n%52|mߨ`.Bځnz術P I$+ _ P+=Q)mD#(1cTN}@c30ҭiPI @9 +(@/h՟UPg<qWB|c1d>0 y6D˳p59tnkoC4&9Mӹ+̬,]F%4"Fj!NWfhq:s]D'-C!yfb6|&PIQMxg.VY<`}UgyP!iT+-ZX|al(CÚTxX']Ȕ-d q3?ʬ*gtН)Uu(reF[1Z` d_Rbjü$^CD·2D(nFj~]AuX74EC^NvB܌e%.6r^F3~dw`Ł?3s4>Ϥ3H͂RN?jp)8r;w;9D&[TwcÔqZt<??6`]As[8!k/R GL^V=#Q"{gGcERfTm|l +VR8 ,dAnE2NBR\{ \? .Ҝv+$%W)DlRH)%WH/jp4z3GZq9:e_| h^?Z`њ lz# ՍdHh9<_A@ÇX1j㫈6ȾBm"ǺSAȫ +&;Y@ωw@@_S1ѐGЂP5!=SfѢu듔089:X5T@OAT>> ,'2Pr_+XDʚxVM)PT *ȣVx) EE yX)oZ+r]/#oT.& 7$<댊ffxƓ ";īqojIW6A3 QӏV@>u=^Zth%ya@z̗X"ddp0(K(34,b*Ǝ>݇1=Y7|G@̤ n^^dg2Iʒ.!zA e`>WhBuA^ KQ hWvq#"j|N2ySY%wËO\謰 %g*O([FՁ i8xE_|$*C1G_֡䰟Uxmpoό2)J`y%k=[&;YY l+vDw!bO@P$743!1#'vX18{T'GR& \&iYFu.[d bm'"}HxܹWw&UhVL~q,a5q`D0o%IOoVEMX +q%AQHrI`ևRY!3m 6 kcˆe@tއ9Ͼ"}PXK}@[`'-_j + /{6< '@{ JDgɨ5gef^RGWw<\iFD1+Q8HۯZzcA|G' p3m=ӕ=6}!Ҝ[BS)w R 42}cÃ"d6; i6ISL/.4Lp/vG$p6jQIhf}e "vPT&Bty{gd4Qu2@Q L-cj! @oGG=؎Iu 4ĠES[]@'>0{C +@.L4 +%Q2\pAY?5mr2l%MZ~2Y(bSEyp3Va&:½4lC) +9M'ѣLՋ+Jٸ#)]|gHC.H5pj,\bL( $֫]Hc}"oZ@KF ;IWɐ]B; {""Cԕ561J-'֚)&'trp5LL7RVK~+hY6 +b`w _uYs>\UI$ ĿŒ(Gګ4)DS*57T!X"GtoQ0%kLb-dGFziZuF*l;-{I=EYWMM7EftFM ɮQ`gԒng#L IBƑQi|Mvch(Jhɂ"g|GϔA<2.YÌ\KᓂQ:+YLM2HNBʐI<ǐzyP$iEU&#{8}pf2,pZ G?骭2r%/zgQ5,u$'"\ @ >z/(w{'>EZy ci1"0@v1#lסidNQCg!etNf)NH&zF9Ni + +qP.|qeԥHCTM!蘓\QqL+EpDeY-lM0)Ry/VUqVG^?Y3h4b)z"R4h$r!="!ce&H Z*VŰU.tpI`N_9泈Bh{US4"asy|Z-Q)\9Oƺ\Pbi0 ( ކpoF826ci5GnlV<㍒MOm:)]fu(UIʠ^SVk +ʚ +R< T=0Qfn+ lx + bTPվXAˤ[hT*̗)b"T] W#v!7~.Qxtal0 '_ח"QaD<5\è'1 CqKkOF d*IgA Ѕ%:q ]"eF\`$p#}̓IGrmVXCȨ菊3Ή Gꮒ̅^aH~ϐyA]3[uA=5x"gh) "`w;ʒS&AAY@\j|g+)iꟘ𒡒(L49*yE _&Bv-Kة?z., 0 FwuqK1a[N?tjDvWblj.Дu +0c/Ҵ6էL$@9pWn7=aEgz,I6汚ݽ$QtyESS!%Ei bt|FzR: S;M>Ϯ m/UK*M} R@җC{m6Uq j@b-#՝Bt g + HɲTB0 6Zb6_ .8PƁ k:@mk/R ɶϳQB ܧmnZl|`\M`=(eŽ|抦%D% 6+-4HӲ)D͂;ro TSsj2Jtq#%h9I5LPV\7igP0Daxs@2n*u +m!LY]74B"$S^p?oG=&1 m0 yP2m,i+hI鈤:.XVd1 MSYvfx\;K2.᝺J<=W+><$];S;RR'flx\FHx!~5V%@T<k߿Ca%aH{N}fH_R`#3hT1f#lב'o/w$Kb0UǠ\%~#y >#Xj@j@}J{l<4*" (nngc^\5DSvD;<4[jsA %m `|cH`vXeY]s+Z{*+/@ˀdk:㷓OSw6%/3szK:E!m\ֺ19gMzkmnuśnMm}o>( + A溹,mЮ۟ ) ԕ_SSN\ׯdT@0߷O?nli'D$ +;c|izHtl^bEqkmÌ +ȄL(վѤqbYihPYdG$2#=.Su6Qd"YYBL tKD |D&"yT%rIcց0җ4f蔩ĦΩ@8wȅh#ēJk'WRKDrVڌe,%Tf2TR2#%"X"˔ +&v՘u>BcQuud}Z:2UZ$JL\ټWs)/aB "Jl hu-ň$<]O7 sbXg}KWKbKR@~joK'bqR~shZur-~\\oEV[/iDefTFQ)W5mwF$,筚4<_׭]=_ª|ʷx>kҿ~~Wb֬MJϷ#?{9әy^_1N]eUVusx)?:S=vj~J?wD箏G$˧ۛ;ٗ%*^;Jˊ7KWN{I\,("|u__iW^Ւ<;kuĒk9ײ\'z~JŸ[1-R?HZ1iyqjXmw9v$v`k&)G:ce9ֻ/{aPگ^ok槾}ڦaP)]:{0iJivJQ;kʯ~c,Uy*ۚ:ګg/J4^XL,gwf/a~9rgFTls~}ʨzmeN=6_j9Gi73R J>0Yi~]zkֲlgmXO;rMe(]tkk۽TϗuwP.ףe 5qT}ȉQtUz3@JSc}n."q %j_yj0FU1D2 A:l<Y0@Tn*lgcecgYN~*ۀTɜ*RG8$ _}n3vsuOz7])1ֺ-6o+:c{xqmTblqu7wScN[mu +h)iwz3}}:ԕ֯:k|_Lcl_ogm^nm[[~ZzuOb͹οo@?VƜs)u/Z[iݴoy秺^ΔZ/^}/vӬ'X_N)I*s~Zꯚn|ydإFH"\\84,(ػym*cZY{4J,u!%8?{3λVśs/J}|I5$} BKuܼ $9Ŗ?0"PZ(j//Zk5I7,cbI/p@TcFRIn+O3j_{)/X[ꯔ{[_02F`B}y^X}3uY5vL{mm0N\u{Tcu[놗8vUE[W ! +N-ut݌:LOȆpӬn bPl&L\:%l,t +imm +/6;?#>-3sLÃRB8TDVBCPH<гPü@绲hTAS4 Zx)„MX5vT5`2 ͠,0k0ӺѨcddHF((u) f7]uS +;FOe mFzrc׊2SgyH4ocBmåH?ԦdQ nX_>e,(q) +da:gF1yȅ= 筼'ؒ]y3ZԸ39Y'3No[l}O"p㲏.OzYWb I1R DuUqEUa&UH(vϏGF@rC?ڬ,·Ǎ97Ep̺.~H}iS;n[Hþe*qR3ɚ|F*fi*TKPS[M~ٻmsR_@@OĹ \>N1>zdiU~)oq^֡@n%~] ZGuwݧMɘ($GY1>2h#f\mh#(fX>U2R>єq]&˲# Ij ?Qt]}PuQFZxcX(nz2y,Rn\{Mך3u@:5 @,nT Uκ 1+.ZOuLu-ht޷=Y_G 3hҼPrSYŐ7lҵ 4:v Qv֗Gz{YGzOyY}H4/WѵvT5`<Gy<eD$*,q;k\x8&` TiK7+("FGereh AFM{N_0냀(w _ӣ~()eNɃ0yfBP&|5鰛k@&k!փKD$^4>Q6(e<"zPOhTQ¡2`d2" +Ia\\.$\KB$: jEy A 1(Hl|3C RSA"Y4 +9|ZV\\J24Ӏ!S֯S)Xd" m=|C' `Xo9DJPur1(3(D(5ceTQ*5cC)x|UCCè"B^6 Z3 i0 "|: +>σ FgCh +HKI"dA((k*S+0HP +p]_$*& y`c2>02EfUD$$Q``\@Á +S&6dA-F +I!9W"n\V% DJx i[& O.2 I%"4 i;!LZ ˄b;!LL% &k_lLL *&(Y&.&00T"F3,lN ň +gvRtv.8¸T ڹ`0ْlx +YRt`0Ӓ`IHE}Af%CdOll4.B0J%{jB R Fbqaqaq;!)zbAN0* +6߱+U"b7_ 6کP\P\P\\. sQCS)"L`CD d"@ɭL& CE  qAV"Ѐyo,B̃q0C8h@`;`X!)P}`cii0#QA =8 #e`#\fdXS<ď 4`D,JUǁq!Qɰ$.B RӊSiH8Cx,(.3*2 > ZHVpB.„((X8DƆTT@pZY" A4+ RQW"`>e*NSƳyN)+YAJQ"4q.``*0o|,6> \fD(x. "`| +Ǡ|V"#9JDQZ҄ h0m0T<]t6)e_B`&B"=!*"JqIH@1pJDRSW@`&JƎ* @JD`M7)e] 6BB ÓB>vT+@@nr@.0=Z!Z( ]HS]\Ѷ"&A  -on 1VH¸KQYsw8K==MIa'(}K+Fm` rذ%1c]Okڧ3a-]QXBq[BZ?S:Y+t4 ۍ"PSLgTQ.0ƾ_D# -ŠDtHZ]%*S&4Z'ሦ$+2bS^SI.K sf6 ^rmlRJlM«fÀG`1YvwaAp&ef5 %At)eP)[ Z= -/Wd῜5NDϺw@ܾa:5A|& &$NQMipZY8  ޿S[]|b,-:3-ibHF) $[901U-b:4nv+fed\SJς0iduMc|\m-s pThKI/៳dʁۼ(Uosr˽dmQĽtpDd`Hl_CWCE6gS^<HͨCb}`v`/z4dRWw0N0Я-gT8a!D f 4A 浜Ā"ٿux`;!y0"`S`fv"+ϱ8&ʫQI*6P#Z`eA"O& di蚝Lk4lcH -C e刂 o6a[C:xvGt)0^rE٠\I"|a#WIuhs5^Ú\@%H+ɸ4Pt7JZQ$F9 ]LP'/:d|%Y%nwqDd)Ŵ{u3V0bcr3QA;@$R5V7?Y\&B ~DyAoIS=#ȫph<]m'yg9HbuٮP2}[rpf/j6&F7DS"@x=`W{\S ~&6}Бh5F%0lt2gr}gXZIMSeHy}xQQ|N&sܭ˱B*4 -?vFH^,$>gVz!Cu 'j]m*bTߝ$h`ܟ=oTYfEդi{Fy?MEx*:,oV Rf%׫a0B=]oluo4:N3Em,lZH E’zS؏-[=-8.֙--Q. 6g94r1=Cn-dTOHiEdॠ$._YwՁ̪Za3zfL#(Uh۴xԓEH8U KVQ(3!$8stfH* rw᠝ L4~]? pS)rOTU uS9g5>ԋRpSWQ-Ni%djoRAIjbfȬe)d#o7퐫C nqk+veH2v;qdv11.w,7%.L]^.䍷^$21?9moOUt1ztGL^(N>n%l~ޢtOOA)*[$QTy7\xn P%7\5. Rtnk3y5E z]o]o$[yz캊qXfKg$V~Csv5}u?,WO\ N^@DͦBm)q{ȱќV`vNxڗ!S_=I- cf1M?M9B̳xZrXОC1wwBtn%ޔqO}@?X'"4h6g8!x%\Z %u&qA.ڷ$v灸w9]=7F]Brc#}I@ F6ZETEvvF%qg0hd# ;| Ẃ-|%"e3\^琢X 9ؠ6m+uZU' 8) )>/ pCfTn2g_ -1R%4# V>m.r͠M֑cș}\%%%@-}zB -.vBkj '(zZ_s ]VS -oW]qsn\ct9)x8n[ p$icHZ8itrzS+n cקY]{Pp?4oXE܌QIfxK͝)tR8IJ헖^Yw:Zn rAG̷d02!%A5S}fd㤱ֿ4/|?y`Pgiɴ3]ԔMR""M-tE#"w/jQ]!Y-u"lM@TGG/NּY6t{o% NHE=5ӎ[ᄒy j] jq4j`e]jt͖G fAGDѕI׷}\L~MrCz#kXfMR>km;&kJ]d4<+({H;rIDBڿeAd -|6[^k4qn\1O\J*ƀM-:1B9 31tb! -j]=6L?۾Ƞ%bT&G,8*OGs9u xLJ3;4j.Xtr#"Ꝗ_BvT6tHn0CRS4Kh/ - IHvjH\YA1FKpC-F+cQ1)U7{  ge _(}'3PK>' PYOG%HÎ@B*r`p8c1&w*y'}ueåPYYR\b9!ls#sa2kԖ\VRM?5 Q6kȹxZ(C\jBzp _ˎD^?]7zp󟊲#KIvJtriD\R0G[U%8M{BhgotQ_O7P jZn4|gH mO{jin/Bޛ)[KšB4'.WnI?4 `Hlj@-`@F|cŇ:x4~5H- a[] rJ9.T`LbeLRTGP -lQS? ӗPC@jSA<[TLߺ"DYS^4C]l* D/h6;Oe M}E=(iS8jnslGvs4KKX6֎n.GZ' #SIĻ" +UOUqnw3^iPtS=}U9{v ;Ed|!V)˱ˡ+F 0LԶB"{"JBprMd:EJq7p ˇٖ.7^' -O|/z#ﰩ1NXݫ9dP9 X/c,Gpؽy^v7#A)Zg^' @[5 ;"r}0=wc "DpSmy&7+m[< BVTAE-11EMUNF:Ӕr!aUlUPST$>qazj3iB܋f&m@Bho3wߧDS:ȇjU~ǮZ}d Þw @OdN4S4̗7Qe/4INqM]eѐXnjKFk)2W =ˮQQW|bpL|FZI *N1{+?W -w/RTMcO!]ݟWc(W T_M%p+eu$]4|sDz" 0WFujy?"L:WŊirO fBL,G(ih' 3 kO )wȀ+khu_-QCcYkD*ӊm.g6Lג +^{/eIi=,D$;9PLM<3.~F ]M -Y?Mh I6?ov-;xL:y˞s)x`& 0=障rl8RŽD'DQKl}~Újޅ\ -LX' ^RjׅOtpd-Y9 2ġswzxr~⫪%tXB2Y-΅\5?R-$Q%#N_; n'BȌ!Q뵏+?VԵ0{FJ2=[%_m;eWt-xgSB3Ȇ/ -epϰAF;ɗ_nmi߬GBԘ@ J4&p]Q3Mwɤ\|}+ݻ5 #» &q#<7H_t^ xL#v Z8 !eI K0aXˆ sT,(✖_KZ\.8Z 'eh'UMRb0/^~Ưk.Hdi-caR`Q[ <0ON$`VhU=x@+kk1N=Yɒ$5Q $FQPaBiWfxN`o(;˸*оw2 0;l ls-Ϗ\u" ϊbq,Mk,/, @k^YHO|3f=o†OI2k6ms\ԫ䣗ְ۟ǪC[ -,)bR 4~`Q.ڊ.*ow7Ѭ ca*k+c$7ct Jo</3 Y?nl*ZQtrs#$S7T5bzs$6R߱,V &m!s[ g=A`p$ňk$lnf8w zO(c/A.l&sa,US9R:%v&'ݥoVcͽĖj_bD=< oirCѱ\ 9GL>ʀ8SSo։6&j&!'H>U /b x /+"eS˨혚6،9W\zϫkI:`J7VD@XYﴍ ?8k;&KdQ $i7\Wp-X^ 8`tcm_Qz1~k[(,X ~%&B.iDKW̐+alwl8MimWoj? G|4| 9ړg]%cb=ܕ\(a[+&.ErɵH2"'"D&9R'SQf(ځ73wd j) 9O HaO: D#lN_ЫfjpDk CUl>#qXdH 0JEvo`X >ȱDž4l >}IFy{D!'-k=Iy ~~Z `vFA5b/R$}mca|{2 u Z2F*rḌq4aWE@ԘjϗPxB$NrZӶX!: Ka=Ci]k>i.ڕ=f ]e:lf}mIe@/ɂ'TwrȌl&љZOBAR5Z@tiڔ*'i%d޶e^*Wىض珸[D< xmA ĿLF"-pʁ\ -՚@EGE2z9\|bN -1VcI(@5&@W`1rЁsO$ -l>2]YXqp_L%$7KQZJ#b4X-x`ɿ6" _(2SfLTCt|*C{{h2B~{ȏf'N܏Ce ߯F[/Pv쵂 )/x9\:*YE#XRv|$Ƀl`xʴ &%8EXr2agA 32hfs]Y:t4=Pf s"x; ,hQZ)Q>J)w=E=='r|?qoܥ.uޗPE(A]gp,Rc3k@F|c!|2Y7u8ɺQ4o> "C`faUV Ah++!0r菁Ǐ٣?r-<o-<![|:"NBʊ -C1fO*=җIw ;l՘ȧM}!8鄎7>0>Bt|/ -53A!yh2}f&AEt>z&Y(+PC`zމ܀ifgKv2rC|"(pIr52Ų5*k6YPi!iE x"ǹl@-q"a؀/Ɋ!hN$N9F -8ɠr))\` r)rDqûxġ %r;m I@ފ [Q2@4Np&2j,ke%Ӊ=dtnmI_!mekUp|6yWζ3W,ǕST{N r(N Ӷ= R1$˨iY+B7WgvGآn$6B([J_i N"Cǵ:m (Q~@v?so! "^UX!{(Nz4;m.++2BJF394?qPlf!&rç;St:˼iI^N@sN*0xm/ςe0r L8<KR0MWuoYB\D)Ai ilcYc-0/L̀y#p !N ^H$נʈK$3HZ6'Ciaa٦ -^@9%#0W>L˒m9,t%&|l 5E\ĄcN2a+Bmp7?łc)@& ؋ޓ}Fދdi'QuږF7SK * H@r^7;4d 4XmmqN&BpvSNHo;m 3v :mPi+Ϛ!6zs &a,M!8iYjf&viH$8~ |mc\b\$aW3dhZ3=ДjKq63im}ilK*!HF+N"? 0*-Ln'.䧪2mQS-(v'OSs/DHeԴx<@{r[J7mؔ%o >+b0(@.(\Ya+b1zNhvi[m?ިH3gmCR^(_RN^q|Ӓ&r|mVu73i[ vB!B2'%'`TiH&{:1"dFAiuǃҲ+BTk;${PDl|ӶUm ,r 찁B0on/WoH:z}4X-3#i+Iuoi[aqH~q!~W.9àriBn(>Op,D u`PGkKqIAiLdMRȁserK:m==*O6Z숵BCA*Fcs@MYFɂ)^ ɟâ1ہ;+W1sE1Le;#_0"d ?n#F`W ɕ6v.2!uF@L,:ߥ#Ғv=cȎ=+#,mpan '^#4G92M34G~Wy/dm,J{$NĐ $yHGI|Wp/d>AJ;m 84bqh d{DyZv`b!_vXTC8#74@MHɂ_tF Hh!<  abwkњW ۞] -C`Q=3 -/Osw2 ޶Rf\C2Hɂ -dAq 23Z&F/AYPeנ`n^0ǀA ,h9y0"0>=Dk" 2Ί 7A\PZ&2Ypd$J -1b"<B^gGqM$8 '3 c"]lF^rBo'*B2-92Y0me(2C2̂&dKCb.@#aDs2LQ{C3@+$=%SO×&7*c{)Y|,_T`WpM9Z*G럞)WQ?_Ǟ_T-nW{7%Z޷LfGVO*#WS5E}hzwnft'?=N.'?h9,}MSoe=Z(罟<=*g%7~ -z7{^%&'pQr^rsWeϻy/U~TEpuE]*ӫ^w};OySfOzmػ*શ ZU}WELy:rw9jvӄtQf(P/ -S=U2RbKL^eO4Kvӛ/o~ATuޣ^vA7{fZ{m$E:uՋ:/vQ@s~rzMzQ~ 4Eɽncr~ve9/i$sEv5\/yr/P}i)@ ЮvWS9\նSԣi&/zTfOsrY^J |'?)(Moz*Km3)(ϯm&n~?y5YңyhY~gY2K:H}jHJ\g/ zL_WLҀxtߧ%suE\$ eY#i497/MmkqfŮZum%Sfkֶ+u^ؚ$' 4qbunNh0ihR хJ]e%IsYW,s8@/3깓 =. eP]@bǾA8< N K{+(H3ް#dj;m#L 5b -,eyW8NZD2R( -tMV݉i5\q]^ggɆG8#¶gdIMm(|>I_L2`'2wf! t5QBU -̲5Aa˂+ JC#X7ʣMF4?&+8 ov(cH|W,v@BDicv&oOaC@.H<"aQ:hQ(BzM}!HUxϻTViߤ1j}q -݇`/;lr#gHֵffLh`,eS<2R2<"& cqP`b0IIfVc$?bL &T;CZa\1vQ_@HOݏY㬘u?_b+㦪)yV%@%E.N{ZS>\_e"dtfBd\"rl -(Ct.x"6:e"mrᙟo )CEQ]l:X3d~s!Vv`vB^ԦQ2;9\)W*m5jOC)j mBŷC|HgRwqX\J4zulF\+my T Z$-[hk2PX4ZZ` aZ{1_L9u:}8> tȹibSuuܝ|R+AXTjIvq9\=b%6,;uen á_Y2. ЯڧDU}tza8;B5A:7{suL@ru汋*S gJ\WF06zܚOn5ph9Dko"EΈx+35Y1Mڜ_M0΀ U\MC,zq>`7TbrDðoS; 7_S+~]wE/U)ehi ^cpی&P0R$\Sno՗[HpC hP= @qлSA֩c{(U0BjCnK;|pD`&4U?ewVu\EwuDW*◨=ɪ~|v̓] -n {S8C9VYdrXJ`+ׂ._mOp -Hp 4b ~HbJ}ˬst7:.n3:}Q˼`!8IU !\^3|狾 q:9 m-u(TCk7h- -n.%Js'&z..Fja\ -_˗2UAH]mJVPSjm.΂F\:Ow%Y`LשۺL0. \K7raJ;Ğ󑙹2RˉzEM_2 C^,5z” q1~n5I-Bg%p/cPk ٫Y 8Y2 -Jڂ/AGi`M]ܜ;D;m!&="OM>Oj'[:VQA7!/n˅{@Avͮws_KSϵ, 2gۋkRG-2DZ~bwݨ,;lTP3Ve%8܄d6_+r22wVY - -7w[Qկ Uyb#Heeжld1K X vy7ILTz +kY2K.4N1^?TnŐňgV2(9:&Agq -Nu B w`fd'7JL6gnP>թ_b ev2kF-JkIo!+!Yf8ߝ' GvW X6xuIZ$%$ hx)kK8,f0ډ)NjGrc֫1%O!iu/׍cܲtѦ0CwUHP-T n%`ybBAb)qR -چYy7rb&Q ;[q^?R?86lK;II/xg&ԆS jBl?=%KP ml88J煮<͉rn wO[$śۀ4S֪m㌀F -mX͖F.sTG 69-+Bt7t#dJܗ**}O손ߝ@ sd2;|K{%*foʔQ5tHqFԫE N<ޥCHT6.d-`&9`YO[(3I!-lW:46NXM ]V!}qdN -!b5CU;4@ڶyVAGʼn, Er9tjH4,j$r@gT_9(̿E]Pz='_cHצ"D+oR5xT8|2|y5bjt;^M74XR6s٤T未PRQkRRxѤSӛ#CiW^1_mMfbтuVt;EAj Ǒ#C(IMwetâ>y AxK.LpN4`zm3[ qWNBU .w;6G\1rQ7,%&?E>> wlZlmS1vxLƒ/Iɍ_CCAC Jf嘐u01*#3γ-&@2Q5禥AYp̻볃{rD -=)Wv6Lh.j=!~ GQ82+!~,tt"{\[$QH]j &̹YIX<$Pv$bMM!=\tC:SL%MWmiMaTl_0lHuΫͮݪ)t|T GaoLoGjfi"jz -Sdo%!F} -"SKan#@m@!ci2װ@QI^xI[DYl@p̓PyB|i`&Z!uƼbYـVfg'fh,)2;˫UżpB jx+E-?7=aFQ?U@ļBEe)_W=D>3Cw,kWcHwwo9poٜoL픚B]QRxF a@ڡ.m3m~zZv5 -K;RAt}۬;B}Z˲c "MJMY0BC+)N'0T՗SR3}7"VR'O`]7^'>PڕwψxO?L:6* -79;#G2YQ"@4 NIE( -< ›PO(.tiA'(7x9 |jr$/+KqNhS()X3mp %ĤTq7CwDcws9,>Z6՜yf `=[x#ADΌz$짉Ux{u,Mo#b+\gY7J v`=vyW[OqM|=0CEUe3GnZBpv^zV=Ko5qfSࣹg-`SHzf|UI5$gnM͗-0+"($ۯlâMjr0t͇BHkf)\1YW$s쒞$1 p!_fG[ -,Hsm" Ƒ+'-Sr*QRZ(rowѰtq\Մ+NWyp `HJb5.3|^YTR\A;"Gj(suJNr'aPޮ+ٓQK,4HxlɊS+q+ڮ*Y"ʋVsɹ.9ނ41zi0d%ePMVKh-i.6"u "jr -le2Mw"D|%]I4ģ(qsʚ0jJ"Q=B@K5CC$εwwFV+ B3c␬RA0FwpQ[}jh8@|L@Gϟ u뜢)Lb]Bt,:JX ԑڐf-^<0py;Bm-ǡoX^85˛Ohvg83E0RU":R$E}<jZk=^{#r X/ :–HW)HDcqD 1(ೌyڋF JArd^*DIf "Beޠ v ULԣ iv wT/FW:lp\!ʽ@ "yǕkgawIʵK8"r\~IS=.ٵΚ.w\ޡ 4!*@]+̩b)XFF5P2؍4naMrgQ!'UƦ/0kK>>k=PQnLP߱A'^냃 G*ඳKG4i%fR)o:";N4j[E)$4B`td6nNAzw1-π5)sz<$M^A,Q G@^w^0BEimme}& PL*C&L-S=*,>fB5ʨcG=q ?>ּl`(F(]A8ʝoiPV9bvꇲ&W d91DTm+Q=wQ -9:W)M`s6E٫ -]Vqm EzD R[G#=sn4/>RܽҦ&WMmr#ȼcԨA#x|—ǒeR Kl1CMRE#?g)q} q {'/*HU[Aul[@imͷW5-yϖ)?ۄ<Ձq/-8s/I^:>j$_FuX*@4S?ҧ.hkRWTs!!L[ɹ=ANf7nd;bApOIZDY~ Ȫ,Ah9<`J 0^mx1 -s*XSU!(,DcJ47DZ8<&A7`5{(߲S{r9CK-rHN/ -35FÎф $)٩n0pȷ-E4'Ju>;o}W~ȃ#=ŘvV:<9^JC1DV~ZmEJ@ݱ%uIYS=pYѣj(~_m9q_IJĐ$V`Y%F$-LM 꿻 -=>#-F)C|b{U(j* lÖm.R@kdbU 0W#+-USV xCw #+FZ'~ b-،Lu /?kKԌ- \+xي[x"#$;R&- $ikE?(~M[N09#rآtɿW,ԽӐ58SYΔwylHógtT :gP&s_tKr hWHǦm$F71g;&= ^ ϰJQ!? <|KٰďXt,tBO6UA\D0qvV5;@ S3ؙ*n9qZ :@E_]Ð}%&on/XCΉX|_ rҒ`"P+aV X'YՈ2> v2AHyRҺ֟dmJ9ݞ:[jwG"ĺ.ӿcJ {&xTg'h@& K@vGo\cB@ww%)a)C@R'm-҅SMve' - }~?gEV6awzCG! q!DU -9].iukӍgw ,;c#iIܱ b-%~P9SV{,.Ӗ`t?Fey{g21%]+cmTWMnrD;o9^)>LоȨPӌF7lb:mBBݤĥWtIUbOi]6;Ǭ}\T+ЊoFک+ymHߨ .|(5WIYM͂kʄ6]Ehl1 ͼ/eFpxsZAKKŁP{~xiZ(bJC(vTum)QS!g 8pFn*e 7\\ِ - G;8ZJ2dxf&¿2Rf6JhZ@d>[hbK ak< o[é~hM8~#M]+ʹF`*o5&PĞSRk3B[U n{4nkā:JqV'XhP!y{.KPBGS)bt8"*Y {i ꪍ1WآsqA e*JR?lA][{v[OfE2(A)_qzf)ƱWeHX`?M3K18S1oWXWWOQ6m-QO7,M!dN >;P]vkrC0E@ii[a镙O=Ţ,z}*?&%_T=/h݇Q֗nvON~J.s(n*l-eN(÷"grԻ?n<>kGX6$?>O!Y=Su0 '>?%ĸNfiIBϋAc>IR( 1rQG=zCMgI؍9%0ߟbCN1;L3#`>*1jN -8X13 )DOya q9z#$c?6H!^H/bn!nAj'#'L$q ~ ·{:F!焨}W e;yp9d$SRA78L r3m?ć#4HC!3T٢U-m|ɴzZ=eFMn +9/D೶-e2--;rkW\h}3jy>e9E%'6t9ٰ\ȹΨkv"x $=w*\ת9'IW(YX}X+ހ?_'@0\èE68PL6>9GJI86pYD(Ê8 \*~(Bw~Ӳڕ@qO6fE@:N!b*Ä$w J-u +Y=3] ]`F(Ԡ-.>W}-W8фY͠ #b/C8J4F- -_o9n)ۂLq>1(#LƔԂ7a.P0h1gyҨs"t 誷RI|>g0L :?53t4mLj3&H`LY"WmG1h`3H -HEzЛig=ɢW6e;>1y@c;{cG$ L%g*\Zf36t xr2|4& /x m -BLgE3p$ɕХG{K!"pˮCsw2`ss;dsDdr%M,e:ޙHEsz"('haQl}g9> aK 3Uuiš@bNOh ^&laޮ5y%ӗ6qHXn#=л$.QFUkҸg.&FGF<1@țUi6Zx2?цN} TngZ2o|`6XsQ' 4xX@F.cЂ`)D)*.}jq-`I}oS1Ct%OYfHY{:nlAmll٘,ɰ:Kg - }dk@V~E:dd퍍a43l S 9#ǜCD2XHx{ ĸ\L!Z/+VBL娂^T7oxCG2/ZƯp29%Kj$),2a,# k8>,;1s@?朵d| z5~ -wХNYg__Y\L*7R&3@Ł@A~7Q_<,`~W[@ T lFs^KAl~ᝡDךfϷU,̌غ -Iph/ #\#gY^7.C!.J?i mUŠXR;%3p ]WKإ - Ŝɺ0/kB2#$x@ w>}X#(sR -` p0qV|lu>^ L.xM' y :N~yoQUnz D|H.3Xx '6?7RS;"1@0 @|fjRȈ )Tjr>M6Ǿ!2 Z!!lF(0/ƴMC iB$kfHVFDJ?ouי)m2^FYi''̺; -oTrLv#X A/!J֒[GUT\Edo FG<@S8B#oq†0C/'2!f'7MH;+֪z4!C$ϒh!CE*ױhTbaiFoͫC6;1lRDT˷ˍ UPZdw,.n/{o~ -+uHsxEsP*)/#4C9)@A H(Z$RK*h%N}?#4"Zu`:ѕC7;e'Y,_6t+ՇȪ2)Mb"8 %u "ĆT-*#O@@ LL `@t%wp͎JO\lf) τ=fvG6p)֌{TKQ#1)i^x؋Ȥp}8` mkƖZ -GHX!>DPA@0l5FlE8зf \*5冰dW&A 3X\ԓ^ g~Zb4.BP4a(a4lQ3 -[:o[% .w*9kŽݐHZrx%N%k*BH9rGQ!ž%P(ifzn!IQeѧѵ?Y%w}VkQ_wT+gĮ|%yY[Wd=QeUfo02bR+p\a<s.^RzSɐ%Ur"5'z -^Y0l+SL"S&5GvH%crrAHVV4Po\yn %buEEFP9j$w)Y ת:Qt+K >?rF&=-in #(й'hE wcAw ?h)l{HYJYJ^VJEnbUS$$иRo*'[:x>h5 &(*vɋ(x[OPxU4KbމbΰuI1,'kjD[gBaV,fnΊ9L BH*gV8c8{yGE8.P1Z!ڿ{hPIĻOg"V+ۘ09ݳDR,[2LY¯LG!mx+(+ƒUXs-e3Y [1@d5St`؜b [IV2 i/6)Y҅M޷E6uٴŲН-8iŝ)Q9Zy g6fD9F^i:$+[;NJykiJOwTc ed"X4+%VA0%O -)R&D1vN-쁶TU)%9(t"|}8#e,{%{N%ř&8&I>KHB -3U5 EDHRpÑ*?Eˢ3wp2)%wu:MׂI+*6"r&|(Vu!<#;B8(v9Yh ")IZgD"M[y>~9QFϢ -Is\3Zh.A 7KTeR?D!זCjaIC>MHmo]$m؀fЫLN!J }A9EpYK1M\M..J}%ͧ.\j)F 1E 'EZBf{d'Ԓ.tɀXQ%:KEšzN\a5X@0RՁ,eX1&XURL@1mU0]UUk -W ؄ ఇhWBDw/k>uA,RfɿqxHspUJ!In9BH\š^ -j-[B'g,b|4DoE8_Y\*,O;er\;U{:tȔ"#5WtѢ岂p*Kdc`IM{hz%?ROyuW]9SuTxA1Qm5l*b*lVOl#l'VWS?֢𥶈Y:28NE]0ۮϛx"R"H-f$[`T&$|NW$,+*O[IP]W:|/IO˫[-}ǂ] ͸# i6EPCuӔgmUd]۸qoVha?y)5;Q:}C,•dt0ΠPO ݭM/,4Ub,S!,HҞoƝS-B:uѽoE)UV4@HOVHFO }T^O|\eNBV(]sXjä_"AV^b̖/E#Nq|-L+%Qn1]PEei*Em_G^-L?i=%!`Ŗ+S懜d t(Ҍ6.W֋РzQRhp1K/#hfC3.||m`g7u jxfO1Cl 1ud@Ym1_( . `%LhPΑUt4EvD`b[47?=QdbAˉ&iRә QnϸhK:}ދ6dF)(JצkuMÕ^J9"55KQzLhS' AhJr>_m/MJq~((tH dcz:B7ڢh*$;Ih^HDU%If7aQf `r&)cI1 ۳@՟kˆt@0t7^=*k ~:yM\q)u5rCcVU!|hKf["xF_M6G>iv!oa˘}*iX h<94JF<_ї5)$KŐ -.DF$#_i:@%J7Hzdͤ6u\1z -㩢v30W(+sne''5WOz|dwjm^~ޔ8Һ&}05C#ЀK75m.>2%}\D`򉁦9ErO\h7DEtͻ Q\^$fSwX'H)g"F_B9K>ZŘ ?nu/by/@՚A@TQq&̢ k-4tGuP\-2V!ɐC ^vO׷(|l^J TZ?wR1Ӡ(h2L_!9E!À[`nuNU">k؃̔#mr+.b!]~>.5mZh+g tZgjh*w6x@g`oeS^}gE7+ilgPqO꠆9X |F.ti m*BUY,T蛻ӶFl#bXp `Fe%K[vcT`/^\=x1;q4_7:49 }E#b y -`8)k=߷wJmR|7\ة;YgD_ҧg F(rFe!t7*D4C-$Ex'1O[DqAg_KZxg箜3;_zQH Wwdz^3# tN0mZFZ:jZΚI=(,=lNs]Ei9ai3Uvd|d_5bM9\BN/mg5gcSkTh>셫ΫMQ <&C(1 =|.al-)HҞ}4W8h^hCe1Suk'1E=G e}"yMw@nV= F9b4H@%HNK=rUD %Je}?*sI1wy԰ ]{3<\JĖ9t_UVA Me_{a(G7lxy"]xR -JgX _z@rAr)r] #&FMǁv¸2@iiA-ֺh#)}h1#Dvμ_+sv;}a{'s6d햮(]T-p#^nHiU ̃V6ujSKGu|J_/.o$F*Ԉ3?G4yHy , piJڿP/) -ȚkNGD4i{[Xz/[OફKOW²Bb_]l@: b @fpEzrrZu}\FDr?޹s^Δi~5D\gFYF٩Y9M R-5LטtS QqW -,H% *y9ΌJ ..7%scx$I'-AIZ2Mg_OI߲Tgb^i呯KƉ9OM -ثEٓ_]h(_Δ#" ۿp~Pd>g9KL6;ZXy'ӭΪ<79yw} $lZ.&Wre}O9 |.^$rQREX5#21#/OzN*o0VS0;gitW֏bĊ, L. e'vtŀnrv!\]kƶoT>_-5}* rXVNV\t?JPǠpϋ.{NG!nB- *R?.ha""D)\G*Çv{pA2T8xCq;7ꪹ*7f23Dt+F A]8(H0}5mW=J= -klR V#HE"r,8䁕[ v وwl3B -`q` - 'J*Ծ6`Tkģz c tBҡ9UzǗӒ^h+5)\蟢"tAj;0KFaɎ.!@t5OքticiAo|@N`uvςsW˩ J" \"y5 -:m;!IG?ڠg6ߥtURY҇c"NԛNa{Nv-K UufMU8F ]!ކcPl ԏ;~J|jWS.ͦEn>weE)$VL ad$˶jOĂj CI}uF%jZrjBظuoIO-[7(x.8==684v.g[9:c :#͝NANy -T6)ڇt/:tPg5uကGB5;8B-a!XW\(К t@f%x)Mm`>Adgxa1I.k ) ub# TbYhKPGZVA((YL3+[r̂ .r2 h!!ƨ(^$~U`% I'qvpYѾ۾w9Ӡ՝V3]Rȟԙw5bG" dly@eվ%m-Pg!! q@J78o޴^eNo8x$@6x2edNxS*z1R>_ {q. -endstream endobj 228 0 obj [/Indexed/DeviceRGB 255 234 0 R] endobj 234 0 obj <>stream +6ʯ#$*yC~ʁ +GHh +`P)!)ab/(.3Ԙ,a!C 3hf(h "tq (Ã(@1P0XnkUDd& ~.eJM%"yPׁO dPҙ0hlB"0; F,  * :<>tTSp1*`&U.4>T„SЀV NX@B;*  " \a< OyTESTX *mJH($P`ZFA dL=Juo$HJ8κt0,ffgs𭊇,X?!bf&|"OYHh$`qMR!d@`=\A/of\#ED$sC18mL2ad(İ  9BM6DA=ȰŢN ++IHBF?Är,C+0&S%5:%X H9m8ݨ4Cf0h$$hVN*JD00#@ 00 A(CEeiU; Mv14噏oaT pѬ< !ϸ!P4Ée2lh,aƲ-Jy[v`GQ3U1 RhNA ~(@yŕ9j#-[bʞ,f(zkl8s6s;&|kpx AEt\\ ?ۊ^~}4 +by m;e!k1 I${ ")+Nxvcrse~aK?+}u`Nf[UF@Z\hHaY/{l̈́_Z95љ&G71p 3-p9f;bYY]mF[X]toZ`G?5CVq/p\EoTzMR/*なB?R2<>}ոw M".?|WB!pʠƒmW0^qIϗ<@!}4ջħPR\` UT ڢ"5566S+D`! DF#h,/gh [5} *Ԛ;k`2LsT&kʗ?B-c _?\ie>L+JxppPM ojO:b3DR)IV,b`zكƁ Q3T\wxd srcbq"-aX*ӎwܰ1(OcG( dJÛ-Z'GDj"2UtJ07kY{O2[!Q}`/1R'%in`k + J +HQ}xbK*^7穦7nX#o|݊/$i;4>vt} *~#9 +_Z +endstream endobj 287 0 obj <>stream +*XW*_J%vfewk';N agLkba~c1rрoFqLz/錍tP*XЮ@R m'|~pvTLvlcZp6kA34v8⾑\vmEUIԩ8%x'_Ŧ~|G w9,,..( 0zD H0Ň2٫!l*n>JƇ-tNsL:Z `2-xM^9  vm;z_O,[!b͙cJXby.CsH ښ1Zϝ_c>F aG0 +{ESҬ +\MєMs7]:Zm58\GoIM򃕵0%mB|L +BBv_ot +TWpu F" O"mï5H%e^Uk/XC [rys(?a< Ʉ2^9sثD\c +lx"Vߍ2TіE6cm԰6C-j]؜ S,Kj)fv2pTU|#JSA IbSuXNU_ᰢ*뺍CX%ΑCFJA̧ j_a!Ҭco#@vlŒ3Vz)"w8.wM:x#hyAP^,'q`?>E J*POh +\=ݟ%r7&s`&$ -aeWl~G|P eOɧ BN݀q8c="}vIG!/&󼳣X)U?>1tQPK~(dAukb£TWp|:*$^Z9ǒ& +8 ˈ9]TqfzwQs!:3 +b5̧=rR~A±܊a&b6*p):{s.8XסzF''8@'׵^*46ڞz8~*?!fTh Pxg)û x䃦tE&)wX0`8p֙! t7)Od4 PE7hzҝ8qӔ +1|Sy"Aq)@)P  2%Y("RwgTp5*|y B#-mzAUeͤK +Nd">pG2)_3SSO#N}5]&cdkFw9?Xf "!gI0԰9cV3W@]#a1nG?0#{DuQs]tk9>-{~W5<e"0S7 +g ['" ٖk YH E XDTN'Ђ*Q3 jcV`#+K~b` P54+'6;GȈ -qdCWd8Y&q~jhD +㪗L&JbuIgu~5VK~0XT?ȋgV%V~\,'h]LS8 p9T)NoDaŜ Ai$'wrQJ9훵A"y=Ves t)6f-[Y j6*`8H de'$JɷMPLVzULV:c%Hov_pj6!=ۥK\% #ݷO0>?2P.] w29'CM{UY{DW` ΋Q'$%w2Ԡ{ 3o`Pp,Q)DI{JuiB[G][ZRC񹕣CMpuj u~ZXѳ ~I(pTV۴+x#CPIBs[;Ϊ%򔟵6D + [! #{!M."j!`ҍ #XAk[S10a4"}1z= +a.ۈn[tSoHö)}C#70'$Σn=?_7\.$^l˘ٱltHtQE4ܨ/lHYhuގ>K7!H`bViejO:T7H!XeF$„(,ب,Lta(ؒؾ +C@ =A~[68n)k禎/jI_aޔ9_tVvozkAI{􂓄k^UR,$pLpF #v*cS nxUhػ;u1] %/h[C aٹG +m?_Ug"bEYrR>i~PA[|g fʀe}zM'C\MbJ.jOb~i@iZԪXǢVAXb_tkjJ@2Kܺ's[=acepPAÂdPCIc:5Dh1UoSs=D(ШW2cn?SX7Zap1GL~R;N3jf6Byց]ֹPzp`ow|SI DmrO.aQfvU<<%^N|]#60>@L:םL;a8DF RGd|H/`_(%^8]1ёYƴ)d`Es U&j&m_֌Ӛ]+$ +fr$!l w!Azo?&H@k<ݛ힨gX~ZCG,u[=?3ZG(W NU(9c8L\1-jd C~yCtz*&$jthJ:!>mZJd4{Z{hӭ p q a'6SɃ- +eʾ!$^DAԏKj4MK|8%H`pv6Fp2iO震hs@B4-E|~JJ׊oͣ%m(2K$rr0LbK %R,dMV%^Bo 1&wяN+|?FAddIjyUL5adaBDnvk#ghdc4L:M< $eJe8rg:gqw<δB®%:-PeK s^P_JzxTӘgM(,:Sڗ8!~-XG f.8PSڷψr|uR}oa2:v`~yo>ʟ}/\}i^:cH_IFYJQpժQ:)w7-AC)ӗN9<7Cׯs\\:{GNz'()}Fc.K }8MeW,>.Hli91TV)2mg}2 <6tiswc7b9Y![0͡,Nh<݂M֣45`@c +  )1$~6[4g4"'\fBj;e[V%H1jEjloI˲TU>8)B$Vsނ$F6rS WCeۃ|pIUZm @=' ,X"aw9t~lw([{!:Lft.gi”3QO7ZvzLF$QO9ՐӸ&Da,ikcD[cODT` }d/EGGNrWJ.gC  ;Ód!Ϋ"`ҶYӫV2k-Re' 5qg;Gc0[̛jvx9RF9Yi%AfpaA!V;:Mx5FjcgU6ݒLtܚpV}gj+ m0̳1#E|6+2mH>Y#M1Ŗ$CP) =/V, p)Db;EhӒ i{ 94A|&@S-t4xD*K:0 *`d-V+م +n!ؒVz7>IaȪ@ފw&-H} YhmFg](Q $(]s؄-Qcq5FdCt)LK+V!h`S GSXI8-a(#rj䴑OrAe[aY8%1%Li˒~0M*F8TBn(g4|JL"ѣIDS`:! M鸩 ƒz>Y0/C&`Xu(6vFO936J^!6D[+mDm`ez/EX)%–jiJGNIň0nfZ'YlY +tG|Z FnC{`̴v4"#Z"(N,H-Tf+|וa&ZEr'648LJ}ܬ?pU$`XmO=K HRe[P "HwO\, 7俬NRQ]L`b>N4^ +NcxLŴͰP91xۂNb<ʄZ5u{rրI |>2zt'x"1m;]DW +W8 B/-W4DLH!麛be&ÂfJ"K@^1<cV=$LѯcA֠8^,i +ŨY ~#L8Aw "T pw# @Z̅c @Jr-{K\oe긶d o sf 綰07r&F9qɣnJѡgypfšPuX Ŕ*)d|Cu({ZƻΞ iZ1۝CGFKq=,P$ۙŇ]iV̡RIqW7ђutlvؼ=1, qxK]T~չhv{N7%9Ӧ9 [):*kX&tjڭ+:Ii +MJkY$tֶ=_kݦ(Ir+JXg]~iZ"=7h5P+ eBĵQJi؍0])? +F R_TP~F[d"Tz«?ubSP)DP!gܥ*8l]ez) TR)*}|<ύis@XtTpZӗQXsK'˕1bv/EF05ot#^z+N#G{^Awk|pbڴoL0M'ZKsxpqՋe,_ 2liHcʉNēVyw`g 9T)'dges݃e l}}UDMW0hk..L JEB!0={K`v1^}ۓ\qbMͩh⎱4pQK*ܖJVytWl>R!WU + R1ѫg9No6yj!:̀.Tab .8M0.Fb.]^U +kTG Rl7Fpբku l2dg$SqXKoƀ@1nO Zh!ES?;p\hvm;pn{ke]վӺӞ~`Fh~j<(#ޣNMvJN!Pi"܃tC6^{*Vtɍ+ ;z8C]^ȃ7a t怴7ϖu=1֩lǴ'Yi<vdGr})|Q Hƌr樐JuT W|e @;FB.]F6 +e1&xld|$]lmqDz~gs4/|0YJHfR4ns:6k&"-bPE:.%UL>)i-L:E3rA#Jত`p n၅ZxJ4LDv$ޝpHWm fȴ>OtALJO +u6~ Hkʺa\#ǾFL< KL¡$=,?؋!oy4O_͵/a˖L >%LsfgqOY^ՑCИE:wj;"*U<ͨ./:!#V"VdǞKxcEdS^X?NS^G -@^eʎ}Vx X~ :Je#^찠(0 %Ta~vᫌj)o5@M +YO;>k-l6 .0}04Pmhp$PgY$( BJm h-*V~8 +&Rq]`r5JB )@PsAVx-X\= YЇW)6(`3y*vP3?rZoP +ClLw&pRRB{ +?6rʃr:0-cpUy<{u *=,`qSQ9)1Q66w[+D %x~gD5: =zscS+R U[À]aO5"!=z3sX8$ nMb+?xsN ~T iaIl~d4-QCCTn) B渢7!cp)ka(RU;sL|Oj+i#Ȏc'_ֿO@V>k^XXw Cb'qpG2"B3 +Uti%f#Q7%tU~.i8dv`qQ-ベq{@X)Ga@%e5`7zv fE!L8xL=JO;f-b&BF +n;eת\fdTh`lrH; sX̂Uw8eb9]8֜M:YBmE C )ďa;FTyb>ذ'=@!:?ˬsž ^{)"8@_@۲#OBsFlp%$5Z !h +4xj}-MZ/Dam +gP'9v~.Mkj\i(8$$x@RB_Gw8fh FQbɿ !MyZTd Wwgd?tsV9%UaK@^MFg%z_%mxI@VA?E0ŠXhoAMARāu 0hDoKwXSx@ +͵plSDU[-SDyfLۻ]Ǥ:0>㎺uYguyJn}iySRlQdg<2h"2GۮTOhc+7ڑ'ׄAdgw~w7  '܊ɍxϟx 'DLZ#TV50nj Q9k,FFM6[ԅ3'DHwteylďN3c~x9pg-62 3Y"cEw?b5n'ָA?9p -,JLEަ'|(wYL`IkXK +9w~ uo +q+!G9#iLc-3!s3GQ Ր͇d1DŴ2A;91ALjmaD t c+A;:ε.30Ixs>a+efu~F(3$;,8:| Ɨm7c/BЇJGeUZER!= S-$4ӗL;(z$t98c 32cgUߐ/ U})%>3qR$K]/֟S.]2kq (e-mjCxJVo> ܝeZ5WO]F ""uն>'mٞ侜F!WfT +'ȴNzgNHq6}5FTޤ,}%ݶA,l}kj6DqWY GJ0%$?xsj)7fY1 a58*CH8D(Pz)pg,ݹ9<}#{ [1-m,945I2"rzBd4%B[5U 1OskfSH@])N<=-F~92/ ~82zSt0T,U: xdފ[2v\Yr]%u9ı9DHDy5YpW{hR|B=Hhk$5̳7|+Gw6EKx\990_Zov +1ԅ-+h'd~t7R%2ȹJ%ɑC3ó*Am$7I9Й9Ktٜc5:Ꭶ!dt*aĜ8uHo }"{f05iBTܴA3h@q+,Z*À3(!G1{BPxl˧:4 rͅx_ w01Vb&6z&h =T1U">|a%Cd4O﨧rЙk9%#xѺ"Ϩ|-CK:!8Af*;tPKW%-8'ԥhG2ߪF\*1Dy`FRV>YM0yuOkV 0)I$X,q(Ԃi{۵RÑ@Ty.  :!@9|][5T =^a e3'ܱ鏾K`J0P\hQ 41]ܷiIV'ivAXf}eO# ("XcaER.a(> y+˥A{M3s3\>,ΘtfΨ&yL]0nƇr)ao2;[I Sf +zLe+&)}#MUB(~#L9gY@QV;t,Yc(XDqHVdG|YV kv^ayQq&@'漾Zx8Rp0HG;A_>?d`y4i"* 3Ѐ# RKH;F-`tEԄ^F9ZgawF+j9!\R]vQ BaRc"gm< +D&&2-F?' +{ ջ2Bvn oQ"G0KFa7b]#(C7rFIq[g#*5Ie LZX'$q>zϫkI:`J7VD)i)~ pĽ׀kwL$ iImC3o t9[i۽p.ھ'b\׶P8Y0^ #'JL\X!S?"ӈ!Wq6 ~bQA`A0hr'ϺK{gag+)PVL\kzeEOELsԥOmW"cPovqg $04aR& |s>0+ž2)u$G\hM; WR:e**i}@G: #O$L?.`` G}*.c[ i@|+&< 8BN.[ zH8@ፂjq%j_kIz!9NFi9d@ewCET1q +hfî΋*1՞/*H6tvmBFu){ u/.V6z:"%8|*]ȵ+{`(7`Hu?p! Nґm=_O0\7(M ji3T2< ki .Ҵ)UBOJ<ȼm,%ɽT45>mm/2qٷx +N&=EH[2)՝ᚕp5$je%s* +Ĝcb0`ǒPjMb:mSѡ"3I x٤}(dd2$#2[4KHn GiZmWE&9QQdR,x8ʒ+oޚ5p8[Ľ#>φPh@/9) ?1|HqXgu`EY7c(@ 7x'{ '? ?¹p.8;@!eC`kƇpZHg<Cu;Jr8dǸW7+(Ghv4<}{2PW-s(;XZAwEbfcHR z,̢,);IQ@d>W0Oep{~"`,9a賠Apu49_ ,R:maHRxIp(3ȀOpZtچ @̓lcqЈ( (_wWK;@A>qן7|:K"[⠋.zl85F|>qCTg>d źQd(_7z !00*+ 49{^ΐ->eOt!iteEv!3V'ł$;?q6 {;,b{H<%D>Uo I'ttHϻ0ϡ> K7s cM!LtPH./䪌DsItOfIng/ʊ5خw:7`ƯEx꙰;R݁\<H8J4m6a\LlͤZM5AdA0vHqdQq.P Hn)(6 ibDAoHc$ wEN2@d +8ł@\)Q|)qh(-HINbCB>2D!=0V>yG4)# M66-\ĻZeItbb,i9`nWH%{`Z7\'MޕD!;"qecC$6CǤ!r& GjO3n;<2jZV Y  +g;VW6ӶDkqᦽN0J0lBW_1vEi;) +6N:m &ʊLQLk #w(e+Gn@`mm,Br_IT3>;2tfײ6&Ӷ8 i˳n0(N$RwLbnUrFqe4+9ѢnmPZBZ8[qXt `3`Fa@Ӳp;15('@j2%Ft͉@vAXkr)e`,W:tt6PeN6dbr[ ]I=/BM1!#}Ӆ wFqXbq& +Be`X +*Iq@dџ"Y@wIrMT +PŽ׍oF i3Y)B$ Vi[#ɿP&!6N8Ì]N82tXi7#˱Dm4zO*&Ay"+22E#{1SϤ +EY7"L8; +fMkI`Ez-E)nbNuZYɰufa=mDF1p"i[g v|u̪`7&~8̺jO"84>n\Lڅ0dd[_ggiJQ8i=OU#Њ0rQBؒ`um_-NL;dHn KSm,JExNYɎiGdղ)&Ba,%_ 8{* +;m AʰmF& Ein~@Y`S0c%xBkk׶B‰-@bA>"Wb! ه\c4|\mLC^ T"nd80XYHL0rgzǻӘ,봭++ӶG0Jk`RzT+~D{N6Jޢ ,@AFֲ9(>+8`o/fZz%HHQ|[-! +'j5=*uW1Mx=YkV*8oMji[c8"G}~pe.'u SU権kIzG'ɩI]"2jZ{<[U _- 6lD7Rrqn~q,`0G=' pN +O4;m봭ӶoT3f L6Z {j)/BMy]'/NiA6X+:m㛙Rd;fp!TjȎ0L $=aW2D[Ӡp:Gi! 5=(v" yC6i۪ӶGł Bvb!?777$>KDHm˴wȤ:ms7ﴭPа8$? mc+rهaP9ˁt4!JD8[@? 0KN~`q른$ՠN&2&)@ȹR%r ܞ'mdvZ~!\IX m}E1`~w 9 𦎀a`dSzxC ipaј +"2KB`ن +#T0uj+m|ȉBh;P]N:# &[vefR@ziI1dǞWֶ_T0I~/͑i##ڏh?ܫCo6F%=K@dmbHv<$NB?$@82np y^a\}t184g5A?R wFa񊽌"t}-}; 0\nE1ٌ`ѐ +;, !]rZA~A&$Dd/Ad$4z0|1;hͫm.!kf羽W᧹;xowh)3.nQdAr]b8nz]FFFyrY֠,Qh(kjJ7{/Krc@ PDG4Ϝ< hsq5\gE P-,8z2{% v1a|!G3#8&rUdLwLki .o6#/ [m9!ϷYBF[!c,2Go[~efAd%h1w[N[ OGE09@™UVr +X + )XKZROE>H}̰HF4̀C1y{Cˆf@!{h)|`48)KM ~̊c|b\U!v3&DI(iWs?rjOSMϲM{]Ŏw= z 5\O~3ErY),{,Q{?yzyUKy/{ne'/KMO})N,y@炯 +W.w^^jzEpuE]*zz`{ի^zSTӁzQ.શ ZU}WELy:r7Qw3iM(*"* +PTLAjEz[^RlieY=9罥zUUMK_{=O(/?ϔX܏]{{=OrTw/ +_媚~˞i~՗>7O_K/G{살.HoTUʹ,^HKNEEG{:Euh]z T/H?G9'GU ^k+HS܋߫9ֽ(gXȻHR??Ѯ{= . wUO}wTMKE4_v}L(84G9Wԧ>oym3y}z˟#=UYSܣ(ҮmO~ +JozӛfjUf*KA)RP_L7Q/ +ӟҗsD{,[3, d?8o:u<<$aDcfgq;9wE.b$+L6/; L8*{aat6 YH+;DB#E3>- "dZITugzKi}MZ'}Q1 æ/6fffDH`,eS<6R2<"&bP`((Ba"1줢j`P)`/o3ARf,mmA Ɏ qژ& VUa @WXռRVڷ^ԄS?OgIc>b2?;˻VAe߲{wnN&3<_VaTH3/l+5dIMܖ/ٜ#1-X;?W +dp'Q!>bFv @< +D;3@$rK$7PSkƺ +*'c=fͿݍ&1faG6$Hn?&͋xEo'څXl&C@[ҕhp߄ iXFW($?W s?r[!ЖW{}! fg<@PIpG=,:z5HމeA[!׫}o"V1@yOB#7TK5@Ӂ9 9>YlLIJBH@"Uڀp9:,ҥKTΌV[|X`躥3{ny~׎y +-& ú"t P5p[#&;/&a2@+\Ef]_fOi,8iPw%9k=;[YD 4V.CkEOW6ZۂYGjp-kO:Mx4Wsnj=XFJ +j> vV8 힘5J6(=pQ,Kϊ[ ?P&3jꩦz/I!JT!sӡrT\~ӈcӤ.,>r'B ,謧cP0d5U+ +Vs&MܛD^Imr~`3<Yahֽ?d037>Lq{1k~+z{*DS~Yʨe$D:ĪnDzI~L`ڢU Tk;0@;E8F ½qPw1ѣQp! mgOk<ڙj~ $;Xl3Kg-'4c"6) wq\-ŬJUgVp1?oӆ:䠪8QWE w3d}8u@Q>:$Vp* Ï] +8`,/-)3Fۚ*aV{8˳RN2A4z_I)މȋu+T$!:2kbFb4w5+-:>7G4)LyuPstRbf?ֲB;LlAnR^q֦8Qn1=#vǣGE:b + +6wl4p0և3p%Z%\}:SN7KY5K\ '߰ʼnrO|in}wѕS2^]h7iރE|W.$RMU澭VSf>;(!GvV UزvXy8z՘L6Mի1Z2!ΦDUS<_NEcTm$bbzKzvLRE|/a8lwC,N,NŕğŜ`n-XUQGW.5pn$r8~JVNT;<~Ebb9Mٜ#Pv+˞m[LȩqM3B!r5脈f.-T +ݥxE@RJx2 2(&H1,Y< Q}'r} c{z&)1GƄ <3jXzY7go˽4=[Y݌ŝJlY%Чm-1yWQ al?=gIv7Wdw3tՈ{Tѱjn?1фfn/Ù(r:MR+E~֤8gPe1˯)?].Bv,m(׺MV3%` i5u6et-7*рO+pul#ܠ ,B]:dSD"K̂wAho'^d:6=QɔI)%S|3ݜ2L:рJ3@ˊDZ'KPA{\j>,IHPb AyYgrPUё* 4BnZat %7Eu՞OS +]R\*1jpUQnّ bk+gR܎D4<?7BSIXqGUHR`U:_dȒpʁdu< l}Y,3D:<ݨC(eJ뼚ߖ@.-ku6K5H{^h7~s_?SyE܈053ݷ*ܳg +3AChn|,2>Ta9JTZzL??DTdEA2Id\ Ж!h5WjEƺ沩%]Q`oIFD. U;{AO{u@,7\pbJHBu-u;U[3zE8%͎=Ԍ21~r5qjCcs08O&3K}~]9K] +%>lMϤ``rEA|%!#+}'@He6HQY%V' eud*ޢCsfz91!N&儻T0y3ccr]^0ηQcE(6N(xtclM%`*&,Y'ehw| 4ܓ?"{AZ^e6=AsyBwb56O/dr#_%_׬boG#)-~C+e64 ?]U q|0TtBq8G}ngH-!_r g( =GopCc$ć,*ڹEsh# ۗ%ruyeUδ=m\p(zlIՑS< ح9PWW9ܕ޳_Q/7@\RG~`7jq(%WCSI3qJnY8fU䌺o$;t7U_d >bZ4YfPx\֫BkErl/miZ֋Brb+ MF#aN,DG9녢L|$::4Ϸ Q[̑5N9J"(P;(h7WN] CtU0WkE+H=ǂ><ꢑubv[&5ZƵM +Q\g'A[@TpiWxwFrKigTE_9F S*_L*S:PI92N7iBKP4÷F~T:%Hv,̱эQSmnKE ;&5"s7bJBsCNR<%lR)'ޤgRtCYv1heMWv C<ĆcuXX h!;FJCr H6ٴTҐqc (H^\6j'%Wz+I!K\o/c +N6jHh @E*QdV6CK`uu0 pOW^8UDt# ^13d}|6%g4Ԩa^l3lRЭl7ӫf/lV}~x`}gѠVD~k+YNpk_uC#"x2❦d ōJvhWGwSA|q7-ǔn ϚR4kKs7-)}F fet~wHiY(,./HZ1o~[]]Vj'`F2;MZ6>eY@?HļBye -wyk$jR3wL9VbHų&ۂ?ovʚBR]m,{Ci7<E hP-࢞nlzڰK +9ץAt};BsZF˲8_ƏJm8jaC)5i2 ,H LWFR +~u4"!ٮRO`6:M' ]Yw^JL?#my axll4v_OrGA'/:$9ӞW"!J^]Q]AȜ7-%vS1&![FW(SmIw)t"}M:G/A-vHR4W1a8xro7q%Q`6ӀN(Do@y 6h5k'VL 䗱S30P +P៸>I(U8EYuL@#]#YӠH0X]p# @2t6}c* -Bq,@ۄpcYm4^G9DT0DqBCmySnfؤKWq[»] x,PVswP<ԻG;duS !;,Hޱݴ P$7$͑w~cQd8fKjzZ:\)k;VOaWJBrI=@B맖PV6,@3?Isۘ(0{M-$ X`=#\+; \mCnK ?L"c(9:^I|)EPy۠Eb"f?XC-̳rkw>WVB*6ceǡ2 +c{_oRE@z +=*1L +Om{E + wrwmqsaǩKnqŎHP/':s^84;oo;g0mel=j^#P9\q he?(MSAإ(Z,e;b r"zOVkh j8t&ouX;ff7!P@~g0+pb6pԺX"CLUVc;ET!4^ <(}f^C! a"g[ҩYzex@W%Zh[$]Pgϊj05*dx5W +_GE*wG"Nਔ7Q/Q)m5xƒzR"2.jᘓt\.D܅>oϝw`1?b\W]_GuJG~R,B8Gc5V͢(A#OO[7-8d5v/ FItBTU$}2?a#b +!0Z,Ϭ=B"JD=> +"BiBT! %-#ru\(%Q)X8 6jȱ*Q$|9lݕKb;.][a&ArE5}Wk#zjJ]W4 4;r\a NDdkx|OXY@1S3T˜[SFx اGbՕ~)L#i!# %bʀ%E3D3jQm8Hc¡Z/+0i;d.|dc 2:2OAgƄQߘJj/󢾝ymyE_&/< )̳#0yM/5N# bIPx#V2튆h%C@&iEQ|NoAyvu[TPQ8L^ސQ!=ª0<˃%J\ dfʔ5qoµXsU6:7ɼ},s#CXQ5'.JɡLR ZJI^PwpRJLM&TU0lX_TeZRtA?u9YXFiTu7Rzʠ4>,\?mXsNzۤ#H($O`cjN_*Jb{W̰UT[C` +"=ܩ rFR#&k$1$ 'P:eAFvΣi@ +KS0'5ʅї/U?Z%z/هT$C몣΄NVtjj' &bb(GLIpt6|{@d?z fD=QBI'β)뙜j5?q }DdǒcUG5H(:J]WXf]DS|ʁj(Ny_]9.dH_>IpJVuK$+0Yi)H$g>-C&u]E<xCQS(x[{]>J|^X>Bx^HjbAB +y-ܳLa}.J6IYL{s1AgؔPUyIM(VyƧ]\G}$c+j9 D]r\;$&C +i_lWhaeŝ=A[ώWQ ; < ,eM-hF0CH[#h'nE\;]]kzm +]G4iUٟ +,`'7u2hSxc%, J3Ux%j?qL]V2x^GRp͎.=9--nTib+C}!c+_X[|lTOp)gK(,+j ʉ^ꎫwւ>w-@L/߸pPx{\c8H +ZkNktT:12k*Jѝ2)LC;@W{Qc-4ơ +1HPӓ4@M"5׳»?R!pyj^{C T 8%TOvHZi\$$L|И_d-ld{S`^adSYLپѬIjv'FͭT=#//=\p'pOm? 9uH8vF]Q&-0x8NP{'U&7Y.]EՖ$+џ3?iEK-nUJ5>@\tX(:h)Ǥ) XCRP>8t<;l-| +.Yg)5gk~ESuIK߃KrZ[9 yKx2a'o/#LMS2ݜ{ri־sFHx%TmY¸m Y 4h<Y|zoFw6w @PPf)<"t~B3ˍQ.h"|k> _*X;f'ą"e!UD&4y7LRM.n(QK@΢4^\ c+duKߗ? ޱq+ngegGۈF8.+ y.DIԧ t6`D;̍y^빁 X +Ihj(6 rTcMW}•ttm4R<`2H.?WyZ6 2WFMAߴw%%|G0h$퀓` 3BLv~!`l Ǭjٲi0p{GP!9:sVBF=ZۊVwFHD#j*nPUFێiQ<)Q_%4h_:AxsXt0=u +h"J<.G%Ught6A[^Alj.tͱBA$-(|0qk>NdѬKf^[8N]հ:L }ŌߡwiR*\lS0toquMncmZV*>!ǣa!;wu\-'}ðzz Tmt͝PΙT5 wqe^/IaYdz; ZtW\_~i4 AfDen!^>;ބ2Ŭ2}/5 ̀Yr*ι̺dwd]& +gu!Zf4?^!gs/w-[dKr\E1X.8x hpFRT42s%1eMA yI=C͒ba?-%U0%etϩSnbQgp|ka{ƢAPWY5vDPN;9Gm~#{K0nX6b?M( ?)<,4}F2DrȁP +OT'k[.'pgO$R@24XPdXE] nulaHo&rlY,3&(T%-@tķl >!W{Rq:A pܟ?^)ٛ@@_SqB&=CnDSJpd (϶[ʆGTq[Zd5Zr쥍I59 JPږCs_B7$4) {Az-ƤбŠIx/Rkb{!Ԯ,(ҌUY' +>uTk2g4{VTOC%\k +HKb32u CB& +Z]]I3FA|gVD>IQ=خ6Q̂2X$Ι},XQ^%X1)og?#߼ټK]V^^u䩬v.RCqy4656K&of2d8="t6u( +.$+2•?TO]V(<3t>/j;[,2u P{>>ҟ +u" -]lrxV+(FXyˎlO&tل\h1*\dMV"}+4Gv2Q*5 ݜI8B8ZֿyͰ:/M?FfXq |h[n@m@͢tp՛uo{i??IcJ6*$w$0M9l/^ID9<:S]ܟi2Z|]SބTW[R͸1d5%4\J+I]jPW,Z# !K4`>}o+_~܄N>~![ xYeۇ(Ma`DAbVB6S QfAI|S1sBaW, B}-hG,Kz_q?g/w +FQƋ^\>㪃& L -BF+tO+K^2UDYM]0ap>Q}4/ !-"+I 0dP2_SD6k%b[ 6w*LQϹfc$a3 +1H Z;(Eγ U"q|{A8 6xq 078zs^*NV v McO +`r=/ўu08 +|"$Ib 3)A#FHѠ,rj,ipsfC +`.K8XN>JLUuæTSL>IƏG%6;+:kp%.O>]lA }G׶ hУۇ$$<#<5vBPB7ЃufkoO :a '6FSJ%WL)W *"hajLt꣟5j[:1#FpLJtlM%.'Yj5F\pjvb'KkIeH K16P8Vʐ;pY"yG+ .pvwiܭt27๽2;6 +{tt mOQ:"Qw;y<GޞxDQ:Z)Rn(REr(йכEs+!D[[UY:['rKoGJv JzC%7X8*% >.n[5ElԒ:Ewpsڕk!_.T3u!^wRP2擋$^[%sd"l ( +E]C Y3C~ +,+GUK,P!z}"ڻͥO,O 9rM=>+aՍG.+;o z#5NARg#7Ώƿd Xc؆ާb:q;ɏVB_2]TyVJrsmarSغ +M{,Z)ȳ̾]0;P`bAD&y7Mx5(m}xy$rUԴ:I/"5A:܏Xi^Kf)2-傹!8!;kPcw5Ȯm |!kb&N + l.'C&yǞ)iPF1`l6Ħ632OUlD[Cxs3>_no9J!¸06|trp&x~c+PB-r9G@q!2:*7ۋ憊cbEe(wؕ/_a6KiD\Y&z6.8XM@ȐtXˍ6=zX)qt +""+$q늾|.Sr\AJ$6 ^VƵUr)=wN4yYy9kFH-VL:1@-q(0dNƍ X +Om}eAZ;{ D!#U2Ȩ#|_ITCMK:ȺDlq36hPsc{tK"KG7 +I pC=Y|2)Y , -I x#]炙>q릒uƨ >κg*;= +0KVqMJ~)8EA,rhEgU%F5} _":n +O>R377}0֓rifM •Yr"K= 4/iRCQ²|NY}'c/$Ha\KbToe 򦥰؉!\CuRQmMOB5իP/ưF ! |TIa@KתɄ &ȏH"GW7I$)/30'P~yi`Bh w 4">}Ax㗪cPEFtۄxa$ 7* h*F%C#@XS Kxd%֫G;^ NbQ\R'\ykM5bԐ5 E8X##ZQ_+Jɋ['`/nEC;t7+YN*R^0% E5?[-#s ,Ltqa jG{njxhe{э;7wx^s(tk*@x*Zb&mpZ#udYD)j~-R :06N^?PZvmT +nTQo=ݕea)hjDl kK! S{S75H-isjJ +9<#GwqL`ce$-k(Ux.]1! L~|2S j,ԾAԇdGU`=S?)ThF,uQ< DS "JqOXF:SЧG 1P8<tܓŝWO?\cf؈ 8v_vCP0\>'a7=K$jAO>n+?bN?bi-u',hZ3gjk_?=g _Gnr5"My[LIA68J*ÏSHSA( ѣQ4W4nUq%)c5g^!%JH9rs6Ғs(<S+ZKkۨ!,WLùESn_8!)`l5N؂|u~dÄ;@f\Y!+!~4&  pB[,lԫzkXk +)`l`,k~Xnh k4sR_xaasݰ}E+q"aR.2%ҩWtg<5hpa\gbnb%Q0j[8;:y#;!PIgHJEZ.9#&^Cy'*52PaPwc(4- +W"ܒEϿP{v2;'C qFO0Ë=Qi&;D|d[w.@rlo,-"R t'sZrEskE ʙ@`Duq<<~a 0Fi֝—lg)s:OO #cx'Dy̹cjAcT KN[I8Ja.;B^yBc')YD^Ŭ%y 2tKXeĨQuU-nA'p5]"Ahv Z<jU\\\B{]Z۟&ID.vO +44_C6Qş%ㅋAtXJG)R1SA/S(t 1z B!$I} 1ה1^Ϥg)]3&,W|rcrs-{ңn*Zd- FH^\=?Õ1kuX1՜(P/<%FfAYtޭ\>PÝNc.ÑRXFBZo{#0~G yT"io B&F{1 97 zȚr~UW@"9@> ]DIJ}2MQ|34n"ҲB2S{ +"eFBtnHwqdj{@5<amS)ӕNM+=xY[)&< M`DG 3*_ \q2ӏ]11<3n %*G+3: g/2 0~kp[yqȚO9Dw"+Azڸ>`)%ɉ=Y\L\2 +ӴgLx%GIIp>gHn4XG*M*3Zdg1/=h 9LϾAw.-uY%O2>17Al:V-\l:jM7]_岒>܋ku~4,'LTFaW,Ԫ'֌sx!9  sF*eؗ`R:Xy$zl:)tNl3<-q 煨Ov\H#,76oX':,r;fM{Q )2 +!w.2}xwjk7qi: + e rDYD9t 9.bY\_uTeb.z13EeGќ 'Ҝnsq +ݏe]" )~@oHlykR~颦. nCӁ3ĉ&!&`:0VpPHUqmZW +Y1!Sxm„2lbOw1#ceb{=٥Vv46 ^߲PH'e+J )~<4:dV=$i[:X_05$aNc.&4*2MGP&yo|G,Z,^E 1EbjTDTQb~0= 71$]Ț K]))iXd/*bԊHJ\B1eƁ`8$% #%"%ȑH t$@CPtP*y}33/39ě$a{x̫S>u\_>3oi־@9<ѬN)T_"$Ie D q@ +B"" D Ȉ2&Ѩ M(CRH52nK8ϿUi\:1inPsR[{f]9][f9N5w.3UD89nWU8,WZD΢lM|&ko]2 F6H"tqH4t;jJP!A>KcAPu^xyJI8"b#G2'Q$#gl))VF.B8ϊr ݐ)h#Gwz]ua%y`j(7Nw ;^mZ\ VN4}V xtkx]0c`^ϭm]ה "k(g()scdt@1DQgd&db^*[B{=``WN ISл8."ҧ2Oa-),gUhwBBf +endstream endobj 282 0 obj [/Indexed/DeviceRGB 255 288 0 R] endobj 288 0 obj <>stream 8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn @@ -1014,7 +1033,7 @@ E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> -endstream endobj 225 0 obj <>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream +endstream endobj 279 0 obj <>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream BT 0 0 0 rg /GS0 gs @@ -1041,28 +1060,28 @@ BT [(S)-3 (a)8 (v)10 (e A)6.1 (s c)5.9 (ommand)10.1 (.)]TJ ET -endstream endobj 222 0 obj <> endobj 236 0 obj <> endobj 237 0 obj <> endobj 238 0 obj <>stream -H|TkPYۖLwaPA@T\+PQDA 0 5JpE t,2" ->Q>֑Uשٙx0֭:u=~9߽upLd8>?`߬ޫP(4߮WG+4$EWci4 e|_ m_8.{sGĒ8~Z'jG}̙v|26T%ܫթvi+bb5qNt/BhV[7J"tjF}J)iJ.&JkOP#b<(&M\!Ď4* {T9rj' aSpþư6l[la$vÏb/ cX9֎Oķ5#6_b3q_4_t@4$^(N"Ǔ4;d䴭mm퐝nc4ۋRF\S420BBMpB oI$G7h#%#Q !&&!kDZ -a{E\^Dd>s>ƁwQ_ ٗӓ&l) -JHkPF7=tZٽ3(?ut=M3*}5݃b}^bGK~ҷէOVٚɓʓa;I^ MS72h/K [_Nwt BN -G }*NtOx3})_\Ƶ+{62\66rcg25 yrh4'&"*=3 }]Lx' -P-FK6#lq݂ [|P9)w4ŚR:&hx'v͋`ލW嗼!'r4I0(#`!Lq`&#_h%o}+_a -$Q%Bw]Pb h,y(<񹆫\YyV߳a ɇ܀?[Q|h qw[1Fk>QII=;~[Ehijyֺ=gآnqttꔌڐc]x ;ȃ7K:An.Os,M r04wirT[tZ+wBr|p"qvAr~vT,fBgdԆ+2O1IHMLId +)׿>כ?~pm[`6aL7e)淁S^N$P7!w4I44mp:Lz#/5Dǟĥѭ/ 2fr -Cۍ {Cdw^If:fBwBde;F<%T RuC4pn@'ҡ&JV/ A0qSE]1g"b묵QlrfZ;rj3@ȠL"}~|\D L$='(6籙 2Ign"xud~z,Z^]-_%+|9TjsZdhlM! 3Jžp[tu -5fksje 8t$yyY˗@7C֬1$ q&>j3o{ȶ8LV}LSWMӽ[P,<վυe3( sMtk‡-S0m)) !8)9 ʹ:srcߛsw=ffm)ҲӬ,qxD$<ʈl;[׈-g+8?(x.n Ki-uL]pCcDԷG'".3F=ibP}vPu(fsF24{bqR~ q (SSeq{D|3uƜw,>cr QwF9>nol|r.#V[\_o`{KgGtEMe%e^хESNO|eB"Uuoh9Q<|P˼‿Ya -INb(I{y`.Lt~za{^2R _ǔZ܉CMՌ2 ̔Q'R*-7#]m04t 9jg6="k<.+= =Uci5 _J** ^? |/8>b -suz vb=ʔ[/QY37Nd亏 י~@;T7*Fv~j=o jG`zfB7F$AVl?@[_:;*OV8¿Lai`TUM3TH \ <sp=?GPF[X juRZƠtjINx5yZŭǴCDeŬ!Qv l[mDˠo%@!HH36ޕ>|%Kciņ;{wl/M܈S `X`͋uwC=:M88(Fkɪ"X.qw5w(K$[׬\_ Uki_R1, -endstream endobj 235 0 obj <> endobj 32 0 obj <> endobj 66 0 obj [/View/Design] endobj 67 0 obj <>>> endobj 33 0 obj [32 0 R] endobj 239 0 obj <> endobj xref -0 240 +endstream endobj 276 0 obj <> endobj 290 0 obj <> endobj 291 0 obj <> endobj 292 0 obj <>stream +H|TiPYA2횩jAgTNQaEGEE׃n9 ]ED]dDAA/DcXf\'fga̟"22_}{8&2peYWPݨ +PǓ%O_M'o1N_U}9#p\n1|u.rOXG2:P%ݫѪ"5rhuLZU) \ҨԺ?jPmJ-WPZk +*RGg?T(% +|¦FRP'XcPn尿1*BRpaaİY8fa_c<ǖbkE/#f-苭|}X.Vx onr%Fl%FKI4r3F~/N63-31s1c7nRdQJZ#?҈ vV#&SF}RHDwhDrt`d9;bo=4QB p;iz;t:$I!}|1Sh*dy`O"3@~17iaY<ǔB[`~҈p^ imxL&0O9޳;$/AH;t>K3?÷HK F!bQg%~v$;!D\N?-bS'O\6 O(Oz6O%W{g̠+GUW%n.pa +Y ++46?A%ҁ?'"fЇkR3/孭\`"<_fR4Nfnp }tyV/ TcօgŲ>;ݠpw㠅;I"ݨsDvԙ<8,`^v:o; +tTy(^HEcu $#ͺ { :A\OZd҆?u4Wc3I:p I)AANչoo䨇Nw8Aa!Gq&VL'u7/3mDZ~"ƾr:'3;V=m¯9i"6-fkMKktt?2r +d +=$h3<>S[To 0ȥ-.3J}S9 + , p2;+y'g +'bbE0qJڕ2UcNRu#0LpfP/iȑeb#yYV/-D0ISe9.ÏD +U=ôs5@Ƞ\"q)h1ᰞ'^W[جz$Gxg CDԑ駎f.f]ơ!apb˫"{}l~T, }I߀0/~uõbMYEqTLWRPZyIG 8\Y-(31  +=z͹\<*uЕheeeWr/]ld}8tn$Ķf͎(6Nǘ:^;b1Y1M]q4MnAMlV>l,&Z7eMN[lOkk  UcSTHDG , 4fB}gForϹ9>`ʦ<"KjO"](#nFqǃnWR\#?w IZ>,SFYNf<̘_ ܦw+^B"AQ[OJΑ} Uy TYֽCDMA/J*f=$)'9n^$I]ʂU⚎s0rIS3͇1za$J$USkr'5qn,\gPݨARzaP7ɃB 9{>&Y%p]o}]_> endobj 32 0 obj <> endobj 66 0 obj [/View/Design] endobj 67 0 obj <>>> endobj 33 0 obj [32 0 R] endobj 293 0 obj <> endobj xref +0 294 0000000004 65535 f 0000000016 00000 n 0000000147 00000 n -0000035197 00000 n +0000035492 00000 n 0000000006 00000 f -0000035314 00000 n +0000035609 00000 n 0000000007 00000 f 0000000008 00000 f 0000000009 00000 f @@ -1089,9 +1108,9 @@ endstream endobj 235 0 obj <<2A6F739E8CC4804BBFC3215B93CB2694>]>> +<]>> startxref -217711 +218564 %%EOF diff --git a/datafiles/data/themes/default/graphics/widget/s_widget_highlight.png b/datafiles/data/themes/default/graphics/widget/s_widget_highlight.png new file mode 100644 index 000000000..c658cc7b1 Binary files /dev/null and b/datafiles/data/themes/default/graphics/widget/s_widget_highlight.png differ diff --git a/fonts/_f_p0/_f_p0.old.png b/fonts/_f_p0/_f_p0.old.png new file mode 100644 index 000000000..3eda688ea Binary files /dev/null and b/fonts/_f_p0/_f_p0.old.png differ diff --git a/fonts/_f_p0/_f_p0.old.yy b/fonts/_f_p0/_f_p0.old.yy new file mode 100644 index 000000000..c2bd48661 --- /dev/null +++ b/fonts/_f_p0/_f_p0.old.yy @@ -0,0 +1,582 @@ +{ + "resourceType": "GMFont", + "resourceVersion": "1.0", + "name": "_f_p0", + "hinting": 0, + "glyphOperations": 0, + "interpreter": 0, + "pointRounding": 0, + "applyKerning": 0, + "fontName": "Segoe UI", + "styleName": "Semibold", + "size": 12.0, + "bold": true, + "italic": false, + "charset": 0, + "AntiAlias": 1, + "first": 0, + "last": 0, + "sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", + "includeTTF": false, + "TTFName": "", + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "ascenderOffset": 0, + "ascender": 0, + "glyphs": { + "32": {"x":2,"y":2,"w":4,"h":21,"character":32,"shift":4,"offset":0,}, + "33": {"x":163,"y":48,"w":3,"h":21,"character":33,"shift":5,"offset":1,}, + "34": {"x":156,"y":48,"w":5,"h":21,"character":34,"shift":7,"offset":1,}, + "35": {"x":144,"y":48,"w":10,"h":21,"character":35,"shift":9,"offset":0,}, + "36": {"x":135,"y":48,"w":7,"h":21,"character":36,"shift":9,"offset":1,}, + "37": {"x":120,"y":48,"w":13,"h":21,"character":37,"shift":13,"offset":0,}, + "38": {"x":106,"y":48,"w":12,"h":21,"character":38,"shift":11,"offset":0,}, + "39": {"x":102,"y":48,"w":2,"h":21,"character":39,"shift":4,"offset":1,}, + "40": {"x":95,"y":48,"w":5,"h":21,"character":40,"shift":5,"offset":1,}, + "41": {"x":88,"y":48,"w":5,"h":21,"character":41,"shift":5,"offset":0,}, + "42": {"x":168,"y":48,"w":7,"h":21,"character":42,"shift":7,"offset":0,}, + "43": {"x":77,"y":48,"w":9,"h":21,"character":43,"shift":11,"offset":1,}, + "44": {"x":63,"y":48,"w":3,"h":21,"character":44,"shift":4,"offset":0,}, + "45": {"x":56,"y":48,"w":5,"h":21,"character":45,"shift":6,"offset":1,}, + "46": {"x":50,"y":48,"w":4,"h":21,"character":46,"shift":4,"offset":0,}, + "47": {"x":40,"y":48,"w":8,"h":21,"character":47,"shift":7,"offset":-1,}, + "48": {"x":29,"y":48,"w":9,"h":21,"character":48,"shift":9,"offset":0,}, + "49": {"x":22,"y":48,"w":5,"h":21,"character":49,"shift":6,"offset":0,}, + "50": {"x":12,"y":48,"w":8,"h":21,"character":50,"shift":9,"offset":0,}, + "51": {"x":2,"y":48,"w":8,"h":21,"character":51,"shift":9,"offset":0,}, + "52": {"x":240,"y":25,"w":9,"h":21,"character":52,"shift":9,"offset":0,}, + "53": {"x":68,"y":48,"w":7,"h":21,"character":53,"shift":9,"offset":1,}, + "54": {"x":177,"y":48,"w":9,"h":21,"character":54,"shift":9,"offset":0,}, + "55": {"x":188,"y":48,"w":9,"h":21,"character":55,"shift":9,"offset":0,}, + "56": {"x":199,"y":48,"w":9,"h":21,"character":56,"shift":9,"offset":0,}, + "57": {"x":165,"y":71,"w":9,"h":21,"character":57,"shift":9,"offset":0,}, + "58": {"x":159,"y":71,"w":4,"h":21,"character":58,"shift":4,"offset":0,}, + "59": {"x":153,"y":71,"w":4,"h":21,"character":59,"shift":4,"offset":0,}, + "60": {"x":143,"y":71,"w":8,"h":21,"character":60,"shift":11,"offset":2,}, + "61": {"x":132,"y":71,"w":9,"h":21,"character":61,"shift":11,"offset":1,}, + "62": {"x":122,"y":71,"w":8,"h":21,"character":62,"shift":11,"offset":2,}, + "63": {"x":113,"y":71,"w":7,"h":21,"character":63,"shift":7,"offset":0,}, + "64": {"x":97,"y":71,"w":14,"h":21,"character":64,"shift":15,"offset":1,}, + "65": {"x":84,"y":71,"w":11,"h":21,"character":65,"shift":11,"offset":0,}, + "66": {"x":74,"y":71,"w":8,"h":21,"character":66,"shift":10,"offset":1,}, + "67": {"x":62,"y":71,"w":10,"h":21,"character":67,"shift":10,"offset":0,}, + "68": {"x":50,"y":71,"w":10,"h":21,"character":68,"shift":11,"offset":1,}, + "69": {"x":41,"y":71,"w":7,"h":21,"character":69,"shift":8,"offset":1,}, + "70": {"x":32,"y":71,"w":7,"h":21,"character":70,"shift":8,"offset":1,}, + "71": {"x":19,"y":71,"w":11,"h":21,"character":71,"shift":11,"offset":0,}, + "72": {"x":7,"y":71,"w":10,"h":21,"character":72,"shift":12,"offset":1,}, + "73": {"x":2,"y":71,"w":3,"h":21,"character":73,"shift":5,"offset":1,}, + "74": {"x":245,"y":48,"w":6,"h":21,"character":74,"shift":6,"offset":0,}, + "75": {"x":234,"y":48,"w":9,"h":21,"character":75,"shift":10,"offset":1,}, + "76": {"x":225,"y":48,"w":7,"h":21,"character":76,"shift":8,"offset":1,}, + "77": {"x":210,"y":48,"w":13,"h":21,"character":77,"shift":15,"offset":1,}, + "78": {"x":228,"y":25,"w":10,"h":21,"character":78,"shift":12,"offset":1,}, + "79": {"x":214,"y":25,"w":12,"h":21,"character":79,"shift":12,"offset":0,}, + "80": {"x":204,"y":25,"w":8,"h":21,"character":80,"shift":9,"offset":1,}, + "81": {"x":227,"y":2,"w":13,"h":21,"character":81,"shift":12,"offset":0,}, + "82": {"x":209,"y":2,"w":10,"h":21,"character":82,"shift":10,"offset":1,}, + "83": {"x":198,"y":2,"w":9,"h":21,"character":83,"shift":9,"offset":0,}, + "84": {"x":187,"y":2,"w":9,"h":21,"character":84,"shift":9,"offset":0,}, + "85": {"x":176,"y":2,"w":9,"h":21,"character":85,"shift":11,"offset":1,}, + "86": {"x":163,"y":2,"w":11,"h":21,"character":86,"shift":10,"offset":0,}, + "87": {"x":145,"y":2,"w":16,"h":21,"character":87,"shift":15,"offset":0,}, + "88": {"x":133,"y":2,"w":10,"h":21,"character":88,"shift":10,"offset":0,}, + "89": {"x":121,"y":2,"w":10,"h":21,"character":89,"shift":9,"offset":0,}, + "90": {"x":109,"y":2,"w":10,"h":21,"character":90,"shift":9,"offset":0,}, + "91": {"x":221,"y":2,"w":4,"h":21,"character":91,"shift":5,"offset":1,}, + "92": {"x":99,"y":2,"w":8,"h":21,"character":92,"shift":6,"offset":-1,}, + "93": {"x":85,"y":2,"w":4,"h":21,"character":93,"shift":5,"offset":0,}, + "94": {"x":74,"y":2,"w":9,"h":21,"character":94,"shift":11,"offset":1,}, + "95": {"x":65,"y":2,"w":7,"h":21,"character":95,"shift":7,"offset":0,}, + "96": {"x":58,"y":2,"w":5,"h":21,"character":96,"shift":5,"offset":0,}, + "97": {"x":48,"y":2,"w":8,"h":21,"character":97,"shift":8,"offset":0,}, + "98": {"x":38,"y":2,"w":8,"h":21,"character":98,"shift":10,"offset":1,}, + "99": {"x":29,"y":2,"w":7,"h":21,"character":99,"shift":8,"offset":0,}, + "100": {"x":18,"y":2,"w":9,"h":21,"character":100,"shift":10,"offset":0,}, + "101": {"x":8,"y":2,"w":8,"h":21,"character":101,"shift":9,"offset":0,}, + "102": {"x":91,"y":2,"w":6,"h":21,"character":102,"shift":6,"offset":0,}, + "103": {"x":242,"y":2,"w":9,"h":21,"character":103,"shift":10,"offset":0,}, + "104": {"x":91,"y":25,"w":8,"h":21,"character":104,"shift":9,"offset":1,}, + "105": {"x":2,"y":25,"w":3,"h":21,"character":105,"shift":4,"offset":1,}, + "106": {"x":187,"y":25,"w":6,"h":21,"character":106,"shift":4,"offset":-2,}, + "107": {"x":177,"y":25,"w":8,"h":21,"character":107,"shift":8,"offset":1,}, + "108": {"x":173,"y":25,"w":2,"h":21,"character":108,"shift":4,"offset":1,}, + "109": {"x":158,"y":25,"w":13,"h":21,"character":109,"shift":14,"offset":1,}, + "110": {"x":148,"y":25,"w":8,"h":21,"character":110,"shift":9,"offset":1,}, + "111": {"x":137,"y":25,"w":9,"h":21,"character":111,"shift":10,"offset":0,}, + "112": {"x":127,"y":25,"w":8,"h":21,"character":112,"shift":10,"offset":1,}, + "113": {"x":116,"y":25,"w":9,"h":21,"character":113,"shift":10,"offset":0,}, + "114": {"x":109,"y":25,"w":5,"h":21,"character":114,"shift":6,"offset":1,}, + "115": {"x":195,"y":25,"w":7,"h":21,"character":115,"shift":7,"offset":0,}, + "116": {"x":101,"y":25,"w":6,"h":21,"character":116,"shift":6,"offset":0,}, + "117": {"x":81,"y":25,"w":8,"h":21,"character":117,"shift":9,"offset":1,}, + "118": {"x":70,"y":25,"w":9,"h":21,"character":118,"shift":8,"offset":0,}, + "119": {"x":56,"y":25,"w":12,"h":21,"character":119,"shift":12,"offset":0,}, + "120": {"x":46,"y":25,"w":8,"h":21,"character":120,"shift":8,"offset":0,}, + "121": {"x":35,"y":25,"w":9,"h":21,"character":121,"shift":8,"offset":0,}, + "122": {"x":25,"y":25,"w":8,"h":21,"character":122,"shift":7,"offset":0,}, + "123": {"x":18,"y":25,"w":5,"h":21,"character":123,"shift":5,"offset":0,}, + "124": {"x":14,"y":25,"w":2,"h":21,"character":124,"shift":4,"offset":1,}, + "125": {"x":7,"y":25,"w":5,"h":21,"character":125,"shift":5,"offset":0,}, + "126": {"x":176,"y":71,"w":9,"h":21,"character":126,"shift":11,"offset":1,}, + "9647": {"x":187,"y":71,"w":10,"h":21,"character":9647,"shift":16,"offset":3,}, + }, + "kerningPairs": [ + {"first":34,"second":969,"amount":-1,}, + {"first":39,"second":969,"amount":-1,}, + {"first":40,"second":106,"amount":1,}, + {"first":40,"second":309,"amount":1,}, + {"first":42,"second":65,"amount":-1,}, + {"first":42,"second":74,"amount":-1,}, + {"first":42,"second":256,"amount":-1,}, + {"first":42,"second":258,"amount":-1,}, + {"first":42,"second":260,"amount":-1,}, + {"first":42,"second":308,"amount":-1,}, + {"first":42,"second":506,"amount":-1,}, + {"first":42,"second":508,"amount":-1,}, + {"first":42,"second":913,"amount":-1,}, + {"first":42,"second":916,"amount":-1,}, + {"first":42,"second":923,"amount":-1,}, + {"first":42,"second":1040,"amount":-1,}, + {"first":44,"second":8216,"amount":-1,}, + {"first":44,"second":8217,"amount":-1,}, + {"first":44,"second":8220,"amount":-1,}, + {"first":44,"second":8221,"amount":-1,}, + {"first":46,"second":8216,"amount":-1,}, + {"first":46,"second":8217,"amount":-1,}, + {"first":46,"second":8220,"amount":-1,}, + {"first":46,"second":8221,"amount":-1,}, + {"first":65,"second":42,"amount":-1,}, + {"first":65,"second":84,"amount":-1,}, + {"first":65,"second":86,"amount":-1,}, + {"first":65,"second":89,"amount":-1,}, + {"first":65,"second":221,"amount":-1,}, + {"first":65,"second":354,"amount":-1,}, + {"first":65,"second":356,"amount":-1,}, + {"first":65,"second":358,"amount":-1,}, + {"first":65,"second":374,"amount":-1,}, + {"first":65,"second":376,"amount":-1,}, + {"first":65,"second":7922,"amount":-1,}, + {"first":65,"second":8216,"amount":-1,}, + {"first":65,"second":8217,"amount":-1,}, + {"first":65,"second":8220,"amount":-1,}, + {"first":65,"second":8221,"amount":-1,}, + {"first":65,"second":8482,"amount":-1,}, + {"first":68,"second":44,"amount":-1,}, + {"first":68,"second":46,"amount":-1,}, + {"first":68,"second":8218,"amount":-1,}, + {"first":68,"second":8222,"amount":-1,}, + {"first":68,"second":8230,"amount":-1,}, + {"first":70,"second":44,"amount":-1,}, + {"first":70,"second":46,"amount":-1,}, + {"first":70,"second":65,"amount":-1,}, + {"first":70,"second":192,"amount":-1,}, + {"first":70,"second":193,"amount":-1,}, + {"first":70,"second":194,"amount":-1,}, + {"first":70,"second":195,"amount":-1,}, + {"first":70,"second":196,"amount":-1,}, + {"first":70,"second":197,"amount":-1,}, + {"first":70,"second":198,"amount":-1,}, + {"first":70,"second":256,"amount":-1,}, + {"first":70,"second":258,"amount":-1,}, + {"first":70,"second":260,"amount":-1,}, + {"first":70,"second":506,"amount":-1,}, + {"first":70,"second":508,"amount":-1,}, + {"first":70,"second":8218,"amount":-1,}, + {"first":70,"second":8222,"amount":-1,}, + {"first":70,"second":8230,"amount":-1,}, + {"first":74,"second":198,"amount":-1,}, + {"first":74,"second":8218,"amount":-1,}, + {"first":76,"second":42,"amount":-1,}, + {"first":76,"second":84,"amount":-1,}, + {"first":76,"second":86,"amount":-1,}, + {"first":76,"second":89,"amount":-1,}, + {"first":76,"second":221,"amount":-1,}, + {"first":76,"second":354,"amount":-1,}, + {"first":76,"second":356,"amount":-1,}, + {"first":76,"second":358,"amount":-1,}, + {"first":76,"second":374,"amount":-1,}, + {"first":76,"second":376,"amount":-1,}, + {"first":76,"second":7922,"amount":-1,}, + {"first":76,"second":8216,"amount":-1,}, + {"first":76,"second":8217,"amount":-1,}, + {"first":76,"second":8220,"amount":-1,}, + {"first":76,"second":8221,"amount":-1,}, + {"first":76,"second":8482,"amount":-1,}, + {"first":79,"second":8218,"amount":-1,}, + {"first":79,"second":8222,"amount":-1,}, + {"first":80,"second":44,"amount":-2,}, + {"first":80,"second":46,"amount":-2,}, + {"first":80,"second":65,"amount":-1,}, + {"first":80,"second":74,"amount":-1,}, + {"first":80,"second":192,"amount":-1,}, + {"first":80,"second":193,"amount":-1,}, + {"first":80,"second":194,"amount":-1,}, + {"first":80,"second":195,"amount":-1,}, + {"first":80,"second":196,"amount":-1,}, + {"first":80,"second":197,"amount":-1,}, + {"first":80,"second":198,"amount":-1,}, + {"first":80,"second":256,"amount":-1,}, + {"first":80,"second":258,"amount":-1,}, + {"first":80,"second":260,"amount":-1,}, + {"first":80,"second":308,"amount":-1,}, + {"first":80,"second":506,"amount":-1,}, + {"first":80,"second":508,"amount":-1,}, + {"first":80,"second":8218,"amount":-2,}, + {"first":80,"second":8222,"amount":-2,}, + {"first":80,"second":8230,"amount":-1,}, + {"first":81,"second":46,"amount":-1,}, + {"first":81,"second":8218,"amount":-1,}, + {"first":81,"second":8222,"amount":-1,}, + {"first":81,"second":8230,"amount":-1,}, + {"first":84,"second":44,"amount":-1,}, + {"first":84,"second":46,"amount":-1,}, + {"first":84,"second":65,"amount":-1,}, + {"first":84,"second":74,"amount":-1,}, + {"first":84,"second":97,"amount":-1,}, + {"first":84,"second":99,"amount":-1,}, + {"first":84,"second":100,"amount":-1,}, + {"first":84,"second":101,"amount":-1,}, + {"first":84,"second":103,"amount":-1,}, + {"first":84,"second":109,"amount":-1,}, + {"first":84,"second":110,"amount":-1,}, + {"first":84,"second":111,"amount":-1,}, + {"first":84,"second":112,"amount":-1,}, + {"first":84,"second":113,"amount":-1,}, + {"first":84,"second":114,"amount":-1,}, + {"first":84,"second":115,"amount":-1,}, + {"first":84,"second":117,"amount":-1,}, + {"first":84,"second":119,"amount":-1,}, + {"first":84,"second":120,"amount":-1,}, + {"first":84,"second":121,"amount":-1,}, + {"first":84,"second":122,"amount":-1,}, + {"first":84,"second":192,"amount":-1,}, + {"first":84,"second":193,"amount":-1,}, + {"first":84,"second":194,"amount":-1,}, + {"first":84,"second":195,"amount":-1,}, + {"first":84,"second":196,"amount":-1,}, + {"first":84,"second":197,"amount":-1,}, + {"first":84,"second":198,"amount":-1,}, + {"first":84,"second":224,"amount":-1,}, + {"first":84,"second":225,"amount":-1,}, + {"first":84,"second":226,"amount":-1,}, + {"first":84,"second":227,"amount":-1,}, + {"first":84,"second":228,"amount":-1,}, + {"first":84,"second":229,"amount":-1,}, + {"first":84,"second":230,"amount":-1,}, + {"first":84,"second":231,"amount":-1,}, + {"first":84,"second":232,"amount":-1,}, + {"first":84,"second":233,"amount":-1,}, + {"first":84,"second":234,"amount":-1,}, + {"first":84,"second":235,"amount":-1,}, + {"first":84,"second":239,"amount":1,}, + {"first":84,"second":241,"amount":-1,}, + {"first":84,"second":242,"amount":-1,}, + {"first":84,"second":243,"amount":-1,}, + {"first":84,"second":244,"amount":-1,}, + {"first":84,"second":245,"amount":-1,}, + {"first":84,"second":246,"amount":-1,}, + {"first":84,"second":249,"amount":-1,}, + {"first":84,"second":250,"amount":-1,}, + {"first":84,"second":251,"amount":-1,}, + {"first":84,"second":252,"amount":-1,}, + {"first":84,"second":253,"amount":-1,}, + {"first":84,"second":255,"amount":-1,}, + {"first":84,"second":256,"amount":-1,}, + {"first":84,"second":257,"amount":-1,}, + {"first":84,"second":258,"amount":-1,}, + {"first":84,"second":259,"amount":-1,}, + {"first":84,"second":260,"amount":-1,}, + {"first":84,"second":261,"amount":-1,}, + {"first":84,"second":263,"amount":-1,}, + {"first":84,"second":265,"amount":-1,}, + {"first":84,"second":269,"amount":-1,}, + {"first":84,"second":271,"amount":-1,}, + {"first":84,"second":273,"amount":-1,}, + {"first":84,"second":275,"amount":-1,}, + {"first":84,"second":277,"amount":-1,}, + {"first":84,"second":279,"amount":-1,}, + {"first":84,"second":281,"amount":-1,}, + {"first":84,"second":283,"amount":-1,}, + {"first":84,"second":285,"amount":-1,}, + {"first":84,"second":287,"amount":-1,}, + {"first":84,"second":289,"amount":-1,}, + {"first":84,"second":291,"amount":-1,}, + {"first":84,"second":297,"amount":1,}, + {"first":84,"second":299,"amount":1,}, + {"first":84,"second":301,"amount":1,}, + {"first":84,"second":308,"amount":-1,}, + {"first":84,"second":324,"amount":-1,}, + {"first":84,"second":328,"amount":-1,}, + {"first":84,"second":331,"amount":-1,}, + {"first":84,"second":333,"amount":-1,}, + {"first":84,"second":335,"amount":-1,}, + {"first":84,"second":337,"amount":-1,}, + {"first":84,"second":339,"amount":-1,}, + {"first":84,"second":341,"amount":-1,}, + {"first":84,"second":343,"amount":-1,}, + {"first":84,"second":345,"amount":-1,}, + {"first":84,"second":347,"amount":-1,}, + {"first":84,"second":349,"amount":-1,}, + {"first":84,"second":351,"amount":-1,}, + {"first":84,"second":353,"amount":-1,}, + {"first":84,"second":361,"amount":-1,}, + {"first":84,"second":363,"amount":-1,}, + {"first":84,"second":365,"amount":-1,}, + {"first":84,"second":367,"amount":-1,}, + {"first":84,"second":369,"amount":-1,}, + {"first":84,"second":371,"amount":-1,}, + {"first":84,"second":373,"amount":-1,}, + {"first":84,"second":375,"amount":-1,}, + {"first":84,"second":378,"amount":-1,}, + {"first":84,"second":380,"amount":-1,}, + {"first":84,"second":382,"amount":-1,}, + {"first":84,"second":506,"amount":-1,}, + {"first":84,"second":507,"amount":-1,}, + {"first":84,"second":508,"amount":-1,}, + {"first":84,"second":509,"amount":-1,}, + {"first":84,"second":511,"amount":-1,}, + {"first":84,"second":537,"amount":-1,}, + {"first":84,"second":7809,"amount":-1,}, + {"first":84,"second":7811,"amount":-1,}, + {"first":84,"second":7813,"amount":-1,}, + {"first":84,"second":7923,"amount":-1,}, + {"first":84,"second":8218,"amount":-1,}, + {"first":84,"second":8222,"amount":-1,}, + {"first":84,"second":8230,"amount":-1,}, + {"first":85,"second":198,"amount":-1,}, + {"first":86,"second":44,"amount":-1,}, + {"first":86,"second":46,"amount":-1,}, + {"first":86,"second":65,"amount":-1,}, + {"first":86,"second":97,"amount":-1,}, + {"first":86,"second":99,"amount":-1,}, + {"first":86,"second":100,"amount":-1,}, + {"first":86,"second":101,"amount":-1,}, + {"first":86,"second":103,"amount":-1,}, + {"first":86,"second":111,"amount":-1,}, + {"first":86,"second":113,"amount":-1,}, + {"first":86,"second":191,"amount":-1,}, + {"first":86,"second":192,"amount":-1,}, + {"first":86,"second":193,"amount":-1,}, + {"first":86,"second":194,"amount":-1,}, + {"first":86,"second":195,"amount":-1,}, + {"first":86,"second":196,"amount":-1,}, + {"first":86,"second":197,"amount":-1,}, + {"first":86,"second":198,"amount":-1,}, + {"first":86,"second":224,"amount":-1,}, + {"first":86,"second":225,"amount":-1,}, + {"first":86,"second":226,"amount":-1,}, + {"first":86,"second":227,"amount":-1,}, + {"first":86,"second":228,"amount":-1,}, + {"first":86,"second":229,"amount":-1,}, + {"first":86,"second":230,"amount":-1,}, + {"first":86,"second":231,"amount":-1,}, + {"first":86,"second":232,"amount":-1,}, + {"first":86,"second":233,"amount":-1,}, + {"first":86,"second":234,"amount":-1,}, + {"first":86,"second":235,"amount":-1,}, + {"first":86,"second":239,"amount":1,}, + {"first":86,"second":242,"amount":-1,}, + {"first":86,"second":243,"amount":-1,}, + {"first":86,"second":244,"amount":-1,}, + {"first":86,"second":245,"amount":-1,}, + {"first":86,"second":246,"amount":-1,}, + {"first":86,"second":256,"amount":-1,}, + {"first":86,"second":257,"amount":-1,}, + {"first":86,"second":258,"amount":-1,}, + {"first":86,"second":259,"amount":-1,}, + {"first":86,"second":260,"amount":-1,}, + {"first":86,"second":261,"amount":-1,}, + {"first":86,"second":263,"amount":-1,}, + {"first":86,"second":265,"amount":-1,}, + {"first":86,"second":269,"amount":-1,}, + {"first":86,"second":271,"amount":-1,}, + {"first":86,"second":273,"amount":-1,}, + {"first":86,"second":275,"amount":-1,}, + {"first":86,"second":277,"amount":-1,}, + {"first":86,"second":279,"amount":-1,}, + {"first":86,"second":281,"amount":-1,}, + {"first":86,"second":283,"amount":-1,}, + {"first":86,"second":285,"amount":-1,}, + {"first":86,"second":287,"amount":-1,}, + {"first":86,"second":289,"amount":-1,}, + {"first":86,"second":291,"amount":-1,}, + {"first":86,"second":333,"amount":-1,}, + {"first":86,"second":335,"amount":-1,}, + {"first":86,"second":337,"amount":-1,}, + {"first":86,"second":339,"amount":-1,}, + {"first":86,"second":506,"amount":-1,}, + {"first":86,"second":507,"amount":-1,}, + {"first":86,"second":508,"amount":-1,}, + {"first":86,"second":509,"amount":-1,}, + {"first":86,"second":511,"amount":-1,}, + {"first":86,"second":8218,"amount":-1,}, + {"first":86,"second":8222,"amount":-1,}, + {"first":86,"second":8230,"amount":-1,}, + {"first":87,"second":44,"amount":-1,}, + {"first":87,"second":46,"amount":-1,}, + {"first":87,"second":198,"amount":-1,}, + {"first":87,"second":239,"amount":1,}, + {"first":87,"second":8218,"amount":-1,}, + {"first":87,"second":8222,"amount":-1,}, + {"first":87,"second":8230,"amount":-1,}, + {"first":89,"second":44,"amount":-1,}, + {"first":89,"second":46,"amount":-1,}, + {"first":89,"second":65,"amount":-1,}, + {"first":89,"second":97,"amount":-1,}, + {"first":89,"second":99,"amount":-1,}, + {"first":89,"second":100,"amount":-1,}, + {"first":89,"second":101,"amount":-1,}, + {"first":89,"second":103,"amount":-1,}, + {"first":89,"second":109,"amount":-1,}, + {"first":89,"second":110,"amount":-1,}, + {"first":89,"second":111,"amount":-1,}, + {"first":89,"second":112,"amount":-1,}, + {"first":89,"second":113,"amount":-1,}, + {"first":89,"second":114,"amount":-1,}, + {"first":89,"second":115,"amount":-1,}, + {"first":89,"second":117,"amount":-1,}, + {"first":89,"second":191,"amount":-1,}, + {"first":89,"second":192,"amount":-1,}, + {"first":89,"second":193,"amount":-1,}, + {"first":89,"second":194,"amount":-1,}, + {"first":89,"second":195,"amount":-1,}, + {"first":89,"second":196,"amount":-1,}, + {"first":89,"second":197,"amount":-1,}, + {"first":89,"second":198,"amount":-1,}, + {"first":89,"second":224,"amount":-1,}, + {"first":89,"second":225,"amount":-1,}, + {"first":89,"second":226,"amount":-1,}, + {"first":89,"second":227,"amount":-1,}, + {"first":89,"second":228,"amount":-1,}, + {"first":89,"second":229,"amount":-1,}, + {"first":89,"second":230,"amount":-1,}, + {"first":89,"second":231,"amount":-1,}, + {"first":89,"second":232,"amount":-1,}, + {"first":89,"second":233,"amount":-1,}, + {"first":89,"second":234,"amount":-1,}, + {"first":89,"second":235,"amount":-1,}, + {"first":89,"second":239,"amount":1,}, + {"first":89,"second":241,"amount":-1,}, + {"first":89,"second":242,"amount":-1,}, + {"first":89,"second":243,"amount":-1,}, + {"first":89,"second":244,"amount":-1,}, + {"first":89,"second":245,"amount":-1,}, + {"first":89,"second":246,"amount":-1,}, + {"first":89,"second":249,"amount":-1,}, + {"first":89,"second":250,"amount":-1,}, + {"first":89,"second":251,"amount":-1,}, + {"first":89,"second":252,"amount":-1,}, + {"first":89,"second":256,"amount":-1,}, + {"first":89,"second":257,"amount":-1,}, + {"first":89,"second":258,"amount":-1,}, + {"first":89,"second":259,"amount":-1,}, + {"first":89,"second":260,"amount":-1,}, + {"first":89,"second":261,"amount":-1,}, + {"first":89,"second":263,"amount":-1,}, + {"first":89,"second":265,"amount":-1,}, + {"first":89,"second":269,"amount":-1,}, + {"first":89,"second":271,"amount":-1,}, + {"first":89,"second":273,"amount":-1,}, + {"first":89,"second":275,"amount":-1,}, + {"first":89,"second":277,"amount":-1,}, + {"first":89,"second":279,"amount":-1,}, + {"first":89,"second":281,"amount":-1,}, + {"first":89,"second":283,"amount":-1,}, + {"first":89,"second":285,"amount":-1,}, + {"first":89,"second":287,"amount":-1,}, + {"first":89,"second":289,"amount":-1,}, + {"first":89,"second":291,"amount":-1,}, + {"first":89,"second":324,"amount":-1,}, + {"first":89,"second":328,"amount":-1,}, + {"first":89,"second":331,"amount":-1,}, + {"first":89,"second":333,"amount":-1,}, + {"first":89,"second":335,"amount":-1,}, + {"first":89,"second":337,"amount":-1,}, + {"first":89,"second":339,"amount":-1,}, + {"first":89,"second":341,"amount":-1,}, + {"first":89,"second":343,"amount":-1,}, + {"first":89,"second":345,"amount":-1,}, + {"first":89,"second":347,"amount":-1,}, + {"first":89,"second":349,"amount":-1,}, + {"first":89,"second":351,"amount":-1,}, + {"first":89,"second":353,"amount":-1,}, + {"first":89,"second":361,"amount":-1,}, + {"first":89,"second":363,"amount":-1,}, + {"first":89,"second":365,"amount":-1,}, + {"first":89,"second":367,"amount":-1,}, + {"first":89,"second":369,"amount":-1,}, + {"first":89,"second":371,"amount":-1,}, + {"first":89,"second":506,"amount":-1,}, + {"first":89,"second":507,"amount":-1,}, + {"first":89,"second":508,"amount":-1,}, + {"first":89,"second":509,"amount":-1,}, + {"first":89,"second":511,"amount":-1,}, + {"first":89,"second":537,"amount":-1,}, + {"first":89,"second":8218,"amount":-1,}, + {"first":89,"second":8222,"amount":-1,}, + {"first":89,"second":8230,"amount":-1,}, + {"first":91,"second":106,"amount":1,}, + {"first":91,"second":309,"amount":1,}, + {"first":101,"second":39,"amount":-1,}, + {"first":102,"second":41,"amount":1,}, + {"first":102,"second":44,"amount":-1,}, + {"first":102,"second":46,"amount":-1,}, + {"first":102,"second":93,"amount":1,}, + {"first":102,"second":239,"amount":1,}, + {"first":102,"second":297,"amount":1,}, + {"first":102,"second":299,"amount":1,}, + {"first":102,"second":301,"amount":1,}, + {"first":102,"second":8230,"amount":-1,}, + {"first":102,"second":8482,"amount":1,}, + {"first":102,"second":64831,"amount":1,}, + {"first":107,"second":45,"amount":-1,}, + {"first":107,"second":8208,"amount":-1,}, + {"first":110,"second":39,"amount":-1,}, + {"first":111,"second":34,"amount":-1,}, + {"first":111,"second":39,"amount":-1,}, + {"first":111,"second":8217,"amount":-1,}, + {"first":111,"second":8221,"amount":-1,}, + {"first":112,"second":8216,"amount":-1,}, + {"first":112,"second":8217,"amount":-1,}, + {"first":112,"second":8221,"amount":-1,}, + {"first":114,"second":44,"amount":-1,}, + {"first":114,"second":45,"amount":-1,}, + {"first":114,"second":46,"amount":-1,}, + {"first":114,"second":8208,"amount":-1,}, + {"first":114,"second":8216,"amount":1,}, + {"first":114,"second":8217,"amount":1,}, + {"first":114,"second":8218,"amount":-1,}, + {"first":114,"second":8220,"amount":1,}, + {"first":114,"second":8221,"amount":1,}, + {"first":114,"second":8222,"amount":-1,}, + {"first":114,"second":8230,"amount":-1,}, + {"first":116,"second":45,"amount":-1,}, + {"first":116,"second":8208,"amount":-1,}, + {"first":118,"second":44,"amount":-1,}, + {"first":118,"second":46,"amount":-1,}, + {"first":118,"second":8218,"amount":-1,}, + {"first":118,"second":8222,"amount":-1,}, + {"first":118,"second":8230,"amount":-1,}, + {"first":121,"second":44,"amount":-1,}, + {"first":121,"second":46,"amount":-1,}, + {"first":121,"second":8218,"amount":-1,}, + {"first":121,"second":8222,"amount":-1,}, + {"first":121,"second":8230,"amount":-1,}, + {"first":123,"second":106,"amount":1,}, + {"first":123,"second":309,"amount":1,}, + ], + "ranges": [ + {"lower":32,"upper":127,}, + {"lower":9647,"upper":9647,}, + ], + "regenerateBitmap": false, + "canGenerateBitmap": true, + "maintainGms1Font": false, + "parent": { + "name": "font", + "path": "folders/font.yy", + }, +} \ No newline at end of file diff --git a/fonts/_f_p0/_f_p0.png b/fonts/_f_p0/_f_p0.png index 3eda688ea..f2997b16c 100644 Binary files a/fonts/_f_p0/_f_p0.png and b/fonts/_f_p0/_f_p0.png differ diff --git a/fonts/_f_p0/_f_p0.yy b/fonts/_f_p0/_f_p0.yy index c2bd48661..62d63ef5a 100644 --- a/fonts/_f_p0/_f_p0.yy +++ b/fonts/_f_p0/_f_p0.yy @@ -24,7 +24,7 @@ "path": "texturegroups/Default", }, "ascenderOffset": 0, - "ascender": 0, + "ascender": 15, "glyphs": { "32": {"x":2,"y":2,"w":4,"h":21,"character":32,"shift":4,"offset":0,}, "33": {"x":163,"y":48,"w":3,"h":21,"character":33,"shift":5,"offset":1,}, diff --git a/objects/_p_dialog/Destroy_0.gml b/objects/_p_dialog/Destroy_0.gml index 6d7cab992..963817989 100644 --- a/objects/_p_dialog/Destroy_0.gml +++ b/objects/_p_dialog/Destroy_0.gml @@ -2,5 +2,5 @@ if(sHOVER) HOVER = noone; if(sFOCUS) setFocus(noone); -TEXTBOX_ACTIVE = noone; +WIDGET_CURRENT = noone; ds_list_remove(DIALOGS, self); \ No newline at end of file diff --git a/objects/addon_key_displayer/Create_0.gml b/objects/addon_key_displayer/Create_0.gml index ff658fc30..bc538d405 100644 --- a/objects/addon_key_displayer/Create_0.gml +++ b/objects/addon_key_displayer/Create_0.gml @@ -4,4 +4,18 @@ event_inherited(); name = "Key display"; alpha = 0; disp_text = ""; -depth = -999; \ No newline at end of file +depth = -999; + +extra_keys = [ + [vk_control, "Ctrl"], + [vk_shift, "Shift"], + [vk_alt, "Alt"], + [vk_tab, "Tab"], + [vk_backspace, "Backspace"], + [vk_delete, "Delete"], + [vk_escape, "Escape"], + [vk_up, "Up"], + [vk_down, "Down"], + [vk_left, "Left"], + [vk_right, "Right"], +] \ No newline at end of file diff --git a/objects/addon_key_displayer/Draw_75.gml b/objects/addon_key_displayer/Draw_75.gml index aa29809b2..cc7ff45e5 100644 --- a/objects/addon_key_displayer/Draw_75.gml +++ b/objects/addon_key_displayer/Draw_75.gml @@ -2,12 +2,10 @@ #region draw var key = ""; - if(keyboard_check(vk_control)) - key += "Ctrl"; - if(keyboard_check(vk_shift)) - key += key == ""? "Shift" : " + Shift"; - if(keyboard_check(vk_alt)) - key += key == ""? "Alt" : " + Alt"; + for( var i = 0; i < array_length(extra_keys); i++ ) { + if(keyboard_check(extra_keys[i][0])) + key += key == ""? extra_keys[i][1] : (" + " + extra_keys[i][1]); + } if(keyboard_check(vk_anykey)) { var pres = keyboard_lastkey; diff --git a/objects/o_dialog_add_node/Create_0.gml b/objects/o_dialog_add_node/Create_0.gml index b110be770..1eba3c24c 100644 --- a/objects/o_dialog_add_node/Create_0.gml +++ b/objects/o_dialog_add_node/Create_0.gml @@ -195,8 +195,9 @@ event_inherited(); var spr_x = _boxx + grid_size / 2; var spr_y = yy + grid_size / 2; - if(variable_struct_exists(_node, "spr") && sprite_exists(_node.spr)) - draw_sprite_ui_uniform(_node.spr, 0, spr_x, spr_y); + + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) draw_sprite_ui_uniform(_node.spr, 0, spr_x, spr_y); if(_node.new_node) draw_sprite_ui_uniform(THEME.node_new_badge, 0, _boxx + grid_size - ui(12), yy + ui(6)); @@ -260,7 +261,9 @@ event_inherited(); var spr_x = list_height / 2 + ui(14); var spr_y = yy + list_height / 2; - if(variable_struct_exists(_node, "spr") && sprite_exists(_node.spr)) { + + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) { var ss = (list_height - ui(8)) / max(sprite_get_width(_node.spr), sprite_get_height(_node.spr)); draw_sprite_ext(_node.spr, 0, spr_x, spr_y, ss, ss, 0, c_white, 1); } @@ -286,8 +289,8 @@ event_inherited(); #region resize dialog_resizable = true; - dialog_w_min = ui(200); - dialog_h_min = ui(120); + dialog_w_min = ui(320); + dialog_h_min = ui(320); dialog_w_max = ui(960); dialog_h_max = ui(800); @@ -313,7 +316,7 @@ event_inherited(); searchNodes(); }); tb_search.auto_update = true; - TEXTBOX_ACTIVE = tb_search; + WIDGET_CURRENT = tb_search; function searchNodes() { ds_list_clear(search_list); @@ -394,7 +397,8 @@ event_inherited(); draw_sprite_stretched_ext(THEME.node_bg, 0, _boxx, yy, grid_size, grid_size, COLORS.dialog_add_node_collection, 1); BLEND_NORMAL - if(variable_struct_exists(_node, "spr") && sprite_exists(_node.spr)) { + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) { var _si = current_time * PREF_MAP[? "collection_preview_speed"] / 3000; var _sw = sprite_get_width(_node.spr); var _sh = sprite_get_height(_node.spr); @@ -460,7 +464,8 @@ event_inherited(); BLEND_NORMAL } - if(variable_struct_exists(_node, "spr") && sprite_exists(_node.spr)) { + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) { var _si = current_time * PREF_MAP[? "collection_preview_speed"] / 3000; var _sw = sprite_get_width(_node.spr); var _sh = sprite_get_height(_node.spr); diff --git a/objects/o_dialog_add_node/Destroy_0.gml b/objects/o_dialog_add_node/Destroy_0.gml index 1e518cdb5..57c5dc646 100644 --- a/objects/o_dialog_add_node/Destroy_0.gml +++ b/objects/o_dialog_add_node/Destroy_0.gml @@ -1,4 +1,4 @@ /// @description event_inherited(); -TEXTBOX_ACTIVE = noone; \ No newline at end of file +WIDGET_CURRENT = noone; \ No newline at end of file diff --git a/objects/o_dialog_add_node/Draw_64.gml b/objects/o_dialog_add_node/Draw_64.gml index a529e1a19..a07db0a38 100644 --- a/objects/o_dialog_add_node/Draw_64.gml +++ b/objects/o_dialog_add_node/Draw_64.gml @@ -8,7 +8,7 @@ if !ready exit; #endregion #region search - TEXTBOX_ACTIVE = tb_search; + WIDGET_CURRENT = tb_search; if(search_string == "") { tb_search.focus = false; diff --git a/objects/o_dialog_assetbox/Create_0.gml b/objects/o_dialog_assetbox/Create_0.gml index ff3fd8de7..ea194fd6f 100644 --- a/objects/o_dialog_assetbox/Create_0.gml +++ b/objects/o_dialog_assetbox/Create_0.gml @@ -87,14 +87,15 @@ event_inherited(); } } - if(sprite_exists(content.spr)) { - var sw = sprite_get_width(content.spr); - var sh = sprite_get_height(content.spr); + var spr = content.getSpr(); + if(sprite_exists(spr)) { + var sw = sprite_get_width(spr); + var sh = sprite_get_height(spr); var ss = img_size / max(sw, sh); var sx = xx + (grid_size - sw * ss) / 2; var sy = yy + (grid_size - sh * ss) / 2; - draw_sprite_ext(content.spr, frame, sx, sy, ss, ss, 0, c_white, 1); + draw_sprite_ext(spr, frame, sx, sy, ss, ss, 0, c_white, 1); } } } diff --git a/objects/o_dialog_file_name/Create_0.gml b/objects/o_dialog_file_name/Create_0.gml index 300ff38e4..c6cdcae64 100644 --- a/objects/o_dialog_file_name/Create_0.gml +++ b/objects/o_dialog_file_name/Create_0.gml @@ -22,6 +22,6 @@ event_inherited(); instance_destroy(); }); - TEXTBOX_ACTIVE = tb_name; + WIDGET_CURRENT = tb_name; KEYBOARD_STRING = ""; #endregion \ No newline at end of file diff --git a/objects/o_dialog_fontscrollbox/Alarm_0.gml b/objects/o_dialog_fontscrollbox/Alarm_0.gml new file mode 100644 index 000000000..1dbe25baa --- /dev/null +++ b/objects/o_dialog_fontscrollbox/Alarm_0.gml @@ -0,0 +1,9 @@ +/// @description init +#region pos + var hght = line_height(f_p0, 8); + var hh = array_length(FONT_INTERNAL) * hght; + + dialog_h = min(max_h, hh); + sc_content.resize(dialog_w, dialog_h); +#endregion +event_inherited(); \ No newline at end of file diff --git a/objects/o_dialog_fontscrollbox/Create_0.gml b/objects/o_dialog_fontscrollbox/Create_0.gml new file mode 100644 index 000000000..5f0a1fbe4 --- /dev/null +++ b/objects/o_dialog_fontscrollbox/Create_0.gml @@ -0,0 +1,52 @@ +/// @description init +event_inherited(); + +#region + dialog_w = 560; + max_h = 640; + draggable = false; + destroy_on_click_out = true; + + scrollbox = noone; + + anchor = ANCHOR.top | ANCHOR.left; + + sc_content = new scrollPane(0, 0, function(_y, _m) { + draw_clear_alpha(COLORS.panel_bg_clear, 0); + var hght = line_height(f_p0, 8); + var data = FONT_INTERNAL; + var _h = array_length(data) * hght; + var _dw = sc_content.surface_w; + + for(var i = 0; i < array_length(data); i++) { + var _ly = _y + i * hght; + var fullpath = DIRECTORY + "Fonts/" + data[i]; + + if(sHOVER && sc_content.hover && point_in_rectangle(_m[0], _m[1], 0, _ly + 1, _dw, _ly + hght - 1)) { + draw_sprite_stretched_ext(THEME.textbox, 3, 0, _ly, _dw, hght, COLORS.dialog_menubox_highlight, 1); + + if(mouse_press(mb_left, sFOCUS)) { + scrollbox.onModify(i); + instance_destroy(); + } + } + + draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); + draw_text_cut(ui(8), _ly + hght / 2, data[i], _dw); + + if(ds_map_exists(FONT_SPRITES, fullpath)) { + var spr = FONT_SPRITES[? fullpath]; + var sw = sprite_get_width(spr); + var sh = sprite_get_height(spr); + var ss = (hght - ui(8)) / sh; + + sw *= ss; + sh *= ss; + + draw_sprite_ext(spr, 0, _dw - ui(8) - sw, _ly + hght / 2 - sh / 2, ss, ss, 0, c_white, 1); + } + } + + return _h; + }); +#endregion diff --git a/objects/o_dialog_fontscrollbox/Destroy_0.gml b/objects/o_dialog_fontscrollbox/Destroy_0.gml new file mode 100644 index 000000000..e3ab05314 --- /dev/null +++ b/objects/o_dialog_fontscrollbox/Destroy_0.gml @@ -0,0 +1,4 @@ +/// @description init +event_inherited(); + +scrollbox.open = false; \ No newline at end of file diff --git a/objects/o_dialog_fontscrollbox/Draw_64.gml b/objects/o_dialog_fontscrollbox/Draw_64.gml new file mode 100644 index 000000000..94e2d78b7 --- /dev/null +++ b/objects/o_dialog_fontscrollbox/Draw_64.gml @@ -0,0 +1,9 @@ +/// @description init +#region draw + draw_sprite_stretched(THEME.textbox, 3, dialog_x, dialog_y, dialog_w, dialog_h); + + sc_content.active = sHOVER; + sc_content.draw(dialog_x, dialog_y); + + draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h); +#endregion \ No newline at end of file diff --git a/objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy b/objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy new file mode 100644 index 000000000..2f4556ef2 --- /dev/null +++ b/objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy @@ -0,0 +1,39 @@ +{ + "resourceType": "GMObject", + "resourceVersion": "1.0", + "name": "o_dialog_fontscrollbox", + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": { + "name": "_p_dialog", + "path": "objects/_p_dialog/_p_dialog.yy", + }, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":64,"eventType":8,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":1,"collisionObjectId":null,}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "widget", + "path": "folders/dialog/widget.yy", + }, +} \ No newline at end of file diff --git a/objects/o_dialog_gradient/Create_0.gml b/objects/o_dialog_gradient/Create_0.gml index 0626f130c..ce5eaa8e8 100644 --- a/objects/o_dialog_gradient/Create_0.gml +++ b/objects/o_dialog_gradient/Create_0.gml @@ -2,7 +2,7 @@ event_inherited(); #region data - dialog_w = ui(812); + dialog_w = ui(1068); dialog_h = ui(476); name = "Gradient editor"; @@ -137,6 +137,92 @@ event_inherited(); }) #endregion +#region palette + palettes = ds_list_create(); + palette_name = ds_list_create(); + palette_selecting = -1; + + function paletteCollect() { + ds_list_clear(palettes); + ds_list_clear(palette_name); + + var path = DIRECTORY + "Palettes/" + var file = file_find_first(path + "*", 0); + while(file != "") { + ds_list_add(palettes, loadPalette(path + file)); + ds_list_add(palette_name, filename_name(file)); + file = file_find_next(); + } + file_find_close(); + } + paletteCollect(); + + sp_palette_w = ui(240 - 32 - 16); + sp_palette_size = ui(24); + click_block = false; + + sp_palettes = new scrollPane(sp_palette_w, dialog_h - ui(62), function(_y, _m) { + var ww = sp_palette_w - ui(40); + var hh = ui(32); + var _gs = sp_palette_size; + var yy = _y + ui(8); + var _height, pre_amo; + var _hover = sHOVER && sp_palettes.hover; + draw_clear_alpha(COLORS.panel_bg_clear, 0); + + for(var i = 0; i < ds_list_size(palettes); i++) { + pre_amo = array_length(palettes[| i]); + var col = floor(ww / _gs); + var row = ceil(pre_amo / col); + + if(palette_selecting == i) + _height = ui(28) + row * _gs + ui(12); + else + _height = ui(56); + + var isHover = _hover && point_in_rectangle(_m[0], _m[1], ui(4), yy, ui(4) + sp_palette_w - ui(16), yy + _height); + + draw_sprite_stretched(THEME.ui_panel_bg, 1, ui(4), yy, sp_palette_w - ui(16), _height); + if(isHover) + draw_sprite_stretched_ext(THEME.node_active, 1, ui(4), yy, sp_palette_w - ui(16), _height, COLORS._main_accent, 1); + + draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub); + draw_text(ui(16), yy + ui(8), palette_name[| i]); + if(palette_selecting == i) + drawPaletteGrid(palettes[| i], ui(16), yy + ui(28), ww, _gs); + else + drawPalette(palettes[| i], ui(16), yy + ui(28), ww, ui(20)); + + if(!click_block && mouse_click(mb_left, sFOCUS)) { + if(palette_selecting == i && _hover && point_in_rectangle(_m[0], _m[1], ui(16), yy + ui(28), ui(16) + ww, yy + ui(28) + _height)) { + var m_ax = _m[0] - ui(16); + var m_ay = _m[1] - (yy + ui(28)); + + var m_gx = floor(m_ax / _gs); + var m_gy = floor(m_ay / _gs); + + var _index = m_gy * col + m_gx; + if(_index < pre_amo && _index >= 0) { + selector.setColor(palettes[| i][_index]); + selector.setHSV(); + } + } else if(isHover) { + palette_selecting = i; + click_block = true; + } + } + + yy += _height + ui(4); + hh += _height + ui(4); + } + + if(mouse_release(mb_left)) + click_block = false; + + return hh; + }) +#endregion + #region action function checkMouse() {} #endregion \ No newline at end of file diff --git a/objects/o_dialog_gradient/Draw_64.gml b/objects/o_dialog_gradient/Draw_64.gml index 8c99a55fa..ae57e0ff9 100644 --- a/objects/o_dialog_gradient/Draw_64.gml +++ b/objects/o_dialog_gradient/Draw_64.gml @@ -13,7 +13,9 @@ if !ready exit; var presets_w = ui(240); var content_x = dialog_x + presets_w + ui(16); - var content_w = dialog_w - presets_w - ui(16); + var content_w = ui(556); + + var palette_x = content_x + content_w + ui(16); draw_sprite_stretched(THEME.dialog_bg, 0, presets_x, dialog_y, presets_w, dialog_h); if(sFOCUS) draw_sprite_stretched_ext(THEME.dialog_active, 0, presets_x, dialog_y, presets_w, dialog_h, COLORS._main_accent, 1); @@ -21,9 +23,13 @@ if !ready exit; draw_sprite_stretched(THEME.dialog_bg, 0, content_x, dialog_y, content_w, dialog_h); if(sFOCUS) draw_sprite_stretched_ext(THEME.dialog_active, 0, content_x, dialog_y, content_w, dialog_h, COLORS._main_accent, 1); + draw_sprite_stretched(THEME.dialog_bg, 0, palette_x, dialog_y, presets_w, dialog_h); + if(sFOCUS) draw_sprite_stretched_ext(THEME.dialog_active, 0, palette_x, dialog_y, presets_w, dialog_h, COLORS._main_accent, 1); + draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text_title); draw_text(presets_x + ui(24), dialog_y + ui(16), "Presets"); draw_text(content_x + ui(24), dialog_y + ui(16), name); + draw_text(palette_x + ui(24), dialog_y + ui(16), "Palettes"); #endregion #region presets @@ -72,6 +78,13 @@ if !ready exit; bx -= ui(32); #endregion +#region palette + draw_sprite_stretched(THEME.ui_panel_bg, 0, palette_x + ui(16), dialog_y + ui(44), ui(240 - 32), dialog_h - ui(60)); + + sp_palettes.active = sFOCUS; + sp_palettes.draw(palette_x + ui(16 + 8), dialog_y + ui(44)); +#endregion + #region gradient var gr_x = content_x + ui(22); var gr_y = dialog_y + ui(54); diff --git a/objects/o_dialog_notifications/Create_0.gml b/objects/o_dialog_notifications/Create_0.gml index f395795b9..34f8e79aa 100644 --- a/objects/o_dialog_notifications/Create_0.gml +++ b/objects/o_dialog_notifications/Create_0.gml @@ -15,6 +15,29 @@ event_inherited(); current_page = 0; filter = NOTI_TYPE.log | NOTI_TYPE.warning | NOTI_TYPE.error; + rightClickMenu = [ + [ "Clear log messages", function() { + for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) { + if(STATUSES[| i].type == NOTI_TYPE.log) + ds_list_delete(STATUSES, i); + } + } ], + [ "Clear warning messages", function() { + for( var i = ds_list_size(STATUSES) - 1; i >= 0; i-- ) { + if(STATUSES[| i].type == NOTI_TYPE.warning) + ds_list_delete(STATUSES, i); + } + } ], + -1, + [ "Clear all notifications", function() { + ds_list_clear(STATUSES); + } ], + -1, + [ "Open log file", function() { + shellOpenExplorer(DIRECTORY + "log.txt"); + } ], + ]; + sp_noti = new scrollPane(dialog_w - ui(80), dialog_h - ui(88), function(_y, _m) { draw_clear_alpha(COLORS.panel_bg_clear, 0); @@ -35,14 +58,17 @@ event_inherited(); var _w = sp_noti.w - ui(12); var _h = ui(8) + string_height_ext(noti.txt, -1, txw) + ui(8); - var cc = COLORS.dialog_notification_bg; draw_sprite_stretched_ext(THEME.group_label, 0, 0, yy + ui(2), _w, _h - ui(4), COLORS.dialog_notification_bg, 1); if(sHOVER && sp_noti.hover && point_in_rectangle(_m[0], _m[1], 0, yy, _w, yy + _h - ui(4))) { - cc = COLORS.dialog_notification_bg_hover; + draw_sprite_stretched_ext(THEME.group_label, 0, 0, yy + ui(2), _w, _h - ui(4), COLORS.dialog_notification_bg_hover, 1); + + if(noti.tooltip != "") + TOOLTIP = noti.tooltip; if(noti.onClick != noone && mouse_press(mb_left, sFOCUS)) noti.onClick(); + if(mouse_press(mb_right, sFOCUS)) { var dia = dialogCall(o_dialog_menubox, mouse_mx + ui(8), mouse_my + ui(8)); dia.noti = noti; @@ -50,12 +76,13 @@ event_inherited(); [ "Copy notification message", function() { clipboard_set_text(o_dialog_menubox.noti.txt); } ], + [ "Delete notification", function() { + ds_list_remove(STATUSES, o_dialog_menubox.noti); + } ], ]); } } - draw_sprite_stretched_ext(THEME.group_label, 0, 0, yy + ui(2), _w, _h - ui(4), cc, 1); - if(noti.life_max > 0) { var _nwx = sp_noti.w - ui(12) - ui(40); var _nw = _nwx * noti.life / noti.life_max; @@ -65,6 +92,9 @@ event_inherited(); draw_sprite_stretched_ext(THEME.group_label, 0, 0, yy + ui(2), ui(48), _h - ui(4), noti.color, 1); + if(noti.icon_end != noone) + draw_sprite_ui(noti.icon_end, 1, _w - ui(24), yy + _h / 2,,,, COLORS._main_icon); + var ic = noti.icon; if(noti.icon == noone) { switch(noti.type) { @@ -78,11 +108,13 @@ event_inherited(); var tx = ui(48) + timeW + ui(12); - draw_set_text(f_p3, fa_right, fa_center, COLORS._main_text_sub); - draw_text_ext(tx - ui(4), yy + _h / 2, noti.time, -1, txw); + if(yy >= -_h && yy <= sp_noti.h) { + draw_set_text(f_p3, fa_right, fa_center, COLORS._main_text_sub); + draw_text_ext(tx - ui(4), yy + _h / 2, noti.time, -1, txw); - draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text); - draw_text_ext(tx + ui(4), yy + _h / 2, noti.txt, -1, txw); + draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text); + draw_text_ext(tx + ui(4), yy + _h / 2, noti.txt, -1, txw); + } yy += _h; hh += _h; diff --git a/objects/o_dialog_notifications/Draw_64.gml b/objects/o_dialog_notifications/Draw_64.gml index aa764039a..59f039e96 100644 --- a/objects/o_dialog_notifications/Draw_64.gml +++ b/objects/o_dialog_notifications/Draw_64.gml @@ -17,18 +17,21 @@ if !ready exit; var by = dialog_y + ui(16) + line_height() / 2 - hh / 2; var error = !!(filter & NOTI_TYPE.error); - if(buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_error, error, c_white, 0.3 + error * 0.7) == 2) - filter = filter ^ NOTI_TYPE.error; + var b = buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_error, error, c_white, 0.3 + error * 0.7); + if(b == 2) filter = filter ^ NOTI_TYPE.error; + if(b == 3) dialogCall(o_dialog_menubox, mouse_mx + ui(8), mouse_my + ui(8)).setMenu(rightClickMenu); bx -= ui(36); var warn = !!(filter & NOTI_TYPE.warning); - if(buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_warning, warn, c_white, 0.3 + warn * 0.7) == 2) - filter = filter ^ NOTI_TYPE.warning; + var b = buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_warning, warn, c_white, 0.3 + warn * 0.7); + if(b == 2) filter = filter ^ NOTI_TYPE.warning; + if(b == 3) dialogCall(o_dialog_menubox, mouse_mx + ui(8), mouse_my + ui(8)).setMenu(rightClickMenu); bx -= ui(36); var log = !!(filter & NOTI_TYPE.log); - if(buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_log, log, c_white, 0.3 + log * 0.7) == 2) - filter = filter ^ NOTI_TYPE.log; + var b = buttonInstant(THEME.button_hide, bx, by, ww, hh, mouse_ui, sFOCUS, sHOVER,, THEME.noti_icon_log, log, c_white, 0.3 + log * 0.7); + if(b == 2) filter = filter ^ NOTI_TYPE.log; + if(b == 3) dialogCall(o_dialog_menubox, mouse_mx + ui(8), mouse_my + ui(8)).setMenu(rightClickMenu); draw_sprite_stretched(THEME.ui_panel_bg, 0, dialog_x + ui(24), dialog_y + ui(48), dialog_w - ui(48), dialog_h - ui(72)); sp_noti.active = sHOVER; diff --git a/objects/o_dialog_preference/Create_0.gml b/objects/o_dialog_preference/Create_0.gml index 58daa705d..db697a312 100644 --- a/objects/o_dialog_preference/Create_0.gml +++ b/objects/o_dialog_preference/Create_0.gml @@ -281,7 +281,7 @@ event_inherited(); var cw = ui(100); var ch = th - ui(4); - var cx = x1 - cw; + var cx = x1 - cw - ui(8); var category = ""; for( var i = 0; i < array_length(COLOR_KEYS); i++ ) { @@ -304,7 +304,7 @@ event_inherited(); } if(ind % 2 == 0) - draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, sp_colors.w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); + draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, sp_colors.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); var keyStr = string_replace_all(key, "_", " "); keyStr = string_replace(keyStr, cat + " ", ""); @@ -355,6 +355,17 @@ event_inherited(); var padd = ui(6); var ind = 0; + for(var i = 0; i < ds_list_size(current_list); i++) { + var _pref = current_list[| i]; + if(is_string(_pref)) continue; + + var name = _pref[0]; + if(search_text != "" && string_pos(string_lower(search_text), string_lower(name)) == 0) + continue; + + _pref[2].register(sp_pref); + } + for(var i = 0; i < ds_list_size(current_list); i++) { var _pref = current_list[| i]; @@ -373,7 +384,7 @@ event_inherited(); continue; if(ind % 2 == 0) - draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, sp_pref.w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); + draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, yy - padd, sp_pref.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text); draw_text(ui(8), yy + th / 2, _pref[0]); @@ -429,8 +440,10 @@ event_inherited(); var padd = ui(8); var hh = 0; var currGroup = -1; - var x1 = sp_hotkey.surface_w; - + var x1 = sp_hotkey.surface_w; + var key_x1 = x1 - ui(32); + var modified = false; + for(var j = 0; j < ds_list_size(HOTKEY_CONTEXT); j++) { var ll = HOTKEYS[? HOTKEY_CONTEXT[| j]]; @@ -439,7 +452,10 @@ event_inherited(); var group = key.context; var name = key.name; var pkey = key.key; - //var modi = key.modi; + var modi = key.modi; + + var dkey = key.dKey; + var dmod = key.dModi; if(search_text != "" && string_pos(string_lower(search_text), string_lower(name)) == 0) continue; @@ -457,7 +473,7 @@ event_inherited(); if(i % 2 == 0) { draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _y + hh - padd, - sp_hotkey.w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); + sp_hotkey.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1); } draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text); @@ -469,10 +485,10 @@ event_inherited(); if(hk_editing == key) { var _mod_prs = 0; - if(key_mod_press(CTRL)) _mod_prs |= MOD_KEY.ctrl; + if(key_mod_press(CTRL)) _mod_prs |= MOD_KEY.ctrl; if(keyboard_check(vk_shift)) _mod_prs |= MOD_KEY.shift; if(keyboard_check(vk_alt)) _mod_prs |= MOD_KEY.alt; - + if(keyboard_check_pressed(vk_escape)) { key.key = ""; key.modi = 0; @@ -480,42 +496,73 @@ event_inherited(); PREF_SAVE(); } else if(keyboard_check_pressed(vk_anykey)) { var press = false; - for(var a = 32; a <= 126; a++) { - if(keyboard_check_pressed(a)) { - key.key = ord(string_upper(ansi_char(a))); + + for(var a = 0; a < array_length(vk_list); a++) { + if(!keyboard_check_pressed(vk_list[a])) continue; + key.key = vk_list[a]; + press = true; + break; + } + + if(!press) { + var k = ds_map_find_first(global.KEY_STRING_MAP); + var amo = ds_map_size(global.KEY_STRING_MAP); + repeat(amo) { + if(!keyboard_check_pressed(k)) { + k = ds_map_find_next(global.KEY_STRING_MAP, k); + continue; + } + key.key = k; press = true; break; } } - if(!press) { - for(var a = 0; a < array_length(vk_list); a++) { - if(keyboard_check_pressed(vk_list[a])) { - key.key = vk_list[a]; - press = true; - break; - } - } - } if(press) key.modi = _mod_prs; PREF_SAVE(); } - draw_sprite_stretched(THEME.button_hide, 2, x1 - ui(40) - kw, _y + hh - ui(6), kw + ui(32), th + ui(12)); + draw_sprite_stretched(THEME.button_hide, 2, key_x1 - ui(40) - kw, _y + hh - ui(6), kw + ui(32), th + ui(12)); } else { - if(buttonInstant(THEME.button_hide, x1 - ui(40) - kw, _y + hh - ui(6), kw + ui(32), th + ui(12), - _m, sFOCUS, sHOVER && sp_hotkey.hover) == 2) { - hk_editing = key; - keyboard_lastchar = pkey; + var bx = key_x1 - ui(40) - kw; + var by = _y + hh - ui(6); + if(buttonInstant(THEME.button_hide, bx, by, kw + ui(32), th + ui(12), _m, sFOCUS, sHOVER && sp_hotkey.hover) == 2) { + hk_editing = key; + keyboard_lastchar = pkey; } } draw_set_text(f_p0, fa_right, fa_top, hk_editing == key? COLORS._main_text_accent : COLORS._main_text); - draw_text(x1 - ui(24), _y + hh, dk); + draw_text(key_x1 - ui(24), _y + hh, dk); + + if(key.key != dkey || key.modi != dmod) { + modified = true; + var bx = x1 - ui(32); + var by = _y + hh; + if(buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), _m, sFOCUS, sHOVER && sp_hotkey.hover, "Reset", THEME.refresh_s) == 2) { + key.key = dkey; + key.modi = dmod; + } + } hh += th + padd * 2; } } + if(modified) { + var bx = x1 - ui(32); + var by = _y + ui(2); + if(buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), _m, sFOCUS, sHOVER && sp_hotkey.hover, "Reset all", THEME.refresh_s) == 2) { + for(var j = 0; j < ds_list_size(HOTKEY_CONTEXT); j++) { + var ll = HOTKEYS[? HOTKEY_CONTEXT[| j]]; + for(var i = 0; i < ds_list_size(ll); i++) { + var key = ll[| i]; + key.key = key.dKey; + key.modi = key.dModi; + } + } + } + } + return hh; }) #endregion diff --git a/objects/o_dialog_preference/Draw_64.gml b/objects/o_dialog_preference/Draw_64.gml index 8b9712db1..bfe186d1c 100644 --- a/objects/o_dialog_preference/Draw_64.gml +++ b/objects/o_dialog_preference/Draw_64.gml @@ -79,7 +79,7 @@ if !ready exit; sp_colors.active = sHOVER; sp_colors.draw(dialog_x + ui(168), yy + ui(40)); - } else if(page_current == 2) { + } else if(page_current == 4) { if(mouse_press(mb_left, sFOCUS)) hk_editing = noone; diff --git a/objects/o_main/Create_0.gml b/objects/o_main/Create_0.gml index d12d7ffdd..527954d93 100644 --- a/objects/o_main/Create_0.gml +++ b/objects/o_main/Create_0.gml @@ -40,7 +40,7 @@ addHotkey("", "Undo", "Z", MOD_KEY.ctrl, function() { UNDO(); }); addHotkey("", "Redo", "Z", MOD_KEY.ctrl | MOD_KEY.shift, function() { REDO(); }); - addHotkey("", "Full panel", vk_tab, MOD_KEY.none, set_focus_fullscreen); + addHotkey("", "Full panel", "`", MOD_KEY.none, set_focus_fullscreen); addHotkey("", "Render all", vk_f5, MOD_KEY.none, function() { UPDATE |= RENDER_TYPE.full; @@ -84,6 +84,10 @@ case ".json" : node = Node_create_Json_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); break; + case ".ase" : + case ".aseprite" : + node = Node_create_ASE_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); + break; case ".png" : case ".jpg" : case ".jpeg" : diff --git a/objects/o_main/Draw_64.gml b/objects/o_main/Draw_64.gml index 816affb92..4c5228bc1 100644 --- a/objects/o_main/Draw_64.gml +++ b/objects/o_main/Draw_64.gml @@ -1,4 +1,18 @@ /// @description init +#region widget scroll + if(keyboard_check_pressed(vk_tab) && keyboard_check(vk_shift)) + widget_previous(); + else if(keyboard_check_pressed(vk_tab)) + widget_next(); + + if(keyboard_check_pressed(vk_enter)) + widget_trigger(); +#endregion + +#region register UI element + WIDGET_ACTIVE = []; +#endregion + #region panels if(PANEL_MAIN != 0) { PANEL_MAIN.draw(); diff --git a/objects/o_main/Other_4.gml b/objects/o_main/Other_4.gml index ee602a40d..82a8651b2 100644 --- a/objects/o_main/Other_4.gml +++ b/objects/o_main/Other_4.gml @@ -1,2 +1,3 @@ /// @description init -MODIFIED = false; \ No newline at end of file +MODIFIED = false; +PREF_LOAD(); \ No newline at end of file diff --git a/objects/o_main/Step_0.gml b/objects/o_main/Step_0.gml index b5f608400..a96cb15c3 100644 --- a/objects/o_main/Step_0.gml +++ b/objects/o_main/Step_0.gml @@ -49,7 +49,8 @@ if(ds_map_exists(HOTKEYS, "")) { var l = HOTKEYS[? ""]; for(var i = 0; i < ds_list_size(l); i++) { - var hotkey = l[| i]; + var hotkey = l[| i]; + var name = hotkey.name; if(key_press(hotkey.key, hotkey.modi)) { hotkey.action(); diff --git a/objects/o_main/Step_1.gml b/objects/o_main/Step_1.gml index 9c794eba8..cfac52646 100644 --- a/objects/o_main/Step_1.gml +++ b/objects/o_main/Step_1.gml @@ -34,7 +34,7 @@ _k = ds_map_find_next(NODE_MAP, _k); } - if(UPDATE & RENDER_TYPE.full || ANIMATOR.rendering) + if(UPDATE & RENDER_TYPE.full || (ANIMATOR.rendering && ANIMATOR.frame_progress)) Render(); if(UPDATE & RENDER_TYPE.partial) Render(true); diff --git a/options/windows/options_windows.yy b/options/windows/options_windows.yy index bcb591902..865550ccd 100644 --- a/options/windows/options_windows.yy +++ b/options/windows/options_windows.yy @@ -2,9 +2,12 @@ "resourceType": "GMWindowsOptions", "resourceVersion": "1.1", "name": "Windows", - "option_windows_display_name": "Pixel Composer 1.0.9", - "option_windows_executable_name": "${project_name} 1.0.9.exe", - "option_windows_version": "1.0.9.0", + "ConfigValues": { + "Tester": {"option_windows_version":"1.1.0.1","option_windows_executable_name":"${project_name} 1.1.0.1.exe","option_windows_display_name":"Pixel Composer 1.1.0.1",}, + }, + "option_windows_display_name": "Pixel Composer 1.1.0", + "option_windows_executable_name": "${project_name} 1.1.0.exe", + "option_windows_version": "1.1.0.0", "option_windows_company_info": "MakhamDev", "option_windows_product_info": "Pixel Composer", "option_windows_copyright_info": "", diff --git a/scripts/_3D/_3D.gml b/scripts/_3D/_3D.gml index e4db21e08..22d0ef208 100644 --- a/scripts/_3D/_3D.gml +++ b/scripts/_3D/_3D.gml @@ -66,13 +66,13 @@ enum CAMERA_PROJ { vertex_add_pnt(VB, [_0, _0, _0], [0, 0, -1], [0, 0]); vertex_add_pnt(VB, [_0, _1, _0], [0, 0, -1], [0, 1]); - vertex_add_pnt(VB, [_1, _0, _1], [0, 0, 1], [1, 0]); - vertex_add_pnt(VB, [_0, _0, _1], [0, 0, 1], [0, 0]); - vertex_add_pnt(VB, [_1, _1, _1], [0, 0, 1], [1, 1]); + vertex_add_pnt(VB, [_1, _0, _1], [0, 0, 1], [0, 0]); + vertex_add_pnt(VB, [_0, _0, _1], [0, 0, 1], [1, 0]); + vertex_add_pnt(VB, [_1, _1, _1], [0, 0, 1], [0, 1]); - vertex_add_pnt(VB, [_1, _1, _1], [0, 0, 1], [1, 1]); - vertex_add_pnt(VB, [_0, _0, _1], [0, 0, 1], [0, 0]); - vertex_add_pnt(VB, [_0, _1, _1], [0, 0, 1], [0, 1]); + vertex_add_pnt(VB, [_1, _1, _1], [0, 0, 1], [0, 1]); + vertex_add_pnt(VB, [_0, _0, _1], [0, 0, 1], [1, 0]); + vertex_add_pnt(VB, [_0, _1, _1], [0, 0, 1], [1, 1]); vertex_add_pnt(VB, [_1, _0, _0], [0, 1, 0], [1, 0]); @@ -92,13 +92,13 @@ enum CAMERA_PROJ { vertex_add_pnt(VB, [_0, _1, _1], [0, -1, 0], [0, 1]); - vertex_add_pnt(VB, [_0, _1, _0], [1, 0, 0], [0, 1]); - vertex_add_pnt(VB, [_0, _0, _0], [1, 0, 0], [0, 0]); - vertex_add_pnt(VB, [_0, _1, _1], [1, 0, 0], [1, 1]); + vertex_add_pnt(VB, [_0, _1, _0], [1, 0, 0], [1, 1]); + vertex_add_pnt(VB, [_0, _0, _0], [1, 0, 0], [1, 0]); + vertex_add_pnt(VB, [_0, _1, _1], [1, 0, 0], [0, 1]); - vertex_add_pnt(VB, [_0, _1, _1], [1, 0, 0], [1, 1]); - vertex_add_pnt(VB, [_0, _0, _0], [1, 0, 0], [0, 0]); - vertex_add_pnt(VB, [_0, _0, _1], [1, 0, 0], [1, 0]); + vertex_add_pnt(VB, [_0, _1, _1], [1, 0, 0], [0, 1]); + vertex_add_pnt(VB, [_0, _0, _0], [1, 0, 0], [1, 0]); + vertex_add_pnt(VB, [_0, _0, _1], [1, 0, 0], [0, 0]); vertex_add_pnt(VB, [_1, _1, _0], [-1, 0, 0], [0, 1]); vertex_add_pnt(VB, [_1, _0, _0], [-1, 0, 0], [0, 0]); diff --git a/scripts/__VFX/__VFX.gml b/scripts/__VFX/__VFX.gml index 3546961aa..8940501bc 100644 --- a/scripts/__VFX/__VFX.gml +++ b/scripts/__VFX/__VFX.gml @@ -31,14 +31,16 @@ function __part(_node) constructor { scx = 1; scy = 1; - scx_s = 1; - scy_s = 1; + sc_sx = 1; + sc_sy = 1; + sct = CURVE_DEF_11; rot = 0; follow = false; rot_s = 0; col = -1; + blend = c_white; alp = 1; alp_draw = alp; alp_fade = 0; @@ -70,17 +72,18 @@ function __part(_node) constructor { wig = _wig; } - function setTransform(_scx, _scy, _scxs, _scys, _rot, _rots, _follow) { - scx = _scx; - scy = _scy; - scx_s = _scxs; - scy_s = _scys; + function setTransform(_scx, _scy, _sct, _rot, _rots, _follow) { + sc_sx = _scx; + sc_sy = _scy; + sct = _sct; + rot = _rot; rot_s = _rots; follow = _follow; } - function setDraw(_col, _alp, _fade) { + function setDraw(_col, _blend, _alp, _fade) { col = _col; + blend = _blend; alp = _alp; alp_draw = _alp; alp_fade = _fade; @@ -109,23 +112,17 @@ function __part(_node) constructor { gy += g; y += gy; - if(scx_s < 0) scx = max(scx + scx_s, 0); - else scx = scx + scx_s; - if(scy_s < 0) scy = max(scy + scy_s, 0); - else scy = scy + scy_s; - if(follow) rot = point_direction(xp, yp, x, y); else rot += rot_s; - alp_draw = alp * eval_curve_bezier_cubic_x(alp_fade, 1 - life / life_total); if(step_int > 0 && safe_mod(life, step_int) == 0) node.onPartStep(self); if(life-- < 0) kill(); } - function draw(exact) { + function draw(exact, surf_w, surf_h) { if(!active) return; var ss = surf; if(is_array(surf)) { @@ -148,7 +145,9 @@ function __part(_node) constructor { } if(!is_surface(ss)) return; - var cc = (col == -1)? c_white : gradient_eval(col, 1 - life / life_total); + scx = sc_sx * eval_curve_bezier_cubic_x(sct, 1 - life / life_total); + scy = sc_sy * eval_curve_bezier_cubic_x(sct, 1 - life / life_total); + var _xx, _yy; var s_w = surface_get_width(ss) * scx; var s_h = surface_get_height(ss) * scy; @@ -175,6 +174,16 @@ function __part(_node) constructor { _yy = round(_yy); } + var x0 = _xx - s_w * 1.5; + var y0 = _yy - s_h * 1.5; + var x1 = _xx + s_w * 1.5; + var y1 = _yy + s_h * 1.5; + + if(x0 > surf_w || y0 > surf_h || x1 < 0 || y1 < 0) return; + + var cc = (col == -1)? c_white : gradient_eval(col, 1 - life / life_total); + cc = colorMultiply(blend, cc); + alp_draw = alp * eval_curve_bezier_cubic_x(alp_fade, 1 - life / life_total); draw_surface_ext_safe(ss, _xx, _yy, scx, scy, rot, cc, alp_draw); } diff --git a/scripts/_node_VFX/_node_VFX.gml b/scripts/_node_VFX/_node_VFX.gml deleted file mode 100644 index a802eab33..000000000 --- a/scripts/_node_VFX/_node_VFX.gml +++ /dev/null @@ -1,367 +0,0 @@ -/* Backup -function Node_VFX(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { - name = "VFX"; - use_cache = true; - - inputs[| 0] = nodeValue(0, "Particle sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0) - .setDisplay(noone, "particles"); - - inputs[| 1] = nodeValue(1, "Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2) - .setDisplay(VALUE_DISPLAY.vector); - - inputs[| 2] = nodeValue(2, "Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); - inputs[| 3] = nodeValue(3, "Spawn amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); - inputs[| 4] = nodeValue(4, "Spawn area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, AREA_SHAPE.rectangle ]) - .setDisplay(VALUE_DISPLAY.area, function() { return inputs[| 1].getValue(); }); - - inputs[| 5] = nodeValue(5, "Spawn distribution", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Area", "Border" ]); - - inputs[| 6] = nodeValue(6, "Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 20, 30 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 7] = nodeValue(7, "Spawn direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 45, 135 ]) - .setDisplay(VALUE_DISPLAY.rotation_range); - inputs[| 8] = nodeValue(8, "Acceleration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 9] = nodeValue(9, "Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 0]) - .setDisplay(VALUE_DISPLAY.rotation_range); - - inputs[| 10] = nodeValue(10, "Rotational speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 11] = nodeValue(11, "Spawn scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1, 1 ] ) - .setDisplay(VALUE_DISPLAY.vector_range); - inputs[| 12] = nodeValue(12, "Scaling speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) - .setDisplay(VALUE_DISPLAY.vector); - - inputs[| 13] = nodeValue(13, "Color over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) - .setDisplay(VALUE_DISPLAY.gradient); - inputs[| 14] = nodeValue(14, "Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) - .setDisplay(VALUE_DISPLAY.range); - inputs[| 15] = nodeValue(15, "Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); - - inputs[| 16] = nodeValue(16, "Rotate by direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); - - inputs[| 17] = nodeValue(17, "Spawn type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Stream", "Burst" ]); - - inputs[| 18] = nodeValue(18, "Spawn size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 19] = nodeValue(19, "Draw exact", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); - - inputs[| 20] = nodeValue(20, "Spawn velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [1, 2] ) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 21] = nodeValue(21, "Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); - inputs[| 22] = nodeValue(22, "Wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); - - inputs[| 23] = nodeValue(23, "Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); - - inputs[| 24] = nodeValue(24, "Blend mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Normal", "Additive" ]); - - inputs[| 25] = nodeValue(25, "Surface array", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Random", "Order", "Animation" ]) - .setVisible(false); - - inputs[| 26] = nodeValue(26, "Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) - .setVisible(false); - - inputs[| 27] = nodeValue(27, "Scatter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Random", "Data" ]); - - inputs[| 28] = nodeValue(28, "Boundary data", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, []) - .setVisible(false, true); - - inputs[| 29] = nodeValue(29, "On animation end", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, ANIM_END_ACTION.loop) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Loop", "Ping pong", "Destroy" ]) - .setVisible(false); - - input_display_list = [ - ["Output", true], 1, - ["Sprite", false], 0, 25, 26, 29, - ["Spawn", true], 17, 2, 3, 4, 5, 27, 28, 6, - ["Movement", true], 7, 20, 8, - ["Physics", true], 21, 22, - ["Rotation", true], 16, 9, 10, - ["Scale", true], 11, 18, 12, - ["Color", true], 13, 14, 15, - ["Render", true], 24, 19, 23 - ]; - - outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); - - seed_origin = irandom(9999999); - seed = seed_origin; - def_surface = -1; - - parts = ds_list_create(); - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - ds_list_add(parts, new __part()); - - outputs[| 1] = nodeValue(1, "Particle data", self, JUNCTION_CONNECT.output, VALUE_TYPE.object, parts ); - - static spawn = function(_time = ANIMATOR.current_frame) { - random_set_seed(seed++); - - var _inSurf = inputs[| 0].getValue(_time); - - if(_inSurf == 0) { - if(def_surface == -1 || !surface_exists(def_surface)) { - def_surface = PIXEL_SURFACE; - surface_set_target(def_surface); - draw_clear(c_white); - surface_reset_target(); - } - _inSurf = def_surface; - } - - var _spawn_amount = inputs[| 3].getValue(_time); - var _amo = _spawn_amount; - - var _spawn_area = inputs[| 4].getValue(_time); - var _distrib = inputs[| 5].getValue(_time); - var _scatter = inputs[| 27].getValue(_time); - - var _life = inputs[| 6].getValue(_time); - var _direction = inputs[| 7].getValue(_time); - var _velocity = inputs[| 20].getValue(_time); - - var _accel = inputs[| 8].getValue(_time); - var _grav = inputs[| 21].getValue(_time); - var _wigg = inputs[| 22].getValue(_time); - - var _follow = inputs[| 16].getValue(_time); - var _rotation = inputs[| 9].getValue(_time); - var _rotation_speed = inputs[| 10].getValue(_time); - var _scale = inputs[| 11].getValue(_time); - var _size = inputs[| 18].getValue(_time); - var _scale_speed = inputs[| 12].getValue(_time); - - var _loop = inputs[| 23].getValue(_time); - - var _color = inputs[| 13].getValue(_time); - var _alpha = inputs[| 14].getValue(_time); - var _fade = inputs[| 15].getValue(_time); - - var _arr_type = inputs[| 25].getValue(_time); - var _anim_speed = inputs[| 26].getValue(_time); - var _anim_end = inputs[| 29].getValue(_time); - - if(_rotation[1] < _rotation[0]) _rotation[1] += 360; - - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - if(!parts[| i].active) { - var _spr = _inSurf, _index = 0; - if(is_array(_inSurf)) { - if(_arr_type == 0) { - _index = irandom(array_length(_inSurf) - 1); - _spr = _inSurf[_index]; - } else if(_arr_type == 1) { - _index = safe_mod(spawn_index, array_length(_inSurf)); - _spr = _inSurf[_index]; - } else if(_arr_type == 2) - _spr = _inSurf; - } - var xx = 0; - var yy = 0; - - if(_scatter == 2) { - var _b_data = inputs[| 28].getValue(_time); - if(!is_array(_b_data) || array_length(_b_data) <= 0) return; - var _b = _b_data[safe_mod(_index, array_length(_b_data))]; - if(!is_array(_b) || array_length(_b) != 4) return; - - xx = array_safe_get(_spawn_area, 0) - array_safe_get(_spawn_area, 2); - yy = array_safe_get(_spawn_area, 1) - array_safe_get(_spawn_area, 3); - - parts[| i].boundary_data = _b; - } else { - var sp = area_get_random_point(_spawn_area, _distrib, _scatter, spawn_index, _spawn_amount); - xx = sp[0]; - yy = sp[1]; - - parts[| i].boundary_data = -1; - } - - var _lif = random_range(_life[0], _life[1]); - - var _rot = random_range(_rotation[0], _rotation[1]); - var _rot_spd = random_range(_rotation_speed[0], _rotation_speed[1]); - - var _dirr = random_range(_direction[0], _direction[1]); - - var _velo = random_range(_velocity[0], _velocity[1]); - var _vx = lengthdir_x(_velo, _dirr); - var _vy = lengthdir_y(_velo, _dirr); - var _acc = random_range(_accel[0], _accel[1]); - - var _ss = random_range(_size[0], _size[1]); - var _scx = random_range(_scale[0], _scale[1]) * _ss; - var _scy = random_range(_scale[2], _scale[3]) * _ss; - - var _alp = random_range(_alpha[0], _alpha[1]); - - parts[| i].create(_spr, xx, yy, _lif); - parts[| i].anim_speed = _anim_speed; - parts[| i].anim_end = _anim_end; - - parts[| i].setPhysic(_vx, _vy, _acc, _grav, _wigg); - parts[| i].setTransform(_scx, _scy, _scale_speed[0], _scale_speed[1], _rot, _rot_spd, _follow); - parts[| i].setDraw(_color, _alp, _fade); - spawn_index = safe_mod(spawn_index + 1, PREF_MAP[? "part_max_amount"]); - - if(--_amo <= 0) - return; - } - } - } - - function reset() { - spawn_index = 0; - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - parts[| i].kill(); - } - render(); - seed = seed_origin; - - var _loop = inputs[| 23].getValue(); - if(!_loop) return; - - for(var i = 0; i < ANIMATOR.frames_total; i++) - runVFX(i); - - seed = seed_origin; - } - - function updateParticle(_time = ANIMATOR.current_frame) { - var jun = outputs[| 1]; - for(var j = 0; j < ds_list_size(jun.value_to); j++) { - if(jun.value_to[| j].value_from == jun) - jun.value_to[| j].node.doUpdate(); - } - - render(_time); - } - - function checkPartPool() { - var _part_amo = PREF_MAP[? "part_max_amount"]; - var _curr_amo = ds_list_size(parts); - - if(_part_amo > _curr_amo) { - repeat(_part_amo - _curr_amo) - ds_list_add(parts, new __part()); - } else if(_part_amo < _curr_amo) { - repeat(_curr_amo - _part_amo) - ds_list_delete(parts, 0); - } - } - - static runVFX = function(_time = ANIMATOR.current_frame) { - var _spawn_delay = inputs[| 2].getValue(_time); - var _spawn_type = inputs[| 17].getValue(_time); - - switch(_spawn_type) { - case 0 : - if(safe_mod(_time, _spawn_delay) == 0) - spawn(_time); - break; - case 1 : - if(_time == _spawn_delay) - spawn(_time); - break; - } - - for(var i = 0; i < ds_list_size(parts); i++) - parts[| i].step(); - updateParticle(_time); - triggerRender(); - } - - static step = function() { - var _inSurf = inputs[| 0].getValue(); - var _scatt = inputs[| 27].getValue(); - var _loop = inputs[| 23].getValue(); - - inputs[| 25].setVisible(false); - inputs[| 26].setVisible(false); - inputs[| 28].setVisible(_scatt == 2); - - if(is_array(_inSurf)) { - inputs[| 25].setVisible(true); - var _type = inputs[| 25].getValue(); - if(_type == 2) { - inputs[| 26].setVisible(true); - inputs[| 29].setVisible(true); - } - } - - checkPartPool(); - var _spawn_type = inputs[| 17].getValue(); - if(_spawn_type == 0) inputs[| 2].name = "Spawn delay"; - else inputs[| 2].name = "Spawn frame"; - - if(ANIMATOR.frame_progress) { - if(recoverCache()) { - triggerRender(); - return; - } - - if(!ANIMATOR.is_playing) return; - - if(ANIMATOR.current_frame == 0) { - reset(); - runVFX(ANIMATOR.current_frame); - } else if(cached_output[ANIMATOR.current_frame - 1] != 0) { - runVFX(ANIMATOR.current_frame); - } - } - } - - static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { - inputs[| 4].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); - if(onDrawOverlay != -1) - onDrawOverlay(active, _x, _y, _s, _mx, _my); - } - - static onDrawOverlay = -1; - - function render(_time = ANIMATOR.current_frame) { - var _dim = inputs[| 1].getValue(_time); - var _exact = inputs[| 19].getValue(_time); - var _blend = inputs[| 24].getValue(_time); - - var _outSurf = outputs[| 0].getValue(); - - if(is_surface(_outSurf)) - surface_size_to(_outSurf, _dim[0], _dim[1]); - else { - _outSurf = surface_create_valid(_dim[0], _dim[1]); - outputs[| 0].setValue(_outSurf); - } - - surface_set_target(_outSurf); - draw_clear_alpha(c_white, 0); - - switch(_blend) { - case PARTICLE_BLEND_MODE.normal : gpu_set_blendmode(bm_normal); break; - case PARTICLE_BLEND_MODE.additive : gpu_set_blendmode(bm_add); break; - } - - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - parts[| i].draw(_exact); - - gpu_set_blendmode(bm_normal); - surface_reset_target(); - - cacheCurrentFrame(_outSurf); - } - - static update = function() { - reset(); - } - render(); -} \ No newline at end of file diff --git a/scripts/_node_VFX_effector/_node_VFX_effector.gml b/scripts/_node_VFX_effector/_node_VFX_effector.gml index d0f808b4e..512ea80c8 100644 --- a/scripts/_node_VFX_effector/_node_VFX_effector.gml +++ b/scripts/_node_VFX_effector/_node_VFX_effector.gml @@ -78,8 +78,8 @@ function Node_Particle_Effector(_x, _y, _group = -1) : Node(_x, _y, _group) cons var _area_y0 = _area_y - _area_h; var _area_y1 = _area_y + _area_h; - for(var i = 0; i < ds_list_size(parts); i++) { - var part = parts[| i]; + for(var i = 0; i < array_length(parts); i++) { + var part = parts[i]; var pv = part.getPivot(); var px = _x + part.x * _s; var py = _y + part.y * _s; @@ -91,12 +91,12 @@ function Node_Particle_Effector(_x, _y, _group = -1) : Node(_x, _y, _group) cons distance_to_line(pv[0], pv[1], _area_x0, _area_y1, _area_x1, _area_y1), distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x0, _area_y1), distance_to_line(pv[0], pv[1], _area_x1, _area_y0, _area_x1, _area_y1)); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); + str = eval_curve_bezier_cubic_t(_fall, clamp(_dst / _fads, 0., 1.)); } } else if(_area_t == AREA_SHAPE.elipse) { if(point_in_circle(pv[0], pv[1], _area_x, _area_y, min(_area_w, _area_h))) { var _dst = point_distance(pv[0], pv[1], _area_x, _area_y); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); + str = eval_curve_bezier_cubic_t(_fall, clamp(_dst / _fads, 0., 1.)); } } @@ -141,6 +141,19 @@ function Node_Particle_Effector(_x, _y, _group = -1) : Node(_x, _y, _group) cons } } + static updateParticleForward = function(_render = true) { + update(); + + var pt = outputs[| 0]; + for( var i = 0; i < ds_list_size(pt.value_to); i++ ) { + var _n = pt.value_to[| i]; + if(_n.value_from != pt) continue; + + if(variable_struct_exists(_n.node, "updateParticleForward")) + _n.node.updateParticleForward(); + } + } + static step = function() { var _type = inputs[| 5].getValue(); switch(_type) { @@ -206,12 +219,12 @@ function Node_Particle_Effector(_x, _y, _group = -1) : Node(_x, _y, _group) cons distance_to_line(pv[0], pv[1], _area_x0, _area_y1, _area_x1, _area_y1), distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x0, _area_y1), distance_to_line(pv[0], pv[1], _area_x1, _area_y0, _area_x1, _area_y1)); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); + str = eval_curve_bezier_cubic_t(_fall, clamp(_dst / _fads, 0., 1.)); } } else if(_area_t == AREA_SHAPE.elipse) { if(point_in_circle(pv[0], pv[1], _area_x, _area_y, min(_area_w, _area_h))) { var _dst = point_distance(pv[0], pv[1], _area_x, _area_y); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); + str = eval_curve_bezier_cubic_t(_fall, clamp(_dst / _fads, 0., 1.)); } } @@ -297,7 +310,7 @@ function Node_Particle_Effector(_x, _y, _group = -1) : Node(_x, _y, _group) cons for(var i = 0; i < ds_list_size(inputs); i++) { current_data[i] = inputs[| i].getValue(); } - for(var i = 0; i < ds_list_size(parts); i++) - affect(parts[| i]); + for(var i = 0; i < array_length(parts); i++) + affect(parts[i]); } } \ No newline at end of file diff --git a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml index 1c08c0559..ace566585 100644 --- a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml @@ -5,7 +5,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const .setDisplay(noone, "particles"); inputs[| 1] = nodeValue(1, "Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); + inputs[| 2] = nodeValue(2, "Spawn amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); + inputs[| 3] = nodeValue(3, "Spawn area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, AREA_SHAPE.rectangle ]) .setDisplay(VALUE_DISPLAY.area); @@ -17,6 +19,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const inputs[| 6] = nodeValue(6, "Spawn direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 45, 135 ]) .setDisplay(VALUE_DISPLAY.rotation_range); + inputs[| 7] = nodeValue(7, "Acceleration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) .setDisplay(VALUE_DISPLAY.range); @@ -28,13 +31,15 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const inputs[| 10] = nodeValue(10, "Spawn scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1, 1 ] ) .setDisplay(VALUE_DISPLAY.vector_range); - inputs[| 11] = nodeValue(11, "Scaling speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) - .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 11] = nodeValue(11, "Scale over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); inputs[| 12] = nodeValue(12, "Color over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) .setDisplay(VALUE_DISPLAY.gradient); + inputs[| 13] = nodeValue(13, "Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) .setDisplay(VALUE_DISPLAY.range); + inputs[| 14] = nodeValue(14, "Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); inputs[| 15] = nodeValue(15, "Rotate by direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); @@ -49,6 +54,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const .setDisplay(VALUE_DISPLAY.range); inputs[| 19] = nodeValue(19, "Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); + inputs[| 20] = nodeValue(20, "Wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); inputs[| 21] = nodeValue(21, "Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); @@ -71,33 +77,40 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const .setVisible(false); inputs[| 27] = nodeValue(27, "Spawn", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + + inputs[| 28] = nodeValue(28, "Random blend", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) + .setDisplay(VALUE_DISPLAY.gradient); + + inputs[| 29] = nodeValue(29, "Directed from center", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + input_len = ds_list_size(inputs); input_display_list = [ ["Sprite", false], 0, 22, 23, 26, ["Spawn", true], 27, 16, 1, 2, 3, 4, 24, 25, 5, - ["Movement", true], 6, 18, 7, + ["Movement", true], 29, 6, 18, 7, ["Physics", true], 19, 20, ["Rotation", true], 15, 8, 9, ["Scale", true], 10, 17, 11, - ["Color", true], 12, 13, 14, + ["Color", true], 12, 28, 13, 14, ["Render", true], 21 ]; - parts = ds_list_create(); + parts = array_create(PREF_MAP[? "part_max_amount"]); + parts_runner = 0; seed_origin = irandom(9999999); seed = seed_origin; spawn_index = 0; def_surface = -1; + current_data = []; + for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - ds_list_add(parts, new __part(self)); + parts[i] = new __part(self); static spawn = function(_time = ANIMATOR.current_frame, _pos = -1) { - random_set_seed(seed++); - - var _inSurf = inputs[| 0].getValue(_time); + var _inSurf = current_data[0]; if(_inSurf == 0) { if(def_surface == -1 || !surface_exists(def_surface)) { @@ -109,40 +122,45 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const _inSurf = def_surface; } - var _spawn_amount = inputs[| 2].getValue(_time); + var _spawn_amount = current_data[ 2]; var _amo = _spawn_amount; - var _spawn_area = inputs[| 3].getValue(_time); - var _distrib = inputs[| 4].getValue(_time); - var _scatter = inputs[| 24].getValue(_time); + var _spawn_area = current_data[ 3]; + var _distrib = current_data[ 4]; + var _scatter = current_data[24]; - var _life = inputs[| 5].getValue(_time); - var _direction = inputs[| 6].getValue(_time); - var _velocity = inputs[| 18].getValue(_time); + var _life = current_data[ 5]; + var _direction = current_data[ 6]; + var _directCenter = current_data[29]; + var _velocity = current_data[18]; - var _accel = inputs[| 7].getValue(_time); - var _grav = inputs[| 19].getValue(_time); - var _wigg = inputs[| 20].getValue(_time); + var _accel = current_data[ 7]; + var _grav = current_data[19]; + var _wigg = current_data[20]; - var _follow = inputs[| 15].getValue(_time); - var _rotation = inputs[| 8].getValue(_time); - var _rotation_speed = inputs[| 9].getValue(_time); - var _scale = inputs[| 10].getValue(_time); - var _size = inputs[| 17].getValue(_time); - var _scale_speed = inputs[| 11].getValue(_time); + var _follow = current_data[15]; + var _rotation = current_data[ 8]; + var _rotation_speed = current_data[ 9]; + var _scale = current_data[10]; + var _size = current_data[17]; + var _scale_time = current_data[11]; - var _color = inputs[| 12].getValue(_time); - var _alpha = inputs[| 13].getValue(_time); - var _fade = inputs[| 14].getValue(_time); + var _color = current_data[12]; + var _blend = current_data[28]; + var _bldTyp = inputs[| 28].getExtraData(); + var _alpha = current_data[13]; + var _fade = current_data[14]; - var _arr_type = inputs[| 22].getValue(_time); - var _anim_speed = inputs[| 23].getValue(_time); - var _anim_end = inputs[| 26].getValue(_time); + var _arr_type = current_data[22]; + var _anim_speed = current_data[23]; + var _anim_end = current_data[26]; if(_rotation[1] < _rotation[0]) _rotation[1] += 360; - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - if(parts[| i].active) continue; + repeat(_amo) { + random_set_seed(seed++); + parts_runner = clamp(parts_runner, 0, array_length(parts) - 1); + var part = parts[parts_runner]; var _spr = _inSurf, _index = 0; if(is_array(_inSurf)) { @@ -160,7 +178,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const if(_pos == -1) { if(_scatter == 2) { - var _b_data = inputs[| 25].getValue(_time); + var _b_data = current_data[25]; if(!is_array(_b_data) || array_length(_b_data) <= 0) return; var _b = _b_data[safe_mod(_index, array_length(_b_data))]; if(!is_array(_b) || array_length(_b) != 4) return; @@ -168,13 +186,13 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const xx = array_safe_get(_spawn_area, 0) - array_safe_get(_spawn_area, 2); yy = array_safe_get(_spawn_area, 1) - array_safe_get(_spawn_area, 3); - parts[| i].boundary_data = _b; + part.boundary_data = _b; } else { - var sp = area_get_random_point(_spawn_area, _distrib, _scatter, spawn_index, _spawn_amount); + var sp = area_get_random_point(_spawn_area, _distrib, _scatter, spawn_index, _spawn_amount, seed); xx = sp[0]; yy = sp[1]; - parts[| i].boundary_data = -1; + part.boundary_data = -1; } } else { xx = _pos[0]; @@ -185,9 +203,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const var _rot = random_range(_rotation[0], _rotation[1]); var _rot_spd = random_range(_rotation_speed[0], _rotation_speed[1]); - - var _dirr = random_range(_direction[0], _direction[1]); - + + var _dirr = _directCenter? point_direction(_spawn_area[0], _spawn_area[1], xx, yy) : random_range(_direction[0], _direction[1]); + var _velo = random_range(_velocity[0], _velocity[1]); var _vx = lengthdir_x(_velo, _dirr); var _vy = lengthdir_y(_velo, _dirr); @@ -198,58 +216,68 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const var _scy = random_range(_scale[2], _scale[3]) * _ss; var _alp = random_range(_alpha[0], _alpha[1]); - - parts[| i].create(_spr, xx, yy, _lif); - parts[| i].anim_speed = _anim_speed; - parts[| i].anim_end = _anim_end; - - parts[| i].setPhysic(_vx, _vy, _acc, _grav, _wigg); - parts[| i].setTransform(_scx, _scy, _scale_speed[0], _scale_speed[1], _rot, _rot_spd, _follow); - parts[| i].setDraw(_color, _alp, _fade); - spawn_index = safe_mod(spawn_index + 1, PREF_MAP[? "part_max_amount"]); - onSpawn(_time, parts[| i]); + var _bld = gradient_eval(_blend, random(1), ds_list_get(_bldTyp, 0)); - if(--_amo <= 0) return; + part.seed = irandom(99999); + part.create(_spr, xx, yy, _lif); + part.anim_speed = _anim_speed; + part.anim_end = _anim_end; + + part.setPhysic(_vx, _vy, _acc, _grav, _wigg); + part.setTransform(_scx, _scy, _scale_time, _rot, _rot_spd, _follow); + part.setDraw(_color, _bld, _alp, _fade); + spawn_index = safe_mod(spawn_index + 1, PREF_MAP[? "part_max_amount"]); + onSpawn(_time, part); + + parts_runner = safe_mod((parts_runner + 1), PREF_MAP[? "part_max_amount"]); } } static onSpawn = function(_time, part) {} + static updateParticleForward = function(_render = true) {} + function reset() { spawn_index = 0; - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - parts[| i].kill(); + for(var i = 0; i < array_length(parts); i++) { + if(!parts[i].active) continue; + parts[i].kill(); } + render(); seed = seed_origin; var _loop = inputs[| 21].getValue(); if(!_loop) return; - for(var i = 0; i < ANIMATOR.frames_total; i++) - runVFX(i); + for(var i = 0; i < ANIMATOR.frames_total; i++) { + runVFX(i, false); + updateParticleForward(false); + } seed = seed_origin; } function checkPartPool() { var _part_amo = PREF_MAP[? "part_max_amount"]; - var _curr_amo = ds_list_size(parts); + var _curr_amo = array_length(parts); if(_part_amo > _curr_amo) { repeat(_part_amo - _curr_amo) - ds_list_add(parts, new __part(self)); + array_push(parts, new __part(self)); } else if(_part_amo < _curr_amo) { - repeat(_curr_amo - _part_amo) - ds_list_delete(parts, 0); + array_resize(parts, _part_amo); } } - static runVFX = function(_time = ANIMATOR.current_frame) { + static runVFX = function(_time = ANIMATOR.current_frame, _render = true) { var _spawn_delay = inputs[| 1].getValue(_time); var _spawn_type = inputs[| 16].getValue(_time); var _spawn_active = inputs[| 27].getValue(_time); + for( var i = 0; i < ds_list_size(inputs); i++ ) + current_data[i] = inputs[| i].getValue(_time); + if(_spawn_active) { switch(_spawn_type) { case 0 : @@ -263,8 +291,13 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const } } - for(var i = 0; i < ds_list_size(parts); i++) - parts[| i].step(); + for(var i = 0; i < array_length(parts); i++) { + if(!parts[i].active) continue; + parts[i].step(); + } + + if(!_render) return; + triggerRender(); render(_time); } @@ -272,7 +305,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) const static step = function() { var _inSurf = inputs[| 0].getValue(); var _scatt = inputs[| 24].getValue(); + var _dirAng = inputs[| 29].getValue(); + inputs[| 6].setVisible(!_dirAng); inputs[| 22].setVisible(false); inputs[| 23].setVisible(false); inputs[| 25].setVisible(_scatt == 2); diff --git a/scripts/areaBox/areaBox.gml b/scripts/areaBox/areaBox.gml index 4026d580a..7cbd076a1 100644 --- a/scripts/areaBox/areaBox.gml +++ b/scripts/areaBox/areaBox.gml @@ -3,24 +3,100 @@ enum AREA_SHAPE { elipse } -function areaBox(_onModify, _unit = noone) constructor { +enum AREA_MODE { + area, + padding, + two_point, +} + +function areaBox(_onModify, _unit = noone) : widget() constructor { onModify = _onModify; unit = _unit; onSurfaceSize = -1; - active = false; - hover = false; + link_value = false; + current_data = [ 0, 0, 0, 0 ]; + mode = AREA_MODE.area; - onModifySingle[0] = function(val) { onModify(0, toNumber(val)); } - onModifySingle[1] = function(val) { onModify(1, toNumber(val)); } - onModifySingle[2] = function(val) { onModify(2, toNumber(val)); } - onModifySingle[3] = function(val) { onModify(3, toNumber(val)); } + onModifySingle[0] = function(val) { + if(mode == AREA_MODE.area) { + onModify(0, toNumber(val)); + } else if(mode == AREA_MODE.padding) { + var v = toNumber(val); + if(link_value) current_data = [ v, v, v, v ]; + else current_data[0] = v; + setAllData(current_data); + } else if(mode == AREA_MODE.two_point) { + onModify(0, val); + } + } + + onModifySingle[1] = function(val) { + if(mode == AREA_MODE.area) { + onModify(1, toNumber(val)); + } else if(mode == AREA_MODE.padding) { + var v = toNumber(val); + if(link_value) current_data = [ v, v, v, v ]; + else current_data[1] = v; + setAllData(current_data); + } else if(mode == AREA_MODE.two_point) { + onModify(1, val); + } + } + + onModifySingle[2] = function(val) { + if(mode == AREA_MODE.area) { + onModify(2, toNumber(val)); + } else if(mode == AREA_MODE.padding) { + var v = toNumber(val); + if(link_value) current_data = [ v, v, v, v ]; + else current_data[2] = v; + setAllData(current_data); + } else if(mode == AREA_MODE.two_point) { + onModify(2, val); + } + } + + onModifySingle[3] = function(val) { + if(mode == AREA_MODE.area) { + onModify(3, toNumber(val)); + } else if(mode == AREA_MODE.padding) { + var v = toNumber(val); + if(link_value) current_data = [ v, v, v, v ]; + else current_data[3] = v; + setAllData(current_data); + } else if(mode == AREA_MODE.two_point) { + onModify(3, val); + } + } for(var i = 0; i < 4; i++) { tb[i] = new textBox(TEXTBOX_INPUT.number, onModifySingle[i]); + tb[i].slidable = true; } - static draw = function(_x, _y, _data, _m) { + static setAllData = function(data) { + onModify(0, data[0]); + onModify(1, data[1]); + onModify(2, data[2]); + onModify(3, data[3]); + } + + static register = function(parent = noone) { + for(var i = 0; i < 4; i++) + tb[i].register(parent); + + if(unit != noone && unit.reference != noone) + unit.triggerButton.register(parent); + } + + static draw = function(_x, _y, _data, _extra_data, _m) { + x = _x; + y = _y; + w = 0; + h = ui(204); + mode = ds_list_get(_extra_data, 0); + if(buttonInstant(THEME.button_hide, _x - ui(48), _y + ui(64 - 48), ui(96), ui(96), _m, active, hover, "", THEME.inspector_area, array_safe_get(_data, 4), c_white) == 2) { if(mouse_press(mb_left, active)) { var val = (array_safe_get(_data, 4) + 1) % 2; @@ -36,6 +112,63 @@ function areaBox(_onModify, _unit = noone) constructor { onModify(2, toNumber(ss[0] / 2)); onModify(3, toNumber(ss[1] / 2)); } + + var txt = ""; + switch(mode) { + case AREA_MODE.area : txt = "Center + Span"; break; + case AREA_MODE.padding : txt = "Padding"; break; + case AREA_MODE.two_point : txt = "Two points"; break; + } + + if(buttonInstant(THEME.button_hide, _x + ui(76 - 24), _y + ui(28 - 12), ui(24), ui(24), _m, active, hover, txt, THEME.inspector_area_type, mode, c_white) == 2) { + switch(mode) { + case AREA_MODE.area : + var cx = array_safe_get(_data, 0); + var cy = array_safe_get(_data, 1); + var sw = array_safe_get(_data, 2); + var sh = array_safe_get(_data, 3); + var ss = onSurfaceSize(); + + onModify(0, ss[0] - (cx + sw)); + onModify(1, cy - sh); + onModify(2, cx - sw); + onModify(3, ss[1] - (cy + sh)); + break; + + case AREA_MODE.padding : + var r = array_safe_get(_data, 0); + var t = array_safe_get(_data, 1); + var l = array_safe_get(_data, 2); + var b = array_safe_get(_data, 3); + var ss = onSurfaceSize(); + + onModify(0, l); + onModify(1, t); + onModify(2, ss[0] - r); + onModify(3, ss[1] - b); + break; + + case AREA_MODE.two_point : + var x0 = array_safe_get(_data, 0); + var y0 = array_safe_get(_data, 1); + var x1 = array_safe_get(_data, 2); + var y1 = array_safe_get(_data, 3); + + onModify(0, (x0 + x1) / 2); + onModify(1, (y0 + y1) / 2); + onModify(2, abs(x0 - x1) / 2); + onModify(3, abs(y0 - y1) / 2); + break; + } + + _extra_data[| 0] = (mode + 1) % 3; + } + } + + if(mode == AREA_MODE.padding) { + var cc = link_value? COLORS._main_accent : COLORS._main_icon; + if(buttonInstant(THEME.button_hide, _x - ui(76), _y + ui(88), ui(24), ui(24), _m, active, hover, "Link value", THEME.value_link, link_value, cc) == 2) + link_value = !link_value; } for(var i = 0; i < 4; i++) { @@ -44,12 +177,66 @@ function areaBox(_onModify, _unit = noone) constructor { tb[i].align = fa_center; } - tb[0].draw(_x - ui(56) - ui(48), _y - ui(28), ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 0), _m); - tb[1].draw(_x + ui(56) - ui(48), _y - ui(28), ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 1), _m); + current_data = _data; - tb[2].draw(_x - ui(48), _y + ui(64 + 48 + 8), ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 2), _m); - tb[3].draw(_x + ui(68), _y + ui(64 - 16), ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 3), _m); + if(mode == AREA_MODE.area) { + var tb_x0 = _x + ui(6) - ui(64) - ui(48); + var tb_x1 = _x + ui(6) + ui(64) - ui(48); + var tb_y0 = _y - ui(28); + var tb_y1 = _y + ui(64 + 48 + 8); + draw_set_text(f_p0, fa_right, fa_center, COLORS._main_text_sub); + + draw_text(tb_x0 - ui(4), tb_y0 + TEXTBOX_HEIGHT / 2, "x"); + draw_text(tb_x1 - ui(4), tb_y0 + TEXTBOX_HEIGHT / 2, "y"); + + draw_text(tb_x0 - ui(4), tb_y1 + TEXTBOX_HEIGHT / 2, "w"); + draw_text(tb_x1 - ui(4), tb_y1 + TEXTBOX_HEIGHT / 2, "h"); + + tb[0].draw(tb_x0, tb_y0, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 0), _m); + tb[1].draw(tb_x1, tb_y0, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 1), _m); + + tb[2].draw(tb_x0, tb_y1, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 2), _m); + tb[3].draw(tb_x1, tb_y1, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 3), _m); + } else if(mode == AREA_MODE.padding) { + var tb_rx = _x + ui(56); + var tb_ry = _y + ui(48); + + var tb_tx = _x - ui(48); + var tb_ty = _y - ui(28); + + var tb_lx = _x - ui(56 + 96); + var tb_ly = _y + ui(48); + + var tb_bx = _x - ui(48); + var tb_by = _y + ui(64 + 48 + 8); + + tb[0].draw(tb_rx, tb_ry, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 0), _m); + tb[1].draw(tb_tx, tb_ty, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 1), _m); + + tb[2].draw(tb_lx, tb_ly, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 2), _m); + tb[3].draw(tb_bx, tb_by, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 3), _m); + } else if(mode == AREA_MODE.two_point) { + var tb_x0 = _x + ui(6) - ui(64) - ui(48); + var tb_x1 = _x + ui(6) + ui(64) - ui(48); + var tb_y0 = _y - ui(28); + var tb_y1 = _y + ui(64 + 48 + 8); + + draw_set_text(f_p0, fa_right, fa_center, COLORS._main_text_sub); + + draw_text(tb_x0 - ui(4), tb_y0 + TEXTBOX_HEIGHT / 2, "x0"); + draw_text(tb_x1 - ui(4), tb_y0 + TEXTBOX_HEIGHT / 2, "y0"); + + draw_text(tb_x0 - ui(4), tb_y1 + TEXTBOX_HEIGHT / 2, "x1"); + draw_text(tb_x1 - ui(4), tb_y1 + TEXTBOX_HEIGHT / 2, "y1"); + + tb[0].draw(tb_x0, tb_y0, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 0), _m); + tb[1].draw(tb_x1, tb_y0, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 1), _m); + + tb[2].draw(tb_x0, tb_y1, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 2), _m); + tb[3].draw(tb_x1, tb_y1, ui(96), TEXTBOX_HEIGHT, array_safe_get(_data, 3), _m); + } + if(unit != noone && unit.reference != noone) { unit.triggerButton.hover = hover; unit.triggerButton.active = active; @@ -57,7 +244,6 @@ function areaBox(_onModify, _unit = noone) constructor { unit.draw(_x + ui(56 + 48 + 8), _y - ui(28), ui(32), ui(32), _m); } - active = false; - hover = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/area_function/area_function.gml b/scripts/area_function/area_function.gml index 26fbf0d16..470fc696f 100644 --- a/scripts/area_function/area_function.gml +++ b/scripts/area_function/area_function.gml @@ -8,7 +8,7 @@ enum AREA_SCATTER { random } -function area_get_random_point(area, distrib, scatter, index = 0, total = 1) { +function area_get_random_point(area, distrib, scatter, index = 0, total = 1, _sed = 999) { if(total == 0) return [0, 0]; var _area_x = array_safe_get(area, 0); @@ -32,12 +32,12 @@ function area_get_random_point(area, distrib, scatter, index = 0, total = 1) { yy = _area_y - _area_h + _irow * _ihig; } else if(scatter == AREA_SCATTER.random) { if(_area_t == AREA_SHAPE.rectangle) { - xx = _area_x + random_range(-_area_w, _area_w); - yy = _area_y + random_range(-_area_h, _area_h); + xx = _area_x + random_range_seed(-_area_w, _area_w, _sed); _sed++; + yy = _area_y + random_range_seed(-_area_h, _area_h, _sed); _sed++; } else { - var rr = random(360); - xx = _area_x + lengthdir_x(1, rr) * random(_area_w); - yy = _area_y + lengthdir_y(1, rr) * random(_area_h); + var rr = random_seed(360, _sed); _sed++; + xx = _area_x + lengthdir_x(1, rr) * random_seed(_area_w, _sed); _sed++; + yy = _area_y + lengthdir_y(1, rr) * random_seed(_area_h, _sed); _sed++; } } break; @@ -48,17 +48,17 @@ function area_get_random_point(area, distrib, scatter, index = 0, total = 1) { var perimeter = _area_w * 2 + _area_h * 2; var i = perimeter * index / total; if(i < _area_w) { - xx = _area_x + random_range(-_area_w, _area_w); + xx = _area_x + random_range_seed(-_area_w, _area_w, _sed); _sed++; yy = _area_y - _area_h; } else if(i < _area_w + _area_h) { xx = _area_x - _area_w; - yy = _area_y + random_range(-_area_h, _area_h); + yy = _area_y + random_range_seed(-_area_h, _area_h, _sed); _sed++; } else if(i < _area_w * 2 + _area_h) { - xx = _area_x + random_range(-_area_w, _area_w); + xx = _area_x + random_range_seed(-_area_w, _area_w, _sed); _sed++; yy = _area_y + _area_h; } else { xx = _area_x + _area_w; - yy = _area_y + random_range(-_area_h, _area_h); + yy = _area_y + random_range_seed(-_area_h, _area_h, _sed); _sed++; } } else { var rr = 360 * index / total; @@ -68,22 +68,22 @@ function area_get_random_point(area, distrib, scatter, index = 0, total = 1) { } else if(scatter == AREA_SCATTER.random) { if(_area_t == AREA_SHAPE.rectangle) { var perimeter = _area_w * 2 + _area_h * 2; - var i = random(perimeter); + var i = random_seed(perimeter, _sed); _sed++; if(i < _area_w) { - xx = _area_x + random_range(-_area_w, _area_w); + xx = _area_x + random_range_seed(-_area_w, _area_w, _sed); _sed++; yy = _area_y - _area_h; } else if(i < _area_w + _area_h) { xx = _area_x - _area_w; - yy = _area_y + random_range(-_area_h, _area_h); + yy = _area_y + random_range_seed(-_area_h, _area_h, _sed); _sed++; } else if(i < _area_w * 2 + _area_h) { - xx = _area_x + random_range(-_area_w, _area_w); + xx = _area_x + random_range_seed(-_area_w, _area_w, _sed); _sed++; yy = _area_y + _area_h; } else { xx = _area_x + _area_w; - yy = _area_y + random_range(-_area_h, _area_h); + yy = _area_y + random_range_seed(-_area_h, _area_h, _sed); _sed++; } } else { - var rr = random(360); + var rr = random_seed(360, _sed); _sed++; xx = _area_x + lengthdir_x(_area_w, rr); yy = _area_y + lengthdir_y(_area_h, rr); } diff --git a/scripts/array_functions/array_functions.gml b/scripts/array_functions/array_functions.gml index b984e5be9..2f7409146 100644 --- a/scripts/array_functions/array_functions.gml +++ b/scripts/array_functions/array_functions.gml @@ -13,6 +13,7 @@ function array_safe_set(arr, index, value) { } function array_safe_get(arr, index, def = 0) { + if(index < 0) return def; if(index >= array_length(arr)) return def; return arr[index]; } diff --git a/scripts/ase_object/ase_object.gml b/scripts/ase_object/ase_object.gml new file mode 100644 index 000000000..ad1c2a1cd --- /dev/null +++ b/scripts/ase_object/ase_object.gml @@ -0,0 +1,87 @@ +function ase_cel(_layer, _data, _file) constructor { + data = _data; + file = _file; + layerTarget = _layer; + + static checkSurface = function() { + if(is_surface(data[? "Surface"])) return; + + var width = data[? "Width"]; + var height = data[? "Height"]; + data[? "Surface"] = surface_create(width, height); + + var color = file[? "Color depth"]; + + if(color == 32) {//rgba + buffer_set_surface(data[? "Buffer"], data[? "Surface"], 0); + return; + } + + var size = width * height; + var buff = buffer_create(size * 4, buffer_fixed, 1); + buffer_seek(buff, buffer_seek_start, 0); + buffer_seek(data[? "Buffer"], buffer_seek_start, 0); + + if(color == 16) { //grey + repeat(size) { + var bin = buffer_read(data[? "Buffer"], buffer_u16); + buffer_write(buff, buffer_u8, bin); + buffer_write(buff, buffer_u8, bin); + buffer_write(buff, buffer_u8, bin); + buffer_write(buff, buffer_u8, bin >> 8); + } + } else if(color == 8) { //index + var palet = file[? "Palette"]; + + repeat(size) { + var bin = buffer_read(data[? "Buffer"], buffer_u8); + var cc = array_safe_get(palet, bin); + for( var i = 0; i < 4; i++ ) + buffer_write(buff, buffer_u8, cc[i]); + } + } + + buffer_set_surface(buff, data[? "Surface"], 0); + } + + static getSurface = function() { + var type = data[? "Cel type"]; + + if(type == 0) { + + } else if(type == 1) { + var frTarget = data[? "Frame position"]; + var cel = layerTarget.getCel(frTarget); + if(!cel) return noone; + return cel.getSurface(); + } else if(type == 2) { + checkSurface(); + return data[? "Surface"]; + } + + return noone; + } +} + +function ase_layer(name) constructor { + self.name = name; + cels = []; + tag = noone; + + static setFrameCel = function(index, cel) { + cels[index] = cel; + } + + static getCel = function(index = ANIMATOR.current_frame) { + var ind; + + if(tag != noone) { + var st = tag[? "Frame start"]; + var ed = tag[? "Frame end"]; + ind = st + index % (ed - st + 1); + } else + ind = index % array_length(cels); + + return array_safe_get(cels, ind); + } +} \ No newline at end of file diff --git a/scripts/ase_object/ase_object.yy b/scripts/ase_object/ase_object.yy new file mode 100644 index 000000000..3690e3811 --- /dev/null +++ b/scripts/ase_object/ase_object.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "ase_object", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "importers", + "path": "folders/functions/importers.yy", + }, +} \ No newline at end of file diff --git a/scripts/ase_reader/ase_reader.gml b/scripts/ase_reader/ase_reader.gml index d4169ec31..94c1c485e 100644 --- a/scripts/ase_reader/ase_reader.gml +++ b/scripts/ase_reader/ase_reader.gml @@ -1,32 +1,500 @@ -function read_ase(path) { - var file = file_bin_open(path, 0); - var load_str = ""; +/* +* ASE file reader +* Author: MakhamDev +* File spec from: https://github.com/aseprite/aseprite/blob/main/docs/ase-file-specs.md +*/ + +enum _BIN_TYPE { + byte, + word, + short, + dword, + long, + fixed, + float, + double, + qword, + long64, - bin_read_dword(file); - bin_read_word(file); - var frames = bin_read_word(file); - var width = bin_read_word(file); - var height = bin_read_word(file); - - var pos = 128; - file_bin_seek(file, pos); - - repeat(frames) { - bin_read_dword(file); - bin_read_word(file); - - var old_chunk = bin_read_word(file); - - bin_read_word(file); - bin_read_word(file); - bin_read_word(file); - - var new_chunk = bin_read_dword(file); - - var chunks = new_chunk == 0? old_chunk : new_chunk; - + string, + point, + size, + rect, + color, + pixel, +} + +//ASE blend mode +//Normal = 0 +//Multiply = 1 +//Screen = 2 +//Overlay = 3 +//Darken = 4 +//Lighten = 5 +//Color Dodge = 6 +//Color Burn = 7 +//Hard Light = 8 +//Soft Light = 9 +//Difference = 10 +//Exclusion = 11 +//Hue = 12 +//Saturation = 13 +//Color = 14 +//Luminosity = 15 +//Addition = 16 +//Subtract = 17 +//Divide = 18 + +global.ASE_LOG = false; + +globalvar __ase_format_header; +__ase_format_header = [ + [_BIN_TYPE.dword, "File size"], + [_BIN_TYPE.word, "Magic number"], + [_BIN_TYPE.word, "Frame amount"], + [_BIN_TYPE.word, "Width"], + [_BIN_TYPE.word, "Height"], + [_BIN_TYPE.word, "Color depth"], //32: RGBA, 16: Grey, 8: Index + [_BIN_TYPE.dword, "Flags"], + [_BIN_TYPE.word, "Speed"], //DEPRECATED + [_BIN_TYPE.dword, "0"], + [_BIN_TYPE.dword, "0"], + [_BIN_TYPE.byte, "Palette entry"], //For indexed sprite, index in palette that consider a transparent color. + [_BIN_TYPE.byte, "Ignore", 3], + [_BIN_TYPE.word, "Number of colors"], + [_BIN_TYPE.byte, "Pixel width"], //If zero, then pixel ratio is 1:1 + [_BIN_TYPE.byte, "Pixel height"], //If zero, then pixel ratio is 1:1 + [_BIN_TYPE.short, "Grid X"], + [_BIN_TYPE.short, "Grid Y"], + [_BIN_TYPE.word, "Grid width"], //If zero, no grid + [_BIN_TYPE.word, "Grid height"], //If zero, no grid + [_BIN_TYPE.byte, "Unused", 84], +]; + +globalvar __ase_format_frame; +__ase_format_frame = [ + [_BIN_TYPE.dword, "Length"], + [_BIN_TYPE.word, "Magic number"], + [_BIN_TYPE.word, "Chunk amount"], //If 0xFFFF, use "Chunk amount new" + [_BIN_TYPE.word, "Duration"], //In millisec + [_BIN_TYPE.byte, "Unused", 2], + [_BIN_TYPE.dword, "Chunk amount new"], +]; + +globalvar __ase_format_chunk; +__ase_format_chunk = [ + [_BIN_TYPE.dword, "Length"], + [_BIN_TYPE.word, "Type"], +]; + +globalvar __ase_format_chunk_old_palette; +__ase_format_chunk_old_palette = [ + [_BIN_TYPE.word, "Packet amount"], +]; + +globalvar __ase_format_chunk_old_palette_packet; +__ase_format_chunk_old_palette_packet = [ + [_BIN_TYPE.byte, "Entries skip index"], + [_BIN_TYPE.byte, "Color amount"], + [_BIN_TYPE.color, "Colors", "Color amount"], +]; + +globalvar __ase_format_chunk_layer; +__ase_format_chunk_layer = [ + [_BIN_TYPE.word, "Flag"], //1: Visible, 2: Editable, 4:Lock, 8:BG + [_BIN_TYPE.word, "Layer type"], //0: Normal, 1: Group, 2: Tilemap + [_BIN_TYPE.word, "Child level"], + [_BIN_TYPE.word, "Ignore"], + [_BIN_TYPE.word, "Ignore"], + [_BIN_TYPE.word, "Blend mode"], + [_BIN_TYPE.byte, "Opacity"], + [_BIN_TYPE.byte, "Unused", 3], + [_BIN_TYPE.string, "Name"], + [_BIN_TYPE.dword, "Tileset index", 1, function(chunk) { return chunk[? "Layer type"] == 2; }], +]; + +globalvar __ase_format_chunk_cel; +__ase_format_chunk_cel = [ + [_BIN_TYPE.word, "Layer index"], + [_BIN_TYPE.short, "X"], + [_BIN_TYPE.short, "Y"], + [_BIN_TYPE.byte, "Opacity"], + [_BIN_TYPE.word, "Cel type"], //0: Raw image, 1: Linked, 2: Compressed image, 3: Compressed tilemap + [_BIN_TYPE.byte, "Unused", 7], +]; + +globalvar __ase_format_chunk_cel_raw_image; +__ase_format_chunk_cel_raw_image = [ + [_BIN_TYPE.word, "Width"], + [_BIN_TYPE.word, "Height"], + [_BIN_TYPE.pixel, "Pixels", function(chunk) { return chunk[? "Width"] * chunk[? "Width"]; }], +]; + +globalvar __ase_format_chunk_cel_linked; +__ase_format_chunk_cel_linked = [ + [_BIN_TYPE.word, "Frame position"], +]; + +globalvar __ase_format_chunk_cel_compress_image; +__ase_format_chunk_cel_compress_image = [ + [_BIN_TYPE.word, "Width"], + [_BIN_TYPE.word, "Height"], + //[_BIN_TYPE.long, "Raw cel", function(chunk) { return chunk[? "Width"] * chunk[? "Width"]; }], +]; + +globalvar __ase_format_chunk_cel_compress_tilemap; +__ase_format_chunk_cel_compress_tilemap = [ + [_BIN_TYPE.word, "Width"], + [_BIN_TYPE.word, "Height"], + [_BIN_TYPE.word, "Bits per tile"], + [_BIN_TYPE.dword, "Bitmask for tile ID"], + [_BIN_TYPE.dword, "X flip"], + [_BIN_TYPE.dword, "Y flip"], + [_BIN_TYPE.dword, "90CW rotation"], + [_BIN_TYPE.byte, "Unused", 10], + //[_BIN_TYPE.tile, "Tiles", function(chunk) { return chunk[? "Width"] * chunk[? "Width"]; }], +]; + +globalvar __ase_format_chunk_cel_extra; +__ase_format_chunk_cel_extra = [ + [_BIN_TYPE.dword, "Flag"], + [_BIN_TYPE.fixed, "X"], + [_BIN_TYPE.fixed, "Y"], + [_BIN_TYPE.fixed, "Width"], + [_BIN_TYPE.fixed, "Height"], + [_BIN_TYPE.byte, "Unused", 16], +]; + +globalvar __ase_format_chunk_color_profile; +__ase_format_chunk_color_profile = [ + [_BIN_TYPE.word, "Type"], //0: no profile, 1: sRGB, 2: ICC + [_BIN_TYPE.word, "Flag"], //1: Fix gamma + [_BIN_TYPE.fixed, "Fixed gamma"], + [_BIN_TYPE.byte, "Unused", 8], + [_BIN_TYPE.dword, "ICC Data length", 1, function(chunk) { return chunk[? "Type"] == 2; }], + [_BIN_TYPE.byte, "ICC Data", "ICC Data length", function(chunk) { return chunk[? "Type"] == 2; }], +]; + +globalvar __ase_format_chunk_file; +__ase_format_chunk_file = [ + [_BIN_TYPE.dword, "Entries"], + [_BIN_TYPE.byte, "Unused", 8], +]; + +globalvar __ase_format_chunk_file_entry; +__ase_format_chunk_file_entry = [ + [_BIN_TYPE.dword, "ID"], + [_BIN_TYPE.byte, "File type"], //0: External palette, 1: External tileset, 2: Extension anme + [_BIN_TYPE.byte, "Unused", 7], + [_BIN_TYPE.string, "File name"], +]; + +globalvar __ase_format_chunk_tag; +__ase_format_chunk_tag = [ + [_BIN_TYPE.word, "Tag amount"], + [_BIN_TYPE.byte, "Unused", 8], +]; + +globalvar __ase_format_chunk_tag_entry; +__ase_format_chunk_tag_entry = [ + [_BIN_TYPE.word, "Frame start"], + [_BIN_TYPE.word, "Frame end"], + [_BIN_TYPE.byte, "Loop"], //0: Forward, 1: Backward, 2: Ping pong, 3: Ping pong reverse + [_BIN_TYPE.word, "Repeat amount"], //0: Infinite, N: N-times + [_BIN_TYPE.byte, "Unused", 6], + [_BIN_TYPE.color, "Color"], + [_BIN_TYPE.byte, "Extra"], + [_BIN_TYPE.string, "Name"], +] + +globalvar __ase_format_chunk_palette; +__ase_format_chunk_palette = [ + [_BIN_TYPE.dword, "Color amount"], + [_BIN_TYPE.dword, "First index"], + [_BIN_TYPE.dword, "Last index"], + [_BIN_TYPE.byte, "Unused", 8], +]; + +globalvar __ase_format_chunk_palette_entry; +__ase_format_chunk_palette_entry = [ + [_BIN_TYPE.word, "Flag"], //1: Has name + [_BIN_TYPE.byte, "Red"], + [_BIN_TYPE.byte, "Green"], + [_BIN_TYPE.byte, "Blue"], + [_BIN_TYPE.byte, "Alpha"], + [_BIN_TYPE.string, "Name", 1, function(chunk) { return chunk[? "Flag"] & (1 << 0); }], +]; + +globalvar __ase_format_chunk_user_data; +__ase_format_chunk_user_data = [ + [_BIN_TYPE.dword, "Flag"], //1: Text, 2: Color, 4: Properties + [_BIN_TYPE.string, "Name", 1, function(chunk) { return chunk[? "Flag"] & (1 << 0); }], + [_BIN_TYPE.byte, "Red", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], + [_BIN_TYPE.byte, "Green", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], + [_BIN_TYPE.byte, "Blue", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], + [_BIN_TYPE.byte, "Alpha", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], +]; + +globalvar __ase_format_chunk_user_data_prop; +__ase_format_chunk_user_data_prop = [ + [_BIN_TYPE.dword, "Length"], + [_BIN_TYPE.dword, "Prop amount"], +] + +/* TODO: Use data read */ + +globalvar __ase_format_chunk_slice; +__ase_format_chunk_slice = [ + [_BIN_TYPE.dword, "Slice key amount"], + [_BIN_TYPE.dword, "Flag"], //1: 9 slice, 2: pivot + [_BIN_TYPE.dword, "Reserved"], + [_BIN_TYPE.string, "Name"], +]; + +globalvar __ase_format_chunk_slice_key; +__ase_format_chunk_slice_key = [ + [_BIN_TYPE.dword, "Frame number"], + [_BIN_TYPE.long, "X"], + [_BIN_TYPE.long, "Y"], + [_BIN_TYPE.dword, "Width"], + [_BIN_TYPE.dword, "Height"], +]; + +globalvar __ase_format_chunk_slice_nine; +__ase_format_chunk_slice_nine = [ + [_BIN_TYPE.long, "Center X"], + [_BIN_TYPE.long, "Center Y"], + [_BIN_TYPE.dword, "Center width"], + [_BIN_TYPE.dword, "Center height"], +]; + +globalvar __ase_format_chunk_slice_pivot; +__ase_format_chunk_slice_pivot = [ + [_BIN_TYPE.long, "Pivot X"], + [_BIN_TYPE.long, "Pivot Y"], +]; + +globalvar __ase_format_chunk_tileset; +__ase_format_chunk_tileset = [ + [_BIN_TYPE.dword, "ID"], + [_BIN_TYPE.dword, "Flag"], //1: Link to external file, 2: Include tile in this file, 4: Use ID 0 as empty tiles. + [_BIN_TYPE.dword, "Tile amount"], + [_BIN_TYPE.word, "Tile width"], + [_BIN_TYPE.word, "Tile height"], + [_BIN_TYPE.short, "Base index"], + [_BIN_TYPE.byte, "Reserved", 14], + [_BIN_TYPE.string, "Name"], + [_BIN_TYPE.dword, "ID of external file", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], + [_BIN_TYPE.dword, "Tileset ID", 1, function(chunk) { return chunk[? "Flag"] & (1 << 1); }], + [_BIN_TYPE.dword, "Data length", 1, function(chunk) { return chunk[? "Flag"] & (1 << 2); }], + [_BIN_TYPE.pixel, "Compressed image", "Data length", function(chunk) { return chunk[? "Flag"] & (1 << 2); }], +]; + +function read_format_type(bin, datType, outMap) { + switch(datType) { + case _BIN_TYPE.byte: return bin_read_byte(bin); + case _BIN_TYPE.word: return bin_read_word(bin); + case _BIN_TYPE.short: return bin_read_short(bin); + case _BIN_TYPE.dword: return bin_read_dword(bin); + case _BIN_TYPE.long: return bin_read_long(bin); + case _BIN_TYPE.fixed: return bin_read_fixed(bin); + case _BIN_TYPE.float: return bin_read_float(bin); + case _BIN_TYPE.double: return bin_read_double(bin); + case _BIN_TYPE.qword: return bin_read_qword(bin); + case _BIN_TYPE.long64: return bin_read_long64(bin); + case _BIN_TYPE.string: return bin_read_string(bin); + case _BIN_TYPE.point: return bin_read_point(bin); + case _BIN_TYPE.size: return bin_read_size(bin); + case _BIN_TYPE.rect: return bin_read_rect(bin); + case _BIN_TYPE.color: return bin_read_color(bin); + case _BIN_TYPE.pixel: return bin_read_pixel(bin, outMap[? "Color depth"]); } + + return 0; +} + +function read_format(bin, format, outMap) { + var datType = array_safe_get(format, 0, 0); + var key = array_safe_get(format, 1, ""); + var amount = array_safe_get(format, 2, 1); + if(is_string(amount)) + amount = ds_map_exists(outMap, amount)? outMap[? amount] : 1; + else if(is_method(amount)) + amount = amount(outMap); + + if(amount == 1) { + var val = read_format_type(bin, datType, outMap); + outMap[? key] = val; + return val; + } else { + var a = array_create(amount); + for( var i = 0; i < amount; i++ ) + a[i] = read_format_type(bin, datType, outMap); + outMap[? key] = a; + return a; + } +} + +function read_format_array(bin, formatArr, outMap) { + for( var i = 0; i < array_length(formatArr); i++ ) { + if(array_length(formatArr[i]) >= 4 && !formatArr[i][3](outMap)) + continue; + var pos = file_bin_position(bin); + var val = read_format(bin, formatArr[i], outMap); + //printIf(global.ASE_LOG, "Pos " + dec_to_hex(pos) + " - " + dec_to_hex(file_bin_position(bin))); + + if(formatArr[i][1] == "Type") + printIf(global.ASE_LOG, "\t" + formatArr[i][1] + ":\t 0x" + dec_to_hex(val, 4)); + else + printIf(global.ASE_LOG, "\t" + formatArr[i][1] + ":\t " + string(val)); + } +} + +function read_ase(path, fileMap) { + printIf(global.ASE_LOG, "===== Reading: " + path + " ====="); + var file = file_bin_open(path, 0); + file_bin_seek(file, 0); + + ds_map_clear(fileMap); + read_format_array(file, __ase_format_header, fileMap); + + var frames = []; + var frameAmo = ds_map_exists(fileMap, "Frame amount")? fileMap[? "Frame amount"] : 0; + for( var i = 0; i < frameAmo; i++ ) { + printIf(global.ASE_LOG, "\n=== Reading frame " + string(i) + " ==="); + array_push(frames, read_ase_frame(file)); + } + fileMap[? "Frames"] = frames; + file_bin_close(file); + + return fileMap; +} + +function read_ase_frame(file) { + var frame = ds_map_create(); + + read_format_array(file, __ase_format_frame, frame); + + var chunks = []; + var chunkAmo = ds_map_exists(frame, "Chunk amount")? frame[? "Chunk amount"] : 0; + if(chunkAmo == 65535) + chunkAmo = ds_map_exists(frame, "Chunk amount new")? frame[? "Chunk amount new"] : chunkAmo; + + for( var i = 0; i < chunkAmo; i++ ) { + printIf(global.ASE_LOG, "\n=== Reading chunk " + string(i) + " ==="); + array_push(chunks, read_ase_chunk(file)); + } + frame[? "Chunks"] = chunks; + + return frame; +} + +function read_ase_chunk(file) { + var chunk = ds_map_create(); + var startPos = file_bin_position(file); + + read_format_array(file, __ase_format_chunk, chunk); + + var skipPos = startPos + chunk[? "Length"]; + + switch(chunk[? "Type"]) { + case 0x0004: //old palette + case 0x0011: //old palette + printIf(global.ASE_LOG, "\n -- Reading chunk [Old palette] -- "); + read_format_array(file, __ase_format_chunk_old_palette, chunk); + var cc = []; + for( var i = 0; i < chunk[? "Packet amount"]; i++ ) { + cc[i] = ds_map_create(); + read_format_array(file, __ase_format_chunk_old_palette_packet, cc[i]); + } + chunk[? "Packets"] = cc; + break; + case 0x2004: //layer + printIf(global.ASE_LOG, "\n -- Reading chunk [Layer] -- "); + read_format_array(file, __ase_format_chunk_layer, chunk); + break; + case 0x2005: //cel + printIf(global.ASE_LOG, "\n -- Reading chunk [Cel] -- "); + read_format_array(file, __ase_format_chunk_cel, chunk); + + var type = chunk[? "Cel type"]; + switch(type) { + case 0 : + read_format_array(file, __ase_format_chunk_cel_raw_image, chunk); + break; + case 1 : + read_format_array(file, __ase_format_chunk_cel_linked, chunk); + break; + case 2 : + read_format_array(file, __ase_format_chunk_cel_compress_image, chunk); + chunk[? "Surface"] = noone; + + var compressLength = (skipPos - file_bin_position(file)); + var _compBuff = buffer_create(compressLength * buffer_sizeof(buffer_u8), buffer_grow, 1); + buffer_seek(_compBuff, buffer_seek_start, 0); + + repeat(compressLength) { + var byte = file_bin_read_byte(file); + buffer_write(_compBuff, buffer_u8, byte); + } + + var _rawBuff = buffer_decompress(_compBuff); + if(_rawBuff != -1) + chunk[? "Buffer"] = _rawBuff; + + buffer_delete(_compBuff); + break; + case 3 : + read_format_array(file, __ase_format_chunk_cel_compress_tilemap, chunk); + //TILE READ + break; + } + break; + case 0x2006: //cel extra + break; + case 0x2007: //color profile + printIf(global.ASE_LOG, "\n -- Reading chunk [Color profile] -- "); + read_format_array(file, __ase_format_chunk_color_profile, chunk); + break; + case 0x2008: //external file + break; + case 0x2009: //mask DEPRECATED + break; + case 0x2017: //path + break; + case 0x2018: //tag + printIf(global.ASE_LOG, "\n -- Reading chunk [Tag] -- "); + read_format_array(file, __ase_format_chunk_tag, chunk); + var amo = chunk[? "Tag amount"] + var tags = []; + repeat(amo) { + var m = ds_map_create(); + read_format_array(file, __ase_format_chunk_tag_entry, m); + array_push(tags, m); + } + chunk[? "Tags"] = tags; + break; + case 0x2019: //palette + printIf(global.ASE_LOG, "\n -- Reading chunk [Palette] -- "); + read_format_array(file, __ase_format_chunk_palette, chunk); + var cc = []; + for( var i = 0; i < chunk[? "Color amount"]; i++ ) { + cc[i] = ds_map_create(); + read_format_array(file, __ase_format_chunk_palette_entry, cc[i]); + } + chunk[? "Palette"] = cc; + break; + case 0x2020: //user data + break; + case 0x2022: //slice + break; + case 0x2023: //tileset + break; + } + file_bin_seek(file, skipPos - file_bin_position(file)); + + return chunk; } \ No newline at end of file diff --git a/scripts/assets_data/assets_data.gml b/scripts/assets_data/assets_data.gml index 212908510..79588f192 100644 --- a/scripts/assets_data/assets_data.gml +++ b/scripts/assets_data/assets_data.gml @@ -29,7 +29,7 @@ for( var i = 0; i < ds_list_size(_st.content); i++ ) { var _f = _st.content[| i]; - global.ASSET_MAP[? _f.path] = _f.spr; + global.ASSET_MAP[? _f.path] = _f; } for( var i = 0; i < ds_list_size(_st.subDir); i++ ) { @@ -53,7 +53,7 @@ if(valid) return s; } - var spr = global.ASSET_MAP[? key]; + var spr = global.ASSET_MAP[? key].getSpr(); global.ASSET_CACHE[? key] = surface_create_from_sprite(spr); return global.ASSET_CACHE[? key]; diff --git a/scripts/bin_function/bin_function.gml b/scripts/bin_function/bin_function.gml new file mode 100644 index 000000000..f6568a87c --- /dev/null +++ b/scripts/bin_function/bin_function.gml @@ -0,0 +1,27 @@ +function bin_fraction(intVal, len) { + var amp = 1; + var val = 0; + for( var i = len - 1; i >= 0; i-- ) { + var _b = (intVal & ~(1 << len)) >> len; + amp *= 0.5; + val = amp * _b; + } + return val; +} + +/// GMLscripts.com +function dec_to_hex(dec, len = 1) { + var hex = ""; + + if (dec < 0) { + len = max(len, ceil(logn(16, 2 * abs(dec)))); + } + + var dig = "0123456789ABCDEF"; + while (len-- || dec) { + hex = string_char_at(dig, (dec & $F) + 1) + hex; + dec = dec >> 4; + } + + return hex; +} \ No newline at end of file diff --git a/scripts/bin_function/bin_function.yy b/scripts/bin_function/bin_function.yy new file mode 100644 index 000000000..940ef3e48 --- /dev/null +++ b/scripts/bin_function/bin_function.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "bin_function", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/functions/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/blurSurface/blurSurface.gml b/scripts/blurSurface/blurSurface.gml index 0f26823f5..b55b47c49 100644 --- a/scripts/blurSurface/blurSurface.gml +++ b/scripts/blurSurface/blurSurface.gml @@ -1,30 +1,32 @@ -function surface_apply_gaussian(surface, size, bg = false, bg_c = c_white, clamp_border = false, mask = noone) { - static uni_bor = shader_get_uniform(sh_blur_gaussian, "clamp_border"); +function surface_apply_gaussian(surface, size, bg = false, bg_c = c_white, sampleMode = 0, overColor = noone) { + static uni_bor = shader_get_uniform(sh_blur_gaussian, "sampleMode"); static uni_dim = shader_get_uniform(sh_blur_gaussian, "dimension"); static uni_hor = shader_get_uniform(sh_blur_gaussian, "horizontal"); static uni_wei = shader_get_uniform(sh_blur_gaussian, "weight"); static uni_sze = shader_get_uniform(sh_blur_gaussian, "size"); - - static uni_umk = shader_get_uniform(sh_blur_gaussian, "useMask"); - static uni_msk = shader_get_sampler_index(sh_blur_gaussian, "mask"); + static uni_ovr = shader_get_uniform(sh_blur_gaussian, "overrideColor"); + static uni_ovc = shader_get_uniform(sh_blur_gaussian, "overColor"); var hori = surface_create_valid(surface_get_width(surface), surface_get_height(surface)); var vert = surface_create_valid(surface_get_width(surface), surface_get_height(surface)); - size = max(1, round(size)); - var gau_array = array_create(size); - var we = 0; - var b = 0.3 * ((size - 1) * 0.5 - 1) + 0.8; - for(var i = 0; i < size; i++) { - var _x = i * .5; + #region kernel generation + size = max(1, round(size)); + var gau_array = array_create(size); + var we = 0; + var b = 0.3 * ((size - 1) * 0.5 - 1) + 0.8; + for(var i = 0; i < size; i++) { + var _x = i * .5; - gau_array[i] = (1 / sqrt(2 * pi * b)) * exp( -sqr(_x) / (2 * sqr(b)) ); - we += i? gau_array[i] * 2 : gau_array[i]; - } - for(var i = 0; i < size; i++) { - gau_array[i] /= we; - } + gau_array[i] = (1 / sqrt(2 * pi * b)) * exp( -sqr(_x) / (2 * sqr(b)) ); + we += i? gau_array[i] * 2 : gau_array[i]; + } + for(var i = 0; i < size; i++) { + gau_array[i] /= we; + } + #endregion + BLEND_OVER surface_set_target(hori); draw_clear_alpha(bg_c, bg); @@ -32,12 +34,12 @@ function surface_apply_gaussian(surface, size, bg = false, bg_c = c_white, clamp shader_set_uniform_f_array(uni_dim, [ surface_get_width(surface), surface_get_height(surface) ]); shader_set_uniform_f_array(uni_wei, gau_array); - shader_set_uniform_i(uni_bor, clamp_border? 1 : 0); + shader_set_uniform_i(uni_bor, sampleMode); shader_set_uniform_i(uni_sze, size); shader_set_uniform_i(uni_hor, 1); - shader_set_uniform_i(uni_umk, is_surface(mask)); - texture_set_stage(uni_msk, surface_get_texture(mask)); + shader_set_uniform_i(uni_ovr, overColor != noone); + shader_set_uniform_f_array(uni_ovc, colToVec4(overColor)); draw_surface_safe(surface, 0, 0); shader_reset(); @@ -52,6 +54,7 @@ function surface_apply_gaussian(surface, size, bg = false, bg_c = c_white, clamp draw_surface_safe(hori, 0, 0); shader_reset(); surface_reset_target(); + BLEND_NORMAL surface_free(hori); diff --git a/scripts/button/button.gml b/scripts/button/button.gml index b01c3885b..2de0fe48f 100644 --- a/scripts/button/button.gml +++ b/scripts/button/button.gml @@ -2,10 +2,7 @@ function button(_onClick, _icon = noone) { return new buttonClass(_onClick, _icon); } -function buttonClass(_onClick, _icon = noone) constructor { - active = false; - hover = false; - +function buttonClass(_onClick, _icon = noone) : widget() constructor { icon = _icon; icon_blend = c_white; icon_index = 0; @@ -15,6 +12,11 @@ function buttonClass(_onClick, _icon = noone) constructor { onClick = _onClick; + static trigger = function() { + if(!onClick) return; + onClick(); + } + static setIcon = function(_icon, _index = 0, _blend = c_white) { icon = _icon; icon_index = _index; @@ -33,11 +35,16 @@ function buttonClass(_onClick, _icon = noone) constructor { } static draw = function(_x, _y, _w, _h, _m, spr = THEME.button, blend = c_white) { + x = _x; + y = _y; + w = _w; + h = _h; + var click = false; if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { draw_sprite_stretched_ext(spr, 1, _x, _y, _w, _h, blend, 1); if(mouse_press(mb_left, active)) { - if(onClick) onClick(); + trigger(); click = true; } if(mouse_click(mb_left, active)) @@ -45,15 +52,19 @@ function buttonClass(_onClick, _icon = noone) constructor { if(tooltip != "") TOOLTIP = tooltip; } else { draw_sprite_stretched_ext(spr, 0, _x, _y, _w, _h, blend, 1); + if(mouse_press(mb_left)) deactivate(); } + if(icon) draw_sprite_ui_uniform(icon, icon_index, _x + _w / 2, _y + _h / 2,, icon_blend); if(text != "") { draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text); draw_text(_x + _w / 2, _y + _h / 2, text); } - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); return click; } @@ -67,17 +78,19 @@ function buttonInstant(spr, _x, _y, _w, _h, _m, _act, _hvr, _tip = "", _icon = n draw_sprite_stretched(spr, 1, _x, _y, _w, _h); if(_tip != "") TOOLTIP = _tip; + if(mouse_press(mb_left, _act)) res = 2; + if(mouse_press(mb_right, _act)) + res = 3; + if(mouse_click(mb_left, _act)) draw_sprite_stretched(spr, 2, _x, _y, _w, _h); - } else { + } else draw_sprite_stretched(spr, 0, _x, _y, _w, _h); - } - if(_icon) { + if(_icon) draw_sprite_ui_uniform(_icon, _icon_index, _x + _w / 2, _y + _h / 2, 1, _icon_blend, _icon_alpha); - } return res; } \ No newline at end of file diff --git a/scripts/buttonColor/buttonColor.gml b/scripts/buttonColor/buttonColor.gml index 19ca1f865..780d581a4 100644 --- a/scripts/buttonColor/buttonColor.gml +++ b/scripts/buttonColor/buttonColor.gml @@ -2,10 +2,7 @@ function buttonColor(_onApply) { return new buttonColorClass(_onApply); } -function buttonColorClass(_onApply) constructor { - active = false; - hover = false; - +function buttonColorClass(_onApply) : widget() constructor { onApply = _onApply; onColorPick = function() { var dialog = dialogCall(o_dialog_color_selector, WIN_W / 2, WIN_H / 2); @@ -16,10 +13,24 @@ function buttonColorClass(_onApply) constructor { is_picking = false; + current_color = c_black; b_picker = button(onColorPick); b_picker.icon = THEME.color_picker_dropper; + static trigger = function() { + var dialog = dialogCall(o_dialog_color_selector, WIN_W / 2, WIN_H / 2); + dialog.selector.setColor(current_color); + dialog.selector.onApply = onApply; + dialog.onApply = onApply; + } + static draw = function(_x, _y, _w, _h, _color, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + current_color = _color; + b_picker.hover = hover; b_picker.active = active; b_picker.draw(_x + _w - ui(32), _y + _h / 2 - ui(16), ui(32), ui(32), _m, THEME.button_hide); @@ -40,21 +51,22 @@ function buttonColorClass(_onApply) constructor { if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _cw, _y + _h)) { draw_sprite_stretched(THEME.button, 1, _x, _y, _cw, _h); if(mouse_press(mb_left, active)) { - var dialog = dialogCall(o_dialog_color_selector, WIN_W / 2, WIN_H / 2); - dialog.selector.setColor(_color); - dialog.selector.onApply = onApply; - dialog.onApply = onApply; + trigger(); click = true; } if(mouse_click(mb_left, active)) draw_sprite_stretched(THEME.button, 2, _x, _y, _cw, _h); } else { draw_sprite_stretched(THEME.button, 0, _x, _y, _cw, _h); + if(mouse_press(mb_left)) deactivate(); } + draw_sprite_stretched_ext(THEME.color_picker_sample, 0, _x + ui(4), _y + ui(4), _cw - ui(8), _h - ui(8), _color, 1); - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); return click; } diff --git a/scripts/buttonGradient/buttonGradient.gml b/scripts/buttonGradient/buttonGradient.gml index 2ce8c8808..654b9242c 100644 --- a/scripts/buttonGradient/buttonGradient.gml +++ b/scripts/buttonGradient/buttonGradient.gml @@ -2,32 +2,46 @@ function buttonGradient(_onApply) { return new buttonGradientClass(_onApply); } -function buttonGradientClass(_onApply) constructor { - active = false; - hover = false; - +function buttonGradientClass(_onApply) : widget() constructor { onApply = _onApply; + current_gradient = noone; + current_data = noone; + + static trigger = function() { + var dialog = dialogCall(o_dialog_gradient, WIN_W / 2, WIN_H / 2); + dialog.setGradient(current_gradient, current_data); + dialog.onApply = onApply; + } + static draw = function(_x, _y, _w, _h, _gradient, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + current_gradient = _gradient; + current_data = _data; + var click = false; if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { draw_sprite_stretched(THEME.button, 1, _x, _y, _w, _h); if(mouse_press(mb_left, active)) { - var dialog = dialogCall(o_dialog_gradient, WIN_W / 2, WIN_H / 2); - dialog.setGradient(_gradient, _data); - dialog.onApply = onApply; + trigger(); click = true; } if(mouse_click(mb_left, active)) draw_sprite_stretched(THEME.button, 2, _x, _y, _w, _h); } else { draw_sprite_stretched(THEME.button, 0, _x, _y, _w, _h); + if(mouse_press(mb_left)) deactivate(); } draw_gradient(_x + ui(6), _y + ui(6), _w - ui(12), _h - ui(12), _gradient, _data[| 0]); - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); return click; } diff --git a/scripts/buttonGroup/buttonGroup.gml b/scripts/buttonGroup/buttonGroup.gml index ca686d41c..f1e5d5347 100644 --- a/scripts/buttonGroup/buttonGroup.gml +++ b/scripts/buttonGroup/buttonGroup.gml @@ -2,12 +2,12 @@ function buttonGroup(_data, _onClick) { return new buttonGroupClass(_data, _onClick); } -function buttonGroupClass(_data, _onClick) constructor { +function buttonGroupClass(_data, _onClick) : widget() constructor { data = _data; onClick = _onClick; + display_button = false; - hover = false; - active = false; + current_selecting = 0; for(var i = 0; i < array_length(data); i++) { buttons[i] = button(-1); @@ -15,7 +15,28 @@ function buttonGroupClass(_data, _onClick) constructor { sb_small = new scrollBox(data, _onClick); + static trigger = function() { + if(current_selecting + 1 >= array_length(data)) + onClick(0); + else + onClick(current_selecting + 1); + } + + static register = function(parent = noone) { + if(display_button) { + array_push(WIDGET_ACTIVE, self); + self.parent = parent; + } else + sb_small.register(parent); + } + static draw = function(_x, _y, _w, _h, _selecting, _m, _rx = 0, _ry = 0) { + x = _x; + y = _y; + w = _w; + h = _h; + current_selecting = _selecting; + var amo = array_length(data); var ww = _w / amo; @@ -26,7 +47,9 @@ function buttonGroupClass(_data, _onClick) constructor { total_width += string_width(data[i]) + ui(32); } - if(total_width < _w) { + display_button = total_width < _w; + + if(display_button) { for(var i = 0; i < amo; i++) { buttons[i].hover = hover; buttons[i].active = active; @@ -34,11 +57,10 @@ function buttonGroupClass(_data, _onClick) constructor { var bx = _x + ww * i; var spr = i == 0 ? THEME.button_left : (i == amo - 1? THEME.button_right : THEME.button_middle); - if(_selecting == i) { + if(_selecting == i) draw_sprite_stretched(spr, 2, bx, _y, ww, _h); - } else if(buttons[i].draw(bx, _y, ww, _h, _m, spr)) { - onClick(i); - } + else if(buttons[i].draw(bx, _y, ww, _h, _m, spr)) + onClick(i); if(is_string(data[i])) { draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text); @@ -53,7 +75,9 @@ function buttonGroupClass(_data, _onClick) constructor { sb_small.draw(_x, _y, _w, _h, data[_selecting], _m, _rx, _ry); } - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, x - ui(3), y - ui(3), w + ui(6), h + ui(6)); + + resetFocus(); } } \ No newline at end of file diff --git a/scripts/buttonPalette/buttonPalette.gml b/scripts/buttonPalette/buttonPalette.gml index bc351d26d..f7490b949 100644 --- a/scripts/buttonPalette/buttonPalette.gml +++ b/scripts/buttonPalette/buttonPalette.gml @@ -2,32 +2,43 @@ function buttonPalette(_onApply) { return new buttonPaletteClass(_onApply); } -function buttonPaletteClass(_onApply) constructor { - active = false; - hover = false; - +function buttonPaletteClass(_onApply) : widget() constructor { onApply = _onApply; + current_palette = noone; + + static trigger = function() { + var dialog = dialogCall(o_dialog_palette, WIN_W / 2, WIN_H / 2); + dialog.setPalette(current_palette); + dialog.onApply = onApply; + } static draw = function(_x, _y, _w, _h, _color, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + current_palette = _color; + var click = false; if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { draw_sprite_stretched(THEME.button, 1, _x, _y, _w, _h); if(mouse_press(mb_left, active)) { - var dialog = dialogCall(o_dialog_palette, WIN_W / 2, WIN_H / 2); - dialog.setPalette(_color); - dialog.onApply = onApply; + trigger(); click = true; } if(mouse_click(mb_left, active)) draw_sprite_stretched(THEME.button, 2, _x, _y, _w, _h); } else { draw_sprite_stretched(THEME.button, 0, _x, _y, _w, _h); + if(mouse_press(mb_left)) deactivate(); } drawPalette(_color, _x + ui(6), _y + ui(6), _w - ui(12), _h - ui(12)); - hover = false; - active = false; + resetFocus(); + + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); return click; } diff --git a/scripts/byte_reader/byte_reader.gml b/scripts/byte_reader/byte_reader.gml index baba417e4..3a88b0858 100644 --- a/scripts/byte_reader/byte_reader.gml +++ b/scripts/byte_reader/byte_reader.gml @@ -2,14 +2,135 @@ function bin_read_byte(bin) { return file_bin_read_byte(bin); } function bin_read_word(bin) { - return file_bin_read_byte(bin) + file_bin_read_byte(bin); + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + return b0 + (b1 << 8); } function bin_read_short(bin) { - return file_bin_read_byte(bin) + file_bin_read_byte(bin); + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + + var short = b0 + (b1 << 8); + var sig = short >> 15; + short = short & ~(1 << 15); + return sig? -power(2, 15) + short : short; } function bin_read_dword(bin) { - return file_bin_read_byte(bin) + file_bin_read_byte(bin) + file_bin_read_byte(bin) + file_bin_read_byte(bin); + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var dword = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); + return dword; } function bin_read_long(bin) { - return file_bin_read_byte(bin) + file_bin_read_byte(bin) + file_bin_read_byte(bin) + file_bin_read_byte(bin); + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var long = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); + + var sig = long >> 31; + long = long & ~(1 << 31); + return sig? -power(2, 31) : long; +} +function bin_read_fixed(bin) { + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + + var fixInt = b0 + (b1 << 8); + var fixFrc = b2 + (b3 << 8); + return fixInt + bin_fraction(fixFrc, 16); +} +function bin_read_float(bin) { + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var float = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24); + + var sig = float >> 31; + var expo = (float & ~(1 << 31)) >> 23; + var mant = float & 0b00000000_01111111_11111111_11111111; + + var val = (1 + mant) * power(2, expo - 127); + return sig? -val : val; +} +function bin_read_double(bin) { + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var b4 = file_bin_read_byte(bin); + var b5 = file_bin_read_byte(bin); + var b6 = file_bin_read_byte(bin); + var b7 = file_bin_read_byte(bin); + var double = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); + + var sig = double >> 63; + var expo = (double & ~(1 << 63)) >> 52; + var mant = double & 0b00000000_00001111_11111111_11111111_11111111_11111111_11111111_11111111; + + var val = (1 + mant) * power(2, expo - 1023); + return sig? -val : val; +} +function bin_read_qword(bin) { + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var b4 = file_bin_read_byte(bin); + var b5 = file_bin_read_byte(bin); + var b6 = file_bin_read_byte(bin); + var b7 = file_bin_read_byte(bin); + return b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); +} +function bin_read_long64(bin) { + var b0 = file_bin_read_byte(bin); + var b1 = file_bin_read_byte(bin); + var b2 = file_bin_read_byte(bin); + var b3 = file_bin_read_byte(bin); + var b4 = file_bin_read_byte(bin); + var b5 = file_bin_read_byte(bin); + var b6 = file_bin_read_byte(bin); + var b7 = file_bin_read_byte(bin); + var long = b0 + (b1 << 8) + (b2 << 16) + (b3 << 24) + (b2 << 32) + (b3 << 40) + (b2 << 48) + (b3 << 56); + var sig = long >> 63; + long = long & ~(1 << 63); + return sig? -long : long; +} +// +function bin_read_string(bin) { + var len = bin_read_word(bin); + var ss = ""; + repeat(len) { + var utf = bin_read_byte(bin); + ss += chr(utf); + } + return ss; +} +function bin_read_point(bin) { + return [bin_read_long(bin), bin_read_long(bin)]; +} +function bin_read_size(bin) { + return [bin_read_long(bin), bin_read_long(bin)]; +} +function bin_read_rect(bin) { + return [bin_read_point(bin), bin_read_size(bin)]; +} +function bin_read_color(bin) { + var r = bin_read_byte(bin); + var g = bin_read_byte(bin); + var b = bin_read_byte(bin); + return make_color_rgb(r, g, b); +} +function bin_read_pixel(bin, type) { + switch(type) { + case 0 : return [ bin_read_byte(bin), bin_read_byte(bin), bin_read_byte(bin), bin_read_byte(bin) ]; + case 1 : return [ bin_read_byte(bin), bin_read_byte(bin) ]; + case 2 : return [ bin_read_byte(bin) ]; + } + return 0; } \ No newline at end of file diff --git a/scripts/checkbox/checkbox.gml b/scripts/checkbox/checkbox.gml index 5946fd139..d87160397 100644 --- a/scripts/checkbox/checkbox.gml +++ b/scripts/checkbox/checkbox.gml @@ -1,10 +1,17 @@ -function checkBox(_onClick) constructor { - active = false; - hover = false; - +function checkBox(_onClick) : widget() constructor { onClick = _onClick; + static trigger = function() { + if(!onClick) return; + onClick(); + } + static draw = function(_x, _y, _value, _m, ss = ui(28), halign = fa_left, valign = fa_top) { + x = _x; + y = _y; + w = ss; + h = ss; + var _dx, _dy; switch(halign) { case fa_left: _dx = _x; break; @@ -24,10 +31,13 @@ function checkBox(_onClick) constructor { draw_sprite_stretched(THEME.checkbox, _value * 2 + 1, _dx, _dy, ss, ss); if(mouse_press(mb_left, active)) - if(onClick) onClick(); - } + trigger(); + } else + if(mouse_press(mb_left)) deactivate(); - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _dx - ui(3), _dy - ui(3), ss + ui(6), ss + ui(6)); + + resetFocus(); } } diff --git a/scripts/color_function/color_function.gml b/scripts/color_function/color_function.gml index 043de3f18..cb1c1e3a5 100644 --- a/scripts/color_function/color_function.gml +++ b/scripts/color_function/color_function.gml @@ -14,4 +14,16 @@ function colorBrightness(clr) { var g2 = color_get_green(clr) / 255; var b2 = color_get_blue(clr) / 255; return 0.299 * r2 + 0.587 * g2 + 0.224 * b2; +} + +function colorMultiply(c1, c2) { + var r1 = color_get_red(c1) / 255; + var g1 = color_get_green(c1) / 255; + var b1 = color_get_blue(c1) / 255; + + var r2 = color_get_red(c2) / 255; + var g2 = color_get_green(c2) / 255; + var b2 = color_get_blue(c2) / 255; + + return make_color_rgb((r1 * r2) * 255, (g1 * g2) * 255, (b1 * b2) * 255); } \ No newline at end of file diff --git a/scripts/controlPointBox/controlPointBox.gml b/scripts/controlPointBox/controlPointBox.gml index 925094704..365264de4 100644 --- a/scripts/controlPointBox/controlPointBox.gml +++ b/scripts/controlPointBox/controlPointBox.gml @@ -15,13 +15,10 @@ enum PUPPET_FORCE_MODE { wind, } -function controlPointBox(_onModify) constructor { +function controlPointBox(_onModify) : widget() constructor { onModify = _onModify; onSurfaceSize = -1; - active = false; - hover = false; - tbCx = new textBox(TEXTBOX_INPUT.float, function(val) { onModify(PUPPET_CONTROL.cx, toNumber(val)); }); tbCy = new textBox(TEXTBOX_INPUT.float, function(val) { onModify(PUPPET_CONTROL.cy, toNumber(val)); }); tbFx = new textBox(TEXTBOX_INPUT.float, function(val) { onModify(PUPPET_CONTROL.fx, toNumber(val)); }); @@ -42,7 +39,21 @@ function controlPointBox(_onModify) constructor { function(val) { onModify(PUPPET_CONTROL.mode, toNumber(val)); } ); + static register = function(parent = noone) { + sMode.register(parent); + tbCx.register(parent); + tbCy.register(parent); + tbFx.register(parent); + tbFy.register(parent); + tbW.register(parent); + tbH.register(parent); + rot.register(parent); + } + static draw = function(_x, _y, _w, _data, _m, _rx, _ry) { + x = _x; + y = _y; + tbCx.hover = hover; tbCx.active = active; tbCy.hover = hover; tbCy.active = active; tbFx.hover = hover; tbFx.active = active; @@ -109,8 +120,7 @@ function controlPointBox(_onModify) constructor { break; } - active = false; - hover = false; + resetFocus(); return yy - _y; } diff --git a/scripts/control_function/control_function.gml b/scripts/control_function/control_function.gml index bf535cac5..34f296163 100644 --- a/scripts/control_function/control_function.gml +++ b/scripts/control_function/control_function.gml @@ -9,6 +9,7 @@ globalvar KEYBOARD_STRING, KEYBOARD_PRESSED; globalvar CTRL, ALT, SHIFT; + WIDGET_ACTIVE = []; KEYBOARD_PRESSED = vk_nokey; CTRL = KEYBOARD_STATUS.idle; ALT = KEYBOARD_STATUS.idle; @@ -27,4 +28,41 @@ function key_mod_press(key) { return key == KEYBOARD_STATUS.pressing; } -#endregion \ No newline at end of file +#endregion + +#region widget + globalvar WIDGET_CURRENT, WIDGET_ACTIVE, WIDGET_CURRENT_SCROLL; + WIDGET_CURRENT = noone; + WIDGET_CURRENT_SCROLL = noone; + + function widget_next() { + if(WIDGET_CURRENT == noone) return; + if(array_length(WIDGET_ACTIVE) == 0) return; + + var ind = array_find(WIDGET_ACTIVE, WIDGET_CURRENT); + WIDGET_CURRENT.deactivate(); + + if(ind + 1 == array_length(WIDGET_ACTIVE)) + WIDGET_ACTIVE[0].activate(); + else + WIDGET_ACTIVE[ind + 1].activate(); + } + + function widget_previous() { + if(WIDGET_CURRENT == noone) return; + if(array_length(WIDGET_ACTIVE) == 0) return; + + var ind = array_find(WIDGET_ACTIVE, WIDGET_CURRENT); + WIDGET_CURRENT.deactivate(); + + if(ind == 0) + WIDGET_ACTIVE[array_length(WIDGET_ACTIVE) - 1].activate(); + else + WIDGET_ACTIVE[ind - 1].activate(); + } + + function widget_trigger() { + if(WIDGET_CURRENT == noone) return; + WIDGET_CURRENT.trigger(); + } +#endregion diff --git a/scripts/curveBox/curveBox.gml b/scripts/curveBox/curveBox.gml index fd5c9e27b..5d788d545 100644 --- a/scripts/curveBox/curveBox.gml +++ b/scripts/curveBox/curveBox.gml @@ -1,9 +1,6 @@ -function curveBox(_onModify) constructor { +function curveBox(_onModify) : widget() constructor { onModify = _onModify; - active = false; - hover = false; - node_dragging = -1; drag_range = 0; @@ -13,7 +10,14 @@ function curveBox(_onModify) constructor { return _y + _h * clamp((y_max - val) / y_range, 0, 1); } + static register = function() {} + static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + static curve_amo = 3; var curve_h = _h; @@ -106,7 +110,6 @@ function curveBox(_onModify) constructor { drag_max = y_max; } - active = false; - hover = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/curve_bezier_function/curve_bezier_function.gml b/scripts/curve_bezier_function/curve_bezier_function.gml index f69fc37ce..5556f0500 100644 --- a/scripts/curve_bezier_function/curve_bezier_function.gml +++ b/scripts/curve_bezier_function/curve_bezier_function.gml @@ -1,4 +1,5 @@ #macro CURVE_DEF_01 [0, 1/3, 1/3, 2/3, 2/3, 1] +#macro CURVE_DEF_10 [1, 2/3, 1/3, 1/3, 2/3, 0] #macro CURVE_DEF_11 [1, 1/3, 1, 2/3, 1, 1] function draw_line_bezier_cubic(x0, y0, _w, _h, _bz) { @@ -43,6 +44,8 @@ function eval_curve_bezier_cubic_x(_bz, _x, _prec = 0.00001) { var _xt = _x; var _binRep = 5; + if(_bz[0] == _bz[2] && _bz[0] == _bz[4] && _bz[0] == _bz[5]) return _bz[0]; + repeat(_binRep) { var _ftx = power(1 - _xt, 3) * 0 + 3 * power(1 - _xt, 2) * _xt * _bz[1] diff --git a/scripts/debug/debug.gml b/scripts/debug/debug.gml index 314857ecb..a1e9f8fd0 100644 --- a/scripts/debug/debug.gml +++ b/scripts/debug/debug.gml @@ -12,10 +12,10 @@ function __log(title, str, fname = "log.txt") { file_text_close(f); } -function log_message(title, str, icon = noone) { +function log_message(title, str, icon = noone, flash = false) { __log("[MESSAGE] ", string(title) + ": " + string(str)); - return noti_status(string(title) + ": " + string(str), icon); + return noti_status(string(title) + ": " + string(str), icon, flash); } function log_warning(title, str) { diff --git a/scripts/directory_object/directory_object.gml b/scripts/directory_object/directory_object.gml index 2d6fde442..c42da09f7 100644 --- a/scripts/directory_object/directory_object.gml +++ b/scripts/directory_object/directory_object.gml @@ -1,8 +1,30 @@ function FileObject(_name, _path) constructor { name = _name; path = _path; - spr = -1; - content = -1; + spr_path = []; + spr = -1; + content = -1; + surface = noone; + + static getSurface = function() { + if(is_surface(surface)) return surface; + var spr = getSpr(); + surface = surface_create_from_sprite_ext(spr, 0); + return surface; + } + + static getSpr = function() { + if(sprite_exists(spr)) return spr; + var path = array_safe_get(spr_path, 0); + var amo = array_safe_get(spr_path, 1); + var cent = array_safe_get(spr_path, 2); + + if(path == 0) return -1; + spr = sprite_add(path, amo, false, false, 0, 0); + if(cent) + sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2); + return spr; + } } function DirectoryObject(name, path) constructor { @@ -48,7 +70,7 @@ function DirectoryObject(name, path) constructor { var p = string_pos("strip", icon_path); if(p) amo = toNumber(string_copy(icon_path, p, string_length(icon_path) - p + 1)); - f.spr = sprite_add(icon_path, amo, false, false, 0, 0); + f.spr_path = [icon_path, amo, false]; } else { var icon_path = path + "\\" + filename_change_ext(file, ".png"); if(!file_exists(icon_path)) continue; @@ -59,8 +81,7 @@ function DirectoryObject(name, path) constructor { var amo = ww % hh == 0? ww / hh : 1; sprite_delete(_temp); - f.spr = sprite_add(icon_path, amo, false, false, 0, 0); - sprite_set_offset(f.spr, sprite_get_width(f.spr) / 2, sprite_get_height(f.spr) / 2); + f.spr_path = [icon_path, amo, true]; } } } diff --git a/scripts/draw_surface_blend/draw_surface_blend.gml b/scripts/draw_surface_blend/draw_surface_blend.gml index f03898e1c..694808891 100644 --- a/scripts/draw_surface_blend/draw_surface_blend.gml +++ b/scripts/draw_surface_blend/draw_surface_blend.gml @@ -40,14 +40,14 @@ function draw_surface_blend(background, foreground, blend, alpha, _mask = 0, til case BLEND_MODE.maxx : sh = sh_blend_max; break; case BLEND_MODE.minn : sh = sh_blend_min; break; } - + var uniform_foreground = shader_get_sampler_index(sh, "fore"); var uniform_mask = shader_get_sampler_index(sh, "mask"); var uniform_dim_rat = shader_get_uniform(sh, "dimension"); var uniform_is_mask = shader_get_uniform(sh, "useMask"); var uniform_alpha = shader_get_uniform(sh, "opacity"); var uniform_tile = shader_get_uniform(sh, "tile_type"); - + shader_set(sh); texture_set_stage(uniform_foreground, surface_get_texture(foreground)); if(_mask) texture_set_stage(uniform_mask, surface_get_texture(_mask)); diff --git a/scripts/fontScrollBox/fontScrollBox.gml b/scripts/fontScrollBox/fontScrollBox.gml new file mode 100644 index 000000000..afb99426b --- /dev/null +++ b/scripts/fontScrollBox/fontScrollBox.gml @@ -0,0 +1,70 @@ +function fontScrollBox(_onModify) : widget() constructor { + onModify = _onModify; + + open = false; + open_rx = 0; + open_ry = 0; + + align = fa_center; + extra_button = button(function() { shellOpenExplorer(DIRECTORY + "Fonts\\"); } ) + .setTooltip("Open font folder") + .setIcon(THEME.folder_content, 0, COLORS._main_icon); + + static trigger = function() { + refreshFontFolder(); + open = true; + with(dialogCall(o_dialog_fontscrollbox, x + open_rx, y + open_ry)) { + scrollbox = other; + align = other.align; + } + } + + static draw = function(_x, _y, _w, _h, _text, _m = mouse_ui, _rx = 0, _ry = 0) { + x = _x; + y = _y; + open_rx = _rx; + open_ry = _ry; + h = _h; + + w = _w; + if(extra_button != noone) { + extra_button.hover = hover; + extra_button.active = active; + extra_button.draw(_x + _w - ui(32), _y + _h / 2 - ui(32 / 2), ui(32), ui(32), _m, THEME.button_hide); + w -= ui(40); + } + + if(open) { + resetFocus(); + return; + } + + draw_sprite_stretched(THEME.textbox, 3, _x, _y, w, _h); + + if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + w, _y + _h)) { + draw_sprite_stretched(THEME.textbox, 1, _x, _y, w, _h); + if(mouse_press(mb_left, active)) + trigger(); + if(mouse_click(mb_left, active)) + draw_sprite_stretched(THEME.textbox, 2, _x, _y, w, _h); + } else { + draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, w, _h, c_white, 0.5 + 0.5 * interactable); + if(mouse_press(mb_left)) deactivate(); + } + + draw_set_text(f_p0, align, fa_center, COLORS._main_text); + draw_set_alpha(0.5 + 0.5 * interactable); + if(align == fa_center) + draw_text(_x + w / 2, _y + _h / 2 - ui(2), _text); + else if(align == fa_left) + draw_text(_x + ui(8), _y + _h / 2 - ui(2), _text); + draw_set_alpha(1); + + draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + w - 20, _y + _h / 2, 1, COLORS._main_icon, 0.5 + 0.5 * interactable); + + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); + } +} \ No newline at end of file diff --git a/scripts/fontScrollBox/fontScrollBox.yy b/scripts/fontScrollBox/fontScrollBox.yy new file mode 100644 index 000000000..b1d485b99 --- /dev/null +++ b/scripts/fontScrollBox/fontScrollBox.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "fontScrollBox", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "widgets", + "path": "folders/widgets.yy", + }, +} \ No newline at end of file diff --git a/scripts/font_loader/font_loader.gml b/scripts/font_loader/font_loader.gml index 3ef33f937..ab64b2781 100644 --- a/scripts/font_loader/font_loader.gml +++ b/scripts/font_loader/font_loader.gml @@ -1,6 +1,6 @@ -globalvar FONT_LOADED, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code; +globalvar FONT_ISLOADED, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code; -FONT_LOADED = false; +FONT_ISLOADED = false; function _font_path(rel) { return DIRECTORY + "themes/" + PREF_MAP[? "theme"] + "/fonts/" + string_replace_all(rel, "./", ""); @@ -19,7 +19,7 @@ function _font_load_from_struct(str, def) { function font_clear(font) { if(font_exists(font)) font_delete(font); } function loadFonts() { - if(FONT_LOADED) { + if(FONT_ISLOADED) { font_clear(f_h3); font_clear(f_h5); @@ -44,7 +44,7 @@ function loadFonts() { f_p2 = _f_p2; f_p3 = _f_p3; f_code = _f_code; - FONT_LOADED = false; + FONT_ISLOADED = false; return; } @@ -66,5 +66,5 @@ function loadFonts() { f_code = _font_load_from_struct(fontDef.code, _f_code); - FONT_LOADED = true; + FONT_ISLOADED = true; } \ No newline at end of file diff --git a/scripts/font_sprite_loader/font_sprite_loader.gml b/scripts/font_sprite_loader/font_sprite_loader.gml new file mode 100644 index 000000000..8fe7558e9 --- /dev/null +++ b/scripts/font_sprite_loader/font_sprite_loader.gml @@ -0,0 +1,42 @@ +globalvar FONT_INTERNAL, FONT_SPRITES; +FONT_SPRITES = ds_map_create(); + +#region font refresh + function loadFontSprite(path) { + if(ds_map_exists(FONT_SPRITES, path)) return; + + var f = font_add(path, 32, false, false, 32, 255); + draw_set_text(f, fa_left, fa_top, c_white); + var name = "ABCabc123"; + var ww = string_width(name); + var hh = string_height(name); + + var s = surface_create(ww, hh); + surface_set_target(s); + draw_clear_alpha(0, 0); + draw_text(0, 0, name); + surface_reset_target(); + + var spr = sprite_create_from_surface(s, 0, 0, ww, hh, false, false, 0, 0); + surface_free(s); + + FONT_SPRITES[? path] = spr; + } + + function refreshFontFolder() { + FONT_INTERNAL = []; + var root = DIRECTORY + "Fonts/*"; + var f = file_find_first(root, -1); + var filter = [ ".ttf", ".otf" ]; + while(f != "") { + var fullname = DIRECTORY + "Fonts/" + f; + var ext = filename_ext(fullname); + if(array_exists(filter, string_lower(ext))) { + array_push(FONT_INTERNAL, f); + loadFontSprite(fullname); + } + f = file_find_next(); + } + file_find_close(); + } +#endregion \ No newline at end of file diff --git a/scripts/_node_VFX/_node_VFX.yy b/scripts/font_sprite_loader/font_sprite_loader.yy similarity index 60% rename from scripts/_node_VFX/_node_VFX.yy rename to scripts/font_sprite_loader/font_sprite_loader.yy index 5d4647a39..b2ea04aff 100644 --- a/scripts/_node_VFX/_node_VFX.yy +++ b/scripts/font_sprite_loader/font_sprite_loader.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "_node_VFX", + "name": "font_sprite_loader", "isDnD": false, "isCompatibility": false, "parent": { - "name": "VFX", - "path": "folders/nodes/data/VFX.yy", + "name": "font", + "path": "folders/font.yy", }, } \ No newline at end of file diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index ea5586b03..d30096c8f 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -1,6 +1,8 @@ #region save - globalvar LOADING, LOADING_VERSION, APPENDING, MODIFIED, CURRENT_PATH, READONLY, CONNECTION_CONFLICT, GLOBAL_SEED, ALWAYS_FULL; - LOADING = false; + globalvar LOADING, LOADING_VERSION, APPENDING, CLONING; + globalvar MODIFIED, CURRENT_PATH, READONLY, CONNECTION_CONFLICT, GLOBAL_SEED, ALWAYS_FULL; + LOADING = false; + CLONING = false; LOADING_VERSION = 0; APPENDING = false; READONLY = false; @@ -21,9 +23,9 @@ COLOR_KEYS = []; globalvar VERSION, SAVEFILE_VERSION, VERSION_STRING; - VERSION = 1090; - SAVEFILE_VERSION = 1090; - VERSION_STRING = "1.0.9"; + VERSION = 1110; + SAVEFILE_VERSION = 1100; + VERSION_STRING = "1.1.1.0"; globalvar NODES, NODE_MAP, APPEND_MAP, HOTKEYS, HOTKEY_CONTEXT; @@ -41,14 +43,12 @@ #region inputs globalvar FOCUS, FOCUS_STR, HOVER, DOUBLE_CLICK, CURRENT_PATH, DIALOG_CLICK; - globalvar TEXTBOX_ACTIVE; CURRENT_PATH = ""; DOUBLE_CLICK = false; FOCUS = noone; FOCUS_STR = ""; HOVER = noone; - TEXTBOX_ACTIVE = noone; DIALOG_CLICK = true; globalvar ADD_NODE_PAGE, ADD_NODE_W, ADD_NODE_H; diff --git a/scripts/gradients_function/gradients_function.gml b/scripts/gradients_function/gradients_function.gml index d32dde1f3..c46cac7bb 100644 --- a/scripts/gradients_function/gradients_function.gml +++ b/scripts/gradients_function/gradients_function.gml @@ -47,23 +47,23 @@ function gradient_eval(_gradient, _time, _int = GRADIENT_INTER.smooth) { for(var i = 0; i < ds_list_size(_gradient); i++) { var _key = _gradient[| i]; - if(_key.time >= _time) { - if(i == 0) - return _gradient[| 0].value; - else { - var c0 = _gradient[| i - 1].value; - if(_int == GRADIENT_INTER.smooth) { - var rat = (_time - _gradient[| i - 1].time) / (_gradient[| i].time - _gradient[| i - 1].time); - var c1 = _gradient[| i].value; - return merge_color(c0, c1, rat); - } else if(_int == GRADIENT_INTER.none) { - return c0; - } - } + if(_key.time < _time) continue; + if(_key.time == _time) return _gradient[| i].value; + + if(i == 0) //before first color + return _gradient[| 0].value; + + var c0 = _gradient[| i - 1].value; + if(_int == GRADIENT_INTER.smooth) { + var rat = (_time - _gradient[| i - 1].time) / (_gradient[| i].time - _gradient[| i - 1].time); + var c1 = _gradient[| i].value; + return merge_color(c0, c1, rat); + } else if(_int == GRADIENT_INTER.none) { + return c0; } } - return _gradient[| ds_list_size(_gradient) - 1].value; + return _gradient[| ds_list_size(_gradient) - 1].value; //after last color } function gradient_add(_gradient, _addkey, _deleteDup) { diff --git a/scripts/key_press/key_press.gml b/scripts/key_press/key_press.gml index 157f79165..006320cde 100644 --- a/scripts/key_press/key_press.gml +++ b/scripts/key_press/key_press.gml @@ -1,3 +1,133 @@ +#region key map + global.KEY_STRING_MAP = ds_map_create(); + + global.KEY_STRING_MAP[? 48] = "0" + global.KEY_STRING_MAP[? 49] = "1" + global.KEY_STRING_MAP[? 50] = "2" + global.KEY_STRING_MAP[? 51] = "3" + global.KEY_STRING_MAP[? 52] = "4" + global.KEY_STRING_MAP[? 53] = "5" + global.KEY_STRING_MAP[? 54] = "6" + global.KEY_STRING_MAP[? 55] = "7" + global.KEY_STRING_MAP[? 56] = "8" + global.KEY_STRING_MAP[? 57] = "9" + + global.KEY_STRING_MAP[? 65] = "A" + global.KEY_STRING_MAP[? 66] = "B" + global.KEY_STRING_MAP[? 67] = "C" + global.KEY_STRING_MAP[? 68] = "D" + global.KEY_STRING_MAP[? 69] = "E" + global.KEY_STRING_MAP[? 70] = "F" + global.KEY_STRING_MAP[? 71] = "G" + global.KEY_STRING_MAP[? 72] = "H" + global.KEY_STRING_MAP[? 73] = "I" + global.KEY_STRING_MAP[? 74] = "J" + global.KEY_STRING_MAP[? 75] = "K" + global.KEY_STRING_MAP[? 76] = "L" + global.KEY_STRING_MAP[? 77] = "M" + global.KEY_STRING_MAP[? 78] = "N" + global.KEY_STRING_MAP[? 79] = "O" + global.KEY_STRING_MAP[? 80] = "P" + global.KEY_STRING_MAP[? 81] = "Q" + global.KEY_STRING_MAP[? 82] = "R" + global.KEY_STRING_MAP[? 83] = "S" + global.KEY_STRING_MAP[? 84] = "T" + global.KEY_STRING_MAP[? 85] = "U" + global.KEY_STRING_MAP[? 86] = "V" + global.KEY_STRING_MAP[? 87] = "W" + global.KEY_STRING_MAP[? 88] = "X" + global.KEY_STRING_MAP[? 89] = "Y" + global.KEY_STRING_MAP[? 90] = "Z" + + global.KEY_STRING_MAP[? 96] = "Num 0" + global.KEY_STRING_MAP[? 97] = "Num 1" + global.KEY_STRING_MAP[? 98] = "Num 2" + global.KEY_STRING_MAP[? 99] = "Num 3" + global.KEY_STRING_MAP[? 100] = "Num 4" + global.KEY_STRING_MAP[? 101] = "Num 5" + global.KEY_STRING_MAP[? 102] = "Num 6" + global.KEY_STRING_MAP[? 103] = "Num 7" + global.KEY_STRING_MAP[? 104] = "Num 8" + global.KEY_STRING_MAP[? 105] = "Num 9" + + global.KEY_STRING_MAP[? 106] = "Num *" + global.KEY_STRING_MAP[? 107] = "Num +" + global.KEY_STRING_MAP[? 109] = "Num -" + global.KEY_STRING_MAP[? 110] = "Num ." + global.KEY_STRING_MAP[? 111] = "Num /" + + global.KEY_STRING_MAP[? 186] = ";" + global.KEY_STRING_MAP[? 187] = "=" + global.KEY_STRING_MAP[? 188] = "," + global.KEY_STRING_MAP[? 189] = "-" + global.KEY_STRING_MAP[? 190] = "." + global.KEY_STRING_MAP[? 191] = "/" + global.KEY_STRING_MAP[? 192] = "`" // actually ` + + global.KEY_STRING_MAP[? 219] = "[" + global.KEY_STRING_MAP[? 220] = "\\" + global.KEY_STRING_MAP[? 221] = "]" + global.KEY_STRING_MAP[? 222] = "'" // actually # but that needs to be escaped + + global.KEY_STRING_MAP[? 223] = "`" // actually ` but that needs to be escaped + + function key_get_index(key) { + var k = ds_map_find_first(global.KEY_STRING_MAP); + repeat(ds_map_size(global.KEY_STRING_MAP)) { + if(global.KEY_STRING_MAP[? k] == key) return k; + k = ds_map_find_next(global.KEY_STRING_MAP, k); + } + return false; + } +#endregion + +#region get name + function key_get_name(_key, _mod) { + var dk = ""; + if(_mod & MOD_KEY.ctrl) dk += "Ctrl+"; + if(_mod & MOD_KEY.shift) dk += "Shift+"; + if(_mod & MOD_KEY.alt) dk += "Alt+"; + + switch(_key) { + case vk_space : dk += "Space"; break; + case vk_left : dk += "Left"; break; + case vk_right : dk += "Right"; break; + case vk_up : dk += "Up"; break; + case vk_down : dk += "Down"; break; + case vk_backspace : dk += "Backspace"; break; + case vk_tab : dk += "Tab"; break; + case vk_home : dk += "Home"; break; + case vk_end : dk += "End"; break; + case vk_delete : dk += "Delete"; break; + case vk_insert : dk += "Insert"; break; + case vk_pageup : dk += "Page Up"; break; + case vk_pagedown : dk += "Page Down"; break; + case vk_pause : dk += "Pause"; break; + case vk_printscreen : dk += "Printscreen"; break; + case vk_f1 : dk += "F1"; break; + case vk_f2 : dk += "F2"; break; + case vk_f3 : dk += "F3"; break; + case vk_f4 : dk += "F4"; break; + case vk_f5 : dk += "F5"; break; + case vk_f6 : dk += "F6"; break; + case vk_f7 : dk += "F7"; break; + case vk_f8 : dk += "F8"; break; + case vk_f9 : dk += "F9"; break; + case vk_f10 : dk += "F10"; break; + case vk_f11 : dk += "F11"; break; + case vk_f12 : dk += "F12"; break; + default : + if(ds_map_exists(global.KEY_STRING_MAP, _key)) + dk += global.KEY_STRING_MAP[? _key]; + else + dk += ansi_char(_key); + break; + } + + return dk; + } +#endregion + enum MOD_KEY { none = 0, ctrl = 1, @@ -6,7 +136,7 @@ enum MOD_KEY { } function key_press(_key, _mod) { - if(TEXTBOX_ACTIVE) return false; + if(WIDGET_CURRENT) return false; if(keyboard_check_released(_key) && HOTKEY_MOD == _mod) return true; diff --git a/scripts/load_function/load_function.gml b/scripts/load_function/load_function.gml index 50f9473eb..09c4b4b50 100644 --- a/scripts/load_function/load_function.gml +++ b/scripts/load_function/load_function.gml @@ -131,6 +131,15 @@ function LOAD_PATH(path, readonly = false) { log_warning("LOAD, update", exception_print(e)); } + try { + for(var i = 0; i < ds_list_size(create_list); i++) { + if(create_list[| i].inspectorUpdate != noone) + create_list[| i].inspectorUpdate(); + } + } catch(e) { + log_warning("LOAD, update", exception_print(e)); + } + Render(); if(!ds_queue_empty(CONNECTION_CONFLICT)) { diff --git a/scripts/luaRenderer/luaRenderer.gml b/scripts/luaRenderer/luaRenderer.gml index bfba7ddb8..1a191476f 100644 --- a/scripts/luaRenderer/luaRenderer.gml +++ b/scripts/luaRenderer/luaRenderer.gml @@ -1,5 +1,9 @@ function luaArgumentRenderer() { argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + argument_renderer.x = _x; + argument_renderer.y = _y; + argument_renderer.w = _w; + var tx = _x; var ty = _y + ui(8); var hh = ui(8); @@ -10,13 +14,11 @@ function luaArgumentRenderer() { var _typ = _jType.getValue(); var _h = 0; - _jType.editWidget.hover = _hover; - _jType.editWidget.active = _focus; + _jType.editWidget.setFocus(_focus, _hover); _jType.editWidget.draw(tx, ty, ui(128), _th, _jType.display_data[_jType.showValue()], _m, argument_renderer.rx, argument_renderer.ry); var _jName = inputs[| i + 0]; - _jName.editWidget.hover = _hover; - _jName.editWidget.active = _focus; + _jName.editWidget.setFocus(_focus, _hover); _jName.editWidget.draw(tx + ui(128 + 8), ty, _w - ui(128 + 8), _th, _jName.showValue(), _m, _jName.display_type); _h += _th + ui(6); @@ -25,8 +27,7 @@ function luaArgumentRenderer() { draw_text_add(tx + ui(8), ty + _th + ui(6) + ui(6), "Value"); var _jValue = inputs[| i + 2]; - _jValue.editWidget.hover = _hover; - _jValue.editWidget.active = _focus; + _jValue.editWidget.setFocus(_focus, _hover); if(_typ == 2) { _jValue.editWidget.draw(tx + ui(64), ty + _th + ui(6), _w - ui(64), ui(96), _jValue.showValue(), _m, argument_renderer.rx, argument_renderer.ry); _h += ui(96 + 8); @@ -39,6 +40,15 @@ function luaArgumentRenderer() { ty += _h; } + argument_renderer.h = hh; return hh; }); + + argument_renderer.register = function(parent = noone) { + for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) { + inputs[| i + 1].editWidget.register(parent); + inputs[| i + 0].editWidget.register(parent); + inputs[| i + 2].editWidget.register(parent); + } + } } \ No newline at end of file diff --git a/scripts/matrixGrid/matrixGrid.gml b/scripts/matrixGrid/matrixGrid.gml index fe0eba285..c9d9b7107 100644 --- a/scripts/matrixGrid/matrixGrid.gml +++ b/scripts/matrixGrid/matrixGrid.gml @@ -1,10 +1,8 @@ -function matrixGrid(_type, _onModify, _unit = noone) constructor { +function matrixGrid(_type, _onModify, _unit = noone) : widget() constructor { size = 9; onModify = _onModify; unit = _unit; - hover = false; - active = false; linked = false; b_link = button(function() { linked = !linked; }); b_link.icon = THEME.value_link; @@ -33,12 +31,30 @@ function matrixGrid(_type, _onModify, _unit = noone) constructor { extras = -1; + static register = function(parent = noone) { + b_link.register(parent); + + for( var i = 0; i < size; i++ ) + tb[i].register(parent); + + if(extras) + extras.register(parent); + + if(unit != noone && unit.reference != noone) + unit.triggerButton.register(parent); + } + for(var i = 0; i < size; i++) { tb[i] = new textBox(_type, onModifySingle[i]); tb[i].slidable = true; } static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + if(extras && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -87,8 +103,7 @@ function matrixGrid(_type, _onModify, _unit = noone) constructor { tb[ind].draw(bx + ui(8), by, ww - ui(8), TEXTBOX_HEIGHT, _data[ind], _m); } - hover = false; - active = false; + resetFocus(); return th; } diff --git a/scripts/node_2d_light/node_2d_light.gml b/scripts/node_2d_light/node_2d_light.gml index e98401c41..83bac5e60 100644 --- a/scripts/node_2d_light/node_2d_light.gml +++ b/scripts/node_2d_light/node_2d_light.gml @@ -85,7 +85,6 @@ function Node_2D_light(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con } } - static process_data = function(_outSurf, _data, _output_index, _array_index) { var _shape = _data[1]; diff --git a/scripts/node_3D_obj/node_3D_obj.gml b/scripts/node_3D_obj/node_3D_obj.gml index 7e5be3e4c..15adb489a 100644 --- a/scripts/node_3D_obj/node_3D_obj.gml +++ b/scripts/node_3D_obj/node_3D_obj.gml @@ -1,7 +1,7 @@ function Node_create_3D_Obj_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_3D_Obj(_x, _y); + var node = new Node_3D_Obj(_x, _y, PANEL_GRAPH.getCurrentContext()); node.setPath(path); return node; } @@ -213,7 +213,7 @@ function Node_3D_Obj(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { var _proj = inputs[| 15].getValue(); var _fov = inputs[| 16].getValue(); - inputs[| 16].setVisible(_proj); + inputs[| 16].setVisible(_proj == 1); for( var i = 0; i < array_length(output_display_list) - 1; i++ ) { var ind = output_display_list[i]; diff --git a/scripts/node_3d_repeat/node_3d_repeat.gml b/scripts/node_3d_repeat/node_3d_repeat.gml index 984b40505..d4a8ec098 100644 --- a/scripts/node_3d_repeat/node_3d_repeat.gml +++ b/scripts/node_3d_repeat/node_3d_repeat.gml @@ -15,7 +15,7 @@ function Node_3D_Repeat(_x, _y, _group = -1) : Node(_x, _y, _group) constructor inputs[| 4] = nodeValue(4, "Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2 ]) .setDisplay(VALUE_DISPLAY.vector) - .setUnitRef( function() { return inputs[| 2].getValue(); }); + .setUnitRef( function() { return inputs[| 0].getValue(); }); inputs[| 5] = nodeValue(5, "Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) .setDisplay(VALUE_DISPLAY.vector); @@ -48,7 +48,7 @@ function Node_3D_Repeat(_x, _y, _group = -1) : Node(_x, _y, _group) constructor .setDisplay(VALUE_DISPLAY.vector); inputs[| 16] = nodeValue(16, "Repeat pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Linear", "Radial" ]); + .setDisplay(VALUE_DISPLAY.enum_button, [ "Linear", "Circular" ]); inputs[| 17] = nodeValue(17, "Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_button, [ "x", "y", "z" ]); diff --git a/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml b/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml index 2722896ee..f87cd89c5 100644 --- a/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml +++ b/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml @@ -10,8 +10,8 @@ function Node_VFX_Accelerate(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _g var _rot = random_range(_rot_range[0], _rot_range[1]); var _sca = [ random_range(_sca_range[0], _sca_range[1]), random_range(_sca_range[2], _sca_range[3]) ]; - part.sx = part.sx + _vect[0] * _sten * str; - part.sy = part.sy + _vect[1] * _sten * str; + part.sx = part.sx + _vect[0] * str * _sten; + part.sy = part.sy + _vect[1] * str * _sten; part.rot += _rot * str; diff --git a/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml b/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml index 224f312ea..fe2f78ab0 100644 --- a/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml +++ b/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml @@ -2,12 +2,13 @@ function Node_VFX_Attract(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _grou name = "Attract"; node_draw_icon = s_node_vfx_attract; + inputs[| 4].setVisible(false, false); + function onAffect(part, str) { var _area = current_data[1]; var _area_x = _area[0]; var _area_y = _area[1]; - var _vect = current_data[4]; var _sten = current_data[5]; var _rot_range = current_data[6]; var _sca_range = current_data[7]; @@ -23,9 +24,10 @@ function Node_VFX_Attract(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _grou var scx_s = _sca[0] * str; var scy_s = _sca[1] * str; - if(scx_s < 0) part.scx = lerp_linear(part.scx, 0, abs(scx_s)); - else part.scx += sign(part.scx) * scx_s; - if(scy_s < 0) part.scy = lerp_linear(part.scy, 0, abs(scy_s)); - else part.scy += sign(part.scy) * scy_s; + + if(scx_s < 0) part.sc_sx = lerp_linear(part.sc_sx, 0, abs(scx_s)); + else part.sc_sx += sign(part.sc_sx) * scx_s; + if(scy_s < 0) part.sc_sy = lerp_linear(part.sc_sy, 0, abs(scy_s)); + else part.sc_sy += sign(part.sc_sy) * scy_s; } } \ No newline at end of file diff --git a/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml b/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml index e8cbe5641..df8989be7 100644 --- a/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml +++ b/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml @@ -2,6 +2,10 @@ function Node_VFX_Destroy(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _grou name = "Destroy"; node_draw_icon = s_node_vfx_destroy; + inputs[| 4].setVisible(false, false); + inputs[| 6].setVisible(false, false); + inputs[| 7].setVisible(false, false); + function onAffect(part, str) { var _sten = current_data[5]; diff --git a/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml b/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml index 78d4936ee..ee7da7cac 100644 --- a/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml +++ b/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml @@ -2,12 +2,13 @@ function Node_VFX_Repel(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) name = "Repel"; node_draw_icon = s_node_vfx_repel; + inputs[| 4].setVisible(false, false); + function onAffect(part, str) { var _area = current_data[1]; var _area_x = _area[0]; var _area_y = _area[1]; - var _vect = current_data[4]; var _sten = current_data[5]; var _rot_range = current_data[6]; var _sca_range = current_data[7]; diff --git a/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml b/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml index f5cc7f4ca..57ef2e424 100644 --- a/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml +++ b/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml @@ -2,8 +2,14 @@ function Node_VFX_Turbulence(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _g name = "Turbulence"; node_draw_icon = s_node_vfx_turb; + inputs[| 4].setVisible(false, false); + + inputs[| 8] = nodeValue(8, "Turbulence scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) + .setVisible(true, false); + + array_push(input_display_list, 8); + function onAffect(part, str) { - var _vect = current_data[4]; var _sten = current_data[5]; var _rot_range = current_data[6]; var _sca_range = current_data[7]; @@ -12,20 +18,22 @@ function Node_VFX_Turbulence(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _g var pv = part.getPivot(); - var t_scale = current_data[10]; - var per = (perlin_noise(pv[0] / t_scale, pv[1] / t_scale, 4, part.seed) - 0.5) * 2; - per *= str; - - part.x = part.x + _vect[0] * per; - part.y = part.y + _vect[1] * per; - - part.rot += _rot * per; + var t_scale = current_data[8]; + var perx = (perlin_noise(pv[0] / t_scale, pv[1] / t_scale, 1, part.seed) - 0.5) * 2; + var pery = (perlin_noise(pv[0] / t_scale, pv[1] / t_scale, 1, part.seed + 100) - 0.5) * 2; + + part.x += perx * str * _sten; + part.y += pery * str * _sten; + + part.rot += _rot * perx; var scx_s = _sca[0] * str; var scy_s = _sca[1] * str; - if(scx_s < 0) part.scx = lerp_linear(part.scx, 0, abs(scx_s)); - else part.scx += sign(part.scx) * scx_s; - if(scy_s < 0) part.scy = lerp_linear(part.scy, 0, abs(scy_s)); - else part.scy += sign(part.scy) * scy_s; + + if(scx_s < 0) part.scx = lerp_linear(part.scx, 0, abs(scx_s)); + else if(scx_s > 0) part.scx += sign(part.scx) * scx_s; + + if(scy_s < 0) part.scy = lerp_linear(part.scy, 0, abs(scy_s)); + else if(scy_s > 0) part.scy += sign(part.scy) * scy_s; } } \ No newline at end of file diff --git a/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml b/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml index 951d3e53e..ad78af2d4 100644 --- a/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml +++ b/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml @@ -2,24 +2,38 @@ function Node_VFX_Vortex(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group name = "Vortex"; node_draw_icon = s_node_vfx_vortex; + inputs[| 4].setVisible(false, false); + + inputs[| 8] = nodeValue(8, "Attraction force", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2 ); + + inputs[| 9] = nodeValue(9, "Clockwise", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); + + array_push(input_display_list, 8, 9); + function onAffect(part, str) { var _area = current_data[1]; var _area_x = _area[0]; var _area_y = _area[1]; - var _vect = current_data[4]; var _sten = current_data[5]; var _rot_range = current_data[6]; var _sca_range = current_data[7]; + var _attr = current_data[8]; + var _clkw = current_data[9]; + var _rot = random_range(_rot_range[0], _rot_range[1]); var _sca = [ random_range(_sca_range[0], _sca_range[1]), random_range(_sca_range[2], _sca_range[3]) ]; var pv = part.getPivot(); - var dirr = point_direction(_area_x, _area_y, pv[0], pv[1]) + 90; - - part.x = part.x + lengthdir_x(_sten * str, dirr); - part.y = part.y + lengthdir_y(_sten * str, dirr); - + + var dirr = point_direction(_area_x, _area_y, pv[0], pv[1]) + (_clkw? 90 : -90); + part.x += lengthdir_x(_sten * str, dirr); + part.y += lengthdir_y(_sten * str, dirr); + + var dirr = point_direction(pv[0], pv[1], _area_x, _area_y); + part.x += lengthdir_x(_attr * str, dirr); + part.y += lengthdir_y(_attr * str, dirr); + part.rot += _rot * str; var scx_s = _sca[0] * str; diff --git a/scripts/node_VFX_effector/node_VFX_effector.gml b/scripts/node_VFX_effector/node_VFX_effector.gml index 3a295411d..1c1a7f2bc 100644 --- a/scripts/node_VFX_effector/node_VFX_effector.gml +++ b/scripts/node_VFX_effector/node_VFX_effector.gml @@ -29,8 +29,6 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct inputs[| 7] = nodeValue(7, "Scale particle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 0 ] ) .setDisplay(VALUE_DISPLAY.vector_range); - inputs[| 8] = nodeValue(8, "Turbulence scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); - input_display_list = [ 0, ["Area", false], 1, 2, 3, ["Effect", false], 4, 5, 6, 7, @@ -115,8 +113,8 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct distance_to_line(pv[0], pv[1], _area_x1, _area_y0, _area_x1, _area_y1)); } else if(_area_t == AREA_SHAPE.elipse) { var _dirr = point_direction(_area_x, _area_y, pv[0], pv[1]); - var _epx = _area_x + lengthdir_x(_area_w / 2, _dirr); - var _epy = _area_y + lengthdir_y(_area_h / 2, _dirr); + var _epx = _area_x + lengthdir_x(_area_w, _dirr); + var _epy = _area_y + lengthdir_y(_area_h, _dirr); in = point_distance(_area_x, _area_y, pv[0], pv[1]) < point_distance(_area_x, _area_y, _epx, _epy); _dst = point_distance(pv[0], pv[1], _epx, _epy); @@ -124,7 +122,7 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct if(_dst <= _fads) { var inf = in? 0.5 + _dst / _fads : 0.5 - _dst / _fads; - str = eval_curve_bezier_cubic(_fall, clamp(inf, 0., 1.)); + str = eval_curve_bezier_cubic_t(_fall, clamp(inf, 0., 1.)); } else if(in) str = 1; diff --git a/scripts/node_VFX_group/node_VFX_group.gml b/scripts/node_VFX_group/node_VFX_group.gml index 8acd51726..545ab4069 100644 --- a/scripts/node_VFX_group/node_VFX_group.gml +++ b/scripts/node_VFX_group/node_VFX_group.gml @@ -3,12 +3,12 @@ function Node_VFX_Group(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) c color = COLORS.node_blend_vfx; ungroupable = false; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { var input = nodeBuild("Node_VFX_Spawner", -256, -32, self); var renderer = nodeBuild("Node_VFX_Renderer", 256, -32, self); var output = nodeBuild("Node_Group_Output", 256 + 32 * 5, -32, self); - renderer.inputs[| renderer.input_index].setFrom(input.outputs[| 0]); + renderer.inputs[| renderer.input_fix_len].setFrom(input.outputs[| 0]); output.inputs[| 0].setFrom(renderer.outputs[| 0]); } } \ No newline at end of file diff --git a/scripts/node_VFX_renderer/node_VFX_renderer.gml b/scripts/node_VFX_renderer/node_VFX_renderer.gml index eaedf7d04..370cd38da 100644 --- a/scripts/node_VFX_renderer/node_VFX_renderer.gml +++ b/scripts/node_VFX_renderer/node_VFX_renderer.gml @@ -57,20 +57,25 @@ function Node_VFX_Renderer(_x, _y, _group = -1) : Node(_x, _y, _group) construct outputs[| 0].setValue(_outSurf); surface_set_target(_outSurf); - draw_clear_alpha(c_white, 0); - switch(_blend) { - case PARTICLE_BLEND_MODE.normal : gpu_set_blendmode(bm_normal); break; - case PARTICLE_BLEND_MODE.additive : gpu_set_blendmode(bm_add); break; + case PARTICLE_BLEND_MODE.normal : + draw_clear_alpha(c_white, 0); + gpu_set_blendmode(bm_normal); + break; + case PARTICLE_BLEND_MODE.additive : + draw_clear_alpha(c_black, 0); + gpu_set_blendmode(bm_add); + break; } + var surf_w = surface_get_width(_outSurf); + var surf_h = surface_get_height(_outSurf); + for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) { var parts = inputs[| i].getValue(_time); - if(!ds_exists(parts, ds_type_list)) continue; - - for(var j = 0; j < ds_list_size(parts); j++) { - if(!parts[| j].active) continue; - parts[| j].draw(_exact); + for(var j = 0; j < array_length(parts); j++) { + if(!parts[j].active) continue; + parts[j].draw(_exact, surf_w, surf_h); } } diff --git a/scripts/node_VFX_spawner/node_VFX_spawner.gml b/scripts/node_VFX_spawner/node_VFX_spawner.gml index 75bf12b38..7a81c348e 100644 --- a/scripts/node_VFX_spawner/node_VFX_spawner.gml +++ b/scripts/node_VFX_spawner/node_VFX_spawner.gml @@ -13,14 +13,29 @@ function Node_VFX_Spawner(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _ array_insert(input_display_list, 0, ["Trigger", true], input_len + 0, input_len + 1); + static updateParticleForward = function(_render = true) { + var pt = outputs[| 0]; + for( var i = 0; i < ds_list_size(pt.value_to); i++ ) { + var _n = pt.value_to[| i]; + if(_n.value_from != pt) continue; + + if(variable_struct_exists(_n.node, "updateParticleForward")) + _n.node.updateParticleForward(); + } + } + static onSpawn = function(_time, part) { part.step_int = inputs[| input_len + 1].getValue(_time); } - static onPartCreate = function(part) { - var pv = part.getPivot(); - + static onPartCreate = function(part) { var vt = outputs[| 1]; + if(ds_list_empty(vt.value_to)) return; + + var pv = part.getPivot(); + for( var i = 0; i < ds_list_size(inputs); i++ ) + current_data[i] = inputs[| i].getValue(); + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { var _n = vt.value_to[| i]; if(_n.value_from != vt) continue; @@ -29,9 +44,13 @@ function Node_VFX_Spawner(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _ } static onPartStep = function(part) { - var pv = part.getPivot(); - var vt = outputs[| 2]; + if(ds_list_empty(vt.value_to)) return; + + var pv = part.getPivot(); + for( var i = 0; i < ds_list_size(inputs); i++ ) + current_data[i] = inputs[| i].getValue(); + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { var _n = vt.value_to[| i]; if(_n.value_from != vt) continue; @@ -40,9 +59,13 @@ function Node_VFX_Spawner(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _ } static onPartDestroy = function(part) { - var pv = part.getPivot(); - var vt = outputs[| 3]; + if(ds_list_empty(vt.value_to)) return; + + var pv = part.getPivot(); + for( var i = 0; i < ds_list_size(inputs); i++ ) + current_data[i] = inputs[| i].getValue(); + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { var _n = vt.value_to[| i]; if(_n.value_from != vt) continue; diff --git a/scripts/node_animate_curve/node_animate_curve.gml b/scripts/node_animate_curve/node_animate_curve.gml index 6b3e9f4ae..b4c5127fc 100644 --- a/scripts/node_animate_curve/node_animate_curve.gml +++ b/scripts/node_animate_curve/node_animate_curve.gml @@ -4,7 +4,7 @@ function Node_Anim_Curve(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) c previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01); inputs[| 1] = nodeValue(1, "Progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) diff --git a/scripts/node_area/node_area.gml b/scripts/node_area/node_area.gml index 871e05978..2a08d50b1 100644 --- a/scripts/node_area/node_area.gml +++ b/scripts/node_area/node_area.gml @@ -4,7 +4,7 @@ function Node_Area(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) .setDisplay(VALUE_DISPLAY.vector) diff --git a/scripts/node_array/node_array.gml b/scripts/node_array/node_array.gml index 36279b307..0aadc8569 100644 --- a/scripts/node_array/node_array.gml +++ b/scripts/node_array/node_array.gml @@ -3,7 +3,7 @@ function Node_Array(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { previewable = false; w = 96; - min_h = 0; + static createNewInput = function() { var index = ds_list_size(inputs); diff --git a/scripts/node_array_range/node_array_range.gml b/scripts/node_array_range/node_array_range.gml index 18c1316ec..d3a362a1b 100644 --- a/scripts/node_array_range/node_array_range.gml +++ b/scripts/node_array_range/node_array_range.gml @@ -3,7 +3,7 @@ function Node_Array_Range(_x, _y, _group = -1) : Node(_x, _y, _group) constructo previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 1] = nodeValue(1, "End", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 10); diff --git a/scripts/node_ase_file_read/node_ase_file_read.gml b/scripts/node_ase_file_read/node_ase_file_read.gml new file mode 100644 index 000000000..db57cd66d --- /dev/null +++ b/scripts/node_ase_file_read/node_ase_file_read.gml @@ -0,0 +1,346 @@ +function Node_create_ASE_File_Read(_x, _y, _group = -1) { + var path = ""; + if(!LOADING && !APPENDING && !CLONING) { + path = get_open_filename(".ase", ""); + if(path == "") return noone; + } + + var node = new Node_ASE_File_Read(_x, _y, _group); + node.inputs[| 0].setValue(path); + node.doUpdate(); + + return node; +} + +function Node_create_ASE_File_Read_path(_x, _y, path) { + if(!file_exists(path)) return noone; + + var node = new Node_ASE_File_Read(_x, _y, PANEL_GRAPH.getCurrentContext()); + node.inputs[| 0].setValue(path); + node.doUpdate(); + + return node; +} + +function Node_ASE_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "ASE in"; + update_on_frame = true; + always_output = true; + + w = 128; + + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") + .setDisplay(VALUE_DISPLAY.path_load, ["*.ase, *.aseprite", ""]); + + inputs[| 1] = nodeValue(1, "Generate layers", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.button, [ function() { refreshLayers(); }, "Generate"] ); + + inputs[| 2] = nodeValue(2, "Current tag", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); + + outputs[| 0] = nodeValue(0, "Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + outputs[| 1] = nodeValue(1, "Content", self, JUNCTION_CONNECT.output, VALUE_TYPE.object, self); + + outputs[| 2] = nodeValue(2, "Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "") + .setVisible(true, true); + + hold_visibility = true; + layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + var amo = array_length(layers); + var hh = 28; + var _h = hh * amo + 16; + var _vis = attributes[? "layer_visible"]; + + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1); + for( var i = 0; i < array_length(layers); i++ ) { + var _yy = _y + 8 + i * hh; + var _layer = layers[i]; + + if(i) { + draw_set_color(COLORS.node_composite_separator); + draw_line(_x + 16, _yy - 2, _x + _w - 16, _yy - 2); + } + + var vis = ds_list_get(_vis, i, true); + var _bx = _x + 24; + if(point_in_circle(_m[0], _m[1], _bx, _yy + hh / 2, 12)) { + draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _yy + hh / 2, 1, c_white); + + if(mouse_press(mb_left, _focus)) + hold_visibility = !_vis[| i]; + + if(mouse_click(mb_left, _focus) && _vis[| i] != hold_visibility) { + _vis[| i] = hold_visibility; + update(); + } + } else + draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _yy + hh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * vis); + + draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text); + draw_text(_bx + 16, _yy + hh / 2, _layer.name); + } + + return _h; + }); + + tag_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + var current_tag = inputs[| 2].getValue(); + var amo = array_length(tags); + var abx = ui(24); + var lb_h = line_height(f_p0); + var lb_y = _y + lb_h / 2 + ui(6); + + var by = _y; + var hh = 32; + var _h = lb_h + hh * amo + 16; + + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, by, _w, _h, COLORS.node_composite_bg_blend, 1); + + var index = inputs[| 2].value_from == noone? inputs[| 2].animator.is_anim : 2; + draw_sprite_ui_uniform(THEME.animate_clock, index, abx, lb_y, 1,, 0.8); + if(_hover && point_in_circle(_m[0], _m[1], abx, lb_y, ui(10))) { + draw_sprite_ui_uniform(THEME.animate_clock, index, abx, lb_y, 1,, 1); + TOOLTIP = "Toggle animation"; + + if(mouse_press(mb_left, _focus)) { + if(inputs[| 2].value_from != noone) + inputs[| 2].removeFrom(); + else + inputs[| 2].animator.is_anim = !inputs[| 2].animator.is_anim; + PANEL_ANIMATION.updatePropertyList(); + } + } + + for( var i = 0; i < array_length(tags); i++ ) { + var _yy = by + lb_h + 8 + i * hh; + var tag = tags[i]; + + var st = tag[? "Frame start"]; + var ed = tag[? "Frame end"]; + var rn = ed - st + 1; + var progFr = (ANIMATOR.current_frame - _tag_delay) % rn + 1; + var prog = progFr / rn; + var txt = ""; + + if(tag[? "Name"] == current_tag) { + draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, _w - 16, hh, tag[? "Color"], 0.5); + draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, (_w - 16) * prog, hh, tag[? "Color"], 1.0); + + txt += string(progFr) + "/"; + } else + draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, 8, hh, tag[? "Color"], 1.0); + txt += string(rn); + + if(_hover && point_in_rectangle(_m[0], _m[1], _x + 8, _yy, _x + _w - 8, _yy + hh)) { + draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, _w - 16, hh, c_white, 0.1); + if(mouse_click(mb_left, _focus)) { + inputs[| 2].setValue(tag[? "Name"]); + } + } + + draw_set_text(f_p1, fa_left, fa_center, tag[? "Name"] == current_tag? tag[? "Color"] : COLORS._main_text); + draw_text(_x + 24, _yy + hh / 2, tag[? "Name"]); + + draw_set_text(f_p1, fa_right, fa_center, COLORS._main_text_sub); + draw_text(_x + _w - 20, _yy + hh / 2, txt); + } + + tag_renderer.h = _h; + return _h; + }); + + input_display_list = [ + ["File", true], 0, + ["Layers", false], 1, layer_renderer, + ["Tags", false], tag_renderer, + ]; + + attributes[? "layer_visible"] = ds_list_create(); + + content = ds_map_create(); + layers = []; + tags = []; + _tag_delay = 0; + palette = []; + path_current = ""; + + first_update = false; + + on_dragdrop_file = function(path) { + if(updatePaths(path)) { + doUpdate(); + return true; + } + return false; + } + + function refreshLayers() { + var _nh = 64; + var nx = x + w + 32; + var nh = (array_length(layers) - 1) / 2 * _nh; + var ny = y - nh; + + var lvs = []; + for( var i = 0; i < array_length(layers); i++ ) { + var _layer = layers[i]; + var _name = _layer.name; + var _node = noone; + + for( var j = 0; j < ds_list_size(outputs[| 1].value_to); j++ ) { + var _targNode = outputs[| 1].value_to[| j].node; + if(_targNode.name == _name) { + _node = _targNode; + break; + } + } + + if(_node == noone) + _node = nodeBuild("Node_ASE_layer", nx, ny + i * _nh); + + lvs[i] = _node; + lvs[i].inputs[| 0].setFrom(outputs[| 1]); + lvs[i].name = _name; + } + } + + function updatePaths(path) { + path_current = path; + + path = try_get_path(path); + if(path == -1) return false; + + var ext = filename_ext(path); + var _name = string_replace(filename_name(path), filename_ext(path), ""); + + if(ext != ".ase" && ext != ".aseprite") return false; + + outputs[| 2].setValue(path); + + read_ase(path, content); + + layers = []; + var vis = attributes[? "layer_visible"]; + ds_list_clear(vis); + var frames = content[? "Frames"]; + + for( var i = 0; i < array_length(frames); i++ ) { + var frame = frames[i]; + var chunks = frame[? "Chunks"]; + + for( var j = 0; j < array_length(chunks); j++ ) { + var chunk = chunks[j]; + + switch(chunk[? "Type"]) { + case 0x2019: //palette + var pck = chunk[? "Palette"]; + var plt = []; + for( var k = 0; k < array_length(pck); k++ ) { + var r = pck[k][? "Red"]; + var g = pck[k][? "Green"]; + var b = pck[k][? "Blue"]; + var a = pck[k][? "Alpha"]; + array_push(plt, [r, g, b, a]) + } + content[? "Palette"] = plt; + break; + case 0x2004: //layer + var name = chunk[? "Name"]; + array_push(layers, new ase_layer(name)); + ds_list_add(vis, true); + break; + case 0x2005: //cel + var _layer = chunk[? "Layer index"]; + var cel = new ase_cel(layers[_layer], chunk, content); + layers[_layer].setFrameCel(i, cel); + break; + } + } + } + + tags = []; + var chunks = content[? "Frames"][0][? "Chunks"]; + + for( var j = 0; j < array_length(chunks); j++ ) { + var chunk = chunks[j]; + if(chunk[? "Type"] != 0x2018) continue; + tags = chunk[? "Tags"]; + } + + return true; + } + + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + + for( var j = 0; j < ds_list_size(outputs[| 1].value_to); j++ ) { + var _targNode = outputs[| 1].value_to[| j].node; + _targNode._name = ""; + _targNode.update(); + } + } + + static update = function() { + var path = inputs[| 0].getValue(); + var current_tag = inputs[| 2].getValue(); + if(path_current != path) updatePaths(path); + if(ds_map_empty(content)) return; + + var tag = noone; + for( var i = 0; i < array_length(tags); i++ ) { + if(tags[i][? "Name"] == current_tag) { + tag = tags[i]; + break; + } + } + + _tag_delay = 0; + for( var i = 0; i < ds_list_size(inputs[| 2].animator.values); i++ ) { + var kf = inputs[| 2].animator.values[| i]; + if(kf.time > ANIMATOR.current_frame) break; + _tag_delay = kf.time; + } + + var vis = attributes[? "layer_visible"]; + var ww = content[? "Width"]; + var hh = content[? "Height"]; + var surf = outputs[| 0].getValue; + surf = surface_verify(surf, ww, hh); + outputs[| 0].setValue(surf); + + surface_set_target(surf); + draw_clear_alpha(0, 0); + + for( var i = 0; i < array_length(layers); i++ ) { + layers[i].tag = tag; + var cel = layers[i].getCel(ANIMATOR.current_frame - _tag_delay); + if(!cel) continue; + if(!ds_list_get(vis, i, true)) continue; + + var _inSurf = cel.getSurface(); + if(!is_surface(_inSurf)) + continue; + + var xx = cel.data[? "X"]; + var yy = cel.data[? "Y"]; + + draw_surface(_inSurf, xx, yy); + } + + surface_reset_target(); + } + + static attributeSerialize = function() { + var att = ds_map_create(); + ds_map_add_list(att, "layer_visible", ds_list_clone(attributes[? "layer_visible"])); + + return att; + } + + static attributeDeserialize = function(attr) { + if(ds_map_exists(attr, "layer_visible")) + attributes[? "layer_visible"] = ds_list_clone(attr[? "layer_visible"], true); + } +} \ No newline at end of file diff --git a/scripts/node_ase_file_read/node_ase_file_read.yy b/scripts/node_ase_file_read/node_ase_file_read.yy new file mode 100644 index 000000000..3ba13f796 --- /dev/null +++ b/scripts/node_ase_file_read/node_ase_file_read.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_ase_file_read", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "IO", + "path": "folders/nodes/data/IO.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_ase_layer/node_ase_layer.gml b/scripts/node_ase_layer/node_ase_layer.gml new file mode 100644 index 000000000..0fb6bbdb8 --- /dev/null +++ b/scripts/node_ase_layer/node_ase_layer.gml @@ -0,0 +1,78 @@ +function Node_ASE_layer(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "ASE layer"; + update_on_frame = true; + always_output = true; + previewable = false; + + inputs[| 0] = nodeValue(0, "ASE data", self, JUNCTION_CONNECT.input, VALUE_TYPE.object, noone) + .setVisible(false, true); + + inputs[| 1] = nodeValue(1, "Use cel dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + layer_object = noone; + _name = ""; + + static onValueFromUpdate = function(index) { + findLayer(); + } + + static findLayer = function() { + var data = inputs[| 0].getValue(); + if(data == noone) return; + + var layer_index = 0; + layer_object = noone; + + for( var i = 0; i < array_length(data.layers); i++ ) { + if(data.layers[i].name != name) continue; + + layer_object = data.layers[i]; + break; + } + } + + static update = function() { + var data = inputs[| 0].getValue(); + if(data == noone) return; + + if(_name != name) { + _name = name; + findLayer(); + } + + if(layer_object == noone) return; + var cel = layer_object.getCel(ANIMATOR.current_frame - data._tag_delay); + + var celDim = inputs[| 1].getValue(); + var ww = data.content[? "Width"]; + var hh = data.content[? "Height"]; + var cw = cel? cel.data[? "Width"] : 1; + var ch = cel? cel.data[? "Height"] : 1; + + var surf = outputs[| 0].getValue; + if(celDim) surf = surface_verify(surf, cw, ch); + else surf = surface_verify(surf, ww, hh); + outputs[| 0].setValue(surf); + + if(cel == 0) { + surface_set_target(surf); + draw_clear_alpha(0, 0); + surface_reset_target(); + return; + } + + var _inSurf = cel.getSurface(); + + var xx = celDim? 0 : cel.data[? "X"]; + var yy = celDim? 0 : cel.data[? "Y"]; + + surface_set_target(surf); + draw_clear_alpha(0, 0); + BLEND_OVER + draw_surface(_inSurf, xx, yy); + BLEND_NORMAL + surface_reset_target(); + } +} \ No newline at end of file diff --git a/scripts/node_ase_layer/node_ase_layer.yy b/scripts/node_ase_layer/node_ase_layer.yy new file mode 100644 index 000000000..b1490ab4b --- /dev/null +++ b/scripts/node_ase_layer/node_ase_layer.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_ase_layer", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "IO", + "path": "folders/nodes/data/IO.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_average/node_average.gml b/scripts/node_average/node_average.gml new file mode 100644 index 000000000..eafa482e7 --- /dev/null +++ b/scripts/node_average/node_average.gml @@ -0,0 +1,54 @@ +function Node_Average(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Average"; + + shader = sh_average; + uniform_dim = shader_get_uniform(shader, "dimension"); + + inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var inSurf = _data[0]; + if(!is_surface(inSurf)) return _outSurf; + + var side = max(surface_get_width(inSurf), surface_get_height(inSurf)); + var lop = ceil(log2(side)); + var cc; + side = power(2, lop); + + if(side / 2 >= 1) { + var _Surf = [ surface_create(side, side), surface_create(side / 2, side / 2) ]; + var _ind = 1; + + surface_set_target(_Surf[0]); + draw_clear_alpha(0, 0); + BLEND_OVERRIDE + draw_surface(inSurf, 0, 0); + BLEND_NORMAL + surface_reset_target(); + + gpu_set_tex_filter(true); + for( var i = 0; i < lop; i++ ) { + surface_set_target(_Surf[_ind]); + draw_clear_alpha(0, 0); + draw_surface_ext(_Surf[!_ind], 0, 0, 0.5, 0.5, 0, c_white, 1); + surface_reset_target(); + + if(side / 4 >= 1) surface_resize(_Surf[!_ind], side / 4, side / 4); + _ind = !_ind; + side /= 2; + } + gpu_set_tex_filter(false); + + cc = surface_getpixel(_Surf[!_ind], 0, 0); + } else + cc = surface_getpixel(inSurf, 0, 0); + + surface_set_target(_outSurf); + draw_clear(cc); + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_average/node_average.yy b/scripts/node_average/node_average.yy new file mode 100644 index 000000000..6f038c833 --- /dev/null +++ b/scripts/node_average/node_average.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_average", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_average/node_color_adjustment.yy b/scripts/node_average/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_average/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_average/node_color_replacement.yy b/scripts/node_average/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_average/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_average/node_greyscale.yy b/scripts/node_average/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_average/node_greyscale.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_greyscale", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_average/node_outline.yy b/scripts/node_average/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_average/node_outline.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_outline", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_bevel/node_bevel.gml b/scripts/node_bevel/node_bevel.gml index 17244be6d..0aaff9b44 100644 --- a/scripts/node_bevel/node_bevel.gml +++ b/scripts/node_bevel/node_bevel.gml @@ -10,10 +10,10 @@ function Node_Bevel(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Height", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); - inputs[| 2] = nodeValue(2, "Shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0 ] ) + inputs[| 2] = nodeValue(2, "Shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) .setDisplay(VALUE_DISPLAY.vector); - inputs[| 3] = nodeValue(3, "Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 1, 1 ] ) + inputs[| 3] = nodeValue(3, "Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) .setDisplay(VALUE_DISPLAY.vector); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); diff --git a/scripts/node_blend/node_blend.gml b/scripts/node_blend/node_blend.gml index 8713bcd50..6b543ad19 100644 --- a/scripts/node_blend/node_blend.gml +++ b/scripts/node_blend/node_blend.gml @@ -33,17 +33,23 @@ function Node_Blend(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surfaces", true], 0, 1, 4, + ["Blend", false], 2, 3, + ["Transform", false], 5, + ] + static process_data = function(_outSurf, _data, _output_index, _array_index) { - var _fore = _data[1]; - var _type = _data[2]; - var _opacity = _data[3]; - var _mask = _data[4]; - var _tile = _data[5]; + var _back = _data[0]; + var _fore = _data[1]; + var _type = _data[2]; + var _opacity = _data[3]; + var _mask = _data[4]; + var _tile = _data[5]; surface_set_target(_outSurf); draw_clear_alpha(0, 0); - - draw_surface_blend(_data[0], _fore, _type, _opacity, _mask, _tile); + draw_surface_blend(_back, _fore, _type, _opacity, _mask, _tile); surface_reset_target(); return _outSurf; diff --git a/scripts/node_blur/node_blur.gml b/scripts/node_blur/node_blur.gml index 9f3f6050a..46e4f4f06 100644 --- a/scripts/node_blur/node_blur.gml +++ b/scripts/node_blur/node_blur.gml @@ -5,24 +5,33 @@ function Node_Blur(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru inputs[| 1] = nodeValue(1, "Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3) .setDisplay(VALUE_DISPLAY.slider, [1, 32, 1]); - inputs[| 2] = nodeValue(2, "Clamp border", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + inputs[| 2] = nodeValue(2, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); + + inputs[| 3] = nodeValue(3, "Override color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); - //inputs[| 3] = nodeValue(3, "Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 4] = nodeValue(4, "Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surface", false], 0, 2, + ["Blur", false], 1, 3, 4, + ]; + static process_data = function(_outSurf, _data, _output_index, _array_index) { - var _size = _data[1]; - var _clamp = _data[2]; - //var _mask = _data[3]; + var _size = _data[1]; + var _clamp = _data[2]; + var _isovr = _data[3]; + var _overc = _isovr? _data[4] : noone; + + inputs[| 4].setVisible(_isovr); surface_set_target(_outSurf); - draw_clear_alpha(0, 0); - BLEND_OVER - - draw_surface_safe(surface_apply_gaussian(_data[0], _size, false, c_white, _clamp), 0, 0); - - BLEND_NORMAL + draw_clear_alpha(_isovr? _overc : 0, 0); + BLEND_OVER + draw_surface_safe(surface_apply_gaussian(_data[0], _size, false, c_white, _clamp, _overc), 0, 0); + BLEND_NORMAL surface_reset_target(); return _outSurf; diff --git a/scripts/node_blur_simple/node_blur_simple.gml b/scripts/node_blur_simple/node_blur_simple.gml index e400e1f2c..3107a3ab5 100644 --- a/scripts/node_blur_simple/node_blur_simple.gml +++ b/scripts/node_blur_simple/node_blur_simple.gml @@ -8,6 +8,8 @@ function Node_Blur_Simple(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) uniform_umk = shader_get_uniform(shader, "useMask"); uniform_msk = shader_get_sampler_index(shader, "mask"); + uniform_ovr = shader_get_uniform(shader, "overrideColor"); + uniform_ovc = shader_get_uniform(shader, "overColor"); inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3) @@ -18,9 +20,13 @@ function Node_Blur_Simple(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) inputs[| 3] = nodeValue(3, "Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 4] = nodeValue(4, "Override color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + inputs[| 5] = nodeValue(5, "Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black); + input_display_list = [ ["Surface", false], 0, 3, 2, - ["Blur", false], 1, + ["Blur", false], 1, 4, 5, ]; outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); @@ -30,6 +36,10 @@ function Node_Blur_Simple(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) var _size = _data[1]; var _samp = _data[2]; var _mask = _data[3]; + var _isovr = _data[4]; + var _overc = _data[5]; + + inputs[| 5].setVisible(_isovr); surface_set_target(_outSurf); draw_clear_alpha(0, 0); @@ -40,6 +50,9 @@ function Node_Blur_Simple(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) shader_set_uniform_f(uniform_siz, _size); shader_set_uniform_i(uniform_sam, _samp); + shader_set_uniform_i(uniform_ovr, _isovr); + shader_set_uniform_f_array(uniform_ovc, colToVec4(_overc)); + shader_set_uniform_i(uniform_umk, is_surface(_mask)); if(is_surface(_mask)) texture_set_stage(uniform_msk, surface_get_texture(_mask)); diff --git a/scripts/node_camera/node_camera.gml b/scripts/node_camera/node_camera.gml index 175bf720b..df9506552 100644 --- a/scripts/node_camera/node_camera.gml +++ b/scripts/node_camera/node_camera.gml @@ -2,13 +2,89 @@ function Node_Camera(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) const name = "Camera"; preview_alpha = 0.5; - inputs[| 0] = nodeValue(0, "Scene", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + shader = sh_camera; + uni_scene = shader_get_sampler_index(shader, "scene"); + uni_dim_scn = shader_get_uniform(shader, "scnDimension"); + uni_dim_cam = shader_get_uniform(shader, "camDimension"); + uni_pos = shader_get_uniform(shader, "position"); + uni_zom = shader_get_uniform(shader, "zoom"); + uni_sam_mod = shader_get_uniform(shader, "sampleMode"); + uni_blur = shader_get_uniform(shader, "blur"); + + inputs[| 0] = nodeValue(0, "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Focus area", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16, 4, 4, AREA_SHAPE.rectangle ]) - .setDisplay(VALUE_DISPLAY.area) - .setUnitRef(function(index) { return getDimension(index); }); + .setDisplay(VALUE_DISPLAY.area, function() { return getDimension(0); }); + + inputs[| 2] = nodeValue(2, "Zoom", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) + .setDisplay(VALUE_DISPLAY.slider, [ 0.01, 4, 0.01 ]); + + inputs[| 3] = nodeValue(3, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surface", false], 0, 3, + ["Camera", false], 1, 2, + ["Elements", true], + ]; + + input_display_len = array_length(input_display_list); + input_fix_len = ds_list_size(inputs); + data_length = 2; + + function createNewInput() { + var index = ds_list_size(inputs); + var _s = floor((index - input_fix_len) / data_length); + + inputs[| index + 0] = nodeValue( index + 0, "Element " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| index + 1] = nodeValue( index + 1, "Parallax " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] ) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function(index) { return getDimension(index); }); + + array_push(input_display_list, index + 0); + array_push(input_display_list, index + 1); + } + if(!LOADING && !APPENDING) createNewInput(); + + static refreshDynamicInput = function() { + var _in = ds_list_create(); + + for( var i = 0; i < input_fix_len; i++ ) + ds_list_add(_in, inputs[| i]); + + array_resize(input_display_list, input_display_len); + + for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) { + if(inputs[| i].value_from) { + ds_list_add(_in, inputs[| i + 0]); + ds_list_add(_in, inputs[| i + 1]); + + array_push(input_display_list, i + 0); + array_push(input_display_list, i + 1); + } else { + delete inputs[| i + 0]; + delete inputs[| i + 1]; + } + } + + for( var i = 0; i < ds_list_size(_in); i++ ) + _in[| i].index = i; + + ds_list_destroy(inputs); + inputs = _in; + + createNewInput(); + } + + static onValueFromUpdate = function(index) { + if(index < input_fix_len) return; + if(LOADING || APPENDING) return; + + refreshDynamicInput(); + } + static getPreviewValue = function() { return inputs[| 0]; } static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { @@ -16,30 +92,75 @@ function Node_Camera(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) const var _out = outputs[| 0].getValue(); var _area = current_data[1]; - var _px = _x + (_area[0] - _area[2]) * _s; - var _py = _y + (_area[1] - _area[3]) * _s; + var _zoom = current_data[2]; - draw_surface_ext_safe(_out, _px, _py, _s, _s); + var _px = _x + (_area[0] - _area[2] * _zoom) * _s; + var _py = _y + (_area[1] - _area[3] * _zoom) * _s; + + draw_surface_ext_safe(_out, _px, _py, _s * _zoom, _s * _zoom); inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); + + draw_set_color(COLORS._main_accent); + var x0 = _px; + var y0 = _py; + var x1 = x0 + _area[2] * 2 * _zoom * _s; + var y1 = y0 + _area[3] * 2 * _zoom * _s; + + draw_rectangle_dashed(x0, y0, x1, y1); } static process_data = function(_outSurf, _data, _output_index, _array_index) { var _area = _data[1]; + var _zoom = _data[2]; + var _samp = _data[3]; - var _dw = surface_valid_size(_area[2]) * 2; - var _dh = surface_valid_size(_area[3]) * 2; + var _dw = round(surface_valid_size(_area[2]) * 2); + var _dh = round(surface_valid_size(_area[3]) * 2); _outSurf = surface_verify(_outSurf, _dw, _dh); - var _px = _area[0] - _dw / 2; - var _py = _area[1] - _dh / 2; + var _px = round(_area[0]); + var _py = round(_area[1]); surface_set_target(_outSurf); draw_clear_alpha(0, 0); - BLEND_OVER - draw_surface_safe(_data[0], -_px, -_py); - BLEND_NORMAL + shader_set(shader); + shader_set_uniform_f(uni_dim_cam, _dw, _dh); + shader_set_uniform_f(uni_zom, _zoom); + shader_set_uniform_i(uni_sam_mod, _samp); + + var amo = (ds_list_size(inputs) - input_fix_len) / data_length; + + for( var i = 0; i < amo; i++ ) { + var ind = i? input_fix_len + (i - 1) * data_length : 0; + var sx = 0; + var sy = 0; + var sz = 0; + + if(i) { + sz = _data[ind + 1][2]; + sx = _data[ind + 1][0] * sz * _px; + sy = _data[ind + 1][1] * sz * _py; + } + + var _surface = _data[ind]; + var _scnW = surface_get_width(_surface); + var _scnH = surface_get_height(_surface); + shader_set_uniform_f(uni_dim_scn, _scnW, _scnH); + shader_set_uniform_f(uni_blur, sz); + shader_set_uniform_f(uni_pos, (_px + sx) / _scnW, (_py + sy) / _scnH); + texture_set_stage(uni_scene, surface_get_texture(_surface)); + draw_sprite_ext(s_fx_pixel, 0, 0, 0, _dw, _dh, 0, c_white, 1); + } + shader_reset(); surface_reset_target(); return _outSurf; } + + static postDeserialize = function() { + var _inputs = load_map[? "inputs"]; + + for(var i = input_fix_len; i < ds_list_size(_inputs); i += data_length) + createNewInput(); + } } \ No newline at end of file diff --git a/scripts/node_channels/node_channels.gml b/scripts/node_channels/node_channels.gml index d9771e69e..71130aecd 100644 --- a/scripts/node_channels/node_channels.gml +++ b/scripts/node_channels/node_channels.gml @@ -3,19 +3,24 @@ function Node_RGB_Channel(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 1] = nodeValue(1, "Output type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, ["Channel value", "Greyscale"]); + outputs[| 0] = nodeValue(0, "Red", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); outputs[| 1] = nodeValue(1, "Green", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); outputs[| 2] = nodeValue(2, "Blue", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); outputs[| 3] = nodeValue(3, "Alpha", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); static process_data = function(_outSurf, _data, output_index) { + var _out = _data[1]; + surface_set_target(_outSurf); draw_clear_alpha(0, 0); BLEND_OVER switch(output_index) { - case 0 : shader_set(sh_channel_R); break; - case 1 : shader_set(sh_channel_G); break; - case 2 : shader_set(sh_channel_B); break; + case 0 : shader_set(_out? sh_channel_R_grey : sh_channel_R); break; + case 1 : shader_set(_out? sh_channel_G_grey : sh_channel_G); break; + case 2 : shader_set(_out? sh_channel_B_grey : sh_channel_B); break; case 3 : shader_set(sh_channel_A); break; } draw_surface_safe(_data[0], 0, 0); diff --git a/scripts/node_checkerboard/node_checkerboard.gml b/scripts/node_checkerboard/node_checkerboard.gml index 537f81e54..4c2cde4f2 100644 --- a/scripts/node_checkerboard/node_checkerboard.gml +++ b/scripts/node_checkerboard/node_checkerboard.gml @@ -14,7 +14,7 @@ function Node_Checker(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons .setDisplay(VALUE_DISPLAY.vector); inputs[| 1] = nodeValue(1, "Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2) - .setDisplay(VALUE_DISPLAY.slider, [2, 16, 0.1]); + .setDisplay(VALUE_DISPLAY.slider, [1, 16, 0.1]); inputs[| 2] = nodeValue(2, "Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.rotation); diff --git a/scripts/node_collection/node_collection.gml b/scripts/node_collection/node_collection.gml index f9245788c..a4b30f9a5 100644 --- a/scripts/node_collection/node_collection.gml +++ b/scripts/node_collection/node_collection.gml @@ -126,7 +126,7 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor min_h = 128; } else { w = 96; - min_h = 0; + } setHeight(); @@ -222,7 +222,8 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor } } - static postDeserialize = function() { + static preConnect = function() { sortIO(); + applyDeserialize(); } } \ No newline at end of file diff --git a/scripts/node_color/node_color.gml b/scripts/node_color/node_color.gml index 644768f39..e5cbe44a9 100644 --- a/scripts/node_color/node_color.gml +++ b/scripts/node_color/node_color.gml @@ -2,7 +2,7 @@ function Node_Color(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Color"; previewable = false; - min_h = 0; + w = 96; inputs[| 0] = nodeValue(0, "Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); diff --git a/scripts/node_color_from_hsv/node_color_from_hsv.gml b/scripts/node_color_from_hsv/node_color_from_hsv.gml index 13245ead3..1a94dcd7e 100644 --- a/scripts/node_color_from_hsv/node_color_from_hsv.gml +++ b/scripts/node_color_from_hsv/node_color_from_hsv.gml @@ -3,7 +3,7 @@ function Node_Color_HSV(_x, _y, _group = -1) : Node(_x, _y, _group) constructor previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Hue", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]) diff --git a/scripts/node_color_from_rgb/node_color_from_rgb.gml b/scripts/node_color_from_rgb/node_color_from_rgb.gml index 5bc9c1322..101104925 100644 --- a/scripts/node_color_from_rgb/node_color_from_rgb.gml +++ b/scripts/node_color_from_rgb/node_color_from_rgb.gml @@ -3,7 +3,7 @@ function Node_Color_RGB(_x, _y, _group = -1) : Node(_x, _y, _group) constructor previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Red", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]) diff --git a/scripts/node_color_sampler/node_color_sampler.gml b/scripts/node_color_sampler/node_color_sampler.gml index b237dd7e5..b6846ba0a 100644 --- a/scripts/node_color_sampler/node_color_sampler.gml +++ b/scripts/node_color_sampler/node_color_sampler.gml @@ -1,12 +1,12 @@ function Node_Sampler(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { name = "Sampler"; - min_h = 0; + w = 96; inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); - inputs[| 1] = nodeValue(1, "Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0 ]) + inputs[| 1] = nodeValue(1, "Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) .setDisplay(VALUE_DISPLAY.vector) .setUnitRef(function(index) { return getDimension(index); }); diff --git a/scripts/node_compare/node_compare.gml b/scripts/node_compare/node_compare.gml index a76bf9fdd..748beff59 100644 --- a/scripts/node_compare/node_compare.gml +++ b/scripts/node_compare/node_compare.gml @@ -28,7 +28,7 @@ function Node_Compare(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Equal", "Not equal", "Greater", "Greater or equal", "Lesser", "Lesser or equal" ]); diff --git a/scripts/node_composite/node_composite.gml b/scripts/node_composite/node_composite.gml index 798a552a4..67569eec5 100644 --- a/scripts/node_composite/node_composite.gml +++ b/scripts/node_composite/node_composite.gml @@ -1,3 +1,9 @@ +enum NODE_COMPOSE_DRAG { + move, + rotate, + scale +} + enum COMPOSE_OUTPUT_SCALING { first, largest, @@ -28,8 +34,10 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co data_length = 4; attributes[? "layer_visible"] = ds_list_create(); + attributes[? "layer_selectable"] = ds_list_create(); hold_visibility = true; + hold_select = true; layer_dragging = noone; layer_remove = -1; layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { @@ -41,6 +49,7 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1); var _vis = attributes[? "layer_visible"]; + var _sel = attributes[? "layer_selectable"]; var ly = _y + 8; var ssh = lh - 6; var hoverIndex = noone; @@ -69,6 +78,7 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var aa = (ind != layer_dragging || layer_dragging == noone)? 1 : 0.5; var vis = _vis[| ind]; + var sel = _sel[| ind]; var hover = point_in_rectangle(_m[0], _m[1], _x, _cy, _x + _w, _cy + lh); draw_set_color(COLORS.node_composite_separator); @@ -86,10 +96,22 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co update(); } } else - draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, COLORS._main_icon); + draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * vis); + + _bx += 24 + 8; + if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 12)) { + draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, c_white); + + if(mouse_press(mb_left, _focus)) + hold_select = !_sel[| ind]; + + if(mouse_click(mb_left, _focus) && _sel[| ind] != hold_select) + _sel[| ind] = hold_select; + } else + draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * sel); draw_set_color(COLORS.node_composite_bg); - var _sx0 = _x + 24 * 3 + 8; + var _sx0 = _bx + 24; var _sx1 = _sx0 + ssh; var _sy0 = _cy + 3; var _sy1 = _sy0 + ssh; @@ -133,20 +155,24 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var index = input_fix_len + layer_dragging * data_length; var targt = input_fix_len + hoverIndex * data_length; var _vis = attributes[? "layer_visible"]; + var _sel = attributes[? "layer_selectable"]; var ext = []; var vis = _vis[| layer_dragging]; ds_list_delete(_vis, layer_dragging); ds_list_insert(_vis, hoverIndex, vis); + var sel = _sel[| layer_dragging]; + ds_list_delete(_sel, layer_dragging); + ds_list_insert(_sel, hoverIndex, sel); + for( var i = 0; i < data_length; i++ ) { ext[i] = inputs[| index]; ds_list_delete(inputs, index); - //show_debug_message("remove: " + ext[i].name); } + for( var i = 0; i < data_length; i++ ) { ds_list_insert(inputs, targt + i, ext[i]); - //show_debug_message("place: " + ext[i].name + " at " + string(targt + i)); } update(); @@ -184,7 +210,8 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co inputs[| index + 0] = nodeValue( index + 0, _s? ("Surface " + string(_s)) : "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| index + 1] = nodeValue( index + 1, "Position " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) - .setDisplay(VALUE_DISPLAY.vector); + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function(index) { return [ overlay_w, overlay_h ]; }); inputs[| index + 2] = nodeValue( index + 2, "Rotation " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) .setDisplay(VALUE_DISPLAY.rotation); @@ -197,9 +224,10 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co array_push(input_display_list, index + 2); array_push(input_display_list, index + 3); - while(_s >= ds_list_size(attributes[? "layer_visible"])) { + while(_s >= ds_list_size(attributes[? "layer_visible"])) ds_list_add(attributes[? "layer_visible"], true); - } + while(_s >= ds_list_size(attributes[? "layer_selectable"])) + ds_list_add(attributes[? "layer_selectable"], true); } if(!LOADING && !APPENDING) createNewSurface(); @@ -248,13 +276,70 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co draw_line(x0, y1, x1, y1); if(input_dragging > -1) { - if(drag_type == 0) { - var pos_x = value_snap(dragging_sx + (_mx - dragging_mx) / _s, _snx); - var pos_y = value_snap(dragging_sy + (_my - dragging_my) / _s, _sny); + if(drag_type == NODE_COMPOSE_DRAG.move) { + var _dx = (_mx - dragging_mx) / _s; + var _dy = (_my - dragging_my) / _s; + + if(key_mod_press(SHIFT)) { + if(abs(_dx) > abs(_dy) + ui(16)) + _dy = 0; + else if(abs(_dy) > abs(_dx) + ui(16)) + _dx = 0; + else { + _dx = max(_dx, _dy); + _dy = _dx; + } + } + + var pos_x = value_snap(dragging_sx + _dx, _snx); + var pos_y = value_snap(dragging_sy + _dy, _sny); + + if(key_mod_press(ALT)) { + var _surf = current_data[input_dragging - 1]; + var _sw = surface_get_width(_surf); + var _sh = surface_get_height(_surf); + + var x0 = pos_x, x1 = pos_x + _sw; + var y0 = pos_y, y1 = pos_y + _sh; + var xc = (x0 + x1) / 2; + var yc = (y0 + y1) / 2; + var snap = 4; + + draw_set_color(COLORS._main_accent); + if(abs(x0 - 0) < snap) { + pos_x = 0; + draw_line_width(_x + _s * 0, 0, _x + _s * 0, WIN_H, 2); + } + + if(abs(y0 - 0) < snap) { + pos_y = 0; + draw_line_width(0, _y + _s * 0, WIN_W, _y + _s * 0, 2); + } + + if(abs(x1 - ww) < snap) { + pos_x = ww - _sw; + draw_line_width(_x + _s * ww, 0, _x + _s * ww, WIN_H, 2); + } + + if(abs(y1 - hh) < snap) { + pos_y = hh - _sh; + draw_line_width(0, _y + _s * hh, WIN_W, _y + _s * hh, 2); + } + + if(abs(xc - ww / 2) < snap) { + pos_x = ww / 2 - _sw / 2; + draw_line_width(_x + _s * ww / 2, 0, _x + _s * ww / 2, WIN_H, 2); + } + + if(abs(yc - hh / 2) < snap) { + pos_y = hh / 2 - _sh / 2; + draw_line_width(0, _y + _s * hh / 2, WIN_W, _y + _s * hh / 2, 2); + } + } if(inputs[| input_dragging].setValue([ pos_x, pos_y ])) UNDO_HOLDING = true; - } else if(drag_type == 1) { + } else if(drag_type == NODE_COMPOSE_DRAG.rotate) { var aa = point_direction(rot_anc_x, rot_anc_y, _mx, _my); var da = angle_difference(dragging_mx, aa); var sa; @@ -266,7 +351,7 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co if(inputs[| input_dragging].setValue(sa)) UNDO_HOLDING = true; - } else if(drag_type == 2) { + } else if(drag_type == NODE_COMPOSE_DRAG.scale) { var _surf = inputs[| surf_dragging].getValue(); var _sw = surface_get_width(_surf); var _sh = surface_get_width(_surf); @@ -292,6 +377,7 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var hovering = -1; var hovering_type = 0; var _vis = attributes[? "layer_visible"]; + var _sel = attributes[? "layer_selectable"]; var amo = (ds_list_size(inputs) - input_fix_len) / data_length; if(array_length(current_data) < input_fix_len + amo * data_length) @@ -299,6 +385,7 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co for(var i = 0; i < amo; i++) { var vis = _vis[| i]; + var sel = _sel[| i]; if(!vis) continue; var index = input_fix_len + i * data_length; @@ -324,16 +411,18 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var _sy = _dy1; var _si = 0; + if(!sel) continue; + if(point_in_circle(_mx, _my, _sx, _sy, 12)) { hovering = index; - hovering_type = 2; + hovering_type = NODE_COMPOSE_DRAG.scale; _si = 1; } else if(point_in_rectangle(_mx, _my, _dx0, _dy0, _dx1, _dy1)) { hovering = index; - hovering_type = 0; + hovering_type = NODE_COMPOSE_DRAG.move; } else if(point_in_circle(_mx, _my, _rx, _ry, 12)) { hovering = index; - hovering_type = 1; + hovering_type = NODE_COMPOSE_DRAG.rotate; _ri = 1; } @@ -346,9 +435,9 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co if(hovering != -1) { var _surf = current_data[hovering]; - var _pos = current_data[hovering + 1]; - var _rot = current_data[hovering + 2]; - var _sca = current_data[hovering + 3]; + var _pos = current_data[hovering + 1]; + var _rot = current_data[hovering + 2]; + var _sca = current_data[hovering + 3]; var _ww = surface_get_width(_surf); var _hh = surface_get_height(_surf); @@ -357,35 +446,34 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var _dx1 = _dx0 + _ww * _s; var _dy1 = _dy0 + _hh * _s; - if(hovering_type == 0) { + if(hovering_type == NODE_COMPOSE_DRAG.move) { draw_set_color(COLORS._main_accent); draw_rectangle_border(_dx0, _dy0, _dx1, _dy1, 2); if(mouse_press(mb_left, active)) { - surf_dragging = hovering; - input_dragging = hovering + 1; - drag_type = hovering_type; + surf_dragging = hovering; + input_dragging = hovering + 1; + drag_type = hovering_type; dragging_sx = _pos[0]; dragging_sy = _pos[1]; dragging_mx = _mx; dragging_my = _my; } - } else if(hovering_type == 1) { //rot + } else if(hovering_type == NODE_COMPOSE_DRAG.rotate) { //rot if(mouse_press(mb_left, active)) { - surf_dragging = hovering; - input_dragging = hovering + 2; - drag_type = hovering_type; + surf_dragging = hovering; + input_dragging = hovering + 2; + drag_type = hovering_type; dragging_sx = _rot; - - rot_anc_x = _dx0 + _ww / 2 * _s; - rot_anc_y = _dy0 + _hh / 2 * _s; + rot_anc_x = _dx0 + _ww / 2 * _s; + rot_anc_y = _dy0 + _hh / 2 * _s; dragging_mx = point_direction(rot_anc_x, rot_anc_y, _mx, _my); } - } else if(hovering_type == 2) { //sca + } else if(hovering_type == NODE_COMPOSE_DRAG.scale) { //sca if(mouse_press(mb_left, active)) { - surf_dragging = hovering; - input_dragging = hovering + 3; - drag_type = hovering_type; + surf_dragging = hovering; + input_dragging = hovering + 3; + drag_type = hovering_type; dragging_sx = _sca[0]; dragging_sy = _sca[1]; dragging_mx = _mx; @@ -499,12 +587,17 @@ function Node_Composite(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co static attributeSerialize = function() { var att = ds_map_create(); ds_map_add_list(att, "layer_visible", ds_list_clone(attributes[? "layer_visible"])); + ds_map_add_list(att, "layer_selectable", ds_list_clone(attributes[? "layer_selectable"])); + return att; } static attributeDeserialize = function(attr) { if(ds_map_exists(attr, "layer_visible")) attributes[? "layer_visible"] = ds_list_clone(attr[? "layer_visible"], true); + + if(ds_map_exists(attr, "layer_selectable")) + attributes[? "layer_selectable"] = ds_list_clone(attr[? "layer_selectable"], true); } } diff --git a/scripts/node_condition/node_condition.gml b/scripts/node_condition/node_condition.gml index 293bffde3..14372130f 100644 --- a/scripts/node_condition/node_condition.gml +++ b/scripts/node_condition/node_condition.gml @@ -3,7 +3,7 @@ function Node_Condition(_x, _y, _group = -1) : Node(_x, _y, _group) constructor previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue( 0, "Check value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) .setVisible(true, true); diff --git a/scripts/node_convolution/node_convolution.gml b/scripts/node_convolution/node_convolution.gml index 7e3e93d07..1ecd73a0c 100644 --- a/scripts/node_convolution/node_convolution.gml +++ b/scripts/node_convolution/node_convolution.gml @@ -4,15 +4,25 @@ function Node_Convolution(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) shader = sh_convolution; uniform_dim = shader_get_uniform(shader, "dimension"); uniform_ker = shader_get_uniform(shader, "kernel"); + uniform_sam = shader_get_uniform(shader, "sampleMode"); inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Kernel", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, array_create(9)) .setDisplay(VALUE_DISPLAY.kernel); + inputs[| 2] = nodeValue(2, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surface", false], 0, 2, + ["Kernel", false], 1, + ]; + static process_data = function(_outSurf, _data, _output_index, _array_index) { var _ker = _data[1]; + var _sam = _data[2]; surface_set_target(_outSurf); draw_clear_alpha(0, 0); @@ -21,6 +31,7 @@ function Node_Convolution(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) shader_set(shader); shader_set_uniform_f(uniform_dim, surface_get_width(_outSurf), surface_get_height(_outSurf)); shader_set_uniform_f_array(uniform_ker, _ker); + shader_set_uniform_i(uniform_sam, _sam); draw_surface_safe(_data[0], 0, 0); shader_reset(); diff --git a/scripts/node_counter/node_counter.gml b/scripts/node_counter/node_counter.gml index 589119b54..084900437 100644 --- a/scripts/node_counter/node_counter.gml +++ b/scripts/node_counter/node_counter.gml @@ -4,7 +4,7 @@ function Node_Counter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 1] = nodeValue(1, "Speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); diff --git a/scripts/node_csv_file_read/node_csv_file_read.gml b/scripts/node_csv_file_read/node_csv_file_read.gml index 6f60c9f8b..08d82d6c6 100644 --- a/scripts/node_csv_file_read/node_csv_file_read.gml +++ b/scripts/node_csv_file_read/node_csv_file_read.gml @@ -1,6 +1,6 @@ function Node_create_CSV_File_Read(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".csv", ""); if(path == "") return noone; } @@ -15,7 +15,7 @@ function Node_create_CSV_File_Read(_x, _y, _group = -1) { function Node_create_CSV_File_Read_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_CSV_File_Read(_x, _y); + var node = new Node_CSV_File_Read(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -28,7 +28,7 @@ function Node_CSV_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) construc previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_load, ["*.csv", ""]); @@ -55,8 +55,6 @@ function Node_CSV_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) construc } function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -91,10 +89,17 @@ function Node_CSV_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) construc return true; } - static update = function() { + static inspectorUpdate = function() { var path = inputs[| 0].getValue(); if(path == "") return; updatePaths(path); + update(); + } + + static update = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + if(path_current != path) updatePaths(path); outputs[| 0].setValue(content); } diff --git a/scripts/node_csv_file_write/node_csv_file_write.gml b/scripts/node_csv_file_write/node_csv_file_write.gml index 5fb1203ad..b4f462851 100644 --- a/scripts/node_csv_file_write/node_csv_file_write.gml +++ b/scripts/node_csv_file_write/node_csv_file_write.gml @@ -14,7 +14,7 @@ function Node_CSV_File_Write(_x, _y, _group = -1) : Node(_x, _y, _group) constru previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_save, ["*.csv", ""]); diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index ac373fe11..be4a130ec 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -21,7 +21,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { w = 128; h = 128; - min_h = 128; + min_h = 0; auto_height = true; draw_name = true; @@ -41,6 +41,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { inspecting = false; previewing = 0; + preview_surface = noone; previewable = true; preview_speed = 0; preview_index = 0; @@ -93,7 +94,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { if(outputs[| i].isVisible()) _ho += 24; } - h = max(min_h, _hi, _ho); + h = max(min_h, preview_surface? 128 : 0, _hi, _ho); } static move = function(_x, _y) { @@ -425,6 +426,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { } if(!is_surface(surf)) return; + preview_surface = surf; var pw = surface_get_width(surf); var ph = surface_get_height(surf); @@ -474,6 +476,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { draw_sprite_stretched_ext(THEME.node_glow, 0, xx - 9, yy - 9, w * _s + 18, h * _s + 18, COLORS._main_value_negative, 1); drawNodeBase(xx, yy, _s); + preview_surface = noone; if(previewable && ds_list_size(outputs) > 0) { if(preview_channel >= ds_list_size(outputs)) preview_channel = 0; @@ -626,7 +629,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { static cacheExist = function(frame = ANIMATOR.current_frame) { if(frame >= array_length(cached_output)) return false; if(frame >= array_length(cache_result)) return false; - if(!cache_result[frame]) return false; + if(!array_safe_get(cache_result, frame)) return false; return true; } @@ -707,8 +710,13 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { } static clone = function() { + CLONING = true; var _type = instanceof(self); var _node = nodeBuild(_type, x, y); + CLONING = false; + + if(!_node) return; + var _nid = _node.node_id; var _data = serialize(); diff --git a/scripts/node_display_image/node_display_image.gml b/scripts/node_display_image/node_display_image.gml index 3583e58d9..dd5fd7777 100644 --- a/scripts/node_display_image/node_display_image.gml +++ b/scripts/node_display_image/node_display_image.gml @@ -1,6 +1,6 @@ function Node_create_Display_Image(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".png", ""); if(path == "") return noone; } @@ -16,7 +16,7 @@ function Node_create_Display_Image(_x, _y, _group = -1) { function Node_create_Display_Image_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_Display_Image(_x, _y); + var node = new Node_Display_Image(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -37,9 +37,14 @@ function Node_Display_Image(_x, _y, _group = -1) : Node(_x, _y, _group) construc first_update = false; + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -68,7 +73,7 @@ function Node_Display_Image(_x, _y, _group = -1) : Node(_x, _y, _group) construc static update = function() { var path = inputs[| 0].getValue(); if(path == "") return; - updatePaths(path); + if(path_current != path) updatePaths(path); if(!spr || !sprite_exists(spr)) return; diff --git a/scripts/node_display_text/node_display_text.gml b/scripts/node_display_text/node_display_text.gml index cb4c24356..702ea22b8 100644 --- a/scripts/node_display_text/node_display_text.gml +++ b/scripts/node_display_text/node_display_text.gml @@ -2,7 +2,7 @@ function Node_Display_Text(_x, _y, _group = -1) : Node(_x, _y, _group) construct name = "Display text"; w = 240; h = 160; - min_h = 0; + bg_spr = THEME.node_frame_bg; size_dragging = false; diff --git a/scripts/node_edge_detect/node_edge_detect.gml b/scripts/node_edge_detect/node_edge_detect.gml index 26438216a..bafceee95 100644 --- a/scripts/node_edge_detect/node_edge_detect.gml +++ b/scripts/node_edge_detect/node_edge_detect.gml @@ -4,15 +4,25 @@ function Node_Edge_Detect(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) shader = sh_edge_detect; uniform_dim = shader_get_uniform(shader, "dimension"); uniform_filter = shader_get_uniform(shader, "filter"); + uniform_sam = shader_get_uniform(shader, "sampleMode"); inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); - inputs[| 1] = nodeValue(1, "Filter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + inputs[| 1] = nodeValue(1, "Algorithm", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, ["Sobel", "Prewitt", "Laplacian"] ); + inputs[| 2] = nodeValue(2, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surface", false], 0, 2, + ["Edge detect", false], 1, + ]; + static process_data = function(_outSurf, _data, _output_index, _array_index) { var ft = _data[1]; + var ov = _data[2]; surface_set_target(_outSurf); draw_clear_alpha(0, 0); @@ -21,6 +31,7 @@ function Node_Edge_Detect(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) shader_set(shader); shader_set_uniform_f_array(uniform_dim, [surface_get_width(_data[0]), surface_get_height(_data[0])]); shader_set_uniform_i(uniform_filter, ft); + shader_set_uniform_i(uniform_sam, ov); draw_surface_safe(_data[0], 0, 0); shader_reset(); diff --git a/scripts/node_equation/node_equation.gml b/scripts/node_equation/node_equation.gml index fd6475115..ae13c9a09 100644 --- a/scripts/node_equation/node_equation.gml +++ b/scripts/node_equation/node_equation.gml @@ -4,7 +4,7 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(1, "Equation", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); @@ -14,11 +14,16 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con inputs[| index + 1] = nodeValue( index + 1, "Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) .setVisible(true, true); + inputs[| index + 1].editWidget.interactable = false; } outputs[| 0] = nodeValue(0, "Result", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + argument_renderer.x = _x; + argument_renderer.y = _y; + argument_renderer.w = _w; + var tx = _x + ui(8); var ty = _y + ui(8); var hh = ui(8); @@ -28,16 +33,14 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con var _h = 0; var _jName = inputs[| i + 0]; - _jName.editWidget.hover = _hover; - _jName.editWidget.active = _focus; + _jName.editWidget.setFocus(_focus, _hover); _jName.editWidget.draw(tx, ty, ui(128), _th, _jName.showValue(), _m, _jName.display_type); draw_set_text(f_p1, fa_center, fa_top, COLORS._main_text_sub); draw_text_add(tx + ui(128 + 12), ty + ui(6), "="); var _jValue = inputs[| i + 1]; - _jValue.editWidget.hover = _hover; - _jValue.editWidget.active = _focus; + _jValue.editWidget.setFocus(_focus, _hover); _jValue.editWidget.draw(tx + ui(128 + 24), ty, _w - ui(128 + 24 + 16), _th, _jValue.showValue(), _m); _h += _th + ui(6); @@ -45,9 +48,16 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con ty += _h; } + argument_renderer.h = hh; return hh; }); + argument_renderer.register = function(parent = noone) { + for( var i = input_fix_len; i < ds_list_size(inputs); i++ ) { + inputs[| i].editWidget.register(parent); + } + } + input_display_list = [ ["Function", false], 0, ["Arguments", false], argument_renderer, @@ -72,6 +82,7 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con if(inputs[| i].getValue() != "") { ds_list_add(_in, inputs[| i + 0]); ds_list_add(_in, inputs[| i + 1]); + inputs[| i + 1].editWidget.interactable = true; array_push(input_display_list, i + 1); } else { @@ -129,8 +140,4 @@ function Node_Equation(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) con for(var i = input_fix_len; i < ds_list_size(_inputs); i += data_length) createNewInput(); } - - static doApplyDeserialize = function() { - refreshDynamicInput(); - } } \ No newline at end of file diff --git a/scripts/node_export/node_export.gml b/scripts/node_export/node_export.gml index cfe100d50..ca0dc69a5 100644 --- a/scripts/node_export/node_export.gml +++ b/scripts/node_export/node_export.gml @@ -1,6 +1,6 @@ function Node_create_Export(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_save_filename(".png", "export"); } @@ -11,12 +11,18 @@ function Node_create_Export(_x, _y, _group = -1) { return node; } +enum NODE_EXPORT_FORMAT { + single, + sequence, + gif, +} + function Node_Export(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Export"; previewable = false; w = 96; - min_h = 0; + playing = false; played = 0; @@ -101,9 +107,9 @@ function Node_Export(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { execute_shell_simple(converter, shell_cmd,, 0); - var noti = log_message("EXPORT", "Export gif as " + target_path, THEME.noti_icon_tick); + var noti = log_message("EXPORT", "Export gif as " + target_path, THEME.noti_icon_tick, COLORS._main_value_positive); noti.path = filename_dir(target_path); - noti.setOnClick(function() { shellOpenExplorer(self.path); }); + noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer); PANEL_MENU.setNotiIcon(THEME.noti_icon_tick); } @@ -172,7 +178,7 @@ function Node_Export(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { } } - if(form == 0 || form == 1) + if(form == NODE_EXPORT_FORMAT.single || form == NODE_EXPORT_FORMAT.sequence) s += ".png"; else s += ".gif"; @@ -189,14 +195,14 @@ function Node_Export(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { var _ts = current_time; if(is_array(surf)) { + var p = ""; for(var i = 0; i < array_length(surf); i++) { var _surf = surf[i]; if(!is_surface(_surf)) continue; - var p = ""; - if(form == 2) { + if(form == NODE_EXPORT_FORMAT.gif) { p = DIRECTORY + "temp\\" + string(i) + "\\" + string(100000 + ANIMATOR.current_frame) + ".png"; - } else { + } else if(form == NODE_EXPORT_FORMAT.single || form == NODE_EXPORT_FORMAT.sequence) { if(is_array(path) && array_length(path) == array_length(surf)) p = pathString(path[ safe_mod(i, array_length(path)) ], suff, i); else @@ -204,57 +210,58 @@ function Node_Export(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { } surface_save(_surf, p); - - if(form != 2) { - var noti = log_message("EXPORT", "Export image as " + p, THEME.noti_icon_tick); - noti.path = filename_dir(p); - noti.setOnClick(function() { shellOpenExplorer(self.path); }); - - PANEL_MENU.setNotiIcon(THEME.noti_icon_tick); - } } - } else { - if(is_surface(surf)) { - var p = path; - if(is_array(path)) p = path[0]; + + if(form == NODE_EXPORT_FORMAT.single || form == NODE_EXPORT_FORMAT.sequence) { + var noti = log_message("EXPORT", "Export " + string(array_length(surf)) + " images complete.", THEME.noti_icon_tick, COLORS._main_value_positive); + noti.path = filename_dir(p); + noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer); - if(form == 2) { - p = DIRECTORY + "temp\\" + string(100000 + ANIMATOR.current_frame) + ".png"; - } else { - p = pathString(p, suff); - } + PANEL_MENU.setNotiIcon(THEME.noti_icon_tick); + } + } else if(is_surface(surf)) { + var p = path; + if(is_array(path)) p = path[0]; - surface_save(surf, p); + if(form == NODE_EXPORT_FORMAT.gif) + p = DIRECTORY + "temp\\" + string(100000 + ANIMATOR.current_frame) + ".png"; + else + p = pathString(p, suff); + + surface_save(surf, p); - if(form != 2) { - var noti = log_message("EXPORT", "Export image as " + p, THEME.noti_icon_tick); - noti.path = filename_dir(p); - noti.setOnClick(function() { shellOpenExplorer(self.path); }); + if(form == NODE_EXPORT_FORMAT.single || form == NODE_EXPORT_FORMAT.sequence) { + var noti = log_message("EXPORT", "Export image as " + p, THEME.noti_icon_tick, COLORS._main_value_positive); + noti.path = filename_dir(p); + noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer); - PANEL_MENU.setNotiIcon(THEME.noti_icon_tick); - } - } + PANEL_MENU.setNotiIcon(THEME.noti_icon_tick); + } } } static inspectorUpdate = function() { if(LOADING || APPENDING) return; + if(playing) return; var path = inputs[| 1].getValue(); if(path == "") return; - var anim = inputs[| 3].getValue(); + var form = inputs[| 3].getValue(); - if(anim) { - playing = true; - played = 0; - ANIMATOR.real_frame = -1; - ANIMATOR.current_frame = -1; - ANIMATOR.is_playing = true; - - if(directory_exists(DIRECTORY + "temp")) - directory_destroy(DIRECTORY + "temp"); - } else + if(form == NODE_EXPORT_FORMAT.single) { export(); + return; + } + + playing = true; + played = 0; + ANIMATOR.real_frame = -1; + ANIMATOR.current_frame = -1; + ANIMATOR.is_playing = true; + ANIMATOR.rendering = true; + + if(directory_exists(DIRECTORY + "temp")) + directory_destroy(DIRECTORY + "temp"); } static update = function() { diff --git a/scripts/node_feedback/node_feedback.gml b/scripts/node_feedback/node_feedback.gml index c57c8c6b0..86ddbcf96 100644 --- a/scripts/node_feedback/node_feedback.gml +++ b/scripts/node_feedback/node_feedback.gml @@ -3,7 +3,7 @@ function Node_Feedback(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) co color = COLORS.node_blend_feedback; icon = THEME.feedback; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { var input = nodeBuild("Node_Feedback_Input", -256, -32, self); var output = nodeBuild("Node_Feedback_Output", 256, -32, self); diff --git a/scripts/node_frame/node_frame.gml b/scripts/node_frame/node_frame.gml index 07631737c..4e1c27807 100644 --- a/scripts/node_frame/node_frame.gml +++ b/scripts/node_frame/node_frame.gml @@ -17,7 +17,6 @@ function Node_Frame(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { .setDisplay(VALUE_DISPLAY.vector); inputs[| 1] = nodeValue(1, "Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white ); - static step = function() { var si = inputs[| 0].getValue(); @@ -29,9 +28,10 @@ function Node_Frame(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { static drawNodeBase = function(xx, yy, _s) { draw_sprite_stretched_ext(bg_spr, 0, xx, yy, w * _s, h * _s, color, 0.75); + draw_set_text(f_h5, fa_right, fa_bottom, COLORS._main_text); draw_set_alpha(name_hover? 0.5 : 0.25); - draw_text_cut(xx + w * _s - 8, yy + h * _s - 8, name, w * _s); + draw_text_cut(xx + (w - 8) * _s, yy + (h - 8) * _s, name, w * _s); draw_set_alpha(1); } @@ -65,9 +65,11 @@ function Node_Frame(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { var y1 = yy + h * _s; var x0 = xx + w * _s - 16 * _s; var y0 = yy + h * _s - 16 * _s; - draw_sprite_ext(THEME.node_resize, 0, x1 - 4 * _s, y1 - 4 * _s, 1, 1, 0, c_white, 0.5); + var ics = max(0.25, 0.5 * _s); + draw_sprite_ext(THEME.node_resize, 0, x1 - 4 * _s, y1 - 4 * _s, ics, ics, 0, c_white, 0.5); + if(!name_hover && point_in_rectangle(_mx, _my, x0, y0, x1, y1)) { - draw_sprite_ext(THEME.node_resize, 0, x1 - 4 * _s, y1 - 4 * _s, 1, 1, 0, c_white, 1); + draw_sprite_ext(THEME.node_resize, 0, x1 - 4 * _s, y1 - 4 * _s, ics, ics, 0, c_white, 1); PANEL_GRAPH.drag_locking = true; if(mouse_press(mb_left)) { diff --git a/scripts/node_gradient_output/node_gradient_output.gml b/scripts/node_gradient_output/node_gradient_output.gml index 1cd40e7ad..817db4d96 100644 --- a/scripts/node_gradient_output/node_gradient_output.gml +++ b/scripts/node_gradient_output/node_gradient_output.gml @@ -2,7 +2,7 @@ function Node_Gradient_Out(_x, _y, _group = -1) : Node(_x, _y, _group) construct name = "Gradient"; previewable = false; - min_h = 0; + w = 96; inputs[| 0] = nodeValue(0, "Gradient", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) diff --git a/scripts/node_group_input/node_group_input.gml b/scripts/node_group_input/node_group_input.gml index f610cf679..b89175fb9 100644 --- a/scripts/node_group_input/node_group_input.gml +++ b/scripts/node_group_input/node_group_input.gml @@ -3,7 +3,7 @@ function Node_Group_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructo color = COLORS.node_blend_collection; previewable = false; auto_height = false; - input_index = -1; + input_fix_len = -1; inParent = undefined; @@ -152,10 +152,10 @@ function Node_Group_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructo if(group == noone || !is_struct(group)) return noone; if(override_order) { - input_index = ds_list_size(group.inputs); - inputs[| 5].setValue(input_index); + input_fix_len = ds_list_size(group.inputs); + inputs[| 5].setValue(input_fix_len); } else { - input_index = inputs[| 5].getValue(); + input_fix_len = inputs[| 5].getValue(); } inParent = nodeValue(ds_list_size(group.inputs), "Value", group, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1) @@ -180,7 +180,7 @@ function Node_Group_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructo static step = function() { if(is_undefined(inParent)) return; - inParent.name = name; + inParent.name = name; } static update = function() { @@ -252,6 +252,7 @@ function Node_Group_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructo } } + inParent.name = name; onValueUpdate(0); } diff --git a/scripts/node_image/node_image.gml b/scripts/node_image/node_image.gml index b027183ad..fc7c87745 100644 --- a/scripts/node_image/node_image.gml +++ b/scripts/node_image/node_image.gml @@ -1,6 +1,6 @@ function Node_create_Image(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".png", ""); if(path == "") return noone; } @@ -16,7 +16,7 @@ function Node_create_Image(_x, _y, _group = -1) { function Node_create_Image_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_Image(_x, _y); + var node = new Node_Image(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -54,8 +54,6 @@ function Node_Image(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { } function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -82,11 +80,18 @@ function Node_Image(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { return false; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + static update = function() { var path = inputs[| 0].getValue(); var pad = inputs[| 1].getValue(); if(path == "") return; - updatePaths(path); + if(path_current != path) updatePaths(path); if(!spr || !sprite_exists(spr)) return; diff --git a/scripts/node_image_animated/node_image_animated.gml b/scripts/node_image_animated/node_image_animated.gml index 1f4a64090..5a66ccedc 100644 --- a/scripts/node_image_animated/node_image_animated.gml +++ b/scripts/node_image_animated/node_image_animated.gml @@ -1,6 +1,6 @@ function Node_create_Image_Animated(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filenames(".png", ""); if(path == "") return noone; } @@ -15,7 +15,7 @@ function Node_create_Image_Animated(_x, _y, _group = -1) { } function Node_create_Image_Animated_path(_x, _y, _path) { - var node = new Node_Image_Animated(_x, _y); + var node = new Node_Image_Animated(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(_path); node.doUpdate(); @@ -108,6 +108,13 @@ function Node_Image_Animated(_x, _y, _group = -1) : Node(_x, _y, _group) constru return true; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + static update = function() { var path = inputs[| 0].getValue(); if(path == "") return; diff --git a/scripts/node_image_gif/node_image_gif.gml b/scripts/node_image_gif/node_image_gif.gml index 66b110634..973a98949 100644 --- a/scripts/node_image_gif/node_image_gif.gml +++ b/scripts/node_image_gif/node_image_gif.gml @@ -1,6 +1,6 @@ function Node_create_Image_gif(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".gif", ""); if(path == "") return noone; } @@ -16,7 +16,7 @@ function Node_create_Image_gif(_x, _y, _group = -1) { function Node_create_Image_gif_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_Image_gif(_x, _y); + var node = new Node_Image_gif(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -59,9 +59,14 @@ function Node_Image_gif(_x, _y, _group = -1) : Node(_x, _y, _group) constructor return false; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -105,7 +110,7 @@ function Node_Image_gif(_x, _y, _group = -1) : Node(_x, _y, _group) constructor static update = function() { var path = inputs[| 0].getValue(); if(path == "") return; - updatePaths(path); + if(path_current != path) updatePaths(path); if(!spr || !sprite_exists(spr)) return; diff --git a/scripts/node_image_sequence/node_image_sequence.gml b/scripts/node_image_sequence/node_image_sequence.gml index 2fac77637..8a7fdbb51 100644 --- a/scripts/node_image_sequence/node_image_sequence.gml +++ b/scripts/node_image_sequence/node_image_sequence.gml @@ -1,6 +1,6 @@ function Node_create_Image_Sequence(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filenames(".png", ""); if(path == "") return noone; } @@ -15,7 +15,7 @@ function Node_create_Image_Sequence(_x, _y, _group = -1) { } function Node_create_Image_Sequence_path(_x, _y, _path) { - var node = new Node_Image_Sequence(_x, _y); + var node = new Node_Image_Sequence(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(_path); node.doUpdate(); @@ -87,6 +87,13 @@ function Node_Image_Sequence(_x, _y, _group = -1) : Node(_x, _y, _group) constru return false; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + function updatePaths(paths) { for(var i = 0; i < array_length(spr); i++) { if(spr[i] && sprite_exists(spr[i])) diff --git a/scripts/node_image_sheet/node_image_sheet.gml b/scripts/node_image_sheet/node_image_sheet.gml index 2ebe9a15c..b01fa38b2 100644 --- a/scripts/node_image_sheet/node_image_sheet.gml +++ b/scripts/node_image_sheet/node_image_sheet.gml @@ -21,7 +21,7 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo inputs[| 6] = nodeValue(6, "Padding", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 0, 0, 0]) .setDisplay(VALUE_DISPLAY.padding); - inputs[| 7] = nodeValue(7, "Output", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + inputs[| 7] = nodeValue(7, "Output", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Animation", "Array"]); inputs[| 8] = nodeValue(8, "Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); @@ -52,19 +52,21 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo else inputs[| 3].setValue([ fill_h, fill_w ]); - doUpdate(); - }, "Generate"] ); + inspectorUpdate(); + }, "Auto fill"] ); inputs[| 11] = nodeValue(11, "Sync animation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.button, [ function() { var _amo = inputs[| 3].getValue(); ANIMATOR.frames_total = max(1, _amo[0] * _amo[1]); }, "Sync frames"] ); + + inputs[| 12] = nodeValue(12, "Filter empty output", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); input_display_list = [ ["Sprite", false], 0, 1, 6, 10, ["Sheet", false], 3, 9, 4, 5, - ["Output", false], 7, 8, 11 + ["Output", false], 7, 8, 12, 11 ]; outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); @@ -78,6 +80,8 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo curr_dim = [0, 0]; curr_amo = [0, 0]; + sprite_valid = []; + static getPreviewValue = function() { return inputs[| 0]; } function getSpritePosition(index) { @@ -117,6 +121,9 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo var _amo = curr_amo[0] * curr_amo[1]; for(var i = _amo - 1; i >= 0; i--) { + if(!array_safe_get(sprite_valid, i, true)) + continue; + var _f = getSpritePosition(i); var _fx0 = _x + _f[0] * _s; var _fy0 = _y + _f[1] * _s; @@ -243,7 +250,14 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo #endregion } - static update = function() { + static step = function() { + var _out = inputs[| 7].getValue(); + inputs[| 11].setVisible(!_out); + inputs[| 8].setVisible(!_out); + inputs[| 12].setVisible( _out); + } + + static inspectorUpdate = function() { var _inSurf = inputs[| 0].getValue(); if(!is_surface(_inSurf)) return; @@ -258,12 +272,17 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo var ww = _dim[0] + _pad[0] + _pad[2]; var hh = _dim[1] + _pad[1] + _pad[3]; - var _out = inputs[| 7].getValue(); + var _out = inputs[| 7].getValue(); + var _filt = inputs[| 12].getValue(); curr_dim = _dim; - curr_amo = _amo; + curr_amo = is_array(_amo)? _amo : [1, 1]; curr_off = _off; - + + var filSize = 4; + var _empS = surface_create(filSize, filSize); + var _buff = buffer_create(filSize * filSize * 4, buffer_fixed, 2); + if(_out == 0) { update_on_frame = true; inputs[| 8].setVisible(true); @@ -288,20 +307,57 @@ function Node_Image_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) constructo inputs[| 8].setVisible(false); inputs[| 11].setVisible(false); - surf_array = array_create(_total); + for( var i = 0; i < array_length(surf_array); i++ ) { + if(is_surface(surf_array[i])) + surface_free(surf_array[i]); + } + + surf_array = []; + for(var i = 0; i < _total; i++) { - surf_array[i] = surface_create_valid(ww, hh); + var _s = surface_create_valid(ww, hh); var _spr_pos = getSpritePosition(i); - surface_set_target(surf_array[i]); + surface_set_target(_s); draw_clear_alpha(c_black, 0); BLEND_OVER draw_surface_part(_inSurf, _spr_pos[0], _spr_pos[1], _dim[0], _dim[1], _pad[2], _pad[1]); BLEND_NORMAL surface_reset_target(); + + if(_filt) { + gpu_set_tex_filter(true); + surface_set_target(_empS); + draw_clear_alpha(0, 0); + BLEND_OVER + draw_surface_stretched(_s, 0, 0, filSize, filSize); + BLEND_NORMAL + surface_reset_target(); + gpu_set_tex_filter(false); + + buffer_get_surface(_buff, _empS, 0); + buffer_seek(_buff, buffer_seek_start, 0); + var empty = true; + var c0 = buffer_read(_buff, buffer_u32) & ~(0b11111111 << 24); + repeat(filSize * filSize - 1) { + if(buffer_read(_buff, buffer_u32) & ~(0b11111111 << 24) != c0) { + empty = false; + break; + } + } + + if(!empty) + array_push(surf_array, _s); + sprite_valid[i] = !empty; + } else { + array_push(surf_array, _s); + sprite_valid[i] = true; + } } outputs[| 0].setValue(surf_array); } + buffer_delete(_buff); + surface_free(_empS); } } \ No newline at end of file diff --git a/scripts/node_iterate/node_iterate.gml b/scripts/node_iterate/node_iterate.gml index 23892d568..51cff6043 100644 --- a/scripts/node_iterate/node_iterate.gml +++ b/scripts/node_iterate/node_iterate.gml @@ -17,7 +17,7 @@ function Node_Iterate(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) con loop_start_time = 0; ALWAYS_FULL = true; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { var input = nodeBuild("Node_Iterator_Input", -256, -32, self); var output = nodeBuild("Node_Iterator_Output", 256, -32, self); diff --git a/scripts/node_json_file_read/node_json_file_read.gml b/scripts/node_json_file_read/node_json_file_read.gml index b5a3c2c14..696ce15e1 100644 --- a/scripts/node_json_file_read/node_json_file_read.gml +++ b/scripts/node_json_file_read/node_json_file_read.gml @@ -1,6 +1,6 @@ function Node_create_Json_File_Read(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".json", ""); if(path == "") return noone; } @@ -15,7 +15,7 @@ function Node_create_Json_File_Read(_x, _y, _group = -1) { function Node_create_Json_File_Read_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_Json_File_Read(_x, _y); + var node = new Node_Json_File_Read(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -28,7 +28,7 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_load, ["*.json", ""]); @@ -63,6 +63,13 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru return false; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + static refreshDynamicInput = function() { var _in = ds_list_create(); var _ot = ds_list_create(); @@ -99,8 +106,6 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru } function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -123,7 +128,7 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru static update = function() { var path = inputs[| 0].getValue(); if(path == "") return; - updatePaths(path); + if(path_current != path) updatePaths(path); for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) { var key = inputs[| i].getValue(); diff --git a/scripts/node_json_file_write/node_json_file_write.gml b/scripts/node_json_file_write/node_json_file_write.gml index 6748b8970..3216a8cf2 100644 --- a/scripts/node_json_file_write/node_json_file_write.gml +++ b/scripts/node_json_file_write/node_json_file_write.gml @@ -4,7 +4,7 @@ function Node_Json_File_Write(_x, _y, _group = -1) : Node(_x, _y, _group) constr previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_save, ["*.json", ""]); diff --git a/scripts/node_keyframe/node_keyframe.gml b/scripts/node_keyframe/node_keyframe.gml index 0764b2f11..27220d34a 100644 --- a/scripts/node_keyframe/node_keyframe.gml +++ b/scripts/node_keyframe/node_keyframe.gml @@ -184,6 +184,7 @@ function valueAnimator(_val, _prop) constructor { } return processValue(_val); } + static processValue = function(_val) { if(is_array(_val)) return _val; diff --git a/scripts/node_lerp/node_lerp.gml b/scripts/node_lerp/node_lerp.gml index 8c9f8e37b..ac46266d5 100644 --- a/scripts/node_lerp/node_lerp.gml +++ b/scripts/node_lerp/node_lerp.gml @@ -4,7 +4,6 @@ function Node_Lerp(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru previewable = false; w = 96; - min_h = 0; inputs[| 0] = nodeValue(1, "a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 1] = nodeValue(2, "b", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); diff --git a/scripts/node_lua_compute/node_lua_compute.gml b/scripts/node_lua_compute/node_lua_compute.gml index c216148a0..84a859904 100644 --- a/scripts/node_lua_compute/node_lua_compute.gml +++ b/scripts/node_lua_compute/node_lua_compute.gml @@ -3,7 +3,7 @@ function Node_Lua_Compute(_x, _y, _group = -1) : Node(_x, _y, _group) constructo preview_channel = 1; previewable = false; - min_h = 0; + inputs[| 0] = nodeValue(0, "Function name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "render" + string(irandom_range(100000, 999999))); @@ -22,9 +22,12 @@ function Node_Lua_Compute(_x, _y, _group = -1) : Node(_x, _y, _group) constructo inputs[| index + 1] = nodeValue( index + 1, "Argument type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "String", "Surface" ]); - + inputs[| index + 1].editWidget.interactable = false; + inputs[| index + 2] = nodeValue( index + 2, "Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) .setVisible(true, true); + inputs[| index + 2].editWidget.interactable = false; + } outputs[| 0] = nodeValue(0, "Execution thread", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); @@ -91,6 +94,9 @@ function Node_Lua_Compute(_x, _y, _group = -1) : Node(_x, _y, _group) constructo ds_list_add(_in, inputs[| i + 1]); ds_list_add(_in, inputs[| i + 2]); + inputs[| i + 1].editWidget.interactable = true; + inputs[| i + 2].editWidget.interactable = true; + array_push(input_display_list, i + 2); } else { delete inputs[| i + 0]; diff --git a/scripts/node_lua_global/node_lua_global.gml b/scripts/node_lua_global/node_lua_global.gml index 74294c315..dd0c03f23 100644 --- a/scripts/node_lua_global/node_lua_global.gml +++ b/scripts/node_lua_global/node_lua_global.gml @@ -3,7 +3,7 @@ function Node_Lua_Global(_x, _y, _group = -1) : Node(_x, _y, _group) constructor preview_channel = 1; previewable = false; - min_h = 0; + inputs[| 0] = nodeValue(0, "Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") .setDisplay(VALUE_DISPLAY.code); diff --git a/scripts/node_lua_surface/node_lua_surface.gml b/scripts/node_lua_surface/node_lua_surface.gml index c448746ce..2b469c043 100644 --- a/scripts/node_lua_surface/node_lua_surface.gml +++ b/scripts/node_lua_surface/node_lua_surface.gml @@ -19,9 +19,11 @@ function Node_Lua_Surface(_x, _y, _group = -1) : Node(_x, _y, _group) constructo inputs[| index + 1] = nodeValue( index + 1, "Argument type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "String", "Surface" ]); - + inputs[| index + 1].editWidget.interactable = false; + inputs[| index + 2] = nodeValue( index + 2, "Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) .setVisible(true, true); + inputs[| index + 2].editWidget.interactable = false; } outputs[| 0] = nodeValue(0, "Execution thread", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); @@ -82,6 +84,9 @@ function Node_Lua_Surface(_x, _y, _group = -1) : Node(_x, _y, _group) constructo ds_list_add(_in, inputs[| i + 1]); ds_list_add(_in, inputs[| i + 2]); + inputs[| i + 1].editWidget.interactable = true; + inputs[| i + 2].editWidget.interactable = true; + if(LOADING || APPENDING) { var type = inputs[| i + 1].getValue(); switch(type) { diff --git a/scripts/node_math/node_math.gml b/scripts/node_math/node_math.gml index 80922879a..b17faf787 100644 --- a/scripts/node_math/node_math.gml +++ b/scripts/node_math/node_math.gml @@ -49,7 +49,7 @@ function Node_Math(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, [ diff --git a/scripts/node_mirror/node_mirror.gml b/scripts/node_mirror/node_mirror.gml index 5b7530bf0..1acd1980e 100644 --- a/scripts/node_mirror/node_mirror.gml +++ b/scripts/node_mirror/node_mirror.gml @@ -1,11 +1,6 @@ function Node_Mirror(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { name = "Mirror"; - shader = sh_mirror; - uniform_dim = shader_get_uniform(shader, "dimension"); - uniform_pos = shader_get_uniform(shader, "position"); - uniform_ang = shader_get_uniform(shader, "angle"); - inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) .setDisplay(VALUE_DISPLAY.vector) @@ -16,6 +11,8 @@ function Node_Mirror(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) const outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + outputs[| 1] = nodeValue(1, "Mirror mask", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { var _pos = inputs[| 1].getValue(); var _ang = inputs[| 2].getValue(); @@ -43,6 +40,11 @@ function Node_Mirror(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) const draw_clear_alpha(0, 0); BLEND_OVER + shader = _output_index? sh_mirror_mask : sh_mirror; + uniform_dim = shader_get_uniform(shader, "dimension"); + uniform_pos = shader_get_uniform(shader, "position"); + uniform_ang = shader_get_uniform(shader, "angle"); + shader_set(shader); shader_set_uniform_f_array(uniform_dim, _dim); shader_set_uniform_f_array(uniform_pos, _pos); diff --git a/scripts/node_noise_grid_hex/node_noise_grid_hex.gml b/scripts/node_noise_grid_hex/node_noise_grid_hex.gml index 4c1ec0ae5..12cf04bca 100644 --- a/scripts/node_noise_grid_hex/node_noise_grid_hex.gml +++ b/scripts/node_noise_grid_hex/node_noise_grid_hex.gml @@ -8,7 +8,8 @@ function Node_Noise_Hex(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co uniform_sca = shader_get_uniform(shader, "scale"); uniform_ang = shader_get_uniform(shader, "angle"); - uniform_sam = shader_get_uniform(shader, "useSampler"); + uniform_sam = shader_get_uniform(shader, "useSampler"); + uniform_samTyp = shader_get_uniform(shader, "sampleMode"); inputs[| 0] = nodeValue(0, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) .setDisplay(VALUE_DISPLAY.vector); @@ -23,10 +24,13 @@ function Node_Noise_Hex(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co inputs[| 4] = nodeValue(4, "Texture sample", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 5] = nodeValue(5, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); + input_display_list = [ ["Output", false], 0, ["Noise", false], 1, 2, 3, - ["Texture", false], 4, + ["Texture", false], 4, 5 ]; outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); @@ -41,16 +45,19 @@ function Node_Noise_Hex(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var _pos = _data[2]; var _sca = _data[3]; var _sam = _data[4]; + var _samTyp = _data[5]; _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); surface_set_target(_outSurf); + draw_clear_alpha(0, 0); shader_set(shader); shader_set_uniform_f_array(uniform_dim, [_dim[0], _dim[1]]); shader_set_uniform_f(uniform_sed, _sed); shader_set_uniform_f_array(uniform_pos, _pos); shader_set_uniform_f_array(uniform_sca, _sca); shader_set_uniform_i(uniform_sam, is_surface(_sam)); + shader_set_uniform_i(uniform_samTyp, _samTyp); if(is_surface(_sam)) draw_surface_stretched(_sam, 0, 0, _dim[0], _dim[1]); diff --git a/scripts/node_noise_grid_tri/node_noise_grid_tri.gml b/scripts/node_noise_grid_tri/node_noise_grid_tri.gml index cd846f97b..968515551 100644 --- a/scripts/node_noise_grid_tri/node_noise_grid_tri.gml +++ b/scripts/node_noise_grid_tri/node_noise_grid_tri.gml @@ -8,7 +8,8 @@ function Node_Noise_Tri(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co uniform_sca = shader_get_uniform(shader, "scale"); uniform_ang = shader_get_uniform(shader, "angle"); - uniform_sam = shader_get_uniform(shader, "useSampler"); + uniform_sam = shader_get_uniform(shader, "useSampler"); + uniform_samTyp = shader_get_uniform(shader, "sampleMode"); inputs[| 0] = nodeValue(0, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) .setDisplay(VALUE_DISPLAY.vector); @@ -23,10 +24,13 @@ function Node_Noise_Tri(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co inputs[| 4] = nodeValue(4, "Texture sample", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 5] = nodeValue(5, "Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); + input_display_list = [ ["Output", false], 0, ["Noise", false], 1, 2, 3, - ["Texture", false], 4, + ["Texture", false], 4, 5, ]; outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); @@ -41,16 +45,19 @@ function Node_Noise_Tri(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co var _pos = _data[2]; var _sca = _data[3]; var _sam = _data[4]; + var _samTyp = _data[5]; _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); surface_set_target(_outSurf); + draw_clear_alpha(0, 0); shader_set(shader); shader_set_uniform_f_array(uniform_dim, [_dim[0], _dim[1]]); shader_set_uniform_f(uniform_sed, _sed); shader_set_uniform_f_array(uniform_pos, _pos); shader_set_uniform_f_array(uniform_sca, _sca); shader_set_uniform_i(uniform_sam, is_surface(_sam)); + shader_set_uniform_i(uniform_samTyp, _samTyp); if(is_surface(_sam)) draw_surface_stretched(_sam, 0, 0, _dim[0], _dim[1]); diff --git a/scripts/node_padding/node_padding.gml b/scripts/node_padding/node_padding.gml index a1aa66118..5674513cc 100644 --- a/scripts/node_padding/node_padding.gml +++ b/scripts/node_padding/node_padding.gml @@ -8,10 +8,24 @@ function Node_Padding(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons .setDisplay(VALUE_DISPLAY.padding) .setUnitRef(function(index) { return getDimension(index); }); + inputs[| 2] = nodeValue(2, "Fill method", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Solid" ]); + + inputs[| 3] = nodeValue(3, "Fill color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black); + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + input_display_list = [ + ["Surface", false], 0, + ["Padding", false], 1, 2, 3 + ]; + static process_data = function(_outSurf, _data, _output_index, _array_index) { var padding = _data[1]; + var fill = _data[2]; + var fillClr = _data[3]; + + inputs[| 3].setVisible(fill); var ww = surface_get_width(_data[0]); var hh = surface_get_height(_data[0]); @@ -23,8 +37,13 @@ function Node_Padding(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons _outSurf = surface_verify(_outSurf, sw, sh); surface_set_target(_outSurf); - draw_clear_alpha(0, 0); - BLEND_OVER + if(fill == 0) { + draw_clear_alpha(0, 0); + BLEND_OVER + } else if(fill == 1) { + draw_clear_alpha(fillClr, 1); + } + draw_surface_safe(_data[0], padding[2], padding[1]); BLEND_NORMAL surface_reset_target(); diff --git a/scripts/node_palette/node_palette.gml b/scripts/node_palette/node_palette.gml index f9dbf71cb..542fb339e 100644 --- a/scripts/node_palette/node_palette.gml +++ b/scripts/node_palette/node_palette.gml @@ -2,9 +2,9 @@ function Node_Palette(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Palette"; previewable = false; - min_h = 0; + w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Palette", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_white ]) .setDisplay(VALUE_DISPLAY.palette); diff --git a/scripts/node_palette_extract/node_palette_extract.gml b/scripts/node_palette_extract/node_palette_extract.gml new file mode 100644 index 000000000..44c87ded7 --- /dev/null +++ b/scripts/node_palette_extract/node_palette_extract.gml @@ -0,0 +1,158 @@ +function Node_Palette_Extract(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Palette extract"; + + + w = 96; + + inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue(1, "Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 5); + + inputs[| 2] = nodeValue(2, "Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(99999)); + + outputs[| 0] = nodeValue(0, "Palette", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, [ ]) + .setDisplay(VALUE_DISPLAY.palette); + + static getPreviewValue = function() { return inputs[| 0]; } + + input_display_list = [ + ["Surface", false], 0, + ["Palette", false], 1, 2, + ] + + current_palette = []; + current_color = 0; + + function extractPalette(_surfFull, _size, _seed) { + var _surf = surface_create(min(32, surface_get_width(_surfFull)), min(32, surface_get_height(_surfFull))); + _size = max(1, _size); + + var ww = surface_get_width(_surf); + var hh = surface_get_height(_surf); + + surface_set_target(_surf); + draw_clear_alpha(0, 0); + BLEND_OVERRIDE + gpu_set_texfilter(true); + draw_surface_stretched(_surfFull, 0, 0, ww, hh); + gpu_set_texfilter(false); + BLEND_NORMAL + surface_reset_target(); + + var c_buffer = buffer_create(ww * hh * 4, buffer_fixed, 2); + var colors = array_create(ww * hh); + + buffer_get_surface(c_buffer, _surf, 0); + buffer_seek(c_buffer, buffer_seek_start, 0); + + var _min = [ 1, 1, 1 ]; + var _max = [ 0, 0, 0 ]; + + for( var i = 0; i < ww * hh; i++ ) { + var c = buffer_read(c_buffer, buffer_u32) & ~(0b11111111 << 24); + colors[i] = [ color_get_hue(c) / 255, color_get_saturation(c) / 255, color_get_value(c) / 255, 0 ]; + for( var j = 0; j < 3; j++ ) { + _min[j] = min(_min[j], colors[i][j]); + _max[j] = max(_max[j], colors[i][j]); + } + } + + buffer_delete(c_buffer); + + var cnt = []; + random_set_seed(_seed); + for( var i = 0; i < _size; i++ ) + cnt[i] = [ random(1), random(1), random(1), 0 ]; + + repeat(8) { + var _cnt = []; + for( var i = 0; i < _size; i++ ) { + _cnt[i][0] = cnt[i][0]; + _cnt[i][1] = cnt[i][1]; + _cnt[i][2] = cnt[i][2]; + } + + for( var i = 0; i < ww * hh; i++ ) { + var ind = 0; + var dist = 999; + var _cl = colors[i]; + + for( var j = 0; j < _size; j++ ) { + var _cn = cnt[j]; + var d = point_distance_3d(_cl[0], _cl[1], _cl[2], _cn[0], _cn[1], _cn[2]); + if(d < dist) { + dist = d; + ind = j; + } + } + + colors[i][3] = ind; + } + + for( var i = 0; i < _size; i++ ) + cnt[i] = [ 0, 0, 0, 0 ]; + + for( var i = 0; i < ww * hh; i++ ) { + var _cl = colors[i]; + cnt[_cl[3]][0] += _cl[0]; + cnt[_cl[3]][1] += _cl[1]; + cnt[_cl[3]][2] += _cl[2]; + cnt[_cl[3]][3]++; + } + + for( var i = 0; i < _size; i++ ) { + cnt[i][0] = cnt[i][3]? cnt[i][0] / cnt[i][3] : 0; + cnt[i][1] = cnt[i][3]? cnt[i][1] / cnt[i][3] : 0; + cnt[i][2] = cnt[i][3]? cnt[i][2] / cnt[i][3] : 0; + } + + var del = 0; + for( var i = 0; i < _size; i++ ) { + del = max(del, point_distance_3d(cnt[i][0], cnt[i][1], cnt[i][2], _cnt[i][0], _cnt[i][1], _cnt[i][2])); + } + + if(del < 0.001) break; + } + + var palette = array_create(_size); + + for( var i = 0; i < _size; i++ ) { + var closet = 0; + var dist = 999; + var _cl = cnt[i]; + + for( var j = 0; j < ww * hh; j++ ) { + var _cn = colors[j]; + var d = point_distance_3d(_cl[0], _cl[1], _cl[2], _cn[0], _cn[1], _cn[2]); + + if(d < dist) { + dist = d; + closet = j; + } + } + + palette[i] = make_color_hsv(colors[closet][0] * 255, colors[closet][1] * 255, colors[closet][2] * 255); + } + + surface_free(_surf); + + return palette; + } + + function process_data(_output, _data, index = 0) { + var _surf = _data[0]; + var _size = _data[1]; + var _seed = _data[2]; + + if(!is_surface(_surf)) return []; + + return extractPalette(_surf, _size, _seed); + } + + static onDrawNode = function(xx, yy, _mx, _my, _s) { + var bbox = drawGetBbox(xx, yy, _s); + if(bbox.h < 1) return; + + drawPalette(outputs[| 0].getValue(), bbox.x0, bbox.y0, bbox.w, bbox.h); + } +} \ No newline at end of file diff --git a/scripts/node_palette_extract/node_palette_extract.yy b/scripts/node_palette_extract/node_palette_extract.yy new file mode 100644 index 000000000..d8df5c7d1 --- /dev/null +++ b/scripts/node_palette_extract/node_palette_extract.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_palette_extract", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "color", + "path": "folders/nodes/data/color.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_particle/node_particle.gml b/scripts/node_particle/node_particle.gml index 489e1c490..53f69748d 100644 --- a/scripts/node_particle/node_particle.gml +++ b/scripts/node_particle/node_particle.gml @@ -30,9 +30,8 @@ function Node_Particle(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _gro if(ANIMATOR.current_frame == 0) { reset(); runVFX(ANIMATOR.current_frame); - } else if(cached_output[ANIMATOR.current_frame - 1] != 0) { + } else if(cached_output[ANIMATOR.current_frame - 1] != 0) runVFX(ANIMATOR.current_frame); - } } function render(_time = ANIMATOR.current_frame) { @@ -46,15 +45,23 @@ function Node_Particle(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _gro outputs[| 0].setValue(_outSurf); surface_set_target(_outSurf); - draw_clear_alpha(c_white, 0); - switch(_blend) { - case PARTICLE_BLEND_MODE.normal : gpu_set_blendmode(bm_normal); break; - case PARTICLE_BLEND_MODE.additive : gpu_set_blendmode(bm_add); break; + case PARTICLE_BLEND_MODE.normal : + draw_clear_alpha(c_white, 0); + gpu_set_blendmode(bm_normal); + break; + case PARTICLE_BLEND_MODE.additive : + draw_clear_alpha(c_black, 0); + gpu_set_blendmode(bm_add); + break; } - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - parts[| i].draw(_exact); + var surf_w = surface_get_width(_outSurf); + var surf_h = surface_get_height(_outSurf); + + for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { + parts[i].draw(_exact, surf_w, surf_h); + } gpu_set_blendmode(bm_normal); surface_reset_target(); diff --git a/scripts/node_particle/node_particle.yy b/scripts/node_particle/node_particle.yy index d0ebf3e16..2cd6d6c70 100644 --- a/scripts/node_particle/node_particle.yy +++ b/scripts/node_particle/node_particle.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "VFX", + "path": "folders/nodes/data/VFX.yy", }, } \ No newline at end of file diff --git a/scripts/node_path/node_path.gml b/scripts/node_path/node_path.gml index 74185786b..83a16c222 100644 --- a/scripts/node_path/node_path.gml +++ b/scripts/node_path/node_path.gml @@ -3,7 +3,7 @@ function Node_Path(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); diff --git a/scripts/node_pin/node_pin.gml b/scripts/node_pin/node_pin.gml index 25d45cc97..b9a1ec654 100644 --- a/scripts/node_pin/node_pin.gml +++ b/scripts/node_pin/node_pin.gml @@ -2,7 +2,7 @@ function Node_Pin(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = ""; w = 32; h = 32; - min_h = 0; + auto_height = false; junction_shift_y = 16; previewable = false; diff --git a/scripts/node_pixel_cloud/node_pixel_cloud.gml b/scripts/node_pixel_cloud/node_pixel_cloud.gml index b5d1a974e..a604f176e 100644 --- a/scripts/node_pixel_cloud/node_pixel_cloud.gml +++ b/scripts/node_pixel_cloud/node_pixel_cloud.gml @@ -21,7 +21,7 @@ function Node_Pixel_Cloud(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) inputs[| 1] = nodeValue(1, "Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(100000)); inputs[| 2] = nodeValue(2, "Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) - .setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01]); + .setDisplay(VALUE_DISPLAY.slider, [ 0, 2, 0.01]); inputs[| 3] = nodeValue(3, "Strength map", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); diff --git a/scripts/node_random/node_random.gml b/scripts/node_random/node_random.gml new file mode 100644 index 000000000..2a491ec4f --- /dev/null +++ b/scripts/node_random/node_random.gml @@ -0,0 +1,28 @@ +function Node_Random(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Random"; + color = COLORS.node_blend_number; + previewable = false; + + w = 96; + + + inputs[| 0] = nodeValue(0, "seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(99999)); + inputs[| 1] = nodeValue(1, "from", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); + inputs[| 2] = nodeValue(2, "to", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + + outputs[| 0] = nodeValue(0, "Result", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); + + function process_data(_output, _data, index = 0) { + random_set_seed(_data[0]); + return random_range(_data[1], _data[2]); + } + + function onDrawNode(xx, yy, _mx, _my, _s) { + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); + var str = outputs[| 0].getValue(); + + var bbox = drawGetBbox(xx, yy, _s); + var ss = string_scale(str, bbox.w, bbox.h); + draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); + } +} \ No newline at end of file diff --git a/scripts/node_random/node_random.yy b/scripts/node_random/node_random.yy new file mode 100644 index 000000000..c72fcfc59 --- /dev/null +++ b/scripts/node_random/node_random.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_random", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index ba7a5e023..379b9c48c 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -105,12 +105,14 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(input, "Export", s_node_export, "Node_Export", [0, Node_create_Export]); ds_list_add(input, "Files"); - addNodeObject(input, "Text file in", s_node_text_file_read, "Node_Text_File_Read", [1, Node_Text_File_Read], ["txt"]).set_version(1080); - addNodeObject(input, "Text file out", s_node_text_file_write, "Node_Text_File_Write", [1, Node_Text_File_Write], ["txt"]).set_version(1090); - addNodeObject(input, "CSV file in", s_node_csv_file_read, "Node_CSV_File_Read", [1, Node_CSV_File_Read], ["comma"]).set_version(1090); - addNodeObject(input, "CSV file out", s_node_csv_file_write, "Node_CSV_File_Write", [1, Node_CSV_File_Write], ["comma"]).set_version(1090); - addNodeObject(input, "JSON file in", s_node_json_file_read, "Node_Json_File_Read", [1, Node_Json_File_Read]).set_version(1090); - addNodeObject(input, "JSON file out", s_node_json_file_write, "Node_Json_File_Write", [1, Node_Json_File_Write]).set_version(1090); + addNodeObject(input, "Text file in", s_node_text_file_read, "Node_Text_File_Read", [1, Node_Text_File_Read], ["txt"]).set_version(1080); + addNodeObject(input, "Text file out", s_node_text_file_write, "Node_Text_File_Write", [1, Node_Text_File_Write], ["txt"]).set_version(1090); + addNodeObject(input, "CSV file in", s_node_csv_file_read, "Node_CSV_File_Read", [1, Node_CSV_File_Read], ["comma"]).set_version(1090); + addNodeObject(input, "CSV file out", s_node_csv_file_write, "Node_CSV_File_Write", [1, Node_CSV_File_Write], ["comma"]).set_version(1090); + addNodeObject(input, "JSON file in", s_node_json_file_read, "Node_Json_File_Read", [1, Node_Json_File_Read]).set_version(1090); + addNodeObject(input, "JSON file out", s_node_json_file_write, "Node_Json_File_Write", [1, Node_Json_File_Write]).set_version(1090); + addNodeObject(input, "ASE file in", s_node_ase_file, "Node_ASE_File_Read", [0, Node_create_ASE_File_Read]).set_version(1100); + addNodeObject(input, "ASE layer", s_node_ase_layer, "Node_ASE_layer", [1, Node_ASE_layer]).set_version(1100); var transform = ds_list_create(); addNodeCatagory("Transform", transform); @@ -146,6 +148,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(filter, "Directional Blur", s_node_blur_directional,"Node_Blur_Directional",[1, Node_Blur_Directional]); addNodeObject(filter, "Radial Blur", s_node_blur, "Node_Blur_Radial", [1, Node_Blur_Radial]); addNodeObject(filter, "Contrast Blur", s_node_blur_contrast, "Node_Blur_Contrast", [1, Node_Blur_Contrast]); + addNodeObject(filter, "Average", s_node_average, "Node_Average", [1, Node_Average]); ds_list_add(filter, "Warps"); addNodeObject(filter, "Mirror", s_node_mirror, "Node_Mirror", [1, Node_Mirror]).set_version(1070); @@ -160,10 +163,11 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(filter, "Glow", s_node_glow, "Node_Glow", [1, Node_Glow]); addNodeObject(filter, "Shadow", s_node_shadow, "Node_Shadow", [1, Node_Shadow]); addNodeObject(filter, "Bloom", s_node_bloom, "Node_Bloom", [1, Node_Bloom]); - addNodeObject(filter, "Trail", s_node_trail, "Node_Trail", [1, Node_Trail]); + //addNodeObject(filter, "Trail", s_node_trail, "Node_Trail", [1, Node_Trail]); addNodeObject(filter, "Erode", s_node_erode, "Node_Erode", [1, Node_Erode]); addNodeObject(filter, "2D light", s_node_2d_light, "Node_2D_light", [1, Node_2D_light]); - addNodeObject(filter, "Atlas", s_node_atlas, "Node_Atlas", [1, Node_Atlas]); + addNodeObject(filter, "Cast shadow", s_node_shadow_cast, "Node_Shadow_Cast", [1, Node_Shadow_Cast]).set_version(1100); + addNodeObject(filter, "Pixel expand", s_node_atlas, "Node_Atlas", [1, Node_Atlas]); addNodeObject(filter, "Pixel cloud", s_node_pixel_cloud, "Node_Pixel_Cloud", [1, Node_Pixel_Cloud]); addNodeObject(filter, "Pixel sort", s_node_pixel_sort, "Node_Pixel_Sort", [1, Node_Pixel_Sort]); addNodeObject(filter, "Edge detect", s_node_edge_detect, "Node_Edge_Detect", [1, Node_Edge_Detect]); @@ -202,7 +206,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(threeD, "Normal light", s_node_normal_light, "Node_Normal_Light", [1, Node_Normal_Light]); addNodeObject(threeD, "Bevel", s_node_bevel, "Node_Bevel", [1, Node_Bevel]); addNodeObject(threeD, "Sprite stack", s_node_stack, "Node_Sprite_Stack", [1, Node_Sprite_Stack]); - + ds_list_add(threeD, "3D generates"); addNodeObject(threeD, "3D Object", s_node_3d_obj, "Node_3D_Obj", [1, Node_3D_Obj]); addNodeObject(threeD, "3D Plane", s_node_3d_plane, "Node_3D_Plane", [1, Node_3D_Plane]); @@ -247,9 +251,10 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(generator, "Triangular grid", s_node_grid_tri, "Node_Grid_Tri", [1, Node_Grid_Tri]); addNodeObject(generator, "Hexagonal grid", s_node_grid_hex, "Node_Grid_Hex", [1, Node_Grid_Hex]); - ds_list_add(generator, "Particles"); + ds_list_add(generator, "Populate"); addNodeObject(generator, "Particle", s_node_particle, "Node_Particle", [1, Node_Particle]); addNodeObject(generator, "VFX", s_node_vfx, "Node_VFX_Group", [1, Node_VFX_Group]); + addNodeObject(generator, "Repeat", s_node_repeat, "Node_Repeat", [1, Node_Repeat]).set_version(1100); addNodeObject(generator, "Scatter", s_node_scatter, "Node_Scatter", [1, Node_Scatter]); ds_list_add(generator, "Others"); @@ -261,13 +266,13 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(compose, "Blend", s_node_blend, "Node_Blend", [1, Node_Blend]); addNodeObject(compose, "Compose", s_node_compose, "Node_Composite", [1, Node_Composite]); addNodeObject(compose, "Stack", s_node_draw_stack, "Node_Stack", [1, Node_Stack]).set_version(1070); + addNodeObject(compose, "Camera", s_node_camera, "Node_Camera", [1, Node_Camera]); var renderNode = ds_list_create(); addNodeCatagory("Render", renderNode); ds_list_add(renderNode, "Renders"); addNodeObject(renderNode, "Render sprite sheet", s_node_sprite_sheet, "Node_Render_Sprite_Sheet", [1, Node_Render_Sprite_Sheet]); addNodeObject(renderNode, "Export", s_node_export, "Node_Export", [0, Node_create_Export]); - addNodeObject(renderNode, "Camera", s_node_camera, "Node_Camera", [1, Node_Camera]); //addNodeObject(renderNode, "Preview timeline", s_node_timeline_preview,"Node_Timeline_Preview", [1, Node_create_Timeline_Preview]); var values = ds_list_create(); @@ -283,6 +288,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(values, "Number", s_node_number, "Node_Number", [1, Node_Number]); addNodeObject(values, "Math", s_node_math, "Node_Math", [0, Node_create_Math], ["add", "subtract", "multiply", "divide", "power", "modulo", "round", "ceiling", "floor", "sin", "cos", "tan"]); addNodeObject(values, "Equation", s_node_equation, "Node_Equation", [1, Node_Equation]); + addNodeObject(values, "Random", s_node_random, "Node_Random", [1, Node_Random]); addNodeObject(values, "Compare", s_node_compare, "Node_Compare", [0, Node_create_Compare], ["equal", "greater", "lesser"]); addNodeObject(values, "Statistic", s_node_statistic, "Node_Statistic", [0, Node_create_Statistic], ["sum", "average", "mean", "median", "min", "max"]); addNodeObject(values, "Vector2", s_node_vec2, "Node_Vector2", [1, Node_Vector2]); @@ -293,8 +299,10 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { ds_list_add(values, "Texts"); addNodeObject(values, "Text", s_node_text, "Node_String", [1, Node_String]); addNodeObject(values, "Unicode", s_node_unicode, "Node_Unicode", [1, Node_Unicode]); + addNodeObject(values, "Combine text", s_node_text_combine, "Node_String_Merge", [1, Node_String_Merge]); addNodeObject(values, "Split text", s_node_text_splice, "Node_String_Split", [1, Node_String_Split]); addNodeObject(values, "Trim text", s_node_text_trim, "Node_String_Trim", [1, Node_String_Trim]).set_version(1080); + addNodeObject(values, "Get character", s_node_text_char_get, "Node_String_Get_Char", [1, Node_String_Get_Char]).set_version(1100); ds_list_add(values, "Arrays"); addNodeObject(values, "Array create", s_node_array, "Node_Array", [1, Node_Array]); @@ -309,10 +317,13 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(color, "Color", s_node_color_out, "Node_Color", [1, Node_Color]); addNodeObject(color, "RGB Color", s_node_color_from_rgb, "Node_Color_RGB", [1, Node_Color_RGB]); addNodeObject(color, "HSV Color", s_node_color_from_hsv, "Node_Color_HSV", [1, Node_Color_HSV]); - addNodeObject(color, "Palette", s_node_palette, "Node_Palette", [1, Node_Palette]); addNodeObject(color, "Gradient data", s_node_gradient_out, "Node_Gradient_Out", [1, Node_Gradient_Out]); addNodeObject(color, "Sampler", s_node_sampler, "Node_Sampler", [1, Node_Sampler]); addNodeObject(color, "Color data", s_node_color_data, "Node_Color_Data", [1, Node_Color_Data]); + + ds_list_add(color, "Palettes"); + addNodeObject(color, "Palette", s_node_palette, "Node_Palette", [1, Node_Palette]); + addNodeObject(color, "Palette extract", s_node_palette_extract, "Node_Palette_Extract", [1, Node_Palette_Extract]).set_version(1100); var animation = ds_list_create(); addNodeCatagory("Animation", animation); diff --git a/scripts/node_repeat/node_repeat.gml b/scripts/node_repeat/node_repeat.gml new file mode 100644 index 000000000..690e657b9 --- /dev/null +++ b/scripts/node_repeat/node_repeat.gml @@ -0,0 +1,252 @@ +function Node_Repeat(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "Repeat"; + + inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, PIXEL_SURFACE ); + + inputs[| 1] = nodeValue(1, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 2] = nodeValue(2, "Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); + + inputs[| 3] = nodeValue(3, "Pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Linear", "Grid", "Circular" ]); + + inputs[| 4] = nodeValue(4, "Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [def_surf_size / 2, 0]) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function() { return getDimension(); }); + + inputs[| 5] = nodeValue(5, "Repeat rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 0]) + .setDisplay(VALUE_DISPLAY.rotation_range); + + inputs[| 6] = nodeValue(6, "Scale multiply", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + + inputs[| 7] = nodeValue(7, "Angle range", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 360]) + .setDisplay(VALUE_DISPLAY.rotation_range); + + inputs[| 8] = nodeValue(8, "Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + + inputs[| 9] = nodeValue(9, "Start position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, 0]) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function(index) { return inputs[| 1].getValue(); }); + + inputs[| 10] = nodeValue(10, "Scale over copy", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); + + inputs[| 11] = nodeValue(11, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.object, noone ) + .setVisible(true, true); + + inputs[| 12] = nodeValue(12, "Path range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, 1]) + .setDisplay(VALUE_DISPLAY.slider_range, [0, 1, 0.01]); + + inputs[| 13] = nodeValue(13, "Path shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); + + inputs[| 14] = nodeValue(14, "Color over copy", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) + .setDisplay(VALUE_DISPLAY.gradient); + + inputs[| 15] = nodeValue(15, "Alpha over copy", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); + + inputs[| 16] = nodeValue(16, "Array select", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Order", "Random" ]); + + inputs[| 17] = nodeValue(17, "Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(99999) ); + + inputs[| 18] = nodeValue(18, "Column", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); + + inputs[| 19] = nodeValue(19, "Column shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, def_surf_size / 2]) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function() { return getDimension(); }); + + inputs[| 20] = nodeValue(20, "Animator midpoint", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) + .setDisplay(VALUE_DISPLAY.slider, [-1, 2, 0.01]); + + inputs[| 21] = nodeValue(21, "Animator range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) + .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 22] = nodeValue(22, "Animator position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 23] = nodeValue(23, "Animator rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.rotation); + + inputs[| 24] = nodeValue(24, "Animator scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 25] = nodeValue(25, "Animator falloff", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_10); + + inputs[| 26] = nodeValue(26, "Stack", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_button, [ "None", "X", "Y" ]); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + input_display_list = [ + ["Surface", true], 0, 1, 16, 17, + ["Pattern", false], 3, 9, 2, 18, 7, 8, + ["Path", true], 11, 12, 13, + ["Transform", false], 4, 26, 19, 5, 6, 10, + ["Render", false], 14, 15, + ["Animator", true], 20, 21, 25, 22, 23, 24, + ]; + + static getDimension = function() { + var _surf = inputs[| 0].getValue(); + if(is_array(_surf)) { + if(array_length(_surf) == 0) return [1, 1]; + if(!is_surface(_surf[0])) return [1, 1]; + return [ surface_get_width(_surf[0]), surface_get_height(_surf[0]) ]; + } + + if(!is_surface(_surf)) return [1, 1]; + return [ surface_get_width(_surf), surface_get_height(_surf) ]; + } + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { + if(inputs[| 9].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny, THEME.anchor)) + active = false; + + var _pat = inputs[| 3].getValue(); + var _spos = inputs[| 9].getValue(); + + var px = _x + _spos[0] * _s; + var py = _y + _spos[1] * _s; + + if(_pat == 0 || _pat == 1) { + if(inputs[| 4].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny)) + active = false; + } else if(_pat == 2) { + if(inputs[| 8].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny)) + active = false; + } + } + + static update = function() { + var _inSurf = inputs[| 0].getValue(); + var _dim = inputs[| 1].getValue(); + var _amo = inputs[| 2].getValue(); + var _pat = inputs[| 3].getValue(); + + var _spos = inputs[| 9].getValue(); + + var _rpos = inputs[| 4].getValue(); + var _rsta = inputs[| 26].getValue(); + var _rrot = inputs[| 5].getValue(); + var _rsca = inputs[| 6].getValue(); + var _msca = inputs[| 10].getValue(); + + var _aran = inputs[| 7].getValue(); + var _arad = inputs[| 8].getValue(); + + var _path = inputs[| 11].getValue(); + var _prng = inputs[| 12].getValue(); + var _prsh = inputs[| 13].getValue(); + + var _grad = inputs[| 14].getValue(); + var _grad_data = inputs[| 14].getExtraData(); + var _alph = inputs[| 15].getValue(); + + var _arr = inputs[| 16].getValue(); + var _sed = inputs[| 17].getValue(); + + var _col = inputs[| 18].getValue(); + var _cls = inputs[| 19].getValue(); + + var _an_mid = inputs[| 20].getValue(); + var _an_ran = inputs[| 21].getValue(); + var _an_fal = inputs[| 25].getValue(); + var _an_pos = inputs[| 22].getValue(); + var _an_rot = inputs[| 23].getValue(); + var _an_sca = inputs[| 24].getValue(); + + random_set_seed(_sed); + + inputs[| 4].setVisible( _pat == 0 || _pat == 1); + inputs[| 7].setVisible( _pat == 2); + inputs[| 8].setVisible( _pat == 2); + inputs[| 18].setVisible( _pat == 1); + inputs[| 19].setVisible( _pat == 1); + inputs[| 26].setVisible( _pat == 0); + + var _outSurf = outputs[| 0].getValue(); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); + outputs[| 0].setValue(_outSurf); + + var runx, runy, posx, posy, scax, scay, rot; + + surface_set_target(_outSurf); + draw_clear_alpha(0, 0); + runx = 0; + runy = 0; + + for( var i = 0; i < _amo; i++ ) { + posx = runx; + posy = runy; + + if(_pat == 0) { + if(_path == noone || !variable_struct_exists(_path, "getPointRatio")) { + posx += _spos[0] + _rpos[0] * i; + posy += _spos[1] + _rpos[1] * i; + } else { + var rat = _prsh + _prng[0] + (_prng[1] - _prng[0]) * i / (_amo - 1); + rat = abs(frac(rat)); + + var _p = _path.getPointRatio(rat); + posx = _p[0]; + posy = _p[1]; + } + } else if(_pat == 1) { + var row = floor(i / _col); + var col = i % _col; + + posx = _spos[0] + _rpos[0] * col + _cls[0] * row; + posy = _spos[1] + _rpos[1] * col + _cls[1] * row; + } else if(_pat == 2) { + var aa = _aran[0] + (_aran[1] - _aran[0]) * i / _amo; + posx = _spos[0] + lengthdir_x(_arad, aa); + posy = _spos[1] + lengthdir_y(_arad, aa); + } + + scax = eval_curve_bezier_cubic_x(_msca, i / (_amo - 1)) * _rsca; + scay = scax; + rot = _rrot[0] + (_rrot[1] - _rrot[0]) * i / (_amo - 1); + + var _an_dist = abs(i - _an_mid * (_amo - 1)); + if(_an_dist < _an_ran * _amo) { + var _inf = eval_curve_bezier_cubic_x(_an_fal, _an_dist / (_an_ran * _amo)); + posx += _an_pos[0] * _inf; + posy += _an_pos[1] * _inf; + rot += _an_rot * _inf; + scax += _an_sca[0] * _inf; + scay += _an_sca[1] * _inf; + } + + var _surf = _inSurf; + + if(is_array(_surf)) + _surf = array_safe_get(_inSurf, _arr? irandom(array_length(_inSurf) - 1) : i % array_length(_inSurf)); + + var _sw = surface_get_width(_surf); + var _sh = surface_get_height(_surf); + var sw = _sw * scax; + var sh = _sh * scay; + + if(i) { + if(_rsta == 1) { + runx += _sw / 2; + posx += _sw / 2; + } + if(_rsta == 2) { + runy += _sh / 2; + posy += _sh / 2; + } + } + + var pos = point_rotate(-sw / 2, -sh / 2, 0, 0, rot); + var cc = gradient_eval(_grad, i / (_amo - 1), ds_list_get(_grad_data, 0)); + var aa = eval_curve_bezier_cubic_x(_alph, i / (_amo - 1)); + + draw_surface_ext_safe(_surf, posx + pos[0], posy + pos[1], scax, scay, rot, cc, aa); + + if(_rsta == 1) runx += _sw / 2; + if(_rsta == 2) runy += _sh / 2; + } + surface_reset_target(); + } +} \ No newline at end of file diff --git a/scripts/node_repeat/node_repeat.yy b/scripts/node_repeat/node_repeat.yy new file mode 100644 index 000000000..bbbbe1cc8 --- /dev/null +++ b/scripts/node_repeat/node_repeat.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_repeat", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_repeat/node_stripe.yy b/scripts/node_repeat/node_stripe.yy new file mode 100644 index 000000000..3c179d416 --- /dev/null +++ b/scripts/node_repeat/node_stripe.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, + "resourceVersion": "1.0", + "name": "node_stripe", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_scatter/node_scatter.gml b/scripts/node_scatter/node_scatter.gml index 123d3d789..33b2241cd 100644 --- a/scripts/node_scatter/node_scatter.gml +++ b/scripts/node_scatter/node_scatter.gml @@ -34,13 +34,20 @@ function Node_Scatter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons inputs[| 9] = nodeValue(9, "Scatter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) .setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Random" ]); - inputs[| 10] = nodeValue(10, "Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(9999999)); + inputs[| 10] = nodeValue(10, "Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, irandom(9999999)); + + inputs[| 11] = nodeValue(11, "Random blend", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) + .setDisplay(VALUE_DISPLAY.gradient); + + inputs[| 12] = nodeValue(12, "Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) + .setDisplay(VALUE_DISPLAY.slider_range, [0, 1, 0.01]); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); input_display_list = [ 0, 1, 10, - ["Area", false], 5, 6, 9, - ["Scatter", false], 2, 3, 8, 7, 4 + ["Scatter", false], 5, 6, 9, 2, + ["Transform", false], 3, 8, 7, 4, + ["Render", false], 11, 12 ]; temp_surf = [ PIXEL_SURFACE, PIXEL_SURFACE ]; @@ -68,7 +75,10 @@ function Node_Scatter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons var _unis = _data[8]; var seed = _data[10]; - random_set_seed(seed); + + var color = inputs[| 11].getValue(); + var _bldTyp = inputs[| 11].getExtraData(); + var alpha = _data[12]; var _in_w, _in_h; @@ -86,21 +96,22 @@ function Node_Scatter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons } BLEND_OVERRIDE + var _sed = seed; var res_index = 0, bg = 0; for(var i = 0; i < _amount; i++) { - var sp = area_get_random_point(_area, _dist, _scat, i, _amount); + var sp = area_get_random_point(_area, _dist, _scat, i, _amount, _sed); _sed += 20; var _x = sp[0]; var _y = sp[1]; - var _scx = random_range(_scale[0], _scale[1]); - var _scy = random_range(_scale[2], _scale[3]); + var _scx = random_range_seed(_scale[0], _scale[1], _sed); _sed++; + var _scy = random_range_seed(_scale[2], _scale[3], _sed); _sed++; if(_unis) _scy = _scx; - var _r = (_pint? point_direction(_area[0], _area[1], _x, _y) : 0) + random_range(_rota[0], _rota[1]); + var _r = (_pint? point_direction(_area[0], _area[1], _x, _y) : 0) + random_range_seed(_rota[0], _rota[1], _sed); _sed++; surf = _inSurf; if(is_array(_inSurf)) - surf = _inSurf[irandom(array_length(_inSurf) - 1)]; + surf = _inSurf[irandom_seed(array_length(_inSurf) - 1, _sed)]; _sed++; var sw = surface_get_width(surf); var sh = surface_get_height(surf); @@ -109,7 +120,10 @@ function Node_Scatter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons _x -= sw / 2; _y -= sh / 2; } - + + var clr = gradient_eval(color, random_seed(1, _sed), _bldTyp[| 0]); _sed++; + var alp = random_range_seed(alpha[0], alpha[1], _sed); _sed++; + surface_set_target(temp_surf[bg]); shader_set(shader); shader_set_uniform_f_array(uniform_dim, [ sw / ww, sh / hh ]); @@ -118,7 +132,7 @@ function Node_Scatter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons shader_set_uniform_f(uniform_rot, degtorad(_r)); texture_set_stage(uniform_for, surface_get_texture(surf)); - draw_surface_safe(temp_surf[!bg], 0, 0); + draw_surface_ext_safe(temp_surf[!bg], 0, 0, 1, 1, 0, clr, alp); shader_reset(); surface_reset_target(); diff --git a/scripts/node_seperate_shapes/node_seperate_shapes.gml b/scripts/node_seperate_shapes/node_seperate_shapes.gml index 0c240f079..1ae1e9202 100644 --- a/scripts/node_seperate_shapes/node_seperate_shapes.gml +++ b/scripts/node_seperate_shapes/node_seperate_shapes.gml @@ -1,3 +1,8 @@ +enum NODE_SEP_SHAPE_OUTPUT_TYPE { + node, + array +} + function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Separate shape"; @@ -7,18 +12,14 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru is_dynamic_output = true; inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); - inputs[| 1] = nodeValue(1, "Output", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Node", "Array" ]); - - inputs[| 2] = nodeValue(2, "Tolerance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) + inputs[| 1] = nodeValue(1, "Tolerance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); - static createOutput = function() { - var o = nodeValue(ds_list_size(outputs), "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); - ds_list_add(outputs, o); - - return o; - } + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + outputs[| 1] = nodeValue(1, "Shape map", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + outputs[| 2] = nodeValue(2, "Boundary data", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, []); temp_surf = [ PIXEL_SURFACE, PIXEL_SURFACE ]; surface_buffer = buffer_create(1 * 1 * 4, buffer_fixed, 2); @@ -33,7 +34,6 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru static inspectorUpdate = function() { var _inSurf = inputs[| 0].getValue(); - var _out_type = inputs[| 1].getValue(); var t = current_time; if(!is_surface(_inSurf)) return; @@ -50,7 +50,7 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru } shader_set(sh_seperate_shape_index); - shader_set_uniform_f(shader_get_uniform(sh_seperate_shape_index, "tolerance"), inputs[| 2].getValue()); + shader_set_uniform_f(shader_get_uniform(sh_seperate_shape_index, "tolerance"), inputs[| 1].getValue()); surface_set_target(temp_surf[1]); draw_surface_safe(_inSurf, 0, 0); surface_reset_target(); @@ -94,23 +94,8 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru if(px > 0) { var _outSurf, _val; - - if(_out_type == 0) { - while(ds_list_size(outputs) > px) - ds_list_delete(outputs, px - 1); - } else if(_out_type == 1) { - _val = array_create(px); - if(_prev_type != _out_type) { - ds_list_clear(outputs); - outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, _val); - outputs[| 1] = nodeValue(1, "Shape map", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, temp_surf[res_index]); - outputs[| 2] = nodeValue(2, "Boundary data", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, []); - - _prev_type = _out_type; - } else { - outputs[| 0].setValue(_val); - } - } + _val = array_create(px); + outputs[| 0].setValue(_val); var _boundary = array_create(px); @@ -119,17 +104,8 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru buffer_get_surface(surface_buffer, temp_surf[res_index], 0); for(var i = 0; i < px; i++) { - if(_out_type == 0) { - if(i >= ds_list_size(outputs)) { - createOutput(); - } - - _outSurf = outputs[| i].getValue(); - surface_size_to(_outSurf, ww, hh); - } else { - _outSurf = surface_create_valid(ww, hh); - _val[@ i] = _outSurf; - } + _outSurf = surface_create_valid(ww, hh); + _val[@ i] = _outSurf; surface_set_target(_outSurf); draw_clear_alpha(0, 0); @@ -141,31 +117,27 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru var green = (ccx >> 8) & 255; var red = ccx & 255; - #region boundary search - if(_out_type == 1) { - var min_x = floor(red / 255 * ww); - var min_y = floor(green / 255 * hh); - var max_x = ceil(blue / 255 * ww); - var max_y = ceil(alpha / 255 * hh); - var t = max_y; - var b = min_y; - var l = max_x; - var r = min_x; + var min_x = floor(red / 255 * ww); + var min_y = floor(green / 255 * hh); + var max_x = ceil(blue / 255 * ww); + var max_y = ceil(alpha / 255 * hh); + var t = max_y; + var b = min_y; + var l = max_x; + var r = min_x; - for( var j = min_x; j < max_x; j++ ) - for( var k = min_y; k < max_y; k++ ) { - var _sc = get_color_buffer(j, k, ww, hh); - if(_sc == ccx) { - t = min(t, k); - b = max(b, k); - l = min(l, j); - r = max(r, j); - } - } - - _boundary[i] = [l, t, r, b]; + for( var j = min_x; j < max_x; j++ ) + for( var k = min_y; k < max_y; k++ ) { + var _sc = get_color_buffer(j, k, ww, hh); + if(_sc == ccx) { + t = min(t, k); + b = max(b, k); + l = min(l, j); + r = max(r, j); } - #endregion + } + + _boundary[i] = [l, t, r, b]; texture_set_stage(shader_get_sampler_index(sh_seperate_shape_sep, "original"), surface_get_texture(_inSurf)); shader_set_uniform_f(shader_get_uniform(sh_seperate_shape_sep, "color"), red, green, blue, alpha); @@ -175,9 +147,7 @@ function Node_Seperate_Shape(_x, _y, _group = -1) : Node(_x, _y, _group) constru surface_reset_target(); } - if(_out_type == 1) { - outputs[| 2].setValue(_boundary); - } + outputs[| 2].setValue(_boundary); } } } \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_color_adjustment.yy b/scripts/node_shadow_cast/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_shadow_cast/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_color_replacement.yy b/scripts/node_shadow_cast/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_shadow_cast/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_greyscale.yy b/scripts/node_shadow_cast/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_shadow_cast/node_greyscale.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_greyscale", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_outline.yy b/scripts/node_shadow_cast/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_shadow_cast/node_outline.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_outline", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_shadow_cast.gml b/scripts/node_shadow_cast/node_shadow_cast.gml new file mode 100644 index 000000000..b1d2b6e64 --- /dev/null +++ b/scripts/node_shadow_cast/node_shadow_cast.gml @@ -0,0 +1,114 @@ +function Node_Shadow_Cast(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Cast shadow"; + + shader = sh_shadow_cast; + uniform_dim = shader_get_uniform(shader, "dimension"); + uniform_lpos = shader_get_uniform(shader, "lightPos"); + uniform_prad = shader_get_uniform(shader, "pointLightRadius"); + uniform_lrad = shader_get_uniform(shader, "lightRadius"); + uniform_lden = shader_get_uniform(shader, "lightDensity"); + uniform_ltyp = shader_get_uniform(shader, "lightType"); + uniform_lamb = shader_get_uniform(shader, "lightAmb"); + uniform_lclr = shader_get_uniform(shader, "lightClr"); + uniform_sol = shader_get_uniform(shader, "renderSolid"); + uniform_solid = shader_get_sampler_index(shader, "solid"); + + inputs[| 0] = nodeValue(0, "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue(1, "Solid", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 2] = nodeValue(2, "Light Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function(index) { + var _surf = inputs[| 0].getValue(); + if(is_array(_surf) && array_length(_surf) == 0) + return [1, 1]; + + if(is_array(_surf)) + _surf = _surf[0]; + + if(!is_surface(_surf)) + return [1, 1]; + + return [surface_get_width(_surf), surface_get_height(_surf)]; + }, VALUE_UNIT.reference); + + inputs[| 3] = nodeValue(3, "Soft light radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) + .setDisplay(VALUE_DISPLAY.slider, [0, 2, 0.01]); + + inputs[| 4] = nodeValue(4, "Light density", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) + .setDisplay(VALUE_DISPLAY.slider, [1, 16, 1]); + + inputs[| 5] = nodeValue(5, "Light type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, ["Point", "Sun"]); + + inputs[| 6] = nodeValue(6, "Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); + + inputs[| 7] = nodeValue(7, "Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); + + inputs[| 8] = nodeValue(8, "Light radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 16); + + inputs[| 9] = nodeValue(9, "Render solid", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + input_display_list = [ + ["Surface", false], 0, 1, + ["Light", false], 5, 8, 2, 3, 4, + ["Render", false], 7, 6, 9, + ]; + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { + inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); + + var _type = current_data[5]; + if(_type == 0) { + var pos = current_data[2]; + var px = _x + pos[0] * _s; + var py = _y + pos[1] * _s; + + inputs[| 8].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny, 0, 1 / 4, THEME.anchor_scale_hori); + } + } + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _bg = _data[0]; + var _solid = _data[1]; + var _pos = _data[2]; + var _rad = _data[3]; + var _den = _data[4]; + var _type = _data[5]; + var _lamb = _data[6]; + var _lclr = _data[7]; + var _lrad = _data[8]; + var _sol = _data[9]; + + inputs[| 8].setVisible(_type == 0); + + if(!is_surface(_bg)) return _outSurf; + if(!is_surface(_solid)) return _outSurf; + + surface_set_target(_outSurf); + draw_clear_alpha(0, 0); + BLEND_OVER + + shader_set(shader); + shader_set_uniform_f(uniform_dim, surface_get_width(_bg), surface_get_height(_bg)); + shader_set_uniform_f_array(uniform_lpos, _pos); + shader_set_uniform_f_array(uniform_lamb, colToVec4(_lamb)); + shader_set_uniform_f_array(uniform_lclr, colToVec4(_lclr)); + shader_set_uniform_f(uniform_lrad, _rad); + shader_set_uniform_f(uniform_prad, _lrad); + shader_set_uniform_f(uniform_lden, _den); + shader_set_uniform_i(uniform_ltyp, _type); + shader_set_uniform_i(uniform_sol, _sol); + texture_set_stage(uniform_solid, surface_get_texture(_solid)); + draw_surface_safe(_bg, 0, 0); + shader_reset(); + + BLEND_NORMAL + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_shadow_cast/node_shadow_cast.yy b/scripts/node_shadow_cast/node_shadow_cast.yy new file mode 100644 index 000000000..64fe41f15 --- /dev/null +++ b/scripts/node_shadow_cast/node_shadow_cast.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_shadow_cast", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_simple_shape/node_simple_shape.gml b/scripts/node_simple_shape/node_simple_shape.gml index 032afed22..9467938a6 100644 --- a/scripts/node_simple_shape/node_simple_shape.gml +++ b/scripts/node_simple_shape/node_simple_shape.gml @@ -3,8 +3,10 @@ enum NODE_SHAPE_TYPE { elipse, regular, star, - arc, - capsule + arc, + teardrop, + cross, + leaf } function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { @@ -17,6 +19,7 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr uniform_side = shader_get_uniform(shader, "sides"); uniform_angle = shader_get_uniform(shader, "angle"); uniform_inner = shader_get_uniform(shader, "inner"); + uniform_outer = shader_get_uniform(shader, "outer"); uniform_corner = shader_get_uniform(shader, "corner"); uniform_arange = shader_get_uniform(shader, "angle_range"); uniform_aa = shader_get_uniform(shader, "aa"); @@ -24,13 +27,16 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr uniform_bgCol = shader_get_uniform(shader, "bgColor"); uniform_drawDF = shader_get_uniform(shader, "drawDF"); + uniform_stRad = shader_get_uniform(shader, "stRad"); + uniform_edRad = shader_get_uniform(shader, "edRad"); + inputs[| 0] = nodeValue(0, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) .setDisplay(VALUE_DISPLAY.vector); inputs[| 1] = nodeValue(1, "Backgroud", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 2] = nodeValue(2, "Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Rectangle", "Ellipse", "Regular polygon", "Star", "Arc", "Rounded rectangle" ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Rectangle", "Ellipse", "Regular polygon", "Star", "Arc", "Teardrop", "Cross", "Leaf" ]); inputs[| 3] = nodeValue(3, "Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, AREA_SHAPE.rectangle ]) .setDisplay(VALUE_DISPLAY.area, function() { return inputs[| 0].getValue(); }); @@ -47,7 +53,7 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr inputs[| 7] = nodeValue(7, "Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.rotation); - inputs[| 8] = nodeValue(8, "Angle range", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0 ]) + inputs[| 8] = nodeValue(8, "Angle range", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 180 ]) .setDisplay(VALUE_DISPLAY.rotation_range); inputs[| 9] = nodeValue(9, "Corner radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) @@ -59,11 +65,15 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr inputs[| 12] = nodeValue(12, "Height", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + inputs[| 13] = nodeValue(13, "Start radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) + .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]) + .setVisible(false); + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); input_display_list = [ ["Surface", false], 0, 6, - ["Shape", false], 2, 3, 9, 4, 5, 7, 8, + ["Shape", false], 2, 3, 9, 4, 13, 5, 7, 8, ["Render", true], 10, 1, 11, 12 ]; @@ -92,20 +102,22 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr shader_set(shader); + inputs[| 4].setVisible(false); + inputs[| 5].setVisible(false); + inputs[| 7].setVisible(false); + inputs[| 8].setVisible(false); + inputs[| 9].setVisible(false); + inputs[| 13].setVisible(false); + switch(_shape) { - case NODE_SHAPE_TYPE.rectangle : + case NODE_SHAPE_TYPE.rectangle : + inputs[| 9].setVisible(true); + break; case NODE_SHAPE_TYPE.elipse : - inputs[| 4].setVisible(false); - inputs[| 5].setVisible(false); - inputs[| 7].setVisible(false); - inputs[| 8].setVisible(false); - inputs[| 9].setVisible(false); break; case NODE_SHAPE_TYPE.regular : inputs[| 4].setVisible(true); - inputs[| 5].setVisible(false); inputs[| 7].setVisible(true); - inputs[| 8].setVisible(false); inputs[| 9].setVisible(true); shader_set_uniform_i(uniform_side, _data[4]); @@ -115,19 +127,19 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr inputs[| 4].setVisible(true); inputs[| 5].setVisible(true); inputs[| 7].setVisible(true); - inputs[| 8].setVisible(false); inputs[| 9].setVisible(true); + inputs[| 5].name = "Inner radius"; + shader_set_uniform_i(uniform_side, _data[4]); shader_set_uniform_f(uniform_angle, degtorad(_data[7])); shader_set_uniform_f(uniform_inner, _data[5]); break; case NODE_SHAPE_TYPE.arc : - inputs[| 4].setVisible(false); inputs[| 5].setVisible(true); - inputs[| 7].setVisible(false); inputs[| 8].setVisible(true); - inputs[| 9].setVisible(true); + + inputs[| 5].name = "Inner radius"; var ar = _data[8]; var center = degtorad(ar[0] + ar[1]) / 2; @@ -136,12 +148,33 @@ function Node_Shape(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr shader_set_uniform_f_array(uniform_arange, [ sin(range), cos(range) ] ); shader_set_uniform_f(uniform_inner, _data[5] / 2); break; - case NODE_SHAPE_TYPE.capsule : - inputs[| 4].setVisible(false); - inputs[| 5].setVisible(false); - inputs[| 7].setVisible(false); - inputs[| 8].setVisible(false); + case NODE_SHAPE_TYPE.teardrop : + inputs[| 5].setVisible(true); + inputs[| 13].setVisible(true); + + inputs[| 5].name = "End radius"; + inputs[| 13].name = "Start radius"; + + shader_set_uniform_f(uniform_edRad, _data[5]); + shader_set_uniform_f(uniform_stRad, _data[13]); + break; + case NODE_SHAPE_TYPE.cross : inputs[| 9].setVisible(true); + inputs[| 13].setVisible(true); + + inputs[| 13].name = "Outer radius"; + + shader_set_uniform_f(uniform_outer, _data[13]); + break; + case NODE_SHAPE_TYPE.leaf : + inputs[| 5].setVisible(true); + inputs[| 13].setVisible(true); + + inputs[| 5].name = "Inner radius"; + inputs[| 13].name = "Outer radius"; + + shader_set_uniform_f(uniform_inner, _data[5]); + shader_set_uniform_f(uniform_outer, _data[13]); break; } diff --git a/scripts/node_sprite_sheet/node_sprite_sheet.gml b/scripts/node_sprite_sheet/node_sprite_sheet.gml index 335cd3f16..31f903d52 100644 --- a/scripts/node_sprite_sheet/node_sprite_sheet.gml +++ b/scripts/node_sprite_sheet/node_sprite_sheet.gml @@ -238,6 +238,7 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) co surface_set_target(_surf); draw_clear_alpha(0, 0); + BLEND_OVERRIDE switch(pack) { case SPRITE_STACK.horizontal : var px = 0; @@ -312,7 +313,8 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = -1) : Node(_x, _y, _group) co py += row_h; } break; - } + } + BLEND_NORMAL surface_reset_target(); outputs[| 0].setValue(_surf); } else diff --git a/scripts/node_statistic/node_statistic.gml b/scripts/node_statistic/node_statistic.gml index 5cb37023e..c7d05fab7 100644 --- a/scripts/node_statistic/node_statistic.gml +++ b/scripts/node_statistic/node_statistic.gml @@ -27,7 +27,7 @@ function Node_Statistic(_x, _y, _group = -1) : Node(_x, _y, _group) constructor previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, [ diff --git a/scripts/node_string/node_string.gml b/scripts/node_string/node_string.gml index 905ec9201..bb8213454 100644 --- a/scripts/node_string/node_string.gml +++ b/scripts/node_string/node_string.gml @@ -3,7 +3,6 @@ function Node_String(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) const previewable = false; w = 96; - min_h = 0; inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); outputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, ""); diff --git a/scripts/node_string_get_char/node_string_get_char.gml b/scripts/node_string_get_char/node_string_get_char.gml new file mode 100644 index 000000000..c2af42819 --- /dev/null +++ b/scripts/node_string_get_char/node_string_get_char.gml @@ -0,0 +1,26 @@ +function Node_String_Get_Char(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Get character"; + previewable = false; + + w = 96; + + + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") + .setVisible(true, true); + + inputs[| 1] = nodeValue(1, "Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); + + outputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, ""); + + function process_data(_output, _data, _index = 0) { + return string_char_at(_data[0], _data[1]); + } + + function onDrawNode(xx, yy, _mx, _my, _s) { + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); + var str = inputs[| 0].getValue(); + var bbox = drawGetBbox(xx, yy, _s); + var ss = string_scale(str, bbox.w, bbox.h); + draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); + } +} \ No newline at end of file diff --git a/scripts/node_string_get_char/node_string_get_char.yy b/scripts/node_string_get_char/node_string_get_char.yy new file mode 100644 index 000000000..03e28c6de --- /dev/null +++ b/scripts/node_string_get_char/node_string_get_char.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_string_get_char", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_string_merge/node_string_merge.gml b/scripts/node_string_merge/node_string_merge.gml new file mode 100644 index 000000000..95cfad529 --- /dev/null +++ b/scripts/node_string_merge/node_string_merge.gml @@ -0,0 +1,24 @@ +function Node_String_Merge(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Text combine"; + previewable = false; + + w = 96; + + inputs[| 0] = nodeValue(0, "Text A", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); + + inputs[| 1] = nodeValue(1, "Text B", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); + + outputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, ""); + + function process_data(_output, _data, _index = 0) { + return string(_data[0]) + string(_data[1]); + } + + function onDrawNode(xx, yy, _mx, _my, _s) { + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); + var str = inputs[| 0].getValue(); + var bbox = drawGetBbox(xx, yy, _s); + var ss = string_scale(str, bbox.w, bbox.h); + draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); + } +} \ No newline at end of file diff --git a/scripts/node_string_merge/node_string_merge.yy b/scripts/node_string_merge/node_string_merge.yy new file mode 100644 index 000000000..f99c54f74 --- /dev/null +++ b/scripts/node_string_merge/node_string_merge.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_string_merge", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_string_split/node_string_split.gml b/scripts/node_string_split/node_string_split.gml index 3e89e4b8f..dfe6c72e1 100644 --- a/scripts/node_string_split/node_string_split.gml +++ b/scripts/node_string_split/node_string_split.gml @@ -3,7 +3,7 @@ function Node_String_Split(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") .setVisible(true, true); diff --git a/scripts/node_string_trim/node_string_trim.gml b/scripts/node_string_trim/node_string_trim.gml index c5fb95bad..7bd71c0a2 100644 --- a/scripts/node_string_trim/node_string_trim.gml +++ b/scripts/node_string_trim/node_string_trim.gml @@ -3,7 +3,7 @@ function Node_String_Trim(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") .setVisible(true, true); diff --git a/scripts/node_surface_data/node_surface_data.gml b/scripts/node_surface_data/node_surface_data.gml index 48e87b715..5fca2682c 100644 --- a/scripts/node_surface_data/node_surface_data.gml +++ b/scripts/node_surface_data/node_surface_data.gml @@ -9,7 +9,7 @@ function Node_Surface_data(_x, _y, _group = -1) : Node(_x, _y, _group) construct .setDisplay(VALUE_DISPLAY.vector); outputs[| 1] = nodeValue(1, "Array length", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0); - min_h = 0; + w = 96; static update = function() { diff --git a/scripts/node_switch/node_switch.gml b/scripts/node_switch/node_switch.gml index 7e2da7769..4d59e5202 100644 --- a/scripts/node_switch/node_switch.gml +++ b/scripts/node_switch/node_switch.gml @@ -3,7 +3,7 @@ function Node_Switch(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue( 0, "Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" ) .setVisible(true, true); diff --git a/scripts/node_text_file_read/node_text_file_read.gml b/scripts/node_text_file_read/node_text_file_read.gml index 52fc7bd6d..aa9f7dbde 100644 --- a/scripts/node_text_file_read/node_text_file_read.gml +++ b/scripts/node_text_file_read/node_text_file_read.gml @@ -1,6 +1,6 @@ function Node_create_Text_File_Read(_x, _y, _group = -1) { var path = ""; - if(!LOADING && !APPENDING) { + if(!LOADING && !APPENDING && !CLONING) { path = get_open_filename(".txt", ""); if(path == "") return noone; } @@ -15,7 +15,7 @@ function Node_create_Text_File_Read(_x, _y, _group = -1) { function Node_create_Text_File_Read_path(_x, _y, path) { if(!file_exists(path)) return noone; - var node = new Node_Text_File_Read(_x, _y); + var node = new Node_Text_File_Read(_x, _y, PANEL_GRAPH.getCurrentContext()); node.inputs[| 0].setValue(path); node.doUpdate(); @@ -28,7 +28,7 @@ function Node_Text_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_load, ["*.txt", ""]); @@ -51,9 +51,14 @@ function Node_Text_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru return false; } + static inspectorUpdate = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + function updatePaths(path) { - if(path_current == path) return false; - path = try_get_path(path); if(path == -1) return false; @@ -80,7 +85,7 @@ function Node_Text_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru static update = function() { var path = inputs[| 0].getValue(); if(path == "") return; - updatePaths(path); + if(path_current != path) updatePaths(path); outputs[| 0].setValue(content); } diff --git a/scripts/node_text_file_write/node_text_file_write.gml b/scripts/node_text_file_write/node_text_file_write.gml index 3902ddb72..e24636cd5 100644 --- a/scripts/node_text_file_write/node_text_file_write.gml +++ b/scripts/node_text_file_write/node_text_file_write.gml @@ -4,7 +4,7 @@ function Node_Text_File_Write(_x, _y, _group = -1) : Node(_x, _y, _group) constr previewable = false; w = 128; - min_h = 0; + inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") .setDisplay(VALUE_DISPLAY.path_save, ["*.txt", ""]); diff --git a/scripts/node_timeline_preview/node_timeline_preview.gml b/scripts/node_timeline_preview/node_timeline_preview.gml index f8ed16e30..1c5bf5f41 100644 --- a/scripts/node_timeline_preview/node_timeline_preview.gml +++ b/scripts/node_timeline_preview/node_timeline_preview.gml @@ -4,7 +4,7 @@ function Node_Timeline_Preview(_x, _y, _group = -1) : Node(_x, _y, _group) const color = COLORS.node_blend_number; w = 96; - min_h = 0; + PANEL_ANIMATION.timeline_preview = self; diff --git a/scripts/node_transform/node_transform.gml b/scripts/node_transform/node_transform.gml index e9970ea44..78fcb81fe 100644 --- a/scripts/node_transform/node_transform.gml +++ b/scripts/node_transform/node_transform.gml @@ -38,7 +38,7 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co inputs[| 9] = nodeValue(9, "Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, OUTPUT_SCALING.same_as_input) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Same as input", "Constant", "Relative to input" ]); - inputs[| 10] = nodeValue(10, "Exact", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + inputs[| 10] = nodeValue(10, "Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); input_display_list = [ 0, ["Output", true], 9, 1, 7, @@ -240,6 +240,8 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co overlay_drag_my = 0; overlay_drag_sx = 0; overlay_drag_sy = 0; + overlay_drag_px = 0; + overlay_drag_py = 0; overlay_drag_ma = 0; overlay_drag_sa = 0; @@ -258,10 +260,11 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co _surf_out = _surf_out[preview_index]; } - var pos = current_data[2]; + var pos = current_data[2]; + var _pos = [ pos[0], pos[1] ]; var anc = current_data[3]; - var _anc = current_data[3]; + var _anc = [ anc[0], anc[1] ]; var rot = current_data[5]; var sca = current_data[6]; @@ -278,7 +281,6 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co anc[0] *= ww; anc[1] *= hh; - var _pos = [ pos[0], pos[1] ]; pos[0] -= anc[0]; pos[1] -= anc[1]; @@ -343,19 +345,30 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co pos_x = value_snap(pos_x, _snx); pos_y = value_snap(pos_y, _sny); - if(overlay_dragging == 1) { + if(overlay_dragging == 1) { //Move if(inputs[| 2].setValue([ pos_x, pos_y ])) UNDO_HOLDING = true; - } else if(overlay_dragging == 2) { - if(inputs[| 3].setValue([ pos_x / ww, pos_y / hh ])) - UNDO_HOLDING = true; + } else if(overlay_dragging == 2) { //Move anchor + var nanx = pos_x / ww; + var nany = pos_y / hh; + + if(keyboard_check(vk_alt)) { + var anchorUpdate = inputs[| 3].setValue([ nanx, nany ]); + var posUpdate = inputs[| 2].setValue([ overlay_drag_px + pos_x, overlay_drag_py + pos_y ]); + + if(anchorUpdate || posUpdate) + UNDO_HOLDING = true; + } else { + if(inputs[| 3].setValue([ nanx, nany ])) + UNDO_HOLDING = true; + } } if(mouse_release(mb_left)) { overlay_dragging = 0; UNDO_HOLDING = false; } - } else if(overlay_dragging == 3) { + } else if(overlay_dragging == 3) { //Angle var aa = point_direction(bax, bay, _mx, _my); var da = angle_difference(overlay_drag_ma, aa); var sa; @@ -372,7 +385,7 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co overlay_dragging = 0; UNDO_HOLDING = false; } - } else if(overlay_dragging == 4) { + } else if(overlay_dragging == 4) { //Scale var _p = point_rotate(_mx - overlay_drag_mx, _my - overlay_drag_my, 0, 0, -rot); var _sw = _p[0] / _s / srw; @@ -417,6 +430,8 @@ function Node_Transform(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co overlay_drag_my = _my; overlay_drag_sx = anc[0]; overlay_drag_sy = anc[1]; + overlay_drag_px = pos[0]; + overlay_drag_py = pos[1]; } else if(point_in_circle(_mx, _my, tl[0], tl[1], 8) || point_in_circle(_mx, _my, tr[0], tr[1], 8) || point_in_circle(_mx, _my, bl[0], bl[1], 8) || point_in_circle(_mx, _my, br[0], br[1], 8)) { overlay_dragging = 4; diff --git a/scripts/node_unicode/node_unicode.gml b/scripts/node_unicode/node_unicode.gml index 2d30413c4..fac0b647e 100644 --- a/scripts/node_unicode/node_unicode.gml +++ b/scripts/node_unicode/node_unicode.gml @@ -4,7 +4,7 @@ function Node_Unicode(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Unicode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 64); diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 16cef2d79..0262fe023 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -253,6 +253,7 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T connect_type = _connect; value_from = noone; value_to = ds_list_create(); + value_to_arr = []; accept_array = true; def_val = _value; @@ -424,6 +425,7 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T setValueDirect(_val); }, unit); + extra_data[| 0] = AREA_MODE.area; extract_node = "Node_Vector4"; break; case VALUE_DISPLAY.puppet_control : @@ -533,36 +535,11 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T break; case VALUE_DISPLAY.path_font : - editWidget = new scrollBox( - function() { - var pth = []; - var root = DIRECTORY + "Fonts/*"; - var f = file_find_first(root, -1); - var filter = [ ".ttf", ".otf" ]; - while(f != "") { - var ext = filename_ext(DIRECTORY + "Fonts/" + f); - if(array_exists(filter, string_lower(ext))) - array_push(pth, f); - f = file_find_next(); - } - file_find_close(); - array_push(pth, "Open font folder..."); - return pth; - }, + editWidget = new fontScrollBox( function(val) { - if(val == array_length(editWidget.data) - 1) { - shellOpenExplorer(DIRECTORY + "Fonts\\"); - return; - } - setValueDirect(DIRECTORY + "Fonts\\" + editWidget.data[val]); + setValueDirect(DIRECTORY + "Fonts\\" + FONT_INTERNAL[val]); } ); - - editWidget.extra_button = button(function() { - var path = get_open_filename("*.ttf;*.otf", ""); - if(path == "") return noone; - setValueDirect(path); - } ).setTooltip("Load font...").setIcon(THEME.folder_content, 0, COLORS._main_icon); break; } break; @@ -642,7 +619,10 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T return self; } - static valueProcess = function(value, typeFrom, display, applyUnit = true, arrIndex = 0) { + static valueProcess = function(value, nodeFrom, applyUnit = true, arrIndex = 0) { + var typeFrom = nodeFrom.type; + var display = nodeFrom.display_type; + if(typeFrom == VALUE_TYPE.color) { if(display_type == VALUE_DISPLAY.gradient && display == VALUE_DISPLAY._default) { ds_list_clear(dyna_depo); @@ -658,6 +638,35 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T } } + if(display_type == VALUE_DISPLAY.area) { + var dispType = ds_list_get(nodeFrom.extra_data, 0); + var surfGet = nodeFrom.display_data; + if(!applyUnit || surfGet == -1) return value; + + var surf = surfGet(); + var ww = surf[0]; + var hh = surf[1]; + + switch(dispType) { + case AREA_MODE.area : + return value; + + case AREA_MODE.padding : + var cx = (ww - value[0] + value[2]) / 2 + var cy = (value[1] + hh - value[3]) / 2; + var sw = abs((ww - value[0]) - value[2]) / 2; + var sh = abs(value[1] - (hh - value[3])) / 2; + return [cx, cy, sw, sh, value[4]]; + + case AREA_MODE.two_point : + var cx = (value[0] + value[2]) / 2 + var cy = (value[1] + value[3]) / 2; + var sw = abs(value[0] - value[2]) / 2; + var sh = abs(value[1] - value[3]) / 2; + return [cx, cy, sw, sh, value[4]]; + } + } + if(type == VALUE_TYPE.text) return string(value); @@ -718,7 +727,7 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T if(is_array(_base)) { //Balance array (generate uniform array from single values) if(!is_array(val)) { val = array_create(array_length(_base), val); - return valueProcess(val, typ, dis, applyUnit, arrIndex); + return valueProcess(val, nod, applyUnit, arrIndex); } else if(array_length(val) < array_length(_base)) { for( var i = array_length(val); i < array_length(_base); i++ ) val[i] = 0; @@ -727,9 +736,9 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T if(nod.isArray(val)) { //Process data for( var i = 0; i < array_length(val); i++ ) - val[i] = valueProcess(val[i], typ, dis, applyUnit, arrIndex); + val[i] = valueProcess(val[i], nod, applyUnit, arrIndex); } else - val = valueProcess(val, typ, dis, applyUnit, arrIndex); + val = valueProcess(val, nod, applyUnit, arrIndex); return val; } @@ -969,370 +978,33 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { if(value_from != noone) return; - var _val = getValue(); - var hover = -1; - switch(type) { case VALUE_TYPE.integer : case VALUE_TYPE.float : switch(display_type) { - case VALUE_DISPLAY._default : #region - if(is_array(_val)) break; + case VALUE_DISPLAY._default : + var _angle = argument_count > 8? argument[ 8] : 0; + var _scale = argument_count > 9? argument[ 9] : 1; + var _spr = argument_count > 10? argument[10] : THEME.anchor_selector; + return preview_overlay_scalar(active, _x, _y, _s, _mx, _my, _snx, _sny, _angle, _scale, _spr); - var _angle = argument_count > 8? argument[8] : 0; - var _scale = argument_count > 9? argument[9] : 1; - var spr = argument_count > 10? argument[10] : THEME.anchor_selector; - var index = 0; + case VALUE_DISPLAY.rotation : + var _rad = argument_count > 8? argument[ 8] : 64; + return preview_overlay_rotation(active, _x, _y, _s, _mx, _my, _snx, _sny, _rad); - var __ax = lengthdir_x(_val * _scale, _angle); - var __ay = lengthdir_y(_val * _scale, _angle); + case VALUE_DISPLAY.vector : + var _spr = argument_count > 8? argument[8] : THEME.anchor_selector; + return preview_overlay_vector(active, _x, _y, _s, _mx, _my, _snx, _sny, _spr); - var _ax = _x + __ax * _s; - var _ay = _y + __ay * _s; + case VALUE_DISPLAY.area : + return preview_overlay_area(active, _x, _y, _s, _mx, _my, _snx, _sny, display_data); - if(drag_type) { - index = 1; - var dist = point_distance(_mx, _my, _x, _y) / _s / _scale; - if(key_mod_press(CTRL)) - dist = round(dist); - - if(setValue( dist )) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } - - if(point_in_circle(_mx, _my, _ax, _ay, 8)) { - hover = 1; - index = 1; - if(mouse_press(mb_left, active)) { - drag_type = 1; - drag_mx = _mx; - drag_my = _my; - drag_sx = _ax; - drag_sy = _ay; - } - } - - draw_sprite_ui_uniform(spr, index, _ax, _ay); - break; - #endregion - case VALUE_DISPLAY.rotation : #region - if(is_array(_val)) break; - - var _rad = argument_count > 8? argument[8] : 64; - var _ax = _x + lengthdir_x(_rad, _val); - var _ay = _y + lengthdir_y(_rad, _val); - draw_sprite_ui(THEME.anchor_rotate, 0, _ax, _ay, 1, 1, _val - 90, c_white, 1); - - if(drag_type) { - draw_set_color(COLORS._main_accent); - draw_set_alpha(0.5); - draw_circle(_x, _y, _rad, true); - draw_set_alpha(1); - - draw_sprite_ui(THEME.anchor_rotate, 1, _ax, _ay, 1, 1, _val - 90, c_white, 1); - var angle = point_direction(_x, _y, _mx, _my); - if(key_mod_press(CTRL)) - angle = round(angle / 15) * 15; - - if(setValue( angle )) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } - - if(point_in_circle(_mx, _my, _ax, _ay, 8)) { - draw_set_color(COLORS._main_accent); - draw_set_alpha(0.5); - draw_circle(_x, _y, _rad, true); - draw_set_alpha(1); - hover = 1; - - draw_sprite_ui(THEME.anchor_rotate, 1, _ax, _ay, 1, 1, _val - 90, c_white, 1); - if(mouse_press(mb_left, active)) { - drag_type = 1; - drag_mx = _mx; - drag_my = _my; - drag_sx = _ax; - drag_sy = _ay; - } - } - break; - #endregion - case VALUE_DISPLAY.vector : #region - if(is_array(_val[0])) break; - - var __ax = _val[0]; - var __ay = _val[1]; - - var _ax = __ax * _s + _x; - var _ay = __ay * _s + _y; - - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); - - if(drag_type) { - draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); - var _nx = value_snap((drag_sx + (_mx - drag_mx) - _x) / _s, _snx); - var _ny = value_snap((drag_sy + (_my - drag_my) - _y) / _s, _sny); - if(key_mod_press(CTRL)) { - _val[0] = round(_nx); - _val[1] = round(_ny); - } else { - _val[0] = _nx; - _val[1] = _ny; - } - - if(setValue( _val )) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } - - if(point_in_circle(_mx, _my, _ax, _ay, 8)) { - hover = 1; - draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); - if(mouse_press(mb_left, active)) { - drag_type = 1; - drag_mx = _mx; - drag_my = _my; - drag_sx = _ax; - drag_sy = _ay; - } - } - break; - #endregion - case VALUE_DISPLAY.area : #region - if(is_array(_val[0])) break; - - var __ax = array_safe_get(_val, 0); - var __ay = array_safe_get(_val, 1); - var __aw = array_safe_get(_val, 2); - var __ah = array_safe_get(_val, 3); - var __at = array_safe_get(_val, 4); - - var _ax = __ax * _s + _x; - var _ay = __ay * _s + _y; - var _aw = __aw * _s; - var _ah = __ah * _s; - - draw_set_color(COLORS._main_accent); - switch(__at) { - case AREA_SHAPE.rectangle : - draw_rectangle(_ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah, true); - break; - case AREA_SHAPE.elipse : - draw_ellipse(_ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah, true); - break; - } - - draw_sprite_ui_uniform(THEME.anchor, 0, _ax, _ay); - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax + _aw, _ay + _ah); - - if(point_in_circle(_mx, _my, _ax + _aw, _ay + _ah, 8)) - draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax + _aw, _ay + _ah); - else if(point_in_rectangle(_mx, _my, _ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah)) - draw_sprite_ui_uniform(THEME.anchor, 0, _ax, _ay, 1.25, c_white); - - if(drag_type == 1) { - var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); - var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); - - if(key_mod_press(CTRL)) { - _val[0] = round(_xx); - _val[1] = round(_yy); - } else { - _val[0] = _xx; - _val[1] = _yy; - } - - if(setValue(_val)) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } else if(drag_type == 2) { - var _dx = value_snap((_mx - drag_mx) / _s, _snx); - var _dy = value_snap((_my - drag_my) / _s, _sny); - - if(key_mod_press(CTRL)) { - _val[2] = round(_dx); - _val[3] = round(_dy); - } else { - _val[2] = _dx; - _val[3] = _dy; - } - - if(keyboard_check(vk_shift)) { - _val[2] = max(_dx, _dy); - _val[3] = max(_dx, _dy); - } - - if(setValue(_val)) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } - - if(active) { - if(point_in_circle(_mx, _my, _ax + _aw, _ay + _ah, 8)) { - hover = 2; - if(mouse_press(mb_left)) { - drag_type = 2; - drag_mx = _ax; - drag_my = _ay; - } - } else if(point_in_rectangle(_mx, _my, _ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah)) { - hover = 1; - if(mouse_press(mb_left)) { - drag_type = 1; - drag_sx = __ax; - drag_sy = __ay; - drag_mx = _mx; - drag_my = _my; - } - } - } - break; - #endregion - case VALUE_DISPLAY.puppet_control : #region - if(is_array(_val[0])) break; - - var __ax = _val[PUPPET_CONTROL.cx]; - var __ay = _val[PUPPET_CONTROL.cy]; - var __ax1 = _val[PUPPET_CONTROL.fx]; - var __ay1 = _val[PUPPET_CONTROL.fy]; - - var _ax = __ax * _s + _x; - var _ay = __ay * _s + _y; - - var _ax1 = (__ax + __ax1) * _s + _x; - var _ay1 = (__ay + __ay1) * _s + _y; - - draw_set_color(COLORS._main_accent); - switch(_val[PUPPET_CONTROL.mode]) { - case PUPPET_FORCE_MODE.move : - draw_line_width2(_ax, _ay, _ax1, _ay1, 6, 1); - - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); - draw_sprite_ui_uniform(THEME.anchor_selector, 2, _ax1, _ay1); - draw_circle(_ax, _ay, _val[PUPPET_CONTROL.width] * _s, true); - break; - case PUPPET_FORCE_MODE.pinch : - case PUPPET_FORCE_MODE.inflate : - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); - draw_circle(_ax, _ay, _val[PUPPET_CONTROL.width] * _s, true); - break; - case PUPPET_FORCE_MODE.wind : - var dir = _val[PUPPET_CONTROL.fy]; - var rad = _val[PUPPET_CONTROL.width] * _s; - - var _l0x = _ax + lengthdir_x(rad, dir + 90); - var _l0y = _ay + lengthdir_y(rad, dir + 90); - var _l1x = _ax + lengthdir_x(rad, dir - 90); - var _l1y = _ay + lengthdir_y(rad, dir - 90); - - var _l0x0 = _l0x + lengthdir_x(1000, dir); - var _l0y0 = _l0y + lengthdir_y(1000, dir); - var _l0x1 = _l0x + lengthdir_x(1000, dir + 180); - var _l0y1 = _l0y + lengthdir_y(1000, dir + 180); - - var _l1x0 = _l1x + lengthdir_x(1000, dir); - var _l1y0 = _l1y + lengthdir_y(1000, dir); - var _l1x1 = _l1x + lengthdir_x(1000, dir + 180); - var _l1y1 = _l1y + lengthdir_y(1000, dir + 180); - - draw_line(_l0x0, _l0y0, _l0x1, _l0y1); - draw_line(_l1x0, _l1y0, _l1x1, _l1y1); - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); - break; - } - - if(drag_type == 1) { - draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); - var _nx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); - var _ny = value_snap(drag_sy + (_my - drag_my) / _s, _sny); - - if(key_mod_press(CTRL)) { - _val[PUPPET_CONTROL.cx] = round(_nx); - _val[PUPPET_CONTROL.cy] = round(_ny); - } else { - _val[PUPPET_CONTROL.cx] = _nx; - _val[PUPPET_CONTROL.cy] = _ny; - } - - if(setValue( _val )) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } else if(drag_type == 2) { - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax1, _ay1); - var _nx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); - var _ny = value_snap(drag_sy + (_my - drag_my) / _s, _sny); - - if(key_mod_press(CTRL)) { - _val[PUPPET_CONTROL.fx] = round(_nx); - _val[PUPPET_CONTROL.fy] = round(_ny); - } else { - _val[PUPPET_CONTROL.fx] = _nx; - _val[PUPPET_CONTROL.fy] = _ny; - } - - if(setValue( _val )) - UNDO_HOLDING = true; - - if(mouse_release(mb_left)) { - drag_type = 0; - UNDO_HOLDING = false; - } - } - - if(point_in_circle(_mx, _my, _ax, _ay, 8)) { - hover = 1; - draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); - if(mouse_press(mb_left, active)) { - drag_type = 1; - drag_mx = _mx; - drag_my = _my; - drag_sx = __ax; - drag_sy = __ay; - } - } - - if(_val[PUPPET_CONTROL.mode] == PUPPET_FORCE_MODE.move && point_in_circle(_mx, _my, _ax1, _ay1, 8)) { - hover = 2; - draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax1, _ay1); - if(mouse_press(mb_left, active)) { - drag_type = 2; - drag_mx = _mx; - drag_my = _my; - drag_sx = __ax1; - drag_sy = __ay1; - } - } - break; - #endregion + case VALUE_DISPLAY.puppet_control : + return preview_overlay_puppet(active, _x, _y, _s, _mx, _my, _snx, _sny); } break; } - return hover; + return -1; } static drawJunction = function(_s, _mx, _my) { diff --git a/scripts/node_wiggler/node_wiggler.gml b/scripts/node_wiggler/node_wiggler.gml index 83ef365d6..6fb25e560 100644 --- a/scripts/node_wiggler/node_wiggler.gml +++ b/scripts/node_wiggler/node_wiggler.gml @@ -4,7 +4,7 @@ function Node_Wiggler(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons previewable = false; w = 96; - min_h = 0; + inputs[| 0] = nodeValue(0, "Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, 1]) .setDisplay(VALUE_DISPLAY.vector); @@ -57,7 +57,7 @@ function Node_Wiggler(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons switch(disp) { case 0 : w = 96; - min_h = 0; + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); var str = getWiggle(ran[0], ran[1], ANIMATOR.frames_total / fre, time, sed, 0, ANIMATOR.frames_total); var ss = string_scale(str, (w - 16) * _s, (h - 16) * _s - 20 * draw_name); diff --git a/scripts/node_wrap_area/node_wrap_area.gml b/scripts/node_wrap_area/node_wrap_area.gml index 4bb3bb5b5..fca916093 100644 --- a/scripts/node_wrap_area/node_wrap_area.gml +++ b/scripts/node_wrap_area/node_wrap_area.gml @@ -3,8 +3,7 @@ function Node_Wrap_Area(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) co inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16, 4, 4, AREA_SHAPE.rectangle ]) - .setDisplay(VALUE_DISPLAY.area) - .setUnitRef(function(index) { return getDimension(index); });; + .setDisplay(VALUE_DISPLAY.area, function() { return getDimension(0); }); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); diff --git a/scripts/notification_system/notification_system.gml b/scripts/notification_system/notification_system.gml index da58c8038..f7bba253a 100644 --- a/scripts/notification_system/notification_system.gml +++ b/scripts/notification_system/notification_system.gml @@ -23,18 +23,29 @@ self.life = life; self.onClick = noone; + self.tooltip = ""; + self.icon_end = noone; self.time = string_lead_zero(current_hour, 2) + ":" + string_lead_zero(current_minute, 2) + "." + string_lead_zero(current_second, 2); - static setOnClick = function(onClick) { + static setOnClick = function(onClick, tooltip = "", icon_end = noone) { self.onClick = method(self, onClick); + self.tooltip = tooltip; + self.icon_end = icon_end; + return self; } } - function noti_status(str, icon = noone) { + function noti_status(str, icon = noone, flash = false) { var noti = new notification(NOTI_TYPE.log, str, icon); ds_list_add(STATUSES, noti); + + if(flash && PANEL_MENU) { + PANEL_MENU.noti_flash = 1; + PANEL_MENU.noti_flash_color = flash; + } + return noti; } diff --git a/scripts/paddingBox/paddingBox.gml b/scripts/paddingBox/paddingBox.gml index f9f13f34e..9933addeb 100644 --- a/scripts/paddingBox/paddingBox.gml +++ b/scripts/paddingBox/paddingBox.gml @@ -1,9 +1,7 @@ -function paddingBox(_onModify, _unit = noone) constructor { +function paddingBox(_onModify, _unit = noone) : widget() constructor { onModify = _onModify; unit = _unit; - active = false; - hover = false; linked = false; b_link = button(function() { linked = !linked; }); b_link.icon = THEME.value_link; @@ -26,7 +24,22 @@ function paddingBox(_onModify, _unit = noone) constructor { for(var i = 0; i < 4; i++) tb[i] = new textBox(TEXTBOX_INPUT.float, onModifySingle[i]); + static register = function(parent = noone) { + b_link.register(); + + for(var i = 0; i < 4; i++) + tb[i].register(parent); + + if(unit != noone && unit.reference != noone) + unit.triggerButton.register(parent); + } + static draw = function(_x, _y, _data, _m) { + x = _x; + y = _y; + w = 0; + h = ui(192); + draw_sprite_ui_uniform(THEME.inspector_padding, 0, _x, _y + ui(64)); for(var i = 0; i < 4; i++) { @@ -57,7 +70,6 @@ function paddingBox(_onModify, _unit = noone) constructor { unit.draw(_x + ui(48), _y - ui(25), ui(32), ui(32), _m); } - active = false; - hover = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/panel_collection/panel_collection.gml b/scripts/panel_collection/panel_collection.gml index b2b23706b..f056d2417 100644 --- a/scripts/panel_collection/panel_collection.gml +++ b/scripts/panel_collection/panel_collection.gml @@ -1,6 +1,10 @@ function Panel_Collection() : PanelContent() constructor { expandable = false; + group_w = ui(180); + group_w_dragging = false; + group_w_sx = false; + group_w_mx = false; function initSize() { content_w = w - ui(8) - group_w; @@ -41,16 +45,6 @@ function Panel_Collection() : PanelContent() constructor { }); tb_search.auto_update = true; - //function onFocusBegin() { - // TEXTBOX_ACTIVE = tb_search; - //} - //function onFocusEnd() { - // if(TEXTBOX_ACTIVE == tb_search) - // TEXTBOX_ACTIVE = noone; - // search_string = ""; - // tb_search._input_text = search_string; - //} - contentView = 0; contentPane = new scrollPane(content_w, content_h, function(_y, _m) { draw_clear_alpha(c_white, 0); @@ -103,7 +97,8 @@ function Panel_Collection() : PanelContent() constructor { if(_node.path == updated_path && updated_prog > 0) draw_sprite_stretched_ext(THEME.node_glow, 0, _boxx - 9, yy - 9, grid_size + 18, grid_size + 18, COLORS._main_value_positive, updated_prog); - if(_node.spr) { + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) { var sw = sprite_get_width(_node.spr); var sh = sprite_get_height(_node.spr); var ss = ui(32) / max(sw, sh); @@ -114,9 +109,8 @@ function Panel_Collection() : PanelContent() constructor { var sy = yy + grid_size / 2 + yo; draw_sprite_ext(_node.spr, frame, sx, sy, ss, ss, 0, c_white, 1); - } else { + } else draw_sprite_ui_uniform(THEME.group, 0, _boxx + grid_size / 2, yy + grid_size / 2, 1, c_white); - } draw_set_text(f_p2, fa_center, fa_top, COLORS._main_text); name_height = max(name_height, string_height_ext(_node.name, -1, grid_size) + 8); @@ -158,7 +152,8 @@ function Panel_Collection() : PanelContent() constructor { var spr_x = list_height / 2 + ui(14); var spr_y = yy + list_height / 2; var spr_s = list_height - ui(8); - if(variable_struct_exists(_node, "spr") && sprite_exists(_node.spr)) { + if(variable_struct_exists(_node, "getSpr")) _node.getSpr(); + if(sprite_exists(_node.spr)) { var sw = sprite_get_width(_node.spr); var sh = sprite_get_height(_node.spr); var ss = spr_s / max(sw, sh); @@ -198,6 +193,8 @@ function Panel_Collection() : PanelContent() constructor { function onResize() { initSize(); + + folderPane.resize(group_w - ui(4), content_h); contentPane.resize(content_w, content_h); folderPane.resize(group_w - ui(4), content_h); } @@ -235,6 +232,31 @@ function Panel_Collection() : PanelContent() constructor { folderPane.active = pHOVER; folderPane.draw(0, content_y, mx, my - content_y); + #region resize width + if(group_w_dragging) { + CURSOR = cr_size_we; + + var _gw = group_w_sx + (mx - group_w_mx); + _gw = max(ui(180), _gw); + group_w = _gw; + + onResize(); + + if(mouse_release(mb_left)) { + group_w_dragging = false; + } + } + + if(pHOVER && point_in_rectangle(mx, my, group_w - ui(2), content_y, group_w + ui(2), content_y + content_h)) { + CURSOR = cr_size_we; + if(pFOCUS && mouse_press(mb_left)) { + group_w_dragging = true; + group_w_mx = mx; + group_w_sx = group_w; + } + } + #endregion + var _x = ui(16); var _y = ui(24); var bh = line_height(f_p0b, 8); @@ -258,13 +280,6 @@ function Panel_Collection() : PanelContent() constructor { var bx = w - ui(40); var by = ui(12); - //tb_search.hover = pHOVER; - //tb_search.focus = pFOCUS; - //if(tb_search.focus) - // TEXTBOX_ACTIVE = tb_search; - //else if(TEXTBOX_ACTIVE == tb_search) - // TEXTBOX_ACTIVE = noone; - if(search_string == "") { if(buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), [mx, my], pFOCUS, pHOVER, contentView? "Grid view" : "List view", THEME.view_mode, contentView) == 2) { contentView = !contentView; diff --git a/scripts/panel_graph/panel_graph.gml b/scripts/panel_graph/panel_graph.gml index dd930c47f..33d759c03 100644 --- a/scripts/panel_graph/panel_graph.gml +++ b/scripts/panel_graph/panel_graph.gml @@ -161,7 +161,8 @@ function Panel_Graph() : PanelContent() constructor { }); addHotkey("Graph", "Duplicate", "D", MOD_KEY.ctrl, function() { doDuplicate(); }); - addHotkey("Graph", "Toggle grid", "G", MOD_KEY.none, function() { show_grid = !show_grid; }); + addHotkey("Graph", "Toggle grid", "G", MOD_KEY.none, function() { show_grid = !show_grid; }); + addHotkey("Graph", "Toggle preview", "H", MOD_KEY.none, function() { setTriggerPreview(); }); addHotkey("Graph", "Export", "E", MOD_KEY.ctrl, function() { setCurrentExport(); }); @@ -213,8 +214,11 @@ function Panel_Graph() : PanelContent() constructor { maxy = max(n.y + n.h + 32, maxy); } - graph_x = round(w / 2 / graph_s - (minx + maxx) / 2); - graph_y = round((h - toolbar_height) / 2 / graph_s - (miny + maxy) / 2); + graph_x = w / 2 / graph_s - (minx + maxx) / 2; + graph_y = (h - toolbar_height) / 2 / graph_s - (miny + maxy) / 2; + + graph_x = round(graph_x); + graph_y = round(graph_y); } function dragGraph() { @@ -366,7 +370,7 @@ function Panel_Graph() : PanelContent() constructor { ds_list_add(nodes_select_list, _node); } ds_list_add(nodes_select_list, node_focus); - } else if(node_focus.previewable && DOUBLE_CLICK) { + } else if(DOUBLE_CLICK) { PANEL_PREVIEW.setNodePreview(node_focus); } else { var hover_selected = false; @@ -398,6 +402,11 @@ function Panel_Graph() : PanelContent() constructor { [ "Send to export", function() { setCurrentExport(node_hover); }, ["Graph", "Export"] ]); + array_push(menu, + [ "Toggle preview", function() { + setTriggerPreview(); + }, ["Graph", "Toggle preview"] ]); + array_push(menu, [ "Delete and merge connection", function() { doDelete(true); @@ -607,7 +616,7 @@ function Panel_Graph() : PanelContent() constructor { var _mx = round(mouse_graph_x / graph_line_s) * graph_line_s; var _my = round(mouse_graph_y / graph_line_s) * graph_line_s; - var _pin = new Node_Pin(_mx, _my); + var _pin = nodeBuild("Node_Pin", _mx, _my); _pin.inputs[| 0].setFrom(junction_hovering.value_from); junction_hovering.setFrom(_pin.outputs[| 0]); } @@ -714,7 +723,7 @@ function Panel_Graph() : PanelContent() constructor { cx = cx + 160; cy = round(cy / ds_list_size(nodes_select_list) / 32) * 32; - var _blend = new Node_Blend(cx, cy); + var _blend = new Node_Blend(cx, cy, getCurrentContext()); var index = 0; for( var i = 0; i < ds_list_size(nodes_select_list); i++ ) { var _node = nodes_select_list[| i]; @@ -772,7 +781,7 @@ function Panel_Graph() : PanelContent() constructor { cx = round(cx / ds_list_size(nodes_select_list) / 32) * 32; cy = round(cy / ds_list_size(nodes_select_list) / 32) * 32; - var _group = new Node_Group(cx, cy); + var _group = new Node_Group(cx, cy, getCurrentContext()); for(var i = 0; i < ds_list_size(nodes_select_list); i++) { _group.add(nodes_select_list[| i]); } @@ -810,7 +819,7 @@ function Panel_Graph() : PanelContent() constructor { cx = round(cx / ds_list_size(nodes_select_list) / 32) * 32; cy = round(cy / ds_list_size(nodes_select_list) / 32) * 32; - var _group = new Node_Iterate(cx, cy); + var _group = new Node_Iterate(cx, cy, getCurrentContext()); for(var i = 0; i < ds_list_size(nodes_select_list); i++) { _group.add(nodes_select_list[| i]); } @@ -847,7 +856,7 @@ function Panel_Graph() : PanelContent() constructor { x1 += 64; y1 += 64; - var f = new Node_Frame(x0, y0); + var f = new Node_Frame(x0, y0, getCurrentContext()); f.inputs[| 0].setValue([x1 - x0, y1 - y0]); } @@ -918,6 +927,17 @@ function Panel_Graph() : PanelContent() constructor { _canvas.surface_update(); } + function setTriggerPreview() { + if(node_focus != noone) + node_focus.previewable = !node_focus.previewable; + + var show = false; + for(var i = 0; i < ds_list_size(nodes_select_list); i++) { + if(i == 0) show = !nodes_select_list[| i].previewable; + nodes_select_list[| i].previewable = show; + } + } + function setCurrentCanvasBlend(_node = node_focus) { if(!_node) return; @@ -944,7 +964,7 @@ function Panel_Graph() : PanelContent() constructor { _canvas.inputs[| 5].setValue(true); _canvas.surface_update(); - var _blend = new Node_Blend(_node.x + _node.w + 64, _node.y); + var _blend = new Node_Blend(_node.x + _node.w + 64, _node.y, getCurrentContext()); _blend.inputs[| 0].setFrom(_outp); _blend.inputs[| 1].setFrom(_canvas.outputs[| 0]); } @@ -1160,6 +1180,10 @@ function Panel_Graph() : PanelContent() constructor { if(minimap_panning) { graph_x = -((mx - mx0 - gw / 2) - minimap_w / 2) / ss - cx; graph_y = -((my - my0 - gh / 2) - minimap_h / 2) / ss - cy; + + graph_x = round(graph_x); + graph_y = round(graph_y); + if(mouse_release(mb_left)) minimap_panning = false; } @@ -1274,6 +1298,9 @@ function Panel_Graph() : PanelContent() constructor { if(node_focus) { graph_x = -(node_focus.x + node_focus.w / 2) + w / 2 / graph_s; graph_y = -(node_focus.y + node_focus.h / 2) + h / 2 / graph_s; + + graph_x = round(graph_x); + graph_y = round(graph_y); return; } diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 22f9d7833..cb6b57529 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -1,4 +1,4 @@ -function Inspector_Custom_Renderer(draw) constructor { +function Inspector_Custom_Renderer(draw) : widget() constructor { h = 64; self.draw = draw; } @@ -130,6 +130,7 @@ function Panel_Inspector() : PanelContent() constructor { } continue; } else if(is_struct(jun_disp) && instanceof(jun_disp) == "Inspector_Custom_Renderer") { + jun_disp.register(contentPane); jun_disp.rx = ui(16) + x; jun_disp.ry = top_bar_h + y; @@ -264,8 +265,8 @@ function Panel_Inspector() : PanelContent() constructor { var widH = lineBreak? editBoxH : 0; if(jun.editWidget) { - jun.editWidget.active = pFOCUS; - jun.editWidget.hover = _hover; + jun.editWidget.setFocus(pFOCUS, _hover); + jun.editWidget.register(contentPane); switch(jun.display_type) { case VALUE_DISPLAY.button : @@ -286,7 +287,7 @@ function Panel_Inspector() : PanelContent() constructor { widH = lineBreak? ebH : ebH - lb_h; break; case VALUE_DISPLAY.enum_scroll : - jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, jun.display_data[jun.showValue()], _m, ui(16) + x, top_bar_h + y); + jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, array_safe_get(jun.display_data, jun.showValue()), _m, ui(16) + x, top_bar_h + y); break; case VALUE_DISPLAY.enum_button : jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, jun.showValue(), _m, ui(16) + x, top_bar_h + y); @@ -305,7 +306,7 @@ function Panel_Inspector() : PanelContent() constructor { jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, jun.showValue(), _m); break; case VALUE_DISPLAY.area : - jun.editWidget.draw(xc, _hsy + ui(40), jun.showValue(), _m); + jun.editWidget.draw(xc, _hsy + ui(40), jun.showValue(), jun.extra_data, _m); widH = ui(204); break; case VALUE_DISPLAY.puppet_control : diff --git a/scripts/panel_menu/panel_menu.gml b/scripts/panel_menu/panel_menu.gml index 68767f654..d5cf14ee9 100644 --- a/scripts/panel_menu/panel_menu.gml +++ b/scripts/panel_menu/panel_menu.gml @@ -88,6 +88,9 @@ function Panel_Menu() : PanelContent() constructor { [ "Update all current collections", function() { __test_update_current_collections(); }], + [ "Update sample projects", function() { + __test_update_sample_projects(); + }], -1, [ "Key displayer", function() { if(instance_exists(addon_key_displayer)) { diff --git a/scripts/panel_preview/panel_preview.gml b/scripts/panel_preview/panel_preview.gml index 9b7b49dc9..36149873f 100644 --- a/scripts/panel_preview/panel_preview.gml +++ b/scripts/panel_preview/panel_preview.gml @@ -432,9 +432,10 @@ function Panel_Preview() : PanelContent() constructor { preview_x_max = 0; var xx = preview_x + ui(8); + var yy = h - toolbar_height - prev_size - ui(8); + if(my > yy) mouse_on_preview = false; + for(var i = 0; i < array_length(pseq); i++) { - var yy = h - toolbar_height - prev_size - ui(8); - var prev = pseq[i]; if(!is_surface(prev)) continue; @@ -677,8 +678,8 @@ function Panel_Preview() : PanelContent() constructor { dragCanvas(); getPreviewData(); drawNodePreview(); - drawPreviewOverlay(); + if(PANEL_GRAPH.node_focus) drawNodeTools(pFOCUS, PANEL_GRAPH.node_focus); if(last_focus != PANEL_GRAPH.node_focus) { diff --git a/scripts/perlin_noise/perlin_noise.gml b/scripts/perlin_noise/perlin_noise.gml index 9a51bb785..86e4615db 100644 --- a/scripts/perlin_noise/perlin_noise.gml +++ b/scripts/perlin_noise/perlin_noise.gml @@ -1,33 +1,32 @@ -function __random2 (_x, _y, _s) { +function random2D (_x, _y, _s) { random_set_seed((_x + _y) * (_x + _y + 1) / 2 + _y + _s); return random(1); } -function __noise(_x, _y, _seed) { +function noise2D(_x, _y, _seed) { var fl_x = floor(_x); var fl_y = floor(_y); - var a = __random2(fl_x + 0, fl_y + 0, _seed); - var b = __random2(fl_x + 1, fl_y + 0, _seed); - var c = __random2(fl_x + 0, fl_y + 1, _seed); - var d = __random2(fl_x + 1, fl_y + 1, _seed); + var a = random2D(fl_x + 0, fl_y + 0, _seed); + var b = random2D(fl_x + 1, fl_y + 0, _seed); + var c = random2D(fl_x + 0, fl_y + 1, _seed); + var d = random2D(fl_x + 1, fl_y + 1, _seed); - return lerp(lerp(a, b, _x - fl_x), lerp(c, d, _x - fl_x), _y - fl_y); + return lerp(lerp(a, b, _x - fl_x), + lerp(c, d, _x - fl_x), _y - fl_y); } function perlin_noise(_x, _y, _amp, _seed) { var res = 0; - var maxx = 0; - var mulp = 0.5; + var amp = power(2., _amp - 1.) / (power(2., _amp) - 1.); repeat(_amp) { - res += __noise(_x, _y, _seed) * mulp; - maxx += mulp; + res += noise2D(_x, _y, _seed) * amp; _x /= 2; _y /= 2; - mulp *= 0.5; + amp *= 0.5; } - return res / maxx; + return res; } \ No newline at end of file diff --git a/scripts/preferences/preferences.gml b/scripts/preferences/preferences.gml index 60b515c5d..b3b465839 100644 --- a/scripts/preferences/preferences.gml +++ b/scripts/preferences/preferences.gml @@ -59,6 +59,9 @@ modi = _mod; action = _action; + dKey = _key; + dModi = _mod; + static serialize = function() { var ll = ds_list_create(); ll[| 0] = context; @@ -69,15 +72,17 @@ } static deserialize = function(ll) { - var _k = is_string(ll[| 2])? ord(ll[| 2]) : ll[| 2]; - key = _k; + key = ll[| 2]; modi = ll[| 3]; } } function addHotkey(_context, _name, _key, _mod, _action) { if(_key == "") _key = -1; - if(is_string(_key)) _key = ord(_key); + if(is_string(_key)) { + var ind = key_get_index(_key); + _key = ind? ind : ord(_key); + } var key = new hotkeyObject(_context, _name, _key, _mod, _action); @@ -101,46 +106,6 @@ else ds_list_add(HOTKEYS[? _context], key); } - - function key_get_name(_key, _mod) { - var dk = ""; - if(_mod & MOD_KEY.ctrl) dk += "Ctrl+"; - if(_mod & MOD_KEY.shift) dk += "Shift+"; - if(_mod & MOD_KEY.alt) dk += "Alt+"; - - switch(_key) { - case vk_space : dk += "Space"; break; - case vk_left : dk += "Left"; break; - case vk_right : dk += "Right"; break; - case vk_up : dk += "Up"; break; - case vk_down : dk += "Down"; break; - case vk_backspace : dk += "Backspace"; break; - case vk_tab : dk += "Tab"; break; - case vk_home : dk += "Home"; break; - case vk_end : dk += "End"; break; - case vk_delete : dk += "Delete"; break; - case vk_insert : dk += "Insert"; break; - case vk_pageup : dk += "Page Up"; break; - case vk_pagedown : dk += "Page Down"; break; - case vk_pause : dk += "Pause"; break; - case vk_printscreen : dk += "Printscreen"; break; - case vk_f1 : dk += "F1"; break; - case vk_f2 : dk += "F2"; break; - case vk_f3 : dk += "F3"; break; - case vk_f4 : dk += "F4"; break; - case vk_f5 : dk += "F5"; break; - case vk_f6 : dk += "F6"; break; - case vk_f7 : dk += "F7"; break; - case vk_f8 : dk += "F8"; break; - case vk_f9 : dk += "F9"; break; - case vk_f10 : dk += "F10"; break; - case vk_f11 : dk += "F11"; break; - case vk_f12 : dk += "F12"; break; - default : dk += ansi_char(_key); break; - } - - return dk; - } #endregion #region recent files @@ -173,18 +138,13 @@ var map = json_decode(load_str); if(ds_map_exists(map, "Recents")) { - ds_list_copy(RECENT_FILES, map[? "Recents"]); + var l = map[? "Recents"]; + ds_list_clear(RECENT_FILES); - var del = ds_stack_create(); - for(var i = 0; i < ds_list_size(RECENT_FILES); i++) { - if(!file_exists(RECENT_FILES[| i])) ds_stack_push(del, i); + for(var i = 0; i < ds_list_size(l); i++) { + if(!file_exists(l[| i])) continue; + ds_list_add(RECENT_FILES, l[| i]); } - - while(!ds_stack_empty(del)) { - ds_list_delete(RECENT_FILES, ds_stack_pop(del)); - } - - ds_stack_destroy(del); } } #endregion @@ -236,8 +196,7 @@ var name = key_list[| 1]; var _key = find_hotkey(_context, name); - if(_key) - _key.deserialize(key_list); + if(_key) _key.deserialize(key_list); } } @@ -266,13 +225,11 @@ } function find_hotkey(_context, _name) { - if(ds_map_exists(HOTKEYS, _context)) { - for(var j = 0; j < ds_list_size(HOTKEYS[? _context]); j++) { - if(HOTKEYS[? _context][| j].name == _name) { - return HOTKEYS[? _context][| j]; - } - } + if(!ds_map_exists(HOTKEYS, _context)) return noone; + + for(var j = 0; j < ds_list_size(HOTKEYS[? _context]); j++) { + if(HOTKEYS[? _context][| j].name == _name) + return HOTKEYS[? _context][| j]; } - return noone; } #endregion \ No newline at end of file diff --git a/scripts/preview_overlay_area/preview_overlay_area.gml b/scripts/preview_overlay_area/preview_overlay_area.gml new file mode 100644 index 000000000..be447c7dd --- /dev/null +++ b/scripts/preview_overlay_area/preview_overlay_area.gml @@ -0,0 +1,323 @@ +function preview_overlay_area_padding(active, _x, _y, _s, _mx, _my, _snx, _sny, display_data) { + var _val = showValue(); + var hover = -1; + + if(display_data == -1) return hover; + + var ss = display_data(); + var __at = array_safe_get(_val, 4); + var _r = array_safe_get(_val, 0); + var _t = array_safe_get(_val, 1); + var _l = array_safe_get(_val, 2); + var _b = array_safe_get(_val, 3); + var _xc = ((ss[0] - _r) + _l) / 2; + var _yc = ((ss[1] - _b) + _t) / 2; + + var x0 = _l * _s + _x; + var y0 = _t * _s + _y; + var x1 = (ss[0] - _r) * _s + _x; + var y1 = (ss[1] - _b) * _s + _y; + var xc = (x0 + x1) / 2; + var yc = (y0 + y1) / 2; + + draw_set_color(COLORS._main_accent); + switch(__at) { + case AREA_SHAPE.rectangle : draw_rectangle(x0, y0, x1, y1, true); break; + case AREA_SHAPE.elipse : draw_ellipse(x0, y0, x1, y1, true); break; + } + + draw_sprite_ui_uniform(THEME.anchor, 0, xc, yc); + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 0, xc, y0,,,, 0); + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 0, xc, y1,,,, 0); + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 0, x0, yc,,,, 90); + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 0, x1, yc,,,, 90); + + if(drag_type == 1) { + var _xx = value_snap(drag_sx - (_mx - drag_mx) / _s, _snx); + _val[0] = _xx; + + if(setValue(_val)) + UNDO_HOLDING = true; + } else if(drag_type == 2) { + var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + _val[1] = _yy; + + if(setValue(_val)) + UNDO_HOLDING = true; + } else if(drag_type == 3) { + var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + _val[2] = _xx; + + if(setValue(_val)) + UNDO_HOLDING = true; + } else if(drag_type == 4) { + var _yy = value_snap(drag_sy - (_my - drag_my) / _s, _sny); + _val[3] = _yy; + + if(setValue(_val)) + UNDO_HOLDING = true; + } else if(drag_type == 5) { + var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + var _w = ss[0] - _r - _l; + var _h = ss[1] - _b - _t; + + var nr = ss[0] - (_xx + _w / 2); + var nl = _xx - _w / 2; + var nt = _yy - _h / 2; + var nb = ss[1] - (_yy + _h / 2); + + _val = [ nr, nt, nl, nb, __at ]; + + if(setValue(_val)) + UNDO_HOLDING = true; + } + + if(drag_type && mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + + if(active && point_in_circle(_mx, _my, xc, y0, 16)) { + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 1, xc, y0,,,, 0); + hover = 1; + + if(mouse_press(mb_left)) { + drag_type = 2; + drag_sy = _t; + drag_my = _my; + } + } else if(active && point_in_circle(_mx, _my, xc, y1, 16)) { + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 1, xc, y1,,,, 0); + hover = 3; + + if(mouse_press(mb_left)) { + drag_type = 4; + drag_sy = _b; + drag_my = _my; + } + } else if(active && point_in_circle(_mx, _my, x0, yc, 16)) { + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 1, x0, yc,,,, 90); + hover = 0; + + if(mouse_press(mb_left)) { + drag_type = 3; + drag_sx = _l; + drag_mx = _mx; + } + } else if(active && point_in_circle(_mx, _my, x1, yc, 16)) { + draw_sprite_ui_uniform(THEME.anchor_solid_hori, 1, x1, yc,,,, 90); + hover = 2; + + if(mouse_press(mb_left)) { + drag_type = 1; + drag_sx = _r; + drag_mx = _mx; + } + } else if(active && point_in_rectangle(_mx, _my, x0, y0, x1, y1)) { + draw_sprite_ui_uniform(THEME.anchor, 1, xc, yc); + hover = 4; + + if(mouse_press(mb_left)) { + drag_type = 5; + drag_sx = _xc; + drag_sy = _yc; + drag_mx = _mx; + drag_my = _my; + } + } + + return hover; +} + +function preview_overlay_area_two_point(active, _x, _y, _s, _mx, _my, _snx, _sny) { + var _val = showValue(); + var hover = -1; + + var __at = array_safe_get(_val, 4); + + var _x0 = array_safe_get(_val, 0); + var _y0 = array_safe_get(_val, 1); + var _x1 = array_safe_get(_val, 2); + var _y1 = array_safe_get(_val, 3); + + var x0 = _x0 * _s + _x; + var y0 = _y0 * _s + _y; + var x1 = _x1 * _s + _x; + var y1 = _y1 * _s + _y; + + draw_set_color(COLORS._main_accent); + switch(__at) { + case AREA_SHAPE.rectangle : draw_rectangle(x0, y0, x1, y1, true); break; + case AREA_SHAPE.elipse : draw_ellipse(x0, y0, x1, y1, true); break; + } + + draw_sprite_ui_uniform(THEME.anchor_selector, 0, x0, y0); + draw_sprite_ui_uniform(THEME.anchor_selector, 0, x1, y1); + + if(drag_type == 1) { + var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + _val = [_xx, _yy, _x1, _y1, __at]; + + if(setValue(_val)) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(drag_type == 2) { + var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + _val = [_x0, _y0, _xx, _yy, __at]; + + if(setValue(_val)) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(active && point_in_circle(_mx, _my, x0, y0, 8)) { + draw_sprite_ui_uniform(THEME.anchor_selector, 1, x0, y0); + hover = 1; + + if(mouse_press(mb_left)) { + drag_type = 1; + drag_sx = _x0; + drag_sy = _y0; + drag_mx = _mx; + drag_my = _my; + } + } else if(active && point_in_circle(_mx, _my, x1, y1, 8)) { + draw_sprite_ui_uniform(THEME.anchor_selector, 1, x1, y1); + hover = 2; + + if(mouse_press(mb_left)) { + drag_type = 2; + drag_sx = _x1; + drag_sy = _y1; + drag_mx = _mx; + drag_my = _my; + } + } + + return hover; +} + +function preview_overlay_area_span(active, _x, _y, _s, _mx, _my, _snx, _sny) { + var _val = showValue(); + var hover = -1; + + var __ax = array_safe_get(_val, 0); + var __ay = array_safe_get(_val, 1); + var __aw = array_safe_get(_val, 2); + var __ah = array_safe_get(_val, 3); + var __at = array_safe_get(_val, 4); + + var _ax = __ax * _s + _x; + var _ay = __ay * _s + _y; + var _aw = __aw * _s; + var _ah = __ah * _s; + + draw_set_color(COLORS._main_accent); + switch(__at) { + case AREA_SHAPE.rectangle : draw_rectangle(_ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah, true); break; + case AREA_SHAPE.elipse : draw_ellipse(_ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah, true); break; + } + + draw_sprite_ui_uniform(THEME.anchor, 0, _ax, _ay); + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax + _aw, _ay + _ah); + + if(point_in_circle(_mx, _my, _ax + _aw, _ay + _ah, 8)) + draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax + _aw, _ay + _ah); + else if(point_in_rectangle(_mx, _my, _ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah)) + draw_sprite_ui_uniform(THEME.anchor, 0, _ax, _ay, 1.25, c_white); + + if(drag_type == 1) { + var _xx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _yy = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + + if(key_mod_press(CTRL)) { + _val[0] = round(_xx); + _val[1] = round(_yy); + } else { + _val[0] = _xx; + _val[1] = _yy; + } + + if(setValue(_val)) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } else if(drag_type == 2) { + var _dx = value_snap((_mx - drag_mx) / _s, _snx); + var _dy = value_snap((_my - drag_my) / _s, _sny); + + if(key_mod_press(CTRL)) { + _val[2] = round(_dx); + _val[3] = round(_dy); + } else { + _val[2] = _dx; + _val[3] = _dy; + } + + if(keyboard_check(vk_shift)) { + _val[2] = max(_dx, _dy); + _val[3] = max(_dx, _dy); + } + + if(setValue(_val)) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(active && point_in_circle(_mx, _my, _ax + _aw, _ay + _ah, 8)) { + hover = 2; + if(mouse_press(mb_left)) { + drag_type = 2; + drag_mx = _ax; + drag_my = _ay; + } + } else if(active && point_in_rectangle(_mx, _my, _ax - _aw, _ay - _ah, _ax + _aw, _ay + _ah)) { + hover = 1; + if(mouse_press(mb_left)) { + drag_type = 1; + drag_sx = __ax; + drag_sy = __ay; + drag_mx = _mx; + drag_my = _my; + } + } + + return hover; +} + +function preview_overlay_area(active, _x, _y, _s, _mx, _my, _snx, _sny, display_data) { + var _val = getValue(); + var hover = -1; + if(is_array(_val[0])) return hover; + + var mode = editWidget.mode; + + if(mode == AREA_MODE.area) + hover = preview_overlay_area_span(active, _x, _y, _s, _mx, _my, _snx, _sny); + else if(mode == AREA_MODE.padding) + hover = preview_overlay_area_padding(active, _x, _y, _s, _mx, _my, _snx, _sny, display_data) + else if(mode == AREA_MODE.two_point) + hover = preview_overlay_area_two_point(active, _x, _y, _s, _mx, _my, _snx, _sny); + + return hover; +} \ No newline at end of file diff --git a/scripts/preview_overlay_area/preview_overlay_area.yy b/scripts/preview_overlay_area/preview_overlay_area.yy new file mode 100644 index 000000000..c2155ae2e --- /dev/null +++ b/scripts/preview_overlay_area/preview_overlay_area.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "preview_overlay_area", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "overlay", + "path": "folders/panels/preview/overlay.yy", + }, +} \ No newline at end of file diff --git a/scripts/preview_overlay_puppet/preview_overlay_puppet.gml b/scripts/preview_overlay_puppet/preview_overlay_puppet.gml new file mode 100644 index 000000000..64bf92f9b --- /dev/null +++ b/scripts/preview_overlay_puppet/preview_overlay_puppet.gml @@ -0,0 +1,123 @@ +function preview_overlay_puppet(active, _x, _y, _s, _mx, _my, _snx, _sny) { + var _val = getValue(); + var hover = -1; + if(is_array(_val[0])) return hover; + + var __ax = _val[PUPPET_CONTROL.cx]; + var __ay = _val[PUPPET_CONTROL.cy]; + var __ax1 = _val[PUPPET_CONTROL.fx]; + var __ay1 = _val[PUPPET_CONTROL.fy]; + + var _ax = __ax * _s + _x; + var _ay = __ay * _s + _y; + + var _ax1 = (__ax + __ax1) * _s + _x; + var _ay1 = (__ay + __ay1) * _s + _y; + + draw_set_color(COLORS._main_accent); + switch(_val[PUPPET_CONTROL.mode]) { + case PUPPET_FORCE_MODE.move : + draw_line_width2(_ax, _ay, _ax1, _ay1, 6, 1); + + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); + draw_sprite_ui_uniform(THEME.anchor_selector, 2, _ax1, _ay1); + draw_circle(_ax, _ay, _val[PUPPET_CONTROL.width] * _s, true); + break; + case PUPPET_FORCE_MODE.pinch : + case PUPPET_FORCE_MODE.inflate : + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); + draw_circle(_ax, _ay, _val[PUPPET_CONTROL.width] * _s, true); + break; + case PUPPET_FORCE_MODE.wind : + var dir = _val[PUPPET_CONTROL.fy]; + var rad = _val[PUPPET_CONTROL.width] * _s; + + var _l0x = _ax + lengthdir_x(rad, dir + 90); + var _l0y = _ay + lengthdir_y(rad, dir + 90); + var _l1x = _ax + lengthdir_x(rad, dir - 90); + var _l1y = _ay + lengthdir_y(rad, dir - 90); + + var _l0x0 = _l0x + lengthdir_x(1000, dir); + var _l0y0 = _l0y + lengthdir_y(1000, dir); + var _l0x1 = _l0x + lengthdir_x(1000, dir + 180); + var _l0y1 = _l0y + lengthdir_y(1000, dir + 180); + + var _l1x0 = _l1x + lengthdir_x(1000, dir); + var _l1y0 = _l1y + lengthdir_y(1000, dir); + var _l1x1 = _l1x + lengthdir_x(1000, dir + 180); + var _l1y1 = _l1y + lengthdir_y(1000, dir + 180); + + draw_line(_l0x0, _l0y0, _l0x1, _l0y1); + draw_line(_l1x0, _l1y0, _l1x1, _l1y1); + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax, _ay); + break; + } + + if(drag_type == 1) { + draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); + var _nx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _ny = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + + if(key_mod_press(CTRL)) { + _val[PUPPET_CONTROL.cx] = round(_nx); + _val[PUPPET_CONTROL.cy] = round(_ny); + } else { + _val[PUPPET_CONTROL.cx] = _nx; + _val[PUPPET_CONTROL.cy] = _ny; + } + + if(setValue( _val )) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } else if(drag_type == 2) { + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax1, _ay1); + var _nx = value_snap(drag_sx + (_mx - drag_mx) / _s, _snx); + var _ny = value_snap(drag_sy + (_my - drag_my) / _s, _sny); + + if(key_mod_press(CTRL)) { + _val[PUPPET_CONTROL.fx] = round(_nx); + _val[PUPPET_CONTROL.fy] = round(_ny); + } else { + _val[PUPPET_CONTROL.fx] = _nx; + _val[PUPPET_CONTROL.fy] = _ny; + } + + if(setValue( _val )) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(point_in_circle(_mx, _my, _ax, _ay, 8)) { + hover = 1; + draw_sprite_ui_uniform(THEME.anchor_selector, 1, _ax, _ay); + if(mouse_press(mb_left, active)) { + drag_type = 1; + drag_mx = _mx; + drag_my = _my; + drag_sx = __ax; + drag_sy = __ay; + } + } + + if(_val[PUPPET_CONTROL.mode] == PUPPET_FORCE_MODE.move && point_in_circle(_mx, _my, _ax1, _ay1, 8)) { + hover = 2; + draw_sprite_ui_uniform(THEME.anchor_selector, 0, _ax1, _ay1); + if(mouse_press(mb_left, active)) { + drag_type = 2; + drag_mx = _mx; + drag_my = _my; + drag_sx = __ax1; + drag_sy = __ay1; + } + } + + return hover; +} \ No newline at end of file diff --git a/scripts/preview_overlay_puppet/preview_overlay_puppet.yy b/scripts/preview_overlay_puppet/preview_overlay_puppet.yy new file mode 100644 index 000000000..7d475468b --- /dev/null +++ b/scripts/preview_overlay_puppet/preview_overlay_puppet.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "preview_overlay_puppet", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "overlay", + "path": "folders/panels/preview/overlay.yy", + }, +} \ No newline at end of file diff --git a/scripts/preview_overlay_rotation/preview_overlay_rotation.gml b/scripts/preview_overlay_rotation/preview_overlay_rotation.gml new file mode 100644 index 000000000..093733618 --- /dev/null +++ b/scripts/preview_overlay_rotation/preview_overlay_rotation.gml @@ -0,0 +1,48 @@ +function preview_overlay_rotation(active, _x, _y, _s, _mx, _my, _snx, _sny, _rad) { + var _val = getValue(); + var hover = -1; + if(is_array(_val)) return hover; + + var _ax = _x + lengthdir_x(_rad, _val); + var _ay = _y + lengthdir_y(_rad, _val); + draw_sprite_ui(THEME.anchor_rotate, 0, _ax, _ay, 1, 1, _val - 90, c_white, 1); + + if(drag_type) { + draw_set_color(COLORS._main_accent); + draw_set_alpha(0.5); + draw_circle(_x, _y, _rad, true); + draw_set_alpha(1); + + draw_sprite_ui(THEME.anchor_rotate, 1, _ax, _ay, 1, 1, _val - 90, c_white, 1); + var angle = point_direction(_x, _y, _mx, _my); + if(key_mod_press(CTRL)) + angle = round(angle / 15) * 15; + + if(setValue( angle )) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(point_in_circle(_mx, _my, _ax, _ay, 8)) { + draw_set_color(COLORS._main_accent); + draw_set_alpha(0.5); + draw_circle(_x, _y, _rad, true); + draw_set_alpha(1); + hover = 1; + + draw_sprite_ui(THEME.anchor_rotate, 1, _ax, _ay, 1, 1, _val - 90, c_white, 1); + if(mouse_press(mb_left, active)) { + drag_type = 1; + drag_mx = _mx; + drag_my = _my; + drag_sx = _ax; + drag_sy = _ay; + } + } + + return hover; +} \ No newline at end of file diff --git a/scripts/preview_overlay_rotation/preview_overlay_rotation.yy b/scripts/preview_overlay_rotation/preview_overlay_rotation.yy new file mode 100644 index 000000000..786b5ea85 --- /dev/null +++ b/scripts/preview_overlay_rotation/preview_overlay_rotation.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "preview_overlay_rotation", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "overlay", + "path": "folders/panels/preview/overlay.yy", + }, +} \ No newline at end of file diff --git a/scripts/preview_overlay_scalar/preview_overlay_scalar.gml b/scripts/preview_overlay_scalar/preview_overlay_scalar.gml new file mode 100644 index 000000000..c5b3283be --- /dev/null +++ b/scripts/preview_overlay_scalar/preview_overlay_scalar.gml @@ -0,0 +1,43 @@ +function preview_overlay_scalar(active, _x, _y, _s, _mx, _my, _snx, _sny, _angle, _scale, _spr) { + var _val = getValue(); + var hover = -1; + if(is_array(_val)) return hover; + + var index = 0; + var __ax = lengthdir_x(_val * _scale, _angle); + var __ay = lengthdir_y(_val * _scale, _angle); + + var _ax = _x + __ax * _s; + var _ay = _y + __ay * _s; + + if(drag_type) { + index = 1; + var dist = point_distance(_mx, _my, _x, _y) / _s / _scale; + if(key_mod_press(CTRL)) + dist = round(dist); + + if(setValue( dist )) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(point_in_circle(_mx, _my, _ax, _ay, 8)) { + hover = 1; + index = 1; + if(mouse_press(mb_left, active)) { + drag_type = 1; + drag_mx = _mx; + drag_my = _my; + drag_sx = _ax; + drag_sy = _ay; + } + } + + draw_sprite_ui_uniform(_spr, index, _ax, _ay); + + return hover; +} \ No newline at end of file diff --git a/scripts/preview_overlay_scalar/preview_overlay_scalar.yy b/scripts/preview_overlay_scalar/preview_overlay_scalar.yy new file mode 100644 index 000000000..ee40193d4 --- /dev/null +++ b/scripts/preview_overlay_scalar/preview_overlay_scalar.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "preview_overlay_scalar", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "overlay", + "path": "folders/panels/preview/overlay.yy", + }, +} \ No newline at end of file diff --git a/scripts/preview_overlay_vector/preview_overlay_vector.gml b/scripts/preview_overlay_vector/preview_overlay_vector.gml new file mode 100644 index 000000000..f07b01174 --- /dev/null +++ b/scripts/preview_overlay_vector/preview_overlay_vector.gml @@ -0,0 +1,48 @@ +function preview_overlay_vector(active, _x, _y, _s, _mx, _my, _snx, _sny, _spr) { + var _val = getValue(); + var hover = -1; + if(is_array(_val[0])) return hover; + + var __ax = _val[0]; + var __ay = _val[1]; + + var _ax = __ax * _s + _x; + var _ay = __ay * _s + _y; + + draw_sprite_ui_uniform(_spr, 0, _ax, _ay); + + if(drag_type) { + draw_sprite_ui_uniform(_spr, 1, _ax, _ay); + var _nx = value_snap((drag_sx + (_mx - drag_mx) - _x) / _s, _snx); + var _ny = value_snap((drag_sy + (_my - drag_my) - _y) / _s, _sny); + if(key_mod_press(CTRL)) { + _val[0] = round(_nx); + _val[1] = round(_ny); + } else { + _val[0] = _nx; + _val[1] = _ny; + } + + if(setValue( _val )) + UNDO_HOLDING = true; + + if(mouse_release(mb_left)) { + drag_type = 0; + UNDO_HOLDING = false; + } + } + + if(point_in_circle(_mx, _my, _ax, _ay, 8)) { + hover = 1; + draw_sprite_ui_uniform(_spr, 1, _ax, _ay); + if(mouse_press(mb_left, active)) { + drag_type = 1; + drag_mx = _mx; + drag_my = _my; + drag_sx = _ax; + drag_sy = _ay; + } + } + + return hover; +} \ No newline at end of file diff --git a/scripts/preview_overlay_vector/preview_overlay_vector.yy b/scripts/preview_overlay_vector/preview_overlay_vector.yy new file mode 100644 index 000000000..3cdf4cd74 --- /dev/null +++ b/scripts/preview_overlay_vector/preview_overlay_vector.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "preview_overlay_vector", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "overlay", + "path": "folders/panels/preview/overlay.yy", + }, +} \ No newline at end of file diff --git a/scripts/random_function/random_function.gml b/scripts/random_function/random_function.gml index 05878c2ca..3ea3718cb 100644 --- a/scripts/random_function/random_function.gml +++ b/scripts/random_function/random_function.gml @@ -1,3 +1,33 @@ +function irandom_seed(val, seed) { + random_set_seed(floor(seed)); + return irandom(val); +} + +function irandom_range_seed(from, to, seed) { + random_set_seed(floor(seed)); + return irandom_range(from, to); +} + +function random_seed(val, seed) { + random_set_seed(floor(seed)); + var _s0 = random(val); + + random_set_seed(floor(seed) + 1); + var _s1 = random(val); + + return lerp(_s0, _s1, frac(seed)); +} + +function random_range_seed(from, to, seed) { + random_set_seed(floor(seed)); + var _s0 = random_range(from, to); + + random_set_seed(floor(seed) + 1); + var _s1 = random_range(from, to); + + return lerp(_s0, _s1, frac(seed)); +} + function random1D(seed, startRange = 0, endRange = 1) { var _f = frac(seed); if(_f == 0) { diff --git a/scripts/rangeBox/rangeBox.gml b/scripts/rangeBox/rangeBox.gml index c30d815a1..4ff619f8e 100644 --- a/scripts/rangeBox/rangeBox.gml +++ b/scripts/rangeBox/rangeBox.gml @@ -1,12 +1,23 @@ -function rangeBox(_type, _onModify) constructor { +function rangeBox(_type, _onModify) : widget() constructor { onModify = _onModify; - hover = false; - active = false; + linked = false; + b_link = button(function() { linked = !linked; }); + b_link.icon = THEME.value_link; + + onModifyIndex = function(index, val) { + if(linked) { + for( var i = 0; i < 2; i++ ) + onModify(i, toNumber(val)); + return; + } + + onModify(index, toNumber(val)); + } label = [ "min", "max" ]; - onModifySingle[0] = function(val) { onModify(0, toNumber(val)); } - onModifySingle[1] = function(val) { onModify(1, toNumber(val)); } + onModifySingle[0] = function(val) { onModifyIndex(0, toNumber(val)); } + onModifySingle[1] = function(val) { onModifyIndex(1, toNumber(val)); } extras = -1; @@ -15,7 +26,32 @@ function rangeBox(_type, _onModify) constructor { tb[i].slidable = true; } + static register = function(parent = noone) { + b_link.register(parent); + + for( var i = 0; i < 2; i++ ) + tb[i].register(parent); + } + static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + + b_link.hover = hover; + b_link.active = active; + b_link.icon_index = linked; + b_link.icon_blend = linked? COLORS._main_accent : COLORS._main_icon; + b_link.tooltip = linked? "Unlink axis" : "Link axis"; + + var bx = _x; + var by = _y + _h / 2 - ui(32 / 2); + b_link.draw(bx + ui(4), by + ui(4), ui(24), ui(24), _m, THEME.button_hide); + + _x += ui(28); + _w -= ui(28); + if(extras != -1 && is_struct(extras) && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -38,7 +74,6 @@ function rangeBox(_type, _onModify) constructor { } } - hover = false; - active = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/render_data/render_data.gml b/scripts/render_data/render_data.gml index d7ea344c9..7a3deba39 100644 --- a/scripts/render_data/render_data.gml +++ b/scripts/render_data/render_data.gml @@ -32,6 +32,7 @@ function __nodeInLoop(_node) { function Render(partial = false) { var rendering = noone; var error = 0; + var t = current_time; printIf(global.RENDER_LOG, "=== RENDER START [frame " + string(ANIMATOR.current_frame) + "] ==="); if(!partial || ALWAYS_FULL) { @@ -82,7 +83,7 @@ function Render(partial = false) { rendering.getNextNodes(); } - printIf(global.RENDER_LOG, "=== RENDER COMPLETE ===\n"); + printIf(global.RENDER_LOG, "=== RENDER COMPLETE IN {" + string(current_time - t) + "ms} ===\n"); } /* function renderNodeBackward(_node) { //unused diff --git a/scripts/rotator/rotator.gml b/scripts/rotator/rotator.gml index 5bd05ddf5..282cb124d 100644 --- a/scripts/rotator/rotator.gml +++ b/scripts/rotator/rotator.gml @@ -1,7 +1,4 @@ -function rotator(_onModify, _step = -1) constructor { - active = false; - hover = false; - +function rotator(_onModify, _step = -1) : widget() constructor { onModify = _onModify; step = _step; @@ -13,7 +10,16 @@ function rotator(_onModify, _step = -1) constructor { tb_value = new textBox(TEXTBOX_INPUT.number, onModify); + static register = function(parent = noone) { + tb_value.register(parent); + } + static draw = function(_x, _y, _data, _m) { + x = _x; + y = _y; + w = 0; + h = ui(96); + var knob_y = _y + ui(48); tb_value.hover = hover; @@ -68,7 +74,6 @@ function rotator(_onModify, _step = -1) constructor { draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text); draw_text(_x, knob_y, string(_data)); - active = false; - hover = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/rotatorRange/rotatorRange.gml b/scripts/rotatorRange/rotatorRange.gml index 4834c4716..b2e72b7de 100644 --- a/scripts/rotatorRange/rotatorRange.gml +++ b/scripts/rotatorRange/rotatorRange.gml @@ -1,7 +1,4 @@ -function rotatorRange(_onModify) constructor { - active = false; - hover = false; - +function rotatorRange(_onModify) : widget() constructor { onModify = _onModify; dragging = -1; @@ -9,9 +6,28 @@ function rotatorRange(_onModify) constructor { drag_sa = 0; drag_sc = 0; + tb_min = new textBox(TEXTBOX_INPUT.number, function(val) { onModify(0, val); } ); + tb_min.slidable = true; + + tb_max = new textBox(TEXTBOX_INPUT.number, function(val) { onModify(1, val); } ); + tb_max.slidable = true; + static draw = function(_x, _y, _data, _m) { + x = _x; + y = _y; + w = 0; + h = ui(96); + var knob_y = _y + ui(48); + tb_min.active = active; + tb_min.hover = hover; + tb_max.active = active; + tb_max.hover = hover; + + tb_min.draw(_x - ui(40 + 16 + 80), knob_y - TEXTBOX_HEIGHT / 2, ui(80), TEXTBOX_HEIGHT, array_safe_get(_data, 0), _m); + tb_max.draw(_x + ui(40 + 16), knob_y - TEXTBOX_HEIGHT / 2, ui(80), TEXTBOX_HEIGHT, array_safe_get(_data, 1), _m); + draw_sprite_ui_uniform(THEME.rotator_bg, 0, _x, knob_y); #region draw arc @@ -121,7 +137,6 @@ function rotatorRange(_onModify) constructor { draw_text(_x, knob_y - ui(12), string(_data[0])); draw_text(_x, knob_y + ui(12), string(_data[1])); - active = false; - hover = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/scrollBox/scrollBox.gml b/scripts/scrollBox/scrollBox.gml index 99c6323e2..fca9195a9 100644 --- a/scripts/scrollBox/scrollBox.gml +++ b/scripts/scrollBox/scrollBox.gml @@ -1,60 +1,75 @@ -function scrollBox(_data, _onModify) constructor { +function scrollBox(_data, _onModify) : widget() constructor { onModify = _onModify; data_list = _data; data = []; - active = false; - hover = false; - open = false; + open = false; + open_rx = 0; + open_ry = 0; align = fa_center; extra_button = noone; + static trigger = function() { + if(is_method(data_list)) + data = data_list(); + else + data = data_list; + + open = true; + with(dialogCall(o_dialog_scrollbox, x + open_rx, y + open_ry)) { + scrollbox = other; + dialog_w = other.w; + align = other.align; + } + } + static draw = function(_x, _y, _w, _h, _text, _m = mouse_ui, _rx = 0, _ry = 0) { - var ww = _w; + x = _x; + y = _y; + open_rx = _rx; + open_ry = _ry; + h = _h; + + w = _w; if(extra_button != noone) { extra_button.hover = hover; extra_button.active = active; extra_button.draw(_x + _w - ui(32), _y + _h / 2 - ui(32 / 2), ui(32), ui(32), _m, THEME.button_hide); - ww -= ui(40); + w -= ui(40); } if(open) { - hover = false; - active = false; + resetFocus(); return; } - draw_sprite_stretched(THEME.textbox, 3, _x, _y, ww, _h); + draw_sprite_stretched(THEME.textbox, 3, _x, _y, w, _h); - if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + ww, _y + _h)) { - draw_sprite_stretched(THEME.textbox, 1, _x, _y, ww, _h); - if(mouse_press(mb_left, active)) { - if(is_method(data_list)) - data = data_list(); - else - data = data_list; - - open = true; - with(dialogCall(o_dialog_scrollbox, _x + _rx, _y + _ry)) { - scrollbox = other; - dialog_w = ww; - align = other.align; - } - } + if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + w, _y + _h)) { + draw_sprite_stretched(THEME.textbox, 1, _x, _y, w, _h); + if(mouse_press(mb_left, active)) + trigger(); if(mouse_click(mb_left, active)) - draw_sprite_stretched(THEME.textbox, 2, _x, _y, ww, _h); - } else - draw_sprite_stretched(THEME.textbox, 0, _x, _y, ww, _h); + draw_sprite_stretched(THEME.textbox, 2, _x, _y, w, _h); + } else { + draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, w, _h, c_white, 0.5 + 0.5 * interactable); + if(mouse_press(mb_left)) deactivate(); + } draw_set_text(f_p0, align, fa_center, COLORS._main_text); + draw_set_alpha(0.5 + 0.5 * interactable); if(align == fa_center) - draw_text(_x + ww / 2, _y + _h / 2 - ui(2), _text); + draw_text(_x + w / 2, _y + _h / 2 - ui(2), _text); else if(align == fa_left) draw_text(_x + ui(8), _y + _h / 2 - ui(2), _text); - draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + ww - 20, _y + _h / 2, 1, COLORS._main_icon); + draw_set_alpha(1); - hover = false; - active = false; + draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + w - 20, _y + _h / 2, 1, COLORS._main_icon, 0.5 + 0.5 * interactable); + + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); } } \ No newline at end of file diff --git a/scripts/scrollPane/scrollPane.gml b/scripts/scrollPane/scrollPane.gml index 49ac2df6c..2cc4f6fbf 100644 --- a/scripts/scrollPane/scrollPane.gml +++ b/scripts/scrollPane/scrollPane.gml @@ -1,4 +1,4 @@ -function scrollPane(_w, _h, ondraw) constructor { +function scrollPane(_w, _h, ondraw) : widget() constructor { scroll_y = 0; scroll_y_raw = 0; scroll_y_to = 0; @@ -12,11 +12,9 @@ function scrollPane(_w, _h, ondraw) constructor { drawFunc = ondraw; content_h = 0; - hover = false; is_scroll = true; scroll_step = 64; - active = false; is_scrolling = false; scroll_ms = 0; @@ -51,8 +49,9 @@ function scrollPane(_w, _h, ondraw) constructor { if(sc != is_scroll) resize(w, h); - scroll_y_raw = lerp_float(scroll_y_raw, scroll_y_to, 4); - scroll_y = round(scroll_y_raw); + scroll_y_to = clamp(scroll_y_to, -content_h, 0); + scroll_y_raw = lerp_float(scroll_y_raw, scroll_y_to, 4); + scroll_y = round(scroll_y_raw); draw_surface_safe(surface, x, y); if(active && point_in_rectangle(mx, my, 0, 0, surface_w, surface_h)) { @@ -60,8 +59,6 @@ function scrollPane(_w, _h, ondraw) constructor { if(mouse_wheel_up()) scroll_y_to += scroll_step; } - scroll_y_to = clamp(scroll_y_to, -content_h, 0); - if(abs(content_h) > 0) { draw_scroll(x + surface_w + ui(4), y + ui(6), true, surface_h - ui(12), -scroll_y / content_h, surface_h / (surface_h + content_h), COLORS.scrollbar_bg, COLORS.scrollbar_idle, COLORS.scrollbar_hover, x + _mx, y + _my); diff --git a/scripts/slider/slider.gml b/scripts/slider/slider.gml index a8ed3509c..bdb2c6688 100644 --- a/scripts/slider/slider.gml +++ b/scripts/slider/slider.gml @@ -1,7 +1,4 @@ -function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) constructor { - active = false; - hover = false; - +function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) : widget() constructor { minn = _min; curr_minn = _min; maxx = _max; curr_maxx = _max; step = _step; @@ -21,7 +18,16 @@ function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) constr tb_value = new textBox(TEXTBOX_INPUT.float, onApply); + static register = function(parent = noone) { + tb_value.register(parent); + } + static draw = function(_x, _y, _w, _h, _data, _m, tb_w = 64, halign = fa_left, valign = fa_top) { + x = _x; + y = _y; + w = _w; + h = _h; + switch(halign) { case fa_left: _x = _x; break; case fa_center: _x = _x - _w / 2; break; @@ -83,7 +89,6 @@ function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) constr } } - hover = false; - active = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/sliderRange/sliderRange.gml b/scripts/sliderRange/sliderRange.gml index 7861f0315..29d9ba1ea 100644 --- a/scripts/sliderRange/sliderRange.gml +++ b/scripts/sliderRange/sliderRange.gml @@ -1,7 +1,4 @@ -function sliderRange(_min, _max, _step, _onModify) constructor { - active = false; - hover = false; - +function sliderRange(_min, _max, _step, _onModify) : widget() constructor { minn = _min; maxx = _max; step = _step; @@ -20,7 +17,17 @@ function sliderRange(_min, _max, _step, _onModify) constructor { tb_value_min.slide_speed = 0.01; tb_value_max.slide_speed = 0.01; + static register = function(parent = noone) { + tb_value_min.register(parent); + tb_value_max.register(parent); + } + static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + var tb_w = ui(64); var sw = _w - (tb_w + ui(16)) * 2; @@ -80,7 +87,6 @@ function sliderRange(_min, _max, _step, _onModify) constructor { } } - hover = false; - active = false; + resetFocus(); } } \ No newline at end of file diff --git a/scripts/string_decimal/string_decimal.gml b/scripts/string_decimal/string_decimal.gml index c5433bf3c..c04b73ba4 100644 --- a/scripts/string_decimal/string_decimal.gml +++ b/scripts/string_decimal/string_decimal.gml @@ -1,62 +1,17 @@ -function string_real(str) { - var ss = ""; - var i = 1; - - while(i <= string_length(str)) { - var ch = string_char_at(str, i); - switch(ch) { - case "-": - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - ss += ch; - break; - } - i++; - } - return ss; -} - function string_decimal(str) { - var ss = ""; - var i = 1; - var dec = 0; + var neg = string_char_at(str, 1) == "-"; + if(neg) str = string_copy(str, 2, string_length(str) - 1); - if(string_pos("E", str) != 0) return "0"; + var dec = string_pos(".", str); + var pre = string_copy(str, 1, dec - 1); + var pos = string_copy(str, dec + 1, string_length(str) - dec); - while(i <= string_length(str)) { - var ch = string_char_at(str, i); - switch(ch) { - case ".": - if(dec++ > 0) break; - case "-": - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - ss += ch; - break; - } - i++; - } - - return ss; + return (neg? "-" : "") + (dec? string_digits(pre) + "." + string_digits(pos) : string_digits(str)); } function toNumber(str) { + if(is_real(str)) return str; + str = string_decimal(str); if(str == "") return 0; if(str == ".") return 0; diff --git a/scripts/string_eval/string_eval.gml b/scripts/string_eval/string_eval.gml index fa031c2ac..2500f09dc 100644 --- a/scripts/string_eval/string_eval.gml +++ b/scripts/string_eval/string_eval.gml @@ -121,6 +121,7 @@ pres[? "-"] = 1; pres[? "*"] = 2; pres[? "/"] = 2; + pres[? "^"] = 3; pres[? "sin"] = 5; pres[? "cos"] = 5; pres[? "tan"] = 5; @@ -207,6 +208,13 @@ if(ds_stack_size(vl) >= 2) return -ds_stack_pop(vl) + ds_stack_pop(vl); else return -ds_stack_pop(vl); case "*": if(ds_stack_size(vl) >= 2) return ds_stack_pop(vl) * ds_stack_pop(vl); + case "^": + if(ds_stack_size(vl) >= 2) { + var ex = ds_stack_pop(vl); + var bs = ds_stack_pop(vl); + return power(bs, ex); + } + return 1; case "/": if(ds_stack_size(vl) >= 2) { var _d = ds_stack_pop(vl); diff --git a/scripts/surfaceBox/surfaceBox.gml b/scripts/surfaceBox/surfaceBox.gml index 320510ce1..e7ee521b6 100644 --- a/scripts/surfaceBox/surfaceBox.gml +++ b/scripts/surfaceBox/surfaceBox.gml @@ -1,30 +1,42 @@ -function surfaceBox(_onModify, def_path = "") constructor { +function surfaceBox(_onModify, def_path = "") : widget() constructor { onModify = _onModify; self.def_path = def_path; - active = false; - hover = false; open = false; + open_rx = 0; + open_ry = 0; align = fa_center; + static trigger = function() { + open = true; + with(dialogCall(o_dialog_assetbox, x + w + open_rx, y + open_ry)) { + target = other; + gotoDir(other.def_path); + } + } + static draw = function(_x, _y, _w, _h, _surface, _m, _rx, _ry) { + x = _x; + y = _y; + w = _w; + h = _h; + open_rx = _rx; + open_ry = _ry; + if(!open) { draw_sprite_stretched(THEME.textbox, 3, _x, _y, _w, _h); if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { draw_sprite_stretched(THEME.textbox, 1, _x, _y, _w, _h); - if(mouse_press(mb_left, active)) { - open = true; - with(dialogCall(o_dialog_assetbox, _x + _w + _rx, _y + _ry)) { - target = other; - gotoDir(other.def_path); - } - } + if(mouse_press(mb_left, active)) + trigger(); + if(mouse_click(mb_left, active)) draw_sprite_stretched(THEME.textbox, 2, _x, _y, _w, _h); } else { - draw_sprite_stretched(THEME.textbox, 0, _x, _y, _w, _h); + draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable); + if(mouse_press(mb_left)) deactivate(); } var pad = ui(12); @@ -55,7 +67,9 @@ function surfaceBox(_onModify, def_path = "") constructor { draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + _w - ui(20), _y + _h / 2, 1, COLORS._main_icon); } - hover = false; - active = false; + if(WIDGET_CURRENT == self) + draw_sprite_stretched(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6)); + + resetFocus(); } } \ No newline at end of file diff --git a/scripts/surface_functions/surface_functions.gml b/scripts/surface_functions/surface_functions.gml index 72842fa30..718fd1b9f 100644 --- a/scripts/surface_functions/surface_functions.gml +++ b/scripts/surface_functions/surface_functions.gml @@ -17,7 +17,7 @@ function draw_surface_part_ext_safe(surface, _l, _t, _w, _h, _x, _y, _xs = 1, _y function surface_size_to(surface, width, height) { if(!surface_exists(surface)) return false; - if(width <= 1 && height <= 1) return false; + if(width < 1 && height < 1) return false; width = surface_valid_size(width); height = surface_valid_size(height); diff --git a/scripts/testing_script/testing_script.gml b/scripts/testing_script/testing_script.gml index 754007a31..86a403ffa 100644 --- a/scripts/testing_script/testing_script.gml +++ b/scripts/testing_script/testing_script.gml @@ -26,6 +26,20 @@ function __test_update_current_collections() { print("---------- COLLECTION UPDATING ENDED ----------"); } +function __test_update_sample_projects() { + print("---------- PROJECT UPDATING STARTED ----------"); + + for( var i = 0; i < ds_list_size(SAMPLE_PROJECTS); i++ ) { + var _proj = SAMPLE_PROJECTS[| i]; + + print(" > Updating " + _proj.path); + var _map = json_load(_proj.path); + _map[? "version"] = SAVEFILE_VERSION; + json_save(_proj.path, _map); + } + + print("---------- PROJECT UPDATING ENDED ----------"); +} function __test_load_current_collections() { var st = ds_stack_create(); diff --git a/scripts/textArea/textArea.gml b/scripts/textArea/textArea.gml index c8dcbe345..789f57e02 100644 --- a/scripts/textArea/textArea.gml +++ b/scripts/textArea/textArea.gml @@ -3,20 +3,15 @@ enum TEXT_AREA_FORMAT { code } -function textArea(_input, _onModify, _extras = noone) constructor { - active = false; - hover = false; +function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onModify, _extras) constructor { font = f_p0; hide = false; line_width = 1000; auto_update = false; - input = _input; - onModify = _onModify; - extras = _extras; - _input_text_line = []; + _current_text = ""; _input_text = ""; _prev_text = ""; _last_value = ""; @@ -41,9 +36,27 @@ function textArea(_input, _onModify, _extras = noone) constructor { _cl = -1; - static deselect = function() { + static activate = function() { + WIDGET_CURRENT = self; + WIDGET_CURRENT_SCROLL = parent; + parentFocus(); + + _input_text = _current_text; + _last_value = _current_text; + + cursor_pos_x = 0; + cursor_pos_y = 0; + click_block = 1; + KEYBOARD_STRING = ""; + keyboard_lastkey = -1; + + cut_line(); + } + + static deactivate = function() { + if(WIDGET_CURRENT != self) return; apply(); - TEXTBOX_ACTIVE = noone; + WIDGET_CURRENT = noone; UNDO_HOLDING = false; } @@ -236,9 +249,9 @@ function textArea(_input, _onModify, _extras = noone) constructor { } else if(keyboard_check_pressed(vk_escape)) { _input_text = _last_value; cut_line(); - deselect(); + deactivate(); } else if(keyboard_check_pressed(vk_enter) && !key_mod_press(SHIFT)) { - deselect(); + deactivate(); } } @@ -252,6 +265,7 @@ function textArea(_input, _onModify, _extras = noone) constructor { var target = -999; draw_set_text(font, fa_left, fa_top, COLORS._main_text); + draw_set_alpha(0.5 + 0.5 * interactable) var ch_x = _x; var ch_y = _y; @@ -273,6 +287,8 @@ function textArea(_input, _onModify, _extras = noone) constructor { ch_y += line_height(); } + draw_set_alpha(1); + if(_mx != -1 && _my != -1) { var char_run = 0, _l, _ch_w, _ch_h, _str, _chr; var sx = _x; @@ -323,6 +339,12 @@ function textArea(_input, _onModify, _extras = noone) constructor { } static draw = function(_x, _y, _w, _h, _text, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + _current_text = _text; + if(extras && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -360,7 +382,7 @@ function textArea(_input, _onModify, _extras = noone) constructor { } } - if(self == TEXTBOX_ACTIVE) { + if(self == WIDGET_CURRENT) { draw_set_text(font, fa_left, fa_top, COLORS._main_text); draw_sprite_stretched(THEME.textbox, 2, _x, _y, _w, hh); editText(); @@ -536,28 +558,16 @@ function textArea(_input, _onModify, _extras = noone) constructor { #endregion if(!point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + hh) && mouse_press(mb_left)) { - deselect(); + deactivate(); } } else { if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + hh)) { if(hide) draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, hh, c_white, 0.5); else - draw_sprite_stretched(THEME.textbox, 1, _x, _y, _w, hh); - if(mouse_press(mb_left, active)) { - cursor_pos_x = 0; - cursor_pos_y = 0; - - TEXTBOX_ACTIVE = self; - click_block = 1; - KEYBOARD_STRING = ""; - keyboard_lastkey = -1; - - _input_text = _text; - _last_value = _text; - - cut_line(); - } + draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, hh, c_white, 0.5 + 0.5 * interactable); + if(mouse_press(mb_left, active)) + activate(); } else if(!hide) { draw_sprite_stretched(THEME.textbox, 0, _x, _y, _w, hh); } @@ -565,8 +575,7 @@ function textArea(_input, _onModify, _extras = noone) constructor { display_text(tx, _y + ui(7), string(_text), _w - ui(4)); } - hover = false; - active = false; + resetFocus(); return hh; } diff --git a/scripts/textBox/textBox.gml b/scripts/textBox/textBox.gml index d85263841..5d7a17a0c 100644 --- a/scripts/textBox/textBox.gml +++ b/scripts/textBox/textBox.gml @@ -4,9 +4,7 @@ enum TEXTBOX_INPUT { float } -function textBox(_input, _onModify, _extras = noone) constructor { - active = false; - hover = false; +function textBox(_input, _onModify, _extras = noone) : textInput(_input, _onModify, _extras) constructor { align = fa_right; hide = false; font = noone; @@ -23,10 +21,7 @@ function textBox(_input, _onModify, _extras = noone) constructor { starting_char = 1; - input = _input; - onModify = _onModify; - extras = _extras; - + _current_text = ""; _input_text = ""; _last_text = ""; @@ -46,6 +41,28 @@ function textBox(_input, _onModify, _extras = noone) constructor { text_surface = surface_create(1, 1); + static activate = function() { + WIDGET_CURRENT = self; + WIDGET_CURRENT_SCROLL = parent; + parentFocus(); + + _input_text = _current_text; + _last_text = _current_text; + + cursor_select = 0; + cursor = string_length(_current_text); + + click_block = 1; + KEYBOARD_STRING = ""; + keyboard_lastkey = -1; + } + + static deactivate = function() { + apply(); + WIDGET_CURRENT = noone; + UNDO_HOLDING = false; + } + static apply = function() { var _input_text_current = _input_text; @@ -173,18 +190,16 @@ function textBox(_input, _onModify, _extras = noone) constructor { move_cursor(string_length(_input_text) - cursor); } else if(keyboard_check_pressed(vk_escape)) { _input_text = _last_text; + deactivate(); + } else if(keyboard_check_pressed(vk_enter)) + deactivate(); + else if(auto_update && keyboard_check_pressed(vk_anykey)) apply(); - TEXTBOX_ACTIVE = noone; - } else if(keyboard_check_pressed(vk_enter)) { - apply(); - TEXTBOX_ACTIVE = noone; - } else if(auto_update && keyboard_check_pressed(vk_anykey)) { - apply(); - } } static display_text = function(_x, _y, _text, _w, _format, _m = -1) { BLEND_OVERRIDE + if(!interactable) draw_set_alpha(0.5); switch(_format) { case VALUE_DISPLAY._default : @@ -235,6 +250,7 @@ function textBox(_input, _onModify, _extras = noone) constructor { break; } + draw_set_alpha(1); BLEND_NORMAL var _xx = _x, _ch, _chw; @@ -268,6 +284,12 @@ function textBox(_input, _onModify, _extras = noone) constructor { } static draw = function(_x, _y, _w, _h, _text, _m, _format = VALUE_DISPLAY._default, halign = fa_left, valign = fa_top) { + x = _x; + y = _y; + w = _w; + h = _h; + _current_text = _text; + if(extras && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -316,20 +338,14 @@ function textBox(_input, _onModify, _extras = noone) constructor { } setMouseWrap(); - if(mouse_release(mb_left)) { - UNDO_HOLDING = false; - TEXTBOX_ACTIVE = noone; - } + if(mouse_release(mb_left)) + deactivate(); } if(mouse_release(mb_left)) sliding = 0; } - - var _dpX = _x + ui(8); - var _dpY = _y; - switch(halign) { case fa_left: _x = _x; break; case fa_center: _x = _x - _w / 2; break; @@ -342,6 +358,9 @@ function textBox(_input, _onModify, _extras = noone) constructor { case fa_bottom: _y = _y - _h; break; } + var _dpX = _x + ui(8); + var _dpY = _y; + draw_set_text(font == noone? f_p0 : font, fa_left, fa_top); var tx = _x; @@ -355,7 +374,7 @@ function textBox(_input, _onModify, _extras = noone) constructor { draw_sprite_stretched(THEME.textbox, 3, _x, _y, _w, _h); disp_x = lerp_float(disp_x, disp_x_to, 5); - if(self == TEXTBOX_ACTIVE) { + if(self == WIDGET_CURRENT) { draw_sprite_stretched(THEME.textbox, sprite_index == -1? 2 : sprite_index, _x, _y, _w, _h); editText(); @@ -364,19 +383,19 @@ function textBox(_input, _onModify, _extras = noone) constructor { if(keyboard_check(vk_shift)) { if(cursor_select == -1) cursor_select = cursor; - } else - cursor_select = -1; - - move_cursor(-1); + } else if(cursor_select != -1) + cursor_select = -1; + else + move_cursor(-1); } if(KEYBOARD_PRESSED == vk_right) { if(keyboard_check(vk_shift)) { if(cursor_select == -1) cursor_select = cursor; - } else + } else if(cursor_select != -1) cursor_select = -1; - - move_cursor(1); + else + move_cursor(1); } #endregion @@ -473,10 +492,8 @@ function textBox(_input, _onModify, _extras = noone) constructor { disp_x_to = clamp(disp_x_to, disp_x_min, disp_x_max); - if(!point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h) && mouse_press(mb_left)) { - apply(); - TEXTBOX_ACTIVE = noone; - } + if(!point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h) && mouse_press(mb_left)) + deactivate(); } else { var txt = getDisplayText(_text); draw_set_text(font == noone? f_p0 : font, fa_left, fa_center); @@ -494,18 +511,10 @@ function textBox(_input, _onModify, _extras = noone) constructor { draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, _h, c_white, 0.5); else draw_sprite_stretched(THEME.textbox, 1, _x, _y, _w, _h); - if(mouse_press(mb_left, active)) { - TEXTBOX_ACTIVE = self; - click_block = 1; - KEYBOARD_STRING = ""; - keyboard_lastkey = -1; - - _input_text = _text; - _last_text = _text; - } - } else if(!hide) { - draw_sprite_stretched(THEME.textbox, 0, _x, _y, _w, _h); - } + if(mouse_press(mb_left, active)) + activate(); + } else if(!hide) + draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable); if(slidable) { if(_w > ui(64)) @@ -528,8 +537,7 @@ function textBox(_input, _onModify, _extras = noone) constructor { draw_surface(text_surface, _dpX, _dpY); } - hover = false; - active = false; + resetFocus(); sprite_index = -1; return _h; diff --git a/scripts/textInput/textInput.gml b/scripts/textInput/textInput.gml new file mode 100644 index 000000000..b271f9b54 --- /dev/null +++ b/scripts/textInput/textInput.gml @@ -0,0 +1,5 @@ +function textInput(_input, _onModify, _extras = noone) : widget() constructor { + input = _input; + onModify = _onModify; + extras = _extras; +} \ No newline at end of file diff --git a/scripts/textInput/textInput.yy b/scripts/textInput/textInput.yy new file mode 100644 index 000000000..459c2a544 --- /dev/null +++ b/scripts/textInput/textInput.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "textInput", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "widgets", + "path": "folders/widgets.yy", + }, +} \ No newline at end of file diff --git a/scripts/vectorBox/vectorBox.gml b/scripts/vectorBox/vectorBox.gml index b5665ac44..38e618b50 100644 --- a/scripts/vectorBox/vectorBox.gml +++ b/scripts/vectorBox/vectorBox.gml @@ -1,10 +1,8 @@ -function vectorBox(_size, _type, _onModify, _unit = noone) constructor { +function vectorBox(_size, _type, _onModify, _unit = noone) : widget() constructor { size = _size; onModify = _onModify; unit = _unit; - hover = false; - active = false; linked = false; b_link = button(function() { linked = !linked; }); b_link.icon = THEME.value_link; @@ -32,7 +30,25 @@ function vectorBox(_size, _type, _onModify, _unit = noone) constructor { tb[i].slidable = true; } + static register = function(parent = noone) { + b_link.register(parent); + + for( var i = 0; i < size; i++ ) + tb[i].register(parent); + + if(extras) + extras.register(parent); + + if(unit != noone && unit.reference != noone) + unit.triggerButton.register(parent); + } + static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h; + if(extras && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -75,7 +91,7 @@ function vectorBox(_size, _type, _onModify, _unit = noone) constructor { draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_sub); draw_text(bx + ui(8), _y + _h / 2, axis[i]); } - hover = false; - active = false; + + resetFocus(); } } \ No newline at end of file diff --git a/scripts/vectorRangeBox/vectorRangeBox.gml b/scripts/vectorRangeBox/vectorRangeBox.gml index 94fe66f4c..d2c38d6cf 100644 --- a/scripts/vectorRangeBox/vectorRangeBox.gml +++ b/scripts/vectorRangeBox/vectorRangeBox.gml @@ -1,17 +1,28 @@ -function vectorRangeBox(_size, _type, _onModify, _unit = noone) constructor { +function vectorRangeBox(_size, _type, _onModify, _unit = noone) : widget() constructor { size = _size; onModify = _onModify; unit = _unit; - hover = false; - active = false; + linked = false; + b_link = button(function() { linked = !linked; }); + b_link.icon = THEME.value_link; + + onModifyIndex = function(index, val) { + if(linked) { + onModify(floor(index / 2) * 2 + 0, toNumber(val)); + onModify(floor(index / 2) * 2 + 1, toNumber(val)); + return; + } + + onModify(index, toNumber(val)); + } axis = [ "x", "y", "z", "w"]; label = []; - onModifySingle[0] = function(val) { onModify(0, toNumber(val)); } - onModifySingle[1] = function(val) { onModify(1, toNumber(val)); } - onModifySingle[2] = function(val) { onModify(2, toNumber(val)); } - onModifySingle[3] = function(val) { onModify(3, toNumber(val)); } + onModifySingle[0] = function(val) { onModifyIndex(0, toNumber(val)); } + onModifySingle[1] = function(val) { onModifyIndex(1, toNumber(val)); } + onModifySingle[2] = function(val) { onModifyIndex(2, toNumber(val)); } + onModifySingle[3] = function(val) { onModifyIndex(3, toNumber(val)); } extras = -1; @@ -22,7 +33,33 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) constructor { label[i] = (i % 2? "max " : "min ") + axis[floor(i / 2)]; } + static register = function(parent = noone) { + b_link.register(parent); + + for( var i = 0; i < size; i++ ) + tb[i].register(parent); + if(extras) extras.register(parent); + } + static draw = function(_x, _y, _w, _h, _data, _m) { + x = _x; + y = _y; + w = _w; + h = _h * 2 + ui(4); + + b_link.hover = hover; + b_link.active = active; + b_link.icon_index = linked; + b_link.icon_blend = linked? COLORS._main_accent : COLORS._main_icon; + b_link.tooltip = linked? "Unlink axis" : "Link axis"; + + var bx = _x; + var by = _y + _h / 2 - ui(32 / 2); + b_link.draw(bx + ui(4), by + ui(4), ui(24), ui(24), _m, THEME.button_hide); + + _x += ui(28); + _w -= ui(28); + if(extras && instanceof(extras) == "buttonClass") { extras.hover = hover; extras.active = active; @@ -43,8 +80,8 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) constructor { draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_sub); draw_text(bx + ui(8), by + _h / 2, label[i]); } - hover = false; - active = false; + + resetFocus(); return _h * 2 + ui(4); } diff --git a/scripts/widget/widget.gml b/scripts/widget/widget.gml new file mode 100644 index 000000000..3656a256c --- /dev/null +++ b/scripts/widget/widget.gml @@ -0,0 +1,55 @@ +function widget() constructor { + active = false; + hover = false; + parent = noone; + interactable = true; + + x = 0; + y = 0; + w = 0; + h = 0; + + static register = function(parent = noone) { + if(!interactable) return; + + array_push(WIDGET_ACTIVE, self); + self.parent = parent; + } + + static trigger = function() { } + + static parentFocus = function() { + if(parent == noone) return; + + if(y < 0) + parent.scroll_y_to += abs(y) + ui(16); + else if(y + ui(16) > parent.surface_h) + parent.scroll_y_to -= abs(parent.surface_h - y) + h + ui(16); + } + + static activate = function() { + if(!interactable) return; + + WIDGET_CURRENT = self; + WIDGET_CURRENT_SCROLL = parent; + parentFocus(); + } + + static deactivate = function() { + if(WIDGET_CURRENT != self) return; + WIDGET_CURRENT = noone; + WIDGET_CURRENT_SCROLL = noone; + } + + static setFocus = function(active = false, hover = false) { + if(!interactable) return; + + self.active = active; + self.hover = hover; + } + + static resetFocus = function() { + active = false; + hover = false; + } +} \ No newline at end of file diff --git a/scripts/widget/widget.yy b/scripts/widget/widget.yy new file mode 100644 index 000000000..bec337f6f --- /dev/null +++ b/scripts/widget/widget.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "widget", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "widgets", + "path": "folders/widgets.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_average/sh_average.fsh b/shaders/sh_average/sh_average.fsh new file mode 100644 index 000000000..26ebbc9f1 --- /dev/null +++ b/shaders/sh_average/sh_average.fsh @@ -0,0 +1,23 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; + +void main() { + vec2 texel = 1. / dimension; + + vec4 c0 = texture2D( gm_BaseTexture, v_vTexcoord * 2. + vec2( 0., 0.) ); + vec4 c1 = texture2D( gm_BaseTexture, v_vTexcoord * 2. + vec2(texel.x, 0.) ); + vec4 c2 = texture2D( gm_BaseTexture, v_vTexcoord * 2. + vec2( 0., texel.y) ); + vec4 c3 = texture2D( gm_BaseTexture, v_vTexcoord * 2. + vec2(texel.x, texel.y) ); + + c0.rgb *= c0.a; + c1.rgb *= c1.a; + c2.rgb *= c2.a; + c3.rgb *= c3.a; + + gl_FragColor = (c0 + c1 + c2 + c3) / 4.; +} diff --git a/shaders/sh_average/sh_average.vsh b/shaders/sh_average/sh_average.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_average/sh_average.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_average/sh_average.yy b/shaders/sh_average/sh_average.yy new file mode 100644 index 000000000..50f2043dc --- /dev/null +++ b/shaders/sh_average/sh_average.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_average", + "type": 1, + "parent": { + "name": "blur", + "path": "folders/shader/blur.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_bevel/sh_bevel.fsh b/shaders/sh_bevel/sh_bevel.fsh index 14c2ee7b2..6800d947c 100644 --- a/shaders/sh_bevel/sh_bevel.fsh +++ b/shaders/sh_bevel/sh_bevel.fsh @@ -14,36 +14,61 @@ uniform float height; float bright(in vec4 col) { return dot(col.rgb, vec3(0.2126, 0.7152, 0.0722)) * col.a; } + void main() { vec2 pixelStep = 1. / dimension; float tauDiv = TAU / 32.; vec4 col = texture2D(gm_BaseTexture, v_vTexcoord); + vec4 col1; gl_FragColor = col; bool done = false; + float b0 = bright(col); float shift_angle = atan(shift.y, shift.x); float shift_distance = length(shift); - float min_distance = 999.; + float slope_distance = height * b0; + float max_distance = height; - if(bright(col) > 0.) { - for(float i = 1.; i < height; i++) { - for(float j = 0.; j < 32.; j++) { - float ang = j * tauDiv; - float added_distance = 1. + cos(abs(shift_angle - ang)) * shift_distance; + if(b0 == 0.) return; + + float b1 = b0; + float ang, added_distance, _b1; + vec2 shf, pxs; + + for(float i = 1.; i < 16.; i++) { + if(i >= height) break; + for(float j = 0.; j < 32.; j++) { + ang = j * tauDiv; + added_distance = 1. + cos(abs(shift_angle - ang)) * shift_distance; - vec2 shf = vec2( cos(ang), sin(ang)) * (i * added_distance) / scale; + shf = vec2( cos(ang), sin(ang)) * (i * added_distance) / scale; + pxs = v_vTexcoord + shf * pixelStep; - vec2 pxs = v_vTexcoord + shf * pixelStep; - vec4 sam = v_vColour * texture2D( gm_BaseTexture, pxs ); - if(bright(sam) < 1. || pxs.x < 0. || pxs.y < 0. || pxs.x > 1. || pxs.y > 1.) { - float dist1 = i; - min_distance = min(min_distance, dist1); - break; - } + if(pxs.x < 0. || pxs.y < 0. || pxs.x > 1. || pxs.y > 1.) + _b1 = 0.; + else { + col1 = texture2D( gm_BaseTexture, pxs ); + _b1 = bright(col1); + } + + if(_b1 < b1) { + slope_distance = min(slope_distance, i); + max_distance = min(max_distance, (b0 - _b1) * height); + b1 = min(b1, _b1); + + i = height; + break; } } + } - gl_FragColor = vec4(vec3(min_distance / height), col.a); + if(max_distance == 0.) + gl_FragColor = vec4(vec3(b0), col.a); + else { + float sl = clamp(mix(b1, b0, slope_distance / max_distance), 0., 1.); + gl_FragColor = vec4(vec3(sl), col.a); + //gl_FragColor = vec4(slope_distance / height, max_distance / height, sl, col.a); + //gl_FragColor = vec4(b0, b1, sl, col.a); } } diff --git a/shaders/sh_blend_normal_dim/sh_blend_normal_dim.fsh b/shaders/sh_blend_normal_dim/sh_blend_normal_dim.fsh index 274e4d4c6..a51e35008 100644 --- a/shaders/sh_blend_normal_dim/sh_blend_normal_dim.fsh +++ b/shaders/sh_blend_normal_dim/sh_blend_normal_dim.fsh @@ -20,7 +20,7 @@ void main() { pos.y = center.y + delta.x * sin(rotation) + delta.y * cos(rotation); if(pos.x >= 0. && pos.x <= 1. && pos.y >= 0. && pos.y <= 1.) { - vec4 _col0 = texture2D( fore, pos); + vec4 _col0 = v_vColour * texture2D( fore, pos); float al = _col0.a + _col1.a * (1. - _col0.a); vec4 res = ((_col0 * _col0.a) + (_col1 * _col1.a * (1. - _col0.a))) / al; diff --git a/shaders/sh_blur_gaussian/sh_blur_gaussian.fsh b/shaders/sh_blur_gaussian/sh_blur_gaussian.fsh index 43e6633c6..d8c12c5d4 100644 --- a/shaders/sh_blur_gaussian/sh_blur_gaussian.fsh +++ b/shaders/sh_blur_gaussian/sh_blur_gaussian.fsh @@ -4,78 +4,64 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; -uniform int useMask; -uniform sampler2D mask; - uniform vec2 dimension; uniform int horizontal; uniform float weight[32]; uniform int size; -uniform int clamp_border; +uniform int sampleMode; -//float weightTotal = 0.; +uniform int overrideColor; +uniform vec4 overColor; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(gm_BaseTexture, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(gm_BaseTexture, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(gm_BaseTexture, fract(pos)); + + return vec4(0.); +} vec4 sample(in vec2 pos, in int index) { - vec4 col = texture2D( gm_BaseTexture, pos ); - //weightTotal += col.a * weight[index]; - - return vec4(col.rgb * col.a, col.a) * weight[index]; + vec4 col = sampleTexture( pos ); + return vec4(col.rgb, col.a) * weight[index]; } void main() { - vec2 tex_offset = 1.0 / dimension; + vec2 tex_offset = 1.0 / dimension, pos; vec4 result = sample( v_vTexcoord, 0 ); vec4 samp; if(horizontal == 1) { for(int i = 1; i < size; i++) { - vec2 pos = vec2(tex_offset.x * float(i), 0.0); + pos = vec2(tex_offset.x * float(i), 0.0); - vec2 s_pos = v_vTexcoord + pos; - if(s_pos.x <= 1.) { - samp = sample( s_pos, i ); - result += samp; - } else if(clamp_border == 1) { - samp = sample( vec2(1., v_vTexcoord.y), i ); - result += samp; - } + samp = sample( v_vTexcoord + pos, i ); + result += samp; - s_pos = v_vTexcoord - pos; - if(s_pos.x >= 0.) { - samp = sample( s_pos, i ); - result += samp; - } else if(clamp_border == 1) { - samp = sample( vec2(0., v_vTexcoord.y), i ); - result += samp; - } + samp = sample( v_vTexcoord - pos, i ); + result += samp; } } else { for(int i = 1; i < size; i++) { - vec2 pos = vec2(0.0, tex_offset.y * float(i)); + pos = vec2(0.0, tex_offset.y * float(i)); - vec2 s_pos = v_vTexcoord + pos; - if(s_pos.y <= 1.) { - samp = sample( s_pos, i ); - result += samp; - } else if(clamp_border == 1) { - samp = sample( vec2(v_vTexcoord.x, 1.), i ); - result += samp; - } + samp = sample( v_vTexcoord + pos, i ); + result += samp; - s_pos = v_vTexcoord - pos; - if(s_pos.y >= 0.) { - samp = sample( s_pos, i ); - result += samp; - } else if(clamp_border == 1) { - samp = sample( vec2(v_vTexcoord.x, 0.), i ); - result += samp; - } + samp = sample( v_vTexcoord - pos, i ); + result += samp; } } - vec4 res = result; - - gl_FragColor = res; + gl_FragColor = result; + if(overrideColor == 1) + gl_FragColor.rgb = overColor.rgb; } diff --git a/shaders/sh_blur_radial/sh_blur_radial.fsh b/shaders/sh_blur_radial/sh_blur_radial.fsh index 43db7fc82..15164a09a 100644 --- a/shaders/sh_blur_radial/sh_blur_radial.fsh +++ b/shaders/sh_blur_radial/sh_blur_radial.fsh @@ -19,7 +19,7 @@ float sampleMask() { } vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_blur_simple/sh_blur_simple.fsh b/shaders/sh_blur_simple/sh_blur_simple.fsh index f1a2bd08c..3dd71c511 100644 --- a/shaders/sh_blur_simple/sh_blur_simple.fsh +++ b/shaders/sh_blur_simple/sh_blur_simple.fsh @@ -11,6 +11,9 @@ uniform int useMask; uniform sampler2D mask; uniform int sampleMode; +uniform int overrideColor; +uniform vec4 overColor; + float sampleMask() { if(useMask == 0) return 1.; vec4 m = texture2D( mask, v_vTexcoord ); @@ -18,7 +21,7 @@ float sampleMask() { } vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) @@ -64,4 +67,6 @@ void main() { clr /= totalWeight; gl_FragColor = clr; + if(overrideColor == 1) + gl_FragColor.rgb = overColor.rgb; } diff --git a/shaders/sh_camera/sh_camera.fsh b/shaders/sh_camera/sh_camera.fsh new file mode 100644 index 000000000..9785214ba --- /dev/null +++ b/shaders/sh_camera/sh_camera.fsh @@ -0,0 +1,32 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform sampler2D scene; +uniform vec2 scnDimension; +uniform vec2 camDimension; +uniform vec2 position; +uniform float zoom; +uniform float blur; +uniform int sampleMode; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(scene, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(scene, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(scene, fract(pos)); + + return vec4(0.); +} + +void main() { + vec2 pos = position + (v_vTexcoord - vec2(.5)) * (camDimension / scnDimension) * zoom; + gl_FragColor = sampleTexture( pos ); +} diff --git a/shaders/sh_camera/sh_camera.vsh b/shaders/sh_camera/sh_camera.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_camera/sh_camera.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_camera/sh_camera.yy b/shaders/sh_camera/sh_camera.yy new file mode 100644 index 000000000..b639ab5ca --- /dev/null +++ b/shaders/sh_camera/sh_camera.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_camera", + "type": 1, + "parent": { + "name": "shader", + "path": "folders/shader.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_channel_B_grey/sh_channel_B_grey.fsh b/shaders/sh_channel_B_grey/sh_channel_B_grey.fsh new file mode 100644 index 000000000..6df9637a2 --- /dev/null +++ b/shaders/sh_channel_B_grey/sh_channel_B_grey.fsh @@ -0,0 +1,10 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 col = texture2D( gm_BaseTexture, v_vTexcoord); + gl_FragColor = vec4(col.b, col.b, col.b, col.a); +} diff --git a/shaders/sh_channel_B_grey/sh_channel_B_grey.vsh b/shaders/sh_channel_B_grey/sh_channel_B_grey.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_channel_B_grey/sh_channel_B_grey.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_channel_B_grey/sh_channel_B_grey.yy b/shaders/sh_channel_B_grey/sh_channel_B_grey.yy new file mode 100644 index 000000000..d0e3a5694 --- /dev/null +++ b/shaders/sh_channel_B_grey/sh_channel_B_grey.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_channel_B_grey", + "type": 1, + "parent": { + "name": "channels", + "path": "folders/shader/channels.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_channel_B_grey/sh_channel_G.yy b/shaders/sh_channel_B_grey/sh_channel_G.yy new file mode 100644 index 000000000..2629b81c5 --- /dev/null +++ b/shaders/sh_channel_B_grey/sh_channel_G.yy @@ -0,0 +1,11 @@ +{ + "type": 1, + "parent": { + "name": "filter", + "path": "folders/shader/filter.yy", + }, + "resourceVersion": "1.0", + "name": "sh_channel_G", + "tags": [], + "resourceType": "GMShader", +} \ No newline at end of file diff --git a/shaders/sh_channel_B_grey/sh_channel_R.yy b/shaders/sh_channel_B_grey/sh_channel_R.yy new file mode 100644 index 000000000..adb7e52c2 --- /dev/null +++ b/shaders/sh_channel_B_grey/sh_channel_R.yy @@ -0,0 +1,11 @@ +{ + "type": 1, + "parent": { + "name": "filter", + "path": "folders/shader/filter.yy", + }, + "resourceVersion": "1.0", + "name": "sh_channel_R", + "tags": [], + "resourceType": "GMShader", +} \ No newline at end of file diff --git a/shaders/sh_channel_G_grey/sh_channel_G_grey.fsh b/shaders/sh_channel_G_grey/sh_channel_G_grey.fsh new file mode 100644 index 000000000..204b0d80c --- /dev/null +++ b/shaders/sh_channel_G_grey/sh_channel_G_grey.fsh @@ -0,0 +1,10 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 col = texture2D( gm_BaseTexture, v_vTexcoord); + gl_FragColor = vec4(col.g, col.g, col.g, col.a); +} diff --git a/shaders/sh_channel_G_grey/sh_channel_G_grey.vsh b/shaders/sh_channel_G_grey/sh_channel_G_grey.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_channel_G_grey/sh_channel_G_grey.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_channel_G_grey/sh_channel_G_grey.yy b/shaders/sh_channel_G_grey/sh_channel_G_grey.yy new file mode 100644 index 000000000..e677409fb --- /dev/null +++ b/shaders/sh_channel_G_grey/sh_channel_G_grey.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_channel_G_grey", + "type": 1, + "parent": { + "name": "channels", + "path": "folders/shader/channels.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_channel_G_grey/sh_channel_R.yy b/shaders/sh_channel_G_grey/sh_channel_R.yy new file mode 100644 index 000000000..adb7e52c2 --- /dev/null +++ b/shaders/sh_channel_G_grey/sh_channel_R.yy @@ -0,0 +1,11 @@ +{ + "type": 1, + "parent": { + "name": "filter", + "path": "folders/shader/filter.yy", + }, + "resourceVersion": "1.0", + "name": "sh_channel_R", + "tags": [], + "resourceType": "GMShader", +} \ No newline at end of file diff --git a/shaders/sh_channel_R_grey/sh_channel_R_grey.fsh b/shaders/sh_channel_R_grey/sh_channel_R_grey.fsh new file mode 100644 index 000000000..94cdb1984 --- /dev/null +++ b/shaders/sh_channel_R_grey/sh_channel_R_grey.fsh @@ -0,0 +1,10 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 col = texture2D( gm_BaseTexture, v_vTexcoord); + gl_FragColor = vec4(col.r, col.r, col.r, col.a); +} diff --git a/shaders/sh_channel_R_grey/sh_channel_R_grey.vsh b/shaders/sh_channel_R_grey/sh_channel_R_grey.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_channel_R_grey/sh_channel_R_grey.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_channel_R_grey/sh_channel_R_grey.yy b/shaders/sh_channel_R_grey/sh_channel_R_grey.yy new file mode 100644 index 000000000..8ced1f912 --- /dev/null +++ b/shaders/sh_channel_R_grey/sh_channel_R_grey.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_channel_R_grey", + "type": 1, + "parent": { + "name": "channels", + "path": "folders/shader/channels.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_convolution/sh_convolution.fsh b/shaders/sh_convolution/sh_convolution.fsh index 76ad011da..d86039832 100644 --- a/shaders/sh_convolution/sh_convolution.fsh +++ b/shaders/sh_convolution/sh_convolution.fsh @@ -6,20 +6,35 @@ varying vec4 v_vColour; uniform vec2 dimension; uniform float kernel[9]; +uniform int sampleMode; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(gm_BaseTexture, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(gm_BaseTexture, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(gm_BaseTexture, fract(pos)); + + return vec4(0.); +} void main() { vec2 tex = 1. / dimension; - vec4 c = + kernel[0] * texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tex.x, -tex.y) ) - + kernel[1] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( 0., -tex.y) ) - + kernel[2] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( tex.x, -tex.y) ) + vec4 c = + kernel[0] * sampleTexture( v_vTexcoord + vec2(-tex.x, -tex.y) ) + + kernel[1] * sampleTexture( v_vTexcoord + vec2( 0., -tex.y) ) + + kernel[2] * sampleTexture( v_vTexcoord + vec2( tex.x, -tex.y) ) - + kernel[3] * texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tex.x, 0.) ) - + kernel[4] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( 0., 0.) ) - + kernel[5] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( tex.x, 0.) ) + + kernel[3] * sampleTexture( v_vTexcoord + vec2(-tex.x, 0.) ) + + kernel[4] * sampleTexture( v_vTexcoord + vec2( 0., 0.) ) + + kernel[5] * sampleTexture( v_vTexcoord + vec2( tex.x, 0.) ) - + kernel[6] * texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tex.x, tex.y) ) - + kernel[7] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( 0., tex.y) ) - + kernel[8] * texture2D( gm_BaseTexture, v_vTexcoord + vec2( tex.x, tex.y) ); + + kernel[6] * sampleTexture( v_vTexcoord + vec2(-tex.x, tex.y) ) + + kernel[7] * sampleTexture( v_vTexcoord + vec2( 0., tex.y) ) + + kernel[8] * sampleTexture( v_vTexcoord + vec2( tex.x, tex.y) ); gl_FragColor = vec4(c.rgb, 1.); } diff --git a/shaders/sh_dilate/sh_dilate.fsh b/shaders/sh_dilate/sh_dilate.fsh index 00fbf8fd0..7a74bfb5a 100644 --- a/shaders/sh_dilate/sh_dilate.fsh +++ b/shaders/sh_dilate/sh_dilate.fsh @@ -11,7 +11,7 @@ uniform float radius; uniform int sampleMode; vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_displace/sh_displace.fsh b/shaders/sh_displace/sh_displace.fsh index 6ee63412c..ed91e8f1b 100644 --- a/shaders/sh_displace/sh_displace.fsh +++ b/shaders/sh_displace/sh_displace.fsh @@ -21,7 +21,7 @@ float bright(in vec4 col) { } vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_edge_detect/sh_edge_detect.fsh b/shaders/sh_edge_detect/sh_edge_detect.fsh index 3b3caf239..aa7e2dec8 100644 --- a/shaders/sh_edge_detect/sh_edge_detect.fsh +++ b/shaders/sh_edge_detect/sh_edge_detect.fsh @@ -6,6 +6,21 @@ varying vec4 v_vColour; uniform vec2 dimension; uniform int filter; +uniform int sampleMode; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(gm_BaseTexture, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(gm_BaseTexture, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(gm_BaseTexture, fract(pos)); + + return vec4(0.); +} const mat3 sobel = mat3( -1., -2., -1., 0., 0., 0., @@ -27,7 +42,7 @@ float bright(in vec4 col) { void main() { vec2 texel = vec2(1.) / dimension; - vec4 point = texture2D( gm_BaseTexture, v_vTexcoord ); + vec4 point = sampleTexture( v_vTexcoord ); vec4 hColor = vec4(0.); vec4 vColor = vec4(0.); @@ -40,13 +55,13 @@ void main() { int jj = int(1. + j); if(filter == 0) { - hColor += texture2D( gm_BaseTexture, pxs ) * sobel[jj][ii]; - vColor += texture2D( gm_BaseTexture, pxs ) * sobel[ii][jj]; + hColor += sampleTexture( pxs ) * sobel[jj][ii]; + vColor += sampleTexture( pxs ) * sobel[ii][jj]; } else if(filter == 1) { - hColor += texture2D( gm_BaseTexture, pxs ) * prewit[jj][ii]; - vColor += texture2D( gm_BaseTexture, pxs ) * prewit[ii][jj]; + hColor += sampleTexture( pxs ) * prewit[jj][ii]; + vColor += sampleTexture( pxs ) * prewit[ii][jj]; } else if(filter == 2) { - hColor += texture2D( gm_BaseTexture, pxs ) * laplac[jj][ii]; + hColor += sampleTexture( pxs ) * laplac[jj][ii]; } } } diff --git a/shaders/sh_mirror/sh_mirror.vsh b/shaders/sh_mirror/sh_mirror.vsh index 3900c20f4..d52494a26 100644 --- a/shaders/sh_mirror/sh_mirror.vsh +++ b/shaders/sh_mirror/sh_mirror.vsh @@ -1,4 +1,5 @@ // +// // Simple passthrough vertex shader // attribute vec3 in_Position; // (x,y,z) diff --git a/shaders/sh_mirror_mask/sh_mirror_mask.fsh b/shaders/sh_mirror_mask/sh_mirror_mask.fsh new file mode 100644 index 000000000..54b1338d9 --- /dev/null +++ b/shaders/sh_mirror_mask/sh_mirror_mask.fsh @@ -0,0 +1,21 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +#define TAU 6.28318 +#define pi1 3.14159 +#define pi2 1.57079 + +uniform vec2 dimension; +uniform vec2 position; +uniform float angle; + +void main() { + vec2 pos = v_vTexcoord; + vec2 pixel_pos = v_vTexcoord * dimension; + float _angle; + + _angle = atan((pixel_pos.y - position.y), (pixel_pos.x - position.x)) + angle; + _angle = TAU - (_angle - floor(_angle / TAU) * TAU); + + gl_FragColor = (_angle < pi1)? vec4(vec3(1.), 1.) : vec4(vec3(0.), 1.); +} diff --git a/shaders/sh_mirror_mask/sh_mirror_mask.vsh b/shaders/sh_mirror_mask/sh_mirror_mask.vsh new file mode 100644 index 000000000..d52494a26 --- /dev/null +++ b/shaders/sh_mirror_mask/sh_mirror_mask.vsh @@ -0,0 +1,20 @@ +// +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_mirror_mask/sh_mirror_mask.yy b/shaders/sh_mirror_mask/sh_mirror_mask.yy new file mode 100644 index 000000000..0154ba9dd --- /dev/null +++ b/shaders/sh_mirror_mask/sh_mirror_mask.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_mirror_mask", + "type": 1, + "parent": { + "name": "warp", + "path": "folders/shader/warp.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.fsh b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.fsh index f5ce01b45..d19a0f196 100644 --- a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.fsh +++ b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.fsh @@ -10,6 +10,21 @@ uniform vec2 scale; uniform float seed; uniform int useSampler; +uniform int sampleMode; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(gm_BaseTexture, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(gm_BaseTexture, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(gm_BaseTexture, fract(pos)); + + return vec4(0.); +} float random (in vec2 st, float seed) { return fract(sin(dot(st.xy + seed, vec2(1892.9898, 78.23453))) * 437.54123); @@ -42,6 +57,6 @@ void main() { gl_FragColor = vec4(vec3(n), 1.0); } else { vec2 samPos = floor(hx) / scale + 0.5 / scale; - gl_FragColor = texture2D( gm_BaseTexture, samPos ); + gl_FragColor = sampleTexture( samPos ); } } diff --git a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.fsh b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.fsh index aac714162..57ab82255 100644 --- a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.fsh +++ b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.fsh @@ -10,6 +10,21 @@ uniform vec2 scale; uniform float seed; uniform int useSampler; +uniform int sampleMode; + +vec4 sampleTexture(vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2D(gm_BaseTexture, pos); + + if(sampleMode == 0) + return vec4(0.); + if(sampleMode == 1) + return texture2D(gm_BaseTexture, clamp(pos, 0., 1.)); + if(sampleMode == 2) + return texture2D(gm_BaseTexture, fract(pos)); + + return vec4(0.); +} float random (in vec2 st, float seed) { return fract(sin(dot(st.xy + seed, vec2(1892.9898, 78.23453))) * 437.54123); @@ -37,6 +52,6 @@ void main() { gl_FragColor = vec4(vec3(n), 1.0); } else { vec2 samPos = floor(hx) / scale + 0.5 / scale; - gl_FragColor = texture2D( gm_BaseTexture, samPos ); + gl_FragColor = sampleTexture( samPos / vec2(sqrt(3.), 1.1)); } } \ No newline at end of file diff --git a/shaders/sh_normal/sh_normal.fsh b/shaders/sh_normal/sh_normal.fsh index db74fd849..73260b31b 100644 --- a/shaders/sh_normal/sh_normal.fsh +++ b/shaders/sh_normal/sh_normal.fsh @@ -14,13 +14,14 @@ float bright(in vec4 col) { void main() { vec2 pixelStep = 1. / dimension; - float col = texture2D(gm_BaseTexture, v_vTexcoord).r; - float h0 = texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(-1., 0.)).r; - float h1 = texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2( 1., 0.)).r; - float v0 = texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(0., -1.)).r; - float v1 = texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(0., 1.)).r; + vec4 c = texture2D(gm_BaseTexture, v_vTexcoord); + float col = bright(c); + float h0 = bright(texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(-1., 0.))); + float h1 = bright(texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2( 1., 0.))); + float v0 = bright(texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(0., -1.))); + float v1 = bright(texture2D(gm_BaseTexture, v_vTexcoord + pixelStep * vec2(0., 1.))); vec2 normal = (vec2(h1, v1) - vec2(h0, v0)) / 2. * height + 0.5; - gl_FragColor = vec4(normal, 1., 1.); + gl_FragColor = vec4(normal, 1., c.a); } diff --git a/shaders/sh_normal_light/sh_normal_light.fsh b/shaders/sh_normal_light/sh_normal_light.fsh index 1b76033e5..15063ab50 100644 --- a/shaders/sh_normal_light/sh_normal_light.fsh +++ b/shaders/sh_normal_light/sh_normal_light.fsh @@ -26,20 +26,18 @@ void main() { vec3 result = ambiance * base_color.rgb; vec3 lightPos = vec3(lightPosition.x / dimension.x, lightPosition.y / dimension.y, lightPosition.z); - float attenuation = 1.; + float attenuation = lightIntensity; float range = lightPosition.a / max(dimension.x, dimension.y); + vec3 lightDir; if(lightType == 0) { - attenuation = max(1. - sqrt( pow(v_vTexcoord.x - lightPos.x, 2.) + pow((v_vTexcoord.y - lightPos.y) / aspect, 2.)) / range, 0.); - } else if(lightType == 1) { - float angle = -atan(lightPos.y - .5, lightPos.x - .5); - attenuation = max((.5 + (v_vTexcoord.x - .5) * cos(angle) - (v_vTexcoord.y - .5) * sin(angle)) / range, 0.); + attenuation *= max(1. - sqrt( pow(v_vTexcoord.x - lightPos.x, 2.) + pow((v_vTexcoord.y - lightPos.y) / aspect, 2.)) / range, 0.); + lightDir = normalize(lightPos - vec3(v_vTexcoord.x, v_vTexcoord.y, 0.)); + } else { + lightDir = normalize(lightPos - vec3(0.5, 0.5, 0.)); } - attenuation *= lightIntensity; - - vec3 lightDir = normalize(lightPos - vec3(v_vTexcoord.x, v_vTexcoord.y, 0.)); float d = max(dot(normal, lightDir), 0.0); vec3 diffuse = d * lightColor * base_color.rgb * attenuation; result += diffuse; diff --git a/shaders/sh_outline/sh_outline.fsh b/shaders/sh_outline/sh_outline.fsh index 241541ee4..36377dd0c 100644 --- a/shaders/sh_outline/sh_outline.fsh +++ b/shaders/sh_outline/sh_outline.fsh @@ -27,7 +27,7 @@ vec2 round(in vec2 v) { } vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_pixel_cloud/sh_pixel_cloud.fsh b/shaders/sh_pixel_cloud/sh_pixel_cloud.fsh index 1bfb5ecb0..448f91d7d 100644 --- a/shaders/sh_pixel_cloud/sh_pixel_cloud.fsh +++ b/shaders/sh_pixel_cloud/sh_pixel_cloud.fsh @@ -15,7 +15,7 @@ uniform vec4 gradient_color[16]; uniform float gradient_time[16]; uniform int gradient_keys; -uniform float alpha_curve[4]; +uniform float alpha_curve[6]; vec3 rgb2hsv(vec3 c) { vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); @@ -81,17 +81,16 @@ vec4 gradientEval(in float prog) { return col; } -float curveEval(in float curve[4], in float prog) { - return pow(1. - prog, 3.) * curve[0] + - 3. * pow(1. - prog, 2.) * prog * curve[1] + - 3. * (1. - prog) * pow(prog, 2.) * curve[2] + - pow(prog, 3.) * curve[3]; +float curveEval(in float curve[6], in float prog) { + return curve[0] * pow(1. - prog, 3.) + + curve[2] * 3. * pow(1. - prog, 2.) * prog + + curve[4] * 3. * (1. - prog) * pow(prog, 2.) + + curve[5] * pow(prog, 3.); } float frandom (in vec2 st, in float _seed) { float f = fract(sin(dot(st.xy, vec2(12.9898, 78.233)) * mod(15.15 + seed, 32.156 + _seed) * 12.588) * 43758.5453123); - f = f * 2. - 1.; - return f; + return mix(-1., 1., f); } vec2 vrandom (in vec2 st) { @@ -114,14 +113,12 @@ void main() { str += frandom(_pos, 12.01) * abs(.1) * str; vec2 _new_pos = _pos - _vec; - vec4 _col; + vec4 _col = vec4(0.); - if(_new_pos == clamp(_new_pos, 0., 1.)) { - _col = texture2D( gm_BaseTexture, _pos - _vec ); - _col.rgb *= gradientEval(str).rgb; - _col.a *= curveEval(alpha_curve, str); - } else { - _col = vec4(0.); + if(_new_pos.x >= 0. && _new_pos.x <= 1. && _new_pos.y >= 0. && _new_pos.y <= 1.) { + _col = texture2D( gm_BaseTexture, _new_pos ); + _col.rgb *= gradientEval(str + frandom(_pos, 1.235) * 0.1).rgb; + _col.a *= curveEval(alpha_curve, str + frandom(_pos, 2.984) * 0.1); } gl_FragColor = _col; diff --git a/shaders/sh_shadow_cast/sh_shadow_cast.fsh b/shaders/sh_shadow_cast/sh_shadow_cast.fsh new file mode 100644 index 000000000..be452e830 --- /dev/null +++ b/shaders/sh_shadow_cast/sh_shadow_cast.fsh @@ -0,0 +1,99 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; +uniform vec2 lightPos; +uniform sampler2D solid; + +uniform float pointLightRadius; +uniform float lightRadius; +uniform float lightDensity; +uniform int lightType; +uniform int renderSolid; + +uniform vec4 lightAmb; +uniform vec4 lightClr; + +void main() { + vec4 bg = texture2D( gm_BaseTexture, v_vTexcoord ); + vec4 sl = texture2D( solid, v_vTexcoord ); + + if(sl.a == 1.) { + gl_FragColor = renderSolid == 1? sl : lightAmb; + return; + } + + float bright = 1.; + vec2 tx = 1. / dimension; + + vec2 ang, lang; + vec2 lightPosTx = lightPos * tx; + float dst; + + if(lightType == 0) { + ang = normalize(lightPosTx - v_vTexcoord) * tx; + lang = vec2(ang.y, -ang.x) * lightRadius; + dst = length(lightPos - v_vTexcoord * dimension); + } else if(lightType == 1) { + ang = normalize(lightPosTx - vec2(.5)) * tx; + lang = vec2(ang.y, -ang.x) * lightRadius; + dst = length(dimension); + } + + float softlight = lightDensity - 1.; + float lightAmo = softlight * 2. + 1.; + int lightCatch[33]; + + for(int i = 0; i < int(lightAmo); i++) + lightCatch[i] = 1; + + for(float i = 1.; i < dst; i++) { + for(int j = 0; j <= int(lightAmo); j++) { + if(lightCatch[j] == 0) continue; + + vec2 _lightPos, _ang; + + if(lightType == 0) { + _lightPos = lightPosTx + lang * (float(j) - softlight); + _ang = normalize(_lightPos - v_vTexcoord) * tx; + } else if(lightType == 1) { + _lightPos = vec2(.5) + ang * dimension + lang * (float(j) - softlight); + _ang = normalize(_lightPos - vec2(.5)) * tx; + } + + vec2 _pos = v_vTexcoord + _ang * i; + vec2 _posPx = _pos * dimension; + + if(lightType == 0 && floor(abs(lightPos.x - _posPx.x)) + floor(abs(lightPos.y - _posPx.y)) < 1.) + continue; + + if(_pos.x < 0. || _pos.y < 0. || _pos.x > 1. || _pos.y > 1.) + continue; + + vec4 _sl = texture2D( solid, _pos ); + + if(_sl.a == 1.) + lightCatch[j] = 0; + } + } + + int lightCatched = 0; + for(int i = 0; i < int(lightAmo); i++) { + if(lightCatch[i] == 1) + lightCatched++; + } + + float shadow = float(lightCatched) / lightAmo; + + if(lightType == 0) { + float dist = distance(v_vTexcoord * dimension, lightPos); + float prg = 1. - clamp(dist / pointLightRadius, 0., 1.); + shadow *= prg * prg; + } + + gl_FragColor = vec4(bg.rgb * mix(lightAmb, lightClr, shadow).rgb, bg.a); + +} diff --git a/shaders/sh_shadow_cast/sh_shadow_cast.vsh b/shaders/sh_shadow_cast/sh_shadow_cast.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_shadow_cast/sh_shadow_cast.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_shadow_cast/sh_shadow_cast.yy b/shaders/sh_shadow_cast/sh_shadow_cast.yy new file mode 100644 index 000000000..59dccefaf --- /dev/null +++ b/shaders/sh_shadow_cast/sh_shadow_cast.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_shadow_cast", + "type": 1, + "parent": { + "name": "shadow caster", + "path": "folders/shader/filter/shadow caster.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.fsh b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.fsh new file mode 100644 index 000000000..1a1b05e4b --- /dev/null +++ b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.fsh @@ -0,0 +1,11 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 lightPosition; + +void main() { + gl_FragColor = texture2D( gm_BaseTexture, v_vTexcoord ); +} diff --git a/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.vsh b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy new file mode 100644 index 000000000..37d737bbb --- /dev/null +++ b/shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_shadow_cast_light_sep", + "type": 1, + "parent": { + "name": "shadow caster", + "path": "folders/shader/filter/shadow caster.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_shape/sh_shape.fsh b/shaders/sh_shape/sh_shape.fsh index c05f3e3bf..230bf8b74 100644 --- a/shaders/sh_shape/sh_shape.fsh +++ b/shaders/sh_shape/sh_shape.fsh @@ -12,8 +12,12 @@ uniform int drawDF; uniform float angle; uniform float inner; +uniform float outer; uniform float corner; +uniform float stRad; +uniform float edRad; + uniform vec2 angle_range; uniform vec2 dimension; @@ -79,6 +83,32 @@ float sdBox( in vec2 p, in vec2 b ) { return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0); } +float sdTearDrop( vec2 p, float r1, float r2, float h ) { + p.x = abs(p.x); + float b = (r1-r2)/h; + float a = sqrt(1.0-b*b); + float k = dot(p,vec2(-b,a)); + if( k < 0.0 ) return length(p) - r1; + if( k > a*h ) return length(p-vec2(0.0,h)) - r2; + return dot(p, vec2(a,b) ) - r1; +} + +float sdCross( in vec2 p, in vec2 b, float r ) { + p = abs(p); p = (p.y>p.x) ? p.yx : p.xy; + vec2 q = p - b; + float k = max(q.y,q.x); + vec2 w = (k>0.0) ? q : vec2(b.y-p.x,-k); + return sign(k)*length(max(w,0.0)) + r; +} + +float sdVesica(vec2 p, float r, float d) { + p = abs(p); + + float b = sqrt(r*r-d*d); // can delay this sqrt by rewriting the comparison + return ((p.y-b)*d > p.x*b) ? length(p-vec2(0.0,b))*sign(d) + : length(p-vec2(-d,0.0))-r; +} + void main() { float color = 0.; vec2 cen = (v_vTexcoord - center) / scale; @@ -86,10 +116,8 @@ void main() { float d; if(shape == 0) { - vec2 edgeDist = abs(cen) - 1.; - float odist = length(max(edgeDist, 0.)); - float idist = min(max(edgeDist.x, edgeDist.y), 0.); - d = odist + idist; + d = sdBox( (v_vTexcoord - center) * ratio, (scale * ratio - corner)); + d -= corner; } else if(shape == 1) { d = length(cen) - 1.; } else if(shape == 2) { @@ -100,10 +128,12 @@ void main() { d -= corner; } else if(shape == 4) { d = sdArc( cen, vec2(sin(angle), cos(angle)), angle_range, 0.9 - inner, inner ); - d -= corner; } else if(shape == 5) { - d = sdBox( (v_vTexcoord - center) * ratio, (scale * ratio - corner)); - d -= corner; + d = sdTearDrop( cen + vec2(0., 0.5), stRad, edRad, 1. ); + } else if(shape == 6) { + d = sdCross( cen, vec2(1. + corner, outer), corner ); + } else if(shape == 7) { + d = sdVesica( cen, inner, outer ); } //d = d; diff --git a/shaders/sh_skew/sh_skew.fsh b/shaders/sh_skew/sh_skew.fsh index 2c92ea0be..83a11e63c 100644 --- a/shaders/sh_skew/sh_skew.fsh +++ b/shaders/sh_skew/sh_skew.fsh @@ -11,7 +11,7 @@ uniform float amount; uniform int sampleMode; vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_twirl/sh_twirl.fsh b/shaders/sh_twirl/sh_twirl.fsh index c9b186e89..2ad5aa490 100644 --- a/shaders/sh_twirl/sh_twirl.fsh +++ b/shaders/sh_twirl/sh_twirl.fsh @@ -11,7 +11,7 @@ uniform float radius; uniform int sampleMode; vec4 sampleTexture(vec2 pos) { - if(pos.x > 0. && pos.y > 0. && pos.x < 1. && pos.y < 1.) + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) return texture2D(gm_BaseTexture, pos); if(sampleMode == 0) diff --git a/shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.vsh b/shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.vsh index 94dd19a0b..46b5258fa 100644 --- a/shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.vsh +++ b/shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.vsh @@ -9,6 +9,7 @@ varying vec3 v_vNormal; void main() { vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + vec3 world_space_norm = normalize(mat3(gm_Matrices[MATRIX_WORLD]) * in_Normal); gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; diff --git a/sprites/s_node_ase_file/ba621507-0670-477e-92fe-ee08080d3d1c.png b/sprites/s_node_ase_file/ba621507-0670-477e-92fe-ee08080d3d1c.png new file mode 100644 index 000000000..ee5fa170a Binary files /dev/null and b/sprites/s_node_ase_file/ba621507-0670-477e-92fe-ee08080d3d1c.png differ diff --git a/sprites/s_node_ase_file/layers/ba621507-0670-477e-92fe-ee08080d3d1c/20637467-21c3-4382-b98a-58bcb4d0fbfe.png b/sprites/s_node_ase_file/layers/ba621507-0670-477e-92fe-ee08080d3d1c/20637467-21c3-4382-b98a-58bcb4d0fbfe.png new file mode 100644 index 000000000..ee5fa170a Binary files /dev/null and b/sprites/s_node_ase_file/layers/ba621507-0670-477e-92fe-ee08080d3d1c/20637467-21c3-4382-b98a-58bcb4d0fbfe.png differ diff --git a/sprites/s_node_ase_file/s_node_ase_file.yy b/sprites/s_node_ase_file/s_node_ase_file.yy new file mode 100644 index 000000000..3430c6a5e --- /dev/null +++ b/sprites/s_node_ase_file/s_node_ase_file.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_ase_file", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 4, + "bbox_right": 59, + "bbox_top": 4, + "bbox_bottom": 59, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ba621507-0670-477e-92fe-ee08080d3d1c",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_ase_file", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"10db1db9-8b67-4724-9191-f99698080417","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ba621507-0670-477e-92fe-ee08080d3d1c","path":"sprites/s_node_ase_file/s_node_ase_file.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"20637467-21c3-4382-b98a-58bcb4d0fbfe","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "input", + "path": "folders/nodes/icons/input.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_ase_layer/634dcc1e-8c79-4a97-b353-24981161f846.png b/sprites/s_node_ase_layer/634dcc1e-8c79-4a97-b353-24981161f846.png new file mode 100644 index 000000000..a0e95784a Binary files /dev/null and b/sprites/s_node_ase_layer/634dcc1e-8c79-4a97-b353-24981161f846.png differ diff --git a/sprites/s_node_ase_layer/layers/634dcc1e-8c79-4a97-b353-24981161f846/4d184a12-c72b-401e-8168-67f3a003a28e.png b/sprites/s_node_ase_layer/layers/634dcc1e-8c79-4a97-b353-24981161f846/4d184a12-c72b-401e-8168-67f3a003a28e.png new file mode 100644 index 000000000..a0e95784a Binary files /dev/null and b/sprites/s_node_ase_layer/layers/634dcc1e-8c79-4a97-b353-24981161f846/4d184a12-c72b-401e-8168-67f3a003a28e.png differ diff --git a/sprites/s_node_ase_layer/s_node_ase_layer.yy b/sprites/s_node_ase_layer/s_node_ase_layer.yy new file mode 100644 index 000000000..6333bb55b --- /dev/null +++ b/sprites/s_node_ase_layer/s_node_ase_layer.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_ase_layer", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 4, + "bbox_right": 63, + "bbox_top": 4, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"634dcc1e-8c79-4a97-b353-24981161f846",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_ase_layer", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"26bd6446-c2ba-4ece-b900-9fdf01c7242c","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"634dcc1e-8c79-4a97-b353-24981161f846","path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"4d184a12-c72b-401e-8168-67f3a003a28e","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "input", + "path": "folders/nodes/icons/input.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_average/275f1574-1d62-46c5-af1b-d573133c2484.png b/sprites/s_node_average/275f1574-1d62-46c5-af1b-d573133c2484.png new file mode 100644 index 000000000..b98c452c5 Binary files /dev/null and b/sprites/s_node_average/275f1574-1d62-46c5-af1b-d573133c2484.png differ diff --git a/sprites/s_node_average/layers/275f1574-1d62-46c5-af1b-d573133c2484/c38adbf4-31ee-401b-a7c3-e0b7b9cdf3d4.png b/sprites/s_node_average/layers/275f1574-1d62-46c5-af1b-d573133c2484/c38adbf4-31ee-401b-a7c3-e0b7b9cdf3d4.png new file mode 100644 index 000000000..b98c452c5 Binary files /dev/null and b/sprites/s_node_average/layers/275f1574-1d62-46c5-af1b-d573133c2484/c38adbf4-31ee-401b-a7c3-e0b7b9cdf3d4.png differ diff --git a/sprites/s_node_average/s_node_average.yy b/sprites/s_node_average/s_node_average.yy new file mode 100644 index 000000000..2dc6b1a90 --- /dev/null +++ b/sprites/s_node_average/s_node_average.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_average", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 31, + "bbox_top": 0, + "bbox_bottom": 31, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 32, + "height": 32, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"275f1574-1d62-46c5-af1b-d573133c2484",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_average", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"7eae0de2-7981-40cb-99e4-d073a6972cd4","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"275f1574-1d62-46c5-af1b-d573133c2484","path":"sprites/s_node_average/s_node_average.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 16, + "yorigin": 16, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c38adbf4-31ee-401b-a7c3-e0b7b9cdf3d4","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "filter", + "path": "folders/nodes/icons/filter.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_compose/s_node_compose.yy b/sprites/s_node_compose/s_node_compose.yy index 78237c894..780678dd6 100644 --- a/sprites/s_node_compose/s_node_compose.yy +++ b/sprites/s_node_compose/s_node_compose.yy @@ -48,7 +48,7 @@ {"id":"ba75fdb0-c2ef-478f-891f-7830ba751671","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"c436006d-b8af-42d9-a8ec-8d49ab73c083","path":"sprites/s_node_compose/s_node_compose.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, diff --git a/sprites/s_node_palette_extract/425ece57-9794-4d63-8dd6-933e4e864b55.png b/sprites/s_node_palette_extract/425ece57-9794-4d63-8dd6-933e4e864b55.png new file mode 100644 index 000000000..023c366a9 Binary files /dev/null and b/sprites/s_node_palette_extract/425ece57-9794-4d63-8dd6-933e4e864b55.png differ diff --git a/sprites/s_node_palette_extract/layers/425ece57-9794-4d63-8dd6-933e4e864b55/1230f68e-d675-46d3-9357-66a7c6285c75.png b/sprites/s_node_palette_extract/layers/425ece57-9794-4d63-8dd6-933e4e864b55/1230f68e-d675-46d3-9357-66a7c6285c75.png new file mode 100644 index 000000000..023c366a9 Binary files /dev/null and b/sprites/s_node_palette_extract/layers/425ece57-9794-4d63-8dd6-933e4e864b55/1230f68e-d675-46d3-9357-66a7c6285c75.png differ diff --git a/sprites/s_node_palette_extract/s_node_palette_extract.yy b/sprites/s_node_palette_extract/s_node_palette_extract.yy new file mode 100644 index 000000000..26b9a7c07 --- /dev/null +++ b/sprites/s_node_palette_extract/s_node_palette_extract.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_palette_extract", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"425ece57-9794-4d63-8dd6-933e4e864b55",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_palette_extract", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"e543382b-d461-4bfa-83c9-a5b9ebe12035","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"425ece57-9794-4d63-8dd6-933e4e864b55","path":"sprites/s_node_palette_extract/s_node_palette_extract.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"1230f68e-d675-46d3-9357-66a7c6285c75","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "color", + "path": "folders/nodes/icons/color.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_random/e855debd-7541-435a-b24f-318f72f7df0d.png b/sprites/s_node_random/e855debd-7541-435a-b24f-318f72f7df0d.png new file mode 100644 index 000000000..983bb8b1f Binary files /dev/null and b/sprites/s_node_random/e855debd-7541-435a-b24f-318f72f7df0d.png differ diff --git a/sprites/s_node_random/layers/e855debd-7541-435a-b24f-318f72f7df0d/faccc396-0164-4943-b4cf-2073da459e33.png b/sprites/s_node_random/layers/e855debd-7541-435a-b24f-318f72f7df0d/faccc396-0164-4943-b4cf-2073da459e33.png new file mode 100644 index 000000000..983bb8b1f Binary files /dev/null and b/sprites/s_node_random/layers/e855debd-7541-435a-b24f-318f72f7df0d/faccc396-0164-4943-b4cf-2073da459e33.png differ diff --git a/sprites/s_node_random/s_node_random.yy b/sprites/s_node_random/s_node_random.yy new file mode 100644 index 000000000..ae1b0e2f3 --- /dev/null +++ b/sprites/s_node_random/s_node_random.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_random", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 5, + "bbox_right": 58, + "bbox_top": 22, + "bbox_bottom": 40, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"e855debd-7541-435a-b24f-318f72f7df0d",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_random", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"33fb5c73-3da5-460a-99a1-c426f7296058","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"e855debd-7541-435a-b24f-318f72f7df0d","path":"sprites/s_node_random/s_node_random.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"faccc396-0164-4943-b4cf-2073da459e33","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_repeat/a17e5f08-b544-4f15-8ddb-e2e7e78826e3.png b/sprites/s_node_repeat/a17e5f08-b544-4f15-8ddb-e2e7e78826e3.png new file mode 100644 index 000000000..00b95624b Binary files /dev/null and b/sprites/s_node_repeat/a17e5f08-b544-4f15-8ddb-e2e7e78826e3.png differ diff --git a/sprites/s_node_repeat/layers/a17e5f08-b544-4f15-8ddb-e2e7e78826e3/a7f7d9e7-aa46-4b5d-8613-76cd6930c9d1.png b/sprites/s_node_repeat/layers/a17e5f08-b544-4f15-8ddb-e2e7e78826e3/a7f7d9e7-aa46-4b5d-8613-76cd6930c9d1.png new file mode 100644 index 000000000..00b95624b Binary files /dev/null and b/sprites/s_node_repeat/layers/a17e5f08-b544-4f15-8ddb-e2e7e78826e3/a7f7d9e7-aa46-4b5d-8613-76cd6930c9d1.png differ diff --git a/sprites/s_node_repeat/s_node_repeat.yy b/sprites/s_node_repeat/s_node_repeat.yy new file mode 100644 index 000000000..46f27fd5a --- /dev/null +++ b/sprites/s_node_repeat/s_node_repeat.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_repeat", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 2, + "bbox_right": 61, + "bbox_top": 2, + "bbox_bottom": 61, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"a17e5f08-b544-4f15-8ddb-e2e7e78826e3",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_repeat", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"79349e57-31f0-4392-ae6e-672e461c5430","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"a17e5f08-b544-4f15-8ddb-e2e7e78826e3","path":"sprites/s_node_repeat/s_node_repeat.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"a7f7d9e7-aa46-4b5d-8613-76cd6930c9d1","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "generator", + "path": "folders/nodes/icons/generator.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_shadow_cast/427aaeb1-717e-4a00-90f9-eb5e6c85d69c.png b/sprites/s_node_shadow_cast/427aaeb1-717e-4a00-90f9-eb5e6c85d69c.png new file mode 100644 index 000000000..1dfd8bdb0 Binary files /dev/null and b/sprites/s_node_shadow_cast/427aaeb1-717e-4a00-90f9-eb5e6c85d69c.png differ diff --git a/sprites/s_node_shadow_cast/layers/427aaeb1-717e-4a00-90f9-eb5e6c85d69c/d22fae60-968b-4798-8c0e-ecd8991d85b4.png b/sprites/s_node_shadow_cast/layers/427aaeb1-717e-4a00-90f9-eb5e6c85d69c/d22fae60-968b-4798-8c0e-ecd8991d85b4.png new file mode 100644 index 000000000..1dfd8bdb0 Binary files /dev/null and b/sprites/s_node_shadow_cast/layers/427aaeb1-717e-4a00-90f9-eb5e6c85d69c/d22fae60-968b-4798-8c0e-ecd8991d85b4.png differ diff --git a/sprites/s_node_shadow_cast/s_node_shadow_cast.yy b/sprites/s_node_shadow_cast/s_node_shadow_cast.yy new file mode 100644 index 000000000..5ead8a371 --- /dev/null +++ b/sprites/s_node_shadow_cast/s_node_shadow_cast.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_shadow_cast", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"427aaeb1-717e-4a00-90f9-eb5e6c85d69c",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_shadow_cast", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"422c7922-9764-4342-bee9-e29d7b3fae59","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"427aaeb1-717e-4a00-90f9-eb5e6c85d69c","path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"d22fae60-968b-4798-8c0e-ecd8991d85b4","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "filter", + "path": "folders/nodes/icons/filter.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_text_char_get/cf0d2696-682c-4fee-a83e-df86802f1165.png b/sprites/s_node_text_char_get/cf0d2696-682c-4fee-a83e-df86802f1165.png new file mode 100644 index 000000000..7a8c9a1e3 Binary files /dev/null and b/sprites/s_node_text_char_get/cf0d2696-682c-4fee-a83e-df86802f1165.png differ diff --git a/sprites/s_node_text_char_get/layers/cf0d2696-682c-4fee-a83e-df86802f1165/9cc8780d-0eb0-4ab8-90bc-4ee702bf8618.png b/sprites/s_node_text_char_get/layers/cf0d2696-682c-4fee-a83e-df86802f1165/9cc8780d-0eb0-4ab8-90bc-4ee702bf8618.png new file mode 100644 index 000000000..7a8c9a1e3 Binary files /dev/null and b/sprites/s_node_text_char_get/layers/cf0d2696-682c-4fee-a83e-df86802f1165/9cc8780d-0eb0-4ab8-90bc-4ee702bf8618.png differ diff --git a/sprites/s_node_text_char_get/s_node_text_char_get.yy b/sprites/s_node_text_char_get/s_node_text_char_get.yy new file mode 100644 index 000000000..ac45e0078 --- /dev/null +++ b/sprites/s_node_text_char_get/s_node_text_char_get.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_text_char_get", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 3, + "bbox_right": 61, + "bbox_top": 19, + "bbox_bottom": 44, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"cf0d2696-682c-4fee-a83e-df86802f1165",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_text_char_get", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"fbfc041b-d855-4065-97fe-c3e4588f8874","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"cf0d2696-682c-4fee-a83e-df86802f1165","path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"9cc8780d-0eb0-4ab8-90bc-4ee702bf8618","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_text_combine/136bbcb0-f3ea-4900-ab8f-daf131cc11e1.png b/sprites/s_node_text_combine/136bbcb0-f3ea-4900-ab8f-daf131cc11e1.png new file mode 100644 index 000000000..14020ef6b Binary files /dev/null and b/sprites/s_node_text_combine/136bbcb0-f3ea-4900-ab8f-daf131cc11e1.png differ diff --git a/sprites/s_node_text_combine/layers/136bbcb0-f3ea-4900-ab8f-daf131cc11e1/f8e493d5-1d13-4f6a-96cd-24b8b2a144de.png b/sprites/s_node_text_combine/layers/136bbcb0-f3ea-4900-ab8f-daf131cc11e1/f8e493d5-1d13-4f6a-96cd-24b8b2a144de.png new file mode 100644 index 000000000..14020ef6b Binary files /dev/null and b/sprites/s_node_text_combine/layers/136bbcb0-f3ea-4900-ab8f-daf131cc11e1/f8e493d5-1d13-4f6a-96cd-24b8b2a144de.png differ diff --git a/sprites/s_node_text_combine/s_node_text_combine.yy b/sprites/s_node_text_combine/s_node_text_combine.yy new file mode 100644 index 000000000..f3a2016d1 --- /dev/null +++ b/sprites/s_node_text_combine/s_node_text_combine.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_text_combine", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 2, + "bbox_right": 61, + "bbox_top": 4, + "bbox_bottom": 57, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"136bbcb0-f3ea-4900-ab8f-daf131cc11e1",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_text_combine", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"6ea12dc0-a2c3-4147-a0c0-96a37f89fc5a","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"136bbcb0-f3ea-4900-ab8f-daf131cc11e1","path":"sprites/s_node_text_combine/s_node_text_combine.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"f8e493d5-1d13-4f6a-96cd-24b8b2a144de","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_text_trim/293f5664-caa1-4322-b774-4bd21787e24e.png b/sprites/s_node_text_trim/293f5664-caa1-4322-b774-4bd21787e24e.png deleted file mode 100644 index 134082a16..000000000 Binary files a/sprites/s_node_text_trim/293f5664-caa1-4322-b774-4bd21787e24e.png and /dev/null differ diff --git a/sprites/s_node_text_trim/8bc2995b-bdfc-4b05-a654-82c2da701e9c.png b/sprites/s_node_text_trim/8bc2995b-bdfc-4b05-a654-82c2da701e9c.png new file mode 100644 index 000000000..912c3bca4 Binary files /dev/null and b/sprites/s_node_text_trim/8bc2995b-bdfc-4b05-a654-82c2da701e9c.png differ diff --git a/sprites/s_node_text_trim/layers/293f5664-caa1-4322-b774-4bd21787e24e/b5361cf7-7eaf-4fab-9c80-ff81929ba3d1.png b/sprites/s_node_text_trim/layers/293f5664-caa1-4322-b774-4bd21787e24e/b5361cf7-7eaf-4fab-9c80-ff81929ba3d1.png deleted file mode 100644 index 134082a16..000000000 Binary files a/sprites/s_node_text_trim/layers/293f5664-caa1-4322-b774-4bd21787e24e/b5361cf7-7eaf-4fab-9c80-ff81929ba3d1.png and /dev/null differ diff --git a/sprites/s_node_text_trim/layers/8bc2995b-bdfc-4b05-a654-82c2da701e9c/77f341d9-0c73-404f-9f50-eca19e2ed7b9.png b/sprites/s_node_text_trim/layers/8bc2995b-bdfc-4b05-a654-82c2da701e9c/77f341d9-0c73-404f-9f50-eca19e2ed7b9.png new file mode 100644 index 000000000..912c3bca4 Binary files /dev/null and b/sprites/s_node_text_trim/layers/8bc2995b-bdfc-4b05-a654-82c2da701e9c/77f341d9-0c73-404f-9f50-eca19e2ed7b9.png differ diff --git a/sprites/s_node_text_trim/s_node_text_trim.yy b/sprites/s_node_text_trim/s_node_text_trim.yy index d437f8687..6d25d1639 100644 --- a/sprites/s_node_text_trim/s_node_text_trim.yy +++ b/sprites/s_node_text_trim/s_node_text_trim.yy @@ -10,10 +10,10 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 5, - "bbox_right": 58, - "bbox_top": 16, - "bbox_bottom": 47, + "bbox_left": 4, + "bbox_right": 59, + "bbox_top": 15, + "bbox_bottom": 48, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"293f5664-caa1-4322-b774-4bd21787e24e",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"8bc2995b-bdfc-4b05-a654-82c2da701e9c",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"3acf25c3-d695-464f-9672-1dfc94d21d6d","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"293f5664-caa1-4322-b774-4bd21787e24e","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"73d544b6-de02-4bf0-8811-c694fdc89d8b","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"8bc2995b-bdfc-4b05-a654-82c2da701e9c","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,7 +64,7 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"b5361cf7-7eaf-4fab-9c80-ff81929ba3d1","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"77f341d9-0c73-404f-9f50-eca19e2ed7b9","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": {