SDL-2.540000755000765000024 011760240073 12250 5ustar00jtpalmerstaff000000000000SDL-2.540/Build.PL000444000765000024 3505311760240073 13727 0ustar00jtpalmerstaff000000000000#! perl -w # # Copyright (C) 2003 chromatic # Copyright (C) 2004 David J. Goehrig # Copyright (C) 2010 Kartik Thakore use strict; use warnings; use Carp; use lib 'inc'; use Alien::SDL; print STDERR < 'Windows', MacOS => 'Darwin', darwin => 'Darwin', cygwin => 'Unix', freebsd => 'Unix', gnukfreebsd => 'Unix', linux => 'Unix', netbsd => 'Unix', openbsd => 'Unix', solaris => 'Unix', ); my $package = 'My::Builder::' . ( $platforms{$^O} || 'Unix' ); print "Using '$package' class ...\n"; eval "require $package" or Carp::confess "Require '$package' failed: $@\n"; ### Subsystems to build # # = hash of the following 2 values: # = location of source file # = location of build file to get name right # = list reqiured libraries, names the same as keys to hash %libraries my %subsystems = ( SDL => { file => { from => 'src/SDL.xs', to => 'lib/SDL_perl.xs', }, libraries => [qw( SDL )], }, Time => { file => { from => 'src/Core/Time.xs', to => 'lib/SDL/Time.xs', }, libraries => [qw( SDL )], }, Events => { file => { from => 'src/Core/Events.xs', to => 'lib/SDL/Events.xs', }, libraries => [qw( SDL )], }, Event => { file => { from => 'src/Core/objects/Event.xs', to => 'lib/SDL/Event.xs', }, libraries => [qw( SDL )], }, GFX => { file => { from => 'src/GFX/GFX.xs', to => 'lib/SDL/GFX.xs', }, libraries => [qw( SDL SDL_gfx_primitives )], }, BlitFunc => { file => { from => 'src/GFX/BlitFunc.xs', to => 'lib/SDL/GFX/BlitFunc.xs', }, libraries => [qw( SDL SDL_gfx_blitfunc )], }, Framerate => { file => { from => 'src/GFX/Framerate.xs', to => 'lib/SDL/GFX/Framerate.xs', }, libraries => [qw( SDL SDL_gfx_framerate )], }, FPSManager => { file => { from => 'src/GFX/FPSManager.xs', to => 'lib/SDL/GFX/FPSManager.xs', }, libraries => [qw( SDL SDL_gfx_framerate )], }, ImageFilter => { file => { from => 'src/GFX/ImageFilter.xs', to => 'lib/SDL/GFX/ImageFilter.xs', }, libraries => [qw( SDL SDL_gfx_imagefilter )], }, Primitives => { file => { from => 'src/GFX/Primitives.xs', to => 'lib/SDL/GFX/Primitives.xs', }, libraries => [qw( SDL SDL_gfx_primitives )], }, Rotozoom => { file => { from => 'src/GFX/Rotozoom.xs', to => 'lib/SDL/GFX/Rotozoom.xs', }, libraries => [qw( SDL SDL_gfx_rotozoom )], }, MultiThread => { file => { from => 'src/Core/MultiThread.xs', to => 'lib/SDL/MultiThread.xs', }, libraries => [qw( SDL )], }, Video => { file => { from => 'src/Core/Video.xs', to => 'lib/SDL/Video.xs', }, libraries => [qw( SDL )], }, Audio => { file => { from => 'src/Core/Audio.xs', to => 'lib/SDL/Audio.xs', }, libraries => [qw( SDL )], }, Rect => { file => { from => 'src/Core/objects/Rect.xs', to => 'lib/SDL/Rect.xs', }, libraries => [qw( SDL )], }, Color => { file => { from => 'src/Core/objects/Color.xs', to => 'lib/SDL/Color.xs', }, libraries => [qw( SDL )], }, Surface => { file => { from => 'src/Core/objects/Surface.xs', to => 'lib/SDL/Surface.xs', }, libraries => [qw( SDL )], }, SurfaceX => { file => { from => 'src/SDLx/Surface.xs', to => 'lib/SDLx/Surface.xs', }, libraries => [qw( SDL SDL_gfx_primitives )], }, TimerX => { file => { from => 'src/SDLx/Timer.xs', to => 'lib/SDLx/Controller/Timer.xs', }, libraries => [qw( SDL )], }, ValidateX => { file => { from => 'src/SDLx/Validate.xs', to => 'lib/SDLx/Validate.xs', }, libraries => [qw( SDL )], }, InterfaceX => { file => { from => 'src/SDLx/Controller/Interface.xs', to => 'lib/SDLx/Controller/Interface.xs', }, libraries => [qw( SDL )], }, StateX => { file => { from => 'src/SDLx/Controller/State.xs', to => 'lib/SDLx/Controller/State.xs', }, libraries => [qw( SDL )], }, Overlay => { file => { from => 'src/Core/objects/Overlay.xs', to => 'lib/SDL/Overlay.xs', }, libraries => [qw( SDL )], }, RWOps => { file => { from => 'src/Core/objects/RWOps.xs', to => 'lib/SDL/RWOps.xs', }, libraries => [qw( SDL )], }, PixelFormat => { file => { from => 'src/Core/objects/PixelFormat.xs', to => 'lib/SDL/PixelFormat.xs', }, libraries => [qw( SDL )], }, LayerManagerX => { file => { from => 'src/SDLx/LayerManager.xs', to => 'lib/SDLx/LayerManager.xs', }, libraries => [qw( SDL )], }, LayerX => { file => { from => 'src/SDLx/Layer.xs', to => 'lib/SDLx/Layer.xs', }, libraries => [qw( SDL SDL_image )], }, AudioSpec => { file => { from => 'src/Core/objects/AudioSpec.xs', to => 'lib/SDL/AudioSpec.xs', }, libraries => [qw( SDL )], }, AudioCVT => { file => { from => 'src/Core/objects/AudioCVT.xs', to => 'lib/SDL/AudioCVT.xs', }, libraries => [qw( SDL )], }, Mixer => { file => { from => 'src/Mixer/Mixer.xs', to => 'lib/SDL/Mixer.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixerSamples => { file => { from => 'src/Mixer/Samples.xs', to => 'lib/SDL/Mixer/Samples.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixerChannels => { file => { from => 'src/Mixer/Channels.xs', to => 'lib/SDL/Mixer/Channels.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixerGroups => { file => { from => 'src/Mixer/Groups.xs', to => 'lib/SDL/Mixer/Groups.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixerMusic => { file => { from => 'src/Mixer/Music.xs', to => 'lib/SDL/Mixer/Music.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixerEffects => { file => { from => 'src/Mixer/Effects.xs', to => 'lib/SDL/Mixer/Effects.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixChunk => { file => { from => 'src/Mixer/objects/MixChunk.xs', to => 'lib/SDL/Mixer/MixChunk.xs', }, libraries => [qw( SDL SDL_mixer )], }, MixMusic => { file => { from => 'src/Mixer/objects/MixMusic.xs', to => 'lib/SDL/Mixer/MixMusic.xs', }, libraries => [qw( SDL SDL_mixer )], }, Palette => { file => { from => 'src/Core/objects/Palette.xs', to => 'lib/SDL/Palette.xs', }, libraries => [qw( SDL )], }, VideoInfo => { file => { from => 'src/Core/objects/VideoInfo.xs', to => 'lib/SDL/VideoInfo.xs', }, libraries => [qw( SDL )], }, Mouse => { file => { from => 'src/Core/Mouse.xs', to => 'lib/SDL/Mouse.xs', }, libraries => [qw( SDL )], }, Cursor => { file => { from => 'src/Core/objects/Cursor.xs', to => 'lib/SDL/Cursor.xs', }, libraries => [qw( SDL )], }, Joystick => { file => { from => 'src/Core/Joystick.xs', to => 'lib/SDL/Joystick.xs', }, libraries => [qw( SDL )], }, CDROM => { file => { from => 'src/Core/CDROM.xs', to => 'lib/SDL/CDROM.xs', }, libraries => [qw( SDL )], }, CDTrack => { file => { from => 'src/Core/objects/CDTrack.xs', to => 'lib/SDL/CDTrack.xs', }, libraries => [qw( SDL )], }, CD => { file => { from => 'src/Core/objects/CD.xs', to => 'lib/SDL/CD.xs', }, libraries => [qw( SDL )], }, TTF => { file => { from => 'src/TTF/TTF.xs', to => 'lib/SDL/TTF.xs', }, libraries => [qw( SDL SDL_ttf )], }, TTF_Font => { file => { from => 'src/TTF/objects/Font.xs', to => 'lib/SDL/TTF/Font.xs', }, libraries => [qw( SDL SDL_ttf )], }, Version => { file => { from => 'src/Core/objects/Version.xs', to => 'lib/SDL/Version.xs', }, libraries => [qw( SDL )], }, Image => { file => { from => 'src/Image.xs', to => 'lib/SDL/Image.xs', }, libraries => [qw( SDL SDL_image )], }, SFont => { file => { from => 'src/SDLx/SFont.xs', to => 'lib/SDLx/SFont.xs', }, libraries => [qw( SDL SDL_image )], }, # SMPEG => { # file => { # from => 'src/SMPEG.xs', # to => 'lib/SDL/SMPEG.xs', # }, # libraries => [qw( SDL smpeg)], # }, # MPEG => { # file => { # from => 'src/SMPEG/Info.xs', # to => 'lib/SDL/SMPEG/Info.xs', # }, # libraries => [qw( SDL smpeg)], # }, Pango => { file => { from => 'src/Pango/Pango.xs', to => 'lib/SDL/Pango.xs', }, libraries => [qw( SDL SDL_Pango )], }, Context => { file => { from => 'src/Pango/objects/Context.xs', to => 'lib/SDL/Pango/Context.xs', }, libraries => [qw( SDL SDL_Pango )], }, # Net => { # file => { # from => 'src/Net/Net.xs', # to => 'lib/SDL/Net.xs', # }, # libraries => [qw( SDL SDL_net )], # }, # TCP => { # file => { # from => 'src/Net/TCP.xs', # to => 'lib/SDL/Net/TCP.xs', # }, # libraries => [qw( SDL SDL_net )], # }, # UDP => { # file => { # from => 'src/Net/UDP.xs', # to => 'lib/SDL/Net/UDP.xs', # }, # libraries => [qw( SDL SDL_net )], # }, # IPaddress => { # file => { # from => 'src/Net/objects/IPaddress.xs', # to => 'lib/SDL/Net/IPaddress.xs', # }, # libraries => [qw( SDL SDL_net )], # }, ); ### External libraries # = symbolic library name # = value that will be used as -D option when compiling XS code #
= header related to the library that will be used for avalability detection, # could be a sigle value or an array of values # = value that will be used as -l option when linking XS code my %libraries = ( SDL => { define => 'HAVE_SDL', header => 'SDL.h', lib => 'SDL', }, SDL_image => { define => 'HAVE_SDL_IMAGE', header => 'SDL_image.h', lib => 'SDL_image', }, SDL_mixer => { define => 'HAVE_SDL_MIXER', header => 'SDL_mixer.h', lib => 'SDL_mixer', }, # SDL_net => { # define => 'HAVE_SDL_NET', # header => 'SDL_net.h', # lib => 'SDL_net', # }, SDL_ttf => { define => 'HAVE_SDL_TTF', header => 'SDL_ttf.h', lib => 'SDL_ttf', }, SDL_gfx => { define => 'HAVE_SDL_GFX', header => 'SDL_gfxPrimitives.h', lib => 'SDL_gfx', }, SDL_gfx_blitfunc => { define => 'HAVE_SDL_GFX_BLITFUNC', header => 'SDL_gfxBlitFunc.h', lib => 'SDL_gfx', }, SDL_gfx_framerate => { define => 'HAVE_SDL_GFX_FRAMERATE', header => 'SDL_framerate.h', lib => 'SDL_gfx', }, SDL_gfx_imagefilter => { define => 'HAVE_SDL_GFX_IMAGEFILTER', header => 'SDL_imageFilter.h', lib => 'SDL_gfx', }, SDL_gfx_primitives => { define => 'HAVE_SDL_GFX_PRIMITIVES', header => 'SDL_gfxPrimitives.h', lib => 'SDL_gfx', }, SDL_gfx_rotozoom => { define => 'HAVE_SDL_GFX_ROTOZOOM', header => 'SDL_rotozoom.h', lib => 'SDL_gfx', }, SDL_Pango => { define => 'HAVE_SDL_PANGO', header => 'SDL_Pango.h', lib => 'SDL_Pango', }, png => { define => 'HAVE_PNG', header => 'png.h', lib => 'png', }, jpeg => { define => 'HAVE_JPEG', header => 'jpeglib.h', lib => 'jpeg', }, tiff => { define => 'HAVE_TIFF', header => 'tiff.h', lib => 'tiff', }, smpeg => { define => 'HAVE_SMPEG', header => 'smpeg/smpeg.h', lib => 'smpeg', }, GL => { define => 'HAVE_GL', header => [ 'GL/gl.h', 'GL/glext.h' ], lib => ( $^O =~ /^(MSWin32|cygwin)$/ ) ? 'opengl32' : 'GL', # xxx not nice }, GLU => { define => 'HAVE_GLU', header => 'GL/glu.h', lib => ( $^O =~ /^(MSWin32|cygwin)$/ ) ? 'glu32' : 'GLU', # xxx not nice }, ); ### Mangle the compilable files into a format Module::Build can understand my %xs = map { $subsystems{$_}{file}{from} => $subsystems{$_}{file}{to} } keys %subsystems; ### Standard Module::Build stuff $My::Builder::config = $My::Builder::config; # Prevent a warning my $build = $package->new( module_name => 'SDL', dist_name => 'SDL', license => 'lgpl', dist_version_from => 'lib/SDL.pm', configure_requires => { 'ExtUtils::CBuilder' => '0.260301', 'Alien::SDL' => '1.426', 'File::Find' => '0', 'File::ShareDir' => '1.0', 'Tie::Simple' => '0', 'Capture::Tiny' => '0', }, build_requires => { 'Test::Simple' => '0.88', 'Capture::Tiny' => '0', 'Test::Most' => '0.21', 'Alien::SDL' => '1.426', 'File::Find' => '0', 'File::ShareDir' => '1.0', 'Tie::Simple' => '0', 'Scalar::Util' => '0', }, requires => { 'Scalar::Util' => '0', 'Tie::Simple' => '0', 'File::ShareDir' => '1.0', 'CPAN' => '1.92', 'perl' => '5.008000', }, share_dir => 'share', build_recommends => { 'Pod::ToDemo' => '0.20', }, config => $My::Builder::config, c_source => 'src', xs_files => \%xs, meta_add => {}, typemap_files => { 'typemap' => 'lib/SDL/typemap' }, #create_readme => 1, ### make sense only if there is some POD doc in the file specified by dist_version_from meta_merge => { resources => { bugtracker => 'http://github.com/PerlGameDev/SDL/issues', repository => 'http://github.com/PerlGameDev/SDL' } }, dist_abstract => 'SDL bindings to Perl', dist_author => 'Kartik Thakore ', ); ### Alien::SDL quick check warn "###WARNING### Alien::SDL seems to be broken" unless Alien::SDL->config('prefix'); ### See which subsystems can be built -- do we have headers for them? print "Detecting available libraries ...\n"; my $build_systems = $build->find_subsystems( \%subsystems, \%libraries ); my $lib_translate = $build->translate_table( \%subsystems, \%libraries ); ### Save info about available subsystems for future SDL::ConfigData print "Writing config_data ...\n"; $build->config_data( 'SDL_cfg', $build_systems ); $build->config_data( 'SDL_lib_translate', $lib_translate ); $build->config_data( 'subsystems', \%subsystems ); $build->config_data( 'libraries', \%libraries ); ### Something that was originally special to MacOS/Darwin # somebody MacOS/Darwin friendly should review whether it is still necessary $build->special_build_settings(); ### Get some info into M::B notes print "Saving some info to 'notes' ...\n"; $build->notes( 'subsystems', \%subsystems ); $build->notes( 'libraries', \%libraries ); $build->notes( 'build_systems', $build_systems ); $build->notes( 'sdl_cflags', Alien::SDL->config('cflags') ); $build->notes( 'sdl_libs', Alien::SDL->config('libs') ); $build->set_file_flags(); # creates notes('file_flags') $build->add_build_element('typemap'); $build->create_build_script(); SDL-2.540/CHANGELOG000444000765000024 11071611760240072 13664 0ustar00jtpalmerstaff000000000000Revision history for Perl extension SDL_perl. Versioning rule: public releases are even numbers, dev releases are odd. (same like perl dist) * 2.540 May 26 2012 - Removed all non-pod changes introduced in 2.538 [jtpalmer] - Fixed bugtracker link [FROGGS] - Added SDL::Platform pod [pktm] * 2.538 May 22 2012 - Pod updates [mig0] - SDLx::App made the docs a lot better [Blaizer] - SDLx::App changed around shortcut names in the constructor [Blaizer] - SDLx::App added and improved parameters of the constructor, see docs [Blaizer] - SDLx::App updated methods resize, title, icon, error, show_cursor, grab_input [Blaizer] - SDLx::App fullscreen method works better [Blaizer] - SDLx::App new init method does our initializing right [Blaizer] - SDLx::App new set_video_mode method does set_video_mode for SDLx::App [Blaizer] - SDLx::App new screen_size method returns the user's screen size [Blaizer] - SDLx::App warp method renamed to warp_cursor, attribute renamed to gl_attribute [Blaizer] - SDLx::App fix to return the user's resolution to normal when a fullscreen app closes [FROGGS] - SDLx::App removed delay method and deprecated get_ticks [Blaizer] - SDLx::Controller removed eoq, its action is on by default and implemented by stop_handler [Blaizer] - SDLx::Controller made the docs a lot better, even proofread them [Blaizer] - SDLx::Controller pause works by stopping the app [Blaizer] - SDLx::Controller added stopped and paused methods to tell what the app is doing [Blaizer] - SDLx::Controller added max_t param, by default slows down apps going at less than 10 FPS [Blaizer] - SDLx::Controller added time and sleep methods to replace get_ticks and delay [Blaizer] - SDLx::Controller added some tests for pausing and events [Blaizer] - SDLx::Controller removed current_time parameter [Blaizer] - t/core_cd.t: gnu hurd 0.3 handles devices like cdrom strange (skipping tests) [FROGGS] - t/sdlx_fps.t: seems better to try to get 5 fps (slow vm's) [FROGGS] - SDLx::Controller::Interface: weaken tests [FROGGS] - SDL::Mixer::Channels: skipping callback test [FROGGS] - SDL::Version: we can now compare SDL::Version objects like: $version >= 1.2.10 [FROGGS] - SDLx::App::DESTROY: fixed function name for set_video_mode [FROGGS] - SDLx::App: fix for issue 144, setting original screen res when app ends [FROGGS] - t/sdlx_controller_interface.t: adding delay so that slow machines doesnt get a hickup [FROGGS] * 2.536 Jan 04 2011 - using INT2PTR to convert stored pointers to right size and hide warnings [FROGGS] - SDL::Mixer::Channels: using malloc instead of safemalloc [FROGGS] - SDL::Mixer::Channels: get_chunk returns a copy of the retrieved chunk that we can free safely [FROGGS] - SDL::Mixer::MixChunk: added condition to destructor [FROGGS] - SDL::Mixer::Music: added load_MUS_RW [FROGGS] - defines.h: added VERSION_ATLEAST macro [FROGGS] - src/SDLx/Surface.xs: fixed perl-5.8.9 crash while shifting from empty AV [FROGGS] - memory leak fixes [dod] * 2.534 October 27 2011 - SDL::Palette fixed colors() to return an array [Blaizer] - SDL::Video fixed set_colors, set_palette [FROGGS, Blaizer] - SDLx::Text improved error message [garu] - SDLx::Text new getter: font_filename() [garu] - SDLx::Text fixed size() accessor [garu] - SDLx::Text dynamic updating of text [garu] - SDLx::Text new options: shadow, shadow_offset and shadow_color [garu] - SDLx::Text new options: normal, bold, italic, underline, strikethrough [garu] - SDLx::Text examples (zoom, shadow, style) [garu] - SDLx::Text improved documentation [garu] - SDLx::Text word wrapping support [garu] - SDLx::TTF fixed loading error [FROGGS] - SDL::Event fixed SDL_EVENTMASK documentation [jtpalmer] - SDL::RWOps got SDL::RWOps->from_const_mem working, updated docs [FROGGS] - SDL::Video updated xs and docs for blit_surface using undefined rects [FROGGS] - SDLx::Surface: added methods draw_trigon, draw_ellipse, draw_arc and draw_bezier [jtpalmer] - SDLx::Rect: fixed methods copy, move and inflate [jtpalmer] - SDLx::Surface: minor documentation update [jtpalmer] - Using 'perl' instead of 'SDLPerl' to run silent tests on darwin [FROGGS] * 2.533 May 31 2011 - Added preliminary SDLx::Music - Minor fixes for SDLx::Text [garu] - Build requires: perl 5.8.1 is good enough for SDL [FROGGS] - SDLx::Music test: 'require threads' instead of 'use threads' and removed Data::Dumper [FROGGS] - SDLx::Text test: width isnt 53 on windows, made test more tolerant [FROGGS] - SDLx::FPS test: testing with 60fps is too much for some systems (cpantester vm's), reduced to 25 [FROGGS] - src/helper.h: removed newSVsv() since these SV's are not freed till global destruction [FROGGS] * 2.532 March 27 2011 - Tested and released experimental branch - using parent Perls context in SDL::Mixer::Music's callbacks instead of TLS [FROGGS] - Adding sleep(2) to core_palette.t [FROGGS] - Loading threads before Test::More in several SDL::Mixer tests [kthakore] - Allow non-hashref constructor args for SDLx::FPS [jtpalmer] - Fixed examples: replacing $app->stop with exit in pong [kthakore] - Fixed cookbook: using known image file as fallback in pogl_sdl_texture [kthakore] - Fixed examples: pong, starry, tie_matrix, sdlx_sprite_animated [jtpalmer] - Rewrote INSTALL and README file [Pip] - SDLx::Surface: added tests for draw_rect with transparency/translucency [garu] - SDLx::Surface: fixed option handling, center and right alignment in write_to/xy [FROGGS] New features: - SDLx::Surface draw_polygon(), linking GFX to Surfaces when available [FROGGS] - SDLx::Controller exit_on_quit() and eoq() accessors [garu] Changes that may break old code: - SDLx::Controller now handles eoq option as a non handler [kthakore] Experimental features: - SDLx::Controller "delay" option to ease CPU pressure [kthakore] Bugfixes: - SDLx::Controller proper handler initialization [garu] - SDLx::Controller several more tests added [garu] - SDLx::Controller::Interface fixed memory leak [jtpalmer] - SDLx::Controller::Interface fixed angular velocity [jtpalmer] - SDLx::Text using SDL::TTF::Font correctly [FROGGS] - SDLx::Controller keeps track of paused state [Blaizer] - SDLx::Rect proper object construction [garu] * 2.531 Feb 27 2011 - protecting dstrect from modification during SDL_BlitSurface [FROGGS] - installing SDLpp as a console app [kthakore] - improving installation under MacOSX/Darwin [kthakore/FROGGS] - SDLx::Text (and, thus, SDL Perl) now ships with a default FOSS font [garu/perigrin] - SDLx::Text improved text() manipulation [garu] - SDLx::Text added complete documentation [garu] - SDLx::Text all text is now rendered as utf8 [kthakore/garu] - SDLx::Text added accessors for all SDLx::Text attributes [garu] - SDLx::Text text() returns $self, surface() returns $surface [garu] - SDLx::Text tests and w/h methods for SDLx::Text [kthakore/garu] - SDLx::App improved internals [kthakore] - SDLx::App added stash() method [FROGGS] * 2.530 Feb 02 2011 - Fixed SDL threaded free problems with a threadid guard [kthakore/FROGGS] - Clean up malloc calls - Updated Alien::SDL's version to 1.424 [FROGGS] * 2.529 Jan 25 2011 - Adding SDL::get_handle() function to get Win32 API window management support - Fixed pod errors and add new docs * 2.528 Jan 18 2011 - Invalid Alien::SDL Dependency Fix * 2.527 Jan 18 2011 - Critical memory leak fixed in SDLx::App - SMPEG compile test - Experimental SMPEG support, new tests: - Fixed Mac regression due to ppport * 2.526 Dec 31 2010 - Inline with 'SDL' support - Decreasing some SDL_Validate scalar leaks - Fixed bug with SDL::Mixer::Music::hook_music, arg was freed too early [FROGGS] - Added Module::Build::SDL, a helper for creating SDL based modules [kthakore] - AudioSpec callbacks are using *_TLS_CONTEXT macros [FROGGS] - SDL::Timer is using *_TLS_CONTEXT macros [FROGGS] - Fixed typo in MANIFEST.SKIP file, scripts-folder is now in dist [FROGGS] - Using UV instead of IV for SDL::Event attributes [kthakore] - (experimental) Changing *_TLS_CONTEXT to parent perls context in SDL::Mixer::Channels [FROGGS] - Fixed bug with SDL::Mixer::Music::hook_music, arg was freed too early [FROGGS] - Updating Alien::SDL's version to 1.421_3 [FROGGS] - Added 'use SDL::Surface' for SDL::Image, 'use SDL::PixelFormat' for SDL::Surface [kthakore] - Added refaddr optimizations [kthakore] * 2.524 - Fix for t/mixer_channels.t.bak - Allow SDLx::App to be restarted after it has been stoped - FROGGS cleaned up some memory stuff for AudioSpec * 2.523 - Cleaned up how O_OBJECTs are free'd [FROGGS] - SDLx::Surface now DESTROYs the SDL::Surface saving memory [kthakore] - Fixed Icon value for the SDLx::App constructor useage [kthakore] - Added short circuit for varying SDL_Mixer versions for SDLx::Sound [kthakore] * 2.522 - Fixed mistakes in inc/My/Builder/Darwin.pm [FROGGS] * 2.521 - Fixed manifest (missing src/SDLx/Validate.h) [FROGGS] - Updated Alien::SDL's version to 1.421 [FROGGS] * 2.520 - Moved SDLx::Validate to XS - Moved SDLx::Surface (blit, draw_rect) to XS - Created SDLx::Text [garu] - Added exit_on_quit feature for SDLx::App - Added antialias flag for SDLx::Surface::draw_circle - Fixed test plan errors on sdlx_sprite* and sdlx_sfont - Darwin: setting arch to systems arch for gcc [FROGGS] * 2.519 - Removed build option -fPIC for windows [FROGGS] - Throw a warning for missing thread support instead of compile these funtions [FROGGS] - SDLx::Surface has alias for w,h [kthakore] - SDLx::Surface can use array color format for pixels - SDLx::Text added [garu] - SDLx::App->new() has exit on quit option * 2.518 - Major refactor of SDLx::Controller [Blaizer] - Refactor SDLx::Surface code [Blaizer] * 2.517 - Gave SDL::Mixer::Init same signature for varying versions of SDL_Mixer [kthakore] - Fix for 2 tests: interface, layermanager * 2.516 - Fix for test plan in t/sdlx_sound [FROGGS] * 2.515 - Added preliminary SDLx::Sound [rflipo] - Added preliminary SDLx::TTF [kthakore] * 2.514 - Made SDLx::Controller::Interface [kthakore] - Fixed unsigned int bug for get_pixels from surface [kthakore] - Several document fixes - Minor additions to SDLx::Sprite::Animated [jtpalmer] - Using only bmp for that sprite test [jtpalmer] - Added a fix for writing key_sym for a SDL::Event [kthakore] * 2.512 - More tests and implemented more of SDLx::Sprite::Animated [jtpalmer] - Changed from SDL::Rect -> SDLx::Rect in SDLx::Sprite [hmehta] - Added drawing for circles in SDLx::Surface [kthakore] - Fixed test issues [FROGGS] - Added Layer and Layer Managers [FROGGS] - Added SDLx::Sound [rflipo] * 2.511 06 August 2010 - Added fixes for image and gfx uses in Surface [kthakore, garu] - Added raw, binary mode image detection to SDLx::Surafce [garu] - Minor doc fixes - Major segfaults in SDL::GFX::Primitives fixed [kthakore] - Issues with double free fixed for -DDEBUGGING tests [kthakore] - More delay add to test for syncing issues in VM test [FROGGS] - Used SDLx::Validate more [kthakore] - Applied patch for fink compatibiliet FULL_PERL [dmacks, kthakore] - 2 Character fix for set_gamma_ramp in SDL::Video [kthakore] - Added register for windows [kthakore] * 2.510 02 August 2010 - Using bmp file if libpng isnt available in t/sdlx_sfont.t [#177] [FROGGS] - Moved SDLx::Controller::Timer to XS [#180] - Added SDLx::Layermanager (wip) [FROGGS] - Added and cleaned up SDLx::Validate [Blaizer, kthakore] - More tests and clean up in SDLx::Sprite::Animated [jtpalmer] - Fixed free errors for SUSE [kthakore] - Moved Surfaces classes to inside-out OOP [ruoso, jtpalmer] * 2.503 - Removed examples/adventure/ - Removed dashes from SDLx::App constructor [#176] [Blaizer] - Added tests for SDLx::Controller [Blaizer] - Added removing handlers with coderef in SDLx::Controller [Blaizer] - Finished a working version of SDLx::Sprite::Animated [jtpalmer] - Added draw functions to SDLx::Surface - Cleaned up Sprite inheritance from Surface - Fixed bug in SDL::Event::key_mod, it returned pointer instead of int [FROGGS] - SDLx::App now depends on SDLx::Surface * 2.502 - Displaying Alien::SDL's build option for every build step [FROGGS] - Displaying error message if required shared lib is missing [FROGGS] - Added test and docs for SDLx::Surface - Added version guard for older version of pixelinfo struct - Added example of new SDLx::Surface - Fixes for exec.h stack dumper during testing - Added version guard for SDLx::GFX [FROGGS] - Modified SDLx::Sprite to inherit from SDLx::Surface * 2.501 July 10 2010 - Fixes tests for SDLx::TTF and SDL::Surface [FROGGS, kthakore] - Makes ptr to pixels READONLY for some safety - *nix users gets a stack dumper of segfault * 2.500 July 9 2010 - Fixed Memory Leaks due to perl desturct level - Fixed Memory leak in SDL::Mixer::Music - Fixed the test on SDLx::Sprite - Modified SDLx::FPS [Blaizer] - Cleaned up docs [Blaizer] - Cleaned up docs for SDLx::Rect and added Category - Added SDLx::SFont and docs and test - Fixed SDL::Surface->get_pixels_ptr - Removed SDL::OpenGL, SDL::Game::Event - Moved SDL::App -> SDLx::App, SDL::Game -> SDLx::Rect - Fixed SDL::Video->new_from + tests + PDL support - Added SDLx::Surface and SDLx::Surface::Matrix - Added ppport.h support for older perls - MacOSx compile and useage works - Using dummy audiodriver for tests so no sound is played [#163] [FROGGS] - POGL example added - Fixed fail due to to strict test for texture_polygon in SDL::GFX - Created SDLx::FPS [Blaizer] * 2.408 Sun June 13 2010 - Added File::ShareDir as a dep - TODO'd temporary test cases * 2.407 Wed June 02 2010 - Minor fix on BOM marks in test files * 2.406 Tues May 18 2010 - Fixed SDL::Video::list_modes(), it returns now arrayref to SDL::Rects [FROGGS] - Updated docs [Blaizer] - Removed deprecated modules [kthakore, FROGGS] * 2.405 Wed May 05 2010 - Conditional compile on glu.h header [kthakore] {ticket 131} - Documentation cleanup [bricas, kthakore] - Remove usesages of 'new SDL...' [bricas] - Fixed Surface->set_pixels/get_pixel, proper offset depending on Bpp [FROGGS] - Fixed typo for :keysym export tag in Events [FROGGS] - Fixed test fails due to lack of ithread support [FROGGS] * 2.404 Sun Apr 25 2010 - New Downstream Alien fixes for building from scratch [FROGGS] - Removed depreciated SDL::Timer [kthakore] * 2.403 Tue Apr 13 2010 - Fix: build requires now File::Find v0 (instead wrong 2.07) [FROGGS] * 2.402 Fri Apr 09 2010 - Clean up docs [kthakore] - Critical bug with 'static memory and array free in gfx' [kthakore] - Bug fixes for mandriva [kthakore] * 2.400 Tue Apr 06 2010 - MacOSX testing - Pango working with frozen-bubble - Clean up with back compatible stuff - Dropped SVG and Sound - all constants are in their modules, exported by default and documented [FROGGS] - Moved SDL::Net away [FROGGS] - Pango XS/tests/docs [FROGGS] - tests are silent unless verbose mode [FROGGS] - tests don't display video-gfx unless SDL_RELEASE_TESTING [FROGGS] - SDL_VIDEODRIVER is not forced for windows if 'dummy'-driver is set [FROGGS] - examples made to work with new API [mantovani] - manifest fix for MacOSX [kthakore] - some measly docs [kthakore] - TTF XS/tests/docs [#85] [FROGGS] - Minor fixes and cleanup [ kthakore, kmx ] - added more version checks to SDL::GFX XS [#79] [FROGGS] - SDL::Version memory management [kthakore] - Build fixes for mac [kmx] - Directory clean up [FROGGS] - Surface double free fix for picky kernel [kthakore] - SDL::Events documentation [kthakore] - Mixer XS/tests/docs [kthakore, FROGGS] - Fixes for Build system on cygwin [kmx] - Moved mixer code into correct locations [kthakore] - Cleaned up last of SDL xs [kthakore] - Update Build system [kmx] - Fixed up my_perl assumption for non threaded perl [kthakore, ruoso] - 64 bit and MacOSX fixes in builds[ kmx, kthakore ] - Prepared XS to build when no threading available [kthakore] - Minor bug fixes in test for core.t with PERL_SAFE_PUTENV [kthakore] - Fixed serious XS mem leaks in AV* [FROGGS] - Removed usless verify method in SDL.pm [J_King] - GFX rotozoom started [FROGGS] - More docs for GFX [FROGGS] - ithreads support for audio and timer callback [kthakore, ruoso] - SDL::App resize fixed [kthakore, TonyC] {http://rt.cpan.org/Public/Bug/Display.html?id=16984} - Migrated O_OBJECT to thread safe bag [ruoso, kthakore] - Update time docs [kthakore] - SDL::Image implemented and tested [#72] [kthakore] - FreeBSD SDL test clean up [#75] [kthakore] - Handle GFX seperate headers in Build [FROGGS,kthakore] - Started GFX, GFX BlitFunc, GFX Primatives, FPSManager [FROGGS] - Added more init tests [kthakore] - Added condition compile for mixer and ttf [kthakore] - Replaced test file for MixMusic (proper file format) [FROGGS] - Added license information file (README) for test/data [FROGGS] - Moved mixer stuff from SDL:: to SDL::Mixer:: [FROGGS] - General fixup for CPAN - General Memory leaking stopping [kthakore, acme] - More complete unit testing [kthakore, acme, FROGGS] - Fix bug with TTFSizeText, it actually returns 0 on success [acme] - Add display_format_alpha [acme] - Add an example that plays a .WAV sound sample [acme] - Add left/right panning to the mixer [acme] - Throw warning message if header files are missing while Build [FROGGS] - SDL::Mixer::MixChunk and MixMusic structures [acme] - SDL::Events functions [FROGGS] - SDL::Video functions [acme, kthakore] - SDL::Video substructures [acme, kthakore] - SDL::Events substructures [FROGGS, kthakore] - SDL::Event Filtering and user Events 2 way communication [kthakore, FROGGS] - SDL Functions and Clean Up [acme, kthakore, FROGGS] - SDL::Mouse and SDL::Cursor [ kthakore, FROGGS ] - SDL documentation [magnet, kthakore, FROGGS] - Auto-Generated Constants.pm [FROGGS] - Added direct pixel writing examples [kthakore] - Added walking and map moving example [kthakore, FROGGS] * v2.2.3.1 Sept 29 2009 Kartik Thakore - Critical Build.PL fix for META.yml - Doc fix * v2.2.3 Sept 29 2009 Kartik Thakore - More Docs - Experimental Mac version * Sept 11 2009 Kartik Thakore - Moved Debian patches upstream - http://packages.debian.org/changelogs/pool/main/s/sdlperl/current/changelog - credit goes to Ryan Niebur and Daniel Burr * Sept 1 2009 Kartik Thakore - Made Alien::SDL 0.3 dependency - Updated MANIFEST * Aug 31 2009 Kartik Thakore - Fixed broken mixer test on FreeBSD * Aug 27 2009 Kartik Thakore - Made App loop() faster https://rt.cpan.org/Public/Bug/Display.html?id=16988 - Patched support for add support for gluquadric* sub https://rt.cpan.org/Public/Bug/Display.html?id=25598 - Made App init slimer https://rt.cpan.org/Public/Bug/Display.html?id=16987 - Added faster SDL::Color alternative https://rt.cpan.org/Public/Bug/Display.html?id=17975 - Added better error reporting for TTFont errors - Added win32 support https://rt.cpan.org/Ticket/Display.html?id=49003 * Aug 22 2009 Kartik Thakore - Added no index - Added james's openbsd.pm * Aug 18 2009 Kartik Thakore - Fixed constants with help from arodland - Added warning instead of die for frozenbubble's sake - Made a build script for Solaris * Aug 17 2009 Gabor Szabo - Small fixes in the tutorials * Aug 15 2009 Kartik Thakore - fixed undef access to blit in Surface - made sdl font strict acceptable - added cygwin build fix * Aug 7 2009 David J. Goehrig - fixed Darwin build breakage - added support for Mac Ports policies - updated the name of the bundle - added Darwin action ./Build bundle to create SDLPerl.app - fixed SDLPerl.app compilation - added .spl file type for SDLPerl applications! * Aug 5 2009 Kartik Thakore - fixed build after Module::Build breakage - fixed openGL header problems - merged darwin app droper builder * Jul 8 2006 David J. Goehrig - finished embedding data in example scripts - fixed Mac OS X file associations * Mar 15 2006 David J. Goehrig - fixed OpenGL examples to work under MacOS X using the SDL Perl.app bundle * Oct 12 2005 David J. Goehrig - Fixed bug where SDL::App frees underlying Surface via DESTROY - Added SDL_svg support - cleaned up SDL_gfx support in SDL.xs - cleaned up smpeg support in SDL.xs - Added more SDL_sound support - Added basic SDL_RWops support (TODO - perl callback for user defined) * Oct 6 2005 David J. Goehrig - Changed constructors to die upon invalid initialization * Oct 5 2005 David J. Goehrig - Updated the copyright notices as per the LGPL guidelines * Oct 4 2005 David J. Goehrig - Patched Cygwin.pm - Fixed SDL::Rect documentation - Fixed Freebsd build module package designation - Fixed compile and link argument splitting in make/lib/Build.pm - Added Module::Build to MEAT.yml * Sep 23 2004 David J. Goehrig - added SDL::Config tests for SDL_gfx support to test/testgfxroto.pl test/testgfxprim.pl and SDL::Tool::Graphic.pm - removed exists test form SDL::Config::has() - added SDL::PushEvent - added SDL::SetEventType - renamed SDL::OpenGL::glReadPixel(s) - added error message for SDL::OpenGL::glLightModel - cleaned up some formatting issues in OpenGL.xs - fixed bug in SDL::Cdrom (referencing a scalar as a hashref) - added some more documentation to SDL::Color - added SDL::Event::push (Andy Bakun) - fixed documentation and usage of SDL::Event::set - added SDL::Event::type([type]) setting parameter - updated Pod::ToDemo recommends in Build.PL - added chromatic's OpenGL version checks - added GL_ALL_CLIENT_ATTRIB_BITS (in addition to GL_CLIENT_ATTRIB_BITS) - added chromatic's SDL::Build::Cygwin.pm and SDL::Build::Win32.pm - applied chromatic's patches to SDL::Tutorial, etc. for updated Pod::ToDemo * Sep 21 2004 David J. Goehrig - added thread check to SDL::Constants.pm (prevent unsafe SelfLoader) - applied Andy Bakun 's patches to SDL::CreateRGBSurfaceFrom, SDL::SurfaceCopy, and SDL::FreeSurface - applied GLint* to typemap patch - applied glRenderMode patch - applied gluPickMatrix patch - fixed SDL::Surface::blit typo bug - applied glGet patch by Luke (enumerating them all!) - fixed typo bug in make/lib/SDL/Build/Darwin.pm * Feb 23 2004 David J. Goehrig - fixed OpenGL exporting & bootstrapping - added ifdefs in OpenGL for NURBS and GLUTesslator - updated the test scripts to use SDL::Config - added OpenGL test - modified SDL::Config->has to use grep instead - fixed SDL::Cdrom::status - added tests for SDL::Video and SDL::MPEG - fixed gluPerspective in test1.pl & test2.pl - moved SDL::OpenGL::Cube code into test2.pl - released SDL_Perl-2.1.0 * Feb 7 2004 David J. Goehrig - added more SMPEG support - added SDL::Video.pm and SDL::MPEG * Feb 6 2004 David J. Goehrig - removed old build stuff - added SDL::GetAppState - added SDL::GetMouseState and SDL::GetRelativeMouseState - added SDL Perl logo files - Finalized 2.0.5 release * Feb 6 2004 chromatic - added SDL::Tutorial - added SDL::Tutorial::Animation - added SDL::Tutorial::Drawing - added SDL::Tutorial::Images * Feb 5 2004 David J. Goehrig - port chromatic's Module::Build changes to 2.0.4 - moved SDL_TEXTWIDTH to SDL.pm (where EXPORTS BELONG in SDL.pm) - applied chromatic's test directory change to testfonttool.pl - fixed near/far in OpenGL.xs - fixed checkkeys.pl to work with new event structure - fixed testjoystick.pl to use new constants - fixed USE_THREADS issue in build system - fixed typo-bugs in SDL::Tool::Graphic.pm - Updated MANIFEST - fixed SFont support added SDL::SFont.pm - removed SDL::Mixer and SDL::Event constants checks, no export * Dec 21 2003 chromatic - added glDeleteLists - added glReadPixels - added glReadPixel * Sept 2 2003 David J. Goehrig - fixed SDL::Music and SDL::Sound usage in SDL::Mixer * Aug 28 2003 Stephane Desneux - added SDL_VIDEOEXPOSE constant in SDL::Constants * Aug 26 2003 Stephane Desneux - modified Makefile.linux to remove debug unless $ENV{DEBUG} is defined - added scripts/GL/gl.h header (OpenGL 1.4 header from Linux NVidia driver) - modified gl_const.pl to generate SDL::OpenGL::Constants.pm using scripts/GL/gl.h OpenGL constants now uses Exporter and SelfLoader - modified sdl_const.pl to generate SDL::Constants SDL constants now uses Exporter and SelfLoader - modified SDL.pm to export constants from SDL::Constants - modified SDL/OpenGL.pm to export constants from SDL::OpenGL::Constants - changed all function names in OpenGL.xs (xxx replaced by glxxx or gluxxx) changed export in SDL/OpenGL.pm accordingly - removed warning in SDL::Surface::new() * Aug 21 2003 David J. Goehrig - applied Thomas Tongue's MacOS X support patches * Aug 20 2003 David J. Goehrig - fixed SDL::Event bug * Aug 17 2003 David J. Goehrig - applied Tels' call list patches - fixed some general boneheadedness with use strict - got tests really working - applied Russell's SDL::Tool::Graphic::grayScale patch - added glLightModel * Aug 16 2003 David J. Goehrig - applied morgoth.666's patch for glGetdv & others - released 2.0 last week :) * May 23 2003 David J. Goehrig - applied Ryan Hanlon's patch for SDL::TTFont::width * May 22 2003 David J. Goehrig - fixed typemap - changed SDL::Cdrom to use scalar refs - changed SDL::Console to use scalar refs - changed SDL::Event to use scalar refs - changed SDL::Cursor to use scalar refs - changed SDL::Font to use scalar refs - changed SDL::Music to use scalar refs - changed SDL::Palette to use scalar refs - changed SDL::Sound to use scalar refs * May 20 2003 David J. Goehrig - added more OpenGL constants - added OpenGL name & Feedback functions - ported documentation from the website to distro * Mar 13 2003 David J. Goehrig - cleaned up OpenGL constants exportation - fixed glColor alpha - fixed all tests & the causes of failure - fixed TTFont.pm color bug - fixed SDL::Tool::Graphic * Mar 11 2003 David J. Goehrig - changed USE_THREAD support because perl5.8 usually builds with it - added SDL::Constants & SDL::OpenGL::Constants - removed constant functions from XS code (going easier on the linker) - changed version to SDL_perl-2.0-beta1 Way Too much is Broken release - Moved Opt/* to regular & fixing as found broken - 27% of tests now fail! * Feb 25 2003 David J. Goehrig - resized the testmenu.pl script * Jan 6 2003 Wayne Keenan - fixed testjoystick.pl * Jan 4 2003 David J. Goehrig - Added test suite, Thanks Tels - Added SDL::SurfaceCopy finally - Added SDL::Surface::new -surface && -copy constructors - Changed SDL::Tool::Graphic::* to return a new SDL::Surface object - Added SDL::Event::resize_w && SDL::Event::resize_h * Jan 3 2003 David J. Goehrig - SDL_perl-1.20.0 release - fixed default pitch value in SDL::Surface - fixed test/OpenGL/tutorials/*, removed nasty -flags options * Jan 2 2003 David J. Goehrig - Changed SDL::SurfacePixel to work as documented returns SDL_Color* - Changed SDL::Surface::pixel to return SDL::Color object - Changed SDL::SetColorKey to take SDL_Color* - Changed SDL::Surface::set_color_key to take SDL_Color*,SDL::Color, && (x,y) - Added test/testcolor.pl - Fixed SDL::Opt::Surface::pixel to return SDL::Opt::Color objects - Fixed test/testsprite.pl (must call display_format before set_color_key) - removed use strict from test/testmenu.pl - Added SDL::INIT_TIMER * Jan 1 2003 David J. Goehrig - Added a lot of documentation stubs - Added SDL_PREALLOC support - Added SDL_VIDEORESIZE event type - Moved SDL_* SDL_Surface flags EXPORT to SDL::Surface - Added SDL::App::resize & -resizeable tag - Updated README - Added SDL::Opt::Surface, SDL::Opt::Rect, SDL::Opt::Color * Dec 30 2002 David J. Goehrig - Cleaned SDL::App a little more - Patch release SDL_perl-1.19.2 * Dec 29 2002 Tels - Patched SDL::Font includes - Optimized SDL::Rect * Dec 28 2002 Tels - Removed miscelaneous typos - Rewrote utility function SDL::in * Dec 25 2002 Tels - Patched SDL::Timer documentation - Patched SDL::Event documentation - Patched SDL::Cdrom documentation - Patched mail address in Readme * Dec 20 2002 Michael Lamertz - Fixed wrong spelling of XS call to SDL::App::grab_input function * Oct 14 2002 David J. Goehrig - Altered usage message printing behavior for Guillaume - Added Guillaume Cottenceau's 64 bit support patch. - Patch release SDL_perl-1.19.1 * Oct 13 2002 David J. Goehrig - Added ConvertRGB and ConvertRGBA functions, useful for creating OpenGL textures from arbitrary images. - Updated documentation for SDL::Cursor * Oct 11 2002 David J. Goehrig - Added library disable configure options for linux - Released SDL_perl-1.19.0 * Sept 28 2002 David J. Goehrig - Fixed some prototypes (OpenGL happier on Debian) * Sept 5 2002 David J. Goehrig - Optimizaiton in SDL::App::loop, now syncs app only if action called - Added test/testmenu.pl (precursor to a menu class) * Sept 4 2002 Russell Valentine - Added SDL::GraphicTool and testgraphictool.pl * Aug 31 2002 David J. Goehrig - Removed redundant variable in SDL::Mixer::fade_in_music Thanks to Peter BARABAS for finding it * Aug 30 2002 David J. Goehrig - Altered examples to use 16 bit color - Fixed OpenGL/tutorial gluPerspective bugs * Jun 14 2002 David J. Goehrig - Finished color table and convolution support - Added more GLUtesselator support * Jun 10 2002 David J. Goehrig - Added configure script, gnuish build environemnt * Jun 8 2002 David J. Goehrig - Applied Wayne Keenan's win32 build patches * Jun 5 2002 David J. Goehrig - Simply defines GL_ALL_CLIENT_ATTRIB_BITS 0xffffffff - SDL::TTFont added font metric query methods * Jun 4 2002 David J. Goehrig - Fixed GL_ALL_CLIENT_BITS Mesa bug again... It appears to have disappeared after 1.17.2, Thanks Seemant Kulleen & Chris Moeller for pointing it out. * May 28 2002 David J. Goehrig - Added tutorials 7 & 8 to test/OpenGL/tutorial * May 27 2002 David J. Goehrig - Fixed SDL::OpenGL::TexCoordPointer * May 26 2002 David J. Goehrig - SDL_perl-1.18 * May 25 2002 David J. Goehrig - Fixed include paths under linux - Added SDL::Shell.pm and test/testshell.pl * May 24 2002 David J. Goehrig - Fixed more OpenGL GLU tesselator code - Added HAVE_SDL_MIXER around callbacks * May 23 2002 Benedikt Meurer - Added FreeBSD support * May 21 2002 David J. Goehrig - Fixed typo in SDL::App:iconify * May 3 2002 David J. Goehrig - Added still more OpenGL support (errors and textures) - Ported old OpenGL tutorials 2-6 - Fixed more bugs, improved SDL::SurfacePixels - Added support for glu* and GLU_* exportation - Added OpenGLU Nurbs support - Added Nurbs example test/OpenGL/test5.pl - Added more OpenGL projection and color code * May 1 2002 David J. Goehrig - Fixed -Wall (added prototypes, fixed typos, etc) - Improved Makefile, added GLU version detection - Added OpenGL 1.2 dependent feature detection - Added one and two dimension evaluators for OpenGL - Added OpenGL test3.pl and test4.pl * Apr 30 2002 Wayne Keenan - updated Makefile.win32 * Apr 29 2002 Guillaume Cottenceau - updated Makefile.linux * Apr 27 2002 David J. Goehrig - SDL_perl-1.17 release made - updated MANIFEST, etc. * Apr 26 2002 David J. Goehrig - Added more OpenGL support * Apr 23 2002 David J. Goehrig - fixed SFont and SDL_Console support - Added SDL::FontTool - Added test/testfonttool.pl * Apr 19 2002 David J. Goehrig - Added proper SDL_mixer callback support - Broke out linux makefile - Begun OpenGL support - fixed test/testgfxprim.pl screen update bug - fixed test/testgfxroto.pl alpha blits - Added test/logo.png * Apr 16 2002 Wayne Keenan - Added SDL_Console support - Added test/testconsole.pl - Added SDL_gfx support - Added test/testgfxroto.pl and test/testgfxprim.pl - Updated Makefile * Apr 11 2002 David J. Goehrig - Fixed SDL::ColorB typo - Altered SDL::FillRect and SDL::Pixel to use SDL_Color* sources - Documented SDL::Surface, SDL::Color - Added automagic Surface, Color, and Rect support throughout OO layer - Fixed testsprite.pl, graywin.pl to use above classes - Brokeout Win32 Makefile.PL - Fixed SMPEG a little bit * Apr 11 2002 Wayne Keenan - Added SMPEG support - Added test/testsprite.pl * Apr 10 2002 Wayne Keenan - Added Win32 threading support in callbacks - Added SDL_GetKeyState * Apr 8 2002 Wayne Keenan - Added joystick hat constants - Added joystick hat constants to test/testjoystick.pl * Apr 5 2002 David J. Goehrig - Fixed SDL_perl.spec according to most of Guillaume's suggestions - Expanded the build_rpms script to upload to sdlperl.org - Added SDL::Timer.pm for timer objects - Added test/testtimer.pl * Apr 4 2002 David J. Goehrig - Added SDL_perl.spec for RPM/SRPM builds - Fixed typo in SDL_perl.xs * Apr 4 2002 Wayne Keenan - Fixed Makefile.PL for Win32 builds * Apr 4 2002 Russell Valentine - Added test/testjoystick.pl * Apr 3 2002 David J. Goehrig - Fixed SDL::TTFont support - Fixed SDL::Color support - Applied Wayne's changes for Win32 support - Moved XS code to SDL_perl.xs - Created SDL_perl.pm - Altered SDL.pm to use SDL_perl.pm * Apr 1 2002 David J. Goehrig - Added SDL::Color - Added SDL::TTFont - Added SDL::App::loop - More Documentation * Mar 31 2002 David J. Goehrig - Upgraded SFont to version 1.5 - Removed old examples and began porting SDL test programs to perl - Updated key state modifier code - Added audio processing callbacks and driver interrogation * Mar 14 2002 David J. Goehrig - Added YUV Overlay support - Added more WM support (toggle fullscreen,grab input,iconify window) - Added Resize Event support - Added Joystick Events support - Added audio status query support - Removed TrackListing * Mar 9 2002 David J. Goehrig - Generated sdlpl compatability layer ( known to be buggy ) - Bug fixes in OO modules, frozen-bubble now runs under 1.14 - Added patches directory to contain fixes for other people's programs - Added some Set/GetClipRect support - More Documentation - Began SDL_ttf support - Began SDL_net support * Feb 28 2002 David J. Goehrig - Fixed-up OO modules to use new API - Added AddTimer and RemoveTimer Support - Added Joystick Support - Added full Init/Quit support for subsystems - Began Documentation Rewrite - Began 1.12 compatability layer * Feb 26 2002 David J. Goehrig - Altered API / Simplified namespace - Removed SDL_Image, SDL_Mixer, and OpenGL dependencies - Added extension autodetection to config process * Jan 28 2002 Guillaume Cottenceau - Fixed a deallocation bug in Sound.pm * Jan 22 2002 Guillaume Cottenceau - Fixed a deallocation bug in Music.pm * Dec 18 2000 David J. Goehrig - Removed clipping fuctions - Updated Readme - Moved more to sourceforge * Aug 5 2000 Wayne Keenan - Open GL support - OpenGL Glut like Application framework - more video flags - creating Surface from pre-allocated memory - BMP screen dump - added state dumpers as an debugging aid - bug fixes * May 26 2000 David J. Goehrig - Added SFont support. * May 22 2000 David J. Goehrig - Finished the first release SDL-2.540/COPYING000444000765000024 5531411760240073 13470 0ustar00jtpalmerstaff000000000000 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS SDL-2.540/INSTALL000444000765000024 616711760240072 13447 0ustar00jtpalmerstaff000000000000------------------------------------------------------------------------------ | SDL Perl | INSTALL Information Doc ------------------------- Table of Contents: ----------------- * System Requirements * Grabbing the Necessary Version of SDL Perl, Release * Same as Above, but Bleeding Edge System Requirements: ------------------- SDL Perl's package on your system should be able to install everything needed for the SDL module to be properly installed. FYI, this may include the following libraries (as pre-compiled DLLs for Microsoft Windows platforms): * libSDL * png * tiff * jpeg * smpeg * OpenGL (GL) * GLUT (GLU) * SDL_image * SDL_mixer * SDL_gfx * SDL_ttf Grabbing the Necessary Version of SDL Perl, Release: --------------------------------------------------- It might be a good idea to run from your shell prompt (where the '$' dollar- sign denotes the prompt itself, so what you should type follows it): $ cpan You will be presented with the CPAN prompt at this point. CPAN> upgrade /.*/ Yeah, CPAN> denotes we are now prompted inside CPAN and recommending upgrading everything out-of-date. Then with your site up-to-date: CPAN> install SDL This should fully prepare you to run and program SDL Perl applications. Same as Above, but Bleeding Edge: -------------------------------- As of Thu Mar 17, 2011, you'll need git installed on your machine in order to clone from GitHub by running: $ git clone https://GitHub.Com/PerlGameDev/SDL.git To update your clone, go into the directory that the git repo is in (i.e., into the git repo itself, not merely the directory that you did the `git clone` in) and type the following: $ git pull Now to build, run: $ perl Build.PL Then to test: $ perl Build test Only MacOS used to also require you to: $ perl Build bundle ... but that shouldn't be necessary anymore. Katrina Payne (the original author of this file) had a cute anecdote here about SDL Perl being a blushing girl who fails testing and enjoys watching InuYasha. Quirky! ;) I couldn't quite bear to replace it all so here's her paragraph of glory from Thu Oct 22, 2009: "Then if there is an issue getting herself all pretty this command will have her just stop there... your best bet is to give her comfort food. Of the kind of reports on the SDL Perl tracker, as I am not really certain if SDL Perl likes Hagan Daaz, but then I have not ask her, and well, you really are not in the place to ask. After all, she will likely blame you or your system for why she does not look pretty--programs that end up not compiling properly tend to have self esteem issues. Sending something to the tracker pretty much is a way of telling her you are interested... this usually helps her to stop watching old reruns of Inu Yasha (yeah, SDL Perl is still kind of young) and get back to feeling better." Finally you're done with melodramatic testing and ready to type: # perl Build install The '#' above denotes that this command should be entered from a root or super-user account which has sufficient module installation permissions. Then your installation of SDL Perl should be complete. Yay! Enjoy! =) SDL-2.540/MANIFEST000444000765000024 1736611760240072 13572 0ustar00jtpalmerstaff000000000000Build.PL CHANGELOG COPYING examples/cookbook/1.pl examples/cookbook/openglapp.pl examples/cookbook/pdl.pl examples/cookbook/pogl_sdl_texture.pl examples/GFX/script_roto.pl examples/pixel_operations/fast_pixel_write.pl examples/pixel_operations/sols/ch02.pl examples/pixel_operations/starry.pl examples/pixel_operations/tie_matrix.pl examples/SDLx/app.pl examples/SDLx/music.pl examples/SDLx/pong.pl examples/SDLx/SDLx_C_Interface.pl examples/SDLx/SDLx_controller_two_squares.pl examples/SDLx/SDLx_LayerManager_Chess.pl examples/SDLx/SDLx_Sound.pl examples/SDLx/SDLx_sprite.pl examples/SDLx/SDLx_sprite_animated.pl examples/SDLx/SDLx_text.pl examples/SDLx/SDLx_text_shadow.pl examples/SDLx/SDLx_text_styles.pl examples/SDLx/SDLx_text_wordwrap.pl examples/SDLx/SDLx_text_zoom.pl inc/My/Builder.pm inc/My/Builder/Darwin.pm inc/My/Builder/Unix.pm inc/My/Builder/Windows.pm INSTALL lib/Module/Build/SDL.pm lib/pods/SDL.pod lib/pods/SDL/Audio.pod lib/pods/SDL/AudioCVT.pod lib/pods/SDL/AudioSpec.pod lib/pods/SDL/CD.pod lib/pods/SDL/CDROM.pod lib/pods/SDL/CDTrack.pod lib/pods/SDL/Color.pod lib/pods/SDL/Cookbook.pod lib/pods/SDL/Cookbook/OpenGL.pod lib/pods/SDL/Cookbook/PDL.pod lib/pods/SDL/Credits.pod lib/pods/SDL/Cursor.pod lib/pods/SDL/Deprecated.pod lib/pods/SDL/Event.pod lib/pods/SDL/Events.pod lib/pods/SDL/GFX/BlitFunc.pod lib/pods/SDL/GFX/FPSManager.pod lib/pods/SDL/GFX/Framerate.pod lib/pods/SDL/GFX/ImageFilter.pod lib/pods/SDL/GFX/Primitives.pod lib/pods/SDL/GFX/Rotozoom.pod lib/pods/SDL/Image.pod lib/pods/SDL/Joystick.pod lib/pods/SDL/Mixer.pod lib/pods/SDL/Mixer/Channels.pod lib/pods/SDL/Mixer/Effects.pod lib/pods/SDL/Mixer/Groups.pod lib/pods/SDL/Mixer/MixChunk.pod lib/pods/SDL/Mixer/MixMusic.pod lib/pods/SDL/Mixer/Music.pod lib/pods/SDL/Mixer/Samples.pod lib/pods/SDL/Mouse.pod lib/pods/SDL/MPEG.pod lib/pods/SDL/MultiThread.pod lib/pods/SDL/Overlay.pod lib/pods/SDL/Palette.pod lib/pods/SDL/Pango.pod lib/pods/SDL/Pango/Context.pod lib/pods/SDL/PixelFormat.pod lib/pods/SDL/Platform.pod lib/pods/SDL/Rect.pod lib/pods/SDL/RWOps.pod lib/pods/SDL/SMPEG.pod lib/pods/SDL/Surface.pod lib/pods/SDL/Time.pod lib/pods/SDL/TTF.pod lib/pods/SDL/TTF/Font.pod lib/pods/SDL/Tutorial.pod lib/pods/SDL/Tutorial/Animation.pod lib/pods/SDL/Tutorial/LunarLander.pod lib/pods/SDL/Version.pod lib/pods/SDL/Video.pod lib/pods/SDL/VideoInfo.pod lib/pods/SDLx/App.pod lib/pods/SDLx/Controller.pod lib/pods/SDLx/Controller/Interface.pod lib/pods/SDLx/Controller/State.pod lib/pods/SDLx/Layer.pod lib/pods/SDLx/LayerManager.pod lib/pods/SDLx/Music.pod lib/pods/SDLx/Rect.pod lib/pods/SDLx/SFont.pod lib/pods/SDLx/Sound.pod lib/pods/SDLx/Sprite.pod lib/pods/SDLx/Sprite/Animated.pod lib/pods/SDLx/Surface.pod lib/pods/SDLx/Text.pod lib/SDL.pm lib/SDL/Audio.pm lib/SDL/AudioCVT.pm lib/SDL/AudioSpec.pm lib/SDL/CD.pm lib/SDL/CDROM.pm lib/SDL/CDTrack.pm lib/SDL/Color.pm lib/SDL/Config.pm lib/SDL/Constants.pm lib/SDL/Cursor.pm lib/SDL/Event.pm lib/SDL/Events.pm lib/SDL/GFX.pm lib/SDL/GFX/BlitFunc.pm lib/SDL/GFX/FPSManager.pm lib/SDL/GFX/Framerate.pm lib/SDL/GFX/ImageFilter.pm lib/SDL/GFX/Primitives.pm lib/SDL/GFX/Rotozoom.pm lib/SDL/Image.pm lib/SDL/Internal/Loader.pm lib/SDL/Joystick.pm lib/SDL/Mixer.pm lib/SDL/Mixer/Channels.pm lib/SDL/Mixer/Effects.pm lib/SDL/Mixer/Groups.pm lib/SDL/Mixer/MixChunk.pm lib/SDL/Mixer/MixMusic.pm lib/SDL/Mixer/Music.pm lib/SDL/Mixer/Samples.pm lib/SDL/Mouse.pm lib/SDL/MultiThread.pm lib/SDL/Net.pm lib/SDL/Net/IPaddress.pm lib/SDL/Net/TCP.pm lib/SDL/Net/UDP.pm lib/SDL/Overlay.pm lib/SDL/Palette.pm lib/SDL/Pango.pm lib/SDL/Pango/Context.pm lib/SDL/PixelFormat.pm lib/SDL/Rect.pm lib/SDL/RWOps.pm lib/SDL/SMPEG.pm lib/SDL/SMPEG/Info.pm lib/SDL/Surface.pm lib/SDL/Time.pm lib/SDL/TTF.pm lib/SDL/TTF/Font.pm lib/SDL/TTFont.pm lib/SDL/Tutorial.pm lib/SDL/Tutorial/Animation.pm lib/SDL/Tutorial/LunarLander.pm lib/SDL/Version.pm lib/SDL/Video.pm lib/SDL/VideoInfo.pm lib/SDL_perl.pm lib/SDLx/App.pm lib/SDLx/Controller.pm lib/SDLx/Controller/Interface.pm lib/SDLx/Controller/State.pm lib/SDLx/Controller/Timer.pm lib/SDLx/FPS.pm lib/SDLx/Layer.pm lib/SDLx/LayerManager.pm lib/SDLx/Music.pm lib/SDLx/Music/Data.pm lib/SDLx/Music/Default.pm lib/SDLx/Rect.pm lib/SDLx/SFont.pm lib/SDLx/Sound.pm lib/SDLx/Sprite.pm lib/SDLx/Sprite/Animated.pm lib/SDLx/Surface.pm lib/SDLx/Surface/TiedMatrix.pm lib/SDLx/Surface/TiedMatrixRow.pm lib/SDLx/Text.pm lib/SDLx/TTF.pm lib/SDLx/Validate.pm MacOSX/Info.plist MacOSX/main.c MacOSX/Makefile.test MacOSX/SDLPerl.icns MANIFEST This list of files META.yml OFL-FAQ.txt OFL.txt README scripts/auto_constants.pl scripts/const.pl scripts/gl_const.pl scripts/MultiThreadPOC.pl scripts/sdl_const.pl scripts/sdl_module_maker.pl scripts/SDLpp.pl share/GenBasR.ttf src/Core/Audio.xs src/Core/CDROM.xs src/Core/Events.xs src/Core/Joystick.xs src/Core/Mouse.xs src/Core/MultiThread.xs src/Core/objects/AudioCVT.xs src/Core/objects/AudioSpec.xs src/Core/objects/CD.xs src/Core/objects/CDTrack.xs src/Core/objects/Color.xs src/Core/objects/Cursor.xs src/Core/objects/Event.xs src/Core/objects/keysym.xs src/Core/objects/Overlay.xs src/Core/objects/Palette.xs src/Core/objects/PixelFormat.xs src/Core/objects/Rect.xs src/Core/objects/RWOps.xs src/Core/objects/Surface.xs src/Core/objects/typemap src/Core/objects/Version.xs src/Core/objects/VideoInfo.xs src/Core/Time.xs src/Core/Video.xs src/defines.h src/GFX/BlitFunc.xs src/GFX/CHANGELOG src/GFX/FPSManager.xs src/GFX/Framerate.xs src/GFX/GFX.xs src/GFX/ImageFilter.xs src/GFX/Primitives.xs src/GFX/README src/GFX/Rotozoom.xs src/helper.h src/Image.xs src/Mixer/Channels.xs src/Mixer/Effects.xs src/Mixer/Groups.xs src/Mixer/Mixer.xs src/Mixer/Music.xs src/Mixer/objects/MixChunk.xs src/Mixer/objects/MixMusic.xs src/Mixer/README src/Mixer/Samples.xs src/Pango/objects/Context.xs src/Pango/Pango.xs src/ppport.h src/SDL.xs src/SDLx/Controller/Interface.h src/SDLx/Controller/Interface.xs src/SDLx/Controller/State.xs src/SDLx/Layer.h src/SDLx/Layer.xs src/SDLx/LayerManager.h src/SDLx/LayerManager.xs src/SDLx/SFont.h src/SDLx/SFont.xs src/SDLx/Surface.xs src/SDLx/Timer.h src/SDLx/Timer.xs src/SDLx/Validate.h src/SDLx/Validate.xs src/SMPEG.xs src/SMPEG/Info.xs src/support/darwin_support.h src/support/darwin_support.m src/support/win32.c src/TTF/objects/Font.xs src/TTF/README src/TTF/TTF.xs t/00-load.t t/colorpm.t t/config.t t/core.t t/core_audio.t t/core_audiospec.t t/core_cd.t t/core_error.t t/core_events.t t/core_joystick.t t/core_mouse.t t/core_multi.t t/core_overlay.t t/core_palette.t t/core_rect.t t/core_rwops.t t/core_surface.t t/core_timer.t t/core_version.t t/core_video.t t/core_video_convert_surface.t t/core_video_gamma.t t/extendingrect.t t/gfx.t t/gfx_fpsmanager.t t/gfx_framerate.t t/gfx_imagefilter.t t/gfx_primitives.t t/gfx_primitives2.t t/gfx_rotozoom.t t/image.t t/image_xpm_array.t t/lib/SDL/TestTool.pm t/mixer.t t/mixer_channels.t t/mixer_effects.t t/mixer_groups.t t/mixer_mixchunk.t t/mixer_mixmusic.t t/mixer_music.t t/mixer_samples.t t/pango.t t/sdlgamerect.t t/sdlx_app.t t/sdlx_controller.t t/sdlx_controller_interface.t t/sdlx_fps.t t/sdlx_layermanager.t t/sdlx_music.t t/sdlx_rect.t t/sdlx_sfont.t t/sdlx_sound.t t/sdlx_sprite.t t/sdlx_sprite_animated.t t/sdlx_surface.t t/sdlx_text.t t/sdlx_validate.t t/smpeg.t t/ttf.t t/ttf_font.t test/data/24P_Arial_NeonYellow.png test/data/24P_Copperplate_Blue.png test/data/5x7.fnt test/data/button_dark.png test/data/button_light.png test/data/chest.png test/data/electrohar.ttf test/data/font.bmp test/data/font.png test/data/hero.bmp test/data/hero.png test/data/highlight.png test/data/icon.bmp test/data/LargeFont.bmp test/data/logo.png test/data/menu.png test/data/pattern_red_white_2x2.bmp test/data/picture.bmp test/data/picture.jpg test/data/picture.tif test/data/README test/data/sample.wav test/data/silence.wav test/data/test-mpeg.mpg test/data/tribe_i.wav test/data/wood_dark.png test/data/wood_light.png TODO typemap META.json SDL-2.540/META.json000444000765000024 2334511760240072 14054 0ustar00jtpalmerstaff000000000000{ "abstract" : "SDL bindings to Perl", "author" : [ "Kartik Thakore " ], "dynamic_config" : 1, "generated_by" : "Module::Build version 0.4, CPAN::Meta::Converter version 2.120630", "license" : [ "open_source" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "SDL", "prereqs" : { "build" : { "requires" : { "Alien::SDL" : "1.426", "Capture::Tiny" : "0", "ExtUtils::CBuilder" : "0", "File::Find" : "0", "File::ShareDir" : "1.0", "Scalar::Util" : "0", "Test::Most" : "0.21", "Test::Simple" : "0.88", "Tie::Simple" : "0" } }, "configure" : { "requires" : { "Alien::SDL" : "1.426", "Capture::Tiny" : "0", "ExtUtils::CBuilder" : "0.260301", "File::Find" : "0", "File::ShareDir" : "1.0", "Module::Build" : "0.4", "Tie::Simple" : "0" } }, "runtime" : { "requires" : { "CPAN" : "1.92", "File::ShareDir" : "1.0", "Scalar::Util" : "0", "Tie::Simple" : "0", "perl" : "5.008000" } } }, "provides" : { "Module::Build::SDL" : { "file" : "lib/Module/Build/SDL.pm", "version" : 0 }, "SDL" : { "file" : "lib/SDL.pm", "version" : "2.540" }, "SDL::Audio" : { "file" : "lib/SDL/Audio.pm", "version" : 0 }, "SDL::AudioCVT" : { "file" : "lib/SDL/AudioCVT.pm", "version" : 0 }, "SDL::AudioSpec" : { "file" : "lib/SDL/AudioSpec.pm", "version" : 0 }, "SDL::CD" : { "file" : "lib/SDL/CD.pm", "version" : 0 }, "SDL::CDROM" : { "file" : "lib/SDL/CDROM.pm", "version" : 0 }, "SDL::CDTrack" : { "file" : "lib/SDL/CDTrack.pm", "version" : 0 }, "SDL::Color" : { "file" : "lib/SDL/Color.pm", "version" : 0 }, "SDL::Config" : { "file" : "lib/SDL/Config.pm", "version" : 0 }, "SDL::Constants" : { "file" : "lib/SDL/Constants.pm", "version" : 0 }, "SDL::Cursor" : { "file" : "lib/SDL/Cursor.pm", "version" : 0 }, "SDL::Event" : { "file" : "lib/SDL/Event.pm", "version" : 0 }, "SDL::Events" : { "file" : "lib/SDL/Events.pm", "version" : 0 }, "SDL::GFX" : { "file" : "lib/SDL/GFX.pm", "version" : 0 }, "SDL::GFX::BlitFunc" : { "file" : "lib/SDL/GFX/BlitFunc.pm", "version" : 0 }, "SDL::GFX::FPSManager" : { "file" : "lib/SDL/GFX/FPSManager.pm", "version" : 0 }, "SDL::GFX::Framerate" : { "file" : "lib/SDL/GFX/Framerate.pm", "version" : 0 }, "SDL::GFX::ImageFilter" : { "file" : "lib/SDL/GFX/ImageFilter.pm", "version" : 0 }, "SDL::GFX::Primitives" : { "file" : "lib/SDL/GFX/Primitives.pm", "version" : 0 }, "SDL::GFX::Rotozoom" : { "file" : "lib/SDL/GFX/Rotozoom.pm", "version" : 0 }, "SDL::Image" : { "file" : "lib/SDL/Image.pm", "version" : 0 }, "SDL::Internal::Loader" : { "file" : "lib/SDL/Internal/Loader.pm", "version" : 0 }, "SDL::Joystick" : { "file" : "lib/SDL/Joystick.pm", "version" : 0 }, "SDL::Mixer" : { "file" : "lib/SDL/Mixer.pm", "version" : 0 }, "SDL::Mixer::Channels" : { "file" : "lib/SDL/Mixer/Channels.pm", "version" : 0 }, "SDL::Mixer::Effects" : { "file" : "lib/SDL/Mixer/Effects.pm", "version" : 0 }, "SDL::Mixer::Groups" : { "file" : "lib/SDL/Mixer/Groups.pm", "version" : 0 }, "SDL::Mixer::MixChunk" : { "file" : "lib/SDL/Mixer/MixChunk.pm", "version" : 0 }, "SDL::Mixer::MixMusic" : { "file" : "lib/SDL/Mixer/MixMusic.pm", "version" : 0 }, "SDL::Mixer::Music" : { "file" : "lib/SDL/Mixer/Music.pm", "version" : 0 }, "SDL::Mixer::Samples" : { "file" : "lib/SDL/Mixer/Samples.pm", "version" : 0 }, "SDL::Mouse" : { "file" : "lib/SDL/Mouse.pm", "version" : 0 }, "SDL::MultiThread" : { "file" : "lib/SDL/MultiThread.pm", "version" : 0 }, "SDL::Net" : { "file" : "lib/SDL/Net.pm", "version" : 0 }, "SDL::Net::IPaddress" : { "file" : "lib/SDL/Net/IPaddress.pm", "version" : 0 }, "SDL::Net::TCP" : { "file" : "lib/SDL/Net/TCP.pm", "version" : 0 }, "SDL::Net::UDP" : { "file" : "lib/SDL/Net/UDP.pm", "version" : 0 }, "SDL::Overlay" : { "file" : "lib/SDL/Overlay.pm", "version" : 0 }, "SDL::Palette" : { "file" : "lib/SDL/Palette.pm", "version" : 0 }, "SDL::Pango" : { "file" : "lib/SDL/Pango.pm", "version" : 0 }, "SDL::Pango::Context" : { "file" : "lib/SDL/Pango/Context.pm", "version" : 0 }, "SDL::PixelFormat" : { "file" : "lib/SDL/PixelFormat.pm", "version" : 0 }, "SDL::RWOps" : { "file" : "lib/SDL/RWOps.pm", "version" : 0 }, "SDL::Rect" : { "file" : "lib/SDL/Rect.pm", "version" : 0 }, "SDL::SMPEG" : { "file" : "lib/SDL/SMPEG.pm", "version" : 0 }, "SDL::SMPEG::Info" : { "file" : "lib/SDL/SMPEG/Info.pm", "version" : 0 }, "SDL::Surface" : { "file" : "lib/SDL/Surface.pm", "version" : 0 }, "SDL::TTF" : { "file" : "lib/SDL/TTF.pm", "version" : 0 }, "SDL::TTF::Font" : { "file" : "lib/SDL/TTF/Font.pm", "version" : 0 }, "SDL::TTFont" : { "file" : "lib/SDL/TTFont.pm", "version" : 0 }, "SDL::Time" : { "file" : "lib/SDL/Time.pm", "version" : 0 }, "SDL::Tutorial" : { "file" : "lib/SDL/Tutorial.pm", "version" : 0 }, "SDL::Tutorial::Animation" : { "file" : "lib/SDL/Tutorial/Animation.pm", "version" : 0 }, "SDL::Tutorial::LunarLander" : { "file" : "lib/SDL/Tutorial/LunarLander.pm", "version" : 0 }, "SDL::Version" : { "file" : "lib/SDL/Version.pm", "version" : 0 }, "SDL::Video" : { "file" : "lib/SDL/Video.pm", "version" : 0 }, "SDL::VideoInfo" : { "file" : "lib/SDL/VideoInfo.pm", "version" : 0 }, "SDL_perl" : { "file" : "lib/SDL_perl.pm", "version" : 0 }, "SDLx::App" : { "file" : "lib/SDLx/App.pm", "version" : 0 }, "SDLx::Controller" : { "file" : "lib/SDLx/Controller.pm", "version" : 0 }, "SDLx::Controller::Interface" : { "file" : "lib/SDLx/Controller/Interface.pm", "version" : 0 }, "SDLx::Controller::State" : { "file" : "lib/SDLx/Controller/State.pm", "version" : 0 }, "SDLx::Controller::Timer" : { "file" : "lib/SDLx/Controller/Timer.pm", "version" : 0 }, "SDLx::FPS" : { "file" : "lib/SDLx/FPS.pm", "version" : 0 }, "SDLx::Layer" : { "file" : "lib/SDLx/Layer.pm", "version" : 0 }, "SDLx::LayerManager" : { "file" : "lib/SDLx/LayerManager.pm", "version" : 0 }, "SDLx::Music" : { "file" : "lib/SDLx/Music.pm", "version" : 0 }, "SDLx::Music::Data" : { "file" : "lib/SDLx/Music/Data.pm", "version" : 0 }, "SDLx::Music::Default" : { "file" : "lib/SDLx/Music/Default.pm", "version" : 0 }, "SDLx::Rect" : { "file" : "lib/SDLx/Rect.pm", "version" : "0.01" }, "SDLx::SFont" : { "file" : "lib/SDLx/SFont.pm", "version" : 0 }, "SDLx::Sound" : { "file" : "lib/SDLx/Sound.pm", "version" : 0 }, "SDLx::Sprite" : { "file" : "lib/SDLx/Sprite.pm", "version" : 0 }, "SDLx::Sprite::Animated" : { "file" : "lib/SDLx/Sprite/Animated.pm", "version" : 0 }, "SDLx::Surface" : { "file" : "lib/SDLx/Surface.pm", "version" : 0 }, "SDLx::Surface::TiedMatrix" : { "file" : "lib/SDLx/Surface/TiedMatrix.pm", "version" : 0 }, "SDLx::Surface::TiedMatrixRow" : { "file" : "lib/SDLx/Surface/TiedMatrixRow.pm", "version" : 0 }, "SDLx::TTF" : { "file" : "lib/SDLx/TTF.pm", "version" : 0 }, "SDLx::Text" : { "file" : "lib/SDLx/Text.pm", "version" : 0 }, "SDLx::Validate" : { "file" : "lib/SDLx/Validate.pm", "version" : 0 } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "http://github.com/PerlGameDev/SDL/issues" }, "license" : [ "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt" ], "repository" : { "url" : "http://github.com/PerlGameDev/SDL" } }, "version" : "2.540" } SDL-2.540/META.yml000444000765000024 1406311760240073 13702 0ustar00jtpalmerstaff000000000000--- abstract: 'SDL bindings to Perl' author: - 'Kartik Thakore ' build_requires: Alien::SDL: 1.426 Capture::Tiny: 0 ExtUtils::CBuilder: 0 File::Find: 0 File::ShareDir: 1.0 Scalar::Util: 0 Test::Most: 0.21 Test::Simple: 0.88 Tie::Simple: 0 configure_requires: Alien::SDL: 1.426 Capture::Tiny: 0 ExtUtils::CBuilder: 0.260301 File::Find: 0 File::ShareDir: 1.0 Module::Build: 0.4 Tie::Simple: 0 dynamic_config: 1 generated_by: 'Module::Build version 0.4, CPAN::Meta::Converter version 2.120630' license: open_source meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: SDL provides: Module::Build::SDL: file: lib/Module/Build/SDL.pm version: 0 SDL: file: lib/SDL.pm version: 2.540 SDL::Audio: file: lib/SDL/Audio.pm version: 0 SDL::AudioCVT: file: lib/SDL/AudioCVT.pm version: 0 SDL::AudioSpec: file: lib/SDL/AudioSpec.pm version: 0 SDL::CD: file: lib/SDL/CD.pm version: 0 SDL::CDROM: file: lib/SDL/CDROM.pm version: 0 SDL::CDTrack: file: lib/SDL/CDTrack.pm version: 0 SDL::Color: file: lib/SDL/Color.pm version: 0 SDL::Config: file: lib/SDL/Config.pm version: 0 SDL::Constants: file: lib/SDL/Constants.pm version: 0 SDL::Cursor: file: lib/SDL/Cursor.pm version: 0 SDL::Event: file: lib/SDL/Event.pm version: 0 SDL::Events: file: lib/SDL/Events.pm version: 0 SDL::GFX: file: lib/SDL/GFX.pm version: 0 SDL::GFX::BlitFunc: file: lib/SDL/GFX/BlitFunc.pm version: 0 SDL::GFX::FPSManager: file: lib/SDL/GFX/FPSManager.pm version: 0 SDL::GFX::Framerate: file: lib/SDL/GFX/Framerate.pm version: 0 SDL::GFX::ImageFilter: file: lib/SDL/GFX/ImageFilter.pm version: 0 SDL::GFX::Primitives: file: lib/SDL/GFX/Primitives.pm version: 0 SDL::GFX::Rotozoom: file: lib/SDL/GFX/Rotozoom.pm version: 0 SDL::Image: file: lib/SDL/Image.pm version: 0 SDL::Internal::Loader: file: lib/SDL/Internal/Loader.pm version: 0 SDL::Joystick: file: lib/SDL/Joystick.pm version: 0 SDL::Mixer: file: lib/SDL/Mixer.pm version: 0 SDL::Mixer::Channels: file: lib/SDL/Mixer/Channels.pm version: 0 SDL::Mixer::Effects: file: lib/SDL/Mixer/Effects.pm version: 0 SDL::Mixer::Groups: file: lib/SDL/Mixer/Groups.pm version: 0 SDL::Mixer::MixChunk: file: lib/SDL/Mixer/MixChunk.pm version: 0 SDL::Mixer::MixMusic: file: lib/SDL/Mixer/MixMusic.pm version: 0 SDL::Mixer::Music: file: lib/SDL/Mixer/Music.pm version: 0 SDL::Mixer::Samples: file: lib/SDL/Mixer/Samples.pm version: 0 SDL::Mouse: file: lib/SDL/Mouse.pm version: 0 SDL::MultiThread: file: lib/SDL/MultiThread.pm version: 0 SDL::Net: file: lib/SDL/Net.pm version: 0 SDL::Net::IPaddress: file: lib/SDL/Net/IPaddress.pm version: 0 SDL::Net::TCP: file: lib/SDL/Net/TCP.pm version: 0 SDL::Net::UDP: file: lib/SDL/Net/UDP.pm version: 0 SDL::Overlay: file: lib/SDL/Overlay.pm version: 0 SDL::Palette: file: lib/SDL/Palette.pm version: 0 SDL::Pango: file: lib/SDL/Pango.pm version: 0 SDL::Pango::Context: file: lib/SDL/Pango/Context.pm version: 0 SDL::PixelFormat: file: lib/SDL/PixelFormat.pm version: 0 SDL::RWOps: file: lib/SDL/RWOps.pm version: 0 SDL::Rect: file: lib/SDL/Rect.pm version: 0 SDL::SMPEG: file: lib/SDL/SMPEG.pm version: 0 SDL::SMPEG::Info: file: lib/SDL/SMPEG/Info.pm version: 0 SDL::Surface: file: lib/SDL/Surface.pm version: 0 SDL::TTF: file: lib/SDL/TTF.pm version: 0 SDL::TTF::Font: file: lib/SDL/TTF/Font.pm version: 0 SDL::TTFont: file: lib/SDL/TTFont.pm version: 0 SDL::Time: file: lib/SDL/Time.pm version: 0 SDL::Tutorial: file: lib/SDL/Tutorial.pm version: 0 SDL::Tutorial::Animation: file: lib/SDL/Tutorial/Animation.pm version: 0 SDL::Tutorial::LunarLander: file: lib/SDL/Tutorial/LunarLander.pm version: 0 SDL::Version: file: lib/SDL/Version.pm version: 0 SDL::Video: file: lib/SDL/Video.pm version: 0 SDL::VideoInfo: file: lib/SDL/VideoInfo.pm version: 0 SDL_perl: file: lib/SDL_perl.pm version: 0 SDLx::App: file: lib/SDLx/App.pm version: 0 SDLx::Controller: file: lib/SDLx/Controller.pm version: 0 SDLx::Controller::Interface: file: lib/SDLx/Controller/Interface.pm version: 0 SDLx::Controller::State: file: lib/SDLx/Controller/State.pm version: 0 SDLx::Controller::Timer: file: lib/SDLx/Controller/Timer.pm version: 0 SDLx::FPS: file: lib/SDLx/FPS.pm version: 0 SDLx::Layer: file: lib/SDLx/Layer.pm version: 0 SDLx::LayerManager: file: lib/SDLx/LayerManager.pm version: 0 SDLx::Music: file: lib/SDLx/Music.pm version: 0 SDLx::Music::Data: file: lib/SDLx/Music/Data.pm version: 0 SDLx::Music::Default: file: lib/SDLx/Music/Default.pm version: 0 SDLx::Rect: file: lib/SDLx/Rect.pm version: 0.01 SDLx::SFont: file: lib/SDLx/SFont.pm version: 0 SDLx::Sound: file: lib/SDLx/Sound.pm version: 0 SDLx::Sprite: file: lib/SDLx/Sprite.pm version: 0 SDLx::Sprite::Animated: file: lib/SDLx/Sprite/Animated.pm version: 0 SDLx::Surface: file: lib/SDLx/Surface.pm version: 0 SDLx::Surface::TiedMatrix: file: lib/SDLx/Surface/TiedMatrix.pm version: 0 SDLx::Surface::TiedMatrixRow: file: lib/SDLx/Surface/TiedMatrixRow.pm version: 0 SDLx::TTF: file: lib/SDLx/TTF.pm version: 0 SDLx::Text: file: lib/SDLx/Text.pm version: 0 SDLx::Validate: file: lib/SDLx/Validate.pm version: 0 requires: CPAN: 1.92 File::ShareDir: 1.0 Scalar::Util: 0 Tie::Simple: 0 perl: 5.008000 resources: bugtracker: http://github.com/PerlGameDev/SDL/issues license: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt repository: http://github.com/PerlGameDev/SDL version: 2.540 SDL-2.540/OFL-FAQ.txt000444000765000024 5612711760240072 14225 0ustar00jtpalmerstaff000000000000OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL) Version 1.1 - 1 February 2007 (See http://scripts.sil.org/OFL for updates) 1 ABOUT USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL 1.1 Can I use the fonts in any publication, even embedded in the file? Yes. You may use them like most other fonts, but unlike some fonts you may include an embedded subset of the fonts in your document. Such use does not require you to include this license or other files (listed in OFL condition 2), nor does it require any type of acknowledgement within the publication. Some mention of the font name within the publication information (such as in a colophon) is usually appreciated. If you wish to include the complete font as a separate file, you should distribute the full font package, including all existing acknowledgements, and comply with the OFL conditions. Of course, referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL. 1.2 Can I make web pages using these fonts? Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. 1.3 Can I make the fonts available to others from my web site? Yes, as long as you meet the conditions of the license (do not sell by itself, include the necessary files, rename Modified Versions, do not abuse the Author(s)' name(s) and do not sublicense). 1.4 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions? Yes! Fonts licensed under the OFL can be freely agreggated with software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are much more useful aggregated to than merged with existing software, possible incompatibility with existing software licenses is not a problem. You can also repackage the fonts and the accompanying components in a .rpm or .deb package and include them in distro CD/DVDs and online repositories. 1.5 I want to distribute the fonts with my program. Does this mean my program also has to be free and open source software? No. Only the portions based on the font software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well. 1.6 Can I include the fonts on a CD of freeware or commercial fonts? Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself. 1.7 Can I sell a software package that includes these fonts? Yes, you can do this with both the Original Version and a Modified Version. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, edutainment software, etc. 1.8 Why won't the OFL let me sell the fonts alone? The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honor and respect their contribution! 1.9 I've come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions? Consult the copyright statement in the license for ways to contact the original authors. Consult the FONTLOG for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgment section. Please consider using the Original Versions of the fonts whenever possible. 1.10 What do you mean in condition 4? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement? The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying "designed by ...". However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a gray area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not. 2 ABOUT MODIFYING OFL LICENSED FONTS 2.1 Can I change the fonts? Are there any limitations to what things I can and cannot change? You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could add additional information into it that covers your contribution. 2.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine? Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license. 2.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs and/or OpenType/Graphite code, can I sell the enhanced font? Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package. 2.4 Can I pay someone to enhance the fonts for my use and distribution? Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won't be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefitted from the contributions of others. 2.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use? No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefitted from the contributions of others. 2.6 Do I have to make any derivative fonts (including source files, build scripts, documentation, etc.) publicly available? No, but please do share your improvements with others. You may find that you receive more than what you gave in return. 2.7 Why can't I use the Reserved Font Name(s) in my derivative font names? I'd like people to know where the design came from. The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Name(s) ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. Keep in mind that the Copyright Holder(s) can allow a specific trusted partner to use Reserved Font Name(s) through a separate written agreement. 2.8 What do you mean by "primary name as presented to the user"? Are you are referring to the font menu name? Yes, the requirement to change the visible name used to differentiate the font from others applies to the font menu name and other mechanisms to specify a font in a document. It would be fine, for example, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement, see section 2.7). Users who install derivatives ("Modified Versions") on their systems should not see any of the original names ("Reserved Font Names") in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake a font for another and so expect features only another derivative or the Original Version can actually offer. Ultimately, creating name conflicts will cause many problems for the users as well as for the designer of both the Original and Modified versions, so please think ahead and find a good name for your own derivative. Font substitution systems like fontconfig, or application-level font fallback configuration within OpenOffice.org or Scribus, will also get very confused if the name of the font they are configured to substitute to actually refers to another physical font on the user's hard drive. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. The substitution mechanism itself is outside the scope of the license. Users can always manually change a font reference in a document or set up some kind of substitution at a higher level but at the lower level the fonts themselves have to respect the Reserved Font Name(s) requirement to prevent ambiguity. If a substitution is currently active the user should be aware of it. 2.9 Am I not allowed to use any part of the Reserved Font Names? You may not use the words of the font names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute. 2.10 So what should I, as an author, identify as Reserved Font Names? Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River". 2.11 Do I, as an author, have to identify and Reserved Font Names? No, but we strongly encourage you to do so. This is to avoid confusion between your work and Modified versions. You may, however, give certain trusted parties the right to use any of your Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion. 2.12 Are any names (such as the main font name) reserved by default? No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement. 2.13 What is this FONTLOG thing exactly? It has three purposes: 1) to provide basic information on the font to users and other developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge the authors and other contributors. Please use it! See below for details on how changes should be noted. 2.14 Am I required to update the FONTLOG? No, but users, designers and other developers might get very frustrated at you if you don't! People need to know how derivative fonts differ from the originals, and how to take advantage of the changes, or build on them. 3 ABOUT THE FONTLOG The FONTLOG can take a variety of formats, but should include these four sections: 3.1 FONTLOG for This file provides detailed information on the font software. This information should be distributed along with the fonts and any derivative works. 3.2 Basic Font Information (Here is where you would describe the purpose and brief specifications for the font project, and where users can find more detailed documentation. It can also include references to how changes can be contributed back to the Original Version. You may also wish to include a short guide to the design, or a reference to such a document.) 3.3 ChangeLog (This should list both major and minor changes, most recent first. Here are some examples:) 1 Feb 2005 (Jane Doe) Version 1.1 - Improved build script performance and verbosity - Extended the smart code documentation - Corrected minor typos in the documentation - Fixed position of combining inverted breve below (U+032F) - Added OpenType/Graphite smart code for Armenian - Added Armenian glyphs (U+0531 -> U+0587) - Released as "" 1 Jan 2005 (Joe Smith) Version 1.0 - Initial release of font "" 3.4 Acknowledgements (Here is where contributors can be acknowledged. If you make modifications be sure to add your name (N), email (E), web-address (W) and description (D). This list is sorted by last name in alphabetical order.) N: Jane Doe E: jane@university.edu W: http://art.university.edu/projects/fonts D: Contributor - Armenian glyphs and code N: Fred Foobar E: fred@foobar.org W: http://foobar.org D: Contributor - misc Graphite fixes N: Pat Johnson E: pat@fontstudio.org W: http://pat.fontstudio.org D: Designer - Greek & Cyrillic glyphs based on Roman design N: Tom Parker E: tom@company.com W: http://www.company.com/tom/projects/fonts D: Engineer - original smart font code N: Joe Smith E: joe@fontstudio.org W: http://joe.fontstudio.org D: Designer - original Roman glyphs (Original authors can also include information here about their organization.) 4 ABOUT MAKING CONTRIBUTIONS 4.1 Why should I contribute my changes back to the original authors? It would benefit many people if you contributed back to what you've received. Providing your contributions and improvements to the fonts and other components (data files, source code, build scripts, documentation, etc.) could be a tremendous help and would encourage others to contribute as well and 'give back', which means you will have an opportunity to benefit from other people's contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute. 4.2 I've made some very nice improvements to the font, will you consider adopting them and putting them into future Original Versions? Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes (the use of smart source revision control systems like subversion, svk or bzr is a good idea). Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. 4.3 How can I financially support the development of OFL fonts? It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version. 5 ABOUT THE LICENSE 5.1 I see that this is version 1.1 of the license. Will there be later changes? Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL. 5.2 Can I use the SIL Open Font License for my own fonts? Yes! We heartily encourage anyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. Some additional information about using the OFL is included at the end of this FAQ. 5.3 Does this license restrict the rights of the Copyright Holder(s)? No. The Copyright Holder(s) still retains all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version. Only the Copyright Holder(s) can do this. 5.4 Is the OFL a contract or a license? The OFL is a license and not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license. 5.5 How about translating the license and the FAQ into other languages? SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and this FAQ better in their own language. Making the license very clear and readable is a key goal of the OFL. If you are an experienced translator, you are very welcome to help translating the OFL and its FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translations ambiguities could be abused and create problems. We give permission to publish unofficial translations into other languages provided that they comply with the following guidelines: - put the following disclaimer in both English and the target language stating clearly that the translation is unofficial: "This is an unofficial translation of the SIL Open Font License into $language. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text. However, we recognize that this unofficial translation will help users and designers not familiar with English to understand the SIL OFL better and make it easier to use and release font families under this collaborative font design model. We encourage designers who consider releasing their creation under the OFL to read the FAQ in their own language if it is available. Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying FAQ." " - keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion. If you start such a unofficial translation effort of the OFL and its accompanying FAQ please let us know, thank you. 6 ABOUT SIL INTERNATIONAL 6.1 Who is SIL International and what does it do? SIL International is a worldwide faith-based education and development organization (NGO) that studies, documents, and assists in developing the world's lesser-known languages through literacy, linguistics, translation, and other academic disciplines. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL's members and volunteers share a Christian commitment. 6.2 What does this have to do with font licensing? The ability to read, write, type and publish in one's own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack) so SIL developed the SIL Open Font License with the help of the FLOSS community. 6.3 How can I contact SIL? Our main web site is: http://www.sil.org/ Our site about complex scripts is: http://scripts.sil.org/ Information about this license (including contact email information) is at: http://scripts.sil.org/OFL 7 ABOUT USING THE OFL FOR YOUR ORIGINAL FONTS If you want to release your fonts under the OFL, you only need to do the following: 7.1 Put your copyright and reserved font names information in the beginning of the main OFL file. 7.2 Put your copyright and the OFL references in your various font files (such as in the copyright, license and description fields) and in your other components (build scripts, glyph databases, documentation, rendering samples, etc). 7.3 Write an initial FONTLOG for your font and include it in the release package. 7.4 Include the OFL in your release package. 7.5 We also highly recommend you include the relevant practical documentation on the license by putting the OFL-FAQ in your package. That's all. If you have any more questions please get in touch with us. SDL-2.540/OFL.txt000444000765000024 1047011760240072 13607 0ustar00jtpalmerstaff000000000000Copyright (c) 2003-2008 SIL International (http://www.sil.org/), with Reserved Font Names "Gentium" and "SIL". This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 1 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that the font names of derivative works are changed. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. SDL-2.540/README000444000765000024 71211760240073 13245 0ustar00jtpalmerstaff000000000000NAME SDL Perl - Simple DirectMedia Layer for Perl SYNOPSIS use SDL; DESCRIPTION SDL Perl is a package of Perl modules that provide both functional and object oriented interfaces to the Simple DirectMedia Layer for Perl 5. This package takes some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl. The SDL Perl Development Team Please see: HTTPS://GitHub.Com/PerlGameDev/SDL/contributors SDL-2.540/TODO000444000765000024 35211760240073 13055 0ustar00jtpalmerstaff000000000000TODO for SDL_perl Release 2.4 - Clean up the source tree - Make test/* work with new code - Make tutorials work - Make the cook book prgressive (maybe dupe lazyfoo) - Sugar for Core SDL objects - Make SDL work with Frozen Bubble SDL-2.540/typemap000444000765000024 603411760240072 14011 0ustar00jtpalmerstaff000000000000TYPEMAP const Uint16 * T_PTR const Sint16 * T_PTR Uint8 T_UV Uint8 * T_PTR const Uint8* T_PTR Uint8 ** T_PTR Uint16 T_UV Uint16 * T_PTR Uint32 T_UV Uint32 * T_PTR SDLKey T_UV SDLKey * T_PTR SDLMod T_UV SDLMod * T_PTR Sint16 T_IV Sint16 * T_PTR Sint32 T_IV Sint32 * T_PTR SDL_Event * O_OBJECT SDL_ActiveEvent * O_OBJECT SDL_KeyboardEvent * O_OBJECT SDL_TextInputEvent * O_OBJECT SDL_MouseMotionEvent * O_OBJECT SDL_MouseButtonEvent * O_OBJECT SDL_JoyAxisEvent * O_OBJECT SDL_JoyHatEvent * O_OBJECT SDL_JoyButtonEvent * O_OBJECT SDL_JoyBallEvent * O_OBJECT SDL_ResizeEvent * O_OBJECT SDL_ExposeEvent * O_OBJECT SDL_SysWMEvent * O_OBJECT SDL_UserEvent * O_OBJECT SDL_QuitEvent * O_OBJECT SDL_keysym * O_OBJECT SDL_Surface * O_OBJECT SDL_SysWMmsg * T_PTR SDL_CD * O_OBJECT SDL_CDtrack * O_OBJECT SDL_TimerCallback T_PTR SDL_Rect * O_OBJECT SDL_Color * O_OBJECT SDL_Palette * O_OBJECT SDL_PixelFormat * O_OBJECT SDL_VideoInfo * O_OBJECT SDL_version * O_OBJECT const SDL_version * O_OBJECT SDL_SysWMInfo * O_OBJECT SDL_Cursor * O_OBJECT SDL_AudioSpec * O_OBJECT SDL_AudioCVT * O_OBJECT Mix_Fading T_UV Mix_Chunk * O_OBJECT Mix_Music * O_OBJECT SDL_GLattr T_IV SDLPango_Context * O_OBJECT sdlx_timer * O_OBJECT SDLx_LayerManager * O_OBJECT SDLx_Layer * O_OBJECT SDLx_Interface * O_OBJECT SDLx_State * O_OBJECT SDLPango_Alignment T_UV int * T_PTR int ** T_PTR void * T_PTR SDL_TimerID T_PTR SDL_NewTimerCallback T_PTR SDL_Joystick * O_OBJECT FPSmanager * O_OBJECT SDLNet_SocketSet T_PTR TCPsocket T_PTR UDPsocket T_PTR UDPpacket * T_PTR UDPpacket ** T_PTR IPaddress* O_OBJECT SDLNet_GenericSocket T_PTR TTF_Font * O_OBJECT SDL_Overlay * O_OBJECT SMPEG_Info * O_OBJECT SMPEG * O_OBJECT SMPEGstatus T_IV SDL_mutex * T_PTR GLbitfield T_IV GLenum T_IV ConsoleInformation * T_PTR GLboolean T_U_CHAR GLUquadric * T_PTR GLdouble T_NV GLUnurbsObj * T_PTR GLUtesselator * T_PTR GLuint T_UV GLuint* T_PTR GLint T_IV GLint* T_PTR float * T_PTR float T_NV GLfloat T_NV Sound_DecoderInfo * T_PTR const Sound_DecoderInfo * T_PTR Sound_Sample * T_PTR Sound_AudioInfo * T_PTR SDL_RWops* O_OBJECT SDL_svg_context* T_PTR int T_IV intArray T_ARRAY OUTPUT O_OBJECT_NPGC sv_setref_pv( $arg, CLASS, (void*)$var ); O_OBJECT if ($var) { void** pointers = malloc(3 * sizeof(void*)); pointers[0] = (void*)$var; pointers[1] = (void*)PERL_GET_CONTEXT; Uint32 *threadid = (Uint32 *)safemalloc(sizeof(Uint32)); *threadid = SDL_ThreadID(); pointers[2] = (void*)threadid; sv_setref_pv( $arg, CLASS, (void*)pointers ); } else { XSRETURN_UNDEF; } INPUT O_OBJECT_NPGC $var = INT2PTR($type, SvIV((SV *)SvRV( $arg ))); O_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( $arg ))); $var = ($type)(pointers[0]); } else if ($arg == 0) { XSRETURN(0); } else { XSRETURN_UNDEF; } SDL-2.540/examples000755000765000024 011760240073 14066 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/cookbook000755000765000024 011760240073 15674 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/cookbook/1.pl000444000765000024 63711760240073 16514 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL; use SDL::Rect; use SDL::Event; use SDL::Video; use SDL::Events; use SDL::Surface; SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode( 320, 320, 32, SDL_SWSURFACE ); my $quit = 0; while ( !$quit ) { my $event = SDL::Event->new(); SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { $quit = 1 if ( $event->type == SDL_QUIT ); } } SDL-2.540/examples/cookbook/openglapp.pl000444000765000024 403711760240072 20356 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL; use SDLx::App; use SDL::Mouse; use SDL::Video; use SDL::Events; use SDL::Event; use OpenGL qw(:all); my ( $SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT ); $| = 1; $WIDTH = 1024; $HEIGHT = 768; $SDLAPP = SDLx::App->new( title => "Opengl App", width => $WIDTH, height => $HEIGHT, gl => 1 ); $SDLEVENT = SDL::Event->new; glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective( 60, $WIDTH / $HEIGHT, 1, 1000 ); glTranslatef( 0, 0, -20 ); while (1) { &handlepolls; glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glRotatef( .1, 1, 1, 1 ); &drawscene; $SDLAPP->sync; } sub drawscene { my ( $color, $x, $y, $z ); for ( -2 .. 2 ) { glPushMatrix; glTranslatef( $_ * 3, 0, 0 ); glColor3d( 1, 0, 0 ); &draw_cube; glPopMatrix; } return ""; } sub draw_cube { my ( @indices, @vertices, $face, $vertex, $index, $coords ); @indices = qw(4 5 6 7 1 2 6 5 0 1 5 4 0 3 2 1 0 4 7 3 2 3 7 6); @vertices = ( [ -1, -1, -1 ], [ 1, -1, -1 ], [ 1, 1, -1 ], [ -1, 1, -1 ], [ -1, -1, 1 ], [ 1, -1, 1 ], [ 1, 1, 1 ], [ -1, 1, 1 ] ); glBegin(GL_QUADS); foreach my $face ( 0 .. 5 ) { foreach my $vertex ( 0 .. 3 ) { $index = $indices[ 4 * $face + $vertex ]; $coords = $vertices[$index]; glVertex3d(@$coords); } } glEnd; return ""; } sub handlepolls { my ( $type, $key ); SDL::Events::pump_events(); while ( SDL::Events::poll_event($SDLEVENT) ) { $type = $SDLEVENT->type(); $key = ( $type == 2 or $type == 3 ) ? $SDLEVENT->key_sym : ""; if ( $type == 4 ) { printf( "You moved the mouse! x=%s y=%s xrel=%s yrel=%s\n", $SDLEVENT->motion_x, $SDLEVENT->motion_y, $SDLEVENT->motion_xrel, $SDLEVENT->motion_yrel ); } elsif ( $type == 2 ) { print "You are pressing $key\n"; } elsif ( $type == 3 ) { print "You released $key\n"; } elsif ( $type == 12 ) { exit; } else { print "TYPE $type UNKNOWN!\n"; } if ( $type == 2 ) { if ( $key eq "q" or $key eq "escape" ) {exit} } } return ""; } SDL-2.540/examples/cookbook/pdl.pl000444000765000024 367111760240073 17154 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL 2.408; use SDLx::App; #this is in the github repo. use SDL::Event; use SDL::Events; use SDL::Rect; use SDL::Video; use SDL::Surface; use SDL::PixelFormat; use SDL::Palette; use SDL::Color; use Devel::Peek; use PDL; my $app = SDLx::App->new( title => 'Application Title', width => 640, height => 480, depth => 32 ); my $mapped_color = SDL::Video::map_RGB( $app->format(), 50, 50, 50 ); # blue load_app(); my ( $piddle, $surface ) = surf_piddle(); my $ref = $surface->get_pixels_ptr(); my $event = SDL::Event->new; # create a new event while (1) { SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type(); # get event type exit if $type == SDL_QUIT; } update($piddle); SDL::Video::update_rect( $app, 0, 0, $app->w, $app->h ); } sub load_app { SDL::Video::fill_rect( $app, SDL::Rect->new( 0, 0, $app->w, $app->h ), $mapped_color ); return $app; } sub surf_piddle { my ( $bytes_per_pixel, $width, $height ) = ( 4, 400, 200 ); my $piddle = zeros( byte, $bytes_per_pixel, $width, $height ); my $pointer = $piddle->get_dataref(); my $surface = SDL::Surface->new_from( $pointer, $width, $height, 32, $width * $bytes_per_pixel ); warn "Made surface of $width, $height and " . $surface->format->BytesPerPixel; return ( $piddle, $surface ); } sub update { my $piddle = shift; load_app(); SDL::Video::lock_surface($surface); $piddle->mslice( 'X', [ rand(400), rand(400), 1 ], [ rand(200), rand(200), 1 ] ) .= pdl( rand(225), rand(225), rand(255), 255 ); SDL::Video::unlock_surface($surface); my $b = SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $app, SDL::Rect->new( ( $app->w - $surface->w ) / 2, ( $app->h - $surface->h ) / 2, $app->w, $app->h ) ); die "Could not blit: " . SDL::get_error() if ( $b == -1 ); } SDL-2.540/examples/cookbook/pogl_sdl_texture.pl000444000765000024 707211760240072 21756 0ustar00jtpalmerstaff000000000000#!/usr/bin/perl use warnings; use strict; use SDL; use SDLx::App; use SDL::Surface; use SDL::Event; use SDL::Image; use SDL::Color; use Data::Dumper; use OpenGL qw(:all); my $app; #sdl window my $sdl_timer; my $event; package main; init_SDL(); while (1) { pump_sdl(); } ################################################### sub init_SDL { $app = SDLx::App->new( w => 1024, h => 768, d => 16, gl => 1 ); print "Initializing OpenGL settings\n"; printf "%-24s%s\n", "GL_RED_SIZE ", $app->attribute( SDL_GL_RED_SIZE() ); printf "%-24s%s\n", "GL_GREEN_SIZE ", $app->attribute( SDL_GL_GREEN_SIZE() ); printf "%-24s%s\n", "GL_BLUE_SIZE ", $app->attribute( SDL_GL_BLUE_SIZE() ); printf "%-24s%s\n", "GL_DEPTH_SIZE ", $app->attribute( SDL_GL_DEPTH_SIZE() ); printf "%-24s%s\n", "GL_DOUBLEBUFFER ", $app->attribute( SDL_GL_DOUBLEBUFFER() ); #glEnable(GL_CULL_FACE); #glFrontFace(GL_CCW); #glCullFace(GL_BACK); InitView(); DrawScene(); $app->sync(); $event = new SDL::Event; } ####################################################### sub pump_sdl { SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type(); # get event type exit if $type == SDL_QUIT; } DrawScene(); return 1; } ####################################################### sub DrawScene { glClear( GL_DEPTH_BUFFER_BIT() | GL_COLOR_BUFFER_BIT() ); glLoadIdentity(); glTranslatef( 0, 0, -6.0 ); glColor3d( 1, 1, 1 ); glBegin(GL_QUADS); glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, 1.0, 0 ); glTexCoord2f( 1.0, 0.0 ); glVertex3f( 1.0, 1.0, 0 ); glTexCoord2f( 1.0, 1.0 ); glVertex3f( 1.0, -1.0, 0 ); glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0, -1.0, 0 ); glEnd(); $app->sync(); } sub InitView { my $width = 1024; my $height = 800; glClearColor( 0.0, 0.0, 0.0, 0.0 ); glShadeModel(GL_SMOOTH); glClearDepth(1.0); glDisable(GL_DEPTH_TEST); glBlendFunc( GL_SRC_ALPHA, GL_ONE ); glEnable(GL_BLEND); glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); glEnable(GL_TEXTURE_2D); LoadTexture(); glViewport( 0, 0, 1024, 768 ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective( 45.0, $width / $height, 1.0, 100.0 ); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } sub LoadTexture { my $surface; my $nOfColors; my $texture_format; my $texture = 0; my $img = $ARGV[0] || 'test/data/picture.bmp'; $surface = SDL::Image::load( $img ); die "Couldn't load image: ".SDL::get_error() unless $surface; SDL::Video::lock_surface($surface); #get the number of channels in the SDL surface $nOfColors = $surface->format->BytesPerPixel; if ( $nOfColors == 4 ) # contains an alpha channel { if ( $surface->format->Rmask == 0x000000ff ) { $texture_format = GL_RGBA; } else { $texture_format = GL_BGRA; } } elsif ( $nOfColors == 3 ) # no alpha channel { if ( $surface->format->Rmask == 0x000000ff ) { $texture_format = GL_RGB; } else { $texture_format = GL_BGR; } } else { print "warning: the image is not truecolor.. this will probably break\n"; } # Have OpenGL generate a texture object handle for us glGenTextures_p(1); # Bind the texture object glBindTexture( GL_TEXTURE_2D, 1 ); #Set the texture's stretching properties glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); # Edit the texture object's image data using the information SDL_Surface gives us gluBuild2DMipmaps_s( GL_TEXTURE_2D, $surface->format->BytesPerPixel, $surface->w, $surface->h, $texture_format, GL_UNSIGNED_BYTE, ${ $surface->get_pixels_ptr } ); } SDL-2.540/examples/GFX000755000765000024 011760240073 14512 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/GFX/script_roto.pl000444000765000024 276711760240073 17567 0ustar00jtpalmerstaff000000000000#!perl use strict; use warnings; use Carp; use SDL; use SDL::Rect; use SDL::Config; use SDL::Video; use SDL::Surface; use SDL::GFX::Rotozoom; my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); my $pixel = SDL::Video::map_RGB( $display->format, 0, 0, 0 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, $display->w, $display->h ), $pixel ); Carp::confess SDL::get_error if !$display; my $src = SDL::Video::load_BMP('test/data/picture.bmp'); my $temp_surf; sub draw { SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, $display->w, $display->h ), $pixel ); my $surface = $_[0]; SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $display, SDL::Rect->new( 0, 0, $display->w, $display->w ) ); SDL::Video::update_rect( $display, 0, 0, 640, 480 ); SDL::delay( $_[1] ) if $_[1]; } # Note: new surface should be less than 16384 in width and height foreach ( 1 .. 360 ) { $temp_surf = SDL::GFX::Rotozoom::surface( $src, $_, $_ / 180, 1 ); Carp::confess SDL::get_error if !$temp_surf; draw( $temp_surf, 2 ); } $temp_surf = SDL::GFX::Rotozoom::surface_xy( $src, 1, 1, 1, 1 ); Carp::confess SDL::get_error if !$temp_surf; draw( $temp_surf, 1000 ); $temp_surf = SDL::GFX::Rotozoom::zoom_surface( $src, 1, 1, 1 ); Carp::confess SDL::get_error if !$temp_surf; draw( $temp_surf, 1000 ); $temp_surf = SDL::GFX::Rotozoom::shrink_surface( $src, 1, 1 ); Carp::confess SDL::get_error if !$temp_surf; draw( $temp_surf, 1000 ); SDL::delay(1000); SDL-2.540/examples/pixel_operations000755000765000024 011760240073 17452 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/pixel_operations/fast_pixel_write.pl000444000765000024 310611760240072 23513 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL; use SDLx::App; #this is in the github repo. use SDLx::Surface; use SDL::Event; use SDL::Events; use SDL::Rect; use SDL::Video; my $app = SDLx::App->new( title => 'Application Title', width => 640, height => 480, depth => 32 ); load_app(); my $surface = load_surface(); my $matrix = SDLx::Surface::pixel_array($surface); my $event = SDL::Event->new; # create a new event foreach ( 0 ... 100 ) { SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type(); # get event type exit if $type == SDL_QUIT; } update(); SDL::Video::update_rect( $app, 0, 0, $app->w, $app->h ); } sub load_app { my $mapped_color = SDL::Video::map_RGB( $app->format(), 0, 0, 0 ); # blue SDL::Video::fill_rect( $app, SDL::Rect->new( 0, 0, $app->w, $app->h ), $mapped_color ); return $app; } sub load_surface { my $surface = SDL::Surface->new( SDL_ANYFORMAT, 100, 100, 32, 0, 0, 0, 0 ); my $mapped_color = SDL::Video::map_RGB( $surface->format(), 0, 0, 0 ); # blue SDL::Video::fill_rect( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $mapped_color ); return $surface; } sub update { load_app(); SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $app, SDL::Rect->new( ( $app->w - $surface->w ) / 2, ( $app->h - $surface->h ) / 2, $app->w, $app->h ) ); SDL::Video::lock_surface($surface); foreach ( 0 ... 100 ) { vec( ${ $matrix->[ $_ - 1 ][ rand( $surface->h ) - 1 ] }, 0, 32 ) = 0xFF0000FF; } SDL::Video::unlock_surface($surface); } SDL-2.540/examples/pixel_operations/starry.pl000444000765000024 252011760240072 21466 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL; use SDL::Rect; use SDL::Event; use SDL::Events; use SDL::Image; use SDL::Surface; use SDLx::Surface; use SDLx::App; my $app = SDLx::App->new( width => 300, height => 400, depth => 32 ); my $quit = 0; my $rot = 0; my $event = SDL::Event->new(); my @stars = (); foreach ( 0 .. 40 ) { my $x = rand( $app->w ); my $y = rand( $app->h ); my $speed = rand(4) + 1; push( @stars, { x => $x, y => $y, speed => $speed } ); } my $display_matrix = SDLx::Surface->new( surface => $app ); while ( !$quit ) { SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { $quit = 1 if $event->type == SDL_QUIT; if ( $event->type == SDL_KEYDOWN || ( $event->key_sym && $event->type != SDL_KEYUP ) ) { $rot += 0.1 if $event->key_sym == SDLK_UP; $rot -= 0.1 if $event->key_sym == SDLK_DOWN; } } my @update_rects = (); foreach (@stars) { $display_matrix->[ $_->{x} ][ $_->{y} ] = 0xFF000000; $_->{x} += $_->{speed}; $_->{y} += $_->{speed} * $rot; $_->{x} = 0 if ( $_->{x} >= $app->w ); $_->{y} = 0 if ( $_->{y} >= $app->h ); $_->{x} = $app->w if ( $_->{x} < 0 ); $_->{y} = $app->h if ( $_->{y} < 0 ); $display_matrix->[ $_->{x} ][ $_->{y} ] = 0xFFFFFFFF; # push @update_rects, SDL::Rect->new($_->{x}, $_->{y}, 2, 2); } $display_matrix->update(); } SDL-2.540/examples/pixel_operations/tie_matrix.pl000444000765000024 310511760240073 22310 0ustar00jtpalmerstaff000000000000use strict; use warnings; use SDL; use SDLx::App; #this is in the github repo. use SDLx::Surface; use SDL::Event; use SDL::Events; use SDL::Rect; use SDL::Video; my $app = SDLx::App->new( title => 'Application Title', width => 640, height => 480, depth => 32 ); load_app(); my $surface = load_surface(); my $matrix = SDLx::Surface->new( surface => $surface ); my $event = SDL::Event->new; # create a new event while (1) { SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type(); # get event type exit if $type == SDL_QUIT; } update(); SDL::Video::update_rect( $app, 0, 0, $app->w, $app->h ); } sub load_app { my $mapped_color = SDL::Video::map_RGB( $app->format(), 0, 0, 0 ); # blue SDL::Video::fill_rect( $app, SDL::Rect->new( 0, 0, $app->w, $app->h ), $mapped_color ); return $app; } sub load_surface { my $surface = SDL::Surface->new( SDL_ANYFORMAT, 150, 150, 32, 0, 0, 0, 0 ); my $mapped_color = SDL::Video::map_RGB( $surface->format(), 0, 0, 255 ); # blue SDL::Video::fill_rect( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $mapped_color ); return $surface; } sub update { load_app(); SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $app, SDL::Rect->new( ( $app->w - $surface->w ) / 2, ( $app->h - $surface->h ) / 2, $app->w, $app->h ) ); SDL::Video::lock_surface($surface); foreach ( 0 ... rand( $surface->w ) ) { $matrix->[$_][ rand( $surface->h ) ] = int(0xFFFFFFFF / ( $_ + 1 )); } SDL::Video::unlock_surface($surface); } SDL-2.540/examples/pixel_operations/sols000755000765000024 011760240072 20431 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/pixel_operations/sols/ch02.pl000444000765000024 273511760240072 21666 0ustar00jtpalmerstaff000000000000package SDL::Tutorial::Sol::Two; use strict; use warnings; use Carp; use SDL v2.3; use SDL::Video; use SDL::Event; use SDL::Events; use SDL::Surface; my $screen; sub putpixel { my ( $x, $y, $color ) = @_; my $lineoffset = $y * ( $screen->pitch / 4 ); $screen->set_pixels( $lineoffset + $x, $color ); } sub render { if ( SDL::Video::MUSTLOCK($screen) ) { return if ( SDL::Video::lock_surface($screen) < 0 ); } my $ticks = SDL::get_ticks(); my ( $i, $y, $yofs, $ofs ) = ( 0, 0, 0, 0 ); for ( $i = 0; $i < 480; $i++ ) { for ( my $j = 0, $ofs = $yofs; $j < 640; $j++, $ofs++ ) { $screen->set_pixels( $ofs, ( $i * $i + $j * $j + $ticks ) ); } $yofs += $screen->pitch / 4; } putpixel( 10, 10, 0xff0000 ); putpixel( 11, 10, 0xff0000 ); putpixel( 10, 11, 0xff0000 ); putpixel( 11, 11, 0xff0000 ); SDL::Video::unlock_surface($screen) if ( SDL::Video::MUSTLOCK($screen) ); SDL::Video::update_rect( $screen, 0, 0, 640, 480 ); return 0; } sub main { Carp::cluck 'Unable to init SDL: ' . SDL::get_error() if ( SDL::init(SDL_INIT_VIDEO) < 0 ); $screen = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); Carp::cluck 'Unable to set 640x480x32 video' . SDL::get_error() if ( !$screen ); while (1) { render(); my $event = SDL::Event->new(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type; return 0 if ( $type == SDL_KEYDOWN ); return 0 if ( $type == SDL_QUIT ); } SDL::Events::pump_events(); } } main; SDL::quit; SDL-2.540/examples/SDLx000755000765000024 011760240073 14700 5ustar00jtpalmerstaff000000000000SDL-2.540/examples/SDLx/app.pl000444000765000024 63011760240073 16131 0ustar00jtpalmerstaff000000000000use SDL::Event; use SDLx::App; my $app = SDLx::App->new( title => "Lines", width => 640, height => 480, ); sub draw_lines { $app->draw_line( [ 0, 0 ], [ rand( $app->w ), rand( $app->h ) ], 0xFFFFFFFF ); $app->update(); } sub event_handle { my $e = shift; $_[0]->stop if ( $e->type == SDL_QUIT ); } $app->add_event_handler( \&event_handle ); $app->add_show_handler( \&draw_lines ); $app->run(); SDL-2.540/examples/SDLx/music.pl000444000765000024 30411760240073 16467 0ustar00jtpalmerstaff000000000000use SDL; use SDLx::Music; $music = SDLx::Music->new; $music->data( sam => "test/data/sample.wav" ); $sam = $music->data("sam"); $music->play($sam); while ( $music->playing ) { print "playing\n" } SDL-2.540/examples/SDLx/pong.pl000444000765000024 1066711760240072 16366 0ustar00jtpalmerstaff000000000000use strict; use warnings; use Carp; use SDL; use SDL::Video; use SDL::Surface; use SDL::Rect; use SDL::Event; use SDL::Events; use Data::Dumper; use Math::Trig; use lib 'lib'; use SDLx::Controller; my $app = init(); my $paddle = { x => 0, y => 0, w => 20, h => 80, vel => 250, y_vel => 0, }; my $paddle2 = { x => $app->w - 20, y => 0, w => 20, h => 80, vel => 250, y_vel => 0, }; my $r_ball = { x => $app->w / 2, y => $app->w / 2, w => 20, h => 20, x_vel => (150), y_vel => (150), }; sub ball_confine { my ( $w, $h, $x, $y, $ws, $hs ) = @_; my ( $m_x, $m_y ) = ( 1, 1 ); $m_x = -1 if $x + $ws >= $w || $x <= 0; $m_y = -1 if $y + $hs >= $h || $y <= 0; return [ $m_x, $m_y ]; } sub paddle_confine { #return if $_[0]->{y_vel} == 0; my ( $p, $dt, $h ) = @_; if ( $p->{y} < 0 ) { $p->{y} = 2; return; } elsif ( $p->{y} + $p->{h} + 2 > $h ) { $p->{y} = $h - $p->{h} - 2; return; } $p->{y} += $p->{y_vel} * $dt; } sub init { # Initing video # Die here if we cannot make video init Carp::confess 'Cannot init ' . SDL::get_error() if ( SDL::init(SDL_INIT_VIDEO) == -1 ); # Create our display window # This is our actual SDL application window my $a = SDL::Video::set_video_mode( 800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_HWACCEL ); Carp::confess 'Cannot init video mode 800x600x32: ' . SDL::get_error() unless $a; return $a; } my $game = SDLx::Controller->new( dt => 0.2 ); sub on_move { my $dt = shift; #$dt = $dt / 1000; paddle_confine( $paddle, $dt, $app->h ); paddle_confine( $paddle2, $dt, $app->h ); # Period = $r_ball->{vel} # cc_speed = 2 * pi * r / T my $transform = ball_confine( $app->w, $app->h, $r_ball->{x}, $r_ball->{y}, $r_ball->{w}, $r_ball->{h} ); $r_ball->{x_vel} *= $transform->[0]; $r_ball->{y_vel} *= $transform->[1]; $r_ball->{x} += $r_ball->{x_vel} * $dt; $r_ball->{y} += $r_ball->{y_vel} * $dt; # "AI" for the other paddle if ( $r_ball->{y} > $paddle2->{y} ) { $paddle2->{y_vel} = $paddle2->{vel}; } elsif ( $r_ball->{y} < $paddle2->{y} ) { $paddle2->{y_vel} = -1 * $paddle2->{vel}; } else { $paddle2->{y_vel} = 0; } return 1; } sub on_event { my ( $event, $app ) = @_; if ( $event->type == SDL_KEYDOWN ) { my $key = $event->key_sym; if ( $key == SDLK_PRINT ) { my $screen_shot_index = 1; map { $screen_shot_index = $1 + 1 if $_ =~ /Shot(\d+)\.bmp/ && $1 >= $screen_shot_index } ; SDL::Video::save_BMP( $app, sprintf( "Shot%04d.bmp", $screen_shot_index ) ); } $paddle->{y_vel} -= $paddle->{vel} if $key == SDLK_UP; $paddle->{y_vel} += $paddle->{vel} if $key == SDLK_DOWN; $r_ball->{rot_vel} += 50 if $key == SDLK_SPACE; } elsif ( $event->type == SDL_KEYUP ) { my $key = $event->key_sym; $paddle->{y_vel} += $paddle->{vel} if $key == SDLK_UP; $paddle->{y_vel} -= $paddle->{vel} if $key == SDLK_DOWN; } elsif ( $event->type == SDL_QUIT ) { exit; } } # # New subroutine "show_paddle" extracted - Thu Mar 18 15:28:02 2010. # sub show_paddle { my $app = shift; my $paddle = shift; SDL::Video::fill_rect( $app, SDL::Rect->new( $paddle->{x}, $paddle->{y}, $paddle->{w}, $paddle->{h} ), SDL::Video::map_RGB( $app->format, 0, 0, 255 ) ); return (); } sub on_show { SDL::Video::fill_rect( $app, SDL::Rect->new( 0, 0, $app->w, $app->h ), SDL::Video::map_RGB( $app->format, 0, 0, 0 ) ); show_paddle( $app, $paddle ); show_paddle( $app, $paddle2 ); SDL::Video::fill_rect( $app, SDL::Rect->new( $r_ball->{x}, $r_ball->{y}, $r_ball->{w}, $r_ball->{h} ), SDL::Video::map_RGB( $app->format, 255, 0, 0 ) ); SDL::Video::flip($app); return 0; } my $move_id = $game->add_move_handler( \&on_move ); my $event_id = $game->add_event_handler( \&on_event ); my $show_id = $game->add_show_handler( \&on_show ); print <<'EOT'; In this example, you should see two blue rectangles in the edges of the screen, and a red square bouncing by. This is a very simple and incomplete clone of pong, where you control the left paddle with the up and down keys, while the right paddle is controlled by the computer. However, you'll soon notice the "ball" goes right through both paddles, even though it bounces in the screen. In fact, this demo confines both paddles and the bouncing square into the screen. As with the other example, "print screen" should work if your system propagates it. To exit the demo, just close the window normally. EOT $game->run(); SDL-2.540/examples/SDLx/SDLx_C_Interface.pl000444000765000024 302011760240072 20420 0ustar00jtpalmerstaff000000000000use strict; use warnings; use Time::HiRes qw( time sleep ); use SDL; use SDLx::App; use SDL::Event; use SDL::Events; use SDLx::Controller::Interface; my $app = SDLx::App->new( w => 200, h => 200, title => "timestep", delay => 10 ); #The initial x and y for this object. my $spring = SDLx::Controller::Interface->new( x => 100, y => 100 ); #we have a constant x velocity of 20 my $constant = SDLx::Controller::Interface->new( x => 0, y => 20, v_x => 20 ); #NO need to send an acceleration for x,y or rotation $constant->set_acceleration( sub { return ( 0, 0, 0 ) } ); #a hooke's law acceleration for the spring my $accel = sub { my ( $t, $state ) = @_; my $k = 10; my $b = 1; my $ax = ( ( -1 * $k ) * ( $state->x ) - $b * $state->v_x ); return ( $ax, 0, 0 ); }; $spring->set_acceleration($accel); #This is how we will render the spring. Notice the x, and y are not tied to how they will show on the screen my $render = sub { my $state = shift; $app->draw_rect( [ 100 - $state->x, $state->y, 2, 2 ], 0xFF0FFF ); }; #an event handler to exit my $event = sub { $_[1]->stop if $_[0]->type == SDL_QUIT; }; $app->add_event_handler($event); #clear the screen $app->add_show_handler( sub { $app->draw_rect( [ 0, 0, $app->w, $app->h ], 0x000000 ) } ); #add the spring $spring->attach($app, $render ); #add the constant_velocity $constant->attach( $app, sub { my $state = shift; $app->draw_rect( [ $state->x, $state->y, 4, 4 ], 0xFFFFFF ); } ); #add the final update $app->add_show_handler( sub { $app->update() } ); $app->run(); SDL-2.540/examples/SDLx/SDLx_controller_two_squares.pl000444000765000024 677311760240072 23117 0ustar00jtpalmerstaff000000000000use strict; use warnings; use Carp; use SDL; use SDL::Video; use SDL::Surface; use SDL::Rect; use SDL::Event; use SDL::Events; use Data::Dumper; use Math::Trig; use lib 'lib'; use SDLx::Controller; my $app = init(); my $ball = { x => 0, y => 0, w => 20, h => 20, vel => 20, x_vel => 0, y_vel => 0, }; my $r_ball = { x => 0, y => 0, w => 20, h => 20, radians => 0, rot_vel => 10, radius => 100, c_x => $app->w / 2, c_y => $app->h / 2, }; sub init { # Initing video # Die here if we cannot make video init Carp::confess 'Cannot init ' . SDL::get_error() if ( SDL::init(SDL_INIT_VIDEO) == -1 ); # Create our display window # This is our actual SDL application window my $a = SDL::Video::set_video_mode( 800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_HWACCEL ); Carp::confess 'Cannot init video mode 800x600x32: ' . SDL::get_error() unless $a; return $a; } my $game = SDLx::Controller->new(); sub on_move { my $dt = shift; $ball->{x} += $ball->{x_vel} * $dt; $ball->{y} += $ball->{y_vel} * $dt; # Period = $r_ball->{vel} # cc_speed = 2 * pi * r / T $r_ball->{radians} += $r_ball->{rot_vel} * $dt; $r_ball->{x} = $r_ball->{c_x} + sin( $r_ball->{radians} * pi / 180 ) * $r_ball->{radius}; $r_ball->{y} = $r_ball->{c_y} + cos( $r_ball->{radians} * pi / 180 ) * $r_ball->{radius}; return 1; } sub on_event { my $event = shift; if ( $event->type == SDL_KEYDOWN ) { my $key = $event->key_sym; if ( $key == SDLK_PRINT ) { my $screen_shot_index = 1; map { $screen_shot_index = $1 + 1 if $_ =~ /Shot(\d+)\.bmp/ && $1 >= $screen_shot_index } ; SDL::Video::save_BMP( $app, sprintf( "Shot%04d.bmp", $screen_shot_index ) ); } $ball->{y_vel} -= $ball->{vel} if $key == SDLK_UP; $ball->{y_vel} += $ball->{vel} if $key == SDLK_DOWN; $ball->{x_vel} -= $ball->{vel} if $key == SDLK_LEFT; $ball->{x_vel} += $ball->{vel} if $key == SDLK_RIGHT; $r_ball->{rot_vel} += 50 if $key == SDLK_SPACE; } elsif ( $event->type == SDL_KEYUP ) { my $key = $event->key_sym; $ball->{y_vel} += $ball->{vel} if $key == SDLK_UP; $ball->{y_vel} -= $ball->{vel} if $key == SDLK_DOWN; $ball->{x_vel} += $ball->{vel} if $key == SDLK_LEFT; $ball->{x_vel} -= $ball->{vel} if $key == SDLK_RIGHT; } elsif ( $event->type == SDL_QUIT ) { $_[0]->stop; } } sub on_show { SDL::Video::fill_rect( $app, SDL::Rect->new( 0, 0, $app->w, $app->h ), SDL::Video::map_RGB( $app->format, 0, 0, 0 ) ); SDL::Video::fill_rect( $app, SDL::Rect->new( $ball->{x}, $ball->{y}, $ball->{w}, $ball->{h} ), SDL::Video::map_RGB( $app->format, 0, 0, 255 ) ); SDL::Video::fill_rect( $app, SDL::Rect->new( $r_ball->{x}, $r_ball->{y}, $r_ball->{w}, $r_ball->{h} ), SDL::Video::map_RGB( $app->format, 255, 0, 0 ) ); SDL::Video::flip($app); return 0; } my $move_id = $game->add_move_handler( \&on_move ); my $event_id = $game->add_event_handler( \&on_event ); my $show_id = $game->add_show_handler( \&on_show ); print <<'EOT'; In this example, you should see two small squares, one blue and one red. The red square should move around in circles, while you can control the blue one with the keyboard arrow keys. Also, if you press the "print screen" key, it will save an image called shot0001.bmp in your current dir. Pressing it again will create a new screenshot file, with the index incremented. That is, assuming your system will propagate the "print screen" event :) To exit the demo, just close the window normally. EOT $game->run(); SDL-2.540/examples/SDLx/SDLx_LayerManager_Chess.pl000444000765000024 713211760240072 21762 0ustar00jtpalmerstaff000000000000#!/usr/bin/perl use strict; use warnings; use Time::HiRes; use SDL; use SDL::Event; use SDL::Events; use SDL::Rect; use SDL::Surface; use SDL::Video; use SDLx::SFont; use SDLx::Surface; use SDLx::Sprite; use SDLx::LayerManager; use SDLx::Layer; use SDLx::FPS; SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode( 800, 600, 32, SDL_HWSURFACE | SDL_HWACCEL ); my $layers = SDLx::LayerManager->new(); my $event = SDL::Event->new(); my $loop = 1; my $last_click = Time::HiRes::time; my $fps = SDLx::FPS->new( fps => 60 ); my @selected_cards = (); my $left_mouse_down = 0; my @rects = (); init_surfaces(); $layers->blit($display); SDL::Video::update_rect( $display, 0, 0, 0, 0 ); game(); sub event_loop { my $handler = shift; SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { $left_mouse_down = 1 if $event->type == SDL_MOUSEBUTTONDOWN && $event->button_button == SDL_BUTTON_LEFT; $left_mouse_down = 0 if $event->type == SDL_MOUSEBUTTONUP && $event->button_button == SDL_BUTTON_LEFT; $handler->{on_quit}->() if defined $handler->{on_quit} && ( $event->type == SDL_QUIT || ( $event->type == SDL_KEYDOWN && $event->key_sym == SDLK_ESCAPE ) ); $handler->{on_drop}->() if defined $handler->{on_drop} && $event->type == SDL_MOUSEBUTTONUP; $handler->{on_click}->() if defined $handler->{on_click} && $event->type == SDL_MOUSEBUTTONDOWN && Time::HiRes::time- $last_click >= 0.3; $last_click = Time::HiRes::time if $event->type == SDL_MOUSEBUTTONDOWN; } } sub game { my @selected_cards = (); my $x = 0; my $y = 0; my $handler = { on_quit => sub { $loop = 0; }, on_drop => sub { if ( scalar @selected_cards ) { my $layer = $layers->by_position( $event->button_x, $event->button_y ); if ( defined $layer ) { my @behind = @{ $layer->behind }; if ( scalar @behind == 1 && $behind[0]->data->{id} =~ m/^\w{2}$/ ) { $layer->foreground; $layers->detach_xy( $behind[0]->pos->x + 8, $behind[0]->pos->y + 8 ); printf( "to %s\n", $behind[0]->data->{id} ); } else { $layers->detach_back; } } else { $layers->detach_back; } } @selected_cards = (); }, on_click => sub { unless ( scalar @selected_cards ) { my $layer = $layers->by_position( $event->button_x, $event->button_y ); if ( defined $layer && $layer->data->{id} =~ m/^(white|black)$/ ) { @selected_cards = ($layer); $layers->attach( $layer, $event->button_x, $event->button_y ); } } }, }; while ($loop) { event_loop($handler); @rects = @{ $layers->blit($display) }; SDL::Video::update_rect( $display, 0, 0, 0, 0 ) if scalar @rects; $fps->delay; } } sub init_surfaces { my $white_surface = SDL::Image::load('test/data/wood_light.png'); my $black_surface = SDL::Image::load('test/data/wood_dark.png'); my $white_button = SDL::Image::load('test/data/button_light.png'); my $black_button = SDL::Image::load('test/data/button_dark.png'); for my $x ( 0 .. 7 ) { for my $y ( 0 .. 7 ) { $layers->add( SDLx::Layer->new( ( $x + $y ) & 1 ? $white_surface : $black_surface, 144 + 64 * $x, 44 + 64 * $y, { id => chr( ord('A') + $x ) . ( $y + 1 ) } ) ); } } for my $x ( 0 .. 7 ) { for my $y ( 0 .. 7 ) { if ( $y < 2 ) { $layers->add( SDLx::Layer->new( $white_button, 152 + 64 * $x, 52 + 64 * $y, { id => 'white' } ) ); } if ( $y > 5 ) { $layers->add( SDLx::Layer->new( $black_button, 152 + 64 * $x, 52 + 64 * $y, { id => 'black' } ) ); } } } } SDL-2.540/examples/SDLx/SDLx_Sound.pl000444000765000024 237511760240072 17362 0ustar00jtpalmerstaff000000000000#!/usr/bin/perl #========================================================================== # # FILE: SDLx_Sound.pl # # USAGE: ./examples/SDLx_Sound.pl # # # DESCRIPTION: Sound tests # A SDLx::Sound can play, pause, resume and stop # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Ricardo Filipo (rf), ricardo.filipo@gmail.com # COMPANY: Mito-Lógica design e soluções de comunicação ltda # VERSION: 1.0 # CREATED: 16-08-2010 21:47:33 # REVISION: --- #========================================================================== use strict; use warnings; use lib 'lib'; use SDL; use SDLx::Sound; use SDLx::App; use SDL::Event; use SDL::Events; my $app = SDLx::App->new( height => 120, width => 480, depth => 16, title => 'Sound example', ); my $snd = SDLx::Sound->new(); # load and play a sound my $play = $snd->play('test/data/sample.wav'); # pause or resume on keydown $app->add_event_handler( sub{ my $e = $_[0]; $_[1]->stop() if $e->type == SDL_QUIT; if( $e->type == SDL_KEYDOWN ) { print "Ai\n"; if($play){ $snd->pause; $play=0; }else{ $snd->resume; $play=1; } } } ); $app->run(); SDL-2.540/examples/SDLx/SDLx_sprite.pl000444000765000024 163311760240073 17575 0ustar00jtpalmerstaff000000000000use strict; use SDL; use SDL::Video; use SDL::Color; use SDL::Rect; use SDL::Surface; use SDL::GFX::Rotozoom; use lib '../lib'; use SDLx::Sprite; SDL::init(SDL_INIT_VIDEO); my $disp = SDL::Video::set_video_mode( 300, 300, 32, SDL_ANYFORMAT ); my $pixel = SDL::Video::map_RGB( $disp->format, rand(255), rand(255), rand(255) ); SDL::Video::fill_rect( $disp, SDL::Rect->new( 0, 0, $disp->w, $disp->h ), $pixel ); my $sprite = SDLx::Sprite->new( image => 'test/data/chest.png' ); $sprite->alpha_key( SDL::Color->new( 0xfc, 0x00, 0xff ) ); $sprite->alpha(0.8); my $angle = 0; while ( $angle++ < 360 ) { SDL::Video::fill_rect( $disp, SDL::Rect->new( 0, 0, $disp->w, $disp->h ), $pixel ); $sprite->rotation($angle); # $sprite->draw_xy( $disp, $disp->w / 2 - ( $sprite->w / 2 ), $disp->h / 2 - ( $sprite->h / 2 ) ); SDL::Video::update_rect( $disp, 0, 0, 300, 300 ); SDL::delay(2); } SDL::delay(2000); SDL-2.540/examples/SDLx/SDLx_sprite_animated.pl000444000765000024 167611760240073 21446 0ustar00jtpalmerstaff000000000000use strict; use SDL; use SDL::Video; use SDL::Color; use SDL::Rect; use SDLx::Sprite::Animated; SDL::init(SDL_INIT_VIDEO); my $disp = SDL::Video::set_video_mode( 300, 300, 32, SDL_ANYFORMAT ); my $pixel = SDL::Video::map_RGB( $disp->format, 0, 0, 0 ); SDL::Video::fill_rect( $disp, SDL::Rect->new( 0, 0, $disp->w, $disp->h ), $pixel ); my $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 48, 0, 48, 48 ), ticks_per_frame => 6, ); $sprite->set_sequences( left => [ [ 1, 0 ], [ 1, 1 ], [ 1, 2 ] ], ); $sprite->alpha_key( SDL::Color->new( 0xff, 0x00, 0xff ) ); $sprite->sequence('left'); $sprite->start(); my $x = 0; my $ticks = 0; while ( $x++ < 30 ) { SDL::Video::fill_rect( $disp, SDL::Rect->new( 0, 0, $disp->w, $disp->h ), $pixel ); $sprite->x( $x * 10 ); $sprite->next(); $sprite->draw($disp); SDL::Video::update_rect( $disp, 0, 0, 0, 0 ); SDL::delay(100); } SDL-2.540/examples/SDLx/SDLx_text.pl000444000765000024 42411760240072 17227 0ustar00jtpalmerstaff000000000000use strict; use warnings; use lib '../lib'; use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new( eoq => 1 ); my $text = SDLx::Text->new; $app->draw_rect( [0, 0, $app->w, $app->h], 0x00ffff ); $text->write_to( $app, 'Hello, World!' ); $app->update; $app->run; SDL-2.540/examples/SDLx/SDLx_text_shadow.pl000444000765000024 144711760240072 20622 0ustar00jtpalmerstaff000000000000#TODO: shadow, shadow_color, shadow_offset use strict; use warnings; use lib '../lib'; use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new( eoq => 1 ); my $normal = SDLx::Text->new; my $shadow = SDLx::Text->new( shadow => 1 ); # other variations my $shadow_off = SDLx::Text->new( shadow => 1, shadow_offset => 4 ); my $shadow_color = SDLx::Text->new( shadow => 1, shadow_color => [150, 150, 0] ); $app->add_show_handler( sub { $app->draw_rect( [0, 0, $app->w, $app->h], 0x00ffff ); $normal->write_xy( $app, 10, 0, 'Hello, World!' ); $shadow->write_xy( $app, 10, 50, 'Hello, Shadow!' ); $shadow_off->write_xy( $app, 10, 100, 'Hello, Shadow with offset!' ); $shadow_color->write_xy( $app, 10, 150, 'Hello, colored Shadow!' ); $app->update; }); $app->run; SDL-2.540/examples/SDLx/SDLx_text_styles.pl000444000765000024 205311760240072 20652 0ustar00jtpalmerstaff000000000000use strict; use warnings; use lib '../lib'; use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new( eoq => 1 ); my $text = SDLx::Text->new; $app->draw_rect( [0, 0, $app->w, $app->h], 0x00ffff ); $text->write_xy( $app, 300, 10, 'Normal Text' ); $text->bold(1); $text->write_xy( $app, 300, 50, 'Bold Text' ); $text->italic(1); $text->write_xy( $app, 300, 90, 'Bold/Italic Text' ); $text->bold(0); $text->write_xy( $app, 300, 130, 'Italic Text' ); $text->italic(0); $text->underline(1); $text->write_xy( $app, 300, 170, 'Underline Text' ); $text->underline(0); $text->strikethrough(1); $text->write_xy( $app, 300, 210, 'Strikethrough Text' ); $text->underline(1); $text->bold(1); $text->italic(1); $text->write_xy( $app, 300, 250, 'All in one!' ); my $another = SDLx::Text->new( bold => 1, italic => 1, underline => 1, strikethrough => 1, shadow => 1, ); $another->write_xy( $app, 50, 300, 'Can even be set with others (like shadow), during startup!' ); $app->update; $app->run; SDL-2.540/examples/SDLx/SDLx_text_wordwrap.pl000444000765000024 104511760240073 21175 0ustar00jtpalmerstaff000000000000use strict; use warnings; use lib '../lib'; use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new( eoq => 1 ); my $text = SDLx::Text->new( word_wrap => 450 ); $app->draw_rect( [0, 0, $app->w, $app->h], 0x00ffff ); my $message = <<'EOT'; All lines come from a single string. - Really? Yup. - But... but... what if I say a lot of things in a single line. Won't that become trucated or something? Not if you set "word_wrap" to a particular width, like we do here :-) EOT $text->write_to( $app, $message ); $app->update; $app->run; SDL-2.540/examples/SDLx/SDLx_text_zoom.pl000444000765000024 120111760240072 20305 0ustar00jtpalmerstaff000000000000#TODO: shadow, shadow_color, shadow_offset use strict; use warnings; use lib '../lib'; use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new( eoq => 1, width => 400, height => 100 ); my $text = SDLx::Text->new; my $size = 1; my $direction = 1; $app->add_move_handler( sub { $size += $direction; $text->size( $size ); if ($direction == 1) { $direction = -1 if $size > 60; } else { $direction = 1 if $size < 2; } }); $app->add_show_handler( sub { $app->draw_rect( [0, 0, $app->w, $app->h], 0x00ffff ); $text->write_to( $app, 'Hello, World!' ); $app->update; }); $app->run; SDL-2.540/inc000755000765000024 011760240072 13020 5ustar00jtpalmerstaff000000000000SDL-2.540/inc/My000755000765000024 011760240072 13405 5ustar00jtpalmerstaff000000000000SDL-2.540/inc/My/Builder.pm000444000765000024 1276711760240072 15523 0ustar00jtpalmerstaff000000000000#!/usr/bin/env perl # # Build.pm # # Copyright (C) 2005 David J. Goehrig # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package My::Builder; use strict; use warnings; use base 'Module::Build'; use Carp; use File::Spec; use Config; use Alien::SDL::ConfigData; our $config = {}; # Module::Build doesn't seem to have a way to use separate flags for separate # XS files, so here's the override that makes separate files build correctly: sub process_xs { my ( $self, $file ) = @_; my $properties = $self->{properties}; my $file_args = $self->notes('file_flags')->{$file}; return unless defined($file_args); my @old_values = @$properties{ keys %$file_args }; @$properties{ keys %$file_args } = values %$file_args; $self->SUPER::process_xs($file); @$properties{ keys %$file_args } = @old_values; } # which headers are installed? sub find_subsystems { my ( $self, $subsystems, $libraries ) = @_; my %found; my %enabled; while ( my ( $name, $subsystem ) = each %$subsystems ) { my $param; for my $library ( @{ $subsystem->{libraries} } ) { my $lib = $libraries->{$library} or Carp::confess "Unknown library '$library' for '$name'\n"; my $h = ref( $lib->{header} ) eq 'ARRAY' ? $lib->{header} : [ $lib->{header} ]; my $need_check = 0; foreach (@$h) { $need_check = 1 unless $found{$_}; } if ( !$need_check || Alien::SDL->check_header(@$h) ) { $found{$_} = 1 foreach (@$h); $param->{libs}->{$library} = 1; push @{ $param->{defines} }, "-D$libraries->{$library}{define}"; push @{ $param->{links} }, "-l$libraries->{$library}{lib}"; } else { # I disabled that, so the libs are compiled but the HAVE_* defines are not set # so we can e.g. 'use SDL::Pango;' (FROGGS) # $param = undef; print "###WARNING### Disabling subsystem '$name'\n"; last; } } $enabled{$name} = $param if $param; } return \%enabled; } # create mapping table: { SDL::Any::Lib => [ list of libs ], SDL::Any::OtherLib => [ list of libs ] ... } # to keep information what libs (.dll|.so) to load via Dynaloader for which module sub translate_table { my ( $self, $subsystems, $libraries ) = @_; my %ret; foreach my $m ( keys %$subsystems ) { my $p = $subsystems->{$m}->{file}->{to}; $p =~ s|^lib/(.*)\.xs|$1|; $p =~ s|/|::|g; my @list = map ( $libraries->{$_}->{lib}, @{ $subsystems->{$m}->{libraries} } ); $ret{$p} = \@list; } return \%ret; } # save this all in a format process_xs() can understand sub set_file_flags { my $self = shift; my %file_flags; my %build_systems = %{ $self->notes('build_systems') }; #TODO: Search for execinfo.h signal.h and turn this on. # This should also be turned on only during CPAN tests my $debug = ' -DNOSIGCATCH '; #default until headers found if ( Alien::SDL->check_header(qw(execinfo.h signal.h)) && $ENV{AUTOMATED_TESTING} ) { $debug .= ' -g -rdynamic ' unless ( $^O =~ /(win|darwin|bsd)/i ); } else { $debug .= ' -O2 '; } my $arch = ' '; $arch = '-arch' . $ENV{SDL_ARCH} if $ENV{SDL_ARCH}; while ( my ( $subsystem, $param ) = each %build_systems ) { my $sub_file = $self->notes('subsystems')->{$subsystem}{file}{to}; my $extra_compiler_flags = [ ( split( ' ', $arch . $debug . $self->notes('sdl_cflags') ) ), @{ $param->{defines} }, ]; push(@{$extra_compiler_flags}, '-DUSE_THREADS') if defined $Config{usethreads}; push(@{$extra_compiler_flags}, '-fPIC') if $^O ne 'MSWin32'; $file_flags{$sub_file} = { extra_compiler_flags => $extra_compiler_flags, extra_linker_flags => [ ( split( ' ', $self->notes('sdl_libs') ) ), @{ $param->{links} }, ], }; } $self->notes( 'file_flags' => \%file_flags ); } # override the following functions in My::Builder:: if necessary sub ACTION_build { my $self = shift; printf( "[Alien::SDL] Build option used:\n\t%s\n", ${ Alien::SDL::ConfigData->config('build_params') }{'title'} || 'n.a.' ); $self->SUPER::ACTION_build; $self->ACTION_bundle; } # both special to MacOS/Darwin, somebody should review whether it is still necessary sub special_build_settings { } sub build_bundle { } # build_bundle() currently defined only for MacOS sub ACTION_bundle { my ($self) = @_; $self->depends_on('build'); $self->build_bundle(); } # inc/My/Darwin.pm will override Install method for MacOS sub ACTION_install { my ($self) = @_; require ExtUtils::Install; $self->depends_on('build'); ExtUtils::Install::install( $self->install_map, 1, 0, $self->{args}{uninst} || 0 ); } sub ACTION_test { my ($self) = @_; $self->depends_on('build'); $self->SUPER::ACTION_test(); } 1; SDL-2.540/inc/My/Builder000755000765000024 011760240073 14774 5ustar00jtpalmerstaff000000000000SDL-2.540/inc/My/Builder/Darwin.pm000444000765000024 636711760240072 16726 0ustar00jtpalmerstaff000000000000#!/usr/bin/env perl package My::Builder::Darwin; use strict; use warnings; use Alien::SDL; use File::Find qw(find); use Data::Dumper; use Cwd; use Config; use File::Copy; use base 'My::Builder'; sub special_build_settings { my $self = shift; $self->{c_source} = [ 'src', 'main.c' ]; $self->{c_sources} = 'MacOSX'; $self->{install_base} = "SDLPerl.app/Contents/Resources"; } sub build_bundle { my $self = shift; system "mkdir -p blib/script"; my $Perl = ( $ENV{'FULLPERL'} or $^X or 'perl' ); my $cflags = `$Perl -MExtUtils::Embed -e ccopts` . ' ' . Alien::SDL->config('cflags'); my $libs = `$Perl -MExtUtils::Embed -e ldopts` . ' ' . Alien::SDL->config('libs') . ' -lSDLmain'; my $arch = ''; my $sdl_lib = ''; $sdl_lib = Alien::SDL->config('ld_shlib_map') && Alien::SDL->config('ld_shlib_map')->{SDL} ? Alien::SDL->config('ld_shlib_map')->{SDL} : _find_SDL_lib(); $arch = $1 if $sdl_lib && `lipo -info $sdl_lib` =~ m/\s(\w+)s*$/; $arch = $ENV{SDL_ARCH} if $ENV{SDL_ARCH}; if ($arch) { $cflags =~ s/\b-arch \w+\s//g; $libs =~ s/\b-arch \w+\s//g; $arch = "-arch $arch"; } my $cmd = "gcc $arch -o \"blib/script/SDLPerl\" MacOSX/main.c $cflags $libs"; $cmd =~ s/\s+/ /g; unless(-e 'blib/script/SDLPerl') { print STDERR $cmd . "\n"; system($cmd); } } sub ACTION_test { my $self = shift; $self->depends_on('build'); $self->build_bundle() if !( -e 'blib/script/SDLPerl' ); if( $ENV{SDL_RELEASE_TESTING} ) { if ( $ENV{SDL_PERL_TEST} ) { $self->Module::Build::ACTION_test; $ENV{SDL_PERL_TEST} = 0; #unset it again } else { my $cmd = 'blib/script/SDLPerl Build test'; $ENV{SDL_PERL_TEST} = 1; system( split ' ', $cmd ); die 'Errors in Testing. Can\'t continue' if $?; } } else { $self->Module::Build::ACTION_test; } } sub _find_SDL_lib { my $inc_lib_candidates = { '/usr/local/include' => '/usr/local/lib', '/usr/include' => '/usr/lib', '/usr/X11R6/include' => '/usr/X11R6/lib', }; if ( -e '/usr/lib64' && $Config{'myarchname'} =~ /64/ ) { $inc_lib_candidates->{'/usr/include'} = '/usr/lib64'; } if ( exists $ENV{SDL_LIB} && exists $ENV{SDL_INC} ) { $inc_lib_candidates->{ $ENV{SDL_INC} } = $ENV{SDL_LIB}; } foreach ( keys %$inc_lib_candidates ) { my $ld = $inc_lib_candidates->{$_}; next unless -d $ld; my ($found_lib) = _find_file( $ld, qr/[\/\\]lib\QSDLmain\E[\-\d\.]*\.(so|dylib|bundle[\d\.]*|a|dll.a)$/ ); return $found_lib if $found_lib; } return 0; } sub _find_file { my ( $dir, $re ) = @_; my @files; $re ||= qr/.*/; { #hide warning "Can't opendir(...): Permission denied - fix for http://rt.cpan.org/Public/Bug/Display.html?id=57232 no warnings; find( { wanted => sub { push @files, rel2abs($_) if /$re/ }, follow => 1, no_chdir => 1, follow_skip => 2 }, $dir ); }; return @files; } 1; SDL-2.540/inc/My/Builder/Unix.pm000444000765000024 40111760240073 16365 0ustar00jtpalmerstaff000000000000package My::Builder::Unix; use base 'My::Builder'; use Config; if($^O eq 'cygwin') { my $ccflags = $Config{ccflags}; $ccflags =~ s/-fstack-protector//; $My::Builder::config = { ld => 'gcc', cc => 'gcc', ccflags => $ccflags }; } 1; SDL-2.540/inc/My/Builder/Windows.pm000444000765000024 24211760240072 17076 0ustar00jtpalmerstaff000000000000package My::Builder::Windows; use base 'My::Builder'; sub process_xs { my ( $self, $file ) = @_; $file =~ s/\\/\//g; $self->SUPER::process_xs($file); } 1; SDL-2.540/lib000755000765000024 011760240073 13016 5ustar00jtpalmerstaff000000000000SDL-2.540/lib/SDL.pm000444000765000024 606311760240073 14140 0ustar00jtpalmerstaff000000000000#!/usr/bin/env perl # # SDL.pm # # Copyright (C) 2005 David J. Goehrig # Copyright (C) 2010 Kartik Thakore # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # Kartik Thakore # kthakore@cpan.org # package SDL; use strict; use warnings; use Carp; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL_perl; use SDL::Constants ':SDL'; #use SDL::Internal::Loader; See TODO near END{} our @ISA = qw(Exporter DynaLoader); use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{SDL} }; push @EXPORT, 'NULL'; our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL/defaults'} ); our $VERSION = '2.540'; $VERSION = eval $VERSION; print "$VERSION" if ( defined( $ARGV[0] ) && ( $ARGV[0] eq '--SDLperl' ) ); $SDL::DEBUG = 0; sub NULL { return 0; } # workaround, doing putenv from perl instead of sdl's: #int #putenv (variable) # char *variable # CODE: # RETVAL = SDL_putenv(variable); # OUTPUT: # RETVAL sub putenv { my $cmd = shift; if ( $cmd =~ /^(\w+)=(.*)$/ ) { $ENV{$1} = $2; return 0; } return -1; } # workaround as: # extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...); sub set_error { my ( $format, @arguments ) = @_; SDL::set_error_real( sprintf( $format, @arguments ) ); } # Hints for Inline.pm sub Inline { my $language = shift; if ($language ne 'C') { warn "Warning: SDL.pm does not provide Inline hints for the $language language\n"; return } require Alien::SDL; require File::Spec; my $libs = Alien::SDL->config('libs'); #This should be added in ldd flags section but it is only doing SDL_main for some reason. $libs .= ' '.File::Spec->catfile(Alien::SDL->config('prefix'),'lib','libSDL.dll.a') if( $^O =~ /Win32/ig ); my $cflags = Alien::SDL->config('cflags'); my $path; my $sdl_typemap = File::Spec->catfile( 'SDL', 'typemap' ); grep { my $find = File::Spec->catfile( $_, $sdl_typemap ); $path = $find if -e $find } @INC; return { LIBS => $libs, CCFLAGS => $cflags, TYPEMAPS => $path, AUTO_INCLUDE => '#include ' }; } 1; SDL-2.540/lib/SDL_perl.pm000444000765000024 235211760240073 15157 0ustar00jtpalmerstaff000000000000#!/usr/bin/env perl # # SDL_perl.pm # # Copyright (C) 2005 David J. Goehrig # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package SDL_perl; @ISA = qw/ DynaLoader /; require DynaLoader; use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL_perl; 1; SDL-2.540/lib/Module000755000765000024 011760240072 14242 5ustar00jtpalmerstaff000000000000SDL-2.540/lib/Module/Build000755000765000024 011760240072 15301 5ustar00jtpalmerstaff000000000000SDL-2.540/lib/Module/Build/SDL.pm000444000765000024 2313111760240072 16436 0ustar00jtpalmerstaff000000000000package Module::Build::SDL; use strict; use warnings; use base 'Module::Build'; __PACKAGE__->add_property(parinput => ''); __PACKAGE__->add_property(paroutput => ''); __PACKAGE__->add_property(parlibs => [ qw/SDL SDL-1.2 SDLmain/ ]); __PACKAGE__->add_property(parmods => []); use File::Spec; use File::Find qw[finddepth]; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); use Alien::SDL; sub new { my $self = shift; my %args = @_; $args{share_dir} ||= 'data'; #set default sharedir name 'data' instead of 'share' $self->SUPER::new(%args); } sub ACTION_par { my ($self) = @_; $self->depends_on('code'); $self->depends_on('installdeps'); #checking if we have the pp installed die 'Need PAR::Packer' if !( eval ' use PAR::Packer; 1' ); #here comes the code from https://github.com/PerlGameDev/SDL-Par-Packager/blob/master/SDLpp.pl my $output = $self->paroutput || (($^O eq 'MSWin32') ? 'a.exe' : 'a'); my $input = $self->parinput; my @sdl_libs = @{$self->parlibs}; my $extra = join ' ', (map {"-M$_"} @{$self->parmods}); # = '-MModname::A -MModname::B ...' my $Include = './lib'; die 'parinput needs to be specified' unless $input; print "BUILDING PAR \n"; my $exclude_modules = '-X Alien::SDL::ConfigData -X SDL::ConfigData'; my $include_modules = '-M ExtUtils::CBuilder::Base -M Data::Dumper -M SDL -M Alien::SDL'; $include_modules .= " $extra" if $extra; my $out_par = $output . '.par'; my $par_cmd = "pp -B $exclude_modules $include_modules"; $par_cmd .= " -I $Include" if $Include; $par_cmd .= " -p -o $out_par $input"; print "\t $par_cmd \n"; `$par_cmd` if !-e $out_par; print "PAR: $out_par\n" if -e $out_par; print "SEARCHING FOR ConfigData files \n"; my $lib; my $AS_path; my $SD_path; finddepth( sub { my ($f, $d) = ($File::Find::name, $File::Find::dir); if ( $_ =~ /ConfigData/ ) { $AS_path = $f if $f =~ 'Alien/SDL/ConfigData.pm'; $SD_path = $f if $f =~ 'SDL/ConfigData.pm' && $f !~ 'Alien/SDL/ConfigData.pm'; $lib = $d if ( $AS_path && $SD_path ); } }, @INC ); die "Cannot find lib/SDL/ConfigData.pm or lib/Alien/SDL/ConfigData.pm \n" if ( !$AS_path || !$SD_path ); print "Found ConfigData files in $lib \n"; print "READING PAR FILE \n"; my $par_file = Archive::Zip->new(); unless ( $par_file->read($out_par) == AZ_OK ) { die 'read error on ' . $out_par; } $par_file->addFile( $AS_path, 'lib/Alien/SDL/ConfigData.pm' ); $par_file->addFile( $SD_path, 'lib/SDL/ConfigData.pm' ); my $share = Alien::SDL::ConfigData->config('share_subdir'); my @shares = $par_file->membersMatching($share); my $alien_sdl_auto = $shares[0]->fileName; $alien_sdl_auto =~ s/$share(\S+)// if $alien_sdl_auto; my @auto_folder = $par_file->membersMatching("$alien_sdl_auto(?!$share)"); my @sdl_not_runtime = $par_file->membersMatching( $share . '/include' ); #TODO remove extra fluff in share_dri push @sdl_not_runtime, @auto_folder; #remove non share dir stuff push @sdl_not_runtime, $par_file->membersMatching( $share . '/etc' ); push @sdl_not_runtime, $par_file->membersMatching( $share . '/share' ); push @sdl_not_runtime, $par_file->membersMatching( $share . '/lib' ) if $^O eq 'MSWin32'; my @non = (); my @sdl_libs_to_keep = (); foreach (@sdl_libs) { if ( $^O eq 'MSWin32' ) { @non = $par_file->membersMatching( $share . "/bin(\\S+)" ); #push @sdl_not_runtime ,$par_file->membersMatching( $share."/bin(\\S+)(?!$_)" ) } else { @non = $par_file->membersMatching( $share . "/lib(\\S+)" ); } print "Removing non $_ shared objs \n"; my $lib_look = 'lib' . $_; map { my $n = $_->fileName; if ( $n =~ /$lib_look\.(so|a|dll|dylib)/ ) { push( @sdl_libs_to_keep, $_ ); } } @non; } print "found $#sdl_libs_to_keep sdl libs to keep \n"; my $regex_search = ']'; map { print "\t " . $_->fileName . "\n"; $regex_search .= ']' . $_->fileName } @sdl_libs_to_keep; $regex_search =~ s/\]\]//g; $regex_search =~ s/\]/\|/g; $regex_search = '(' . $regex_search . ')'; map { my $n = $_->fileName; my $star = ' '; if ( $n !~ $regex_search ) { push @sdl_not_runtime, $_; } } @non; push @sdl_not_runtime, $par_file->membersMatching( $share . '/bin' ) unless $^O eq 'MSWin32'; print "REMOVING NON RUNTIME $#sdl_not_runtime files from \n"; open( my $FH, '>', 'DeleteRecords.txt' ) or die $!; foreach (@sdl_not_runtime) { if ( $_->fileName eq $alien_sdl_auto . $share ) { print $FH "Not deleting " . $_->fileName . " \n"; } else { $par_file->removeMember($_); print $FH $_->fileName . "\n"; } } close $FH; my @config_members = $par_file->membersMatching('ConfigData.pm'); foreach (@config_members) { $_->desiredCompressionLevel(1); $_->unixFileAttributes(0644); } unlink $out_par . '2'; unless ( $par_file->writeToFileNamed( $out_par . '2' ) == AZ_OK ) { die 'write error'; } $par_cmd = "pp -o $output " . $out_par . "2"; `$par_cmd`; print "MADE $output \n" if -e $output; unlink $out_par . '2'; unlink $out_par; } sub ACTION_run { my ($self) = @_; $self->depends_on('code'); $self->depends_on('installdeps'); my $bd = $self->{properties}->{base_dir}; # prepare INC local @INC = @INC; local @ARGV = @{$self->args->{ARGV}}; my $script = shift @ARGV; unshift @INC, (File::Spec->catdir($bd, $self->blib, 'lib'), File::Spec->catdir($bd, $self->blib, 'arch')); if ($script) { # scenario: ./Build run bin/scriptname param1 param2 do($script); } else { # scenario: ./Build run my ($first_script) = ( glob('bin/*') ); # take the first script in bin subdir print STDERR "No params given to run action - gonna start: '$first_script'\n"; do($first_script); } } # TODO: later move app skeleton generation into SDL::Devel (or something like this) sub generate_sdl_module { my ($path, $name) = @_; #Make the path and directory stuff mkdir $path or Carp::croak "Cannot make a SDL based module at $path : $!"; mkdir "$path/lib"; mkdir "$path/bin"; mkdir "$path/data"; open my $FH, ">>$path/bin/sdl_app.pl"; print $FH "use string;\nuse warnings;\nuse SDL;\n"; close $FH; open $FH, ">>$path/Build.PL"; print $FH "use strict;\nuse warnings;\nuse Module::Build::SDL; my \$builder = Module::Build::SDL->new( module_name => '$name', dist_version => '1.01', dist_abstract => 'Put something in here', dist_author => 'developer ', license => 'perl', )->create_build_script(); "; } 1; __END__ =head1 NAME Module::Build::SDL - Module::Build subclass for building SDL apps/games [not stable yet] =head1 SYNOPSIS When creating a new SDL application/game you can create Build.PL like this: use Module::Build::SDL; my $builder = Module::Build::SDL->new( module_name => 'Games::Demo', dist_version => '1.00', dist_abstract => 'Demo game based on Module::Build::SDL', dist_author => 'coder@cpan.org', license => 'perl', requires => { 'SDL' => 0, }, #+ others Module::Build options )->create_build_script(); Once you have created a SDL application/game via Module::Build::SDL as described above you can use some extra build targets/actions: =over =item * you can create a PAR distribution like: $ perl ./Build.PL $ ./Build $ ./Build par There are some extra parameters related to 'par' action you can pass to Module::Build::SDL->new(): parinput => 'bin/scriptname.pl' paroutput => 'filename.par.exe', parlibs => [ qw/SDL SDL_main SDL_gfx/ ], #external libraries (.so/.dll) to be included into PAR parmods => [ qw/Module::A Module::B/ ], #extra modules to be included into PAR =item * to run the game from distribution directory you can use: $ perl ./Build.PL $ ./Build $ ./Build run =item * TODO: maybe some additional actions: parexe, parmsi, deb, rpm =back =head1 DESCRIPTION Module::Build::SDL is a subclass of L created to make easy some tasks specific to SDL applications - e.g. packaging SDL application/game into PAR archive. =head1 APPLICATION/GAME LAYOUT Module::Build::SDL expects the following layout in project directory: #example: game with the main *.pl script + data files + modules (*.pm) Build.PL lib/ Games/ Demo.pm bin/ game-script.pl data/ whatever_data_files_you_need.jpg the most simple game should look like: #example: simple one-script apllication/game Build.PL bin/ game-script.pl In short - there are 3 expected subdirectories: =over =item * B - one or more perl scripts (*.pl) to start the actual application/game =item * B - application/game specific modules (*.pm) organized in dir structure in "usual perl manners" =item * B - directory for storing application data (pictures, sounds etc.). This subdirectory is handled as a "ShareDir" (see L for more details) =item * As the project is (or could be) composed as a standard perl distribution it also support standard subdirectory B<'t'> (with tests). =back =head1 RULES TO FOLLOW When creating a SDL application/game based on Module::Build::SDL it is recommended to follow these rules: =over =item * Use the name for your game from I namespace; it will make the later release to CPAN much easier. =item * Put all data files into B subdirectory and access the B subdir only via L (namely by calling L function) =item * TODO: maybe add more =back =cutSDL-2.540/lib/pods000755000765000024 011760240072 13762 5ustar00jtpalmerstaff000000000000SDL-2.540/lib/pods/SDL.pod000444000765000024 1730711760240072 15275 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL - Simple DirectMedia Layer for Perl =head1 CATEGORY Core =head1 SYNOPSIS use SDL; =head1 DESCRIPTION SDL_perl is a package of Perl modules that provide both functional and object oriented interfaces to the Simple DirectMedia Layer for Perl 5. This package takes some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl. This document describes the low-level functional SDL Perl API. For the object oriented programming interface please see the documentation provided on a per-class basis. =head1 CONSTANTS The constants are not exported by default. You can export them by doing: use SDL ':all'; or access them directly: SDL::SDL_INIT_AUDIO; or by choosing the export tags below: Export tag: ':init' SDL_INIT_AUDIO SDL_INIT_VIDEO SDL_INIT_CDROM SDL_INIT_EVERYTHING SDL_INIT_NOPARACHUTE SDL_INIT_JOYSTICK SDL_INIT_TIMER =head1 METHODS =head2 init SDL::init( $flags ); As with the C language API, SDL Perl initializes the SDL environment with the C subroutine. This routine takes a mode flag constructed through the bitwise OR product of the C constants. The C<$flags> tell C which subsystems to initialize. SDL::init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); C returns C<0> on success, or C<-1> on error. =head2 init_sub_system SDL::init_sub_system( $flags ); After SDL has been initialized with C you may initialize any uninitialized subsystems with C. The C<$flags> tell C which subsystems to initialize, and are taken in the same way as C. C returns C<0> on success, or C<-1> on error. =head2 quit_sub_system SDL::quit_sub_system( $flags ); C allows you to shut down a subsystem that has been previously initialized by C or C. The C<$flags> tell C which subsystems to shut down, and are taken in the same way as C. C doesn't return any values. =head2 quit SDL::quit; C Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources. B This will be called automatically when Perl exits. You don't need to call this, except if you want to initialize SDL again after this. C doesn't return any values. =head2 was_init my $flags = SDL::was_init( $flags ); C allows you to see which SDL subsystems have been initialized. The C<$flags> tell C which subsystems to check, and are taken in the same way as C. C returns a mask of the initialized subsystems it checks. If C<$flags> is C<0> or C, a mask of all initialized subsystems will be returned (this does not include C or C). use SDL ':all'; my $mask = SDL::was_init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); if($mask & SDL_INIT_AUDIO and $mask & SDL_INIT_JOYSTICK) { # Both subsystems are initialized! } =head2 get_error my $error = SDL::get_error; Returns a scalar value containing the last error message set by the SDL library (if any). =head2 set_error_real SDL::set_error_real( $printf_format, @values ) C sets the SDL error to a C style formatted string. C doesn't return any values. =head2 clear_error SDL::clear_error; C deletes all information about the last SDL error. This is useful if the error has been handled by the program. C doesn't return any values. =head2 version my $version = SDL::version; Returns an C object of the SDL library at compile-time. use SDL; use SDL::Version; my $v = SDL::version; printf("got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch); =head2 linked_version C works in the same way as C, but returns an C object of the SDL library at link-time. =head2 get_ticks my $ticks = SDL::get_ticks; Returns the number of milliseconds since SDL library initialization. This value wraps around if the program runs for more than 49.7 days =head2 get_handle my $win32_handle = SDL::get_handle; A video surface must be inited to get a handle. =head2 delay SDL::delay( $ms ); C waits the specified number of milliseconds before returning. The actual delay may be longer than specified depending on the underlying OS. C doesn't return anything. # Delay for half a second SDL::delay(500); =head1 SDL Manual: Getting Started A new book has been started to provide a complete tutorial for SDL. See L. =head1 AUTHORS =head2 Project Founder David J. Goehrig =head2 Current Maintainers Kartik Thakore (kthakore) Tobias Leich (FROGGS) =head2 Core Developers and Contributors The following people have dedicated blood sweat and tears to making SDL Perl possible. See the L on our github repository. Andy Bakun Benedikt Meurer Blaise Roth (Blaizer) Breno G. de Oliveira (garu) Brian Cassidy (bricas) chromatic Daniel Mantovani Daniel Ruoso http://daniel.ruoso.com/ David J. Goehrig Dustin Mays (dorkfish) Fedora Gabor Szabo (szabgab) Guillaue Cottenceau (gc) Heikki MehtE<195>nen (hmehta/hejki) James King James Wright Jeffrey T. Palmer (jtpalmer) Kartik Thakore (kthakore) KatrinaTheLamia kmx Luke Michael Lamertz morgoth.666 Peter BARABAS Russell Valentine Ryan Hanlon Stephane Desneux Tels Thomas Tongue Tobias Leich (FROGGS) Tony C Yuval Kogman (nothingmuch) Wayne Keenan If you would like to contribute to SDL Perl, please post a message on the mailing list: sdl-devel@perl.org And request access to the github repository. Or drop us a line on #sdl over at irc.perl.org =head1 COPYRIGHT & LICENSE Copyright 2002-2010 SDL Authors as listed above, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 DISCLAIMER OF WARRANTY BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SDL-2.540/lib/pods/SDL000755000765000024 011760240073 14405 5ustar00jtpalmerstaff000000000000SDL-2.540/lib/pods/SDL/Audio.pod000444000765000024 2311511760240073 16331 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Audio - SDL Bindings for Audio =head1 CATEGORY Core, Audio =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Audio (); and access them directly: SDL::Audio::AUDIO_S16SYS; or by choosing the export tags below: Export tag: ':format' AUDIO_U8 AUDIO_S8 AUDIO_U16LSB AUDIO_S16LSB AUDIO_U16MSB AUDIO_S16MSB AUDIO_U16 AUDIO_S16 AUDIO_U16SYS AUDIO_S16SYS Export tag: ':status' SDL_AUDIO_STOPPED SDL_AUDIO_PLAYING SDL_AUDIO_PAUSED =head1 METHODS =head2 open use SDL; use SDL::Audio; SDL::init(SDL_INIT_AUDIO); my $desired = SDL::AudioSpec->new(); my $obtained; SDL::Audio::open( $desired, $obtained ); # $obtained->... (A new SDL::AudioSpec now); This function opens the audio device with the desired parameters, and returns 0 if successful, placing the actual hardware parameters in the structure pointed to by obtained. If obtained is NULL, the audio data passed to the callback function will be guaranteed to be in the requested format, and will be automatically converted to the hardware audio format if necessary. This function returns -1 if it failed to open the audio device, or couldn't set up the audio thread. To open the audio device a desired SDL::AudioSpec must be created. my $desired = SDL::AudioSpec->new(); You must then fill this structure with your desired audio specifications. =over =item The desired audio frequency in samples-per-second. $desired->freq =item The desired audio format. See L $desired->format =item The desired channels (1 for mono, 2 for stereo, 4 for surround, 6 for surround with center and lfe). $desired->channels =item The desired size of the audio buffer in samples. This number should be a power of two, and may be adjusted by the audio driver to a value more suitable for the hardware. Good values seem to range between 512 and 8192 inclusive, depending on the application and CPU speed. Smaller values yield faster response time, but can lead to underflow if the application is doing heavy processing and cannot fill the audio buffer in time. A stereo sample consists of both right and left channels in LR ordering. Note that the number of samples is directly related to time by the following formula: ms = (samples*1000)/freq $desired->samples =item This should be set to a function that will be called when the audio device is ready for more data. It is passed a pointer to the audio buffer, and the length in bytes of the audio buffer. This function usually runs in a separate thread, and so you should protect data structures that it accesses by calling SDL::Audio::lock and SDL::Audio::unlock in your code. THIS IS NOT READY YET $desired->callback my $callback = sub{ my ($userdata, $stream, $len) = @_; }; $userdata is a reference stored in the userdata field of the SDL::AudioSpec. $stream is a pointer to the audio buffer you want to fill with information and $len is the length of the audio buffer in bytes. $desired->userdata This pointer is passed as the first parameter to the callback function. =back SDL::Audio::open reads these fields from the desired SDL::AudioSpec structure passed to the function and attempts to find an audio configuration matching your desired. As mentioned above, if the obtained parameter is NULL then SDL with convert from your desired audio settings to the hardware settings as it plays. If obtained is NULL then the desired SDL::AudioSpec is your working specification, otherwise the obtained SDL::AudioSpec becomes the working specification and the desired specification can be deleted. The data in the working specification is used when building L's for converting loaded data to the hardware format. SDL::Audio::open calculates the size and silence fields for both the $desired and $obtained specifications. The size field stores the total size of the audio buffer in bytes, while the silence stores the value used to represent silence in the audio buffer The audio device starts out playing silence when it's opened, and should be enabled for playing by calling SDL::Audio::pause(0) when you are ready for your audio callback function to be called. Since the audio driver may modify the requested size of the audio buffer, you should allocate any local mixing buffers after you open the audio device. =head2 pause pause( $bool ) This function pauses and unpauses the audio callback processing. It should be called with C<$bool = 0> after opening the audio device to start playing sound. This is so you can safely initialize data for your callback function after opening the audio device. Silence will be written to the audio device during the pause. =head2 get_status int get_status(); Returns either C, C or C depending on the current audio state. =head2 load_wav SDL::AudioSpec load_wav( $filename, $spec ); This function loads a WAVE file into memory. If this function succeeds, it returns the given C, filled with the audio data format of the wave data, and sets C to a buffer containing the audio data, and sets C to the length of that audio buffer, in bytes. You need to free the audio buffer with C when you are done with it. This function returns NULL and sets the SDL error message if the wave file cannot be opened, uses an unknown data format, or is corrupt. Currently raw, MS-ADPCM and IMA-ADPCM WAVE files are supported. Example: use SDL; use SDL::Audio; use SDL::AudioSpec; SDL::init(SDL_INIT_AUDIO); # Converting some WAV data to hardware format my $desired = SDL::AudioSpec->new(); my $obtained = SDL::AudioSpec->new(); # Set desired format $desired->freq(22050); $desired->channels(1); $desired->format(AUDIO_S16); $desired->samples(8192); # Open the audio device if( SDL::Audio::open($desired, $obtained) < 0 ) { printf( STDERR "Couldn't open audio: %s\n", SDL::get_error() ); exit(-1); } # Load the test.wav my $wav_ref = SDL::Audio::load_wav('../../test/data/sample.wav', $obtained); unless( $wav_ref ) { warn( "Could not open sample.wav: %s\n", SDL::get_error() ); SDL::Audio::close_audio(); SDL::quit; exit(-1); } my ( $wav_spec, $wav_buf, $wav_len ) = @{$wav_ref}; =head2 free_wav free_wav( $buffer ) After a WAVE file has been opened with C its data can eventually be freed with C. C is the buffer created by C. =head2 convert SDL::Audio->convert( cvt, data, len ) Converts audio data to a desired audio format. C takes as first parameter C, which was previously initialized. Initializing a C is a two step process. First of all, the structure must be created via Cbuild> along with source and destination format parameters. Secondly, the C and C fields must be setup. C should point to the audio data buffer being source and destination at once and C should be set to the buffer length in bytes. Remember, the length of the buffer pointed to by buf should be C bytes in length. Once the C structure is initialized, we can pass it to C, which will convert the audio data pointed to by C. If C fails C is returned, otherwise the converted C structure. If the conversion completed successfully then the converted audio data can be read from Cbuf>. The amount of valid, converted, audio data in the buffer is equal to Clen*cvt-Elen_ratio>. Example: use SDL; use SDL::Audio; use SDL::AudioSpec; use SDL::AudioCVT; SDL::init(SDL_INIT_AUDIO); # Converting some WAV data to hardware format my $desired = SDL::AudioSpec->new(); my $obtained = SDL::AudioSpec->new(); # Set desired format $desired->freq(22050); $desired->channels(1); $desired->format(AUDIO_S16); $desired->samples(8192); # Open the audio device if( SDL::Audio::open($desired, $obtained) < 0 ) { printf( STDERR "Couldn't open audio: %s\n", SDL::get_error() ); exit(-1); } # Load the test.wav my $wav_ref = SDL::Audio::load_wav('../../test/data/sample.wav', $obtained); unless( $wav_ref ) { warn( "Could not open sample.wav: %s\n", SDL::get_error() ); SDL::Audio::close_audio(); SDL::quit; exit(-1); } my ( $wav_spec, $wav_buf, $wav_len ) = @{$wav_ref}; # Build AudioCVT my $wav_cvt = SDL::AudioCVT->build( $wav_spec->format, $wav_spec->channels, $wav_spec->freq, $obtained->format, $obtained->channels, $obtained->freq); # Check that the convert was built if( $wav_cvt == -1 ) { warn( "Couldn't build converter!\n" ); SDL::Audio::close(); SDL::Audio::free_wav($wav_buf); SDL::quit(); exit(-1); } # And now we're ready to convert SDL::Audio::convert($wav_cvt, $wav_buf, $wav_len); # We can free original WAV data now SDL::Audio::free_wav($wav_buf); B: What to do with it? How to use callback? See http://www.libsdl.org/cgi/docwiki.cgi/SDL_ConvertAudio =head2 mix Mixes audio data B. See: L =head2 lock lock(); The lock manipulated by these functions protects the callback function. During a C period, you can be guaranteed that the callback function is not running. Do not call this from the callback function or you will cause deadlock. =head2 unlock unlock(); Unlocks a previous C call. =head2 close close(); Shuts down audio processing and closes the audio device. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/AudioCVT.pod000444000765000024 345711760240072 16674 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::AudioCVT -- Audio Conversion Structure =head1 CATEGORY Core, Audio, Structure =head1 SYNOPSIS =head1 DESCRIPTION The C is used to convert audio data between different formats. A C structure is created with the Cbuild> function, while the actual conversion is done by the C function. =head1 METHODS =head2 new This constructor returns an empty C structure. =head2 build $cvt = SDL::AudioCVT->build( $src_format, $src_channels, $src_rate $dst_format, $dst_channels, $dst_rate ); Before an C structure can be used to convert audio data it must be initialized with source and destination information. C and C are the source and destination format of the conversion. (For information on audio formats see C). C and C are the number of channels in the source and destination formats. Finally, C and C are the frequency or samples-per-second of the source and destination formats. Once again, see C. Currently (SDL-1.2.11) only rate conversions of 2x and (1/2)x with x > 0 are done, nearing the requested rate conversion. See C. =head2 needed Set to one if the conversion is possible =head2 src_format Audio format of the source =head2 dest_format Audio format of the destination =head2 rate_incr Rate conversion increment =head2 len Length of the original audio buffer in bytes =head2 len_cvt Length of converted audio buffer in bytes (calculated) =head2 len_mult C must be C bytes in size (calculated) =head2 len_ratio Final audio size is C =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/AudioSpec.pod000444000765000024 452211760240072 17124 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::AudioSpec -- SDL Bindings for structure SDL::AudioSpec =head1 CATEGORY Core, Audio, Structure =head1 SYNOPSIS use SDL; use SDL::AudioSpec; SDL::init(SDL_INIT_AUDIO); my $audio_spec = SDL::AudioSpec->new(); $audio_spec->freq(22050); # 22050Hz - FM Radio quality $audio_spec->format(AUDIO_S16SYS); # 16-bit signed audio $audio_spec->samples(8192); # Large audio buffer reduces risk of dropouts but increases response time $audio_spec->channels(1); # Mono $audio_spec->callback('main::callback'); sub callback { # do something here } =head1 DESCRIPTION The C structure is used to describe the format of some audio data. This structure is used by C and C. While all fields are used by C, only C, C, C and C are used by C. We will detail these common members here. =head1 METHODS =head2 freq The number of samples sent to the sound device every second. Common values are 11025, 22050 and 44100. The higher the better. =head2 format Specifies the size and type of each sample element. Values it can take are: =over 4 =item AUDIO_U8 Unsigned 8-bit samples. =item AUDIO_S8 Signed 8-bit samples. =item AUDIO_U16 or AUDIO_U16LSB not supported by all hardware (unsigned 16-bit little-endian) =item AUDIO_S16 or AUDIO_S16LSB not supported by all hardware (signed 16-bit little-endian) =item AUDIO_U16MSB not supported by all hardware (unsigned 16-bit big-endian) =item AUDIO_S16MSB not supported by all hardware (signed 16-bit big-endian) =item AUDIO_U16SYS Either AUDIO_U16LSB or AUDIO_U16MSB depending on hardware CPU endianness =item AUDIO_S16SYS Either AUDIO_S16LSB or AUDIO_S16MSB depending on hardware CPU endianness =back =head2 channels The number of separate sound channels. 1 is mono (single channel), 2 is stereo (dual channel). =head2 samples When used with C this refers to the size of the audio buffer in samples. A sample is a chunk of audio data of the size specified in format multiplied by the number of channels. When the C is used with C samples is set to 4096. =head2 callback To be documented. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/CD.pod000444000765000024 526711760240072 15545 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::CD -- SDL Bindings for structure SDL_CD =head1 CATEGORY Core, CDROM, Structure =head1 SYNOPSIS use SDL; use SDL::CDROM; use SDL::CD; SDL::init(SDL_INIT_CDROM); my $drives = SDL::CDROM::num_drives; if( $drives > 0 ) { my $CD = SDL::CD->new( 0 ); if($CD) { ... } } =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::CD (); and access them directly: SDL::CD::CD_TRAYEMPTY; or by choosing the export tags below: Export tag: ':status' CD_TRAYEMPTY CD_STOPPED CD_PLAYING CD_PAUSED CD_ERROR Export tag: ':defaults' CD_FPS SDL_MAX_TRACKS =head1 METHOD =head2 new my $CD = SDL::CD->new($drive) Makes a new SDL::CD object. Returns C if the drive is busy or inaccessible. =head2 status my $status = $CD->status(); Returns the current status of the CD tray Returns on of the following constants: =over =item * CD_TRAYEMPTY =item * CD_STOPPED =item * CD_PLAYING =item * CD_PAUSED =item * CD_ERROR =back =head2 play_tracks $CD->play_tracks($start_track, $start_frame, $ntracks, $nframes) Plays the given SDL::CD starting at track $start_track, for $ntracks tracks. $start_frame is the frame offset, from the beginning of the $start_track, at which to start. $nframes is the frame offset, from the beginning of the last track ($start_track+$ntracks), at which to end playing. play_tracks() should only be called after calling L to get information about the CD. B Returns C<0>, or C<-1> if there was an error. =head2 play $CD->play($start, $length); Plays the given SDL::CD , starting a frame $start for $length frames. Returns C<0> on success, C<-1> on error =head2 pause $CD->pause(); Pauses play on CD Returns C<0> on success, or C<-1> on an error. =head2 resume $CD->resume(); Returns C<0> on success, or C<-1> on an error. =head2 stop $CD->stop(); Stops play on the CD. Returns C<0> on success, or C<-1> on an error. =head2 eject $CD->eject(); Ejects the CD. Returns C<0> on success, or C<-1> on an error. =head2 id $CD->id(); Private drive identifier =head2 num_tracks $CD->num_tracks(); Number of tracks on the CD =head2 cur_track $CD->cur_track(); Current track on the CD; =head2 track my $track = $CD->track($number); Retrieves track description of track $number in CD. See L. =head2 FRAMES_TO_MSF my ($min, $sec, $fra) = FRAMES_TO_MSF($frames); Conversion functions from frames to Minute/Second/Frames =head2 MSF_TO_FRAMES my $frames = MSF_TO_FRAMES($min, $sec, $fra); =head1 SEE ALSO L, L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/CDROM.pod000444000765000024 125611760240073 16116 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::CDROM -- SDL Bindings for the CDROM device =head1 CATEGORY Core, CDROM =head1 SYNOPSIS use SDL ':init'; use SDL::CDROM; SDL::init(SDL_INIT_CDROM); print SDL::CDROM::num_drives(); print SDL::CDROM::name(0); SDL::quit(); =head1 METHODS =head2 num_drives my $drives = SDL::CDROM::num_drives(); Returns number of drives available on the system =head2 name my $drive_name = SDL::CDROM::name($drive_num); Returns human readable name for CDROM device Examples: =over =item * '/dev/cdrom' =item * 'E:' =item * '/dev/disk/ide/1/master' =back =head1 See Also L, L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/CDTrack.pod000444000765000024 216211760240072 16521 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::CDTrack -- SDL Bindings for structure SDL_CDTrack =head1 CATEGORY Core, CDROM, Structure =head1 SYNOPSIS use SDL; use SDL::CDROM; use SDL::CD ':status'; use SDL::CDTrack; SDL::init( SDL_INIT_CDROM ); my $drives = SDL::CDROM::num_drives(); if( $drives > 0 ) { my $CD = SDL::CD->new(0); #first drive's CD if($CD) { if( $CD->status != CD_TRAYEMPTY ) { my $track = SDL::CD->track(0); } } } =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::CDTrack (); and access them directly: SDL::CDTrack::SDL_AUDIO_TRACK; or by choosing the export tags below: Export tag: ':type' SDL_AUDIO_TRACK SDL_DATA_TRACK =head1 METHOD =head2 id $track->id() # 0-99 Track number =head2 type $track->type() # SDL_AUDIO_TRACK or SDL_DATA_TRACK Type of track =head2 length $track->length() Length, in frames, of this track =head2 offset $track->offset() Frame offset to the beginning of this track =head1 SEE ALSO L, L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Color.pod000444000765000024 221311760240073 16322 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Color - Format independent color description =head2 CATEGORY Core, Video, Structure =head1 SYNOPSIS my $black = SDL::Color->new(0, 0, 0); my $color = SDL::Color->new(255, 0, 0); my $r = $color->r; # 255 my $g = $color->g; # 0 my $b = $color->b; # 0 $color->g(255); $color->b(255); # $color is now white =head1 DESCRIPTION C describes a color in a format independent way. =head1 METHODS =head2 new my $color = SDL::Color->new(255, 0, 0); The constructor creates a new color with the specified red, green and blue values. =head2 r my $r = $color->r; $color->r(128); If passed a value, this method sets the red component of the color; if not, it returns the red component of the color. =head2 g my $g = $color->g; $color->g(128); If passed a value, this method sets the green component of the color; if not, it returns the green component of the color. =head2 b my $b = $color->b; $color->b(128); If passed a value, this method sets the blue component of the color; if not, it returns the blue component of the color. =head1 SEE ALSO L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Cookbook.pod000444000765000024 55111760240072 16774 0ustar00jtpalmerstaff000000000000 =head1 NAME SDL::Cookbook =head2 CATEGORY Cookbook =head2 First Steps see L =head2 PDL with SDL Attaching a PDL piddle object to SDL. L =head2 POGL with SDL Starting an OpenGL app with SDLx::App. L Sending textures to Perl OpenGL. L =head1 AUTHORS See L. SDL-2.540/lib/pods/SDL/Credits.pod000444000765000024 113011760240072 16635 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Credits - Authors and contributors of the SDL Perl project =head1 CATEGORY Core =head1 The SDL Perl 2010 Development Team =head2 Core Developers See the L on our github repository. Also see L. =head2 Maintenance Please contact the following individuals regarding questions and problems with SDL Perl. Nick: FROGGS Name: Tobias Leich Nick: kthakore Name: Kartik Thakore They can be reached on the sdl-devel@perl.org mailing list and the #sdl channel on the irc.perl.org network. =cut SDL-2.540/lib/pods/SDL/Cursor.pod000444000765000024 475711760240073 16540 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Cursor - Mouse cursor structure =head1 CATEGORY Core, Mouse, Structure =head1 SYNOPSIS my $cursor = SDL::Cursor->new( \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top ); SDL::Mouse::set_cursor($cursor); =head1 DESCRIPTION The C module handles mouse cursors, and allows the developer to use custom-made cursors. Note that cursors can only be in black and white. =head1 METHODS =head2 new my $cursor = SDL::Cursor->new( \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top ); Create a cursor using the specified data and mask (in MSB format). The cursor is created in black and white according to the following: Data / Mask Resulting pixel on screen 0 / 1 White 1 / 1 Black 0 / 0 Transparent 1 / 0 Inverted color if possible, black if not. If you want to have color cursor, then this function is not for you. Instead, you should hide the cursor with C. Then in your main loop, when you draw graphics, draw a C at the location of the mouse cursor. Example: use SDL; use SDL::Video; use SDL::Mouse; use SDL::Cursor; SDL::init(SDL_INIT_VIDEO); SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE); my @data = ( 0b00000000, 0b00111100, 0b01111110, 0b01111110, 0b01111110, 0b01111110, 0b00111100, 0b00000000 ); my @mask = ( 0b00111100, 0b01111110, 0b11100111, 0b11000011, 0b11000011, 0b11100111, 0b01111110, 0b00111100 ); my $cursor = SDL::Cursor->new(\@data, \@mask, 8, 8, 0, 0); sleep(1); SDL::Mouse::set_cursor($cursor); sleep(5); The width of cursors work in groups of 8. If the width is above 8, twice the amount of elements in C<@data> and C<@mask> are required. If the width is above 16, three times are required, and so on. For example, if you wanted a 9 pixel crosshair you might do the following: my @data = ( 0b00001000,0b00000000, 0b00001000,0b00000000, 0b00001000,0b00000000, 0b00001000,0b00000000, 0b11111111,0b10000000, 0b00001000,0b00000000, 0b00001000,0b00000000, 0b00001000,0b00000000, 0b00001000,0b00000000, ); my @mask = @data; my $cursor = SDL::Cursor->new(\@data, \@mask, 9, 9, 4, 4); The hotspot is offset by 4 pixels because a crosshair clicks from the center instead of the top left. =head1 AUTHORS See L. =head1 SEE ALSO L L =cut SDL-2.540/lib/pods/SDL/Deprecated.pod000444000765000024 241511760240072 17307 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Deprecated - Log of Deprecated items per release =head1 CATEGORY Core =head1 RELEASES =head2 2.517 Major changes to C. C is now C. Event handlers no longer end C on returning false. Call C explicitly instead. The first argument to move handlers is the step portion instead of C
. The second argument to move handlers, the C value, is now the third argument. C will limit apps to a framerate of 60 by default. =head2 2.513 =over =item SDLx::App C is deprecated. =back =head2 2.502 =over =item SDLx::App Now depends on L. To get the SDL::Surface, use C< ->surface() >. Alternatively L. =item SDLx::Surface C< get_display > is now called L. =item SDLx::Sprite::Animated Has drastically changed, and is still volatile. =back =head2 2.500 =over =item SDL::App SDL::App has migrated to SDLx::App namespace. The reason for this is because it is an extension and not a 1:1 XS/Constant Module to the c library. =item SDL::Game::Rect SDL::Game::Rect has migrated to SDLx::Rect namespace. Same reasoning as above. =back =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Event.pod000444000765000024 3607111760240072 16355 0ustar00jtpalmerstaff000000000000 =head1 NAME SDL::Event - General event structure =head2 CATEGORY Core, Events, Structure =head1 SYNOPSIS use SDL::Event; # for the event object itself use SDL::Events; # functions for event queue handling SDL::init(SDL_INIT_VIDEO); my $event = SDL::Event->new(); while(1) { SDL::Events::pump_events(); if(SDL::Events::poll_event($event)) { if($event->type == SDL_MOUSEBUTTONDOWN) { # now you can handle the details $event->button_which; $event->button_button; $event->button_x; $event->button_y; } last if $event->type == SDL_QUIT; } # your screen drawing code will be here } =head1 DESCRIPTION Event handling allows your application to receive input from the user. Event handling is initalised (along with video) with a call to: C Internally, SDL stores all the events waiting to be handled in an event queue. Using functions like C, C and C you can observe and handle waiting input events. The key to event handling in SDL is the C union. The event queue itself is composed of a series of C unions, one for each waiting event. C unions are read from the queue with the C function and it is then up to the application to process the information stored with them. =head1 METHODS =head2 new C creates an empty event-object, which can be used store information. Either by calling C that transfers one event from the queue into our object or by setting all the needed data manually in order to push the event to the queue. use SDL::Event; my $event = SDL::Event->new(); =head2 type SDL::Event is a union of all event structures used in SDL, using it is a simple matter of knowing which union member relates to which event C. print 'heureka' if $event->type == SDL_MOUSEBUTTONDOWN; Available type constants: =over 4 =item * L - Application visibility event structure =item * L - Keyboard event structure =item * L - Keyboard event structure =item * L - Mouse motion event structure =item * L - Mouse button event structure =item * L - Mouse button event structure =item * L - Joystick axis motion event structure =item * L - Joystick trackball motion event structure =item * L - Joystick hat position change event structure =item * L - Joystick button event structure =item * L - Joystick button event structure =item * L - Window resize event structure =item * L - Window expose event =item * L - Quit requested event =item * L - A user-defined event type =item * L - Platform-dependent window manager event. =back Event types are grouped by masks. C will return the proper mask for the given C. Available event mask constants: =over 4 =item * SDL_ACTIVEEVENTMASK =item * SDL_KEYDOWNMASK =item * SDL_KEYUPMASK =item * SDL_KEYEVENTMASK =item * SDL_MOUSEMOTIONMASK =item * SDL_MOUSEBUTTONDOWNMASK =item * SDL_MOUSEBUTTONUPMASK =item * SDL_MOUSEEVENTMASK =item * SDL_JOYAXISMOTIONMASK =item * SDL_JOYBALLMOTIONMASK =item * SDL_JOYHATMOTIONMASK =item * SDL_JOYBUTTONDOWNMASK =item * SDL_JOYBUTTONUPMASK =item * SDL_JOYEVENTMASK =item * SDL_VIDEORESIZEMASK =item * SDL_VIDEOEXPOSEMASK =item * SDL_QUITMASK =item * SDL_SYSWMEVENTMASK =back This way you can check if a given C matches a mask: (SDL_EVENTMASK(SDL_JOYBUTTONDOWN) & SDL_MOUSEEVENTMASK) # is false (SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) & SDL_MOUSEEVENTMASK) # is true (SDL_EVENTMASK(SDL_MOUSEBUTTONUP) & SDL_MOUSEEVENTMASK) # is true (SDL_EVENTMASK(SDL_MOUSEMOTION) & SDL_MOUSEEVENTMASK) # is true # and also true is: (SDL_MOUSEEVENTMASK == SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP) | SDL_EVENTMASK(SDL_MOUSEMOTION)) =head2 Application visibility events C is used when an event of type C is reported. When the mouse leaves or enters the window area a C type activation event occurs, if the mouse entered the window then B will be 1, otherwise B will be 0. A C type activation event occurs when the application loses or gains keyboard focus. This usually occurs when another application is made active. Finally, a C type event occurs when the application is either minimised/iconified (B=0) or restored. A single event can have multiple values set in B. B This event does not occur when an application window is first created. A new ActiveEvent (to fake focus loss) will be created like this: my $event = SDL::Event->new(); $event->type(SDL_ACTIVEEVENT); $event->active_gain(0); $event->active_state(SDL_APPMOUSEFOCUS); # I think this is wrong, ->active_type() should get SDL_APPMOUSEFOCUS, but what state gets? =head3 active_gain See C. 0 if the event is a loss or 1 if it is a gain. =head3 active_state A bitmask of the following values: SDL_APPMOUSEFOCUS if mouse focus was gained or lost, SDL_APPINPUTFOCUS if input focus was gained or lost, and SDL_APPACTIVE if the application was iconified (gain=0) or restored(gain=1). =head2 Keyboard events C is used when an event of type C or C is reported. The type and state actually report the same information, they just use different values to do it. A keyboard event generally occurs when a key is released (C or C) and when a key is pressed (C or C). The C and C keys are special cases and report an C when first pressed, then an C when released and pressed again. For these keys C and C events are therefore analogous to the state of the caps lock and num lock LEDs rather than the keys themselves. These special cases are required for compatibility with Sun workstations. B Repeating C events will occur if key repeat is enabled (see L). =head3 key_state C or C =head3 key_scancode The C field should generally be left alone, it is the hardware-dependent scancode returned by the keyboard. =head3 key_sym The C field is extremely useful. It is the SDL-defined value of the key (see the keysym definitions in SDLKey). This field is very useful when you are checking for certain key presses, like so: while(poll_event($event)) { switch($event->type) { case SDL_KEYDOWN: move_left() if($event->key_sym == SDLK_LEFT); break; . . . } } =head3 key_mod C stores the current state of the keyboard modifiers as explained in SDL_GetModState. =head3 key_unicode The C field is only used when UNICODE translation is enabled with L. If C is non-zero then this is the UNICODE character corresponding to the keypress. If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character: my $char; if(($event->key_unicode & 0xFF80) == 0) { $char = $event->key_unicode & 0x7F; } else { print("An International Character.\n"); } UNICODE translation does create a slight overhead so don't enable it unless its needed. NOTE: Key release events (SDL_KEYUP) won't necessarily (ever?) contain unicode information. See L =head2 Mouse motion events Simply put, a SDL_MOUSEMOTION type event occurs when a user moves the mouse within the application window or when SDL_WarpMouse is called. Both the absolute (C and C) and relative (C and C) coordinates are reported along with the current button states (C). =head3 motion_state The button state can be interpreted using the C macro (see L). =head3 motion_x, motion_y The X/Y coordinates of the mouse =head3 motion_xrel, motion_yrel Relative motion in the X/Y direction. If the cursor is hidden (SDL_ShowCursor(0)) and the input is grabbed (SDL_WM_GrabInput(SDL_GRAB_ON)), then the mouse will give relative motion events even when the cursor reaches the edge of the screen. This is currently only implemented on Windows and Linux/Unix-alikes. =head2 Mouse button events When a mouse button press or release is detected, the number of the button pressed (from 1 to 255, with 1 usually being the left button and 2 the right) is placed into C. The position of the mouse when this event occurred is stored in the C and the C fields. Like a keyboard event, information on whether the event was a press or a release event is stored in both the C and C fields, but this should be obvious. Mouse wheel events are reported as buttons 4 (up) and 5 (down). Two events are generated i.e. you get a C followed by a C event. =head3 button_which The input device index =head3 button_button The mouse button index (C, C, C, C, C) =head3 button_state C or C =head3 button_x, button_y The X/Y coordinates of the mouse at press/release time =head2 Joystick axis events A C event occurs whenever a user moves an axis on the joystick. =head3 jaxis_which The field C is the index of the joystick that reported the event. =head3 jaxis_axis The C is the index of the axis (for a more detailed explanation see the Joystick section). =head3 jaxis_value C is the current position of the axis (range: -32768 to 32767). =head2 Joystick button events A C or C event occurs when ever a user presses or releases a button on a joystick. =head3 jbutton_which The field C is the index of the joystick that reported the event. =head3 jbutton_button The C is the index of the button (for a more detailed explanation see the Joystick section). =head3 jbutton_state C is the current state of the button which is either C or C. =head2 Joystick hat events A C event occurs when ever a user moves a hat on the joystick. =head3 jhat_which The field C is the index of the joystick that reported the event. =head3 jhat_hat C is the index of the hat (for a more detailed explanation see the Joystick section). =head3 jhat_value C is the current position of the hat. It is a bitwise OR'd combination of the following values (whose meanings should be pretty obvious): =over 4 =item * C =item * C =item * C =item * C =item * C =back The following defines are also provided: =over 4 =item * C =item * C =item * C =item * C =back =head2 Joystick trackball events A C event occurs when a user moves a trackball on the joystick. =head3 jball_which The field C is the index of the joystick that reported the event. =head3 jball_ball C is the index of the trackball (for a more detailed explanation see the Joystick section). =head3 jball_xrel, jball_yrel Trackballs only return relative motion, this is the change in position on the ball since it was last polled (last cycle of the event loop) and it is stored in C and C. =head2 Window resize events =head3 resize_w, resize_h When C is passed as a flag to C the user is allowed to resize the applications window. When the window is resized an C is reported, with the new window width and height values stored in the resize structure's C and C. When an C is received the window should be resized to the new dimensions using SDL_SetVideoMode. =head2 Window expose events A C event is triggered when the screen has been modified outside of the application, usually by the window manager and needs to be redrawn. =head2 System window manager events The system window manager event contains a system-specific information about unknown window manager events. If you enable this event using C, it will be generated whenever unhandled events are received from the window manager. This can be used, for example, to implement cut-and-paste in your application. If you want to obtain system-specific information about the window manager, you can fill in the version member of a SDL_SysWMinfo structure (details can be found in SDL_syswm.h, which must be included) using the SDL_VERSION() macro found in SDL_version.h, and pass it to the function: int SDL_GetWMInfo(SDL_SysWMinfo *info); See L =head3 syswm_msg =head2 User defined events This event is unique, it is never created by SDL but only by the user. The event can be pushed onto the event queue using C. The contents of the structure members are completely up to the programmer, the only requirement is that type is a value from C to C (inclusive) my $event = SDL::Event->new(); $event->type ( SDL_USEREVENT + 3 ); $event->user_code(10); $event->user_data1('hello event'); SDL::Events::push_event($event); =head3 user_code User defined event code (integer). =head3 user_data1, user_data2 User defined data. =head2 Quit event As can be seen, the C structure serves no useful purpose. The event itself, on the other hand, is very important. If you filter out or ignore a quit event then it is impossible for the user to close the window. On the other hand, if you do accept a quit event then the application window will be closed, and screen updates will still report success even though the application will no longer be visible. B: The macro SDL_QuitRequested will return non-zero if a quit event is pending =head1 AUTHORS See L. =head1 SEE ALSO L SDL-2.540/lib/pods/SDL/Events.pod000444000765000024 3416611760240073 16544 0ustar00jtpalmerstaff000000000000 =head1 NAME SDL::Events - Bindings to the Events Category in SDL API =head2 CATEGORY Core, Events =head1 SYNOPSIS Most likely you just want to know how to get events for you app. use SDL ':init'; use SDL::Event; use SDL::Events ':all'; SDL::init(SDL_INIT_VIDEO); # Event can only be grabbed in the same thread as this ... my $event = SDL::Event->new(); # notices 'Event' ne 'Events' while( 1 ) { SDL::Events::pump_events(); while( SDL::Events::poll_event($event) ) { #check by event type on_active() if $event->type == SDL_ACTIVEEVENT; ... } } =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Events (); and access them directly: SDL::Events::SDL_ACTIVEEVENT; or by choosing the export tags below: Export tag: ':type' SDL_ACTIVEEVENT SDL_KEYDOWN SDL_KEYUP SDL_MOUSEMOTION SDL_MOUSEBUTTONDOWN SDL_MOUSEBUTTONUP SDL_JOYAXISMOTION SDL_JOYBALLMOTION SDL_JOYHATMOTION SDL_JOYBUTTONDOWN SDL_JOYBUTTONUP SDL_QUIT SDL_SYSWMEVENT SDL_VIDEORESIZE SDL_VIDEOEXPOSE SDL_USEREVENT SDL_NUMEVENTS Export tag: ':mask' SDL_EVENTMASK SDL_ACTIVEEVENTMASK SDL_KEYDOWNMASK SDL_KEYUPMASK SDL_KEYEVENTMASK SDL_MOUSEMOTIONMASK SDL_MOUSEBUTTONDOWNMASK SDL_MOUSEBUTTONUPMASK SDL_MOUSEEVENTMASK SDL_JOYAXISMOTIONMASK SDL_JOYBALLMOTIONMASK SDL_JOYHATMOTIONMASK SDL_JOYBUTTONDOWNMASK SDL_JOYBUTTONUPMASK SDL_JOYEVENTMASK SDL_VIDEORESIZEMASK SDL_VIDEOEXPOSEMASK SDL_QUITMASK SDL_SYSWMEVENTMASK SDL_ALLEVENTS Export tag: ':action' SDL_ADDEVENT SDL_PEEKEVENT SDL_GETEVENT Export tag: ':state' SDL_QUERY SDL_IGNORE SDL_DISABLE / SDL_ENABLE SDL_RELEASED / SDL_PRESSED Export tag: ':hat' SDL_HAT_CENTERED SDL_HAT_UP / SDL_HAT_RIGHT / SDL_HAT_DOWN / SDL_HAT_LEFT SDL_HAT_RIGHTUP / SDL_HAT_RIGHTDOWN / SDL_HAT_LEFTUP / SDL_HAT_LEFTDOWN Export tag: ':app' SDL_APPMOUSEFOCUS SDL_APPINPUTFOCUS SDL_APPACTIVE Export tag: ':button' SDL_BUTTON SDL_BUTTON_LEFT / SDL_BUTTON_MIDDLE / SDL_BUTTON_RIGHT SDL_BUTTON_WHEELUP / SDL_BUTTON_WHEELDOWN SDL_BUTTON_X1 / SDL_BUTTON_X2 SDL_BUTTON_LMASK / SDL_BUTTON_MMASK / SDL_BUTTON_RMASK SDL_BUTTON_X1MASK / SDL_BUTTON_X2MASK Export tag: ':keysym' SDLK_UNKNOWN SDLK_FIRST SDLK_BACKSPACE SDLK_TAB SDLK_CLEAR SDLK_RETURN SDLK_PAUSE SDLK_ESCAPE SDLK_SPACE SDLK_EXCLAIM SDLK_QUOTEDBL SDLK_HASH SDLK_DOLLAR SDLK_AMPERSAND SDLK_QUOTE SDLK_LEFTPAREN / SDLK_RIGHTPAREN SDLK_ASTERISK SDLK_PLUS / SDLK_MINUS SDLK_COMMA SDLK_PERIOD SDLK_0 .. SDLK_9 SDLK_COLON SDLK_SEMICOLON SDLK_LESS / SDLK_GREATER SDLK_EQUALS SDLK_QUESTION SDLK_AT SDLK_LEFTBRACKET / SDLK_RIGHTBRACKET SDLK_SLASH / SDLK_BACKSLASH SDLK_CARET SDLK_UNDERSCORE SDLK_BACKQUOTE SDLK_a .. SDLK_z SDLK_DELETE SDLK_WORLD_0 .. SDLK_WORLD_95 SDLK_KP0 .. SDLK_KP9 SDLK_KP_PERIOD SDLK_KP_DIVIDE / SDLK_KP_MULTIPLY SDLK_KP_MINUS / SDLK_KP_PLUS SDLK_KP_ENTER SDLK_KP_EQUALS SDLK_UP / SDLK_DOWN / SDLK_RIGHT / SDLK_LEFT SDLK_INSERT SDLK_HOME / SDLK_END SDLK_PAGEUP / SDLK_PAGEDOWN SDLK_F1 .. SDLK_F15 SDLK_NUMLOCK / SDLK_CAPSLOCK / SDLK_SCROLLOCK SDLK_RSHIFT / SDLK_LSHIFT SDLK_RCTRL / SDLK_LCTRL SDLK_RALT / SDLK_LALT SDLK_RMETA / SDLK_LMETA SDLK_LSUPER / SDLK_RSUPER SDLK_MODE SDLK_COMPOSE SDLK_HELP SDLK_PRINT SDLK_SYSREQ SDLK_BREAK SDLK_MENU SDLK_POWER SDLK_EURO SDLK_UNDO Export tag ':keymod' KMOD_NONE KMOD_LSHIFT / KMOD_RSHIFT / KMOD_SHIFT KMOD_LCTRL / KMOD_RCTRL / KMOD_CTRL KMOD_LALT / KMOD_RALT / KMOD_ALT KMOD_LMETA / KMOD_RMETA / KMOD_META KMOD_NUM KMOD_CAPS KMOD_MODE KMOD_RESERVED =head1 METHODS =head2 pump_events Pumps the event loop, gathering events from the input devices. pump_events(); pump_events gathers all the pending input information from devices and places it on the event queue. Without calls to pump_events no events would ever be placed on the queue. Often the need for calls to pump_events is hidden from the user since L and L implicitly call pump_events. However, if you are not polling or waiting for events (e.g. you are filtering them), then you must call pump_events to force an event queue update. =head2 peep_events (event, num_events, action, mask) Checks the event queue for messages and optionally returns them. my $num_peep_events = SDL::Events::peep_events($event, 127, SDL_PEEKEVENT, SDL_ALLEVENTS); If action is SDL_ADDEVENT, up to num_events events will be added to the back of the event queue. If action is SDL_PEEKEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will not be removed from the queue. If action is SDL_GETEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will be removed from the queue. The mask parameter is a bitwise OR of SDL::Events::SDL_EVENTMASK(event_type), for all event types you are interested in This function is thread-safe. You may have to call pump_events before calling this function. Otherwise, the events may not be ready to be filtered when you call peep_events. Examples of mask: =over =item SDL_EVENTMASK (SDL_KEYUP) =item (SDL_EVENTMASK (SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK (SDL_MOUSEBUTTONUP)) =item SDL_ALLEVENTS =item SDL_KEYUPMASK =item SDL_ALLEVENTS ^ SDL_QUITMASK =back =head3 RETURN Number of Events actually stored or -1 if there was an error =head2 poll_event($event) Polls for currently pending events. If $event is not NULL, the next event is removed from the queue and stored in the L structure pointed to by $event. As this function implicitly calls pump_events, you can only call this function in the thread that set the video mode with L. =head3 RETURN Returns 1 if there are any pending events, or 0 if there are none available. =head2 push_event($event) Pushes an event onto the event queue The event queue can actually be used as a two way communication channel. Not only can events be read from the queue, but the user can also push their own events onto it. event is a pointer to the event structure you wish to push onto the queue. The event is copied into the queue, and the caller may dispose of the memory pointed to after push_event returns. Note: Pushing device input events onto the queue doesn't modify the state of the device within SDL. This function is thread safe, and can be called from other threads safely. =head3 RETURN Returns 0 on success or -1 if the event couldn't be pushed. =head2 wait_event($event) Waits indefinitely for the next available $event, returning 0 if there was an error while waiting for events, 1 otherwise. If $event is not NULL, the next event is removed from the queue and stored in $event. As this function implicitly calls SDL_PumpEvents, you can only call this function in the thread that L. =head3 RETURN 0 if there was an error while waiting for events, 1 otherwise =head2 set_event_filter Sets up a filter to process all events my $filter = sub { if($_[0]->type == SDL_ACTIVEEVENT){ return 0} else{ return 1; }}; SDL::Events::set_event_filter($filter); =head3 PARAMETER set_event_filter takes a coderef that it checks all events again. The callback gets a event in the stack sub { my $event_to_test = shift; ...} to filter the event return a 0, to pass the filter return a 1. One B is if you are filtering SDL_QUIT the event will be filtered if it is non-intterupt call ( Window closes normally ). If it is a interrupt SDL_QUIT it will be process on the next event poll. Events pushed onto to the queue with L or L do not get filtered. This callback may run in a different thread. =head2 get_key_state Get a snapshot of the current keyboard state my $keys_ref = SDL::Events::get_key_state(); print $keys_ref->[SDLK_RETURN]; # 1 if pressed , 0 if not pressed Use L to update the state array. This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the get_key_state call. This function doesn't take into account whether shift has been pressed or not. =head2 get_mod_state Get the state of the modifier keys Returns the current state of modifier keys Return value is an OR'd combination of KMOD_* SDL::Events::pump_events; #get latest mod_state in buffers my $mod_state = SDL::Events::get_mod_state(); # Check which ones are pressed with # no mod pressed? print 'no_mod' if ( $mod_state & KMOD_NONE ); # CTRL or ALT print 'ctrl alt' if ($mod_state & KMOD_CTRL || $mod_state & KMOD_ALT ); =head3 MOD VALUES =over =item KMOD_NONE =item KMOD_LSHIFT =item KMOD_RSHIFT =item KMOD_LCTRL =item KMOD_RCTRL =item KMOD_LALT =item KMOD_RALT =item KMOD_LMETA =item KMOD_RMETA =item KMOD_NUM =item KMOD_CAPS =item KMOD_MODE =item KMOD_CTRL same as KMOD_LCTRL|KMOD_RCTRL =item KMOD_SHIFT same as KMOD_LSHIFT|KMOD_RSHIFT =item KMOD_ALT same as KMOD_LALT|KMOD_RALT =item KMOD_META same as KMOD_LMETA|KMOD_RMETA =back =head2 set_mod_state Get the state of the modifier keys The inverse of L allows you to impose modifier key states on your application. Simply pass your desired modifier states into $modstate. This value can be a OR'd combination of any KMOD* constant. my $modstate = KMOD_LMETA | KMOD_LSHIFT; Any KMOD_* constant see L for constants. SDL::Events::set_mod_state( $modstate ); =head2 event_state Allows you to set the state of processing certain events SDL::Events::event_state( $type, $state ); A list of $type(s) can be found in L =head3 STATES =over 4 =item SDL_IGNORE The event of $type will be automatically dropper from the event queue and will not be filtered. =item SDL_ENABLE The event of $type will be processed normally. This is default. =item SDL_QUERY The current processing state of the $type will be returned =back =head2 get_key_name Gets the name of the a SDL virtual keysym my $event = SDL::Event->new(); while( SDL::Events::poll_event($event) ) { my $key = $event->key_sym; $key_str = SDL::Events::get_key_name($key); } Returns a string with the name of the key sym. =head2 enable_unicode Enable/Disable UNICODE translation my $previous_translation_mode = SDL::Events::enable_unicode( 1 ); #enable $previous_translation_mode = SDL::Events::enable_unicode( 0 ); #disables To obtain the character codes corresponding to received keyboard events, Unicode translation must first be turned on using this function. The translation incurs a slight overhead for each keyboard event and is therefore disabled by default. For each subsequently recieved key down event, the unicode member of the L provided structure will be then contain the corresponding character code, or otherwise zero. A value of 1 for enabling, 0 for disabling and -1 for unchanged. -1 is useful for querying the current translation mode. Only key press events will be translated not release events. Returns the previous translation mode as (1,0). =head2 enable_key_repeat Sets keyboard repeat rate my $success = SDL::Events::enable_key_repeat( $delay, $interval ); Enables or disables the keyboard repeat rate. $delay specifies how long the key must be pressed before it begins repeating, it then repleats at the speed specified by $interval. Both $delay and $interval are expressed in milliseconds. Setting $delay to 0 disables key repeating completely. Good default values are SDL_DEFAULT_REPEAT_DELAY and SDL_DEFAULT_REPEAT_INTERVAL. Return 0 on success and -1 on fail. =head2 get_mouse_state Retrieves the current state of the mouse my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) }; print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK); print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK); print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK); print $x.','.$y; The current button state is returned as a button $bitmask, which can be tested using the the above constants =head2 get_relative_mouse_state Retrieves the current relative state of the mouse my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) }; print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK); print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK); print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK); print $x.','.$y; # this is relative to the last position of the mouse The current button state is returned as a button $bitmask, which can be tested using the the above constants =head2 get_app_state Gets the state of the application my $app_state = SDL::Events::get_app_state(); The $app_state is a bitwise combination of: =over =item SDL_APPMOUSEFOCUS Application has mouse focus warn 'mouse focus' if $app_state & SDL_APPMOUSEFOCUS =item SDL_APPINPUTFOCUS Application has keyboard focus warn 'keyboard focus' if $app_state & SDL_APPINPUTFOCUS =item SDL_APPACTIVE Application is visible warn 'Application Visible' if $app_state & SDL_APPACTIVE =back =head2 joystick_event_state Enable/disable joystick event polling my $status = SDL::Events::joystick_event_state( $state ); This function is used to enable or disable joystick event processing. With joystick event processing disabled you will have to update joystick states with L and read the joystick information manually. $state can be: =over =item SDL_QUERY =item SDL_ENABLE =item SDL_IGNORE Joystick event handling is default. Even if joystick event processing is enabled, individual joysticks must be opened before they generate events =back B Calling this function may delete all events currently in SDL's event queue. If $state is SDL_QUERY then the current state is returned, otherwise the new processing state is returned. =head1 SEE ALSO L, L =head1 AUTHORS See L. SDL-2.540/lib/pods/SDL/Image.pod000444000765000024 2376311760240072 16322 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Image - Bindings for the SDL_Image library =head1 DESCRIPTION SDL::Image allows you to load many different format of images into memory as an SDL::Surface. =head1 CATEGORY Image =head1 SUPPORTED FORMATS The following types are supported: =over =item TGA TrueVision Targa (MUST have .tga) =item BMP Windows Bitmap(.bmp) =item PNM Portable Anymap (.pnm) .pbm = Portable BitMap (mono) .pgm = Portable GreyMap (256 greys) .ppm = Portable PixMap (full color) =item XPM X11 Pixmap (.xpm) can be #included directly in code This is NOT the same as XBM(X11 Bitmap) format, which is for monocolor images. =item XCF GIMP native (.xcf) (XCF = eXperimental Computing Facility?) This format is always changing, and since there's no library supplied by the GIMP project to load XCF, the loader may frequently fail to load much of any image from an XCF file. It's better to load this in GIMP and convert to a better supported image format. =item PCX ZSoft IBM PC Paintbrush (.pcx) =item GIF CompuServe Graphics Interchange Format (.gif) =item JPG Joint Photographic Experts Group JFIF format (.jpg or .jpeg) =item TIF Tagged Image File Format (.tif or .tiff) =item LBM Interleaved Bitmap (.lbm or .iff) FORM : ILBM or PBM(packed bitmap), HAM6, HAM8, and 24bit types are not supported. =item PNG Portable Network Graphics (.png) =item XV =item ICO =item CUR =back =head1 LOADING METHODS =head2 load my $surface = SDL::Image::load( $file ); $file Image file name to load a surface from. Load file for use as an image in a new L. This actually calls L, with the file extension used as the type string. This can load all supported image files, including TGA as long as the filename ends with ".tga". It is best to call this outside of event loops, and rather keep the loaded images around until you are really done with them, as disk speed and image conversion to a surface is not that speedy. B: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called L to load support for your image format. B: If the image format supports a transparent pixel, L will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: L my $image = SDL::Image::load( $some_png_file ); SDL::Video::set_color_key($image, SDL_RLEACCEL, $image->format->colorkey); =head3 Return An image as a L. NULL is returned on errors, such as no support built for the image, or a file reading error. Use L to get cause of error. =head2 load_typed_rw SDL::Image::load_typed_rw($src, $freesrc, $type); =over =item src The source L as a pointer. The image is loaded from this. =item freesrc A non-zero value mean is will automatically close/free the src for you. Since SDL Perl cannot handle the memory inside this function you would most likely want 1 here. =item type A string that indicates which format type to interpret the image as. Here is a list of the currently recognized strings (case is not important): =over =item "BMP" =item "CUR" =item "GIF" =item "ICO" =item "JPG" =item "LBM" =item "PCX" =item "PNG" =item "PNM" =item "TGA" =item "TIF" =item "XCF" =item "XPM" =item "XV" =back =back Load src for use as a surface. This can load all supported image formats. This method does not guarantee that the format specified by type is the format of the loaded image, except in the case when TGA format is specified (or any other non-magicable format in the future). Using SDL_RWops is not covered here, but they enable you to load from almost any source. B: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called L to load support for your image format. B: If the image format supports a transparent pixel, L will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: L =head3 Transparency use SDL; use SDL::RWOps; use SDL::Image; my $file2 = SDL::RWOps->new_file("test/data/menu.png", "rb"); my $image = SDL::Image::load_typed_rw($file2, 1, "PNG"); SDL::Video::set_color_key($image, SDL_RLEACCEL, $image->format->colorkey); =head3 Return The image as a new L. NULL is returned on errors. =head2 is_[TYPE] Test for valid, supported image files: =over =item is_ICO =item is_CUR =item is_PNG =item is_BMP =item is_GIF =item is_JPG =item is_LBM =item is_PCX =item is_PNM =item is_TIF =item is_XCF =item is_XPM =item is_XV =back These functions take a L as a parameter. =head3 Return 1 if the image is a valid [TYPE] and the [TYPE] format support is compiled into SDL_image. 0 is returned otherwise. =head3 Example use SDL::RWOps; use SDL::Image; my $file = SDL::RWOps->new_file("file", "rb"); print "Image is BMP" if ( SDL::is_BMP ); =head2 load_[TYPE]_rw Specific loader for known formats: =over =item load_ICO_rw =item load_CUR_rw =item load_PNG_rw =item load_BMP_rw =item load_GIF_rw =item load_JPG_rw =item load_LBM_rw =item load_PCX_rw =item load_PNM_rw =item load_TIF_rw =item load_XCF_rw =item load_XPM_rw =item load_XV_rw =back These functions take a L as a parameter =head3 Return The image as a new L. NULL is returned on errors, like if the [TYPE] is not supported, or a read error. =head3 Example use SDL; use SDL::RWOps; use SDL::Image; my $file = SDL::RWOps->new_file("file.png", "rb"); my $image = SDL::Image::load_PNG_rw($file); die SDL::get_error if (!$image); =head2 read_XPM_from_array my $picture = SDL::Image::read_XPM_from_array(\@XPM, $width); This functions takes the reference of an array in the valid @XPM format. Also the $width of the XPM image. =head3 Return The image as a new L. NULL is returned on errors, like if XPM is not supported, or a read error. =head3 Example my @XPM= ( '30 30 9 1', ' c #FFFFFF', '. c #EFEFEF', '+ c #CFCFCF', '@ c #9F9F9F', '# c #808080', '$ c #505050', '% c #202020', '& c #000000', '* c #303030', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' .+@##@+. ', ' .@$%&&%$@. ', ' .@*&&&&&&*@. ', ' +$&&&&&&&&$+ ', ' @%&&&&&&&&%@ ', ' #&&&&&&&&&&# ', ' #&&&&&&&&&&# ', ' @%&&&&&&&&%@ ', ' +$&&&&&&&&$+ ', ' .@*&&&&&&*@. ', ' .@$%&&%$@. ', ' .+@##@+. ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',); my $picture = SDL::Image::read_XPM_from_array(\@XPM, 30); =head1 MISC METHODS =head2 linked_version Provides the version of linked sdl_image library. =head3 Return Returns a L object =head3 Example my $version = SDL::Image::linked_version(); print $version->major.' '.$version->minor.' '.$version->patch; =head2 init B =head3 Flags bitwise OR'd set of image formats to support by loading a library now. The values you may OR together to pass in are: =over =item IMG_INIT_JPG =item IMG_INIT_PNG =item IMG_INIT_TIF =back Initialize by loading support as indicated by the flags, or at least return success if support is already loaded. You may call this multiple times, which will actually require you to call IMG_Quit just once to clean up. You may call this function with a 0 to retrieve whether support was built-in or not loaded yet. B: to load JPG, PNG, and/or TIF images you can call IMG_Init with the right IMG_INIT_* flags OR'd together before you program gets busy, to prevent a later hiccup while it loads the library, and to check that you do have the support that you need before you try and use it. B: No initialization is needed nor performed when using the SDL::Image::is_JPG, SDL::Image::is_PNG, and SDL::Image::is_TIF functions. B: this function does not always set the error string, so do not depend on SDL::Image::get_error being meaningful all the time. =head3 Return A bitmask of all the currently inited image loaders. =head3 Example use SDL::Image; my $flags = IMG_INIT_JPG | IMG_INIT_PNG | IMG_INIT_JPG; my $inited = SDL::Image::init($flags); =head2 quit B This function cleans up all dynamically loaded library handles, freeing memory. If support is required again it will be initialized again, either by L or loading an image with dynamic support required. You may call this function when L functions are no longer needed for the JPG, PNG, and TIF image formats. You only need to call this function once, no matter how many times L was called. =head3 Example use SDL::Image; SDL::Image::init(IMG_INIT_JPG); #loads JPG support SDL::Image::load("file.png"); #loads PNG support SDL::Image::quit(); #unloads everything =head2 set_error Same as L =head2 get_error Same as L =head1 SEE ALSO L, L, L, L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Joystick.pod000444000765000024 1316011760240073 17066 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Joystick -- SDL Bindings for the Joystick device =head1 CATEGORY Core, Joystick =head1 SYNOPSIS use SDL; use SDL::Joystick; SDL::init_sub_system(SDL_INIT_JOYSTICK); die('no joystick found') unless(SDL::Joystick::num_joysticks()); my $joystick = SDL::Joystick->new(0); =head1 METHODS =head2 num_joysticks int SDL::Joystick::num_joysticks( void ); Counts and returns available joysticks. =head2 name string SDL::Joystick::name( index ); Get the implementation dependent name of joystick. The C parameter refers to the N'th joystick on the system. my $num_joysticks = SDL::Joystick::num_joysticks(); printf("%d joysticks found\n", $num_joysticks); for($i = 0; $i < $num_joysticks; $i++) { printf("%s\n", SDL::Joystick::name($i)); } =head2 new object SDL::Joystick->new( index ); Opens a joystick for use within SDL. The C refers to the N'th joystick in the system. A joystick must be opened before it can be used. # Initialize the joystick subsystem SDL::init_sub_system(SDL_INIT_JOYSTICK); # Check for joystick if(SDL::Joystick::num_joysticks() > 0) { # Open joystick my $joystick = SDL::Joystick->new(0); if($joystick) { printf("Opened Joystick 0\n"); printf("Name: %s\n", SDL::Joystick::name(0)); printf("Number of Axes: %d\n", SDL::Joystick::num_axes($joystick)); printf("Number of Buttons: %d\n", SDL::Joystick::num_buttons($joystick)); printf("Number of Balls: %d\n", SDL::Joystick::num_balls($joystick)); } else { printf("Couldn't open Joystick 0\n"); } # Close if opened SDL::Joystick::close($joystick) if SDL::Joystick::opened(0); } =head2 opened int SDL::Joystick::opened( index ); Determines whether a joystick has already been opened within the application. C refers to the N'th joystick on the system. Returns 1 if the joystick has been opened, or 0 if it has not. =head2 index int SDL::Joystick::index( object ); Returns the C of a given C structure. See L =head2 num_axes int SDL::Joystick::num_axes( object ); Return the number of axes available from a previously opened joystick. See L =head2 num_balls int SDL::Joystick::num_balls( object ); Return the number of trackballs available from a previously opened joystick. See L =head2 num_hats int SDL::Joystick::num_hats( object ); Gets the number of joystick hats from a previously opened joystick. See L =head2 num_buttons int SDL::Joystick::num_buttons( object ); Gets the number of joystick buttons from a previously opened joystick. See L =head2 update void SDL::Joystick::update(); Updates the state(position, buttons, etc.) of all open joysticks. If joystick events have been enabled with C then this is called automatically in the event loop. =head2 get_axis C returns the current state of the given axis on the given joystick. On most modern joysticks the X axis is usually represented by axis 0 and the Y axis by axis 1. The value returned by C is a signed integer (-32768 to 32767) representing the current position of the axis, it may be necessary to impose certain tolerances on these values to account for jitter. B: Some joysticks use axes 2 and 3 for extra buttons. Returns a 16-bit signed integer representing the current position of the axis. my $joystick = SDL::Joystick->new(0); my $x_move = SDL::Joystick::get_axis($joystick, 0); my $y_move = SDL::Joystick::get_axis($joystick, 1); =head2 get_hat int SDL::Joystick::get_hat( object, int ); C returns the current state of the given C on the given C. The current state is returned which is an OR'd combination of one or more of the following: =over 4 =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =item * C =back my $joystick = SDL::Joystick->new(0); my $position = SDL::Joystick::get_hat($joystick, 0); print("hat is in position UP\n") if $position & SDL_HAT_UP; =head2 get_button int SDL::Joystick::get_button( object, int ); C returns the current state of the given button on the given joystick. Returns 1 if the button is pressed. Otherwise, 0. my $joystick = SDL::Joystick->new(0); my $num_buttons = SDL::Joystick::num_buttons($joystick); for(my $i = 0; $i < $num_buttons; $i++) { printf("button %d is %s\n", $i, SDL::Joystick::get_button($joystick, $i) ? 'pressed' : 'not pressed'); } SDL::Joystick::close($joystick) if SDL::Joystick::opened(0); =head2 get_ball int SDL::Joystick::get_ball(SDL_Joystick $joystick, int $ball, int $dx, int $dy); Get the ball axis change. Trackballs can only return relative motion since the last call to SDL::Joystick::get_ball, these motion deltas are placed into C and C. Returns 0 on success or -1 on failure my $delta_x = 0; my $delta_y = 0; my $joystick = SDL::Joystick->new(0); SDL::Joystick::update(); printf("TrackBall Read Error!\n") if(SDL::JoystickGetBall($joystick, 0, $delta_x, $delta_y) == -1); printf("Trackball Delta- X:%d, Y:%d\n", delta_x, delta_y); =head2 close void SDL::Joystick::close( object ); Closes a previously opened joystick. See L SDL::Joystick::close($joystick) if SDL::Joystick::opened(0); =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Mixer.pod000444000765000024 1327111760240073 16356 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Mixer - Sound and music functions =head1 CATEGORY Mixer =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Mixer (); and access them directly: SDL::Mixer::MIX_DEFAULT_FREQUENCY; or by choosing the export tags below: Export tag: ':init' MIX_INIT_FLAC MIX_INIT_MOD MIX_INIT_MP3 MIX_INIT_OGG Export tag: ':defaults' MIX_CHANNELS MIX_DEFAULT_FORMAT MIX_DEFAULT_FREQUENCY MIX_DEFAULT_CHANNELS MIX_MAX_VOLUME MIX_CHANNEL_POST Export tag: ':fading' MIX_NO_FADING MIX_FADING_OUT MIX_FADING_IN Export tag: ':type' MUS_NONE MUS_CMD MUS_WAV MUS_MOD MUS_MID MUS_OGG MUS_MP3 MUS_MP3_MAD MUS_MP3_FLAC Export tag: ':format' AUDIO_U8 AUDIO_S8 AUDIO_U16LSB AUDIO_S16LSB AUDIO_U16MSB AUDIO_S16MSB AUDIO_U16 AUDIO_S16 AUDIO_U16SYS AUDIO_S16SYS Export tag: ':status' SDL_AUDIO_STOPPED SDL_AUDIO_PLAYING SDL_AUDIO_PAUSED =head1 DESCRIPTION SDL::Mixer allows you to enable sound, alter music volume settings, and lets you play, pause and resume, as well as fading the sound and music in and out. =head2 Supported Formats The SDL Mixer library is a multi-channel audio mixer. It supports I<8 channels> of B<16 bit> stereo audio, and a I. You can use the channels to load samples (i.e. sound effects) in the following formats: =over 4 =item * Microsoft WAVE files (WAV) =item * Creative Labs VOC files (VOC) =item * MIDI files (if compiled with Timidity) =back If you use MIDI, you should note that the process of mixing MIDI files to wave output is very CPU-intensive, so if playing regular WAVE files sound great, but playing MIDI files sound choppy, try using 8-bit audio, mono audio, or lower frequencies. The music channel can play the following formats: =over 4 =item * AIFF =item * MOD (.mod .xm .s3m .669 .it .med and more - if compiled with libmikmod) =item * OggVorbis (.ogg - if compiled with ogg/vorbis libraries) =item * MP3 (if compiled with SMPEG or MAD libraries) =item * FLAC (if compiled with FLAC library) =back =head1 METHODS =head2 init my $init_flags = SDL::Mixer::init( $flags ); Loads dynamic libraries and prepares them for use. Flags should be one or more flags from init flags OR'd together. It returns the flags successfully initialized, or 0 on failure. Example: use SDL::Mixer; my $init_flags = SDL::Mixer::init( MIX_INIT_MP3 | MIX_INIT_MOD | MIX_INIT_FLAC | MIX_INIT_OGG ); print("We have MP3 support!\n") if $init_flags & MIX_INIT_MP3; print("We have MOD support!\n") if $init_flags & MIX_INIT_MOD; print("We have FLAC support!\n") if $init_flags & MIX_INIT_FLAC; print("We have OGG support!\n") if $init_flags & MIX_INIT_OGG; Flags: =over 4 =item * MIX_INIT_MP3 =item * MIX_INIT_MOD =item * MIX_INIT_FLAC =item * MIX_INIT_OGG =back B: Only available for SDL_mixer >= 1.2.10 =head2 quit SDL::Mixer::quit(); This function unloads the libraries previously loaded with L. B: Only available for SDL_mixer >= 1.2.10 =head2 linked_version $version = SDL::Mixer::linked_version(); C gives you the major-, minor-, and patchlevel for SDL_mixer. This way you can check if e.g. L and L are available. Example: use SDL::Mixer; use SDL::Version; my $version = SDL::Mixer::linked_version(); printf("%d.%d.%d\n", $version->major, $version->minor, $version->patch); # prints "1.2.8" for me =head2 open_audio my $audio_opened = SDL::Mixer::open_audio( $frequency, $format, $channels, $chunksize ); C will initialize SDL_mixer if it is not yet initialized, see note. SDL_mixer may not be able to provide the exact specifications your provided, however it will automatically translate between the expected format and the real one. You can retrieve the real format using L. Returns 0 on success, -1 on error. B: You must not use C, C, C, or C They are not portable, and SDL will not return an error code when they fail. The result will be a horrible staticy noise. You can usually use C, though not always. Future versions of SDL should take this parameter only as a hint, then read back the value that the OS (for example, OSS or ALSA) has chosen to use in case the desired audio type is not supported. B: When already initialized, this function will not re-initialize SDL_mixer, nor fail. It will merely increment the number of times L must be called to actually get it to uninitialize. This serves as a very simplistic method for multiple application components to use SDL_mixer without necessitating a great deal of inter-component awareness. Be warned however that in such a situation, the latest components to initialize SDL_mixer will probably not get the SDL_mixer settings they're expecting. Example: use SDL; use SDL::Mixer; printf("Error initializing SDL_mixer: %s\n", SDL::get_error()) unless SDL::Mixer::open_audio(44100, AUDIO_S16, 2, 1024) == 0; =head2 close_audio SDL::Mixer::close_audio(); Close the mixer and halting all playing audio. This function does not return anything. =head2 query_spec my @query_spec = @{ SDL::Mixer::query_spec() }; Find out what the actual audio device parameters are. This function returns 1 as first array element (status) if the audio has been opened, 0 otherwise. Example: use SDL::Mixer; my ($status, $freq, $format, $channels) = @{ SDL::Mixer::query_spec() }; printf("%s, %s, %s, %s\n", $status, $freq, $format, $channels); =head1 SEE ALSO L, L, L, L, L. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Mouse.pod000444000765000024 354211760240073 16342 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Mouse - SDL Bindings for the Mouse device =head1 CATEGORY Core, Mouse =head1 CONSTANTS The constants for SDL::Mouse belong to SDL::Events/SDL::Event, under the export tag of C<':state'>. =head1 METHODS =head2 warp_mouse SDL::Mouse::warp_mouse( $x, $y ); Set the position of the mouse cursor (generates a mouse motion event). Even if the mouse is warped to where it currently is, a mouse motion event is generated. =head2 set_cursor SDL::Mouse::set_cursor( $cursor_object ); Sets the currently active cursor to the specified one. See L for details on cursor objects. If the cursor is currently visible, the change will be immediately represented on the display. C can be used to force cursor redraw, if this is desired for any reason. =head2 get_cursor my $cursor_object = SDL::Mouse::get_cursor; Gets the currently active mouse cursor. =head2 show_cursor my $return = SDL::Mouse::show_cursor( $state ); Toggle whether or not the cursor is shown on the screen. Passing C displays the cursor and passing C hides it. The current state of the mouse cursor can be queried by passing C, either C or C will be returned. use SDL; use SDL::Mouse; use SDL::Video; use SDL::Events ':state'; #For the constants SDL::init(SDL_INIT_VIDEO); SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE); printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); sleep(3); SDL::Mouse::show_cursor(SDL_DISABLE); printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); sleep(3); SDL::Mouse::show_cursor(SDL_ENABLE); printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); sleep(3); =head1 SEE ALSO L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/MPEG.pod000444000765000024 205211760240073 15775 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::MPEG - a SDL perl extension =head1 CATEGORY TODO =head1 SYNOPSIS $info = SDL::MPEG->new( -from => $mpeg ); =head1 DESCRIPTION C provides an interface to querying the status of a SMPEG stream. =head2 METHODS =over 4 =item * C returns true if it has audio track =item * C returns true if it has a video track =item * C returns the width of the video in pixels =item * C returns the height of the video in pixels =item * C returns the total size of the clip in bytes =item * C returns the offset into the clip in bytes =item * C returns the offset into the clip in frames =item * C returns the play rate in frames per second =item * C returns the current play time in seconds =item * C returns the total play time in seconds =back =head1 AUTHOR David J. Goehrig =head1 SEE ALSO perl(1) SDL::Video(3) =cut SDL-2.540/lib/pods/SDL/MultiThread.pod000444000765000024 33511760240073 17451 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::MultiThread - Bindings to the MultiThread category in SDL API =head2 CATEGORY TODO, Core, MultiThread =head1 SYNOPSIS This module is not an object. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Overlay.pod000444000765000024 460311760240072 16671 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Overlay - YUV Video overlay =head2 CATEGORY Core, Video, Structure =head1 SYNOPSIS First import the following modules to get access to constants and functions needed for overlay. use SDL; use SDL::Video; use SDL::Overlay; Init the video subsystem. SDL::Init(SDL_INIT_VIDEO); Create a display to use. my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); Create and attach the display to a new overlay my $overlay = SDL::Overlay->new( 100, 100, SDL_YV12_OVERLAY, $display); =head1 DESCRIPTION A C allows for video rendering on an C which is a display. The term 'overlay' is a misnomer since, unless the overlay is created in hardware, the contents for the display surface underneath the area where the overlay is shown will be overwritten when the overlay is displayed. =head1 METHODS =head2 new ( $width, $height, $YUV_flag, $display) The constructor creates a SDL::Overlay of the specified width, height and format (see C list below of available formats), for the provided display. Note the 'display' argument needs to actually be the surface created by C otherwise this function will segfault. my $overlay = SDL::Overlay->new( $width, $height, $YUV_flag, $display ); =head3 YUV_Flags More information on YUV formats can be found at L . =over 4 =item * SDL_YV12_OVERLAY 0x32315659 /* Planar mode: Y + V + U */ =item * SDL_IYUV_OVERLAY 0x56555949 /* Planar mode: Y + U + V */ =item * SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 */ =item * SDL_UYVY_OVERLAY 0x59565955 /* Packed mode: U0+Y0+V0+Y1 */ =item * SDL_YVYU_OVERLAY 0x55595659 /* Packed mode: Y0+V0+Y1+U0 */ =back =head2 format Overlay format (see YUV_Flags) =head2 w, h Width and height of overlay =head2 planes Number of planes in the overlay. Usually either 1 or 3 =head2 pitches An array of pitches, one for each plane. Pitch is the length of a row in bytes. =head2 pixels As of release 2.3 direct right to overlay is disable. An array of pointers to the data of each plane. The overlay should be locked before these pointers are used. see L, L =head2 hw_overlay This will be set to 1 if the overlay is hardware accelerated. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Palette.pod000444000765000024 204511760240072 16644 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Palette -- Color palette for 8-bit pixel formats =head1 CATEGORY Core, Video, Structure =head1 DESCRIPTION Each pixel in an 8-bit surface is an index into the colors field of the C object stored in its C. A C is created automatically when SDL allocates a C for a surface. This class has methods for returning the colors in a palette object. The colors can be set with L and L. =head1 METHODS =head2 ncolors $ncolors = $palette->ncolors(); Returns the number of colors in palette. =head2 colors @colors = @{ $palette->colors() }; Returns an array, C in length, of the Ls in the palette. =head2 color_index $color = $palette->color_index( $index ); Returns the L at the provided index of the palette. =head1 SEE ALSO L L L L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Pango.pod000444000765000024 1233211760240073 16333 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Pango - Text rendering engine =head1 CATEGORY Pango =head1 SYNOPSIS use SDL; use SDL::Color; use SDL::Surface; use SDL::Overlay; use SDL::Rect; use SDL::Video; use SDL::PixelFormat; use SDL::Pango; use SDL::Pango::Context; SDL::Pango::init(); my $context = SDL::Pango::Context->new; SDL::Pango::set_default_color($context, 0xA7C344FF, 0); SDL::Pango::set_markup($context, 'Hello World!', -1); SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); my $bg = SDL::Video::map_RGB($display->format, 0x12, 0x22, 0x45); SDL::Video::fill_rect($display, SDL::Rect->new(0, 0, 640, 480), $bg); my $surface = SDL::Pango::create_surface_draw($context); SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(0, 0, 640, 480)); SDL::Video::update_rect($display, 0, 0, 0, 0); SDL::delay(2000); =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Pango (); and access them directly: SDL::Pango::SDLPANGO_DIRECTION_NEUTRAL; or by choosing the export tags below: Export tag: ':align' =over 4 =item SDLPANGO_ALIGN_LEFT Left alignment =item SDLPANGO_ALIGN_CENTER Centered =item SDLPANGO_ALIGN_RIGHT Right alignment =back Export tag: ':direction' =over 4 =item SDLPANGO_DIRECTION_LTR Left to right =item SDLPANGO_DIRECTION_RTL Right to left =item SDLPANGO_DIRECTION_WEAK_LTR Left to right (weak) =item SDLPANGO_DIRECTION_WEAK_RTL Right to left (weak) =item SDLPANGO_DIRECTION_NEUTRAL Neutral =back =head1 METHODS =head2 init SDL::Pango::init(); Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting L. SDL does not have to be initialized before this call. Returns: always C<0>. =head2 was_init my $was_init = SDL::Pango::was_init(); Query the initialization status of the Glib and Pango API. You may, of course, use this before L to avoid initializing twice in a row. Returns: Non-zero when already initialized. Zero when not initialized. =head2 set_default_color SDL::Pango::set_default_color($context, $foreground, $background); SDL::Pango::set_default_color($context, $r1, $g1, $b1, $a1, $r2, $g2, $b2, $a2); Sets default foreground and background color when rendering text and markup. You can call it with either 2 color-parameters (32-bit RRGGBBAA values), or with 4 separate values for foreground and 4 separate values for background. =head2 set_minimum_size SDL::Pango::set_minimum_size($context, $width, $height); Sets the minimum size of the drawing rectangle. =head2 set_text SDL::Pango::set_text($context, $text, $length); SDL::Pango::set_text($context, $text, $length, $alignment); Set plain text to context. Text must be utf-8. C<$length> chars will be rendered, pass C<-1> to render the whole text. C<$alignment> can be: =over 4 =item * SDLPANGO_ALIGN_LEFT (default) =item * SDLPANGO_ALIGN_CENTER =item * SDLPANGO_ALIGN_RIGHT =back =head2 set_markup SDL::Pango::set_markup($context, $text, $length); Set markup text to context. Text must be utf-8. C<$length> chars will be rendered, pass C<-1> to render the whole text. See L for a description about the markup format. =head2 get_layout_width my $w = SDL::Pango::get_layout_width($context); Returns the width of the resulting surface of the given text/markup for this context. =head2 get_layout_height my $h = SDL::Pango::get_layout_height($context); Returns the height of the resulting surface of the given text/markup for this context. =head2 set_base_direction SDL::Pango::set_base_direction($context, $direction); Sets the direction of the text to either left-to-right or right-to-left. See L. =head2 set_dpi SDL::Pango::set_dpi($context, $dpi_x, $dpi_y); Sets the DPI (dots per inch) for this context. Default is C<96>. =head2 set_language SDL::Pango::set_language($context, $language); Sets the language name for this context. See L. Example: SDL::Pango::set_language($context, "en"); =head2 draw SDL::Pango::draw($context, $display, $x, $y); Draws the text or markup to an existing surface at position C<$x>/C<$y>. =head2 set_surface_create_args SDL::Pango::set_surface_create_args($context, $flags, $bits, $r_mask, $g_mask, $b_mask, $a_mask); Sets the argument that are used when creating a surface via L. Example: SDL::Pango::set_surface_create_args( $context, SDL_SWSURFACE, 32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF ); =head2 create_surface_draw my $surface = SDL::Pango::create_surface_draw($context); Creates a new surface and draws the text/markup. You can specify the attributes of the surfaces using L. =head1 AUTHORS See L. =head1 SEE ALSO L, L, L, L =cut SDL-2.540/lib/pods/SDL/PixelFormat.pod000444000765000024 361211760240072 17501 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::PixelFormat - Stores surface format information =head2 CATEGORY Core, Video, Structure =head1 SYNOPSIS my $surface = SDL::Surface->new( ... $surface->format; #this returns the PixelFormat object attached to this surface PixelFormat is only created in a C. This module only provides getters to the surface's pixelformat. Later on we will provide setting capability. =head1 DESCRIPTION An C stores surface format information =head1 METHODS =head2 palette $surface->format->palette; Returns the C and L of the format of the surface. =head2 BitsPerPixel $surface->format->BitsPerPixel; The number of bits used to represent each pixel in a surface. Usually 8, 16, 24 or 32. (1 to 7 are not allowed when creating a surface or open a video mode =head2 BytesPerPixel $surface->format->BytesPerPixel; The number of bytes used to represent each pixel in a surface. Usually one to four. =head2 [RGBA]loss $surface->format->Rloss; #red loss $surface->format->Bloss; #blue loss $surface->format->Gloss; #green loss $surface->format->Aloss; #alpha loss Precision loss of each color component (2[RGBA]loss) =head2 [RGBA]shift $surface->format->Rshift; #red shift $surface->format->Bshift; #blue shift $surface->format->Gshift; #green shift $surface->format->Ashift; #alpha shift Binary left shift of each color component in the pixel value =head2 [RGBA]mask $surface->format->Rmask; #red mask $surface->format->Bmask; #blue mask $surface->format->Gmask; #green mask $surface->format->Amask; #alpha mask Binary left shift of each color component in the pixel value =head2 colorkey $surface->format->colorkey; Pixel value of transparent pixels. =head2 alpha $surface->format->alpha; Overall surface alpha value =head1 SEE ALSO L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Platform.pod000444000765000024 737511760240073 17046 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL-Platform - Platform Specific Informations about SDL Perl =head1 CATEGORY Documentation =head1 DESCRIPTION This document describes OS specific informations regading the installation and use of L. =head2 General (all OS) You need to install L to acquire all prerequisites of L. On Windows, L will get you zip-files containing prebuilt libs. On Unixes you can choose between compiling libs or use libs provided by the dist. The different options on Unixes are availale when requirements are met. Like having specific libs installed. There is some additional documentation in the L. You definitively want to look there, if you want to know how to install L from the latest sources (e.g. in an unfinished, unreleased state). =head1 Windows =head2 Installation We recommend Strawberry Perl. You can get it L. Once you installed Strawberry Perl, you can access the cpan shell via the start menu. Open up the cpan shell and type C. Please follow the dialog and answer the questions to the best of your knowledge. =head1 Mac OS X =head2 Installation You will need a newer version of Perl that you can install with L. Once you have a newer Perl installed please use C to install L (and of course L). =head2 Using SDL on Mac OS X You can't use the C executable to run SDL scripts on Mac OS X, you need to use C. When you install L, a program named C is installed. It should be in your path. Using Mac OS X, your SDL Perl script have to look like this: #!SDLPerl use strict; use warnings; use SDL; # your code here ... Using the wrong Perl executable, you might encounter a lot of error messages resulting in C. cf. the corresponding L. =head1 SEE ALSO =over =item * L =item * L =back =head1 AUTHORS See list of module authors in L. If you would like to contribute to SDL Perl, please post a message on the mailing list: sdl-devel@perl.org And request access to the github repository. Or drop us a line on #sdl over at irc.perl.org =head1 COPYRIGHT & LICENSE Copyright 2002-2010 SDL Authors as listed above, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 DISCLAIMER OF WARRANTY BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SDL-2.540/lib/pods/SDL/Rect.pod000444000765000024 241211760240073 16142 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Rect - Defines a rectangular area =head2 CATEGORY Core, Video, Structure =head1 SYNOPSIS my $rect = SDL::Rect->new(0, 0, 50, 4); $rect->x(1); $rect->y(2); $rect->w(3); my $x = $rect->x; # 1 my $y = $rect->y; # 2 my $w = $rect->w; # 3 my $h = $rect->h; # 4 =head1 DESCRIPTION An C defines a rectangular area of pixels. =head1 METHODS =head2 new my $rect = SDL::Rect->new( $x, $y, $w, $h ); The constructor creates a new rectangle with the specified x, y, width and height values. =head2 x my $x = $rect->x; $rect->x(128); If passed a value, this method sets the x component of the rectangle; if not, it returns the x component of the rectangle. =head2 y my $y = $rect->y; $rect->y(128); If passed a value, this method sets the y component of the rectangle; if not, it returns the y component of the rectangle. =head2 w my $w = $rect->w; $rect->w(128); If passed a value, this method sets the w component of the rectangle; if not, it returns the w component of the rectangle. =head2 h my $h = $rect->h; $rect->h(128); If passed a value, this method sets the h component of the rectangle; if not, it returns the h component of the rectangle. =head1 SEE ALSO L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/RWOps.pod000444000765000024 1557211760240072 16311 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::RWOps -- SDL Bindings to SDL_RWops =head1 CATEGORY TODO, Core, Structure =head1 SYNOPSIS # The following example will load several png's from a single file to an array of SDL::Surface's. # Useful for e.g. levelfiles. use SDL; use SDL::Image; use SDL::RWOps; use SDL::Surface; # the file contains a 32-byte header with lengths of data blocks, followed by the data blocks itself my $file = '/path/to/file/containing_image_data.dat'; my $header = ''; # up to eight 32-bit integers specifying the length of the data blocks (images) my @images = ''; # we push the surfaces to that array later open(FH, "<$file") or die "Can't open file $file"; binmode(FH); read(FH, $header, 32); # read 32 bytes of data my @blocks = unpack( 'V*', $header ); # unpack the block sizes foreach my $block_size (@blocks) { if($block_size) { my $image = ''; read(FH, $image, $block_size); my $rw = SDL::RWOps->new_const_mem( $image ); push(@images, SDL::Image::load_PNG_rw( $rw ); } } close(FH); # ... now do something with the surfaces SDL::RWOps is an "undocumented" feature of SDL, allowing you to use pointers to memory instead of files (though it can handle files too) for things such as images or samples. The primary advantage of this feature is that many libraries load files from the filesystem themselves, leaving you a bit stuck if you want to implement your own special file access, such as an archive format. Fortunately many libraries, such as SDL_image, provide additional methods designed to read from an SDL_RWops, so that you can provide the data in whatever way you like. An example usage would be to put a bunch of resources in a zip file and use Zziplib to access them easily. =head1 METHODS =head2 rw_from_file(file,mode) rw_from_file creates a new SDL::RWOps structure for reading from and/or writing to a named file. The mode string is treated the same as in a call to the C library's fopen(). SDL::rw_from_file() returns a SDL::RWOps structure on success or undef on failure. Mode Strings: "r" Open a file for reading. The file must exist. "w" Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file. "a" Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist. "r+" Open a file for update both reading and writing. The file must exist. "w+" Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file. "a+" Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist. NOTE: In order to open a file as a binary file, a "b" character has to be included in the mode string. This additional "b" character can either be appended at the end of the string (thus making the following compound modes: "rb", "wb", "ab", "r+b", "w+b", "a+b") or be inserted between the letter and the "+" sign for the mixed modes ("rb+", "wb+", "ab+"). Additional characters may follow the sequence, although they should have no effect. For example, "t" is sometimes appended to make explicit the file is a text file. =head2 rw_from_fp(fp,autoclose) SDL::rw_from_fp creates a new SDL::RWOps structure from a file pointer, opened with stdio. If autoclose is nonzero, the file will be automatically closed when the SDL::RWOps structure is closed. It returns a SDL::RWOps on success or undef on error. Note: This is not available under Win32, since files opened in an application on that platform cannot be used by a dynamically linked library. =head2 rw_from_mem(mem,size) SDL::rw_from_mem sets up a SDL::RWOps struct based on a chunk of memory of a certain size. It returns a SDL::RWOps on success or undef on error. Note: If the memory is not writable, use SDL::rw_from_const_mem instead. =head2 from_const_mem my $rw = SDL::RWOps->from_const_mem( $image_data ); my $rw = SDL::RWOps->from_const_mem( $image_data, $size ); C sets up a SDL::RWOps object based on a memory area of a certain size. The C<$size> parameter is optional. It assumes the memory area is not writable. It returns a SDL::RWOps on success or undef on error. =head2 alloc_rw() alloc_rw allocates an empty, unpopulated SDL::RWOps structure. You must fill out the fields yourself. It returns a SDL::RWOps structure on success or undef on error. Note: You must free any memory allocated with SDL::alloc_rw with SDL::free_rw. =head2 free_rw(context) SDL::free_rw frees an SDL::RWOps structure previously allocated by SDL::alloc_rw. Only use it on memory allocated by SDL::alloc_rw. It doesn't returns anything. =head2 rw_seek(ctx,offset,whence) SDL::rw_seek calls the seek function pointer in an SDL::RWOps structure. It takes the same 3 parameters as the function pointer: 1. A pointer to an SDL::RWOps structure 2. An offset in bytes. This can be a negative value. 3.SEEK_SET, SEEK_CUR, or SEEK_END. SEEK_SET seeks from the beginning of the file, SEEK_CUR from the current position, and SEEK_END from the end of the file. SDL::rw_seek returns the final offset in the data source. =head2 rw_tell(ctx) SDL::rw_tell performs a do-nothing seek to get the current offset in an SDL::RWOps stream ctx. It takes one parameter, a pointer to an SDL::RWOps structure. It returns the offset in the stream. =head2 rw_read(ctx,ptr,size,n) SDL_RWread calls the function pointed to by an SDL::RWOps structure's read member. It takes the same 4 parameters as the function pointer: 1. A pointer to an SDL::RWOps structure 2. A pointer to an area of memory to read data into 3. The size of each block of memory to read 4. The maximum number of memory blocks to read(it may read less) It returns the number of memory blocks read, or -1 if the read failed. =head2 rw_write(ctx,ptr,size,n) SDL_RWwrite calls the write function in an SDL::RWOps structure. It takes the same parameters as the write function given in the SDL::RWOps structure: 1. A pointer to an SDL::RWOps structure 2. A pointer to an area in memory to read data from 3. The size of the memory blocks to write 4. The exact number of memory blocks to write 0n success, it returns the number of memory blocks you told it to write. If it couldn't write that exact number of blocks, or the write didn't work at all, it returns -1. =head2 rw_close(ctx) SDL::rw_close calls the close function in an SDL::RWOps structure. It only takes one parameter, an SDL::RWOps structure. Returns 0 on success, -1 on error. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/SMPEG.pod000444000765000024 354611760240072 16130 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::SMPEG - a SDL perl extension =head1 CATEGORY TODO =head1 SYNOPSIS $video = SDL::SMPEG->new( -name => 'pr0n.mpg' ); =head1 DESCRIPTION C adds support for MPEG video to your SDL Perl application. SMPEGs are objects bound to surfaces, whose playback is controlled through the object's interface. =head2 METHODS =over 4 =item * C returns any error messages associated with playback =item * C enables or disables audio playback, (on by default) =item * C enables or disable video playback, (on by default) =item * C enables or disable playback looping (off by default) =item * C set the volume as per the mixer volume =item * C binds the clip to a display surface =item * C scales the clip by either x,y factors, scales to the image dimensions, or a single scalar. =item * C plays the video clip, call C before playing =item * C pauses video playback =item * C stops video playback =item * C resets the clip to the beginning =item * C seeks to a particular byte offset =item * C skips to a particular time =item * C takes a SDL::Rect and defines the display area =item * C renders a specific frame to the screen =item * C returns a new C object reflecting the current status =item * C returns either SMPEG_PLAYING or SMPEG_STOPPED or SMPEG_ERROR =back =head1 AUTHOR David J. Goehrig =head1 SEE ALSO perl(1) SDL::Surface(3) SDL::MPEG(3) =cut SDL-2.540/lib/pods/SDL/Surface.pod000444000765000024 607311760240073 16644 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Surface - Graphic surface structure =head1 CATEGORY Core, Video, Structure =head1 SYNOPSIS use SDL; use SDL::Video; use SDL::Surface; # Create the main surface (display) SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE); # Create other surfaces attached to the $display. my $surface = SDL::Surface->new(SDL_ASYNCBLIT | SDL_HWSURFACE, 640, 480, 16, 0, 0, 0, 0); my $surface2 = SDL::Surface->new_from($surface, 100, 100, 8, 0, 0, 0, 0); =head1 DESCRIPTION An C defines a surfaceangular area of pixels. =head1 CONSTANTS The constants for SDL::Surface belong to SDL::Video, under the export tag of C<':surface'>. =over 4 =item SDL_ASYNCBLIT Use asynchronous blit if possible =item SDL_SWSURFACE Store in system memory =item SDL_HWSURFACE Store in video memory =back =head1 METHODS =head2 new my $surface = SDL::Surface->new( $flags, $width, $height, $depth, $Rmask, $Gmask, $Bmask, $Amask ); The constructor creates a new surface with the specified parameter values. The four mask values are the bits that the channel will ignore. For example, an Rmask of C<0xFF> will ignore that channel completely, making everything on the surface more green/blue. =head2 new_from my $surface = SDL::Surface->new_from( $surface, $width, $height, $depth, $Rmask, $Gmask, $Bmask, $Amask ); The constructor creates a new surface with the specified parameter values. The flags are taken from the specified C<$surface>. =head2 w my $w = $surface->w; Returns the width of the surface. SDL::Surface width is defined at construction so this is read-only. =head2 h my $h = $surface->h; Returns the height of the surface. SDL::Surface height is defined at construction so this is read-only. =head2 format my $format = $surface->format; The format of the pixels stored in the surface. See L =head2 pitch my $pitch = $surface->pitch; The scanline length in bytes. =head1 Direct Write to Surface Pixel B The following methods can be very slow, making them suitable for creating surfaces, but not for animations =head2 get_pixel my $pixel = $surface->get_pixel( $offset ) Returns the numeric pixel value for the given C<$offset>. The pixel value depends on current pixel format. B For surfaces with a palette (1 byte per pixel) the palette index is returned instead of color values. =head2 set_pixels $surface->set_pixels( $offset, $value ); Sets the pixel C<$value> to the given C<$offset>. The pixel value must fit the pixel format of the surface. B: For surfaces with a palette (1 byte per pixel) the palette index must be passed instead of color values. Example: sub putpixel { my ($x, $y, $color) = @_; $display->set_pixels( $x + $y * $display->w, $color); } See also F! =head2 get_pixels_ptr my $ptr = $surface->get_pixels_ptr; Returns a reference to the surface's pixels. =head1 SEE ALSO L, L, L, L =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/Time.pod000444000765000024 347311760240073 16153 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::Time - An SDL Perl extension for managing timers =head1 CATEGORY Core =head1 SYNOPSIS use warnings; use strict; use threads; use threads::shared; use SDL::Time; package foo; use SDL ':all'; SDL::init(SDL_INIT_TIMER); my $tick :shared = 0; sub ticker { $tick++; warn $tick; return 100; } package main; my $id = SDL::Time::add_timer(100, 'foo::ticker'); sleep(2); SDL::Time::remove_timer($id); =head1 METHODS =head2 add_timer my $id = SDL::Timer::add_timer( $ms_interval, $callback ); This runs in a separate thread and a cloned Perl thread. C and C must be used to share any variables the timer uses. The C<$callback> function, specified with a string of the function's name, will be called after the milliseconds of C<$interval> have elapsed. The actual delay may be longer than specified depending on the underlying OS. The callback function is passed the current timer interval as well as the C<$interval> parameter and should return the next timer interval. If the return value from the callback is 0, the timer is cancelled; otherwise, the timer will continue to run. The timer callback function may run in a different thread to your main program, so it shouldn't call any functions from within itself. You may call SDL::push_event, however. C returns the identifier value of the generated timer or undef on error. B You must initialize (C) the timer subsystem to use this function. =head2 remove_timer SDL::Timer::remove_timer( $id ); The other way to cancel a timer is to use C on the C<$id> of a timer. This ID is the return value of the C function. C returns C<0> on success or C<-1> on error. =head1 AUTHORS See L. =cut SDL-2.540/lib/pods/SDL/TTF.pod000444000765000024 5027611760240072 15734 0ustar00jtpalmerstaff000000000000 =pod =head1 NAME SDL::TTF - True Type Font functions (libfreetype) =head1 CATEGORY TTF =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::TTF (); and access them directly: SDL::TTF::TTF_HINTING_NORMAL; Available constants for "hinting": =over 4 =item * TTF_HINTING_NORMAL =item * TTF_HINTING_LIGHT =item * TTF_HINTING_MONO =item * TTF_HINTING_NONE =back Available constants for "style": =over 4 =item * TTF_STYLE_NORMAL =item * TTF_STYLE_BOLD =item * TTF_STYLE_ITALIC =item * TTF_STYLE_UNDERLINE =item * TTF_STYLE_STRIKETHROUGH =back =head1 METHODS =head2 General methods =head3 linked_version my $version = SDL::TTF::linked_version(); This gives you the SDL::Version object which SDL_ttf lib is used on the system. No prior initialization needs to be done before these function is called. Example: use SDL::TTF; use SDL::Version; my $version = SDL::TTF::linked_version(); printf("got version: %d.%d.%d\n", $version->major, $version->minor, $version->patch); =head3 compile_time_version my $version = SDL::TTF::compile_time_version(); This gives you the SDL::Version object which SDL_ttf was present at compile time. =head3 init my $success = SDL::TTF::init(); Initialize the truetype font API. This must be called before using other functions in this library, except L and L. SDL does not have to be initialized before this call. Returns: C<0> on success, C<-1> on any error. =head3 was_init my $was_init = SDL::TTF::was_init(); Query the initialization status of the truetype font API. You may, of course, use this before L to avoid initializing twice in a row. Or use this to determine if you need to call L. =head3 quit SDL::TTF::quit(); Shutdown and cleanup the truetype font API. After calling this the SDL::TTF functions should not be used, excepting L. You may, of course, use L to use the functionality again =head2 Management functions =head3 open_font my $font = SDL::TTF::open_font($font_file, $point_size); Load file for use as a font, at the given size. This is actually C. This can load TTF, OTF and FON files. Returns: a L object. C is returned on errors. Example: use SDL::TTF; use SDL::TTF::Font; my $font = SDL::TTF::open_font('arial.ttf', 24); =head3 open_font_index my $font = SDL::TTF::open_font($font_file, $point_size, $face_index); This is the same as L, except you can specify the face index of a font file containing multiple faces. This can load TTF and FON files. =head3 open_font_RW my $font = SDL::TTF::open_font_RW($rwops_object, $free, $point_size); This is the same as L, except you can pass an L-object. If you pass true as C<$free>, the L-object will be freed by SDL_ttf library. Don't do this, perl will free this object for you. Example: my $font = SDL::TTF::open_font_RW(SDL::RWOps->new_file($font_file, 'r'), 0, 24); =head3 open_font_index_RW my $font = SDL::TTF::open_font_index_RW($rwops_object, $free, $point_size, $face_index); This is the same as L, except you can pass an L-object. If you pass true as C<$free>, the L-object will be freed by SDL_ttf library. Don't do this, perl will free this object for you. =head2 Attributes =head3 Global attributes =head4 byte_swapped_unicode SDL::TTF::byte_swapped_unicode( $bool ); This function tells SDL_ttf whether UNICODE (2 bytes per character) text is generally byteswapped. A C or C character in a string will temporarily override this setting for the remainder of that string, however this setting will be restored for the next one. The default mode is non-swapped, native endianness of the CPU. =head3 Font style =head4 get_font_style SDL::TTF::get_font_style($font); Returns: The style as a bitmask composed of the following masks: =over 4 =item * TTF_STYLE_NORMAL =item * TTF_STYLE_BOLD =item * TTF_STYLE_ITALIC =item * TTF_STYLE_UNDERLINE =item * TTF_STYLE_STRIKETHROUGH (since SDL_ttf 2.0.10) =back Example: my $style = SDL::TTF::get_font_style($font); print("normal\n") if $style == TTF_STYLE_NORMAL; print("bold\n") if $style & TTF_STYLE_BOLD; print("italic\n") if $style & TTF_STYLE_ITALIC; print("underline\n") if $style & TTF_STYLE_UNDERLINE; print("strikethrough\n") if $style & TTF_STYLE_STRIKETHROUGH; =head4 set_font_style SDL::TTF::set_font_style($font, $style); Set the rendering style of the loaded font. B: C may cause surfaces created by C functions to be extended vertically, downward only, to encompass the underline if the original glyph metrics didn't allow for the underline to be drawn below. This does not change the math used to place a glyph using glyph metrics. On the other hand C doesn't extend the glyph, since this would invalidate the metrics used to position the glyph when blitting, because they would likely be extended vertically upward. There is perhaps a workaround, but it would require programs to be smarter about glyph blitting math than they are currently designed for. Still, sometimes the underline or strikethrough may be outside of the generated surface, and thus not visible when blitted to the screen. In this case, you should probably turn off these styles and draw your own strikethroughs and underlines. =head4 get_font_outline my $outline = SDL::TTF::get_font_outline($font); Get the current outline width of the font, in pixels. B: at least SDL_ttf 2.0.10 needed =head4 set_font_outline SDL::TTF::set_font_outline($font, $outline); Set the outline pixel width of the loaded font. Use C<0>(zero) to turn off outlining. B: at least SDL_ttf 2.0.10 needed =head3 Font settings =head4 get_font_hinting my $hinting = SDL::TTF::get_font_hinting($font); Get the current hinting setting of the loaded font. B: at least SDL_ttf 2.0.10 needed Returns the hinting type matching one of the following defined values: =over 4 =item * TTF_HINTING_NORMAL =item * TTF_HINTING_LIGHT =item * TTF_HINTING_MONO =item * TTF_HINTING_NONE =back =head4 set_font_hinting SDL::TTF::set_font_hinting($font, $hinting); Set the hinting of the loaded font. You should experiment with this setting if you know which font you are using beforehand, especially when using smaller sized fonts. If the user is selecting a font, you may wish to let them select the hinting mode for that font as well. B: at least SDL_ttf 2.0.10 needed Example: SDL::TTF::set_font_hinting($font, TTF_HINTING_LIGHT); =head4 get_font_kerning my $kerning_enabled = SDL::TTF::get_font_kerning($font); Get the current kerning setting of the loaded font. Returns: C<0>(zero) if kerning is disabled. A non-zero value is returned when enabled. The default for a newly loaded font is enabled(C<1>). B: at least SDL_ttf 2.0.10 needed B: This function returns wrong values: See L =head4 set_font_kerning SDL::TTF::set_font_kerning($font, $kerning_enabled); Set whether to use kerning when rendering the loaded font. This has no effect on individual glyphs, but rather when rendering whole strings of characters, at least a word at a time. Perhaps the only time to disable this is when kerning is not working for a specific font, resulting in overlapping glyphs or abnormal spacing within words. Pass C<0> to disable kerning, 1 to enable. B: at least SDL_ttf 2.0.10 needed =head3 Font metrics =head4 font_height my $font_height = SDL::TTF::font_height($font); Get the maximum pixel height of all glyphs of the loaded font. You may use this height for rendering text as close together vertically as possible, though adding at least one pixel height to it will space it so they can't touch. Remember that SDL_ttf doesn't handle multiline printing, so you are responsible for line spacing, see the L as well. =head4 font_ascent my $font_ascent = SDL::TTF::font_ascent($font); Get the maximum pixel ascent of all glyphs of the loaded font. This can also be interpreted as the distance from the top of the font to the baseline. It could be used when drawing an individual glyph relative to a top point, by combining it with the glyph's C metric to resolve the top of the rectangle used when blitting the glyph on the screen. Example: my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") }; $rect->y( $top + SDL::TTF::font_ascent($font) - $maxy ); =head4 font_descent my $font_descent = SDL::TTF::font_descent($font); Get the maximum pixel descent of all glyphs of the loaded font. This can also be interpreted as the distance from the baseline to the bottom of the font. It could be used when drawing an individual glyph relative to a bottom point, by combining it with the glyph's C metric to resolve the top of the rectangle used when blitting the glyph on the screen. Example: my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") }; $rect->y( $bottom - SDL::TTF::font_descent($font) - $maxy ); =head4 font_line_skip my $font_line_skip = SDL::TTF::font_line_skip($font); Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the L of the font. =head3 Face attributes =head4 font_faces my $font_faces = SDL::TTF::font_faces($font); Get the number of faces ("sub-fonts") available in the loaded font. This is a count of the number of specific fonts (based on size and style and other typographical features perhaps) contained in the font itself. =head4 font_face_is_fixed_width my $font_face_is_fixed_width = SDL::TTF::font_face_is_fixed_width($font); Test if the current font face of the loaded font is a fixed width font. Fixed width fonts are monospace, meaning every character that exists in the font is the same width, thus you can assume that a rendered string's width is going to be the result of C. Returns: C0> if font is a fixed width font. C<0> if not a fixed width font. =head4 font_face_family_name my $font_face_family_name = SDL::TTF::font_face_family_name($font); Get the current font face family name from the loaded font. This information is not for every font available. Example: my $font = SDL::TTF::open_font('arialuni.ttf', 8); printf("%s\n", SDL::TTF::font_face_family_name($font)); # will print "Arial Unicode MS" =head4 font_face_style_name my $font_face_style_name = SDL::TTF::font_face_style_name($font); Get the current font face style name from the loaded font. This information is not for every font available. Example: my $font = SDL::TTF::open_font('arialuni.ttf', 8); printf("%s\n", SDL::TTF::font_face_style_name($font)); # will print "Regular" =head3 Glyphs =head4 glyph_is_provided my $glyph_is_provided = SDL::TTF::glyph_is_provided($font, $unicode_char); Get the status of the availability of the glyph from the loaded font. Returns: the index of the glyph in font, or 0 for an undefined character code. B: You have to pass this unicode character either as UTF16/UCS-2 big endian without BOM, or with BOM as UTF16/UCS-2 big/little endian. B: at least SDL_ttf 2.0.10 needed Example: print("We have this char!\n") if SDL::TTF::glyph_is_provided($font, "\0M"); =head4 glyph_metrics my @glyph_metrics = @{ SDL::TTF::glyph_metrics($font, $unicode_char) }; Get desired glyph metrics of the UNICODE char from the loaded font. See also: L B: You have to pass this unicode character either as UTF16/UCS-2 big endian without BOM, or with BOM as UTF16/UCS-2 big/little endian. Example: my ($minx, $maxx, $miny, $maxy, $advance) = @{ SDL::TTF::glyph_metrics($font, "\0M") }; =head3 Text metrics =head4 size_text my ($width, $height) = @{ SDL::TTF::size_text($font, $text) }; Calculate the resulting surface size of the LATIN1 encoded text rendered using C<$font>. No actual rendering is done, however correct kerning is done to get the actual width. The height returned is the same as you can get using L. =head4 size_utf8 my ($width, $height) = @{ SDL::TTF::size_utf8($font, $text) }; Calculate the resulting surface size of the UTF8 encoded text rendered using C<$font>. No actual rendering is done, however correct kerning is done to get the actual width. The height returned in h is the same as you can get using L. Note that the first example uses the same text as in the LATIN1 example, that is because plain ASCII is UTF8 compatible. Examples: ($width, $height) = @{ SDL::TTF::size_utf8($font, 'Hello World!') }; # plain text, if your script is in utf8 or ansi-format # or ($width, $height) = @{ SDL::TTF::size_utf8($font, "\xE4\xBB\x8A\xE6\x97\xA5\xE3\x81\xAF") }; # utf8 hex-data # or use Unicode::String; my $unicode = utf8($data_from_somewhere); ($width, $height) = @{ SDL::TTF::size_utf8($font, $unicode->utf8) }; # utf8 via Unicode::String =head4 size_unicode my ($width, $height) = @{ SDL::TTF::size_unicode($font, $text) }; Calculate the resulting surface size of the UNICODE encoded text rendered using C<$font>. No actual rendering is done, however correct kerning is done to get the actual width. The height returned in h is the same as you can get using L. C<$text> has to be: =over 4 =item UTF16BE without BOM "hello" will look like "\0h\0e\0l\0l\0o" =item UTF16BE with BOM "hello" will look like "\xFE\xFF\0h\0e\0l\0l\0o" =item UTF16LE with BOM "hello" will look like "\xFF\xFEh\0e\0l\0l\0o\0" =back You may use Unicode::String for this. =head2 Font Rendering =head3 Solid =head4 render_glyph_solid my $surface = SDL::TTF::render_glyph_solid($font, $char, $color); Render the unicode encoded char onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface. B: The unicode char has to be passed exactly like for L. B: L. You have to upgrade libfreetype2 to at least version 2.3.5 =head4 render_text_solid my $surface = SDL::TTF::render_text_solid($font, $text, $color); Render the LATIN1 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface. B: L. You have to upgrade libfreetype2 to at least version 2.3.5 Example: use SDL; use SDL::Rect; use SDL::Video; use SDL::Color; use SDL::TTF; use SDL::TTF::Font; SDL::init(SDL_INIT_VIDEO); SDL::TTF::init(); my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); my $font = SDL::TTF::open_font('somefont.ttf', '24'); die 'Coudnt make font '. SDL::get_error if !$font; my $surface = SDL::TTF::render_text_solid($font, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF)); SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480)); SDL::Video::update_rect($display, 0, 0, 0, 0); SDL::delay(5000); =head4 render_utf8_solid my $surface = SDL::TTF::render_utf8_solid($font, $text, $color); Render the UTF8 encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface. B: L. You have to upgrade libfreetype2 to at least version 2.3.5 =head4 render_unicode_solid my $surface = SDL::TTF::render_unicode_solid($font, $text, $color); Render the unicode encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface. B: The unicode test has to be passed exactly like for L. B: L. You have to upgrade libfreetype2 to at least version 2.3.5 =head3 Shaded =head4 render_glyph_shaded my $surface = SDL::TTF::render_glyph_shaded($font, $char, $color, $background_color); Render the unicode encoded char onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to your display-surface. B: The unicode char has to be passed exactly like for L. =head4 render_text_shaded my $surface = SDL::TTF::render_text_shaded($font, $text, $color, $background_color); Render the LATIN1 encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to your display-surface. Example: use SDL; use SDL::Video; use SDL::Color; use SDL::TTF; use SDL::TTF::Font; SDL::init(SDL_INIT_VIDEO); SDL::TTF::init(); my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); my $font = SDL::TTF::open_font('arial.ttf', '24'); my $white = SDL::Color->new(0xFF, 0xFF, 0xFF); my $black = SDL::Color->new(0x00, 0x00, 0x00); my $surface = SDL::TTF::render_text_solid($font, 'Hello!', $white, $black); SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480)); SDL::Video::update_rect($display, 0, 0, 0, 0); SDL::delay(5000); =head4 render_utf8_shaded my $surface = SDL::TTF::render_utf8_shaded($font, $text, $color, $background_color); Render the UTF8 encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to your display-surface. =head4 render_unicode_shaded my $surface = SDL::TTF::render_unicode_shaded($font, $text, $color, $background_color); Render the unicode encoded text onto a new surface. The surface is filled with C<$background_color>. After that you can blit this surface to your display-surface. B: The unicode text has to be passed exactly like for L. =head3 Blended =head4 render_glyph_blended my $surface = SDL::TTF::render_glyph_blended($font, $char, $color); Render the unicode encoded char onto a new surface. After that you can blit this surface to your display-surface. B: The unicode char has to be passed exactly like for L. =head4 render_text_blended my $surface = SDL::TTF::render_text_blended($font, $text, $color); Render the LATIN1 encoded text onto a new surface. After that you can blit this surface to your display-surface. Example: use SDL; use SDL::Video; use SDL::Color; use SDL::TTF; use SDL::TTF::Font; SDL::init(SDL_INIT_VIDEO); SDL::TTF::init(); my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); my $font = SDL::TTF::open_font('arial.ttf', '24'); my $surface = SDL::TTF::render_text_blended($font, 'Hello!', SDL::Color->new(0xFF,0xFF,0xFF)); SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480)); SDL::Video::update_rect($display, 0, 0, 0, 0); SDL::delay(5000); =head4 render_utf8_blended my $surface = SDL::TTF::render_utf8_blended($font, $text, $color); Render the UTF8 encoded text onto a new surface. After that you can blit this surface to your display-surface. =head4 render_unicode_blended my $surface = SDL::TTF::render_unicode_blended($font, $text, $color); Render the unicode encoded text onto a new surface. After that you can blit this surface to your display-surface. B: The unicode char has to be passed exactly like for L. =head1 AUTHORS See L. =head1 SEE ALSO L, L, L, L =cut SDL-2.540/lib/pods/SDL/Tutorial.pod000444000765000024 576511760240073 17066 0ustar00jtpalmerstaff000000000000 =head1 NAME SDL::Tutorial - introduction to Perl SDL =head2 CATEGORY Tutorials =head1 SYNOPSIS # to read this tutorial $ perldoc SDL::Tutorial # to run this tutorial $ perl -MSDL::Tutorial -e 1 =head1 SDL Manual C are incomplete and old. A new book has been started to provide a complete tutorial for SDL. See L. =head1 SDL BASICS SDL, the Simple DirectMedia Layer, is a cross-platform multimedia library. These are the Perl 5 bindings. You can find out more about SDL at L. You can find out more about SDL perl at L. Creating an SDL application with Perl is easy. You have to know a few basics, though. Here's how to get up and running as quickly as possible. =head2 Surfaces All graphics in SDL live on a surface. You'll need at least one. That's what L provides. Of course, before you can get a surface, you need to initialize your video mode. SDL gives you several options, including whether to run in a window or take over the full screen, the size of the window, the bit depth of your colors, and whether to use hardware acceleration. For now, we'll build something really simple. =head2 Initialization SDLx::App makes it easy to initialize video and create a surface. Here's how to ask for a windowed surface with 640x480x16 resolution: use SDLx::App; my $app = SDLx::App->new( width => 640, height => 480, depth => 16, ); You can get more creative, especially if you use the C and C<icon> attributes in a windowed application. Here's how to set the window title of the application to C<My SDL Program>: use SDLx::App; my $app = SDLx::App->new( height => 640, width => 480, depth => 16, title => 'My SDL Program', ); Setting an icon is a little more involved -- you have to load an image onto a surface. That's a bit more complicated, but see the C<name> parameter to C<SDL::Surface->new()> if you want to skip ahead. =head2 Working With The App Since C<$app> from the code above is just an SDL surface with some extra sugar, it behaves much like L<SDL::Surface>. In particular, the all-important C<blit> and C<update> methods work. You'll need to create L<SDL::Rect> objects representing sources of graphics to draw onto the C<$app>'s surface, C<blit> them there, then C<update> the C<$app>. B<Note:> "blitting" is copying a chunk of memory from one place to another. That, however, is another tutorial. =head1 SEE ALSO =over 4 =item L<SDL::Tutorial::Animation> basic rectangle drawing and animation =item L<SDL::Tutorial::LunarLander> basic image loading and animation =back =head1 AUTHORS chromatic, E<lt>chromatic@wgz.orgE<gt>. Written for and maintained by the Perl SDL project, L<http://sdl.perl.org/>. See L<SDL/AUTHORS> for details. =head1 COPYRIGHT Copyright (c) 2003 - 2004, chromatic. 2009 - 2010, kthakore. All rights reserved. This module is distributed under the same terms as Perl itself, in the hope that it is useful but certainly under no guarantee. �����������SDL-2.540/lib/pods/SDL/Version.pod������������������������������������������������������������������000444��000765��000024�� 2235�11760240072� 16674� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Version - SDL Bindings for structure SDL_Version =head1 CATEGORY Core, Structure =head1 SYNOPSIS use SDL; use SDL::Version; # print compile-time version printf("SDL::version is %d.%d.%d\n", SDL::version->major, SDL::version->minor, SDL::version->patch); # print linked version printf("SDL::linked_version is %d.%d.%d\n", SDL::linked_version->major, SDL::linked_version->minor, SDL::linked_version->patch); =head1 DESCRIPTION The C<SDL::Version> structure is used by the C<SDL::linked_version> function and the C<SDL::version> macro. The C<SDL::linked_version> function returns the link-time SDL version whereas C<SDL::version> returns the compile-time SDL version. B<Note:> This is the SDL version, not the SDL_Perl version. The SDL_Perl version is in C<$SDL::VERSION>. =head1 METHODS =head2 major Returns the major version number. =head2 minor Returns the minor version number. =head2 patch Returns the patch version number. =head1 AUTHORS See L<SDL/AUTHORS>. =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Video.pod��������������������������������������������������������������������000444��000765��000024�� 137731�11760240072� 16367� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Video - Bindings to the video category in SDL API =head1 CATEGORY Core, Video =head1 SYNOPSIS use SDL; use SDL::Video; use SDL::Surface; use SDL::Rect; # the size of the window box or the screen resolution if fullscreen my $screen_width = 800; my $screen_height = 600; SDL::init(SDL_INIT_VIDEO); # setting video mode my $screen_surface = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_ANYFORMAT); # drawing something somewhere my $mapped_color = SDL::Video::map_RGB($screen_surface->format(), 0, 0, 255); # blue SDL::Video::fill_rect($screen_surface, SDL::Rect->new($screen_width / 4, $screen_height / 4, $screen_width / 2, $screen_height / 2), $mapped_color); # update an area on the screen so its visible SDL::Video::update_rect($screen_surface, 0, 0, $screen_width, $screen_height); sleep(5); # just to have time to see it =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::Video (); and access them directly: SDL::Video::SDL_SWSURFACE; or by choosing the export tags below: Export tag: ':surface' SDL_ASYNCBLIT Use asynchronous blit if possible SDL_SWSURFACE Stored in the system memory. SDL_HWSURFACE Stored in video memory Export tag: ':video' SDL_ANYFORMAT Allow any pixel-format SDL_HWPALETTE Have an exclusive palette SDL_DOUBLEBUF Double buffered SDL_FULLSCREEN Full screen surface SDL_OPENGL Have an OpenGL context SDL_OPENGLBLIT Support OpenGL blitting. NOTE: This option is kept for compatibility only, and is not recommended for new code. SDL_RESIZABLE Resizable surface SDL_NOFRAME No window caption or edge frame SDL_HWACCEL Use hardware acceleration blit SDL_SRCCOLORKEY Use colorkey blitting SDL_RLEACCELOK Private flag SDL_RLEACCEL Accelerated colorkey blitting with RLE SDL_SRCALPHA Use alpha blending blit SDL_PREALLOC Use preallocated memory Export tag ':overlay' SDL_YV12_OVERLAY Planar mode: Y + V + U (3 planes) SDL_IYUV_OVERLAY Planar mode: Y + U + V (3 planes) SDL_YUY2_OVERLAY Packed mode: Y0+U0+Y1+V0 (1 plane) SDL_UYVY_OVERLAY Packed mode: U0+Y0+V0+Y1 (1 plane) SDL_YVYU_OVERLAY Packed mode: Y0+V0+Y1+U0 (1 plane) Export tag ':palette' SDL_LOGPAL Logical palette, which controls how blits are mapped to/from the surface SDL_PHYSPAL Physical palette, which controls how pixels look on the screen Export tag ':grab' SDL_GRAB_QUERY SDL_GRAB_OFF SDL_GRAB_ON SDL_GRAB_FULLSCREEN Used internally Export tag ':gl' SDL_GL_RED_SIZE SDL_GL_GREEN_SIZE SDL_GL_BLUE_SIZE SDL_GL_ALPHA_SIZE SDL_GL_BUFFER_SIZE SDL_GL_DOUBLEBUFFER SDL_GL_DEPTH_SIZE SDL_GL_STENCIL_SIZE SDL_GL_ACCUM_RED_SIZE SDL_GL_ACCUM_GREEN_SIZE SDL_GL_ACCUM_BLUE_SIZE SDL_GL_ACCUM_ALPHA_SIZE SDL_GL_STEREO SDL_GL_MULTISAMPLEBUFFERS SDL_GL_MULTISAMPLESAMPLES SDL_GL_ACCELERATED_VISUAL SDL_GL_SWAP_CONTROL =head1 Core Functions =head2 get_video_surface my $surface = SDL::Video::get_video_surface(); This function returns the current display L<SDL::Surface>. If SDL is doing format conversion on the display surface, this function returns the publicly visible surface, not the real video surface. Example: # somewhere after you set the video mode my $surface = SDL::Video::get_video_surface(); printf( "our screen is %d pixels wide and %d pixels high\n", $surface->w, $surface->h ); =head2 get_video_info my $video_info = SDL::Video::get_video_info(); This function returns a read-only L<structure|SDL::VideoInfo> containing information about the video hardware. If it is called before L<SDL::Video::set_video_mode|/set_video_mode>, the C<vfmt> member of the returned structure will contain the pixel format of the B<best> video mode. Example: use SDL; use SDL::Video; use SDL::VideoInfo; use SDL::PixelFormat; SDL::init(SDL_INIT_VIDEO); my $video_info = SDL::Video::get_video_info(); printf( "we can have %dbits per pixel\n", $video_info->vfmt->BitsPerPixel ); =head2 video_driver_name my $driver_name = SDL::Video::video_driver_name(); This function will return the name of the initialized video driver up to a maximum of 1024 characters. The driver name is a simple one word identifier like C<"x11">, C<"windib"> or C<"directx">. B<Note>: Some platforms allow selection of the video driver through the C<SDL_VIDEODRIVER> environment variable. Example: use SDL; use SDL::Video; SDL::init(SDL_INIT_VIDEO); print SDL::Video::video_driver_name() . "\n"; =head2 list_modes my @modes = @{ SDL::Video::list_modes( $pixel_format, $flags ) }; Returns a reference to an array: =over 4 =item * of available screen dimensions (as C<SDL::Rect>'s) for the given format and video flags. =item * with first array element 'all'. In this case you can set all modes. =item * with first array element 'none' if no mode is available. =back B<Note>: <list_modes> should be called before the video_mode ist set. Otherwise you will always get 'all'. Example: use SDL; use SDL::Video; use SDL::VideoInfo; use SDL::PixelFormat; use SDL::Rect; SDL::init(SDL_INIT_VIDEO); my $video_info = SDL::Video::get_video_info(); my @modes = @{ SDL::Video::list_modes($video_info->vfmt, SDL_NOFRAME) }; if($#modes > 0) { print("available modes:\n"); foreach my $mode ( @modes ) { printf("%d x %d\n", $mode->w, $mode->h ); } } elsif($#modes == 0) { printf("%s video modes available\n", $modes[0]); } =head2 video_mode_ok my $bpp_ok = SDL::Video::video_mode_ok( $width, $height, $bpp, $flags ); This function is used to check whether the requested mode is supported by the current video device. The arguments passed to this function are the same as those you would pass to L<SDL::Video::set_video_mode|/set_video_mode>. It returns C<0> if the mode is not supported at all, otherwise the suggested C<bpp>. Example: use SDL; use SDL::Video; SDL::init(SDL_INIT_VIDEO); my $video_mode_ok = SDL::Video::video_mode_ok( 800, 600, 32, SDL_SWSURFACE ); unless($video_mode_ok) { printf( "this video mode is not supported\n" ); } =head2 set_video_mode my $surface = SDL::Video::set_video_mode( 800, 600, 32, SDL_SWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); Sets up a video mode with the specified width, height, bits-per-pixel and flags. C<set_video_mode> returns a L<SDL::Surface> on success otherwise it returns undef on error, the error message is retrieved using C<SDL::get_error>. =head3 List of available flags =over 4 =item C<SDL_SWSURFACE> Create the video surface in system memory =item C<SDL_HWSURFACE> Create the video surface in video memory =item C<SDL_ASYNCBLIT> Enables the use of asynchronous updates of the display surface. This will usually slow down blitting on single CPU machines, but may provide a speed increase on SMP systems. =item C<SDL_ANYFORMAT> Normally, if a video surface of the requested bits-per-pixel (bpp) is not available, SDL will emulate one with a shadow surface. Passing C<SDL_ANYFORMAT> prevents this and causes SDL to use the video surface, regardless of its pixel depth. =item C<SDL_HWPALETTE> Give SDL exclusive palette access. Without this flag you may not always get the colors you request with SDL::set_colors or SDL::set_palette. =item C<SDL_DOUBLEBUF> Enable hardware double buffering; only valid with C<SDL_HWSURFACE>. Calling L<SDL::Video::flip|/flip> will flip the buffers and update the screen. All drawing will take place on the surface that is not displayed at the moment. If double buffering could not be enabled then L<SDL::Video::flip|/flip> will just perform a L<SDL::Video::update_rect|/update_rect> on the entire screen. =item C<SDL_FULLSCREEN> SDL will attempt to use a fullscreen mode. If a hardware resolution change is not possible (for whatever reason), the next higher resolution will be used and the display window centered on a black background. =item C<SDL_OPENGL> Create an OpenGL rendering context. You should have previously set OpenGL video attributes with L<SDL::Video::GL_set_attribute|/GL_set_attribute>. =item C<SDL_OPENGLBLIT> Create an OpenGL rendering context, like above, but allow normal blitting operations. The screen (2D) surface may have an alpha channel, and SDL::update_rects must be used for updating changes to the screen surface. NOTE: This option is kept for compatibility only, and will be removed in next versions. Is not recommended for new code. =item C<SDL_RESIZABLE> Create a resizable window. When the window is resized by the user a C<SDL_VIDEORESIZE> event is generated and L<SDL::Video::set_video_mode|/set_video_mode> can be called again with the new size. =item C<SDL_NOFRAME> If possible, SDL_NOFRAME causes SDL to create a window with no title bar or frame decoration. Fullscreen modes automatically have this flag set. =back B<Note 1>: Use C<SDL_SWSURFACE> if you plan on doing per-pixel manipulations, or blit surfaces with alpha channels, and require a high framerate. When you use hardware surfaces (by passing the flag C<SDL_HWSURFACE> as parameter), SDL copies the surfaces from video memory to system memory when you lock them, and back when you unlock them. This can cause a major performance hit. Be aware that you may request a hardware surface, but receive a software surface because the video driver doesn't support hardware surface. Many platforms can only provide a hardware surface when using C<SDL_FULLSCREEN>. The C<SDL_HWSURFACE> flag is best used when the surfaces you'll be blitting can also be stored in video memory. B<Note 2>: If you want to control the position on the screen when creating a windowed surface, you may do so by setting the environment variables C<SDL_VIDEO_CENTERED=center> or C<SDL_VIDEO_WINDOW_POS=x,y>. You can also set them via C<SDL::putenv>. B<Note 3>: This function should be called in the main thread of your application. B<User note 1>: Some have found that enabling OpenGL attributes like C<SDL_GL_STENCIL_SIZE> (the stencil buffer size) before the video mode has been set causes the application to simply ignore those attributes, while enabling attributes after the video mode has been set works fine. B<User note 2>: Also note that, in Windows, setting the video mode resets the current OpenGL context. You must execute again the OpenGL initialization code (set the clear color or the shade model, or reload textures, for example) after calling SDL::set_video_mode. In Linux, however, it works fine, and the initialization code only needs to be executed after the first call to L<SDL::Video::set_video_mode|/set_video_mode> (although there is no harm in executing the initialization code after each call to L<SDL::Video::set_video_mode|/set_video_mode>, for example for a multiplatform application). =head2 convert_surface $converted_surface = SDL::Video::convert_surface( $surface, $format, $flags ); Creates a new SDL::surface of the specified L<SDL::PixelFormat>, and then copies and maps the given surface to it. It is also useful for making a copy of a surface. The flags parameter is passed to L<SDL::Surface>C<-E<gt>new> and has those semantics. This function is used internally by L<SDL::Video::display_format|/display_format>. This function can only be called after C<SDL::init>. it returns a L<SDL::Surface> on success or C<undef> on error. =head2 display_format $new_surface = SDL::Video::display_format( $surface ); This function takes a surface and copies it to a new surface of the pixel format and colors of the video framebuffer, suitable for fast blitting onto the display surface. It calls L<SDL::Video::convert_surface|/conver_surface>. If you want to take advantage of hardware colorkey or alpha blit acceleration, you should set the colorkey and alpha value before calling this function. If you want an alpha channel, see C<SDL::Video::display_format_alpha>. Return Value B<Note>: Remember to use a different variable for the returned surface, otherwise you have a memory leak, since the original surface isn't freed. =head2 display_format_alpha $new_surface = SDL::Video::display_format_alpha( $surface ); This function takes a surface and copies it to a new surface of the pixel format and colors of the video framebuffer plus an alpha channel, suitable for fast blitting onto the display surface. It calls L<SDL::Video::convert_surface|/convert_surface>. If you want to take advantage of hardware colorkey or alpha blit acceleration, you should set the colorkey and alpha value before calling this function. This function can be used to convert a colorkey to an alpha channel, if the C<SDL_SRCCOLORKEY> flag is set on the surface. The generated surface will then be transparent (alpha=0) where the pixels match the colorkey, and opaque (alpha=255) elsewhere. B<Note>: The video surface must be initialised using L<SDL::Video::set_video_mode|/set_video_mode> before this function is called, or it will segfault. =head2 load_BMP $surface = SDL::Video::load_BMP( $filename ); Loads a L<SDL::Surface> from a named Windows BMP file. C<SDL::Video::load_BMP> returns a L<SDL::Surface> on success or C<undef> on error. B<Note>: When loading a 24-bit Windows BMP file, pixel data points are loaded as blue, green, red, and NOT red, green, blue (as one might expect). use SDL; use SDL::Video; use SDL::Rect; use SDL::Surface; my $screen_width = 640; my $screen_height = 480; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_SWSURFACE); my $picture = SDL::Video::load_BMP('test.bmp'); die(SDL::get_error) unless $picture; my $rect = SDL::Rect->new(0, 0, $screen_width, $screen_height); SDL::Video::blit_surface( $picture, SDL::Rect->new(0, 0, $picture->w, $picture->h), $screen, SDL::Rect->new(0, 0, $screen->w, $screen->h) ); SDL::Video::update_rect( $screen, 0, 0, $screen_width, $screen_height ); sleep(2); =head2 save_BMP $saved_BMP = SDL::Video::save_BMP( $surface, $filename ); Saves the given L<SDL::Surface> as a Windows BMP file named filename. it returns 0 on success or -1 on error. =head2 set_color_key $set_color_key = SDL::Video::set_color_key( $surface, $flag, $key ); Sets the color key (transparent pixel) in a blittable surface and enables or disables RLE blit acceleration. C<$key> can be an integer or an L<SDL::Color|SDL::Color> object. If you pass an L<SDL::Color|SDL::Color> object L<SDL::Video::map_RGB|/map_RGB> will be called on it before setting the color key. RLE acceleration can substantially speed up blitting of images with large horizontal runs of transparent pixels (i.e., pixels that match the key value). The key must be of the same pixel format as the surface, L<SDL::Video::map_RGB|/map_RGB> is often useful for obtaining an acceptable value. If flag is C<SDL_SRCCOLORKEY> then key is the transparent pixel value in the source image of a blit. If C<flag> is OR'd with C<SDL_RLEACCEL> then the surface will be drawn using RLE acceleration when drawn with SDL::Video::blit_surface. The surface will actually be encoded for RLE acceleration the first time L<SDL::Video::blit_surface|/blit_surface> or C<SDL::Video::display_format|/display_format> is called on the surface. If C<flag> is C<0>, this function clears any current color key. C<SDL::Video::set_color_key> returns C<0> on success or C<-1> on error. =head2 set_alpha $set_alpha = SDL::Video::set_alpha( $surface, $flag, $key ); C<set_alpha> is used for setting the per-surface alpha value and/or enabling and disabling alpha blending. The surface parameter specifies which SDL::surface whose alpha attributes you wish to adjust. flags is used to specify whether alpha blending should be used ( C<SDL_SRCALPHA> ) and whether the surface should use RLE acceleration for blitting ( C<SDL_RLEACCEL> ). flags can be an OR'd combination of these two options, one of these options or C<0>. If C<SDL_SRCALPHA> is not passed as a flag then all alpha information is ignored when blitting the surface. The alpha parameter is the per-surface alpha value; a surface need not have an alpha channel to use per-surface alpha and blitting can still be accelerated with C<SDL_RLEACCEL>. B<Note>: The per-surface alpha value of 128 is considered a special case and is optimised, so it's much faster than other per-surface values. Alpha affects surface blitting in the following ways: =over 4 =item RGBA->RGB with C<SDL_SRCALPHA> The source is alpha-blended with the destination, using the alpha channel. SDL_SRCCOLORKEY and the per-surface alpha are ignored. =item RGBA->RGB without C<SDL_SRCALPHA> The RGB data is copied from the source. The source alpha channel and the per-surface alpha value are ignored. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. =item RGB->RGBA with C<SDL_SRCALPHA> The source is alpha-blended with the destination using the per-surface alpha value. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. The alpha channel of the copied pixels is set to opaque. =item RGB->RGBA without C<SDL_SRCALPHA> The RGB data is copied from the source and the alpha value of the copied pixels is set to opaque. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. =item RGBA->RGBA with C<SDL_SRCALPHA> The source is alpha-blended with the destination using the source alpha channel. The alpha channel in the destination surface is left untouched. SDL_SRCCOLORKEY is ignored. =item RGBA->RGBA without C<SDL_SRCALPHA> The RGBA data is copied to the destination surface. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. =item RGB->RGB with C<SDL_SRCALPHA> The source is alpha-blended with the destination using the per-surface alpha value. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. =item RGB->RGB without C<SDL_SRCALPHA> The RGB data is copied from the source. If SDL_SRCCOLORKEY is set, only the pixels not matching the colorkey value are copied. =back B<Note>: When blitting, the presence or absence of C<SDL_SRCALPHA> is relevant only on the source surface, not the destination. B<Note>: Note that RGBA->RGBA blits (with C<SDL_SRCALPHA> set) keep the alpha of the destination surface. This means that you cannot compose two arbitrary RGBA surfaces this way and get the result you would expect from "overlaying" them; the destination alpha will work as a mask. B<Note>: Also note that per-pixel and per-surface alpha cannot be combined; the per-pixel alpha is always used if available. C<SDL::Video::set_alpha> returns C<0> on success or C<-1> on error. =head2 fill_rect $fill_rect = SDL::Video::fill_rect( $dest, $dest_rect, $pixel ); This function performs a fast fill of the given L<SDL::Rect> with the given L<SDL::PixelFormat>. If dest_rect is NULL, the whole surface will be filled with color. The color should be a pixel of the format used by the surface, and can be generated by the L<SDL::Video::map_RGB|/map_RGB> or C<SDL::Video::map_RGBA|/map_RGBA> functions. If the color value contains an alpha value then the destination is simply "filled" with that alpha information, no blending takes place. If there is a clip rectangle set on the destination (set via L<SDL::Video::set_clip_rect|/set_clip_rect>), then this function will clip based on the intersection of the clip rectangle and the dstrect rectangle, and the dstrect rectangle will be modified to represent the area actually filled. If you call this on the video surface (ie: the value of L<SDL::Video::get_video_surface|/get_video_surface>) you may have to update the video surface to see the result. This can happen if you are using a shadowed surface that is not double buffered in Windows XP using build 1.2.9. C<SDL::Video::fill_rect> returns C<0> on success or C<-1> on error. for an example see L</SYNOPSIS>. =head1 Surface Locking and Unlocking =head2 lock_surface int SDL::Video::lock_surface( $surface ); C<SDL::Video::lock_surface> sets up the given L<SDL::Surface> for directly accessing the pixels. Between calls to SDL::lock_surface and SDL::unlock_surface, you can write to ( C<surface->set_pixels>) and read from ( C<surface->get_pixels> ), using the pixel format stored in C<surface->format>. Once you are done accessing the surface, you should use L<SDL::Video::unlock_surface|/unlock_surface> to release the lock. Not all surfaces require locking. If L<SDL::Video::MUSTLOCK|/MUSTLOCK> evaluates to C<0>, then reading and writing pixels to the surface can be performed at any time, and the pixel format of the surface will not change. No operating system or library calls should be made between the lock/unlock pairs, as critical system locks may be held during this time. C<SDL::Video::lock_surface> returns C<0> on success or C<-1> on error. B<Note>: Since SDL 1.1.8, the surface locks are recursive. This means that you can lock a surface multiple times, but each lock must have a matching unlock. use strict; use warnings; use Carp; use SDL v2.3; use SDL::Video; use SDL::Event; use SDL::Events; use SDL::Surface; my $screen; sub putpixel { my($x, $y, $color) = @_; my $lineoffset = $y * ($screen->pitch / 4); $screen->set_pixels( $lineoffset+ $x, $color); } sub render { if( SDL::Video::MUSTLOCK( $screen) ) { return if (SDL::Video::lock_surface( $screen ) < 0) } my $ticks = SDL::get_ticks(); my ($i, $y, $yofs, $ofs) = (0,0,0,0); for ($i = 0; $i < 480; $i++) { for (my $j = 0, $ofs = $yofs; $j < 640; $j++, $ofs++) { $screen->set_pixels( $ofs, ( $i * $i + $j * $j + $ticks ) ); } $yofs += $screen->pitch / 4; } putpixel(10, 10, 0xff0000); putpixel(11, 10, 0xff0000); putpixel(10, 11, 0xff0000); putpixel(11, 11, 0xff0000); SDL::Video::unlock_surface($screen) if (SDL::Video::MUSTLOCK($screen)); SDL::Video::update_rect($screen, 0, 0, 640, 480); return 0; } sub main { Carp::cluck 'Unable to init SDL: '.SDL::get_error() if( SDL::init(SDL_INIT_VIDEO) < 0); $screen = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE); Carp::cluck 'Unable to set 640x480x32 video' . SDL::get_error() if(!$screen); while(1) { render(); my $event = SDL::Event->new(); while( SDL::Events::poll_event($event) ) { my $type = $event->type; return 0 if( $type == SDL_KEYDOWN || $type == SDL_QUIT); } SDL::Events::pump_events(); } } main(); =head2 unlock_surface SDL::Video::unlock_surface( $surface ); Surfaces that were previously locked using L<SDL::Video::lock_surface|/lock_sruface> must be unlocked with C<SDL::Video::unlock_surface>. Surfaces should be unlocked as soon as possible. C<SDL::Video::unlock_surface> doesn't return anything. B<Note>: Since 1.1.8, the surface locks are recursive. See L<SDL::Video::lock_surface|/lock_surface> for more information. =head2 MUSTLOCK int SDL::Video::MUSTLOCK( $surface ); C<MUSTLOCK> returns C<0> if the surface does not have to be locked during pixel operations, otherwise C<1>. =head1 Screen Updating Functions =head2 set_clip_rect SDL::Video::set_clip_rect( $surface, $rect ); Sets the clipping rectangle for the given L<SDL::Surface>. When this surface is the destination of a blit, only the area within the clip rectangle will be drawn into. The rectangle pointed to by rect will be clipped to the edges of the surface so that the clip rectangle for a surface can never fall outside the edges of the surface. If rect is NULL the clipping rectangle will be set to the full size of the surface. C<SDL::Video::set_clip_rect> doesn't returns anything. =head2 get_clip_rect SDL::Video::get_clip_rect( $surface, $rect ); Gets the clipping rectangle for the given L<SDL::Surface>. When this surface is the destination of a blit, only the area within the clip rectangle is drawn into. The rectangle pointed to by rect will be filled with the clipping rectangle of the surface. C<SDL::Video::get_clip_rect> doesn't returns anything; use SDL; use SDL::Video; use SDL::Rect; use SDL::Surface; my $screen_width = 640; my $screen_height = 480; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_SWSURFACE); my $rect = SDL::Rect->new(0, 0, 0, 0); SDL::Video::get_clip_rect($screen, $rect); printf( "rect is %d, %d, %d, %d\n", $rect->x, $rect->y, $rect->w, $rect->h); =head2 blit_surface SDL::Video::blit_surface( $src_surface, $src_rect, $dest_surface, $dest_rect ); This performs a fast blit from the given source L<SDL::Surface> to the given destination L<SDL::Surface>. The width and height in C<$src_rect> determine the size of the copied rectangle. Only the position is used in the C<$dest_rect> (the width and height are ignored). Blits with negative C<dest_rect> coordinates will be clipped properly. If C<$src_rect> is C<undef>, the entire surface is copied. If C<$dest_rect> is C<undef>, then the destination position (upper left corner) is (0, 0). The final blit rectangle is saved in C<$dest_rect> after all clipping is performed (C<$src_rect> is not modified). The blit function should not be called on a locked surface. I.e. when you use your own drawing functions you may need to lock a surface, but this is not the case with C<SDL::Video::blit_surface>. Like most surface manipulation functions in SDL, it should not be used together with OpenGL. The results of blitting operations vary greatly depending on whether C<SDL_SRCALPHA> is set or not. See L<SDL::Video::set_alpha|/set_alpha> for an explanation of how this affects your results. Colorkeying and alpha attributes also interact with surface blitting. C<SDL::Video::blit_surface> doesn't returns anything. For an example see L<SDL::Video::load_BMP|/load_BMP>. =head2 update_rect update_rect( $surface, $left, $top, $width, $height ); Makes sure the given area is updated on the given screen. The rectangle must be confined within the screen boundaries because there's no clipping. update_rect doesn't returns any value. B<Note>: This function should not be called while screen is locked by L<SDL::Video::lock_surface|/lock_surface> B<Note2>: If C<x>, C<y>, C<width> and C<height> are all equal to 0, C<update_rect> will update the entire screen. For an example see L<SYNOPSIS|/SYNOPSIS> =head2 update_rects update_rects( $surface, @rects ); Makes sure the given list of rectangles is updated on the given screen. The rectangle must be confined within the screen boundaries because there's no clipping. C<update_rects> doesn't returns any value. B<Note>: This function should not be called while screen is locked by L<SDL::Video::lock_surface|/lock_surface>. Example: use SDL; use SDL::Video; use SDL::Surface; use SDL::Rect; # the size of the window box or the screen resolution if fullscreen my $screen_width = 800; my $screen_height = 600; SDL::init(SDL_INIT_VIDEO); # setting video mode my $screen_surface = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_SWSURFACE); # drawing the whole screen blue my $mapped_color = SDL::Video::map_RGB($screen_surface->format(), 0, 0, 255); # blue SDL::Video::fill_rect($screen_surface, SDL::Rect->new(0, 0, $screen_width, $screen_height), $mapped_color); my @rects = (); push(@rects, SDL::Rect->new(200, 0, 400, 600)); push(@rects, SDL::Rect->new( 0, 150, 800, 300)); # updating parts of the screen (should look like a cross) SDL::Video::update_rects($screen_surface, @rects); sleep(2); =head2 flip $flip = SDL::Video::flip( $screen_surface ); On hardware that supports double-buffering, this function sets up a flip and returns. The hardware will wait for vertical retrace, and then swap video buffers before the next video surface blit or lock will return. On hardware that doesn't support double-buffering or if C<SDL_SWSURFACE> was set, this is equivalent to calling C<SDL::Video::update_rect( $screen, 0, 0, 0, 0 )>. A software screen surface is also updated automatically when parts of a SDL window are redrawn, caused by overlapping windows or by restoring from an iconified state. As a result there is no proper double buffer behavior in windowed mode for a software screen, in contrast to a full screen software mode. The C<SDL_DOUBLEBUF> flag must have been passed to L<SDL::Video::set_video_mode|/set_video_mode>, when setting the video mode for this function to perform hardware flipping. C<flip> returns C<0> on success or C<-1> on error. B<Note>: If you want to swap the buffers of an initialized OpenGL context, use the function L<SDL::Video::GL_swap_buffers|/GL_swap_buffers> instead. Example: use SDL; use SDL::Video; use SDL::Surface; # the size of the window box or the screen resolution if fullscreen my $screen_width = 800; my $screen_height = 600; SDL::init(SDL_INIT_VIDEO); # setting video mode my $screen_surface = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_DOUBLEBUF|SDL_FULLSCREEN); # do some video operations here # doing page flipping unless( SDL::Video::flip($screen_surface) == 0 ) { printf( STDERR "failed to swap buffers: %s\n", SDL::get_error() ); } =head1 Palette, Color and Pixel Functions =head2 set_colors $set_colors = SDL::Video::set_colors( $surface, $start, $color1, $color2, ... ) Sets a portion of the colormap for the given 8-bit surface. When surface is the surface associated with the current display, the display colormap will be updated with the requested colors. If C<SDL_HWPALETTE> was set in L<SDL::Video::set_video_mode|/set_video_mode> flags, C<SDL::Video::set_colors> will always return 1, and the palette is guaranteed to be set the way you desire, even if the window colormap has to be warped or run under emulation. The color components of a L<SDL::Color> structure are 8-bits in size, giving you a total of 2563 = 16777216 colors. Palettized (8-bit) screen surfaces with the C<SDL_HWPALETTE> flag have two palettes, a logical palette that is used for mapping blits to/from the surface and a physical palette (that determines how the hardware will map the colors to the display). C<SDL::Video::set_colors> modifies both palettes (if present), and is equivalent to calling L<SDL::Video::set_palette|/set_palette> with the flags set to ( C<SDL_LOGPAL | SDL_PHYSPAL> ). If C<surface> is not a palettized surface, this function does nothing, returning 0. If all of the colors were set as passed to C<SDL::Video::set_colors>, it will return 1. If not all the color entries were set exactly as given, it will return 0, and you should look at the surface palette to determine the actual color palette. =head2 set_palette $set_palette = set_palette( $surface, $flags, $start, $color1, $color2, ... ); Sets a portion of the palette for the given 8-bit surface. Palettized (8-bit) screen surfaces with the C<SDL_HWPALETTE> flag have two palettes, a logical palette that is used for mapping blits to/from the surface and a physical palette (that determines how the hardware will map the colors to the display). Non screen surfaces have a logical palette only. L<SDL::Video::blit|/blit> always uses the logical palette when blitting surfaces (if it has to convert between surface pixel formats). Because of this, it is often useful to modify only one or the other palette to achieve various special color effects (e.g., screen fading, color flashes, screen dimming). This function can modify either the logical or physical palette by specifying C<SDL_LOGPAL> or C<SDL_PHYSPAL> the in the flags parameter. When surface is the surface associated with the current display, the display colormap will be updated with the requested colors. If C<SDL_HWPALETTE> was set in L<SDL::Video::set_video_mode|/set_video_mode> flags, C<SDL::Video::set_palette> will always return 1, and the palette is guaranteed to be set the way you desire, even if the window colormap has to be warped or run under emulation. The color components of a C<SDL::Color> structure are 8-bits in size, giving you a total of 2563 = 16777216 colors. If C<surface> is not a palettized surface, this function does nothing, returning C<0>. If all of the colors were set as passed to C<set_palette>, it will return C<1>. If not all the color entries were set exactly as given, it will return C<0>, and you should look at the surface palette to determine the actual color palette. =head2 set_gamma $set_gamma = SDL::Video::set_gamma( $red_gamma, $green_gamma, $blue_gamma ); Sets the "gamma function" for the display of each color component. Gamma controls the brightness/contrast of colors displayed on the screen. A gamma value of 1.0 is identity (i.e., no adjustment is made). This function adjusts the gamma based on the "gamma function" parameter, you can directly specify lookup tables for gamma adjustment with SDL::set_gamma_ramp. B<Note>: Not all display hardware is able to change gamma. C<SDL::Video::set_gamma> returns C<-1> on error. B<Warning>: Under Linux (X.org Gnome and Xfce), gamma settings affects the entire display (including the desktop)! Example: use SDL; use SDL::Video; use SDL::Surface; use SDL::Rect; use Time::HiRes qw( usleep ); # the size of the window box or the screen resolution if fullscreen my $screen_width = 800; my $screen_height = 600; SDL::init(SDL_INIT_VIDEO); # setting video mode my $screen_surface = SDL::Video::set_video_mode($screen_width, $screen_height, 32, SDL_SWSURFACE); # drawing something somewhere my $mapped_color = SDL::Video::map_RGB($screen_surface->format(), 128, 128, 128); # gray SDL::Video::fill_rect($screen_surface, SDL::Rect->new($screen_width / 4, $screen_height / 4, $screen_width / 2, $screen_height / 2), $mapped_color); # update the whole screen SDL::Video::update_rect($screen_surface, 0, 0, $screen_width, $screen_height); usleep(500000); for(1..20) { SDL::Video::set_gamma( 1 - $_ / 20, 1, 1 ); usleep(40000); } for(1..20) { SDL::Video::set_gamma( $_ / 20, 1, 1 ); usleep(40000); } SDL::Video::set_gamma( 1, 1, 1 ); usleep(500000); =head2 get_gamma_ramp $get_gamma_ramp = SDL::Video::get_gamma_ramp( \@red_table, \@green_table, \@blue_table ); Gets the gamma translation lookup tables currently used by the display. Each table is an array of 256 Uint16 values. C<SDL::Video::get_gamma_ramp> returns -1 on error. use SDL; use SDL::Video; SDL::init(SDL_INIT_VIDEO); my (@red, @green, @blue); my $ret = SDL::Video::get_gamma_ramp( \@red, \@green, \@blue ); if( -1 == $ret ) { print( "an error occurred" ); } else { printf( "for gamma = 1.0: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[255], $green[255], $blue[255] ); printf( "for gamma = 0.5: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[127], $green[127], $blue[127] ); printf( "for gamma = 0.0: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[0], $green[0], $blue[0] ); } =head2 set_gamma_ramp $set_gamma_ramp = SDL::Video::set_gamma_ramp( \@red_table, \@green_table, \@blue_table ); Sets the gamma lookup tables for the display for each color component. Each table is an array ref of 256 Uint16 values, representing a mapping between the input and output for that channel. The input is the index into the array, and the output is the 16-bit gamma value at that index, scaled to the output color precision. You may pass NULL to any of the channels to leave them unchanged. This function adjusts the gamma based on lookup tables, you can also have the gamma calculated based on a "gamma function" parameter with L<SDL::Video::set_gamma|/set_gamma>. Not all display hardware is able to change gamma. C<SDL::Video::set_gamma_ramp> returns C<-1> on error (or if gamma adjustment is not supported). Example: use SDL; use SDL::Video; SDL::init(SDL_INIT_VIDEO); my (@red, @green, @blue); my $ret = SDL::Video::get_gamma_ramp( \@red, \@green, \@blue ); $red[127] = 0xFF00; $ret = SDL::Video::set_gamma_ramp( \@red, \@green, \@blue ); $ret = SDL::Video::get_gamma_ramp( \@red, \@green, \@blue ); if( -1 == $ret ) { print( "an error occurred" ); } else { printf( "for gamma = 1.0: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[255], $green[255], $blue[255] ); printf( "for gamma = 0.5: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[127], $green[127], $blue[127] ); printf( "for gamma = 0.0: red=0x%04X, green=0x%04X, blue=0x%04X\n", $red[0], $green[0], $blue[0] ); } =head2 map_RGB $pixel = SDL::Video::map_RGB( $pixel_format, $r, $g, $b ); Maps the RGB color value to the specified L<SDL::PixelFormat> and returns the pixel value as a 32-bit int. If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned. If the specified pixel format has an alpha component it will be returned as all 1 bits (fully opaque). C<SDL::Video::map_RGB> returns a pixel value best approximating the given RGB color value for a given pixel format. If the L<SDL::PixelFormat>'s bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format). use SDL; use SDL::Video; use SDL::PixelFormat; use SDL::Surface; SDL::init(SDL_INIT_VIDEO); my $screen_surface = SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE); # ^-- 16 bits per pixel $r = 0x9C; $g = 0xDC; $b = 0x67; printf( "for 24bpp it is: 0x%02X 0x%02X 0x%02X\n", $r, $g, $b); my $_16bit = SDL::Video::map_RGB( $screen_surface->format, $r, $g, $b ); # 16bpp is 5 bits red, 6 bits green and 5 bits blue # we will obtain the values for each color and calculating them back to 24/32bit color system ($r, $g, $b) = @{ SDL::Video::get_RGB( $screen_surface->format, $_16bit ) }; printf( "for 16bpp it is: 0x%02X 0x%02X 0x%02X\n", $r, $g, $b ); # so color #9CDC67 becomes #9CDF63 =head2 map_RGBA $pixel = SDL::Video::map_RGBA( $pixel_format, $r, $g, $b, $a ); Maps the RGBA color value to the specified L<SDL::PixelFormat> and returns the pixel value as a 32-bit int. If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned. If the specified pixel format has no alpha component the alpha value will be ignored (as it will be in formats with a palette). A pixel value best approximating the given RGBA color value for a given pixel format. If the pixel format bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format). =head2 get_RGB $rgb_array_ref = SDL::Video::get_RGB( $pixel_format, $pixel ); Returns RGB values from a pixel in the specified pixel format. The pixel is an integer (e.g. 16bit RGB565, 24/32bit RGB888). This function uses the entire 8-bit [0..255] range when converting color components from pixel formats with less than 8-bits per RGB component (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). For an example see L<SDL::Video::map_RGB|/map_RGB>. =head2 get_RGBA $rgba_array_ref = SDL::Video::get_RGBA( $pixel_format, $pixel ); Gets RGBA values from a pixel in the specified pixel format. This function uses the entire 8-bit [0..255] range when converting color components from pixel formats with less than 8-bits per RGB component (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). If the surface has no alpha component, the alpha will be returned as 0xff (100% opaque). =head1 GL Methods =head2 GL_load_library $gl_load_lib = SDL::Video::GL_load_library( 'path/to/static/glfunctions.dll' ); If you wish, you may load the OpenGL library from the given path at runtime, this must be done before L<SDL::Video::set_video_mode|/set_video_mode> is called. You must then use L<SDL::Video::GL_get_proc_address|/GL_get_proc_address> to retrieve function pointers to GL functions. C<GL_load_library> returns C<0> on success or C<-1> or error. =head2 GL_get_proc_address $proc_address = SDL::Video::GL_get_proc_address( $proc ); Returns the address of the GL function proc, or NULL if the function is not found. If the GL library is loaded at runtime, with L<SDL::Video::GL_load_library|/GL_load_library>, then all GL functions must be retrieved this way. Usually this is used to retrieve function pointers to OpenGL extensions. Note that this function needs an OpenGL context to function properly, so it should be called after L<SDL::Video::set_video_mode|/set_video_mode> has been called (with the C<SDL_OPENGL> flag). It returns undef if the function is not found. Example: my $has_multitexture = 1; # Get function pointer $gl_active_texture_ARB_ptr = SDL::Video::GL_get_proc_address("glActiveTextureARB"); # Check for a valid function ptr unless($gl_active_texture_ARB_ptr) { printf( STDERR "Multitexture Extensions not present.\n" ); $has_multitexture = 0; } $gl_active_texture_ARB_ptr(GL_TEXTURE0_ARB) if $has_multitexture; =head2 GL_get_attribute $value = SDL::Video::GL_get_attribute( $attr ); It returns SDL/OpenGL attribute C<attr>. This is useful after a call to L<SDL::Video::set_video_mode|/set_video_mode> to check whether your attributes have been set as you expected. C<SDL::Video::GL_get_attribute> returns C<undef> if the attribute is not found. Example: print( SDL::Video::GL_set_attribute(SDL_GL_RED_SIZE) ); =head2 GL_set_attribute $set_attr = SDL::Video::GL_set_attribute( $attr, $value ); This function sets the given OpenGL attribute C<attr> to C<value>. The requested attributes will take effect after a call to L<SDL::Video::set_video_mode|/set_video_mode>. You should use C<SDL::Video::GL_get_attribute|/GL_get_attribute> to check the values after a L<SDL::Video::set_video_mode|/set_video_mode> call, since the values obtained can differ from the requested ones. Available attributes: =over 4 =item * C<SDL_GL_RED_SIZE> =item * C<SDL_GL_GREEN_SIZE> =item * C<SDL_GL_BLUE_SIZE> =item * C<SDL_GL_ALPHA_SIZE> =item * C<SDL_GL_BUFFER_SIZE> =item * C<SDL_GL_DOUBLEBUFFER> =item * C<SDL_GL_DEPTH_SIZE> =item * C<SDL_GL_STENCIL_SIZE> =item * C<SDL_GL_ACCUM_RED_SIZE> =item * C<SDL_GL_ACCUM_GREEN_SIZE> =item * C<SDL_GL_ACCUM_BLUE_SIZE> =item * C<SDL_GL_ACCUM_ALPHA_SIZE> =item * C<SDL_GL_STEREO> =item * C<SDL_GL_MULTISAMPLEBUFFERS> =item * C<SDL_GL_MULTISAMPLESAMPLES> =item * C<SDL_GL_ACCELERATED_VISUAL> =item * C<SDL_GL_SWAP_CONTROL> =back C<GL_set_attribute> returns C<0> on success or C<-1> on error. B<Note>: The C<SDL_DOUBLEBUF> flag is not required to enable double buffering when setting an OpenGL video mode. Double buffering is enabled or disabled using the C<SDL_GL_DOUBLEBUFFER> attribute. Example: SDL::Video::GL_set_attribute(SDL_GL_RED_SIZE, 5); =head2 GL_swap_buffers SDL::Video::GL_swap_buffers(); Swap the OpenGL buffers, if double-buffering is supported. C<SDL::Video::GL_swap_buffers> doesn't returns any value. =head1 Video Overlay Functions see L<SDL::Overlay> =head2 lock_YUV_overlay $lock_overlay = SDL::Video::lock_YUV_overlay( $overlay ); Much the same as L<SDL::Video::lock_surface|/lock_surface>, C<lock_YUV_overlay> locks the overlay for direct access to pixel data. It returns C<0> on success or C<-1> on error. =head2 unlock_YUV_overlay SDL::Video::unlock_YUV_overlay( $overlay ); The opposite to L<SDL::Video::lock_YUV_overlay|/sock_YUV_overlay>. Unlocks a previously locked overlay. An overlay must be unlocked before it can be displayed. C<unlock_YUV_overlay> does not return anything. =head2 display_YUV_overlay $display_overlay = SDL::Video::display_YUV_overlay( $overlay, $dstrect ); Blit the overlay to the display surface specified when the overlay was created. The L<SDL::Rect> structure, C<dstrect>, specifies a rectangle on the display where the overlay is drawn. The C<x> and C<y> fields of C<dstrect> specify the upper left location in display coordinates. The overlay is scaled (independently in x and y dimensions) to the size specified by dstrect, and is C<optimized> for 2x scaling It returns C<0> on success or C<-1> on error. =head1 Window Management Functions =head2 wm_set_caption SDL::Video::wm_set_caption( $title, $icon ); Sets the title-bar and icon name of the display window. C<title> is a UTF-8 encoded null-terminated string which will serve as the window title (the text at the top of the window). The function does not change the string. You may free the string after the function returns. C<icon> is a UTF-8 encoded null-terminated string which will serve as the iconified window title (the text which is displayed in the menu bar or desktop when the window is minimized). As with title this string may be freed after the function returns. Example: use SDL; use SDL::Video; use SDL::Surface; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); SDL::Video::wm_set_caption( 'maximized title', 'minimized title' ); sleep(2); =head2 wm_get_caption SDL::Video::wm_get_caption( $title, $icon ); Retrieves the title-bar and icon name of the display window. Example: use SDL; use SDL::Video; use SDL::Surface; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); SDL::Video::wm_set_caption( 'maximized title', 'minimized title' ); my ($title, $icon) = @{ SDL::Video::wm_get_caption() }; printf( "title is '%s' and icon is '%s'\n", $title, $icon ); =head2 wm_set_icon SDL::Video::wm_set_icon( $icon ); Sets the icon for the display window. Win32 icons must be 32x32. This function must be called before the first call to L<SDL::Video::set_video_mode|/set_video_mode>. Note that this means L<SDL::Image> cannot be used. The shape is determined by the colorkey or alpha channel of the icon, if any. If neither of those are present, the icon is made opaque (no transparency). Example: SDL::Video::wm_set_icon(SDL::Video::load_BMP("icon.bmp")); Another option, if your icon image does not have a colorkey set, is to use the SDL::Video::set_color_key to set the transparency. Example: my $image = SDL::Video::load_BMP("icon.bmp"); my colorkey = SDL::Video::map_RGB($image->format, 255, 0, 255); # specify the color that will be transparent SDL::Video::set_color_key($image, SDL_SRCCOLORKEY, $colorkey); SDL::Video::wm_set_icon($image); =head2 wm_grab_input $grab_mode = SDL::Video::wm_grab_input($mode); Grabbing means that the mouse is confined to the application window, and nearly all keyboard input is passed directly to the application, and not interpreted by a window manager, if any. When mode is C<SDL_GRAB_QUERY> the grab mode is not changed, but the current grab mode is returned. C<mode> and the return value of C<wm_grab_input> can be one of the following: =over 4 =item * C<SDL_GRAB_QUERY> =item * C<SDL_GRAB_OFF> =item * C<SDL_GRAB_ON> =back =head2 wm_iconify_window $iconify_window = SDL::Video::wm_iconify_window(); If the application is running in a window managed environment SDL attempts to iconify/minimise it. If C<wm_iconify_window> is successful, the application will receive a C<SDL_APPACTIVE> loss event (see Application visibility events at L<SDL::Event>). Returns non-zero on success or 0 if iconification is not supported or was refused by the window manager. Example: use SDL; use SDL::Video; use SDL::Surface; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); sleep(2); SDL::Video::wm_iconify_window(); sleep(2); =head2 wm_toggle_fullscreen $toggle = SDL::Video::wm_toggle_fullscreen( $surface ); Toggles the application between windowed and fullscreen mode, if supported. (X11 is the only target currently supported, BeOS support is experimental). =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO =head2 Category Objects L<SDL::Surface>, L<SDL::Overlay>, L<SDL::Color>, L<SDL::Rect>, L<SDL::Palette>, L<SDL::PixelFormat>, L<SDL::VideoInfo> =cut ���������������������������������������SDL-2.540/lib/pods/SDL/VideoInfo.pod����������������������������������������������������������������000444��000765��000024�� 4156�11760240072� 17135� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::VideoInfo - Video Target Information =head2 CATEGORY Core, Video, Structure =head1 SYNOPSIS my $video_info = SDL::Video::get_video_info(); VideoInfo is only accessible C<SDL::Video::get_video_info>. This module only provides getters to the struct C<SDL_VideoInfo>. =head1 DESCRIPTION This object is a read-only structure and is returned by C<SDL::Video::get_video_info>. It contains information on either the best available mode if called before C<SDL::Video::set_video_mode> or the current video mode if called after C<SDL::Video::set_video_mode>. =head1 METHODS =head2 hw_available $video_info->hw_available() # 1 if Hardware Accelerated Surfaces available Is it possible to create hardware surfaces ? =head2 wm_available $video_info->wm_available() # 1 if Window Manager available Is there a window manager available ? =head2 blit_hw $video_info->blit_hw() Are hardware to hardware blits accelerated ? =head2 blit_hw_CC $video_info->blit_hw_CC() Are hardware to hardware colorkey blits accelerated ? =head2 blit_hw_A $video_info->blit_hw_A() Are hardware to hardware alpha blits accelerated ? =head2 blit_sw $video_info->blit_sw() Are software to hardware blits accelerated ? =head2 blit_sw_CC $video_info->blit_sw_CC() Are software to hardware colorkey blits accelerated ? =head2 blit_sw_A $video_info->blit_sw_A() Are software to hardware alpha blits accelerated ? =head2 blit_fill $video_info->blit_fill() Are color fills accelerated ? =head2 video_mem my $video_mem = $video_info->video_mem(); Total amount of video memory in Kilobytes, should be accessed only if hw_available == 1, otherwise it is equal to 0 =head2 vfmt my $vd_pixel_format = $video_info->vfmt(); C<SDL::PixelFormat> of the video device =head2 current_w, current_h $video_info->current_w(); $video_info->current_h(); Width and height of the current video mode, or of the desktop mode if C<SDL_GetVideoInfo> was called before C<SDL::Video::set_video_mode> (available since SDL 1.2.10) =head1 SEE ALSO L<SDL::Video>, L<SDL::PixelFormat> =head1 AUTHORS See L<SDL/AUTHORS>. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Cookbook���������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 16152� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Cookbook/OpenGL.pod����������������������������������������������������������000444��000765��000024�� 5510�11760240072� 20140� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Cookbook::OpenGL - Using SDL with OpenGL =head1 CATEGORY Cookbook =head1 DESCRIPTION As of release 2.5 SDL no longer maintains it's own bindings of OpenGL. Support for OpenGL has been moved over to a more mature implementation. This implementation is the POGL project. L<OpenGL> is faster and more complete; and works with SDL seamlessly. =head2 EXAMPLE Expanded from Floyd-ATC's OpenGL example. use strict; use warnings; use SDL; use SDLx::App; use SDL::Mouse; use SDL::Video; use SDL::Events; use SDL::Event; use OpenGL qw(:all); You can use OpenGL as needed here. my ($SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT); $| = 1; $WIDTH = 1024; $HEIGHT = 768; $SDLAPP = SDLx::App->new(title => "OpenGL App", width => $WIDTH, height => $HEIGHT, gl => 1); $SDLEVENT = SDL::Event->new; SDLx::App can start an OpenGL application with the parameter gl => 1. glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(60, $WIDTH / $HEIGHT, 1, 1000); glTranslatef(0, 0, -20); Above we enable GL and set the correct perspective while (1) { &handlepolls; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glRotatef(.1, 1, 1, 1); &drawscene; $SDLAPP->sync; } For SDLx::App sync handles the GL buffer clean. sub drawscene { my ($color, $x, $y, $z); for (-2 .. 2) { glPushMatrix; glTranslatef($_ * 3, 0, 0); glColor3d(1, 0, 0); &draw_cube; glPopMatrix; } return ""; } sub draw_cube { my (@indices, @vertices, $face, $vertex, $index, $coords); @indices = qw(4 5 6 7 1 2 6 5 0 1 5 4 0 3 2 1 0 4 7 3 2 3 7 6); @vertices = ([-1, -1, -1], [ 1, -1, -1], [ 1, 1, -1], [-1, 1, -1], [-1, -1, 1], [ 1, -1, 1], [ 1, 1, 1], [-1, 1, 1]); glBegin(GL_QUADS); foreach my $face (0..5) { foreach my $vertex (0..3) { $index = $indices[4 * $face + $vertex]; $coords = $vertices[$index]; glVertex3d(@$coords); } } glEnd; return ""; } Below we can use SDL::Events as normal: sub handlepolls { my ($type, $key); SDL::Events::pump_events(); while (SDL::Events::poll_event($SDLEVENT)) { $type = $SDLEVENT->type(); $key = ($type == 2 or $type == 3) ? $SDLEVENT->key_sym : ""; if ($type == 4) { printf("You moved the mouse! x=%s y=%s xrel=%s yrel=%s\n", $SDLEVENT->motion_x, $SDLEVENT->motion_y, $SDLEVENT->motion_xrel, $SDLEVENT->motion_yrel) } elsif ($type == 2) { print "You are pressing $key\n" } elsif ($type == 3) { print "You released $key\n" } elsif ($type == 12) { exit } else { print "TYPE $type UNKNOWN!\n" } if ($type == 2) { if ($key eq "q" or $key eq "escape") { exit } } } return ""; } =head1 SEE ALSO L<perl> L<SDLx::App> L<OpenGL> =head1 AUTHORS See L<SDL/AUTHORS>. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Cookbook/PDL.pod�������������������������������������������������������������000444��000765��000024�� 6103�11760240072� 17432� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::CookBook::PDL -- CookBook for SDL + PDL PDL provides great number crunching capabilities to Perl and SDL provides game-developer quality real-time bitmapping and sound. You can use PDL and SDL ''together'' to create real-time, responsive animations and simulations. In this section we will go through the pleasures and pitfalls of working with both powerhouse libraries. =head2 CATEGORY Cookbook =head1 Creating a SDL Surface piddle PDL's core type is a piddle. Once a piddle is provided to PDL it can go do a numerous amounts of things. Please see the example in 'examples/cookbook/pdl.pl' that came with this module. =head2 Creating a simple piddle First lets get the right modules. use PDL; use SDL::Rect; use SDL::Video; use SDL::Surface; use SDL::PixelFormat; Suppose you want a surface of size (200,400) and 32 bit (RGBA). my ( $bytes_per_pixel, $width, $height ) = ( 4, 200, 400 ); Define the $width, $height and $bytes_per_pixel. Your $bytes_per_pixel is the number of bits (in this case 32) divided by 8 bits per byte. Therefore for our 32 bpp we have 4 Bpp; my $piddle = zeros( byte, $bytes_per_pixel, $width, $height ); Create a normal $piddle with zeros, byte format and the Bpp x width x height dimensions. my $pointer = $piddle->get_dataref(); Here is where we get the actual data the piddle is pointing to. We will have SDL create a new surface from this function. my $surface = SDL::Surface->new_from( $pointer, $width, $height, 32, $width * $bytes_per_pixel ); Using the same dimensions we create the surface using new_form. The width * Bpp is the scanline (pitch) of the surface in bytes. warn "Made surface of $width, $height and ". $surface->format->BytesPerPixel; return ( $piddle, $surface ); Finally make sure that the surface actually has the correct dimensions we gave. B<NOTE:> $surface->format->BytesPerPixel must return 1,2,3,4. !! Now you can blit and use the surface as needed; and do PDL operations as required. =head2 Operating on the Surface safely To make sure SDL is in sync with the data. You must call SDL::Video::lock B<before> doing PDL operations on the piddle. SDL::Video::lock_surface($surface); $piddle->mslice( 'X', [ rand(400), rand(400), 1 ], [ rand(200), rand(200), 1 ] ) .= pdl( rand(225), rand(225), rand(255), 255 ); After that you can unlock the surface to blit. SDL::Video::unlock_surface($surface); =head2 Error due to BPP at blitting When blitting the new surface check for the return value to see if there has been a problem. my $b = SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $app, SDL::Rect->new( ( $app->w - $surface->w ) / 2, ( $app->h - $surface->h ) / 2, $app->w, $app->h ) ); die "Could not blit: " . SDL::get_error() if ( $b == -1 ); If the error message is 'Blit combination not supported' that means that the BPP is incorrect or inconsistent with the dimensions. After that a simple update_rect will so your new surface on the screen. =head1 AUTHORS See L<SDL/AUTHORS>. =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX��������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15031� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX/BlitFunc.pod�������������������������������������������������������������000444��000765��000024�� 210�11760240072� 17350� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::BlitFunc - blitting functions =head1 CATEGORY TODO, GFX =head1 METHODS =head1 AUTHORS See L<SDL/AUTHORS>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX/FPSManager.pod�����������������������������������������������������������000444��000765��000024�� 1232�11760240073� 17613� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::FPSManager - data structure used by SDL::GFX::Framerate =head1 CATEGORY GFX, Structure =head1 METHODS =head2 new use SDL; use SDL::GFX::Framerate; use SDL::GFX::FPSManager; my $fps = SDL::GFX::FPSManager->new(0, 0, 0, 0); Initialize the framerate manager object. Arguments: framecount, rateticks, lastticks, rate. =head2 framecount my $fc = $fps->framecount; Returns the C<framecount>. =head2 rateticks my $rt = $fps->rateticks; Returns the C<rateticks>. =head2 lastticks my $lt = $fps->lastticks; Returns the C<lastticks>. =head2 rate my $r = $fps->rate; Returns the C<rate>. =head1 AUTHORS See L<SDL/AUTHORS>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX/Framerate.pod������������������������������������������������������������000444��000765��000024�� 2002�11760240073� 17572� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::Framerate - framerate calculating functions =head1 CATEGORY GFX =head1 DESCRIPTION The framerate functions are used to insert delays into the graphics loop to maintain a constant framerate. =head1 METHODS =head2 init use SDL; use SDL::GFX::Framerate; use SDL::GFX::FPSManager; my $fps = SDL::GFX::FPSManager->new(0, 0, 0, 0); SDL::GFX::Framerate::init($fps); Initialize the framerate manager, set default framerate of 30Hz and reset delay interpolation. =head2 set SDL::GFX::Framerate::set($fps, 60); Sets the new desired framerate to 60 frames per second. =head2 get my $rate = SDL::GFX::Framerate::get($fps); Get the currently set framerate of the manager. =head2 delay SDL::GFX::Framerate::delay($fps); Generate a delay to accommodate the currently set framerate. Call once in the graphics/rendering loop. If the computer cannot keep up with the rate (i.e. drawing too slow), the delay is zero and the delay interpolation is reset. =head1 AUTHORS See L<SDL/AUTHORS>. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX/ImageFilter.pod����������������������������������������������������������000444��000765��000024�� 23772�11760240073� 20115� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::ImageFilter - image filtering functions =head1 CATEGORY TODO, GFX =head1 METHODS =head2 MMX_detect int gfx_image_MMX_detect() CODE: SDL_imageFilterMMXdetect(); =head2 MMX_off void gfx_image_MMX_off() CODE: SDL_imageFilterMMXoff(); =head2 MMX_on void gfx_image_MMX_on() CODE: SDL_imageFilterMMXon(); =head2 add int gfx_image_add(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterAdd(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 mean int gfx_image_mean(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMean(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 sub int gfx_image_sub(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterSub(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 abs_diff int gfx_image_abs_diff(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterAbsDiff(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 mult int gfx_image_mult(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMult(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 mult_nor int gfx_image_mult_nor(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultNor(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 mult_div_by_2 int gfx_image_mult_div_by_2(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultDivby2(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 mult_div_by_4 int gfx_image_mult_div_by_4(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultDivby4(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 bit_and int gfx_image_bit_and(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitAnd(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 bit_or int gfx_image_bit_or(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitOr(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 div int gfx_image_div(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterDiv(Src1, Src2, Dest, length); OUTPUT: RETVAL =head2 bit_negation int gfx_image_bit_negation(Src1, Dest, length) unsigned char *Src1 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitNegation(Src1, Dest, length); OUTPUT: RETVAL =head2 add_byte int gfx_image_add_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterAddByte(Src1, Dest, length, C); OUTPUT: RETVAL =head2 add_uint int gfx_image_add_uint(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned int C CODE: RETVAL = SDL_imageFilterAddUint(Src1, Dest, length, C); OUTPUT: RETVAL =head2 add_byte_to_half int gfx_image_add_byte_to_half(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterAddByteToHalf(Src1, Dest, length, C); OUTPUT: RETVAL =head2 sub_byte int gfx_image_sub_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterSubByte(Src1, Dest, length, C); OUTPUT: RETVAL =head2 sub_uint int gfx_image_sub_uint(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned int C CODE: RETVAL = SDL_imageFilterSubUint(Src1, Dest, length, C); OUTPUT: RETVAL =head2 shift_right int gfx_image_shift_right(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftRight(Src1, Dest, length, N); OUTPUT: RETVAL =head2 shift_right_uint int gfx_image_shift_right_uint(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftRightUint(Src1, Dest, length, N); OUTPUT: RETVAL =head2 mult_by_byte int gfx_image_mult_by_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterMultByByte(Src1, Dest, length, C); OUTPUT: RETVAL =head2 shift_right_and_mult_by_byte int gfx_image_shift_right_and_mult_by_byte(Src1, Dest, length, N, C) unsigned char *Src1 unsigned char *Dest int length unsigned char N unsigned char C CODE: RETVAL = SDL_imageFilterShiftRightAndMultByByte(Src1, Dest, length, N, C); OUTPUT: RETVAL =head2 shift_left_byte int gfx_image_shift_left_byte(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeftByte(Src1, Dest, length, N); OUTPUT: RETVAL =head2 shift_left_uint int gfx_image_shift_left_uint(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeftUint(Src1, Dest, length, N); OUTPUT: RETVAL =head2 shift_left int gfx_image_shift_left(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeft(Src1, Dest, length, N); OUTPUT: RETVAL =head2 binarize_using_threshold int gfx_image_binarize_using_threshold(Src1, Dest, length, T) unsigned char *Src1 unsigned char *Dest int length unsigned char T CODE: RETVAL = SDL_imageFilterBinarizeUsingThreshold(Src1, Dest, length, T); OUTPUT: RETVAL =head2 clip_to_range int gfx_image_clip_to_range(Src1, Dest, length, Tmin, Tmax) unsigned char *Src1 unsigned char *Dest int length unsigned char Tmin unsigned char Tmax CODE: RETVAL = SDL_imageFilterClipToRange(Src1, Dest, length, Tmin, Tmax); OUTPUT: RETVAL =head2 normalize_linear int gfx_image_normalize_linear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax) unsigned char *Src1 unsigned char *Dest int length int Cmin int Cmax int Nmin int Nmax CODE: RETVAL = SDL_imageFilterNormalizeLinear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax); OUTPUT: RETVAL =head2 convolve_kernel_3x3_divide int gfx_image_convolve_kernel_3x3_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel3x3Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL =head2 convolve_kernel_5x5_divide int gfx_image_convolve_kernel_5x5_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel5x5Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL =head2 convolve_kernel_7x7_divide int gfx_image_convolve_kernel_7x7_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel7x7Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL =head2 convolve_kernel_9x9_divide int gfx_image_convolve_kernel_9x9_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel9x9Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL =head2 convolve_kernel_3x3_shift_right int gfx_image_convolve_kernel_3x3_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel3x3ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL =head2 convolve_kernel_5x5_shift_right int gfx_image_convolve_kernel_5x5_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel5x5ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL =head2 convolve_kernel_7x7_shift_right int gfx_image_convolve_kernel_7x7_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel7x7ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL =head2 convolve_kernel_9x9_shift_right int gfx_image_convolve_kernel_9x9_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel9x9ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL =head2 sobel_x int gfx_image_sobel_x(Src, Dest, rows, columns) unsigned char *Src unsigned char *Dest int rows int columns CODE: RETVAL = SDL_imageFilterSobelX(Src, Dest, rows, columns); OUTPUT: RETVAL =head2 sobel_x_shift_right int gfx_image_sobel_x_shift_right(Src, Dest, rows, columns, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns unsigned char NRightShift CODE: RETVAL = SDL_imageFilterSobelXShiftRight(Src, Dest, rows, columns, NRightShift); OUTPUT: RETVAL =head2 align_stack void gfx_image_align_stack() CODE: SDL_imageFilterAlignStack(); =head2 restore_stack void gfx_image_restore_stack() CODE: SDL_imageFilterRestoreStack(); =head1 AUTHORS See L<SDL/AUTHORS>. ������SDL-2.540/lib/pods/SDL/GFX/Primitives.pod�����������������������������������������������������������000444��000765��000024�� 17310�11760240073� 20047� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::Primitives - basic drawing functions =head1 CATEGORY GFX =head1 DESCRIPTION All functions take an SDL::Surface object as first parameter. This can be a new surface that will be blitted afterwards, can be an surface obtained by L<SDL::Video::set_video_mode|SDL::Video/"set_video_mode"> or can be an L<SDLx::App>. The C<color> values for the C<_color> functions are C<0xRRGGBBAA> (32bit), even if the surface uses e. g. 8bit colors. =head1 METHODS =head2 pixel int SDL::GFX::Primitives::pixel_color( $surface, $x, $y, $color ); int SDL::GFX::Primitives::pixel_RGBA( $surface, $x, $y, $r, $g, $b, $a ); Draws a pixel at point C<x>/C<$y>. You can pass the color by C<0xRRGGBBAA> or by passing 4 values. One for red, green, blue and alpha. use SDL; use SDL::Video; use SDL::Surface; use SDL::GFX::Primitives; my $surface = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE); SDL::GFX::Primitives::pixel_color($surface, 2, 2, 0xFF0000FF); # red pixel SDL::GFX::Primitives::pixel_RGBA( $surface, 4, 4, 0x00, 0xFF, 0x00, 0xFF); # green pixel =head2 hline int SDL::GFX::Primitives::hline_color( $surface, $x1, $x2, $y, $color ); int SDL::GFX::Primitives::hline_RGBA( $surface, $x1, $x2, $y, $r, $g, $b, $a ); Draws a line horizontally from C<$x1>/C<$y> to C<$x2>/C<$y>. =head2 vline int SDL::GFX::Primitives::vline_color( $surface, $x, $y1, $y2, $color ); int SDL::GFX::Primitives::vline_RGBA( $surface, $x, $y1, $y2, $r, $g, $b, $a ); Draws a line vertically from C<$x>/C<$y1> to C<$x>/C<$y2>. =head2 rectangle int SDL::GFX::Primitives::rectangle_color( $surface, $x1, $y1, $x2, $y2, $color ); int SDL::GFX::Primitives::rectangle_RGBA( $surface, $x1, $y1, $x2, $y2, $r, $g, $b, $a ); Draws a rectangle. Upper left edge will be at C<$x1>/C<$y1> and lower right at C<$x2>/C<$y>. The colored border has a width of 1 pixel. =head2 box int SDL::GFX::Primitives::box_color( $surface, $x1, $y1, $x2, $y2, $color ); int SDL::GFX::Primitives::box_RGBA( $surface, $x1, $y1, $x2, $y2, $r, $g, $b, $a ); Draws a filled rectangle. =head2 line int SDL::GFX::Primitives::line_color( $surface, $x1, $y1, $x2, $y2, $color ); int SDL::GFX::Primitives::line_RGBA( $surface, $x1, $y1, $x2, $y2, $r, $g, $b, $a ); Draws a free line from C<$x1>/C<$y1> to C<$x2>/C<$y>. =head2 aaline int SDL::GFX::Primitives::aaline_color( $surface, $x1, $y1, $x2, $y2, $color ); int SDL::GFX::Primitives::aaline_RGBA( $surface, $x1, $y1, $x2, $y2, $r, $g, $b, $a ); Draws a free line from C<$x1>/C<$y1> to C<$x2>/C<$y>. This line is anti aliased. =head2 circle int SDL::GFX::Primitives::circle_color( $surface, $x, $y, $r, $color ); int SDL::GFX::Primitives::circle_RGBA( $surface, $x, $y, $rad, $r, $g, $b, $a ); =head2 arc int SDL::GFX::Primitives::arc_color( $surface, $x, $y, $r, $start, $end, $color ); int SDL::GFX::Primitives::arc_RGBA( $surface, $x, $y, $rad, $start, $end, $r, $g, $b, $a ); B<Note>: You need lib SDL_gfx 2.0.17 or greater for this function. =head2 aacircle int SDL::GFX::Primitives::aacircle_color( $surface, $x, $y, $r, $color ); int SDL::GFX::Primitives::aacircle_RGBA( $surface, $x, $y, $rad, $r, $g, $b, $a ); B<Note>: You need lib SDL_gfx 2.0.17 or greater for this function. =head2 filled_circle int SDL::GFX::Primitives::filled_circle_color( $surface, $x, $y, $r, $color ); int SDL::GFX::Primitives::filled_circle_RGBA( $surface, $x, $y, $rad, $r, $g, $b, $a ); =head2 ellipse int SDL::GFX::Primitives::ellipse_color( $surface, $x, $y, $rx, $ry, $color ); int SDL::GFX::Primitives::ellipse_RGBA( $surface, $x, $y, $rx, $ry, $r, $g, $b, $a ); =head2 aaellipse int SDL::GFX::Primitives::aaellipse_color( $surface, $xc, $yc, $rx, $ry, $color ); int SDL::GFX::Primitives::aaellipse_RGBA( $surface, $x, $y, $rx, $ry, $r, $g, $b, $a ); =head2 filled_ellipse int SDL::GFX::Primitives::filled_ellipse_color( $surface, $x, $y, $rx, $ry, $color ); int SDL::GFX::Primitives::filled_ellipse_RGBA( $surface, $x, $y, $rx, $ry, $r, $g, $b, $a ); =head2 pie int SDL::GFX::Primitives::pie_color( $surface, $x, $y, $rad, $start, $end, $color ); int SDL::GFX::Primitives::pie_RGBA( $surface, $x, $y, $rad, $start, $end, $r, $g, $b, $a ); This draws an opened pie. C<$start> and C<$end> are degree values. C<0> is at right, C<90> at bottom, C<180> at left and C<270> degrees at top. =head2 filled_pie int SDL::GFX::Primitives::filled_pie_color( $surface, $x, $y, $rad, $start, $end, $color ); int SDL::GFX::Primitives::filled_pie_RGBA( $surface, $x, $y, $rad, $start, $end, $r, $g, $b, $a ); =head2 trigon int SDL::GFX::Primitives::trigon_color( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $color ); int SDL::GFX::Primitives::trigon_RGBA( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $r, $g, $b, $a ); =head2 aatrigon int SDL::GFX::Primitives::aatrigon_color( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $color ); int SDL::GFX::Primitives::aatrigon_RGBA( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $r, $g, $b, $a ); =head2 filled_trigon int SDL::GFX::Primitives::filled_trigon_color( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $color ); int SDL::GFX::Primitives::filled_trigon_RGBA( $surface, $x1, $y1, $x2, $y2, $x3, $y3, $r, $g, $b, $a ); =head2 polygon int SDL::GFX::Primitives::polygon_color( $surface, $vx, $vy, $n, $color ); int SDL::GFX::Primitives::polygon_RGBA( $surface, $vx, $vy, $n, $r, $g, $b, $a ); Example: SDL::GFX::Primitives::polygon_color($display, [262, 266, 264, 266, 262], [243, 243, 245, 247, 247], 5, 0xFF0000FF); =head2 aapolygon int SDL::GFX::Primitives::aapolygon_color( $surface, $vx, $vy, $n, $color ); int SDL::GFX::Primitives::aapolygon_RGBA( $surface, $vx, $vy, $n, $r, $g, $b, $a ); =head2 filled_polygon int SDL::GFX::Primitives::filled_polygon_color( $surface, $vx, $vy, $n, $color ); int SDL::GFX::Primitives::filled_polygon_RGBA( $surface, $vx, $vy, $n, $r, $g, $b, $a ); =head2 textured_polygon int SDL::GFX::Primitives::textured_polygon( $surface, $vx, $vy, $n, $texture, $texture_dx, $texture_dy ); =head2 filled_polygon_MT int SDL::GFX::Primitives::filled_polygon_color_MT( $surface, $vx, $vy, $n, $color, $polyInts, $polyAllocated ); int SDL::GFX::Primitives::filled_polygon_RGBA_MT( $surface, $vx, $vy, $n, $r, $g, $b, $a, $polyInts, $polyAllocated ); B<Note>: You need lib SDL_gfx 2.0.17 or greater for this function. =head2 textured_polygon_MT int SDL::GFX::Primitives::textured_polygon_MT( $surface, $vx, $vy, $n, $texture, $texture_dx, $texture_dy, $polyInts, $polyAllocated ); B<Note>: You need lib SDL_gfx 2.0.17 or greater for this function. =head2 bezier int SDL::GFX::Primitives::bezier_color( $surface, $vx, $vy, $n, $s, $color ); int SDL::GFX::Primitives::bezier_RGBA( $surface, $vx, $vy, $n, $s, $r, $g, $b, $a ); C<$n> is the number of elements in C<$vx> and C<$vy>, and C<$s> is the number of steps. So the bigger C<$s> is, the smother it becomes. Example: SDL::GFX::Primitives::bezier_color($display, [390, 392, 394, 396], [243, 255, 235, 247], 4, 20, 0xFF00FFFF); =head2 character int SDL::GFX::Primitives::character_color( $surface, $x, $y, $c, $color ); int SDL::GFX::Primitives::character_RGBA( $surface, $x, $y, $c, $r, $g, $b, $a ); C<$c> is the character that will be drawn at C<$x>,C<$y>. =head2 string int SDL::GFX::Primitives::string_color( $surface, $x, $y, $c, $color ); int SDL::GFX::Primitives::string_RGBA( $surface, $x, $y, $c, $r, $g, $b, $a ); =head2 set_font void SDL::GFX::Primitives::set_font(fontdata, $cw, $ch ); The fontsets are included in the SDL_gfx distribution. Check L<http://www.ferzkopp.net/joomla/content/view/19/14/> for more. Example: my $font = ''; open(FH, '<', 'data/5x7.fnt'); binmode(FH); read(FH, $font, 4096); close(FH); SDL::GFX::Primitives::set_font($font, 5, 7); =head1 AUTHORS See L<SDL/AUTHORS>. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/GFX/Rotozoom.pod�������������������������������������������������������������000444��000765��000024�� 6100�11760240073� 17517� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::GFX::Rotozoom - rotation and zooming functions for surfaces =head1 CATEGORY GFX =head1 CONSTANTS The constants are exported by default. You can avoid this by doing: use SDL::GFX::Rotozoom (); and access them directly: SDL::GFX::Rotozoom::SMOOTHING_OFF; or by choosing the export tags below: Export tag: ':smoothing' SMOOTHING_OFF SMOOTHING_ON =head1 METHODS =head2 surface my $new_surface = SDL::GFX::Rotozoom::surface( $surface, $angle, $zoom, $smooth ); With C<SDL::GFX::Rotozoom::surface> you have the opportunity to rotate and zoom a given surface. The surface will be rotated counter clockwise (in degrees). Pass C<SMOOTHING_ON> or C<SMOOTHING_OFF> in order to turn it on or off. B<Note>: The new surface (with $C<zoom == 1>) will usually be bigger than the source C<$surface>. B<Note>: Note: new surface should be less than 16384 in width and height. Example: use SDL; use SDL::Video; use SDL::Rect; use SDL::Surface; use SDL::GFX::Rotozoom; my $screen_width = 640; my $screen_height = 480; SDL::init(SDL_INIT_VIDEO); my $screen = SDL::Video::set_video_mode(800, 600, 32, SDL_SWSURFACE); my $picture = SDL::Video::load_BMP('test.bmp'); my $rotated = SDL::GFX::Rotozoom::surface( $picture, 45, 0.8, SMOOTHING_ON ); SDL::Video::blit_surface( $rotated, SDL::Rect->new(0, 0, $rotated->w, $rotated->h), $screen, SDL::Rect->new(0, 0, 0, 0) ); SDL::Video::update_rect( $screen, 0, 0, 0, 0 ); sleep(2); =head2 surface_xy my $new_surface = SDL::GFX::Rotozoom::surface_xy( $surface, $angle, $zoom_x, $zoom_y, $smooth ); Same as L<SDL::GFX::Rotozoom::surface|/surface> but you can specify the zoomlevel for x and y separately. =head2 surface_size my ($new_width, $new_height) = @{ SDL::GFX::Rotozoom::surface_size( $width, $height, $angle, $zoom ) }; C<surface_size> will give you the width and height of an rotating/zoom operation for the given C<$width> and C<$height>. Helpful for knowing the surface size before actually do the rotating/zoom operation. =head2 surface_size_xy my ($new_width, $new_height) = @{ SDL::GFX::Rotozoom::surface_size_xy( $width, $height, $angle, $zoom_x, $zoom_y ) }; Same as L<SDL::GFX::Rotozoom::surface_size|/surface_size> but you can specify the zoomlevel for x and y separately. =head2 zoom_surface my $new_surface = SDL::GFX::Rotozoom::zoom_surface( $surface, $zoom_x, $zoom_y, $smooth ); Same as L<SDL::GFX::Rotozoom::surface_xy|/surface_xy> except you can zoom only. =head2 zoom_surface_size my ($new_width, $new_height) = SDL::GFX::Rotozoom::zoom_surface_size( $width, $height, $zoom_x, $zoom_y ); Same as L<SDL::GFX::Rotozoom::surface_size_xy|/surface_size_xy> except you can specify zoom only. =head2 shrink_surface my $new_surface = SDL::GFX::Rotozoom::shrink_surface( $surface, $factor_x, $factor_y ); Specialized function for shrinking a surface. =head2 rotate_surface_90_degrees my $new_surface = SDL::GFX::Rotozoom::rotate_surface_90_degrees( $surface, $num_clockwise_turns ); Rotating a surface C<$num_clockwise_turns>-times. =head1 AUTHORS See L<SDL/AUTHORS>. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15471� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/Channels.pod�����������������������������������������������������������000444��000765��000024�� 11724�11760240073� 20112� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::Channels -- SDL::Mixer channel functions and bindings =head1 CATEGORY Mixer =head1 DESCRIPTION =head1 METHODS =head2 allocate_channels my $ret = SDL::Mixer::Channels::allocate_channels( $number_of_channels ); Dynamically change the number of channels managed by the mixer. If decreasing the number of channels, the upper channels are stopped. This function returns the new number of allocated channels. Example use SDL::Mixer::Channels; printf("We got %d channels!\n", SDL::Mixer::Channels::allocate_channels( 8 ) ); =head2 volume my $prev_volume = SDL::Mixer::Channels::volume( $channel_number, $volume ); C<volume> changes the volume of the channel specified in channel by the amount set in volume. The range of volume is from 0 to C<MIX_MAX_VOLUME> which is C<128>. Passing C<-1> to channel will change the volume of all channels. If the specified volume is C<-1>, it will just return the current volume. Returns the previously set volume of the channel. =head2 play_channel my $channel_number = SDL::Mixer::Channels::play_channel( $channel, $chunk, $loops ); C<play_channel> will play the specified C<chunk> over the specified C<channel>. SDL_mixer will choose a channel for you if you pass C<-1> for C<channel>. The chunk will be looped C<loops> times, the total number of times played will be C<loops+1>. Passing C<-1> will loop the chunk infinitely. Returns the channel the chunk will be played on, or C<-1> on error. Example: use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Samples; SDL::init(SDL_INIT_AUDIO); SDL::Mixer::open_audio( 44100, SDL::Constants::AUDIO_S16, 2, 4096 ); my $chunk = SDL::Mixer::Samples::load_WAV('sample.wav'); SDL::Mixer::Channels::play_channel( -1, $chunk, -1 ); SDL::delay(1000); SDL::Mixer::close_audio(); =head2 play_channel_timed my $channel = SDL::Mixer::Channels::play_channel_timed( $channel, $chunk, $loops, $ticks ); Same as L<play_channel> but you can specify the time it will play by C<$ticks>. =head2 fade_in_channel my $channel = SDL::Mixer::Channels::fade_in_channel( $channel, $chunk, $loops, $ms ); Same as L<play_channel> but you can specify the fade-in time by C<$ms>. =head2 fade_in_channel_timed my $channel = SDL::Mixer::Channels::fade_in_channel_timed( $channel, $chunk, $loops, $ms, $ticks ); Same as L<fade_in_channel> but you can specify the time how long the chunk will be played by C<$ticks>. =head2 pause SDL::Mixer::Channels::pause( $channel ); Pauses the given channel or all by passing C<-1>. =head2 resume SDL::Mixer::Channels::resume( $channel ); Resumes the given channel or all by passing C<-1>. =head2 halt_channel SDL::Mixer::Channels::halt_channel( $channel ); Stops the given channel or all by passing C<-1>. =head2 expire_channel my $channels = SDL::Mixer::Channels::expire_channel( $channel, $ticks ); Stops the given channel (or C<-1> for all) after the time specified by C<$ticks> (in milliseconds). Returns the number of affected channels. =head2 fade_out_channel my $fading_channels = SDL::Mixer::Channels::fade_out_channel( $which, $ms ); C<fade_out_channel> fades out a channel specified in C<which> with a duration specified in C<ms> in milliseconds. Returns the the number of channels that will be faded out. =head2 channel_finished SDL::Mixer::Channels::channel_finished( $callback ); Add your own callback when a channel has finished playing. C<NULL> to disable callback. The callback may be called from the mixer's audio callback or it could be called as a result of L<halt_channel>, etc. do not call C<lock_audio> from this callback; you will either be inside the audio callback, or SDL_mixer will explicitly lock the audio before calling your callback. Example 1: my $callback = sub{ printf("[channel_finished] callback called for channel %d\n", shift); }; SDL::Mixer::Channels::channel_finished( $callback ); Example 2: sub callback { ... } SDL::Mixer::Channels::channel_finished( \&callback ); =head2 playing my $playing = SDL::Mixer::Channels::playing( $channel ); Returns C<1> if the given channel is playing sound, otherwise C<0>. It doesn't check if the channel is paused. B<Note>: If you pass C<-1> you will get the number of playing channels. =head2 paused my $paused = SDL::Mixer::Channels::paused( $channel ); Returns C<1> if the given channel is paused, otherwise C<0>. B<Note>: If you pass C<-1> you will get the number of paused channels. =head2 fading_channel my $fading_channel = SDL::Mixer::Channels::fading_channel( $channel ); Returns one of the following for the given channel: =over 4 =item * MIX_NO_FADING =item * MIX_FADING_OUT =item * MIX_FADING_IN =back B<Note>: Never pass C<-1> to this function! =head2 get_chunk my $chunk = SDL::Mixer::Channels::get_chunk( $channel ); C<get_chunk> gets the most recent sample chunk played on channel. This chunk may be currently playing, or just the last used. B<Note>: Never pass C<-1> to this function! =head1 AUTHORS See L<SDL/AUTHORS>. =cut ��������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/Effects.pod������������������������������������������������������������000444��000765��000024�� 15536�11760240072� 17742� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::Effects - sound effect functions =head1 CATEGORY Mixer =head1 METHODS =head2 register SDL::Mixer::Effects::register( $channel, $effect_callback, $done_callback, $arg ); Hook a processor function into a channel for post processing effects. You may just be reading the data and displaying it, or you may be altering the stream to add an echo. Most processors also have state data that they allocate as they are in use, this would be stored in the C<$arg> data space. When a processor is finished being used, any function passed into C<$done_callback> will be called. The effects are put into a linked list, and always appended to the end, meaning they always work on previously registered effects output. Returns: Zero on errors, such as a nonexisting channel. B<Note>: Passing MIX_CHANNEL_POST will register the C<$effect_callback> as an postmix effect. B<Note>: Do not use this on a threaded perl. This will crash. Example: use SDL; use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Effects; use SDL::Mixer::Samples; my @last_stream = (); my $echo_effect_func = sub { my $channel = shift; my $samples = shift; my $position = shift; my @stream = @_; my @stream2 = @stream; my $offset = $samples / 2; for(my $i = 0; $i < $samples; $i+=2) { if($i < $offset) { if(scalar(@last_stream) == $samples) { $stream2[$i] = $stream[$i] * 0.6 + $last_stream[$samples + $i - $offset] * 0.4; # left $stream2[$i + 1] = $stream[$i + 1] * 0.6 + $last_stream[$samples + $i - $offset + 1] * 0.4; # right } } else { $stream2[$i] = $stream[$i] * 0.6 + $stream[$i - $offset] * 0.4; # left $stream2[$i + 1] = $stream[$i + 1] * 0.6 + $stream[$i - $offset + 1] * 0.4; # right } } @last_stream = @stream; return @stream2; }; my $effect_done = sub { # you may do something here }; SDL::Mixer::open_audio( 44100, SDL::Constants::AUDIO_S16, 2, 1024 ); my $playing_channel = SDL::Mixer::Channels::play_channel( -1, SDL::Mixer::Samples::load_WAV('test/data/sample.wav'), -1 ); SDL::Mixer::Effects::register($playing_channel, $echo_effect_func, $effect_done, 0); SDL::delay(2000); SDL::Mixer::Effects::unregister($playing_channel, $echo_effect_func); SDL::Mixer::close_audio(); SDL::quit(); =head2 unregister SDL::Mixer::Effects::unregister( $channel, $effect_callback ); Remove the registered effect function from the effect list for channel. If the channel is active the registered effect will have its C<$done_callback> function called, if it was specified in L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register">. Returns: Zero on errors, such as invalid channel, or effect function not registered on channel. B<Note>: Do not use this on a threaded perl. This will crash. =head2 unregister_all SDL::Mixer::Effects::unregister_all( $channel ); This removes all effects registered to C<$channel>. If the channel is active all the registered effects will have their C<$done_callback> functions called, if they were specified in L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register">. Returns: Zero on errors, such as channel not existing. B<Note>: Do not use this on a threaded perl. This will crash. =head2 set_post_mix SDL::Mixer::Effects::set_post_mix( $effect_callback, $arg ); Hook a processor function to the postmix stream for post processing effects. You may just be reading the data and displaying it, or you may be altering the stream to add an echo. This processor is never really finished, until you call it without arguments. There can only be one postmix function used at a time through this method. Use L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register"> with MIX_CHANNEL_POST to use multiple postmix processors. This postmix processor is run AFTER all the registered postmixers set up by L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register">. B<Note>: Do not use this on a threaded perl. This will crash. =head2 set_distance SDL::Mixer::Effects::set_distance( $channel, $distance ); This effect simulates a simple attenuation of volume due to distance. The volume never quite reaches silence, even at max distance (C<255>). NOTE: Using a distance of C<0> will cause the effect to unregister itself from channel. You cannot unregister it any other way, unless you use L<SDL::Mixer::Effects::unregister_all|SDL::Mixer::Effects/"unregister_all"> on the channel. Returns: Zero on errors, such as an invalid channel, or if Mix_RegisterEffect failed. =head2 set_panning SDL::Mixer::Effects::set_panning( $channel, $left, $right ); This effect will only work on stereo audio. Meaning you called L<SDL::Mixer::open_audio|SDL::Mixer/"open_audio"> with 2 channels. B<Note>: Setting both left and right to 255 will unregister the effect from channel. You cannot unregister it any other way, unless you use L<SDL::Mixer::Effects::unregister_all|SDL::Mixer::Effects/"unregister_all"> on the channel. B<Note>: Using this function on a mono audio device will not register the effect, nor will it return an error status. Returns: Zero on errors, such as bad channel, or if L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register"> failed. =head2 set_position SDL::Mixer::Effects::set_position( $channel, $angle, $distance ); This effect emulates a simple 3D audio effect. It's not all that realistic, but it can help improve some level of realism. By giving it the angle and distance from the camera's point of view, the effect pans and attenuates volumes. C<$angle> is the direction in relation to forward from 0 to 360 degrees. Larger angles will be reduced to this range using angles % 360. =over 4 =item * 0 = directly in front. =item * 90 = directly to the right. =item * 180 = directly behind. =item * 270 = directly to the left. =back So you can see it goes clockwise starting at directly in front. C<$distance> is C<0>(close/loud) to C<255>(far/quiet). B<Note>: Using angle and distance of C<0>, will cause the effect to unregister itself from channel. You cannot unregister it any other way, unless you use L<SDL::Mixer::Effects::unregister_all|SDL::Mixer::Effects/"unregister_all"> on the channel. Returns: Zero on errors, such as an invalid channel, or if L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register"> failed. =head2 set_reverse_stereo SDL::Mixer::Effects::set_reverse_stereo( $channel, $flip ); If you pass C<1> to C<$flip> it simple reverse stereo, swaps left and right channel sound. B<Note>: Using a flip of C<0>, will cause the effect to unregister itself from channel. You cannot unregister it any other way, unless you use L<SDL::Mixer::Effects::register|SDL::Mixer::Effects/"register"> on the channel. =head1 AUTHORS See L<SDL/AUTHORS>. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/Groups.pod�������������������������������������������������������������000444��000765��000024�� 5421�11760240072� 17612� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::Groups - Audio channel group functions =head1 CATEGORY Mixer =head1 METHODS =head2 reserve_channels my $reserved = SDL::Mixer::Groups::reserve_channels( $num ); C<$num> is the number of channels to reserve from default mixing. Zero removes all reservations. Reserve C<$num> channels from being used when playing samples when passing in C<-1> as a channel number to playback functions. The channels are reserved starting from channel C<0> to C<$num-1>. Passing in zero will unreserve all channels. Normally SDL_mixer starts without any channels reserved. The following functions are affected by this setting: =over 4 =item * L<SDL::Mixer::Channels::play_channel|SDL::Mixer::Channels/"play_channel"> =item * L<SDL::Mixer::Channels::play_channel_timed|SDL::Mixer::Channels/"play_channel_timed"> =item * L<SDL::Mixer::Channels::fade_in_channel|SDL::Mixer::Channels/"fade_in_channel"> =item * L<SDL::Mixer::Channels::fade_in_channel_timed|SDL::Mixer::Channels/"fade_in_channel_timed"> =back Returns: The number of channels reserved. Never fails, but may return less channels than you ask for, depending on the number of channels previously allocated (see L<SDL::Mixer::Channels::allocate_channels|SDL::Mixer::Channels/"allocate_channels">). =head2 group_channel my $grouped = SDL::Mixer::Groups::group_channel( $channel, $group ); Add a channel to group id (any positive integer), or reset it's group to the default group by passing (-1). Returns: True(1) on success. False(0) is returned when the channel specified is invalid. =head2 group_channels my $grouped = SDL::Mixer::Groups::group_channels( $from_channel, $to_channel, $group ); Add a range of channels to group id (any positive integer), or reset their group to the default group by passing (-1). Returns: The number of affected channels. =head2 group_available my $channel = SDL::Mixer::Groups::group_count( $group ); C<group_newer> returns the first available channel of this group. =head2 group_count my $channels = SDL::Mixer::Groups::group_count( $group ); C<group_newer> returns the number of channels in this group. =head2 group_oldest my $channel = SDL::Mixer::Groups::group_oldest( $group ); C<group_newer> returns the channel number which started to play at first. =head2 group_newer my $channel = SDL::Mixer::Groups::group_newer( $group ); C<group_newer> returns the channel number which started to play at last. =head2 fade_out_group SDL::Mixer::Groups::fade_out_group( $group, $ms ); Fades out the channels by the given group id. The fade-out-time is specified by C<$ms>. Returns the number of affected channels. =head2 halt_group SDL::Mixer::Groups::hals_group( $group ); Halts the channels by the given group id. Returns C<0>. =head1 AUTHORS See L<SDL/AUTHORS>. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/MixChunk.pod�����������������������������������������������������������000444��000765��000024�� 1245�11760240072� 20061� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::MixChunk -- SDL Bindings for structure SDL_MixChunk =head1 CATEGORY Mixer, Structure =head1 SYNOPSIS use SDL; use SDL::Mixer::MixChunk; my $mix_chunk = SDL::Mixer::Music::load_WAV('sample.wav'); printf("length of audio data is %d bytes\n", $mix_chunk->alen); printf("volume is %d\n", $mix_chunk->volume); =head1 DESCRIPTION Stores audio data in memory. B<Note:> It's a bad idea to free a chunk that is still being played... =head1 METHODS =head2 alen length of audio data in bytes =head2 volume Per-sample volume, 0-128 (normally C<MIX_MAX_VOLUME> after loading) =head1 AUTHORS See L<SDL/AUTHORS>. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/MixMusic.pod�����������������������������������������������������������000444��000765��000024�� 435�11760240072� 20051� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::MixMusic - SDL Bindings for structure SDL_MixMusic =head1 CATEGORY Mixer, Structure =head1 SYNOPSIS This structure is not directly usable. SDL Perl bindings handle the construction and destruction for you. =head1 AUTHORS See L<SDL/AUTHORS>. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/Music.pod��������������������������������������������������������������000444��000765��000024�� 14526�11760240072� 17441� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::Music - functions for music =head1 CATEGORY Mixer =head1 METHODS =head2 load_MUS my $music = SDL::Mixer::Music::load_MUS( $file ); C<load_MUS> loads a music file into a C<SDL::Mixer::MixMusic> structure. This can be passed to L<play_music|SDL::Mixer::Music/"play_music">. =head2 load_MUS_RW my $music = SDL::Mixer::Music::load_MUS_RW( $rwops ); C<load_MUS_RW> does the same like C<load_MUS> except that it accepts an L<SDL::RWOps>-object rather than a filename. Example for loading music from a variable: use SDL; use SDL::Mixer; use SDL::Mixer::Music; use SDL::RWOps; [...] my $rwops = SDL::RWOps->new_const_mem( $scalar_holding_music ); my $music = SDL::Mixer::Music::load_MUS( $rwops ); B<Note:> You need at least libSDL_mixer 1.2.7 for this feature. =head2 hook_music SDL::Mixer::Music::hook_music( $callback, $position ); This sets up a custom music player function, so you can pass your own audio stream data into the SDL::Mixer. The function will be called with C<position> passed into the first parameter when the C<callback> is called. The audio stream buffer has to be filled with length bytes of music (2nd parameter). The music player will then be called automatically when the mixer needs it. Music playing will start as soon as this is called. All the music playing and stopping functions have no effect on music after this. Pause and resume will work. Using a custom music player and the internal music player is not possible, the custom music player takes priority. To stop the custom music player call C<hook_music()> without arguments. B<Note>: NEVER call C<SDL::Mixer> functions, nor L<SDL::Audio::lock|SDL::Audio/"lock">, from a callback function. B<Note>: At program termination also call C<SDL::Mixer::Music::hook_music()> to stop this callback. Example: sub callback { my $position = shift; # position (first time its 0, on each call $length is added) my $length = shift; # length of bytes we have to put in stream my @stream = ''; printf("position=%8d, stream length=%6d\n", $position, $length); for(my $i = 0; $i < $length; $i++) { push(@stream, (($i + $position) & 0xFF)); } return @stream; } SDL::Mixer::Music::hook_music( 'main::callback', 0 ); =head2 hook_music_finished SDL::Mixer::Music::hook_music_finished( 'main::callback' ); This callback is called when music called by e.g. L<SDL::Mixer::Music::play_music|SDL::Mixer::Music/"play_music"> or L<SDL::Mixer::Music::fade_in_music|SDL::Mixer::Music/"fade_in_music"> stops naturally. This happens when the music is over or is fading out. B<Note>: If you play music via L<SDL::Mixer::Music::hook_music|SDL::Mixer::Music/"hook_music">, this callback will never be called. Example: my $music_is_playing = 0; my @music = qw(first.mp3 next.mp3 other.mp3 last.mp3); sub callback { $music_is_playing = 0; } SDL::Mixer::Music::hook_music_finished( 'main::callback' ); foreach my $this_song ( @music ) { SDL::Mixer::Music::play_music( $this_song, 0 ); $music_is_playing = 1; SDL::delay( 100 ) while( $music_is_playing ); } SDL::Mixer::Music::hook_music_finished(); # cleanup =head2 get_music_hook_data my $position = SDL::Mixer::Music::get_music_hook_data(); Returns the C<position> (first) parameter that will be passed to L<SDL::Mixer::Music::hook_music|SDL::Mixer::Music/"hook_music">'s callback. =head2 play_music my $play_music = SDL::Mixer::Music::play_music( $mix_music, $loops ); C<play_music> plays a given C<SDL::Mixer::MixMusic>. Passing -1 to C<$loops> will loop the music infinitely. Example: my $music = SDL::Mixer::Music::load_MUS( 'music.mp3' ); unless(SDL::Mixer::Music::play_music($sample_music, -1)) { print("Something went wrong!\n"); } =head2 fade_in_music my $music = SDL::Mixer::Music::fade_in_music( $mix_music, $loops, $ms ); Same as L<SDL::Mixer::Music::play_music|SDL::Mixer::Music/"play_music"> but you can specify the fade-in time by C<$ms>. =head2 fade_out_music my $fading_music = SDL::Mixer::Music::fade_out_music( $ms ); C<fade_out_music> fades out the music with a duration specified in C<ms> in milliseconds. Returns the the number of channels that will be faded out. =head2 fading_music my $fading_music = SDL::Mixer::Music::fading_music(); Returns one of the following: =over 4 =item * MIX_NO_FADING =item * MIX_FADING_OUT =item * MIX_FADING_IN =back =head2 volume_music my $volume_before = SDL::Mixer::Music::volume_music( $new_volume ); C<volume_music> set the volume in C<$new_volume> and returns the volume that was set before. Passing C<-1> as argument causes only to return the current volume. Volume is between C<0> (silence) and C<MIX_MAX_VOLUME = 128>. Example: # set the music volume to 1/2 maximum, and then check it printf( "volume was : %d\n", SDL::Mixer::Music::volume_music( MIX_MAX_VOLUME / 2 ) ); printf( "volume is now : %d\n", SDL::Mixer::Music::volume_music( -1 ) ); =head2 halt_music SDL::Mixer::Music::halt_music(); Halts the music. =head2 pause_music SDL::Mixer::Music::pause_music(); Pauses the music. =head2 resume_music SDL::Mixer::Music::resume_music(); Resumes the music. =head2 rewind_music SDL::Mixer::Music::rewind_music(); Rewinds the music. =head2 set_music_position SDL::Mixer::Music::set_music_position( $position ); Set the position of the currently playing music. The position takes different meanings for different music sources. It only works on the music sources listed below. =over 4 =item MOD The double is cast to Uint16 and used for a pattern number in the module. Passing zero is similar to rewinding the song. =item OGG Jumps to position seconds from the beginning of the song. =item MP3 Jumps to position seconds from the current position in the stream. So you may want to call L<SDL::Mixer::Music::rewind_music|SDL::Mixer::Music/"rewind_music"> before this. Does not go in reverse... negative values do nothing. =back Returns: C<0> on success, or C<-1> if the codec doesn't support this function. =head2 paused_music my $paused = SDL::Mixer::Music::paused_music(); Returns C<1> if the music is paused, otherwise C<0>. =head2 playing_music my $playing_music = SDL::Mixer::Music::playing_music(); Returns C<1> if the music is playing sound, otherwise C<0>. It doesn't check if the music is paused. =head1 AUTHORS See L<SDL/AUTHORS>. =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Mixer/Samples.pod������������������������������������������������������������000444��000765��000024�� 4024�11760240073� 17736� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Mixer::Samples - functions for loading sound samples =head1 CATEGORY Mixer =head1 METHODS =head2 get_num_chunk_decoders my $num_decoders = SDL::Mixer::Samples::get_num_chunk_decoders(); Returns the number of available decoders. =head2 get_chunk_decoder my $decoder = SDL::Mixer::Samples::get_chunk_decoder( $num_decoder ); Returns the decoder for the given id. =head2 load_WAV my $mix_chunk = SDL::Mixer::Samples::load_WAV( $file ); C<load_WAV> reads a file and passes it to L<SDL::Mixer::Samples::load_WAV_RW>. SO this is a quick way to load a file into a chunk. Example: my $chunk = SDL::Mixer::Samples::load_WAV('sample.wav'); SDL::Mixer::Channels::play_channel(-1, $chunk, -1); SDL::delay(2000); =head2 load_WAV_RW my $mix_chunk = SDL::Mixer::Samples::load_WAV_RW( $rwops, $free ); C<load_WAV_RW> is a macro that loads a sound sample from a a block of memory. It supports WAVE-, MOD-, MIDI-, OGG- and MP3 files (sometimes depends on compilation options). It accepts two arguments, the first being a RWops object from which to read and the second being a flag to free the source memory after loading is complete or not. Returns a Mix_Chunk containing the whole sample on success, or C<undef> on error. B<Note>: Do not reuse the RWops-object for another call to this function! Example: my $rwops = SDL::RWOps->new_file('sample.wav', 'r'); my $chunk = SDL::Mixer::Samples::load_WAV_RW($rwops, 0); SDL::Mixer::Channels::play_channel(-1, $chunk, -1); SDL::delay(2000); =head2 quick_load_WAV SDL::Mixer::Samples::quick_load_WAV( $buf ); to be documented. =head2 quick_load_RAW SDL::Mixer::Samples::quick_load_RAW( $buf, $len ); to be documented. =head2 volume_chunk my $volume_before = SDL::Mixer::Samples::volume_chunk( $chunk, $new_volume ); C<volume_chunk> let you set and get the volume of a chunk. When a chunk is created is volume is C<MIX_MAX_VOLUME> (C<128>). If you pass C<-1> as C<$new_volume> you just get its volume without changing it. =head1 AUTHORS See L<SDL/AUTHORS>. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Pango������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15450� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Pango/Context.pod������������������������������������������������������������000444��000765��000024�� 546�11760240072� 17722� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Pango::Context - Context object for SDL::Pango =head1 CATEGORY Pango, Structure =head1 METHODS =head2 new my $context = SDL::Pango::Context->new; Creates a new SDL::Pango context object. See L<SDL::Pango>. =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<SDL::Pango>, L<SDL::Video>, L<SDL::Surface>, L<SDL::TTF> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/TTF��������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15041� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/TTF/Font.pod�����������������������������������������������������������������000444��000765��000024�� 1216�11760240072� 16610� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::TTF::Font - Font object type for SDL_ttf =head1 CATEGORY TTF, Structure =head1 METHODS =head1 CONSTRUCTOR my $font = SDL::TTF::Font->new($font_file, $point_size); my $font = SDL::TTF::Font->new($font_file, $point_size, $face_index); Load file for use as a font, at the given size. This can load TTF, OTF and FON files. You can specify the face index of a font file containing multiple faces. Returns: a L<SDL::TTF::Font> object. C<undef> is returned on errors. Example: use SDL::TTF::Font; my $font = SDL::TTF::Font->new('arial.ttf', 24); =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<SDL::TTF> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Tutorial���������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 16210� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Tutorial/Animation.pod�������������������������������������������������������000444��000765��000024�� 12566�11760240073� 21022� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDL::Tutorial::Animation =head2 CATEGORY Tutorials =head1 SYNOPSIS # to read this tutorial $ perldoc SDL::Tutorial::Animation # to create a demo animation program based on this tutorial $ perl -MSDL::Tutorial::Animation=sdl_anim.pl -e 1 =head1 ANIMATING A RECTANGLE Now that you can display a rectangle on the screen, the next step is to animate that rectangle. As with movies, there's no actual motion. Computer animations are just very very fast slideshows. The hard work is creating nearly identical images in every slide (or frame, in graphics terms). Okay, it's not that difficult. There is one small difficulty to address, however. Once you blit one surface onto another, the destination is changed permanently. There's no concept of layers here unless you write it yourself. If you fail to take this into account (and just about everyone does at first), you'll end up with blurry graphics moving around on the screen. There are two approaches to solve this problem, redrawing the screen on every frame and saving and restoring the background for every object drawn. =head2 Redrawing the Screen Since you have to draw the screen in the right order once to start with it's pretty easy to make this into a loop and redraw things in the right order for every frame. Given a L<SDLx::App> object C<$app>, a L<SDL::Rect> C<$rect>, and a L<SDL::Color> C<$color>, you only have to create a new SDL::Rect C<$bg>, representing the whole of the background surface and a new mapped color C<$bg_color>, representing the background color. The colors need to be mapped to the format of the current display. This is done by L<SDL::Video::map_RGB>. S< > my $color = SDL::Video::map_RGB ( $app->format, $rect_r, $rect_g, $rect_b, ); my $bg_color = SDL::Video::map_RGB ( $app->format, $bg_r, $bg_g, $bg_b, ); S< > You can write a C<draw_frame()> function as follows: S< > sub draw_frame { my ($app, %args) = @_; SDL::Video::fill_rect($app, $args{bg}, $args{bg_color} ); SDL::Video::fill_rect($app, $args{rect}, $args{rect_color} ); SDL::Video::update_rects($app, $args{bg} ); } S< > Since you can change the C<x> and C<y> coordinates of a rect with the C<x()> and C<y()> methods, you can move a rectangle across the screen with a loop like this: S< > for my $x (0 .. 640) { $rect->x( $x ); draw_frame( $app, bg => $bg, bg_color => $bg_color, rect => $rect, rect_color => $color, ); } S< > If C<$rect>'s starting y position is 190 and its height and width are 100, the rectangle (er, square) will move across the middle of the screen. Provided you can keep track of the proper order in which to redraw rectangles and provided you don't need the optimal speed necessary (since blitting every object takes more work than just blitting the portions you need), this works quite well. =head2 Undrawing the Updated Rectangle If you need more speed or want to make a different complexity tradeoff, you can take a snapshot of the destination rectangle I<before> you blit onto it. That way, when you need to redraw, you can blit the old snapshot back before blitting to the new position. B<Note:> I have no idea how this will work in the face of alpha blending, which, admittedly, I haven't even mentioned yet. If you don't know what this means, forget it. If you do know what this means and know why I'm waving my hands here, feel free to explain what should and what does happen and why. :) With this technique, the frame-drawing subroutine has to be a little more complicated. Instead of the background rect, it needs a rect for the previous position. It also needs to do two updates (or must perform some scary math to figure out the rectangle of the correct size to C<update()>. No thanks!). S< > sub undraw_redraw_rect { my ($app, %args) = @_; SDL::Video::fill_rect($app, $args{old_rect}, $args{bg_color} ); SDL::Video::fill_rect($app, $args{rect}, $args{rect_color} ); SDL::Video::update_rects($app, $args{old_rect} ); SDL::Video::update_rects($app, $args{rect} ); } S< > We'll need to create a new SDL::Rect, C<$old_rect>, that is a duplicate of C<$rect>, at the same position at first. You should already know how to do this. As before, the loop to call C<undraw_redraw_rect()> would look something like: S< > for my $x (0 .. 640) { $rect->x( $x ); undraw_redraw_rect( $app, rect => $rect, old_rect => $old_rect, rect_color => $color, bg_color => $bgcolor, ); $old_rect->x( $x ); } S< > If you run this code, you'll probably notice that it's tremendously faster than the previous version. It may be too fast, where the alternate technique was just fast enough. There are a couple of good ways to set a fixed animation speed regardless of the speed of the processor and graphics hardware (provided they're good enough, which is increasingly often the case), and we'll get to them soon. =head1 SEE ALSO =over 4 =item L<SDL::Tutorial::Drawing> basic drawing with SDL Perl =item L<SDL::Tutorial::Images> animating images =back =head1 AUTHOR chromatic, E<lt>chromatic@wgz.orgE<gt> Written for and maintained by the Perl SDL project, L<http://sdl.perl.org/>. See L<SDL/AUTHORS>. =head1 BUGS No known bugs. =head1 COPYRIGHT Copyright (c) 2003 - 2004, chromatic. All rights reserved. This module is distributed under the same terms as Perl itself, in the hope that it is useful but certainly under no guarantee. ������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDL/Tutorial/LunarLander.pod�����������������������������������������������������000444��000765��000024�� 15052�11760240072� 21302� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDL::Tutorial::LunarLander - a small tutorial on Perl SDL =head2 CATEGORY Tutorials =head1 INTRODUCTION This is a quick introduction to Games, Perl, and SDL (Simple DirectMedia Layer, a cross-platform multimedia programming library). We'll write a small game -- Lunar Lander -- in 100 lines of code, or less. =head3 CREATING A DEMO You can see the final version of the demo code by doing: perl -MSDL::Tutorial::LunarLander=lander.pl -e1 this will create all three files used in the tutorial. =head2 FIRST VERSION We'll start with a text version of the game. "What?", you may ask. "I thought it was a SDL tutorial". Yes, it is -- thank you for reminding me. But we'll leave the SDL part for later. We must build the game logic first! One of the traps of game programming is focusing too much on the interface. If we start with a simpler simulation, we can worry with the presentation later. So, here's the initial code: #!/usr/bin/perl use strict; use warnings; my $height = 1000; # m my $velocity = 0; # m/s my $gravity = 1; # m/s^2 my $t = 0; while ( $height > 0 ) { print "at $t s height = $height m, velocity = $velocity m/s\n"; $height = $height - $velocity; $velocity = $velocity + $gravity; $t = $t + 1; } if ( $velocity > 10 ) { print "CRASH!!!\n"; } else { print "You landed on the surface safely! :-D\n"; } Run the code and you'll see something like this: at 0 s height = 1000 m, velocity = 0 m/s at 1 s height = 1000 m, velocity = 1 m/s at 2 s height = 999 m, velocity = 2 m/s at 3 s height = 997 m, velocity = 3 m/s at 4 s height = 994 m, velocity = 4 m/s at 5 s height = 990 m, velocity = 5 m/s ... at 43 s height = 97 m, velocity = 43 m/s at 44 s height = 54 m, velocity = 44 m/s at 45 s height = 10 m, velocity = 45 m/s CRASH!!! "What happened? How do I control the ship???" =head2 CONTROLLING THE SHIP The problem with our first spaceship is that it had no controls! So, let's fix this problem, making the spaceship scriptable. (We could write some code to handle keyboard and joysticks now, but an scriptable spaceship will be easier to start. Remember, focus on the game logic!) So, create add this simple script to the end of your file: __DATA__ at 41s, accelerate 10 m/s^2 up at 43s, 10 m/s^2 at 45s, 10 at 47s, 10 at 49s, 10 The script is straightforward: it simply states a time when we will push the spaceship up with a given acceleration. It accepts free text: any two numbers you type will work. We can parse the script using this regular expression: my $script_re = qr/(\d+) \D+ (\d+)/x; And we can build a hash of ( time => acceleration ) with: my %up = map { $_ =~ $script_re } <DATA>; So the middle section of the program will become: my $script_re = qr/(\d+) \D+ (\d+)/x; my %up = map { $_ =~ $script_re } <DATA>; while ( $height > 0 ) { print "at $t s height = $height m, velocity = $velocity m/s\n"; if ( $up{$t} ) { my $a = $up{$t}; print "(accelerating $a m/s^2)\n"; $velocity = $velocity - $a; } $height = $height - $velocity; $velocity = $velocity + $gravity; $t = $t + 1; } That's it! Try to run the program, and the ship should land safely: ./lunar.pl autopilot.txt at 0 s height = 1000 m, velocity = 0 m/s at 1 s height = 1000 m, velocity = 1 m/s at 2 s height = 999 m, velocity = 2 m/s at 3 s height = 997 m, velocity = 3 m/s at 4 s height = 994 m, velocity = 4 m/s at 5 s height = 990 m, velocity = 5 m/s ... at 54 s height = 19 m, velocity = 4 m/s at 55 s height = 15 m, velocity = 5 m/s at 56 s height = 10 m, velocity = 6 m/s at 57 s height = 4 m, velocity = 7 m/s You landed on the surface safely! :-D Cool, but... =head2 HOW ABOUT THE GRAPHICS? Okay, okay... now that we have a working prototype, we can work on the graphics. But, first of all, we'll need... =head3 THE GRAPHICS Yes, the graphics. We won't use anything fancy here, just two images: a large one, for the background, and a smaller one for the spaceship. Create the images using the Gimp, or use the images provided by this tutorial; Save these images in a subdirectory called "images": ("C<images/background.jpg>" and "C<images/ship.png>"). =head2 USING SDL First step: use the required libraries: use SDL; #needed to get all constants use SDL::Video; use SDLx::App; use SDL::Surface; use SDL::Rect; use SDL::Image; Second step: initialize C<SDLx::App>: my $app = SDLx::App->new( title => "Lunar Lander", width => 800, height => 600, depth => 32, ); Third step: load the images and create the necessary "rectangles": my $background = SDL::Image::load('images/background.jpg'); my $ship = SDL::Image::load('images/ship.jpg'); my $background_rect = SDL::Rect->new(0,0, $background->w, $background->h, ); my $ship_rect = SDL::Rect->new(0,0, $ship->w, $ship->h, ); Fourth step: create a sub to draw the spaceship and background: sub draw { my ( $x, $y ) = @_; # spaceship position # fix $y for screen resolution $y = 450 * ( 1000 - $y ) / 1000; # background SDL::Video::blit_surface($background, $background_rect, $app, $background_rect ); # ship my $ship_dest_rect = SDL::Rect->new( $x, $y, $ship->w, $ship->h, ); SDL::Video::blit_surface($ship, $ship_rect, $app, $ship_dest_rect ); SDL::Video::update_rects($app, $background_rect); } Note that this sub first combines all the bitmaps, using a blit ("Block Image Transfer") operation -- which is quite fast, but does not update the display. The combined image is displayed in the last line. This process of combining first, and displaying later, avoids that annoying fading between cycles ("flickering"). Finally, add the following lines to the end of the main loop, so that we call the C<draw()> function with the correct spaceship coordinates: while ( $height > 0 ) { # ... draw( 100, $height ); $app->delay(10); } That's it! Run the program and watch the spaceship landing safely on the surface of the moon. =head1 COPYRIGHT & LICENSE Copyright 2009 Nelson Ferraz, all rights reserved. Updated and maintained by the SDL Perl project. See L<SDL/AUTHORS>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx�����������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14575� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/App.pod���������������������������������������������������������������������000444��000765��000024�� 11031�11760240072� 16171� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLx::App - a SDL perl extension =head1 CATEGORY Extension =head1 SYNOPSIS use SDL; use SDLx::App; use SDL::Event; use SDL::Events; my $app = SDLx::App->new( title => 'Application Title', width => 640, height => 480, depth => 32 ); This is the manual way of doing things my $event = SDL::Event->new; # create a new event SDL::Events::pump_events(); while ( SDL::Events::poll_event($event) ) { my $type = $event->type(); # get event type print $type; exit if $type == SDL_QUIT; } An alternative to the manual Event processing is through the L<SDLx::Controller> module. L<SDLx::App> is a Controller so see the CALLBACKS section below. =head1 DESCRIPTION L<SDLx::App> controls the root window of the of your SDL based application. It extends the L<SDL::Surface> class, and provides an interface to the window manager oriented functions. =head1 METHODS =head2 new C<SDLx::App::new> initializes the SDL, creates a new screen, and initializes some of the window manager properties. C<SDLx::App::new> takes a series of named parameters: =over 4 =item * title the window title. Defaults to the file name. Shorter alias: 't' =item * icon_title the icon title. Defaults to file name. Shortcut: 'it' =item * icon the icon itself. Defaults to none. Shortcut: 'i' =item * width Window width, in pixels. Defaults to 800. Shortcut: 'w' =item * height Window height, in pixels. Defaults to 600. Shortcut: 'h' =item * depth Screen depth. Defaults to 16. Shortcut: 'd'. =item * flags Any flags you want to pass to L<SDL::Video> upon initialization. Defaults to SDL_ANYFORMAT. Flags should be I<or'ed> together if you're passing more than one (flags => FOO|BAR). Shortcut: 'f'. =item * resizeable Set this to a true value to make the window resizeable by the user. Default is off. =item * exit_on_quit Set this to a true value to make the app exit if a SDL_QUIT event is triggered. Shortcut: 'eoq'. =back =head1 METHODS =head2 title() =head2 title( $new_title ) =head2 title( $window_title, $icon_title ) C<SDLx::App::title> takes 0, 1, or 2 arguments. If no parameter is given, it returns the current application window title. If one parameter is passed, both the window title and icon title will be set to its value. If two parameters are passed the window title will be set to the first, and the icon title to the second. =head2 delay( $ms ) C<SDLx::App::delay> takes 1 argument, and will sleep the application for that many ms. =head2 ticks C<SDLx::App::ticks> returns the number of ms since the application began. =head2 error C<SDLx::App::error> returns the last error message set by the SDL. =head2 resize( $width, $height ) C<SDLx::App::resize> takes a new width and height of the application. Only works if the application was originally created with the resizable option. =head2 fullscreen C<SDLx::App::fullscreen> toggles the application in and out of fullscreen mode. =head2 iconify C<SDLx::App::iconify> iconifies the application window. =head2 grab_input( $CONSTANT ) C<SDLx::App::grab_input> can be used to change the input focus behavior of the application. It takes one argument, which should be one of the following: =over 4 =item * SDL_GRAB_QUERY =item * SDL_GRAB_ON =item * SDL_GRAB_OFF =back =head2 sync C<SDLx::App::sync> encapsulates the various methods of syncronizing the screen with the current video buffer. C<SDLx::App::sync> will do a fullscreen update, using the double buffer or OpenGL buffer if applicable. This is prefered to calling flip on the application window. =head2 attribute( $attr ) =head2 attribute( $attr, $value ) C<SDLx::App::attribute> allows one to get and set GL attributes. By passing a value in addition to the attribute selector, the value will be set. C<SDL:::App::attribute> always returns the current value of the given attribute, or Carp::confesss on failure. =head1 CALLBACKS C<SDLx::App> is a C<SDLx::Controller>. Use the event, show and handlers to run the app. use SDL; use SDLx::App; use SDL::Event; #Where ever the event call back is processed my $app = SDLx::App->new( width => 200, height => 200); $app->add_event_handler( sub{ return 0 if $_[0]->type == SDL_QUIT; return 1}); $app->add_show_handler( sub{ $app->update() } ); $app->add_move_handler( sub{ #calc your physics here } ); $app->run(); see L<SDLx::Controller> for more details. =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<perl> L<SDL::Surface> L<SDL::Event> L<SDL::OpenGL> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Controller.pod��������������������������������������������������������������000444��000765��000024�� 21704�11760240073� 17605� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Controller - Handles the loops for events, movement and rendering =head1 CATEGORY Extension, Controller =head1 SYNOPSIS use SDLx::Controller; # create our controller object my $app = SDLx::Controller->new; # we could also do: my $app = SDLx::App->new; # because App is also a controller # register some callbacks $app->add_event_handler( \&on_event ); $app->add_move_handler( \&on_move ); $app->add_show_handler( \&on_show ); # run our game loop $app->run; =head2 DESCRIPTION The core of an SDL application/game is the main loop, where you handle events and display your elements on the screen until something signals the end of the program. This usually goes in the form of: while (1) { ... } The problem most developers face, besides the repetitive work, is to ensure the screen update is independent of the frame rate. Otherwise, your game will run at different speeds on different machines and this is never good (old MS-DOS games, anyone?). One way to circumveint this is by capping the frame rate so it's the same no matter what, but this is not the right way to do it as it penalizes better hardware. This module provides an industry-proven standard for frame independent movement. It calls the movement handlers based on time (hi-res seconds) rather than frame rate. You can add/remove handlers and control your main loop with ease. =head1 METHODS =head2 new SDLx::Controller->new( dt => 0.5, min_t => 0, event => $event_object, ); The C<dt> parameter specifies the length, in seconds, of a full movement step, and defaults to 0.1. The C<dt> can be anything and the game can still look the same. It is only when you change the C<dt> without changing all the things in the movement step that are being multiplied by the first move argument that it will make a difference. If you lower the C<dt>, everything will move faster than it did with it set higher, and vice-versa. This is useful to add slo-mo and fast-forward features to the game, all you would have to do is change the C<dt>. C<min_t> specifies the minimum time, in seconds, that has to accumulate before any move or show handlers are called, and defaults to 1 / 60. Having the C<min_t> at 1 / 60 ensures that the controller can update the screen at a maximum of 60 times per second. A "V-Sync" such as this is necessary to prevent video "tear", which occurs when the app is updating faster than the monitor can display. Setting it to 0, as seen above, will let the app run as fast as it possibly can. C<delay> specifies a loop delay in millisecs to place on the controller loop. B<NOTE:> Picking a good delay based on the needs can help reduce CPU load and pressure. C<event> is a SDL::Event object that events going to the event callbacks are polled in to. It defaults to C<< SDL::Event->new() >>. All parameters are optional. Returns the new object. =head2 run After creating and setting up your handlers (see below), call this method to activate the main loop. The main loop will run until C<stop> is called. All hooked functions will be called during the main loop, in this order: =over 4 =item 1. Events =item 2. Movements =item 3. Displaying =back Please refer to each handler below for information on received arguments. Note that the second argument every callback recieves is the C<SDLx::Controller> object. =head2 stop Returns from the C<run> loop. =head2 pause Attempts to pause the application with a call to C<SDL::Events::wait_event>. See L<SDL::Events>. Takes 1 argument which is a callback. The application waits for the next event with C<wait_event>. When one is recieved, it is passed to the callback as the first argument, along with the C<SDLx::Controller> object as the second argument. If the callback then returns a true value, C<pause> will return. If the callback returns a false value, C<pause> will repeat the process. This can be used to easily implement a pause when the app loses focus: sub window { my ($e, $app) = @_; if($e->type == SDL_QUIT) { $app->stop; # quit handling is here so that the app # can be stopped while paused } elsif($e->type == SDL_ACTIVEEVENT) { if($e->active_state & SDL_APPINPUTFOCUS) { if($e->active_gain) { return 1; } else { $app->pause(\&window); # recursive, but only once since the window # can't lose focus again without gaining it first } } } return 0; } Note: if you implement your own pause function, remember to update C<current_time> to the current time when the application unpauses. This should be done with C<Time::HiRes::time>. Otherwise, time will accumulate while the application is paused, and many movement steps will be called all at once when it unpauses. Note 2: a pause will be potentially dangerous to the C<run> cycle (even if you implement your own) unless called by an C<event> callback. =head2 paused Returns 1 if the app is paused, undef otherwise. This is only useful when used within code that will be run by C<pause>: sub pause { # press P to toggle pause my ($e, $app) = @_; if($e->type == SDL_QUIT) { $app->stop; # quit handling is here so that the app # can be stopped while paused } elsif($e->type == SDL_KEYDOWN) { if($e->key_sym == SDLK_p) { # We're paused, so end pause return 1 if $app->paused; # We're not paused, so pause $app->pause(\&pause); } } return 0; } =head2 add_event_handler Register a callback to handle events. You can add as many subs as you need. Whenever a SDL::Event occurs, all registered callbacks will be triggered in order. Returns the order queue number of the added callback. The first argument passed to registered callbacks is the L<< SDL::Event >> object. The second is the C<SDLx::Controller> object. sub stop { my ($event, $app) = @_; if($event->type == SDL_QUIT) { $app->stop; } } $app->add_event_handler(\&stop); =head2 add_move_handler Register a callback to update your objects. You can add as many subs as you need. Returns the order queue number of the added callback. All registered callbacks will be triggered in order for as many C<dt> as have happened between calls, and once more for any remaining time less than C<dt>. The first argument passed to the callbacks is the portion of the step, which will be 1 for a full step, and less than 1 for a partial step. Movement values should be multiplied by this value. The full steps correspond to the amount of C<dt> passed between calls, and the partial step corresponds to the call with the remaining time less than C<dt>. The argument can be 0 if no time has passed since the last cycle. If you need to protect against this, set a C<min_t>, or put a C<< return unless $_[0] >> at the start of every move handler. The second argument passed to the callbacks is the C<SDLx::Controller> object. The third is the total amount of time passed since the call of C<run>. You should use these handlers to update your in-game objects, check collisions, etc. so you can check and/or update it as necessary. sub move_ball { my ($step, $app, $t) = @_; $ball->move_x( $ball->x_vel * $step ); $ball->move_y( $ball->y_vel * $step ); } =head2 add_show_handler Register a callback to render objects. You can add as many subs as you need. Returns the order queue number of the added callback. All registered callbacks will be triggered in order, once per run of the C<run> loop. The first argument passed is the time, in seconds, since the previous call. The second is the C<SDLx::Controller> object. sub show_ball { my ($delta, $app) = @_; $app->draw_rect( [ $ball->x, $ball->y, $ball->size, $ball->size ], $ball->colour ); } =head2 remove_move_handler( $index ) =head2 remove_event_handler( $index ) =head2 remove_show_handler( $index ) Removes the handler with the given index from the respective calling queue. You can also pass a coderef. The first coderef in the handler list that this matches will be removed. Returns the removed handler. =head2 remove_all_move_handlers =head2 remove_all_event_handlers =head2 remove_all_show_handlers Removes all handlers from the respective calling queue. =head2 remove_all_handlers Quick access to removing all handlers at once. =head2 dt =head2 min_t =head2 current_time If an argument is passed, modifies the corresponding value to the argument. C<dt> and C<min_t> will keep their old value until the beginning of the next C<run> cycle. Returns the corresponding value. =head1 AUTHORS See L<SDL/AUTHORS>. =head2 ACKNOWLEGDEMENTS The idea and base for this module comes from Lazy Foo's L<< Frame Independent Movement|http://www.lazyfoo.net/SDL_tutorials/lesson32/index.php >> tutorial, and Glenn Fiedler's L<< Fix Your Timestep|http://gafferongames.com/game-physics/fix-your-timestep/ >> article on timing. ������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Layer.pod�������������������������������������������������������������������000444��000765��000024�� 11073�11760240072� 16533� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Layer - Storage object for surface and position information =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::Layer; use SDLx::LayerManager; use SDL::Image; use SDL::Surface; use SDL::Video; # creating layers my $layer1 = SDLx::Layer->new( SDL::Image::load('image1.png'), {userdata => '7'} ); my $layer2 = SDLx::Layer->new( SDL::Image::load('image2.png'), 100, 200, {userdata => '42'} ); # creating the manager that holds the layers my $layermanager = SDLx::LayerManager->new(); $layermanager->add( $layer1 ); $layermanager->add( $layer2 ); my $display = # create your video surface here $layer1->foreground; printf( "%s\n", $layer1->behind->[0]->data->{userdata} ); # prints 42 =head1 DESCRIPTION A layer (see SDLx::Layer) is an SDL::Surface, the position of the surface on screen and some additional information, e.g. ingame states. =head1 METHODS =head2 new my $layer = SDLx::Layer->new( $surface ); my $layer = SDLx::Layer->new( $surface, %data ); my $layer = SDLx::Layer->new( $surface, $pos_x, %data ); my $layer = SDLx::Layer->new( $surface, $pos_x, $pos_y, %data ); my $layer = SDLx::Layer->new( $surface, $pos_x, $pos_y, $clip_w, %data ); my $layer = SDLx::Layer->new( $surface, $pos_x, $pos_y, $clip_w, $clip_h, %data ); This constructs the layer object. See how you can omit the position and dimension of the layer. The hash C<%data> is for your use only. The layer object just pass it through. =head2 index my $index = $layer->index; The method C<index> represents the z-index of this layer within its layermanager. =head2 x my $x = $layer->x; This is a shortcut for $layer->pos->x. =head2 y my $y = $layer->y; This is a shortcut for $layer->pos->y. =head2 w my $w = $layer->w; This is a shortcut for $layer->clip->w. =head2 h my $h = $layer->h; This is a shortcut for $layer->pos->h. =head2 surface my $surface = $layer->surface; my $surface = $layer->surface( $new_surface ); B<Example>: SDL::Video::blit_surface( $layer->surface, $layer->clip, $destination_surface, $layer->pos ); This method let you retrieve the current or set a new surface. =head2 pos my $rect = $layer->pos; The method C<pos> returns an SDL::Rect object. The pos x and y are stored there. B<Example>: SDL::Video::blit_surface( $layer->surface, $layer->clip, $destination_surface, $layer->pos ); =head2 clip my $rect = $layer->clip; The method C<clip> returns an SDL::Rect object. The clip width and height are stored there. B<Example>: SDL::Video::blit_surface( $layer->surface, $layer->clip, $destination_surface, $layer->pos ); =head2 data my %data = %{ $layer->data }; my %data = %{ $layer->data( %new_data) }; This method returns the hash C<%data>. You can set C<%data> by passing a hash. =head2 ahead my @layers = $layer->ahead; This method returns all layers that are ahead of the given layer. Ahead means that a layer has a higher z-index and is blitted over the given layer. B<Note>: This method doesn't check for transparency. This will change in future versions. =head2 behind my @layers = $layer->behind; This method returns all layers that are behind of the given layer. Behind means that a layer has a lower z-index and is blitted over the given layer. B<Note>: This method doesn't check for transparency. This will change in future versions. =head2 attach $layer->attach( $x, $y ); This function makes the given layer sticky to the mouse. If you move the mouse the layer will follow. The layermanager blits this layer at last, so they will appear on top of all layers. C<$x> and C<$y> should be set to the coords of the mouse, e.g. the coords of the mouse click. If you omit C<$x> and C<$y> the layer obtains them via SDL::Events::get_mouse_state. B<Note>: The z-index is not changed for the given layer. =head2 detach_xy $layer->detach_xy( $x, $y ); C<detach_xy> detaches the previously attached layer to the given coords. The upper left corner of this layer will be at C<$x> and C<$y>. =head2 foreground $layer->foreground; This method moves the given layer to the foreground so that it is blitted on top of the other layers. =head1 BUGS Report at sdlperl.ath.cx =head1 SUPPORT #sdl irc.perl.org =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =head1 SEE ALSO perl(1), SDL(2). =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/LayerManager.pod������������������������������������������������������������000444��000765��000024�� 10773�11760240072� 20034� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::LayerManager - Extension for managing layers in a 2D world =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::Layer; use SDLx::LayerManager; use SDL::Image; use SDL::Surface; use SDL::Video; # creating layers my $layer1 = SDLx::Layer->new( SDL::Image::load('image1.png'), {userdata => '7'} ); my $layer2 = SDLx::Layer->new( SDL::Image::load('image2.png'), 100, 200, {userdata => '42'} ); # creating the manager that holds the layers my $layermanager = SDLx::LayerManager->new(); $layermanager->add( $layer1 ); $layermanager->add( $layer2 ); my $display = # create your video surface here $layermanager->blit( $display ); # accessing the layer at point(x,y) print( $layermanager->by_position( 150, 200 )->data->{userdata} ); # should print '42' =head1 DESCRIPTION SDLx::LayerManager is a package to handle a bunch of layers. A layer (see SDLx::Layer) is an SDL::Surface, the position of the surface on screen and some additional information. The layermanager gives you the opportunity to obtain the layer at a given point on screen and get the layers that are ahead or behind a layer. You will even be able to attach one or more layers to the mouse, e.g. for simulation some drag&drop functionality. =head1 METHODS =head2 new my $layermanager = SDLx::LayerManager->new(); This creates your layermanager object. It doesn't take any parameters. =head2 add $layermanager->add( $layer ); $layermanager->add( SDLx::Layer->new( $surface, $x, $y, $options ) ); Call C<add> to push an SDLx::Layer object to the layermanager. =head2 layers my @layers = @{ $layermanager->layers }; my $first_layer = $layermanager->layers->[0]; The method C<layers> returns all layers that were added before. =head2 layer my $layer = $layermanager->layer( $index ); To obtain only one layer at index C<$index> use this function. C<$index> ranges from C<0> to C<length - 1>. =head2 length my $length = $layermanager->length(); This method returns the count of the added layers. =head2 blit $layermanager->blit( $surface ); This method blits all layers to the surface (e.g. your video surface). =head2 by_position my $layer = $layermanager->by_position( $x, $y ); C<by_position> returns the C<SDLx::Layer> object at point C<$x $y>, which is not fully transparent at this pixel. =head2 ahead my @layers = @{ $layermanager->ahead( $index ) }; This method returns all layers that are ahead of the given layer indicated by C<$index>. Ahead means that a layer has a higher z-index and is blitted over the given layer. B<Note>: This method doesn't check for transparency. This will change in future versions. =head2 behind my @layers = @{ $layermanager->behind( $index ) }; This method returns all layers that are behind of the given layer indicated by C<$index>. Behind means that a layer has a lower z-index and is blitted before the given layer. B<Note>: This method doesn't check for transparency. This will change in future versions. =head2 attach $layermanager->attach( $layer, $x, $y ); $layermanager->attach( @layers, $x, $y ); This function makes the given layer(s) sticky to the mouse. If you move the mouse the layer(s) will follow. The layermanager blits these layers at last, so they will appear on top of all layers. C<$x> and C<$y> should be set to the coords of the mouse, e.g. the coords of the mouse click. If you omit C<$x> and C<$y> the layermanager obtains them via SDL::Events::get_mouse_state. B<Note>: The z-index is not changed for the given layers. =head2 detach_xy $layermanager->detach_xy( $x, $y ); C<detach_xy> detaches the previously attached layers to the given coords. The upper left corner of the backmost layer will be at C<$x> and C<$y>. The other layers are positioned relative to the backmost layer just like before. =head2 detach_back $layermanager->detach_back( ); C<detach_back> detaches the previously attached layers back to the position where they were attached. =head2 foreground $layermanager->foreground( $layer ); $layermanager->foreground( @layers ); This method moves the given layer(s) to the foreground so that they are blitted on top of the other layers. =head1 BUGS Report at sdlperl.ath.cx =head1 SUPPORT #sdl irc.perl.org =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =head1 SEE ALSO perl(1), SDL(2). =cut �����SDL-2.540/lib/pods/SDLx/Music.pod�������������������������������������������������������������������000444��000765��000024�� 23700�11760240073� 16540� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Music - A powerful, convenient interface to C<SDL::Mixer::Music> =head1 CATEGORY Extension =head1 SYNOPSIS use SDL; use SDLx::Music; my $music = SDLx::Music->new; #define music data with just a name and file path $music->data( fast => 'music/fast.ogg', slow => 'music/slow.ogg', magical => 'music/magic/cake.ogg', ); #define more the long way with a parameter hash $music->data( squelch => { file => 'music/squelch.ogg', loops => 3, fade_in => 0.5, volume => 72, } splurge => { file => 'music/splurge.ogg', finished => sub { print 'Splurged!' }, }, ); #instead, do it the short way with the help of defaults #clobber everything $music->clear; #specify the class-wide default for file extension SDLx::Music->default->ext('.ogg'); #specify the object-wide default for file directory $music->default->dir('music/'); #redefine squelch and splurge $music->data( squelch => { #file defaults to the data name, so the path becomes #'music/squelch.ogg', which is what we wanted loops => 3, fade_in => 0.5, volume => 72, } splurge => { finished => sub { print 'Splurged!' }, }, ); #and we can redefine the others like this $music->data_for( 'fast', 'slow', )->data( magical => 'magic/cake', ); #get to that named data my $splurge = $music->data('splurge'); #and add to/modify it without clobbering existing data $splurge ->volume(55) ->file('data/' . $splurge->file) ; #play it once, fading in for 2 seconds $music->play($splurge, loops => 1, fade_in => 2); #(it will be loaded automatically and played with its specified params) sleep 5; #pause it $music->pause if $music->playing; #load everything else $music->load; #resume playing it at a lower volume $music->volume(44); $music->play; #get the names for all music my @names = keys %{ $music->data }; for my $name (@names) { #play it in an infinite loop $music->play($name, loops => 0); warn "Cake!" if $music->playing eq "magical"; sleep 10; } #fade out the last song $music->fade_out(5); sleep 4; die "CAKE!" if $music->fading->name eq "magical"; sleep 1; =head1 DESCRIPTION This class provides a powerful and convenient interface to L<SDL::Mixer::Music>. The main goal was to make music code neater and clearer. Among the things that help this, this class provides class-wide and object-wide defaults and it automatically shares duplicate use of the same files. The following document is intended for reference. For a more beginner-friendly description of this class, see chapter X of the SDL Perl Manual (when it is written). B<Please note:> do not mix use of this class with L<SDL::Mixer::Music> if you want everything to work right. =head1 METHODS =head2 new SDLx::Music->new; #Option arguments showing the default parameters SDLx::Music->new( freq => 44100, format => SDL::Audio::AUDIO_S16SYS, channels => 2, chunksize => 4096); Creates the new music object. Inits audio with a call to L<SDLx::Mixer::init|SDLx::Mixer/init>, if it isn't already (if you want more precise control over what is initialized, make sure you call L<SDLx::Mixer::init|SDLx::Mixer/init> before you call this method). Creates an empty default data object for object-wide defaults. If arguments are supplied, calls L</data> with them to set up any initial data objects. Returns the new music object. =head2 data $music->data; $music->data( $name ); $music->data( $data ); $music->data( %args ); With no arguments: returns a reference to the data hash. This hash has data names as keys and the associated data objects as values. With a name: creates the data name if it doesn't already exist. Does this with a call to L<SDLx::Music::Data->new|SDLx::Music::Data/new> with C<name => $name> and puts that new object in the data hash under the key of C<$name>. Returns the data object for that name. With a hash of arguments: for each pair, and returns a L<SDLx::Music::Data>. Returns C<$music>. =head2 data_for $music->data_for( @names_or_data_objects ); Calls L</data> repeatedly, passing it one element of the list at a time, to initialise multiple empty names and/or add data objects. Returns C<$music>. =head2 has_data $music->has_data; $music->has_data( $name ); $music->has_data( $data ); Without arguments: returns how many data objects the class has. With a name: returns the data object for C<$name>. If there is no data object for C<$name> it is not created and undef is returned instead. With a data object: does a (slowish) reverse of the data hash to see if the data object belongs to C<$music>. Returns it or undef. =head2 default $music->default; SDLx::Music->default; Returns the default data object belonging to C<$music> (created in L</new>), or to the class. See L<SDLx::Music::Data> for information on how defaults work. =head2 load $music->load; $music->load( @names_or_data_objects ); SDLx::Music->load( @data_objects ); Without arguments: for every data object belonging to C<$music>, if the data object doesn't already have a L<loaded|SDLx::Music::Data/loaded> file, loads the file named by L<dir|SDLx::Music::Data/dir>, L<file|SDLx::Music::Data/file> and L<ext|SDLx::Music::Data/ext> if it hasn't been loaded already. Sets the data object's L<loaded|SDLx::Music::Data/loaded> parameter to this. Two or more objects that use the same file will use the same loaded file. Reference counting is respected, so if two data objects use the same loaded file it will be removed from memory only after both are destroyed. Returns <$music>. With arguments: does the same, but only for the names or data objects in the list. If there isn't a data object for any name, it will be created. =head2 unload $music->unload; $music->unload( @names_or_data_objects ); SDLx::Music->unload( @data_objects ); Without arguments: clears the L<loaded|SDLx::Music::Data/loaded> parameter for all of the data objects in C<$music>. The loaded file is removed from memory if it loses its last reference to it. Returns <$music>. With arguments: does the same, but only for the names or data objects in the list. Doesn't create a data object for a name that doesn't exist. =head2 clear $music->clear; $music->clear( @names ); Without arguments: empties C<$music>'s data hash of all of its objects. The objects will be destroyed only if the last reference to them is removed, and no parameters will be cleared if this is not the case. Returns C<$music>. With arguments: does the same, but only deletes the values of the data hash for the names in the list. =head2 real_clear $music->real_clear; $music->real_clear( @names_or_data_objects ); SDLx::Music->real_clear( @data_objects ); The full, brute force version of L</clear>. Without arguments: empties out the parameters of every data object in C<$music> (including L</unload>ing them) and then removes them from the data hash. This may not remove the objects from memory if there are still remaining references to them, but it is the closest thing to it. Returns C<$music>. With arguments: does the same, but only clears out the names or data objects in the list. =head2 play $music_or_class->play; $music->play( $name, $params ); $music_or_class->play( $data, %params ); Without arguments: resumes any paused music. Returns the object or class. With arguments: plays the sound found in C<$music>'s C<$name>, or in C<$data> (depending on which is specified). L</load>s it if it needs to be loaded (which in turn creates the name if it needs to be created). The C<%params> are all optional and, if defined, are used instead of the values returned by the data object's parameter methods. The accepted parameters here are: =over =item L<loops|SDLx::Music::Data/loops> Plays the music file C<loops> times. If C<loops> is 0, loops it infinitely. =item L<fade_in|SDLx::Music::Data/fade_in> Fades the music in for its first C<fade_in> milliseconds, if C<fade_in> is defined. =item L<vol|SDLx::Music::Data/vol> Sets the music volume to C<vol>. =item L<vol_portion|SDLx::Music::Data/vol_portion> Multiplies the C<vol> by C<vol_portion> (values from 0 to 1 are encouraged) before setting the volume. =item L<pos|SDLx::Music::Data/pos> Sets the music position to C<pos> if C<pos> is defined. =back Returns the object or class. =head2 pause $music_or_class->pause; Pauses any playing music. Returns the object or class. =head2 stop $music_or_class->stop; Stops any playing music. Returns the object or class. =head2 last_played my $last_played = $music_or_class->last_played; Returns the data object that was L</play>ed last. =head2 playing my $playing = $music->playing; If there is something playing, returns the data object that was L</play>ed last. Otherwise, returns undef. =head2 paused If there is something paused, returns the data object that was L</play>ed last. Otherwise, returns undef. =head2 fading If there is something fading, returns the data object that was L</play>ed last. Otherwise, returns undef. =head2 volume my $volume = $music_or_class->volume; $music_or_class->volume( $volume ); Without arguments: returns the current music volume With arguments: Sets the music volume to C<$volume>. Returns the object or class. =head2 fade_out $music_or_class->fade_out( $fade_out ); Fades the music out for its next C<fade_in> milliseconds. Returns the object or class. =head2 rewind $music_or_class->rewind; Rewinds the music to its start. Returns the object or class. =head2 pos $music_or_class->pos( $pos ); Sets the music position to C<$pos> milliseconds. It does different things for different file types, so see L<SDL::Mixer::Music::set_music_position|SDL::Mixer::Music/set_music_position> for details. Note that this method divides C<$pos> by 1000 to pass it to that function, which uses seconds. Returns the object or class. =head1 SEE ALSO L<SDLx::Music::Data> L<SDLx::Mixer> L<SDL::Mixer::Music> L<SDL::Mixer> =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT & LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ����������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Rect.pod��������������������������������������������������������������������000444��000765��000024�� 17422�11760240072� 16360� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Rect - SDL extension for storing and manipulating rectangular coordinates =head1 CATEGORY Extension =head1 SYNOPSIS SDLx::Rect works as a SDL::Rect in the lower layer (SDL::*) but provides more methods to users. use SDLx::Rect; #instead of SDL::Rect my $rect = SDLx::Rect->new( $x, $y, $w, $h); #same as SDL::Rect ... SDL::Video::fill_rect( .. , $rect, ...); # use like SDL::Rect =head1 DESCRIPTION C<< SDLx::Rect >> object are used to store and manipulate rectangular areas. Rect objects are created from a combination of left (or x), top (or y), width (or w) and height (or h) values, just like raw C<< SDL::Rect objects >>. All C<< SDLx::Rect >> methods that change either position or size of a Rect return B<a new copy> of the Rect with the affected changes. The original Rect is B<not> modified. If you wish to modify the current Rect object, you can use the equivalent "in-place" methods that do not return but instead affects the original Rect. These "in-place" methods are denoted with the "ip" suffix. Note that changing a Rect's attribute is I<always> an in-place operation. =head2 ATTRIBUTES All Rect attributes are accessors, meaning you can get them by name, and set them by passing a value: $rect->left(15); $rect->left; # 15 The Rect object has several attributes which can be used to resize, move and align the Rect. =over 4 =item * width, w - gets/sets object's width =item * height, h - gets/sets object's height =item * left, x - moves the object left position to match the given coordinate =item * top, y - moves the object top position to match the given coordinate =item * bottom - moves the object bottom position to match the given coordinate =item * right - moves the object right position to match the given coordinate =item * centerx - moves the object's horizontal center to match the given coordinate =item * centery - moves the object's vertical center to match the given coordinate =back Some of the attributes above can be fetched or set in pairs: $rect->topleft(10, 15); # top is now 10, left is now 15 my ($width, $height) = $rect->size; =over 4 =item * size - gets/sets object's size (width, height) =item * topleft - gets/sets object's top and left positions =item * midleft - gets/sets object's vertical center and left positions =item * bottomleft - gets/sets object's bottom and left positions =item * center - gets/sets object's center (horizontal(x), vertical(y)) =item * topright - gets/sets object's top and right positions =item * midright - gets/sets object's vertical center and right positions =item * bottomright - gets/sets object's bottom and right positions =item * midtop - gets/sets object's horizontal center and top positions =item * midbottom - gets/sets object's horizontal center and bottom positions =back =head2 METHODS Methods denoted as receiving Rect objects can receive either C<<SDLx::Rect>> or raw C<<SDL::Rect>> objects. =head3 new ($left, $top, $width, $height) Returns a new Rect object with the given coordinates. If any value is omitted (by passing undef), 0 is used instead. =head3 copy =head3 duplicate Returns a new Rect object having the same position and size as the original =head3 move(x, y) Returns a new Rect that is moved by the given offset. The x and y arguments can be any integer value, positive or negative. =head3 move_ip(x, y) Same as C<<move>> above, but moves the current Rect in place and returns nothing. =head3 inflate(x, y) Grows or shrinks the rectangle. Returns a new Rect with the size changed by the given offset. The rectangle remains centered around its current center. Negative values will return a shrunken rectangle instead. =head3 inflate_ip(x, y) Same as C<<inflate>> above, but grows/shrinks the current Rect in place and returns nothing. =head3 clamp($rect) Returns a new Rect moved to be completely inside the Rect object passed as an argument. If the current Rect is too large to fit inside the passed Rect, it is centered inside it, but its size is not changed. =head3 clamp_ip($rect) Same as C<<clamp>> above, but moves the current Rect in place and returns nothing. =head3 clip($rect) Returns a new Rect with the intersection between the two Rect objects, that is, returns a new Rect cropped to be completely inside the Rect object passed as an argument. If the two rectangles do not overlap to begin with, a Rect with 0 size is returned, in the original Rect's (x,y) coordinates. =head3 clip_ip($rect) Same as C<<clip>> above, but crops the current Rect in place and returns nothing. As the original method, the Rect becomes zero-sized if the two rectangles do not overlap to begin with, retaining its (x, y) coordinates. =head3 union($rect) Returns a new rectangle that completely covers the area of the current Rect and the one passed as an argument. There may be area inside the new Rect that is not covered by the originals. =head3 union_ip($rect) Same as C<<union>> above, but resizes the current Rect in place and returns nothing. =head3 unionall( [$rect1, $rect2, ...] ) Returns the union of one rectangle with a sequence of many rectangles, passed as an ARRAY REF. =head3 unionall_ip( [$rect1, $rect2, ...] ) Same as C<<unionall>> above, but resizes the current Rect in place and returns nothing. =head3 fit($rect) Returns a new Rect moved and resized to fit the Rect object passed as an argument. The aspect ratio of the original Rect is preserved, so the new rectangle may be smaller than the target in either width or height. =head3 fit_ip($rect) Same as C<<fit>> above, but moves/resizes the current Rect in place and returns nothing. =head3 normalize Corrects negative sizes, flipping width/height of the Rect if they have a negative size. No repositioning is made so the rectangle will remain in the same place, but the negative sides will be swapped. This method returns nothing. =head3 contains($rect) Returns true (non-zero) when the argument is completely inside the Rect. Otherwise returns undef. =head3 collidepoint(x, y) Returns true (non-zero) if the given point is inside the Rect, otherwise returns undef. A point along the right or bottom edge is not considered to be inside the rectangle. =head3 colliderect($rect) Returns true (non-zero) if any portion of either rectangles overlap (except for the top+bottom or left+right edges). =head3 collidelist( [$rect1, $rect2, ...] ) Test whether the rectangle collides with any in a sequence of rectangles, passed as an ARRAY REF. The index of the first collision found is returned. Returns undef if no collisions are found. =head3 collidelistall( [$rect1, $rect2, ...] ) Returns an ARRAY REF of all the indices that contain rectangles that collide with the Rect. If no intersecting rectangles are found, an empty list ref is returned. =head3 collidehash( {key1 => $rect1, key2 => $rect2, ...} ) Receives a HASH REF and returns the a (key, value) list with the key and value of the first hash item that collides with the Rect. If no collisions are found, returns (undef, undef). =head3 collidehashall( {key1 => $rect1, key2 => $rect2, ...} ) Returns a HASH REF of all the key and value pairs that intersect with the Rect. If no collisions are found an empty hash ref is returned. =head1 BUGS Please report any bugs or feature requests to the bug tracker. I will be notified, and then you'll automatically be notified of progress on your bug as we make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc SDLx::Rect =head1 AUTHORS See L<SDL/AUTHORS>. =head1 ACKNOWLEDGEMENTS Many thanks to the authors of pygame.rect, in which this particular module is heavily based. =head1 COPYRIGHT & LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO perl, L<SDL>, L<SDL::Rect>, L<SDL::Game> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/SFont.pod�������������������������������������������������������������������000444��000765��000024�� 2222�11760240072� 16464� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::SFont - Extension making fonts out of images and printing them =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::SFont; use SDLx::App; #Make a surface #Select a font my $d = SDLx::App->new( title => 'app', width => 200, height => 200, depth => 32 ); my $font = SDLx::SFont->new('t/font.png'); #print using $font SDLx::SFont::print_text( $d, 10, 10, 'Huh' ); my $font2 = SDLx::SFont->new('t/font2.png'); #print using font2 SDLx::SFont::print_text( $d, 10, 10, 'Huh' ); $font->use(); #print using $font SDLx::SFont::print_text( $d, 10, 10, 'Huh' ); #that is it folks .. =head1 DESCRIPTION a simpler print function for old SDL::SFont dependency on Frozen-Bubble and Pangzero. =head1 USAGE see synopsis =head1 BUGS You tell me! at sdlperl.ath.cx =head1 SUPPORT #sdl irc.perl.org =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =head1 SEE ALSO perl(1), SDL(2). =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Sound.pod�������������������������������������������������������������������000444��000765��000024�� 4755�11760240072� 16540� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Sound =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::Sound; my $snd = SDLx::Sound->new(); # loads and plays a single sound now $snd->play('myfile.wav'); # load a single file $snd->load('theSound.aif'); # plays it or all loaded files $snd->play(); # more sounds my %files = ( channel_01 => "/my_sound1.wav", channel_02 => "/my_sound2.ogg" ); # times sounds bangs my %times = ( channel_01 => 0, # start channel_01 => 1256, # milliseconds channel_02 => 2345 ); # Load files in channels for realtime play $snd->load(%files); # sets sound channel_01 loudness $snd->loud('channel_01', 80); # loud at 80% $snd->play(%times); # play loaded files at times $snd->play; # play again # plays sound channel_01 at 578 milliseconds from now $snd->play('channel_01', 578); # fades sound $snd->fade('channel_02', 2345, 3456, -20); # in a single act do the whole Sound my $snd = SDLx::Sound->new( files => ( channel_01 => "/my_sound1.wav", channel_02 => "/my_sound2.ogg" ), loud => ( channel_01 => 80, channel_02 => 75 ), times => ( channel_01 => 0, # start channel_01 => 1256, # milliseconds channel_02 => 2345 ), fade => ( channel_02 => [2345, 3456, -20] ) )->play(); =head1 DESCRIPTION You can think about the SDLx::Sound at 2 approaches. =over 4 =item * A simple sound or =item * The sound of your game or app. =back Your application will say what the best approach. In a taste that resembles to perl and to SDL, our SDLx:Sound hooks at SDL::Audio and SDL::Mixer with a graceful and simple interface that can offer to monks a modern perlish way to manage sounds. An SDLx::Sound object can load sounds from filesystem, play it, adjust this loudness level or stops the sound. Each sound will play in the next available channel, so it can be handled isolately. =head1 METHODS =head2 new Returns a new instance of SDLx::Sound =head2 load =head2 play $sdlx_sound->play('file.wav'); Play a file =head2 pause =head2 resume =head2 stop =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT & LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. �������������������SDL-2.540/lib/pods/SDLx/Sprite.pod������������������������������������������������������������������000444��000765��000024�� 17545�11760240073� 16740� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =head1 NAME SDLx::Sprite - interact with images quick and easily in SDL =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::Sprite; my $sprite = SDLx::Sprite->new; # loads image file into a SDL::Surface and # automatically sets a SDL::Rect inside with # that image's dimensions. $sprite->load('hero.png'); # set sprite image transparency $sprite->alpha_key( $color ); $sprite->alpha(0.5); # you can set and check the sprite position anytime say $sprite->x; # rect->x shortcut accessor $sprite->y(30); # rect->y shortcut accessor # read-only surface dimensions $sprite->w; # width $sprite->h; # height # you can also fetch the full rect # (think destination coordinates for ->draw) my $rect = $sprite->rect; # you can get the surface object too if you need it my $surface = $sprite->surface; # rotation() # if your SDL has gfx, rotation is also straightforward: $sprite->rotation( $degrees ); $sprite->rotation( $degrees, $smooth ); # add() / remove() NOT YET IMPLEMENTED # you can also attach other sprites to it $sprite->add( armor => $other_sprite ); $sprite->remove('armor'); # blits $sprite (and attached sprites) into $screen, # in the (x,y) coordinates of the sprite $sprite->draw($screen); # if you need to clip the original image/surface # before drawing it $sprite->clip->x(10); $sprite->clip->y(3); $sprite->clip->w(5); $sprite->clip->h(5); # ...or all at once: $sprite->clip($x,$y,$w,$h); # spawning can include almost all of the above: my $sprite = SDLx::Sprite->new( image => 'hero.png', # or surface => SDL::Surface rect => SDL::Rect, # or x => $x, y => $y clip => SDL::Rect, alpha_key => SDL::Color, # or [$r, $g, $b] alpha => 1, rotation => 45, # degrees ); =head1 DESCRIPTION SDLx::Sprite is a SDL::Surface on steroids! It let's you quickly load, setup and interact with images in your SDL application, abstracting all the drudge code and letting you concentrate on your app's logic instead. This module automatically creates and holds SDL::Rect objects for the source and destination surfaces, and provides several surface manipulation options like alpha blending and rotation. =head1 WARNING! VOLATILE CODE AHEAD This is a new module and the API is subject to change without notice. If you care, please join the discussion on the #sdl IRC channel in I<irc.perl.org>. All thoughts on further improving the API are welcome. You have been warned :) =head1 METHODS =head2 new =head2 new( %options ) Creates a new SDLx::Sprite object. No option is mandatory. Available options are: =over 4 =item * image => $filename Uses $filename as source image for the Sprite's surface. See supported formats in L<< SDL::Image >>. This option B<cannot> be used together with the 'surface' option (see below). =item * surface => SDL::Surface Uses the provided L<< SDL::Surface >> object as source surface for this sprite, instead of creating one automatically. This option B<cannot> be used together with the 'image' option (see above). =item * clip => SDL::Rect Uses the provided L<< SDL::Rect >> object as clipping rect for the source surface. This means the object will only blit that particular area from the surface. =item * rect => SDL::Rect Uses the provided L<< SDL::Rect >> object as destination coordinates to whatever surface you call draw() on. You B<cannot> use this option together with 'x' and 'y' (see below) =item * x => $x Uses $x as the x-axis (left-to-right, 0 being leftmost) positioning of the Sprite into the destination you call draw() upon. This option B<cannot> be used together with 'rect' (see above). =item * y => $y Uses $y as the y-axis (top-to-bottom, 0 being topmost) positioning of the Sprite into the destination you call draw() upon. This option B<cannot> be used together with 'rect' (see above). =item * draw_xy => $surface, $x, $y A shortcut to draw at coordinates quickly. Calls x() , y() and draw() =item * rotation => $degrees, [$smooth] Uses $degrees as the angle to rotate the surface to, in degrees (0..360, remember? :). This option is only available if your compiled SDL library has support for GFX (see L<< Alien::SDL >> for details). if $smooth is set the sprite is antialiased. This may mess with your alpha_key. =item * alpha_key => SDL::Color MUST CALL L<SDL::Video::get_video_mode|SDL::Video/"get_video_mode"> prior to this. Uses the provided L<< SDL::Color >> object (or an array reference with red, green and blue values) as the color to be turned into transparent (see 'alpha' below). =item * alpha => $percentage or $integer Uses $percentage (0 <-> 1 ) or $integer ( 0x01 - 0xff) as how much transparency to add to the surface. If you use this, it is mandatory that you also provide the alpha_key (see above). =back =head2 load( $filename ) Loads the given image file into the object's internal surface. A new surface is B<always> created, so whatever you had on the previous surface will be lost. Croaks on errors such as no support built for the image or a file reading error (the error message is SDL::get_error and should give more details). Returns the own Sprite object, to allow method chaining. =head2 surface() =head2 surface( SDL::Surface ) Returns the object's internal surface, or undef if there is none. If you pass a SDL::Surface to it, it will overwrite the original surface with it, while returning the B<old> (previous) surface. Note that, as such, it will return C<undef> if you use it without having previously loaded either an image or a previous surface. It will Carp::confess if you pass anything that's not an SDL::Surface object (or SDL::Surface subclassed objects). =head2 rect() =head2 rect( SDL::Rect ) Returns the destination L<< SDL::Rect >> object used when you call draw(). If you haven't explicitly set it, it will be a SDL::Rect with the same dimensions as the object's internal surface. If no surface was set yet, it will be an empty SDL::Rect (dimensions 0,0,0,0). If you pass it a L<< SDL::Rect >> object, it will set rect() to that object before returning, but it will B<overwrite> any width and height values, as those are read only and set to the size of the underlying surface. If you want to clip the source surface, set clip() instead. =head2 clip() =head2 clip( SDL::Rect ) Returns the source L<< SDL::Rect >> object used when you call draw(). You can use this method to choose only a small subset of the object's internal surface to be used on calls to draw(). If you haven't explicitly set it, it will be a SDL::Rect with the same dimensions as the object's internal surface. If no surface was set yet, it will be an empty SDL::Rect (dimensions 0,0,0,0). If you pass it a L<< SDL::Rect >> object, it will set clip() to that object before returning. =head2 x() =head2 x( $int ) Gets/sets the x-axis (left-to-right, 0 being leftmost) positioning of the Sprite into the destination you call draw() upon. It is a shortcut to C<< $sprite->rect->x >>. =head2 y() =head2 y( $int ) Gets/sets the y-axis (top-to-bottom, 0 being topmost) positioning of the Sprite into the destination you call draw() upon. It is a shortcut to C<< $sprite->rect->y >>. =head2 w() Returns the Sprite surface's width. This method is read-only. It is a shortcut to C<< $sprite->surface->w >>. =head2 h() Returns the Sprite surface's height. This method is read-only. It is a shortcut to C<< $sprite->surface->h >>. =head2 draw( SDL::Surface ) Draws the Sprite on the provided SDL::Surface object - usually the screen - using the blit_surface SDL function, using the source rect from clip() and the destination rect (position) from rect(). Returns the own Sprite object, to allow method chaining. =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<< SDL::Surface >>, L<< SDL >> �����������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Surface.pod�����������������������������������������������������������������000444��000765��000024�� 20606�11760240073� 17052� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLx::Surface - Graphic surface matrix extension =head1 CATEGORY Extension =head1 SYNOPSIS use SDL; use SDL::Video; use SDLx::Surface; # Create the main surface (display) SDL::init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE); my $surf_matrix = SDLx::Surface->new( surface => $display); $surf_matrix->[10][10] = 0xFFFF; #for 16bpp write white at x = 10 and y=10 $surf_matrix->surface( $new_surface ); my $orig_surface = $surf_matrix->surface(); =head1 DESCRIPTION An C<SDLx::Surface> allows matrix read and write to a surface, safely. =head1 CONSTRUCTOR =head2 new Takes a SDL::Surface in hash format. If a surface is passed to 'surface =>' that is loaded. Otherwise you can define at least a width and a height. SDLx::Surface->new( surface => $surface) # The $surface is loaded SDLx::Surface->new( width=> 400, height=>200) # A SDL::Surface->new( SDL_ANYFORMAT, 400, 200, 32) is loaded SDLx::Surface->new( width=> 400, height=>200, flags=> SDL_SWSURFACE, depth=>24 ) # A SDL::Surface->new( SDL_SWSURFACE, 400, 200, 24) is loaded SDLx::Surface->new( width=> 400, height=>200, flags=> SDL_SWSURFACE, depth=>32, greenmask=>0xFF000000 ) # A SDL::Surface->new( SDL_ANYFORMAT, 400, 200, 32, 0, 0xFF000000,0, 0, 0 ) is loaded SDLx::Surface->new( w => 1, h => 1, color => 0xFF0000FF ) # A SDL::Surface->new( SDL_ANYFORMAT, 1, 1, 32, 0, 0, 0, 0 ) is loaded all pixels are colored with color (red) =head2 display If L<SDLx::App::new|SDLx::App/"new"> or L<SDL::Video::get_video_mode|SDL::Video/"get_video_mode"> called before then: my $appx = SDLx::Surface::display(); gets the display if it is already made. Passed options are ignored. Otherwise you can quickly make the display with : SDLx::Surface::display( width => 20, height => 20) #depth => 32 and SDL_ANYFORMAT used or you can also pass flags and depth. SDLx::Surface::display( width => 20, height => 20, flags=> SDL_HWSURFACE, depth=>24) You can also use the keys C<w> and C<h> in place of C<width> and C<height>, as with C<new>. Get or create the main display surface and attach to a C<SDLx::Surface>. =head2 duplicate Does a attributes only, no pixel, copy of another SDLx::Surface. =head1 ATTRIBUTES =head2 surface If a SDL::Surface is passed it is attached to the matrix. Returns the SDL::Surface that is currently attached to this SDLx::Surface =head2 w, h, format, pitch, flags Returns the inner SDL::Surface's respective attribute. See C<SDL::Surface>. =head2 clip_rect Sets the passed C<SDL::Rect> as the new clip_rect for the surface. Returns the SDL::Surface's clip_rect. See L<SDL::Video::get_clip_rect|SDL::Video/"get_clip_rect"> and L<SDL::Video::set_clip_rect|SDL::Video/"set_clip_rect">. =head1 EXTENSIONS =head2 load my $surface = SDLx::Surface->load( 'hero.png' ); my $surface = SDLx::Surface->load( 'hero.dat', 'bmp' ); Loads the given image file into a I<new> SDLx::Surface surface. A new surface is B<always> created, even if you call it from an already crafted object. Croaks on errors such as no support built for that image extension or a file reading error (the error message is SDL::get_error and should give more details). Note that load() will automatically figure out the extension based on the filename you provide. If you wish to force an extension for whatever reason (like having a filename with a different extension or none at all), you can optionally pass the file type as a second parameter. Case is not relevant. If you don't have SDL_image in your build, only bitmap images will be supported. Returns the new Surface. =head2 blit $sdlx_surface->blit( $dest, $src_rect, $dest_rect ); Blits C<SDLx::Surface> onto $dest surface. $src_rect or $dest_rect are optional. If $src_rect is omitted, it will be the size of the entire surface. If $dest_rect is omitted, it will be blitted at C<(0, 0)>. $src_rect or $dest_rect can be array refs or C<SDL::Rect>. $dest can be C<SDLx::Surface> or C<SDL::Surface>. Note that the final blit rectangle is stored in $dest_rect after clipping is performed. Returns $self =head2 blit_by $sdlx_surface->blit_by( $src, $src_rect, $dest_rect ); Does the same as C<blit> but the C<SDLx::Surface> is the one being blitted to. This is useful when the surface you have isn't an C<SDLx::Surface>, but the surface it is being blitted to is. Note that the final blit rectangle is stored in $dest_rect after clipping is performed. =head2 flip Applies L<SDL::Video::flip|SDL::Video/"flip"> to the Surface, with error checking. Returns $self =head2 update $sdlx_surface->update(); # whole surface is updated $sdlx_surface->update([0,0,1,1]); # only that area (0,0,1,1) is updated $sdlx_surface->update( [ SDL::Rect->new(0,0,1,2) ... ]); # defined rects are updated Applies L<SDL::Video::update_rect|SDL::Video/"update_rect"> for no rect or 1 array ref. Applies L<SDL::Video::update_rects|SDL::Video/"update_rects"> for array of L<SDL::Rect>s. Returns $self =head2 draw_rect $sdlx_surface->draw_rect( [$x,$y,$w,$h], 0xFFFF00FF ); $sdlx_surface->draw_rect( SDL::Rect->new($x,$y,$w,$h), 0xFFFF00FF ); Draws a rect on the surface with the given color. If the rect is omitted, the colored rect will be drawn to the entire surface. Returns $self =head2 draw_line $sdlx_surface->draw_line( [$x1, $y1], [$x2, $y2], $color, $antialias); # $color is a number $sdlx_surface->draw_line( [$x1, $y1], [$x2, $y2], \@color, $antialias); # Draws a line on the surface. Antialias is turned on if $antialias is true. Returns $self =head2 draw_circle $sdlx_surface->draw_circle( [$x1, $y1], $radius, \@color, $antialias ); Draws an unfilled circle at C<($x1,$y1)> of size $radius and $color. Antialias is turned on if $antialias is true. Returns $self =head2 draw_circle_filled $sdlx_surface->draw_circle_filled( [$x1, $y1], $radius, \@color ); Draws an B<filled> circle at C<($x1,$y1)> of size $radius and $color. Antialias is turned on automatically. Returns $self =head2 draw_trigon $sdlx_surface->draw_trigon( [ [$x1, $y1], [$x2, $y2], [$x3, y3] ], \@color, $antialias ); Draws an unfilled trigon (triangle) with vertices C<($x1,$y1)>, C<($x2,$y2)>, C<($x3,$y3)> and $color. Antialias is turned on if $antialias is true. Returns $self =head2 draw_trigon_filled $sdlx_surface->draw_trigon_filled( [ [$x1, $y1], [$x2, $y2], [$x3, y3] ], \@color ); Draws an B<filled> trigon (triangle) with vertices C<($x1,$y1)>, C<($x2,$y2)>, C<($x3,$y3)> and $color. Antialias is turned on automatically. Returns $self =head2 draw_polygon $sdlx_surface->draw_polygon( [ [$x1, $y1], [$x2, $y2], [$x3, y3], ... ], \@color, $antialias ); Draws an unfilled polygon with vertices C<($xN,$yN)> and $color. Antialias is turned on if $antialias is true. Returns $self =head2 draw_polygon_filled $sdlx_surface->draw_polygon_filled( [ [$x1, $y1], [$x2, $y2], [$x3, y3], ... ], \@color ); Draws an B<filled> polygon with vertices C<($xN,$yN)> and $color. Antialias is turned on automatically. Returns $self =head2 draw_arc $sdlx_surface->draw_arc( [ $x, $y ], $radius, $start, $end, $color ); Draws an arc around C<($x,$y)> with $radius, $start radius, $end radius and $color. Returns $self =head2 draw_ellipse $sdlx_surface->draw_ellipse( [ $x, $y ], $rx, $ry, $color ); Draws an unfilled ellipse centered at C<($x,$y)> with horizontal radius $rx, vertical radius $ry and $color. Antialias is turned on if $antialias is true. Returns $self =head2 draw_ellipse_filled $sdlx_surface->draw_ellipse_filled( [ $x, $y ], $rx, $ry, $color ); Draws an B<filled> ellipse centered at C<($x,$y)> with horizontal radius $rx, vertical radius $ry and $color. Antialias is turned on automatically. Returns $self =head2 draw_bezier $sdlx_surface->draw_bezier( [ [$x1, $y1], [$x2, $y2], [$x3, y3], ... ], $s, $color ); Draws a bezier curve of points C<($xN,$yN)> using $s steps for interpolation and $color. Antialias is turned on automatically. Returns $self =head2 draw_gfx_text Draw text using gfx (not pretty but fast) at give vector, color. $surf->draw_gfx_text( [0,0], 0xffffffff, "fooo"); $surf->draw_gfx_text( [10,10], [20,20,20,20], "fooo"); You can also set the gfx font but passing a hash reference as shown below. my $f = ''; open( my $FH, '<', 'test/data/5x7.fnt'); binmode ($FH); read($FH, $f, 4096); close ($FH); my $font = {data=>$f, cw => 5, ch => 7}; $surf->draw_gfx_text( [0,0], 0xffffffff, "fooo", $font ); Returns $self =head1 AUTHORS See L<SDL/AUTHORS>. ��������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Text.pod��������������������������������������������������������������������000444��000765��000024�� 20243�11760240072� 16402� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLx::Text - SDL extension for manipulating text =head1 CATEGORY Extension =head1 SYNOPSIS use SDL; use SDLx::App; use SDLx::Text; my $app = SDLx::App->new; my $message = SDLx::Text->new; $message->write_to( $app, "Hello, World!" ); $app->update; =head1 DESCRIPTION The standard SDL API for handling fonts and rendering text is full of quirks and and low-level functions scattered all over the place. This is a sugar layer meant to let you easily handle text in your SDL apps. =head1 CONSTRUCTION =head2 new =head2 new ( %attributes ) Instantiates a new SDLx::Text object. All attributes are optional: my $text = SDLx::Text->new( font => '/path/to/my/font.ttf', color => [255, 255, 255], # "white" size => 24, x => 0, y => 0, h_align => 'left', shadow => 1, bold => 1, text => 'All your base are belong to us.' ); Please check the accessors below for more information on each attribute. All values shown above are the B<default values>, except for "text", which defaults to C<undef>; and "font", which if not provided will load the C<Gentium Basic> free font (see "L</"COPYRIGHT & LICENSE">" for more information). =head1 ACCESSORS All accessors below can be used to get and set their respective attributes. For example: my $font_size = $obj->size; # gets the font size $obj->size( 42 ); # sets a new font size Unless otherwise noticed, all accessors return their current value, after being set. =head2 x Gets/sets the left (x) positioning of the text to be rendered, relative to whatever surface you are placing it into. Note that if you set the C<h_align> property to anything other than 'C<left>', the text might not start exactly where you set C<x> to be, but relative to that value. Default value is 0, meaning leftmost corner. =head2 y Gets/sets the top (y) positioning of the text to be rendered, relative to whatever surface you are placing it into. Default value is 0, meaning top. =head2 h_align Gets/sets the horizontal alignment of the text to be rendered relative to whatever surface you are placing it into. Available alignments are 'C<left>', 'C<right>' and 'C<center>'. Default is 'C<left>'. =head2 color Gets/sets the text color. The color is an array reference in C<[R, G, B]> or C<[R, G, B, A]> format. See L<SDL::Color> for more information on colors. =head2 size Gets/sets the font size. =head2 font Pass it a string containing the path to your desired font to use it. Fonts can be in TTF, OTF or FON formats. Generates an exception if the font cannot be loaded. Returns the L<SDL::TTF::Font> object representing the font. =head2 shadow Set this to true to create a nice 3D shadow effect on the rendered text. This is achieved by creating another version of the text below the original one, at a given offset. =head2 shadow_color Set the RGB color array for the shadow. Defaults to black ( C<[0,0,0]> ). =head2 shadow_offset Sets the offset in which to display the shadow. Defaults to 1, meaning 1 pixel below and 1 pixel to the right of the original text. =head2 Setting the Font Style The following accessors can be used to set a rendering file for the B<loaded> font. They will only work for the current font, so if you change fonts, make sure to apply your modifiers again. A single font can have more than one modifier applied to it, eg: my $text = SDLx::Text->new; $text->bold(1); $text->italic(1); Set them to a true value to enable, false to disable. =head3 normal Sets the font style to normal. =head3 bold Sets the font style to bold. =head3 italic Sets the font style to italic. =head3 underline Sets the font style to underline. B<Note>: Due to libSDL design and depending on the chosen font, sometimes the underline may be outside of the generated text surface, and thus not visible when blitted to the screen. In these cases, you should probably turn off the option and draw your own underlines in the target surface. =head3 strikethrough Sets the font style to strikethrough. B<Note>: Due to libSDL design and depending on the chosen font, sometimes the strikethrough may be outside of the generated text surface, and thus not visible when blitted to the screen. In these cases, you should probably turn off the option and draw your own strikethroughs in the target surface. =head1 METHODS =head2 text( $some_text ) Sets the text to be displayed by the SDLx::Text object. If you call it without any arguments, you'll get the current text string: my $string = $obj->text(); Otherwise, C<text()> will return the SDLx::Text object itself, so you can easily chain this method around. my $obj = SDLx::Text->new->text( "Hello, Dave." ); Note that this will happen even if it's an empty string, or undef. B<You pass an argument, you get an object>. Text will always be rendered as utf8, so you can pass any string containing regular ASCII or valid utf8 characters. =head2 write_to( $target_surface ) =head2 write_to( $target_surface, "text to write" ) Renders the text onto C<$target_surface> (usually the app itself). The text string may be passed as a parameter, otherwise it will use whatever is already set (via the C<new()> or C<text()> methods. =head2 write_xy( $target_surface, $x, $y ) =head2 write_xy( $target_surface, $x, $y, $text ) Same as C<write_to()>, but will render the text using the given top (y) and left (x) coordinates. =head1 READ-ONLY ATTRIBUTES As you set or update your text, font or size, SDLx::Text updates the surface that represents it. You don't usually need to worry about this at all, and we strongly recommend you use the L<"/METHODS"> above to render your text. If however you need to know how tall or wide the rendered text will be (in pixels), or if you want to retrieve the surface so you can manipulate and render it yourself, you can use the following getters: =head2 surface Returns the underlying surface representing the text itself. You probably don't need this, unless you're doing something really funky. =head2 w Shortcut to see the width of the underlying surface representing the text. =head2 h Shortcut to see the height of the underlying surface representing the text. =head2 font_filename Returns the file name for the loaded font. Use C<font()> to get the font object itself, or to set a new font. =head1 ERRORS AND DIAGNOSTICS =over 4 =item * "SDL_ttf support has not been compiled" In order to render text in SDL you must have enabled SDL_ttf while building L<Alien::SDL>. =item * "Cannot init TTF: <some error>" In order to load fonts and render text, we need to initialize L<SDL::TTF> - that is, in case it hasn't been initialized already. The error above will appear in the rare event of any problem during initialization. =item * "Error opening font: <some error>" The font file you set either via C<< font( 'font.ttf' ) >> or during construction could not be loaded. The file may not exist in the given path, have wrong permissions, be corrupted, or of an unsupported format. Please refer the C<< <some error> >> message in the message itself for further information. =item * "TTF rendering error: <some error>" When you call C<text()>, it renders the provided string onto an internal L<SDL::Surface> object. If there was any problem rendering the text, this message will appear. =back =head1 BUGS Please report any bugs or feature requests to the bug tracker. We will be notified, and then you'll automatically be notified of progress on your bug as we make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc SDLx::Text =head1 AUTHORS See L<SDL/AUTHORS>. =head1 COPYRIGHT & LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This module ships with a default font, "I<Gentium Basic>", Copyright 2003-2008 SIL International (http://sil.org), released under the SIL Open Font License 1.1 (OFL). The font is available for use in free and commercial products, with some minor restrictions. Please read the C<OFL.txt> and C<OFL-FAQ.txt> for further information. =head1 SEE ALSO L<SDL>, L<SDLx::App>, L<SDL::TTF> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Controller������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 16720� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Controller/Interface.pod����������������������������������������������������000444��000765��000024�� 5214�11760240073� 21463� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLx::Controller::Interface - Interface Physics and Rendering with the Controller with callbacks =head1 CATEGORY Extension, Controller =head1 SYNOPSIS use SDL; use SDLx::App; use SDLx::Controller::Interface; #SDLx::App is a controller my $app = SDLx::App->new(width => 200, height => 200 ); my $ball = SDLx::Controller::Interface->new( x=> 10, y => 50, v_x => 10, v_y=> 20 ); #Set the initial state of the ball's physics, this is optional $ball->set_acceleration( sub { my ($time, $current_state) = @_; return( 0, -10, 0 ); # Return accelerations (x,y,rotation) } ); my $ball_render = sub { my $state = shift; $app->draw_rect( undef, 0 ); $app->draw_rect( [$state->x, $state->y, 10,10], [255,0,0,255] ); $app->update(); }; $ball->attach( $app, $ball_render, @params ); $app->run(); $ball->detach(); #can be called at anytime (for example when ball 'dies') =head1 DESCRIPTION =head1 METHODS =head2 set_acceleration Allows you to set the acceleration callback for defining the interface's behaviour in terms of x,y and rotation. $interface->set_acceleration ( sub { my ($time, $current_state) = @_; return ( $accel_x, $accel_y, $torque ); } ); These accelerations are arbitrary and can be set to any frame of reference. Your render callback will handle how to interpret it. The callback will receive the time and the current state as a C<SDLx::Controller::State> element. =head2 attach Attaches the interface to a controller with a render callback $interface->attach( $controller, $render, @params ); Where $render is a callback that receives the interpolated C<SDLx::Controller::State>. my $render = sub { my ($state, @params) = @_; # draw the current $state. }; The @params are any extra parameters you would like to pass to the $render callback. =head2 current my $current_state = $interface->current(); Returns the current state of the interface as a C<SDLx::Controller::State>. =head2 previous my $previous_state = $interface->previous(); Returns the previous state of the interface as a C<SDLx::Controller::State>. =head2 detach $interface->detach(); If $interface has been C<attach()>'ed to any controller it will be detached now. =head1 OTHER METHODS Don't use these unless you really really want to. =head2 acceleration Call the acceleration callback once. =head2 interpolate Interpolate the current state =head2 evaluate Evaluate the new current and previous state. =head2 update Update the states by integrating with time. =head1 AUTHORS See L<SDL/AUTHORS>. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Controller/State.pod��������������������������������������������������������000444��000765��000024�� 3010�11760240073� 20633� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������=pod =head1 NAME SDLx::Controller::State - the state of a SDLx::Controller::Interface =head1 CATEGORY Extension, Controller =head1 SYNOPSIS # you'll most likely get a State object from a SDLx::Controller::Interface # object. Just in case, here's how you would construct one by hand: my $state1 = SDLx::Controller::State->new; my $state2 = SDLx::Controller::State->new( $x, $y, $v_x, $v_y, $rotation, $ang_v ); # attributes are just simple accessors: $state->x(10); $state->x; # 10 # same goes for the rest: $state->y; $state->ang_v; # etc. =head1 DESCRIPTION A state object is a simple container for any given state inside a running L<SDLx::Controller::Interface> instance. =head1 METHODS =head2 new() =head2 new( $x, $y, $v_x, $v_y, $rotation, $ang_v ) Creates a new state container object. Can optionally set the initial value of all its attributes (see below). =head1 ACCESSORS =head2 x Accessor to get/set the x value, usually used to position the item or check for collisions. =head2 y Accessor to get/set the y value, usually used to position the item or check for collisions. =head2 v_x Accessor to get/set the x velocity of the instance, for moving objects dynamically. =head2 v_y Accessor to get/set the y velocity of the instance, for moving objects dynamically. =head2 rotation Accessor to get/set the rotation of the object, in degrees (0..360). =head2 ang_v Accessor to get/set the angular velocity, for rotating objects dynamically. =head2 AUTHORS See L<SDL/AUTHORS> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Sprite����������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 16042� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/pods/SDLx/Sprite/Animated.pod���������������������������������������������������������000444��000765��000024�� 21266�11760240072� 20454� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLx::Sprite::Animated - create animated SDL sprites easily! =head1 CATEGORY Extension =head1 SYNOPSIS use SDLx::Sprite::Animated; # simplest possible form, where 'hero.png' is an image containing # fixed-length sprites in sequence. It doesn't matter if they are # placed vertically or horizontally, as long as the the widest # side is a multiple of the (narrowest) other. The widget will # automatically divide it in the proper frames, provided there is # no slack space between each frame. my $animation = SDLx::Sprite::Animated->new->load('hero.png'); # that's it! Defaults are sane enough to DWIM in simple cases, # so you just have to call draw() on the right place. If you # need to setup your animation or have more control over it, # feel free to use the attributes and methods below. # these are the most useful methods to use in your game loop # (or wherever you want to manipulate the animation): $animation->next; $animation->previous; $animation->reset; $animation->current_frame; # current frame number $animation->current_loop; # current loop number # you can control positioning just like a regular SDLx::Sprite: $animation->rect $animation->x; $animation->y; # just like a regular Sprite, we fetch our source rect from ->clip, # updating it on each call to ->next (or ->previous, or ->reset). # If source rects for your animation are further apart (or less) # than the rect's width and height, you can adjust the animation # x/y offsets: $animation->step_x(15); $animation->step_y(30); $animation->draw($screen); # remember to do this! :) # we can also call ->next() automatically after each draw(): $animation->start; $animation->stop; # default is to go to the next frame at each draw(). If this is # too fast for you, change the attribute below: $animation->ticks_per_frame(10); # select type of animation loop when it reaches the last frame: $animation->type('circular'); # restarts loop at the beginning $animation->type('reverse'); # goes backwards $animation->max_loops(3); 0 or undef for infinite looping # as usual, you can setup most of the above during object spawning my $animation = SDLx::Sprite::Animated->new( image => 'hero.png', rect => SDL::Rect->new(...), step_x => 20, step_y => 0, ... ); =head1 DESCRIPTION An animation is a series of frames that are played in order. Frames are loaded from an image, usually referred to as a Sprite Sheet or Sprite Strip. This module let's you interact with such strips and create sprite animations just as easily as you would manipulate a regular SDLx::Sprite object. =head1 WARNING! VOLATILE CODE AHEAD This is a new module and the API is subject to change without notice. If you care, please join the discussion on the #sdl IRC channel in I<irc.perl.org>. All thoughts on further improving the API are welcome. You have been warned :) =head1 ATTRIBUTES AND METHODS SDLx::Sprite::Animated is a B<subclass> of L<< SDLx::Sprite >>, inheriting all its attributes and methods. Please refer to that module's documentation for information on those. The one difference in behavior is that, while a standard SDLx::Sprite uses C<< ->clip() >> to select the part of the surface to display, SDLx::Sprite::Animated treats C<< ->clip() >> as the B<initial> rect, from which to start the animation. The following attributes and methods are available: =head2 new =head2 new( %options ) Creates a new SDLx::Sprite::Animated object. No option is mandatory. It accepts all the options from a regular SDLx::Sprite object plus these: =over 4 =item * step_x => $integer Uses $integer as the number of pixels to move on the x-axis (left-to-right, 0 being no dislocation whatsoever, when the strip goes from top to bottom) to reach the next frame. =item * step_y => $integer Uses $integer as the number of pixels to move on the y-axis (top-to-bottom, 0 being no dislocation whatsoever, when the strip goes from left to right) to reach the next frame. =item * max_loops => $integer Uses $integer as the number of times to loop the animation (when it reaches the end of the strip). =item * ticks_per_frame => $integer Uses $integer to set how many calls to draw() must be issued before we go to the next frame during autoplay (i.e. between calls to start() and stop()). =item * type => $string Uses $string to set the type of animation loop when it reaches the last frame in the strip. See the type() method below for information on available looping types. =item * sequences => { $string => [ [ $x1, $y1 ], [ $x2, $y2 ], ... ], ... } Uses the supplied hashref to define named sequences of frames. =item * sequence => $string Uses $string to set the current sequence. =back =head2 step_x() =head2 step_x( $integer ) Uses $integer as the number of pixels to move on the x-axis (left-to-right, 0 being no dislocation whatsoever, when the strip goes from top to bottom) to reach the next frame. Defaults to the same width as the clip() rect. =head2 step_y() =head2 step_y( $integer ) Uses $integer as the number of pixels to move on the y-axis (top-to-bottom, 0 being no dislocation whatsoever, when the strip goes from left to right) to reach the next frame. Defaults to the same height as the clip() rect. =head2 max_loops() =head2 max_loops( $integer ) Uses $integer as the number of times to loop the animation (when it reaches the end of the strip). After that B<< all calls to previous() or next() will be no-ops >>. Set it to C<0> or C<undef> to allow infinite loops. Default is 0 (infinite). =head2 ticks_per_frame() =head2 ticks_per_frame( $integer ) Uses $integer to set how many calls to draw() must be issued before we go to the next frame during autoplay (i.e. between calls to start() and stop()). Default is just 1 tick per frame, so you might want to change this if it's too fast. =head2 type() =head2 type( $string ) Uses $string to set the type of animation loop when it reaches the last frame in the strip. Available looping types are: =over 4 =item * 'circular' Restarts loop at the beginning of the strip. If you have 4 frames, the flow will be 1-2-3-4-1-2-3-4-1-2-3-4-1-2-... up until the number of loops you set in the max_loops() attribute. =item * 'reverse' Loops back and forth on the strip. If you have 4 frames, the flow will be 1-2-3-4-3-2-1-2-3-4-3-2-... up until the number of loops you set in the max_loops() attribute. =back Case is irrelevant for type(), so for example 'Circular', 'CIRCULAR' and 'CiRcUlAr' are all accepted as 'circular'. The return value is guaranteed to be lowercase. Default value is 'circular'. =head2 set_sequences( $string => [ [ $x1, $y1 ], [ $x2, $y2 ], ... ], ... ) Uses the supplied hashref to define named sequences of frames. Replaces any previously defined sequences. =head2 sequence( $string ) Uses $string to set the current sequence. Goes to the first frame in the sequence and resets the loop counter. =head2 next() Goes to the next frame in the strip. Calling this method will also reset the tick counter used by ticks_per_frame(). If max_loops() has reached its limit, this will be a no-op. Returns the object, allowing method chaining. =head2 previous() Goes to the previous frame in the strip. Calling this method will also reset the tick counter used by ticks_per_frame(). If max_loops() has reached its limit, this will be a no-op. Returns the object, allowing method chaining. =head2 reset() Goes to the first frame in the strip, meaning whatever clip is set to. If max_loops() has reached its limit, this will be a no-op. Returns the object, allowing method chaining. =head2 current_frame() Returns the current frame number. Note that this is 1-based (first frame is 1, second is 2, etc). =head2 current_loop() Returns the loop counter, i.e. which run number is it at. This is also 1-based (first time is 1, second time is 2, etc). Note that we only keep track of the counter if max_loops() is set to a finite number. Otherwise, this will be a no-op. =head1 start() After you call this method, the object will issue a call to C<< ->next() >> automatically for you every time C<< ->draw() >> is called C<< ticks_per_frame() >> times. If you want to stop autoplay, see C<< stop() >> below. Default is off (no autoplay). =head1 stop() Stops autoplay. After you call this, the object will need you to call C<< ->previous() >> and C<< ->next() >> explicitly to change frames. To resume autoplay from wherever you are, use C<< start() >>. If you want to restart autoplay from the initial frame, just do: $sprite->reset->start; =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<< SDL::Surface >>, L<< SDL >> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL�����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13440� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Audio.pm��������������������������������������������������������������������������000444��000765��000024�� 1032�11760240072� 15167� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Audio; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Audio'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Audio; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/AudioCVT.pm�����������������������������������������������������������������������000444��000765��000024�� 1040�11760240072� 15543� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::AudioCVT; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Audio'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::AudioCVT; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/AudioSpec.pm����������������������������������������������������������������������000444��000765��000024�� 1042�11760240072� 16003� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::AudioSpec; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Audio'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::AudioSpec; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/CD.pm�����������������������������������������������������������������������������000444��000765��000024�� 1734�11760240073� 14426� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::CD; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::CDROM'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::CD; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::CDROM'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/default'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/status'}, track_type => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/track_type'} ); # Conversion functions from frames to Minute/Second/Frames and vice versa sub FRAMES_TO_MSF { my $frames = shift; my $F = $frames % CD_FPS; $frames /= CD_FPS; my $S = $frames % 60; $frames /= 60; my $M = $frames; return ( $M, $S, $F ); } sub MSF_TO_FRAMES { my $M = shift; my $S = shift; my $F = shift; return ( $M * 60 * CD_FPS + $S * CD_FPS + $F ); } 1; ������������������������������������SDL-2.540/lib/SDL/CDROM.pm��������������������������������������������������������������������������000444��000765��000024�� 1155�11760240072� 15000� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::CDROM; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::CDROM'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::CDROM; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::CDROM'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/default'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/status'}, track_type => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/track_type'} ); 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/CDTrack.pm������������������������������������������������������������������������000444��000765��000024�� 1161�11760240072� 15404� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::CDTrack; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::CDROM'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::CDTrack; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::CDROM'} }; our %EXPORT_TAGS = ( all => \@EXPORT, format => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/default'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/status'}, track_type => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/track_type'} ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Color.pm��������������������������������������������������������������������������000444��000765��000024�� 1524�11760240072� 15212� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Color; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Color; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Config.pm�������������������������������������������������������������������������000444��000765��000024�� 424�11760240073� 15320� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Config; use strict; use warnings; use SDL::ConfigData; sub has { my ( $class, $define ) = @_; my $sdl_config = SDL::ConfigData->config('SDL_cfg'); my $n = scalar grep { $$sdl_config{$_}{'libs'}{$define} } keys %$sdl_config; return ( $n > 0 ) ? 1 : 0; } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Constants.pm����������������������������������������������������������������������000444��000765��000024�� 547557�11760240072� 16175� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl package SDL::Constants; use warnings; use base 'Exporter'; use Config; our @EXPORT_OK = (); our %EXPORT_TAGS = ( 'SDL/defaults' => [ qw( SDL_LIL_ENDIAN SDL_BIG_ENDIAN SDL_BYTEORDER ) ], 'SDL/init' => [ qw( SDL_INIT_AUDIO SDL_INIT_CDROM SDL_INIT_EVENTTHREAD SDL_INIT_EVERYTHING SDL_INIT_JOYSTICK SDL_INIT_NOPARACHUTE SDL_INIT_TIMER SDL_INIT_VIDEO ) ], 'SDL::Audio/format' => [ qw( AUDIO_U8 AUDIO_S8 AUDIO_U16LSB AUDIO_S16LSB AUDIO_U16MSB AUDIO_S16MSB AUDIO_U16 AUDIO_S16 AUDIO_U16SYS AUDIO_S16SYS ) ], 'SDL::Audio/status' => [ qw( SDL_AUDIO_STOPPED SDL_AUDIO_PLAYING SDL_AUDIO_PAUSED ) ], 'SDL::CDROM/defaults' => [ qw( CD_FPS SDL_MAX_TRACKS ) ], 'SDL::CDROM/status' => [ qw( CD_TRAYEMPTY CD_STOPPED CD_PLAYING CD_PAUSED CD_ERROR ) ], 'SDL::CDROM/track_type' => [ qw( SDL_AUDIO_TRACK SDL_DATA_TRACK ) ], 'SDL::Events/type' => [ qw( SDL_ACTIVEEVENT SDL_KEYDOWN SDL_KEYUP SDL_MOUSEMOTION SDL_MOUSEBUTTONDOWN SDL_MOUSEBUTTONUP SDL_JOYAXISMOTION SDL_JOYBALLMOTION SDL_JOYHATMOTION SDL_JOYBUTTONDOWN SDL_JOYBUTTONUP SDL_QUIT SDL_SYSWMEVENT SDL_VIDEORESIZE SDL_VIDEOEXPOSE SDL_USEREVENT SDL_NUMEVENTS ) ], 'SDL::Events/mask' => [ qw( SDL_EVENTMASK SDL_ACTIVEEVENTMASK SDL_KEYDOWNMASK SDL_KEYUPMASK SDL_KEYEVENTMASK SDL_MOUSEMOTIONMASK SDL_MOUSEBUTTONDOWNMASK SDL_MOUSEBUTTONUPMASK SDL_MOUSEEVENTMASK SDL_JOYAXISMOTIONMASK SDL_JOYBALLMOTIONMASK SDL_JOYHATMOTIONMASK SDL_JOYBUTTONDOWNMASK SDL_JOYBUTTONUPMASK SDL_JOYEVENTMASK SDL_VIDEORESIZEMASK SDL_VIDEOEXPOSEMASK SDL_QUITMASK SDL_SYSWMEVENTMASK SDL_ALLEVENTS ) ], 'SDL::Events/action' => [ qw( SDL_ADDEVENT SDL_PEEKEVENT SDL_GETEVENT ) ], 'SDL::Events/state' => [ qw( SDL_QUERY SDL_IGNORE SDL_DISABLE SDL_ENABLE SDL_RELEASED SDL_PRESSED ) ], 'SDL::Events/hat' => [ qw( SDL_HAT_CENTERED SDL_HAT_UP SDL_HAT_RIGHT SDL_HAT_DOWN SDL_HAT_LEFT SDL_HAT_RIGHTUP SDL_HAT_RIGHTDOWN SDL_HAT_LEFTUP SDL_HAT_LEFTDOWN ) ], 'SDL::Events/app' => [ qw( SDL_APPMOUSEFOCUS SDL_APPINPUTFOCUS SDL_APPACTIVE ) ], 'SDL::Events/button' => [ qw( SDL_BUTTON SDL_BUTTON_LEFT SDL_BUTTON_MIDDLE SDL_BUTTON_RIGHT SDL_BUTTON_WHEELUP SDL_BUTTON_WHEELDOWN SDL_BUTTON_X1 SDL_BUTTON_X2 SDL_BUTTON_LMASK SDL_BUTTON_MMASK SDL_BUTTON_RMASK SDL_BUTTON_X1MASK SDL_BUTTON_X2MASK ) ], 'SDL::Events/keysym' => [ qw( SDLK_UNKNOWN SDLK_FIRST SDLK_BACKSPACE SDLK_TAB SDLK_CLEAR SDLK_RETURN SDLK_PAUSE SDLK_ESCAPE SDLK_SPACE SDLK_EXCLAIM SDLK_QUOTEDBL SDLK_HASH SDLK_DOLLAR SDLK_AMPERSAND SDLK_QUOTE SDLK_LEFTPAREN SDLK_RIGHTPAREN SDLK_ASTERISK SDLK_PLUS SDLK_COMMA SDLK_MINUS SDLK_PERIOD SDLK_SLASH SDLK_0 SDLK_1 SDLK_2 SDLK_3 SDLK_4 SDLK_5 SDLK_6 SDLK_7 SDLK_8 SDLK_9 SDLK_COLON SDLK_SEMICOLON SDLK_LESS SDLK_EQUALS SDLK_GREATER SDLK_QUESTION SDLK_AT SDLK_LEFTBRACKET SDLK_BACKSLASH SDLK_RIGHTBRACKET SDLK_CARET SDLK_UNDERSCORE SDLK_BACKQUOTE SDLK_a SDLK_b SDLK_c SDLK_d SDLK_e SDLK_f SDLK_g SDLK_h SDLK_i SDLK_j SDLK_k SDLK_l SDLK_m SDLK_n SDLK_o SDLK_p SDLK_q SDLK_r SDLK_s SDLK_t SDLK_u SDLK_v SDLK_w SDLK_x SDLK_y SDLK_z SDLK_DELETE SDLK_WORLD_0 SDLK_WORLD_1 SDLK_WORLD_2 SDLK_WORLD_3 SDLK_WORLD_4 SDLK_WORLD_5 SDLK_WORLD_6 SDLK_WORLD_7 SDLK_WORLD_8 SDLK_WORLD_9 SDLK_WORLD_10 SDLK_WORLD_11 SDLK_WORLD_12 SDLK_WORLD_13 SDLK_WORLD_14 SDLK_WORLD_15 SDLK_WORLD_16 SDLK_WORLD_17 SDLK_WORLD_18 SDLK_WORLD_19 SDLK_WORLD_20 SDLK_WORLD_21 SDLK_WORLD_22 SDLK_WORLD_23 SDLK_WORLD_24 SDLK_WORLD_25 SDLK_WORLD_26 SDLK_WORLD_27 SDLK_WORLD_28 SDLK_WORLD_29 SDLK_WORLD_30 SDLK_WORLD_31 SDLK_WORLD_32 SDLK_WORLD_33 SDLK_WORLD_34 SDLK_WORLD_35 SDLK_WORLD_36 SDLK_WORLD_37 SDLK_WORLD_38 SDLK_WORLD_39 SDLK_WORLD_40 SDLK_WORLD_41 SDLK_WORLD_42 SDLK_WORLD_43 SDLK_WORLD_44 SDLK_WORLD_45 SDLK_WORLD_46 SDLK_WORLD_47 SDLK_WORLD_48 SDLK_WORLD_49 SDLK_WORLD_50 SDLK_WORLD_51 SDLK_WORLD_52 SDLK_WORLD_53 SDLK_WORLD_54 SDLK_WORLD_55 SDLK_WORLD_56 SDLK_WORLD_57 SDLK_WORLD_58 SDLK_WORLD_59 SDLK_WORLD_60 SDLK_WORLD_61 SDLK_WORLD_62 SDLK_WORLD_63 SDLK_WORLD_64 SDLK_WORLD_65 SDLK_WORLD_66 SDLK_WORLD_67 SDLK_WORLD_68 SDLK_WORLD_69 SDLK_WORLD_70 SDLK_WORLD_71 SDLK_WORLD_72 SDLK_WORLD_73 SDLK_WORLD_74 SDLK_WORLD_75 SDLK_WORLD_76 SDLK_WORLD_77 SDLK_WORLD_78 SDLK_WORLD_79 SDLK_WORLD_80 SDLK_WORLD_81 SDLK_WORLD_82 SDLK_WORLD_83 SDLK_WORLD_84 SDLK_WORLD_85 SDLK_WORLD_86 SDLK_WORLD_87 SDLK_WORLD_88 SDLK_WORLD_89 SDLK_WORLD_90 SDLK_WORLD_91 SDLK_WORLD_92 SDLK_WORLD_93 SDLK_WORLD_94 SDLK_WORLD_95 SDLK_KP0 SDLK_KP1 SDLK_KP2 SDLK_KP3 SDLK_KP4 SDLK_KP5 SDLK_KP6 SDLK_KP7 SDLK_KP8 SDLK_KP9 SDLK_KP_PERIOD SDLK_KP_DIVIDE SDLK_KP_MULTIPLY SDLK_KP_MINUS SDLK_KP_PLUS SDLK_KP_ENTER SDLK_KP_EQUALS SDLK_UP SDLK_DOWN SDLK_RIGHT SDLK_LEFT SDLK_INSERT SDLK_HOME SDLK_END SDLK_PAGEUP SDLK_PAGEDOWN SDLK_F1 SDLK_F2 SDLK_F3 SDLK_F4 SDLK_F5 SDLK_F6 SDLK_F7 SDLK_F8 SDLK_F9 SDLK_F10 SDLK_F11 SDLK_F12 SDLK_F13 SDLK_F14 SDLK_F15 SDLK_NUMLOCK SDLK_CAPSLOCK SDLK_SCROLLOCK SDLK_RSHIFT SDLK_LSHIFT SDLK_RCTRL SDLK_LCTRL SDLK_RALT SDLK_LALT SDLK_RMETA SDLK_LMETA SDLK_LSUPER SDLK_RSUPER SDLK_MODE SDLK_COMPOSE SDLK_HELP SDLK_PRINT SDLK_SYSREQ SDLK_BREAK SDLK_MENU SDLK_POWER SDLK_EURO SDLK_UNDO ) ], 'SDL::Events/keymod' => [ qw( KMOD_NONE KMOD_LSHIFT KMOD_RSHIFT KMOD_LCTRL KMOD_RCTRL KMOD_LALT KMOD_RALT KMOD_LMETA KMOD_RMETA KMOD_NUM KMOD_CAPS KMOD_MODE KMOD_RESERVED KMOD_CTRL KMOD_SHIFT KMOD_ALT KMOD_META ) ], 'SDL::GFX/smoothing' => [ qw( SMOOTHING_OFF SMOOTHING_ON ) ], 'SDL::Image/init' => [ qw( IMG_INIT_JPG IMG_INIT_PNG IMG_INIT_TIF ) ], 'SDL::Net/defaults' => [ qw( INADDR_ANY INADDR_NONE INADDR_BROADCAST SDLNET_MAX_UDPCHANNELS SDLNET_MAX_UDPADDRESSES ) ], 'SDL::Mixer/init' => [ qw( MIX_INIT_FLAC MIX_INIT_MOD MIX_INIT_MP3 MIX_INIT_OGG ) ], 'SDL::Mixer/defaults' => [ qw( MIX_CHANNELS MIX_DEFAULT_FORMAT MIX_DEFAULT_FREQUENCY MIX_DEFAULT_CHANNELS MIX_MAX_VOLUME MIX_CHANNEL_POST ) ], 'SDL::Mixer/fading' => [ qw( MIX_NO_FADING MIX_FADING_OUT MIX_FADING_IN ) ], 'SDL::Mixer/type' => [ qw( MUS_NONE MUS_CMD MUS_WAV MUS_MOD MUS_MID MUS_OGG MUS_MP3 MUS_MP3_MAD MUS_MP3_FLAC ) ], 'SDL::Pango/direction' => [ qw( SDLPANGO_DIRECTION_LTR SDLPANGO_DIRECTION_RTL SDLPANGO_DIRECTION_WEAK_LTR SDLPANGO_DIRECTION_WEAK_RTL SDLPANGO_DIRECTION_NEUTRAL ) ], 'SDL::Pango/align' => [ qw( SDLPANGO_ALIGN_LEFT SDLPANGO_ALIGN_CENTER SDLPANGO_ALIGN_RIGHT ) ], 'SDL::RWOps/defaults' => [ qw( RW_SEEK_SET RW_SEEK_CUR RW_SEEK_END ) ], 'SDL::TTF/hinting' => [ qw( TTF_HINTING_NORMAL TTF_HINTING_LIGHT TTF_HINTING_MONO TTF_HINTING_NONE ) ], 'SDL::TTF/style' => [ qw( TTF_STYLE_NORMAL TTF_STYLE_BOLD TTF_STYLE_ITALIC TTF_STYLE_UNDERLINE TTF_STYLE_STRIKETHROUGH ) ], 'SDL::Video/color' => [ qw( SDL_ALPHA_OPAQUE SDL_ALPHA_TRANSPARENT ) ], 'SDL::Video/surface' => [ qw( SDL_SWSURFACE SDL_HWSURFACE SDL_ASYNCBLIT ) ], 'SDL::Video/video' => [ qw( SDL_SWSURFACE SDL_HWSURFACE SDL_ASYNCBLIT SDL_ANYFORMAT SDL_HWPALETTE SDL_DOUBLEBUF SDL_FULLSCREEN SDL_OPENGL SDL_OPENGLBLIT SDL_RESIZABLE SDL_NOFRAME SDL_HWACCEL SDL_SRCCOLORKEY SDL_RLEACCELOK SDL_RLEACCEL SDL_SRCALPHA SDL_PREALLOC ) ], 'SDL::Video/overlay' => [ qw( SDL_YV12_OVERLAY SDL_IYUV_OVERLAY SDL_YUY2_OVERLAY SDL_UYVY_OVERLAY SDL_YVYU_OVERLAY ) ], 'SDL::Video/palette' => [ qw( SDL_LOGPAL SDL_PHYSPAL ) ], 'SDL::Video/grab' => [ qw( SDL_GRAB_QUERY SDL_GRAB_OFF SDL_GRAB_ON SDL_GRAB_FULLSCREEN ) ], 'SDL::Video/gl' => [ qw( SDL_GL_RED_SIZE SDL_GL_GREEN_SIZE SDL_GL_BLUE_SIZE SDL_GL_ALPHA_SIZE SDL_GL_BUFFER_SIZE SDL_GL_DOUBLEBUFFER SDL_GL_DEPTH_SIZE SDL_GL_STENCIL_SIZE SDL_GL_ACCUM_RED_SIZE SDL_GL_ACCUM_GREEN_SIZE SDL_GL_ACCUM_BLUE_SIZE SDL_GL_ACCUM_ALPHA_SIZE SDL_GL_STEREO SDL_GL_MULTISAMPLEBUFFERS SDL_GL_MULTISAMPLESAMPLES SDL_GL_ACCELERATED_VISUAL SDL_GL_SWAP_CONTROL ) ], ); # 1. all constants from %EXPORT_TAGS are gonna pushed into @EXPORT # 2. tags like 'package/tag' and 'package/next_tag' are merged into tag 'package' my %seen; foreach my $package ( keys %EXPORT_TAGS ) { my $super_package = $package; $super_package =~ s/\/.*$//; push( @{ $EXPORT_TAGS{$super_package} }, @{ $EXPORT_TAGS{$package} } ) if $super_package ne $package; push( @EXPORT_OK, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$package} } ); } use constant { SDL_INIT_TIMER => 0x00000001, SDL_INIT_AUDIO => 0x00000010, SDL_INIT_VIDEO => 0x00000020, SDL_INIT_CDROM => 0x00000100, SDL_INIT_JOYSTICK => 0x00000200, SDL_INIT_NOPARACHUTE => 0x00100000, SDL_INIT_EVENTTHREAD => 0x01000000, SDL_INIT_EVERYTHING => 0x0000FFFF, }; # SDL/init use constant { SDL_LIL_ENDIAN => 1234, SDL_BIG_ENDIAN => 4321, SDL_BYTEORDER => $Config{byteorder} }; # SDL/defaults use constant { AUDIO_U8 => 0x0008, AUDIO_S8 => 0x8008, AUDIO_U16LSB => 0x0010, AUDIO_S16LSB => 0x8010, AUDIO_U16MSB => 0x1010, AUDIO_S16MSB => 0x9010, AUDIO_U16 => 0x0010, AUDIO_S16 => 0x8010, }; # SDL::Audio/format use constant { AUDIO_U16SYS => ( $Config{byteorder} == 1234 ? 0x0010 : 0x1010 ), AUDIO_S16SYS => ( $Config{byteorder} == 1234 ? 0x8010 : 0x9010 ), }; # SDL::Audio/format use constant { SDL_AUDIO_STOPPED => 0, SDL_AUDIO_PLAYING => 1, SDL_AUDIO_PAUSED => 2, }; # SDL::Audio/status use constant { CD_FPS => 75, SDL_MAX_TRACKS => 99, }; # SDL::CDROM/defaults use constant { CD_TRAYEMPTY => 0, CD_STOPPED => 1, CD_PLAYING => 2, CD_PAUSED => 3, CD_ERROR => -1, }; # SDL::CDROM/status use constant { SDL_AUDIO_TRACK => 0, SDL_DATA_TRACK => 4, }; # SDL::CDROM/track_type use constant { SDL_ACTIVEEVENT => 1, SDL_KEYDOWN => 2, SDL_KEYUP => 3, SDL_MOUSEMOTION => 4, SDL_MOUSEBUTTONDOWN => 5, SDL_MOUSEBUTTONUP => 6, SDL_JOYAXISMOTION => 7, SDL_JOYBALLMOTION => 8, SDL_JOYHATMOTION => 9, SDL_JOYBUTTONDOWN => 10, SDL_JOYBUTTONUP => 11, SDL_QUIT => 12, SDL_SYSWMEVENT => 13, SDL_VIDEORESIZE => 16, SDL_VIDEOEXPOSE => 17, SDL_USEREVENT => 24, SDL_NUMEVENTS => 32, }; # SDL::Events/type sub SDL_EVENTMASK { return 1 << shift; } use constant { SDL_ACTIVEEVENTMASK => SDL_EVENTMASK(SDL_ACTIVEEVENT), SDL_KEYDOWNMASK => SDL_EVENTMASK(SDL_KEYDOWN), SDL_KEYUPMASK => SDL_EVENTMASK(SDL_KEYUP), SDL_KEYEVENTMASK => SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP), SDL_MOUSEMOTIONMASK => SDL_EVENTMASK(SDL_MOUSEMOTION), SDL_MOUSEBUTTONDOWNMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), SDL_MOUSEBUTTONUPMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONUP), SDL_MOUSEEVENTMASK => SDL_EVENTMASK(SDL_MOUSEMOTION) | SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP), SDL_JOYAXISMOTIONMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION), SDL_JOYBALLMOTIONMASK => SDL_EVENTMASK(SDL_JOYBALLMOTION), SDL_JOYHATMOTIONMASK => SDL_EVENTMASK(SDL_JOYHATMOTION), SDL_JOYBUTTONDOWNMASK => SDL_EVENTMASK(SDL_JOYBUTTONDOWN), SDL_JOYBUTTONUPMASK => SDL_EVENTMASK(SDL_JOYBUTTONUP), SDL_JOYEVENTMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION) | SDL_EVENTMASK(SDL_JOYBALLMOTION) | SDL_EVENTMASK(SDL_JOYHATMOTION) | SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP), SDL_VIDEORESIZEMASK => SDL_EVENTMASK(SDL_VIDEORESIZE), SDL_VIDEOEXPOSEMASK => SDL_EVENTMASK(SDL_VIDEOEXPOSE), SDL_QUITMASK => SDL_EVENTMASK(SDL_QUIT), SDL_SYSWMEVENTMASK => SDL_EVENTMASK(SDL_SYSWMEVENT), SDL_ALLEVENTS => 0xFFFFFFFF, }; # SDL::Events/mask use constant { SDL_ADDEVENT => 0, SDL_PEEKEVENT => 1, SDL_GETEVENT => 2, }; # SDL::Events/action use constant { SDL_QUERY => -1, SDL_IGNORE => 0, SDL_DISABLE => 0, SDL_ENABLE => 1, SDL_RELEASED => 0, SDL_PRESSED => 1, }; # SDL::Events/state use constant { SDL_HAT_CENTERED => 0x00, SDL_HAT_UP => 0x01, SDL_HAT_RIGHT => 0x02, SDL_HAT_DOWN => 0x04, SDL_HAT_LEFT => 0x08, SDL_HAT_RIGHTUP => ( 0x02 | 0x01 ), SDL_HAT_RIGHTDOWN => ( 0x02 | 0x04 ), SDL_HAT_LEFTUP => ( 0x08 | 0x01 ), SDL_HAT_LEFTDOWN => ( 0x08 | 0x04 ), }; # SDL::Events/hat use constant { SDL_APPMOUSEFOCUS => 0x01, SDL_APPINPUTFOCUS => 0x02, SDL_APPACTIVE => 0x04, }; # SDL::Events/app sub SDL_BUTTON { return ( 1 << ( ( $_[0] ) - 1 ) ); } use constant { SDL_BUTTON_LEFT => 1, SDL_BUTTON_MIDDLE => 2, SDL_BUTTON_RIGHT => 3, SDL_BUTTON_WHEELUP => 4, SDL_BUTTON_WHEELDOWN => 5, SDL_BUTTON_X1 => 6, SDL_BUTTON_X2 => 7, SDL_BUTTON_LMASK => SDL_BUTTON(1), SDL_BUTTON_MMASK => SDL_BUTTON(2), SDL_BUTTON_RMASK => SDL_BUTTON(3), SDL_BUTTON_X1MASK => SDL_BUTTON(6), SDL_BUTTON_X2MASK => SDL_BUTTON(7), }; # SDL::Events/button use constant { SDLK_UNKNOWN => 0, SDLK_FIRST => 0, SDLK_BACKSPACE => 8, SDLK_TAB => 9, SDLK_CLEAR => 12, SDLK_RETURN => 13, SDLK_PAUSE => 19, SDLK_ESCAPE => 27, SDLK_SPACE => 32, SDLK_EXCLAIM => 33, SDLK_QUOTEDBL => 34, SDLK_HASH => 35, SDLK_DOLLAR => 36, SDLK_AMPERSAND => 38, SDLK_QUOTE => 39, SDLK_LEFTPAREN => 40, SDLK_RIGHTPAREN => 41, SDLK_ASTERISK => 42, SDLK_PLUS => 43, SDLK_COMMA => 44, SDLK_MINUS => 45, SDLK_PERIOD => 46, SDLK_SLASH => 47, SDLK_0 => 48, SDLK_1 => 49, SDLK_2 => 50, SDLK_3 => 51, SDLK_4 => 52, SDLK_5 => 53, SDLK_6 => 54, SDLK_7 => 55, SDLK_8 => 56, SDLK_9 => 57, SDLK_COLON => 58, SDLK_SEMICOLON => 59, SDLK_LESS => 60, SDLK_EQUALS => 61, SDLK_GREATER => 62, SDLK_QUESTION => 63, SDLK_AT => 64, SDLK_LEFTBRACKET => 91, SDLK_BACKSLASH => 92, SDLK_RIGHTBRACKET => 93, SDLK_CARET => 94, SDLK_UNDERSCORE => 95, SDLK_BACKQUOTE => 96, SDLK_a => 97, SDLK_b => 98, SDLK_c => 99, SDLK_d => 100, SDLK_e => 101, SDLK_f => 102, SDLK_g => 103, SDLK_h => 104, SDLK_i => 105, SDLK_j => 106, SDLK_k => 107, SDLK_l => 108, SDLK_m => 109, SDLK_n => 110, SDLK_o => 111, SDLK_p => 112, SDLK_q => 113, SDLK_r => 114, SDLK_s => 115, SDLK_t => 116, SDLK_u => 117, SDLK_v => 118, SDLK_w => 119, SDLK_x => 120, SDLK_y => 121, SDLK_z => 122, SDLK_DELETE => 127, SDLK_WORLD_0 => 160, SDLK_WORLD_1 => 161, SDLK_WORLD_2 => 162, SDLK_WORLD_3 => 163, SDLK_WORLD_4 => 164, SDLK_WORLD_5 => 165, SDLK_WORLD_6 => 166, SDLK_WORLD_7 => 167, SDLK_WORLD_8 => 168, SDLK_WORLD_9 => 169, SDLK_WORLD_10 => 170, SDLK_WORLD_11 => 171, SDLK_WORLD_12 => 172, SDLK_WORLD_13 => 173, SDLK_WORLD_14 => 174, SDLK_WORLD_15 => 175, SDLK_WORLD_16 => 176, SDLK_WORLD_17 => 177, SDLK_WORLD_18 => 178, SDLK_WORLD_19 => 179, SDLK_WORLD_20 => 180, SDLK_WORLD_21 => 181, SDLK_WORLD_22 => 182, SDLK_WORLD_23 => 183, SDLK_WORLD_24 => 184, SDLK_WORLD_25 => 185, SDLK_WORLD_26 => 186, SDLK_WORLD_27 => 187, SDLK_WORLD_28 => 188, SDLK_WORLD_29 => 189, SDLK_WORLD_30 => 190, SDLK_WORLD_31 => 191, SDLK_WORLD_32 => 192, SDLK_WORLD_33 => 193, SDLK_WORLD_34 => 194, SDLK_WORLD_35 => 195, SDLK_WORLD_36 => 196, SDLK_WORLD_37 => 197, SDLK_WORLD_38 => 198, SDLK_WORLD_39 => 199, SDLK_WORLD_40 => 200, SDLK_WORLD_41 => 201, SDLK_WORLD_42 => 202, SDLK_WORLD_43 => 203, SDLK_WORLD_44 => 204, SDLK_WORLD_45 => 205, SDLK_WORLD_46 => 206, SDLK_WORLD_47 => 207, SDLK_WORLD_48 => 208, SDLK_WORLD_49 => 209, SDLK_WORLD_50 => 210, SDLK_WORLD_51 => 211, SDLK_WORLD_52 => 212, SDLK_WORLD_53 => 213, SDLK_WORLD_54 => 214, SDLK_WORLD_55 => 215, SDLK_WORLD_56 => 216, SDLK_WORLD_57 => 217, SDLK_WORLD_58 => 218, SDLK_WORLD_59 => 219, SDLK_WORLD_60 => 220, SDLK_WORLD_61 => 221, SDLK_WORLD_62 => 222, SDLK_WORLD_63 => 223, SDLK_WORLD_64 => 224, SDLK_WORLD_65 => 225, SDLK_WORLD_66 => 226, SDLK_WORLD_67 => 227, SDLK_WORLD_68 => 228, SDLK_WORLD_69 => 229, SDLK_WORLD_70 => 230, SDLK_WORLD_71 => 231, SDLK_WORLD_72 => 232, SDLK_WORLD_73 => 233, SDLK_WORLD_74 => 234, SDLK_WORLD_75 => 235, SDLK_WORLD_76 => 236, SDLK_WORLD_77 => 237, SDLK_WORLD_78 => 238, SDLK_WORLD_79 => 239, SDLK_WORLD_80 => 240, SDLK_WORLD_81 => 241, SDLK_WORLD_82 => 242, SDLK_WORLD_83 => 243, SDLK_WORLD_84 => 244, SDLK_WORLD_85 => 245, SDLK_WORLD_86 => 246, SDLK_WORLD_87 => 247, SDLK_WORLD_88 => 248, SDLK_WORLD_89 => 249, SDLK_WORLD_90 => 250, SDLK_WORLD_91 => 251, SDLK_WORLD_92 => 252, SDLK_WORLD_93 => 253, SDLK_WORLD_94 => 254, SDLK_WORLD_95 => 255, SDLK_KP0 => 256, SDLK_KP1 => 257, SDLK_KP2 => 258, SDLK_KP3 => 259, SDLK_KP4 => 260, SDLK_KP5 => 261, SDLK_KP6 => 262, SDLK_KP7 => 263, SDLK_KP8 => 264, SDLK_KP9 => 265, SDLK_KP_PERIOD => 266, SDLK_KP_DIVIDE => 267, SDLK_KP_MULTIPLY => 268, SDLK_KP_MINUS => 269, SDLK_KP_PLUS => 270, SDLK_KP_ENTER => 271, SDLK_KP_EQUALS => 272, SDLK_UP => 273, SDLK_DOWN => 274, SDLK_RIGHT => 275, SDLK_LEFT => 276, SDLK_INSERT => 277, SDLK_HOME => 278, SDLK_END => 279, SDLK_PAGEUP => 280, SDLK_PAGEDOWN => 281, SDLK_F1 => 282, SDLK_F2 => 283, SDLK_F3 => 284, SDLK_F4 => 285, SDLK_F5 => 286, SDLK_F6 => 287, SDLK_F7 => 288, SDLK_F8 => 289, SDLK_F9 => 290, SDLK_F10 => 291, SDLK_F11 => 292, SDLK_F12 => 293, SDLK_F13 => 294, SDLK_F14 => 295, SDLK_F15 => 296, SDLK_NUMLOCK => 300, SDLK_CAPSLOCK => 301, SDLK_SCROLLOCK => 302, SDLK_RSHIFT => 303, SDLK_LSHIFT => 304, SDLK_RCTRL => 305, SDLK_LCTRL => 306, SDLK_RALT => 307, SDLK_LALT => 308, SDLK_RMETA => 309, SDLK_LMETA => 310, SDLK_LSUPER => 311, SDLK_RSUPER => 312, SDLK_MODE => 313, SDLK_COMPOSE => 314, SDLK_HELP => 315, SDLK_PRINT => 316, SDLK_SYSREQ => 317, SDLK_BREAK => 318, SDLK_MENU => 319, SDLK_POWER => 320, SDLK_EURO => 321, SDLK_UNDO => 322, }; # SDL::Events/keysym use constant { KMOD_NONE => 0x0000, KMOD_LSHIFT => 0x0001, KMOD_RSHIFT => 0x0002, KMOD_LCTRL => 0x0040, KMOD_RCTRL => 0x0080, KMOD_LALT => 0x0100, KMOD_RALT => 0x0200, KMOD_LMETA => 0x0400, KMOD_RMETA => 0x0800, KMOD_NUM => 0x1000, KMOD_CAPS => 0x2000, KMOD_MODE => 0x4000, KMOD_RESERVED => 0x8000 }; # SDL::Events/keymod use constant { KMOD_CTRL => ( KMOD_LCTRL | KMOD_RCTRL ), KMOD_SHIFT => ( KMOD_LSHIFT | KMOD_RSHIFT ), KMOD_ALT => ( KMOD_LALT | KMOD_RALT ), KMOD_META => ( KMOD_LMETA | KMOD_RMETA ), }; # SDL::Events/keymod use constant { SMOOTHING_OFF => 0, SMOOTHING_ON => 1, }; # SDL::GFX/smoothing use constant { IMG_INIT_JPG => 0x00000001, IMG_INIT_PNG => 0x00000002, IMG_INIT_TIF => 0x00000004, }; # SDL::Image use constant { MIX_INIT_FLAC => 0x00000001, MIX_INIT_MOD => 0x00000002, MIX_INIT_MP3 => 0x00000004, MIX_INIT_OGG => 0x00000008 }; # SDL::Mixer/init use constant { MIX_CHANNELS => 8, MIX_DEFAULT_FORMAT => 32784, MIX_DEFAULT_FREQUENCY => 22050, MIX_DEFAULT_CHANNELS => 2, MIX_MAX_VOLUME => 128, MIX_CHANNEL_POST => -2, }; # SDL::Mixer/defaults use constant { MIX_NO_FADING => 0, MIX_FADING_OUT => 1, MIX_FADING_IN => 2, }; # SDL::Mixer/fading use constant { MUS_NONE => 0, MUS_CMD => 1, MUS_WAV => 2, MUS_MOD => 3, MUS_MID => 4, MUS_OGG => 5, MUS_MP3 => 6, MUS_MP3_MAD => 7, MUS_MP3_FLAC => 8, }; # SDL::Mixer/type use constant { INADDR_ANY => 0x00000000, INADDR_NONE => 0xFFFFFFFF, INADDR_BROADCAST => 0xFFFFFFFF, SDLNET_MAX_UDPCHANNELS => 32, SDLNET_MAX_UDPADDRESSES => 4 }; # SDL::Net use constant { SDLPANGO_DIRECTION_LTR => 0, SDLPANGO_DIRECTION_RTL => 1, SDLPANGO_DIRECTION_WEAK_LTR => 2, SDLPANGO_DIRECTION_WEAK_RTL => 3, SDLPANGO_DIRECTION_NEUTRAL => 4 }; # SDL::Pango/direction use constant { SDLPANGO_ALIGN_LEFT => 0, SDLPANGO_ALIGN_CENTER => 1, SDLPANGO_ALIGN_RIGHT => 2 }; # SDL::Pango/align use constant { RW_SEEK_SET => 0, RW_SEEK_CUR => 1, RW_SEEK_END => 2, }; # SDL::RWOps/defaults use constant { TTF_HINTING_NORMAL => 0, TTF_HINTING_LIGHT => 1, TTF_HINTING_MONO => 2, TTF_HINTING_NONE => 3, TTF_STYLE_NORMAL => 0, TTF_STYLE_BOLD => 1, TTF_STYLE_ITALIC => 2, TTF_STYLE_UNDERLINE => 4, TTF_STYLE_STRIKETHROUGH => 8, }; # SDL::TTF use constant { SDL_ALPHA_OPAQUE => 255, SDL_ALPHA_TRANSPARENT => 0, SDL_SWSURFACE => 0x00000000, # for SDL::Surface->new() and set_video_mode() SDL_HWSURFACE => 0x00000001, # for SDL::Surface->new() and set_video_mode() SDL_ASYNCBLIT => 0x00000004, # for SDL::Surface->new() and set_video_mode() SDL_ANYFORMAT => 0x10000000, # set_video_mode() SDL_HWPALETTE => 0x20000000, # set_video_mode() SDL_DOUBLEBUF => 0x40000000, # set_video_mode() SDL_FULLSCREEN => 0x80000000, # set_video_mode() SDL_OPENGL => 0x00000002, # set_video_mode() SDL_OPENGLBLIT => 0x0000000A, # set_video_mode() SDL_RESIZABLE => 0x00000010, # set_video_mode() SDL_NOFRAME => 0x00000020, # set_video_mode() SDL_HWACCEL => 0x00000100, # set_video_mode() SDL_SRCCOLORKEY => 0x00001000, # set_video_mode() SDL_RLEACCELOK => 0x00002000, # set_video_mode() SDL_RLEACCEL => 0x00004000, # set_video_mode() SDL_SRCALPHA => 0x00010000, # set_video_mode() SDL_PREALLOC => 0x01000000, # set_video_mode() SDL_YV12_OVERLAY => 0x32315659, # Planar mode: Y + V + U (3 planes) SDL_IYUV_OVERLAY => 0x56555949, # Planar mode: Y + U + V (3 planes) SDL_YUY2_OVERLAY => 0x32595559, # Packed mode: Y0+U0+Y1+V0 (1 plane) SDL_UYVY_OVERLAY => 0x59565955, # Packed mode: U0+Y0+V0+Y1 (1 plane) SDL_YVYU_OVERLAY => 0x55595659, # Packed mode: Y0+V0+Y1+U0 (1 plane) SDL_LOGPAL => 0x01, # for set_palette() SDL_PHYSPAL => 0x02, # for set_palette() SDL_GRAB_QUERY => -1, # SDL_GrabMode SDL_GRAB_OFF => 0, # SDL_GrabMode SDL_GRAB_ON => 1, # SDL_GrabMode SDL_GRAB_FULLSCREEN => 2, # SDL_GrabMode, used internally }; # SDL::Video/... use constant { SDL_GL_RED_SIZE => 0, SDL_GL_GREEN_SIZE => 1, SDL_GL_BLUE_SIZE => 2, SDL_GL_ALPHA_SIZE => 3, SDL_GL_BUFFER_SIZE => 4, SDL_GL_DOUBLEBUFFER => 5, SDL_GL_DEPTH_SIZE => 6, SDL_GL_STENCIL_SIZE => 7, SDL_GL_ACCUM_RED_SIZE => 8, SDL_GL_ACCUM_GREEN_SIZE => 9, SDL_GL_ACCUM_BLUE_SIZE => 10, SDL_GL_ACCUM_ALPHA_SIZE => 11, SDL_GL_STEREO => 12, SDL_GL_MULTISAMPLEBUFFERS => 13, SDL_GL_MULTISAMPLESAMPLES => 14, SDL_GL_ACCELERATED_VISUAL => 15, SDL_GL_SWAP_CONTROL => 16, }; # SDL::Video/gl 1; __END__ our @EXPORT=qw( SMPEG_ERROR SMPEG_PLAYING SMPEG_STOPPED SDL_SVG_FLAG_DIRECT SDL_SVG_FLAG_COMPOSITE SDL_SAMPLEFLAG_NONE SDL_SAMPLEFLAG_CANSEEK SDL_SAMPLEFLAG_EOF SDL_SAMPLEFLAG_ERROR SDL_SAMPLEFLAG_EAGAIN ); use constant { SDL_HAS_64BIT_TYPE => 1, SDL_AUDIO_DRIVER_DISK => 1, SDL_AUDIO_DRIVER_DUMMY => 1, SDL_AUDIO_DRIVER_DSOUND => 1, SDL_AUDIO_DRIVER_WAVEOUT => 1, SDL_CDROM_WIN32 => 1, SDL_JOYSTICK_WINMM => 1, SDL_LOADSO_WIN32 => 1, SDL_THREAD_WIN32 => 1, SDL_TIMER_WIN32 => 1, SDL_VIDEO_DRIVER_DDRAW => 1, SDL_VIDEO_DRIVER_DUMMY => 1, SDL_VIDEO_DRIVER_WINDIB => 1, SDL_VIDEO_OPENGL => 1, SDL_VIDEO_OPENGL_WGL => 1, SDL_VIDEO_DISABLE_SCREENSAVER => 1, SDL_ASSEMBLY_ROUTINES => 1, SDL_HERMES_BLITTERS => 1, SDL_LIL_ENDIAN => 1234, SDL_BIG_ENDIAN => 4321, }; use constant { FPS_UPPER_LIMIT => 200, FPS_LOWER_LIMIT => 1, FPS_DEFAULT => 30, SDL_ALL_HOTKEYS => 0xFFFFFFFF, SDL_DEFAULT_REPEAT_DELAY => 500, SDL_DEFAULT_REPEAT_INTERVAL => 30, }; use constant { SDL_MUTEX_TIMEDOUT => 1, NeedFunctionPrototypes => 1, SDLNET_MAX_UDPCHANNELS => 32, SDLNET_MAX_UDPADDRESSES => 4, WIN32_LEAN_AND_MEAN => 1, GL_GLEXT_VERSION => 29, GL_UNSIGNED_BYTE_3_3_2 => 0x8032, GL_UNSIGNED_SHORT_4_4_4_4 => 0x8033, GL_UNSIGNED_SHORT_5_5_5_1 => 0x8034, GL_UNSIGNED_INT_8_8_8_8 => 0x8035, GL_UNSIGNED_INT_10_10_10_2 => 0x8036, GL_RESCALE_NORMAL => 0x803A, GL_TEXTURE_BINDING_3D => 0x806A, GL_PACK_SKIP_IMAGES => 0x806B, GL_PACK_IMAGE_HEIGHT => 0x806C, GL_UNPACK_SKIP_IMAGES => 0x806D, GL_UNPACK_IMAGE_HEIGHT => 0x806E, GL_TEXTURE_3D => 0x806F, GL_PROXY_TEXTURE_3D => 0x8070, GL_TEXTURE_DEPTH => 0x8071, GL_TEXTURE_WRAP_R => 0x8072, GL_MAX_3D_TEXTURE_SIZE => 0x8073, GL_UNSIGNED_BYTE_2_3_3_REV => 0x8362, GL_UNSIGNED_SHORT_5_6_5 => 0x8363, GL_UNSIGNED_SHORT_5_6_5_REV => 0x8364, GL_UNSIGNED_SHORT_4_4_4_4_REV => 0x8365, GL_UNSIGNED_SHORT_1_5_5_5_REV => 0x8366, GL_UNSIGNED_INT_8_8_8_8_REV => 0x8367, GL_UNSIGNED_INT_2_10_10_10_REV => 0x8368, GL_BGR => 0x80E0, GL_BGRA => 0x80E1, GL_MAX_ELEMENTS_VERTICES => 0x80E8, GL_MAX_ELEMENTS_INDICES => 0x80E9, GL_CLAMP_TO_EDGE => 0x812F, GL_TEXTURE_MIN_LOD => 0x813A, GL_TEXTURE_MAX_LOD => 0x813B, GL_TEXTURE_BASE_LEVEL => 0x813C, GL_TEXTURE_MAX_LEVEL => 0x813D, GL_LIGHT_MODEL_COLOR_CONTROL => 0x81F8, GL_SINGLE_COLOR => 0x81F9, GL_SEPARATE_SPECULAR_COLOR => 0x81FA, GL_SMOOTH_POINT_SIZE_RANGE => 0x0B12, GL_SMOOTH_POINT_SIZE_GRANULARITY => 0x0B13, GL_SMOOTH_LINE_WIDTH_RANGE => 0x0B22, GL_SMOOTH_LINE_WIDTH_GRANULARITY => 0x0B23, GL_ALIASED_POINT_SIZE_RANGE => 0x846D, GL_ALIASED_LINE_WIDTH_RANGE => 0x846E, GL_CONSTANT_COLOR => 0x8001, GL_ONE_MINUS_CONSTANT_COLOR => 0x8002, GL_CONSTANT_ALPHA => 0x8003, GL_ONE_MINUS_CONSTANT_ALPHA => 0x8004, GL_BLEND_COLOR => 0x8005, GL_FUNC_ADD => 0x8006, GL_MIN => 0x8007, GL_MAX => 0x8008, GL_BLEND_EQUATION => 0x8009, GL_FUNC_SUBTRACT => 0x800A, GL_FUNC_REVERSE_SUBTRACT => 0x800B, GL_CONVOLUTION_1D => 0x8010, GL_CONVOLUTION_2D => 0x8011, GL_SEPARABLE_2D => 0x8012, GL_CONVOLUTION_BORDER_MODE => 0x8013, GL_CONVOLUTION_FILTER_SCALE => 0x8014, GL_CONVOLUTION_FILTER_BIAS => 0x8015, GL_REDUCE => 0x8016, GL_CONVOLUTION_FORMAT => 0x8017, GL_CONVOLUTION_WIDTH => 0x8018, GL_CONVOLUTION_HEIGHT => 0x8019, GL_MAX_CONVOLUTION_WIDTH => 0x801A, GL_MAX_CONVOLUTION_HEIGHT => 0x801B, GL_POST_CONVOLUTION_RED_SCALE => 0x801C, GL_POST_CONVOLUTION_GREEN_SCALE => 0x801D, GL_POST_CONVOLUTION_BLUE_SCALE => 0x801E, GL_POST_CONVOLUTION_ALPHA_SCALE => 0x801F, GL_POST_CONVOLUTION_RED_BIAS => 0x8020, GL_POST_CONVOLUTION_GREEN_BIAS => 0x8021, GL_POST_CONVOLUTION_BLUE_BIAS => 0x8022, GL_POST_CONVOLUTION_ALPHA_BIAS => 0x8023, GL_HISTOGRAM => 0x8024, GL_PROXY_HISTOGRAM => 0x8025, GL_HISTOGRAM_WIDTH => 0x8026, GL_HISTOGRAM_FORMAT => 0x8027, GL_HISTOGRAM_RED_SIZE => 0x8028, GL_HISTOGRAM_GREEN_SIZE => 0x8029, GL_HISTOGRAM_BLUE_SIZE => 0x802A, GL_HISTOGRAM_ALPHA_SIZE => 0x802B, GL_HISTOGRAM_LUMINANCE_SIZE => 0x802C, GL_HISTOGRAM_SINK => 0x802D, GL_MINMAX => 0x802E, GL_MINMAX_FORMAT => 0x802F, GL_MINMAX_SINK => 0x8030, GL_TABLE_TOO_LARGE => 0x8031, GL_COLOR_MATRIX => 0x80B1, GL_COLOR_MATRIX_STACK_DEPTH => 0x80B2, GL_MAX_COLOR_MATRIX_STACK_DEPTH => 0x80B3, GL_POST_COLOR_MATRIX_RED_SCALE => 0x80B4, GL_POST_COLOR_MATRIX_GREEN_SCALE => 0x80B5, GL_POST_COLOR_MATRIX_BLUE_SCALE => 0x80B6, GL_POST_COLOR_MATRIX_ALPHA_SCALE => 0x80B7, GL_POST_COLOR_MATRIX_RED_BIAS => 0x80B8, GL_POST_COLOR_MATRIX_GREEN_BIAS => 0x80B9, GL_POST_COLOR_MATRIX_BLUE_BIAS => 0x80BA, GL_POST_COLOR_MATRIX_ALPHA_BIAS => 0x80BB, GL_COLOR_TABLE => 0x80D0, GL_POST_CONVOLUTION_COLOR_TABLE => 0x80D1, GL_POST_COLOR_MATRIX_COLOR_TABLE => 0x80D2, GL_PROXY_COLOR_TABLE => 0x80D3, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE => 0x80D4, GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE => 0x80D5, GL_COLOR_TABLE_SCALE => 0x80D6, GL_COLOR_TABLE_BIAS => 0x80D7, GL_COLOR_TABLE_FORMAT => 0x80D8, GL_COLOR_TABLE_WIDTH => 0x80D9, GL_COLOR_TABLE_RED_SIZE => 0x80DA, GL_COLOR_TABLE_GREEN_SIZE => 0x80DB, GL_COLOR_TABLE_BLUE_SIZE => 0x80DC, GL_COLOR_TABLE_ALPHA_SIZE => 0x80DD, GL_COLOR_TABLE_LUMINANCE_SIZE => 0x80DE, GL_COLOR_TABLE_INTENSITY_SIZE => 0x80DF, GL_CONSTANT_BORDER => 0x8151, GL_REPLICATE_BORDER => 0x8153, GL_CONVOLUTION_BORDER_COLOR => 0x8154, GL_TEXTURE0 => 0x84C0, GL_TEXTURE1 => 0x84C1, GL_TEXTURE2 => 0x84C2, GL_TEXTURE3 => 0x84C3, GL_TEXTURE4 => 0x84C4, GL_TEXTURE5 => 0x84C5, GL_TEXTURE6 => 0x84C6, GL_TEXTURE7 => 0x84C7, GL_TEXTURE8 => 0x84C8, GL_TEXTURE9 => 0x84C9, GL_TEXTURE10 => 0x84CA, GL_TEXTURE11 => 0x84CB, GL_TEXTURE12 => 0x84CC, GL_TEXTURE13 => 0x84CD, GL_TEXTURE14 => 0x84CE, GL_TEXTURE15 => 0x84CF, GL_TEXTURE16 => 0x84D0, GL_TEXTURE17 => 0x84D1, GL_TEXTURE18 => 0x84D2, GL_TEXTURE19 => 0x84D3, GL_TEXTURE20 => 0x84D4, GL_TEXTURE21 => 0x84D5, GL_TEXTURE22 => 0x84D6, GL_TEXTURE23 => 0x84D7, GL_TEXTURE24 => 0x84D8, GL_TEXTURE25 => 0x84D9, GL_TEXTURE26 => 0x84DA, GL_TEXTURE27 => 0x84DB, GL_TEXTURE28 => 0x84DC, GL_TEXTURE29 => 0x84DD, GL_TEXTURE30 => 0x84DE, GL_TEXTURE31 => 0x84DF, GL_ACTIVE_TEXTURE => 0x84E0, GL_CLIENT_ACTIVE_TEXTURE => 0x84E1, GL_MAX_TEXTURE_UNITS => 0x84E2, GL_TRANSPOSE_MODELVIEW_MATRIX => 0x84E3, GL_TRANSPOSE_PROJECTION_MATRIX => 0x84E4, GL_TRANSPOSE_TEXTURE_MATRIX => 0x84E5, GL_TRANSPOSE_COLOR_MATRIX => 0x84E6, GL_MULTISAMPLE => 0x809D, GL_SAMPLE_ALPHA_TO_COVERAGE => 0x809E, GL_SAMPLE_ALPHA_TO_ONE => 0x809F, GL_SAMPLE_COVERAGE => 0x80A0, GL_SAMPLE_BUFFERS => 0x80A8, GL_SAMPLES => 0x80A9, GL_SAMPLE_COVERAGE_VALUE => 0x80AA, GL_SAMPLE_COVERAGE_INVERT => 0x80AB, GL_MULTISAMPLE_BIT => 0x20000000, GL_NORMAL_MAP => 0x8511, GL_REFLECTION_MAP => 0x8512, GL_TEXTURE_CUBE_MAP => 0x8513, GL_TEXTURE_BINDING_CUBE_MAP => 0x8514, GL_TEXTURE_CUBE_MAP_POSITIVE_X => 0x8515, GL_TEXTURE_CUBE_MAP_NEGATIVE_X => 0x8516, GL_TEXTURE_CUBE_MAP_POSITIVE_Y => 0x8517, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y => 0x8518, GL_TEXTURE_CUBE_MAP_POSITIVE_Z => 0x8519, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z => 0x851A, GL_PROXY_TEXTURE_CUBE_MAP => 0x851B, GL_MAX_CUBE_MAP_TEXTURE_SIZE => 0x851C, GL_COMPRESSED_ALPHA => 0x84E9, GL_COMPRESSED_LUMINANCE => 0x84EA, GL_COMPRESSED_LUMINANCE_ALPHA => 0x84EB, GL_COMPRESSED_INTENSITY => 0x84EC, GL_COMPRESSED_RGB => 0x84ED, GL_COMPRESSED_RGBA => 0x84EE, GL_TEXTURE_COMPRESSION_HINT => 0x84EF, GL_TEXTURE_COMPRESSED_IMAGE_SIZE => 0x86A0, GL_TEXTURE_COMPRESSED => 0x86A1, GL_NUM_COMPRESSED_TEXTURE_FORMATS => 0x86A2, GL_COMPRESSED_TEXTURE_FORMATS => 0x86A3, GL_CLAMP_TO_BORDER => 0x812D, GL_COMBINE => 0x8570, GL_COMBINE_RGB => 0x8571, GL_COMBINE_ALPHA => 0x8572, GL_SOURCE0_RGB => 0x8580, GL_SOURCE1_RGB => 0x8581, GL_SOURCE2_RGB => 0x8582, GL_SOURCE0_ALPHA => 0x8588, GL_SOURCE1_ALPHA => 0x8589, GL_SOURCE2_ALPHA => 0x858A, GL_OPERAND0_RGB => 0x8590, GL_OPERAND1_RGB => 0x8591, GL_OPERAND2_RGB => 0x8592, GL_OPERAND0_ALPHA => 0x8598, GL_OPERAND1_ALPHA => 0x8599, GL_OPERAND2_ALPHA => 0x859A, GL_RGB_SCALE => 0x8573, GL_ADD_SIGNED => 0x8574, GL_INTERPOLATE => 0x8575, GL_SUBTRACT => 0x84E7, GL_CONSTANT => 0x8576, GL_PRIMARY_COLOR => 0x8577, GL_PREVIOUS => 0x8578, GL_DOT3_RGB => 0x86AE, GL_DOT3_RGBA => 0x86AF, GL_BLEND_DST_RGB => 0x80C8, GL_BLEND_SRC_RGB => 0x80C9, GL_BLEND_DST_ALPHA => 0x80CA, GL_BLEND_SRC_ALPHA => 0x80CB, GL_POINT_SIZE_MIN => 0x8126, GL_POINT_SIZE_MAX => 0x8127, GL_POINT_FADE_THRESHOLD_SIZE => 0x8128, GL_POINT_DISTANCE_ATTENUATION => 0x8129, GL_GENERATE_MIPMAP => 0x8191, GL_GENERATE_MIPMAP_HINT => 0x8192, GL_DEPTH_COMPONENT16 => 0x81A5, GL_DEPTH_COMPONENT24 => 0x81A6, GL_DEPTH_COMPONENT32 => 0x81A7, GL_MIRRORED_REPEAT => 0x8370, GL_FOG_COORDINATE_SOURCE => 0x8450, GL_FOG_COORDINATE => 0x8451, GL_FRAGMENT_DEPTH => 0x8452, GL_CURRENT_FOG_COORDINATE => 0x8453, GL_FOG_COORDINATE_ARRAY_TYPE => 0x8454, GL_FOG_COORDINATE_ARRAY_STRIDE => 0x8455, GL_FOG_COORDINATE_ARRAY_POINTER => 0x8456, GL_FOG_COORDINATE_ARRAY => 0x8457, GL_COLOR_SUM => 0x8458, GL_CURRENT_SECONDARY_COLOR => 0x8459, GL_SECONDARY_COLOR_ARRAY_SIZE => 0x845A, GL_SECONDARY_COLOR_ARRAY_TYPE => 0x845B, GL_SECONDARY_COLOR_ARRAY_STRIDE => 0x845C, GL_SECONDARY_COLOR_ARRAY_POINTER => 0x845D, GL_SECONDARY_COLOR_ARRAY => 0x845E, GL_MAX_TEXTURE_LOD_BIAS => 0x84FD, GL_TEXTURE_FILTER_CONTROL => 0x8500, GL_TEXTURE_LOD_BIAS => 0x8501, GL_INCR_WRAP => 0x8507, GL_DECR_WRAP => 0x8508, GL_TEXTURE_DEPTH_SIZE => 0x884A, GL_DEPTH_TEXTURE_MODE => 0x884B, GL_TEXTURE_COMPARE_MODE => 0x884C, GL_TEXTURE_COMPARE_FUNC => 0x884D, GL_COMPARE_R_TO_TEXTURE => 0x884E, GL_BUFFER_SIZE => 0x8764, GL_BUFFER_USAGE => 0x8765, GL_QUERY_COUNTER_BITS => 0x8864, GL_CURRENT_QUERY => 0x8865, GL_QUERY_RESULT => 0x8866, GL_QUERY_RESULT_AVAILABLE => 0x8867, GL_ARRAY_BUFFER => 0x8892, GL_ELEMENT_ARRAY_BUFFER => 0x8893, GL_ARRAY_BUFFER_BINDING => 0x8894, GL_ELEMENT_ARRAY_BUFFER_BINDING => 0x8895, GL_VERTEX_ARRAY_BUFFER_BINDING => 0x8896, GL_NORMAL_ARRAY_BUFFER_BINDING => 0x8897, GL_COLOR_ARRAY_BUFFER_BINDING => 0x8898, GL_INDEX_ARRAY_BUFFER_BINDING => 0x8899, GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING => 0x889A, GL_EDGE_FLAG_ARRAY_BUFFER_BINDING => 0x889B, GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING => 0x889C, GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING => 0x889D, GL_WEIGHT_ARRAY_BUFFER_BINDING => 0x889E, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING => 0x889F, GL_READ_ONLY => 0x88B8, GL_WRITE_ONLY => 0x88B9, GL_READ_WRITE => 0x88BA, GL_BUFFER_ACCESS => 0x88BB, GL_BUFFER_MAPPED => 0x88BC, GL_BUFFER_MAP_POINTER => 0x88BD, GL_STREAM_DRAW => 0x88E0, GL_STREAM_READ => 0x88E1, GL_STREAM_COPY => 0x88E2, GL_STATIC_DRAW => 0x88E4, GL_STATIC_READ => 0x88E5, GL_STATIC_COPY => 0x88E6, GL_DYNAMIC_DRAW => 0x88E8, GL_DYNAMIC_READ => 0x88E9, GL_DYNAMIC_COPY => 0x88EA, GL_SAMPLES_PASSED => 0x8914, GL_FOG_COORD_SRC => 0x8450, GL_FOG_COORD => 0x8451, GL_CURRENT_FOG_COORD => 0x8453, GL_FOG_COORD_ARRAY_TYPE => 0x8454, GL_FOG_COORD_ARRAY_STRIDE => 0x8455, GL_FOG_COORD_ARRAY_POINTER => 0x8456, GL_FOG_COORD_ARRAY => 0x8457, GL_FOG_COORD_ARRAY_BUFFER_BINDING => 0x889D, GL_SRC0_RGB => 0x8580, GL_SRC1_RGB => 0x8581, GL_SRC2_RGB => 0x8582, GL_SRC0_ALPHA => 0x8588, GL_SRC1_ALPHA => 0x8589, GL_SRC2_ALPHA => 0x858A, GL_BLEND_EQUATION_RGB => 0x8009, GL_VERTEX_ATTRIB_ARRAY_ENABLED => 0x8622, GL_VERTEX_ATTRIB_ARRAY_SIZE => 0x8623, GL_VERTEX_ATTRIB_ARRAY_STRIDE => 0x8624, GL_VERTEX_ATTRIB_ARRAY_TYPE => 0x8625, GL_CURRENT_VERTEX_ATTRIB => 0x8626, GL_VERTEX_PROGRAM_POINT_SIZE => 0x8642, GL_VERTEX_PROGRAM_TWO_SIDE => 0x8643, GL_VERTEX_ATTRIB_ARRAY_POINTER => 0x8645, GL_STENCIL_BACK_FUNC => 0x8800, GL_STENCIL_BACK_FAIL => 0x8801, GL_STENCIL_BACK_PASS_DEPTH_FAIL => 0x8802, GL_STENCIL_BACK_PASS_DEPTH_PASS => 0x8803, GL_MAX_DRAW_BUFFERS => 0x8824, GL_DRAW_BUFFER0 => 0x8825, GL_DRAW_BUFFER1 => 0x8826, GL_DRAW_BUFFER2 => 0x8827, GL_DRAW_BUFFER3 => 0x8828, GL_DRAW_BUFFER4 => 0x8829, GL_DRAW_BUFFER5 => 0x882A, GL_DRAW_BUFFER6 => 0x882B, GL_DRAW_BUFFER7 => 0x882C, GL_DRAW_BUFFER8 => 0x882D, GL_DRAW_BUFFER9 => 0x882E, GL_DRAW_BUFFER10 => 0x882F, GL_DRAW_BUFFER11 => 0x8830, GL_DRAW_BUFFER12 => 0x8831, GL_DRAW_BUFFER13 => 0x8832, GL_DRAW_BUFFER14 => 0x8833, GL_DRAW_BUFFER15 => 0x8834, GL_BLEND_EQUATION_ALPHA => 0x883D, GL_POINT_SPRITE => 0x8861, GL_COORD_REPLACE => 0x8862, GL_MAX_VERTEX_ATTRIBS => 0x8869, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED => 0x886A, GL_MAX_TEXTURE_COORDS => 0x8871, GL_MAX_TEXTURE_IMAGE_UNITS => 0x8872, GL_FRAGMENT_SHADER => 0x8B30, GL_VERTEX_SHADER => 0x8B31, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS => 0x8B49, GL_MAX_VERTEX_UNIFORM_COMPONENTS => 0x8B4A, GL_MAX_VARYING_FLOATS => 0x8B4B, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS => 0x8B4C, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS => 0x8B4D, GL_SHADER_TYPE => 0x8B4F, GL_FLOAT_VEC2 => 0x8B50, GL_FLOAT_VEC3 => 0x8B51, GL_FLOAT_VEC4 => 0x8B52, GL_INT_VEC2 => 0x8B53, GL_INT_VEC3 => 0x8B54, GL_INT_VEC4 => 0x8B55, GL_BOOL => 0x8B56, GL_BOOL_VEC2 => 0x8B57, GL_BOOL_VEC3 => 0x8B58, GL_BOOL_VEC4 => 0x8B59, GL_FLOAT_MAT2 => 0x8B5A, GL_FLOAT_MAT3 => 0x8B5B, GL_FLOAT_MAT4 => 0x8B5C, GL_SAMPLER_1D => 0x8B5D, GL_SAMPLER_2D => 0x8B5E, GL_SAMPLER_3D => 0x8B5F, GL_SAMPLER_CUBE => 0x8B60, GL_SAMPLER_1D_SHADOW => 0x8B61, GL_SAMPLER_2D_SHADOW => 0x8B62, GL_DELETE_STATUS => 0x8B80, GL_COMPILE_STATUS => 0x8B81, GL_LINK_STATUS => 0x8B82, GL_VALIDATE_STATUS => 0x8B83, GL_INFO_LOG_LENGTH => 0x8B84, GL_ATTACHED_SHADERS => 0x8B85, GL_ACTIVE_UNIFORMS => 0x8B86, GL_ACTIVE_UNIFORM_MAX_LENGTH => 0x8B87, GL_SHADER_SOURCE_LENGTH => 0x8B88, GL_ACTIVE_ATTRIBUTES => 0x8B89, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH => 0x8B8A, GL_FRAGMENT_SHADER_DERIVATIVE_HINT => 0x8B8B, GL_SHADING_LANGUAGE_VERSION => 0x8B8C, GL_CURRENT_PROGRAM => 0x8B8D, GL_POINT_SPRITE_COORD_ORIGIN => 0x8CA0, GL_LOWER_LEFT => 0x8CA1, GL_UPPER_LEFT => 0x8CA2, GL_STENCIL_BACK_REF => 0x8CA3, GL_STENCIL_BACK_VALUE_MASK => 0x8CA4, GL_STENCIL_BACK_WRITEMASK => 0x8CA5, GL_TEXTURE0_ARB => 0x84C0, GL_TEXTURE1_ARB => 0x84C1, GL_TEXTURE2_ARB => 0x84C2, GL_TEXTURE3_ARB => 0x84C3, GL_TEXTURE4_ARB => 0x84C4, GL_TEXTURE5_ARB => 0x84C5, GL_TEXTURE6_ARB => 0x84C6, GL_TEXTURE7_ARB => 0x84C7, GL_TEXTURE8_ARB => 0x84C8, GL_TEXTURE9_ARB => 0x84C9, GL_TEXTURE10_ARB => 0x84CA, GL_TEXTURE11_ARB => 0x84CB, GL_TEXTURE12_ARB => 0x84CC, GL_TEXTURE13_ARB => 0x84CD, GL_TEXTURE14_ARB => 0x84CE, GL_TEXTURE15_ARB => 0x84CF, GL_TEXTURE16_ARB => 0x84D0, GL_TEXTURE17_ARB => 0x84D1, GL_TEXTURE18_ARB => 0x84D2, GL_TEXTURE19_ARB => 0x84D3, GL_TEXTURE20_ARB => 0x84D4, GL_TEXTURE21_ARB => 0x84D5, GL_TEXTURE22_ARB => 0x84D6, GL_TEXTURE23_ARB => 0x84D7, GL_TEXTURE24_ARB => 0x84D8, GL_TEXTURE25_ARB => 0x84D9, GL_TEXTURE26_ARB => 0x84DA, GL_TEXTURE27_ARB => 0x84DB, GL_TEXTURE28_ARB => 0x84DC, GL_TEXTURE29_ARB => 0x84DD, GL_TEXTURE30_ARB => 0x84DE, GL_TEXTURE31_ARB => 0x84DF, GL_ACTIVE_TEXTURE_ARB => 0x84E0, GL_CLIENT_ACTIVE_TEXTURE_ARB => 0x84E1, GL_MAX_TEXTURE_UNITS_ARB => 0x84E2, GL_TRANSPOSE_MODELVIEW_MATRIX_ARB => 0x84E3, GL_TRANSPOSE_PROJECTION_MATRIX_ARB => 0x84E4, GL_TRANSPOSE_TEXTURE_MATRIX_ARB => 0x84E5, GL_TRANSPOSE_COLOR_MATRIX_ARB => 0x84E6, GL_MULTISAMPLE_ARB => 0x809D, GL_SAMPLE_ALPHA_TO_COVERAGE_ARB => 0x809E, GL_SAMPLE_ALPHA_TO_ONE_ARB => 0x809F, GL_SAMPLE_COVERAGE_ARB => 0x80A0, GL_SAMPLE_BUFFERS_ARB => 0x80A8, GL_SAMPLES_ARB => 0x80A9, GL_SAMPLE_COVERAGE_VALUE_ARB => 0x80AA, GL_SAMPLE_COVERAGE_INVERT_ARB => 0x80AB, GL_MULTISAMPLE_BIT_ARB => 0x20000000, GL_NORMAL_MAP_ARB => 0x8511, GL_REFLECTION_MAP_ARB => 0x8512, GL_TEXTURE_CUBE_MAP_ARB => 0x8513, GL_TEXTURE_BINDING_CUBE_MAP_ARB => 0x8514, GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB => 0x8515, GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB => 0x8516, GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB => 0x8517, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB => 0x8518, GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB => 0x8519, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB => 0x851A, GL_PROXY_TEXTURE_CUBE_MAP_ARB => 0x851B, GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB => 0x851C, GL_COMPRESSED_ALPHA_ARB => 0x84E9, GL_COMPRESSED_LUMINANCE_ARB => 0x84EA, GL_COMPRESSED_LUMINANCE_ALPHA_ARB => 0x84EB, GL_COMPRESSED_INTENSITY_ARB => 0x84EC, GL_COMPRESSED_RGB_ARB => 0x84ED, GL_COMPRESSED_RGBA_ARB => 0x84EE, GL_TEXTURE_COMPRESSION_HINT_ARB => 0x84EF, GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB => 0x86A0, GL_TEXTURE_COMPRESSED_ARB => 0x86A1, GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB => 0x86A2, GL_COMPRESSED_TEXTURE_FORMATS_ARB => 0x86A3, GL_CLAMP_TO_BORDER_ARB => 0x812D, GL_POINT_SIZE_MIN_ARB => 0x8126, GL_POINT_SIZE_MAX_ARB => 0x8127, GL_POINT_FADE_THRESHOLD_SIZE_ARB => 0x8128, GL_POINT_DISTANCE_ATTENUATION_ARB => 0x8129, GL_MAX_VERTEX_UNITS_ARB => 0x86A4, GL_ACTIVE_VERTEX_UNITS_ARB => 0x86A5, GL_WEIGHT_SUM_UNITY_ARB => 0x86A6, GL_VERTEX_BLEND_ARB => 0x86A7, GL_CURRENT_WEIGHT_ARB => 0x86A8, GL_WEIGHT_ARRAY_TYPE_ARB => 0x86A9, GL_WEIGHT_ARRAY_STRIDE_ARB => 0x86AA, GL_WEIGHT_ARRAY_SIZE_ARB => 0x86AB, GL_WEIGHT_ARRAY_POINTER_ARB => 0x86AC, GL_WEIGHT_ARRAY_ARB => 0x86AD, GL_MODELVIEW0_ARB => 0x1700, GL_MODELVIEW1_ARB => 0x850A, GL_MODELVIEW2_ARB => 0x8722, GL_MODELVIEW3_ARB => 0x8723, GL_MODELVIEW4_ARB => 0x8724, GL_MODELVIEW5_ARB => 0x8725, GL_MODELVIEW6_ARB => 0x8726, GL_MODELVIEW7_ARB => 0x8727, GL_MODELVIEW8_ARB => 0x8728, GL_MODELVIEW9_ARB => 0x8729, GL_MODELVIEW10_ARB => 0x872A, GL_MODELVIEW11_ARB => 0x872B, GL_MODELVIEW12_ARB => 0x872C, GL_MODELVIEW13_ARB => 0x872D, GL_MODELVIEW14_ARB => 0x872E, GL_MODELVIEW15_ARB => 0x872F, GL_MODELVIEW16_ARB => 0x8730, GL_MODELVIEW17_ARB => 0x8731, GL_MODELVIEW18_ARB => 0x8732, GL_MODELVIEW19_ARB => 0x8733, GL_MODELVIEW20_ARB => 0x8734, GL_MODELVIEW21_ARB => 0x8735, GL_MODELVIEW22_ARB => 0x8736, GL_MODELVIEW23_ARB => 0x8737, GL_MODELVIEW24_ARB => 0x8738, GL_MODELVIEW25_ARB => 0x8739, GL_MODELVIEW26_ARB => 0x873A, GL_MODELVIEW27_ARB => 0x873B, GL_MODELVIEW28_ARB => 0x873C, GL_MODELVIEW29_ARB => 0x873D, GL_MODELVIEW30_ARB => 0x873E, GL_MODELVIEW31_ARB => 0x873F, GL_MATRIX_PALETTE_ARB => 0x8840, GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB => 0x8841, GL_MAX_PALETTE_MATRICES_ARB => 0x8842, GL_CURRENT_PALETTE_MATRIX_ARB => 0x8843, GL_MATRIX_INDEX_ARRAY_ARB => 0x8844, GL_CURRENT_MATRIX_INDEX_ARB => 0x8845, GL_MATRIX_INDEX_ARRAY_SIZE_ARB => 0x8846, GL_MATRIX_INDEX_ARRAY_TYPE_ARB => 0x8847, GL_MATRIX_INDEX_ARRAY_STRIDE_ARB => 0x8848, GL_MATRIX_INDEX_ARRAY_POINTER_ARB => 0x8849, GL_COMBINE_ARB => 0x8570, GL_COMBINE_RGB_ARB => 0x8571, GL_COMBINE_ALPHA_ARB => 0x8572, GL_SOURCE0_RGB_ARB => 0x8580, GL_SOURCE1_RGB_ARB => 0x8581, GL_SOURCE2_RGB_ARB => 0x8582, GL_SOURCE0_ALPHA_ARB => 0x8588, GL_SOURCE1_ALPHA_ARB => 0x8589, GL_SOURCE2_ALPHA_ARB => 0x858A, GL_OPERAND0_RGB_ARB => 0x8590, GL_OPERAND1_RGB_ARB => 0x8591, GL_OPERAND2_RGB_ARB => 0x8592, GL_OPERAND0_ALPHA_ARB => 0x8598, GL_OPERAND1_ALPHA_ARB => 0x8599, GL_OPERAND2_ALPHA_ARB => 0x859A, GL_RGB_SCALE_ARB => 0x8573, GL_ADD_SIGNED_ARB => 0x8574, GL_INTERPOLATE_ARB => 0x8575, GL_SUBTRACT_ARB => 0x84E7, GL_CONSTANT_ARB => 0x8576, GL_PRIMARY_COLOR_ARB => 0x8577, GL_PREVIOUS_ARB => 0x8578, GL_DOT3_RGB_ARB => 0x86AE, GL_DOT3_RGBA_ARB => 0x86AF, GL_MIRRORED_REPEAT_ARB => 0x8370, GL_DEPTH_COMPONENT16_ARB => 0x81A5, GL_DEPTH_COMPONENT24_ARB => 0x81A6, GL_DEPTH_COMPONENT32_ARB => 0x81A7, GL_TEXTURE_DEPTH_SIZE_ARB => 0x884A, GL_DEPTH_TEXTURE_MODE_ARB => 0x884B, GL_TEXTURE_COMPARE_MODE_ARB => 0x884C, GL_TEXTURE_COMPARE_FUNC_ARB => 0x884D, GL_COMPARE_R_TO_TEXTURE_ARB => 0x884E, GL_TEXTURE_COMPARE_FAIL_VALUE_ARB => 0x80BF, GL_COLOR_SUM_ARB => 0x8458, GL_VERTEX_PROGRAM_ARB => 0x8620, GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB => 0x8622, GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB => 0x8623, GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB => 0x8624, GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB => 0x8625, GL_CURRENT_VERTEX_ATTRIB_ARB => 0x8626, GL_PROGRAM_LENGTH_ARB => 0x8627, GL_PROGRAM_STRING_ARB => 0x8628, GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB => 0x862E, GL_MAX_PROGRAM_MATRICES_ARB => 0x862F, GL_CURRENT_MATRIX_STACK_DEPTH_ARB => 0x8640, GL_CURRENT_MATRIX_ARB => 0x8641, GL_VERTEX_PROGRAM_POINT_SIZE_ARB => 0x8642, GL_VERTEX_PROGRAM_TWO_SIDE_ARB => 0x8643, GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB => 0x8645, GL_PROGRAM_ERROR_POSITION_ARB => 0x864B, GL_PROGRAM_BINDING_ARB => 0x8677, GL_MAX_VERTEX_ATTRIBS_ARB => 0x8869, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB => 0x886A, GL_PROGRAM_ERROR_STRING_ARB => 0x8874, GL_PROGRAM_FORMAT_ASCII_ARB => 0x8875, GL_PROGRAM_FORMAT_ARB => 0x8876, GL_PROGRAM_INSTRUCTIONS_ARB => 0x88A0, GL_MAX_PROGRAM_INSTRUCTIONS_ARB => 0x88A1, GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB => 0x88A2, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB => 0x88A3, GL_PROGRAM_TEMPORARIES_ARB => 0x88A4, GL_MAX_PROGRAM_TEMPORARIES_ARB => 0x88A5, GL_PROGRAM_NATIVE_TEMPORARIES_ARB => 0x88A6, GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB => 0x88A7, GL_PROGRAM_PARAMETERS_ARB => 0x88A8, GL_MAX_PROGRAM_PARAMETERS_ARB => 0x88A9, GL_PROGRAM_NATIVE_PARAMETERS_ARB => 0x88AA, GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB => 0x88AB, GL_PROGRAM_ATTRIBS_ARB => 0x88AC, GL_MAX_PROGRAM_ATTRIBS_ARB => 0x88AD, GL_PROGRAM_NATIVE_ATTRIBS_ARB => 0x88AE, GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB => 0x88AF, GL_PROGRAM_ADDRESS_REGISTERS_ARB => 0x88B0, GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB => 0x88B1, GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB => 0x88B2, GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB => 0x88B3, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB => 0x88B4, GL_MAX_PROGRAM_ENV_PARAMETERS_ARB => 0x88B5, GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB => 0x88B6, GL_TRANSPOSE_CURRENT_MATRIX_ARB => 0x88B7, GL_MATRIX0_ARB => 0x88C0, GL_MATRIX1_ARB => 0x88C1, GL_MATRIX2_ARB => 0x88C2, GL_MATRIX3_ARB => 0x88C3, GL_MATRIX4_ARB => 0x88C4, GL_MATRIX5_ARB => 0x88C5, GL_MATRIX6_ARB => 0x88C6, GL_MATRIX7_ARB => 0x88C7, GL_MATRIX8_ARB => 0x88C8, GL_MATRIX9_ARB => 0x88C9, GL_MATRIX10_ARB => 0x88CA, GL_MATRIX11_ARB => 0x88CB, GL_MATRIX12_ARB => 0x88CC, GL_MATRIX13_ARB => 0x88CD, GL_MATRIX14_ARB => 0x88CE, GL_MATRIX15_ARB => 0x88CF, GL_MATRIX16_ARB => 0x88D0, GL_MATRIX17_ARB => 0x88D1, GL_MATRIX18_ARB => 0x88D2, GL_MATRIX19_ARB => 0x88D3, GL_MATRIX20_ARB => 0x88D4, GL_MATRIX21_ARB => 0x88D5, GL_MATRIX22_ARB => 0x88D6, GL_MATRIX23_ARB => 0x88D7, GL_MATRIX24_ARB => 0x88D8, GL_MATRIX25_ARB => 0x88D9, GL_MATRIX26_ARB => 0x88DA, GL_MATRIX27_ARB => 0x88DB, GL_MATRIX28_ARB => 0x88DC, GL_MATRIX29_ARB => 0x88DD, GL_MATRIX30_ARB => 0x88DE, GL_MATRIX31_ARB => 0x88DF, GL_FRAGMENT_PROGRAM_ARB => 0x8804, GL_PROGRAM_ALU_INSTRUCTIONS_ARB => 0x8805, GL_PROGRAM_TEX_INSTRUCTIONS_ARB => 0x8806, GL_PROGRAM_TEX_INDIRECTIONS_ARB => 0x8807, GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB => 0x8808, GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB => 0x8809, GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB => 0x880A, GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB => 0x880B, GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB => 0x880C, GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB => 0x880D, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB => 0x880E, GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB => 0x880F, GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB => 0x8810, GL_MAX_TEXTURE_COORDS_ARB => 0x8871, GL_MAX_TEXTURE_IMAGE_UNITS_ARB => 0x8872, GL_BUFFER_SIZE_ARB => 0x8764, GL_BUFFER_USAGE_ARB => 0x8765, GL_ARRAY_BUFFER_ARB => 0x8892, GL_ELEMENT_ARRAY_BUFFER_ARB => 0x8893, GL_ARRAY_BUFFER_BINDING_ARB => 0x8894, GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB => 0x8895, GL_VERTEX_ARRAY_BUFFER_BINDING_ARB => 0x8896, GL_NORMAL_ARRAY_BUFFER_BINDING_ARB => 0x8897, GL_COLOR_ARRAY_BUFFER_BINDING_ARB => 0x8898, GL_INDEX_ARRAY_BUFFER_BINDING_ARB => 0x8899, GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB => 0x889A, GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB => 0x889B, GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB => 0x889C, GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB => 0x889D, GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB => 0x889E, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB => 0x889F, GL_READ_ONLY_ARB => 0x88B8, GL_WRITE_ONLY_ARB => 0x88B9, GL_READ_WRITE_ARB => 0x88BA, GL_BUFFER_ACCESS_ARB => 0x88BB, GL_BUFFER_MAPPED_ARB => 0x88BC, GL_BUFFER_MAP_POINTER_ARB => 0x88BD, GL_STREAM_DRAW_ARB => 0x88E0, GL_STREAM_READ_ARB => 0x88E1, GL_STREAM_COPY_ARB => 0x88E2, GL_STATIC_DRAW_ARB => 0x88E4, GL_STATIC_READ_ARB => 0x88E5, GL_STATIC_COPY_ARB => 0x88E6, GL_DYNAMIC_DRAW_ARB => 0x88E8, GL_DYNAMIC_READ_ARB => 0x88E9, GL_DYNAMIC_COPY_ARB => 0x88EA, GL_QUERY_COUNTER_BITS_ARB => 0x8864, GL_CURRENT_QUERY_ARB => 0x8865, GL_QUERY_RESULT_ARB => 0x8866, GL_QUERY_RESULT_AVAILABLE_ARB => 0x8867, GL_SAMPLES_PASSED_ARB => 0x8914, GL_PROGRAM_OBJECT_ARB => 0x8B40, GL_SHADER_OBJECT_ARB => 0x8B48, GL_OBJECT_TYPE_ARB => 0x8B4E, GL_OBJECT_SUBTYPE_ARB => 0x8B4F, GL_FLOAT_VEC2_ARB => 0x8B50, GL_FLOAT_VEC3_ARB => 0x8B51, GL_FLOAT_VEC4_ARB => 0x8B52, GL_INT_VEC2_ARB => 0x8B53, GL_INT_VEC3_ARB => 0x8B54, GL_INT_VEC4_ARB => 0x8B55, GL_BOOL_ARB => 0x8B56, GL_BOOL_VEC2_ARB => 0x8B57, GL_BOOL_VEC3_ARB => 0x8B58, GL_BOOL_VEC4_ARB => 0x8B59, GL_FLOAT_MAT2_ARB => 0x8B5A, GL_FLOAT_MAT3_ARB => 0x8B5B, GL_FLOAT_MAT4_ARB => 0x8B5C, GL_SAMPLER_1D_ARB => 0x8B5D, GL_SAMPLER_2D_ARB => 0x8B5E, GL_SAMPLER_3D_ARB => 0x8B5F, GL_SAMPLER_CUBE_ARB => 0x8B60, GL_SAMPLER_1D_SHADOW_ARB => 0x8B61, GL_SAMPLER_2D_SHADOW_ARB => 0x8B62, GL_SAMPLER_2D_RECT_ARB => 0x8B63, GL_SAMPLER_2D_RECT_SHADOW_ARB => 0x8B64, GL_OBJECT_DELETE_STATUS_ARB => 0x8B80, GL_OBJECT_COMPILE_STATUS_ARB => 0x8B81, GL_OBJECT_LINK_STATUS_ARB => 0x8B82, GL_OBJECT_VALIDATE_STATUS_ARB => 0x8B83, GL_OBJECT_INFO_LOG_LENGTH_ARB => 0x8B84, GL_OBJECT_ATTACHED_OBJECTS_ARB => 0x8B85, GL_OBJECT_ACTIVE_UNIFORMS_ARB => 0x8B86, GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB => 0x8B87, GL_OBJECT_SHADER_SOURCE_LENGTH_ARB => 0x8B88, GL_VERTEX_SHADER_ARB => 0x8B31, GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB => 0x8B4A, GL_MAX_VARYING_FLOATS_ARB => 0x8B4B, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB => 0x8B4C, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB => 0x8B4D, GL_OBJECT_ACTIVE_ATTRIBUTES_ARB => 0x8B89, GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB => 0x8B8A, GL_FRAGMENT_SHADER_ARB => 0x8B30, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB => 0x8B49, GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB => 0x8B8B, GL_SHADING_LANGUAGE_VERSION_ARB => 0x8B8C, GL_POINT_SPRITE_ARB => 0x8861, GL_COORD_REPLACE_ARB => 0x8862, GL_MAX_DRAW_BUFFERS_ARB => 0x8824, GL_DRAW_BUFFER0_ARB => 0x8825, GL_DRAW_BUFFER1_ARB => 0x8826, GL_DRAW_BUFFER2_ARB => 0x8827, GL_DRAW_BUFFER3_ARB => 0x8828, GL_DRAW_BUFFER4_ARB => 0x8829, GL_DRAW_BUFFER5_ARB => 0x882A, GL_DRAW_BUFFER6_ARB => 0x882B, GL_DRAW_BUFFER7_ARB => 0x882C, GL_DRAW_BUFFER8_ARB => 0x882D, GL_DRAW_BUFFER9_ARB => 0x882E, GL_DRAW_BUFFER10_ARB => 0x882F, GL_DRAW_BUFFER11_ARB => 0x8830, GL_DRAW_BUFFER12_ARB => 0x8831, GL_DRAW_BUFFER13_ARB => 0x8832, GL_DRAW_BUFFER14_ARB => 0x8833, GL_DRAW_BUFFER15_ARB => 0x8834, GL_TEXTURE_RECTANGLE_ARB => 0x84F5, GL_TEXTURE_BINDING_RECTANGLE_ARB => 0x84F6, GL_PROXY_TEXTURE_RECTANGLE_ARB => 0x84F7, GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB => 0x84F8, GL_RGBA_FLOAT_MODE_ARB => 0x8820, GL_CLAMP_VERTEX_COLOR_ARB => 0x891A, GL_CLAMP_FRAGMENT_COLOR_ARB => 0x891B, GL_CLAMP_READ_COLOR_ARB => 0x891C, GL_FIXED_ONLY_ARB => 0x891D, GL_HALF_FLOAT_ARB => 0x140B, GL_TEXTURE_RED_TYPE_ARB => 0x8C10, GL_TEXTURE_GREEN_TYPE_ARB => 0x8C11, GL_TEXTURE_BLUE_TYPE_ARB => 0x8C12, GL_TEXTURE_ALPHA_TYPE_ARB => 0x8C13, GL_TEXTURE_LUMINANCE_TYPE_ARB => 0x8C14, GL_TEXTURE_INTENSITY_TYPE_ARB => 0x8C15, GL_TEXTURE_DEPTH_TYPE_ARB => 0x8C16, GL_UNSIGNED_NORMALIZED_ARB => 0x8C17, GL_RGBA32F_ARB => 0x8814, GL_RGB32F_ARB => 0x8815, GL_ALPHA32F_ARB => 0x8816, GL_INTENSITY32F_ARB => 0x8817, GL_LUMINANCE32F_ARB => 0x8818, GL_LUMINANCE_ALPHA32F_ARB => 0x8819, GL_RGBA16F_ARB => 0x881A, GL_RGB16F_ARB => 0x881B, GL_ALPHA16F_ARB => 0x881C, GL_INTENSITY16F_ARB => 0x881D, GL_LUMINANCE16F_ARB => 0x881E, GL_LUMINANCE_ALPHA16F_ARB => 0x881F, GL_PIXEL_PACK_BUFFER_ARB => 0x88EB, GL_PIXEL_UNPACK_BUFFER_ARB => 0x88EC, GL_PIXEL_PACK_BUFFER_BINDING_ARB => 0x88ED, GL_PIXEL_UNPACK_BUFFER_BINDING_ARB => 0x88EF, GL_ABGR_EXT => 0x8000, GL_CONSTANT_COLOR_EXT => 0x8001, GL_ONE_MINUS_CONSTANT_COLOR_EXT => 0x8002, GL_CONSTANT_ALPHA_EXT => 0x8003, GL_ONE_MINUS_CONSTANT_ALPHA_EXT => 0x8004, GL_BLEND_COLOR_EXT => 0x8005, GL_POLYGON_OFFSET_EXT => 0x8037, GL_POLYGON_OFFSET_FACTOR_EXT => 0x8038, GL_POLYGON_OFFSET_BIAS_EXT => 0x8039, GL_ALPHA4_EXT => 0x803B, GL_ALPHA8_EXT => 0x803C, GL_ALPHA12_EXT => 0x803D, GL_ALPHA16_EXT => 0x803E, GL_LUMINANCE4_EXT => 0x803F, GL_LUMINANCE8_EXT => 0x8040, GL_LUMINANCE12_EXT => 0x8041, GL_LUMINANCE16_EXT => 0x8042, GL_LUMINANCE4_ALPHA4_EXT => 0x8043, GL_LUMINANCE6_ALPHA2_EXT => 0x8044, GL_LUMINANCE8_ALPHA8_EXT => 0x8045, GL_LUMINANCE12_ALPHA4_EXT => 0x8046, GL_LUMINANCE12_ALPHA12_EXT => 0x8047, GL_LUMINANCE16_ALPHA16_EXT => 0x8048, GL_INTENSITY_EXT => 0x8049, GL_INTENSITY4_EXT => 0x804A, GL_INTENSITY8_EXT => 0x804B, GL_INTENSITY12_EXT => 0x804C, GL_INTENSITY16_EXT => 0x804D, GL_RGB2_EXT => 0x804E, GL_RGB4_EXT => 0x804F, GL_RGB5_EXT => 0x8050, GL_RGB8_EXT => 0x8051, GL_RGB10_EXT => 0x8052, GL_RGB12_EXT => 0x8053, GL_RGB16_EXT => 0x8054, GL_RGBA2_EXT => 0x8055, GL_RGBA4_EXT => 0x8056, GL_RGB5_A1_EXT => 0x8057, GL_RGBA8_EXT => 0x8058, GL_RGB10_A2_EXT => 0x8059, GL_RGBA12_EXT => 0x805A, GL_RGBA16_EXT => 0x805B, GL_TEXTURE_RED_SIZE_EXT => 0x805C, GL_TEXTURE_GREEN_SIZE_EXT => 0x805D, GL_TEXTURE_BLUE_SIZE_EXT => 0x805E, GL_TEXTURE_ALPHA_SIZE_EXT => 0x805F, GL_TEXTURE_LUMINANCE_SIZE_EXT => 0x8060, GL_TEXTURE_INTENSITY_SIZE_EXT => 0x8061, GL_REPLACE_EXT => 0x8062, GL_PROXY_TEXTURE_1D_EXT => 0x8063, GL_PROXY_TEXTURE_2D_EXT => 0x8064, GL_TEXTURE_TOO_LARGE_EXT => 0x8065, GL_PACK_SKIP_IMAGES_EXT => 0x806B, GL_PACK_IMAGE_HEIGHT_EXT => 0x806C, GL_UNPACK_SKIP_IMAGES_EXT => 0x806D, GL_UNPACK_IMAGE_HEIGHT_EXT => 0x806E, GL_TEXTURE_3D_EXT => 0x806F, GL_PROXY_TEXTURE_3D_EXT => 0x8070, GL_TEXTURE_DEPTH_EXT => 0x8071, GL_TEXTURE_WRAP_R_EXT => 0x8072, GL_MAX_3D_TEXTURE_SIZE_EXT => 0x8073, GL_FILTER4_SGIS => 0x8146, GL_TEXTURE_FILTER4_SIZE_SGIS => 0x8147, GL_HISTOGRAM_EXT => 0x8024, GL_PROXY_HISTOGRAM_EXT => 0x8025, GL_HISTOGRAM_WIDTH_EXT => 0x8026, GL_HISTOGRAM_FORMAT_EXT => 0x8027, GL_HISTOGRAM_RED_SIZE_EXT => 0x8028, GL_HISTOGRAM_GREEN_SIZE_EXT => 0x8029, GL_HISTOGRAM_BLUE_SIZE_EXT => 0x802A, GL_HISTOGRAM_ALPHA_SIZE_EXT => 0x802B, GL_HISTOGRAM_LUMINANCE_SIZE_EXT => 0x802C, GL_HISTOGRAM_SINK_EXT => 0x802D, GL_MINMAX_EXT => 0x802E, GL_MINMAX_FORMAT_EXT => 0x802F, GL_MINMAX_SINK_EXT => 0x8030, GL_TABLE_TOO_LARGE_EXT => 0x8031, GL_CONVOLUTION_1D_EXT => 0x8010, GL_CONVOLUTION_2D_EXT => 0x8011, GL_SEPARABLE_2D_EXT => 0x8012, GL_CONVOLUTION_BORDER_MODE_EXT => 0x8013, GL_CONVOLUTION_FILTER_SCALE_EXT => 0x8014, GL_CONVOLUTION_FILTER_BIAS_EXT => 0x8015, GL_REDUCE_EXT => 0x8016, GL_CONVOLUTION_FORMAT_EXT => 0x8017, GL_CONVOLUTION_WIDTH_EXT => 0x8018, GL_CONVOLUTION_HEIGHT_EXT => 0x8019, GL_MAX_CONVOLUTION_WIDTH_EXT => 0x801A, GL_MAX_CONVOLUTION_HEIGHT_EXT => 0x801B, GL_POST_CONVOLUTION_RED_SCALE_EXT => 0x801C, GL_POST_CONVOLUTION_GREEN_SCALE_EXT => 0x801D, GL_POST_CONVOLUTION_BLUE_SCALE_EXT => 0x801E, GL_POST_CONVOLUTION_ALPHA_SCALE_EXT => 0x801F, GL_POST_CONVOLUTION_RED_BIAS_EXT => 0x8020, GL_POST_CONVOLUTION_GREEN_BIAS_EXT => 0x8021, GL_POST_CONVOLUTION_BLUE_BIAS_EXT => 0x8022, GL_POST_CONVOLUTION_ALPHA_BIAS_EXT => 0x8023, GL_COLOR_MATRIX_SGI => 0x80B1, GL_COLOR_MATRIX_STACK_DEPTH_SGI => 0x80B2, GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI => 0x80B3, GL_POST_COLOR_MATRIX_RED_SCALE_SGI => 0x80B4, GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI => 0x80B5, GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI => 0x80B6, GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI => 0x80B7, GL_POST_COLOR_MATRIX_RED_BIAS_SGI => 0x80B8, GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI => 0x80B9, GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI => 0x80BA, GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI => 0x80BB, GL_COLOR_TABLE_SGI => 0x80D0, GL_POST_CONVOLUTION_COLOR_TABLE_SGI => 0x80D1, GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI => 0x80D2, GL_PROXY_COLOR_TABLE_SGI => 0x80D3, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI => 0x80D4, GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI => 0x80D5, GL_COLOR_TABLE_SCALE_SGI => 0x80D6, GL_COLOR_TABLE_BIAS_SGI => 0x80D7, GL_COLOR_TABLE_FORMAT_SGI => 0x80D8, GL_COLOR_TABLE_WIDTH_SGI => 0x80D9, GL_COLOR_TABLE_RED_SIZE_SGI => 0x80DA, GL_COLOR_TABLE_GREEN_SIZE_SGI => 0x80DB, GL_COLOR_TABLE_BLUE_SIZE_SGI => 0x80DC, GL_COLOR_TABLE_ALPHA_SIZE_SGI => 0x80DD, GL_COLOR_TABLE_LUMINANCE_SIZE_SGI => 0x80DE, GL_COLOR_TABLE_INTENSITY_SIZE_SGI => 0x80DF, GL_PIXEL_TEXTURE_SGIS => 0x8353, GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS => 0x8354, GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS => 0x8355, GL_PIXEL_GROUP_COLOR_SGIS => 0x8356, GL_PIXEL_TEX_GEN_SGIX => 0x8139, GL_PIXEL_TEX_GEN_MODE_SGIX => 0x832B, GL_PACK_SKIP_VOLUMES_SGIS => 0x8130, GL_PACK_IMAGE_DEPTH_SGIS => 0x8131, GL_UNPACK_SKIP_VOLUMES_SGIS => 0x8132, GL_UNPACK_IMAGE_DEPTH_SGIS => 0x8133, GL_TEXTURE_4D_SGIS => 0x8134, GL_PROXY_TEXTURE_4D_SGIS => 0x8135, GL_TEXTURE_4DSIZE_SGIS => 0x8136, GL_TEXTURE_WRAP_Q_SGIS => 0x8137, GL_MAX_4D_TEXTURE_SIZE_SGIS => 0x8138, GL_TEXTURE_4D_BINDING_SGIS => 0x814F, GL_TEXTURE_COLOR_TABLE_SGI => 0x80BC, GL_PROXY_TEXTURE_COLOR_TABLE_SGI => 0x80BD, GL_CMYK_EXT => 0x800C, GL_CMYKA_EXT => 0x800D, GL_PACK_CMYK_HINT_EXT => 0x800E, GL_UNPACK_CMYK_HINT_EXT => 0x800F, GL_TEXTURE_PRIORITY_EXT => 0x8066, GL_TEXTURE_RESIDENT_EXT => 0x8067, GL_TEXTURE_1D_BINDING_EXT => 0x8068, GL_TEXTURE_2D_BINDING_EXT => 0x8069, GL_TEXTURE_3D_BINDING_EXT => 0x806A, GL_DETAIL_TEXTURE_2D_SGIS => 0x8095, GL_DETAIL_TEXTURE_2D_BINDING_SGIS => 0x8096, GL_LINEAR_DETAIL_SGIS => 0x8097, GL_LINEAR_DETAIL_ALPHA_SGIS => 0x8098, GL_LINEAR_DETAIL_COLOR_SGIS => 0x8099, GL_DETAIL_TEXTURE_LEVEL_SGIS => 0x809A, GL_DETAIL_TEXTURE_MODE_SGIS => 0x809B, GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS => 0x809C, GL_LINEAR_SHARPEN_SGIS => 0x80AD, GL_LINEAR_SHARPEN_ALPHA_SGIS => 0x80AE, GL_LINEAR_SHARPEN_COLOR_SGIS => 0x80AF, GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS => 0x80B0, GL_UNSIGNED_BYTE_3_3_2_EXT => 0x8032, GL_UNSIGNED_SHORT_4_4_4_4_EXT => 0x8033, GL_UNSIGNED_SHORT_5_5_5_1_EXT => 0x8034, GL_UNSIGNED_INT_8_8_8_8_EXT => 0x8035, GL_UNSIGNED_INT_10_10_10_2_EXT => 0x8036, GL_TEXTURE_MIN_LOD_SGIS => 0x813A, GL_TEXTURE_MAX_LOD_SGIS => 0x813B, GL_TEXTURE_BASE_LEVEL_SGIS => 0x813C, GL_TEXTURE_MAX_LEVEL_SGIS => 0x813D, GL_MULTISAMPLE_SGIS => 0x809D, GL_SAMPLE_ALPHA_TO_MASK_SGIS => 0x809E, GL_SAMPLE_ALPHA_TO_ONE_SGIS => 0x809F, GL_SAMPLE_MASK_SGIS => 0x80A0, GL_1PASS_SGIS => 0x80A1, GL_2PASS_0_SGIS => 0x80A2, GL_2PASS_1_SGIS => 0x80A3, GL_4PASS_0_SGIS => 0x80A4, GL_4PASS_1_SGIS => 0x80A5, GL_4PASS_2_SGIS => 0x80A6, GL_4PASS_3_SGIS => 0x80A7, GL_SAMPLE_BUFFERS_SGIS => 0x80A8, GL_SAMPLES_SGIS => 0x80A9, GL_SAMPLE_MASK_VALUE_SGIS => 0x80AA, GL_SAMPLE_MASK_INVERT_SGIS => 0x80AB, GL_SAMPLE_PATTERN_SGIS => 0x80AC, GL_RESCALE_NORMAL_EXT => 0x803A, GL_VERTEX_ARRAY_EXT => 0x8074, GL_NORMAL_ARRAY_EXT => 0x8075, GL_COLOR_ARRAY_EXT => 0x8076, GL_INDEX_ARRAY_EXT => 0x8077, GL_TEXTURE_COORD_ARRAY_EXT => 0x8078, GL_EDGE_FLAG_ARRAY_EXT => 0x8079, GL_VERTEX_ARRAY_SIZE_EXT => 0x807A, GL_VERTEX_ARRAY_TYPE_EXT => 0x807B, GL_VERTEX_ARRAY_STRIDE_EXT => 0x807C, GL_VERTEX_ARRAY_COUNT_EXT => 0x807D, GL_NORMAL_ARRAY_TYPE_EXT => 0x807E, GL_NORMAL_ARRAY_STRIDE_EXT => 0x807F, GL_NORMAL_ARRAY_COUNT_EXT => 0x8080, GL_COLOR_ARRAY_SIZE_EXT => 0x8081, GL_COLOR_ARRAY_TYPE_EXT => 0x8082, GL_COLOR_ARRAY_STRIDE_EXT => 0x8083, GL_COLOR_ARRAY_COUNT_EXT => 0x8084, GL_INDEX_ARRAY_TYPE_EXT => 0x8085, GL_INDEX_ARRAY_STRIDE_EXT => 0x8086, GL_INDEX_ARRAY_COUNT_EXT => 0x8087, GL_TEXTURE_COORD_ARRAY_SIZE_EXT => 0x8088, GL_TEXTURE_COORD_ARRAY_TYPE_EXT => 0x8089, GL_TEXTURE_COORD_ARRAY_STRIDE_EXT => 0x808A, GL_TEXTURE_COORD_ARRAY_COUNT_EXT => 0x808B, GL_EDGE_FLAG_ARRAY_STRIDE_EXT => 0x808C, GL_EDGE_FLAG_ARRAY_COUNT_EXT => 0x808D, GL_VERTEX_ARRAY_POINTER_EXT => 0x808E, GL_NORMAL_ARRAY_POINTER_EXT => 0x808F, GL_COLOR_ARRAY_POINTER_EXT => 0x8090, GL_INDEX_ARRAY_POINTER_EXT => 0x8091, GL_TEXTURE_COORD_ARRAY_POINTER_EXT => 0x8092, GL_EDGE_FLAG_ARRAY_POINTER_EXT => 0x8093, GL_GENERATE_MIPMAP_SGIS => 0x8191, GL_GENERATE_MIPMAP_HINT_SGIS => 0x8192, GL_LINEAR_CLIPMAP_LINEAR_SGIX => 0x8170, GL_TEXTURE_CLIPMAP_CENTER_SGIX => 0x8171, GL_TEXTURE_CLIPMAP_FRAME_SGIX => 0x8172, GL_TEXTURE_CLIPMAP_OFFSET_SGIX => 0x8173, GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX => 0x8174, GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX => 0x8175, GL_TEXTURE_CLIPMAP_DEPTH_SGIX => 0x8176, GL_MAX_CLIPMAP_DEPTH_SGIX => 0x8177, GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX => 0x8178, GL_NEAREST_CLIPMAP_NEAREST_SGIX => 0x844D, GL_NEAREST_CLIPMAP_LINEAR_SGIX => 0x844E, GL_LINEAR_CLIPMAP_NEAREST_SGIX => 0x844F, GL_TEXTURE_COMPARE_SGIX => 0x819A, GL_TEXTURE_COMPARE_OPERATOR_SGIX => 0x819B, GL_TEXTURE_LEQUAL_R_SGIX => 0x819C, GL_TEXTURE_GEQUAL_R_SGIX => 0x819D, GL_CLAMP_TO_EDGE_SGIS => 0x812F, GL_CLAMP_TO_BORDER_SGIS => 0x812D, GL_FUNC_ADD_EXT => 0x8006, GL_MIN_EXT => 0x8007, GL_MAX_EXT => 0x8008, GL_BLEND_EQUATION_EXT => 0x8009, GL_FUNC_SUBTRACT_EXT => 0x800A, GL_FUNC_REVERSE_SUBTRACT_EXT => 0x800B, GL_INTERLACE_SGIX => 0x8094, GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX => 0x813E, GL_PIXEL_TILE_CACHE_INCREMENT_SGIX => 0x813F, GL_PIXEL_TILE_WIDTH_SGIX => 0x8140, GL_PIXEL_TILE_HEIGHT_SGIX => 0x8141, GL_PIXEL_TILE_GRID_WIDTH_SGIX => 0x8142, GL_PIXEL_TILE_GRID_HEIGHT_SGIX => 0x8143, GL_PIXEL_TILE_GRID_DEPTH_SGIX => 0x8144, GL_PIXEL_TILE_CACHE_SIZE_SGIX => 0x8145, GL_DUAL_ALPHA4_SGIS => 0x8110, GL_DUAL_ALPHA8_SGIS => 0x8111, GL_DUAL_ALPHA12_SGIS => 0x8112, GL_DUAL_ALPHA16_SGIS => 0x8113, GL_DUAL_LUMINANCE4_SGIS => 0x8114, GL_DUAL_LUMINANCE8_SGIS => 0x8115, GL_DUAL_LUMINANCE12_SGIS => 0x8116, GL_DUAL_LUMINANCE16_SGIS => 0x8117, GL_DUAL_INTENSITY4_SGIS => 0x8118, GL_DUAL_INTENSITY8_SGIS => 0x8119, GL_DUAL_INTENSITY12_SGIS => 0x811A, GL_DUAL_INTENSITY16_SGIS => 0x811B, GL_DUAL_LUMINANCE_ALPHA4_SGIS => 0x811C, GL_DUAL_LUMINANCE_ALPHA8_SGIS => 0x811D, GL_QUAD_ALPHA4_SGIS => 0x811E, GL_QUAD_ALPHA8_SGIS => 0x811F, GL_QUAD_LUMINANCE4_SGIS => 0x8120, GL_QUAD_LUMINANCE8_SGIS => 0x8121, GL_QUAD_INTENSITY4_SGIS => 0x8122, GL_QUAD_INTENSITY8_SGIS => 0x8123, GL_DUAL_TEXTURE_SELECT_SGIS => 0x8124, GL_QUAD_TEXTURE_SELECT_SGIS => 0x8125, GL_SPRITE_SGIX => 0x8148, GL_SPRITE_MODE_SGIX => 0x8149, GL_SPRITE_AXIS_SGIX => 0x814A, GL_SPRITE_TRANSLATION_SGIX => 0x814B, GL_SPRITE_AXIAL_SGIX => 0x814C, GL_SPRITE_OBJECT_ALIGNED_SGIX => 0x814D, GL_SPRITE_EYE_ALIGNED_SGIX => 0x814E, GL_TEXTURE_MULTI_BUFFER_HINT_SGIX => 0x812E, GL_POINT_SIZE_MIN_EXT => 0x8126, GL_POINT_SIZE_MAX_EXT => 0x8127, GL_POINT_FADE_THRESHOLD_SIZE_EXT => 0x8128, GL_DISTANCE_ATTENUATION_EXT => 0x8129, GL_POINT_SIZE_MIN_SGIS => 0x8126, GL_POINT_SIZE_MAX_SGIS => 0x8127, GL_POINT_FADE_THRESHOLD_SIZE_SGIS => 0x8128, GL_DISTANCE_ATTENUATION_SGIS => 0x8129, GL_INSTRUMENT_BUFFER_POINTER_SGIX => 0x8180, GL_INSTRUMENT_MEASUREMENTS_SGIX => 0x8181, GL_POST_TEXTURE_FILTER_BIAS_SGIX => 0x8179, GL_POST_TEXTURE_FILTER_SCALE_SGIX => 0x817A, GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX => 0x817B, GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX => 0x817C, GL_FRAMEZOOM_SGIX => 0x818B, GL_FRAMEZOOM_FACTOR_SGIX => 0x818C, GL_MAX_FRAMEZOOM_FACTOR_SGIX => 0x818D, GL_TEXTURE_DEFORMATION_BIT_SGIX => 0x00000001, GL_GEOMETRY_DEFORMATION_BIT_SGIX => 0x00000002, GL_GEOMETRY_DEFORMATION_SGIX => 0x8194, GL_TEXTURE_DEFORMATION_SGIX => 0x8195, GL_DEFORMATIONS_MASK_SGIX => 0x8196, GL_MAX_DEFORMATION_ORDER_SGIX => 0x8197, GL_REFERENCE_PLANE_SGIX => 0x817D, GL_REFERENCE_PLANE_EQUATION_SGIX => 0x817E, GL_DEPTH_COMPONENT16_SGIX => 0x81A5, GL_DEPTH_COMPONENT24_SGIX => 0x81A6, GL_DEPTH_COMPONENT32_SGIX => 0x81A7, GL_FOG_FUNC_SGIS => 0x812A, GL_FOG_FUNC_POINTS_SGIS => 0x812B, GL_MAX_FOG_FUNC_POINTS_SGIS => 0x812C, GL_FOG_OFFSET_SGIX => 0x8198, GL_FOG_OFFSET_VALUE_SGIX => 0x8199, GL_IMAGE_SCALE_X_HP => 0x8155, GL_IMAGE_SCALE_Y_HP => 0x8156, GL_IMAGE_TRANSLATE_X_HP => 0x8157, GL_IMAGE_TRANSLATE_Y_HP => 0x8158, GL_IMAGE_ROTATE_ANGLE_HP => 0x8159, GL_IMAGE_ROTATE_ORIGIN_X_HP => 0x815A, GL_IMAGE_ROTATE_ORIGIN_Y_HP => 0x815B, GL_IMAGE_MAG_FILTER_HP => 0x815C, GL_IMAGE_MIN_FILTER_HP => 0x815D, GL_IMAGE_CUBIC_WEIGHT_HP => 0x815E, GL_CUBIC_HP => 0x815F, GL_AVERAGE_HP => 0x8160, GL_IMAGE_TRANSFORM_2D_HP => 0x8161, GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP => 0x8162, GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP => 0x8163, GL_IGNORE_BORDER_HP => 0x8150, GL_CONSTANT_BORDER_HP => 0x8151, GL_REPLICATE_BORDER_HP => 0x8153, GL_CONVOLUTION_BORDER_COLOR_HP => 0x8154, GL_TEXTURE_ENV_BIAS_SGIX => 0x80BE, GL_VERTEX_DATA_HINT_PGI => 0x1A22A, GL_VERTEX_CONSISTENT_HINT_PGI => 0x1A22B, GL_MATERIAL_SIDE_HINT_PGI => 0x1A22C, GL_MAX_VERTEX_HINT_PGI => 0x1A22D, GL_COLOR3_BIT_PGI => 0x00010000, GL_COLOR4_BIT_PGI => 0x00020000, GL_EDGEFLAG_BIT_PGI => 0x00040000, GL_INDEX_BIT_PGI => 0x00080000, GL_MAT_AMBIENT_BIT_PGI => 0x00100000, GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI => 0x00200000, GL_MAT_DIFFUSE_BIT_PGI => 0x00400000, GL_MAT_EMISSION_BIT_PGI => 0x00800000, GL_MAT_COLOR_INDEXES_BIT_PGI => 0x01000000, GL_MAT_SHININESS_BIT_PGI => 0x02000000, GL_MAT_SPECULAR_BIT_PGI => 0x04000000, GL_NORMAL_BIT_PGI => 0x08000000, GL_TEXCOORD1_BIT_PGI => 0x10000000, GL_TEXCOORD2_BIT_PGI => 0x20000000, GL_TEXCOORD3_BIT_PGI => 0x40000000, GL_TEXCOORD4_BIT_PGI => 0x80000000, GL_VERTEX23_BIT_PGI => 0x00000004, GL_VERTEX4_BIT_PGI => 0x00000008, GL_PREFER_DOUBLEBUFFER_HINT_PGI => 0x1A1F8, GL_CONSERVE_MEMORY_HINT_PGI => 0x1A1FD, GL_RECLAIM_MEMORY_HINT_PGI => 0x1A1FE, GL_NATIVE_GRAPHICS_HANDLE_PGI => 0x1A202, GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI => 0x1A203, GL_NATIVE_GRAPHICS_END_HINT_PGI => 0x1A204, GL_ALWAYS_FAST_HINT_PGI => 0x1A20C, GL_ALWAYS_SOFT_HINT_PGI => 0x1A20D, GL_ALLOW_DRAW_OBJ_HINT_PGI => 0x1A20E, GL_ALLOW_DRAW_WIN_HINT_PGI => 0x1A20F, GL_ALLOW_DRAW_FRG_HINT_PGI => 0x1A210, GL_ALLOW_DRAW_MEM_HINT_PGI => 0x1A211, GL_STRICT_DEPTHFUNC_HINT_PGI => 0x1A216, GL_STRICT_LIGHTING_HINT_PGI => 0x1A217, GL_STRICT_SCISSOR_HINT_PGI => 0x1A218, GL_FULL_STIPPLE_HINT_PGI => 0x1A219, GL_CLIP_NEAR_HINT_PGI => 0x1A220, GL_CLIP_FAR_HINT_PGI => 0x1A221, GL_WIDE_LINE_HINT_PGI => 0x1A222, GL_BACK_NORMALS_HINT_PGI => 0x1A223, GL_COLOR_INDEX1_EXT => 0x80E2, GL_COLOR_INDEX2_EXT => 0x80E3, GL_COLOR_INDEX4_EXT => 0x80E4, GL_COLOR_INDEX8_EXT => 0x80E5, GL_COLOR_INDEX12_EXT => 0x80E6, GL_COLOR_INDEX16_EXT => 0x80E7, GL_TEXTURE_INDEX_SIZE_EXT => 0x80ED, GL_CLIP_VOLUME_CLIPPING_HINT_EXT => 0x80F0, GL_LIST_PRIORITY_SGIX => 0x8182, GL_IR_INSTRUMENT1_SGIX => 0x817F, GL_CALLIGRAPHIC_FRAGMENT_SGIX => 0x8183, GL_TEXTURE_LOD_BIAS_S_SGIX => 0x818E, GL_TEXTURE_LOD_BIAS_T_SGIX => 0x818F, GL_TEXTURE_LOD_BIAS_R_SGIX => 0x8190, GL_SHADOW_AMBIENT_SGIX => 0x80BF, GL_INDEX_MATERIAL_EXT => 0x81B8, GL_INDEX_MATERIAL_PARAMETER_EXT => 0x81B9, GL_INDEX_MATERIAL_FACE_EXT => 0x81BA, GL_INDEX_TEST_EXT => 0x81B5, GL_INDEX_TEST_FUNC_EXT => 0x81B6, GL_INDEX_TEST_REF_EXT => 0x81B7, GL_IUI_V2F_EXT => 0x81AD, GL_IUI_V3F_EXT => 0x81AE, GL_IUI_N3F_V2F_EXT => 0x81AF, GL_IUI_N3F_V3F_EXT => 0x81B0, GL_T2F_IUI_V2F_EXT => 0x81B1, GL_T2F_IUI_V3F_EXT => 0x81B2, GL_T2F_IUI_N3F_V2F_EXT => 0x81B3, GL_T2F_IUI_N3F_V3F_EXT => 0x81B4, GL_ARRAY_ELEMENT_LOCK_FIRST_EXT => 0x81A8, GL_ARRAY_ELEMENT_LOCK_COUNT_EXT => 0x81A9, GL_CULL_VERTEX_EXT => 0x81AA, GL_CULL_VERTEX_EYE_POSITION_EXT => 0x81AB, GL_CULL_VERTEX_OBJECT_POSITION_EXT => 0x81AC, GL_YCRCB_422_SGIX => 0x81BB, GL_YCRCB_444_SGIX => 0x81BC, GL_FRAGMENT_LIGHTING_SGIX => 0x8400, GL_FRAGMENT_COLOR_MATERIAL_SGIX => 0x8401, GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX => 0x8402, GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX => 0x8403, GL_MAX_FRAGMENT_LIGHTS_SGIX => 0x8404, GL_MAX_ACTIVE_LIGHTS_SGIX => 0x8405, GL_CURRENT_RASTER_NORMAL_SGIX => 0x8406, GL_LIGHT_ENV_MODE_SGIX => 0x8407, GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX => 0x8408, GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX => 0x8409, GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX => 0x840A, GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX => 0x840B, GL_FRAGMENT_LIGHT0_SGIX => 0x840C, GL_FRAGMENT_LIGHT1_SGIX => 0x840D, GL_FRAGMENT_LIGHT2_SGIX => 0x840E, GL_FRAGMENT_LIGHT3_SGIX => 0x840F, GL_FRAGMENT_LIGHT4_SGIX => 0x8410, GL_FRAGMENT_LIGHT5_SGIX => 0x8411, GL_FRAGMENT_LIGHT6_SGIX => 0x8412, GL_FRAGMENT_LIGHT7_SGIX => 0x8413, GL_RASTER_POSITION_UNCLIPPED_IBM => 0x19262, GL_TEXTURE_LIGHTING_MODE_HP => 0x8167, GL_TEXTURE_POST_SPECULAR_HP => 0x8168, GL_TEXTURE_PRE_SPECULAR_HP => 0x8169, GL_MAX_ELEMENTS_VERTICES_EXT => 0x80E8, GL_MAX_ELEMENTS_INDICES_EXT => 0x80E9, GL_PHONG_WIN => 0x80EA, GL_PHONG_HINT_WIN => 0x80EB, GL_FOG_SPECULAR_TEXTURE_WIN => 0x80EC, GL_FRAGMENT_MATERIAL_EXT => 0x8349, GL_FRAGMENT_NORMAL_EXT => 0x834A, GL_FRAGMENT_COLOR_EXT => 0x834C, GL_ATTENUATION_EXT => 0x834D, GL_SHADOW_ATTENUATION_EXT => 0x834E, GL_TEXTURE_APPLICATION_MODE_EXT => 0x834F, GL_TEXTURE_LIGHT_EXT => 0x8350, GL_TEXTURE_MATERIAL_FACE_EXT => 0x8351, GL_TEXTURE_MATERIAL_PARAMETER_EXT => 0x8352, GL_ALPHA_MIN_SGIX => 0x8320, GL_ALPHA_MAX_SGIX => 0x8321, GL_PIXEL_TEX_GEN_Q_CEILING_SGIX => 0x8184, GL_PIXEL_TEX_GEN_Q_ROUND_SGIX => 0x8185, GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX => 0x8186, GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX => 0x8187, GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX => 0x8188, GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX => 0x8189, GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX => 0x818A, GL_BGR_EXT => 0x80E0, GL_BGRA_EXT => 0x80E1, GL_ASYNC_MARKER_SGIX => 0x8329, GL_ASYNC_TEX_IMAGE_SGIX => 0x835C, GL_ASYNC_DRAW_PIXELS_SGIX => 0x835D, GL_ASYNC_READ_PIXELS_SGIX => 0x835E, GL_MAX_ASYNC_TEX_IMAGE_SGIX => 0x835F, GL_MAX_ASYNC_DRAW_PIXELS_SGIX => 0x8360, GL_MAX_ASYNC_READ_PIXELS_SGIX => 0x8361, GL_ASYNC_HISTOGRAM_SGIX => 0x832C, GL_MAX_ASYNC_HISTOGRAM_SGIX => 0x832D, GL_PARALLEL_ARRAYS_INTEL => 0x83F4, GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL => 0x83F5, GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL => 0x83F6, GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL => 0x83F7, GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL => 0x83F8, GL_OCCLUSION_TEST_HP => 0x8165, GL_OCCLUSION_TEST_RESULT_HP => 0x8166, GL_PIXEL_TRANSFORM_2D_EXT => 0x8330, GL_PIXEL_MAG_FILTER_EXT => 0x8331, GL_PIXEL_MIN_FILTER_EXT => 0x8332, GL_PIXEL_CUBIC_WEIGHT_EXT => 0x8333, GL_CUBIC_EXT => 0x8334, GL_AVERAGE_EXT => 0x8335, GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT => 0x8336, GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT => 0x8337, GL_PIXEL_TRANSFORM_2D_MATRIX_EXT => 0x8338, GL_SHARED_TEXTURE_PALETTE_EXT => 0x81FB, GL_LIGHT_MODEL_COLOR_CONTROL_EXT => 0x81F8, GL_SINGLE_COLOR_EXT => 0x81F9, GL_SEPARATE_SPECULAR_COLOR_EXT => 0x81FA, GL_COLOR_SUM_EXT => 0x8458, GL_CURRENT_SECONDARY_COLOR_EXT => 0x8459, GL_SECONDARY_COLOR_ARRAY_SIZE_EXT => 0x845A, GL_SECONDARY_COLOR_ARRAY_TYPE_EXT => 0x845B, GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT => 0x845C, GL_SECONDARY_COLOR_ARRAY_POINTER_EXT => 0x845D, GL_SECONDARY_COLOR_ARRAY_EXT => 0x845E, GL_PERTURB_EXT => 0x85AE, GL_TEXTURE_NORMAL_EXT => 0x85AF, GL_FOG_COORDINATE_SOURCE_EXT => 0x8450, GL_FOG_COORDINATE_EXT => 0x8451, GL_FRAGMENT_DEPTH_EXT => 0x8452, GL_CURRENT_FOG_COORDINATE_EXT => 0x8453, GL_FOG_COORDINATE_ARRAY_TYPE_EXT => 0x8454, GL_FOG_COORDINATE_ARRAY_STRIDE_EXT => 0x8455, GL_FOG_COORDINATE_ARRAY_POINTER_EXT => 0x8456, GL_FOG_COORDINATE_ARRAY_EXT => 0x8457, GL_SCREEN_COORDINATES_REND => 0x8490, GL_INVERTED_SCREEN_W_REND => 0x8491, GL_TANGENT_ARRAY_EXT => 0x8439, GL_BINORMAL_ARRAY_EXT => 0x843A, GL_CURRENT_TANGENT_EXT => 0x843B, GL_CURRENT_BINORMAL_EXT => 0x843C, GL_TANGENT_ARRAY_TYPE_EXT => 0x843E, GL_TANGENT_ARRAY_STRIDE_EXT => 0x843F, GL_BINORMAL_ARRAY_TYPE_EXT => 0x8440, GL_BINORMAL_ARRAY_STRIDE_EXT => 0x8441, GL_TANGENT_ARRAY_POINTER_EXT => 0x8442, GL_BINORMAL_ARRAY_POINTER_EXT => 0x8443, GL_MAP1_TANGENT_EXT => 0x8444, GL_MAP2_TANGENT_EXT => 0x8445, GL_MAP1_BINORMAL_EXT => 0x8446, GL_MAP2_BINORMAL_EXT => 0x8447, GL_COMBINE_EXT => 0x8570, GL_COMBINE_RGB_EXT => 0x8571, GL_COMBINE_ALPHA_EXT => 0x8572, GL_RGB_SCALE_EXT => 0x8573, GL_ADD_SIGNED_EXT => 0x8574, GL_INTERPOLATE_EXT => 0x8575, GL_CONSTANT_EXT => 0x8576, GL_PRIMARY_COLOR_EXT => 0x8577, GL_PREVIOUS_EXT => 0x8578, GL_SOURCE0_RGB_EXT => 0x8580, GL_SOURCE1_RGB_EXT => 0x8581, GL_SOURCE2_RGB_EXT => 0x8582, GL_SOURCE0_ALPHA_EXT => 0x8588, GL_SOURCE1_ALPHA_EXT => 0x8589, GL_SOURCE2_ALPHA_EXT => 0x858A, GL_OPERAND0_RGB_EXT => 0x8590, GL_OPERAND1_RGB_EXT => 0x8591, GL_OPERAND2_RGB_EXT => 0x8592, GL_OPERAND0_ALPHA_EXT => 0x8598, GL_OPERAND1_ALPHA_EXT => 0x8599, GL_OPERAND2_ALPHA_EXT => 0x859A, GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE => 0x85B0, GL_TRANSFORM_HINT_APPLE => 0x85B1, GL_FOG_SCALE_SGIX => 0x81FC, GL_FOG_SCALE_VALUE_SGIX => 0x81FD, GL_UNPACK_CONSTANT_DATA_SUNX => 0x81D5, GL_TEXTURE_CONSTANT_DATA_SUNX => 0x81D6, GL_GLOBAL_ALPHA_SUN => 0x81D9, GL_GLOBAL_ALPHA_FACTOR_SUN => 0x81DA, GL_RESTART_SUN => 0x0001, GL_REPLACE_MIDDLE_SUN => 0x0002, GL_REPLACE_OLDEST_SUN => 0x0003, GL_TRIANGLE_LIST_SUN => 0x81D7, GL_REPLACEMENT_CODE_SUN => 0x81D8, GL_REPLACEMENT_CODE_ARRAY_SUN => 0x85C0, GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN => 0x85C1, GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN => 0x85C2, GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN => 0x85C3, GL_R1UI_V3F_SUN => 0x85C4, GL_R1UI_C4UB_V3F_SUN => 0x85C5, GL_R1UI_C3F_V3F_SUN => 0x85C6, GL_R1UI_N3F_V3F_SUN => 0x85C7, GL_R1UI_C4F_N3F_V3F_SUN => 0x85C8, GL_R1UI_T2F_V3F_SUN => 0x85C9, GL_R1UI_T2F_N3F_V3F_SUN => 0x85CA, GL_R1UI_T2F_C4F_N3F_V3F_SUN => 0x85CB, GL_BLEND_DST_RGB_EXT => 0x80C8, GL_BLEND_SRC_RGB_EXT => 0x80C9, GL_BLEND_DST_ALPHA_EXT => 0x80CA, GL_BLEND_SRC_ALPHA_EXT => 0x80CB, GL_RED_MIN_CLAMP_INGR => 0x8560, GL_GREEN_MIN_CLAMP_INGR => 0x8561, GL_BLUE_MIN_CLAMP_INGR => 0x8562, GL_ALPHA_MIN_CLAMP_INGR => 0x8563, GL_RED_MAX_CLAMP_INGR => 0x8564, GL_GREEN_MAX_CLAMP_INGR => 0x8565, GL_BLUE_MAX_CLAMP_INGR => 0x8566, GL_ALPHA_MAX_CLAMP_INGR => 0x8567, GL_INTERLACE_READ_INGR => 0x8568, GL_INCR_WRAP_EXT => 0x8507, GL_DECR_WRAP_EXT => 0x8508, GL_422_EXT => 0x80CC, GL_422_REV_EXT => 0x80CD, GL_422_AVERAGE_EXT => 0x80CE, GL_422_REV_AVERAGE_EXT => 0x80CF, GL_NORMAL_MAP_NV => 0x8511, GL_REFLECTION_MAP_NV => 0x8512, GL_NORMAL_MAP_EXT => 0x8511, GL_REFLECTION_MAP_EXT => 0x8512, GL_TEXTURE_CUBE_MAP_EXT => 0x8513, GL_TEXTURE_BINDING_CUBE_MAP_EXT => 0x8514, GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT => 0x8515, GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT => 0x8516, GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT => 0x8517, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT => 0x8518, GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT => 0x8519, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT => 0x851A, GL_PROXY_TEXTURE_CUBE_MAP_EXT => 0x851B, GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT => 0x851C, GL_WRAP_BORDER_SUN => 0x81D4, GL_MAX_TEXTURE_LOD_BIAS_EXT => 0x84FD, GL_TEXTURE_FILTER_CONTROL_EXT => 0x8500, GL_TEXTURE_LOD_BIAS_EXT => 0x8501, GL_TEXTURE_MAX_ANISOTROPY_EXT => 0x84FE, GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT => 0x84FF, GL_MODELVIEW0_STACK_DEPTH_EXT => GL_MODELVIEW_STACK_DEPTH, GL_MODELVIEW1_STACK_DEPTH_EXT => 0x8502, GL_MODELVIEW0_MATRIX_EXT => GL_MODELVIEW_MATRIX, GL_MODELVIEW1_MATRIX_EXT => 0x8506, GL_VERTEX_WEIGHTING_EXT => 0x8509, GL_MODELVIEW0_EXT => GL_MODELVIEW, GL_MODELVIEW1_EXT => 0x850A, GL_CURRENT_VERTEX_WEIGHT_EXT => 0x850B, GL_VERTEX_WEIGHT_ARRAY_EXT => 0x850C, GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT => 0x850D, GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT => 0x850E, GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT => 0x850F, GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT => 0x8510, GL_MAX_SHININESS_NV => 0x8504, GL_MAX_SPOT_EXPONENT_NV => 0x8505, GL_VERTEX_ARRAY_RANGE_NV => 0x851D, GL_VERTEX_ARRAY_RANGE_LENGTH_NV => 0x851E, GL_VERTEX_ARRAY_RANGE_VALID_NV => 0x851F, GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV => 0x8520, GL_VERTEX_ARRAY_RANGE_POINTER_NV => 0x8521, GL_REGISTER_COMBINERS_NV => 0x8522, GL_VARIABLE_A_NV => 0x8523, GL_VARIABLE_B_NV => 0x8524, GL_VARIABLE_C_NV => 0x8525, GL_VARIABLE_D_NV => 0x8526, GL_VARIABLE_E_NV => 0x8527, GL_VARIABLE_F_NV => 0x8528, GL_VARIABLE_G_NV => 0x8529, GL_CONSTANT_COLOR0_NV => 0x852A, GL_CONSTANT_COLOR1_NV => 0x852B, GL_PRIMARY_COLOR_NV => 0x852C, GL_SECONDARY_COLOR_NV => 0x852D, GL_SPARE0_NV => 0x852E, GL_SPARE1_NV => 0x852F, GL_DISCARD_NV => 0x8530, GL_E_TIMES_F_NV => 0x8531, GL_SPARE0_PLUS_SECONDARY_COLOR_NV => 0x8532, GL_UNSIGNED_IDENTITY_NV => 0x8536, GL_UNSIGNED_INVERT_NV => 0x8537, GL_EXPAND_NORMAL_NV => 0x8538, GL_EXPAND_NEGATE_NV => 0x8539, GL_HALF_BIAS_NORMAL_NV => 0x853A, GL_HALF_BIAS_NEGATE_NV => 0x853B, GL_SIGNED_IDENTITY_NV => 0x853C, GL_SIGNED_NEGATE_NV => 0x853D, GL_SCALE_BY_TWO_NV => 0x853E, GL_SCALE_BY_FOUR_NV => 0x853F, GL_SCALE_BY_ONE_HALF_NV => 0x8540, GL_BIAS_BY_NEGATIVE_ONE_HALF_NV => 0x8541, GL_COMBINER_INPUT_NV => 0x8542, GL_COMBINER_MAPPING_NV => 0x8543, GL_COMBINER_COMPONENT_USAGE_NV => 0x8544, GL_COMBINER_AB_DOT_PRODUCT_NV => 0x8545, GL_COMBINER_CD_DOT_PRODUCT_NV => 0x8546, GL_COMBINER_MUX_SUM_NV => 0x8547, GL_COMBINER_SCALE_NV => 0x8548, GL_COMBINER_BIAS_NV => 0x8549, GL_COMBINER_AB_OUTPUT_NV => 0x854A, GL_COMBINER_CD_OUTPUT_NV => 0x854B, GL_COMBINER_SUM_OUTPUT_NV => 0x854C, GL_MAX_GENERAL_COMBINERS_NV => 0x854D, GL_NUM_GENERAL_COMBINERS_NV => 0x854E, GL_COLOR_SUM_CLAMP_NV => 0x854F, GL_COMBINER0_NV => 0x8550, GL_COMBINER1_NV => 0x8551, GL_COMBINER2_NV => 0x8552, GL_COMBINER3_NV => 0x8553, GL_COMBINER4_NV => 0x8554, GL_COMBINER5_NV => 0x8555, GL_COMBINER6_NV => 0x8556, GL_COMBINER7_NV => 0x8557, GL_FOG_DISTANCE_MODE_NV => 0x855A, GL_EYE_RADIAL_NV => 0x855B, GL_EYE_PLANE_ABSOLUTE_NV => 0x855C, GL_EMBOSS_LIGHT_NV => 0x855D, GL_EMBOSS_CONSTANT_NV => 0x855E, GL_EMBOSS_MAP_NV => 0x855F, GL_COMBINE4_NV => 0x8503, GL_SOURCE3_RGB_NV => 0x8583, GL_SOURCE3_ALPHA_NV => 0x858B, GL_OPERAND3_RGB_NV => 0x8593, GL_OPERAND3_ALPHA_NV => 0x859B, GL_COMPRESSED_RGB_S3TC_DXT1_EXT => 0x83F0, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT => 0x83F1, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT => 0x83F2, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT => 0x83F3, GL_CULL_VERTEX_IBM => 103050, GL_VERTEX_ARRAY_LIST_IBM => 103070, GL_NORMAL_ARRAY_LIST_IBM => 103071, GL_COLOR_ARRAY_LIST_IBM => 103072, GL_INDEX_ARRAY_LIST_IBM => 103073, GL_TEXTURE_COORD_ARRAY_LIST_IBM => 103074, GL_EDGE_FLAG_ARRAY_LIST_IBM => 103075, GL_FOG_COORDINATE_ARRAY_LIST_IBM => 103076, GL_SECONDARY_COLOR_ARRAY_LIST_IBM => 103077, GL_VERTEX_ARRAY_LIST_STRIDE_IBM => 103080, GL_NORMAL_ARRAY_LIST_STRIDE_IBM => 103081, GL_COLOR_ARRAY_LIST_STRIDE_IBM => 103082, GL_INDEX_ARRAY_LIST_STRIDE_IBM => 103083, GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM => 103084, GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM => 103085, GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM => 103086, GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM => 103087, GL_PACK_SUBSAMPLE_RATE_SGIX => 0x85A0, GL_UNPACK_SUBSAMPLE_RATE_SGIX => 0x85A1, GL_PIXEL_SUBSAMPLE_4444_SGIX => 0x85A2, GL_PIXEL_SUBSAMPLE_2424_SGIX => 0x85A3, GL_PIXEL_SUBSAMPLE_4242_SGIX => 0x85A4, GL_YCRCB_SGIX => 0x8318, GL_YCRCBA_SGIX => 0x8319, GL_DEPTH_PASS_INSTRUMENT_SGIX => 0x8310, GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX => 0x8311, GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX => 0x8312, GL_COMPRESSED_RGB_FXT1_3DFX => 0x86B0, GL_COMPRESSED_RGBA_FXT1_3DFX => 0x86B1, GL_MULTISAMPLE_3DFX => 0x86B2, GL_SAMPLE_BUFFERS_3DFX => 0x86B3, GL_SAMPLES_3DFX => 0x86B4, GL_MULTISAMPLE_BIT_3DFX => 0x20000000, GL_MULTISAMPLE_EXT => 0x809D, GL_SAMPLE_ALPHA_TO_MASK_EXT => 0x809E, GL_SAMPLE_ALPHA_TO_ONE_EXT => 0x809F, GL_SAMPLE_MASK_EXT => 0x80A0, GL_1PASS_EXT => 0x80A1, GL_2PASS_0_EXT => 0x80A2, GL_2PASS_1_EXT => 0x80A3, GL_4PASS_0_EXT => 0x80A4, GL_4PASS_1_EXT => 0x80A5, GL_4PASS_2_EXT => 0x80A6, GL_4PASS_3_EXT => 0x80A7, GL_SAMPLE_BUFFERS_EXT => 0x80A8, GL_SAMPLES_EXT => 0x80A9, GL_SAMPLE_MASK_VALUE_EXT => 0x80AA, GL_SAMPLE_MASK_INVERT_EXT => 0x80AB, GL_SAMPLE_PATTERN_EXT => 0x80AC, GL_MULTISAMPLE_BIT_EXT => 0x20000000, GL_VERTEX_PRECLIP_SGIX => 0x83EE, GL_VERTEX_PRECLIP_HINT_SGIX => 0x83EF, GL_CONVOLUTION_HINT_SGIX => 0x8316, GL_PACK_RESAMPLE_SGIX => 0x842C, GL_UNPACK_RESAMPLE_SGIX => 0x842D, GL_RESAMPLE_REPLICATE_SGIX => 0x842E, GL_RESAMPLE_ZERO_FILL_SGIX => 0x842F, GL_RESAMPLE_DECIMATE_SGIX => 0x8430, GL_EYE_DISTANCE_TO_POINT_SGIS => 0x81F0, GL_OBJECT_DISTANCE_TO_POINT_SGIS => 0x81F1, GL_EYE_DISTANCE_TO_LINE_SGIS => 0x81F2, GL_OBJECT_DISTANCE_TO_LINE_SGIS => 0x81F3, GL_EYE_POINT_SGIS => 0x81F4, GL_OBJECT_POINT_SGIS => 0x81F5, GL_EYE_LINE_SGIS => 0x81F6, GL_OBJECT_LINE_SGIS => 0x81F7, GL_TEXTURE_COLOR_WRITEMASK_SGIS => 0x81EF, GL_DOT3_RGB_EXT => 0x8740, GL_DOT3_RGBA_EXT => 0x8741, GL_MIRROR_CLAMP_ATI => 0x8742, GL_MIRROR_CLAMP_TO_EDGE_ATI => 0x8743, GL_ALL_COMPLETED_NV => 0x84F2, GL_FENCE_STATUS_NV => 0x84F3, GL_FENCE_CONDITION_NV => 0x84F4, GL_MIRRORED_REPEAT_IBM => 0x8370, GL_EVAL_2D_NV => 0x86C0, GL_EVAL_TRIANGULAR_2D_NV => 0x86C1, GL_MAP_TESSELLATION_NV => 0x86C2, GL_MAP_ATTRIB_U_ORDER_NV => 0x86C3, GL_MAP_ATTRIB_V_ORDER_NV => 0x86C4, GL_EVAL_FRACTIONAL_TESSELLATION_NV => 0x86C5, GL_EVAL_VERTEX_ATTRIB0_NV => 0x86C6, GL_EVAL_VERTEX_ATTRIB1_NV => 0x86C7, GL_EVAL_VERTEX_ATTRIB2_NV => 0x86C8, GL_EVAL_VERTEX_ATTRIB3_NV => 0x86C9, GL_EVAL_VERTEX_ATTRIB4_NV => 0x86CA, GL_EVAL_VERTEX_ATTRIB5_NV => 0x86CB, GL_EVAL_VERTEX_ATTRIB6_NV => 0x86CC, GL_EVAL_VERTEX_ATTRIB7_NV => 0x86CD, GL_EVAL_VERTEX_ATTRIB8_NV => 0x86CE, GL_EVAL_VERTEX_ATTRIB9_NV => 0x86CF, GL_EVAL_VERTEX_ATTRIB10_NV => 0x86D0, GL_EVAL_VERTEX_ATTRIB11_NV => 0x86D1, GL_EVAL_VERTEX_ATTRIB12_NV => 0x86D2, GL_EVAL_VERTEX_ATTRIB13_NV => 0x86D3, GL_EVAL_VERTEX_ATTRIB14_NV => 0x86D4, GL_EVAL_VERTEX_ATTRIB15_NV => 0x86D5, GL_MAX_MAP_TESSELLATION_NV => 0x86D6, GL_MAX_RATIONAL_EVAL_ORDER_NV => 0x86D7, GL_DEPTH_STENCIL_NV => 0x84F9, GL_UNSIGNED_INT_24_8_NV => 0x84FA, GL_PER_STAGE_CONSTANTS_NV => 0x8535, GL_TEXTURE_RECTANGLE_NV => 0x84F5, GL_TEXTURE_BINDING_RECTANGLE_NV => 0x84F6, GL_PROXY_TEXTURE_RECTANGLE_NV => 0x84F7, GL_MAX_RECTANGLE_TEXTURE_SIZE_NV => 0x84F8, GL_OFFSET_TEXTURE_RECTANGLE_NV => 0x864C, GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV => 0x864D, GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV => 0x864E, GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV => 0x86D9, GL_UNSIGNED_INT_S8_S8_8_8_NV => 0x86DA, GL_UNSIGNED_INT_8_8_S8_S8_REV_NV => 0x86DB, GL_DSDT_MAG_INTENSITY_NV => 0x86DC, GL_SHADER_CONSISTENT_NV => 0x86DD, GL_TEXTURE_SHADER_NV => 0x86DE, GL_SHADER_OPERATION_NV => 0x86DF, GL_CULL_MODES_NV => 0x86E0, GL_OFFSET_TEXTURE_MATRIX_NV => 0x86E1, GL_OFFSET_TEXTURE_SCALE_NV => 0x86E2, GL_OFFSET_TEXTURE_BIAS_NV => 0x86E3, GL_OFFSET_TEXTURE_2D_MATRIX_NV => 0x86E1, GL_OFFSET_TEXTURE_2D_SCALE_NV => 0x86E2, GL_OFFSET_TEXTURE_2D_BIAS_NV => 0x86E3, GL_PREVIOUS_TEXTURE_INPUT_NV => 0x86E4, GL_CONST_EYE_NV => 0x86E5, GL_PASS_THROUGH_NV => 0x86E6, GL_CULL_FRAGMENT_NV => 0x86E7, GL_OFFSET_TEXTURE_2D_NV => 0x86E8, GL_DEPENDENT_AR_TEXTURE_2D_NV => 0x86E9, GL_DEPENDENT_GB_TEXTURE_2D_NV => 0x86EA, GL_DOT_PRODUCT_NV => 0x86EC, GL_DOT_PRODUCT_DEPTH_REPLACE_NV => 0x86ED, GL_DOT_PRODUCT_TEXTURE_2D_NV => 0x86EE, GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV => 0x86F0, GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV => 0x86F1, GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV => 0x86F2, GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV => 0x86F3, GL_HILO_NV => 0x86F4, GL_DSDT_NV => 0x86F5, GL_DSDT_MAG_NV => 0x86F6, GL_DSDT_MAG_VIB_NV => 0x86F7, GL_HILO16_NV => 0x86F8, GL_SIGNED_HILO_NV => 0x86F9, GL_SIGNED_HILO16_NV => 0x86FA, GL_SIGNED_RGBA_NV => 0x86FB, GL_SIGNED_RGBA8_NV => 0x86FC, GL_SIGNED_RGB_NV => 0x86FE, GL_SIGNED_RGB8_NV => 0x86FF, GL_SIGNED_LUMINANCE_NV => 0x8701, GL_SIGNED_LUMINANCE8_NV => 0x8702, GL_SIGNED_LUMINANCE_ALPHA_NV => 0x8703, GL_SIGNED_LUMINANCE8_ALPHA8_NV => 0x8704, GL_SIGNED_ALPHA_NV => 0x8705, GL_SIGNED_ALPHA8_NV => 0x8706, GL_SIGNED_INTENSITY_NV => 0x8707, GL_SIGNED_INTENSITY8_NV => 0x8708, GL_DSDT8_NV => 0x8709, GL_DSDT8_MAG8_NV => 0x870A, GL_DSDT8_MAG8_INTENSITY8_NV => 0x870B, GL_SIGNED_RGB_UNSIGNED_ALPHA_NV => 0x870C, GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV => 0x870D, GL_HI_SCALE_NV => 0x870E, GL_LO_SCALE_NV => 0x870F, GL_DS_SCALE_NV => 0x8710, GL_DT_SCALE_NV => 0x8711, GL_MAGNITUDE_SCALE_NV => 0x8712, GL_VIBRANCE_SCALE_NV => 0x8713, GL_HI_BIAS_NV => 0x8714, GL_LO_BIAS_NV => 0x8715, GL_DS_BIAS_NV => 0x8716, GL_DT_BIAS_NV => 0x8717, GL_MAGNITUDE_BIAS_NV => 0x8718, GL_VIBRANCE_BIAS_NV => 0x8719, GL_TEXTURE_BORDER_VALUES_NV => 0x871A, GL_TEXTURE_HI_SIZE_NV => 0x871B, GL_TEXTURE_LO_SIZE_NV => 0x871C, GL_TEXTURE_DS_SIZE_NV => 0x871D, GL_TEXTURE_DT_SIZE_NV => 0x871E, GL_TEXTURE_MAG_SIZE_NV => 0x871F, GL_DOT_PRODUCT_TEXTURE_3D_NV => 0x86EF, GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV => 0x8533, GL_VERTEX_PROGRAM_NV => 0x8620, GL_VERTEX_STATE_PROGRAM_NV => 0x8621, GL_ATTRIB_ARRAY_SIZE_NV => 0x8623, GL_ATTRIB_ARRAY_STRIDE_NV => 0x8624, GL_ATTRIB_ARRAY_TYPE_NV => 0x8625, GL_CURRENT_ATTRIB_NV => 0x8626, GL_PROGRAM_LENGTH_NV => 0x8627, GL_PROGRAM_STRING_NV => 0x8628, GL_MODELVIEW_PROJECTION_NV => 0x8629, GL_IDENTITY_NV => 0x862A, GL_INVERSE_NV => 0x862B, GL_TRANSPOSE_NV => 0x862C, GL_INVERSE_TRANSPOSE_NV => 0x862D, GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV => 0x862E, GL_MAX_TRACK_MATRICES_NV => 0x862F, GL_MATRIX0_NV => 0x8630, GL_MATRIX1_NV => 0x8631, GL_MATRIX2_NV => 0x8632, GL_MATRIX3_NV => 0x8633, GL_MATRIX4_NV => 0x8634, GL_MATRIX5_NV => 0x8635, GL_MATRIX6_NV => 0x8636, GL_MATRIX7_NV => 0x8637, GL_CURRENT_MATRIX_STACK_DEPTH_NV => 0x8640, GL_CURRENT_MATRIX_NV => 0x8641, GL_VERTEX_PROGRAM_POINT_SIZE_NV => 0x8642, GL_VERTEX_PROGRAM_TWO_SIDE_NV => 0x8643, GL_PROGRAM_PARAMETER_NV => 0x8644, GL_ATTRIB_ARRAY_POINTER_NV => 0x8645, GL_PROGRAM_TARGET_NV => 0x8646, GL_PROGRAM_RESIDENT_NV => 0x8647, GL_TRACK_MATRIX_NV => 0x8648, GL_TRACK_MATRIX_TRANSFORM_NV => 0x8649, GL_VERTEX_PROGRAM_BINDING_NV => 0x864A, GL_PROGRAM_ERROR_POSITION_NV => 0x864B, GL_VERTEX_ATTRIB_ARRAY0_NV => 0x8650, GL_VERTEX_ATTRIB_ARRAY1_NV => 0x8651, GL_VERTEX_ATTRIB_ARRAY2_NV => 0x8652, GL_VERTEX_ATTRIB_ARRAY3_NV => 0x8653, GL_VERTEX_ATTRIB_ARRAY4_NV => 0x8654, GL_VERTEX_ATTRIB_ARRAY5_NV => 0x8655, GL_VERTEX_ATTRIB_ARRAY6_NV => 0x8656, GL_VERTEX_ATTRIB_ARRAY7_NV => 0x8657, GL_VERTEX_ATTRIB_ARRAY8_NV => 0x8658, GL_VERTEX_ATTRIB_ARRAY9_NV => 0x8659, GL_VERTEX_ATTRIB_ARRAY10_NV => 0x865A, GL_VERTEX_ATTRIB_ARRAY11_NV => 0x865B, GL_VERTEX_ATTRIB_ARRAY12_NV => 0x865C, GL_VERTEX_ATTRIB_ARRAY13_NV => 0x865D, GL_VERTEX_ATTRIB_ARRAY14_NV => 0x865E, GL_VERTEX_ATTRIB_ARRAY15_NV => 0x865F, GL_MAP1_VERTEX_ATTRIB0_4_NV => 0x8660, GL_MAP1_VERTEX_ATTRIB1_4_NV => 0x8661, GL_MAP1_VERTEX_ATTRIB2_4_NV => 0x8662, GL_MAP1_VERTEX_ATTRIB3_4_NV => 0x8663, GL_MAP1_VERTEX_ATTRIB4_4_NV => 0x8664, GL_MAP1_VERTEX_ATTRIB5_4_NV => 0x8665, GL_MAP1_VERTEX_ATTRIB6_4_NV => 0x8666, GL_MAP1_VERTEX_ATTRIB7_4_NV => 0x8667, GL_MAP1_VERTEX_ATTRIB8_4_NV => 0x8668, GL_MAP1_VERTEX_ATTRIB9_4_NV => 0x8669, GL_MAP1_VERTEX_ATTRIB10_4_NV => 0x866A, GL_MAP1_VERTEX_ATTRIB11_4_NV => 0x866B, GL_MAP1_VERTEX_ATTRIB12_4_NV => 0x866C, GL_MAP1_VERTEX_ATTRIB13_4_NV => 0x866D, GL_MAP1_VERTEX_ATTRIB14_4_NV => 0x866E, GL_MAP1_VERTEX_ATTRIB15_4_NV => 0x866F, GL_MAP2_VERTEX_ATTRIB0_4_NV => 0x8670, GL_MAP2_VERTEX_ATTRIB1_4_NV => 0x8671, GL_MAP2_VERTEX_ATTRIB2_4_NV => 0x8672, GL_MAP2_VERTEX_ATTRIB3_4_NV => 0x8673, GL_MAP2_VERTEX_ATTRIB4_4_NV => 0x8674, GL_MAP2_VERTEX_ATTRIB5_4_NV => 0x8675, GL_MAP2_VERTEX_ATTRIB6_4_NV => 0x8676, GL_MAP2_VERTEX_ATTRIB7_4_NV => 0x8677, GL_MAP2_VERTEX_ATTRIB8_4_NV => 0x8678, GL_MAP2_VERTEX_ATTRIB9_4_NV => 0x8679, GL_MAP2_VERTEX_ATTRIB10_4_NV => 0x867A, GL_MAP2_VERTEX_ATTRIB11_4_NV => 0x867B, GL_MAP2_VERTEX_ATTRIB12_4_NV => 0x867C, GL_MAP2_VERTEX_ATTRIB13_4_NV => 0x867D, GL_MAP2_VERTEX_ATTRIB14_4_NV => 0x867E, GL_MAP2_VERTEX_ATTRIB15_4_NV => 0x867F, GL_TEXTURE_MAX_CLAMP_S_SGIX => 0x8369, GL_TEXTURE_MAX_CLAMP_T_SGIX => 0x836A, GL_TEXTURE_MAX_CLAMP_R_SGIX => 0x836B, GL_SCALEBIAS_HINT_SGIX => 0x8322, GL_INTERLACE_OML => 0x8980, GL_INTERLACE_READ_OML => 0x8981, GL_FORMAT_SUBSAMPLE_24_24_OML => 0x8982, GL_FORMAT_SUBSAMPLE_244_244_OML => 0x8983, GL_PACK_RESAMPLE_OML => 0x8984, GL_UNPACK_RESAMPLE_OML => 0x8985, GL_RESAMPLE_REPLICATE_OML => 0x8986, GL_RESAMPLE_ZERO_FILL_OML => 0x8987, GL_RESAMPLE_AVERAGE_OML => 0x8988, GL_RESAMPLE_DECIMATE_OML => 0x8989, GL_DEPTH_STENCIL_TO_RGBA_NV => 0x886E, GL_DEPTH_STENCIL_TO_BGRA_NV => 0x886F, GL_BUMP_ROT_MATRIX_ATI => 0x8775, GL_BUMP_ROT_MATRIX_SIZE_ATI => 0x8776, GL_BUMP_NUM_TEX_UNITS_ATI => 0x8777, GL_BUMP_TEX_UNITS_ATI => 0x8778, GL_DUDV_ATI => 0x8779, GL_DU8DV8_ATI => 0x877A, GL_BUMP_ENVMAP_ATI => 0x877B, GL_BUMP_TARGET_ATI => 0x877C, GL_FRAGMENT_SHADER_ATI => 0x8920, GL_REG_0_ATI => 0x8921, GL_REG_1_ATI => 0x8922, GL_REG_2_ATI => 0x8923, GL_REG_3_ATI => 0x8924, GL_REG_4_ATI => 0x8925, GL_REG_5_ATI => 0x8926, GL_REG_6_ATI => 0x8927, GL_REG_7_ATI => 0x8928, GL_REG_8_ATI => 0x8929, GL_REG_9_ATI => 0x892A, GL_REG_10_ATI => 0x892B, GL_REG_11_ATI => 0x892C, GL_REG_12_ATI => 0x892D, GL_REG_13_ATI => 0x892E, GL_REG_14_ATI => 0x892F, GL_REG_15_ATI => 0x8930, GL_REG_16_ATI => 0x8931, GL_REG_17_ATI => 0x8932, GL_REG_18_ATI => 0x8933, GL_REG_19_ATI => 0x8934, GL_REG_20_ATI => 0x8935, GL_REG_21_ATI => 0x8936, GL_REG_22_ATI => 0x8937, GL_REG_23_ATI => 0x8938, GL_REG_24_ATI => 0x8939, GL_REG_25_ATI => 0x893A, GL_REG_26_ATI => 0x893B, GL_REG_27_ATI => 0x893C, GL_REG_28_ATI => 0x893D, GL_REG_29_ATI => 0x893E, GL_REG_30_ATI => 0x893F, GL_REG_31_ATI => 0x8940, GL_CON_0_ATI => 0x8941, GL_CON_1_ATI => 0x8942, GL_CON_2_ATI => 0x8943, GL_CON_3_ATI => 0x8944, GL_CON_4_ATI => 0x8945, GL_CON_5_ATI => 0x8946, GL_CON_6_ATI => 0x8947, GL_CON_7_ATI => 0x8948, GL_CON_8_ATI => 0x8949, GL_CON_9_ATI => 0x894A, GL_CON_10_ATI => 0x894B, GL_CON_11_ATI => 0x894C, GL_CON_12_ATI => 0x894D, GL_CON_13_ATI => 0x894E, GL_CON_14_ATI => 0x894F, GL_CON_15_ATI => 0x8950, GL_CON_16_ATI => 0x8951, GL_CON_17_ATI => 0x8952, GL_CON_18_ATI => 0x8953, GL_CON_19_ATI => 0x8954, GL_CON_20_ATI => 0x8955, GL_CON_21_ATI => 0x8956, GL_CON_22_ATI => 0x8957, GL_CON_23_ATI => 0x8958, GL_CON_24_ATI => 0x8959, GL_CON_25_ATI => 0x895A, GL_CON_26_ATI => 0x895B, GL_CON_27_ATI => 0x895C, GL_CON_28_ATI => 0x895D, GL_CON_29_ATI => 0x895E, GL_CON_30_ATI => 0x895F, GL_CON_31_ATI => 0x8960, GL_MOV_ATI => 0x8961, GL_ADD_ATI => 0x8963, GL_MUL_ATI => 0x8964, GL_SUB_ATI => 0x8965, GL_DOT3_ATI => 0x8966, GL_DOT4_ATI => 0x8967, GL_MAD_ATI => 0x8968, GL_LERP_ATI => 0x8969, GL_CND_ATI => 0x896A, GL_CND0_ATI => 0x896B, GL_DOT2_ADD_ATI => 0x896C, GL_SECONDARY_INTERPOLATOR_ATI => 0x896D, GL_NUM_FRAGMENT_REGISTERS_ATI => 0x896E, GL_NUM_FRAGMENT_CONSTANTS_ATI => 0x896F, GL_NUM_PASSES_ATI => 0x8970, GL_NUM_INSTRUCTIONS_PER_PASS_ATI => 0x8971, GL_NUM_INSTRUCTIONS_TOTAL_ATI => 0x8972, GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI => 0x8973, GL_NUM_LOOPBACK_COMPONENTS_ATI => 0x8974, GL_COLOR_ALPHA_PAIRING_ATI => 0x8975, GL_SWIZZLE_STR_ATI => 0x8976, GL_SWIZZLE_STQ_ATI => 0x8977, GL_SWIZZLE_STR_DR_ATI => 0x8978, GL_SWIZZLE_STQ_DQ_ATI => 0x8979, GL_SWIZZLE_STRQ_ATI => 0x897A, GL_SWIZZLE_STRQ_DQ_ATI => 0x897B, GL_RED_BIT_ATI => 0x00000001, GL_GREEN_BIT_ATI => 0x00000002, GL_BLUE_BIT_ATI => 0x00000004, GL_2X_BIT_ATI => 0x00000001, GL_4X_BIT_ATI => 0x00000002, GL_8X_BIT_ATI => 0x00000004, GL_HALF_BIT_ATI => 0x00000008, GL_QUARTER_BIT_ATI => 0x00000010, GL_EIGHTH_BIT_ATI => 0x00000020, GL_SATURATE_BIT_ATI => 0x00000040, GL_COMP_BIT_ATI => 0x00000002, GL_NEGATE_BIT_ATI => 0x00000004, GL_BIAS_BIT_ATI => 0x00000008, GL_PN_TRIANGLES_ATI => 0x87F0, GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI => 0x87F1, GL_PN_TRIANGLES_POINT_MODE_ATI => 0x87F2, GL_PN_TRIANGLES_NORMAL_MODE_ATI => 0x87F3, GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI => 0x87F4, GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI => 0x87F5, GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI => 0x87F6, GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI => 0x87F7, GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI => 0x87F8, GL_STATIC_ATI => 0x8760, GL_DYNAMIC_ATI => 0x8761, GL_PRESERVE_ATI => 0x8762, GL_DISCARD_ATI => 0x8763, GL_OBJECT_BUFFER_SIZE_ATI => 0x8764, GL_OBJECT_BUFFER_USAGE_ATI => 0x8765, GL_ARRAY_OBJECT_BUFFER_ATI => 0x8766, GL_ARRAY_OBJECT_OFFSET_ATI => 0x8767, GL_VERTEX_SHADER_EXT => 0x8780, GL_VERTEX_SHADER_BINDING_EXT => 0x8781, GL_OP_INDEX_EXT => 0x8782, GL_OP_NEGATE_EXT => 0x8783, GL_OP_DOT3_EXT => 0x8784, GL_OP_DOT4_EXT => 0x8785, GL_OP_MUL_EXT => 0x8786, GL_OP_ADD_EXT => 0x8787, GL_OP_MADD_EXT => 0x8788, GL_OP_FRAC_EXT => 0x8789, GL_OP_MAX_EXT => 0x878A, GL_OP_MIN_EXT => 0x878B, GL_OP_SET_GE_EXT => 0x878C, GL_OP_SET_LT_EXT => 0x878D, GL_OP_CLAMP_EXT => 0x878E, GL_OP_FLOOR_EXT => 0x878F, GL_OP_ROUND_EXT => 0x8790, GL_OP_EXP_BASE_2_EXT => 0x8791, GL_OP_LOG_BASE_2_EXT => 0x8792, GL_OP_POWER_EXT => 0x8793, GL_OP_RECIP_EXT => 0x8794, GL_OP_RECIP_SQRT_EXT => 0x8795, GL_OP_SUB_EXT => 0x8796, GL_OP_CROSS_PRODUCT_EXT => 0x8797, GL_OP_MULTIPLY_MATRIX_EXT => 0x8798, GL_OP_MOV_EXT => 0x8799, GL_OUTPUT_VERTEX_EXT => 0x879A, GL_OUTPUT_COLOR0_EXT => 0x879B, GL_OUTPUT_COLOR1_EXT => 0x879C, GL_OUTPUT_TEXTURE_COORD0_EXT => 0x879D, GL_OUTPUT_TEXTURE_COORD1_EXT => 0x879E, GL_OUTPUT_TEXTURE_COORD2_EXT => 0x879F, GL_OUTPUT_TEXTURE_COORD3_EXT => 0x87A0, GL_OUTPUT_TEXTURE_COORD4_EXT => 0x87A1, GL_OUTPUT_TEXTURE_COORD5_EXT => 0x87A2, GL_OUTPUT_TEXTURE_COORD6_EXT => 0x87A3, GL_OUTPUT_TEXTURE_COORD7_EXT => 0x87A4, GL_OUTPUT_TEXTURE_COORD8_EXT => 0x87A5, GL_OUTPUT_TEXTURE_COORD9_EXT => 0x87A6, GL_OUTPUT_TEXTURE_COORD10_EXT => 0x87A7, GL_OUTPUT_TEXTURE_COORD11_EXT => 0x87A8, GL_OUTPUT_TEXTURE_COORD12_EXT => 0x87A9, GL_OUTPUT_TEXTURE_COORD13_EXT => 0x87AA, GL_OUTPUT_TEXTURE_COORD14_EXT => 0x87AB, GL_OUTPUT_TEXTURE_COORD15_EXT => 0x87AC, GL_OUTPUT_TEXTURE_COORD16_EXT => 0x87AD, GL_OUTPUT_TEXTURE_COORD17_EXT => 0x87AE, GL_OUTPUT_TEXTURE_COORD18_EXT => 0x87AF, GL_OUTPUT_TEXTURE_COORD19_EXT => 0x87B0, GL_OUTPUT_TEXTURE_COORD20_EXT => 0x87B1, GL_OUTPUT_TEXTURE_COORD21_EXT => 0x87B2, GL_OUTPUT_TEXTURE_COORD22_EXT => 0x87B3, GL_OUTPUT_TEXTURE_COORD23_EXT => 0x87B4, GL_OUTPUT_TEXTURE_COORD24_EXT => 0x87B5, GL_OUTPUT_TEXTURE_COORD25_EXT => 0x87B6, GL_OUTPUT_TEXTURE_COORD26_EXT => 0x87B7, GL_OUTPUT_TEXTURE_COORD27_EXT => 0x87B8, GL_OUTPUT_TEXTURE_COORD28_EXT => 0x87B9, GL_OUTPUT_TEXTURE_COORD29_EXT => 0x87BA, GL_OUTPUT_TEXTURE_COORD30_EXT => 0x87BB, GL_OUTPUT_TEXTURE_COORD31_EXT => 0x87BC, GL_OUTPUT_FOG_EXT => 0x87BD, GL_SCALAR_EXT => 0x87BE, GL_VECTOR_EXT => 0x87BF, GL_MATRIX_EXT => 0x87C0, GL_VARIANT_EXT => 0x87C1, GL_INVARIANT_EXT => 0x87C2, GL_LOCAL_CONSTANT_EXT => 0x87C3, GL_LOCAL_EXT => 0x87C4, GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT => 0x87C5, GL_MAX_VERTEX_SHADER_VARIANTS_EXT => 0x87C6, GL_MAX_VERTEX_SHADER_INVARIANTS_EXT => 0x87C7, GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT => 0x87C8, GL_MAX_VERTEX_SHADER_LOCALS_EXT => 0x87C9, GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT => 0x87CA, GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT => 0x87CB, GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT => 0x87CC, GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT => 0x87CD, GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT => 0x87CE, GL_VERTEX_SHADER_INSTRUCTIONS_EXT => 0x87CF, GL_VERTEX_SHADER_VARIANTS_EXT => 0x87D0, GL_VERTEX_SHADER_INVARIANTS_EXT => 0x87D1, GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT => 0x87D2, GL_VERTEX_SHADER_LOCALS_EXT => 0x87D3, GL_VERTEX_SHADER_OPTIMIZED_EXT => 0x87D4, GL_X_EXT => 0x87D5, GL_Y_EXT => 0x87D6, GL_Z_EXT => 0x87D7, GL_W_EXT => 0x87D8, GL_NEGATIVE_X_EXT => 0x87D9, GL_NEGATIVE_Y_EXT => 0x87DA, GL_NEGATIVE_Z_EXT => 0x87DB, GL_NEGATIVE_W_EXT => 0x87DC, GL_ZERO_EXT => 0x87DD, GL_ONE_EXT => 0x87DE, GL_NEGATIVE_ONE_EXT => 0x87DF, GL_NORMALIZED_RANGE_EXT => 0x87E0, GL_FULL_RANGE_EXT => 0x87E1, GL_CURRENT_VERTEX_EXT => 0x87E2, GL_MVP_MATRIX_EXT => 0x87E3, GL_VARIANT_VALUE_EXT => 0x87E4, GL_VARIANT_DATATYPE_EXT => 0x87E5, GL_VARIANT_ARRAY_STRIDE_EXT => 0x87E6, GL_VARIANT_ARRAY_TYPE_EXT => 0x87E7, GL_VARIANT_ARRAY_EXT => 0x87E8, GL_VARIANT_ARRAY_POINTER_EXT => 0x87E9, GL_INVARIANT_VALUE_EXT => 0x87EA, GL_INVARIANT_DATATYPE_EXT => 0x87EB, GL_LOCAL_CONSTANT_VALUE_EXT => 0x87EC, GL_LOCAL_CONSTANT_DATATYPE_EXT => 0x87ED, GL_MAX_VERTEX_STREAMS_ATI => 0x876B, GL_VERTEX_STREAM0_ATI => 0x876C, GL_VERTEX_STREAM1_ATI => 0x876D, GL_VERTEX_STREAM2_ATI => 0x876E, GL_VERTEX_STREAM3_ATI => 0x876F, GL_VERTEX_STREAM4_ATI => 0x8770, GL_VERTEX_STREAM5_ATI => 0x8771, GL_VERTEX_STREAM6_ATI => 0x8772, GL_VERTEX_STREAM7_ATI => 0x8773, GL_VERTEX_SOURCE_ATI => 0x8774, GL_ELEMENT_ARRAY_ATI => 0x8768, GL_ELEMENT_ARRAY_TYPE_ATI => 0x8769, GL_ELEMENT_ARRAY_POINTER_ATI => 0x876A, GL_QUAD_MESH_SUN => 0x8614, GL_TRIANGLE_MESH_SUN => 0x8615, GL_SLICE_ACCUM_SUN => 0x85CC, GL_MULTISAMPLE_FILTER_HINT_NV => 0x8534, GL_DEPTH_CLAMP_NV => 0x864F, GL_PIXEL_COUNTER_BITS_NV => 0x8864, GL_CURRENT_OCCLUSION_QUERY_ID_NV => 0x8865, GL_PIXEL_COUNT_NV => 0x8866, GL_PIXEL_COUNT_AVAILABLE_NV => 0x8867, GL_POINT_SPRITE_NV => 0x8861, GL_COORD_REPLACE_NV => 0x8862, GL_POINT_SPRITE_R_MODE_NV => 0x8863, GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV => 0x8850, GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV => 0x8851, GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV => 0x8852, GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV => 0x8853, GL_OFFSET_HILO_TEXTURE_2D_NV => 0x8854, GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV => 0x8855, GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV => 0x8856, GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV => 0x8857, GL_DEPENDENT_HILO_TEXTURE_2D_NV => 0x8858, GL_DEPENDENT_RGB_TEXTURE_3D_NV => 0x8859, GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV => 0x885A, GL_DOT_PRODUCT_PASS_THROUGH_NV => 0x885B, GL_DOT_PRODUCT_TEXTURE_1D_NV => 0x885C, GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV => 0x885D, GL_HILO8_NV => 0x885E, GL_SIGNED_HILO8_NV => 0x885F, GL_FORCE_BLUE_TO_ONE_NV => 0x8860, GL_STENCIL_TEST_TWO_SIDE_EXT => 0x8910, GL_ACTIVE_STENCIL_FACE_EXT => 0x8911, GL_TEXT_FRAGMENT_SHADER_ATI => 0x8200, GL_UNPACK_CLIENT_STORAGE_APPLE => 0x85B2, GL_ELEMENT_ARRAY_APPLE => 0x8768, GL_ELEMENT_ARRAY_TYPE_APPLE => 0x8769, GL_ELEMENT_ARRAY_POINTER_APPLE => 0x876A, GL_DRAW_PIXELS_APPLE => 0x8A0A, GL_FENCE_APPLE => 0x8A0B, GL_VERTEX_ARRAY_BINDING_APPLE => 0x85B5, GL_VERTEX_ARRAY_RANGE_APPLE => 0x851D, GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE => 0x851E, GL_VERTEX_ARRAY_STORAGE_HINT_APPLE => 0x851F, GL_VERTEX_ARRAY_RANGE_POINTER_APPLE => 0x8521, GL_STORAGE_CACHED_APPLE => 0x85BE, GL_STORAGE_SHARED_APPLE => 0x85BF, GL_YCBCR_422_APPLE => 0x85B9, GL_UNSIGNED_SHORT_8_8_APPLE => 0x85BA, GL_UNSIGNED_SHORT_8_8_REV_APPLE => 0x85BB, GL_RGB_S3TC => 0x83A0, GL_RGB4_S3TC => 0x83A1, GL_RGBA_S3TC => 0x83A2, GL_RGBA4_S3TC => 0x83A3, GL_MAX_DRAW_BUFFERS_ATI => 0x8824, GL_DRAW_BUFFER0_ATI => 0x8825, GL_DRAW_BUFFER1_ATI => 0x8826, GL_DRAW_BUFFER2_ATI => 0x8827, GL_DRAW_BUFFER3_ATI => 0x8828, GL_DRAW_BUFFER4_ATI => 0x8829, GL_DRAW_BUFFER5_ATI => 0x882A, GL_DRAW_BUFFER6_ATI => 0x882B, GL_DRAW_BUFFER7_ATI => 0x882C, GL_DRAW_BUFFER8_ATI => 0x882D, GL_DRAW_BUFFER9_ATI => 0x882E, GL_DRAW_BUFFER10_ATI => 0x882F, GL_DRAW_BUFFER11_ATI => 0x8830, GL_DRAW_BUFFER12_ATI => 0x8831, GL_DRAW_BUFFER13_ATI => 0x8832, GL_DRAW_BUFFER14_ATI => 0x8833, GL_DRAW_BUFFER15_ATI => 0x8834, GL_TYPE_RGBA_FLOAT_ATI => 0x8820, GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI => 0x8835, GL_MODULATE_ADD_ATI => 0x8744, GL_MODULATE_SIGNED_ADD_ATI => 0x8745, GL_MODULATE_SUBTRACT_ATI => 0x8746, GL_RGBA_FLOAT32_ATI => 0x8814, GL_RGB_FLOAT32_ATI => 0x8815, GL_ALPHA_FLOAT32_ATI => 0x8816, GL_INTENSITY_FLOAT32_ATI => 0x8817, GL_LUMINANCE_FLOAT32_ATI => 0x8818, GL_LUMINANCE_ALPHA_FLOAT32_ATI => 0x8819, GL_RGBA_FLOAT16_ATI => 0x881A, GL_RGB_FLOAT16_ATI => 0x881B, GL_ALPHA_FLOAT16_ATI => 0x881C, GL_INTENSITY_FLOAT16_ATI => 0x881D, GL_LUMINANCE_FLOAT16_ATI => 0x881E, GL_LUMINANCE_ALPHA_FLOAT16_ATI => 0x881F, GL_FLOAT_R_NV => 0x8880, GL_FLOAT_RG_NV => 0x8881, GL_FLOAT_RGB_NV => 0x8882, GL_FLOAT_RGBA_NV => 0x8883, GL_FLOAT_R16_NV => 0x8884, GL_FLOAT_R32_NV => 0x8885, GL_FLOAT_RG16_NV => 0x8886, GL_FLOAT_RG32_NV => 0x8887, GL_FLOAT_RGB16_NV => 0x8888, GL_FLOAT_RGB32_NV => 0x8889, GL_FLOAT_RGBA16_NV => 0x888A, GL_FLOAT_RGBA32_NV => 0x888B, GL_TEXTURE_FLOAT_COMPONENTS_NV => 0x888C, GL_FLOAT_CLEAR_COLOR_VALUE_NV => 0x888D, GL_FLOAT_RGBA_MODE_NV => 0x888E, GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV => 0x8868, GL_FRAGMENT_PROGRAM_NV => 0x8870, GL_MAX_TEXTURE_COORDS_NV => 0x8871, GL_MAX_TEXTURE_IMAGE_UNITS_NV => 0x8872, GL_FRAGMENT_PROGRAM_BINDING_NV => 0x8873, GL_PROGRAM_ERROR_STRING_NV => 0x8874, GL_HALF_FLOAT_NV => 0x140B, GL_WRITE_PIXEL_DATA_RANGE_NV => 0x8878, GL_READ_PIXEL_DATA_RANGE_NV => 0x8879, GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV => 0x887A, GL_READ_PIXEL_DATA_RANGE_LENGTH_NV => 0x887B, GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV => 0x887C, GL_READ_PIXEL_DATA_RANGE_POINTER_NV => 0x887D, GL_PRIMITIVE_RESTART_NV => 0x8558, GL_PRIMITIVE_RESTART_INDEX_NV => 0x8559, GL_TEXTURE_UNSIGNED_REMAP_MODE_NV => 0x888F, GL_STENCIL_BACK_FUNC_ATI => 0x8800, GL_STENCIL_BACK_FAIL_ATI => 0x8801, GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI => 0x8802, GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI => 0x8803, GL_IMPLEMENTATION_COLOR_READ_TYPE_OES => 0x8B9A, GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES => 0x8B9B, GL_DEPTH_BOUNDS_TEST_EXT => 0x8890, GL_DEPTH_BOUNDS_EXT => 0x8891, GL_MIRROR_CLAMP_EXT => 0x8742, GL_MIRROR_CLAMP_TO_EDGE_EXT => 0x8743, GL_MIRROR_CLAMP_TO_BORDER_EXT => 0x8912, GL_BLEND_EQUATION_RGB_EXT => 0x8009, GL_BLEND_EQUATION_ALPHA_EXT => 0x883D, GL_PACK_INVERT_MESA => 0x8758, GL_UNSIGNED_SHORT_8_8_MESA => 0x85BA, GL_UNSIGNED_SHORT_8_8_REV_MESA => 0x85BB, GL_YCBCR_MESA => 0x8757, GL_PIXEL_PACK_BUFFER_EXT => 0x88EB, GL_PIXEL_UNPACK_BUFFER_EXT => 0x88EC, GL_PIXEL_PACK_BUFFER_BINDING_EXT => 0x88ED, GL_PIXEL_UNPACK_BUFFER_BINDING_EXT => 0x88EF, GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV => 0x88F4, GL_MAX_PROGRAM_CALL_DEPTH_NV => 0x88F5, GL_MAX_PROGRAM_IF_DEPTH_NV => 0x88F6, GL_MAX_PROGRAM_LOOP_DEPTH_NV => 0x88F7, GL_MAX_PROGRAM_LOOP_COUNT_NV => 0x88F8, GL_INVALID_FRAMEBUFFER_OPERATION_EXT => 0x0506, GL_MAX_RENDERBUFFER_SIZE_EXT => 0x84E8, GL_FRAMEBUFFER_BINDING_EXT => 0x8CA6, GL_RENDERBUFFER_BINDING_EXT => 0x8CA7, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT => 0x8CD0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT => 0x8CD1, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT => 0x8CD2, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT => 0x8CD3, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT => 0x8CD4, GL_FRAMEBUFFER_COMPLETE_EXT => 0x8CD5, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT => 0x8CD6, GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT => 0x8CD7, GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT => 0x8CD8, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT => 0x8CD9, GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT => 0x8CDA, GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT => 0x8CDB, GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT => 0x8CDC, GL_FRAMEBUFFER_UNSUPPORTED_EXT => 0x8CDD, GL_MAX_COLOR_ATTACHMENTS_EXT => 0x8CDF, GL_COLOR_ATTACHMENT0_EXT => 0x8CE0, GL_COLOR_ATTACHMENT1_EXT => 0x8CE1, GL_COLOR_ATTACHMENT2_EXT => 0x8CE2, GL_COLOR_ATTACHMENT3_EXT => 0x8CE3, GL_COLOR_ATTACHMENT4_EXT => 0x8CE4, GL_COLOR_ATTACHMENT5_EXT => 0x8CE5, GL_COLOR_ATTACHMENT6_EXT => 0x8CE6, GL_COLOR_ATTACHMENT7_EXT => 0x8CE7, GL_COLOR_ATTACHMENT8_EXT => 0x8CE8, GL_COLOR_ATTACHMENT9_EXT => 0x8CE9, GL_COLOR_ATTACHMENT10_EXT => 0x8CEA, GL_COLOR_ATTACHMENT11_EXT => 0x8CEB, GL_COLOR_ATTACHMENT12_EXT => 0x8CEC, GL_COLOR_ATTACHMENT13_EXT => 0x8CED, GL_COLOR_ATTACHMENT14_EXT => 0x8CEE, GL_COLOR_ATTACHMENT15_EXT => 0x8CEF, GL_DEPTH_ATTACHMENT_EXT => 0x8D00, GL_STENCIL_ATTACHMENT_EXT => 0x8D20, GL_FRAMEBUFFER_EXT => 0x8D40, GL_RENDERBUFFER_EXT => 0x8D41, GL_RENDERBUFFER_WIDTH_EXT => 0x8D42, GL_RENDERBUFFER_HEIGHT_EXT => 0x8D43, GL_RENDERBUFFER_INTERNAL_FORMAT_EXT => 0x8D44, GL_STENCIL_INDEX1_EXT => 0x8D46, GL_STENCIL_INDEX4_EXT => 0x8D47, GL_STENCIL_INDEX8_EXT => 0x8D48, GL_STENCIL_INDEX16_EXT => 0x8D49, GL_RENDERBUFFER_RED_SIZE_EXT => 0x8D50, GL_RENDERBUFFER_GREEN_SIZE_EXT => 0x8D51, GL_RENDERBUFFER_BLUE_SIZE_EXT => 0x8D52, GL_RENDERBUFFER_ALPHA_SIZE_EXT => 0x8D53, GL_RENDERBUFFER_DEPTH_SIZE_EXT => 0x8D54, GL_RENDERBUFFER_STENCIL_SIZE_EXT => 0x8D55, GL_VERSION_1_2 => 1, GL_VERSION_1_3 => 1, GL_VERSION_1_4 => 1, GL_VERSION_1_5 => 1, GL_VERSION_2_0 => 1, GL_ARB_multitexture => 1, GL_ARB_transpose_matrix => 1, GL_ARB_multisample => 1, GL_ARB_texture_env_add => 1, GL_ARB_texture_cube_map => 1, GL_ARB_texture_compression => 1, GL_ARB_texture_border_clamp => 1, GL_ARB_point_parameters => 1, GL_ARB_vertex_blend => 1, GL_ARB_matrix_palette => 1, GL_ARB_texture_env_combine => 1, GL_ARB_texture_env_crossbar => 1, GL_ARB_texture_env_dot3 => 1, GL_ARB_texture_mirrored_repeat => 1, GL_ARB_depth_texture => 1, GL_ARB_shadow => 1, GL_ARB_shadow_ambient => 1, GL_ARB_window_pos => 1, GL_ARB_vertex_program => 1, GL_ARB_fragment_program => 1, GL_ARB_vertex_buffer_object => 1, GL_ARB_occlusion_query => 1, GL_ARB_shader_objects => 1, GL_ARB_vertex_shader => 1, GL_ARB_fragment_shader => 1, GL_ARB_shading_language_100 => 1, GL_ARB_texture_non_power_of_two => 1, GL_ARB_point_sprite => 1, GL_ARB_fragment_program_shadow => 1, GL_ARB_draw_buffers => 1, GL_ARB_texture_rectangle => 1, GL_ARB_color_buffer_float => 1, GL_ARB_half_float_pixel => 1, GL_ARB_texture_float => 1, GL_ARB_pixel_buffer_object => 1, GL_EXT_abgr => 1, GL_EXT_blend_color => 1, GL_EXT_polygon_offset => 1, GL_EXT_texture => 1, GL_EXT_texture3D => 1, GL_SGIS_texture_filter4 => 1, GL_EXT_subtexture => 1, GL_EXT_copy_texture => 1, GL_EXT_histogram => 1, GL_EXT_convolution => 1, GL_EXT_color_matrix => 1, GL_SGI_color_table => 1, GL_SGIX_pixel_texture => 1, GL_SGIS_pixel_texture => 1, GL_SGIS_texture4D => 1, GL_SGI_texture_color_table => 1, GL_EXT_cmyka => 1, GL_EXT_texture_object => 1, GL_SGIS_detail_texture => 1, GL_SGIS_sharpen_texture => 1, GL_EXT_packed_pixels => 1, GL_SGIS_texture_lod => 1, GL_SGIS_multisample => 1, GL_EXT_rescale_normal => 1, GL_EXT_vertex_array => 1, GL_EXT_misc_attribute => 1, GL_SGIS_generate_mipmap => 1, GL_SGIX_clipmap => 1, GL_SGIX_shadow => 1, GL_SGIS_texture_edge_clamp => 1, GL_SGIS_texture_border_clamp => 1, GL_EXT_blend_minmax => 1, GL_EXT_blend_subtract => 1, GL_EXT_blend_logic_op => 1, GL_SGIX_interlace => 1, GL_SGIX_pixel_tiles => 1, GL_SGIX_texture_select => 1, GL_SGIX_sprite => 1, GL_SGIX_texture_multi_buffer => 1, GL_EXT_point_parameters => 1, GL_SGIS_point_parameters => 1, GL_SGIX_instruments => 1, GL_SGIX_texture_scale_bias => 1, GL_SGIX_framezoom => 1, GL_SGIX_tag_sample_buffer => 1, GL_SGIX_polynomial_ffd => 1, GL_SGIX_reference_plane => 1, GL_SGIX_flush_raster => 1, GL_SGIX_depth_texture => 1, GL_SGIS_fog_function => 1, GL_SGIX_fog_offset => 1, GL_HP_image_transform => 1, GL_HP_convolution_border_modes => 1, GL_SGIX_texture_add_env => 1, GL_EXT_color_subtable => 1, GL_PGI_vertex_hints => 1, GL_PGI_misc_hints => 1, GL_EXT_paletted_texture => 1, GL_EXT_clip_volume_hint => 1, GL_SGIX_list_priority => 1, GL_SGIX_ir_instrument1 => 1, GL_SGIX_calligraphic_fragment => 1, GL_SGIX_texture_lod_bias => 1, GL_SGIX_shadow_ambient => 1, GL_EXT_index_texture => 1, GL_EXT_index_material => 1, GL_EXT_index_func => 1, GL_EXT_index_array_formats => 1, GL_EXT_compiled_vertex_array => 1, GL_EXT_cull_vertex => 1, GL_SGIX_ycrcb => 1, GL_SGIX_fragment_lighting => 1, GL_IBM_rasterpos_clip => 1, GL_HP_texture_lighting => 1, GL_EXT_draw_range_elements => 1, GL_WIN_phong_shading => 1, GL_WIN_specular_fog => 1, GL_EXT_light_texture => 1, GL_SGIX_blend_alpha_minmax => 1, GL_EXT_bgra => 1, GL_SGIX_async => 1, GL_SGIX_async_pixel => 1, GL_SGIX_async_histogram => 1, GL_INTEL_parallel_arrays => 1, GL_HP_occlusion_test => 1, GL_EXT_pixel_transform => 1, GL_EXT_pixel_transform_color_table => 1, GL_EXT_shared_texture_palette => 1, GL_EXT_separate_specular_color => 1, GL_EXT_secondary_color => 1, GL_EXT_texture_perturb_normal => 1, GL_EXT_multi_draw_arrays => 1, GL_EXT_fog_coord => 1, GL_REND_screen_coordinates => 1, GL_EXT_coordinate_frame => 1, GL_EXT_texture_env_combine => 1, GL_APPLE_specular_vector => 1, GL_APPLE_transform_hint => 1, GL_SGIX_fog_scale => 1, GL_SUNX_constant_data => 1, GL_SUN_global_alpha => 1, GL_SUN_triangle_list => 1, GL_SUN_vertex => 1, GL_EXT_blend_func_separate => 1, GL_INGR_blend_func_separate => 1, GL_INGR_color_clamp => 1, GL_INGR_interlace_read => 1, GL_EXT_stencil_wrap => 1, GL_EXT_422_pixels => 1, GL_NV_texgen_reflection => 1, GL_SUN_convolution_border_modes => 1, GL_EXT_texture_env_add => 1, GL_EXT_texture_lod_bias => 1, GL_EXT_texture_filter_anisotropic => 1, GL_EXT_vertex_weighting => 1, GL_NV_light_max_exponent => 1, GL_NV_vertex_array_range => 1, GL_NV_register_combiners => 1, GL_NV_fog_distance => 1, GL_NV_texgen_emboss => 1, GL_NV_blend_square => 1, GL_NV_texture_env_combine4 => 1, GL_MESA_resize_buffers => 1, GL_MESA_window_pos => 1, GL_IBM_cull_vertex => 1, GL_IBM_multimode_draw_arrays => 1, GL_IBM_vertex_array_lists => 1, GL_SGIX_subsample => 1, GL_SGIX_ycrcba => 1, GL_SGIX_ycrcb_subsample => 1, GL_SGIX_depth_pass_instrument => 1, GL_3DFX_texture_compression_FXT1 => 1, GL_3DFX_multisample => 1, GL_3DFX_tbuffer => 1, GL_EXT_multisample => 1, GL_SGIX_vertex_preclip => 1, GL_SGIX_convolution_accuracy => 1, GL_SGIX_resample => 1, GL_SGIS_point_line_texgen => 1, GL_SGIS_texture_color_mask => 1, GL_SGIX_igloo_interface => 1, GL_EXT_texture_env_dot3 => 1, GL_ATI_texture_mirror_once => 1, GL_NV_fence => 1, GL_NV_evaluators => 1, GL_NV_packed_depth_stencil => 1, GL_NV_register_combiners2 => 1, GL_NV_texture_compression_vtc => 1, GL_NV_texture_rectangle => 1, GL_NV_texture_shader => 1, GL_NV_texture_shader2 => 1, GL_NV_vertex_array_range2 => 1, GL_NV_vertex_program => 1, GL_SGIX_texture_coordinate_clamp => 1, GL_SGIX_scalebias_hint => 1, GL_OML_interlace => 1, GL_OML_subsample => 1, GL_OML_resample => 1, GL_NV_copy_depth_to_color => 1, GL_ATI_envmap_bumpmap => 1, GL_ATI_fragment_shader => 1, GL_ATI_pn_triangles => 1, GL_ATI_vertex_array_object => 1, GL_EXT_vertex_shader => 1, GL_ATI_vertex_streams => 1, GL_ATI_element_array => 1, GL_SUN_mesh_array => 1, GL_SUN_slice_accum => 1, GL_NV_multisample_filter_hint => 1, GL_NV_depth_clamp => 1, GL_NV_occlusion_query => 1, GL_NV_point_sprite => 1, GL_NV_texture_shader3 => 1, GL_NV_vertex_program1_1 => 1, GL_EXT_shadow_funcs => 1, GL_EXT_stencil_two_side => 1, GL_ATI_text_fragment_shader => 1, GL_APPLE_client_storage => 1, GL_APPLE_element_array => 1, GL_APPLE_fence => 1, GL_APPLE_vertex_array_object => 1, GL_APPLE_vertex_array_range => 1, GL_APPLE_ycbcr_422 => 1, GL_S3_s3tc => 1, GL_ATI_draw_buffers => 1, GL_ATI_pixel_format_float => 1, GL_ATI_texture_env_combine3 => 1, GL_ATI_texture_float => 1, GL_NV_float_buffer => 1, GL_NV_fragment_program => 1, GL_NV_half_float => 1, GL_NV_pixel_data_range => 1, GL_NV_primitive_restart => 1, GL_NV_texture_expand_normal => 1, GL_NV_vertex_program2 => 1, GL_ATI_map_object_buffer => 1, GL_ATI_separate_stencil => 1, GL_ATI_vertex_attrib_array_object => 1, GL_OES_read_format => 1, GL_EXT_depth_bounds_test => 1, GL_EXT_texture_mirror_clamp => 1, GL_EXT_blend_equation_separate => 1, GL_MESA_pack_invert => 1, GL_MESA_ycbcr_texture => 1, GL_EXT_pixel_buffer_object => 1, GL_NV_fragment_program_option => 1, GL_NV_fragment_program2 => 1, GL_NV_vertex_program2_option => 1, GL_NV_vertex_program3 => 1, GL_EXT_framebuffer_object => 1, GL_GREMEDY_string_marker => 1, RW_SEEK_SET => 0, RW_SEEK_CUR => 1, RW_SEEK_END => 2, }; use constant { SDL_FALSE => 0, SDL_TRUE => 1, }; # SDL_bool use constant { DUMMY_ENUM_VALUE => 0, }; # SDL_DUMMY_ENUM use constant { SDL_SVG_FLAG_DIRECT => 0, SDL_SVG_FLAG_COMPOSITE => 1, Cursor => X11Cursor, }; use constant { SDL_SYSWM_X11 => 0, }; # SDL_SYSWM_TYPE use constant { SDL_TIMESLICE => 10, TIMER_RESOLUTION => 10, SDL_ALPHA_OPAQUE => 255, SDL_ALPHA_TRANSPARENT => 0, }; # manual added!! use constant { SMPEG_ERROR => -1, SMPEG_PLAYING => 1, SMPEG_STOPPED => 0, }; 1; �������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Cursor.pm�������������������������������������������������������������������������000444��000765��000024�� 322�11760240072� 15364� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Cursor; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Cursor; 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Event.pm��������������������������������������������������������������������������000444��000765��000024�� 1714�11760240072� 15216� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Event; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Events'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Event; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Events'} }; our %EXPORT_TAGS = ( all => \@EXPORT, type => $SDL::Constants::EXPORT_TAGS{'SDL::Events/type'}, mask => $SDL::Constants::EXPORT_TAGS{'SDL::Events/mask'}, action => $SDL::Constants::EXPORT_TAGS{'SDL::Events/action'}, state => $SDL::Constants::EXPORT_TAGS{'SDL::Events/state'}, hat => $SDL::Constants::EXPORT_TAGS{'SDL::Events/hat'}, app => $SDL::Constants::EXPORT_TAGS{'SDL::Events/app'}, button => $SDL::Constants::EXPORT_TAGS{'SDL::Events/button'}, keysym => $SDL::Constants::EXPORT_TAGS{'SDL::Events/keysym'}, keymod => $SDL::Constants::EXPORT_TAGS{'SDL::Events/keymod'} ); 1; ����������������������������������������������������SDL-2.540/lib/SDL/Events.pm�������������������������������������������������������������������������000444��000765��000024�� 1716�11760240072� 15403� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Events; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Events'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Events; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Events'} }; our %EXPORT_TAGS = ( all => \@EXPORT, type => $SDL::Constants::EXPORT_TAGS{'SDL::Events/type'}, mask => $SDL::Constants::EXPORT_TAGS{'SDL::Events/mask'}, action => $SDL::Constants::EXPORT_TAGS{'SDL::Events/action'}, state => $SDL::Constants::EXPORT_TAGS{'SDL::Events/state'}, hat => $SDL::Constants::EXPORT_TAGS{'SDL::Events/hat'}, app => $SDL::Constants::EXPORT_TAGS{'SDL::Events/app'}, button => $SDL::Constants::EXPORT_TAGS{'SDL::Events/button'}, keysym => $SDL::Constants::EXPORT_TAGS{'SDL::Events/keysym'}, keymod => $SDL::Constants::EXPORT_TAGS{'SDL::Events/keymod'} ); 1; ��������������������������������������������������SDL-2.540/lib/SDL/GFX.pm����������������������������������������������������������������������������000444��000765��000024�� 714�11760240073� 14541� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/init'} ); 1; ����������������������������������������������������SDL-2.540/lib/SDL/Image.pm��������������������������������������������������������������������������000444��000765��000024�� 750�11760240073� 15137� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Image; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Image'; use SDL::Surface; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Image; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Image'} }; our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Video/init'} ); 1; ������������������������SDL-2.540/lib/SDL/Joystick.pm�����������������������������������������������������������������������000444��000765��000024�� 326�11760240072� 15712� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Joystick; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Joystick; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer.pm��������������������������������������������������������������������������000444��000765��000024�� 1536�11760240072� 15223� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mouse.pm��������������������������������������������������������������������������000444��000765��000024�� 222�11760240073� 15177� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mouse; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); bootstrap SDL::Mouse; 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/MultiThread.pm��������������������������������������������������������������������000444��000765��000024�� 334�11760240072� 16334� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::MultiThread; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::MultiThread; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Net.pm����������������������������������������������������������������������������000444��000765��000024�� 730�11760240073� 14641� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Net; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Net'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Net; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Net'} }; our %EXPORT_TAGS = ( all => \@EXPORT, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Net/defaults'} ); 1; ����������������������������������������SDL-2.540/lib/SDL/Overlay.pm������������������������������������������������������������������������000444��000765��000024�� 1530�11760240073� 15553� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Overlay; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Overlay; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Palette.pm������������������������������������������������������������������������000444��000765��000024�� 1550�11760240072� 15531� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Palette; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; use SDL::Color; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Palette; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Pango.pm��������������������������������������������������������������������������000444��000765��000024�� 1045�11760240072� 15176� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Pango; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Pango'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Pango; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Pango'} }; our %EXPORT_TAGS = ( all => \@EXPORT, direction => $SDL::Constants::EXPORT_TAGS{'SDL::Pango/direction'}, align => $SDL::Constants::EXPORT_TAGS{'SDL::Pango/align'} ); 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/PixelFormat.pm��������������������������������������������������������������������000444��000765��000024�� 1537�11760240072� 16372� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::PixelFormat; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::PixelFormat; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; �����������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Rect.pm���������������������������������������������������������������������������000444��000765��000024�� 1521�11760240073� 15027� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Rect; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Rect; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/RWOps.pm��������������������������������������������������������������������������000444��000765��000024�� 742�11760240072� 15127� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::RWOps; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::RWOps'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::RWOps; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::RWOps'} }; our %EXPORT_TAGS = ( all => \@EXPORT, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::RWOps/defaults'} ); 1; ������������������������������SDL-2.540/lib/SDL/SMPEG.pm��������������������������������������������������������������������������000444��000765��000024�� 3452�11760240072� 15011� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::SMPEG; use strict; use warnings; use Carp; use SDL; use SDL::Surface; use SDL::SMPEG::Info; use Scalar::Util 'refaddr'; use Data::Dumper; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::SMPEG; my %_info; sub new { my $class = shift; my %options = @_; my $n = $options{-name} || die "SDL::SMPEG must supply a filename to SDL::SMPEG::new\n"; my $a = $options{'-audio'} ? 1 : 0; my $info = SDL::SMPEG::Info->new(); my $self = NewSMPEG( $n, $info, $a ); $_info{ refaddr $self } = $info; Carp::confess SDL::get_error() unless $self; $self->audio(1); $self->video(1); return $self; } sub DESTROY { FreeSMPEG( $_[0] ); } sub error { SMPEGError( $_[0] ); } sub audio { SMPEGEnableAudio( $_[0], $_[1] ); } sub video { SMPEGEnableVideo( $_[0], $_[1] ); } sub volume { SMPEGSetVolume( $_[0] , $_[1] ); } sub display { Carp::confess "Display requires a SDL::Surface\n" unless $_[1]->isa('SDL::Surface'); SMPEGSetDisplay( $_[0], $_[1] , 0 ); } sub scale { return SMPEGScaleXY( $_[0], $_[1], $_[2] ) if ( @_ == 3 ); return SMPEGScaleXY( $_[0], $_[1]->width(), $_[1]->height() ) if $_[1]->isa('SDL::Surface'); SMPEGScale( $_[0] , $_[1] ); } sub play { SMPEGPlay( $_[0]); } sub pause { SMPEGPause( $_[0] ); } sub stop { SMPEGStop( $_[0] ); } sub rewind { SMPEGRewind( $_[0] ); } sub seek { SMPEGSeek( $_[0], $_[1] ); } sub skip { SMPEGSkip( $_[0], $_[1] ); } sub loop { SMPEGLoop( $_[0], $_[1] ); } sub region { Carp::confess "region requires a SDL::Rect\n" unless $_[1]->isa('SDL::Rect'); SMPEGDisplayRegion( $_[0], $_[1] ); } sub frame { SMPEGRenderFrame( $_[0], $_[1] ); } sub info { # SDL::SMPEG::Info->new( -from => $_[0] ); $_info{ refaddr $_[0] }; } sub status { SMPEGStatus( $_[0] ); } 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Surface.pm������������������������������������������������������������������������000444��000765��000024�� 1555�11760240072� 15530� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Surface; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; use SDL::PixelFormat; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Surface; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Time.pm���������������������������������������������������������������������������000444��000765��000024�� 316�11760240073� 15011� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Time; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Time; 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/TTF.pm����������������������������������������������������������������������������000444��000765��000024�� 1021�11760240073� 14562� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::TTF; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::TTF'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::TTF; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::TTF'} }; our %EXPORT_TAGS = ( all => \@EXPORT, hinting => $SDL::Constants::EXPORT_TAGS{'SDL::TTF/hinting'}, style => $SDL::Constants::EXPORT_TAGS{'SDL::TTF/style'} ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/TTFont.pm�������������������������������������������������������������������������000444��000765��000024�� 10327�11760240072� 15333� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # # TTFont.pm # # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package SDL::TTFont; use strict; use warnings; use Carp; use SDL; use SDL::Surface; use vars qw/ @ISA /; @ISA = qw(SDL::Surface); sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = {}; my %options; (%options) = @_; $self->{-mode} = $options{-mode} || $options{-m} || SDL::TEXT_SHADED(); $self->{-name} = $options{-name} || $options{-n}; $self->{-size} = $options{-size} || $options{-s}; $self->{-fg} = $options{-foreground} || $options{-fg} || $SDL::Color::black; $self->{-bg} = $options{-background} || $options{-bg} || $SDL::Color::white; Carp::confess "SDL::TTFont::new requires a -name\n" unless ( $$self{-name} ); Carp::confess "SDL::TTFont::new requires a -size\n" unless ( $$self{-size} ); $self->{-font} = SDL::TTFOpenFont( $self->{-name}, $self->{-size} ); Carp::confess "Could not open font $$self{-name}, ", SDL::GetError(), "\n" unless ( $self->{-font} ); bless $self, $class; return $self; } sub DESTROY { my $self = shift; SDL::FreeSurface( $self->{-surface} ) if ( defined( $self->{-surface} ) ); SDL::TTFCloseFont( $self->{-font} ) if ( defined( $self->{-font} ) ); } sub print { my ( $self, $surface, $x, $y, @text ) = @_; Carp::confess "Print requies an SDL::Surface" unless ( ref($surface) && $surface->isa("SDL::Surface") ); SDL::FreeSurface( $self->{-surface} ) if ( $$self{-surface} ); $$self{-surface} = SDL::TTFPutString( $$self{-font}, $$self{-mode}, $$surface, $x, $y, $self->{-fg}, $self->{-bg}, join( "", @text ) ); Carp::confess "Could not print \"", join( "", @text ), "\" to surface, ", SDL::GetError(), "\n" unless ( $$self{-surface} ); } sub width { my ( $self, @text ) = @_; my $aref = SDL::TTFSizeText( $$self{-font}, join( " ", @text ) ); $$aref[0]; } sub height { my ($self) = @_; SDL::TTFFontHeight( $$self{-font} ); } sub ascent { my ($self) = @_; SDL::TTFFontAscent( $$self{-font} ); } sub descent { my ($self) = @_; SDL::TTFFontDescent( $$self{-font} ); } sub normal { my ($self) = @_; SDL::TTFSetFontStyle( $$self{-font}, SDL::TTF_STYLE_NORMAL() ); } sub bold { my ($self) = @_; SDL::TTFSetFontStyle( $$self{-font}, SDL::TTF_STYLE_BOLD() ); } sub italic { my ($self) = @_; SDL::TTFSetFontStyle( $$self{-font}, SDL::TTF_STYLE_ITALIC() ); } sub underline { my ($self) = @_; SDL::TTFSetFontStyle( $$self{-font}, SDL::TTF_STYLE_UNDERLINE() ); } sub text_shaded { my ($self) = @_; $$self{-mode} = SDL::TEXT_SHADED(); } sub text_solid { my ($self) = @_; $$self{-mode} = SDL::TEXT_SOLID(); } sub text_blended { my ($self) = @_; $$self{-mode} = SDL::TEXT_BLENDED(); } sub utf8_shaded { my ($self) = @_; $$self{-mode} = SDL::UTF8_SHADED(); } sub utf8_solid { my ($self) = @_; $$self{-mode} = SDL::UTF8_SOLID(); } sub utf8_blended { my ($self) = @_; $$self{-mode} = SDL::UTF8_BLENDED(); } sub unicode_shaded { my ($self) = @_; $$self{-mode} = SDL::UNICODE_SHADED(); } sub unicode_solid { my ($self) = @_; $$self{-mode} = SDL::UNICODE_SOLID(); } sub unicode_blended { my ($self) = @_; $$self{-mode} = SDL::UNICODE_BLENDED(); } Carp::confess "Could not initialize True Type Fonts\n" if ( SDL::TTFInit() < 0 ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Tutorial.pm�����������������������������������������������������������������������000444��000765��000024�� 2661�11760240073� 15743� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # # Tutorial.pm # # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package SDL::Tutorial; use strict; use warnings; use SDL; use SDLx::App; # change these values as necessary my $title = 'My SDL App'; my ( $width, $height, $depth ) = ( 640, 480, 16 ); my $app = SDLx::App->new( width => $width, height => $height, depth => $depth, title => $title, ); # your code here; remove the next line sleep 2; 1; �������������������������������������������������������������������������������SDL-2.540/lib/SDL/Version.pm������������������������������������������������������������������������000444��000765��000024�� 745�11760240072� 15545� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Version; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); use overload '<=>' => \&my_cmp, '""' => \&stringify; bootstrap SDL::Version; sub stringify { my $self = shift; return sprintf "%s%s%s", chr($self->major), chr($self->minor), chr($self->patch); } sub my_cmp { my ($left, $right) = @_; return "$left" cmp "$right"; } 1; ���������������������������SDL-2.540/lib/SDL/Video.pm��������������������������������������������������������������������������000444��000765��000024�� 1523�11760240073� 15202� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Video; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Video; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/VideoInfo.pm����������������������������������������������������������������������000444��000765��000024�� 1533�11760240072� 16016� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::VideoInfo; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::VideoInfo; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Video'} }; our %EXPORT_TAGS = ( all => \@EXPORT, color => $SDL::Constants::EXPORT_TAGS{'SDL::Video/color'}, surface => $SDL::Constants::EXPORT_TAGS{'SDL::Video/surface'}, video => $SDL::Constants::EXPORT_TAGS{'SDL::Video/video'}, overlay => $SDL::Constants::EXPORT_TAGS{'SDL::Video/overlay'}, grab => $SDL::Constants::EXPORT_TAGS{'SDL::Video/grab'}, palette => $SDL::Constants::EXPORT_TAGS{'SDL::Video/palette'}, gl => $SDL::Constants::EXPORT_TAGS{'SDL::Video/gl'} ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/GFX�������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14064� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/GFX/BlitFunc.pm�������������������������������������������������������������������000444��000765��000024�� 757�11760240073� 16256� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::BlitFunc; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::BlitFunc; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, smoothing => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/smoothing'} ); 1; �����������������SDL-2.540/lib/SDL/GFX/FPSManager.pm�����������������������������������������������������������������000444��000765��000024�� 763�11760240073� 16470� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::FPSManager; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::FPSManager; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, smoothing => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/smoothing'} ); 1; �������������SDL-2.540/lib/SDL/GFX/Framerate.pm������������������������������������������������������������������000444��000765��000024�� 761�11760240072� 16450� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::Framerate; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::Framerate; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, smoothing => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/smoothing'} ); 1; ���������������SDL-2.540/lib/SDL/GFX/ImageFilter.pm����������������������������������������������������������������000444��000765��000024�� 765�11760240072� 16736� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::ImageFilter; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::ImageFilter; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, smoothing => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/smoothing'} ); 1; �����������SDL-2.540/lib/SDL/GFX/Primitives.pm�����������������������������������������������������������������000444��000765��000024�� 744�11760240072� 16676� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::Primitives; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::Primitives; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/init'} ); 1; ����������������������������SDL-2.540/lib/SDL/GFX/Rotozoom.pm�������������������������������������������������������������������000444��000765��000024�� 757�11760240072� 16377� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::GFX::Rotozoom; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::GFX'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::GFX::Rotozoom; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::GFX'} }; our %EXPORT_TAGS = ( all => \@EXPORT, smoothing => $SDL::Constants::EXPORT_TAGS{'SDL::GFX/smoothing'} ); 1; �����������������SDL-2.540/lib/SDL/Internal��������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15213� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Internal/Loader.pm����������������������������������������������������������������000444��000765��000024�� 3406�11760240072� 17117� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Internal::Loader; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(internal_load_dlls); our @LIBREFS = (); use SDL::ConfigData; use Alien::SDL; # SDL::Internal::Loader is a king of "Dynaloader kung-fu" that is # necessary in situations when you install Allien::SDL from sources # or from prebuilt binaries as in these scenarios the SDL stuff is # installed into so called 'sharedir' somewhere in perl/lib/ tree # on Windows box it is e.g. # C:\strawberry\perl\site\lib\auto\share\dist\Alien-SDL... # # What happens is that for example XS module "SDL::Video" is linked # with -lSDL library which means that resulting "Video.(so|dll)" has # a dependency on "libSDL.(so|dll)" - however "libSDL.(so|dll)" is # neither in PATH (Win) or in LD_LIBRARY_PATH (Unix) so Dynaloader # will fail to load "Video.(so|dll)". # # To handle this we have internal_load_dlls() which has to be called # from XS modules (e.g. SDL::Video) linked with SDL libs like this: # # use SDL::Internal::Loader; # internal_load_dlls(PACKAGE); sub internal_load_dlls($) { my $package = shift; ### check if some ld_shlib_map is defined my $shlib_map = Alien::SDL->config('ld_shlib_map'); return unless $shlib_map; # empty shlib_map, nothing to do ### get list of lib nicknames based on packagename my $lib_nick = SDL::ConfigData->config('SDL_lib_translate')->{$package}; return unless $lib_nick; # no need to load anything ### let us load the corresponding shlibs (*.dll|*.so) require DynaLoader; foreach my $n (@$lib_nick) { my $file = $shlib_map->{$n}; next unless $file && -e $file; my $libref = DynaLoader::dl_load_file( $file, 0 ); push( @DynaLoader::dl_librefs, $libref ) if $libref; push( @LIBREFS, $libref ) if $libref; } } 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer�����������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14524� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/Channels.pm�����������������������������������������������������������������000444��000765��000024�� 1562�11760240073� 16756� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::Channels; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::Channels; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/Effects.pm������������������������������������������������������������������000444��000765��000024�� 1560�11760240073� 16600� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::Effects; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::Effects; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/Groups.pm�������������������������������������������������������������������000444��000765��000024�� 1556�11760240073� 16505� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::Groups; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::Groups; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ��������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/MixChunk.pm�����������������������������������������������������������������000444��000765��000024�� 1562�11760240072� 16750� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::MixChunk; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::MixChunk; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/MixMusic.pm�����������������������������������������������������������������000444��000765��000024�� 1562�11760240072� 16760� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::MixMusic; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::MixMusic; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/Music.pm��������������������������������������������������������������������000444��000765��000024�� 1554�11760240073� 16304� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::Music; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::Music; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ����������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Mixer/Samples.pm������������������������������������������������������������������000444��000765��000024�� 1560�11760240073� 16625� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Mixer::Samples; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants qw(:SDL::Mixer :SDL::Audio); our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Mixer::Samples; use base 'Exporter'; our @EXPORT = ( @{ $SDL::Constants::EXPORT_TAGS{'SDL::Mixer'} }, @{ $SDL::Constants::EXPORT_TAGS{'SDL::Audio'} } ); our %EXPORT_TAGS = ( all => \@EXPORT, init => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/init'}, defaults => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/defaults'}, fading => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/fading'}, type => $SDL::Constants::EXPORT_TAGS{'SDL::Mixer/type'}, format => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/format'}, status => $SDL::Constants::EXPORT_TAGS{'SDL::Audio/status'} ); 1; ������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Net�������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14166� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Net/IPaddress.pm������������������������������������������������������������������000444��000765��000024�� 342�11760240072� 16515� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Net::IPaddress; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Net::IPaddress; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Net/TCP.pm������������������������������������������������������������������������000444��000765��000024�� 326�11760240073� 15270� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Net::TCP; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Net::TCP; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Net/UDP.pm������������������������������������������������������������������������000444��000765��000024�� 326�11760240072� 15271� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Net::UDP; use strict; use warnings; require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Net::UDP; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Pango�����������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14504� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Pango/Context.pm������������������������������������������������������������������000444��000765��000024�� 1067�11760240073� 16627� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Pango::Context; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::Pango'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::Pango::Context; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::Pango'} }; our %EXPORT_TAGS = ( all => \@EXPORT, direction => $SDL::Constants::EXPORT_TAGS{'SDL::Pango/direction'}, align => $SDL::Constants::EXPORT_TAGS{'SDL::Pango/align'} ); 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/SMPEG�����������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14313� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/SMPEG/Info.pm���������������������������������������������������������������������000444��000765��000024�� 4060�11760240073� 15701� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # # MPEG.pm # # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package SDL::SMPEG::Info; use strict; use warnings; use Carp; use SDL; our @ISA = qw(Exporter DynaLoader); use SDL::SMPEG; use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::SMPEG::Info; sub new { my $proto = shift; my $class = ref($proto) || $proto; my %options = @_; my $self; if ( $options{-from} ) { $self = \SDL::SMPEG::SMPEGGetInfo( $options{-from} ); } else { $self = \NewSMPEGInfo(); } bless $self, $class; return $self; } sub DESTROY { # FreeSMPEGInfo( $_[0] ); } sub has_audio { SMPEGInfoHasAudio( $_[0] ); } sub has_video { SMPEGInfoHasVideo( $_[0] ); } sub width { SMPEGInfoWidth( $_[0] ); } sub height { SMPEGInfoHeight( $_[0] ); } sub size { SMPEGInfoTotalSize( $_[0] ); } sub offset { SMPEGInfoCurrentOffset( $_[0] ); } sub frame { SMPEGInfoCurrentFrame( $_[0] ); } sub fps { SMPEGInfoCurrentFPS( $_[0] ); } sub time { SMPEGInfoCurrentTime( $_[0] ); } sub length { SMPEGInfoTotalTime( $_[0] ); } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/TTF�������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14075� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/TTF/Font.pm�����������������������������������������������������������������������000444��000765��000024�� 1035�11760240073� 15475� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::TTF::Font; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::TTF'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDL::TTF::Font; use base 'Exporter'; our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::TTF'} }; our %EXPORT_TAGS = ( all => \@EXPORT, hinting => $SDL::Constants::EXPORT_TAGS{'SDL::TTF/hinting'}, style => $SDL::Constants::EXPORT_TAGS{'SDL::TTF/style'} ); 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Tutorial��������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15243� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Tutorial/Animation.pm�������������������������������������������������������������000444��000765��000024�� 6105�11760240073� 17657� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # # Animation.pm # # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> # # ------------------------------------------------------------------------------ # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ------------------------------------------------------------------------------ # # Please feel free to send questions, suggestions or improvements to: # # David J. Goehrig # dgoehrig@cpan.org # package SDL::Tutorial::Animation; use strict; use warnings; use SDL; use SDLx::App; use SDL::Rect; use SDL::Color; use SDL::Video; # change these values as necessary my $title = 'My SDL Animation'; my ( $width, $height, $depth ) = ( 640, 480, 16 ); my ( $bg_r, $bg_g, $bg_b ) = ( 0x00, 0x00, 0x00 ); my ( $rect_r, $rect_g, $rect_b ) = ( 0x00, 0x00, 0xff ); my ( $rect_width, $rect_height, $rect_y ) = ( 100, 100, 190 ); my $app = SDLx::App->new( width => $width, height => $height, depth => $depth, ); my $color = SDL::Video::map_RGB( $app->format, $rect_r, $rect_g, $rect_b, ); my $bg_color = SDL::Video::map_RGB( $app->format, $bg_r, $bg_g, $bg_b, ); my $background = SDL::Rect->new( 0, 0, $width, $height, ); my $rect = create_rect(); # your code here, perhaps for my $x ( 0 .. 640 ) { $rect->x($x); draw_frame( $app, bg => $background, bg_color => $bg_color, rect => $rect, rect_color => $color, ); } # remove this line sleep 2; # XXX - if you know why I need to create a new rect here, please tell me! $rect = create_rect(); my $old_rect = create_rect(); # your code also here, perhaps for my $x ( 0 .. 640 ) { $rect->x($x); draw_undraw_rect( $app, rect => $rect, old_rect => $old_rect, rect_color => $color, bg_color => $bg_color, ); $old_rect->x($x); } # your code almost certainly follows; remove this line sleep 2; sub create_rect { return SDL::Rect->new( 0, $rect_y, $rect_width, $rect_height, ); } sub draw_frame { my ( $app, %args ) = @_; SDL::Video::fill_rect( $app, $args{bg}, $args{bg_color} ); SDL::Video::fill_rect( $app, $args{rect}, $args{rect_color} ); SDL::Video::update_rects( $app, $args{bg} ); } sub draw_undraw_rect { my ( $app, %args ) = @_; SDL::Video::fill_rect( $app, $args{old_rect}, $args{bg_color} ); SDL::Video::fill_rect( $app, $args{rect}, $args{rect_color} ); SDL::Video::update_rects( $app, $args{old_rect} ); SDL::Video::update_rects( $app, $args{rect} ); } 1; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDL/Tutorial/LunarLander.pm�����������������������������������������������������������000444��000765��000024�� 206236�11760240072� 20215� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::Tutorial::LunarLander; sub import { my ( $class, $filename ) = (@_); return unless defined $filename; # TODO: make these images shorter or maybe move them # to a __DATA__ block at the bottom my $ship_image = join '', map { chr( hex($_) ) } qw( FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 48 00 48 00 00 FF FE 00 13 43 72 65 61 74 65 64 20 77 69 74 68 20 47 49 4D 50 FF DB 00 43 00 05 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0C 08 07 07 07 07 0F 0B 0B 09 0C 11 0F 12 12 11 0F 11 11 13 16 1C 17 13 14 1A 15 11 11 18 21 18 1A 1D 1D 1F 1F 1F 13 17 22 24 22 1E 24 1C 1E 1F 1E FF DB 00 43 01 05 05 05 07 06 07 0E 08 08 0E 1E 14 11 14 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FF C0 00 11 08 00 48 00 5C 03 01 22 00 02 11 01 03 11 01 FF C4 00 1C 00 00 02 02 03 01 01 00 00 00 00 00 00 00 00 00 00 00 06 05 07 01 03 04 08 02 FF C4 00 35 10 00 02 01 04 00 05 02 03 05 07 05 00 00 00 00 00 01 02 03 00 04 05 11 06 12 13 21 31 07 41 22 51 71 14 32 61 81 91 08 16 17 23 42 52 E1 15 33 63 A1 F0 FF C4 00 19 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 04 05 03 01 06 FF C4 00 26 11 00 01 04 01 03 03 05 01 01 00 00 00 00 00 00 00 01 00 02 03 04 11 12 21 31 05 41 F0 13 51 61 81 C1 14 71 FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00 F1 A5 14 51 44 45 15 94 56 77 08 8A 59 98 E8 00 36 49 F9 54 FE 5F 82 78 BF 11 8A 6C AE 57 86 F2 96 56 48 E2 37 96 7B 66 40 8C 42 90 1B 7D C6 C3 2E B7 E7 62 88 97 EA F0 FD 95 B8 57 D2 EE 25 93 3F FC 43 8E E2 E2 68 12 11 67 08 B9 78 22 55 62 DD 49 0B A6 B6 E0 00 55 49 D1 D1 D8 23 65 68 FA B1 FD 33 E1 4B E9 EC 23 CE 40 59 4B B9 50 A4 8D 15 04 6F CF CC 6C 6F F1 ED DE 88 92 F8 B2 D7 1D 63 C5 59 6B 2C 44 B7 12 E3 A0 BD 9A 2B 49 2E 13 96 56 89 5D 82 17 1A 1A 62 A0 6C 68 77 F6 15 19 52 BC 5B 8A 93 09 C4 37 58 D9 4B 33 46 54 F3 31 D9 3C CA 1B 7B FC EB 92 2B 29 4C 72 CB 29 10 A4 4B CC 79 FB 13 F2 00 79 EF FA 7E 94 45 CB 45 14 51 11 45 14 51 11 45 14 51 16 63 77 8A 45 92 37 64 74 21 95 94 E8 82 3C 11 4F B9 DE 28 97 31 82 83 11 95 CD 64 6F AE 67 8A 19 15 A2 91 3A 41 FB 82 B2 80 81 89 03 94 79 3A F3 A2 69 06 9A 7D 37 6C 78 CC 91 71 1C C6 76 86 55 0D D5 09 18 05 40 1C C4 91 A1 F7 B6 49 D6 8F 8A 22 6C 83 87 EC F0 B8 83 77 69 67 23 B7 28 E7 B8 65 0C E0 7B 91 BE C3 EA 06 BE 7B AB 13 80 61 4F DD 3B 26 48 BA 6A DC E4 28 24 FF 00 59 A9 68 38 56 7E 88 55 BC 88 C6 57 EE 98 F6 35 FA D4 B5 D5 8E 4B 15 20 C6 E1 31 1C 37 2D 9D AC 71 C5 CD 75 F6 BE A1 94 22 F5 76 23 90 28 1D 4E 7D 00 3B 0D 51 15 51 EA 05 94 5F BD D0 A2 5B 16 9E E6 04 3C CA 37 CD A2 47 71 F4 1E 7C FE 5D AA BC E3 BC 2B E1 A3 82 35 85 E0 47 72 59 79 89 52 75 D8 8F 9F BF FE ED 5E 94 B9 C2 4D 93 B2 8E F6 E2 D7 15 65 95 B7 95 E2 94 D9 AC CC 9D 16 55 31 FF 00 BA C5 81 E6 59 B7 A3 A2 35 F2 AA 97 D7 AC 4D DD 8E 33 1C 9D 7F B4 19 E6 6D A2 C5 DC 01 A1 BD FB 77 60 3F 31 44 54 D5 15 97 56 46 28 EA 55 87 90 46 88 AC 51 11 45 14 51 11 45 14 51 11 53 1C 1B 60 72 19 F8 23 28 19 23 DC AF BF 1A 1E 3F EF 55 1D 05 A5 C4 C0 32 44 79 4E F4 C7 B2 9D 7E 27 B5 31 F0 44 C9 89 BC 96 E6 EA 46 5E 65 E5 31 72 6C 30 F3 BE 60 7B 1D FB 68 8F 3D C5 13 0B D4 FE 9D 65 71 19 5C 45 8D 84 37 B0 1B F8 61 11 3D B3 B8 12 92 83 44 85 F2 C3 B6 F6 37 D8 F7 A9 BC 14 28 D8 E5 93 A7 73 29 95 8C AE CB 03 90 59 BB B7 7D 7F 71 35 E6 FC 06 5E E6 5C ED 94 10 AF 4D 66 BC 8C C5 38 87 9C C2 EC 40 0E AE B2 76 61 F4 DE C6 AA CC 6C 27 10 E2 30 6D 71 98 E2 1E 27 8E 5B 78 D5 5E 2C 56 79 C8 91 80 50 CC B1 F4 00 50 49 53 AD 9F BC 06 CE C6 E3 9E FC 15 E4 11 C8 EC 13 C0 F7 EC AA 8A 94 D3 46 64 60 D8 27 F5 86 3F F5 FB 80 AD 24 6A D6 DF CF 59 55 90 0E 91 05 49 DF 6F 13 37 D2 90 78 F2 F0 5F F3 49 6A AC 23 B5 05 A2 ED DD D8 1D F8 F9 1D 01 AA E3 E2 5C 76 6F 87 F0 97 9C 49 0F 14 B6 42 D9 23 45 31 4D 92 93 22 D7 2F 2B 43 CA 47 F2 E2 55 2A A1 49 F8 98 9F 87 43 B6 E9 2E 6E 3D 32 5A 18 72 16 69 0B B7 6E 65 F8 0F 6F F8 F6 CC 37 ED B2 05 74 AD 6E 1B 4D 2E 88 E4 03 8F BF 0A E7 35 79 20 20 48 31 9D D2 F7 A8 18 2B 23 04 99 08 17 95 1A 23 34 45 47 B7 92 BF 4A AD EA D0 CC 66 6C 72 5C 19 7F 67 05 C8 86 74 25 A0 59 A3 F8 99 49 EE 83 C8 D9 07 F1 F1 ED E6 AB 06 05 4E 88 22 A8 5C 70 B1 45 14 51 11 5D 98 4C 7C 99 5C AD BD 84 72 24 5D 56 F8 E5 7D F2 C4 80 12 EE DA FE 95 50 58 FE 00 D7 1D 34 61 2C 2F A2 E1 A9 DF 1B 67 73 77 91 CA F3 40 8B 6C A6 47 8A D9 08 32 12 AA 09 1C ED CA A0 FF 00 6A 48 08 D3 0A F0 90 06 4A F4 02 78 5B 84 D8 FE 20 7B 9C 75 A0 16 5F 67 E6 38 C6 66 E5 DC 4B FD 12 1F 1B 20 73 16 3E 09 63 B0 3B 56 FE 17 C3 A6 62 ED A1 92 ED 2D A3 8D 41 79 0E 8E BF 2D 8A 8D C5 E0 2F 6C EE A3 BB BE BC B5 C6 98 5C 37 2C 97 28 92 A9 04 1F BB BE 60 7F 2D 8F 95 36 5D 71 FE 36 09 82 47 04 92 82 80 33 42 7E 10 43 1F 1B 03 F0 FF 00 35 9F 25 89 23 71 F4 1B AC 1F 9E 16 B4 35 A2 78 69 B2 ED 18 F8 E4 79 B7 F8 B4 FA 77 67 37 F1 17 09 14 62 52 83 25 0A 19 17 B7 C3 D4 1B 3B F1 5E 90 CB FD 92 4C 1E 72 F6 49 24 6D 5D A2 C0 1B 9B 68 82 64 04 96 03 5B 23 F1 1B D8 FA 55 13 C3 9E A3 D9 CB 93 B6 48 B1 57 E5 63 65 25 A3 20 B0 EF B1 EF FE 77 56 5D A7 1D E3 F3 36 17 38 78 2D AE 2C 9E E4 73 A0 91 A0 E6 01 00 7D 32 A9 07 60 26 B7 DB E9 A1 5F 3B 79 96 EC 5A 64 CE 8F 48 6E 3B E7 6C E4 AD 48 5B 5E 2A E6 28 A4 D5 A8 9F 8D F1 8C 2D 7E AA 47 6F 8A E0 7E 2A E1 C4 6B C1 73 15 D4 57 30 29 2C 01 85 9D 00 1A D9 D9 1A 60 76 7B 06 4F 9D 53 DC 15 C2 8B C4 10 DE 89 67 9A DA 58 1A 30 A0 20 20 86 E6 DE C1 FA 0A B0 B8 F7 D4 7B 0B D5 5B 91 8A BC 90 41 27 31 92 DC C6 EB D2 60 03 AB 15 6D 0D 95 8C F7 0B DD 7E 74 81 37 A9 16 52 F6 7C 75 D6 BC 72 F3 8F 1F 53 56 74 CF EC AB 19 69 8B 24 9C 9D C7 38 03 F3 3F 6A 7B 71 D5 B0 43 9D 2E 92 36 E0 9D B2 4F EE 3E 92 84 36 A6 F6 78 FA 92 B4 36 D1 03 25 C4 8A 37 CA 83 5B FC FD 87 CC 90 3D EB 6D C3 45 9C C2 5D 49 14 42 2B 9C 61 0F 14 7D 4F 36 84 85 2A 37 E4 A3 90 DD BB 9E A3 93 E2 A7 B3 39 9C 6F 15 62 A4 B4 86 48 F1 F7 4A E8 C9 D7 75 41 20 F8 B6 0B 12 00 1B D1 D6 FB F6 F9 6A A0 B1 B8 EC DE 06 FE 1C C2 E3 9A F2 CE 22 44 AF 08 EA C3 2C 4C A4 3A 33 2E C0 0C 85 81 DE 8E 8D 6E 43 3E BD E5 1A 4F B7 9C AC 99 EB E8 18 88 EA 6F B8 F3 64 B9 45 48 71 16 3D 31 B9 59 6D ED E5 69 AD 5B 52 5B 4A C3 46 48 98 6D 18 81 E0 E8 E8 8F 62 08 F6 A8 FA AD 44 BB F0 B8 D1 91 B8 31 FD B6 CE D0 0D 6D AE 26 11 8D 7B EB 7E 6B 7F 14 5C F3 66 A6 5B 59 A3 FB 34 6A 21 80 42 C3 94 44 A3 4A 09 1A 04 EB EF 1F 72 49 F7 A2 8A 98 38 99 C8 3D 82 A9 CD 0D AE 08 E4 95 13 45 14 55 2A 55 D9 6D 93 BD B7 80 41 1C CD D1 D6 BA 7B D2 9E E4 F7 D7 9F 27 CD 58 5E 9A 5F DF BC D0 4E F9 8C 6C 11 24 72 2A C3 24 AA AC 36 85 46 F9 A4 53 E4 EC 7D 28 A2 B3 BA 9B BD 3A CE 2D 5A 7D 29 A2 4B 2D 0E 4A FC 4F 71 7F 8F BD 40 D9 5B 7B C7 1B E4 78 A6 E7 64 EF EE 43 1D 7E B4 B9 3C B2 4C E5 E5 6E 66 3E 4F CE 8A 2A AA CE 2F 89 AF 77 24 29 2D 30 47 2B 98 DE 02 F8 AC AB BA 12 51 99 49 04 1D 1D 6C 1F 22 8A 2B BA 9D 30 5A 5A 0C AF 0D 42 86 EF 1F 1D CD A4 AC 23 EB 5D 2C 6E 61 6D 92 A4 31 1D 95 BB 8D 77 FE 63 6F C0 A5 F7 42 8E C8 48 24 1D 12 0E C7 EA 28 A2 A5 81 E4 C8 F6 F6 05 57 3B 00 8D 8F EE 57 FF D9 ); my $background_image = join '', map { chr( hex($_) ) } qw( FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 48 00 48 00 00 FF FE 00 13 43 72 65 61 74 65 64 20 77 69 74 68 20 47 49 4D 50 FF DB 00 43 00 05 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0C 08 07 07 07 07 0F 0B 0B 09 0C 11 0F 12 12 11 0F 11 11 13 16 1C 17 13 14 1A 15 11 11 18 21 18 1A 1D 1D 1F 1F 1F 13 17 22 24 22 1E 24 1C 1E 1F 1E FF DB 00 43 01 05 05 05 07 06 07 0E 08 08 0E 1E 14 11 14 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FF C0 00 11 08 02 58 03 20 03 01 22 00 02 11 01 03 11 01 FF C4 00 1D 00 01 00 01 05 01 01 01 00 00 00 00 00 00 00 00 00 00 03 01 02 04 05 07 06 08 09 FF C4 00 4D 10 00 02 01 02 05 01 06 02 07 03 07 09 08 02 03 00 00 01 02 03 11 04 05 12 21 31 41 06 07 13 22 51 61 14 71 23 32 81 91 A1 B1 D2 42 52 C1 08 15 62 A2 D1 D3 F0 17 24 33 34 63 72 B2 B3 E1 25 43 53 83 92 93 C2 C3 35 73 44 82 A3 FF C4 00 19 01 01 01 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00 01 02 03 04 05 FF C4 00 25 11 01 01 00 02 02 02 03 00 01 05 01 00 00 00 00 00 00 01 02 11 03 12 21 31 04 13 41 05 14 33 51 61 71 81 FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00 F8 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 E1 B0 D5 F1 35 63 4A 85 29 D5 9C 9A 49 45 5D B6 74 3E CA 77 2D DB DC FE 70 F0 F2 99 60 E9 C9 5F 5E 2E 5E 12 B7 C9 EF F8 19 4C 2D F4 5F 0E 6E 0F A5 72 9F E4 BE A1 4E 35 73 EE D9 60 70 AA CF C4 85 18 39 B8 FD AE DD 3D 8D DE 13 F9 37 77 7B 5E 6A 9D 3E DA E3 6A D4 72 D3 18 FD 1C 5C DF B2 B6 E8 D9 38 72 B1 8D CF 19 FA F9 3C 1F 58 66 BF C9 63 B3 F4 D3 8E 1B B5 B8 CA 13 97 D4 75 E8 46 50 F9 5D 34 FF 00 03 9B 76 B3 F9 3B F6 C3 28 C4 F8 78 2C 66 59 98 A9 2D 50 50 AA E1 29 2F 94 95 BF 12 7D 39 7E 1D F1 FF 00 2E 30 0D EF 69 7B 21 DA 5E CD D4 50 CE F2 6C 5E 09 37 68 CE 70 F2 49 FB 49 6C FE C6 68 8D 77 1B 3D AC BB 00 04 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 A9 5D DA D7 02 87 52 EE 7F B9 BC EF B7 35 63 8C C5 C9 E5 59 3A DF E2 6A C3 7A BE D4 E3 B6 A7 EF B2 F9 F0 7A 8E E8 7B A3 A1 43 23 A5 DB 5E DB 61 A4 B0 B3 B3 C0 60 64 93 F1 39 B5 49 AB EF 1D B6 8F 5E 5E DB 3E 9B 8F ED 55 77 89 C2 E0 A9 BA 30 C3 C1 C7 54 23 1B 24 D7 A3 5D 3A 25 BD 8F 4B E2 FC 1B C9 3B 57 27 3F CA 9C 77 AC F6 F5 5D DA 76 53 B1 BD 95 AB 1C 3F 67 32 DC 25 39 D2 4A 35 33 1C 4B 53 AB 51 B5 7B A9 5B 6F 92 B1 D3 E5 8A CB F2 FC 6E 13 09 98 2C 35 3A 58 A4 DC 65 3D D4 9A 49 B7 77 C1 C9 7B 35 2A 59 5E 06 35 AA E4 DF CE D8 BA F2 9E 8A 6E AB D3 4D C6 CE F6 F7 4D 24 D2 BA 3D 77 65 32 AC E3 1F 86 C3 57 C6 E5 58 05 1A 77 D3 4A AD 49 4A 5A 79 5A 6A EE E3 65 65 6D D3 EA 6C E6 E1 C7 1B E3 D3 0E 3E 5C B2 F7 ED EE 33 7C BE 9D 5C 05 5A 14 30 90 AF 07 BD 38 D3 6D 29 4B D6 6F D1 7A 7B 1C EF B6 2B 29 CB E8 62 E9 60 72 49 E2 31 94 E1 BD 7C 2A FA 38 CA FB BD DD E4 95 FA 5E C7 A3 ED 74 F3 BC 97 B2 55 3E 16 BD 2A 10 AD 27 18 C3 56 A9 CE 53 69 28 A7 C2 5F 71 E6 FB 37 98 E6 39 8E 33 2A A2 F1 39 6E 51 0C B1 38 CF 14 A8 47 4C DF EE 28 B6 B5 2E 53 7B 2D AE 8C 78 31 B8 CE DB DC 39 6C CB 2E BE AB C8 E1 BB 47 8E AA E3 52 A5 4C 2D 25 4E 94 AA 69 C4 D4 94 95 4B 2D B4 DF 7B DD 7C BD 4F 51 D8 FE D7 53 AF 98 53 CA 73 9C AE 58 D9 E2 D3 A9 45 C5 2D 54 D5 DD EE BA 6F EE 6E 7B 43 95 F6 77 35 71 C7 E6 58 7A 18 B5 4D BF 0E 38 35 38 B9 36 DD D3 51 57 92 6E DD 7E D2 B9 47 77 B4 B0 B4 29 E6 D9 25 7C 4E 02 75 26 E6 B0 D5 97 88 95 39 2D A0 EF 69 46 CF D5 BE 17 CC DF 9F 2F 0E 58 F9 9A 6B C3 8F 93 1C BC 7E 37 D9 D6 03 B2 95 30 D5 32 CC C6 85 2A 90 A8 BC D4 67 15 3B 2F 46 8E 11 DE 7F F2 7C EC 8E 7B 52 55 7B 25 88 8E 4B 99 34 DC 28 CD 37 87 AC D7 4F 5A 6F EC B7 B1 D2 E8 E1 32 BC DF 3A A3 4F B5 14 5E 53 9D 52 94 A9 D3 AB 0A FA 56 23 4D D3 DD 3D FD 53 F4 F5 44 99 A7 67 F1 F9 56 2E 95 6A 18 84 E9 51 57 F1 D7 99 FB A6 93 FE 1D 7A 9C DF 5E 3E AD 6E FB 2F B9 1F 03 F6 BB B3 19 E7 65 33 8A D9 56 7B 97 D6 C1 62 69 49 A7 1A 91 B2 92 F5 8B E1 AF 74 69 8F D0 0E FB 7B 29 5B B7 59 35 2C 2E 27 2D C3 63 B2 F9 52 D7 43 19 41 25 5F 0B 52 D6 7A 5F 55 7E 9C 35 CE F6 3E 1F ED DF 64 F3 4E C8 E7 73 CB 73 2A 7B 6E E8 D5 4B CB 56 37 B5 D7 A7 BA E8 73 72 70 59 8F 68 DF 87 2C B9 75 BE DE 7C 00 73 36 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 63 FE 4F 5D DE D0 CE F1 33 ED 4E 79 A2 19 76 06 77 C3 53 A9 4D CA 35 EA C7 7F 32 E3 44 7A A7 CB DB D4 E6 DD 87 EC F6 37 B5 5D A8 C0 E4 78 0A 6E 75 71 55 54 5B E9 08 F3 29 3F 64 93 7F 61 F6 6E 7F 95 61 FB 35 D9 3C 1E 49 92 E1 9D 2C 1E 1A 10 A5 36 9F 4B 70 FD DB DD FB B3 B3 E2 70 CC B2 ED 5A 79 B3 B8 CD 4F D7 9D CF D6 6B 9D C9 3A F8 C9 42 0B 7A 70 6A D0 4B EC EB 6D 8C 2C A3 B3 15 71 38 89 D6 8F D2 E1 F0 B2 53 C4 CA 53 D2 B4 59 B7 67 EB B6 C8 D8 62 F3 99 D4 CA A8 60 2A D1 6A AE 1A 6D 46 A2 DA F1 7C 27 F8 92 D0 ED 1C F2 3E CE 62 A9 46 31 93 C4 49 28 27 1D E5 A9 DB 7D B8 B2 3D 49 F2 39 37 D6 7A 72 67 F1 F0 98 F7 BE D9 BD 94 C3 56 CF FB C1 C3 2C 2C EB 65 98 27 7A B1 8B 72 9C 69 C1 3D A3 16 DE F7 BF E2 76 7C BA 78 EA 19 8E 27 01 47 07 1A 6A 9C 95 48 62 12 6A 0E 29 AB AB F0 A5 67 F9 FA 1C 6B B2 39 B6 23 07 9C 60 71 D8 FA 90 C1 D2 A9 86 74 BC 46 D5 A2 B5 3D DC 79 57 DA C7 60 A7 DA 4C 1E 17 38 A9 91 D4 8D 4A 95 71 17 9C EA B5 68 C6 9A B4 2E BE 6E EB EF 39 7E 57 6B 96 99 7C 7D 4C 5B 5A D9 15 0C D6 A2 C5 E3 EA 78 8A 31 97 85 4A 15 1B A6 93 B7 3E BC 23 8A 67 59 2C F0 79 86 2A 92 BB 8C AA CA 4E 56 B6 A7 7E 0E D7 8C C0 E1 F2 7C 9D E2 32 E9 2A 35 21 1B 27 1B B8 C9 FA B4 B9 3C 5C 26 E5 8A 95 5A EA 4D 6B 70 C4 2B 5A CA A2 6B 54 3F 7A 3E E6 BF 8F C9 66 EF E2 F3 E1 2E BF CB 9D BC D3 35 C3 56 A7 57 09 8F C5 D2 9D 28 B5 17 09 36 E0 AD 64 95 CC 4A FD BC ED 6E 0A 35 A9 7F 3A 62 31 34 EB 6F 38 56 7A D5 BF 81 26 6D F1 19 6E 3B 19 83 9C 9E B4 DD 39 EA DB 65 2D 9F E0 79 AC CD D6 55 9C A3 27 77 1B C7 55 D5 D7 43 D4 C3 0C 2F B8 E2 B9 65 3D 55 72 AC DB 1F 9C 76 8A 9C 33 68 CB 1C EB CB CF 4E BD 57 14 E4 F8 6B DD 1D C7 B2 19 B6 16 9E 61 8E C0 51 58 95 84 CB 94 23 56 32 93 A8 A7 17 78 DB CC AF 74 D7 3D 51 F3 EE 63 8E C6 D3 C5 47 15 39 7C 2F 83 A2 DA 16 EB 4E E9 A7 EB 7B 33 AB F7 25 98 C7 38 ED 26 7D 5A BD 3D 35 F1 78 5A 35 2A DF 67 29 26 D3 92 BB EA DD F6 F6 35 FC CE 39 D7 B7 E3 6F C6 CA EF 5F AF 75 D9 BC D3 05 E2 3C 4E 0A 87 83 80 C4 56 94 55 28 41 E9 6A F6 4D A7 C3 6F 7D B6 E8 79 0E FE 3B BB C8 7B 4B 95 57 A1 89 87 82 E7 25 52 95 68 C7 53 A3 27 FB 4B F8 AB AB AF BD 7B FA 59 35 4A 38 E5 2C 3F 86 E8 B7 79 C1 F2 FE 45 7B 4B 81 FE 78 C9 31 58 15 6A 55 15 29 A8 EF E6 5E 9F 79 E7 63 96 33 39 67 A7 55 96 E1 FE DF 9A FD AF EC FE 61 D9 7E D1 62 F2 3C D2 9A 86 27 0B 3D 2D AF AB 35 CC 65 1F 54 D3 4D 7C CD 41 F5 17 F2 86 EC 4E 23 B4 1D DF 53 ED 3D 2A 09 E6 DD 9E 93 C2 E3 6C BC D3 C3 F2 9B FF 00 75 BB FC 9B F4 47 CB CF 93 97 9F 8B EB CB 5F 8E 8E 2C FB E3 B5 00 06 86 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 AB 90 3E 91 FE 48 5D 99 86 17 0D 8F ED A6 2E 2B 54 9C B0 B8 54 D7 09 2B D4 97 DF A5 2F 93 3B 7E 0B 0D 5B 3A C6 6B C4 C5 4A 85 59 E9 4A 6B 6F 7B 7B 9E 7F BB FC AA 9E 45 DD 16 45 97 36 A9 B7 84 84 EA AE AE A4 FC F2 5F 7B B7 D8 7B 0E CE D4 78 68 3A D8 76 E5 87 C2 61 9C A5 2F DF AB 2D 94 52 3D 6C 27 4E 3F 0E 2E 4B DF 91 E0 B1 F8 1A 33 C2 E2 B1 31 9E 9F 1B 13 2D 34 D4 7F 62 2D A4 45 87 EC E4 B3 2C DA B6 13 1F 8B 8E 5D 87 A5 4A 55 2B 55 A8 AF B2 FD 95 EF 6B 9E 8F 24 CB EB D1 C6 E6 11 AA D3 C3 50 9A DE 51 52 6E 56 52 7F 9F E0 78 3E F3 33 37 8E CD 6F 43 15 1A 74 EA 42 A4 A6 DF 16 69 6C ED D5 D9 F0 FA 99 71 61 73 CF 5B 39 79 75 87 86 C7 24 C2 47 0D DB 9C 2E 0E A5 4A 58 FA 55 9C 67 87 95 26 A7 1D 3A AF 15 F3 F5 5B 9D B3 B3 7D 9E 82 C8 A9 E1 A5 88 55 33 58 A7 52 AE 22 AA 6E A4 EA 75 93 F6 BF 43 82 F7 5F 89 C5 3C CF 0B 2B 3A 90 C2 BB 53 A8 9B DD BE 12 F4 DD 7D C8 EA 95 BB 55 9A 64 B8 CA B5 67 82 8D 49 D1 A1 7A 94 A1 3B 4A 35 66 F9 92 7C AB 34 F6 DE E5 F9 38 65 BE B3 DB 5F 0D C6 4D D6 1F 78 3D B4 C5 E1 33 7A D9 66 26 B5 55 97 CE 0A 35 65 42 11 77 69 DA 5B BE 38 7B 7B FC CC 3C E7 B7 B9 75 77 86 A5 96 2A F0 D3 45 50 94 A5 1D 3A A0 F9 DB D7 FB 4E 51 9A E6 59 AE 6F 9E 63 69 54 9B AB 27 88 D7 34 A9 F9 9C 94 B8 B2 E1 6F F2 37 F9 0E 50 F3 5A 35 B1 BE 1D 58 E1 A1 5F C3 A9 88 8C F5 78 31 51 BB 6A 3B CA 4F 67 BE E9 1B BE 8C 31 93 6D 5F 66 59 6F 4E 87 98 65 39 16 73 98 56 AF 2C 56 36 A5 47 08 CE BD 58 C1 27 4A EA DB C7 DA D7 7F 2F 73 51 DE D6 56 AB 64 B8 6A F8 0A 98 4C 4D 0C 02 B2 9D 08 DA A2 8E DA 94 E2 B6 B6 D7 56 B1 E5 65 53 0D 81 AD 4F 32 C1 BA F3 82 A8 E3 35 89 56 71 92 5B 45 DA C9 A6 AC EF B5 FA 91 E5 39 A5 4C B3 17 5A 9B A1 7A 55 2D AA 49 5B 55 37 7B C6 DD 7A 59 FF 00 D0 CB 1E 3C A5 99 4B E9 32 CA 79 8D 0F 66 7E 0F 1D 9B CF 2D C6 56 9D 38 E2 62 FC 1A 8D B7 08 54 BF 97 52 E8 9F 17 E9 74 77 5C 97 19 1C A7 30 F8 8C FB 06 E1 89 A7 4B C3 C2 D4 8E 1F 4D 48 C1 45 29 53 BC 76 6B 6E BD 57 B9 F3 C6 77 3A D9 66 71 8F C1 61 31 33 A3 4A B3 D0 D4 27 FE 92 0E 4A 51 DF EC 5B F2 7D 03 DD A7 68 F0 79 97 66 F0 F9 7F 68 14 EB 62 5C 5D 28 62 26 D4 BC 78 FF 00 6E DF 6A 1F 36 5D 4B AF 0B F1 AF E7 EB A0 4E BC 16 59 2C 4D 39 D5 82 8D A6 93 E5 6F C5 CC 0A D8 CF 16 75 1C 65 69 CE 9B 51 71 77 DF DF D8 D7 62 B1 18 8C 3E 36 58 3A 9E 1A A3 38 B5 09 B7 F5 D7 4F B4 D2 67 55 B1 98 79 D2 C6 E1 E8 55 AA B0 D4 DC 2A D1 A7 6D 52 8B 5C A5 D5 A6 B8 F9 9C 18 71 BA 73 CD 83 D9 C9 CF 17 9C E7 39 16 71 86 A5 2A 58 FA 6D 57 A1 6D AC E3 A6 4B DD 34 F9 F6 3E 20 EF 33 B3 55 7B 21 DB AC DB B3 D5 2E D6 13 11 28 D2 93 FD AA 6F 78 3F B6 2D 1F 75 62 EB D3 C6 CB 03 DA 2C BE 34 BC 4A 14 75 38 CB 67 34 FD 3D 2C 7C E9 FC B4 32 88 2E D0 64 BD A5 A3 04 96 3F 0D 2A 35 9C 57 13 A6 D3 57 7E EA 56 FF 00 FA 8F 93 8F 6C 76 BC 19 6A E9 F3 E0 00 F3 5D 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 9F D9 EC 37 C6 E7 D9 7E 11 AB AA D8 9A 74 DA F6 72 48 C0 37 3D 87 94 61 DB 0C A6 73 B6 98 E2 E9 B7 7F F7 91 9F 1C DE 72 25 F4 FB 1F B5 19 9C 30 B9 2E 06 11 D9 46 70 D3 6E 96 DC CE ED 1E 77 4B 03 93 F8 5D 9C C5 E1 F1 18 8A B8 DA 73 94 1B B3 84 38 50 BF B3 B7 D8 78 CA B9 AE 17 11 8C C0 47 13 E6 A1 4A EA A4 12 BD EE AC BF 16 6A 3B 23 93 55 CC F3 8C 3D 39 62 DD 3A 35 A7 27 29 2E 7C 38 49 2F B1 DD 73 EC 7B B7 8E 75 DD FC 79 9B BD BC 7E BA 07 68 BB 69 1C 25 2C C3 22 CA 28 F8 38 CA 70 94 AB D7 7A 6D 19 EC 9C A7 26 ED D7 6E BB 1C C3 09 9A 62 6B D4 70 C4 42 9D 5C 3D 4A 73 D1 53 47 FA 29 B7 26 E5 EB 26 FC DC DF 9B 7A 1D 13 B6 58 9C 8F 29 A3 5F 09 3C 0E 1B 1E EB CE 0E AC 2A CB CB 16 9D F5 5F 66 DB 6D 7C CD 77 6B 6A 60 71 F9 52 F8 AC 34 28 69 A7 1F 06 A5 05 68 49 3B 5A D6 E1 DF 9F 91 38 EC C6 7A F6 C7 39 BF 3B 7A 1E EC 7B 3D 1C 34 70 B9 AE 1F 0B 52 9D 1B C6 3A 67 27 24 9F ED 49 5E DC B5 B2 7C 5D 99 5D BA 8E 2B 1D D9 FC 56 69 98 E5 B5 EA CA 9E 36 BD 0A 6F 5C A8 E8 A1 AE D4 E6 DC 5A 6D 25 1B EF FB C7 9B EE C3 B5 39 D4 73 0A 1D 91 C5 54 82 F0 E4 E2 A7 2D E6 E2 BC D6 DF ED DD 1D 97 31 C1 43 1D 91 E2 F0 58 A9 37 4E BC 14 5E 9E 6C F9 BF CC D1 CB 95 C7 3F 2D D8 C9 96 1E 1F 2D 76 57 07 57 1F DB 2C 4E 13 0B 8A 69 CA 32 A8 AB 78 2E 2A 36 DF 87 7E 9B DF D8 DB BE D1 E6 9D 9D AD 88 C1 65 39 9C E5 41 D3 6A A4 3C 04 92 9A 7A 64 D7 A5 DA DF D7 A9 E9 F2 7C 2E 49 3C E3 38 C1 50 AD E0 CA AE 26 A6 1E AD 7A 4B 4C 92 A7 14 E3 A7 66 92 76 95 F7 E8 DF CB 96 76 96 94 A9 62 DC 75 C2 7A 67 E7 AF 4E 7A 94 D3 6D A7 EC ED F9 9D D8 E5 39 32 F2 E5 CA 74 9E 1D 37 BB 7C C7 37 CF 33 CC 3D 0C 7D 35 98 61 A9 D7 8B 8C 6A B4 E1 27 6B 2B AE B6 4F F0 3D 47 7A 39 2E 13 2F 9F 84 BC 2A 35 2B C7 C6 A3 6B 45 45 A6 AF 14 97 1F 6F 17 BE DB 9E 1F B0 58 55 1C 66 4D 89 C8 F3 4D 59 86 22 A2 8E 2E 84 9D 9C 6D 2D E5 4F 7B 4A CB 95 CF A7 3B 6F 7F 94 5D 48 47 39 C0 D2 78 AF 0E 5E 1C A5 A7 57 D6 4D E9 8C FE 4E CD 35 D0 D1 BD F3 4D 36 E5 35 C7 E5 E5 30 59 76 45 9D D7 59 6E 63 88 AB 47 1B 06 E3 4A BD 29 A7 75 7D B6 7B 3F 63 45 19 4F 26 CD 2B E1 F1 D5 71 15 61 86 92 51 8C 69 A6 E4 93 F9 DE 2B FD D2 F5 8C C2 52 A2 B0 95 AA 3C 35 75 A5 3C 44 7C D1 57 EA BE CB 75 E8 CC 2C CA 71 CC 6B 4E F8 B7 2A D4 EA 68 4E D6 D4 BA 3B 74 EB F7 9D 93 77 C5 BE 1C F7 C7 AF 6E B7 D8 FE DF D5 AD 42 95 6C DF 03 8A 59 74 6A 43 0D 2A B5 F5 4E 9A A9 64 EC A7 FB 3D 3E B7 B6 E7 47 C8 F1 D9 6E 3B 03 5F 13 81 AB 4F 19 4A 7C C6 E9 CA 0D FE CB F4 3E 67 EC FE 3E AE 07 3A C0 52 AA D4 E3 4A AB 75 28 FD 58 B6 D5 AF 6E 2F D5 3F 53 A4 65 79 CE 5D 86 A9 1C 66 55 29 61 B1 38 46 E3 88 A6 A9 D9 D6 A7 7B CB 5F 47 2E 5A 67 1F 37 04 97 C3 A3 8F 93 73 CB DD E3 70 71 A1 8E A7 E0 D3 84 28 CE 8C EE A3 B3 52 BA 7B 7C FF 00 81 C7 7F 95 45 15 8B EE C6 84 E7 4B 45 6C 1E 32 9C E3 D7 C9 24 E3 75 F7 AF B8 EB D9 C6 3A 33 C2 42 6E 2E 0D AD 4B 6B 33 8C F7 FF 00 99 54 C4 76 13 37 C3 D6 85 38 DF C2 74 D2 E9 15 38 BB 7C EE 69 EB 6E 17 FE 36 4B AC A3 E5 A0 54 A1 E3 3D 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 09 5A 78 6C 4D 2A F4 DB 52 A7 35 24 D7 B3 22 05 96 CB B8 3B 8F 66 73 AA 38 CC 35 2A F4 EA C9 D5 AD 38 4B CA D2 71 69 71 F7 D8 E9 DD 8D CD 29 E0 E8 CB 15 55 AA 7E 05 08 50 8A 4F 65 A5 B9 3F C5 9F 28 E4 D9 AE 23 2E AD 17 4A 6D 47 52 6D 1D 33 03 DA E8 63 32 AF 83 F1 A3 15 38 E9 6A FE BE C7 BD 87 24 E7 C3 78 FF 00 EB 87 3E 2E 96 D7 B4 CD B3 4C 3E 2F 3D AC AB D5 FA 67 29 CF 7E 1C AD CE FD 17 4F 90 C8 7B 45 8A 96 0E AD 19 2A 75 97 8B 28 D3 F1 37 5A 6F 7D 9F 43 C1 47 13 53 1D 52 1F 13 8C 4D 41 D9 35 F5 D2 F6 F6 37 B9 45 48 D3 85 2A 34 64 E6 A9 CE D2 97 1A B7 7C 23 7E 52 48 E6 D6 5B 7A FE C9 E3 55 0E D8 64 D9 CE 22 BB A6 FE 92 8D 4B BD DC 94 D2 B7 DD 24 8E F3 8C CC EA 54 C2 A5 4E 4A CE D1 96 99 6F 67 D5 1F 36 62 B1 34 70 B4 F0 F5 27 2D 15 68 66 32 AF 17 2E 8A D1 8B E6 DD 6C 74 7C 27 6A 29 54 C2 4A A2 D1 2A 2A 9C 5B 82 D9 B4 DB 4E DF 8B 39 39 71 DD 95 BB 0F 13 4F 09 57 34 C5 76 7F B4 99 E6 17 C5 D1 57 10 9D 39 5D 38 A9 29 3D 49 FB 7B 3F 76 6A F0 55 70 D4 32 AA F3 C6 53 AD 56 AC B5 6D 0A D6 8C 1A 4E D2 71 7C B5 B7 55 B3 B0 EF 0F 32 A5 99 E7 F0 AD 3C 42 55 12 8D 3A 8E 31 69 38 C5 25 07 7B EE EC BF 0F 73 51 4B 32 A3 FC DB 08 62 13 AB 0A 75 64 9C 63 6B AB AB 37 7F B1 6C FF 00 03 B7 1C 77 25 73 5F 15 9F D9 1E D1 E2 72 0C D3 0F 8E C3 6D 52 9C 92 FA DC 3E AF ED 5B 58 E8 DD EE E6 34 7B 57 91 E5 79 B5 38 45 E3 A1 1D 30 D1 2B 45 A6 EF A6 CF FC 6C CE 27 52 BD 38 4D 4A 1E 66 D5 DF A3 3D 4E 4B 3A D9 8E 02 52 51 84 70 B4 56 A9 C1 46 4D CA 51 6B 66 D2 BE E9 F4 7D 1F A0 E6 C2 4C A6 66 16 DC 6E 2F 41 93 62 68 C3 01 87 A5 8B C3 46 35 30 52 94 A0 E5 6B 4A 32 6E F1 97 A7 FD 0C FE CD 62 32 B8 54 C5 64 38 AC 16 8A B8 BA 6E 51 AF 2A 9A 25 AA DA A2 96 DB 74 FB CF 25 DA 7C C3 13 57 1D 46 AC 70 B1 8E 0E A2 5A 29 C2 ED 45 5F 78 3B EF CA EB B9 93 8B C6 51 9D 59 56 A3 5E 73 95 D2 97 8B 25 74 9F EE BE 91 DF A9 85 96 CF FA CB D3 1F 1D 89 AB FC E9 07 42 9B 55 A0 E5 37 29 3F 3E DE BE BB 1E 9F B2 B9 D5 3C CF 13 08 63 30 D1 8D 67 56 4D 55 8C 74 C6 51 D0 96 97 F6 D9 F3 D0 F3 99 85 2A 55 F0 B1 9D 2A B0 94 9D 47 37 4D 2D 53 71 E3 97 FB 3B 7E 24 75 71 38 55 46 1E 36 EA 83 49 AE 1A 7F BD 75 EE 65 6C CA 69 26 36 57 4F CD FB 53 49 FF 00 9B BA D1 6E 0F 74 E4 93 47 15 EF B3 B4 B1 C5 61 AA E0 21 36 DD 47 18 BD FA 26 9F F0 30 BB 4D DA 68 D2 AB 5F 11 E2 C2 B5 7A BB D3 B7 EC 23 9B E6 D9 86 23 32 C5 CF 11 88 96 A9 37 B7 B1 CB F2 72 C7 87 8F FD D7 4F 06 19 67 96 EF E3 0C 00 78 4F 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 A5 5A A5 27 78 49 A7 EC C8 C1 96 19 E5 85 DE 34 B3 6D A6 07 35 AB 41 A6 A4 DB F5 6C F5 9D 98 ED 2C 16 22 14 E7 3F 0D BA 8A 49 B7 B2 DB 93 9F 95 8C A5 1E 19 E8 61 FC 8D BE 39 23 4D E1 C6 BA BF 6B F3 DA 12 AD 46 9D 0A 91 F1 12 BC A5 7D 9B 72 8B FB F6 5F 71 B2 EC B7 6A A1 4F 2D C5 50 AA E1 29 47 F6 B5 3F 37 1F 86 FF 00 79 C7 7E 2A B3 69 CA 6D B5 EE 4D 87 CC 6A 51 A7 28 2E 1A B5 CE AC 7E 4F 06 78 C9 BD 35 5E 1B 1D 1F B4 18 F8 56 AE EB C6 2D DD C9 A9 F4 56 DB 93 53 83 C7 C6 18 5C 5D 3A 92 D5 AE DA 17 A3 BB B9 E6 FF 00 9F B1 52 C2 CF 0D 29 45 D2 9D AE AD BD D1 85 F1 D3 F1 9D 5D 57 95 EF B9 D5 8F C8 E2 98 EA E4 D5 FD 3D DB D4 4E B6 B9 4E 94 5A 92 B3 92 F9 1E DB BA BC C1 45 62 F0 F5 31 0E 9C 25 15 24 D4 AD A6 4B 87 EF F2 39 0A C7 4F 5C 26 E5 77 15 6D CC 8C BF 39 C4 60 6A 4D D1 9B B4 D5 A4 BD 51 8F 37 CA E2 CB 0D 76 65 87 C7 B8 D7 48 ED 0E 37 E1 B1 F5 6A 4E 73 94 27 37 19 53 A9 2B ED D2 49 DF AE EC D6 BC F6 33 A5 68 C6 9D E2 9E BB 3D ED 6D 99 E2 71 F9 D5 6C 4D 57 25 75 17 CC 5B B9 85 F1 53 50 94 62 DA 52 E5 1A A7 CA E1 C6 79 AC BF A7 B5 EE AB 76 8E 34 9B 7A BC CA 2A CF 55 ED EA 6A B3 DE D4 3C 55 39 53 84 54 94 9D E5 EE 79 49 D5 9C DF 9A 4D 96 1C BC BF C8 63 3F B7 1B 31 F8 F2 7B 49 5A B4 EA C9 CA 4D EE 46 01 E6 E7 C9 96 77 79 56 F9 24 F4 00 0C 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 D1 BF E4 47 B0 51 85 E7 9B F6 81 CB A5 AA D2 5F FD 46 35 7E E7 3B 03 4E 2E D9 97 68 AF D3 E9 A9 7F 74 4D B3 E9 5F 3D 83 BC 4F BA 2E C5 AB AF E7 1C F5 6D B7 D2 D2 7F FD 65 B0 EE AB B0 74 62 FE 2B 1D DA 19 4E DB 46 9D 7A 2B F3 A6 36 74 AE 12 0E E3 2E EB 7B 17 26 95 0A 9D A1 95 F8 D5 8A A3 BF FF 00 E4 61 D4 EE C7 B2 EE 56 A5 5F 39 56 E7 56 22 9B FC A9 8D 9F 5D 71 A0 76 0A 9D D8 F6 7A 2B FD 67 35 4F DE AC 3F BB 2E 87 75 DD 9B 71 5A B1 F9 9A 7C BF A5 A7 FA 06 CF AE B8 E8 3B 1C BB AE EC D7 EC E3 B3 5B 7B D5 A7 BF F5 09 21 DD 5F 66 A4 AE F1 D9 AA 5C FF 00 A5 A7 FA 06 CE 95 C6 01 DA FF 00 C9 3F 66 9C B6 C7 66 A9 6F CD 5A 7F A0 3E E9 FB 37 19 C5 7C 66 6F 25 D5 2A D4 EE FD 97 90 6C FA EB 8A 03 B2 D4 EE C7 B2 EE 56 A5 5F 39 56 E7 56 22 9B FC A9 91 54 EE C7 B3 D1 5F EB 39 AA 7E F5 61 FD D8 D9 F5 D7 1F 07 62 87 75 DD 9B 71 5A B1 F9 9A 7C BF A5 A7 FA 0A CB BA EE CD 7E CE 3B 35 B7 BD 5A 7B FF 00 50 6C E9 5C 70 1D 9E 1D D5 F6 6A 4A EF 1D 9A A5 CF FA 5A 7F A0 93 FC 93 F6 69 CB 6C 76 6A 96 FC D5 A7 FA 06 CF AE B8 A0 3B 54 FB A7 EC DC 64 92 C6 E6 BE FF 00 4B 4F F4 14 97 75 1D 9C 53 B2 C6 66 B6 F4 F1 69 FE 81 B3 A5 71 60 76 A7 DD 3F 66 93 D2 F1 F9 AA 77 E3 C4 87 E8 11 EE 9F B3 4F 77 8F CD 6D 7F FC 5A 7F A0 6D 3A 57 15 07 6C 5D D2 F6 69 FF 00 FC EC D5 FA AF 16 9F E8 29 FE 49 BB 37 E2 24 F1 F9 A2 4F D6 B5 3B FF 00 C0 36 BD 2B 8A 03 B6 3E E9 FB 30 A9 EA 79 86 6B 7F 45 52 9F E8 2E 7D D2 F6 5D 2B BC 76 71 F6 54 A7 F7 7D 41 B4 E9 5C 44 1D BA 3D D4 76 51 D3 6F E3 73 AB AF F6 D4 92 FF 00 80 B1 F7 53 D9 96 F6 C5 67 29 75 6E B5 3F EE CA BD 2B 8A 03 B6 AE E9 BB 31 7F 36 3B 37 B5 AE AD 56 9E FF 00 D4 12 EE 9B B3 2B 8C 5E 70 EF C7 D3 53 FE EC 9B 3A 57 12 07 6D 8F 74 7D 9D 92 FF 00 5B CD D7 FE 6D 3F EE CB A1 DD 0F 67 A4 DA 58 AC DD DB FD B5 3F D0 36 9D 2B 88 03 B9 52 EE 7B B3 D5 15 FE 37 36 8C 7D 5D 5A 7F A0 91 77 35 D9 CB 7F F9 1C D6 4F D1 54 A7 FA 06 D7 A5 70 90 77 48 77 3B D9 A6 E5 AB 31 CD 52 4F 6F A5 A7 FA 0B D7 73 5D 99 71 BF F3 9E 69 FF 00 BB 4F F4 0D 9D 2B 84 03 BB 4B B9 BE CC 46 37 79 9E 6B ED F4 94 F7 FE A1 1B EE 7B B3 6A 1A 9E 3F 34 8A F7 AD 4F 7F EA 0D 9D 2B 86 83 B8 D2 EE 7F 20 A9 26 A1 89 CE 6A 5B 7B C2 A5 37 65 FF 00 B6 5B 2E E8 BB 39 17 BE 37 36 5E DE 2D 3B FF 00 C0 37 0F AE B8 80 3B B5 1E E6 FB 35 59 2D 18 CC E2 FC DF C6 A6 D5 BE 5E 19 9F 4B B9 0E C9 59 3A B9 9E 71 6F E8 D7 A5 FD D8 ED 0F AE BE 7A 07 D1 D2 EE 37 B1 0D C7 4E 6B 9E C7 6B CB 55 7A 5F DD 05 DC 7F 61 22 DF 89 9C 67 CD 2F DD AB 49 7F F5 8E D0 E9 5F 38 83 E8 7A BD CC F6 02 9D DB CC FB 44 D2 F4 AD 4B FB A3 0A 7D D1 76 25 3B C7 31 CF B4 DE D7 F1 69 5F FE 58 D9 D2 B8 28 3B B4 3B A6 EC 44 25 AB 11 98 E7 CE 95 F6 70 AB 49 37 F7 D3 23 AB DD 7F 61 5D FC 0A DD A3 6B FA 58 AA 3F DD 0D 9D 2B 86 83 B4 62 7B AF EC AC 24 E9 C2 AE 77 09 ED 6D 78 9A 4D 7F CB 21 97 75 FD 9E 4A FF 00 11 9B 2F 77 56 16 FF 00 96 36 7D 75 C7 41 D8 29 77 61 D9 C9 45 B9 63 73 35 7E 3E 96 9F E8 24 97 75 DD 9A 4B 6C 7E 68 DF 57 E2 D3 B7 FC 03 67 4A E3 60 EC B4 FB AC EC DC B9 C7 66 BF FB B4 FF 00 41 2F F9 28 EC D3 8A D3 8E CD 6F 6B BB D5 A7 FA 06 CF AE B8 A8 3B 5D 4E E9 BB 37 18 ED 8E CD 5B FF 00 F6 D3 FD 05 B2 EE A3 B3 8A 29 AC 66 6B EF F4 B4 FF 00 40 D9 D2 B8 B0 3B 53 EE A3 B3 49 27 2C 76 6B 1B AD BE 92 9F E8 0B BA 7E CD B6 FF 00 CF F3 4D 97 3E 2D 3F D0 36 9D 2B 8A 83 B6 2E E9 BB 34 DD 96 3F 35 FF 00 DD A7 FA 0A 4F BA 6E CE 25 75 8E CD 57 AD EA D3 FD 03 67 4A E2 80 ED AB BA 5E CC DD DF 30 CD 52 B6 DF 4B 4F F4 08 77 4D D9 87 1D 4F 1D 9B DA FF 00 F8 94 F6 F7 FA 83 67 4A E2 40 ED D0 EE A3 B2 9A 9A 96 37 3A 7E 96 AB 4D 7F F0 2D 97 75 3D 98 BD A1 8A CE 5F A3 F1 A9 FF 00 76 55 E9 5C 4C 1D B1 77 4D D9 96 93 F8 EC DA DD 7E 96 9E DF D4 2E 97 74 DD 98 5B AC 66 71 25 FF 00 EE A7 FD D8 D9 D2 B8 88 3B 6C 7B A5 EC E4 9B B6 2B 38 5F 3A B4 FF 00 BB 2B FE 48 BB 3B AA DF 17 9B BF FC DA 7F A0 9B 4E 95 C4 41 DC 63 DC FF 00 67 A5 37 15 8B CD 93 5F ED A9 BF FE 04 8B B9 AE CE 5D DF 32 CD 2D E8 AA 53 7F FC 06 D7 A5 70 A0 77 47 DC E7 66 D5 55 17 98 66 A9 75 BD 5A 7F A0 BE 3D CD F6 66 57 B6 67 9A 2B 7A D6 A7 FD D8 D9 D2 B8 40 3B BA EE 6B B3 36 BB CC F3 5B 75 FA 4A 7B 7F 50 8D 77 3B D9 B7 7B 66 19 AE 95 FB 4E B5 3F D0 36 74 AE 18 0E DE BB A1 EC EB A8 A3 0C 66 6F 51 BE 14 2A D3 6E FF 00 FA 0A D5 EE 7F B3 D4 DD A7 8B CD E0 D7 49 54 A6 9F FC B1 B8 7D 75 C3 C1 DC 69 77 47 D9 66 BC D8 DC E1 B5 E9 5E 9A FF 00 EB 22 C4 77 3F 90 4E 0F E1 73 5C CA 94 93 FF 00 BD D1 3D BE C4 87 68 7D 75 C4 C1 DB 68 77 39 91 DF 4D 6C E3 31 93 7D 61 08 2F CE E4 35 FB 96 C0 BA 8F C1 ED 06 22 10 F4 A9 86 4D FE 0C 6E 1F 5D 71 80 76 0A DD CB 53 82 7A 3B 4B 19 FA 35 85 76 FB 7C C6 04 BB 9B CC 94 9C 96 75 83 74 FD 74 4A EF EC 1B 87 4C 9C B8 1D 87 0D DD 1E 58 A0 96 27 34 C6 B9 2F AC E1 18 A5 F6 5D 17 4B BA 6C 97 5B 51 CC 73 27 1F 5B 42 FF 00 90 DC 3A 57 1C 07 62 5D D3 E4 CF 8C CB 30 7B FF 00 43 F4 92 2E E8 F2 46 AF FC E7 98 7C D6 8D BF AA 36 74 AE 32 0E D0 FB A3 C8 AC AD 99 E6 37 EA BC 9B 7F 54 8D 77 4D 92 B6 D2 CC 73 17 B7 3E 4F D2 36 74 AE 36 0E CA FB A4 C9 6D 78 E6 78 F7 FF 00 A3 FB 0A C7 BA 4C 8D BB 3C D3 30 4F D3 C9 FD 83 67 4A E3 20 EC FF 00 E4 87 26 7F 57 34 C7 BB AF 48 7F 61 45 DD 1E 4B E2 68 79 9E 61 F3 F2 7F 60 D9 D3 27 19 07 68 5D D0 65 1B FF 00 DA 59 82 5D 3E A7 F6 17 2E E7 F2 57 6F FB 4F 30 BF BE 8F D2 37 0E 95 C5 41 DB A3 DC F7 67 E2 93 AB 9A 66 8D 6F F5 74 7E 92 C9 F7 43 90 C2 A2 BE 65 99 38 3F E9 41 3F F8 46 CE 95 C5 01 DC A8 77 3B D9 BA 91 D5 2C D7 34 8A F6 70 7F FC 48 31 9D D1 76 7A 37 8E 1B 34 CD 2F D1 C9 41 AF C9 0D C3 EB AE 28 0E B5 5F BA 2C 2C 7F D1 67 B5 DF AA 78 54 FF 00 1D 45 F5 3B A6 CB 55 2D 30 CD 71 7E 35 B6 72 A7 15 1B FC BD 06 CE 95 D8 A7 89 87 86 E3 6F 33 EB D5 18 18 9A 97 D5 E7 5F 71 81 F1 0E 6E 53 72 9B F7 2C 9D 58 5A CE AC DF 56 91 26 9B B4 BE B5 65 A2 F1 5B DB 6B EE 45 27 27 E6 9C 14 AF C3 F7 29 78 3F AB 37 1B F4 B0 9C 5A 83 72 9B 9A B6 CD 2E 09 69 A5 AE 70 52 51 A6 9C 64 93 4E CE D7 2E 73 5A 6F 67 2B F4 23 8C 69 EB D5 AA CD 3F DA 7C 92 A9 6B 5A 6F 4F 6F 4F CC BB DC 2A C9 27 29 36 DC 52 F4 E5 08 53 49 26 93 95 B7 7B 97 C2 51 50 FA D7 F6 6C BE E9 C5 AF 2A B6 D6 4F 91 2F 81 49 52 93 FA 8B 69 2E 6D C1 45 4E F3 94 A7 2B 74 F9 94 F1 EB 6D 08 EC BD 51 46 A3 6D A5 BB FD E0 89 52 D3 27 79 37 B6 D7 64 4E A4 A3 E5 8E A9 5B 6D 41 45 B6 A2 E7 A9 7A 2D 89 E4 96 99 59 F1 7B B6 15 03 9A D3 7B 39 5F A1 6C 93 94 9B 6E 29 7A 72 8B D4 B5 AD 37 A7 B7 A7 E6 21 28 A8 7D 6B FB 36 3F 51 64 29 A4 93 49 CA DB BD C9 65 4A 4F EA 2D A4 B9 B7 05 6E 9C 5A F2 AB 6D 64 F9 2C F1 EB 6D 08 EC BD 51 6F 91 55 4E F3 94 A7 2B 74 F9 97 A5 A6 4E F2 6F 6D AE C8 9A 8D B6 96 EF F7 82 8B 6D 45 CF 52 F4 5B 12 2E CF 12 51 76 8D E4 D6 CA 56 2E 53 9B 69 CE 4E CF D3 A1 33 8D EE A2 FA BB B6 8A 24 94 9C 64 D5 D7 E5 EA 25 D2 2D 8D 59 CF 84 B6 8E EE DC 92 42 32 76 F2 C5 3F 42 8D C5 B6 A1 52 5E AF 60 94 97 9A CD DD ED B9 36 A9 52 94 5A 8B B2 2C A9 39 A4 AC 94 7E 45 23 16 F7 BB 4F AF 52 BE 13 B7 89 AA 4E FF 00 56 C5 86 D6 A9 37 A6 2E 56 B1 74 1B DA F2 6D FA 14 50 7A 93 8A D4 DF 2D F4 24 4E 7A 5A D3 06 FA B6 C9 B1 46 A9 D9 3B E9 5F 22 C8 CE 29 DB 54 BD DD CB DE A5 05 2B 45 F4 57 68 8B 43 E9 1D F9 E9 62 89 95 68 3A 7A 74 B7 3F 59 3F E0 65 60 F1 74 A3 68 D5 A4 AD EB 05 BA F7 DC D6 D3 A9 67 B2 DF D5 A2 69 49 A8 E8 D1 1E 37 F5 20 DE D3 74 2B D5 8A A1 27 3A 7D 5D AC D2 F7 2E 8C 68 41 CE 73 A8 A2 93 E3 A9 A0 8D 5A 91 71 71 8C B5 37 6D 9D 9B 32 68 E3 68 46 3B D3 52 BB DE EF FC 7A 0D 58 8D 8C F1 54 1C B4 D3 BB 4B 8F 97 B9 14 29 4E B5 BC F6 6F 7B 70 47 07 87 AE D7 87 17 09 BE A9 75 2B 18 55 D4 A3 E3 4B 6B 59 3E 05 F4 18 8C 13 A1 1D 53 AB 79 3D D2 4C 8E 2A B2 A4 E4 B7 4B AB D8 C8 74 9C 24 9C EA 78 8E FD 5F 3F 69 63 95 7A 95 25 18 C6 5A 1C 93 71 4E E8 41 83 57 C4 7E 5B 2F 9D C8 F4 D4 8F D7 8C D4 BD F8 32 EB D0 A9 7D 56 94 52 7E 9B 18 B3 95 47 1B 37 74 92 E4 B4 4F 47 13 8A A3 42 6E 9D 77 04 F9 4A 56 6C 42 B4 A6 93 93 DB F1 66 2D DB B6 AD D9 74 25 67 6B 25 62 45 6C E9 49 47 87 B9 37 8F 24 B6 97 BF 26 B6 33 D8 A4 EB 35 D7 FA C1 1B 45 89 A9 AA FA 9B BF B8 58 A8 C5 DE A2 BB DB 66 69 A5 8A 71 BB E6 DC AD 4C 86 58 B7 56 4B CF 29 25 D3 A5 82 E9 B3 C4 54 4D FD 6D BD FD 2E 6B AA 55 49 C9 72 EF 7B F4 22 95 68 EE DD 59 A6 F6 B5 88 DC A9 BD D4 A5 17 C5 DF 25 0D 73 9A D4 E2 9C 57 4E 12 45 B3 9D 38 C5 A7 0D 33 6E E9 FA 17 A8 C9 EE AA 6A 57 BB 8D 88 5C 61 2B 5D C9 73 67 22 6C D2 65 53 96 DB 6D 7B DE E5 B2 72 92 5A 6D 15 E9 7B 97 46 6B EA 27 4D DF 6F 56 23 A5 4D A7 2B 3F 45 C3 2D 45 8A 92 77 B6 EE FD 2D 62 58 D3 6E 29 C6 36 6B 66 84 24 9E C9 41 27 BD EE 5B E3 54 A7 78 C1 75 DB A9 6F 90 74 A7 78 C6 52 E3 7F FA 12 69 4A CD 4D B8 DD DC 8F 69 2D 55 26 F5 AE 6F FE 37 2D D2 D2 DA A2 57 BD D2 56 24 5D AF A9 37 19 3B 37 2B EF 6F 42 9E 25 59 6E DB B2 E8 89 A1 14 A2 92 E6 D7 57 E8 1A D3 6D 72 4D 0D E9 16 46 AC BE A4 7C DE 6E 5A 24 8A 94 B5 6A 8A F9 BE A1 B8 26 92 9B 52 E3 65 C0 51 93 DE EE 56 5B EE 4D AC 49 A6 71 5A 9A 4A FD 50 A9 29 28 BB 45 7B BE 0B 12 72 7C B4 FA 6E 57 C2 73 57 D6 ED 15 BD 8B 0D AC D7 26 A5 77 CF 2C BA 10 A9 29 AB 55 DA FD 78 26 C2 D1 55 6B 5A 52 B5 B8 D5 C1 91 89 C3 69 BB 4E 2D BE B1 61 18 B2 A4 D4 B4 BB 6E F9 89 26 1B 0D AD DD 56 6A D6 6D 69 E0 8A A5 29 29 38 B6 EE B9 DF 84 5F 86 AA E9 4F 52 6A 37 76 DF 83 1A AD 85 3C 15 24 FE B5 5A A9 F1 BD 91 9D 86 CB E0 9A 5E 12 57 EA FA 9A A8 66 2E 2A D7 8D F9 DB 62 79 66 98 97 69 52 95 BD 1A 7C 97 F1 19 F8 CC 3C 68 A5 18 5E 52 7D 34 96 4A 95 25 56 2A 52 51 56 BD D9 A9 AF 8F AD 56 4E 75 71 13 53 4A C9 2F C8 B2 96 32 94 5B 72 5A 9A 5D 65 7F F1 C1 3C 8D A5 5C 4E 1A 3E 4A 72 72 6F 96 BD 48 65 AA B4 9D A5 A5 71 C1 0C 6B E1 6B 27 7A 5A 65 EC B8 2F 95 29 C1 E9 55 A6 A2 DF B7 A1 7F 05 F5 70 12 51 75 6A 56 4A 3D 2C F7 66 3D 28 55 72 6A 17 7E CC C8 74 67 A5 4A A5 66 D5 B8 E9 62 95 27 55 4A 31 A5 17 1F 2D B6 97 3E E2 0C 3A B2 AB BD D2 6D DF 86 C8 1C 2A 27 79 46 7A 7A 35 C1 9D 5A 85 49 46 DA 25 1D 95 DA 46 24 9D 58 BD 09 DF 7E 1F 05 B4 5F 84 AB 5E 9C F5 52 AB E1 B8 F0 D3 B3 FB 03 C5 56 9E B9 4E 7A E5 77 79 37 76 63 A9 49 C6 CD A6 BD 2D B1 57 A5 AB 38 C6 CF A9 22 A6 55 20 DD 9E A7 E8 48 94 1B 77 B3 6F 6D F8 46 1C 67 E5 77 D9 D8 91 49 B5 B4 96 C9 EF D5 FB 05 8C B5 35 4A 56 BB F7 DC 55 C4 42 A3 5A 25 2D 3D 55 CC 49 C9 7D 5E 96 BB B1 66 AB 43 8B 7B 58 51 92 E7 15 78 DD AF 41 34 E7 1B 26 92 BF 3D 4C 68 D4 A8 DB BA 4D 27 C3 5D 09 21 CB E7 D3 D8 A8 B1 D3 9A 95 EC DB FC C4 75 5B 6D 5B 73 63 22 8C 9C 14 BC 58 F2 BD 6D 62 B0 51 4E 4E 29 73 7F 62 78 18 AB 5E B6 D4 64 D7 C8 BA 11 9F 0E 94 D5 FD 17 26 67 99 4F CD A6 DC F2 23 38 DA EA 32 E3 D0 6C DB 1A 50 A9 6D 2A 0F 9F 4E 84 7A 67 AD AD 0E F6 BA 49 3D 8C B8 CF 5B D6 ED 6B 5D 7B 91 3A B6 9C A5 6D AF 6B DC 08 E3 85 C4 4A 4B E8 E7 66 BD 0B D5 1A CA 56 9C 1F BD EE 65 51 C4 47 4C 9B AF 28 AD 36 56 85 CB 1E 2E AA 5A 54 9B 56 E7 81 B1 65 2A 55 14 95 58 A6 EC EF 6D 3C 17 79 A7 3D 52 8B 4F AE C4 7E 33 D5 74 F7 BF 09 97 46 A4 E3 06 E7 3B FC 90 D2 D5 F3 8B 49 4A 4E 49 A7 C5 BA 17 45 CE 57 D3 14 D2 4B 72 35 28 EC AE DD FD 4A BA 89 A6 D3 D2 96 CB E7 EA 2C 42 3A E7 51 DD 3B 5F A2 E4 8B 16 E6 A4 E2 E2 9D BA A7 B7 E0 5F E2 69 DB 4B BB F4 EA 13 F1 25 A6 73 D2 BD 5A B9 28 86 84 A4 EA 45 DB DD A4 2B D3 9B 93 DE 4F D1 7A 19 49 53 8C 34 A7 7B BE 6D B1 74 29 24 FC 49 CD 28 FB 7C C0 C1 8C 66 9F 96 2F 6F 44 62 E6 F8 CA 39 66 5D 57 1F 8E A9 2A 38 7A 36 73 9C 97 09 B4 97 DE DA 46 F5 AA 6A 3A 62 EE BD 5E C7 8F EF 7E 71 7D DB E6 E9 41 AF F4 2A F7 FF 00 6D 02 C2 F8 8D 87 C6 C7 5D DC 68 36 BE 5B 92 47 1F 46 51 D2 E3 05 7E AB FB 4C 49 51 8C 1B 6E 84 1E F7 BB 89 44 A9 A7 75 4A 0E DB F1 D4 B4 DB 32 18 8A 33 92 8C A4 AD 7E 2F D0 96 A6 26 84 2A 69 58 87 CD D2 B5 CD 6C DD 2B AB D1 A6 ED B2 4E 25 55 3A 33 77 54 69 34 F6 7E 72 E9 19 F2 C7 50 77 8D 45 19 AB AF AC BF 22 C7 8B C2 29 E9 8D 24 D5 9D 97 AA BD CC 37 84 A6 D5 E3 87 5B 73 79 5D 17 7C 2D 07 6B 61 EA 47 6E 6E 48 32 E5 52 12 83 93 A0 E1 B6 D7 5B 11 C2 BE 19 C9 5D 59 71 F5 4C 7F 86 9E 87 18 C6 B4 93 F5 65 3E 15 AD 9D 0A 8E CF 84 D9 46 7F 8F 83 4F CD 1F 25 B7 49 17 78 D8 79 ED 19 45 27 BA 56 BB 35 EB 0C 92 BF 83 5E 17 7B 6E 5E F0 AE 56 6D D4 4D 70 94 96 C2 C1 99 5A BD 24 F9 8A 95 F8 B7 04 6B 15 45 4A F3 8C 1F AA 6B A1 14 F0 D3 9C 14 7C 4A D2 8A 7B 45 B4 D1 14 B0 B1 57 BC 64 41 96 F1 58 55 2B 46 8D D6 FB 7A EF 71 2A 90 94 1C 9D 07 0D B6 BA D8 C4 54 12 FA B1 9A FB 4A 2C 3C DC 64 A3 1A B2 4F 7E 6C 8A 32 21 5F 0C E4 AE AC B8 FA A4 DE 3E 0D 3F 34 7C 96 DD 24 60 7C 2B 5B 3A 15 1D 9F 09 B2 B1 C3 C7 FF 00 06 B4 1B E9 71 26 C6 C3 C6 C3 CF 68 CA 29 3D D2 B5 D9 4A B5 A9 27 CC 54 B5 71 6E 0C 27 86 72 6A FE 2A 6B 8B 34 49 2A 12 A9 49 25 5A BE 95 7B 45 D9 A2 0C 8A 75 A1 AA EE 34 DD FA 4A C5 67 65 59 B8 CA 8C BA F9 4C 3F 83 6F 8A 92 B2 DF 65 C1 6F C1 2D 7E 6A 92 6B 94 AC 5B A1 94 E5 29 C9 D3 A7 18 3B 2E AC 8E 53 7A 9C 9E CD 3B 5B D4 B6 18 4A 6D 3B D5 9A DB A4 6E 5D F0 31 92 BA C5 CD 5F D6 3C 0D 40 58 94 F7 AB 09 B5 D2 DB 32 AB 12 92 B2 73 5B EF BE E5 EF 2F 93 76 A5 8F BD B7 B3 A7 62 DF E6 CA EB 75 8C 82 96 D6 4D 74 31 12 D3 CC 6A 41 EA 85 57 69 2E 1A 2F A9 8C BC 15 4F F3 77 25 CA 4A C6 14 F0 18 97 3B 2A B4 E5 EA D2 2B 0C BE A6 FE 2E 22 9C 77 E5 C1 B5 6F B1 14 66 53 C5 A4 D2 B4 1A 7F 81 75 4A B4 E1 2B 4E 4B D9 2D DF DE 61 3C 2C A0 9C 7C 4A 53 6B 87 A5 94 58 29 CA 4F 54 A9 C5 2E 96 68 9A 19 D5 AB E1 54 14 29 54 D3 27 B7 9A DF 81 4C 35 2A 6D 37 2C C2 84 1A 57 51 95 F7 F4 E0 C5 58 29 2D DB A5 C6 C9 B2 E5 86 8A 56 72 A6 95 BF 65 31 60 9A 55 A7 4E 6D 28 C2 6F 87 67 B1 63 4A 7E 65 4D A4 DD 95 92 D8 8D E1 A1 B5 A6 B5 DA FC 17 42 8C DD 97 8D A7 D1 14 49 0F 16 0E E9 3F 5F 99 33 C4 62 14 13 5D 57 A1 0A C2 D5 B3 5E 2C 5A 6F 9B 6E 27 46 71 95 9D 5B DB 6D A3 76 48 25 59 8E 22 11 D2 D6 CF 7E 38 2B 1C CB 11 06 AA 42 A6 9B 2E 52 22 58 7A D2 DA 13 AB 37 D1 46 9B 2D 6F 13 0B AA BA D2 8E D6 D3 67 F7 14 64 CF 1F 88 71 B5 DF BB F5 2C 96 29 D4 49 78 5B A5 B3 5D 0C 49 54 B3 BC 6A C9 27 D5 F2 4D 41 CA 71 92 75 29 AB EC 93 95 AE 05 F3 93 71 BD A5 7E A8 8A 4E CF DB E4 EE 5D 51 AB F9 6A 42 2B E5 D7 EF 20 F8 8C 54 BC BE 3A 94 7F DC 16 0C 88 56 DB 72 B2 AD 1B 74 FB 48 15 19 B4 F5 68 6D EF C1 49 45 EF E5 8F 04 12 2C 64 21 2B B8 42 6B D1 F0 45 53 19 06 FE AE 1F 4D FD 56 C5 25 6D 96 95 67 F9 11 54 A2 B5 6A 95 08 3D AD 65 1D 8B 22 ED 93 0C C2 9A 7E 68 53 BA F4 E9 EE 53 E2 A8 FE F2 51 B7 46 61 DA 0F FE EA 1A BD 12 2B 27 4D AB 3A 50 B7 CB EE 11 1B 19 D7 C3 D3 A7 1F A6 70 BA B3 B6 FB F5 2D F8 EA 71 69 39 29 26 BA C7 63 5E A3 46 69 35 46 92 6B A6 AB 15 78 5A 52 BE 9C 3C 6E F7 DA 77 42 C8 6D 99 2C 5E 0E 29 38 D3 8A 7B 5E DD 1E FF 00 DA 5C AB 53 9B F2 E1 A4 A2 9F 29 18 4B 0B 47 4D 9E 1A 4E 5E B1 7B 15 8E 1B 4C BE 8E 35 AD E8 99 44 D2 AF 41 37 19 2B 3E BE 52 65 5F 0A A2 AC 97 4D ED B9 83 F0 B2 5C D2 A9 BD F8 77 29 E0 41 3D E9 D5 83 4B D4 41 B2 55 F0 AD 7D 1D A2 AF 6F 37 37 13 AB 4A 30 B3 6A C9 59 5D 73 C9 AD F0 9A 56 BB 92 2E 8F 8A A2 E0 AA 4D 27 CA 4C 59 A1 98 AB 41 B5 75 16 97 56 5F 59 C2 71 8C D3 A0 AE AD A5 72 60 53 C3 6A 56 55 1A 7E 96 2B 3C 13 B2 BD 59 FA 3B A0 32 EA 4D A6 A2 94 1C 9B DE E4 75 75 A9 68 9A D3 B5 EE 9D D7 E0 47 1C 25 34 EC EA 49 59 F4 8D D9 7A C1 53 77 B6 26 6A DD 1C 50 92 50 F8 89 7D 57 16 E2 9E F6 2A B1 50 4D B8 29 C5 5B 64 D9 74 72 FB 45 28 63 DC 64 F6 F3 53 FE 21 E5 95 EF 77 8C 84 52 EA D7 2C C4 56 18 D7 18 AD 35 26 B4 F4 7B DC 92 18 A6 DC A6 EA D3 D4 96 D7 6D 18 B5 30 18 94 AD E3 D2 9B F9 14 8E 5F 5F 52 D7 5A 29 5B F7 5B B3 2F A1 97 1C 67 ED 5A 9B DF 74 4B 3A D1 D2 A7 29 46 31 92 F5 B9 85 F0 6E 9B 5F 4F 46 A4 5F F4 24 5B F0 95 26 D6 F4 92 7E 89 AB 93 42 5A DF 0F 2F 3F 89 18 5D 3B 92 61 A1 07 25 7C 75 2A 2B A3 7C 7E 04 0B 03 25 FB 54 EC 9E F7 65 D1 C2 A5 CB A4 B7 E6 DB 8D 0C 8A D2 9D 1B C6 35 E8 E2 22 DD E2 D7 0F EF 23 DA 71 B7 82 A3 65 76 A2 8B 1E 1A 9E 9B B9 C5 EF 64 23 46 49 B5 E2 E9 5D 58 82 45 19 A7 78 A7 6F C8 9E 15 EB A8 B6 AF B3 F4 B9 0C 70 D5 79 55 A3 2D BA AF FA 89 61 EA 42 29 3A A9 DF 7B 58 09 23 8F C4 D2 BB B6 FC 5A DC 95 59 85 76 9D 9A 4F E4 45 1A 15 1F D5 AB 3B 7A 46 9E E2 50 C6 52 7A 64 A7 18 BD FC D1 B5 CA 32 5E 67 89 A8 9C A5 37 26 FA FA 16 7C 64 A5 1D 13 A5 AF 53 F3 74 B9 89 52 A5 E5 75 39 A6 9E EA 45 D4 2A 49 CD 7D 2C 6C BA B6 D0 13 EB 72 5E 65 2B F4 D8 89 BD BD 1F 5B A2 FA 96 8A B6 BA 7A BA DB 7D BE F2 19 62 71 18 69 A7 43 17 17 C5 D6 9D BF 11 60 AC 14 63 2B DE 5B BB 7D 5D 89 1E 99 3F 22 D2 D7 D6 7A 79 31 A1 8A C5 54 A8 FC 4A B6 DE E9 AA 77 F5 13 A9 8A D7 A1 54 94 6D BF 9A 3B BF 7E 04 83 2A 31 A6 E7 66 E7 27 F9 99 14 E8 D2 D6 AE A7 15 EF F9 9A CF 12 BE BF 34 B4 6D B3 BB 23 95 4A B1 8A 93 72 BB 56 8D B9 7F 21 AD 8D EB 85 08 6A 74 EA EC FA 34 56 12 C2 A5 A7 43 BF B7 0C F3 F1 C4 62 A0 D4 67 76 9E F6 6C 9A 18 B8 C2 9D E3 4E A3 7F 35 C8 D0 DE 3A D8 2B 46 5A 64 E4 B6 B7 05 D1 54 27 2F A3 84 D7 BA 6A DF 99 E7 21 8E 71 4A 2D 2B 73 6B 17 CF 15 53 52 97 86 92 FE 8F FD 07 55 DB 6F 59 BA 6F EB 4B 7D 93 71 FE 23 C5 84 1A 75 6A 6A F6 35 3F CE B5 E3 4E D6 D3 15 C2 72 6E C4 70 CC 53 BB 94 13 F5 DF 91 22 37 B8 7C 6C 29 4E 55 70 F3 8C 65 A7 46 F0 4E E9 90 45 53 73 DE 69 5F 7B DB 83 57 1C 55 2B 5E 29 C1 BF 56 B9 2F F8 CA 51 49 55 6E 4D F1 7D BF 20 BB 6D 5D 3A 0E 2E 32 C4 25 F2 E0 BF 4E 0F 4A 51 A9 2F B1 1A 98 E6 38 3B 2F A3 93 B2 E8 52 A6 32 9C 52 54 A2 FD 75 5A CD 7E 24 83 65 38 D0 72 7A 6A 35 2E 6F 7E 0A 28 49 2B EA 53 57 DD C5 70 6B E9 62 3C 47 14 E9 39 3E 8D 4A D6 36 B8 7A 53 F0 5C 9E 21 45 7B 6F 6F B4 A7 B4 17 D9 35 25 25 D2 DC 89 F8 B2 92 A7 A1 B5 EA 65 E1 70 B4 AB 29 78 98 A8 AD F6 5A 4C 99 E5 D4 63 04 96 36 32 95 B7 B3 B5 89 EC DB 56 A9 57 F6 69 7A BD CB A3 4F 53 6D 4A 37 BE EA ED FD 86 C6 59 44 94 75 CB 1B 46 31 BE D7 8E A7 6F 5D 99 1B CB 94 A9 25 47 1D 4A 75 2F F5 3E 1E 4B F1 B8 A8 A4 65 4E 9A 8B 92 C3 CD DB 8B BD 88 2A 2A D5 5D E1 06 D3 FD DE 82 58 5C 5D 29 6A 92 A5 FE EC 9D 85 7A 55 E3 07 27 89 A6 EF D1 4D 31 D4 4D 43 0D 37 16 E5 38 43 6D F5 A3 CA 77 C7 AA 3D DC 66 91 75 35 FF 00 A1 5F 56 DF F7 D0 37 F0 8C EE 94 EB B8 DB 97 A5 5B EF 3C E7 7B B8 65 1E ED B3 4A CF 12 AA 35 E0 F9 54 93 FF 00 BE 80 D7 94 CB D3 7A A9 37 2B 28 DD F3 64 5F 1A 5A 2F AA 1A 6E B9 92 6C C0 9E 22 A4 BE A6 B4 FE CB 15 F1 AA CA 3E 69 54 E9 6B 6C 93 2A B2 6A 53 96 AD A0 9B E7 7E AB 72 F5 42 8B 84 7C 91 D4 DE FB 23 02 6E A4 62 BC D2 5B 5F EB 5C BA 35 2A C5 5A ED DB 76 EF CF B0 19 D0 C2 D0 8B 97 D1 B6 DA BD 8A CA 85 1B BF 2A 51 E2 D1 66 2C 6B E2 52 72 71 8D 92 DB 82 AE A5 79 2B BD 2E CF 7D F6 64 F2 32 1D 2A 31 57 8C E7 65 CA D5 72 B0 71 8B 52 8D 59 35 F3 D8 C5 75 6A A8 DB 98 DB 87 D0 BA 93 8B 69 4E 3E 5E 7D CB E7 F4 65 CE 70 5B B9 5F 6D DD CC 6A B5 E8 C9 34 E4 D5 B9 56 76 25 F0 30 32 7E 47 35 7E 6F 22 E8 E1 30 EF CB AA 76 BF A9 20 86 8D 7A 11 8C E1 19 3D 2D 59 B7 B9 34 6A 42 D1 6A 49 70 1E 03 0E 93 B4 A5 FF 00 A8 C6 AF 83 8C 65 AA 13 6E CA F6 D5 D4 B4 65 54 F0 E4 ED 26 9F AB BE FF 00 81 63 A7 4D 2B EB 9B B7 36 66 14 21 38 F9 92 4F D6 F2 24 75 6B 28 DB 98 DB 86 4F 3F 82 79 CA 9C 20 E6 AA D5 6A DF B2 D9 1C 71 0B 56 CE A3 BB E5 CA E5 29 E9 93 5A 95 97 24 B3 A3 85 84 94 AF 0B 5E EE D2 65 11 4E B5 65 25 BC BE 48 8E 52 C4 69 BD E7 25 F9 1B 4A 71 A2 EC B4 29 2F 99 35 3A 14 5C DC 53 8A 8B FE 9F 08 90 69 56 22 AD 38 BD 2F C9 EA 96 E4 D8 7A B5 2A DF CD F5 57 CA F7 36 92 C1 2A 4E F1 B3 8B 5B 69 9A 64 3F 0E DB 6A 2D AB F3 7B 14 62 C6 A3 8A D1 E2 73 BD DE FF 00 91 2C 31 50 8C 1E A9 42 5D 3D CB E5 87 9D 9A D7 08 AF 48 CA DF C0 8E A6 0B F6 A5 04 DD F9 6D 93 42 B5 B1 70 4D BF 0A 31 DB 8E 3F C7 04 4F 1F 18 D9 F8 5C F5 BF 04 8B 04 ED 6B B4 9D FF 00 32 F8 65 73 4D 35 14 D3 E5 5F EF 10 40 B3 26 B7 D0 B7 76 BA 2F F8 8D 4A EE 2D 5B 7E 4A CF 2D 4B 68 D3 8B DE D6 52 DD 90 62 32 F7 46 2B 55 2A 91 72 EB 19 27 F9 17 C0 C9 55 21 14 92 84 67 6F E9 16 D5 C4 6F 1F 2C 52 4B 74 9D FE CB 9A C9 D0 82 9E DE 2A 6B FC 58 3C 3D 59 B7 18 45 BF 6B 96 0C D9 E2 68 CA EF 4B 4B 87 BF 25 D4 71 91 85 92 F2 3B 5B DA C4 98 1E CE D6 AB 15 2C 4E 22 95 18 4B A6 AB C9 FD 87 A0 CB 72 3C 83 0C D7 C5 45 E2 9A 56 F3 49 DB EE 46 3B 1A 0F 88 C2 B9 A4 A4 A5 75 BB B9 95 4D 60 65 45 D4 D7 15 27 B6 87 1D FE 77 33 B3 6C 9B 25 AC DC B0 31 96 1E 4F A2 DE 2B EF 30 32 EC 8A 9C AB B8 D7 C4 5E 0B F7 5D BF 83 1B 83 19 BC 2B A8 93 F1 37 56 B5 FA 97 C9 50 8C AF AA 51 4B F7 67 BF DC 7A 4C 56 49 94 46 8C 7C 2A 50 93 4B EB 3A 92 BB E0 C0 A5 90 E1 27 29 56 A3 5E 54 ED 64 A1 29 5F F1 62 51 83 46 B4 A1 14 E9 63 B1 34 E2 D7 EC CB 92 F5 85 A5 5D 3A B5 B1 B2 94 B9 F3 3B B3 2A AE 54 D4 EF 57 7F 5F 32 DF EE 30 EA 61 6A C2 6D 43 0B AB FD D9 EE FE F1 B1 0C B2 D8 B9 2B 62 95 D7 F4 0B 23 94 CA ED BC 55 29 24 EF E6 8B B1 74 D5 58 49 C7 E1 31 09 AD DE FC 15 A6 AB A9 B6 A9 D6 B7 5B 49 2E 83 CC 0C 4E 57 29 D9 AA 98 5A 5E D1 83 5F 6F 24 70 C9 6B 27 65 8A A3 CE EF 73 27 C2 AE E4 E2 95 47 EB A9 A2 94 E9 57 B2 5A 25 75 B3 DC 9B 11 7F 35 D6 8A 57 AF 4F 7D B6 22 9E 0E 71 FD B8 BE 86 6B C3 62 1F 30 97 DE 43 57 0D 59 2D E0 F9 F5 E0 0C 29 52 94 5D F6 29 A5 BE 52 BF B1 5C 55 3A B0 4F CB 6B 4B 7D CC 27 56 AC 65 67 7E 7A 33 29 B1 B0 8D 19 46 4A 4E 9B D9 F5 57 45 B5 69 F9 6F 18 A6 B8 4E DB 70 61 C6 BD 56 AC E5 52 DB DE DD 4A 37 53 4B 95 E5 BB FD E0 33 69 D1 83 8C 9D 5A 71 53 4B 6E 0A AC 2D 15 38 C9 D3 F4 D9 5C C0 A7 3A C9 5D 4A 4D BE 37 E0 96 9D 5C 43 B2 8C 56 9F 56 D0 A3 31 E1 E8 EC A3 05 17 F3 DC A2 A1 41 2F 2C A6 9B E9 A8 C7 F1 B1 13 4E FA 78 DA CF 8B 05 52 B4 77 5B 7A A4 F9 27 91 91 15 4D CB CB 56 69 A7 C5 C9 55 07 28 ED 52 53 5C 79 BA 98 30 9B 6E EE 29 3B 9B 1A 78 8C 3C 68 A5 BA 95 D6 E5 F2 21 9E 0F 7D 95 B7 2D F8 4B F2 8C BA 55 E3 38 A9 46 49 A6 49 A9 3E 88 6C 61 2C 24 A3 BA 7F 71 7C E8 54 50 76 AD 7F 77 D0 CC D1 29 2F 2F E6 43 3A 75 6F 66 DA 62 0C 3F 12 50 93 93 9B DF A7 36 24 A7 88 50 95 A5 3A 72 B7 47 B7 E6 4A F0 D3 5C 4A 9C 6F D6 F6 64 73 C1 B9 46 F2 5A D5 9E EE 44 15 78 BA 6E 11 6A 9C 6D 7D A5 6E 7F C5 88 7E 3A 29 5D 51 4E DB 6C CB E3 83 EB 15 6E 36 57 2E 8E 59 29 79 A3 66 FE 7C FA 12 08 96 63 BD E3 05 64 8B E3 8B F1 55 DC 5E FC EF B2 2F AB 96 A4 DB 70 8A 95 AE EF 26 43 53 2D 94 20 EA 4A 84 92 4F F6 66 BF 23 2A 25 55 61 BC B4 A6 DF 29 BB 15 9D 7B 42 CA 9C 20 EF EB 76 6B 2A E1 E0 AC 9A AC 9D EF B9 6F 83 36 92 8E AE 36 6C B0 67 4F 13 4D BD 2E 2D C9 72 D3 2D A7 8A A7 06 DA 8B 4A F7 D5 D4 65 F9 26 2F 12 D4 9C E9 D1 85 F7 72 9F 1F 62 37 D9 77 67 72 8A 3A 65 8A AE F1 17 DF 4A 76 46 37 D8 D4 CB 15 87 94 54 A7 35 29 DF AB 32 30 CF 05 56 4D CE 71 A7 A7 7B CA 37 4F DB 83 75 99 E5 5D 9C AD 0B 61 F0 DE 04 D2 B2 70 93 DF EF 34 51 C8 A3 1C 4A 8F C4 5E 0F 7E 2C EC 36 6D 66 21 E1 54 AD E7 49 3E 8E DB 15 70 C3 E9 56 BA 4F 7B EB 49 9E 92 86 45 94 43 07 E6 8A AB 3E 5B 95 47 B7 DC 60 CB 22 C0 D6 AE A3 09 CB 0F 28 EE DA 9E A4 C6 E0 D6 D0 A9 18 DE 54 71 55 E9 B5 6D D4 AD 62 6F 0D 62 DD AB E6 15 64 97 FE 24 AE 66 55 CA 25 18 A5 A9 4A 0B 68 C9 49 18 98 8C 14 A9 C9 78 74 23 34 B8 7A DA 6B EF 1B 10 56 CB E9 49 BD 38 A5 6F F7 48 A5 94 CA 53 FF 00 5B 85 AD C6 92 4A B0 AD 4D F9 B0 75 D3 7C 59 96 5A B4 9A 71 A5 59 35 7D AE 8B E8 49 2C B1 BA 0A 2A 78 45 6E 66 A0 EE FF 00 13 19 E4 B5 13 BA C5 51 6D FB 6C 66 38 57 6E 2D 46 B5 E4 F8 72 4C 46 8D 75 36 B4 3D F7 5B A3 1D 88 D6 41 8C 51 D7 46 B5 0D 29 6F 27 2B 5C 86 BE 57 99 49 5D 4A 9C D2 DE EA 7C 1B 1F 87 C4 D3 85 EA A9 A4 DD 94 6F C8 A9 17 E2 78 6A 35 20 D7 37 DF 61 BA 35 6F 2B CC 63 E6 9D 19 B4 BA C2 CD 90 4F 05 88 57 95 4A 73 85 97 A3 EB C9 BD A7 5A 74 AA 34 A6 E4 ED 6B 58 96 9E 26 A2 95 D4 E4 FE 65 D8 D1 42 9C 65 1D 35 29 5F D3 5B 4C 8E A6 12 83 56 93 8C 6E AC AC 91 E8 9E 2A 12 8B 94 A9 41 B4 F7 F2 A6 D9 03 C5 E1 F5 A5 28 51 6A 3C C5 A1 BA AF 3C F0 50 71 F2 38 B5 6B 2B D8 4F 2F 92 8A FA 48 AE 9A 53 B1 E8 A7 8A C2 CA 4D C7 0D 41 2E 90 89 3E 1F 11 84 84 AF E0 D1 57 7B DE 37 DC 76 47 91 9E 5D 36 AE B4 4B AF 24 51 C0 D4 D5 BC 15 FF 00 03 DC BC 46 12 A2 94 61 4A 0D FB 6C 5B 0A 51 A8 B6 71 5F 60 99 68 78 99 60 EA 39 3D 54 A2 9A B7 2A D6 11 C2 D4 6D 26 9B 57 E2 CB 63 D9 62 70 55 5F 9D 28 CE EB A2 30 5D 1A 7B C6 54 AD F6 F0 5D 8F 38 F0 C9 4A FE 15 E4 DF 4E 85 F4 E9 C5 27 7A 4D FD 9C 1B E5 4E 84 5D 94 3E CB 95 92 A2 A4 92 84 FE FD 91 37 B1 A4 84 E3 16 93 52 D9 58 AC 71 D1 82 F2 C5 A6 DF 2F 93 6B 2A 78 6D 57 71 BA 5C DD 97 2A 78 29 C6 F2 C1 D3 76 E1 F8 AD 3B FC 8A 35 8B 34 AF 38 28 CD DA 29 71 65 B8 96 3F 55 FE 91 EF C2 57 B2 32 E7 84 A2 E5 B6 1D A4 97 2A 44 15 30 74 BF 65 4D 59 75 B0 17 61 F1 F3 A5 25 A6 BD 3D BD 5D 8C DC 5E 77 5B 19 24 AA 53 A2 F4 AB 29 53 51 85 9F D8 8D 57 C2 28 BB C6 F7 E9 74 57 E1 31 30 8E A7 4B CB FB C9 5F 6E A0 64 78 95 9C E5 78 A8 FA B6 F7 65 B3 8C DC 2D 78 26 B9 FA 44 AF F8 98 DA DA 86 F4 A2 DF 17 64 6E 7A B7 94 52 FB 40 CA 55 E5 4D A7 3E 3A A8 B5 F9 9E 5F BD 8C 54 6A F6 13 33 8A BD A5 E1 5A FD 3E 96 06 FF 00 4C 65 F5 69 EF E9 AB 63 CC 77 A1 08 AE C2 66 36 8B 4D 78 5D 7F DA C0 25 F4 DC D3 C6 3D 9A A5 15 D7 8D 99 9B 1C 73 95 35 AE 95 24 AF 6B 58 C4 A5 97 E2 E2 D6 B8 D9 27 CF F0 FC 89 A3 86 AB 67 B3 7F 65 FA 0B 75 55 64 B1 09 BB C6 D6 FE 8A D8 AF 8E AF BB 7F DA 15 0C 46 CF C1 DD 27 D0 B1 53 C4 3D 52 76 51 EA 9B EA 5D 09 A1 56 0B 54 26 DB EB 7F 42 FF 00 16 2A 37 D5 3B ED 75 73 1B E1 DB DE 53 8B 97 B3 7B FF 00 8B 95 85 1A 8A F6 71 DB A3 77 1A 13 CE 71 4E DA E6 FD 1E DB 0A 75 62 AE DA 6D A4 55 53 AD 14 B4 42 FB 5F 82 B6 C4 24 B5 41 28 FB 34 28 96 38 AA 69 D9 C2 D6 2E 8E 28 C3 94 65 0B 6A 56 5C 3B 85 51 7B 2D FA 91 36 CD 78 A6 45 3C 4A 6D A9 5F 74 62 CA A5 9D AE AF 72 37 52 32 93 8A 6A EF 6D 8B A5 65 78 B1 51 6F 54 EF D5 5C A4 E7 14 ED AE 6F D1 ED B1 04 28 D4 4D D9 C7 6E 8D DC C8 54 EB 45 2D 10 BE D7 E0 B0 52 9D 58 AB B6 9B 69 12 AC 4D 18 C9 6A A4 AC B7 7D 0B 2D 88 49 6A 82 51 F6 68 8A 51 94 1A 72 56 B6 DB 98 8C B5 8B A5 29 5E 31 94 7D AF C1 33 C5 50 94 74 2F 24 9B DE 52 6C D6 EB 8E FA 62 A3 BA D9 BE 4B A5 5D A9 DA 5E 1C B7 EA AF 72 A6 DB 2A 78 FF 00 01 38 49 D3 9D FA F4 FC 48 3E 3A A4 A4 E5 1D 9D B8 B9 82 F1 51 FA AA 34 D7 C9 17 D0 C6 43 FA 11 F9 C3 76 34 56 5B C4 4D BD 2D CB E6 99 2C 2B 59 7F AE DA 49 DE CE 3D 6D C1 AC 95 66 E4 E5 74 97 0F 4A B2 28 AA 39 26 AE EF D3 6D D8 90 DB 77 87 CD AB D3 5A 6D 19 B9 2D AE BF C5 8A CB 35 92 9A D5 0B 37 1D ED C1 A5 D4 D3 D9 B6 F6 BF F1 2A EA 4D DA F6 6B 6B DE E2 C3 6D 8C F1 B5 5C 93 84 D4 53 DF 7E 51 7A C5 E2 75 7D 78 37 7D DD DF A7 53 55 52 A6 FE 58 D3 F9 36 D9 1A AA D3 4D 38 7D BE A3 4A DF AA 95 AA FD 75 4E 57 E1 6C FD 8C EC 26 0A BD 54 FC 3C 32 7D 1E CB F8 9E 55 E2 67 24 9C 1E 9F 78 32 5A 58 EA D7 6A 55 F1 0E 36 D9 46 4C 96 23 D6 BC 0D 5C 23 F1 6A 4D 52 6B 74 9C 13 F4 F7 30 AA E6 14 A1 2D AA 4A 6F AB D3 64 79 CF 8A C4 4F 67 56 72 5D 1C EF C1 15 5A D3 93 6B 5F 1D 44 83 D1 3C D2 10 69 A9 BB 7A 47 94 52 39 B4 67 16 E3 5E 4D BE 52 47 9E 55 24 DD 9B 92 BA F4 E4 92 8D 58 2B B9 6A 87 4B C5 17 43 D1 AC C5 AA 4A 72 AD 51 C5 7A A7 62 DA B9 D5 ED 15 5E 76 4A D6 B6 CC D1 3C 75 4A 71 D3 1A D5 2C DF 2E D6 23 A9 89 4E 2E 36 4D F5 D8 75 57 A0 86 69 4B 4F D2 CE E9 6F 64 EC 56 9E 3E 8C A7 78 BD AF 7B 6A 67 9B 53 5A E5 64 97 F0 25 8D 3A 92 82 94 12 7F 36 86 92 D7 A2 8E 3A 4E 4F 4B FB DB 77 25 86 63 0D 4D 54 A7 19 DD 5A ED D8 F2 92 9D 68 5F CE D6 F6 B2 F4 2C 55 26 D6 AF 16 4D 13 5B F0 AF 5D 53 37 A1 14 FC 25 04 93 DE EA E4 11 CC 69 CA 7A 9B 57 E1 9E 55 4A 52 FD BB B4 B7 F5 2E F1 5E 86 AF 79 70 DA E8 35 07 AC 96 65 46 31 8B D5 4D EF 6E 0C 3C 4E 6F 45 5D 79 1D A7 F7 F2 68 21 7A A9 45 CF 42 5B DD B2 1A B4 9B 93 5B 3E BE BB 89 06 CF 17 9A C2 69 DA 2B EB DF F3 35 F2 C6 27 26 D4 13 BB B9 1A C2 4B 66 E2 DA E5 EC 5F 1C BB 12 FC D0 A7 E5 7B AD F8 32 F0 32 28 63 E5 14 ED 4A 9F 1D 51 59 E2 54 9B 7A 63 1D BA 16 47 03 88 8F EC DB 62 EF 85 AC 92 F2 BF B8 C7 62 8E BD ED BB 2F 85 68 A9 29 36 DC 5E D6 2D 74 2B AB DA 9F E0 5A E8 56 7C A4 97 42 E8 4F 1A B4 EF B4 A4 AC F6 B0 75 20 D2 7A E6 D3 E6 3F F5 31 FC 09 FA AF BC AA A3 3F 54 27 81 34 6A 45 4B 76 DA BF A9 2A C4 53 FD CB BE 0C 75 4E AD B6 48 BF C3 AD BF 95 01 92 F1 74 6C 92 A6 E3 6F 47 C9 2C 31 D4 94 6C D4 AF F3 30 5C 2A 5F EA 14 F3 AB 79 51 06 C6 38 E5 4D DE 33 52 5E 85 95 B1 F2 A9 34 D2 B5 9F 29 98 3A ED CC 63 F7 05 52 3D 4A 9E D9 6F 15 55 EF 26 DB 7D 13 E0 BE 9D 6E 75 62 BC 3B A6 AD 25 7B 18 6E 51 92 BA 76 7E A5 8D C9 4B 9B A0 7A 6D 69 66 55 70 F3 BA A9 1A A9 35 66 D1 2D 4C DA A3 4A 53 A4 96 F7 56 34 6A 4D 2B 5D DE FB 17 78 95 1C 6D 74 5B 0D B6 75 F3 09 D4 BC A0 D2 7C 6F C3 28 B1 98 87 14 FC 48 CB 67 6D F7 35 8E A5 A0 BC B0 4F E6 F7 23 75 1F F4 13 DB 6E 96 26 86 FA 18 8C 45 45 69 3A 6E 37 B3 EB FF 00 53 2B 07 87 AB 55 AD 14 23 29 3D F8 D8 F3 4B 13 27 17 15 A6 EB AC 5D 99 75 3C 6D 78 34 95 7A A9 5F 74 A4 EE 4B 15 EC 1E 57 88 87 D2 54 8F 84 96 EF CA BD 7E 66 36 27 19 0A 4E D2 AC E7 28 ED E5 A7 64 8F 35 3C 65 69 4D A8 D6 AE E2 FA 4E EF 72 2A B5 AA 59 27 3B BF 6E 82 41 E8 67 99 C2 CE 4A 69 3F 4D F7 2D 59 BC 25 2D AB 4E 2D 2D 93 5B 9E 71 55 92 5B B7 B3 E4 92 15 22 AA 2D 4A 5B 6F 7B 6E 5D 23 D2 51 CC 25 24 ED 5A A7 BA D2 C4 B3 95 1A 7A 63 5A 6A FB EC 8D 0A C5 CA 9D E5 4E B5 5F C3 F1 2D F8 B7 25 AA 72 53 93 EA D0 EA B1 BD 86 6B 19 37 AE A6 CF 9E 85 5E 63 42 52 F2 3B 24 AD BC 99 E7 3C 44 DC 5E 95 7F 4F 52 4A 71 95 4B E9 B3 7F 34 34 96 BD 1C B1 DE 64 A0 ED D2 EE 4D 92 47 31 D2 E3 AE 31 9D 9D ED BA 3C BC DD 78 35 79 69 DA EE C4 5E 2D 49 5E F5 A5 AB AA 44 D2 BD 7C F3 4C 3C 16 98 42 31 A9 66 F9 BD 8C 79 E6 70 AB 2D DC 6E B8 B2 DB EE 3C AC A7 29 4A DA FA EC 9F F0 2E 8D 47 16 E3 27 AB 9B 24 3A E8 7B 28 E6 74 5C 52 5E 0C A5 6E 1A B5 88 2A 63 D3 9B 73 95 EC B9 67 95 A7 56 71 6E CE 57 7C B2 45 5A 4D 27 66 93 BA 6E C3 43 D2 AC 55 2E 1A 5B EF 7B 09 E2 E8 E9 50 9C 23 6E 9E 5D FE C3 CF D3 C5 D4 4B 9B 6C 96 EC BA 55 E6 D5 ED 04 FA 6E 4B 88 DE 6A C3 B8 A9 4A AB 4B DD 5C A5 4A 78 79 AB 29 27 CB EB 76 6A 69 D4 AF 28 B8 DA 1B 2B B5 A8 C8 A7 1C 4C 53 71 95 07 ED E2 21 AD 2B 25 61 F0 FA 95 EA 55 BA E9 B2 26 A7 4E 8A 95 A1 AE 56 EA DF 06 1C 69 E2 1B D5 39 52 F5 DA A1 74 DC A1 A5 36 D2 7E E9 8D 7E A3 65 4D C1 24 9C 63 F3 BB 6C 96 15 D5 38 B6 E9 5E DD 75 58 D3 2C 4C E0 AF 7D FD 34 94 A9 8E 9B B5 E6 F6 E7 CA 2F 91 B3 A9 88 A9 35 68 D4 92 5E 97 29 4F 0D 5E BB 4A 9A 55 1B 5B 46 E6 A3 E2 5B 8B FA 55 7E 9E 5D AF 62 29 62 AA EB F2 CA 1B 75 BB 26 87 A0 A9 4A 58 79 28 E2 70 95 60 DA E5 3B 98 B5 DA 8C 9B 4A 4E 09 EF 7E 4D 67 C4 D7 D0 9B C6 45 AF 4B B6 52 38 BA B1 E6 BD 26 97 0B A9 64 1B 19 CA 52 57 8C 2F B7 45 62 92 9B 71 51 92 5B 7A 7B FA FD E6 BF F9 C7 11 BA 55 D5 9A F4 1E 3D 57 CD 68 F4 B9 7C 8D 84 F5 4A CE 2E C9 37 CF 52 97 94 AF E2 4B EE 46 24 6B E2 9E CA A5 37 1F 4B 96 78 D8 8B 2B AB FB 45 93 F4 67 3A 4D AD A3 25 CE F7 2D D2 D2 4A F3 5B 5B 73 09 62 AB 46 7A A4 83 C7 CB 4D AC F7 7B 5D 14 67 C5 41 6D 3B 37 D7 66 C9 29 D2 C3 3A 7A 34 A6 DE FF 00 54 D6 7F 39 CA 37 E6 EF 91 3C CA 6D BD 32 95 FE 60 DB 65 E0 42 0F 6A 4E CB AF 54 79 3E F7 7C 25 DD E6 6C 92 F3 7D 0D 9F FE 74 0D DC 33 39 B7 65 52 6A EA CE EC F3 3D EB E2 9D 6E C1 66 49 D7 52 6F C2 DB 6D ED 56 04 91 32 F4 DD 78 35 B4 38 4A 4D 49 7D C5 BF 0F 89 92 4E 30 A9 C6 CD 6D C8 05 BE D5 58 61 F1 3C 37 59 ED CD D9 6D 6A 6A 31 F3 AA BE EF 50 05 BE 86 3C A4 F8 86 A5 A9 6E 9D FE F2 CF 16 BA B2 57 4D 3F BC 00 2E F1 6A 36 D4 A5 25 75 6B AD 8B BC 49 69 BA 9C DF A2 BD D8 05 16 CA B3 D4 95 DE DE A8 78 CA FB AB DB AB 00 68 5C AB 42 4D DE 92 7F 66 E5 F2 AD 49 A7 15 45 45 B5 B3 F7 00 68 41 E2 D7 56 4A E9 A7 F7 97 78 B5 1B 6A 52 92 BA B5 D6 C0 12 0B BC 49 69 BA 9C DF A2 BD D9 6C AB 3D 49 5D ED EA 80 28 78 CA FB AB DB AB 2E 55 A1 26 EF 49 3F B3 70 06 84 9E 3D 14 D7 F9 BC 57 F1 2D 95 5A 55 1D FE 1D 47 A2 D1 FC 40 02 91 F0 DC 92 54 E5 EA EE F6 45 EE A2 BA D5 0D 2D F1 E8 00 16 B9 C9 DE 36 E7 8F C0 42 FE 64 E7 65 65 C0 05 15 D4 BA D5 B2 6F 96 AE 47 6B 26 AE E5 BF 40 0C 71 F6 8A 5A 2D 46 DC 37 F7 97 38 3B 3F 3D FE 40 19 55 51 46 4B 87 26 FD 99 6C E3 52 33 F2 B6 97 17 71 00 0A 39 54 6B CD 56 FE 9E 5F FA 95 7A 94 5D 9D BD 90 02 8B A1 0A 9B 38 2A 8F E4 8A 54 85 48 BF 32 9C 5D BA AE 40 01 AE 57 F3 A8 DA CF 6B 58 AA 6A 51 B2 8E 9E A0 08 2D DD BB A7 A9 3E 2C 55 5D 45 F9 7E F6 01 45 B2 93 57 B2 DE EF 7B 8E 5E F7 B3 5B 7F 8F B4 02 7E 89 E8 A8 F9 94 FC C9 C7 6D F8 77 2F A1 4D 2A AA 76 94 DA 7B AE 96 00 C6 8C AC 42 A9 5B 4C 69 61 28 D2 69 5A F4 DB B7 CD DF A9 0F 81 5E 12 D3 37 28 EA E2 C0 12 0A 3A 35 BA 39 4A CE DB 14 78 7C 4E FB 54 00 41 5F 02 BA 5E 65 57 EF 64 33 B4 6F BD 4F B5 B0 00 8E 52 92 BD B5 7A AE 4B 5D 4A 9D 2E 01 43 C5 AB FB D2 2B E2 CF AC A4 01 43 C5 97 AB 1E 37 CD 80 34 2F 8D 65 D5 17 29 42 40 0D 06 95 FB 32 17 92 E7 74 80 02 AA 7B AF C4 B2 1A 94 A2 F5 69 4D F4 E5 00 58 2E 6E D7 B5 5E 17 55 72 C9 25 AE EA 7A AE BA 20 0C 27 B4 5A B4 E9 76 BA 76 DC B9 43 65 69 5B 6E 00 33 AA A2 83 E6 F2 7E D7 29 52 35 34 A7 1D 57 F7 5C 00 05 35 54 E1 D5 DB 9F AA 23 7B 5E EB DF A5 C0 14 21 1A 92 E1 4D BF 65 D4 BE 70 A8 A2 A5 28 D4 4B D5 A6 00 16 29 4E 29 26 95 AF D6 25 CA 71 D4 D2 82 5E E8 01 05 AE EB 64 F8 D9 AE A5 63 AA FF 00 55 F1 D7 60 00 A3 95 B7 71 E9 D1 F0 52 ED AB BB AB 3D FE 60 0A 2E 5E 55 78 C9 2D F8 6C 9D D6 84 A2 B5 EA F1 7A EE 00 AB A4 71 F0 76 BB 94 9F CB 82 F9 4A 09 AB 4A 16 00 41 48 2A D3 BC A2 DE 95 CE 9E A8 3A D5 54 23 F5 65 16 B6 7B 6F EE 01 24 F0 8A 7C 4C BC D1 B2 BB E3 77 FD A5 1D 69 69 B3 94 95 BD 40 12 41 74 31 55 6C DB A8 DD B6 DF F2 2F 8E 32 AD B5 6E AF D5 F0 00 B2 68 56 38 DA 6D DE 54 5C 92 7F 79 34 B1 58 1D 49 BC 3D 44 DA E1 4E E0 12 08 AA 54 C3 5F 55 38 54 8A 7C DE 64 53 9A 6F CB AF 8E A0 19 58 2B 1A 93 DD A4 DF DC 52 52 AC B9 EA EF C8 06 20 EB D4 49 AE 9E AD 0F 11 C9 3B 29 7D 9D 40 32 D7 81 63 A9 3D 36 D6 F4 A7 D5 DC BD 54 AB 7B A9 C7 8B F3 D3 A0 04 09 BA CE D7 9C 5B 7D 23 BA 2C 8C EA 37 CB 57 DA C9 80 4A 8B F4 E2 23 2B F8 2D DF 6B 9E 6F BC B7 37 D8 BC C3 52 B7 FA 3F F9 91 00 CA 7A 4B E9 FF D9 ); my $game = <<'EOGAME'; #!/usr/bin/perl use SDL; #needed to get all constants use SDL::Video; use SDLx::App; use SDL::Surface; use SDL::Rect; use SDL::Image; use strict; use warnings; my $app = SDLx::App->new( title => "Lunar Lander", width => 800, height => 600, depth => 32, ); my $background = SDL::Image::load('images/background.jpg'); my $ship = SDL::Image::load('images/ship.jpg'); my $background_rect = SDL::Rect->new(0,0, $background->w, $background->h, ); my $ship_rect = SDL::Rect->new(0,0, $ship->w, $ship->h, ); sub draw { my ( $x, $y ) = @_; # spaceship position # fix $y for screen resolution $y = 450 * ( 1000 - $y ) / 1000; # background SDL::Video::blit_surface($background, $background_rect, $app, $background_rect ); # ship my $ship_dest_rect = SDL::Rect->new( $x, $y, $ship->w, $ship->h, ); SDL::Video::blit_surface($ship, $ship_rect, $app, $ship_dest_rect ); SDL::Video::update_rects($app, $background_rect); } my $height = 1000; # m my $velocity = 0; # m/s my $gravity = 1; # m/s^2 my $t = 0; my $script_re = qr/(\d+) \D+ (\d+)/x; my %up = map { $_ =~ $script_re } <DATA>; while ( $height > 0 ) { print "at $t s height = $height m, velocity = $velocity m/s\n"; if ( $up{$t} ) { my $a = $up{$t}; print "(accellerating $a m/s^2)\n"; $velocity = $velocity - $a; } $height = $height - $velocity; $velocity = $velocity + $gravity; $t = $t + 1; draw( 100, $height ); $app->delay(10); } if ( $velocity > 10 ) { print "CRASH!!!\n"; } else { print "You landed on the surface safely! :-D\n"; } # small delay to let us view the window # in the end, before closing sleep 2; __DATA__ at 41s, accelerate 10 m/s^2 up at 43s, 10 m/s^2 at 45s, 10 at 47s, 10 at 49s, 10 EOGAME write_file( $filename, $game ); mkdir 'images' or die "error creating dir 'images': $!\n"; print "[-] created 'images'\n"; write_file( 'images/ship.jpg', $ship_image, 1 ); write_file( 'images/background.jpg', $background_image, 1 ); } sub write_file { my ( $filename, $buffer, $binary ) = (@_); open my $fh, '>', $filename or die "error creating file '$filename': $!\n"; binmode $fh if $binary; print $fh $buffer; close $fh; print "[-] created '$filename'\n"; } "all your base are belong to us"; __END__ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13630� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/App.pm���������������������������������������������������������������������������000444��000765��000024�� 13067�11760240073� 15072� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # # App.pm # package SDLx::App; use strict; use warnings; use Carp; use SDL; use SDL::Rect; use SDL::Video; use SDL::Event; use SDL::Events; use SDL::Surface; use SDL::PixelFormat; use SDL::VideoInfo; use SDLx::Surface; use Data::Dumper; use Scalar::Util 'refaddr'; use base qw/SDLx::Surface SDLx::Controller/; my $screen_w; my $screen_h; my $screen_d; sub new { my $proto = shift; my $class = ref($proto) || $proto; my %options = @_; unless($screen_w && $screen_h && $screen_d) { my $video_info = SDL::Video::get_video_info(); if($video_info) { $screen_w = $video_info->current_w; $screen_h = $video_info->current_h; $screen_d = $video_info->vfmt->BitsPerPixel; } } # SDL_INIT_VIDEO() is 0, so check defined instead of truth. unless ( exists( $options{noinit} ) ) # we shouldn't do init always { my $init = defined $options{init} ? $options{init} : SDL::SDL_INIT_EVERYTHING; SDL::init($init); } my $t = $options{title} || $options{t} || $0; my $it = $options{icon_title} || $options{it} || $t; my $ic = $options{icon} || $options{i} || ""; my $w = $options{width} || $options{w} || 800; my $h = $options{height} || $options{h} || 600; my $d = $options{depth} || $options{d} || 16; my $f = $options{flags} || $options{f} || SDL::Video::SDL_ANYFORMAT; my $r = $options{red_size} || $options{r} || 5; my $g = $options{green_size} || $options{g} || 5; my $b = $options{blue_size} || $options{b} || 5; my $a = $options{alpha_size} || $options{a} || 0; my $ras = $options{red_accum_size} || $options{ras} || 0; my $gas = $options{green_accum_size} || $options{gas} || 0; my $bas = $options{blue_accum_size} || $options{bas} || 0; my $aas = $options{alpha_accum_size} || $options{aas} || 0; my $db = $options{double_buffer} || $options{db} || 0; my $bs = $options{buffer_size} || $options{bs} || 0; my $st = $options{stencil_size} || $options{st} || 0; my $async = $options{asyncblit} || 0; $f |= SDL::Video::SDL_OPENGL if ( $options{gl} || $options{opengl} ); $f |= SDL::Video::SDL_FULLSCREEN if ( $options{fullscreen} || $options{full} ); $f |= SDL::Video::SDL_RESIZABLE if ( $options{resizeable} ); $f |= SDL::Video::SDL_DOUBLEBUF if ($db); $f |= SDL::Video::SDL_ASYNCBLIT if ($async); if ( $f & SDL::Video::SDL_OPENGL ) { $SDLx::App::USING_OPENGL = 1; SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_RED_SIZE(), $r ) if ($r); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_GREEN_SIZE(), $g ) if ($g); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_BLUE_SIZE(), $b ) if ($b); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_ALPHA_SIZE(), $a ) if ($a); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_RED_ACCUM_SIZE(), $ras ) if ($ras); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_GREEN_ACCUM_SIZE(), $gas ) if ($gas); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_BLUE_ACCUM_SIZE(), $bas ) if ($bas); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_ALPHA_ACCUM_SIZE(), $aas ) if ($aas); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_DOUBLEBUFFER(), $db ) if ($db); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_BUFFER_SIZE(), $bs ) if ($bs); SDL::Video::GL_set_attribute( SDL::Constants::SDL_GL_DEPTH_SIZE(), $d ); } else { $SDLx::App::USING_OPENGL = 0; } my $surface = SDL::Video::set_video_mode( $w, $h, $d, $f ) or Carp::confess SDL::get_error(); $options{surface} = $surface; my $self = SDLx::Surface->new(%options); if ( $ic and -e $ic ) { my $icon = SDL::Video::load_BMP($ic); SDL::Video::wm_set_icon($icon); } SDL::Video::wm_set_caption( $t, $it ); $self = $self->SDLx::Controller::new(%options); bless $self, $class; return $self; } sub resize { my ( $self, $w, $h ) = @_; my $flags = $self->flags; if ( $flags & SDL::Video::SDL_RESIZABLE ) { my $bpp = $self->format->BitsPerPixel; $self = SDL::Video::set_video_mode( $w, $h, $bpp, $flags ) or die "SDL cannot set video:" . SDL::get_error; } else { die "Application surface not resizable"; } } sub title { my $self = shift; my ( $title, $icon ); if (@_) { $title = shift; $icon = shift || $title; SDL::Video::wm_set_caption( $title, $icon ); } return SDL::Video::wm_get_caption(); } sub delay { my $self = shift; my $delay = shift; SDL::delay($delay); } sub ticks { return SDL::get_ticks(); } sub error { return SDL::get_error(); } sub warp { my $self = shift; SDL::Mouse::warp_mouse(@_); } sub fullscreen { my $self = shift; SDL::Video::wm_toggle_fullscreen($self); } sub iconify { my $self = shift; SDL::Video::wm_iconify_window(); } sub grab_input { my ( $self, $mode ) = @_; SDL::Video::wm_grab_input($mode); } sub sync { my $self = shift; if ($SDLx::App::USING_OPENGL) { SDL::Video::GL_swap_buffers(); } else { $self->flip(); } } sub attribute { my ( $self, $mode, $value ) = @_; return undef unless ($SDLx::App::USING_OPENGL); if ( defined $value ) { SDL::Video::GL_set_attribute( $mode, $value ); } my $returns = SDL::Video::GL_get_attribute($mode); Carp::confess "SDLx::App::attribute failed to get GL attribute" if ( $$returns[0] < 0 ); $$returns[1]; } my %_stash; sub stash :lvalue{ my $ref = refaddr($_[0]); $_stash{ $ref } = {} unless $_stash{ $ref }; return $_stash{ $ref } } sub DESTROY { if($screen_w && $screen_h && $screen_d) { SDL::Video::set_video_mode( $screen_w, $screen_h, $screen_d, SDL_ANYFORMAT ); } } 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Controller.pm��������������������������������������������������������������������000444��000765��000024�� 14450�11760240073� 16472� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Controller; use strict; use warnings; use Carp; use Time::HiRes; use SDL; use SDL::Event; use SDL::Events; use SDL::Video; use SDLx::Controller::Interface; use SDLx::Controller::State; use Scalar::Util 'refaddr'; # inside out, so this can work as the superclass of another # SDL::Surface subclass my %_dt; my %_min_t; my %_current_time; my %_stop; my %_event; my %_event_handlers; my %_move_handlers; my %_show_handlers; my %_sleep_cycle; my %_eoq; my %_paused; sub new { my ($self, %args) = @_; if(ref $self) { bless $self, ref $self; } else { my $a; $self = bless \$a, $self; } my $ref = refaddr $self; $_dt{ $ref } = defined $args{dt} ? $args{dt} : 0.1; $_min_t{ $ref } = defined $args{min_t} ? $args{min_t} : 1 / 60; # $_current_time{ $ref } = $args{current_time} || 0; #no point $_stop{ $ref } = $args{stop}; $_event{ $ref } = $args{event} || SDL::Event->new(); $_event_handlers{ $ref } = $args{event_handlers} || []; $_move_handlers{ $ref } = $args{move_handlers} || []; $_show_handlers{ $ref } = $args{show_handlers} || []; $_sleep_cycle{ $ref } = $args{delay}; $_eoq{$ref} = $args{exit_on_quit} || $args{eoq} || 0; # $_paused{ $ref } = $args{paused}; #read only return $self; } sub delay { my $self = shift; my $delay = shift; my $ref = refaddr $self; $_sleep_cycle{ $ref } = $delay if $delay; return $self; } sub DESTROY { my $self = shift; my $ref = refaddr $self; delete $_dt{ $ref}; delete $_min_t{ $ref}; delete $_current_time{ $ref}; delete $_stop{ $ref}; delete $_event{ $ref}; delete $_event_handlers{ $ref}; delete $_move_handlers{ $ref}; delete $_show_handlers{ $ref}; delete $_sleep_cycle { $ref }; delete $_eoq{$ref}; delete $_paused{$ref}; } sub run { my ($self) = @_; my $ref = refaddr $self; my $dt = $_dt{ $ref }; my $min_t = $_min_t{ $ref }; my $t = 0.0; #Allows us to do stop and run $_stop{ $ref } = 0; $_current_time{ $ref } = Time::HiRes::time; while ( !$_stop{ $ref } ) { $self->_event($ref); my $new_time = Time::HiRes::time; my $delta_time = $new_time - $_current_time{ $ref }; next if $delta_time < $min_t; $_current_time{ $ref} = $new_time; my $delta_copy = $delta_time; while ( $delta_copy > $dt ) { $self->_move( $ref, 1, $t ); #a full move $delta_copy -= $dt; $t += $dt; } my $step = $delta_copy / $dt; $self->_move( $ref, $step, $t ); #a partial move $t += $dt * $step; $self->_show( $ref, $delta_time ); $dt = $_dt{ $ref}; #these can change $min_t = $_min_t{ $ref}; #during the cycle SDL::delay( $_sleep_cycle{ $ref } ) if $_sleep_cycle{ $ref }; } } sub exit_on_quit { my ($self, $value) = @_; my $ref = refaddr $self; if (defined $value) { $_eoq{$ref} = $value; } return $_eoq{$ref}; } *eoq = \&exit_on_quit; # alias sub pause { my ($self, $callback) = @_; my $ref = refaddr $self; $callback ||= sub {1}; my $event = SDL::Event->new(); $_paused{ $ref} = 1; while(1) { SDL::Events::wait_event($event) or Carp::confess("pause failed waiting for an event"); if($callback->($event, $self)) { $_current_time{ $ref} = Time::HiRes::time; #so run doesn't catch up with the time paused last; } } delete $_paused{ $ref}; } sub _event { my ($self, $ref) = @_; SDL::Events::pump_events(); while ( SDL::Events::poll_event( $_event{ $ref} ) ) { $self->_exit_on_quit( $_event{ $ref} ) if $_eoq{$ref}; foreach my $event_handler ( @{ $_event_handlers{ $ref} } ) { next unless $event_handler; $event_handler->( $_event{ $ref}, $self ); } } } sub _move { my ($self, $ref, $move_portion, $t) = @_; foreach my $move_handler ( @{ $_move_handlers{ $ref} } ) { next unless $move_handler; $move_handler->( $move_portion, $self, $t ); } } sub _show { my ($self, $ref, $delta_ticks) = @_; foreach my $show_handler ( @{ $_show_handlers{ $ref} } ) { next unless $show_handler; $show_handler->( $delta_ticks, $self ); } } sub stop { $_stop{ refaddr $_[0] } = 1 } sub _add_handler { my ( $arr_ref, $handler ) = @_; push @{$arr_ref}, $handler; return $#{$arr_ref}; } sub add_move_handler { my $ref = refaddr $_[0]; return _add_handler( $_move_handlers{ $ref}, $_[1] ); } sub add_event_handler { my $ref = refaddr $_[0]; Carp::confess 'SDLx::App or a Display (SDL::Video::get_video_mode) must be made' unless SDL::Video::get_video_surface(); return _add_handler( $_event_handlers{ $ref}, $_[1] ); } sub add_show_handler { my $ref = refaddr $_[0]; return _add_handler( $_show_handlers{ $ref}, $_[1] ); } sub _remove_handler { my ( $arr_ref, $id ) = @_; if ( ref $id ) { ($id) = grep { $id eq $arr_ref->[$_] } 0..$#{$arr_ref}; if ( !defined $id ) { Carp::cluck("$id is not currently a handler of this type"); return; } } elsif(!defined $arr_ref->[$id]) { Carp::cluck("$id is not currently a handler of this type"); return; } return delete( $arr_ref->[$id] ); } sub remove_move_handler { return _remove_handler( $_move_handlers{ refaddr $_[0] }, $_[1] ); } sub remove_event_handler { return _remove_handler( $_event_handlers{ refaddr $_[0] }, $_[1] ); } sub remove_show_handler { return _remove_handler( $_show_handlers{ refaddr $_[0] }, $_[1] ); } sub remove_all_handlers { $_[0]->remove_all_move_handlers; $_[0]->remove_all_event_handlers; $_[0]->remove_all_show_handlers; } sub remove_all_move_handlers { $_move_handlers{ refaddr $_[0] } = []; } sub remove_all_event_handlers { $_event_handlers{ refaddr $_[0] } = []; } sub remove_all_show_handlers { $_show_handlers{ refaddr $_[0] } = []; } sub move_handlers { $_move_handlers{ refaddr $_[0] } } sub event_handlers { $_event_handlers{ refaddr $_[0] } } sub show_handlers { $_show_handlers{ refaddr $_[0] } } sub dt { my ($self, $arg) = @_; my $ref = refaddr $self; $_dt{ $ref} = $arg if defined $arg; $_dt{ $ref}; } sub min_t { my ($self, $arg) = @_; my $ref = refaddr $self; $_min_t{ $ref} = $arg if defined $arg; $_min_t{ $ref}; } sub current_time { my ($self, $arg) = @_; my $ref = refaddr $self; $_current_time{ $ref} = $arg if defined $arg; $_current_time{ $ref}; } sub paused { $_paused{ refaddr $_[0]}; } sub _exit_on_quit { my ($self, $event) = @_; $self->stop() if $event->type == SDL_QUIT; } 1; __END__ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/FPS.pm���������������������������������������������������������������������������000444��000765��000024�� 3677�11760240073� 14770� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::FPS; use strict; use warnings; use SDL::GFX::Framerate; use SDL::GFX::FPSManager; use Carp; our @ISA = qw(SDL::GFX::FPSManager); sub new { my ( $class, %args ) = @_; for ( grep { $_ ne 'fps' } keys %args ) { Carp::cluck("Unrecognized constructor hash key: $_"); } my $fps = $class->SDL::GFX::FPSManager::new( 0, 0, 0, 0 ); SDL::GFX::Framerate::init( $fps ); $fps->set( $args{fps} ) if defined $args{fps}; $fps; } sub set { SDL::GFX::Framerate::set( @_[ 0, 1 ] ); } sub get { SDL::GFX::Framerate::get( $_[0] ); } sub delay { SDL::GFX::Framerate::delay( $_[0] ); } 1; __END__ =head1 NAME SDLx::FPS - a more convenient way to set a framerate =head1 SYNOPSIS use SDLx::FPS; my $fps = SDLx::FPS->new(fps => 60); while(1) { # Main game loop # Do game related stuff $fps->delay; } =head1 DESCRIPTION SDLx::FPS simplifies the task of giving your game a framerate. Basically, it combines the methods of C<SDL::GFX::Framerate> and C<SDL::GFX::FPSManager> into a single module. Use it to delay the main loop to keep it at a specified framerate. =head1 METHODS =head2 new my $fps = SDLx::FPS->new( fps => 30 ); No arguments are required, if no C<fps> is specified, the default FPS is 30. =head2 set $fps->set($new_framerate); Same as C<SDL::GFX::Framerate::set>. Set the new desired framerate. =head2 get Same as C<SDL::GFX::Framerate::get>. Get the currently set framerate. =head2 delay Same as C<SDL::GFX::Framerate::delay>. Generate a delay to accommodate currently set framerate. Call once in the graphics/rendering loop. If the computer cannot keep up with the rate (i.e. drawing too slow), the delay is 0 and the delay interpolation is reset. =head2 framecount Return the C<framecount>. =head2 rateticks Return the C<rateticks>. =head2 lastticks Return the C<lastticks>. =head2 rate Return the C<rate>. =head1 AUTHORS See L<SDL/AUTHORS>. =head1 SEE ALSO L<< SDL::GFX::Framerate >>, L<< SDL::GFX::FPSManager >> �����������������������������������������������������������������SDL-2.540/lib/SDLx/Layer.pm�������������������������������������������������������������������������000444��000765��000024�� 354�11760240073� 15361� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Layer; use strict; use warnings; use SDL; use SDLx::Surface; use SDLx::Sprite; use SDL::Events; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDLx::Layer; 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/LayerManager.pm������������������������������������������������������������������000444��000765��000024�� 372�11760240072� 16653� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::LayerManager; use strict; use warnings; use SDL; use SDLx::Surface; use SDLx::Sprite; use SDL::Events; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDLx::LayerManager; 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Music.pm�������������������������������������������������������������������������000444��000765��000024�� 6374�11760240073� 15415� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Music; use strict; use warnings; use Carp (); use SDL; use SDL::Audio; use SDL::Mixer; use SDL::Mixer::Music; use SDL::Mixer::Channels; use SDL::Mixer::Samples; use SDL::Mixer::MixChunk; use Data::Dumper; use SDLx::Music::Default; use SDLx::Music::Data; our $def = bless( {}, "SDLx::Music::Default" ); sub new { my $class = shift; my %params = @_; my $self = bless {%params}, $class; # Initialize Audio $self->{freq} = $self->{freq} || 44100; $self->{format} = $self->{format} || SDL::Audio::AUDIO_S16SYS; $self->{channels} = $self->{channels} || 2; $self->{chunksize} = $self->{chunksize} || 4096; Carp::croak SDL::get_error() if ( SDL::Mixer::open_audio( $self->{freq}, $self->{format}, $self->{channels}, $self->{chunksize} ) ) != 0; #Set up the default $self->{default} = bless {}, "SDLx::Music::Default"; return $self; } sub data { my $self = shift; return if $#_ < 0; return $self->{data}->{ $_[0] } if $#_ == 0; my %data = @_; # loop through keys foreach ( keys %data ) { my $datum = $data{$_}; #If SCALAR is Simple if ( defined $datum ) { my $d = {}; if ( ref $datum eq 'HASH' ) { $d = $datum; } else { $d->{file} = $datum; } my $play_data = bless( $d, "SDLx::Music::Data" ); $play_data->{to_load} = 1; $self->{data}->{$_} = $play_data; } } return 1; } sub clear { delete $_[0]->{data}; } sub default : lvalue { my $self = shift; if ( defined $self && ref($self) ) { return $self->{default} } else { return $SDLx::Music::def; } } sub play { my $self = shift; my $play_data = shift; my %override = @_; return unless defined $play_data; my $volume = $play_data->{volume} || $override{volume} || 50; my $fade_in = $play_data->{fade_in} || $override{fade_in} || 0; my $loops = $play_data->{loops} || $override{loops} || 1; if ( $play_data->{to_load} ) { $play_data->{_content} = SDL::Mixer::Music::load_MUS( $play_data->{file} ); $play_data->{to_load} = 0; } SDL::Mixer::Music::volume_music($volume); unless ( SDL::Mixer::Music::playing_music() || $fade_in ) { my $played = SDL::Mixer::Music::play_music( $play_data->{_content}, $loops ); if ( defined $played && $played == -1 ) { Carp::carp "Cannot play: " . SDL::get_error() . "\n"; } } else { my $played = SDL::Mixer::Music::fade_in_music( $play_data->{_content}, $loops, $fade_in ); if ( defined $played && $played == -1 ) { Carp::carp "Cannot play: " . SDL::get_error() . "\n"; } } return SDL::Mixer::Music::playing_music(); } sub load { my $self = shift; foreach ( keys( %{ $self->{data} } ) ) { my $data = $self->{data}->{$_}; if ( $data->{to_load} ) { $data->{_content} = SDL::Mixer::Music::load_MUS( $data->{file} ); $data->{to_load} = 0; } } } sub playing { return SDL::Mixer::Music::playing_music(); } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Rect.pm��������������������������������������������������������������������������000444��000765��000024�� 40000�11760240073� 15232� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Rect; use strict; use warnings; use Carp; use base 'SDL::Rect'; our $VERSION = '0.01'; sub new { my $class = shift; my $x = shift || 0; my $y = shift || 0; my $w = shift || 0; my $h = shift || 0; $class = ref($class) || $class; my $self = $class->SUPER::new( $x, $y, $w, $h ); unless ($$self) { #require Carp; Carp::confess SDL::get_error(); } return bless $self, $class; } ############################# ## extra accessors ############################# sub left { my $self = shift; $self->x(@_); } sub top { my $self = shift; $self->y(@_); } sub width { my $self = shift; $self->w(@_); } sub height { my $self = shift; $self->h(@_); } sub bottom { my ( $self, $val ) = (@_); if ( defined $val ) { $self->top( $val - $self->height ); # y = val - height } return $self->top + $self->height; # y + height } sub right { my ( $self, $val ) = (@_); if ( defined $val ) { $self->left( $val - $self->width ); # x = val - width } return $self->left + $self->width; # x + width } sub centerx { my ( $self, $val ) = (@_); if ( defined $val ) { $self->left( $val - ( $self->width >> 1 ) ); # x = val - (width/2) } return $self->left + ( $self->width >> 1 ); # x + (width/2) } sub centery { my ( $self, $val ) = (@_); if ( defined $val ) { $self->top( $val - ( $self->height >> 1 ) ); # y = val - (height/2) } return $self->top + ( $self->height >> 1 ); # y + (height/2) } sub size { my ( $self, $w, $h ) = (@_); return ( $self->width, $self->height ) # (width, height) unless ( defined $w or defined $h ); if ( defined $w ) { $self->width($w); # width } if ( defined $h ) { $self->height($h); # height } } sub topleft { my ( $self, $y, $x ) = (@_); return ( $self->top, $self->left ) # (top, left) unless ( defined $y or defined $x ); if ( defined $x ) { $self->left($x); # left } if ( defined $y ) { $self->top($y); # top } return; } sub midleft { my ( $self, $centery, $x ) = (@_); return ( $self->top + ( $self->height >> 1 ), $self->left ) # (centery, left) unless ( defined $centery or defined $x ); if ( defined $x ) { $self->left($x); # left } if ( defined $centery ) { $self->top( $centery - ( $self->height >> 1 ) ); # y = centery - (height/2) } return; } sub bottomleft { my ( $self, $bottom, $x ) = (@_); return ( $self->top + $self->height, $self->left ) # (bottom, left) unless ( defined $bottom or defined $x ); if ( defined $x ) { $self->left($x); # left } if ( defined $bottom ) { $self->top( $bottom - $self->height ); # y = bottom - height } return; } sub center { my ( $self, $centerx, $centery ) = (@_); return ( $self->left + ( $self->width >> 1 ), $self->top + ( $self->height >> 1 ) ) unless ( defined $centerx or defined $centery ); if ( defined $centerx ) { $self->left( $centerx - ( $self->width >> 1 ) ); # x = centerx - (width/2) } if ( defined $centery ) { $self->top( $centery - ( $self->height >> 1 ) ); # y = centery - (height/2) } return; } sub topright { my ( $self, $y, $right ) = (@_); return ( $self->top, $self->left + $self->width ) # (top, right) unless ( defined $y or defined $right ); if ( defined $right ) { $self->left( $right - $self->width ); # x = right - width } if ( defined $y ) { $self->top($y); # top } return; } sub midright { my ( $self, $centery, $right ) = (@_); return ( $self->top + ( $self->height >> 1 ), $self->left + $self->width ) # (centery, right) unless ( defined $centery or defined $right ); if ( defined $right ) { $self->left( $right - $self->width ); # x = right - width } if ( defined $centery ) { $self->top( $centery - ( $self->height >> 1 ) ); # y = centery - (height/2) } return; } sub bottomright { my ( $self, $bottom, $right ) = (@_); return ( $self->top + $self->height, $self->left + $self->width ) # (bottom, right) unless ( defined $bottom or defined $right ); if ( defined $right ) { $self->left( $right - $self->width ); # x = right - width } if ( defined $bottom ) { $self->top( $bottom - $self->height ); # y = bottom - height } return; } sub midtop { my ( $self, $centerx, $y ) = (@_); return ( $self->left + ( $self->width >> 1 ), $self->top ) # (centerx, top) unless ( defined $centerx or defined $y ); if ( defined $y ) { $self->top($y); # top } if ( defined $centerx ) { $self->left( $centerx - ( $self->width >> 1 ) ); # x = centerx - (width/2) } return; } sub midbottom { my ( $self, $centerx, $bottom ) = (@_); return ( $self->left + ( $self->width >> 1 ), $self->top + $self->height ) # (centerx, bottom) unless ( defined $centerx or defined $bottom ); if ( defined $bottom ) { $self->top( $bottom - $self->height ); # y = bottom - height } if ( defined $centerx ) { $self->left( $centerx - ( $self->width >> 1 ) ); # x = centerx - (width/2) } return; } ############################### ## methods ## ############################### { no strict 'refs'; *{'duplicate'} = *{copy}; } sub copy { my $self = shift; return $self->new( $self->x, $self->y, $self->w, $self->h, ); } sub move { my ( $self, $x, $y ) = (@_); if ( not defined $x or not defined $y ) { #require Carp; Carp::confess "must receive x and y positions as argument"; } return $self->new( $self->left + $x, $self->top + $y, $self->width, $self->height, ); } sub move_ip { my ( $self, $x, $y ) = (@_); if ( not defined $x or not defined $y ) { #require Carp; Carp::confess "must receive x and y positions as argument"; } $self->x( $self->x + $x ); $self->y( $self->y + $y ); return; } sub inflate { my ( $self, $x, $y ) = (@_); if ( not defined $x or not defined $y ) { #require Carp; Carp::confess "must receive x and y positions as argument"; } return $self->new( $self->left - ( $x / 2 ), $self->top - ( $y / 2 ), $self->width + $x, $self->height + $y, ); } sub inflate_ip { my ( $self, $x, $y ) = (@_); if ( not defined $x or not defined $y ) { #require Carp; Carp::confess "must receive x and y positions as argument"; } $self->x( $self->x - ( $x / 2 ) ); $self->y( $self->y - ( $y / 2 ) ); $self->w( $self->w + $x ); $self->h( $self->h + $y ); } sub _get_clamp_coordinates { my ( $self_pos, $self_len, $rect_pos, $rect_len ) = (@_); if ( $self_len >= $rect_len ) { return $rect_pos + ( $rect_len / 2 ) - ( $self_len / 2 ); } elsif ( $self_pos < $rect_pos ) { return $rect_pos; } elsif ( ( $self_pos + $self_len ) > ( $rect_pos + $rect_len ) ) { return $rect_pos + $rect_len - $self_len; } else { return $self_pos; } } sub clamp { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my $x = _get_clamp_coordinates( $self->x, $self->w, $rect->x, $rect->w ); my $y = _get_clamp_coordinates( $self->y, $self->h, $rect->y, $rect->h ); return $self->new( $x, $y, $self->w, $self->h ); } sub clamp_ip { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my $x = _get_clamp_coordinates( $self->x, $self->w, $rect->x, $rect->w ); my $y = _get_clamp_coordinates( $self->y, $self->h, $rect->y, $rect->h ); $self->x($x); $self->y($y); return; } sub _get_intersection_coordinates { my ( $self, $rect ) = (@_); my ( $x, $y, $w, $h ); INTERSECTION: { ### Left if ( ( $self->x >= $rect->x ) && ( $self->x < ( $rect->x + $rect->w ) ) ) { $x = $self->x; } elsif ( ( $rect->x >= $self->x ) && ( $rect->x < ( $self->x + $self->w ) ) ) { $x = $rect->x; } else { last INTERSECTION; } ## Right if ( ( ( $self->x + $self->w ) > $rect->x ) && ( ( $self->x + $self->w ) <= ( $rect->x + $rect->w ) ) ) { $w = ( $self->x + $self->w ) - $x; } elsif ( ( ( $rect->x + $rect->w ) > $self->x ) && ( ( $rect->x + $rect->w ) <= ( $self->x + $self->w ) ) ) { $w = ( $rect->x + $rect->w ) - $x; } else { last INTERSECTION; } ## Top if ( ( $self->y >= $rect->y ) && ( $self->y < ( $rect->y + $rect->h ) ) ) { $y = $self->y; } elsif ( ( $rect->y >= $self->y ) && ( $rect->y < ( $self->y + $self->h ) ) ) { $y = $rect->y; } else { last INTERSECTION; } ## Bottom if ( ( ( $self->y + $self->h ) > $rect->y ) && ( ( $self->y + $self->h ) <= ( $rect->y + $rect->h ) ) ) { $h = ( $self->y + $self->h ) - $y; } elsif ( ( ( $rect->y + $rect->h ) > $self->y ) && ( ( $rect->y + $rect->h ) <= ( $self->y + $self->h ) ) ) { $h = ( $rect->y + $rect->h ) - $y; } else { last INTERSECTION; } return ( $x, $y, $w, $h ); } # if we got here, the two rects do not intersect return ( $self->x, $self->y, 0, 0 ); } sub clip { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _get_intersection_coordinates( $self, $rect ); return $self->new( $x, $y, $w, $h ); } sub clip_ip { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _get_intersection_coordinates( $self, $rect ); $self->x($x); $self->y($y); $self->w($w); $self->h($h); return; } sub _test_union { my ( $self, $rect ) = (@_); my ( $x, $y, $w, $h ); $x = $self->x < $rect->x ? $self->x : $rect->x; # MIN $y = $self->y < $rect->y ? $self->y : $rect->y; # MIN $w = ( $self->x + $self->w ) > ( $rect->x + $rect->w ) ? ( $self->x + $self->w ) - $x : ( $rect->x + $rect->w ) - $x; # MAX $h = ( $self->y + $self->h ) > ( $rect->y + $rect->h ) ? ( $self->y + $self->h ) - $y : ( $rect->y + $rect->h ) - $y; # MAX return ( $x, $y, $w, $h ); } sub union { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _test_union( $self, $rect ); return $self->new( $x, $y, $w, $h ); } sub union_ip { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _test_union( $self, $rect ); $self->x($x); $self->y($y); $self->w($w); $self->y($h); return; } sub _test_unionall { my ( $self, $rects ) = (@_); # initial values for union rect my $left = $self->x; my $top = $self->y; my $right = $self->x + $self->w; my $bottom = $self->y + $self->h; foreach my $rect ( @{$rects} ) { unless ( $rect->isa('SDL::Rect') ) { # TODO: better error message, maybe saying which item # is the bad one (by list position) Carp::confess "must receive an array reference of SDL::Rect-based objects"; } $left = $rect->x if $rect->x < $left; # MIN $top = $rect->y if $rect->y < $top; # MIN $right = ( $rect->x + $rect->w ) if ( $rect->x + $rect->w ) > $right; # MAX $bottom = ( $rect->y + $rect->h ) if ( $rect->y + $rect->h ) > $bottom; # MAX } return ( $left, $top, $right - $left, $bottom - $top ); } sub unionall { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'ARRAY' ) { Carp::confess "must receive an array reference of SDL::Rect-based objects"; } my ( $x, $y, $w, $h ) = _test_unionall( $self, $rects ); return $self->new( $x, $y, $w, $h ); } sub unionall_ip { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'ARRAY' ) { Carp::confess "must receive an array reference of SDL::Rect-based objects"; } my ( $x, $y, $w, $h ) = _test_unionall( $self, $rects ); $self->x($x); $self->y($y); $self->w($w); $self->h($h); return; } sub _check_fit { my ( $self, $rect ) = (@_); my $x_ratio = $self->w / $rect->w; my $y_ratio = $self->h / $rect->h; my $max_ratio = ( $x_ratio > $y_ratio ) ? $x_ratio : $y_ratio; my $w = int( $self->w / $max_ratio ); my $h = int( $self->h / $max_ratio ); my $x = $rect->x + int( ( $rect->w - $w ) / 2 ); my $y = $rect->y + int( ( $rect->h - $h ) / 2 ); return ( $x, $y, $w, $h ); } sub fit { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _check_fit( $self, $rect ); return $self->new( $x, $y, $w, $h ); } sub fit_ip { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my ( $x, $y, $w, $h ) = _check_fit( $self, $rect ); $self->x($x); $self->y($y); $self->w($w); $self->h($h); return; } sub normalize { my $self = shift; if ( $self->w < 0 ) { $self->x( $self->x + $self->w ); $self->w( -$self->w ); } if ( $self->h < 0 ) { $self->y( $self->y + $self->h ); $self->h( -$self->h ); } return; } sub contains { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } my $contained = ( $self->x <= $rect->x ) && ( $self->y <= $rect->y ) && ( $self->x + $self->w >= $rect->x + $rect->w ) && ( $self->y + $self->h >= $rect->y + $rect->h ) && ( $self->x + $self->w > $rect->x ) && ( $self->y + $self->h > $rect->y ); return $contained; } sub collidepoint { my ( $self, $x, $y ) = (@_); unless ( defined $x and defined $y ) { Carp::confess "must receive (x,y) as arguments"; } my $inside = $x >= $self->x && $x < $self->x + $self->w && $y >= $self->y && $y < $self->y + $self->h; return $inside; } sub _do_rects_intersect { my ( $rect_A, $rect_B ) = (@_); return ( ( $rect_A->x >= $rect_B->x && $rect_A->x < $rect_B->x + $rect_B->w ) || ( $rect_B->x >= $rect_A->x && $rect_B->x < $rect_A->x + $rect_A->w ) ) && ( ( $rect_A->y >= $rect_B->y && $rect_A->y < $rect_B->y + $rect_B->h ) || ( $rect_B->y >= $rect_A->y && $rect_B->y < $rect_A->y + $rect_A->h ) ); } sub colliderect { my ( $self, $rect ) = (@_); unless ( $rect->isa('SDL::Rect') ) { Carp::confess "must receive an SDL::Rect-based object"; } return _do_rects_intersect( $self, $rect ); } sub collidelist { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'ARRAY' ) { Carp::confess "must receive an array reference of SDL::Rect-based objects"; } for ( my $i = 0; $i < @{$rects}; $i++ ) { if ( _do_rects_intersect( $self, $rects->[$i] ) ) { return $i; } } return; } sub collidelistall { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'ARRAY' ) { Carp::confess "must receive an array reference of SDL::Rect-based objects"; } my @collisions = (); for ( my $i = 0; $i < @{$rects}; $i++ ) { if ( _do_rects_intersect( $self, $rects->[$i] ) ) { push @collisions, $i; } } return \@collisions; } sub collidehash { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'HASH' ) { Carp::confess "must receive an hash reference of SDL::Rect-based objects"; } while ( my ( $key, $value ) = each %{$rects} ) { unless ( $value->isa('SDL::Rect') ) { Carp::confess "hash element of key '$key' is not an SDL::Rect-based object"; } if ( _do_rects_intersect( $self, $value ) ) { return ( $key, $value ); } } return ( undef, undef ); } sub collidehashall { my ( $self, $rects ) = (@_); unless ( defined $rects and ref $rects eq 'HASH' ) { Carp::confess "must receive an hash reference of SDL::Rect-based objects"; } my %collisions = (); while ( my ( $key, $value ) = each %{$rects} ) { unless ( $value->isa('SDL::Rect') ) { Carp::confess "hash element of key '$key' is not an SDL::Rect-based object"; } if ( _do_rects_intersect( $self, $value ) ) { $collisions{$key} = $value; } } return \%collisions; } 1; #NOT 42! SDL-2.540/lib/SDLx/SFont.pm�������������������������������������������������������������������������000444��000765��000024�� 1023�11760240072� 15347� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::SFont; use strict; use warnings; use SDL::Image; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use SDL::Constants ':SDL::TTF'; our @ISA = qw(Exporter DynaLoader SDL::Surface); use base 'Exporter'; our @EXPORT = ('SDL_TEXTWIDTH'); sub SDL_TEXTWIDTH { return SDLx::SFont::TextWidth( join( '', @_ ) ); } sub print_text { #print is a horrible name for this my ( $surf, $x, $y, @text ) = @_; SDLx::SFont::print_string( $surf, $x, $y, join( '', @text ) ); } bootstrap SDLx::SFont; 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Sound.pm�������������������������������������������������������������������������000444��000765��000024�� 4244�11760240072� 15416� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Sound; use strict; use warnings; use Carp; use SDL; #use SDL::Audio; #use SDL::AudioSpec; use SDL::Mixer; use SDL::Mixer::Music; #use SDL::Mixer::Channels; #use SDL::Mixer::Samples; #use SDL::Mixer::MixChunk; # SDL::Mixer must be inited only one time my $audioInited = undef; sub new { my $class = shift; my $self = {@_}; bless ($self, $class); _initAudio() unless $audioInited; $self->{supported} = _initMixer(); return $self; } sub _initAudio { SDL::Mixer::open_audio( 44100, AUDIO_S16SYS, 2, 4096 ); my ($status, $freq, $format, $channels) = @{ SDL::Mixer::query_spec() }; $audioInited = 1 if $status == 1; return ($status, $freq, $format, $channels); #TODO: Save this information in $self; } sub _initMixer { my $init_flags = SDL::Mixer::init( MIX_INIT_MP3 | MIX_INIT_MOD | MIX_INIT_FLAC | MIX_INIT_OGG ); my %init = (); # Short circuit if we have and older version of SDL_Mixer return \%init unless $init_flags; $init{ mp3 } = 1 if $init_flags & MIX_INIT_MP3; $init{ mod } = 1 if $init_flags & MIX_INIT_MOD; $init{ flac } = 1 if $init_flags & MIX_INIT_FLAC; $init{ ogg } = 1 if $init_flags & MIX_INIT_OGG; return \%init } sub load { my $self = shift; $self->{files} = {@_}; } sub unload { my $self = shift; $self->{files} = {}; } sub play { my $self = shift; $self->{files} = {@_} if $#_ > 0 && @_; my $play = 1; if (-e $_[0]) { my $music = SDL::Mixer::Music::load_MUS($_[0]) or Carp::croak 'Sound file not found: ' . SDL::get_error(); SDL::Mixer::Music::volume_music(85); if (SDL::Mixer::Music::play_music($music, -1)<0) { print("Can't play!\n". SDL::get_error()."\n"); $play = 0; } } else { carp("No newline ".$self->{files}."\n".$_[0]."\n"); $play = 0; } return $play; } sub loud { } sub pause { my $self = shift; SDL::Mixer::Music::pause_music(); } sub resume { my $self = shift; SDL::Mixer::Music::resume_music(); } sub stop { my $self = shift; SDL::Mixer::Music::halt_music(); #SDL::Mixer::quit(); } sub fade { } 1; # End of SDLx::Sound ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Sprite.pm������������������������������������������������������������������������000444��000765��000024�� 13365�11760240073� 15621� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Sprite; use strict; use warnings; use SDL; use SDL::Video; use SDL::Image; use SDLx::Rect; use SDL::Surface; use SDLx::Surface; use SDLx::Validate; use Carp (); sub new { my ( $class, %options ) = @_; my $self = bless {}, $class; if ( exists $options{surface} ) { $self->{surface} = SDLx::Surface->new( surface => $options{surface} ); $self->{orig_surface} = $options{surface}; $self->_init_rects(%options); $self->handle_surface( $self->surface ); } elsif ( exists $options{image} ) { my $surf = SDLx::Surface->load( $options{image} ); $self->{surface} = SDLx::Surface->new( surface => $surf ); $self->_init_rects(%options); $self->handle_surface($surf); $self->{orig_surface} = $self->{surface}; } elsif ( exists $options{width} && $options{height} ) { $self->{surface} = SDLx::Surface->new(%options); $self->{orig_surface} = $self->surface; $self->_init_rects(%options); $self->handle_surface( $self->surface ); } else { Carp::confess "Need a surface => SDL::Surface, an image => name, or ( width => ... , height => ...)"; } # short-circuit return $self unless %options; Carp::confess 'rect cannot be instantiated together with x or y' if exists $options{rect} and ( exists $options{x} or exists $options{y} ); Carp::confess 'image and surface cannot be instantiated together' if exists $options{image} and exists $options{surface}; # note: ordering here is somewhat important. If you change anything, # please rerun the test suite to make sure everything still works :) $self->x( $options{x} ) if exists $options{x}; $self->y( $options{y} ) if exists $options{y}; $self->rotation( $options{rotation} ) if exists $options{rotation}; $self->alpha_key( $options{alpha_key} ) if exists $options{alpha_key}; $self->alpha( $options{alpha} ) if exists $options{alpha}; return $self; } sub _init_rects { my ( $self, %options ) = @_; # create our two initial rects $self->rect( exists $options{rect} ? $options{rect} : SDLx::Rect->new( 0, 0, 0, 0 ) ); $self->clip( exists $options{clip} ? $options{clip} : SDLx::Rect->new( 0, 0, 0, 0 ) ); } sub load { my ( $self, $filename ) = @_; my $surface = SDLx::Surface->load($filename); $self->{orig_surface} = $surface unless $self->{orig_surface}; $self->handle_surface($surface); return $self; } sub handle_surface { my ( $self, $surface ) = @_; # short-circuit return $self->surface unless $surface; my $old_surface = $self->surface(); $self->surface($surface); # update our source and destination rects $self->rect->w( $surface->w ); $self->rect->h( $surface->h ); $self->clip->w( $surface->w ); $self->clip->h( $surface->h ); return $old_surface; } sub rect { my ( $self, $rect ) = @_; # short-circuit return $self->{rect} unless $rect; return $self->{rect} = SDLx::Validate::rect($rect); } sub clip { my ( $self, $clip ) = @_; # short-circuit return $self->{clip} unless $clip; return $self->{clip} = SDLx::Validate::rect($clip); } sub x { my ( $self, $x ) = @_; if ( defined $x ) { $self->rect->x($x); } return $self->rect->x; } sub y { my ( $self, $y ) = @_; if ( defined $y ) { $self->rect->y($y); } return $self->rect->y; } sub draw { my ( $self, $surface ) = @_; SDLx::Validate::surface($surface); $self->{surface}->blit( $surface, $self->clip, $self->rect ); return $self; } sub draw_xy { my ( $self, $surface, $x, $y ) = @_; SDLx::Validate::surface($surface); $self->x($x); $self->y($y); return $self->draw($surface); } sub alpha_key { my ( $self, $color ) = @_; $color = SDLx::Validate::color($color); Carp::confess 'SDL::Video::set_video_mode must be called first' unless ref SDL::Video::get_video_surface(); $self->{alpha_key} = $color unless $self->{alpha_key}; # keep a copy just in case $self->surface( SDL::Video::display_format( $self->surface ) ); if ( SDL::Video::set_color_key( $self->surface, SDL_SRCCOLORKEY, $color ) < 0 ) { Carp::confess ' alpha_key died :' . SDL::get_error; } return $self; } sub alpha { my ( $self, $value ) = @_; $value = int( $value * 0xff ) if $value < 1 and $value > 0; $value = 0 if $value < 0; $value = 0xff if $value > 0xff; $self->{alpha} = $value; # keep a copy just in case $self->surface( SDL::Video::display_format( $self->surface ) ); my $flags = SDL_SRCALPHA | SDL_RLEACCEL; #this should be predictive if ( SDL::Video::set_alpha( $self->surface, $flags, $value ) < 0 ) { Carp::confess 'alpha died :' . SDL::get_error; } return $self; } sub rotation { my ( $self, $angle, $smooth ) = @_; if ( $angle && $self->{orig_surface} ) { require SDL::GFX::Rotozoom; my $rotated = SDL::GFX::Rotozoom::surface( $self->{orig_surface}, #prevents rotting of the surface $angle, 1, # zoom ( defined $smooth && $smooth != 0 ) ) or Carp::confess 'rotation error: ' . SDL::get_error; #After rotation the surface is on a undefined background. #This causes problems with alpha. So we create a surface with a fill of the src_color. #This insures less artifacts. if ( $self->{alpha_key} ) { my $background = SDLx::Surface::duplicate($rotated); $background->draw_rect( [ 0, 0, $background->w, $background->h ], $self->{alpha_key} ); SDLx::Surface->new( surface => $rotated )->blit($background); $self->handle_surface( $background->surface ); $self->alpha_key( $self->{alpha_key} ); } else { $self->handle_surface($rotated); } $self->alpha( $self->{alpha} ) if $self->{alpha}; $self->{angle} = $angle; } return $self->{angle}; } sub surface { my ( $self, $surface ) = @_; if ($surface) { $self->{surface} = SDLx::Validate::surfacex($surface); } return $self->{surface}; } sub w { return $_[0]->{surface}->w; } sub h { return $_[0]->{surface}->h; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Surface.pm�����������������������������������������������������������������������000444��000765��000024�� 25226�11760240072� 15741� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Surface; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; use Carp (); use SDL; use SDL::Rect; use SDL::Video; use SDL::Image; use SDL::Color; use SDL::Config; use SDL::Surface; use SDL::PixelFormat; use SDL::GFX::Primitives; use Tie::Simple; use SDLx::Validate; use SDLx::Surface::TiedMatrix; use overload ( '@{}' => '_array', fallback => 1, ); use SDL::Constants ':SDL::Video'; our @ISA = qw(Exporter DynaLoader SDL::Surface); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDLx::Surface; # I won't use a module here for efficiency and simplification of the # hierarchy. # Inside out object my %_tied_array; sub new { my ( $class, %options ) = @_; my $self; if ( $options{surface} ) { $self = bless $options{surface}, $class; } else { my $width = $options{width} || $options{w}; my $height = $options{height} || $options{h}; if ( $width and $height ) #atleast give a dimension { $options{flags} ||= SDL_ANYFORMAT; $options{depth} ||= 32; $options{redmask} ||= 0xFF000000; $options{greenmask} ||= 0x00FF0000; $options{bluemask} ||= 0x0000FF00; $options{alphamask} ||= 0x000000FF; $self = bless SDL::Surface->new( $options{flags}, $width, $height, $options{depth}, $options{redmask}, $options{greenmask}, $options{bluemask}, $options{alphamask} ), $class; } else { Carp::confess 'Provide surface, or atleast width and height'; } } if ( exists $options{color} ) { $self->draw_rect( undef, $options{color} ); } return $self; } sub display { my $disp = SDL::Video::get_video_surface; return SDLx::Surface->new( surface => $disp ) if $disp; my %options = @_; my $width = $options{width} || $options{w}; my $height = $options{height} || $options{h}; if ( $width and $height ) #atleast give a dimension { $options{depth} ||= 32; $options{flags} ||= SDL_ANYFORMAT; my $surface = SDL::Video::set_video_mode( $width, $height, $options{depth}, $options{flags}, ); return SDLx::Surface->new( surface => $surface ); } else { Carp::confess 'set_video_mode externally or atleast provide width and height'; } } sub duplicate { my $surface = shift; SDLx::Validate::surface($surface); return SDLx::Surface->new( width => $surface->w, height => $surface->h, depth => $surface->format->BitsPerPixel, flags => $surface->flags ); } ### Overloads sub _tied_array { my ( $self, $array ) = @_; if ($array) { $_tied_array{$$self} = $array if $array; } return $_tied_array{$$self}; } sub get_pixel { my ( $self, $y, $x ) = @_; return SDLx::Surface::get_pixel_xs( $self, $x, $y ); } sub set_pixel { my ( $self, $y, $x, $new_value ) = @_; $new_value = SDLx::Validate::num_rgba($new_value); SDLx::Surface::set_pixel_xs( $self, $x, $y, $new_value ); } sub _array { my $self = shift; my $array = $self->_tied_array; unless ($array) { tie my @array, 'SDLx::Surface::TiedMatrix', $self; $array = \@array; $self->_tied_array($array); } return $array; } #ATTRIBUTE sub surface { $_[0] } sub width { $_[0]->w } sub height { $_[0]->h } #WRAPPING sub clip_rect { SDL::Video::set_clip_rect( $_[1] ) if $_[1] && $_[1]->isa('SDL::Rect'); SDL::Video::get_clip_rect( $_[0] ); } sub load { my ( $self, $filename, $type ) = @_; my $surface; # short-circuit if it's a bitmap if ( ( $type and lc $type eq 'bmp' ) or lc substr( $filename, -4, 4 ) eq '.bmp' ) { $surface = SDL::Video::load_BMP($filename) or Carp::confess "error loading image $filename: " . SDL::get_error; } else { # otherwise, make sure we can load first #eval { require SDL::Image; 1 }; This doesn't work. As you can still load SDL::Image but can't call any functions. # Carp::confess 'no SDL_image support found. Can only load bitmaps' unless SDL::Config->has('SDL_image'); #this checks if we actually have that library. C Library != SDL::Image require SDL::Image; if ($type) { #I don't understand what you are doing here require SDL::RWOps; my $file = SDL::RWOps->new_file( $filename, "rb" ) or Carp::confess "error loading file $filename: " . SDL::get_error; $surface = SDL::Image::load_typed_rw( $file, 1, $type ) or Carp::confess "error loading image $file: " . SDL::get_error; } else { $surface = SDL::Image::load($filename) or Carp::confess "error loading image $filename: " . SDL::get_error; } } my $formated_surface = $surface; if( SDL::Video::get_video_surface ) { #Reduces memory usage for loaded images $formated_surface = SDL::Video::display_format_alpha($surface); } return SDLx::Surface->new( surface => $formated_surface ); } #EXTENSTIONS sub blit_by { my ( $dest, $src, $src_rect, $dest_rect ) = @_; SDLx::Surface::blit( $src, $dest, $src_rect, $dest_rect ); } sub flip { Carp::confess "surface is not defined" unless $_[0]; Carp::confess "Error flipping surface: " . SDL::get_error() if ( SDL::Video::flip( $_[0] ) == -1 ); return $_[0]; } sub update { my ( $surface, $rects ) = @_; if ( !defined($rects) || ( ref($rects) eq 'ARRAY' && !ref( $rects->[0] ) ) ) { my @rect; @rect = @{$rects} if $rects; $rect[0] ||= 0; $rect[1] ||= 0; $rect[2] ||= $surface->w; $rect[3] ||= $surface->h; SDL::Video::update_rect( $surface, @rect ); } else { SDL::Video::update_rects( $surface, map { SDLx::Validate::rect($_) } @{$rects} ); } return $surface; } sub draw_line { my ( $self, $start, $end, $color, $antialias ) = @_; Carp::confess "Error start needs an array ref [x,y]" unless ref($start) eq 'ARRAY'; Carp::confess "Error end needs an array ref [x,y]" unless ref($end) eq 'ARRAY'; unless ( SDL::Config->has('SDL_gfx_primitives') ) { Carp::cluck("SDL_gfx_primitives support has not been compiled"); return; } $color = SDLx::Validate::num_rgba($color); my $result; if ($antialias) { $result = SDL::GFX::Primitives::aaline_color( $self, @$start, @$end, $color ); } else { $result = SDL::GFX::Primitives::line_color( $self, @$start, @$end, $color ); } Carp::confess "Error drawing line: " . SDL::get_error() if ( $result == -1 ); return $self; } sub draw_circle { my ( $self, $center, $radius, $color, $antialias ) = @_; unless ( SDL::Config->has('SDL_gfx_primitives') ) { Carp::cluck("SDL_gfx_primitives support has not been compiled"); return; } Carp::cluck "Center needs to be an array of format [x,y]" unless ( ref $center eq 'ARRAY' && scalar @$center == 2 ); $color = SDLx::Validate::num_rgba($color); unless( $antialias ) { SDL::GFX::Primitives::circle_color( $self, @{$center}, $radius, $color ); } else { SDL::GFX::Primitives::aacircle_color( $self, @{$center}, $radius, $color ); } return $self; } sub draw_circle_filled { my ( $self, $center, $radius, $color) = @_; unless ( SDL::Config->has('SDL_gfx_primitives') ) { Carp::cluck("SDL_gfx_primitives support has not been compiled"); return; } Carp::cluck "Center needs to be an array of format [x,y]" unless ( ref $center eq 'ARRAY' && scalar @$center == 2 ); $color = SDLx::Validate::num_rgba($color); SDL::GFX::Primitives::filled_circle_color( $self, @{$center}, $radius, $color ); return $self; } sub draw_trigon { my ( $self, $vertices, $color, $antialias ) = @_; $color = SDLx::Validate::num_rgba($color); if ($antialias) { SDL::GFX::Primitives::aatrigon_color( $self, $vertices->[0][0], $vertices->[0][1], $vertices->[1][0], $vertices->[1][1], $vertices->[2][0], $vertices->[2][1], $color ); } else { SDL::GFX::Primitives::trigon_color( $self, $vertices->[0][0], $vertices->[0][1], $vertices->[1][0], $vertices->[1][1], $vertices->[2][0], $vertices->[2][1], $color ); } return $self; } sub draw_trigon_filled { my ( $self, $vertices, $color ) = @_; $color = SDLx::Validate::num_rgba($color); SDL::GFX::Primitives::filled_trigon_color( $self, $vertices->[0][0], $vertices->[0][1], $vertices->[1][0], $vertices->[1][1], $vertices->[2][0], $vertices->[2][1], $color ); return $self; } sub draw_polygon_filled { my ( $self, $vertices, $color ) = @_; $color = SDLx::Validate::num_rgba($color); my @vx = map { $_->[0] } @$vertices; my @vy = map { $_->[1] } @$vertices; SDL::GFX::Primitives::filled_polygon_color( $self, \@vx, \@vy, scalar @$vertices, $color ); return $self; } sub draw_arc { my ( $self, $center, $radius, $start, $end, $color ) = @_; Carp::cluck "Center needs to be an array of format [x,y]" unless ( ref $center eq 'ARRAY' && scalar @$center == 2 ); $color = SDLx::Validate::num_rgba($color); SDL::GFX::Primitives::arc_color( $self, @$center, $radius, $start, $end, $color ); return $self; } sub draw_ellipse { my ( $self, $center, $rx, $ry, $color, $antialias ) = @_; Carp::cluck "Center needs to be an array of format [x,y]" unless ( ref $center eq 'ARRAY' && scalar @$center == 2 ); $color = SDLx::Validate::num_rgba($color); if ($antialias) { SDL::GFX::Primitives::aaellipse_color( $self, @$center, $rx, $ry, $color ); } else { SDL::GFX::Primitives::ellipse_color( $self, @$center, $rx, $ry, $color ); } return $self; } sub draw_ellipse_filled { my ( $self, $center, $rx, $ry, $color ) = @_; Carp::cluck "Center needs to be an array of format [x,y]" unless ( ref $center eq 'ARRAY' && scalar @$center == 2 ); $color = SDLx::Validate::num_rgba($color); SDL::GFX::Primitives::filled_ellipse_color( $self, @$center, $rx, $ry, $color ); return $self; } sub draw_bezier { my ( $self, $vector, $smooth, $color ) = @_; $color = SDLx::Validate::num_rgba($color); my @vx = map { $_->[0] } @$vector; my @vy = map { $_->[1] } @$vector; SDL::GFX::Primitives::bezier_color( $self, \@vx, \@vy, scalar @$vector, $smooth, $color ); return $self; } sub draw_gfx_text { my ( $self, $vector, $color, $text, $font ) = @_; unless ( SDL::Config->has('SDL_gfx_primitives') ) { Carp::cluck("SDL_gfx_primitives support has not been compiled"); return; } if ($font) { if ( ref($font) eq 'HASH' && exists $font->{data} && exists $font->{cw} && exists $font->{ch} ) { SDL::GFX::Primitives::set_font( $font->{data}, $font->{cw}, $font->{ch} ); } else { Carp::cluck "Set font data as a hash of type \n \$font = {data => \$data, cw => \$cw, ch => \$ch}. \n Refer to perldoc SDL::GFX::Primitives set_font for initializing this variables."; } } Carp::confess "vector needs to be an array ref of size 2. [x,y] " unless ( ref($vector) eq 'ARRAY' && scalar(@$vector) == 2 ); $color = SDLx::Validate::num_rgba($color); my $result = SDL::GFX::Primitives::string_color( $self, $vector->[0], $vector->[1], $text, $color ); Carp::confess "Error drawing text: " . SDL::get_error() if ( $result == -1 ); return $self; } sub DESTROY { my $self = shift; delete $_tied_array{$$self}; SDL::Surface::DESTROY($self); } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Text.pm��������������������������������������������������������������������������000444��000765��000024�� 22021�11760240072� 15263� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Text; use strict; use warnings; use SDL; use SDL::Video; use SDL::Config; use SDL::TTF; use SDL::TTF::Font; use SDLx::Validate; use List::Util qw(max sum); use Carp (); sub new { my ($class, %options) = @_; unless ( SDL::Config->has('SDL_ttf') ) { Carp::cluck("SDL_ttf support has not been compiled"); } my $file = $options{'font'}; if (!$file) { require File::ShareDir; $file = File::ShareDir::dist_file('SDL', 'GenBasR.ttf'); } my $color = defined $options{'color'} ? $options{'color'} : [255, 255, 255]; my $size = $options{'size'} || 24; my $shadow = $options{'shadow'} || 0; my $shadow_offset = $options{'shadow_offset'} || 1; my $shadow_color = defined $options{'shadow_color'} ? $options{'shadow_color'} : [0, 0, 0] ; my $self = bless {}, ref($class) || $class; $self->{x} = $options{'x'} || 0; $self->{y} = $options{'y'} || 0; $self->{h_align} = $options{'h_align'} || 'left'; # TODO: validate # TODO: v_align unless ( SDL::TTF::was_init() ) { Carp::cluck ("Cannot init TTF: " . SDL::get_error() ) unless SDL::TTF::init() == 0; } $self->size($size); $self->font($file); $self->color($color); $self->shadow($shadow); $self->shadow_color($shadow_color); $self->shadow_offset($shadow_offset); $self->bold($options{'bold'}) if exists $options{'bold'}; $self->italic($options{'italic'}) if exists $options{'italic'}; $self->underline($options{'underline'}) if exists $options{'underline'}; $self->strikethrough($options{'strikethrough'}) if exists $options{'strikethrough'}; # word wrapping $self->{word_wrap} = $options{'word_wrap'} || 0; $self->text( $options{'text'} ) if exists $options{'text'}; return $self; } sub font { my ($self, $font_filename) = @_; if ($font_filename) { my $size = $self->size; $self->{_font} = SDL::TTF::open_font($font_filename, $size) or Carp::cluck "Error opening font '$font_filename': " . SDL::get_error; $self->{_font_filename} = $font_filename; $self->{_update_surfaces} = 1; } return $self->{_font}; } sub font_filename { return $_[0]->{_font_filename}; } sub color { my ($self, $color) = @_; if (defined $color) { $self->{_color} = SDLx::Validate::color($color); $self->{_update_surfaces} = 1; } return $self->{_color}; } sub size { my ($self, $size) = @_; if ($size) { $self->{_size} = $size; # reload the font using new size. # No need to set "_update_surfaces" # since font() already does it. $self->font( $self->font_filename ); } return $self->{_size}; } sub _style { my ($self, $flag, $enable) = @_; my $styles = SDL::TTF::get_font_style( $self->font ); # do we have an enable flag? if (@_ > 2) { # we do! setup flags if we're enabling or disabling if ($enable) { $styles |= $flag; } else { $styles ^= $flag if $flag & $styles; } SDL::TTF::set_font_style( $self->font, $styles ); # another run, returning true if value was properly set. return SDL::TTF::get_font_style( $self->font ) & $flag; } # no enable flag present, just return # whether the style is enabled/disabled else { return $styles & $flag; } } sub normal { my $self = shift; $self->_style( TTF_STYLE_NORMAL, @_ ) } sub bold { my $self = shift; $self->_style( TTF_STYLE_BOLD, @_ ) } sub italic { my $self = shift; $self->_style( TTF_STYLE_ITALIC, @_ ) } sub underline { my $self = shift; $self->_style( TTF_STYLE_UNDERLINE, @_ ) } sub strikethrough { my $self = shift; $self->_style( TTF_STYLE_STRIKETHROUGH, @_ ) } sub h_align { my ($self, $align) = @_; if ($align) { $self->{h_align} = $align; $self->{_update_surfaces} = 1; } return $self->{h_align}; } sub shadow { my ($self, $shadow) = @_; if ($shadow) { $self->{shadow} = $shadow; $self->{_update_surfaces} = 1; } return $self->{shadow}; } sub shadow_color { my ($self, $shadow_color) = @_; if (defined $shadow_color) { $self->{shadow_color} = SDLx::Validate::color($shadow_color); $self->{_update_surfaces} = 1; } return $self->{shadow_color}; } sub shadow_offset { my ($self, $shadow_offset) = @_; if ($shadow_offset) { $self->{shadow_offset} = $shadow_offset; $self->{_update_surfaces} = 1; } return $self->{shadow_offset}; } sub w { my $surface = $_[0]->{surface}; return $surface->w unless $surface and ref $surface eq 'ARRAY'; return max map { $_ ? $_->w() : 0 } @$surface; } sub h { my $surface = $_[0]->{surface}; return $surface->h unless $surface and ref $surface eq 'ARRAY'; return sum map { $_ ? $_->h() : 0 } @$surface; } sub x { my ($self, $x) = @_; if (defined $x) { $self->{x} = $x; } return $self->{x}; } sub y { my ($self, $y) = @_; if (defined $y) { $self->{y} = $y; } return $self->{y}; } sub text { my ($self, $text) = @_; return $self->{text} if scalar @_ == 1; if ( defined $text ) { $text = $self->_word_wrap($text) if $self->{word_wrap}; my $font = $self->{_font}; my $surface = _get_surfaces_for($font, $text, $self->{_color} ) or Carp::croak 'TTF rendering error: ' . SDL::get_error; if ($self->{shadow}) { my $shadow_surface = _get_surfaces_for($font, $text, $self->{shadow_color}) or Carp::croak 'TTF shadow rendering error: ' . SDL::get_error; $shadow_surface = [ $shadow_surface ] unless ref $shadow_surface eq 'ARRAY'; $self->{_shadow_surface} = $shadow_surface; } $self->{surface} = $surface; $self->{text} = $text; } else { $self->{surface} = undef; } return $self; } # Returns the TTF surface for the given text. # If the text contains linebreaks, we split into # several surfaces (since SDL can't render '\n'). sub _get_surfaces_for { my ($font, $text, $color) = @_; return SDL::TTF::render_utf8_blended($font, $text, $color) if index($text, "\n") == -1; my @surfaces = (); my @paragraphs = split /\n/ => $text; foreach my $paragraph (@paragraphs) { push @surfaces, SDL::TTF::render_utf8_blended($font, $paragraph, $color); } return \@surfaces; } sub _word_wrap { my ($self, $text) = @_; my $maxlen = $self->{word_wrap}; my $font = $self->{_font}; # code heavily based on Text::Flow::Wrap my @paragraphs = split /\n/ => $text; my @output; foreach my $paragraph (@paragraphs) { my @paragraph_output = (''); my @words = split /\s+/ => $paragraph; foreach my $word (@words) { my $padded = $word . q[ ]; my $candidate = $paragraph_output[-1] . $padded; my ($w) = @{ SDL::TTF::size_utf8($font, $candidate) }; if ($w < $maxlen) { $paragraph_output[-1] = $candidate; } else { push @paragraph_output, $padded; } } chop $paragraph_output[-1] if substr( $paragraph_output[-1], -1, 1 ) eq q[ ]; push @output, \@paragraph_output; } return join "\n" => map { join "\n" => @$_ } @output; } sub surface { return $_[0]->{surface}; } sub write_to { my ($self, $target, $text) = @_; if (@_ > 2) { $self->text($text); $self->{_update_surfaces} = 0; } $self->write_xy($target, $self->{x}, $self->{y}); } sub write_xy { my ($self, $target, $x, $y, $text) = @_; if (@_ > 4) { $self->text($text); $self->{_update_surfaces} = 0; } elsif ($self->{_update_surfaces}) { $self->text( $self->text ); $self->{_update_surfaces} = 0; } if ( my $surfaces = $self->{surface} ) { $surfaces = [ $surfaces ] unless ref $surfaces eq 'ARRAY'; my $linebreaks = 0; foreach my $i ( 0 .. $#{$surfaces}) { if (my $surface = $surfaces->[$i]) { $y += ($linebreaks * $surface->h); $linebreaks = 0; if ($self->{h_align} eq 'center' ) { # $x = ($target->w / 2) - ($surface->w / 2); $x -= $surface->w / 2; } elsif ($self->{h_align} eq 'right' ) { # $x = $target->w - $surface->w; $x -= $surface->w; } # blit the shadow if ($self->{shadow}) { my $shadow = $self->{_shadow_surface}->[$i]; my $offset = $self->{shadow_offset}; SDL::Video::blit_surface( $shadow, SDL::Rect->new(0,0,$shadow->w, $shadow->h), $target, SDL::Rect->new($x + $offset, $y + $offset, 0, 0) ); } # blit the text SDL::Video::blit_surface( $surface, SDL::Rect->new(0,0,$surface->w, $surface->h), $target, SDL::Rect->new($x, $y, 0, 0) ); } $linebreaks++; } } return; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/TTF.pm���������������������������������������������������������������������������000444��000765��000024�� 2056�11760240073� 14763� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::TTF; use strict; use warnings; use Carp; use SDL; use SDL::TTF; use SDL::TTF::Font; sub new { my ($class, $font) = @_; my $self = {}; unless ( SDL::Config->has('SDL_ttf') ) { Carp::cluck("SDL_ttf support has not been compiled"); } unless ( SDL::TTF::was_init() ) { Carp::cluck ("Cannot init TTF: " . SDL::get_error() ) unless SDL::TTF::init() == 0; $self->{inited} = 1; $self->{style} = { normal => TTF_STYLE_NORMAL, bold => TTF_STYLE_BOLD, italic => TTF_STYLE_ITALIC, underline => TTF_STYLE_UNDERLINE, strikethrough => TTF_STYLE_STRIKETHROUGH }; } my $ttf_font; unless ( $ttf_font = SDL::TTF::open_font($font, $size )) { Carp::cluck ("Cannot make a TTF font from location ($font) or size($size), due to: ". SDL::get_error ); } $self->{ttf_font} = $ttf_font; if ( $style && ( my $t_style = $self->{style}->{$style} ) ) { SDL::TTF::set_font_style($ttf_font, $t_style); } return bless $self, $class; } sub DESTROY { my $self = shift; SDL::TTF::quit if $self->{inited}; } 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Validate.pm����������������������������������������������������������������������000444��000765��000024�� 1472�11760240072� 16057� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#Interal Module to validate SDLx types package SDLx::Validate; use strict; use warnings; use vars qw(@ISA @EXPORT @EXPORT_OK); require Exporter; require DynaLoader; our @ISA = qw(Exporter DynaLoader); $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /Use of uninitialized value in subroutine entry/}; use Carp (); use Scalar::Util (); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); sub surfacex { my ($arg) = @_; if ( Scalar::Util::blessed($arg)) { if ( $arg->isa("SDLx::Surface") ) { return $arg; } if( $arg->isa("SDL::Surface") ) { require SDLx::Surface; return SDLx::Surface->new( surface => $arg ); } } Carp::confess("Surface must be SDL::Surface or SDLx::Surface"); } sub color { require SDL::Color; return SDL::Color->new( @{ list_rgb(@_) } ); } bootstrap SDLx::Validate; 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Controller�����������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15753� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Controller/Interface.pm����������������������������������������������������������000444��000765��000024�� 2630�11760240072� 20346� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Controller::Interface; use strict; use warnings; use Carp qw/confess/; use Scalar::Util 'refaddr'; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; my %_controller; sub new { shift; my %foo = @_; my @args; push @args, ( $foo{x} || 0 ); push @args, ( $foo{y} || 0 ); push @args, ( $foo{v_x} || 0 ); push @args, ( $foo{v_y} || 0 ); push @args, ( $foo{rot} || 0 ); push @args, ( $foo{ang_v} || 0 ); return SDLx::Controller::Interface->make(@args); } sub attach { my ( $self, $controller, $render, @params ) = @_; Carp::confess "An SDLx::Controller is needed" unless $controller && $controller->isa('SDLx::Controller'); $_controller{ refaddr $self } = [ $controller ]; my $move = sub { $self->update( $_[2], $_[1]->dt )}; $_controller{ refaddr $self }->[1] = $controller->add_move_handler($move); if ($render) { my $show = sub { my $state = $self->interpolate( $_[0] ); $render->( $state, @params ); }; $_controller{ refaddr $self }->[2] = $controller->add_show_handler($show); } else { Carp::confess "Render callback not provided"; } } sub detach { my ( $self) = @_; my $controller = $_controller{ refaddr $self }; return unless $controller; $controller->[0]->remove_move_handler($controller->[1]); $controller->[0]->remove_show_handler($controller->[2]); } internal_load_dlls(__PACKAGE__); bootstrap SDLx::Controller::Interface; 1; ��������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Controller/State.pm��������������������������������������������������������������000444��000765��000024�� 305�11760240073� 17504� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Controller::State; use strict; use warnings; our @ISA = qw(Exporter DynaLoader); use SDL::Internal::Loader; internal_load_dlls(__PACKAGE__); bootstrap SDLx::Controller::State; 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Controller/Timer.pm��������������������������������������������������������������000444��000765��000024�� 2423�11760240072� 17526� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Controller::Timer; # Implementation of lesson 13 and 14 from http://lazyfoo.net/SDL_tutorials/index.php # use strict; use warnings; use SDL; sub new { my $class = shift; my $self = bless {@_}, $class; $self->{started_ticks} = 0; $self->{paused_ticks} = 0; $self->{started} = 0; $self->{paused} = 0; return $self; } sub start { my $self = shift; $self->{started} = 1; $self->{started_ticks} = SDL::get_ticks(); } sub stop { my $self = shift; $self->{started} = 0; $self->{paused} = 0; } sub pause { my $self = shift; if ( $self->{started} && !$self->{paused} ) { $self->{paused} = 1; $self->{paused_ticks} = SDL::get_ticks() - $self->{started_ticks}; } } sub unpause { my $self = shift; if ( $self->{paused} ) { $self->{paused} = 0; $self->{started_ticks} = SDL::get_ticks() - $self->{started_ticks}; $self->{paused_ticks} = 0; } } sub get_ticks { my $self = shift; if ( $self->{started} ) { if ( $self->{paused} ) { return $self->{paused_ticks}; } else { my $update = SDL::get_ticks(); my $diff = $update - $self->{started_ticks}; return $diff; } } return 0; } sub is_started { my $self = shift; return $self->{started}; } sub is_paused { my $self = shift; return $self->{paused}; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Music����������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 14707� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Music/Data.pm��������������������������������������������������������������������000444��000765��000024�� 514�11760240072� 16233� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Music::Data; sub volume { $_[0]->{volume} = $_[1] if $_[1]; return $_[0]; } sub file { if( $_[1] ) { $_[0]->{file} = $_[1]; $_[0]->{to_load} = 1; } return $_[0]; } sub fade_in { $_[0]->{fade_in} = $_[1] if $_[1]; return $_[0]; } sub loops { $_[0]->{loops} = $_[1] if $_[1]; return $_[0]; } 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Music/Default.pm�����������������������������������������������������������������000444��000765��000024�� 305�11760240072� 16744� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Music::Default; use strict; use warnings; sub ext { $_[0]->{ext} = $_[1] if $_[1]; return $_[0]->{ext}; } sub dir { $_[0]->{dir} = $_[1] if $_[1]; return $_[0]->{dir}; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Sprite���������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15076� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Sprite/Animated.pm���������������������������������������������������������������000444��000765��000024�� 16330�11760240073� 17336� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Sprite::Animated; use strict; use warnings; use Scalar::Util 'refaddr'; use SDL; use SDL::Video; use SDL::Rect; use SDLx::Sprite; use SDLx::Validate; use base 'SDLx::Sprite'; # inside out my %_ticks; my %_width; my %_height; my %_step_x; my %_step_y; my %_offset_x; my %_offset_y; my %_type; my %_max_loops; my %_ticks_per_frame; my %_current_frame; my %_current_loop; my %_sequences; my %_sequence; my %_started; my %_direction; sub new { my ( $class, %options ) = @_; my ( $w, $h ); if ( exists $options{clip} ) { ( $w, $h ) = ( $options{clip}->w, $options{clip}->h ); } elsif ( exists $options{rect} ) { ( $w, $h ) = ( $options{rect}->w, $options{rect}->h ); } elsif ( exists $options{width} && $options{height} ) { ( $w, $h ) = ( $options{width}, $options{height} ); } my $self = $class->SUPER::new(%options); $self->_store_geometry( $w, $h ); $self->step_x( exists $options{step_x} ? $options{step_x} : $self->clip->w ); $self->step_y( exists $options{step_y} ? $options{step_y} : $self->clip->h ); $_offset_x{ refaddr $self} = exists $options{clip} ? $options{clip}->x : 0; $_offset_y{ refaddr $self} = exists $options{clip} ? $options{clip}->y : 0; $self->max_loops( exists $options{max_loops} ? $options{max_loops} : 0 ); $self->ticks_per_frame( exists $options{ticks_per_frame} ? $options{ticks_per_frame} : 1 ); $self->type( exists $options{type} ? $options{type} : 'circular' ); if ( exists $options{sequences} ) { $_sequences{ refaddr $self} = $options{sequences}; } else { $self->_init_default_sequence(); } $self->sequence( $options{sequence} ) if exists $options{sequence}; $_ticks{ refaddr $self} = 0; $_direction{ refaddr $self} = 1; return $self; } sub DESTROY { my $self = shift; delete $_ticks{ refaddr $self}; delete $_width{ refaddr $self}; delete $_height{ refaddr $self}; delete $_step_x{ refaddr $self}; delete $_step_y{ refaddr $self}; delete $_offset_x{ refaddr $self}; delete $_offset_y{ refaddr $self}; delete $_type{ refaddr $self}; delete $_max_loops{ refaddr $self}; delete $_ticks_per_frame{ refaddr $self}; delete $_current_frame{ refaddr $self}; delete $_current_loop{ refaddr $self}; delete $_sequences{ refaddr $self}; delete $_sequence{ refaddr $self}; delete $_started{ refaddr $self}; delete $_direction{ refaddr $self}; } sub load { my $self = shift; my $image = shift; $self->SUPER::load($image); $self->_restore_geometry; $self->_init_default_sequence; return $self; } sub _init_default_sequence { my $self = shift; my $max_x = int( ( $self->surface->w - $_offset_x{ refaddr $self} ) / $self->step_x ); my $max_y = int( ( $self->surface->h - $_offset_y{ refaddr $self} ) / $self->step_y ); my @sequence; foreach my $y ( 0 .. $max_y - 1 ) { foreach my $x ( 0 .. $max_x - 1 ) { push @sequence, [ $x, $y ]; } } $_sequences{ refaddr $self} = { 'default' => \@sequence }; $self->sequence('default'); } sub _store_geometry { my ( $self, $w, $h ) = @_; $_width{ refaddr $self} = $w; $_height{ refaddr $self} = $h; $self->_restore_geometry; } sub _restore_geometry { my $self = shift; $self->clip->w( $_width{ refaddr $self} ) if exists $_width{ refaddr $self}; $self->clip->h( $_height{ refaddr $self} ) if exists $_height{ refaddr $self}; $self->rect->w( $_width{ refaddr $self} ) if exists $_width{ refaddr $self}; $self->rect->h( $_height{ refaddr $self} ) if exists $_height{ refaddr $self}; } sub step_y { my ( $self, $step_y ) = @_; if ($step_y) { $_step_y{ refaddr $self} = $step_y; } return $_step_y{ refaddr $self}; } sub step_x { my ( $self, $step_x ) = @_; if ($step_x) { $_step_x{ refaddr $self} = $step_x; } return $_step_x{ refaddr $self}; } sub type { my ( $self, $type ) = @_; if ($type) { $_type{ refaddr $self} = lc $type; } return $_type{ refaddr $self}; } sub max_loops { my $self = shift; if (@_) { $_max_loops{ refaddr $self} = shift; } return $_max_loops{ refaddr $self}; } sub ticks_per_frame { my ( $self, $ticks ) = @_; if ($ticks) { $_ticks_per_frame{ refaddr $self} = $ticks; } return $_ticks_per_frame{ refaddr $self}; } sub current_frame { my ( $self, $frame ) = @_; return $_current_frame{ refaddr $self}; } sub current_loop { my ($self) = @_; return $_current_loop{ refaddr $self }; } sub set_sequences { my ( $self, %sequences ) = @_; # TODO: Validate sequences. $_sequences{ refaddr $self} = \%sequences; return $self; } sub sequence { my ( $self, $sequence ) = @_; my $me = refaddr $self; if ($sequence) { if ( !defined( $_sequences{ $me }{$sequence} ) ) { warn 'Unknown sequence: ', $sequence; return; } $_sequence{ $me } = $sequence; $_current_frame{ $me } = 1; $_current_loop{ $me } = 1; $_direction{ $me } = 1; $self->_update_clip; } return $_sequence{ $me }; } sub _sequence { my $self = shift; return $_sequences{ refaddr $self}{ $_sequence{ refaddr $self} }; } sub _frame { my $self = shift; return $self->_sequence->[ $_current_frame{ refaddr $self} - 1 ]; } sub next { my $self = shift; my $me = refaddr $self; return if @{ $self->_sequence } == 1; return if $_max_loops{ $me } && $_current_loop{ $me } > $_max_loops{ $me }; my $next_frame = ( $_current_frame{ $me } - 1 + $_direction{ $me } ) % @{ $self->_sequence }; if ( $next_frame == 0 ) { $_current_loop{ $me }++ if $_type{ $me } eq 'circular'; if ( $_type{ $me } eq 'reverse' ) { if ( $_direction{ $me } == 1 ) { $next_frame = @{ $self->_sequence } - 2; } else { $_current_loop{ $me }++; } $_direction{ $me } *= -1; } } $_current_frame{ $me } = $next_frame + 1; $self->_update_clip; return $self; } sub previous { my $self = shift; return if $_max_loops{ refaddr $self} && $_current_loop{ refaddr $self } > $_max_loops{ refaddr $self}; $_ticks{ refaddr $self} = 0; return if @{ $self->_sequence } == 1; my $previous_frame = ( $_current_frame{ refaddr $self} - 1 - $_direction{ refaddr $self} ) % @{ $self->_sequence }; if ( $previous_frame == 0 ) { if ( $_type{ refaddr $self} eq 'reverse' ) { if ( $_direction{ refaddr $self} == -1 ) { $previous_frame = 1; } $_direction{ refaddr $self} *= -1; } } $_current_frame{ refaddr $self} = $previous_frame + 1; $self->_update_clip; return $self; } sub reset { my $self = shift; $self->stop; $_current_frame{ refaddr $self} = 1; $self->_update_clip; return $self; } sub start { my $self = shift; $_started{ refaddr $self} = 1; return $self; } sub stop { my $self = shift; $_started{ refaddr $self} = 0; return $self; } sub _update_clip { my $self = shift; my $clip = $self->clip; my $frame = $self->_frame; $clip->x( $_offset_x{ refaddr $self} + $frame->[0] * $_step_x{ refaddr $self} ); $clip->y( $_offset_y{ refaddr $self} + $frame->[1] * $_step_y{ refaddr $self} ); } sub alpha_key { my $self = shift; $self->SUPER::alpha_key(@_); $self->_restore_geometry; return $self; } sub draw { my ( $self, $surface ) = @_; $surface = SDLx::Validate::surface($surface); $_ticks{ refaddr $self}++; $self->next if $_started{ refaddr $self} && $_ticks{ refaddr $self} % $_ticks_per_frame{ refaddr $self} == 0; SDL::Video::blit_surface( $self->surface, $self->clip, $surface, $self->rect ); return $self; } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Surface��������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15217� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Surface/TiedMatrix.pm������������������������������������������������������������000444��000765��000024�� 1141�11760240072� 17761� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Surface::TiedMatrix; use strict; use warnings; use SDLx::Surface::TiedMatrixRow; use base 'Tie::Array'; sub new { my $class = shift; my $matrix = shift; my $self = { matrix => $matrix, rows => [], }; return bless $self, $class; } sub TIEARRAY { return SDLx::Surface::TiedMatrix->new( $_[1] ); } sub FETCH { my ( $self, $y ) = @_; unless ( $self->{rows}[$y] ) { tie my @row, 'SDLx::Surface::TiedMatrixRow', $self->{matrix}, $y; $self->{rows}[$y] = \@row; } return $self->{rows}[$y]; } sub FETCHSIZE { my ( $self, $x ) = @_; return $self->{matrix}->surface->h; } 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/lib/SDLx/Surface/TiedMatrixRow.pm���������������������������������������������������������000444��000765��000024�� 1140�11760240072� 20450� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDLx::Surface::TiedMatrixRow; use strict; use warnings; use base 'Tie::Array'; sub new { my $class = shift; my $matrix = shift; my $y = shift; my $self = { matrix => $matrix, y => $y, }; return bless $self, $class; } sub TIEARRAY { return SDLx::Surface::TiedMatrixRow->new( $_[1], $_[2] ); } sub FETCH { my ( $self, $x ) = @_; $self->{matrix}->get_pixel( $x, $self->{y} ); } sub FETCHSIZE { my ( $self, $x ) = @_; return $self->{matrix}->surface->w; } sub STORE { my ( $self, $x, $new_value ) = @_; $self->{matrix}->set_pixel( $x, $self->{y}, $new_value ); } 1; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/MacOSX������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13342� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/MacOSX/Info.plist�������������������������������������������������������������������������000444��000765��000024�� 2563�11760240072� 15454� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDisplayName</key> <string>SDLPerl</string> <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeExtensions</key> <array> <string>spl</string> </array> <key>CFBundleTypeIconFile</key> <string>SDLPerl.icns</string> <key>CFBundleTypeName</key> <string>SDL Perl Script</string> <key>CFBundleTypeRole</key> <string>Shell</string> </dict> </array> <key>CFBundleExecutable</key> <string>SDLPerl</string> <key>CFBundleGetInfoString</key> <string>Multimedia for Perl</string> <key>CFBundleIconFile</key> <string>SDLPerl.icns</string> <key>CFBundleIdentifier</key> <string>org.perl.sdl</string> <key>CFBundleName</key> <string>SDLPerl</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>2.2.0</string> <key>CFBundleVersion</key> <string>2.2.0</string> <key>CSBundleSignature</key> <string>sdpl</string> <key>LSEnvironment</key> <dict/> <key>LSHasLocalizedDisplayName</key> <false/> <key>NSAppleScriptEnabled</key> <false/> <key>NSHumanReadableCopyright</key> <string>Copyright © 2009-2010, Kartik Thakore.</string> <key>NSMainNibFile</key> <string></string> </dict> </plist> ���������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/MacOSX/main.c�����������������������������������������������������������������������������000444��000765��000024�� 1412�11760240072� 14564� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <EXTERN.h> /* from the Perl distribution */ #include <perl.h> /* from the Perl distribution */ #include <SDL.h> extern char **environ; static PerlInterpreter *my_perl; /* ** The Perl interpreter ***/ static void xs_init (pTHX); EXTERN_C void boot_DynaLoader (pTHX_ CV* cv); EXTERN_C void xs_init(pTHX) { char *file = __FILE__; /* DynaLoader is a special case */ newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); } int main(int argc, char *argv[]) { char **env = environ; PERL_SYS_INIT3(&argc,&argv, &env); my_perl = perl_alloc(); perl_construct(my_perl); PL_exit_flags |= PERL_EXIT_DESTRUCT_END; perl_parse(my_perl, xs_init, argc, argv, (char **)NULL); perl_run(my_perl); perl_destruct(my_perl); perl_free(my_perl); PERL_SYS_TERM(); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/MacOSX/Makefile.test����������������������������������������������������������������������000444��000765��000024�� 1777�11760240073� 16131� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/make -f BUILD=build APP_PARTS=\ $(BUILD)/SDLPerl.app/Contents/Info.plist \ $(BUILD)/SDLPerl.app/Contents/MacOS/SDLPerl \ $(BUILD)/SDLPerl.app/Contents/Resources/SDLPerl.rsrc \ $(BUILD)/SDLPerl.app/Contents/PkgInfo all: $(BUILD)/SDLPerl.app clean: rm -rf $(BUILD) $(BUILD)/SDLPerl.app: $(APP_PARTS) $(BUILD)/SDLPerl.app/Contents: mkdir -p $@ $(BUILD)/SDLPerl.app/Contents/MacOS: mkdir -p $@ $(BUILD)/SDLPerl.app/Contents/Resources: mkdir -p $@ $(BUILD)/SDLPerl.app/Contents/PkgInfo: $(BUILD)/SDLPerl.app/Contents echo -n "BNDL????" > $@ $(BUILD)/SDLPerl.app/Contents/Info.plist: $(BUILD)/SDLPerl.app/Contents cp Info.plist $@ $(BUILD)/SDLPerl.app/Contents/MacOS/SDLPerl: $(BUILD)/SDLPerl.app/Contents/MacOS gcc -o $@ $(ARCH_FLAGS) main.c $(BUILD)/SDLPerl.app/Contents/Resources/SDLPerl.rsrc: $(BUILD)/SDLPerl.app/Contents/Resources /Developer/Tools/Rez -d __DARWIN__ -useDF -o $(BUILD)/SDLPerl.rsrc $(ARCH_FLAGS) SDLPerl.r /Developer/Tools/ResMerger -dstIs DF $(BUILD)/SDLPerl.rsrc -o $@ �SDL-2.540/MacOSX/SDLPerl.icns�����������������������������������������������������������������������000444��000765��000024�� 103635�11760240073� 15672� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������icns��ics#���H��???����???��is32��{�NbH_ g/[# ǀ,�9䈈�||/2"3� ? E���=B[k �.xfo9'*��NbH_ g/[# ǀ,�9䈈�||/2"3� ? E���=B[k �.xfo9'*��NbH_ g/[# ǀ,�9䀀�||/2"3� ? E���=B[k �.xfo9'*�s8mk��������� ������������A}�������jI�����|+���+)���b����2��jy������L�|a�s8<�m}1h�:V����6A������x����rj����vk�����$2������� ܛ�����������/�������ICN#���������������????????���������������������������????????��������������il32��᪈�5 �� |V6��"��w B�U���너�fm�߂���낈3"  N�L߀끈���Հ�1��܀� �ۀ{��A��%� �5 +Ύ�C �$�⁈ �ہ�恈����偈D��Հ���ހOd' ,�\� ����'?솈��&:� ���Q* � 1 �5W��5 �� |V6��"��w B�U���너�fm�߂���낈3"  N�L߀끈���Հ�1��܀� �ۀ{��A��%� �5 +Ύ�C �$�⁈ �ہ�恈����偈D��Հ���ހOd' ,�\� ����'?솈��&:� ���Q* � 1 �5W��5 �� |V6��"��w B�U���넀�fm�߂���낀3"  N�L߀끀���Հ�1��܀� �ۀ{��A��%� �5 +Ύ�C �$�⁀ �ہ�恀����偀D��Հ���ހOd' ,�\� ����'?솀��&:� ���Q* � 1 �5W�l8mk�����������������������������������������������&) ������������������������-ĕP�������������������5c���������������������������5���������� ���������ВP�Dp�������6�������|�������x�����������:�����:d�������������9����������mr(�����o>����P����q ������������l���P������ �����@���]����J��_n���nO��_��oh���a����Һx��V��� ���������!����a�����������0����B{n���M�������������������~��������G����������Y���������k��������i����������5K����B�����������ɶ�������������������������� ����������������Ts�������������������nܡg������������������������ 4\F�����������������������������������������������ich#��H�����������������������������?������???????�?����������������?������������?��������������������������������������������?������???????�?����������������?������������?���������������ih32�� �N{d"���þ�ɼ5ͯW�ǒВ����� ĺօ�݅헉\ʄ׈����𹆈����ʃ��Յɴ腈Ճ���?ɮՂ�?Ń�Â߂�����ɂ��񢃈U�ă�ă�ͪ�񉁈�ƒ�ɂ�����Ȃ�ɃpĿ�ǃ���Ă�Є�Y]�Ń���Â��mĽԮ��ă����UÁ�Ճj��*͂݃܁��Ĉ��ȵ����ǃu�݂��Ԫ�΍҃�fÃ�ո�>�х�΄񝎈� 寺��5ƕؒΓ͔і�/ԉ�֮ݽĿ��Ū��N{d"���þ�ɼ5ͯW�ǒВ����� ĺօ�݅헉\ʄ׈����𹆈����ʃ��Յɴ腈Ճ���?ɮՂ�?Ń�Â߂�����ɂ��񢃈U�ă�ă�ͪ�񉁈�ƒ�ɂ�����Ȃ�ɃpĿ�ǃ���Ă�Є�Y]�Ń���Â��mĽԮ��ă����UÁ�Ճj��*͂݃܁��Ĉ��ȵ����ǃu�݂��Ԫ�΍҃�fÃ�ո�>�х�΄񝎈� 寺��5ƕؒΓ͔і�/ԉ�֮ݽĿ��Ū��N{d"���þ�ɼ5ͯW�ǒВ����� ĺօ�݅헉\ʄ׈����𹆀����ʃ��Յɴ腀Ճ���?ɮՂ�?Ń�Â߂�����ɂ��񢃀U�ă�ă�ͪ�񉁀�ƒ�ɂ�����Ȃ�ɃpĿ�ǃ���Ă�Є�Y]�Ń���Â��mĽԮ��ă����UÁ�Ճj��*͂݃܁��Ĉ��ȵ����ǃu�݂��Ԫ�΍҃�fÃ�ո�>�х�΄񝎀� 寺��5ƕؒΓ͔і�/ԉ�֮ݽĿ��Ū�h8mk�� ��������������������������������������������������������������������������������������������������������������������1D8-$ ������������������������������������� y濗g�������������������������������G$���������������������������&)�����������������������yb��������������������� ������������������ ������������������������������˥sw{��������������}E��������\������������$2�������������ES�������������������������� ���������V�������������������n����������������������������� �����������������������������������\��������"��������=���������������������1�����y�����������������:����������������y������l������b����������!�����[��������� {������y���������ѻ���������������(�%Xxb/ ���������u�����TҎ����������_�����m����'<����_������<0�����z�����������$=������U������������������������MՊ�������������������������� �������Fn������������N������������������'������������Z����������������:��������������M��������������u�������������� m�����������- ���������������kY��������~�����������������~jDy����������������� C�������������������4c���������������������Im�����������������������:o������������������������� 0����������������������������Vҁ�������������������������������9a������������������������������������cu8����������������������������������������������������������������������������������������������������������������������it32��!����� $&%$"  '(��� "=fȳn9' ��݈�G蹈@!��׈� !ٙl�҈�נl�Έ�52ʈN̪H�ƈ�Mޮ9�ˆ�!+��24��w�,;�>l��Q��g�v� W�7 ű�"컉P'(())('(&\��ޙ%���� 3^�ȘU��b֘* '���;��/#����ܔV��?$.��(t��c�'"��!!ΓrH����ۑ�i&�J 3���NA"�WɐU�א�0�P!�N�rH��T��� $!6� ��&/7""����dϣH��v�T��""�S +� Ɏ[��:N��#��u��!��T'��[4� S��u�'�""ȍ�ޝt�>j�t�1��!2�����Z�ya�+%�ء��"�V�#��q!�\���UO�V�!ɤ�%� U�$U�� ^6^�!%S��"5[4�'"'Q��% �'O� ܓ2� ��S|V/#��g'čR�#�W޾|V/!?'}��v�U޾t !7^�%�0��O� !7]�h ��L�!�7~�H�$���HY�! �q!΍ �ȏ$��$ȍ �},�$*�i��Mϊ��.�� ��eӆ��PN��1Ӄ����"�V��]v��;� ŏD �"�m���B#"��َ��1�lא�+S� \����ّ��ې P~��ɑ(�ђr��D ʒE 3��Q����aB ��Iהl�q��nߕ��&$���& *�HiM;{}����+�J�s�о��ϼ��ɺ}��m��oG��;È�ň�G;�Ȉu�ˈ�m�Έ�OʠZ�ӈ�0%��׈�oe�܈��PȘd,���!3SZahov}J!��눊�� $&%$"  '(��� "=fȳn9' ��݈�G蹈@!��׈� !ٙl�҈�נl�Έ�52ʈN̪H�ƈ�Mޮ9�ˆ�!+��24��w�,;�>l��Q��g�v� W�7 ű�"컉P'(())('(&\��ޙ%���� 3^�ȘU��b֘* '���;��/#����ܔV��?$.��(t��c�'"��!!ΓrH����ۑ�i&�J 3���NA"�WɐU�א�0�P!�N�rH��T��� $!6� ��&/7""����dϣH��v�T��""�S +� Ɏ[��:N��#��u��!��T'��[4� S��u�'�""ȍ�ޝt�>j�t�1��!2�����Z�ya�+%�ء��"�V�#��q!�\���UO�V�!ɤ�%� U�$U�� ^6^�!%S��"5[4�'"'Q��% �'O� ܓ2� ��S|V/#��g'čR�#�W޾|V/!?'}��v�U޾t !7^�%�0��O� !7]�h ��L�!�7~�H�$���HY�! �q!΍ �ȏ$��$ȍ �},�$*�i��Mϊ��.�� ��eӆ��PN��1Ӄ����"�V��]v��;� ŏD �"�m���B#"��َ��1�lא�+S� \����ّ��ې P~��ɑ(�ђr��D ʒE 3��Q����aB ��Iהl�q��nߕ��&$���& *�HiM;{}����+�J�s�о��ϼ��ɺ}��m��oG��;È�ň�G;�Ȉu�ˈ�m�Έ�OʠZ�ӈ�0%��׈�oe�܈��PȘd,���!3SZahov}J!��눊�� $&%$"  '(��� "=fȳn9' ��݀�G蹈@!��׀� !ٙl�Ҁ�נl�΀�52ʀN̪H�ƀ�Mޮ9�€�!+��24��w�,;�>l��Q��g�v� W�7 ű�"컉P'(())('(&\��ޙ%���� 3^�ȘU��b֘* '���;��/#����ܔV��?$.��(t��c�'"��!!ΓrH����ۑ�i&�J 3���NA"�WɐU�א�0�P!�N�rH��T��� $!6� ��&/7""����dϣH��v�T��""�S +� Ɏ[��:N��#��u��!��T'��[4� S��u�'�""ȍ�ޝt�>j�t�1��!2�����Z�ya�+%�ء��"�V�#��q!�\���UO�V�!ɤ�%� U�$U�� ^6^�!%S��"5[4�'"'Q��% �'O� ܓ2� ��S|V/#��g'čR�#�W޾|V/!?'}��v�U޾t !7^�%�0��O� !7]�h ��L�!�7~�H�$���HY�! �q!΍ �ȏ$��$ȍ �},�$*�i��Mϊ��.�� ��eӆ��PN��1Ӄ����"�V��]v��;� ŏD �"�m���B#"��َ��1�lא�+S� \����ّ��ې P~��ɑ(�ђr��D ʒE 3��Q����aB ��Iהl�q��nߕ��&$���& *�HiM;{}����+�J�s�о��ϼ��ɺ}��m��oG��;À�ŀ�G;�Ȁu�ˀ�m�΀�OʠZ�Ӏ�0%��׀�oe�܀��PȘd,���!3SZahov}J!��뀊�t8mk��@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%Ef˵dN$��������������������������������������������������������������������������������������������������������1m۪l1������������������������������������������������������������������������������������������������jS������������������������������������������������������������������������������������������h^ �������������������������������������������������������������������������������������6-���������������������������������������������������������������������������������HI�����������������������������������������������������������������������������T=�������������������������������������������������������������������������)3��������������������������������������������������������������������� ������������������������������������������������������������������ME���������������������������������������������������������������������������������������������������������������������������5����������������������������������������������������������M`��������������������������������������������������������s����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a �����������������������������������������A㵘���������������������������������������&߬k6����������� A��������������������������������������w���������������������zI�������������������������������������G�������������������������U �����������������������������������= �������������������������������4�����������������������������������������������������������������������������������������������������j���������������������������������������X@�������������������������������-"������������������������������������������������������������������������������������������������������������������{�����������������������������L8�����������������������������������������������/%���������������������������?����������������������������������������������������������������������������bO��������������������������������������������������� S��������������������������a����������������������������������������������������� ������������������������Dv������������������������������������������������������� O��������������������������������������������������������������������������������������������������������)�����������������������������������������������������������4J����������������������������������������������������������������������������������b���������������������t��������������������������������������������������������������@��������������������B����������������������������#�����������������������������,��������������������;������������������������ F:�������������������������� �����������������������������������������~�����������������������c������������������B���������������������#����������������������_������������������}���������������������UW���������������������� �����������������H������������������� ��������������������.����������������������������������� ��������������������������������������������������������������������������C���������������B-������������������u������������������W���������������z������������������A�������������������������������������������������� ~������������������2���������������M�����������������w&����������������������������������������������� �����������������_�������������>�����������������km�����������������"�������������g�����������������������������������������������n���������������� E������������������������������vf����������������T�����������������g ������������}B��������������������������������<5������������>����������������|����������������]������������=���������������������������������������������<���������������������������������������������;����������������1=]����������������������������:������������������������=]Y:�����������o������������9����������������4���������������iϬ\<���F������������8��������������������������������8ѯ������������Z����������������X����������������4׸������������t��������������������������������1���&Ff������������H���������������������������������.�����������'Gg������������!�����������������s����������������+���������������������������������������������� ����������������,�������������������������������;�����������������m����������������O�������������������������������q����������������� "�����������������������������������������������������������������(�����������������w�������������������������������]&������������������\ �����������������I�������������������������������6�������������������F0�������������������������������������������������������������������)+������������������B���������������������������������D��������������������\���������������������������������������������������������������������������-k�����������������������������������������������������?����������������������������������������������������KU�������������������������������������������������������������������������������������$����������������������������������N��������������������������������������������������(����������������������������������W ������������������������������������������������������������������������������������������������������������������������������������Hu������������������������������������)����������������������������������������������������������������������������������#���������������������������������������������z�������������������������������������� �������������������������������������������QF��������������������������������������S�����������������������������������������8�����������������������������������������������������������������������������%����������������������������������������P�����������������������������������������������������������������������������������������������������������������)������������������������������������������HI���������������������������������kL������������������������������������������� ������������������������������������������������������������������������� F���������������������������G���������������������������������������������se ���������������������cy����������������������������������������������$����������������������������������������������������������������&ުh4�������%Y5�������������������������������������������������m��������������������������������������������������� ���������������������������������������������������J�����������������������������������������������������v�������������������������������������������������������/���������������������������������������������������������2����������������������������������������������������������2������������������������������������������������������������2 ��������������������������������������������������������������,����������������������������������������������������������������������������������������������������������������������������������d����������������������������������������������������������������������[-���������������������������������������������������������������������������������������������������������������������������������������������������Q@������������������������������������������������������������������������������ {~���������������������������������������������������������������������������������^��������������������������������������������������������������������������������������CN������������������������������������������������������������������������������������������, �����������������������������������������������������������������������������������������������RV�����������������������������������������������������������������������������������������������������8uyF��������������������������������������������������������������������������������������������������������������39?EKQW]c]1��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts�����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13737� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/auto_constants.pl�����������������������������������������������������������������000444��000765��000024�� 10051�11760240072� 17511� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; my $head_loc = `sdl-config --cflags`; $head_loc = ( split ' ', $head_loc )[0]; $head_loc =~ s/-I//; print "# Getting header constants from $head_loc\n"; my @header = <$head_loc/*.h>; my $is_enum = 0; my $is_comment = 0; my $enum_val = -1; my $line = ''; my @names = (); my @values = (); my $maxNameLen = 0; foreach (@header) { #print "\n# from $_:\n"; open( FH, $_ ) || die "Can not open file $_: $!"; while (<FH>) { $_ =~ s/\/\*.*\*\///g; $_ =~ s/\/\/.*$//g; $_ =~ s/^\s+//; $_ =~ s/\s+$//; #print $_; if ( $_ =~ /\/\*/ ) { $line .= $_; $line =~ s/\/\*.*//; $is_comment = 1; #print(__LINE__); } if ( $is_comment && $_ =~ /\*\// ) { $_ =~ s/.*\*\///; $line .= $_; #print "heureka$line"; $is_comment = 0; #print(__LINE__); next; } next if ( $is_comment && $_ !~ /\*\// ); # if we are inside an enum, and there is an linebreak in value if ( $is_enum && $line !~ /,\s*$/ && $_ !~ /,\s*$/ && $_ !~ /^\s*}\s+(\w+)\s*;\s*$/ && $line !~ /^typedef\s+enum\s*{\s*$/ ) { $line .= $_; #$line =~ s/\s+/ /g; next; } #elsif($is_enum && $line !~ /,\s*$/ && $_ =~ /,\s*$/ && $_ !~ /^\s*}\s+(\w+)\s*;\s*$/ && $line !~ /^typedef\s+enum\s*{\s*$/) elsif ($is_enum && $line !~ /,\s*$/ && $_ =~ /,\s*$/ && $line !~ /^typedef\s+enum\s*{\s*$/ ) { $line .= $_; #print(__LINE__); #make_constant($line); #$line =~ s/\s+/ /g; } elsif ( $is_enum && $line !~ /,\s*$/ && $_ =~ /^\s*}\s+(\w+)\s*;\s*$/ ) { #print(__LINE__); make_constant($line); #print(__LINE__); make_constant($_); $line = $_; #next; } # elsif($is_enum && $_ =~ /,\s*$/) # { # print(__LINE__); make_constant($_); # $line = $_; # } #else { #print(__LINE__); make_constant($line); $line = $_; } #make_constant($line); } close FH; } for ( my $i = 0; $i < $#names; $i++ ) { print("use constant {\n") unless $i; print("};\n\nuse constant {\n") if 'enum' eq $names[$i] && 'open' eq $values[$i]; print("}; # $values[$i]\n\nuse constant {\n") if 'enum' eq $names[$i] && 'open' ne $values[$i]; printf( "\t%-" . $maxNameLen . "s => %s,\n", $names[$i], $values[$i] ) if 'CRAP!' ne $values[$i] && 'enum' ne $names[$i]; print("};\n") if ( $i == $#names - 1 ); } sub make_constant { my $_line = shift; my $name = ''; my $value = ''; # found an enum if ( $_line =~ /^typedef\s+enum\s*{\s*$/ ) { $is_enum = 1; $enum_val = -1; push( @names, 'enum' ); push( @values, 'open' ); } # closed enum if ( $is_enum && $_line =~ /^\s*}\s+(\w+)\s*;\s*$/ ) { $is_enum = 0; push( @names, 'enum' ); push( @values, $1 ); } # inside an enum (without value) if ( $is_enum && $_line =~ /^\s*(\w+)\s*,{0,1}\s*$/ ) { $name = $1; $value = ++$enum_val; } # inside an enum (decimal) if ( $is_enum && $_line =~ /^\s*(\w+)\s*=\s*([+-]{0,1}\d+)\s*,{0,1}\s*$/i ) { $name = $1; $value = $2; $enum_val = $2; } # inside an enum (hex) if ( $is_enum && $_line =~ /^\s*(\w+)\s*=\s*(0x[\dA-F]+)\s*,{0,1}\s*$/i ) { $name = $1; $value = $2; } # inside an enum (function) if ( $is_enum && $_line =~ /^\s*(\w+)\s*=\s*([\w\(\)\|]+)\s*,{0,1}\s*$/i ) { $name = $1; $value = $2; } # pattern: "#define SDL_RELEASED 0" (decimal or hex or name) if ( $_line =~ /^#define\s+([^_]\w+)\s+([+-]{0,1}\d+|0x[\dA-F]+|[\w\(\)\|]+)\s*$/i ) { $name = $1; $value = $2; } if ( $name !~ /^(_.*||[a-z_]+)$/ && $value !~ /^(_.*||[a-z_]+)$/ ) { my $index = index_of( $name, @names ); if ( $index >= 0 && $name ne 'enum' ) { $values[$index] = 'CRAP!' if $value ne $values[$index]; } else { while ( $value =~ /(\w*)/g ) { my $index2 = index_of( $1, @names ); if ( $index2 >= 0 ) { $value =~ s/$1/$values[$index2]/; } } $maxNameLen = length($name) if $maxNameLen < length($name); push( @names, $name ); push( @values, $value ); } } } sub index_of { my $needle = shift; my @array = @_; for ( my $i = 0; $i <= $#array; $i++ ) { return $i if $needle eq $array[$i]; } return -1; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/const.pl��������������������������������������������������������������������������000444��000765��000024�� 7025�11760240072� 15562� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w # Since the sdl_const.pl and gl_const.pl scripts with 2.0-beta2 don't seem to # work at all, this script takes SDL/Constans.pm and OpenGL/Constants.pm (as # original from 2.0-beta2) and fixes them up, and moves them into ../lib/ # I already did this for 1.20.2, so you need to run this only if you intent # to rebuild the .pm files. # See http://Bloodgate.com/perl/sdl/sdl_perl.html use strict; ############################################################################## my $sdl = read_file('SDL/Constants.pm'); # remove 'main::' on subs $sdl =~ s/sub main::([\w]+)/sub $1/g; # turn on () on subs to make peep optimizer to inline them #$sdl =~ s/sub ([\w]+)\s+{/sub $1 () {/g; write_file( '../lib/SDL/Constants.pm', insert_export($sdl) ); undef $sdl; ############################################################################## my $gl = read_file('OpenGL/Constants.pm'); # remove 'main::' on subs $gl =~ s/sub main::([\w]+)/sub $1/g; # turn on () on subs to make peep optimizer to inline them #$gl =~ s/sub ([\w]+)\s+{/sub $1 () {/g; write_file( '../lib/SDL/OpenGL/Constants.pm', insert_export( $gl, grep_constants() ) ); 1; sub read_file { my $file = shift; print "Reading $file..."; my $FILE; open $FILE, $file or die("Cannot read $file: $!\n"); local $/; # slurp mode my $doc = <$FILE>; close $FILE; print "done.\n"; $doc; } sub write_file { my ( $file, $txt ) = @_; print "Writing $file..."; my $FILE; open $FILE, ">$file" or die("Cannot write $file: $!\n"); print $FILE $txt; close $FILE; print "done.\n"; } sub insert_export { my $txt = shift; my @sub = (); # gather all sub names $txt =~ s/sub ([\w]+)\s+/push @sub, $1; 'sub ' . $1 . ' '/eg; # if we got a second list of names, parse it and include anything that isn't # alreay in my $add = ""; if ( ref( $_[0] ) eq 'ARRAY' ) { my $const = shift; foreach my $c ( sort @$const ) { if ( grep ( /^$c->[0]$/, @sub ) == 0 ) { print "Adding $c->[0] $c->[1]\n"; $add .= "sub $c->[0] () { $c->[1] }\n"; push @sub, $c->[0]; } } $add .= "\n"; } # SDL/Constants.pm contains doubles :-( So filter them out. my @sorted = sort @sub; my $last; @sub = (); my @doubles; foreach my $cur (@sorted) { if ( defined $last && $last eq $cur ) { # double! push @doubles, $last; } else { push @sub, $last if defined $last; } $last = $cur; } foreach my $cur (@doubles) { $txt =~ s/\bsub $cur.*//g; # remove } my $export = "require Exporter;\nuse strict;\n"; $export .= "use vars qw/\$VERSION \@ISA \@EXPORT/;"; $export .= "\n\@ISA = qw/Exporter/;\n"; # this makes Exporter export the symbols from SDL::Constants to whatever # package used SDL::Constants (usually SDL::Event.pm) my $pack; if ( $txt =~ /SDL::Constants/ ) { $txt =~ s/SDL::Constants/SDL::Event/g; $pack = 'SDL::Event'; } if ( $txt =~ /SDL::OpenGL::Constants/ ) { $txt =~ s/SDL::OpenGL::Constants/SDL::OpenGL/g; $pack = 'SDL::OpenGL'; } $export .= "\nsub import { $pack\->export_to_level(1, \@_); }\n"; $export .= "\n\@EXPORT = qw/\n"; my $line = "\t"; foreach my $s ( sort @sub ) { if ( length($line) + length($s) > 70 ) { $export .= "$line\n"; $line = "\t"; } $line .= "$s "; } $export .= "$line /;\n"; # insert Exporter section $txt =~ s/sub/$export\n\n$add\nsub/; $txt; } sub grep_constants { # grep all the OpenGL constants from SDL and return them my $sdl_gl = read_file('/usr/include/GL/gl.h'); my @const = (); $sdl_gl =~ s/^#define (GL_.*?)\s+(0x[\da-fA-F]+)/push @const,[$1,$2];/egm; \@const; } END { print "\n"; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/gl_const.pl�����������������������������������������������������������������������000444��000765��000024�� 2125�11760240072� 16240� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # open XS, "< opengl_words.txt"; open CPP, "| cpp - > OpenGL.cx"; print CPP <<HEADER; #include <GL/gl.h> #include <GL/glu.h> --cut-- HEADER while (<XS>) { chomp(); print CPP "#$_ $_\n"; $words{$_} = 0; } close XS; close CPP; my $text; open FP, "< OpenGL.cx" or die "Couldn't open OpenGL.cx\n"; { local $/ = undef; $text = <FP>; } my ( $junk, $goodstuff ) = split "--cut--", $text; $goodstuff =~ s/#(GL[U]?_[A-Z0-9_]+)\s+([0-9xa-fA-F]+)/sub main::$1 { $2 }/g; for ( split "\n", $goodstuff ) { if (/sub main::(GL[U]?_[A-Z0-9_]+)/) { push @words, $1; } } for (@words) { $words{$_} = 1; } for ( keys %words ) { print STDERR "Failed to find word $_" unless ( $words{$_} ); } open OGL, "> ../lib/SDL/OpenGL/Constants.pm"; $words = join( " ", @words ); print OGL <<HERE; # SDL::OpenGL::Constants # # This is an autogenerate file, don't bother editing. # Names are read from a list in opengl_words.txt and written by gl_const.pl. # # Copyright (C) 2003 David J. Goehrig <dave\@sdlperl.org> package SDL::OpenGL::Constants; $goodstuff 1; HERE system("rm OpenGL.cx"); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/MultiThreadPOC.pl�����������������������������������������������������������������000444��000765��000024�� 1375�11760240073� 17223� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use Inline C => DATA => LIBS => `sdl-config --libs` => INC => `sdl-config --cflags`; my $fp = get_function_pointer(); print '[Perl] In perl we got :' . $fp . "\n"; print '[Perl] Making Thread.'; make_thread( get_function_pointer(), 'I AM THE OVERLOARD XENU!!!' ); __END__ __C__ #include <SDL.h> #include <SDL_thread.h> char DoIt(char* c){ int threadID = SDL_ThreadID(); printf("[C-Thread] we are in %d \n", &threadID); printf("[C-Thread] Called with %s \n", c); return c; } int get_function_pointer() { printf("[C] Function Pointer is at %d!\n", &DoIt); return PTR2IV(&DoIt); } int make_thread(IV pointer, char* c) { void * fp = INT2PTR( void *, pointer); void * data = c; SDL_CreateThread( fp, data ); printf("[C] Created thread: \n"); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/sdl_const.pl����������������������������������������������������������������������000444��000765��000024�� 4001�11760240073� 16414� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl # open XS, "< sdl_words.txt" or die "could not open sdl_words.txt\n"; open CPP, "| cpp `sdl-config --cflags` - > SDL.cx" or die "Could not pipe to cpp, $!\n"; print CPP <<HEADER; #include <SDL.h> #define TEXT_SOLID 1 #define TEXT_SHADED 2 #define TEXT_BLENDED 4 #define UTF8_SOLID 8 #define UTF8_SHADED 16 #define UTF8_BLENDED 32 #define UNICODE_SOLID 64 #define UNICODE_SHADED 128 #define UNICODE_BLENDED 256 --cut-- HEADER while (<XS>) { chomp(); print CPP "#$_ $_\n"; $words{$_} = 0; } close XS; close CPP; # # ENUMS AREN'T CPPed we got to do this the hard way # open FP, "> sdl_const.c" or die "Could not write to sdl__const.c\n"; print FP <<HERE; #include <SDL.h> #include <SDL_image.h> #include <SDL_mixer.h> #include <SDL_ttf.h> #include <SDL_net.h> #include <smpeg/smpeg.h> #define TEXT_SOLID 1 #define TEXT_SHADED 2 #define TEXT_BLENDED 4 #define UTF8_SOLID 8 #define UTF8_SHADED 16 #define UTF8_BLENDED 32 #define UNICODE_SOLID 64 #define UNICODE_SHADED 128 #define UNICODE_BLENDED 256 int main ( int argc, char **argv ) { HERE for ( grep { $words{$_} == 0 } keys %words ) { print FP <<THERE; fprintf(stdout,"sub main::$_ { \%i }\n", $_); THERE } print FP <<HERE; } HERE system("gcc `sdl-config --cflags --libs` -o sdl_const sdl_const.c"); my $enums; open ENUMS, "./sdl_const |"; { local $/ = undef; $enums = <ENUMS>; } close ENUMS; $goodstuff .= "\n$enums"; for ( split "\n", $goodstuff ) { if (/sub\s+main::([A-Za-z0-9_]+)/) { $words{$1} = 1; } } for ( keys %words ) { print STDERR "Failed to find $_\n" unless $words{$_}; } (@words) = grep { $words{$_} == 1 } keys %words; $words = join( " ", @words ); open CONST, "> ../lib/SDL/Constants.pm"; print CONST <<HERE; # SDL::Constants # # This is an automatically generated file, don't bother editing. # Names are read from a list in sdl_words.txt and written by sdl_const.pl. # # Copyright (C) 2003 David J. Goehrig <dave\@sdlperl.org> # package SDL::Constants; $goodstuff 1; HERE system("rm -f SDL.cx sdl_const sdl_const.c"); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/sdl_module_maker.pl���������������������������������������������������������������000444��000765��000024�� 165�11760240072� 17720� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use lib 'lib'; use Module::Build::SDL; Module::Build::SDL::generate_sdl_module( @ARGV ); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/scripts/SDLpp.pl��������������������������������������������������������������������������000444��000765��000024�� 12256�11760240073� 15441� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� =pod =head1 NAME SDLpp - Package your SDL games =head1 SETUP cpan Alien::SDL SDL cpan Module::ScanDeps version 0.97 needed cpan PAR::Packer version 1.004 needed pip http://strawberryperl.com/package/kmx/perl-modules-patched/PAR-1.000_patched.tar.gz =head1 USAGE perl SDLpp.pl --output=a.exe --input=script.pl --nclude=./lib --more=Foo::Bar,Bar::Foo =head1 AUTHOR kthakore =cut use strict; use warnings; use SDL; use Alien::SDL; use Getopt::Long; use File::Spec; use File::Find qw/finddepth/; use Data::Dumper; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); #Checking if we have the pp installed die 'Need PAR::Packer' if !( eval ' use PAR::Packer; 1' ); #Default out put is a or a.exe for windows my $output = 'a'; $output .= '.exe' if $^O =~ /win32/ig; my $libs = 'SDL,SDL-1.2,SDLmain'; my $input; my $Include = ''; my $extra = ''; my $result = GetOptions( "output=s" => \$output, "libs=s" => \$libs, "input=s" => \$input, "nclude=s" => \$Include, "more=s" => \$extra, "help" => sub { usage() }, ); $extra = '-M ' . $extra if $extra; $extra =~ s/,/ \-M /g; my @sdl_libs = split ',', $libs; sub usage { print " perl SDLpp.pl --output=a.exe --libs=SDL,SDL_main,SDL_gfx --input=script.pl --nclude=./lib --more=Foo::Bar,Bar::Foo \n" . " if --libs is not define only SDL,SDL-1.2,SDLmain libs are packaged \n"; exit; } if ( !$input ) { warn 'Input needs to be specified.'; usage; } print "BUILDING PAR \n"; my $exclude_modules = '-X Alien::SDL::ConfigData -X SDL::ConfigData'; my $include_modules = '-M ExtUtils::CBuilder::Base -M Data::Dumper -M SDL -M Alien::SDL'; $include_modules .= " $extra" if $extra; my $out_par = $output . '.par'; my $par_cmd = "pp -B $exclude_modules $include_modules"; $par_cmd .= " -I $Include" if $Include; $par_cmd .= " -p -o $out_par $input"; print "\t $par_cmd \n"; `$par_cmd` if !-e $out_par; print "PAR: $out_par\n" if -e $out_par; print "SEARCHING FOR ConfigData files \n"; my $lib; my $AS_path; my $SD_path; finddepth( \&wanted, @INC ); sub wanted { if ( $_ =~ /ConfigData/ ) { $AS_path = $File::Find::name if $File::Find::name =~ 'Alien/SDL/ConfigData.pm'; $SD_path = $File::Find::name if $File::Find::name =~ 'SDL/ConfigData.pm' && $File::Find::name !~ 'Alien/SDL/ConfigData.pm'; $lib = $File::Find::dir if ( $AS_path && $SD_path ); } } die "Cannot find lib/SDL/ConfigData.pm or lib/Alien/SDL/ConfigData.pm \n" if ( !$AS_path || !$SD_path ); print "Found ConfigData files in $lib \n"; print "READING PAR FILE \n"; my $par_file = Archive::Zip->new(); unless ( $par_file->read($out_par) == AZ_OK ) { die 'read error on ' . $out_par; } $par_file->addFile( $AS_path, 'lib/Alien/SDL/ConfigData.pm' ); $par_file->addFile( $SD_path, 'lib/SDL/ConfigData.pm' ); my $share = Alien::SDL::ConfigData->config('share_subdir'); my @shares = $par_file->membersMatching($share); my $alien_sdl_auto = $shares[0]->fileName; $alien_sdl_auto =~ s/$share(\S+)// if $alien_sdl_auto; my @auto_folder = $par_file->membersMatching("$alien_sdl_auto(?!$share)"); my @sdl_not_runtime = $par_file->membersMatching( $share . '/include' ); #TODO remove extra fluff in share_dri push @sdl_not_runtime, @auto_folder; #remove non share dir stuff push @sdl_not_runtime, $par_file->membersMatching( $share . '/etc' ); push @sdl_not_runtime, $par_file->membersMatching( $share . '/share' ); push @sdl_not_runtime, $par_file->membersMatching( $share . '/lib' ) if $^O =~ /win32/ig; my @non = (); my @sdl_libs_to_keep = (); foreach (@sdl_libs) { if ( $^O =~ /win32/ig ) { @non = $par_file->membersMatching( $share . "/bin(\\S+)" ); #push @sdl_not_runtime ,$par_file->membersMatching( $share."/bin(\\S+)(?!$_)" ) } else { @non = $par_file->membersMatching( $share . "/lib(\\S+)" ); } print "Removing non $_ shared objs \n"; my $lib_look = 'lib' . $_; map { my $n = $_->fileName; if ( $n =~ /$lib_look\.(so|a|dll|dylib)/ ) { push( @sdl_libs_to_keep, $_ ); } } @non; } print "found $#sdl_libs_to_keep sdl libs to keep \n"; my $regex_search = ']'; map { print "\t " . $_->fileName . "\n"; $regex_search .= ']' . $_->fileName } @sdl_libs_to_keep; $regex_search =~ s/\]\]//g; $regex_search =~ s/\]/\|/g; $regex_search = '(' . $regex_search . ')'; map { my $n = $_->fileName; my $star = ' '; if ( $n !~ $regex_search ) { push @sdl_not_runtime, $_; } } @non; push @sdl_not_runtime, $par_file->membersMatching( $share . '/bin' ) unless $^O =~ /win32/ig; print "REMOVING NON RUNTIME $#sdl_not_runtime files from \n"; open( my $FH, '>', 'DeleteRecords.txt' ) or die $!; foreach (@sdl_not_runtime) { if ( $_->fileName eq $alien_sdl_auto . $share ) { print $FH "Not deleting " . $_->fileName . " \n"; } else { $par_file->removeMember($_); print $FH $_->fileName . "\n"; } } close $FH; my @config_members = $par_file->membersMatching('ConfigData.pm'); foreach (@config_members) { $_->desiredCompressionLevel(1); $_->unixFileAttributes(0644); } unlink $out_par . '2'; unless ( $par_file->writeToFileNamed( $out_par . '2' ) == AZ_OK ) { die 'write error'; } $par_cmd = "pp -o $output " . $out_par . "2"; `$par_cmd`; print "MADE $output \n" if -e $output; unlink $out_par . '2'; unlink $out_par; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/share�������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 13351� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/share/GenBasR.ttf�������������������������������������������������������������������������000444��000765��000024�� 1015370�11760240072� 15575� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`Feat$x����GDEFٷ��l��8GPOS/ ����=`GSUB��A��Glat3.�8��LLGloc3���FOS/2g��G���`Silfas��..Sill����$cmap>t��Gx��Tcvt G��W���fpgmY7��W��sgasp����Y\���glyfcd��Yl�head--�*,���6hhea g�*d���$hmtx:h�*�� plocaOhH�6��:maxp?N�=4��� namea>i�=T��Apost~�S>�~\��gprepǸ����r���� �����#�������$�=��D�]��b���������������������������������������J�L]�__�ac�e������5�7������� ������*�*�"���(��������%�$�&����'�� ����#��   �  �  ���!�� ������ �)� ��� ������������ ����� �&�D�latn�� �IPA � �������mark�mkmk�������������� �"9<������ ���F������ N�)*�� ��+�� �� �� �� �� � �� �� �� � �� �� �� �� �� �� � �� �� � �� �� �� �� �� �� �� �� �� �� �� �� � �� �� �� �� �� �� �� �� �� �� 2 D J P V \ b h n h t z t       " ( J P V \ D J P V \ . 4 : @ F L R X ^ X d j p p p v |  4 : @ F � $*  4 : @ F06<BHN D J P V \TZ Z`fl lr j p p p v 4 : @ Fx ~   L V J P V \  06<BH 4 : @ F z & ,6<BH2$* 8>DJPV  \bhbn Dtt V \zt P V \ v  : @ F  X ^ X d  d ( J P V \  X ^ X d $$" 4 : @ F . 4 : @ F(  .444:  4 : @ F  @FFFLRXXX^djpvp|pvp|dpvp . 4 : @ F$*  X ^ X d $*    � �   $* *06<<<BHNNNTZ J P V \`flrx~  flrx  � b n t J P V \ 4 : @ F D J P V \x $*  $*  4 : @ F J P V \$* : 4 : @ F Zt P V \ 4 : @ F&  flf pvp&  � $* ,flrx J P V \ . 4 : @ F,flrx $* ~ |2 4 : @ FH888>HNNN>D J2 4 : @ F PVVV \& \ bhntzZtt V \ L   4 : @ F j v$*  �  D J P V \ dN & $*    $*  J P V \    dpvp  ^  4 : @ F  4 : @ F   06<BH"(.4:@F@L x   �R  $* Xhntz^ dV jpppv bhntz|  ^2 4 : @ F 4 : @ Fbhntzhntz  � 4 : @ F n t 4 : @ F  � J P V \ D J P V \2 4 : @ F,flrx 4 : @ F   �$* 06<BHNNNT$* ( R D J P V \   b h n h t$$$ `flrx . 4 : @ F  * & (  J P V \   J P V \(  444: * �   $*  D J P V \N  : @ F D J P V \(   �$***0 4 : @ F 2 4 : @ F 2 : @ F&  J P V \6<<<B H � 4 : @ FN X ^ X dV $* TZZ`  4 : @ Ffl2$* |rxZ Z` 4 : @ F~6<BH�O�������0���������� �����������T������ � �!�!�H���\����,�,�������X�/Z�/�s� Z� ��������������1�1���W�W���������Z������Z��f�+Z��/�T����������������:�Z�O� �4���)�W�Z��������2�Z��������g�g�I������~�D��E�}�Z��}��A�A�u���j��Z��� Z� ���������3���1���� �Z��� ��V�;�W*� D�g����������� �"Z�"�'���h�������!�WZ�W� � �Z��l����f�H�J�������q*�=�Z�����WR�����JZ�J�q�~Z�~�L�fZ�f�f�H���&Z�&�����&�vZ�v���6Z�6�b��Z��������D���*���C�C�x���m�NZ�d��Z��(�\Z�\��Z������O���+������?�������?Z�?�W���P�Z������*����������� �������W�\�� �Z�Z��!�'�'�'���Y���b���W�Z�����;�&���� �� ����������� �O��Z��������G���*�\(�\�\���� �'Z�Z��Z���A�'��N���������j�Z�\������� :������b���3���;�;�-�-�����]Z�]������+�AT����6�T�gZ���� ��+�� �� �� �� �� � �� �� �� � �� �� �� �� �� �� � �� �� � �� �� �� �� �� �� �� �� �� �� �� �� � �� �� �� ��� �� �� �� �� �� �� 4 X ^ d j p v | | | �       $ * 0 0 0 6 < B H B N T Z ` f l r x x x  ~ Z ` f l | | ^ d j p   &,2888>DJPJV � \bbb T Z Z Zh ^ d j p vnnn tzDJPJV     ^ d j p Z ` f l " ^ d j p(..4:@ ` f lF LR X 0 0 0 6 ^ d j pF ^dddjpvvv|     �  6 Z ` f l ^ d j p ��  F X ^ d j p ^ d j p 0 0 0 6$ *06< v | | |B   HNTTT| �  Z ^ d j p Z ` f l`fffl T Z ` f lrxxx> X ^ ^ ^H~ | |       0 0 0 6 X ^ ^ ^H  ~ v &,   vn n (..4JPJV | |   0 0 0 6 l& Z ` f l �  0 0 0 6" ^ d j p T Z Z ZhNTTT|,228>D 6 ^ d j pJPVP\b h ntzz4    X ^ d j p ` fl  �    ^ d j p    JJV H N* Z ` f l 6"JJV 0 0 0 6(..4::: ,228@�l" ^ d j p H N FFFHJJV T Z Z Zh  X ^ ^ ^HLRRRX � ^dVd\jpppv  JPVP\ X ^ d j p| zzz4   Z ` f l    H    DJPJVPV^dddj Z ` f l bhn X ^ d j p tzz4  Z ` f l  8 �   4:::  vnnn  8rxxx>(..  � ~hn d j pRRR H 0 0 0 6$ < B H B N*060< BHNT < Z ` f lZ  � 0 Z Z Zh`f:@@@hlV(<r ^ d j pxppp 6*060<~228 Z ` f l`66f  X ^ ^ ^H  " ^ d j p    PV : Z Z Zh FFF ^ d j p ~hn    �  ,228 X ^ d j p  x 6 xxx> lV   d j p    F   ^dVd\ l v,   ^ ^ ^Hrxxx>66f$ ~   0 0 0 6 vn n *060< 66frxxx>JJV    | | *060<(.. �O�������0���������� ��g�g�I������~�Z�����������2�'�'�'���Y���b�������Q�Q&������+��/�\Z�\�k����\(�\�\����!�!�H���\����Z��Z������!��3���1�Z���g�����?������L������O���+�����b���3�]Z�]��A�A�u���j�Z�������������Z�����}�����������+�\��{Z�{��C�C�x���m�7�7�`��g*�T����!�!�� � �Z�v�v��/Z�/�s�+Z�Z��(�\�x���������Z���!Z�g�D�������C�C�N�d���Z������'��/�/����=�]�]�U�U��NZ�d�Z������Z���Z����4��AZ��� ������q*�!���;���"Z�"�'���h��������-�-��G�G��+�+�*�(Z�(�'Z�'��G�F�Z����A����\�\�Z���A�����+�\�8Y�8�o�"�"����������'��A�A���z�����!��Z�����&�&�?�gZ�g� ����l���� � �T���B�+���AT����'�h�h&�Z�8Z�8��Z�����]�-���Z�������*�*�"���(��������%�$�&����'�� ����#��   �  �  ���!�� ������ �)� ��1�����������������������Z���+������$�$/�%�%��&�&�]�'�'�X�(�(�o�)�)��*�*�?�+�+��,�,��-�-�T�.�.�l�/�/�|�0�0��1�1��2�20�3�3��4�4��5�5��6�6�J�7�7�7�8�8��9�9��:�:!�;�;�_�<�<�n�=�=��D�D� �E�E�u�F�F�b�G�G��H�H��I�I.�J�J��K�K+�L�L��M�M�9�N�N��O�O��P�P�i�Q�Q��R�R��S�S�I�T�T�U�U(�V�V��W�W��X�X��Y�Y��Z�Z�Y�[�[��\�\�O�]�]�(�b�b��c�c�x�d�d�V�e�e�f�f�'�g�g��h�h�h�i�i��j�j�k�k�k��l�l�6�m�m�$�n�n�f�o�o�D�p�p�a�q�q��r�r��s�s��t�t��u�u��v�v�s�w�w��x�x�#�y�y��z�z��{�{�r�|�|�}�}�~�~�j���������<��� ���������m��-���������y���d�����������c����� �����������������z������������������2������-�����#������p�������������������������{�����"��������������M���������������q�����������N������*��"�����1��S�  �5  �  &  �0  �G�@�C��,���&�>��R�����Q�  �!!�""##*$$�L%%�&&�''�((�/))�!**�`++�,,--�..$//�00�11� 22�K33�44�=55�.66�77�88�9:�;;�;<<�==� >>�U??�B@@%AA�BB�HCC�DD�4EE�FF�[GG�WHH�II�JJ�ALL�MM�NN�OO�PPP�QQ RRSS)TTUUVV�WW�XX�\YYZZ�[[�v\\�]]�e__'aa�bb�cc�ee ff�~gg�hh ii�jj,kk�3ll�}mm�nn�oo�pp�qq�rr�ss�tt�uu�)vv ww�xx�yy�wzz{{||�:}}�~~���� � �F����8����E��t���g����%�^� 1�2�)�1��-����w��&"�!��H���N��������k����G���|�h�,��B�[��X��+ ����V��{����`�$���(�A�L�v�5���i� ���)�0�W�l�(�g���J���%���?�c�����Z�Y �1�m��  �9    �  �  ���/��\���+����t�y��>  !!�""�##�$$�%%�&&�''�&((�2))�P*+�D,,��--�..�//�K0011�U22�33�^44�55�77�o8899�R::�;;�<<� == >>�}??�@@�AA�BBCC�DD�*EE�sFF�#GG�HH2II�JJ�!KK�LL�MM�INN�@OO�PPQQRR�SS�TT�UU�VV�WW�XX�YY�ZZ[[�"\\�d]]�^^�__�``� aa�bb�ccdd�zee�ff�gg�Qhh�=ii�Sjj�kk� ll�'mm�nn�oo�pp�qq�prr�ss�-tt�uu�vv�uww�xx�yy�zz�{{�||�q}}~~����*��f���3���M��:��b�;�x ���a�.��3�C�%� ,�T��j��4���� '�r�F�n�0��]��~�8�$.��� ��_ �������6��7�O�����e�<��/�����~�� ��&���������������������������������������������������������������������������������������� ����������������������#�~�����������������������������������O������� ��O��Z����Z��OZ�����Z� Z�Z��Z���&�%����#�������� ��!���"�����  �  �   � ���� ������ �$� ���#�"���� ���������������  �  �   � ���� ������ �!� �������(�(�� ���������� � ����������� �J�z�cyrl�latn������������IPA �VIT ��������������aalt�ccmp�ccmp�$���������������������0TpPb���������������b�� ��&�6�H������������������������������������������ ��&�6�H�������������������������������������������L�M����� ������������ �������� ����L�M�����������������������&�D�b�l�v��������� ����J�J��d�����C�C��o���C���C���J���J�����p�p�o���p���p�������������������0���u�������&�&���(�(� �2�2� �8�8��F�F��H�H��R�R� �X�X��d�d��o�o�??�FF�ff�oo�}}� � ������N�� �,�� ��������� ����������������F� �')u�y�^+bw%d!��{���`�� ������� �������������������� �  �$$�&&�((�**�]]� __�aa�cc�tt�vv�xx� zz������ ������������ ������������f�0��     EM�   ���D�D�"�J�J�(�i�n����������� ��� ��� ������������DD�LL���!�#�$�%�&�'�)�*�,�.�/������XX��XX���d��������@� J��������SIL �@� ��D ��������� ����������������4� ������t�~!%-3:DHU]adq~37=BEKQTWY[cikru #(1?_';Io     " & 0 : D !"!&"""""""+"H"`"e%%,b1Bj��� �$(09AGJX`dht&7=ADJQSVY[chkru�#'1?^.>Lx     & 0 9 D !"!&"""""""+"H"`"d%%,`0Bj����������������������������������T���������������������������������1��hw����8�:�"������+�������� ����������������������xjyޖ��ދ����tq_/0����TO����������n������ �� 2������������:��>BDF��Frxz|��������������������������������������������������V����FJN����������������B��BD��������������8<��������:<>@B������@�����������������������������b�c��d��e������Y�f�����g�����h<��j�i�k�m�l�n��o�q�p�r�s�u�t�v�wT�x�z�y�{�}�|����~��9�.�#�F?G@IBHAUZQi}fl~g�&!��GAHBVMXOYPik}gq|f�.0?u-�"~hpmonq/�1�62�5/0�o) $* + @>:DSRt{��������;7=9<8JCVNXPWOkjp#%(':7;8ICKELFJD[R\SWNZQ]Tc_ead`jl^4�3��� ��"�$�&�*�(�,�nmht]v_zcxa|e- ,  �12435srvwyxz��������������>@��� ������t�~!%-3:DHU]adq~37=BEKQTWY[cikru #(1?_';Io     " & 0 : D !"!&"""""""+"H"`"e%%,b1Bj��� �$(09AGJX`dht&7=ADJQSVY[chkru�#'1?^.>Lx     & 0 9 D !"!&"""""""+"H"`"d%%,`0Bj����������������������������������T���������������������������������1��hw����8�:�"������+�������� ����������������������xjyޖ��ދ����tq_/0����TO����������n������ �� 2������������:��>BDF��Frxz|��������������������������������������������������V����FJN����������������B��BD��������������8<��������:<>@B������@�����������������������������b�c��d��e������Y�f�����g�����h<��j�i�k�m�l�n��o�q�p�r�s�u�t�v�wT�x�z�y�{�}�|����~��9�.�#�F?G@IBHAUZQi}fl~g�&!��GAHBVMXOYPik}gq|f�.0?u-�"~hpmonq/�1�62�5/0�o) $* + @>:DSRt{��������;7=9<8JCVNXPWOkjp#%(':7;8ICKELFJD[R\SWNZQ]Tc_ead`jl^4�3��� ��"�$�&�*�(�,�nmht]v_zcxa|e- ,  �12435srvwyxz��������������>@���*�+�P�n���� ���9����,K� PXY�D� �_^-�, EiD`-�,�*!-�, F%FRX#Y Id F had%F hadRX#eY/ �SXi �TX!@Yi �TX!@eYY:-�, F%FRX#Y F jad%F jadRX#Y/-�,K &PXQXD@DY!! EPXD!YY-�, EiD` E}iD`-�,�*-�,K &SX@�Y &SX#!#Y &SX#!�#Y &SX#!�#Y &SX#!@#Y �&SX%EPX#!#!%E#!#!Y!YD-� ,KSXED!!Y-�����������d�����H�/� /�ܸ�ܸ��и�/����EX�/��>Y����+����017!!'!!L2P22�����O�����+A�������&���6���F���V���f���v������ ]A�������]��/� ��+01%#"&5466632''667%36.&321@/&T"+{#;,:6";-;+��-� ���� /�/�/�/01#66667#666675 5 *-( +< 5 ).) +Be e �����W� ��7���/�/��EX�//�/� >Y��EX�6/�6� >Y��EX�/�� >Y��EX�*/�*� >Y��EX�1/�1� >Y� ���+� ��и����и� и� и��и��и� �#и� �%и�&013#%3#3#'#'#'6673#'66736673667IMIW0]W.] IS,YS-N�s3�3 H H2�1" " �����XR^h� ��W�����1�+�M���+�R�� �+A�������&���6���F���V���f���v������ ]A�������]A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�M�и�M�и��и��+и��6и�M�=и�R�Y��/�</���<9���<9�L��<9014&&&'6666'5&&&&'&&467&&&&546667566667'&&' 8L+:O1 8K*(J9"  0RNN,+0[>w_:!N_ .WL<" '(T*>z`<+VT&9.%`,7k/H7*C#7IX  '9KOgk 2GdJ*aU@  !%+* .8 8QoO<|jN ���L9��'�3�G�[Ļ�>��R�+�H��4�+� ���+�����+A�������]A� ������)���9���I���Y���i���y������ ]A�����]A� ����)��9��I��Y��i��y���� ]A��>��>�&�>�6�>�F�>�V�>�f�>�v�>��>� ]A��>��>�]A��H��H�&�H�6�H�F�H�V�H�f�H�v�H��H� ]A��H��H�]��]��2/�W/�/�-/�#��M�+�M�и�/���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�W�9��#�Cи�C/014&&&#"326667#"&&&5466632'6674&&&#"326667#"&&&5466632*6+"'6 ,"0Pk::bF(1Qj9<bF&- #(' XJ+*6+#'7 -"0Qk;;aG'0Qj:<bG'!FhE!:W;HjE"<YOE{]66]{EE{\55[{ #!GhD!:W;HjE"<YOE{]66]{EE{[65\z����PB��#�rԻ���H�+����P�+�Z���+�1��h�+A�������&���6���F���V���f���v������ ]A�������]A�����]A� ����)��9��I��Y��i��y���� ]A�����&��6��F��V��f��v���� ]A�����]A��h��h�]A� �h��h�)�h�9�h�I�h�Y�h�i�h�y�h��h� ]�,�h�19�1�t���EX�=/�=�>Y��EX�C/�C�>Y�U�� �+�q��m�+�C��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�m�,и�,/01666654&&&#"267&&&&'&&&&'7#"&'#"&&&546667&&54666326654&&&#'667!"DV1#5#$6$TU92je]%3F+0Pgi1./, >9E:&X: WwnHNm]n=(LpH"6Zu?@W5w"#Wag3 !-: +j:B'LJF!#>/%<M6-4yH,RQQ*FlI&)  $+GKB. +&%PEBS1`^8trn3GBQe9)DY0iJ  A~v42f-*J7  ���-`� � �� /�/01#666675 5 *-( +Be ����yb@��K����+A�����&��6��F��V��f��v���� ]A�����]�� /��/01&&&5467Bqs:Axg AtW3*RvM4&26-6栒?����)@��K���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��/�/01'66654&&'7Bxg@tX3*QwMqt:6-6>-3���FN�+�G��/�*/����*9���*9� ��*9���*9���*9�$��*901%%'&&&&''%%666677666679-%&  '* F#'  $$)D `+   F ����=� ��?�����+�� и�����/�/� ���+� �и��01%'!'667!667!!0 2 .1����X���G���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��/01%'666654&'6666:S4-' :@ :EC0!F'bfa'# <@G+,4/ O�=u:�����q���K�����+A�������&���6���F���V���f���v������ ]A�������]�� ��+01%#"&5466632q%36.&321{#;,:6";-;���1@� � �� /�/01'667 $# %B% E��Lu��'+�(/�)/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�(�и�/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���EX�/��>Y�#���+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q014&&&#"326667#"&&&5466632+H^33R9(E_84R9=o__a1>o__a15ЋG7s}ҍH7uee恁ed�����H��"����+��/��EX��/���>Y0135666654&'&&'66667Nh> ">^B*svj!%8aK5  (, 3 *11#  5��b��D�3��#�� �+�#��и��/A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�#�3и�3/�#�5���EX��/���>Y����+���*�01!!'66666654&&&#"'466632!26667675Jw~R00M6)E1!FtM<iN-7W|g 2Jԣ{aO&.Q<"(=K#  4q^="EkI-Zi|x '2 ���D9�F$�G/�%и�%/��ܸ�%�A�������]A�0��]A�p��]A�P��]A������]A���]A���]�����=��%�=����H���EX�/��>Y�8��*�+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01#"&&&'73266654&&&##"'666654&&&#"'46663296jg'RUW-"-KCB&=dH'/I[, \n;-D0(?*">+>hLKkF!7O19cH*}TpA#9+C", 'Hg@KiB<BGG"I<&0>"*_P50Oc3&JD:7Um����7��j���^�����+��и���и��!��/��EX�/��>Y����+����9��и��01!#!5666655!'6673It!#F 6)AR.!*B%{   ++  !&#�����ND�>������+A�����]A� ����)��9��I��Y��i��y���� ]��)/�+/��EX�/��>Y�&��1�+�:���+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�7��:901#"&'73266654&&&#"'6666667!26767!6632D5e^]W#5WJ>Aa@ !CgF6;;/ ,  } (l3[^1WzHDQC%- 2Sk9DpO, !$_joi^##  [_T =f��nq��2I�3/�4/�3�и�/��A�����&��6��F��V��f��v���� ]A�����]�4�ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��)и�)/��#/��EX�/��>Y�.����+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�)��#901"3266654&&&#"&&&546676666323{8'Hf>6G+-DQX+?Sh=Rl>QvQ#IE>Q~W.9Cwr73Oa.^yF/fbXC(IqЏ;mY". 2]�����hu�����EX� /� �>Y����+01'667!"'66667!u.^YRE8#M2)Wvj7:#. lʲ5$ !<:FIE�����^c��%�M���0�+�D���+A�����]A� ����)��9��I��Y��i��y���� ]���D9�/A�����]A� ����)��9��I��Y��i��y���� ]A�����&��6��F��V��f��v���� ]A�����]�&��5�0�&9��:��I�0�&9�&�O���EX�+/�+�>Y�?�� �+�+�!�A!��!��!�'�!�7�!�G�!�W�!�g�!�w�!��!��!��!��!��!��!��!��!�]A��!��!�'�!�7�!�G�!�W�!�g�!�qA�v�!��!�q016654&&&#"4&&&'326667#"&&&546667&&&&5466632+H]2I=8P1-B+/Lb40D+"@[97O2BrUV\/%Ea<+M:"7`KKuQ*6K,2\F*,A3+5j64M2"7D]B^D2#CFN-4ZB%*DUWNi=4Xq>6e[P!0@S8EvU0(Fb:*KE@;Ph����df��2��3/�4/�ܹ��A�����]A� ����)��9��I��Y��i��y���� ]�3�'и�'/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��и�/��/�.���+����"�+01267&&&&#"%'66667#"&&&546666632Eu*/FU(3P7-DQR�E @EI"P}W.3IZj;Ff=+M>}e*)Ie;\uCɇ;!le1"5^K2ibV@%:{����q�"��������X�"���������=�F����/�/���901%'465747776677777F d7B       ���=cF� ���� ���+��� �+01!'667!!'667!F- - -+0.����=�F����/�/� ��901'66667%%'667F /'+q;  ' ��P&�/�?����&�+�0��8�+�����+A��0��0�&�0�6�0�F�0�V�0�f�0�v�0��0� ]A��0��0�]� �8�09� /��A�����]A� ����)��9��I��Y��i��y���� ]��=�5�+�+���+01''&6666654&#"'&55466632#"&5466632&/HTK6(@MB,qi$A2 F-EuTIrM(%36.&321Kxh_erG`t9qmkfc0|!6H'FxX1.St#;,:6";-;��F/5��uK�S��j�+���)�+�>����+���G�+A�����&��6��F��V��f��v���� ]A�����]���и�/A��G��G�]A� �G��G�)�G�9�G�I�G�Y�G�i�G�y�G��G� ]A��S��S�&�S�6�S�F�S�V�S�f�S�v�S��S� ]A��S��S�]�_�j�9��w���EX�0/�0� >Y��EX�8/�8� >Y��EX�/��>Y��EX�$/�$�>Y�Z��e�+�q��L�+�0��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�$� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q���09�B01&&#"326667#"&&&'#"&&&5466666326673266654&&#"326667#"$&546666632D<7[B$)?L#$*6&9'CW^`+,$)?<>(3iT64L_rA&%*6  <0B;)VfsP*3[ZTk$slt=pu^8?/^^Ub5 ":-+WfG&.I49J,Azo9zrfM,$-!J*JZV?mT]4]Zyѭ]0#4<7&TF.v7quBe�����%���@���EX�/�� >Y��EX�/��>Y��EX�/��>Y����+01!5667667!566'o JR`DP tD. ZN< rZ ++ f)J ++!N���) ��#�K ���5�+�D�� �+��A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�� �D9�/A�����]A� ����)��9��I��Y��i��y���� ]�$��G�5�$9�M���EX�?/�?� >Y��EX�)/�)�>Y��EX�./�.�>Y��EX�0/�0�>Y����+�?���A�y������qA!�������(���8���H���X���h���x���������������������������]A�������(���8���H���X���h���q�и�/�)��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q��Gи�G/01"3266654&&&"3266654&&&#"&&&'&'#5665'666632"rN!N 0Q$ ,..HtS,'Q}Cye=FJ#S[IDM&I" 'grv6dq=fX@nQ.!-FX+2V?$ %B]87t`=U`4+!> >  %Fd?l" Ba{���F �._�"�� �+A��"��"�&�"�6�"�F�"�V�"�f�"�v�"��"� ]A��"��"�]���EX�/�� >Y��EX�/��>Y���A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q��'�A!��'��'�'�'�7�'�G�'�W�'�g�'�w�'��'��'��'��'��'��'��'��'�]A��'��'�'�'�7�'�G�'�W�'�g�'�qA�v�'��'�q01%#"&&&546632'&&#"3267@umi4]Wa{l4# #3["QRL;#MyG6n D]8T呠d:*&& /<6W|hȅCJ\  ��)��c ��,�-/�./�-�и�/���и�/�.�ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]���EX�(/�(� >Y��EX�/��>Y�(���A�y������qA!�������(���8���H���X���h���x���������������������������]A�������(���8���H���X���h���q�и�/���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01"3266654&&&#!5665'66663220 PNEzNB&3Vq~;DM(H! ,s;UCЍӓN}ŗiC+!< >  S��2���5�U�*���+�*����EX� /� � >Y��EX�/��>Y���)�+� ����/�01%!56654&'5!#&&&&#!!&&&&##3326667DMIH&! -  #-=*,PB.A2)V+! $+>>8.>%M  #D;����2���*�K�&���+�&����EX� /� � >Y��EX��/���>Y���%�+� ��01356654&'5!#&&&&#!!&&&&##2DMIH0 / v  "-=*pMb+! $+>>8.>%M  +���Fy �:�;/�</�'ܸ��и��/�;�1и�1/��A�����&��6��F��V��f��v���� ]A�����]�'�����EX�6/�6� >Y��EX�,/�,�>Y�6� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�,��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01'&&&&#"32674&&&'5!#"&&&546632!' !!FMV1KSRC)JxLI{1/O=90JubX-eě`i!ORO$# ) 3Syh·CS  ++-=H' K囦`&���2���+��,/�-/�,�и�/�'��и�-�ܹ���$���EX� /� � >Y��EX�/�� >Y��EX��/���>Y��EX�/��>Y���%�+01356654&'5!!4&'5!!5665!2DMIHDMbIHDMIH>DMHI+! $++"> $++" #++! #+����F����/����+���EX� /� � >Y��EX��/���>Y01356654&'5!FDMIHDMIH+! $++" #+�B+�*�(���"�+���EX�)/�)� >Y����+01#"&&&5466673266654&&&'5!+DM!7H'AB;<.$(*$!;1 +L<"JwnI "   "Wu +����2�1�m�-���+�-����EX� /� � >Y��EX�/�� >Y��EX��/���>Y��EX�(/�(�>Y��(� 9�,�(� 901356654&'5!66&&'5!67#"&'2DMIHDM 2' 2(!J)/2;w0- HI+! $++"  ++  + b #+��2����5����+���EX� /� � >Y��EX�/��>Y��01%!56654&'5!3326667DMIHDM*H7.?0'W+! $++"! #D;���<��"�.�v���EX� /� � >Y��EX�-/�-� >Y��EX�/��>Y��EX�/��>Y��EX�/��>Y��� 9��� 9�'�� 901"!5665#!5665&!266663!G# IH9DW J1C IHkEL &M   ~   #++! _ #++!1+!z"�����2��$��%/�&/�%�и�/�&�ܹ���и�/�� ����EX� /� � >Y��EX�/�� >Y��EX�/��>Y��EX��/���>Y��� 9��� 90135665&&'5324&'5!&&'2JG!I'APHI29 CCN+ &+vo ' ++ &_ & +��Fr ��)�*/�+/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�*� и� /� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���EX�%/�%� >Y��EX�/��>Y�%��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q014&&&&&#"326667#"&&&5466632.CTd9Ya4=gMSe8ZrxDXv|AuEygK+KzpȗXEʖnj~nm�����)�� �4*�5/�6/�5�и�/�6�ܺ���9�%�A��%��%�]A� �%��%�)�%�9�%�I�%�Y�%�i�%�y�%��%� ]��.����EX�/�� >Y��EX��/���>Y� ���+����9��*�A�y�*��*�qA!��*��*�(�*�8�*�H�*�X�*�h�*�x�*��*��*��*��*��*��*��*��*�]A��*��*�(�*�8�*�H�*�X�*�h�*�q�-и�-/0135665'666632#"''3266654&&&#"2DM%I# 0qz}=l{C'AT[['^C*M#.dT6;fM1'D4+!> >  .ZVErYA+K $HjGRvK$ +����F ��@޸�A/�B/�1ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�A�'и�'/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�6�'�19���EX�,/�,� >Y��EX� /� �>Y��EX�"/�"�>Y�;���+�,��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q� ��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�6� �9014&&&&&#"32666#"&&&'#"&&&5466632326667.CTd9Ya4=gMSe8+20+>yxw<nKXv|A8dP.[WR% ",uEygK+KzpȗXE,E1=W_#fꄈnmzjƧ$<4$����)s �1�?A�@/�A/�@�и�/�A�ܺ���9�"и�"/��-��4и��;�A��;��;�]A� �;��;�)�;�9�;�I�;�Y�;�i�;�y�;��;� ]���EX�/�� >Y��EX��/���>Y��EX�"/�"�>Y��"�9��2�A�y�2��2�qA!��2��2�(�2�8�2�H�2�X�2�h�2�x�2��2��2��2��2��2��2��2��2�]A��2��2�(�2�8�2�H�2�X�2�h�2�q�4и�4/0135665'6666327#"&'##"&'"32654&&&2DM#I% /`hsBtr8)Kh>/#+5" Bw'7 4HID&'('S+!= >  .Ro@HuZ@ + 1 #+�7\B%���uu �Iϸ�J/�K/��ܸ�J�%и�%/� и� /�%�и�/����A�����]A� ����)��9��I��Y��i��y���� ]�6и�6/�%�A�A��A��A�&�A�6�A�F�A�V�A�f�A�v�A��A� ]A��A��A�]���EX�,/�,� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�,�<�A�y�<��<�qA!��<��<�(�<�8�<�H�<�X�<�h�<�x�<��<��<��<��<��<��<��<��<�]A��<��<�(�<�8�<�H�<�X�<�h�<�q01#"&&&'&&4673266654&&&&&&&546666632'&&&&#"u1Ic}K!NRQ#)ETa3-[H.6WpupW6(?YtI-[O@ ! $=?>8O36XqvqX6y-^[Q<$$<QT;V9%@U0=XD66<PiIHHC3"#)( !- "3?/I=6;DXq����� ��;�"�A����+���EX�/�� >Y��EX��/���>Y����и�01!566665!"'667!#&&&&#!3.?& +  - H\+  $F:;53y?.A) (+�����2�)�׸�*/�+/�ܸ�*�и�/����#����EX�/�� >Y��EX�(/�(� >Y��EX� /� �>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01#"&&&54&'5!3266654&'5!DM@xlg}FIHDM-YVGnK'IH"ΎK9uz $++"k`i8EpJ $+���� ��@���EX�/�� >Y��EX�/�� >Y��EX� /� �>Y�� �901&&'5!6&'5! DM '., H E?P; aP GR   ++J +�����*�v���EX�/�� >Y��EX� /� � >Y��EX�)/�)� >Y��EX� /� �>Y��EX�/��>Y� � �9�� �9�"� �901&&'5!36&&&'5!,:"!*,"+/>G18D7b*:"    ++   +�����5����EX�/�� >Y��EX�&/�&� >Y��EX��/���>Y��EX� /� �>Y��������9� и�и����к����9�%и�(и��401!5666&'!5667&&&&'5!6&&&'5! ,6A\>A\=#-!U4">-$9,! m%.+ h,"++%* ++!+k ++ ) +������,��&���+���&9���EX�/�� >Y��EX�/�� >Y��EX�/�� >Y��EX��/���>Y�������9�и�/�!и�!/01!5665&&&&'&&&&#'66326&'5!h[I%^b\# $6*;v*. %VVR# 1MEI'?/+'Q0  + '0H ++ V +���;����J���EX�/�� >Y��EX�/�� >Y��EX�/��>Y������01!'!"'3!!266675&$ 9-+? " % NOK-[0K4 -+.P>����N@� �!� ���+�� ���+��� �+01!!!!N[!14 W����7@� � ��/��/01&&&&'7f  C%:7 F"��)@� �)� ���+� �������+� ���+01'667!!'667!L!#2 2q����d5����/�/� /���901''66667/"%  B #$${X f ���= }� � �� ���+01!'667! 20����� � ��/� /01766667  '+* 6y)����P��I�J/�K/�Cܹ���и�J�!и�!/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��)���EX�?/�?� >Y��EX�/��>Y��EX�/��>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q���?9�?�/�A�y�/��/�qA!��/��/�(�/�8�/�H�/�X�/�h�/�x�/��/��/��/��/��/��/��/��/�]A��/��/�(�/�8�/�H�/�X�/�h�/�q���F01%267#"&'#"&&&54676666754&&&''6666323267`<LTmF* "%KUo!,-ZVM $L=(5%=es&A1 >.+;9 ^y?nw,(d=BE/(2 ;5\Q-B*4R:Lf%+($";+$1  '2\F*sg*$ ��� �%�:�;/�</��ܸ�;� и� /�1��к�� ��9���&�A��&��&�]A� �&��&�)�&�9�&�I�&�Y�&�i�&�y�&��&� ]��/��EX�!/�!� >Y��EX�/��>Y���9�!�+�A�y�+��+�qA!��+��+�(�+�8�+�H�+�X�+�h�+�x�+��+��+��+��+��+��+��+��+�]A��+��+�(�+�8�+�H�+�X�+�h�+�q��6�A!��6��6�'�6�7�6�G�6�W�6�g�6�w�6��6��6��6��6��6��6��6��6�]A��6��6�'�6�7�6�G�6�W�6�g�6�qA�v�6��6�q01#"&&&'4&&&'56676666324&&&#"32666:TkJCWf6 3)Bx9 2c[NDsS/)EZ0;JT*(SK==\? :zthM- /.2(! <X9@ydj81S>i( 5Wn��PH�._�$�� �+A��$��$�&�$�6�$�F�$�V�$�f�$�v�$��$� ]A��$��$�]���EX�/�� >Y��EX�/��>Y���A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q��)�A!��)��)�'�)�7�)�G�)�W�)�g�)�w�)��)��)��)��)��)��)��)��)�]A��)��)�'�)�7�)�G�)�W�)�g�)�qA�v�)��)�q01%#"&&&5466632'&&&&#"326667HAcTP/IlAOl!E?5  %$9O35aK-3Uo<09K8MW- AzolQ  ,1- *&/^^Ub540���P�0�C�D/�E/�'ܹ���и�/�D�и�/��1и��:�A��:��:�&�:�6�:�F�:�V�:�f�:�v�:��:� ]A��:��:�]��&/��EX�/�� >Y��EX�/��>Y��EX� /� �>Y���&9��5�A�y�5��5�qA!��5��5�(�5�8�5�H�5�X�5�h�5�x�5��5��5��5��5��5��5��5��5�]A��5��5�(�5�8�5�H�5�X�5�h�5�q���59� �?�A!��?��?�'�?�7�?�G�?�W�?�g�?�w�?��?��?��?��?��?��?��?��?�]A��?��?�'�?�7�?�G�?�W�?�g�?�qA�v�?��?�q01%#"&'#"&&&5466666324&&&'566767%&&#"32666.G5&!*&KOX38vc?:Th|F/]6:5R4 3<!xH@jM+1L[)"B@?T+ Zm.J3Azo9zrfM,(y7A# ' %#2" 9?/^^Ub5-:���Pb� �9�:/�;/�:�)и�)/���и�/�;�ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��и�/���EX�3/�3� >Y��EX�$/�$�>Y����+�3���A�y������qA!�������(���8���H���X���h���x���������������������������]A�������(���8���H���X���h���q�$��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01"!2654&&&!326667#"&&&5466676666324WC- -Q1< )MmD;DS8 CeYW3Mj?9R47<;AfL4!W(Ie=QM6" Nk@6.IY0ByjCtb$ $=QZ]�����-��1�:�l���&�+��и�&�+���EX�/�� >Y��EX�*/�*� >Y��EX�!/�!�>Y�6�� �+����'и�(01&&&&#"!&&#!5665#'735466676666321(+1-' ;3"  VP2O; EGNM 7H(@?9B7$ " #\|V  #  ++ # CvoK "  ����� ��*�t4���L�+�+����+A�������]A� ������)���9���I���Y���i���y������ ]A�����&��6��F��V��f��v���� ]A�����]�^�L�9�^/� ��+�&и�&/�+�>��Q�L�>9��Tи�T/�Y�L�>9�r���+9�+�v���EX�c/�c� >Y��EX�k/�k� >Y��EX�E/�E�>Y���0�+�c��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�E�!�A!��!��!�'�!�7�!�G�!�W�!�g�!�w�!��!��!��!��!��!��!��!��!�]A��!��!�'�!�7�!�G�!�W�!�g�!�qA�v�!��!�q�Q�E�c9�Y�0�9�r�E�c9014&&&#"32666&&'3266654&&&###"&&&&&546667&&546667&&&&546663266667#EgC=6$!CgG?3!&@HS* 8^|DCnN+DuEpI0$9dNmT!*Hbpx;/dbWB':hVA2 9.3S;!BlI<i+4TC4 &I.X5_G)2L15_F)3J '>1(*K7!$?W4/&M[3(5  0?H#7cTD0 +=M19BL.:'2 5K_8Ia9"/&V���7��L�6��7/�8/�2ܹ���7�и�/���&к�'��29��%/��EX�,/�,� >Y��EX��/���>Y��EX�/��>Y�,� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�'���%901!56654&&&#"!56654&&&'566667666632HD 0!#QXZ+KARBJ80*E;6%+ije'+P=%=O+=L,$FiFC ++*/ ("@fH&6S8+����F��L��%�A����+������EX�/�� >Y��EX��/���>Y�$��+01356654&&&'5666673#"&5466632FDH95ED>"CIn*-' )U+!63?#( #+2%2.2%����$ L�)�8������+��*����EX�(/�(� >Y��EX� /� �>Y�7�/�+� ��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01%#"&&&5466673266654&&&'5666673#"&5466632c3F(<<5;/(+ D&9.94*A;7 %*-(*UcsqN % "%\ys3>#( -2%2.2%�����7��4�`�.���+�.���/��EX�/�� >Y��EX��/���>Y��EX�)/�)�>Y��)�9�-�)�901356654&&&'566766&!7#"&'7BJ 7+E3%4!-{,J*x$-91' *3,%+.2(%"& #++"G + ^  +�����<����"����+��/��EX��/���>Y0135666654&&&'5667<+:" 6*Hx>$DR+-2 (" "| +����7��P�T�U/�,и�,/�A���]A���]A���]A���]�A���]A���]A���]A���]����,�#��:и�:/��Dк�E��9��P��V���EX�8/�8� >Y��EX�?/�?� >Y��EX�J/�J� >Y��EX��/���>Y��EX�/��>Y��EX�'/�'�>Y�J� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�и�2к�:���89�E���8901!56654&&&#"!56654&&&#"!56654&&&'566667666632666632HC +!JNO&>ORHC +DUKARBJ80&@:5# -\ZT$0Q;"*ZYU%0Q;">O+=Q.%Ec>+++=Q.+ ++_(. ( #BcB!7ZC?_A!6S8+��7��L�4�5/�6/�0ܹ���5�и�/���%и�%/���EX�#/�#� >Y��EX�*/�*� >Y��EX��/���>Y��EX�/��>Y�*� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�и�/�%���#901!56654&&&#"!56654&&&'5667666632HD1#LW_0KARBJ83Dt8# ,jle'+P=%=O+=L,BkNC ++_'. ( )#CiI'6S8+���P��+�,/�-/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�,� и� /� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���EX�'/�'� >Y��EX�/��>Y�'��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q014&&&#"326667#"&&&5466666324Rh3Lh?8Uf.GfB "<Ter=_m;!;Seu>^m;Om@:ePOl?5btCraF'H~fBsaF(H���7 ��@˸�A/�B/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�A�)и�)/� �� и� �7и�7/���EX�5/�5� >Y��EX�</�<� >Y��EX�$/�$�>Y��EX�/��>Y�<��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q���9��/и�//�7�$�59014&&&#"326667#"&'!56654&&&'566667666632f)DZ0:JT,-MC<6[B&4HU^1;GK^5BJ70">:9# 2e\ODtT/Wn>4W@s", *Rz:zthM-B>' ++>%0 (#<X9@y��P  ��?�@/�A/�:ܹ���@�"и�"/��A�����&��6��F��V��f��v���� ]A�����]��к��"�:9�:�4���EX�*/�*� >Y��EX�4/�4� >Y��EX�/��>Y��EX�/��>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�*� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q���*901%26667&&#"5665#"&&&546667663266667"B@?!xH8hQ11L[^L&JOW38vc?8Q\#9p&68<"    >Md-:9?/^^Ub5+.H3AzoXsP"$  !N- +�����7�� �2�ӻ����+��+и�+/���EX�)/�)� >Y��EX�0/�0� >Y��EX�/��>Y�0� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�+��)901#&&&&#"!56654&&&'&&&&'5667666632  +#;>=K^5BJ &A}2# ?HO+ J:LP(8!%O{Ux ++F!- (##7`G(�����^�Eϸ�F/�G/��ܸ�F�$и�$/� и� /�$�и�/����A�����]A� ����)��9��I��Y��i��y���� ]�4и�4/�$�<�A��<��<�&�<�6�<�F�<�V�<�f�<�v�<��<� ]A��<��<�]���EX�)/�)� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�)�7�A�y�7��7�qA!��7��7�(�7�8�7�H�7�X�7�h�7�x�7��7��7��7��7��7��7��7��7�]A��7��7�(�7�8�7�H�7�X�7�h�7�q01#"&'&&6673266654&&&'&&&&5466632'&&#"(@NLC0C +(CY4$<,+FY.*N=%2Sk9KI@ '0g1!4%&>O*+XF,GeF*$%;MN *J6 ):#(>3-0<J0>aB# *2,H9#* 3-)2AS������'���� �+� �и�����EX�/�� >Y��EX�/�� >Y��EX�/�� >Y��EX�/��>Y�� ��и�и��$�A!��$��$�'�$�7�$�G�$�W�$�g�$�w�$��$��$��$��$��$��$��$��$�]A��$��$�'�$�7�$�G�$�W�$�g�$�qA�v�$��$�q01%#"&&&5#'7357!&&##32671`WJ#?0NHwG  bQ4 )#jNu$7%;`FfCh  <P/(��)-�<��=/�>/�6ܹ�*��и�=�и�/� ����EX�/�� >Y��EX�4/�4� >Y��EX�/��>Y��EX� /� �>Y���9�%�A!��%��%�'�%�7�%�G�%�W�%�g�%�w�%��%��%��%��%��%��%��%��%�]A��%��%�'�%�7�%�G�%�W�%�g�%�qA�v�%��%�q01%#"&'#"&&&54&&&'5666673266674&&&'566767-%D:, #,>gWI /VB'4.$?;<!'9$ CGN, 7.H8  :3R)]g>M*Ex^05 (  'F^8)A/-6 ( &'e>N  ���� �@���EX�/�� >Y��EX�/�� >Y��EX� /� �>Y�� �901&&'5!6&&&'5!&  "(' 42'1-%Cw  Q ++  +�����'�v���EX�/�� >Y��EX�/�� >Y��EX�&/�&� >Y��EX� /� �>Y��EX�/��>Y� � �9�� �9�!� �901&'5!36&'5!$ #*) !(' d16E6EEw    W'++  { +�����9����EX�/�� >Y��EX�,/�,� >Y��EX��/���>Y��EX�/��>Y��������9� и�и����к�%���9�+и�.и��801!56664'!566667&&&&'5!766&&'5!f,ƽ"3(8' %6(-,}QY %2!+! !++RB++   ++/%+���� �3�@���EX�#/�#� >Y��EX�2/�2� >Y��EX� /� �>Y�+� �#901#"&&&5466677666677&&'5!6&&&'5!& *gop2&@.$)0_%01/ 42'11%Nw {oe0  $+( ,@Q+EJ ++ } +���L��=��J���EX�/�� >Y��EX�/�� >Y��EX�/��>Y������01%!'!"'73!!267=5+! 1$'$* HD:- !;. +M[�����f@�A��B/�$и�$/�)�)ܸ�$�)A�p�)�]A��)�]A ��)� �)�0�)�@�)�P�)�]A��)��)��)�]A��)�]���$���и�)��� и�)�и�/�)�5и�$�<и��C��A/�/���A901&&&&5466654&##"'6654&&&&&546667'C2  .C*2E*  'C5TxM$  QK vx -TxK>KX4:JAJ:*QG: -D[7<TJJ27UE;="K\rH;MGQ>QS5|K(:/).;)CweT"���k@� ������+��/�/01'667@>#/$���'L@�A�Ǹ�B/�и�/��ܸ��A�P��]A�0��]A���]A������]A �p����������]A���]������� ���� 9��$и��)и� �4и��9и� �C��//�/���/901'666654&&&546667&&&&5466654&&&'7332677Lww -TxJ'C2  /C+3E+  'D4TyL$  QK yM)9.(/:)DvfU"1=KY4:IAK;)PF9 -E[8;TJJ18VE9=!K\qH;NGQ=QT����1����/� /��ܸ� и� /�01#"&&&#"'6666323267@O[0*^a_+1S*5AOZ0.a_[(0V*1iW82<2NT1iW82<2NR�����d�"�$���Z@�����"�$���Z@��FD �JA�K/�L/��ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�K�и�/����9�2�A��2��2�&�2�6�2�F�2�V�2�f�2�v�2��2� ]A��2��2�]� �Fи�F/��/��EX�/�� >Y���9�+�A�y�+��+�qA!��+��+�(�+�8�+�H�+�X�+�h�+�x�+��+��+��+��+��+��+��+��+�]A��+��+�(�+�8�+�H�+�X�+�h�+�q01'666654&'676767&'&&&546632'&&#"3267#JuR4I.4> USYWa{l4# #3["QRL;#MyG6n @um53'%D8* 1  #"-!4&*呠d:*&& /<6W|hȅCJ\  D]8 O*����2���"�(��� @�2�q�"�1���@�Frd�"�2���j@�2d�"�8���@�P�"�D������P�"�D������P�"�D������PL�"�D������PY�"�D������P�"�D�������PDH�JA�K/�L/��ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�K�и�/����9�4�A��4��4�&�4�6�4�F�4�V�4�f�4�v�4��4� ]A��4��4�]� �Fи�F/��/��EX�/�� >Y���9�/�A�y�/��/�qA!��/��/�(�/�8�/�H�/�X�/�h�/�x�/��/��/��/��/��/��/��/��/�]A��/��/�(�/�8�/�H�/�X�/�h�/�q01'666654&'676767&'&&&5466632'&&&&#"326667#JuR4I.4> HDElAOl!E?5  %$9O35aK-3Uo<09K8'AcT(3'%D8* 1  #"-!4!zolQ  ,1- *&/^^Ub540)MW-N*�Pb�"�H������Pb�"�H������Pb�"�H�������PbL�"�H������F��K�"���<�����"�������Y�"�������IL�"��� ���7��LY�"�Q���D���P�"�R���6���P�"�R������P�"�R������PL�"�R������PY�"�R������)-�"�X���@���)-�"�X������)-�"�X���#���)-L�"�X���$����F�7��2��(�+A��2��2�&�2�6�2�F�2�V�2�f�2�v�2��2� ]A��2��2�]�2�и�/�2� и� /�2�и�/�(�и�/�(�и�/�(���./�/�2���+��и�2�(и�(/01&&''66'&&'667'667&&'66766667+DT 2 .USS-+CR&U"+.WTU-2"U&FEo`:=C=cnEE  +"U&[J+^_  �����Q��'��(/�)/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�(�и�/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�����+�#���+014&&&#"326667#"&&&5466632(.$'.%m0L^.)F2/L^/'E35)&5!5)%5U>hM+4D'>iM+4E���h`� �C������+�8���+A�������&���6���F���V���f���v������ ]A�������]�8� и��и��и�8�#��/�"/���"901'5&&&&5466675666676632'&&&&'26667�";P.-O<#5   Gh?7bQ   !E@5  # /@*09J6'3RG? hFrV9 2V{> >smX{W   ,0- &">4/)<P1����@�I�S���-�+��-�9�-�'и�'/��Gи�G/��2��@�+�H����+���'и�H�,01#66766667&&&'66666&'#'6673&66632#&&#"3g--F:25:%.B3*+ -y10" r l,gr18E/ /yd5/& D~o^$ "C;+OC2 1,3Cb_#SJME|p #Cqt��wJ��k���D�+� ��:�+A��:��:�]A� �:��:�)�:�9�:�I�:�Y�:�i�:�y�:��:� ]��:� 9�/A�����]A� ����)��9��I��Y��i��y���� ]A�����&��6��F��V��f��v���� ]A�����]����2и�2/�L�D�9�L/�b���m���EX�'/�'�>Y�Q��_�+�'�7�A!��7��7�'�7�7�7�G�7�W�7�g�7�w�7��7��7��7��7��7��7��7��7�]A��7��7�'�7�7�7�G�7�W�7�g�7�qA�v�7��7�q016654&&&'&&'%#"&&&'&&66732654&&&'&&&&546667&&5466632'&&#"5 %%LsN* "Fm{!*(@NLB;AE! +(CY4H\+GY-BjJ('3#&2Sk9KI@ '0g1BK7S7CoQ-?&.KGG* &(.GADT,L?0F/GbA% ;MN *M<#DG(:/*$ISd@%E=1(^9>[;*2,HC95#966&EOb�����Fu�� ��/�/01#"&&&5466632#?W50G/%@W3-G0=dH(!<R0<dI(!;R��1 �#�1�<��,�� �+�6���+���2�+��$и�$/A��,��,�&�,�6�,�F�,�V�,�f�,�v�,��,� ]A��,��,�]��>���/��EX�/�� >Y��EX�/�� >Y�1���+����%и�%/�'015665#"&&&54666323&#"3&''665EM*]}HCze@KQ'\fHDNII0>)<dI)&Q}X( +"/_^Ug9+" #+\N*Hb86t`>%  ��7+�Y�7��<�+�Q��%�+�J��,�+A��,��,�]A� �,��,�)�,�9�,�I�,�Y�,�i�,�y�,��,� ]��,�J9�/A�����]A� ����)��9��I��Y��i��y���� ]���A��Q��Q�&�Q�6�Q�F�Q�V�Q�f�Q�v�Q��Q� ]A��Q��Q�]���EX�7/�7�>Y��EX�/��>Y�E��1�+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01#"&&&'&&466673266654&&&&&&&546666654&&&#"!5665466676632+&RZRP?'2FQ&#>.'@QVQ@'1JVJ1<_C0Q; DH!6H'6HVxK!3LZL3&?OTO?&;pX6 #062% 6L0'6!4M;0,/;K3CU7&*:03kX9#\|+ # [xnI ,0Gl~7RhB*&0(!1*',5G^����#��'�J�W��� �+�G��+�+�4��U�+�����+A�����]A� ����)��9��I��Y��i��y���� ]A�����&��6��F��V��f��v���� ]A�����]�7� ��9�G�NA��U��U�]A� �U��U�)�U�9�U�I�U�Y�U�i�U�y�U��U� ]���EX�1/�1� >Y�#���+����+01#"&&&54666324&&&#"32666565'66327#"&''#"'#"332654&2XzHHxX11XxHHzX2;)Hd<;cH))Hc;<dH)Y,,@*KM8,g+ i+ 3/-<H~^66^~HH~^66^~H;iN--Ni;<hN--Nh F 6)/=   q*&(�����dP �,�@�X�7��M�+� �� �+�A��-�+���M�A9A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]A��-��-�]A� �-��-�)�-�9�-�I�-�Y�-�i�-�y�-��-� ]A��7��7�&�7�6�7�F�7�V�7�f�7�v�7��7� ]A��7��7�]�A�Z���EX�R/�R� >Y��EX�H/�H�>Y�%���+����+���H�R9�R�2�A�y�2��2�qA!��2��2�(�2�8�2�H�2�X�2�h�2�x�2��2��2��2��2��2��2��2��2�]A��2��2�(�2�8�2�H�2�X�2�h�2�q�H�<�A!��<��<�'�<�7�<�G�<�W�<�g�<�w�<��<��<��<��<��<��<��<��<�]A��<��<�'�<�7�<�G�<�W�<�g�<�qA�v�<��<�q01#"&&&5466632'&&#"3266674&&&#"326667#"&&&5466632-QLI$A}b=CtVLp&  $Z= TK3;Ye**2;&QwvǑQQvwȑQV+Oq[^^[qO+q+:$4c[ds?% 0 MaPxQ)$vќZZvwҜZZw[yV/hh/Vx����;'=�"�L�˻����+�4�=�+�%��K�+�K�/и�//�0��%9�G��%9�%�N���/�*/�1/�8/��EX�/�� >Y��EX�/�� >Y��EX�B/�B� >Y��EX�K/�K� >Y����и�к�0���9�3���9�G���9015665#"'46667!#&&##"#5665##5665&Ȕ6633#n   i& s r' i  !  3`  t 8 �����k� � ���/�/01&&' (+'  '�����ddL����/�/��ܹ��A�����]A� ����)��9��I��Y��i��y���� ]��и�/��A�����&��6��F��V��f��v���� ]A�����]�� ��+��и� �01#"&5466632#"&5466632*-' )Up*-' )U2%2.2%_2%2.2%����=�cF�'�?��/�&/��� �+����+� �и��и��и��!013#!!'7#'66737!'667!7667x^a #('  w J0- #+.!���������K�~�1����+���и�1�?���EX�#/�#� >Y��EX� /� �>Y��EX�/��>Y����+�#�0���2и��>и� �E�014&3!5665!!56676&&&'5!#&&&&#!!&&&&##3326667 DK >R`DM 2M1! -   ".>*-QB.A1(| tW+!# ++  +>>8.>%M  #D;���Fr!� ��;:�</�=/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�<�.и�./��.�9� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��.�9�$и�$/�.�*и�*/���7и�7/��;и�;/��)/��EX�:/�:� >Y��EX�3/�3� >Y��EX�;/�;� >Y��EX� /� �>Y��EX�*/�*�>Y��)�:9� ��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q��)�:9�3��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q014&'32666%&&#"#"&''7&&54666327667(&0t?Se8 *&.tDYa4 CDZrW;5 !&% BDXvW:6DuYH 6;Eʐ^F4<KP[}n71L !Z耈n70M!���P6M��'�O��P/�Q/�P�Kи�K/��A�����&��6��F��V��f��v���� ]A�����]�Q�7ܹ�#�A��#��#�]A� �#��#�)�#�9�#�I�#�Y�#�i�#�y�#��#� ]����<�+�2���+�2�(и�<�F0126667&&&&#""3266654&&&%2666632#"&&&'#"&&&54666X!46A-2>L./: &: 8:A*4@M-/: &:3XK>:_TL('K;$6\wB3YM@@^NG('K;$6\w2):.*/4/ / 1%9.*/4/ t 5A!4F+#<S09oW6 4A!9G(#<S09oW6�����=� � �!�E� ���+��и� ���/� ���+����+��и�� 01%!'667!%'!'667!667!! j 0 21.~ .1�����=�F��!���/�!���+01%&&&55667!'667!F d  7-   /  -+��=�F� ���� /� ���+01!'667!667'66667%%F- + /'-+ 7  ������8�v�2���+�� к�!��29�2�,��/�&/��EX��/���>Y� ���+�&���!���9�(и�(/� �-и��00135665!'667!5&&&&'&&&&#'66326&'5!!![I #LNL" $7*;v*. %D@A#1MDJ'?/+'A#5Iu+  + '0fp}H{ ++ 3D +����= =�L ����+�F��8�+�8� к���F9��.��>��F9�F�N���EX�(/�(� >Y��EX�A/�A� >Y��EX�/��>Y��EX�/��>Y��EX� /� �>Y� ��(9�3A��3��3�'�3�7�3�G�3�W�3�g�3�w�3��3��3��3��3��3� ]A��3��3�]�� �39���(9�>��(901%#"&&&'#"&''4&&&'5666673266674&&&'6673267=@<3 Q:;r,'3371 '4/'A:5 /D*9?F( ,[) 3!R(!":L+ijQHo_', (  #RF0 !=4-,& 'I?]L ��P��@Ǹ�A/�B/�ܹ�+�A��+��+�]A� �+��+�)�+�9�+�I�+�Y�+�i�+�y�+��+� ]��и�A�!и�!/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���EX�&/�&� >Y��EX�/��>Y�:��0�+�&��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�+��&901&&&&#"3266657#"&&&5466632&&&&#"'76632DW`+;[=5Q`+:fL+-K_d_&bk9HwQMOFBcx97;E--v:g37sj]F(J8`G):ePOl?FqoBH~fcW0> ~7)"!<g���;������1�������"�KԻ���)�+�A�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��и�/�A�>и�>/���EX�9/�9� >Y��EX�5/�5� >Y��EX�:/�:� >Y��EX�/��>Y��EX�/��>Y�9��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�и�/�)и�)/�*и�*/�=и�>и��F�A!��F��F�'�F�7�F�G�F�W�F�g�F�w�F��F��F��F��F��F��F��F��F�]A��F��F�'�F�7�F�G�F�W�F�g�F�qA�v�F��F�q01%#"&&&546667&&'&&'&'6666667#"'66663!267##3266673L;/#4# GR 9DC ( 3 2//89: y*H4i0A "$0"n+7 *MnE [~irH{7  &DPiώ $#<,HMQN[T'  ��2 �E%���9�+A�����&��6��F��V��f��v���� ]A�����]�2�9�9�2/A��2��2�]A� �2��2�)�2�9�2�I�2�Y�2�i�2�y�2��2� ]�����EX� /� �>Y�A�� �+� �-�A!��-��-�'�-�7�-�G�-�W�-�g�-�w�-��-��-��-��-��-��-��-��-�]A��-��-�'�-�7�-�G�-�W�-�g�-�qA�v�-��-�q01&&&&#"#"&&&5466673266654&&&&&5466676632(+)'" - $9H#=;6;/(+ D&:. '<'3o'+I5!", K{[>ƱCWhL% "!Sl7ū;U{]H"-/!+*��1J�4�8�G��H/�I/�-ܹ���и�/�H�и�/�-�1и�1/��5и�5/��9и��@�A��@��@�&�@�6�@�F�@�V�@�f�@�v�@��@� ]A��@��@�]��6��5�+�(���+01#"&'#"&&&5467754&&&#"''666632675!'5326.=0]")"_f\"  $#7HL$27+,9" F�(+-& + >_/ # :-.L7 II !&��1J���+�ɸ�,/�-/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�,�"и�"/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�"�и�/��и�/�����+�'���+����+014&&&#"326665!#"&&&5466632,;!/"-:/# -H\/2R; (F]50R<!*L9"6I**L9"6III3bM.&C\74bL.&C]�P�� �6����P9�V�j�x9�a��(�+���[�+����t�+��[�9�[�0к�K�[�9A��a��a�&�a�6�a�F�a�V�a�f�a�v�a��a� ]A��a��a�]��pи�p/A��t��t�]A� �t��t�)�t�9�t�I�t�Y�t�i�t�y�t��t� ]���EX�H/�H� >Y��EX�P/�P� >Y��EX�/��>Y��EX�#/�#�>Y�q���+�� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q���H9�q�0и�0/�H�6�A�y�6��6�qA!��6��6�(�6�8�6�H�6�X�6�h�6�x�6��6��6��6��6��6��6��6��6�]A��6��6�(�6�8�6�H�6�X�6�h�6�q�K��H9��[и�[/� �fи�6�k01!326667#"&&&'#"&&&54666766754&&&#"''66666632666632&&5532666"!2654&&&9< ?<W89AN5 <d[W/,UK=+edZ$L=(/^b!S, "=1 I9+;; 0HY[X"Xg HIE=^E0 D!4 "% DKN=<5 \*C-# $:qZ76.HX06M24N54R:;m^M V'H6!3C%  $'LC9)HH(8!#;PY_<!x%}R(2 #6=nW0XC)���P� ��A1�B/�C/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�B�1и�1/��1�9� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��1�9��и�/� �'и�'/�1�-и�-/���<и�</��,/�A/��EX�/�� >Y��EX�8/�8� >Y��EX�#/�#�>Y��EX�-/�-�>Y��,�A9�#��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q��,�A9�8��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q014&'32666%&&#"#"&''7&&546666632766667 (X(GgC !'Y,LhAf37"<Ter=Ev0 !$# d48!;Seu>Ew1  <q0*/5bh=o0*/:e?cCraF'&#!?dBsaF('$ ��P'�/�?� ��(�+�0��8�+����+A��8��8�]A� �8��8�)�8�9�8�I�8�Y�8�i�8�y�8��8� ]�/�8�09�//��A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��A���EX�=/�=� >Y���#�+�=�5A��5��5�]A��5��5�(�5�8�5�H�5�X�5�h�5�x�5��5��5��5��5��5� ]016673266654&'667#"&&&54666667#"&5466632'@KB,pi$A2"F-EuTJrM(/HTL6'33/%250u9pnjgc0|!7H'GwW1.SsEKyh`eqF";-;8":,:������ ��� ���+A�����]A� ����)��9��I��Y��i��y���� ]��/��EX�/�� >Y�A�����]A�����(��8��H��X��h��x������������ ]01'667#"&5466632s'S"+/E&131%34.- 1)";-;8";,;�����=�{j� ������+��/� ���+01%'!'667!{)J +0����������EX� /� �>Y����+01##'66773 "(' r a\2 L0��� �M����9�+��и�9�>���EX�/�� >Y��EX�=/�=� >Y��EX�%/�%�>Y�I�� �+����%�4�A!��4��4�'�4�7�4�G�4�W�4�g�4�w�4��4��4��4��4��4��4��4��4�]A��4��4�'�4�7�4�G�4�W�4�g�4�qA�v�4��4�q��:и�;01&&&&#"!&&##"&&&546667326665#'73546667666632(+2-& <3!  UN 6I(<93:.(+" !9.NL!7I(?>8C8% " $\|V usN#  " #\|BvoK "  ���8@K#��/�;��%/�//�/� /� ���+�*���+����%��01#"&&&#"'6323266677#"&&&#"'632326667Ke*RQQ(/K,5d-YSK /+'6e*RQQ(/K,5d-YSK /+'$507$%ʢ$507$%�����;��F%��,�5���EX�%/�%� >Y��EX�/��>Y���%9��01%&'&&&&'3!266&!'6766667667q@>872465:;3014ZS#JF>CENQ'[bE9?C  3_ɿA)Jd���P�V��#���/�/�/�#/015467354673Pg* *,) + g* *,) +#;KNK:#\#;KNK:#\�������� ���/�/�/� /01'7'7+*g+*gcfIcf���"����#������������"�$��� @����q�"�$���Z@�Frq�"�2���j@��F' ��S���!�+�H���+A�����&��6��F��V��f��v���� ]A�����]�H�3ܸ�H�9���EX�+/�+� >Y��EX�&/�&� >Y��EX�/��>Y��EX�/��>Y�:��G�+����A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�+� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�8и�8/�9и�9/���Mи�N01%26667&&#"%!#"&&&5466632!#&&&&#!!&&&&##3326667\(F=65~GYa4=gr5LBB,xDXv(;6;(P / j  #->*dDB.A1)Z )$LzpȗXW j~n >>8.=%N  #D;��P� �!�a���G�+�&���+�"�� �+�&�и�/A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]A�����&��6��F��V��f��v���� ]A�����]�=��&9�S��&9�"�c���EX�N/�N� >Y��EX�[/�[� >Y��EX�8/�8�>Y��EX�B/�B�>Y���%�+�[���A�y������qA!�������(���8���H���X���h���x���������������������������]A�������(���8���H���X���h���q�и�8�+�A!��+��+�'�+�7�+�G�+�W�+�g�+�w�+��+��+��+��+��+��+��+��+�]A��+��+�'�+�7�+�G�+�W�+�g�+�qA�v�+��+�q�=�8�N9�S�8�N901"!2654&&&4&&&#"32666%!326667#"&&&'#"&&&5466666326676666320SA+ *L+3Ul96Y@#6Vl66X@#�< )IhA6AR8 BeWR/2]TF Q[d4Ui<"=Tes<6cVE?&9:9>aJ4 X)Ie=RL7oPl@:ePOl?9e# Nj?6.IY07O3/O9H~fBsaF(6M0&A $=QZ]���=:� � �� ���+01!'667! "41���=:� � �� ���+01!'667! p"41���\%��/��0/�1/�0�и�/��A�����&��6��F��V��f��v���� ]A�����]�1�,ܹ�!�A��!��!�]A� �!��!�)�!�9�!�I�!�Y�!�i�!�y�!��!� ]�� /�&/01'&&546667'&&&&546667 ;EB"$4L0+  6; ;EB 4L0+ 6: !E;'ZZR#785-A- !%.'ZZR#785-A����X��-��./�//�.� и� /���A�������&���6���F���V���f���v������ ]A�������]�/�ܹ�"�A��"��"�]A� �"��"�)�"�9�"�I�"�Y�"�i�"�y�"��"� ]��/�/01'666654&''6666'666654&''6666y4J0-  69 :EC $4J0+ 89:FC $'[ZS"885-C- F9'[ZS"885-C- F����\��G����+A�����&��6��F��V��f��v���� ]A�����]�� /01'&&546667 ;EB"$4L0+  6; !E;'ZZR#785-A��Xy��G���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��/01'666654&''6666y4J0-  69 :EC $'[ZS"885-C- F�����=� ���'�m�����+A�����]A� ����)��9��I��Y��i��y���� ]���и���� ��+���+�'��!�+01#"&5466632#"&5466632!'667!"# "C"# "Cj T((%(((%(1.���������,��/��EX� /� � >Y��� 9��� 9013'66667  -  ==A  � L�"�\���������d�"�<���_@��2� ���/��EX�/��>Y01%'667<+/ ���$��C��D/�E/�D�(и�(/��A�����&��6��F��V��f��v���� ]A�����]�E�>ܹ��A�����]A� ����)��9��I��Y��i��y���� ]�>�и�/�(� и� /�(�0и�0/�>�8и�8/��0/�8/�/� /� ���+�4���+0132676654&'&&#"'#"&''&&'7&&5467'7667663277k> >= >^i"M((N"l!kk k"N((L"j"jj? => >.ik k!M((N"l!kjBj"N((M"i"���P��� ���/�/01%54673g* *,) #;KNK:#\����� �� ��/�/01'7 +*gcf���-��q�"�I����L}����-��{�Q��R/�S/�Mܹ���R�2и�2/�'��и�2�7и��Iи�I/���EX�/�� >Y��EX�6/�6� >Y��EX��/���>Y��EX�-/�-�>Y�B���+��&��3и�401!5666654&'&'&&&&#"!&&#!5665#'735466676666326767+:"   +1-' ;3"  VP2O; EGNM 7H(@?9B<>$DR+-2   #\|V  #  ++ # CvoK "   "| +���F�K�� ��.�+A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]� �и�/� �и�/�.�"и�.�4и�.�>и� �H��/�D/� ���+�H���+��"и� �.и��4и�H�>и�>/01&&'66667&&''667'667&&'667'667&&'667667+ET.UTU-+CT&U"+.UTT-+CS\Z+CS&U"+\Z2"U&>uDB{:  +"U&`L+`e  +"U&:|AEt>+"U&_K+^d��2H�0�����Xy���G���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��/01%'666654&''6666y4J0-  69 :EC $='[ZR"885-C- F��X���-��./�//�.� и� /���A�������&���6���F���V���f���v������ ]A�������]�/�ܹ�"�A��"��"�]A� �"��"�)�"�9�"�I�"�Y�"�i�"�y�"��"� ]��/�/01%'666654&''6666'666654&''6666y4J0-  69 :EC $4J0+ 89:FC $='[ZR"885-C- F9'[ZR"885-C- F�����L��'�;�O�[�o�d�f��z�+�p��\�+�2��F�+�<��(�+� ���+�����+A�������]A� ������)���9���I���Y���i���y������ ]A�����]A� ����)��9��I��Y��i��y���� ]A��(��(�]A� �(��(�)�(�9�(�I�(�Y�(�i�(�y�(��(� ]A��2��2�&�2�6�2�F�2�V�2�f�2�v�2��2� ]A��2��2�]A��f��f�&�f�6�f�F�f�V�f�f�f�v�f��f� ]A��f��f�]A��p��p�&�p�6�p�F�p�V�p�f�p�v�p��p� ]A��p��p�]����/�A/�U/�Z/�/�K��u�+�u�и�/���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�K�#и�u�-и�-/��7и��a��K�kи�k/014&&&#"326667#"&&&54666324&&&#"326667#"&&&5466632'6674&&&#"326667#"&&&5466632=(6,#'7 -!0Pk:;cG'1Qj9<bG'*6+"'6 ,"0Pk::bF(1Qj9<bF&- #(' XJ+*6+#'7 -"0Qk;;aG'0Qj:<bG'!FhE!:W;HjE"<YOE|]66]|EE{\65\{ZFhE!:W;HjE"<YOE|]66]|EE{\65\{ #!GhD!:W;HjE"<YOE|]66]|EE{\65\{��������"�$��� Y@�2���"�(��� @�����"�$��� v@�2��d�"�(���@�2���"�(��� @�F��x�"�,��� F@��c�"�,��� )@��Sd�"�,���*@���"�,��� @�Fr�"�2��� @�Fr�"�2��� i@��K��� ��%�4�A�N�]�k�x��������c��i�+����+�����+����+����+A�������]A� ������)���9���I���Y���i���y������ ]��� и��и��A�����]A� ����)��9��I��Y��i��y���� ]��$и�$/A�����&��6��F��V��f��v���� ]A�����]��,и�,/��2и��:и�:/A�����]A� ����)��9��I��Y��i��y���� ]��@и�@/A��c��c�&�c�6�c�F�c�V�c�f�c�v�c��c� ]A��c��c�]�c�G��c�Mи�M/����Uи��[и�[/��и�/�c�и�i�и�G�и�c�и�/����/��EX�/��>Y����+���!�+����+�y���+��)и�)/��/и�!�7и�7/�!�и�/���=и�=/��и�/���Dи��Jи�J/�7�Xܸ��`и��fи�f/�y�lи�l/��rи�r/�X�и�!�и��014632#"&4632#"&6632#"&546632#"&546632#"&54632#"&546632#"&546632#"&546%2##"&546%2##"&546#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632  6< d<757 E ���Fr�"�2��� @�2�"�8��� @�2�"�8��� @�2�"�8��� V@�F�������1� ���/�/� /01&&&&'3  kD   {���FYY��%��/� /�/�/���� и� /01#"&&&#"'66663232672=H'#?<;(B%51>G'&D<6&I"B)P@(#+#A8)Q@(#+#@;�����K� ����EX� /� � >Y��01!'66667!K  e    ��(.}���� /�/����+01#"&&&'667326667KSZ-1\SI AHK!#MIAPQnEEnQ9N//N9���dd,L��K�����+A�������&���6���F���V���f���v������ ]A�������]�� ��+01#"&5466632,*-' )U2%2.2%�����F��'��(/�)/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�(�и�/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�����+�#���+014&&&#"326667#"&&&5466632`  &  &Z'?M&"9)'>M' 9*,!,+!+F3U?#*8 3W?#+9���ND���_���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�� ��9��/�/���901'666654&'67667#JuR4I.4>N'3'%D8* 1  #"ZTt*�����P� �����/� /�/�/01&&'&&' !!  !  ) )�����dD�+��Q��� �+A�����&��6��F��V��f��v���� ]A�����]�� /����+01#"&&&546732679<<8,-HX00&I*4) 8-ZQ,TJ>%#$&���2/� ����/�/� /01#66667%k  /e   ����P`�"�D���#������P�"�D���#����Pb�"�D������P�"�D���#����b�"�D������P�"�D���#����P�"�D������Pe�"�D���#����P�"�D������P}�"�D������P`}�"�D���#������P�"�D���#���@�P�"�D������P�"�D���#���@�P�"�D������P�"�D���#���@�P�"�D������P�"�D���#���@�Pr�"�D������P�"�D������P�"�D������P�"�D���#���h�PL�"�D������P�"�D���#���h�P�"�D���#����P�"�D������P`�"�D������P������P�0�Aɸ�B/�C/�&ܹ�1��и�/�B�и�/�&�и�/�&�"и�"/��:�A��:��:�&�:�6�:�F�:�V�:�f�:�v�:��:� ]A��:��:�]���EX�/�� >Y��EX�/�� >Y��EX�/��>Y��EX� /� �>Y���9��5�A�y�5��5�qA!��5��5�(�5�8�5�H�5�X�5�h�5�x�5��5��5��5��5��5��5��5��5�]A��5��5�(�5�8�5�H�5�X�5�h�5�q� �?�A!��?��?�'�?�7�?�G�?�W�?�g�?�w�?��?��?��?��?��?��?��?��?�]A��?��?�'�?�7�?�G�?�W�?�g�?�qA�v�?��?�q01%#"&'#"&&&546666632667674%&&#"326Wx*$*GGJ+7s_<8QfzE..3 8   A3 \G@gI(.HW*0hT;7Wi5J-Azo9zrfM,%-!!J*+<L  9?/^^Ub5L�P�"����?���P�"�������P�"����"���P`�"����##���"���P�"����#"���?�P�"����#"����P�"����#"���#�Pe�"����#"���&�P}�"����#���P`}�"����##���#���P�"����##���?@�P�"����##���@�P�"����##���#@�P�"����##���&@�P�"����"���PY�"����#���P�"����-���PL�"����#���P�"����##���-h�PL�"����#���P�"����##���-h�P�"����#���P�"����##���?�P�"����&���P`�"����#���P9�"�������P9�"����������Q�"�$���# Y@� v����T�"�$���Y@����Q�"�$���# Y@� ����T�"�$���Y@�����"�$���# Y@�Z�����"�$���X@����s�"�$���# Y@�]�����"�$���Y@��`�"�$���#Z��� Y@�����"�$���Z@�����"�$���#Z@� v����h�"�$���Z@�����"�$���#Z@� ����h�"�$���Z@�����"�$���Z@�����"�$���Z@����#�"�$���#Z@�]�����"�$���Z@��`�"�$���#Z���Z@�����"�$���Y@����1�"�$���d@����q�"�$���#Z@�d����d�"�$���Z@����q�"�$���#Z@�d����y�"�$���#Z@� v�����"�$���]@��`%�"�$���Z��������"���� @�����1�"����@� �"�E���Q��� �"�E������ `�"�E���������H�I/�J/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�I�!и�!/� ��>к�?�!�9���EX�D/�D� >Y��EX�/��>Y�,��9�+�D��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�?��D9014&&&#"326667#"&&&'46667666632&&#"666632/)EZ0;JT*(SK==\? :TkJCWf6"?X6CC;-UB((+*r; NC-2c[NDsS/dj81S>i( 5Wn:zthM- /|b+" !,+  !4>.p<X9@y����)d�"�%���@�) �"�%������)` �"�%������� ��#�Z�P��$�+���J�+�1�� �+��A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�� �19�/A�����]A� ����)��9��I��Y��i��y���� ]�9��4�$�99A��P��P�&�P�6�P�F�P�V�P�f�P�v�P��P� ]A��P��P�]�\���EX�)/�)� >Y��EX�>/�>�>Y��EX�C/�C�>Y��EX�E/�E�>Y����+�)����и�/�>��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q��4и�4/��Kи�K/01&&&&'3266654&"3266654&&&466632#"&&&'&'#5665&&8JbC"rN'0Q$ ,..HtS,'Q}MςUlT$-5fX@nQ.Cye=FJ#S[IDM4U=!&,1%0p-FX+1W6%B]87t_=bAjK) !`9l" Ba{EU`4+!G(7#$8L���PH�"�F��� ���PH�"�F������PH�"�F������PHL�"�F�������PDH�J�UE�V/�W/��ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�V�и�/����9�4�A��4��4�&�4�6�4�F�4�V�4�f�4�v�4��4� ]A��4��4�]� �Fи�F/��O/�/��EX�/�� >Y���O9�/�A�y�/��/�qA!��/��/�(�/�8�/�H�/�X�/�h�/�x�/��/��/��/��/��/��/��/��/�]A��/��/�(�/�8�/�H�/�X�/�h�/�q01'666654&'676767&'&&&5466632'&&&&#"326667&&'#JuR4I.4> HDElAOl!E?5  %$9O35aK-3Uo<09K8'AcT(3' '+( %D8* 1  #"-!4!zolQ  ,1- *&/^^Ub540)MW-N* '�����BM�6�7/�8/��ܸ�7� и� /��A�����&��6��F��V��f��v���� ]A�����]��� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]� �-и�-/���EX�2/�2� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�2�%�A�y�%��%�qA!��%��%�(�%�8�%�H�%�X�%�h�%�x�%��%��%��%��%��%��%��%��%�]A��%��%�(�%�8�%�H�%�X�%�h�%�q01#"&&&54676673266654&&&#"&&'666632MFx]GzY3&V& "9J'8^C&1Tm<8AO3 =g]X.Ij@kP,OnA 9 /  #C4!0`^U`4-%@Q-Az�����7/�.c�$�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�$�0���EX�/�� >Y��EX�)/�)�>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q���A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q0173266654&&&#"&&&&7666632#"&&&'^7L90<oU3-Kb43O9$%  5?E!lOAlI/PTcA045aU^^/&* -1,  QlozA -WM���F�"�&��� @�F�"�&��� h@�F�"�&���h@�Fd�"�&���i@��FD�J�UE�V/�W/��ܹ� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�V�и�/����9�2�A��2��2�&�2�6�2�F�2�V�2�f�2�v�2��2� ]A��2��2�]� �Fи�F/��O/�/��EX�/�� >Y���O9�+�A�y�+��+�qA!��+��+�(�+�8�+�H�+�X�+�h�+�x�+��+��+��+��+��+��+��+��+�]A��+��+�(�+�8�+�H�+�X�+�h�+�q01'666654&'676767&'&&&546632'&&#"3267&&'#JuR4I.4> USYWa{l4# #3["QRL;#MyG6n @um53'  "$ %D8* 1  #"-!4&*呠d:*&& /<6W|hȅCJ\  D]8 O* =-���M����EX�/��>Y�.��>�+�L����+�)��#�+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q���и�L�и�)�Cи�#�F01!326667#"&&&'#'6673547#'6673666632'&&&&#"!!!q :Qc5;CP3 <a\]7KhD \ YA MV|\2NA6# #-4A-"LF8 cOhY('@.  D]8;z"B<"qt:$&& 'NiC-)�����= �:�;/�</��ܸ�;� и� /��A�����&��6��F��V��f��v���� ]A�����]���"�A��"��"�]A� �"��"�)�"�9�"�I�"�Y�"�i�"�y�"��"� ]� �1и�1/���EX�6/�6� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�6�'�A�y�'��'�qA!��'��'�(�'�8�'�H�'�X�'�h�'�x�'��'��'��'��'��'��'��'��'�]A��'��'�(�'�8�'�H�'�X�'�h�'�q01#"&&&5467666673266654&&&#"&&&&'666632U{bb0"11,#%Da;Ff>MzHCSe< Cvld3^Wg8Yl3*N& 1!%+$L>(9՜ȆC 6*  CR-R����< �.c�%�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�%�0���EX� /� � >Y��EX�*/�*�>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q� ��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q017666673266654&&&&&#"&&&&76632#"&&&< n6GyM#;LRQ"[3# #4l{ܦaW]4imu  \JCȅh|W6</ &&*:dT8]��P�"�G���R���P�"�G������P`�"�G�������P'�<�O��P/�Q/�3ܹ���и�/�P�и�/��#и�3�.и��=и��F�A��F��F�&�F�6�F�F�F�V�F�f�F�v�F��F� ]A��F��F�]��-/��EX�/�� >Y��EX�/��>Y��EX� /� �>Y�)�"�+���-9��A�A�y�A��A�qA!��A��A�(�A�8�A�H�A�X�A�h�A�x�A��A��A��A��A��A��A��A��A�]A��A��A�(�A�8�A�H�A�X�A�h�A�q���A9�"����ܸ�"�/и�#�0и��2и��3и� �K�A!��K��K�'�K�7�K�G�K�W�K�g�K�w�K��K��K��K��K��K��K��K��K�]A��K��K�'�K�7�K�G�K�W�K�g�K�qA�v�K��K�q01%#"&'#"&&&5466666325!'667!54&&&'56673#67%&&#"32666.G5&!*&KOX38vc?:Th|F/]6 :5R4 3<!xH@jM+1L[)"B@?T+ [m.J3Azo9zrfM,($,7A# ' %A#2" 9?/^^Ub5-:�����P �B�Uȸ�V/�W/�ܹ�6��!и�!/�V�+и�+/��;и�;/�6�Cи�+�L�A��L��L�&�L�6�L�F�L�V�L�f�L�v�L��L� ]A��L��L�]���EX�2/�2� >Y��EX�/��>Y��EX�&/�&�>Y�>�� �+�!��29�2�G�A�y�G��G�qA!��G��G�(�G�8�G�H�G�X�G�h�G�x�G��G��G��G��G��G��G��G��G�]A��G��G�(�G�8�G�H�G�X�G�h�G�q�5�2�G9�&�Q�A!��Q��Q�'�Q�7�Q�G�Q�W�Q�g�Q�w�Q��Q��Q��Q��Q��Q��Q��Q��Q�]A��Q��Q�'�Q�7�Q�G�Q�W�Q�g�Q�qA�v�Q��Q�q01&&&&#"67#"&'#"&&&5466666325466676632&&#"32666 (+)'" - 3< .G5&!*&KOX38vc?:Th|F/]6$8'3o'+I5!xH@jM+1L[)"B@?!"+ Jz[#2" ++ [m.J3Azo9zrfM,(U{]H"-/!+*m9?/^^Ub5-:���P ��K'�L/�M/�ܹ�+��и�L�6и�6/��A�����&��6��F��V��f��v���� ]A�����]�+�@��J/��EX�=/�=� >Y��EX�&/�&�>Y��EX�1/�1�>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�=� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�&��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�,�&�J9�@�=� 901%26667&&#"32666'&666#"&&&5#"&&&5466666324&&&'5667"B@?!xH@jM+1L[7H/ (8:7bI=N.&JOW38vc?:Th|F/]6:5R4d-:9?/^^Ub5s|*2'&\Q6-Kc6.H3Azo9zrfM,(y7A# ' %���P��O�P/�Q/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�P�#и�#/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���к�/�#�9� �8и�8/�:�#�9�K�#�9��A/��EX�*/�*� >Y��EX�/��>Y�*��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�/��A9�:��A9�K��A901&&&&#"326665467#"&&&546666632&&'&&&&''7&&&&'77EU^+;Z<4P`+7eM.,H]b^&bk9!:Q^j6@@<dG ;BI*qT Ed?J9aG':ePOl?7s{ ta=H~fBsaF($0eHb%o' )HKN[#gK���)��c�"�'���(@�)��cd�"�'���)@�)c �"�'���)���)`c �"�'���)������c �!�8�9/�:/��ܸ�9� и� /�и� �*��$и�*�,и�,/���4�A��4��4�]A� �4��4�)�4�9�4�I�4�Y�4�i�4�y�4��4� ]���EX�/�� >Y��EX�/��>Y��� �+��"�A�y�"��"�qA!��"��"�(�"�8�"�H�"�X�"�h�"�x�"��"��"��"��"��"��"��"��"�]A��"��"�(�"�8�"�H�"�X�"�h�"�q�$и�$/��%и� �(и��/�A!��/��/�'�/�7�/�G�/�W�/�g�/�w�/��/��/��/��/��/��/��/��/�]A��/��/�'�/�7�/�G�/�W�/�g�/�qA�v�/��/�q01#!5665#'6673'666632"!!3266654&&&c3Vq~;DM (H! ,s;Ub20 PNEzNB}ŗiC+!" >  SC3CЍӓN����c �!�8�9/�:/��ܸ�9� и� /�и� �*��$и�*�,и�,/���4�A��4��4�]A� �4��4�)�4�9�4�I�4�Y�4�i�4�y�4��4� ]���EX�/�� >Y��EX�/��>Y��� �+��"�A�y�"��"�qA!��"��"�(�"�8�"�H�"�X�"�h�"�x�"��"��"��"��"��"��"��"��"�]A��"��"�(�"�8�"�H�"�X�"�h�"�q�$и�$/��%и� �(и��/�A!��/��/�'�/�7�/�G�/�W�/�g�/�w�/��/��/��/��/��/��/��/��/�]A��/��/�'�/�7�/�G�/�W�/�g�/�qA�v�/��/�q01#!5665#'6673'666632"!!3266654&&&c3Vq~;DM (H! ,s;Ub20 PNEzNB}ŗiC+!" >  SC3CЍӓN����c �!�8�9/�:/��ܸ�9� и� /�и� �*��$и�*�,и�,/���4�A��4��4�]A� �4��4�)�4�9�4�I�4�Y�4�i�4�y�4��4� ]���EX�/�� >Y��EX�/��>Y��� �+��"�A�y�"��"�qA!��"��"�(�"�8�"�H�"�X�"�h�"�x�"��"��"��"��"��"��"��"��"�]A��"��"�(�"�8�"�H�"�X�"�h�"�q�$и�$/��%и� �(и��/�A!��/��/�'�/�7�/�G�/�W�/�g�/�w�/��/��/��/��/��/��/��/��/�]A��/��/�'�/�7�/�G�/�W�/�g�/�qA�v�/��/�q01#!5665#'6673'666632"!!3266654&&&c3Vq~;DM (H! ,s;Ub20 PNEzNB}ŗiC+!" >  SC3CЍӓN����I ��>J�4���+���0�+�$���+A�����]A� ����)��9��I��Y��i��y���� ]A��4��4�&�4�6�4�F�4�V�4�f�4�v�4��4� ]A��4��4�]�$�@���EX�/�� >Y��EX�+/�+�>Y����+� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q��1и�1/01&&&&#3266654&&&466632#!5665&&$Ma}S PNEzN,D\QiU&Gb=3Vq~;DMwp&,1%0O' CЍDyi=LmE! !-tP}ŗiC+!FS@$8L���Pb�"�H���#�����Pb�"�H�������Pb�"�H���#�����:bb�"�H�������Pb�"�H���#�����Pb�"�H�������Pbe�"�H���#�����P�"�H�������P`b�"�H���#�������Pb}�"�H������Pb�"�H�������PbY�"�H������Pb�"�H��� ���Pb9�"�H���# ���h�Pb9�"�H���# ���h�PbL�"�H������Pb�"�H������P`b�"�H�������PDb�G�U�/���+���� �+�+��Q�+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]���+9�/�Mи�M/A��Q��Q�]A� �Q��Q�)�Q�9�Q�I�Q�Y�Q�i�Q�y�Q��Q� ]�+�W��/��EX�$/�$� >Y��EX�/��>Y��EX�@/�@�>Y��EX�B/�B�>Y�N��.�+�B�4�A!��4��4�'�4�7�4�G�4�W�4�g�4�w�4��4��4��4��4��4��4��4��4�]A��4��4�'�4�7�4�G�4�W�4�g�4�qA�v�4��4�q�$�H�A�y�H��H�qA!��H��H�(�H�8�H�H�H�X�H�h�H�x�H��H��H��H��H��H��H��H��H�]A��H��H�(�H�8�H�H�H�X�H�h�H�q01'666654&'676767#"&&&546667666632!326667"!2654&&&#JuR4I.4> Mj?9R47<;AfL4!< )MmD;DS8 CeY,3'4WC- -Q%D8* 1  #"-!4ByjCtb$ $=QZ]*" Nk@6.IY0P* (Ie=QM6���PDb}�G�U�o �/���+���� �+�+��Q�+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]���+9�/�Mи�M/A��Q��Q�]A� �Q��Q�)�Q�9�Q�I�Q�Y�Q�i�Q�y�Q��Q� ]�+�q��c/�m/�/��EX�$/�$� >Y��EX�/��>Y��EX�@/�@�>Y��EX�B/�B�>Y�h��[�+�N��.�+�B�4�A!��4��4�'�4�7�4�G�4�W�4�g�4�w�4��4��4��4��4��4��4��4��4�]A��4��4�'�4�7�4�G�4�W�4�g�4�qA�v�4��4�q�$�H�A�y�H��H�qA!��H��H�(�H�8�H�H�H�X�H�h�H�x�H��H��H��H��H��H��H��H��H�]A��H��H�(�H�8�H�H�H�X�H�h�H�q01'666654&'676767#"&&&546667666632!326667"!2654&&&#"&&&'667326667#JuR4I.4> Mj?9R47<;AfL4!< )MmD;DS8 CeY,3'4WC- -QKSZ-1\SI AHK!#MIA%D8* 1  #"-!4ByjCtb$ $=QZ]*" Nk@6.IY0P* (Ie=QM6QnEEnQ9N//N9��FR�r����FR� �4�5/�6/� ܹ���и�/�5�и�/��A�����&��6��F��V��f��v���� ]A�����]��и�/��и�/��+и�+/���EX�0/�0� >Y��EX�/��>Y����+����A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�0�#�A�y�#��#�qA!��#��#�(�#�8�#�H�#�X�#�h�#�x�#��#��#��#��#��#��#��#��#�]A��#��#�(�#�8�#�H�#�X�#�h�#�q01%267!"#"&&&5467667!&&&&#"&&'666632r~ p$&=MOE9ZH~^6F#1Qm=8BP3 =g]X.Ik@J/(/P;!vJ>:/SqB(B!R\1-%@Q-Az��P=�F�<�� �+A��<��<�&�<�6�<�F�<�V�<�f�<�v�<��<� ]A��<��<�]�<���<�1и�1/���EX�/�� >Y��EX�/��>Y�6��7�+���9��,�A�y�,��,�qA!��,��,�(�,�8�,�H�,�X�,�h�,�x�,��,��,��,��,��,��,��,��,�]A��,��,�(�,�8�,�H�,�X�,�h�,�q��A�A!��A��A�'�A�7�A�G�A�W�A�g�A�w�A��A��A��A��A��A��A��A��A�]A��A��A�'�A�7�A�G�A�W�A�g�A�qA�v�A��A�q01%#"&&&546667&&546667666632'&&&&#"326667=AnaX+TX-!6D#KR)9!<BE!#JC: % %<S5+E1;n[ NrI# <V6=I\<MW- &D[6,L?0bR>82  ,1- .(*7<3%5(:D" <070��2��Q�"�(���# @� �2��T�"�(���@�2��Q�"�(���# @� ����T�"�(���@�2���"�(���# @��2���"�(���@�2��s�"�(���# @��2���"�(���@�2`�"�(���#��� @�2���"�(���@�2���"�(���@�2��q�"�(���@�2��1�"�(���@�2���"�(���#@� �2���"�(���#@� �2��d�"�(���@�2���"�(���@�2`�"�(�������2D�P�ܸ�Q/�R/��ܸ�Q�и�/�;��и�/��� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]����9�;�,и� �Lи�L/��/��EX�/�� >Y��EX�/��>Y��EX�J/�J�>Y�-��:�+��+���@�01'666654&'676767!56654&'5!#&&&&#!!&&&&##3326667!#JuR4I.4>ODMIH&! -  #-=*,PB.A2)+#3'%D8* 1  #"-)J+! $+>>8.>%M  #D;Vh*���2D�P�j��k/�l/��ܸ�k�и�/�;��и�/��� �A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]����9�;�,и� �Lи�L/��^/�h/�/��EX�/�� >Y��EX�/��>Y��EX�J/�J�>Y�c��V�+�-��:�+��+���@�01'666654&'676767!56654&'5!#&&&&#!!&&&&##3326667!#"&&&'667326667#JuR4I.4>ODMIH&! -  #-=*,PB.A2)+#3'KSZ-1\SI AHK!#MIA%D8* 1  #"-)J+! $+>>8.>%M  #D;Vh*YQnEEnQ9N//N9����A���9�]�5���+��$и�5�;���EX�//�/� >Y��EX��/���>Y�$���+��� ��/�%�013'6666733326665#"'6666733#"'667!b! - @O,750 #-.A2)+DMIHTWM.S>$  #E:V+! $+�����P �>�4�� �+A��4��4�&�4�6�4�F�4�V�4�f�4�v�4��4� ]A��4��4�]�4���4�)и�)/���EX�/�� >Y��EX�/��>Y�.��/�+��/�.9��$�A�y�$��$�qA!��$��$�(�$�8�$�H�$�X�$�h�$�x�$��$��$��$��$��$��$��$��$�]A��$��$�(�$�8�$�H�$�X�$�h�$�q��9�A!��9��9�'�9�7�9�G�9�W�9�g�9�w�9��9��9��9��9��9��9��9��9�]A��9��9�'�9�7�9�G�9�W�9�g�9�qA�v�9��9�q01%#"&&&546667&&54676632'&&&&#"326667=tzL\_1'BU/`l`ZAQlA/+ <BJ,7fN/ Urg_-/Rn@1RTaAD]9<]n2:m]G"cW6(026":( %@Y4)OA+K9Q`-6[B& #@5�-��1^�"�I���:�2��d�"�)���@� �"�J������ �"�J������ }�"�J������ �"�J������ �"�J������ L�"�J�������P ��N2�O/�P/�ܹ�2��и�/�O�=и�=/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]��и�/���EX�D/�D� >Y��EX�N/�N� >Y��EX�/��>Y��EX�8/�8�>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�D��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q��-�A!��-��-�'�-�7�-�G�-�W�-�g�-�w�-��-��-��-��-��-��-��-��-�]A��-��-�'�-�7�-�G�-�W�-�g�-�qA�v�-��-�q�3��N901%267&&#"#"&&&54666732666''#"&&&546666632666671uOfI@jM+1L[  0Qgi`!@vZ6"02$F?61ZC&,MKM,8vc?;Si|E025!  dNT;A<l]P}V->!N-rX4)/ *2 -f{{8L/:ph9{pU2$  ��P �"���;���P �"������P }�"������P �"������P �"���)���P L�"������Fy�"�*��� @�Fy�"�*��� @�Fy�"�*���@�Fy�"�*���@�Fy1�"�*���@�Fyd�"�*���@�7��L�"�K��� C:�7��L�"�K���C:�7��L^�"�K���D:�7��L^�"�K���D:�7L�"�K���D���7`L�"�K���D���2���"�+��� @�2���"�+���@�2��d�"�+���@�2��d�"�+���@�2`�"�+�������1���)�l�*/�+/�*�и�/�+�ܹ����%����EX� /� � >Y��EX��/���>Y��EX�/��>Y� ��01356654&'5!!56654&&&##1DNJHEMII=DM4M1/G/HI+! $++" #++!     #+���b}�"��� ����Y�"�������rY�"��� ���%��)�"���*����K9�"���# ���<h�F���"���#���F`L�"�L��� ����/�� L��1�k�-���+������и�-�'���EX�&/�&� >Y��EX�/��>Y� ��+����+��(и��+01#"&54666325665#'667354&&&'56666733#*-' )UDH 95ED>"CI2%2.2%+!7$3?#( 9A #+����F����/����+���EX�/�� >Y��EX��/���>Y01356654&&&'5666673FDH95ED>"CI+!63?#( #+����/�� �"�Y����+�� и�����EX�/�� >Y��EX��/���>Y� ���+� �и��0135665#'667354&&&'56666733#FDH 95ED>"CI+!7$3?#( 9A #+��F L�"�L����M+����1V� ���� �+���EX�/�� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q� ��901%#"&&&54&&&'56666733267V3WH8&/ :6FD?# \A0@&9X<3?#( oDN( ".���l�"�,���*@��c�"�,���)@��|q�"�,���*@�/��3Y�"�,���4@��x�"�,���#*@� F�F��d�"�,���*@�F���"�,���-@�F`�"�,���*����0��!��Y��� �+� �и�����EX�/�� >Y��EX�/��>Y�����+��� и��01#!5665#'66734&'5!3IH>DM IHDMg #++!# $++">����F�"�,����-b��$ c����$ c�)������+���EX�(/�(� >Y��EX� /� �>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01%#"&&&5466673266654&&&'5666673c3F(<<5;/(+ D&9.94*A;7 %csqN % "%\ys3>#( ���7��"�N��� ::�7��"�N���:�7��"�N������7`��"�N�������7��F�w� ���+� �2���EX�2/�2� >Y��EX�:/�:� >Y��EX�/��>Y��EX�/��>Y� ��-�+� ��29�3��2901%#"&'!566566667666632&&#"66&!7�91' *3,%pBJ#>X7DA;)SB*(+.k> MD-4!-{,J*x$- ^  ++x`," !,+ #4>.pj #++"G ��2�"�.��� m@�2�"�.���P@�2�"�.���g���2`�"�.���g����2�?P�@/�A/�@�и�/�;��и�A�ܺ���9�и�/��#�A��#��#�]A� �#��#�)�#�9�#�I�#�Y�#�i�#�y�#��#� ]���EX� /� � >Y��EX�/�� >Y��EX��/���>Y��EX�6/�6�>Y��6�9��&�A�y�&��&�qA!��&��&�(�&�8�&�H�&�X�&�h�&�x�&��&��&��&��&��&��&��&��&�]A��&��&�(�&�8�&�H�&�X�&�h�&�q�:�6�901356654&'5!6632'66'&&#"67#"&'2DMIHDMjBN/T@& '6;7*)'%)/2;w0- HI+! $++"ST6U<.9+F=?' + b #+����<��n�"�O��� <o�"�O��� ���<`�"�O��� ��`yq�"�O���# ���*��F��H�"�L��� �+� �и����/��EX�/��>Y�!����+���и�!�01#!566665#'66734&&&'566732DR>+:"  6*Hx>$ ++|$-2 (" "R���F��H�.���� �+� �и� �и��&и��+��%/��EX�/�� >Y��EX�'/�'� >Y��EX�/��>Y�-����+���и�-�и�'���и�*и�+01#!566665#'66735#'66734&&&'56673#32DR>+:"   6*Hx>$ ++$n$n-2 (" "An���������4�N����+��"и��-��,/��EX� /� �>Y�1���+�1�и�/� �01#"'!566665&&#"'6666324&&&'566732672=H' DR>+:"#(B%51>G'  6*Hx>$!&I"{)P@( ++ A8)Q@(-2 (" "F @;���6���(�F�$���+��и�$���/��EX��/���>Y����9����9013566665'6666774&&&'56677F+:"  6*Hx>$DR+=d `-2 (" "gdZ +�2���"�/��� @�2�"�/������2`�"�/������2`1�"�/���#���@��,���*�c����+��и�����EX�/�� >Y��EX�/��>Y��� �+��и� �и��$�01%!5665#'66734&'5!3#3326667DM IHDM*H7.?0'W+!" $++"C #D;�����,���6��+���+��и��и�+� и�+�%���EX�/�� >Y��EX�/��>Y��� �+����+��!и��$и��&и� �)и��0�01%!5665#'66735#'66734&'5!3#3#3326667DM  IHDM*H7.?0'W+!M"n" $++"TCnC #D;�������=�m�2���+��и�2�"���EX�/�� >Y��EX�/��>Y�&��/�+�&� и� /���и�/��7�01%!5665&&#"'66663234&'5!3267#"'3326667DM(B%51>G'IHDM"&I"62=H' *H7.?0'W+! A8)Q@( $++" @;)P@( #D;���)���.�Y�#���+��и�#����EX�/�� >Y��EX�/��>Y� ��9���9�(�01%!5665'6666774&'5!%3326667DM gIHDM*H7.?0'W+!@ 4 $++"E4> #D;�7��P�"�P���b���7��PL�"�P���F���7`P�"�P���F���<��"�"�0��� N@�<��"d�"�0���2@�<`"�"�0���2���7��L�"�Q���`���7��L�"�Q������7��L�"�Q���C���7��LL�"�Q���D���7L�"�Q���D���7`L�"�Q���D��� B�I�J/�K/�Eܹ���J�.и�./���:и�:/���EX�8/�8� >Y��EX�?/�?� >Y��EX�/��>Y��EX��/���>Y�?� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�4и�4/�:��8901!56654&&&#"#"&&&5466673266654&&&'5667666632IC 1$MX^0 7I(??83-(,&! ;083Dv6" +kmf'+P=%=O+=L,BkN3uoK "   "  X|'. ( )#CiI'6S8+����7 �I�J/�K/��ܹ���J�3и�3/�*��>и�>/�?�3�*9���EX�=/�=� >Y��EX�D/�D� >Y��EX�./�.�>Y��EX� /� �>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�D�$�A�y�$��$�qA!��$��$�(�$�8�$�H�$�X�$�h�$�x�$��$��$��$��$��$��$��$��$�]A��$��$�(�$�8�$�H�$�X�$�h�$�q�9и�9/�?� �=901%#"&&&5466673266654&&&#"!56654&&&'5667666632%=M(DD="OE.),=90E<(1#MW_0LARBJ83Dt8# ,jlf'+P=%XuoK " " ""%^|V=L+BkNC ++_'. ) )#CiI'6S8���2��"�1��� @�2��"�1��� J@�2��"�1���@�2�d�"�1���@�2��"�1������2`��"�1������ ��9�[�:/�;/��ܹ�/��и�/�:�#и�#/�����EX�(/�(� >Y��EX�4/�4� >Y����+01&&'#"&&&546667326665&&'5324&'5!o29 C);'BA;<.$(*$!;1 "H'APHIwnI "   "Wu+vo ' ++ &�����2��B��C/�D/�C�и�/�D�ܹ�9��и�9� и� /��>����EX� /� � >Y��EX�/�� >Y��EX��/���>Y�4��%�+���� 9�=��� 90135665&&'5324&'5!#"&&&546667326667'&'2JG!I'APHI1$AB;<.$(*$!.& uCN+ &+vo ' ++ &DjTB"   AsZ  & +� �I��J/�K/�Eܹ���J�.и�./���9к�:�.�E9���EX�8/�8� >Y��EX�?/�?� >Y��EX��/���>Y�)���+�?� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�:���8901!56654&&&#"#"&&&546667326665&&&&'56676666323DN->%([kM/B'BA;<.$(*$!4* 7/D6#M~r6+\M1II+!�Rk?"ZzwnI "   "Wu ( + '#jS"Ex^ "+����1e �Iy�J/�K/��ܹ���J�3и�3/�*��>к�?�3��9���EX�=/�=� >Y��EX�D/�D� >Y��EX�./�.�>Y��EX� /� �>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�D�$�A�y�$��$�qA!��$��$�(�$�8�$�H�$�X�$�h�$�x�$��$��$��$��$��$��$��$��$�]A��$��$�(�$�8�$�H�$�X�$�h�$�q�?� �=901#"&&&546663266654&&&#"!56654&&&'5667666632e '=FJ"%E4 *+ #3"". ->%([kM63eDN83D6#M~r6+\M1KhlO#4)%# '$!&cRRk?"Zz| #++!'1+ '#jS"Ex^���1e �I��J/�K/��ܹ���J�3и�3/�*��>к�?�3��9���EX�=/�=� >Y��EX�D/�D� >Y��EX�./�.�>Y��� �+�D�$�A�y�$��$�qA!��$��$�(�$�8�$�H�$�X�$�h�$�x�$��$��$��$��$��$��$��$��$�]A��$��$�(�$�8�$�H�$�X�$�h�$�q�?�.�=901#"&&&5466673266654&&&#"!56654&&&'5667666632e+H]3FMN$,XG- ,.>></^J.->%([kMHI=DN83D6#M~r6+\M1hm'" !% "' <y|Rk?"Zz| #++!'1+ '#jS"Ex^���1) �E|�F/�G/��ܹ���и�/�F�/и�//� и� /�/�&��:к�;� ��9���EX�9/�9� >Y��EX�@/�@� >Y��EX�/��>Y��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�@�"�A�y�"��"�qA!��"��"�(�"�8�"�H�"�X�"�h�"�x�"��"��"��"��"��"��"��"��"�]A��"��"�(�"�8�"�H�"�X�"�h�"�q�;��9901#"&&&5466673266654&&&#"!56654&&&'5667666632)YKAQd=Td7 ,.<KX3@hJ'->%QmHI=DN83D6#6rrq6+\M17H/%0DF "*J8!/dlzRk? #++!x'1+ '#;jP/Ex^����P�"�R��� ���P�"�R���#���6�Pb�"�R������P�"�R���#����Pb�"�R������P�"�R���#����P�"�R������Pe�"�R���#����P�"�R������P`�"�R���#������P}�"�R������P�"�R������P9�"�R���#���6h�P�"�R���#���$h�P�"�R���#���h�P�"�R���$���P9�"�R���#$���6h�P9�"�R���#$���h�P�"�R���#���$h�PL�"�R������P�"�R���#���$h�P�"�R������P`�"�R�������P� ��-a�./�//�.�"и�"/����и��/�/�ܹ� �� и� /���EX�)/�)� >Y��EX�/��>Y�����+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�)��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q01326667'&&&&#"#"&&&546666632 <Q\*BcB$9O`/He@"<Ter=_m;!;Seu>^m;Fz[4/W|MZG}^74]~JCraF'H~fBsaF(H�P�"����,����PS� ��=�>/�?/�+ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�>�и�/���+9� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]���+9�+�'и��:��&/�9/��EX�/�� >Y��EX�0/�0�>Y��9�&9��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q��9�&9���A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q014&'32666%&&#"466666327667#"&''7&&t?89K`~I^?8c9K`~I+MmR^HiDQ^^{^Hg !&% Q^ujJ03WqjJ204Wp[yV/=7![h=6 ![�����PLy��;� ��(�+�����+A�������]A� ������)���9���I���Y���i���y������ ]A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�5���9�5/A��5��5�]A� �5��5�)�5�9�5�I�5�Y�5�i�5�y�5��5� ]���8���9�=��9/��EX�//�/� >Y��EX�5/�5� >Y��EX�#/�#�>Y�/��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�#��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�8�#�99014&&&#"32666#"&&&5466666326654&'74Rh3Lh?8Uf.GfB 14YB&)"<Ter=_m;!;Seu>[64/Om@:ePOl?5b=EK$<UCraF'H~fBsaF(C<#D4P4�PL�"���6���PL�"������PLY�"������PL�"������P`Ly�"������Fr�"�2���[@�FrQ�"�2���# i@� �FrT�"�2���i@�FrQ�"�2���# i@� �FrT�"�2���i@�Fr�"�2���# i@�j�Fr�"�2���h@�Frs�"�2���# i@�m�Fr�"�2���i@�F`r�"�2���#j��� i@�Fr�"�2���j@�Fr�"�2���i@�Fr�"�2���#j@� �Frq�"�2���#j@�t�Fr�"�2���#j@�j�Fr1�"�2���t@�Fr�"�2���#t@� �Fr�"�2���#t@� �Frq�"�2���#j@�t�Frd�"�2���j@�Frq�"�2���#j@�t�Fr�"�2���m@�F`r �"�2���j����Fr � ��)]�*/�+/�ܹ����и��/�*� и� /� �� и� /���EX�%/�%� >Y��EX�/��>Y� �� �+�%��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01&&&&#"3266677#"&&&5466632 >aMS`:?gKRd9ZrxDXv|A]MBzlZlSCā nj~nm�Fr�"���� {@��F��9� ��(�+�����+A�������]A� ������)���9���I���Y���i���y������ ]A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�3���9�3/A��3��3�]A� �3��3�)�3�9�3�I�3�Y�3�i�3�y�3��3� ]���6���9�;��7/��EX�-/�-� >Y��EX�#/�#�>Y�-��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�#��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�6�#�79014&&&&&#"32666#"&&&54666326654&'7.CTd9Ya4=gMSe86[ELNZrxDXv\<<5uEygK+KzpȗXE>GK%]nj~n>6%J4P4�F�"0��� @�F�"0��� @�Fq�"0���j@�F�"0���m@�F`�"0���j����P�� �L�M/�N/�M�и�/��и��/��и�/�N�ܸ�*и�*/� ��*9��8�A��8��8�]A� �8��8�)�8�9�8�I�8�Y�8�i�8�y�8��8� ]�$и�$/��D�A��D��D�&�D�6�D�F�D�V�D�f�D�v�D��D� ]A��D��D�]���EX�/�� >Y��EX��/���>Y��EX�//�/�>Y��� ��#и�$и��=�A�y�=��=�qA!��=��=�(�=�8�=�H�=�X�=�h�=�x�=��=��=��=��=��=��=��=��=�]A��=��=�(�=�8�=�H�=�X�=�h�=�q013'66667333&&&&546666632326667!566666654&&&#"o -kR!!A_}ZnJ0`_- F:[E0 /^\DlR9$*DaC>CD *@+UQA{jO-JzYX)B0GGDnLxfZY_9[L.K`d`%<c[[gxLn�7 �"�S���0���7 L�"�S�������7 ��>�?/�@/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�?�)и�)/� �� и� �4к�5�)�9��3/��EX�:/�:� >Y��EX�$/�$�>Y��EX�/��>Y�:��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q���9�5�$�39014&&&#"326667#"&&&'!56654&&&'5667666632f)DZ0:JT,ME9X> 8N`o<1<D#L^4BJ 7*Hy<%3dYLDtT/co;4W@s<?6Zr:zthM- '? ++-2 (" "=V7@y��)���"�3��� @�)��d�"�3���@��1���9W�:/�;/�:�и�/�3��и�;�ܺ�#��9�+�A��+��+�]A� �+��+�)�+�9�+�I�+�Y�+�i�+�y�+��+� ]���EX� /� � >Y��EX��/���>Y� �0A��0��0�]A��0��0�(�0�8�0�H�0�X�0�h�0�x�0��0��0��0��0��0� ]���и�/���&A��&��&�'�&�7�&�G�&�W�&�g�&�w�&��&��&��&��&��&� ]A��&��&�]���#��� 9�0�2и�2/01356654&'5!632#"&''3266654&&&#"1DNJH3D(?\l{C'AT[['.Q"*M#.dT6;fM20'D4+! $++ .ZVErYA+G $GkGSvK# +�����P  ��Oʸ�P/�Q/�"ܹ�C���и�P�7и�7/��A�����&��6��F��V��f��v���� ]A�����]�C�,к�-�7�"9�"�Hи�H/���EX�?/�?� >Y��EX�'/�'�>Y��EX�2/�2�>Y�K���+�?��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�2� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q�-�'�?9�B�?�901&&#"326667&&&&#"!5665#"&&&54666766325466676632!xH8hQ11L[)"B@?#(+)'" ->M5^L&JOW38vc?8Q\#9p&/]6$8'3o'+I59?/^^Ub5-:!", K{[7 ++.H3AzoXsP"(U{]H"-/!+*����P ��P(����+�6��P�+�F��>�+�P�A�����&��6��F��V��f��v���� ]A�����]�F�R���EX�%/�%� >Y��EX�//�/� >Y��EX�K/�K�>Y��EX�/��>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�%� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q��K�%9�K�9�A!��9��9�'�9�7�9�G�9�W�9�g�9�w�9��9��9��9��9��9��9��9��9�]A��9��9�'�9�7�9�G�9�W�9�g�9�qA�v�9��9�q01%26667&&#"%#"&&&5466676632666673266654'6666#"&&&5"B@?!xH8hQ11L[+&JOW38vc?8Q\#9p&68<"    7H' +329bH=N.d-:9?/^^Ub5B.H3AzoXsP !$  !N-s|$  ))\N4-Kc6�� ��IW� ���+� ��:�+A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]� �?��и�/A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�?���?�Bи�B/���EX�5/�5�>Y����+����E�+�5�%�A!��%��%�'�%�7�%�G�%�W�%�g�%�w�%��%��%��%��%��%��%��%��%�]A��%��%�'�%�7�%�G�%�W�%�g�%�qA�v�%��%�q�B�E��90126667&#"'46663232666'&666#"&&&5454&5#"&&& '  i' )/RpB=X9-?(/ (8:7`EDeB!-d3+D/ ",-E,_N3:`|A}xd+*2'&\Q6@wk50%  1,3F����B  ��Z4���!�+�>��Z�+�P��H�+�Z�A�����&��6��F��V��f��v���� ]A�����]�H�Jи�J/�P�\���EX�-/�-� >Y��EX�7/�7� >Y��EX�U/�U�>Y��EX�/��>Y���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�-� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q��U�-9�U�C�A!��C��C�'�C�7�C�G�C�W�C�g�C�w�C��C��C��C��C��C��C��C��C�]A��C��C�'�C�7�C�G�C�W�C�g�C�qA�v�C��C�q01%26667&&#"%#"&&&&&54666667666632666673266654'46663#"&&&5 (Y\Y('V-`]T?%9]v/\bk=,a^UA&$:JMI"HD==>C&! *  .)' $49@e?AO,i(@R)NV;WsTrĎQx<_B"%IkdN{gS;  .%  &%-&i=MqJ##'0_K/.V{M�7�� �"�U������7�� �"�U������7�� L�"�U����� �"�U������7` �"�U������7`�"�U���#������)s�"�5��� '@�)s�"�5��� @�)sd�"�5��� @�)s �"�5��� ���)`s �"�5��� ���)`s1�"�5���# ���@�^�"�V������^�"�V���#���h�P�"�V������P�"�V������P�"�V���#���@�^L�"�V������^`�"�V������^`L�"�V���#������ �I�J/�%и�%/��ܸ�%�A�0��]A���]A������]A�P��]A�p��]�����Cܸ�%�C��*и�*/���K���EX� /� �>Y�/��>�+� ��A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q01%#"&&&5466673266654&&&&&546667666632&&&&#" 6H(AGFB7$(+(+*,J6-@(@?9B7$(+1-' 1%BaoQ % " 'OvOO̼:\bI "   " %FiCMͽ���uu�"�6��� @�uu�"�6���# @��uu�"�6��� @�uu�"�6���@�uu�"�6���#@��uud�"�6���@�u`u �"�6������u`ud�"�6���#���@�Z�"�W���_�Z�"�W���_� ��"�W���_���`��"�W���_��� ��;�"�7���$@� ��;d�"�7���%@� ;�"�7���%��� `;�"�7���%���)-�"�X������)-}�"�X���$���)-�"�X���#���)-Y�"�X���$���)-9�"�X���#$���@h�)-�"�X���.���)-�"�X���#.���$h�)-9�"�X���#$���@h�)-9�"�X���#$���h�)-+�"�X���#$���#h�)-�"�X���#$���.h�)-�"�X���$���)-�"�X���'���)`-�"�X���$����)-� �Ld�M/�N/�ܹ���M�(и�(/����и�(�/и��<и��>и��I���EX�;/�;� >Y��EX�H/�H� >Y��EX�/��>Y��EX�#/�#�>Y�>���+�#���A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�ܸ� и��к����9��)и��*и�>�.и�5ܸ�Dи�>�Jи�.�K01%266675!#67#"&'#"&&&55#'667354&&&'566667!54&&&'56673 CGN,C'9Hj  :3 %D:, #,>gWI /VB'j j4.$?;<! 7.H8jZ)A/QF^8E>N  -)]g>M*Ex^$05 (  '`-6 ( &'`��)y�ND�-���+���7�+����H�+A��H��H�]A� �H��H�)�H�9�H�I�H�Y�H�i�H�y�H��H� ]�H� и� /�7�и��Bк�C���9�K���9��L/��EX�/��>Y��EX�/��>Y���L9�2�A!��2��2�'�2�7�2�G�2�W�2�g�2�w�2��2��2��2��2��2��2��2��2�]A��2��2�'�2�7�2�G�2�W�2�g�2�qA�v�2��2�q�C��L9�K��L90167#"&'#"&&&54&&&'5666673266674&&&'5667666654&'7Md  :3 %D:, #,>gWI /VB'4.$?;<!'9$ CGN, 7.H8-?)KUY)*>N  -)]g>M*Ex^05 (  'F^8)A/-6 ( &'.,(4P4�)�"u���@���)�"u������)Y�"u���$���)�"u���'���)`y�"u���$����<�;C�</�=/� ܸ�<�и�/�*�A��*��*�&�*�6�*�F�*�V�*�f�*�v�*��*� ]A��*��*�]� �4�A��4��4�]A� �4��4�)�4�9�4�I�4�Y�4�i�4�y�4��4� ]���EX�#/�#� >Y��EX�:/�:� >Y��EX�/��>Y�/�A!��/��/�'�/�7�/�G�/�W�/�g�/�w�/��/��/��/��/��/��/��/��/�]A��/��/�'�/�7�/�G�/�W�/�g�/�qA�v�/��/�q01#"&&&54676&&&'&'5!3266654&&&'7!?-# ,<$/F]sEg^-I\ "-?Z0J3/Oi::X;4K0Yw'TZ_3/ig_G+GvTpS+\$RbwKC}a;9Xk3Kw\\���2�"�8���@�2�"�8���@�2�"�8���@�2q�"�8���@�2�"�8���#@� �21�"�8���@�2�"�8���#@��2�"�8���#@� �2�"�8���#@� V�2�"�8���#@��2q�"�8���#@��2�"�8���@�2�"�8���@�2`�"�8�������,� �9!�:/�;/�ܹ���:� и� /����и� �'и��1и��3���EX�,/�,� >Y��EX�8/�8� >Y��EX�/��>Y�3���+����A!�������'���7���G���W���g���w���������������������������]A�������'���7���G���W���g���qA�v������q�3�и��и��!и�3�&01%266655!3##"&&&55#'66734&'5!!4&'5!GnK'{-YDM@xlg}F IHDMIHUEpJy`i8l">C[ΎK9uz" $++"> $+��2x�3��4/�5/�ܸ�4�и�/����%���1/��EX�/�� >Y��EX�*/�*� >Y��EX� /� �>Y� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q�0� �1901#"&&&54&'5!3266654&'5!654&'7x>hO@xlg}FIHDM-YVGnK'IHcpCLQ&ΎK9uz $++"k`i8EpJ $+4P4�2x�"��� @�2x�"��� V@�2xq�"���@�2x�"���@�2`x�"������Y�"�Y������`�"�Y���������� �@���EX� /� � >Y��EX�/��>Y��EX�/��>Y��� 90176666766667!56666'!&  "(' J 42~'1-%+   ++  +�� ��Fs�G/�H/�G�+и�+/�H�!ܺ���+�!9�+��A�����&��6��F��V��f��v���� ]A�����]�!��A�����]A� ����)��9��I��Y��i��y���� ]�>�+�!9���EX�6/�6� >Y��EX�E/�E� >Y��EX�&/�&�>Y���&�69� �A!�� �� �'� �7� �G� �W� �g� �w� �� �� �� �� �� �� �� �� �]A�� �� �'� �7� �G� �W� �g� �qA�v� �� �q�>�&�6901%3266654&&&'#"&&&5466677&&'5!6&&&'5!", ")&!% 6( ?aC,O:"%J 22'//%N*DaC-*8! )0;O; q<\MH)%\Q79O16CX; ++ ! +��� q�"�9���@�` �"�9���������  ��@���EX� /� � >Y��EX�/��>Y��EX�/��>Y��� 901766766667!566'!DM '.,  E?MP; GR`+ D c ++L +��"�Z��� ����"�Z�������"�Z������L�"�Z������L�"�Z�������"�Z������`�"�Z�������"�:��� |@��"�:��� @��"�:��� _@�d�"�:���`@�d�"�:���`@�`�"�:���`�����L�"�[��� �����L�"�[��� �����d�"�;���y@���d�"�;���y@ �"�\���1�� �"�\����� �"�\����� Y�"�\����� �"�\����� L�"�\����� �"�\����� �"�\����� �"�\������ e �?����EX�>/�>� >Y��EX� /� � >Y��EX�&/�&�>Y��&� 9� ���&�3�A!��3��3�'�3�7�3�G�3�W�3�g�3�w�3��3��3��3��3��3��3��3��3�]A��3��3�'�3�7�3�G�3�W�3�g�3�qA�v�3��3�q01666632&&&##"#"&&&5466673266677&&'5!'1,krp1;-"*#A>9,krp1;-")'?BA: 42w w]%  #)( "@]<1w]&  #)( #A^<>P +������"�<��� {@�����"�<���  @�����"�<��� ^@����q�"�<���_@����1�"�<���i@����d�"�<���_@�����"�<���b@��`�"�<���_������t�>!�?/�@/�9ܹ���?� и� /��A�����&��6��F��V��f��v���� ]A�����]�-�9�9���EX�%/�%� >Y��EX�2/�2� >Y��EX��/���>Y�%��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q�-���%901!!5665&&&&'&&&&#"&&54666326&'5!.[I$MNL"%""&&,1%0:Yi/7I3#HF 1MEI'?/+'N}3$"4$$8L7DdB!%_ ++ V ������k(�A��B/�C/�B�и�/�;����;9�C�%ܸ�(и�(/�%�1�A��1��1�]A� �1��1�)�1�9�1�I�1�Y�1�i�1�y�1��1� ]���EX�/�� >Y��EX��/���>Y�������9�6й� �01!5665&&&&'&&&&#'6632666632'6654&&&#"h[I%^b\# $6*;v*. %VVR#9GZ</Q;".98 %&?'?/+'Q0  + '0H.P<"$<O,. 1$-"@*V +��L��=�"�]������L��=�"�]������L��=�"�]������L��=L�"�]������L=�"�]������L`=�"�]������;���"�=��� J@�;���"�=��� -@�;���"�=���-@�;��d�"�=���.@�;�"�=������;`�"�=�������;����N���EX�/�� >Y��EX� /� � >Y��EX�/��>Y����и���01!'5!267&&&&#!!26667`8a<8$" +Vs()Y(b0Z*+PF+ JP%0TB���& R�9�����+A�����]A� ����)��9��I��Y��i��y���� ]���EX�+/�+� >Y��EX�//�/� >Y��EX�/��>Y�5���+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�/�#��2��5901#"&&&5466673266654&&&"&&'!"'73!663RSTG~]6*0:wC<fK*,U{O)O(! 1%'!s Pe:j}E&57 KP*QwLCc;& !;. +6f����& R�"�������^�@�����+A�����]A� ����)��9��I��Y��i��y���� ]���EX�2/�2� >Y��EX�6/�6� >Y��EX�/��>Y�<���+���A!�����'��7��G��W��g��w������������������]A�����'��7��G��W��g��qA�v����q�6�*��9��<901#"&&&5466673266654&&&#"'&&''57!"'3!6632Q_Vi:*0BOV*?nP.(LlD-P01%$ 9%'q Az^9jyB-<="% %@/"HoL<pU43I. -+Q.[����^�"���@��<��R�5�����+�1���+�)�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]� �4и�4/�)�7���EX��/���>Y�$���+01356546666654&&&#"'&55466632Ȫ1IVI1)Ha8(K;$ F-L~WM}X01IVI1XR+Mpdbf9=iL+'?N'F^84[zFJvd\anE= +���� ,]�.�m����+�.����+�&���+A�����]A� ����)��9��I��Y��i��y���� ]�&�0���/�!�� �+01546666654&&&#"'&55466632"4;4"0@#1'D 5ZvA:\?""4;4",j.MC<;<#%;*!,   *L9!7I*-F<7;B)��F���5�����+�1���+�)�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�)�7���EX�$/�$� >Y��EX��/���>Y�$��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q013565546666654&&&#"'&55466632(<F<("9J)$8& F-DoH>gI((<F<(XR+9R@24;(.I2,:?iM*&BZ36L;17D1 +��(��z �4@����+�0���+�(�� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]A�����&��6��F��V��f��v���� ]A�����]� �3и�3/�(�6���EX�#/�#� >Y��EX��/���>Y�#��A�y����qA!�����(��8��H��X��h��x������������������]A�����(��8��H��X��h��q013566546666654&#"'&&5466632WN2JWJ23U<" P-McX]12JWJ2SR+$HmXIIO2|~&<M'%F^8+OqFJhN@DS; +����alLW������+��/��/015666654&'&&'66667w7E( '?.TWM #A5l*  )  *�����;lSQ�+�g��� �+���A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��-��%����+��� �+01!'66666654&#"'466632!26767IS|X:! ;H,7 1Sk:.M8&Xl -l,SbJ:/8A * D8%*@,(Rml��&ZKQ�@�o�7��!�+�7�����A��!��!�]A� �!��!�)�!�9�!�I�!�Y�!�i�!�y�!��!� ]�7�B�����+�2��&�+01#"&'732654&&&##"'666654&&&#"'466632K(LmD?? 732Rc1< >J' - 56@-Lc76N3&7"(E2Q3YD'/4)OM-=&.&(*' 2) 90 /<.*# !3B���P`��'�Q�����+�E�;�+�E�(и�E�/��J�;�E9�E�S��/�&/��EX�!/�!�>Y��EX�/��>Y��EX�"/�"�>Y��EX�(/�(�>Y�@��2�+�(�J�015666654&'&&'66667'667!'666654&#"'466632326767a,8 2% CE? 4*+/&kd|F/9$+(BV.%=-GtV$}" n!  " I#cZ<-4! 7-"3# BWwW�����P`���=�G�ɸ�H/�I/�ܹ�����и���и�H�&и�&/�*и�*/�&�7����Cи�C/��Fи�F/��5/�F/��EX�A/�A�>Y��EX�/��>Y��EX�>/�>�>Y��EX�B/�B�>Y��ܸ�и�и�и����013#!5666655!'66735666654&'&&'66667'667ɪ  $,3=,8 2% CE? 4*+/j e " n!  " �����P`� �&�c�f%�\��F�+����+��$A��\��\�&�\�6�\�F�\�V�\�f�\�v�\��\� ]A��\��\�]�\�6��'���dк�e�F�9��h���EX�;/�;� >Y��EX�@/�@� >Y��EX�/��>Y��EX��/���>Y��EX�/��>Y��EX�/��>Y�W��K�+�&�� �+�3��,�+� �и��%ܺ�d��;9�eи�f01%'667#!5666655!'6673#"&'732654&&&##"'666654&&&#"'4666323<+/.  $,3= =W72h33N*BO'0  2; %*,2$=O,+@(?7 7) j e W)G6%*!!@=$1 % !  )  .'&0$H(5�����e,� � �� /�/01#66667+ D 04/ 5F����y,� � �� /�/01#66667: I 382 5����ye� � �� /�/01#666670 ? -1+ 5����y� � �� /�/01#66667? D 04/ 5����d�PRI���c�����+A�������&���6���F���V���f���v������ ]A�������]���и������+� ��+01#"&5466632#"&5466632R%36.&321%36.&321#;,:6";-;#;,:6";-;���dR��������+A�������&���6���F���V���f���v������ ]A�������]���и�����EX� /� � >Y���+� �A�����]A�����(��8��H��X��h��x������������ ]01#"&5466632#"&5466632R%36.&321%36.&321P#;,:6";-;#;,:6";-;����P$v��G�����+A�����]A� ����)��9��I��Y��i��y���� ]��/01'6676&&&#'6666tYa'*,"7' 5A=$0E=!&P.0$*   $-3���FJ����/01'6676&&&''6666;]E8<I2S< GTR'4 2fea+06|B&J<%<";GO����2H�0��K�����+A�������&���6���F���V���f���v������ ]A�������]�� ��+01#"&5466632*-' )U2%2.2%��jF� ��%�����+��� и����/�/01'6675'667F  %7%  %7% h  s���=u:����=u:�����= j� � �� ���+01!'667! j R1.���=u:� � �� ���+01!'667!u� �"41���������}� � ���/�/01&&' '+(  '����0� �����/� /�/�/01&&'&&'i !!  !  ) )����������)� � ��/� /01766667  '+* 6 y)���:� ���/�/� /01&&&&'3  kD   {���b��� �� /�/016"&'&&&&'32  e  k`(    {��::b�����/�/� /�/01'7663&&&&'33 .  kZ )   {����S��(�+��/�!/�/�/�� ��и�/��01#"&&&#"'6666323267&&&&'32=H'#?<;(B%51>G'&D<6&I"  k)P@(#+#A8)Q@(#+#@;e   {�����(�5�c�����+A�����]A� ����)��9��I��Y��i��y���� ]����9��&/�,/�./��,�&901&&666654&#"'5466632&&&&'3|&%   / &*! 0<68J  k$# !%'" !! '4   {����.B}���� /�/����+01#"&&&'667326667KSZ-1\SI AHK!#MIAPQnEEnQ9N//N9���.B� �$���/����+01&&'#"&&&'667326667 $'% VKSZ-1\SI AHK!#MIA b'QnEEnQ9N//N9��.B��%���"/�%/����+01#"&&&'6673266677677667KSZ-1\SI AHK!#MIA  %' PQnEEnQ9N//N9< =)���.R��5�-��/�/�.��!�+�� ��и�/��01#"&&&#"'6666323267#"&&&'6673266672=H'#?<;(B%51>G'&D<6&I"&KSZ-1\SI AHK!#MIA)P@(#+#A8)Q@(#+#@;QnEEnQ9N//N9����.Br�,�F�3���%�+��%��9������?��2�+�*���+01&&&6666654&#"'5466632#"&&&'667326667%2/* -+ "*$&  &;H#?DKSZ-1\SI AHK!#MIA,'#%( % &&    .$<QnEEnQ9N//N9��/:� ����/�/� /01#66667%4k  /e   ����YRY��%��/� /�/�/���� и� /01#"&&&#"'66663232672=H'#?<;(B%51>G'&D<6&I"B)P@(#+#A8)Q@(#+#@;��]�i����/�/�/�/017''6677'&&']3366:"  ""�4K�������O3� � �� ���+01!'66667!  e    �����K� ����EX� /� � >Y��01!'66667!K  e    �O� ����EX� /� � >Y��01!'66667!  e    ��� ����EX� /� � >Y��01!'66667! 9     �s+� � �� ���+01!'66667! #     ��sm� � �� ���+01!'66667! #     ���@'� ��(���EX�/�� >Y� ���+���01!'66667!!'66667!@           ����<i� ���� ���+��� �+01!'667!7!'667!i     l20*1����d)L����/�/��ܹ��A�����]A� ����)��9��I��Y��i��y���� ]��и�/��A�����&��6��F��V��f��v���� ]A�����]�� ��+��и� �01#"&5466632#"&5466632*-' )Up*-' )U2%2.2%_2%2.2%����`aH��K�����+A�������&���6���F���V���f���v������ ]A�������]�� ��+01#"&5466632a*-' )U2%2.2%����daL��K�����+A�������&���6���F���V���f���v������ ]A�������]�� ��+01#"&5466632a*-' )U2%2.2%�����Fy��U���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]��/�/���901'666654&'7F"Up;T6PY\*>33/4P4��C��'��(/�)/�ܹ���A�������]A� ������)���9���I���Y���i���y������ ]�(�и�/� �A�� �� �&� �6� �F� �V� �f� �v� �� � ]A�� �� �]�����+�#���+014&&&#"326667#"&&&5466632]  &  &Z'?M&"9)'>M' 9*,!,+!+F3U?#*8 3W?#+9��S.�,�-���%�+��%��9������ /�*���+01&&&6666654&#"'5466632%2/* -+ "*$&  &;H#?D5,'#%( % &&    .$<����ZD���_���� �+A�� �� �]A� � �� �)� �9� �I� �Y� �i� �y� �� � ]�� ��9��/�/���901'666654&'67667#JuR4I.4>N'3'%D8* 1  #"ZTt*����@D�+��Q��� �+A�����&��6��F��V��f��v���� ]A�����]�� /����+01#"&&&546732679<<8,-HX00&I*4) 8-ZQ,TJ>%#$&���-T������/�/��EX��/���>Y01!#!5T'��'�����'������/�/��EX��/���>Y01!!#'�''�'���02� � ���/�/01&&']  "$ =-����� � ��/� /01%766667�+$" D-����:y� ���/�/� /01%&&&&'3  kD  5�������/� /�/01&&'%&&&&'3n-  r  k /   5��:�����/� /�/01%7667%&&&&'3= *  kK / 0  5����S��(�+��/�!/�/�/�� ��и�/��01#"&&&#"'6666323267%&&&&'32=H'#?<;(B%51>G'&D<6&I"  k)P@(#+#A8)Q@(#+#@;  5��F�(�5�c�����+A�����]A� ����)��9��I��Y��i��y���� ]����9��&/�,/�./��,�&901&&666654&#"'5466632%&&&&'3|&%   / &*! 0<68J  k# !%'" !! '42  5��.B(��"����/����+01&&'%#"&&&'667326667-  KSZ-1\SI AHK!#MIA( / QnEEnQ9N//N9���.B(��"���/����+01%7667#"&&&'667326667_ *KSZ-1\SI AHK!#MIAK / QnEEnQ9N//N9���.R��5�-��/�/�.��!�+�� ��и�/��01#"&&&#"'6666323267#"&&&'6673266672=H'#?<;(B%51>G'&D<6&I"&KSZ-1\SI AHK!#MIA)P@(#+#A8)Q@(#+#@;QnEEnQ9N//N9����.Br�,�F�3���%�+��%��9������?��2�+�*���+01&&&6666654&#"'5466632#"&&&'667326667%2/* -+ "*$&  &;H#?DKSZ-1\SI AHK!#MIA,'#%( % &&    .$<QnEEnQ9N//N9��/:� ����/�/� /01#66667%4k  /3   ����1R1����/�/�/� /��EX��/��� >Y� �A�y� �� �qA!�� �� �(� �8� �H� �X� �h� �x� �� �� �� �� �� �� �� �� �]A�� �� �(� �8� �H� �X� �h� �q�и�/01#"&&&#"'66663232672=H'#?<;(B%51>G'&D<6&I")P@(#+#A8)Q@(#+#@;�oO� ����EX� /� � >Y��01!'66667!  e    ��<)$���/�/��ܹ��A�����]A� ����)��9��I��Y��i��y���� ]��и�/��A�����&��6��F��V��f��v���� ]A�����]���EX� /� � >Y��EX�/�� >Y� �A�����]A�����(��8��H��X��h��x������������ ]�01#"&5466632#"&5466632*-' )Up*-' )U2%2.2%_2%2.2%����<a$�������+A�������&���6���F���V���f���v������ ]A�������]���EX� /� � >Y�A�����]A�����(��8��H��X��h��x������������ ]01#"&5466632a*-' )U2%2.2%�� ���� �3��/��EX�/��>Y��EX�/��>Y����+013'!#3dY::LR͎�������@SP_<������d����d+y��� ������������s���������������x�d���������-�f��W�X�LV�P���y�)�FH�=�X�=��1�L��b�D�7�N�n�h�^�d��X�=�=�=w�Pu�F��f�)J�F�)�2�2�F;�2b�FqB�2�2s�<1�2�F/�)�F}�)�uh� ;�23�����/�;w��7w�)�d�=��P� �P)�P�P}�-�j�7+�F$��7+�<m�7j�7�P=�7�P+�7�^�=�)����L�f��'�1����J�F�21�2�F;�2�P�P�P�P�P�P�P�P�P�P�P+�F+++j�7�P�P�P�P�P=�)=�)=�)=�)�F��h�@�w9�Fo�1�7�#�dy�;�!�d�=;���FJ�PH�=�=�=Q�=��P(�; �16�+2 �1B�1�P�P�Pw�P-��=�P�8�;�P�Z��������Fb�FX�P�=!�=}�\}�X�\�XH�=�����p�Pp��-�-�F,�2�X�X�L���2���2�2b�Fbbb�F�F*�K�F;�2;�2;�2+�F�16�F��(�d��F�N��P�d�2�P�P�P�P��P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P������������������������������������������������������;��;��� � � �f�)f�)f�)L��P�P�P�P�P�B�7J�FJ�FJ�FJ�FJ�F�J�=J�<)�P)�P)�P)�P)�P�P�P�)�)�)�)�����P�P�P�:�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�F�Fj�P�2�2�2���2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�A�P}�-�2�������P�P�P�P�P�P�P�F�F�F�F�F�Fj�7j�7j�7j�7j�7j�7;�2;�2;�2;�2;�2 �1++++�%++�F+�F+�/+�F+�/=�FB�1bbbb�/bb�Fb�Fb�Fb�0�F$$��7��7��7��7��7�2�2�2�2�2+�<++�<+�F�F��?�6�2�2�2�2�,�,�)m�7m�7m�7s�<s�<s�<j�7j�7j�7j�7j�7j�7``�71�21�21�21�21�21�21 1�2'�1�1�1�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�PF�PL�PL�PL�PL�PL�PL�P�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�P=�7=�7=�7/�)/�)/�1�P�P��B+�7+�7+�7++�7+�7}�)}�)}�)}�)}�)}�)�^�^�P�P�P�^�^�^�u�u�u�u�u�u�u�u��� �h� h� h� h� =�)=�)=�)=�)=�)=�)=�)=�)=�)=�)=�)=�)=�)=�)=�)�)�)�)�)�)�)�<;�2;�2;�2;�2;�2;�2;�2;�2;�2;�2;�2;�2;�2;�2;�,x�2x�2x�2x�2x�2x�2����3�3�3�����������������������������������k���L�L�L�L�L�L/�;/�;/�;/�;/�;/�;(�;�&�&*�^*�^z�<o� 4�F�(�a�;�&�P�P�P������d�d�P�F,�2��=�=H�=�=����}��0����)������:������������������H�]����������s��s���<�������F��C��S��Z��@T�-T����0������������������������������)� ���8�8�8�8��||BNV b ^ $XBnjp�\.0 !!"j# ##$$<$n$$$&"'J(B)*+>--.,./h/01245Z67f889N9:t:;B<<$<=(=4=@>T>`>l>x>>>>>>>???@@@@&@2@>@J@V@b@n@z@@@@@AjABCDDDEFGI\J6JVJK>KMrNJNNO0OPRR RSpTjU$UUWY(ZZZZ[\H\\]&]6]6]B]N]Z^`V`t`a0abbfbc c,c8c\d:ddddeTf,f4fgiii*i6iBiNiZifiri~iil2l>lJlVlbljlllm4mvnnfnnoo&o6oBoRo^onozoooooooooppp"p.p:pJpVpfpvpppqqqrrr"r2rBrRr^rnr~rrrrrrrrrs ss&s2s>sJsVsfsrssssssssssttt&t2tBtNt^tjtvttttttttttuvBvNvZvfwwwxxy:zl{f{r{~{{|}~j΄TЅ܅�4hΊڊ".:FRbr~Žʏ$4@P\lxȑԑ� �ؕ̕ ʗ֗*6BNZfr~ƙ:FR^jzRNZfr~&ȜԜ읖ƞҞޞdnҠޠz&2>JVbnzȥԥD.XBhtȫث� ,<HXhx r~ʰְ*:FRbrʱڱJVbnzʵַ**.νڽ &2>JVfr¾ҿȿԿ $4@LXdp|� 0<HTxÐÜèô &6FVfr~Ŋp0<HT`lxDŽ r~Ɋɖɢɮɺ&2>JVbnzʆʒʞʪr~ˊ˖ˢˮ˺̈́͐ͨ͜ʹvZfT`n:(fvBLnאײ8Hو>t~ڞ.ۊLܔL8lvޚ<`ߨb2"0Pt8L>d,`��������������� ��������Y2��������+��������� �+��������8�������%�?������� �d������� �q������� �~�������,��������������� �"������� �������� �������� f�������������� ��� ��7��� �7��� �8��� �8��� �8��� �8��� �8!��� �89��� �8Q���  �8f���  �8���  �8���  �8���  �8��� �8��� � 8��� � 8��� �8��� � 9 ��� � 9��� �9��� �9;��� �9@��� �9E��� �9]��� �9b��� �9f��� �9y��� �9~��� �9�� ���V�� ���� ���� ��J'�� ��q�� ���� ���� ��X�� ��"�� � �D7�� � �.{�� � �8�� � "�� ��47�� ��69�� � 9�� �9�� �&9�� � 9�� �:��� �0:�� �0:8�� �*:h��  �2:��  �&:��  �::��  �;$��  �;B�� � ;`�� �;�� �;�� �0;�� �;�� �;�� �<<��� � <<�� � <F�� �0<P�� � <�� �<�� �&<�� � <�� �<�� � <Copyright (c) SIL International, 2003-2008.Gentium BasicRegularSILInternational: Gentium Basic: 2008Gentium BasicVersion 1.100GentiumBasicGentium is a trademark of SIL International.SIL InternationalJ. Victor Gaultney and Annie Olsenhttp://scripts.sil.org/http://www.sil.org/~gaultneyCopyright (c) 2003-2008, SIL International (http://www.sil.org/) with Reserved Font Names "Gentium" and "SIL". This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.http://scripts.sil.org/OFLGentium Basic�C�o�p�y�r�i�g�h�t� �(�c�)� �S�I�L� �I�n�t�e�r�n�a�t�i�o�n�a�l�,� �2�0�0�3�-�2�0�0�8�.�G�e�n�t�i�u�m� �B�a�s�i�c�R�e�g�u�l�a�r�S�I�L�I�n�t�e�r�n�a�t�i�o�n�a�l�:� �G�e�n�t�i�u�m� �B�a�s�i�c�:� �2�0�0�8�G�e�n�t�i�u�m� �B�a�s�i�c�V�e�r�s�i�o�n� �1�.�1�0�0�G�e�n�t�i�u�m�B�a�s�i�c�G�e�n�t�i�u�m� �i�s� �a� �t�r�a�d�e�m�a�r�k� �o�f� �S�I�L� �I�n�t�e�r�n�a�t�i�o�n�a�l�.�S�I�L� �I�n�t�e�r�n�a�t�i�o�n�a�l�J�.� �V�i�c�t�o�r� �G�a�u�l�t�n�e�y� �a�n�d� �A�n�n�i�e� �O�l�s�e�n�h�t�t�p�:�/�/�s�c�r�i�p�t�s�.�s�i�l�.�o�r�g�/�h�t�t�p�:�/�/�w�w�w�.�s�i�l�.�o�r�g�/�~�g�a�u�l�t�n�e�y�C�o�p�y�r�i�g�h�t� �(�c�)� �2�0�0�3�-�2�0�0�8�,� �S�I�L� �I�n�t�e�r�n�a�t�i�o�n�a�l� �(�h�t�t�p�:�/�/�w�w�w�.�s�i�l�.�o�r�g�/�)� �w�i�t�h� �R�e�s�e�r�v�e�d� �F�o�n�t� �N�a�m�e�s� �"�G�e�n�t�i�u�m�"� �a�n�d� �"�S�I�L�"�.� � � � �T�h�i�s� �F�o�n�t� �S�o�f�t�w�a�r�e� �i�s� �l�i�c�e�n�s�e�d� �u�n�d�e�r� �t�h�e� �S�I�L� �O�p�e�n� �F�o�n�t� �L�i�c�e�n�s�e�,� �V�e�r�s�i�o�n� �1�.�1�.� �T�h�i�s� �l�i�c�e�n�s�e� �i�s� �c�o�p�i�e�d� �b�e�l�o�w�,� �a�n�d� �i�s� �a�l�s�o� �a�v�a�i�l�a�b�l�e� �w�i�t�h� �a� �F�A�Q� �a�t�:� �h�t�t�p�:�/�/�s�c�r�i�p�t�s�.�s�i�l�.�o�r�g�/�O�F�L� � � � � � �-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� � �S�I�L� �O�P�E�N� �F�O�N�T� �L�I�C�E�N�S�E� �V�e�r�s�i�o�n� �1�.�1� �-� �2�6� �F�e�b�r�u�a�r�y� �2�0�0�7� � �-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� � � � �P�R�E�A�M�B�L�E� � �T�h�e� �g�o�a�l�s� �o�f� �t�h�e� �O�p�e�n� �F�o�n�t� �L�i�c�e�n�s�e� �(�O�F�L�)� �a�r�e� �t�o� �s�t�i�m�u�l�a�t�e� �w�o�r�l�d�w�i�d�e� �d�e�v�e�l�o�p�m�e�n�t� �o�f� �c�o�l�l�a�b�o�r�a�t�i�v�e� �f�o�n�t� �p�r�o�j�e�c�t�s�,� �t�o� �s�u�p�p�o�r�t� �t�h�e� �f�o�n�t� �c�r�e�a�t�i�o�n� �e�f�f�o�r�t�s� �o�f� �a�c�a�d�e�m�i�c� �a�n�d� �l�i�n�g�u�i�s�t�i�c� �c�o�m�m�u�n�i�t�i�e�s�,� �a�n�d� �t�o� �p�r�o�v�i�d�e� �a� �f�r�e�e� �a�n�d� �o�p�e�n� �f�r�a�m�e�w�o�r�k� �i�n� �w�h�i�c�h� �f�o�n�t�s� �m�a�y� �b�e� �s�h�a�r�e�d� �a�n�d� �i�m�p�r�o�v�e�d� �i�n� �p�a�r�t�n�e�r�s�h�i�p� �w�i�t�h� �o�t�h�e�r�s�.� � � � �T�h�e� �O�F�L� �a�l�l�o�w�s� �t�h�e� �l�i�c�e�n�s�e�d� �f�o�n�t�s� �t�o� �b�e� �u�s�e�d�,� �s�t�u�d�i�e�d�,� �m�o�d�i�f�i�e�d� �a�n�d� �r�e�d�i�s�t�r�i�b�u�t�e�d� �f�r�e�e�l�y� �a�s� �l�o�n�g� �a�s� �t�h�e�y� �a�r�e� �n�o�t� �s�o�l�d� �b�y� �t�h�e�m�s�e�l�v�e�s�.� �T�h�e� �f�o�n�t�s�,� �i�n�c�l�u�d�i�n�g� �a�n�y� �d�e�r�i�v�a�t�i�v�e� �w�o�r�k�s�,� �c�a�n� �b�e� �b�u�n�d�l�e�d�,� �e�m�b�e�d�d�e�d�,� �r�e�d�i�s�t�r�i�b�u�t�e�d� �a�n�d�/�o�r� �s�o�l�d� �w�i�t�h� �a�n�y� �s�o�f�t�w�a�r�e� �p�r�o�v�i�d�e�d� �t�h�a�t� �a�n�y� �r�e�s�e�r�v�e�d� �n�a�m�e�s� �a�r�e� �n�o�t� �u�s�e�d� �b�y� �d�e�r�i�v�a�t�i�v�e� �w�o�r�k�s�.� �T�h�e� �f�o�n�t�s� �a�n�d� �d�e�r�i�v�a�t�i�v�e�s�,� �h�o�w�e�v�e�r�,� �c�a�n�n�o�t� �b�e� �r�e�l�e�a�s�e�d� �u�n�d�e�r� �a�n�y� �o�t�h�e�r� �t�y�p�e� �o�f� �l�i�c�e�n�s�e�.� �T�h�e� �r�e�q�u�i�r�e�m�e�n�t� �f�o�r� �f�o�n�t�s� �t�o� �r�e�m�a�i�n� �u�n�d�e�r� �t�h�i�s� �l�i�c�e�n�s�e� �d�o�e�s� �n�o�t� �a�p�p�l�y� �t�o� �a�n�y� �d�o�c�u�m�e�n�t� �c�r�e�a�t�e�d� �u�s�i�n�g� �t�h�e� �f�o�n�t�s� �o�r� �t�h�e�i�r� �d�e�r�i�v�a�t�i�v�e�s�.� � � � �D�E�F�I�N�I�T�I�O�N�S� � �"�F�o�n�t� �S�o�f�t�w�a�r�e�"� �r�e�f�e�r�s� �t�o� �t�h�e� �s�e�t� �o�f� �f�i�l�e�s� �r�e�l�e�a�s�e�d� �b�y� �t�h�e� �C�o�p�y�r�i�g�h�t� �H�o�l�d�e�r�(�s�)� �u�n�d�e�r� �t�h�i�s� �l�i�c�e�n�s�e� �a�n�d� �c�l�e�a�r�l�y� �m�a�r�k�e�d� �a�s� �s�u�c�h�.� �T�h�i�s� �m�a�y� �i�n�c�l�u�d�e� �s�o�u�r�c�e� �f�i�l�e�s�,� �b�u�i�l�d� �s�c�r�i�p�t�s� �a�n�d� �d�o�c�u�m�e�n�t�a�t�i�o�n�.� � � � �"�R�e�s�e�r�v�e�d� �F�o�n�t� �N�a�m�e�"� �r�e�f�e�r�s� �t�o� �a�n�y� �n�a�m�e�s� �s�p�e�c�i�f�i�e�d� �a�s� �s�u�c�h� �a�f�t�e�r� �t�h�e� �c�o�p�y�r�i�g�h�t� �s�t�a�t�e�m�e�n�t�(�s�)�.� � � � �"�O�r�i�g�i�n�a�l� �V�e�r�s�i�o�n�"� �r�e�f�e�r�s� �t�o� �t�h�e� �c�o�l�l�e�c�t�i�o�n� �o�f� �F�o�n�t� �S�o�f�t�w�a�r�e� �c�o�m�p�o�n�e�n�t�s� �a�s� �d�i�s�t�r�i�b�u�t�e�d� �b�y� �t�h�e� �C�o�p�y�r�i�g�h�t� �H�o�l�d�e�r�(�s�)�.� � � � �"�M�o�d�i�f�i�e�d� �V�e�r�s�i�o�n�"� �r�e�f�e�r�s� �t�o� �a�n�y� �d�e�r�i�v�a�t�i�v�e� �m�a�d�e� �b�y� �a�d�d�i�n�g� �t�o�,� �d�e�l�e�t�i�n�g�,� �o�r� �s�u�b�s�t�i�t�u�t�i�n�g� �-�-� �i�n� �p�a�r�t� �o�r� �i�n� �w�h�o�l�e� �-�-� �a�n�y� �o�f� �t�h�e� �c�o�m�p�o�n�e�n�t�s� �o�f� �t�h�e� �O�r�i�g�i�n�a�l� �V�e�r�s�i�o�n�,� �b�y� �c�h�a�n�g�i�n�g� �f�o�r�m�a�t�s� �o�r� �b�y� �p�o�r�t�i�n�g� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e� �t�o� �a� �n�e�w� �e�n�v�i�r�o�n�m�e�n�t�.� � � � �"�A�u�t�h�o�r�"� �r�e�f�e�r�s� �t�o� �a�n�y� �d�e�s�i�g�n�e�r�,� �e�n�g�i�n�e�e�r�,� �p�r�o�g�r�a�m�m�e�r�,� �t�e�c�h�n�i�c�a�l� �w�r�i�t�e�r� �o�r� �o�t�h�e�r� �p�e�r�s�o�n� �w�h�o� �c�o�n�t�r�i�b�u�t�e�d� �t�o� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e�.� � � � �P�E�R�M�I�S�S�I�O�N� �&� �C�O�N�D�I�T�I�O�N�S� � �P�e�r�m�i�s�s�i�o�n� �i�s� �h�e�r�e�b�y� �g�r�a�n�t�e�d�,� �f�r�e�e� �o�f� �c�h�a�r�g�e�,� �t�o� �a�n�y� �p�e�r�s�o�n� �o�b�t�a�i�n�i�n�g� �a� �c�o�p�y� �o�f� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e�,� �t�o� �u�s�e�,� �s�t�u�d�y�,� �c�o�p�y�,� �m�e�r�g�e�,� �e�m�b�e�d�,� �m�o�d�i�f�y�,� �r�e�d�i�s�t�r�i�b�u�t�e�,� �a�n�d� �s�e�l�l� �m�o�d�i�f�i�e�d� �a�n�d� �u�n�m�o�d�i�f�i�e�d� �c�o�p�i�e�s� �o�f� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e�,� �s�u�b�j�e�c�t� �t�o� �t�h�e� �f�o�l�l�o�w�i�n�g� �c�o�n�d�i�t�i�o�n�s�:� � � � �1�)� �N�e�i�t�h�e�r� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e� �n�o�r� �a�n�y� �o�f� �i�t�s� �i�n�d�i�v�i�d�u�a�l� �c�o�m�p�o�n�e�n�t�s�,� �i�n� �O�r�i�g�i�n�a�l� �o�r� �M�o�d�i�f�i�e�d� �V�e�r�s�i�o�n�s�,� �m�a�y� �b�e� �s�o�l�d� �b�y� �i�t�s�e�l�f�.� � � � �2�)� �O�r�i�g�i�n�a�l� �o�r� �M�o�d�i�f�i�e�d� �V�e�r�s�i�o�n�s� �o�f� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e� �m�a�y� �b�e� �b�u�n�d�l�e�d�,� �r�e�d�i�s�t�r�i�b�u�t�e�d� �a�n�d�/�o�r� �s�o�l�d� �w�i�t�h� �a�n�y� �s�o�f�t�w�a�r�e�,� �p�r�o�v�i�d�e�d� �t�h�a�t� �e�a�c�h� �c�o�p�y� �c�o�n�t�a�i�n�s� �t�h�e� �a�b�o�v�e� �c�o�p�y�r�i�g�h�t� �n�o�t�i�c�e� �a�n�d� �t�h�i�s� �l�i�c�e�n�s�e�.� �T�h�e�s�e� �c�a�n� �b�e� �i�n�c�l�u�d�e�d� �e�i�t�h�e�r� �a�s� �s�t�a�n�d�-�a�l�o�n�e� �t�e�x�t� �f�i�l�e�s�,� �h�u�m�a�n�-�r�e�a�d�a�b�l�e� �h�e�a�d�e�r�s� �o�r� �i�n� �t�h�e� �a�p�p�r�o�p�r�i�a�t�e� �m�a�c�h�i�n�e�-�r�e�a�d�a�b�l�e� �m�e�t�a�d�a�t�a� �f�i�e�l�d�s� �w�i�t�h�i�n� �t�e�x�t� �o�r� �b�i�n�a�r�y� �f�i�l�e�s� �a�s� �l�o�n�g� �a�s� �t�h�o�s�e� �f�i�e�l�d�s� �c�a�n� �b�e� �e�a�s�i�l�y� �v�i�e�w�e�d� �b�y� �t�h�e� �u�s�e�r�.� � � � �3�)� �N�o� �M�o�d�i�f�i�e�d� �V�e�r�s�i�o�n� �o�f� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e� �m�a�y� �u�s�e� �t�h�e� �R�e�s�e�r�v�e�d� �F�o�n�t� �N�a�m�e�(�s�)� �u�n�l�e�s�s� �e�x�p�l�i�c�i�t� �w�r�i�t�t�e�n� �p�e�r�m�i�s�s�i�o�n� �i�s� �g�r�a�n�t�e�d� �b�y� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �C�o�p�y�r�i�g�h�t� �H�o�l�d�e�r�.� �T�h�i�s� �r�e�s�t�r�i�c�t�i�o�n� �o�n�l�y� �a�p�p�l�i�e�s� �t�o� �t�h�e� �p�r�i�m�a�r�y� �f�o�n�t� �n�a�m�e� �a�s� �p�r�e�s�e�n�t�e�d� �t�o� �t�h�e� �u�s�e�r�s�.� � � � �4�)� �T�h�e� �n�a�m�e�(�s�)� �o�f� �t�h�e� �C�o�p�y�r�i�g�h�t� �H�o�l�d�e�r�(�s�)� �o�r� �t�h�e� �A�u�t�h�o�r�(�s�)� �o�f� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e� �s�h�a�l�l� �n�o�t� �b�e� �u�s�e�d� �t�o� �p�r�o�m�o�t�e�,� �e�n�d�o�r�s�e� �o�r� �a�d�v�e�r�t�i�s�e� �a�n�y� �M�o�d�i�f�i�e�d� �V�e�r�s�i�o�n�,� �e�x�c�e�p�t� �t�o� �a�c�k�n�o�w�l�e�d�g�e� �t�h�e� �c�o�n�t�r�i�b�u�t�i�o�n�(�s�)� �o�f� �t�h�e� �C�o�p�y�r�i�g�h�t� �H�o�l�d�e�r�(�s�)� �a�n�d� �t�h�e� �A�u�t�h�o�r�(�s�)� �o�r� �w�i�t�h� �t�h�e�i�r� �e�x�p�l�i�c�i�t� �w�r�i�t�t�e�n� �p�e�r�m�i�s�s�i�o�n�.� � � � �5�)� �T�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e�,� �m�o�d�i�f�i�e�d� �o�r� �u�n�m�o�d�i�f�i�e�d�,� �i�n� �p�a�r�t� �o�r� �i�n� �w�h�o�l�e�,� �m�u�s�t� �b�e� �d�i�s�t�r�i�b�u�t�e�d� �e�n�t�i�r�e�l�y� �u�n�d�e�r� �t�h�i�s� �l�i�c�e�n�s�e�,� �a�n�d� �m�u�s�t� �n�o�t� �b�e� �d�i�s�t�r�i�b�u�t�e�d� �u�n�d�e�r� �a�n�y� �o�t�h�e�r� �l�i�c�e�n�s�e�.� �T�h�e� �r�e�q�u�i�r�e�m�e�n�t� �f�o�r� �f�o�n�t�s� �t�o� �r�e�m�a�i�n� �u�n�d�e�r� �t�h�i�s� �l�i�c�e�n�s�e� �d�o�e�s� �n�o�t� �a�p�p�l�y� �t�o� �a�n�y� �d�o�c�u�m�e�n�t� �c�r�e�a�t�e�d� �u�s�i�n�g� �t�h�e� �F�o�n�t� �S�o�f�t�w�a�r�e�.� � � � �T�E�R�M�I�N�A�T�I�O�N� � �T�h�i�s� �l�i�c�e�n�s�e� �b�e�c�o�m�e�s� �n�u�l�l� �a�n�d� �v�o�i�d� �i�f� �a�n�y� �o�f� �t�h�e� �a�b�o�v�e� �c�o�n�d�i�t�i�o�n�s� �a�r�e� �n�o�t� �m�e�t�.� � � � �D�I�S�C�L�A�I�M�E�R� � �T�H�E� �F�O�N�T� �S�O�F�T�W�A�R�E� �I�S� �P�R�O�V�I�D�E�D� �"�A�S� �I�S�"�,� �W�I�T�H�O�U�T� �W�A�R�R�A�N�T�Y� �O�F� �A�N�Y� �K�I�N�D�,� �E�X�P�R�E�S�S� �O�R� �I�M�P�L�I�E�D�,� �I�N�C�L�U�D�I�N�G� �B�U�T� �N�O�T� �L�I�M�I�T�E�D� �T�O� �A�N�Y� �W�A�R�R�A�N�T�I�E�S� �O�F� �M�E�R�C�H�A�N�T�A�B�I�L�I�T�Y�,� �F�I�T�N�E�S�S� �F�O�R� �A� �P�A�R�T�I�C�U�L�A�R� �P�U�R�P�O�S�E� �A�N�D� �N�O�N�I�N�F�R�I�N�G�E�M�E�N�T� �O�F� �C�O�P�Y�R�I�G�H�T�,� �P�A�T�E�N�T�,� �T�R�A�D�E�M�A�R�K�,� �O�R� �O�T�H�E�R� �R�I�G�H�T�.� �I�N� �N�O� �E�V�E�N�T� �S�H�A�L�L� �T�H�E� �C�O�P�Y�R�I�G�H�T� �H�O�L�D�E�R� �B�E� �L�I�A�B�L�E� �F�O�R� �A�N�Y� �C�L�A�I�M�,� �D�A�M�A�G�E�S� �O�R� �O�T�H�E�R� �L�I�A�B�I�L�I�T�Y�,� �I�N�C�L�U�D�I�N�G� �A�N�Y� �G�E�N�E�R�A�L�,� �S�P�E�C�I�A�L�,� �I�N�D�I�R�E�C�T�,� �I�N�C�I�D�E�N�T�A�L�,� �O�R� �C�O�N�S�E�Q�U�E�N�T�I�A�L� �D�A�M�A�G�E�S�,� �W�H�E�T�H�E�R� �I�N� �A�N� �A�C�T�I�O�N� �O�F� �C�O�N�T�R�A�C�T�,� �T�O�R�T� �O�R� �O�T�H�E�R�W�I�S�E�,� �A�R�I�S�I�N�G� �F�R�O�M�,� �O�U�T� �O�F� �T�H�E� �U�S�E� �O�R� �I�N�A�B�I�L�I�T�Y� �T�O� �U�S�E� �T�H�E� �F�O�N�T� �S�O�F�T�W�A�R�E� �O�R� �F�R�O�M� �O�T�H�E�R� �D�E�A�L�I�N�G�S� �I�N� �T�H�E� �F�O�N�T� �S�O�F�T�W�A�R�E�.�h�t�t�p�:�/�/�s�c�r�i�p�t�s�.�s�i�l�.�o�r�g�/�O�F�LVietnamese-style diacriticsFalseTrueLiteracy alternatesFalseTrueUppercase Eng alternatesLarge eng with descenderLarge eng on baselineLarge eng with short stemCapital N with tailCapital N-left-hook alternateUppercase styleLowercase styleOpen-O alternateBottom serifTop serifCapital Y-hook alternateLeft hookRight hookModifier apostrophe alternatesSmallLargeModifier colon alternateTightWideDiacritic selectionFalseTrueNoName�V�i�e�t�n�a�m�e�s�e�-�s�t�y�l�e� �d�i�a�c�r�i�t�i�c�s�F�a�l�s�e�T�r�u�e�L�i�t�e�r�a�c�y� �a�l�t�e�r�n�a�t�e�s�F�a�l�s�e�T�r�u�e�U�p�p�e�r�c�a�s�e� �E�n�g� �a�l�t�e�r�n�a�t�e�s�L�a�r�g�e� �e�n�g� �w�i�t�h� �d�e�s�c�e�n�d�e�r�L�a�r�g�e� �e�n�g� �o�n� �b�a�s�e�l�i�n�e�L�a�r�g�e� �e�n�g� �w�i�t�h� �s�h�o�r�t� �s�t�e�m�C�a�p�i�t�a�l� �N� �w�i�t�h� �t�a�i�l�C�a�p�i�t�a�l� �N�-�l�e�f�t�-�h�o�o�k� �a�l�t�e�r�n�a�t�e�U�p�p�e�r�c�a�s�e� �s�t�y�l�e�L�o�w�e�r�c�a�s�e� �s�t�y�l�e�O�p�e�n�-�O� �a�l�t�e�r�n�a�t�e�B�o�t�t�o�m� �s�e�r�i�f�T�o�p� �s�e�r�i�f�C�a�p�i�t�a�l� �Y�-�h�o�o�k� �a�l�t�e�r�n�a�t�e�L�e�f�t� �h�o�o�k�R�i�g�h�t� �h�o�o�k�M�o�d�i�f�i�e�r� �a�p�o�s�t�r�o�p�h�e� �a�l�t�e�r�n�a�t�e�s�S�m�a�l�l�L�a�r�g�e�M�o�d�i�f�i�e�r� �c�o�l�o�n� �a�l�t�e�r�n�a�t�e�T�i�g�h�t�W�i�d�e�D�i�a�c�r�i�t�i�c� �s�e�l�e�c�t�i�o�n�F�a�l�s�e�T�r�u�e�N�o�N�a�m�e��������d������������������������������� � � � � ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������������������������������������      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`�a�bcde�f�ghijklmnop�qrst�uvwxyz{|}~������      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN�OP�QRSTUVWXYZ[\]^_`abc�defghijk�lmnopqrstuvwxyz{|}~��������������      uni00A0uni25CCuni1EADuni1EA5 uni1EA5.VNuni1EA7 uni1EA7.VNuni1EAB uni1EAB.VNuni1EA9 uni1EA9.VNabreveuni1EB7uni1EAF uni1EAF.VNuni1EB1 uni1EB1.VNuni1EB5 uni1EB5.VNuni1EB3 uni1EB3.VNuni01CEamacronuni01DFuni0227uni01E1 aringacuteuni1EA3uni1EA1uni0251 a.SngStoryaacute.SngStoryagrave.SngStoryacircumflex.SngStoryuni1EAD.SngStoryuni1EA5.SngStoryuni1EA7.SngStoryuni1EAB.SngStoryuni1EA9.SngStoryabreve.SngStoryuni1EB7.SngStoryuni1EAF.SngStoryuni1EB1.SngStoryuni1EB5.SngStoryuni1EB3.SngStoryuni01CE.SngStoryatilde.SngStoryamacron.SngStoryadieresis.SngStoryuni01DF.SngStoryuni0227.SngStoryuni01E1.SngStoryaring.SngStoryaringacute.SngStoryuni1EA3.SngStoryuni1EA1.SngStoryaeacuteuni01E3uni1EA4 uni1EA4.VNuni1EA6 uni1EA6.VNuni1EAA uni1EAA.VNuni1EA8 uni1EA8.VNuni1EACAbreveuni1EAE uni1EAE.VNuni1EB0 uni1EB0.VNuni1EB4 uni1EB4.VNuni1EB2 uni1EB2.VNuni1EB6uni01CDAmacronuni01DEuni0226uni01E0 Aringacuteuni1EA2uni1EA0AEacuteuni01E2uni1E03uni1E07uni1E05uni0253uni1E02uni1E06uni1E04uni0181 ccircumflex cdotaccentuni1E09uni0254uni0254.TopSerif Ccircumflex Cdotaccentuni1E08Eurouni0186uni0186.TopSerifuni1E0Buni1E0Funi1E0Duni0257uni0256Dcaronuni1E0Auni1E0Euni1E0CDcroatuni0189uni018Auni1EBF uni1EBF.VNuni1EC1 uni1EC1.VNuni1EC5 uni1EC5.VNuni1EC3 uni1EC3.VNuni1EC7ebreveecaronuni1EBDemacronuni1E17uni1E15 edotaccentuni1EBBuni1EB9uni0229uni1E1Duni01DDuni0259uni025Buni1EBE uni1EBE.VNuni1EC0 uni1EC0.VNuni1EC4 uni1EC4.VNuni1EC2 uni1EC2.VNuni1EC6EbreveEcaronuni1EBCEmacronuni1E16uni1E14 Edotaccentuni1EBAuni1EB8uni0228uni1E1Cuni018Euni0190uni1E1Funi1E1Euni01F5 gcircumflexgcaronuni1E21 gdotaccent g.SngBowluni01F5.SngBowlgcircumflex.SngBowlgbreve.SngBowlgcaron.SngBowluni1E21.SngBowlgdotaccent.SngBowluni01F4 GcircumflexGcaronuni1E20 Gdotaccent hcircumflexuni021Funi1E27uni1E23uni1E96uni1E25 Hcircumflexuni021Euni1E26uni1E22uni1E24Piibreveuni01D0itildeimacronuni1E2Funi1EC9uni1ECBuni0268 i.Dotlessuni0268.Dotlessijuni0269Ibreveuni01CFItildeImacronuni1E2Euni1EC8uni1ECAuni0197IJ j.Dotlessuni0237uni1E31uni01E9uni1E35uni1E33uni0199uni1E30uni01E8uni1E34uni1E32uni0198lacuteuni1E3Buni1E37uni1E39uni019Auni2C61uni026BLacuteuni1E3Auni1E36uni1E38uni023Duni2C60uni2C62uni1E3Funi1E41uni1E43uni1E3Euni1E40uni1E42nacuteuni01F9ncaronuni1E45uni1E49uni1E47uni0272engNacuteuni01F8Ncaronuni1E44uni1E48uni1E46uni019D Eng.UCStyleuni019D.LCStyleEng.BaselineHookEngEng.Kom ohungarumlautuni1ED1 uni1ED1.VNuni1ED3 uni1ED3.VNuni1ED7 uni1ED7.VNuni1ED5 uni1ED5.VNuni1ED9obreveuni01D2uni1E4Duni022Duni1E4Fomacronuni1E53uni1E51uni022Buni022Funi0231uni1ECFuni1ECDuni0275 oslashacuteemptysetohornuni1EDBuni1EDDuni1EE1uni1EDFuni1EE3 Ohungarumlautuni1ED0 uni1ED0.VNuni1ED2 uni1ED2.VNuni1ED6 uni1ED6.VNuni1ED4 uni1ED4.VNuni1ED8Obreveuni01D1uni1E4Cuni022Cuni1E4EOmacronuni1E52uni1E50uni022Auni022Euni0230uni1ECEuni1ECCuni019F OslashacuteOhornuni1EDAuni1EDCuni1EE0uni1EDEuni1EE2uni03A9uni1E55uni1E57uni1E54uni1E56uni02A0uni024Buni01AAuni024Aracutercaronuni1E59uni1E5Funi1E5Buni1E5DRacuteRcaronuni1E58uni1E5Euni1E5Auni1E5Csacuteuni1E65 scircumflexuni1E67uni1E61uni1E63uni1E69uni0283Sacuteuni1E64 Scircumflexuni1E66uni1E60uni1E62uni1E68uni1E97uni1E6Buni1E6Funi1E6DTcaronuni1E6Auni1E6Euni1E6C uhungarumlautubreveuni01D4utildeuni1E79umacronuni1E7Buni01D8uni01DCuni01DAuni01D6uringuni1EE7uni1EE5uni0289uhornuni1EE9uni1EEBuni1EEFuni1EEDuni1EF1uni028A UhungarumlautUbreveuni01D3Utildeuni1E78Umacronuni1E7Auni01D7uni01DBuni01D9uni01D5Uringuni1EE6uni1EE4uni0244Uhornuni1EE8uni1EEAuni1EEEuni1EECuni1EF0uni1E7Duni1E7Funi028Cuni0263uni1E7Cuni1E7Euni0245wacutewgrave wcircumflex wdieresisuni1E87uni1E98uni1E89WacuteWgrave Wcircumflex Wdieresisuni1E86uni1E88uni1E8Duni1E8Buni1E8Cuni1E8Aygrave ycircumflexuni1EF9uni0233uni1E8Funi1E99uni1EF7uni1EF5uni01B4Ygrave Ycircumflexuni1EF8uni0232uni1E8Euni1EF6uni1EF4uni01B3uni01B3.RtHookzacuteuni1E91 zdotaccentuni1E95uni1E93Zacuteuni1E90 Zdotaccentuni1E94uni1E92uni01A9uni0292uni01EFuni01B7uni01EEuni0294uni02C0uni0242uni0241uniA78B uniA78B.LrguniA78C uniA78C.LrguniA789 uniA789.Wideuni02BC uni02BC.Lrguni2219uni2011uni00ADuni02D7uni02CA acutecombuni030Buni02CB gravecombuni0302uni0302_acutecomb.VNuni0302_gravecomb.VNuni0302_tildecomb.VNuni0302_hookabovecomb.VNuni0306uni0306_acutecomb.VNuni0306_gravecomb.VNuni0306_tildecomb.VNuni0306_hookabovecomb.VNuni030C tildecombuni02CDuni0331uni02C9uni0304 uni0304.Shortuni035Funi035Euni033FuniA78Auni0308 dotbelowcombuni0307uni031Buni030A hookabovecombuni0327uni0328uniF130uniF131 acutecomb.LP gravecomb.LP uni0302.LPuni0302_acutecomb.VNLPuni0302_gravecomb.VNLPuni0302_tildecomb.VNLPuni0302_hookabovecomb.VNLPuni0306_acutecomb.VNLPuni0306_gravecomb.VNLPuni0306_tildecomb.VNLPuni0306_hookabovecomb.VNLP uni030C.LP tildecomb.LP uni0304.LP uni0308.LP uni0307.LP .notAccess���+����+���+��L�<�/�"����+��G�<�/�"����+����f�P�9�"���+��x�f�P�9�"���+����+�� E}iD���������� � � �Z�������������������Y������  Z��  Z��  Z��  Z��  Z��  Z��  Z��  Z��  Z��  Z���������� W WZ��  Z��H f fZ�� & &Z��  Z��  Z��l  Z��  Z��' ' Y'Z�� J JZ�� d NZ��  Z�� / /Z��3  Z��I g ~gZ��  Z�� \ \Z��  Z��  Z��' " "Z��  2Z��  bZ�� ] ]Z�� v vZ�� \ \Z��  +Z������G��  ��  T��  ��4  )O��  �� E T��*  �� A AT��  O+��  ��  �T��  ��x C C��u A A��  ?��q*  =�� - -��  ��  ��\ \ \(��H ! \!��  ��  ��  ��  ��  ������ W W�� W W�� H fZ��  ��3  ��I g ~g��  2��  ��  ��  ��  ��  ��  ��  ��  ��  ��  ��  ��  O+��  O+��  O+��  O+��u A A��  ?��  ?��  ?��  ?��  ?��H ! \!��H ! \!��H ! \!��H ! \!������������ 1 1����G���� V Z�� \ \Z�����������  Z��� A A���������  ��  ? ������  �������� � �Z�� W W�� W W��I g ~g�� 6 6Z�� , X,����������  �� \ \������������������ W W��  �� W W��  ��  ��' ' Y'��' ' Y'��' ' Y'��' ' Y'��I g ~g��I g ~g��  G��I g ~g��  2��  2��  2��  O+����mZ��� � �� ! �o��  ��  D�  ��  D�  ��  D�  ��  �  ��  Z��  Z��  �  ��  �  ��  �  ��  �  ��  Z��  ��  ��  ��  ��  :��  Z��  ��   �   �   �   �   �   �   D�   D�   D�   �   Z�   Z�   �   �   �   �   Z�   �   �   �   �   �   �   �   :�   Z�   ��  ��  �� W W*� W W�� W W*� W W�� W W*� W W�� W W*� W W�� W W�� W W�� W W� W W�� W W� W W�� W W*� W W�� W W� W W�� W W�� W W�� W W�� W W�� W W�� W W�� W WR�� W W�� W WZ�� V �� V ��  N��  T��  T��   ��  ��  Z��  Z�� ~ ~Z��  ��  ��  Z��  ��  ��  �  ��H f f��H f f��H f f��H f f�� H f����  Z�  Z��4  )O��4  )O��4  )O�� ; ;��  O��  )O��  �� & &�� & &�� & &Z�� & &Z�� ? ?Z�� ? ?Z�� ? ?Z��  Z��  D�  ��  D�  ��  D�  ��  �  ��  ��  Z��  Z��  ��  ��  ��  ��  ��  Z��  ��  ��  Z��  ��  ��  j��  *�  ��  *�  ��  *�  ��  *�  ��  ��  ��  ��  ��  ��  ��  ��  ��  ��  Z��  Z��  ��  Z��   Z�� E ��  ��*  ��*  ��*  Z��*  Z��*  ��*  �  �  �  �  Z�  Z�  �  ��l  ��l  ��l  ��l  ��l  ��l  �� A A�� A A�� A A�� A A�� A AT�� A AT��  ��  ��  ��  ��  Z����  O+Z��  O+Z��  O+��  O+��  O+��  O+Z��  O+��  O+�  O+�  O+�� C O+��  TB ��' ' Y'��' ' Y'��' ' Y'��' ' Y'��' ' Y'��' ' Y'��' ' Y'��' ' Y'Z�� ( (Z��'  YZ�  ��  ��  ���  ���  �T��  �T��  �� d N�� d N�� d NZ�� d NZ��  Z��  ��  ��  ��  �� G G�� G G�� U U�� & &��  ��  Z��  Z��  ��  Z��  Z��  Z��  Z��x C C��x C C��x C C�� / /�� / /�� / /Z��u A A��u A A��u A AZ��u A A��u A A��u A A�� 7 7�� F G��3  ��3  ��3  ��3  ��3  Z��3  Z��  Z�  Z�  Z�  Z��  Z� { {Z��  ?Z��  ?D�  ?��  ?D�  ?��  ?D�  ?��  ?�  ?��  ?��  ?Z��  ?Z��  ?��  ?��  ?��  ?��  ?��  ?��  ?��  ?��  ?��  ?Z��  ?��   ��  ? ���  ��  ��  ��  ��  Z��  ��I g ~g��I g ~g*�I g ~g��I g ~g*�I g ~g��I g ~g*�I g ~g��I g ~g*�I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~g��I g ~gZ�� \ \Z�� \ \�� g gZ�� g g�� g g�� g g�� g g�� g gZ����q*  =��q*  =��  ��  ��  ��  Z�� - -�� - -��  �� \ \Z��  ��  Z��  ��  ��  ��  ��  ��  ��  ��  Z��  Z��  ��  ��  ��  ��  Z��  ��  ��  ��  �� � ���  ��  ��  ��  ��  ��  ��  Z��  ��\ \ \��\ \ \��\ \ \(��\ \ \(��' " "��' " "��' " "Z��' " "Z��H ! \!Z��H ! \!Z��H ! \!Z��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!��H ! \!Z��H ! \!��H + \=+�� ! !�� ! !�� ! !�� ! !�� ! !Z�� ! !��  ��  2��  2��  2��  2��  2��  2��  2��  2��  2��  2��  2��  2��  2��  2Z��  Z��  Z��  ��  ��  ��  ��  Z��  ��  ��  ��  ��  b��  bZ��  Z��  ��  ��  ��  ��  ��  ��  �� ] ]�� ] ]�� ] ]�� ] ]�� ] ]�� ] ]Z��  ��  �� v v�� v v��  ��  ��  ��  ��  ��  ��  ��  Z��  ��  �� \ \�� \ \�� \ \�� \ \�� \ \�� \ \�� \ \�� \ \Z� 8 8Z�� \ \Z��  ��  ��  Z��  ��  ��  ��  +��  +��  +��  +��  +Z��  +Z��  Z��  ��  Z��  Z��  ��  z�� 8 8Y��  ��  Z�� h &h�� Q &Q�� Q &Q������������������Y�� Y���Y��d�� �� Z �&��OO �� � � � � ��Z � � � � ��Z �� ����  14��� � �� D���� ���� ��  14�� ��%�� ��Z ��  '��  ,0�����Z �OZO � � � � � �Z �Z � � �Z �Z �Z �Z �Z �69 ��������;��� ��4�8�<�B�H�N�R�V�Z�^�b�h�n�|������� "8Ndjnrvz~,D`v�,D\t $(4Xx0Tj"@Xp48<@D`|2Vz  ( L p � $ < `  8 \     $ * . B F \ ` f l r  4 P t "&*.28Tp4X|*NRVZfjnz~:^ .Rv*Nr&Jn"FjBf>b:^z">Zv:Vr6Rh~  6Ll2Jbz8Nd2Hl  4 P t !!(!L!p!!!!""4"X"t""""#�##8#T#p#####$$4$P$j$$$$$%%&%J%n%%%%& &&&B&^&z&&&&&' '"':'R'j''''''(((<(`(((())8)\)))))**0*L*h******++<+\+|+++++,,(,H,h,,,,,-�- -@-`-v-----.�..,.B.Z.r......//./F/^/v//////0 0.0R0n00001161Z1~1112222V2z2223 3.3L3p3t33333344@4d444455<5`55556686\66667747J7`7v7777778828H8^8t88888899*9B9Z9r99999:::2:J:b:z:::::;; ;8;P;h;;;;;<<0<H<`<x<<<==,=P=t===>>(>L>p>>>>>???<?`????@@8@\@@@@AA4AJA`AvAAAAABB*B@B\BxBBBBBBCC(C>CTCjCCCCCCDD&DDDbDDDDDEE,EBEXEnEEEEEEFFF6FNFfF~FFFFFGGG0GFG\GrGGGGGGHH*H.H2H6H<H@HFHJHPHTHZH^HbHfHrHHHHHHHHIIII.I:IPIdIxIIIIIIIIJ J J*J4JJJPJfJ|JJJJJJJJK K K4KHK\KpKKKKKKKLL$L8LDLHLL����������� ������������������������h����`��\��O�."���������1��h�j�r�x������� (06Dx|":Rj~"&�d�oo0u���     EM��������!%')+^`bduwy{�J�D�i�j�k�������������m��l����n���DL�������� $&(*]_actvxz���������������������������������������&���(��F��H�����������������2���8��R��X������������������������� �������������� �  �  �  �  � ����������������E��M�� � ���������������������� � !� %� '� )�+�^�`�b�d�u�w�y�{������������������������������������L���M���������������J������������ �D���i��j��k��l��m��n������������� �� �� �� �� �����������������������D��L�� � ���������������������� �  � $� &� (�*�]�_�a�c�t�v�x�z�����������)����5��5��!�����>��)��y�@��9�&�&���(�(���2�2��8�8��D�D��F�F���H�H���J�J��R�R��X�X��i�n������������������������������������������������������������������  �!!�$$�%%�&&�''�((�))�**�++�DD�EE� LL�MM� ]]�^^�__�``�aa�bb�cc�dd�tt�uu�vv�ww�xx�yy�zz�{{��� � � � ������������������������������������������������ �������� � ����������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2� ��������������������� �!�"�#�$�%�&�'�(�� ��������� ���� ����� ������������������������������������������������������������������������������������������������������������������ �'�.�5�<�C�J�Q�X�_�g�n�u�|�������������������#�3�B�P�`�o�}���������#/5;?CGKQW]ciosw{��������� �!��$��%����"�#�&�'�(�)�����������������������������������������������������������������*����������������������������������������������������+������������������������������������������������,��������������������������������������������������������-�������������������������������������������������������� � � � � � �.����������������������������������������������� � � � � �/� �����������������������������������������������0������� � � �����������������������������������������������1������� � � ����������������������������������������������� � � � � � �2����������������������������������������������������3������������������������������������������������4��������������������������������������������������������5��������������������������������������������������������������6����������������������������������������������������7������������������������������������������������8��������������������������������������������������������9��������������������������������������������������������������������:���������������������������������������������������������;�������������������������������������������������<�����������������������������������������������������������=��������������+��"�+�0+��0+��0+��0+��0+��0+��0+��0+��0+��0+��0+��0+��0+��0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0+�0�"!� 0�"!� 0�"!� 0�"!� 0�"!� 0�$!� 1�$!� 1�$!� 1�$!� 1�$!� 1!�* 1# !� 1# !� 1# !� 1# !� 1# !� 1# !� 1# !� 1# !� 1# !� 1# !� 1�0 1�)11�111�-1�.1�&1�'1�/ 1�(11111�,1�%111�� ���� �� �� ������ � ������L�M���������������� ������������ � �� ������������������������������������������������������������� ����)�4�?�J�U����������� ������ ������ ������������������������� ������ �����������������+1�+1�+1�+1�+1!�1!�1!�1!�1!�1���2����L��L��O����iV������C�����������$�$��%�%��&�&��'�'��(�(��)�)��*�+��,�,��-�-��.�.��/�/��0�0��1�1��2�2���3�4��5�7��8�8���9�9��:�=��A�A��C�C��D�D���E�G��H�H���I�I��J�J��K�K��L�L���M�M��N�O��P�Q��R�R���S�S��T�T��U�V��W�W��X�X���Y�Y��Z�Z��[�[��\�\��]�]��b�c��d�d��e�e��f�f��g�n���o�o��p�w���x�x��y���������������������������������������������������������������������������������������������������4�56�79�:>�?B�CC�DE��FI�JJ�LM�NP�QR�SS�T\�]]��^^�__��``�ac��dd�en��op� qr�ss��t�� ��������������������������������������� ������-��.5�78�9@�AT�UU�V]�^a�be�ft��uz�{�������������������� �� � � � � � �� ��� � � � �� �� � ������� � ���������� �"�$�&�(�*�,�.�0�2�4�6�8�:�<�>�@�B�D�F�H�J�L�N�P�R�T�V�X�Z�\�^�`�b�d�f�h�j�l�n�p�r�t�v�x�z�|�~�����������������������������������������������������������������   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~��,��'� �"����,� �"��1����'� �"��1��� �"��1����,��'� �"��1����,��'��1� �"��'��1� �"��,��1� �"��1� �"� �&��!����+��!����+� �&����+� �&��!����+� �&��!��!��0����+��!��0����+��0����+��0��!� �&��!��0��� �&��0��� �&��0��!��0����!����0��!��+� �&��0����+� �&��0��!��+��0� �&� �&��!��0� �&��+��!��0��+� �%�� ���� ��� �%��� �%�� ��*�� ����*����*�� ��*� �%����*� �%��*� �%�� ����*� �%�� �� ��/����/����/�� ��*�� ��/����*��/����*��/�� ��/��*� �%�� ��/��� �%��/��� �%��/�� ��/� �%��*� �%��/����*��/� �%��*� �%��/�� � �$��������� �$��� �$����)������)����)����)� �$����)� �$��)� �$������)� �$������.����.����.����)����.����)��.����)��.����.��)� �$����.��� �$��.��� �$��.����.� �$��)� �$��.����)��.� �$��)� �$��.��� �"��1��!��0����/�� � �%��*����� �$��)��.������ �#��(��-���������������������������������������������������������������������������������������������������������������.�=�L�[�j�y���������-<KZix(8HXhx���I��c,m4v;~A KWY  P F  @ | 9 v �� � ���� ����� ������������������������������ � �l�j�m�k�����������������������p�p�o�n�q� �����������������������t�t�s��u�r�����������������������w�w�v��x������������������������|�|�{�y�}�z������������������������V�����������������������������~������������������������������������������������������������������������������������������������������������WW�������������������������������������������������������������������������������������������������������������������������������������������'�'X�'�'�'���������������������������&���������������������������!�!�������������������������������������������������������$�$�$����������������������YY�-�-�-�-�����������������������.�.��.�������������������������2�2����2�����������������������5�5�5��������������������������7�7���������������������������8�8���8���������������������������9��9����������������������������<�������������������������=���=���������������������������>�>��������������������������@���������������������������A�A�������������������������B�B��������������������������:�:��:�����������������������/�/��/��/��������������������������;�;�;�����������������������G���������������������� �I �����������������������F�F\�F�F�F����������������������  �H �H �����������������������1�1��1�1������������������������C�C�C�����������������������4�4���4�4�������������������������?��?�?����������������������[[�E�E�E�E�����������������������L�L�L�����������������������M�M�M�M�����������������������N�N�N�N�����������������������O�O�O�O�����������������������S�S�S�����������������������T�T�T�T�����������������������U�U�U�U�����������������������W�W�W "!�����������������������X�X�X#�X$�����������������������Y�Y'%(&�����������������������Z�Z+)�Z*����������������������--,�[.�[����������������������//�\�\0�\����������������������112�]�]�]����������������������55436�_����������������������88�`79�`����������������������;;<:�a�a����������������������==�b>�b�b����������������������AA@�cB?����������������������DD�d�dEC����������������������GGH�e�eF����������������������II�f�f�fJ�����������������������P�P�P�P_�P����������������������cc�^�^�^�^�����������������������Q�Q`�Q�Q�Q����������������������MM�gKNL����������������������PP�hO�hQ����������������������TTUR�iS�����������������������R�R�R�R�Ra�����������������������V�V�Vb�V�V��������������������������e��df��������������������������e��d��������������������������������df��������������������������e����f������������������������������d����������������������������e��������������������������������������f��������������������������egd������������������������������gd����������������������������eg��������������������������������g��������������������������������gdf����������������������������g��f��������������������������egdf��������������������������eg��f����������������������hhe��d������������������������hh����d������������������������hhe����������������������������hh������������������������������hhegd������������������������hh��gd������������������������hheg��������������������������hh��g��������������������������hhe��df����������������������hh����df����������������������hhe����f����������������������hh������f����������������������hh��gdf����������������������hh��g��f����������������������hheg��f������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ��������������������������������������������������������!�!��������������������������"�"��"�����������������������#�#��#��#��������������������������$�$�$���������������������������������������������������������������������������������%����������������������������������������������������������&���������������������������!�!����������������������������������������������������������������������������������(��(���������������������������$�$�$�����������������������)�)��)�)��������������������������*�*�*���������������������������$�$�$�����������������������+�+���+�+�������������������������,��,�,�����������������������'�'X�'�'�'����������������������YY�-�-�-�-�����������������������/�/��/��/�����������������������0�0�0�0�������������������������1�1��1�1������������������������/�/��/��/�����������������������3�3�3���3�����������������������4�4���4�4�����������������������0�0�0�0�������������������������3�3�3���3�����������������������6�6�6��6������������������������.�.��.�������������������������2�2����2�����������������������5�5�5��������������������������8�8���8������������������������1�1��1�1������������������������4�4���4�4�����������������������6�6�6��6��������������������������:�:��:�����������������������/�/��/��/��������������������������;�;�;��������������������������9��9�������������������������=���=�����������������������2�2����2���������������������������>�>�������������������������:�:��:�����������������������3�3�3���3�������������������������?��?�?��������������������������;�;�;�����������������������4�4���4�4�������������������������?��?�?��������������������������9��9�������������������������A�A�������������������������.�.��.�������������������������B�B��������������������������:�:��:�����������������������0�0�0�0�������������������������C�C�C��������������������������;�;�;�����������������������1�1��1�1������������������������C�C�C�����������������������D�D�D�DZ�D����������������������[[�E�E�E�E�����������������������D�D�D�DZ�D�����������������������F�F\�F�F�F�����������������������F�F\�F�F�F����������������������[[�E�E�E�E�������������������������A�A���������������������������=���=�����������������������5�5�5�������������������������  �H �H �����������������������B�B����������������������������>�>�����������������������8�8���8�����������������������  �H �H �����������������������C�C�C�����������������������6�6�6��6��������������������������?��?�?�����������������������F�F\�F�F�F�����������������������J�J�J�J�J]�����������������������J�J�J�J�J]����������������������[[�E�E�E�E�����������������������F�F\�F�F�F�����������������������K�K�K^�K�K�����������������������K�K�K^�K�K����������������������[[�E�E�E�E�����������������������M�M�M�M�����������������������N�N�N�N�����������������������O�O�O�O�����������������������P�P�P�P_�P�����������������������Q�Q`�Q�Q�Q�����������������������P�P�P�P_�P�����������������������R�R�R�R�Ra�����������������������Q�Q`�Q�Q�Q�����������������������R�R�R�R�Ra�����������������������M�M�M�M�����������������������T�T�T�T�����������������������U�U�U�U�����������������������P�P�P�P_�P�����������������������V�V�Vb�V�V�����������������������Q�Q`�Q�Q�Q�����������������������V�V�Vb�V�V�����������������������N�N�N�N�����������������������T�T�T�T�����������������������X�X�X#�X$�����������������������R�R�R�R�Ra�����������������������V�V�Vb�V�V�����������������������L�L�L�����������������������S�S�S�����������������������W�W�W "!�����������������������Z�Z+)�Z*�����������������������O�O�O�O�����������������������U�U�U�U�����������������������X�X�X#�X$����������������������//�\�\0�\�����������������������M�M�M�M����������������������112�]�]�]�����������������������P�P�P�P_�P����������������������cc�^�^�^�^�����������������������Q�Q`�Q�Q�Q����������������������cc�^�^�^�^����������������������--,�[.�[����������������������88�`79�`�����������������������S�S�S����������������������;;<:�a�a����������������������//�\�\0�\�����������������������T�T�T�T����������������������==�b>�b�b����������������������112�]�]�]�����������������������U�U�U�U����������������������==�b>�b�b�����������������������V�V�Vb�V�V����������������������cc�^�^�^�^����������������������--,�[.�[����������������������DD�d�dEC�����������������������L�L�L����������������������GGH�e�eF����������������������//�\�\0�\�����������������������N�N�N�N����������������������II�f�f�fJ����������������������112�]�]�]�����������������������O�O�O�O����������������������II�f�f�fJ�����������������������R�R�R�R�Ra����������������������cc�^�^�^�^����������������������DD�d�dEC����������������������88�`79�`�����������������������W�W�W "!����������������������PP�hO�hQ����������������������II�f�f�fJ�����������������������X�X�X#�X$����������������������==�b>�b�b����������������������GGH�e�eF����������������������;;<:�a�a�����������������������Z�Z+)�Z*����������������������PP�hO�hQ��������������������������e��d��������������������������������df��������������������������e����f������������������������������d����������������������������e������������������������������������d����������������������������������f��������������������������e��������������������������������������f��������������������������e��d������������������������������gd����������������������������eg����������������������������������d������������������������������g������������������������������e����������������������������������g����������������������������������df����������������������������gd������������������������������g��f��������������������������������f����������������������������g������������������������������e��df��������������������������egd������������������������������gdf��������������������������eg��f��������������������������e����f��������������������������eg��������������������������������g��f����������������������hh����d����������������������������e��d������������������������hhe������������������������������������d������������������������hh����������������������������������e����������������������������hh������������������������������hhe��d������������������������hh��gd����������������������������egd������������������������hheg��������������������������hh����d������������������������������gd������������������������hh��g��������������������������hhe��������������������������������eg��������������������������hh��g��������������������������������g��������������������������hh������������������������������hhe��d������������������������hh����df��������������������������e��df����������������������hhe����f����������������������hh����d��������������������������������df����������������������hh������f����������������������hhe��������������������������������e����f����������������������hh������f��������������������������������f����������������������hh������������������������������hh����df����������������������hh��gd������������������������������gdf����������������������hh��g��f����������������������hh������f����������������������������g��f����������������������hh��g��������������������������hhe����f����������������������hheg������������������������������eg��f����������������������hh��g��f��+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0+�".7���0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# #37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# #37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# #37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# #37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# #37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# #37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# #37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# #37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# #37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# #37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# #37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# #37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# #37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# #37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# #37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# #37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# #37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# #37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# #37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# #37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# #37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# #37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# #37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# #37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# #37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# 37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# 37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# 37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# 37�0�&�&,�#,�#,�#,�#,�#)'�#)*�# ))�# )+�# 37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# 37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# 37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# 37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# 37�0�&�&, �#, �#, �#, �#)1�#)4�# )3�# )5�# 37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# 37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# 37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# 37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# 37�0�&�&,�#,�#,�#,�#),�#)/�# ).�# )0�# 37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# 37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# 37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# 37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# 37�0�&�&,�#,�#,�#,�#)"�#)%�# )$�# )&�# 37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# 37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# 37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# 37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# 37�0�&�&,�#,�#,�#,�#)�#) �# )�# )!�# 37�0� ��8������������r��\�@��������������������������#���$�=��>�@���A�A��B�B���C�]��^�a���b���������������������������������������������������������������������������������������������������������J�KK��L]�^^��__�``��ac�dd��e����������������5�66��7��������������������������������  �� ����������� � � ���������"�#�%�&�(�+�-�.�0�1�2�4�6�9�<�?�C�F�I�M�Q�U�Z�[�]�^�`�c�e�g�j�l�o�s�v�w�y�z�|���������������������������������������������������������  !"$'),/369=AEJMPTX\aeinsx~�  !%).036:<?ABEIMRV[`fimqvy} &-5=DLU]fkqv|�&/7@HOW`hqz '1:DNYajs}� $)*17>AEHKMOV\ckrz~  '-3:@GOV[aflsy~ #,4=GPZ`gnv|    ' 0 : B K S Z [ \ ^ _ a b d e g j l o p r t u w z |          �$�+�#�+�#�$�*�#�)�#�)�+�)�)�+�*�+�$�(�#�'�#�'�+�$�(�*�#�'�)�#�'�)�+�'�'�+�(�'�)�'�)�+�(�*�)�)�+�*�+�$�&�#�%�#�%�+�$�&�*�#�%�)�#�%�)�+�$�&�(�#�%�'�#�%�'�+�$�&�(�*�#�%�'�)�#�%�'�)�+�%�%�+�&�%�)�%�)�+�&�*�%�'�%�'�+�&�(�%�'�)�%�'�)�+�&�(�*�'�'�+�(�'�)�'�)�+�(�*�)�)�+�*�+�$�#�+�#�$�*�#�)�#�)�+�$�(�#�'�#�'�+�$�(�*�#�'�)�#�'�)�+�$�&�#�%�#�%�+�$�&�*�#�%�)�#�%�)�+�$�&�(�#�%�'�#�%�'�+�$�&�(�*�#�%�'�)�#�%�'�)�+�%�%�+�&�%�)�%�)�+�&�*�%�'�%�'�+�&�(�%�'�)�%�'�)�+�&�(�*�'�'�+�(�'�)�'�)�+�(�*�)�)�+�*�+�%�%�+�&�%�)�%�)�+�&�*�%�'�%�'�+�&�(�%�'�)�%�'�)�+�&�(�*�'�'�+�(�'�)�'�)�+�(�*�)�)�+�*�+�"�$�!�#�+�!�#�"�$�*�!�#�)�!�#�)�+�"�$�(�!�#�'�!�#�'�+�"�$�(�*�!�#�'�)�!�#�'�)�+�"�$�&�!�#�%�!�#�%�+�"�$�&�*�!�#�%�)�!�#�%�)�+�"�$�&�(�!�#�%�'�!�#�%�'�+�"�$�&�(�*�!�#�%�'�)�!�#�%�'�)�+�!�%�!�%�+�"�&�!�%�)�!�%�)�+�"�&�*�!�%�'�!�%�'�+�"�&�(�!�%�'�)�!�%�'�)�+�"�&�(�*�!�'�!�'�+�"�(�!�'�)�!�'�)�+�"�(�*�!�)�!�)�+�"�*�!�+�!�"�$�$�*�$�(�$�(�*�$�&�$�&�*�$�&�(�$�&�(�*�&�&�*�&�(�&�(�*�(�(�*�*�"�$�"�$�*�"�$�(�"�$�(�*�"�$�&�"�$�&�*�"�$�&�(�"�$�&�(�*�"�&�"�&�*�"�&�(�"�&�(�*�"�(�"�(�*�"�*�"� �$� �$�*� �$�(� �$�(�*� �$�&� �$�&�*� �$�&�(� �$�&�(�*� �&� �&�*� �&�(� �&�(�*� �(� �(�*� �*� � �"�$� �"�$�*� �"�$�(� �"�$�(�*� �"�$�&� �"�$�&�*� �"�$�&�(� �"�$�&�(�*� �"�&� �"�&�*� �"�&�(� �"�&�(�*� �"�(� �"�(�*� �"�*� �"��0�2�4�6�7��7��/�1�3�5�7���0�2�4�6�7��/�1�3�5�7���/�1�3�5�7��5�7���5�7��6�7��5�7���0�2�4�6�7��/�1�3�5�7���/�1�3�5�7����0�2�4�6�7���/�1�3�5�7����/�1�3�5�7��3�5�7���3�5�7��4�6�7���3�5�7����3�5�7���4�6�7��3�5�7���3�5�7��4�6�7��3�5�7�� �0�2�4�6�7��/�1�3�5�7���/�1�3�5�7�� ��0�2�4�6�7���/�1�3�5�7����/�1�3�5�7�� ��0�2�4�6�7���/�1�3�5�7����/�1�3�5�7�� ���0�2�4�6�7����/�1�3�5�7�����/�1�3�5�7��1�3�5�7���1�3�5�7� �2�4�6�7���1�3�5�7����1�3�5�7� ��2�4�6�7���1�3�5�7����1�3�5�7� ��2�4�6�7����1�3�5�7�����1�3�5�7� ���2�4�6�7��1�3�5�7���1�3�5�7��2�4�6�7���1�3�5�7����1�3�5�7���2�4�6�7��1�3�5�7���1�3�5�7��2�4�6�7��1�3�5�7��.�0�2�4�6�7��-�/�1�3�5�7���.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7���.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7����.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� �.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7�� ��.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� ��.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� ���.�0�2�4�6�7����-�/�1�3�5�7�����-�/�1�3�5�7� �0�2�4�6�7� ��0�2�4�6�7� ��0�2�4�6�7� ���0�2�4�6�7��0�2�4�6�7���0�2�4�6�7��0�2�4�6�7� �.�0�2�4�6�7� ��.�0�2�4�6�7� ��.�0�2�4�6�7� ���.�0�2�4�6�7��.�0�2�4�6�7���.�0�2�4�6�7��.�0�2�4�6�7��,�.�0�2�4�6�7���,�.�0�2�4�6�7���,�.�0�2�4�6�7����,�.�0�2�4�6�7�� �,�.�0�2�4�6�7�� ��,�.�0�2�4�6�7�� ��,�.�0�2�4�6�7�� ���,�.�0�2�4�6�7� �,�.�0�2�4�6�7� ��,�.�0�2�4�6�7� ��,�.�0�2�4�6�7� ���,�.�0�2�4�6�7��,�.�0�2�4�6�7���,�.�0�2�4�6�7��,�.�0�2�4�6�7�������������������������� ����� �������� �������� ���������� � �� �� ������������� � ����� �� ������� ����� �������� ��� �� ��� ���� ��� ��� � �� �� ����0�2�4�6�7��7��/�1�3�5�7�/�1�3�5�7�7���0�2�4�6�7��/�1�3�5�7���/�1�3�5�7��5�7���5�7��6�7��5�7�5�7�6�7���0�2�4�6�7��/�1�3�5�7���/�1�3�5�7����0�2�4�6�7���/�1�3�5�7����/�1�3�5�7��3�5�7���3�5�7��4�6�7���3�5�7����3�5�7���4�6�7��3�5�7���3�5�7��4�6�7��3�5�7�3�5�7�4�6�7�� �0�2�4�6�7��/�1�3�5�7���/�1�3�5�7�� ��0�2�4�6�7���/�1�3�5�7����/�1�3�5�7�� ��0�2�4�6�7���/�1�3�5�7����/�1�3�5�7�� ���0�2�4�6�7����/�1�3�5�7�����/�1�3�5�7��1�3�5�7���1�3�5�7� �2�4�6�7���1�3�5�7����1�3�5�7� ��2�4�6�7���1�3�5�7����1�3�5�7� ��2�4�6�7����1�3�5�7�����1�3�5�7� ���2�4�6�7��1�3�5�7���1�3�5�7��2�4�6�7���1�3�5�7����1�3�5�7���2�4�6�7��1�3�5�7���1�3�5�7��2�4�6�7��1�3�5�7�1�3�5�7�2�4�6�7��.�0�2�4�6�7��-�/�1�3�5�7�-�/�1�3�5�7���.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7���.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7����.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� �.�0�2�4�6�7��-�/�1�3�5�7���-�/�1�3�5�7�� ��.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� ��.�0�2�4�6�7���-�/�1�3�5�7����-�/�1�3�5�7�� ���.�0�2�4�6�7����-�/�1�3�5�7�����-�/�1�3�5�7� �0�2�4�6�7� ��0�2�4�6�7� ��0�2�4�6�7� ���0�2�4�6�7��0�2�4�6�7���0�2�4�6�7��0�2�4�6�7�0�2�4�6�7� �.�0�2�4�6�7� ��.�0�2�4�6�7� ��.�0�2�4�6�7� ���.�0�2�4�6�7��.�0�2�4�6�7���.�0�2�4�6�7��.�0�2�4�6�7�.�0�2�4�6�7��,�.�0�2�4�6�7���,�.�0�2�4�6�7���,�.�0�2�4�6�7����,�.�0�2�4�6�7�� �,�.�0�2�4�6�7�� ��,�.�0�2�4�6�7�� ��,�.�0�2�4�6�7�� ���,�.�0�2�4�6�7� �,�.�0�2�4�6�7� ��,�.�0�2�4�6�7� ��,�.�0�2�4�6�7� ���,�.�0�2�4�6�7��,�.�0�2�4�6�7���,�.�0�2�4�6�7��,�.�0�2�4�6�7�,�.�0�2�4�6�7�������������������������� ����� �������� �������� ���������� � �� �� ������������� � ����� �� ������� ����� �������� ��� �� ��� ���� ��� ��� � �� �� ���������������� � ������ �� �������������������������� �� �������� ��� ���������������� ��8�v�� � ��� ���� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������*�T�~���&Pz"LvHrDn@Wn&=Tk #:Qh������������������� � � � � � � � � �� � � � ��� � � � ��� � � � ��� � � � ��� � ���������������������� �����"�!�����#�$�����&�%�����'�(�����*�)�����+�,�����.�-�����/�0�����2�1�����3�4���8�7�6�5�8�7�8�7�:�9�8�7�8�7�<�;�8�7�8�7�=�>�8�7�8�7�@�?�8�7�8�7�B�A�8�7�8�7�D�C�8�7�8�7�E�F�8�7�8�7�H�G�8�7�8�7�I�J�8�7�8�7�L�K�8�7�8�7�N�M�8�7�8�7�P�O�8�7�8�7�Q�R�8�7�8�7�T�S�8�7�8�7�V�U�8�7�8�7�X�W�8�7�8�7�Y�Z�8�7�8�7�\�[�8�7�8�7�^�]�8�7�8�7�`�_�8�7�8�7�a�b�8�7�8�7�d�c�8�7�8�7�f�e�8�7�8�7�h�g�8�7�8�7�i�j�8�7�8�7�l�k�8�7�8�7�n�m�8�7�8�7�p�o�8�7�8�7�q�r�8�7�v�u�t�s�v�u�v�u�x�w�v�u�v�u�z�y�v�u�v�u�{�|�v�u�v�u�~�}�v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�v�u���v�u�������������������������������������  ���   ���������������������! "���$#%���'&(���*)+���-,.���0/1���234���675���:98���=<;���@?>���CBA���FED���IHG���LKJ���NMO���QPR���TSU���WVX���ZY[���]\^���`_a���bcd���feg���ihj���lkm���onp���rqs���utv���xwy���z{|���~}������������������������������������������������67���:9���=<���@?���CB���FE���IH���LK���fe���ih���lk���on���rq���ut���xw���z{���~������������������������������������������������67���:9���=<���@?���CB���FE���IH���LK���fe���ih���lk���on���rq���ut���xw���z{���~��������������������������������������������������������S����������T����������U����������V��������������������W����������X����������Y����������Z����������[����������\����������]������������������������������^����������_����������`����������a����������b����������c����������d����������e����������f����������g����������h����������i����������j����������k����������l����������m������������������������������n����������o����������p����������q����������r����������s����������t����������u����������v����������w����������x����������y����������z����������{����������|����������}����������~����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������� ���������� ���������� ���������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������!����������"����������#����������$����������%����������&����������'����������(����������)����������*����������+����������,����������-����������.����������/����������0����������1����������2����������3����������4����������5����������6����������7����������8����������9����������:����������;����������<����������=����������>����������?����������@����������A����������B��������������������  ���� ��������11����1��22����2��������RR����R��55����5��ZZ����Z��jj����j��k��k��l��l��m��m��n��n��o��o��p��p��q��q��r��r��s��s��t ��t��u!��u��v"��v��w#��w��x$��x��y%��y��z&��z��{'��{��|(��|��})��}��~*��~��+����,����-����.����/����0����1����2����3����4����5����6����7����8����9����:����;����<����=����>����?����@����A����B����C����D����E����F����G����H����I����J����K����L����M����N����O����P����Q����R����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C����D����E����������F����G����H����I����J����K����L����M����N�����O�����P�����Q����R����S�����T����U����V����W����X���� Y�� �� Z�� �� [�� �� \�� ��]����^����_ ����` ����a ����b ����c ����d����e����f����g����h����i����j ����k����l ����m ���� n�� ��!o��!��"p��"��#q��#��$r��$��%s��%��&t��&��'u���'��(v��(��)w��)��*x��*��+y��+��,z��,��-{��-��.|��.��/}��/��0~��0��3��3��4��4��55����5��6��6��7��7��8��8��9��9��:���:��;��;��<��<��=��=��>��>��?��?��@��@��A ��A��B ��B��C ��C��D ��D��E ��E��F��F��G��G��H��H��I��I��J��J��^����_ ����K��K��a ����b ����L��L��d����e����M��M��g����h����N��N��N�����O����O��O��Q����R����P��P��G����H����Q��Q��E����@��@��A ��A��S��S��C ��C��D ��D��T��T��F��F��G��G��U��U��I��I��J��J��V��V��:���:��;��;��W��W��=��=��>��>��X��X��7��7��8��8��Y��Y��4��4��3��3��4��4��55����5��6��6��7��7��8��8��9��9��:���:��;��;��<��<��=��=��>��>��?��?��@��@��A ��A��B ��B��C ��C��D ��D��E ��E��F��F��G��G��H��H��I��I��J��J��@��@��A ��A��S��S��C ��C��D ��D��T��T��F��F��G��G��U��U��I��I��J��J��V��V��:���:��;��;��W��W��=��=��>��>��X��X��7��7��8��8��Y��Y��4��4��55����5��ZZ����Z��[��[��\��\��]��]��^��^��_��_��` ��`��a ��a��b��b��c��c��d��d��e��e��f��f��g��g��h��h��i��i��[��[��\��\��]��]��^��^��_��_��` ��`��a ��a��b��b��c��c��d��d��e��e��f��f��g��g��h��h��i��i��jj����j��[��[��\��\��]��]��^��^��_��_��` ��`��a ��a��b��b��c��c��d��d��e��e��f��f��g��g��h��h��i��i��jj����j��[��[��\��\��]��]��^��^��_��_��` ��`��a ��a��b��b��c��c��d��d��e��e��f��f��g��g��h��h��i��i��jj����j��k��k��l��l��l��l��m��m��n��n��o��o��n��n��o��o��p��p��l��l��q��q��r��r��s��s��t ��t��u!��u��v"��v��r��r��s��s��w#��w��u!��u��v"��v��x$��x��n��n��o��o��p��p��l��l��y%��y��z&��z��{'��{��|(��|��})��}��~*��~��+����,����-����.����/����0����z&��z��{'��{��1����})��}��~*��~��2����,����-����3����/����0����4����r��r��s��s��w#��w��u!��u��v"��v��x$��x��n��n��o��o��p��p��l��l��k��k��l��l��m��m��n��n��o��o��q��q��r��r��s��s��t ��t��u!��u��v"��v��y%��y��z&��z��{'��{��|(��|��})��}��~*��~��+����,����-����.����/����0����1����2����3����4����w#��w��x$��x��p��p��1����2����3����4����w#��w��x$��x��p��p��k��k��m��m��q��q��t ��t��y%��y��|(��|��+����.����1����2����3����4����w#��w��x$��x��p��p��5����6����7����8����9����:����;����<����=����>����?����@����A����B����C����D����E����F����G����H����I����J����K����L����M����N����O����P����Q����R�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1� �����������D��=� �������������������#���$�=��>�C���D�]��^�a���b������������������������������������������������������������������������������������J�KK��L������5�66��7������������������������  �� ������� � ��������� �$�'�)�,�.�1�3�5�7�8�9�;�<�=�>�A�E�H�J�M�O�Q�T�V�W�Y�Z�^�a�d�g�i�k�n�p�r�t�u�v�y�{�}�������������������������������������������    "%),/246:=@CEGJLNPQRV[_bfilpsuxz}� "%(*-/127;?BFILNRUXZ]_abfilnqsuvy{}~ #*16;BGLQ\gpy "*2:@FNTZ`n|� &0:BJR]fov&/<GR[fox�   $(,02468>DHLPTVX^dhlptvx�   $(,02468>DHLPTVX^dhlptvx    ! , 7 @ F J N R T V a l u ~    # * 1 6 B L V ` h p z  " . 8 D P Z d n v    ! & 2 < F N X ` h n }     & . 6 > D J L N T Z ` f j n r v x z | ~  &.6>DJLNTZ`fjnrvxz|~ &.6>DJLNTZ`fjnrvxz|~ &.46<BFJLNTZ^bfhnrvz|~���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'�7�G�W�g�w��������/�?�O�_�o���������/�O�_�o������?�����'�G�W�g��������?�O�_���������O�_������/�?�o����/�o���7�w���?������7�G�W�w�������/�?�O�o��������/�O�o��������G�W�������?�O��������O�������/�?�_�o������/�_�o����'�7�g�w�����?�_������_����'�g����/�?�o�����/�o����7�w����?������'�7�G�g�w�������/�?�_�o��������/�_�o�������'�G�g�������?�_��������_�������7�G�w������/�?�o�������/�o�������G������?���������/�?�O�_�o��������/�O�_�o������'�7�W�g�w�������?�O�_��������O�_������'�W�g������/�?�O�o�������/�O�o������7�W�w������?�O�������O������W������/�?�_�o�������/�_�o�����'�7�g�w������?�_�������_�����'�g�����/�?�o������/�o�����7�w�����?��������'�7�G�W�g�w���������/�?�O�_�o����������/�O�_�o���������'�G�W�g���������?�O�_����������O�_���������7�G�W�w��������/�?�O�o���������/�O�o���������G�W��������?�O���������O��������'�7�G�g�w��������/�?�_�o���������/�_�o��������'�G�g��������?�_���������_��������7�G�w�������/�?�o��������/�o��������G�������?���������'�7�W�g�w�������'�W�g�������7�W�w�������W������'�7�g�w������'�g������7�w�������'�7�W�g�w��������'�W�g��������7�W�w��������W�������'�7�g�w�������'�g�������7�w���������'�7�G�W�g�w����������'�G�W�g����������7�G�W�w����������G�W���������'�7�G�g�w���������'�G�g���������7�G�w���������G���������'�7�W�g�w���������'�W�g���������7�W�w���������W��������'�7�g�w��������'�g��������7�w����������#�3�C�S�c�s���&�6�F�V�f�v� ��+�;�K�[�k�{���.�>�N�^�n�~� ��+�K�[�k���.�N�^�n�;�{�>�~���#�C�S�c���&�F�V�f� ��;�K�[�{���>�N�^�~� ��K�[���N�^�+�;�k�{�.�>�n�~�+�k�.�n�3�s�6�v���3�C�S�s���6�F�V�v� �+�;�K�k�{��.�>�N�n�~� �+�K�k��.�N�n���C�S���F�V� �;�K�{��>�N�~� �K��N��+�;�[�k�{��.�>�^�n�~��+�[�k��.�^�n�#�3�c�s�&�6�f�v��;�[�{��>�^�~��[��^�#�c�&�f��#�3�C�c�s��&�6�F�f�v��#�C�c��&�F�f��3�C�s��6�F�v��C��F��#�3�S�c�s��&�6�V�f�v��#�S�c��&�V�f��3�S�s��6�V�v��S��V���"�2�B�R�b�r���%�5�E�U�e�u� ��*�:�J�Z�j�z� ��-�=�M�]�m�}� ��*�J�Z�j� ��-�M�]�m�:�z�=�}���"�B�R�b���%�E�U�e� ��:�J�Z�z� ��=�M�]�}� ��J�Z� ��M�]�*�:�j�z�-�=�m�}�*�j�-�m�2�r�5�u���2�B�R�r���5�E�U�u� �*�:�J�j�z� �-�=�M�m�}� �*�J�j� �-�M�m���B�R���E�U� �:�J�z� �=�M�}� �J� �M��*�:�Z�j�z��-�=�]�m�}��*�Z�j��-�]�m�"�2�b�r�%�5�e�u��:�Z�z��=�]�}��Z��]�"�b�%�e��"�2�B�b�r��%�5�E�e�u��"�B�b��%�E�e��2�B�r��5�E�u��B��E��"�2�R�b�r��%�5�U�e�u��"�R�b��%�U�e��2�R�r��5�U�u��R��U���!�1�A�Q�a�q� ��)�9�I�Y�i�y� ��)�I�Y�i�9�y���!�A�Q�a� ��9�I�Y�y� ��I�Y�)�9�i�y�)�i�1�q���1�A�Q�q� �)�9�I�i�y� �)�I�i���A�Q� �9�I�y� �I��)�9�Y�i�y��)�Y�i�!�1�a�q��9�Y�y��Y�!�a��!�1�A�a�q��!�A�a��1�A�q��A��!�1�Q�a�q��!�Q�a��1�Q�q��Q���'�7�G�W�g�w��������/�?�O�_�o���������/�O�_�o������?������'�G�W�g��������?�O�_���������O�_������/�?�o����/�o���7�w���?����������7�G�W�w�������/�?�O�o��������/�O�o��������G�W�������?�O��������O�������/�?�_�o������/�_�o����'�7�g�w�����?�_������_����'�g����/�?�o�����/�o����7�w����?������������'�7�G�g�w�������/�?�_�o��������/�_�o�������'�G�g�������?�_��������_�������7�G�w������/�?�o�������/�o�������G������?��������������/�?�O�_�o��������/�O�_�o������'�7�W�g�w�������?�O�_��������O�_������'�W�g������/�?�O�o�������/�O�o������7�W�w������?�O�������O������W������/�?�_�o�������/�_�o�����'�7�g�w������?�_�������_�����'�g�����/�?�o������/�o�����7�w�����?����������������'�7�G�W�g�w���������/�?�O�_�o����������/�O�_�o���������'�G�W�g���������?�O�_����������O�_���������7�G�W�w��������/�?�O�o���������/�O�o���������G�W��������?�O���������O��������'�7�G�g�w��������/�?�_�o���������/�_�o��������'�G�g��������?�_���������_��������7�G�w�������/�?�o��������/�o��������G�������?���������������'�7�W�g�w�������'�W�g�������7�W�w�������W������'�7�g�w������'�g������7�w������������'�7�W�g�w��������'�W�g��������7�W�w��������W�������'�7�g�w�������'�g�������7�w���������������'�7�G�W�g�w����������'�G�W�g����������7�G�W�w����������G�W���������'�7�G�g�w���������'�G�g���������7�G�w���������G���������'�7�W�g�w���������'�W�g���������7�W�w���������W��������'�7�g�w��������'�g��������7�w�����������������#�3�C�S�c�s���&�6�F�V�f�v� ��+�;�K�[�k�{���.�>�N�^�n�~� ��+�K�[�k���.�N�^�n�;�{�>�~���#�C�S�c���&�F�V�f� ��;�K�[�{���>�N�^�~� ��K�[���N�^�+�;�k�{�.�>�n�~�+�k�.�n�3�s�6�v���3�C�S�s���6�F�V�v� �+�;�K�k�{��.�>�N�n�~� �+�K�k��.�N�n���C�S���F�V� �;�K�{��>�N�~� �K��N��+�;�[�k�{��.�>�^�n�~��+�[�k��.�^�n�#�3�c�s�&�6�f�v��;�[�{��>�^�~��[��^�#�c�&�f��#�3�C�c�s��&�6�F�f�v��#�C�c��&�F�f��3�C�s��6�F�v��C��F��#�3�S�c�s��&�6�V�f�v��#�S�c��&�V�f��3�S�s��6�V�v��S��V���"�2�B�R�b�r���%�5�E�U�e�u� ��*�:�J�Z�j�z� ��-�=�M�]�m�}� ��*�J�Z�j� ��-�M�]�m�:�z�=�}���"�B�R�b���%�E�U�e� ��:�J�Z�z� ��=�M�]�}� ��J�Z� ��M�]�*�:�j�z�-�=�m�}�*�j�-�m�2�r�5�u���2�B�R�r���5�E�U�u� �*�:�J�j�z� �-�=�M�m�}� �*�J�j� �-�M�m���B�R���E�U� �:�J�z� �=�M�}� �J� �M��*�:�Z�j�z��-�=�]�m�}��*�Z�j��-�]�m�"�2�b�r�%�5�e�u��:�Z�z��=�]�}��Z��]�"�b�%�e��"�2�B�b�r��%�5�E�e�u��"�B�b��%�E�e��2�B�r��5�E�u��B��E��"�2�R�b�r��%�5�U�e�u��"�R�b��%�U�e��2�R�r��5�U�u��R��U���!�1�A�Q�a�q���$�4�D�T�d�t� ��)�9�I�Y�i�y� ��,�<�L�\�l�|� ��)�I�Y�i� ��,�L�\�l�9�y�<�|���!�A�Q�a���$�D�T�d� ��9�I�Y�y� ��<�L�\�|� ��I�Y� ��L�\�)�9�i�y�,�<�l�|�)�i�,�l�1�q�4�t���1�A�Q�q���4�D�T�t� �)�9�I�i�y� �,�<�L�l�|� �)�I�i� �,�L�l���A�Q���D�T� �9�I�y� �<�L�|� �I� �L��)�9�Y�i�y��,�<�\�l�|��)�Y�i��,�\�l�!�1�a�q�$�4�d�t��9�Y�y��<�\�|��Y��\�!�a�$�d��!�1�A�a�q��$�4�D�d�t��!�A�a��$�D�d��1�A�q��4�D�t��A��D��!�1�Q�a�q��$�4�T�d�t��!�Q�a��$�T�d��1�Q�q��4�T�t��Q��T���� �0�@�P�`�p���(�8�H�X�h�x���(�H�X�h�8�x���� �@�P�`���8�H�X�x���H�X�(�8�h�x�(�h�0�p����0�@�P�p��(�8�H�h�x��(�H�h����@�P��8�H�x��H��(�8�X�h�x��(�X�h� �0�`�p��8�X�x��X� �`��� �0�@�`�p��� �@�`���0�@�p���@�� �0�P�`�p�� �P�`��0�P�p��P������ ��8�v�� � � �� � ��� � ��� ���� � ��� ���� �������� �������������������������������� � � �� � ��� � ��� ���� � ��� ���� �������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*�T�~���&Pz"LvHrDn@j<f8b 4^  0 Z  , V ( R | $ N x J t FpBl>h:d 6`2\.X�.E\s+BYp(������������������� � � � � � � � �� � � � � ��� � � � ��� � � � ��� � � � ��� � ��������������������� ������"�!�����$�#�����&�%�����(�'�����*�)�����,�+�����.�-�����0�/�����2�1�����4�3���8�7�6�5�7�8�8�7�:�9�7�8�8�7�<�;�7�8�8�7�>�=�7�8�8�7�@�?�7�8�8�7�B�A�7�8�8�7�D�C�7�8�8�7�F�E�7�8�8�7�H�G�7�8�8�7�J�I�7�8�8�7�L�K�7�8�8�7�N�M�7�8�8�7�P�O�7�8�8�7�R�Q�7�8�8�7�T�S�7�8�8�7�V�U�7�8�8�7�X�W�7�8�8�7�Z�Y�7�8�8�7�\�[�7�8�8�7�^�]�7�8�8�7�`�_�7�8�8�7�b�a�7�8�8�7�d�c�7�8�8�7�f�e�7�8�8�7�h�g�7�8�8�7�j�i�7�8�8�7�l�k�7�8�8�7�n�m�7�8�8�7�p�o�7�8�8�7�r�q�7�8�v�u�t�s�u�v�v�u�x�w�u�v�v�u�z�y�u�v�v�u�|�{�u�v�v�u�~�}�u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v�v�u���u�v������������������������������������� � ��  � ��������������������! �"��$#�%��'&�(��*)�+��-,�.��0/�1��32�4��76�5��:9�8��=<�;��@?�>��CB�A��FE�D��IH�G��LK�J��NM�O��QP�R��TS�U��WV�X��ZY�[��]\�^��`_�a��cb�d��fe�g��ih�j��lk�m��on�p��rq�s��ut�v��xw�y��{z�|��~�}�����������������������������������������������76���:9���=<���@?���CB���FE���IH���LK���fe���ih���lk���on���rq���ut���xw���{z���~������������������������������������������������76���:9���=<���@?���CB���FE���IH���LK���fe���ih���lk���on���rq���ut���xw���{z���~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������� ���������� ���������� ���������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������!����������"����������#����������$����������%����������&����������'����������(����������)����������*����������+����������,����������-����������.����������/����������0����������1����������2����������3����������4����������5������������������������������6����������7����������8����������9����������:����������;����������<����������=����������>����������?����������@����������A����������B����������C����������D����������E����������F����������G����������H����������I����������J����������K����������L����������M����������N����������O����������P����������Q����������R����������S����������T����������U����������V����������W����������X����������Y����������Z����������[����������\����������]����������^����������_����������`����������a����������b����������c����������d����������e����������f����������g����������h����������i����������j����������k����������l����������m����������n����������o����������p����������q����������r����������s����������t����������u����������v����������w����������x����������y����������z����������{������������������������������|����������}����������~��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$��$$����������,��,,����<��<<����=5+=����>6,>����?7-?����@8.@����A9/A����B:0B����C;1C����D<2D����E=3E����F>4F����G?5G����H@6H����IA7I����JB8J����KC9K����LD:L����ME;M����NF<N����OG=O����PH>P����QI?Q����RJ@R����SKAS����TLBT����UMCU����VNDV����WOEW����XPFX����YQGY����ZRHZ����[SI[����\TJ\����]UK]����^VL^����_WM_����`XN`����aYOa����bZPb����c[Qc����d\Rd����e]Se����f^Tf����g_Ug����h`Vh����iaWi����jbXj����kcYk����ldZl����me[m����nf\n����og]o����ph^p����qi_q����rj`r����skas����tlbt����umcu����vndv����woew����xpfx����yqgy����zrhz����{si{����|tj|����}uk}����~vl~����wm����xn����yo����zp����{q����|r����}s����~t����u����v����w����x����y����z����{����|����}����~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��  ���� ��  ���� ��  ���� ��  ���� ��  ���������������������������  ��  ����� ������������������ ��"!��$#����  ��  �����&%������('�� ��"!��*)����  ��,+���������������.-������0/������21������43�������� ��"!��$#����� � ��  �������������  ��  ��   ��  ��  ���������&%������('�� ��"!��* )�� ��   ��, +��� ������������.-������0/������21������ 4 3������!!�� ��"!��"$"#����  ��# # ���������%.%-��  ��  ��&0&/��  ��  ��'2'1������(4(3������))�� ��"!��*$*#�� ��   ��+ + ��� ��������,��,,������������  ��  ��   ��  ��  ���������&%������('�� ��"!��* )�� ��   ��, +��� ������������%.%-��  ��  ��&0&/��  ��  ��'2'1������(4(3������))�� ��"!��*$*#�� ��   ��+ + ��� ��--��..��// ��00��1& 1%��2(!2'��3*"3)��4,#4+��5.$5-��60%6/��72&71��84'83��9(9��:$):#��; *; ��<��<<����--��..��// ��00��1& 1%��2(!2'��3*"3)��4,#4+��5.$5-��60%6/��72&71��84'83��9(9��:$):#��; *; ��<��<<����--��..��// ��00��1& 1%��2(!2'��3*"3)��4,#4+��5.$5-��60%6/��72&71��84'83��9(9��:$):#��; *; ��<��<<����--��..��// ��00��1& 1%��2(!2'��3*"3)��4,#4+��5.$5-��60%6/��72&71��84'83��9(9��:$):#��; *; ��>6,>����@8.@����B:0B����D<2D����F>4F����H@6H����JB8J����LD:L����NF<N����PH>P����D<2D����RJ@R����TLBT����VNDV����XPFX����ZRHZ����\TJ\����^VL^����`XN`����bZPb����d\Rd����f^Tf����h`Vh����LD:L����NF<N����PH>P����D<2D����jbXj����^VL^����`XN`����ldZl����d\Rd����f^Tf����nf\n����LD:L����NF<N����ph^p����D<2D����@8.@����B:0B����rj`r����H@6H����JB8J����tlbt����TLBT����VNDV����vndv����ZRHZ����\TJ\����xpfx����^VL^����`XN`����bZPb����d\Rd����f^Tf����h`Vh����LD:L����NF<N����PH>P����D<2D����>6,>����@8.@����B:0B����F>4F����H@6H����JB8J����RJ@R����TLBT����VNDV����XPFX����ZRHZ����\TJ\����jbXj����^VL^����`XN`����ldZl����d\Rd����f^Tf����nf\n����LD:L����NF<N����ph^p����D<2D����rj`r����tlbt����vndv����xpfx����bZPb����h`Vh����PH>P����rj`r����tlbt����vndv����xpfx����bZPb����h`Vh����PH>P����>6,>����F>4F����RJ@R����XPFX����jbXj����ldZl����nf\n����ph^p����rj`r����tlbt����vndv����xpfx����bZPb����h`Vh����PH>P����yqgy����zrhz����{si{����|tj|����}uk}����~vl~����wm����xn����yo����zp����{q����|r����}s����~t����u����v����w����x����y����z����{����|����}����~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��  ���� ��  ���� ��  ���� ��  ���� ��  �����������** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#*�*� ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�** *���#** ##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1�**���##1������ ����������������������� ����� #����� ��������������Ā�����̀�������Ԁ����������� � �� � ��������������������������vie������$�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src���������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13037� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/defines.h�����������������������������������������������������������������������������000444��000765��000024�� 4443�11760240072� 14766� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <SDL.h> #include "SDL_thread.h" /* */ /* defines.h */ /* */ /* Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* This library is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public */ /* License as published by the Free Software Foundation; either */ /* version 2.1 of the License, or (at your option) any later version. */ /* */ /* This library is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public */ /* License along with this library; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* Please feel free to send questions, suggestions or improvements to: */ /* */ /* David J. Goehrig */ /* dgoehrig@cpan.org */ /* */ #ifndef SDL_PERL_DEFINES_H #define SDL_PERL_DEFINES_H #ifdef USE_THREADS PerlInterpreter *parent_perl = NULL; extern PerlInterpreter *parent_perl; PerlInterpreter *current_perl = NULL; #define GET_TLS_CONTEXT eval_pv("require DynaLoader;", TRUE); \ if(!current_perl) { \ parent_perl = PERL_GET_CONTEXT; \ current_perl = perl_clone(parent_perl, CLONEf_KEEP_PTR_TABLE); \ PERL_SET_CONTEXT(parent_perl); \ } #define ENTER_TLS_CONTEXT { \ if(!PERL_GET_CONTEXT) { \ PERL_SET_CONTEXT(current_perl); \ } #define LEAVE_TLS_CONTEXT } #else PerlInterpreter *parent_perl = NULL; extern PerlInterpreter *parent_perl; #define GET_TLS_CONTEXT /* TLS context not enabled */ #define ENTER_TLS_CONTEXT /* TLS context not enabled */ #define LEAVE_TLS_CONTEXT /* TLS context not enabled */ #endif /* VERSION_ATLEAST(have_triplet, need_triplet) */ #define VERSION_ATLEAST(a, b, c, d, e, f) (a > d || (a == d && b > e) \ || (a == d && b == e && c >= f)) #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/helper.h������������������������������������������������������������������������������000444��000765��000024�� 6272�11760240072� 14632� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� #ifndef SDL_PERL_HELPER_H #define SDL_PERL_HELPER_H #include <SDL.h> #include "SDL_thread.h" PerlInterpreter * perl = NULL; void *bag2obj( SV *bag ) { void *obj = NULL; if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { void **pointers = (void **)INT2PTR(void *, SvIV((SV *)SvRV( bag ))); obj = (void *)(pointers[0]); } return obj; } SV *obj2bag( int size_ptr, void *obj, char *CLASS ) { SV * objref = newSV( size_ptr ); void** pointers = safemalloc(3 * sizeof(void*)); pointers[0] = (void*)obj; pointers[1] = (void*)PERL_GET_CONTEXT; Uint32 *threadid = (Uint32 *)safemalloc(sizeof(Uint32)); *threadid = SDL_ThreadID(); pointers[2] = (void*)threadid; sv_setref_pv( objref, CLASS, (void *)pointers); return objref; } SV *cpy2bag( void *object, int p_size, int s_size, char *package ) { SV *ref = newSV( p_size ); void *copy = safemalloc( s_size ); memcpy( copy, object, s_size ); void** pointers = safemalloc(3 * sizeof(void*)); pointers[0] = (void*)copy; pointers[1] = (void*)PERL_GET_CONTEXT; Uint32 *threadid = (Uint32 *)safemalloc(sizeof(Uint32)); *threadid = SDL_ThreadID(); pointers[2] = (void*)threadid; SV* a = sv_setref_pv(ref, package, (void *)pointers); return a; } void objDESTROY(SV *bag, void (* callback)(void *object)) { if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( bag ))); void* object = pointers[0]; Uint32 *threadid = (Uint32*)(pointers[2]); if(PERL_GET_CONTEXT == pointers[1] && *threadid == SDL_ThreadID()) { pointers[0] = NULL; if(object) callback(object); safefree(threadid); safefree(pointers); } } } SV *_sv_ref( void *object, int p_size, int s_size, char *package ) { SV *ref = newSV( p_size ); void *copy = safemalloc( s_size ); memcpy( copy, object, s_size ); void** pointers = safemalloc(3 * sizeof(void*)); pointers[0] = (void*)copy; pointers[1] = (void*)perl; Uint32 *threadid = (Uint32 *)safemalloc(sizeof(Uint32)); *threadid = SDL_ThreadID(); pointers[2] = (void*)threadid; return sv_setref_pv(ref, package, (void *)pointers); } void _svinta_free(Sint16* av, int len_from_av_len) { if( av == NULL ) return; safefree( av ); /* we only need to free the malloc'd array. It is one block. */ av = NULL; } Sint16* av_to_sint16 (AV* av) { int len = av_len(av); if( len != -1) { int i; Sint16* table = (Sint16 *)safemalloc(sizeof(Sint16)*(len+1)); for ( i = 0; i < len+1 ; i++ ) { SV ** temp = av_fetch(av,i,0); if( temp != NULL ) table[i] = (Sint16) SvIV ( *temp ); else table[i] = 0; } return table; } return NULL; } void _int_range( int *val, int min, int max ) { if( *val < min ) *val = min; else if ( *val > max ) *val = max; } #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Image.xs������������������������������������������������������������������������������000444��000765��000024�� 13741�11760240072� 14617� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_IMAGE #include <SDL_image.h> #endif void test( char** xpm) { int x, y; int w, h, ncolors, cpp; char *line; char ***xpmlines = NULL; xpmlines = &xpm; line = *(*xpmlines)++; if(sscanf(line, "%d %d %d %d", &w, &h, &ncolors, &cpp) != 4 || w <= 0 || h <= 0 || ncolors <= 0 || cpp <= 0) { warn( "Invalid format description %s \n %d %d %d %d", line, w, h, ncolors, cpp); } } MODULE = SDL::Image PACKAGE = SDL::Image PREFIX = image_ #ifdef HAVE_SDL_IMAGE const SDL_version* image_linked_version() PREINIT: char* CLASS = "SDL::Version"; SDL_version *version; CODE: version = (SDL_version *) safemalloc ( sizeof(SDL_version) ); SDL_version* version_dont_free = (SDL_version *)IMG_Linked_Version(); version->major = version_dont_free->major; version->minor = version_dont_free->minor; version->patch = version_dont_free->patch; RETVAL = version; OUTPUT: RETVAL #if (SDL_IMAGE_MAJOR_VERSION >= 1) && (SDL_IMAGE_MINOR_VERSION >= 2) && (SDL_IMAGE_PATCHLEVEL >= 10) int image_init(flags) int flags CODE: RETVAL = IMG_Init(flags); OUTPUT: RETVAL void image_quit() CODE: IMG_Quit(); #endif SDL_Surface * image_load ( filename ) char *filename CODE: char* CLASS = "SDL::Surface"; RETVAL = IMG_Load(filename); OUTPUT: RETVAL SDL_Surface * image_load_rw ( rw_file, src ) SDL_RWops *rw_file int src PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = IMG_Load_RW(rw_file, src); OUTPUT: RETVAL SDL_Surface * image_load_typed_rw(src, freesrc, type) SDL_RWops* src int freesrc char* type PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadTyped_RW(src, freesrc, type); OUTPUT: RETVAL #if (SDL_IMAGE_MAJOR_VERSION >= 1) && (SDL_IMAGE_MINOR_VERSION >= 2) && (SDL_IMAGE_PATCHLEVEL >= 10) SDL_Surface * image_load_ICO_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadICO_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_CUR_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadCUR_RW(src); OUTPUT: RETVAL #endif SDL_Surface * image_load_BMP_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadBMP_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_GIF_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadGIF_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_JPG_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadJPG_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_LBM_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadLBM_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_PCX_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadPCX_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_PNG_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadPNG_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_PNM_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadPNM_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_TGA_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadTGA_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_TIF_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadTIF_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_XCF_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadXCF_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_XPM_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadXPM_RW(src); OUTPUT: RETVAL SDL_Surface * image_load_XV_rw(src) SDL_RWops* src PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = IMG_LoadXV_RW(src); OUTPUT: RETVAL int image_is_BMP(src) SDL_RWops* src; CODE: RETVAL=IMG_isBMP(src); OUTPUT: RETVAL #if (SDL_IMAGE_MAJOR_VERSION >= 1) && (SDL_IMAGE_MINOR_VERSION >= 2) && (SDL_IMAGE_PATCHLEVEL >= 10) int image_is_CUR(src) SDL_RWops* src; CODE: RETVAL=IMG_isCUR(src); OUTPUT: RETVAL int image_is_ICO(src) SDL_RWops* src; CODE: RETVAL=IMG_isICO(src); OUTPUT: RETVAL #endif int image_is_GIF(src) SDL_RWops * src; CODE: RETVAL=IMG_isGIF(src); OUTPUT: RETVAL int image_is_JPG(src) SDL_RWops * src; CODE: RETVAL=IMG_isJPG(src); OUTPUT: RETVAL int image_is_LBM(src) SDL_RWops * src; CODE: RETVAL=IMG_isLBM(src); OUTPUT: RETVAL int image_is_PCX(src) SDL_RWops * src; CODE: RETVAL=IMG_isPCX(src); OUTPUT: RETVAL int image_is_PNG(src) SDL_RWops * src; CODE: RETVAL=IMG_isPNG(src); OUTPUT: RETVAL int image_is_PNM(src) SDL_RWops * src; CODE: RETVAL=IMG_isPNM(src); OUTPUT: RETVAL int image_is_TIF(src) SDL_RWops * src; CODE: RETVAL=IMG_isTIF(src); OUTPUT: RETVAL int image_is_XCF(src) SDL_RWops * src; CODE: RETVAL=IMG_isXCF(src); OUTPUT: RETVAL int image_is_XPM(src) SDL_RWops * src; CODE: RETVAL=IMG_isXPM(src); OUTPUT: RETVAL int image_is_XV(src) SDL_RWops * src; CODE: RETVAL=IMG_isXV(src); OUTPUT: RETVAL SDL_Surface * image_read_XPM_from_array(array, w) int w AV* array PREINIT: char* CLASS = "SDL::Surface"; CODE: /*make columns first */ int x, len; SV ** elem; len = av_len(array) + 1; char** src_x = safemalloc( len * sizeof(char*)); char* temp; for(x=0; x < len ; x++) { elem = av_fetch(array, x, 0) ; temp = SvPV_nolen(*elem); src_x[x] = safemalloc(w * sizeof(char) ); memcpy( src_x[x], temp, w * sizeof(char) ); /*warn("put in %s", src_x[x]); */ } /*test(src_x); */ RETVAL = IMG_ReadXPMFromArray( src_x) ; for(x=0; x < len; x++) safefree(src_x[x]); safefree(src_x); OUTPUT: RETVAL #endif �������������������������������SDL-2.540/src/ppport.h������������������������������������������������������������������������������000444��000765��000024�� 531371�11760240073� 14743� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#if 0 <<'SKIP'; #endif /* ---------------------------------------------------------------------- ppport.h -- Perl/Pollution/Portability Version 3.19_02 Automatically created by Devel::PPPort running under perl 5.012002. Do NOT edit this file directly! -- Edit PPPort_pm.PL and the includes in parts/inc/ instead. Use 'perldoc ppport.h' to view the documentation below. ---------------------------------------------------------------------- SKIP =pod =head1 NAME ppport.h - Perl/Pollution/Portability version 3.19_02 =head1 SYNOPSIS perl ppport.h [options] [source files] Searches current directory for files if no [source files] are given --help show short help --version show version --patch=file write one patch file with changes --copy=suffix write changed copies with suffix --diff=program use diff program and options --compat-version=version provide compatibility with Perl version --cplusplus accept C++ comments --quiet don't output anything except fatal errors --nodiag don't show diagnostics --nohints don't show hints --nochanges don't suggest changes --nofilter don't filter input files --strip strip all script and doc functionality from ppport.h --list-provided list provided API --list-unsupported list unsupported API --api-info=name show Perl API portability information =head1 COMPATIBILITY This version of F<ppport.h> is designed to support operation with Perl installations back to 5.003, and has been tested up to 5.11.5. =head1 OPTIONS =head2 --help Display a brief usage summary. =head2 --version Display the version of F<ppport.h>. =head2 --patch=I<file> If this option is given, a single patch file will be created if any changes are suggested. This requires a working diff program to be installed on your system. =head2 --copy=I<suffix> If this option is given, a copy of each file will be saved with the given suffix that contains the suggested changes. This does not require any external programs. Note that this does not automagially add a dot between the original filename and the suffix. If you want the dot, you have to include it in the option argument. If neither C<--patch> or C<--copy> are given, the default is to simply print the diffs for each file. This requires either C<Text::Diff> or a C<diff> program to be installed. =head2 --diff=I<program> Manually set the diff program and options to use. The default is to use C<Text::Diff>, when installed, and output unified context diffs. =head2 --compat-version=I<version> Tell F<ppport.h> to check for compatibility with the given Perl version. The default is to check for compatibility with Perl version 5.003. You can use this option to reduce the output of F<ppport.h> if you intend to be backward compatible only down to a certain Perl version. =head2 --cplusplus Usually, F<ppport.h> will detect C++ style comments and replace them with C style comments for portability reasons. Using this option instructs F<ppport.h> to leave C++ comments untouched. =head2 --quiet Be quiet. Don't print anything except fatal errors. =head2 --nodiag Don't output any diagnostic messages. Only portability alerts will be printed. =head2 --nohints Don't output any hints. Hints often contain useful portability notes. Warnings will still be displayed. =head2 --nochanges Don't suggest any changes. Only give diagnostic output and hints unless these are also deactivated. =head2 --nofilter Don't filter the list of input files. By default, files not looking like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped. =head2 --strip Strip all script and documentation functionality from F<ppport.h>. This reduces the size of F<ppport.h> dramatically and may be useful if you want to include F<ppport.h> in smaller modules without increasing their distribution size too much. The stripped F<ppport.h> will have a C<--unstrip> option that allows you to undo the stripping, but only if an appropriate C<Devel::PPPort> module is installed. =head2 --list-provided Lists the API elements for which compatibility is provided by F<ppport.h>. Also lists if it must be explicitly requested, if it has dependencies, and if there are hints or warnings for it. =head2 --list-unsupported Lists the API elements that are known not to be supported by F<ppport.h> and below which version of Perl they probably won't be available or work. =head2 --api-info=I<name> Show portability information for API elements matching I<name>. If I<name> is surrounded by slashes, it is interpreted as a regular expression. =head1 DESCRIPTION In order for a Perl extension (XS) module to be as portable as possible across differing versions of Perl itself, certain steps need to be taken. =over 4 =item * Including this header is the first major one. This alone will give you access to a large part of the Perl API that hasn't been available in earlier Perl releases. Use perl ppport.h --list-provided to see which API elements are provided by ppport.h. =item * You should avoid using deprecated parts of the API. For example, using global Perl variables without the C<PL_> prefix is deprecated. Also, some API functions used to have a C<perl_> prefix. Using this form is also deprecated. You can safely use the supported API, as F<ppport.h> will provide wrappers for older Perl versions. =item * If you use one of a few functions or variables that were not present in earlier versions of Perl, and that can't be provided using a macro, you have to explicitly request support for these functions by adding one or more C<#define>s in your source code before the inclusion of F<ppport.h>. These functions or variables will be marked C<explicit> in the list shown by C<--list-provided>. Depending on whether you module has a single or multiple files that use such functions or variables, you want either C<static> or global variants. For a C<static> function or variable (used only in a single source file), use: #define NEED_function #define NEED_variable For a global function or variable (used in multiple source files), use: #define NEED_function_GLOBAL #define NEED_variable_GLOBAL Note that you mustn't have more than one global request for the same function or variable in your project. Function / Variable Static Request Global Request ----------------------------------------------------------------------------------------- PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL grok_number() NEED_grok_number NEED_grok_number_GLOBAL grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL load_module() NEED_load_module NEED_load_module_GLOBAL my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL pv_display() NEED_pv_display NEED_pv_display_GLOBAL pv_escape() NEED_pv_escape NEED_pv_escape_GLOBAL pv_pretty() NEED_pv_pretty NEED_pv_pretty_GLOBAL sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL vload_module() NEED_vload_module NEED_vload_module_GLOBAL vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL warner() NEED_warner NEED_warner_GLOBAL To avoid namespace conflicts, you can change the namespace of the explicitly exported functions / variables using the C<DPPP_NAMESPACE> macro. Just C<#define> the macro before including C<ppport.h>: #define DPPP_NAMESPACE MyOwnNamespace_ #include "ppport.h" The default namespace is C<DPPP_>. =back The good thing is that most of the above can be checked by running F<ppport.h> on your source code. See the next section for details. =head1 EXAMPLES To verify whether F<ppport.h> is needed for your module, whether you should make any changes to your code, and whether any special defines should be used, F<ppport.h> can be run as a Perl script to check your source code. Simply say: perl ppport.h The result will usually be a list of patches suggesting changes that should at least be acceptable, if not necessarily the most efficient solution, or a fix for all possible problems. If you know that your XS module uses features only available in newer Perl releases, if you're aware that it uses C++ comments, and if you want all suggestions as a single patch file, you could use something like this: perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff If you only want your code to be scanned without any suggestions for changes, use: perl ppport.h --nochanges You can specify a different C<diff> program or options, using the C<--diff> option: perl ppport.h --diff='diff -C 10' This would output context diffs with 10 lines of context. If you want to create patched copies of your files instead, use: perl ppport.h --copy=.new To display portability information for the C<newSVpvn> function, use: perl ppport.h --api-info=newSVpvn Since the argument to C<--api-info> can be a regular expression, you can use perl ppport.h --api-info=/_nomg$/ to display portability information for all C<_nomg> functions or perl ppport.h --api-info=/./ to display information for all known API elements. =head1 BUGS If this version of F<ppport.h> is causing failure during the compilation of this module, please check if newer versions of either this module or C<Devel::PPPort> are available on CPAN before sending a bug report. If F<ppport.h> was generated using the latest version of C<Devel::PPPort> and is causing failure of this module, please file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>. Please include the following information: =over 4 =item 1. The complete output from running "perl -V" =item 2. This file. =item 3. The name and version of the module you were trying to build. =item 4. A full log of the build that failed. =item 5. Any other information that you think could be relevant. =back For the latest version of this code, please get the C<Devel::PPPort> module from CPAN. =head1 COPYRIGHT Version 3.x, Copyright (c) 2004-2010, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. Version 1.x, Copyright (C) 1999, Kenneth Albanowski. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO See L<Devel::PPPort>. =cut use strict; # Disable broken TRIE-optimization BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 } my $VERSION = 3.19_02; my %opt = ( quiet => 0, diag => 1, hints => 1, changes => 1, cplusplus => 0, filter => 1, strip => 0, version => 0, ); my($ppport) = $0 =~ /([\w.]+)$/; my $LF = '(?:\r\n|[\r\n])'; # line feed my $HS = "[ \t]"; # horizontal whitespace # Never use C comments in this file! my $ccs = '/'.'*'; my $cce = '*'.'/'; my $rccs = quotemeta $ccs; my $rcce = quotemeta $cce; eval { require Getopt::Long; Getopt::Long::GetOptions(\%opt, qw( help quiet diag! filter! hints! changes! cplusplus strip version patch=s copy=s diff=s compat-version=s list-provided list-unsupported api-info=s )) or usage(); }; if ($@ and grep /^-/, @ARGV) { usage() if "@ARGV" =~ /^--?h(?:elp)?$/; die "Getopt::Long not found. Please don't use any options.\n"; } if ($opt{version}) { print "This is $0 $VERSION.\n"; exit 0; } usage() if $opt{help}; strip() if $opt{strip}; if (exists $opt{'compat-version'}) { my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) }; if ($@) { die "Invalid version number format: '$opt{'compat-version'}'\n"; } die "Only Perl 5 is supported\n" if $r != 5; die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000; $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s; } else { $opt{'compat-version'} = 5; } my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/ ? ( $1 => { ($2 ? ( base => $2 ) : ()), ($3 ? ( todo => $3 ) : ()), (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()), (index($4, 'p') >= 0 ? ( provided => 1 ) : ()), (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()), } ) : die "invalid spec: $_" } qw( AvFILLp|5.004050||p AvFILL||| CLASS|||n CPERLscope|5.005000||p CX_CURPAD_SAVE||| CX_CURPAD_SV||| CopFILEAV|5.006000||p CopFILEGV_set|5.006000||p CopFILEGV|5.006000||p CopFILESV|5.006000||p CopFILE_set|5.006000||p CopFILE|5.006000||p CopSTASHPV_set|5.006000||p CopSTASHPV|5.006000||p CopSTASH_eq|5.006000||p CopSTASH_set|5.006000||p CopSTASH|5.006000||p CopyD|5.009002||p Copy||| CvPADLIST||| CvSTASH||| CvWEAKOUTSIDE||| DEFSV_set|5.010001||p DEFSV|5.004050||p END_EXTERN_C|5.005000||p ENTER||| ERRSV|5.004050||p EXTEND||| EXTERN_C|5.005000||p F0convert|||n FREETMPS||| GIMME_V||5.004000|n GIMME|||n GROK_NUMERIC_RADIX|5.007002||p G_ARRAY||| G_DISCARD||| G_EVAL||| G_METHOD|5.006001||p G_NOARGS||| G_SCALAR||| G_VOID||5.004000| GetVars||| GvSVn|5.009003||p GvSV||| Gv_AMupdate||5.011000| HEf_SVKEY||5.004000| HeHASH||5.004000| HeKEY||5.004000| HeKLEN||5.004000| HePV||5.004000| HeSVKEY_force||5.004000| HeSVKEY_set||5.004000| HeSVKEY||5.004000| HeUTF8||5.010001| HeVAL||5.004000| HvNAMELEN_get|5.009003||p HvNAME_get|5.009003||p HvNAME||| INT2PTR|5.006000||p IN_LOCALE_COMPILETIME|5.007002||p IN_LOCALE_RUNTIME|5.007002||p IN_LOCALE|5.007002||p IN_PERL_COMPILETIME|5.008001||p IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p IS_NUMBER_INFINITY|5.007002||p IS_NUMBER_IN_UV|5.007002||p IS_NUMBER_NAN|5.007003||p IS_NUMBER_NEG|5.007002||p IS_NUMBER_NOT_INT|5.007002||p IVSIZE|5.006000||p IVTYPE|5.006000||p IVdf|5.006000||p LEAVE||| LVRET||| MARK||| MULTICALL||5.011005| MY_CXT_CLONE|5.009002||p MY_CXT_INIT|5.007003||p MY_CXT|5.007003||p MoveD|5.009002||p Move||| NOOP|5.005000||p NUM2PTR|5.006000||p NVTYPE|5.006000||p NVef|5.006001||p NVff|5.006001||p NVgf|5.006001||p Newxc|5.009003||p Newxz|5.009003||p Newx|5.009003||p Nullav||| Nullch||| Nullcv||| Nullhv||| Nullsv||| ORIGMARK||| PAD_BASE_SV||| PAD_CLONE_VARS||| PAD_COMPNAME_FLAGS||| PAD_COMPNAME_GEN_set||| PAD_COMPNAME_GEN||| PAD_COMPNAME_OURSTASH||| PAD_COMPNAME_PV||| PAD_COMPNAME_TYPE||| PAD_DUP||| PAD_RESTORE_LOCAL||| PAD_SAVE_LOCAL||| PAD_SAVE_SETNULLPAD||| PAD_SETSV||| PAD_SET_CUR_NOSAVE||| PAD_SET_CUR||| PAD_SVl||| PAD_SV||| PERLIO_FUNCS_CAST|5.009003||p PERLIO_FUNCS_DECL|5.009003||p PERL_ABS|5.008001||p PERL_BCDVERSION|5.011004||p PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p PERL_HASH|5.004000||p PERL_INT_MAX|5.004000||p PERL_INT_MIN|5.004000||p PERL_LONG_MAX|5.004000||p PERL_LONG_MIN|5.004000||p PERL_MAGIC_arylen|5.007002||p PERL_MAGIC_backref|5.007002||p PERL_MAGIC_bm|5.007002||p PERL_MAGIC_collxfrm|5.007002||p PERL_MAGIC_dbfile|5.007002||p PERL_MAGIC_dbline|5.007002||p PERL_MAGIC_defelem|5.007002||p PERL_MAGIC_envelem|5.007002||p PERL_MAGIC_env|5.007002||p PERL_MAGIC_ext|5.007002||p PERL_MAGIC_fm|5.007002||p PERL_MAGIC_glob|5.011004||p PERL_MAGIC_isaelem|5.007002||p PERL_MAGIC_isa|5.007002||p PERL_MAGIC_mutex|5.011004||p PERL_MAGIC_nkeys|5.007002||p PERL_MAGIC_overload_elem|5.007002||p PERL_MAGIC_overload_table|5.007002||p PERL_MAGIC_overload|5.007002||p PERL_MAGIC_pos|5.007002||p PERL_MAGIC_qr|5.007002||p PERL_MAGIC_regdata|5.007002||p PERL_MAGIC_regdatum|5.007002||p PERL_MAGIC_regex_global|5.007002||p PERL_MAGIC_shared_scalar|5.007003||p PERL_MAGIC_shared|5.007003||p PERL_MAGIC_sigelem|5.007002||p PERL_MAGIC_sig|5.007002||p PERL_MAGIC_substr|5.007002||p PERL_MAGIC_sv|5.007002||p PERL_MAGIC_taint|5.007002||p PERL_MAGIC_tiedelem|5.007002||p PERL_MAGIC_tiedscalar|5.007002||p PERL_MAGIC_tied|5.007002||p PERL_MAGIC_utf8|5.008001||p PERL_MAGIC_uvar_elem|5.007003||p PERL_MAGIC_uvar|5.007002||p PERL_MAGIC_vec|5.007002||p PERL_MAGIC_vstring|5.008001||p PERL_PV_ESCAPE_ALL|5.009004||p PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p PERL_PV_ESCAPE_NOCLEAR|5.009004||p PERL_PV_ESCAPE_QUOTE|5.009004||p PERL_PV_ESCAPE_RE|5.009005||p PERL_PV_ESCAPE_UNI_DETECT|5.009004||p PERL_PV_ESCAPE_UNI|5.009004||p PERL_PV_PRETTY_DUMP|5.009004||p PERL_PV_PRETTY_ELLIPSES|5.010000||p PERL_PV_PRETTY_LTGT|5.009004||p PERL_PV_PRETTY_NOCLEAR|5.010000||p PERL_PV_PRETTY_QUOTE|5.009004||p PERL_PV_PRETTY_REGPROP|5.009004||p PERL_QUAD_MAX|5.004000||p PERL_QUAD_MIN|5.004000||p PERL_REVISION|5.006000||p PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p PERL_SCAN_DISALLOW_PREFIX|5.007003||p PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p PERL_SCAN_SILENT_ILLDIGIT|5.008001||p PERL_SHORT_MAX|5.004000||p PERL_SHORT_MIN|5.004000||p PERL_SIGNALS_UNSAFE_FLAG|5.008001||p PERL_SUBVERSION|5.006000||p PERL_SYS_INIT3||5.006000| PERL_SYS_INIT||| PERL_SYS_TERM||5.011005| PERL_UCHAR_MAX|5.004000||p PERL_UCHAR_MIN|5.004000||p PERL_UINT_MAX|5.004000||p PERL_UINT_MIN|5.004000||p PERL_ULONG_MAX|5.004000||p PERL_ULONG_MIN|5.004000||p PERL_UNUSED_ARG|5.009003||p PERL_UNUSED_CONTEXT|5.009004||p PERL_UNUSED_DECL|5.007002||p PERL_UNUSED_VAR|5.007002||p PERL_UQUAD_MAX|5.004000||p PERL_UQUAD_MIN|5.004000||p PERL_USE_GCC_BRACE_GROUPS|5.009004||p PERL_USHORT_MAX|5.004000||p PERL_USHORT_MIN|5.004000||p PERL_VERSION|5.006000||p PL_DBsignal|5.005000||p PL_DBsingle|||pn PL_DBsub|||pn PL_DBtrace|||pn PL_Sv|5.005000||p PL_bufend|5.011004||p PL_bufptr|5.011004||p PL_compiling|5.004050||p PL_copline|5.011004||p PL_curcop|5.004050||p PL_curstash|5.004050||p PL_debstash|5.004050||p PL_defgv|5.004050||p PL_diehook|5.004050||p PL_dirty|5.004050||p PL_dowarn|||pn PL_errgv|5.004050||p PL_error_count|5.011004||p PL_expect|5.011004||p PL_hexdigit|5.005000||p PL_hints|5.005000||p PL_in_my_stash|5.011004||p PL_in_my|5.011004||p PL_keyword_plugin||5.011002| PL_last_in_gv|||n PL_laststatval|5.005000||p PL_lex_state|5.011004||p PL_lex_stuff|5.011004||p PL_linestr|5.011004||p PL_modglobal||5.005000|n PL_na|5.004050||pn PL_no_modify|5.006000||p PL_ofsgv|||n PL_opfreehook||5.011000|n PL_parser|5.009005|5.009005|p PL_perl_destruct_level|5.004050||p PL_perldb|5.004050||p PL_ppaddr|5.006000||p PL_rsfp_filters|5.004050||p PL_rsfp|5.004050||p PL_rs|||n PL_signals|5.008001||p PL_stack_base|5.004050||p PL_stack_sp|5.004050||p PL_statcache|5.005000||p PL_stdingv|5.004050||p PL_sv_arenaroot|5.004050||p PL_sv_no|5.004050||pn PL_sv_undef|5.004050||pn PL_sv_yes|5.004050||pn PL_tainted|5.004050||p PL_tainting|5.004050||p PL_tokenbuf|5.011004||p POP_MULTICALL||5.011005| POPi|||n POPl|||n POPn|||n POPpbytex||5.007001|n POPpx||5.005030|n POPp|||n POPs|||n PTR2IV|5.006000||p PTR2NV|5.006000||p PTR2UV|5.006000||p PTR2nat|5.009003||p PTR2ul|5.007001||p PTRV|5.006000||p PUSHMARK||| PUSH_MULTICALL||5.011005| PUSHi||| PUSHmortal|5.009002||p PUSHn||| PUSHp||| PUSHs||| PUSHu|5.004000||p PUTBACK||| PerlIO_clearerr||5.007003| PerlIO_close||5.007003| PerlIO_context_layers||5.009004| PerlIO_eof||5.007003| PerlIO_error||5.007003| PerlIO_fileno||5.007003| PerlIO_fill||5.007003| PerlIO_flush||5.007003| PerlIO_get_base||5.007003| PerlIO_get_bufsiz||5.007003| PerlIO_get_cnt||5.007003| PerlIO_get_ptr||5.007003| PerlIO_read||5.007003| PerlIO_seek||5.007003| PerlIO_set_cnt||5.007003| PerlIO_set_ptrcnt||5.007003| PerlIO_setlinebuf||5.007003| PerlIO_stderr||5.007003| PerlIO_stdin||5.007003| PerlIO_stdout||5.007003| PerlIO_tell||5.007003| PerlIO_unread||5.007003| PerlIO_write||5.007003| Perl_signbit||5.009005|n PoisonFree|5.009004||p PoisonNew|5.009004||p PoisonWith|5.009004||p Poison|5.008000||p RETVAL|||n Renewc||| Renew||| SAVECLEARSV||| SAVECOMPPAD||| SAVEPADSV||| SAVETMPS||| SAVE_DEFSV|5.004050||p SPAGAIN||| SP||| START_EXTERN_C|5.005000||p START_MY_CXT|5.007003||p STMT_END|||p STMT_START|||p STR_WITH_LEN|5.009003||p ST||| SV_CONST_RETURN|5.009003||p SV_COW_DROP_PV|5.008001||p SV_COW_SHARED_HASH_KEYS|5.009005||p SV_GMAGIC|5.007002||p SV_HAS_TRAILING_NUL|5.009004||p SV_IMMEDIATE_UNREF|5.007001||p SV_MUTABLE_RETURN|5.009003||p SV_NOSTEAL|5.009002||p SV_SMAGIC|5.009003||p SV_UTF8_NO_ENCODING|5.008001||p SVfARG|5.009005||p SVf_UTF8|5.006000||p SVf|5.006000||p SVt_IV||| SVt_NV||| SVt_PVAV||| SVt_PVCV||| SVt_PVHV||| SVt_PVMG||| SVt_PV||| Safefree||| Slab_Alloc||| Slab_Free||| Slab_to_rw||| StructCopy||| SvCUR_set||| SvCUR||| SvEND||| SvGAMAGIC||5.006001| SvGETMAGIC|5.004050||p SvGROW||| SvIOK_UV||5.006000| SvIOK_notUV||5.006000| SvIOK_off||| SvIOK_only_UV||5.006000| SvIOK_only||| SvIOK_on||| SvIOKp||| SvIOK||| SvIVX||| SvIV_nomg|5.009001||p SvIV_set||| SvIVx||| SvIV||| SvIsCOW_shared_hash||5.008003| SvIsCOW||5.008003| SvLEN_set||| SvLEN||| SvLOCK||5.007003| SvMAGIC_set|5.009003||p SvNIOK_off||| SvNIOKp||| SvNIOK||| SvNOK_off||| SvNOK_only||| SvNOK_on||| SvNOKp||| SvNOK||| SvNVX||| SvNV_set||| SvNVx||| SvNV||| SvOK||| SvOOK_offset||5.011000| SvOOK||| SvPOK_off||| SvPOK_only_UTF8||5.006000| SvPOK_only||| SvPOK_on||| SvPOKp||| SvPOK||| SvPVX_const|5.009003||p SvPVX_mutable|5.009003||p SvPVX||| SvPV_const|5.009003||p SvPV_flags_const_nolen|5.009003||p SvPV_flags_const|5.009003||p SvPV_flags_mutable|5.009003||p SvPV_flags|5.007002||p SvPV_force_flags_mutable|5.009003||p SvPV_force_flags_nolen|5.009003||p SvPV_force_flags|5.007002||p SvPV_force_mutable|5.009003||p SvPV_force_nolen|5.009003||p SvPV_force_nomg_nolen|5.009003||p SvPV_force_nomg|5.007002||p SvPV_force|||p SvPV_mutable|5.009003||p SvPV_nolen_const|5.009003||p SvPV_nolen|5.006000||p SvPV_nomg_const_nolen|5.009003||p SvPV_nomg_const|5.009003||p SvPV_nomg|5.007002||p SvPV_renew|5.009003||p SvPV_set||| SvPVbyte_force||5.009002| SvPVbyte_nolen||5.006000| SvPVbytex_force||5.006000| SvPVbytex||5.006000| SvPVbyte|5.006000||p SvPVutf8_force||5.006000| SvPVutf8_nolen||5.006000| SvPVutf8x_force||5.006000| SvPVutf8x||5.006000| SvPVutf8||5.006000| SvPVx||| SvPV||| SvREFCNT_dec||| SvREFCNT_inc_NN|5.009004||p SvREFCNT_inc_simple_NN|5.009004||p SvREFCNT_inc_simple_void_NN|5.009004||p SvREFCNT_inc_simple_void|5.009004||p SvREFCNT_inc_simple|5.009004||p SvREFCNT_inc_void_NN|5.009004||p SvREFCNT_inc_void|5.009004||p SvREFCNT_inc|||p SvREFCNT||| SvROK_off||| SvROK_on||| SvROK||| SvRV_set|5.009003||p SvRV||| SvRXOK||5.009005| SvRX||5.009005| SvSETMAGIC||| SvSHARED_HASH|5.009003||p SvSHARE||5.007003| SvSTASH_set|5.009003||p SvSTASH||| SvSetMagicSV_nosteal||5.004000| SvSetMagicSV||5.004000| SvSetSV_nosteal||5.004000| SvSetSV||| SvTAINTED_off||5.004000| SvTAINTED_on||5.004000| SvTAINTED||5.004000| SvTAINT||| SvTRUE||| SvTYPE||| SvUNLOCK||5.007003| SvUOK|5.007001|5.006000|p SvUPGRADE||| SvUTF8_off||5.006000| SvUTF8_on||5.006000| SvUTF8||5.006000| SvUVXx|5.004000||p SvUVX|5.004000||p SvUV_nomg|5.009001||p SvUV_set|5.009003||p SvUVx|5.004000||p SvUV|5.004000||p SvVOK||5.008001| SvVSTRING_mg|5.009004||p THIS|||n UNDERBAR|5.009002||p UTF8_MAXBYTES|5.009002||p UVSIZE|5.006000||p UVTYPE|5.006000||p UVXf|5.007001||p UVof|5.006000||p UVuf|5.006000||p UVxf|5.006000||p WARN_ALL|5.006000||p WARN_AMBIGUOUS|5.006000||p WARN_ASSERTIONS|5.011004||p WARN_BAREWORD|5.006000||p WARN_CLOSED|5.006000||p WARN_CLOSURE|5.006000||p WARN_DEBUGGING|5.006000||p WARN_DEPRECATED|5.006000||p WARN_DIGIT|5.006000||p WARN_EXEC|5.006000||p WARN_EXITING|5.006000||p WARN_GLOB|5.006000||p WARN_INPLACE|5.006000||p WARN_INTERNAL|5.006000||p WARN_IO|5.006000||p WARN_LAYER|5.008000||p WARN_MALLOC|5.006000||p WARN_MISC|5.006000||p WARN_NEWLINE|5.006000||p WARN_NUMERIC|5.006000||p WARN_ONCE|5.006000||p WARN_OVERFLOW|5.006000||p WARN_PACK|5.006000||p WARN_PARENTHESIS|5.006000||p WARN_PIPE|5.006000||p WARN_PORTABLE|5.006000||p WARN_PRECEDENCE|5.006000||p WARN_PRINTF|5.006000||p WARN_PROTOTYPE|5.006000||p WARN_QW|5.006000||p WARN_RECURSION|5.006000||p WARN_REDEFINE|5.006000||p WARN_REGEXP|5.006000||p WARN_RESERVED|5.006000||p WARN_SEMICOLON|5.006000||p WARN_SEVERE|5.006000||p WARN_SIGNAL|5.006000||p WARN_SUBSTR|5.006000||p WARN_SYNTAX|5.006000||p WARN_TAINT|5.006000||p WARN_THREADS|5.008000||p WARN_UNINITIALIZED|5.006000||p WARN_UNOPENED|5.006000||p WARN_UNPACK|5.006000||p WARN_UNTIE|5.006000||p WARN_UTF8|5.006000||p WARN_VOID|5.006000||p XCPT_CATCH|5.009002||p XCPT_RETHROW|5.009002||p XCPT_TRY_END|5.009002||p XCPT_TRY_START|5.009002||p XPUSHi||| XPUSHmortal|5.009002||p XPUSHn||| XPUSHp||| XPUSHs||| XPUSHu|5.004000||p XSPROTO|5.010000||p XSRETURN_EMPTY||| XSRETURN_IV||| XSRETURN_NO||| XSRETURN_NV||| XSRETURN_PV||| XSRETURN_UNDEF||| XSRETURN_UV|5.008001||p XSRETURN_YES||| XSRETURN|||p XST_mIV||| XST_mNO||| XST_mNV||| XST_mPV||| XST_mUNDEF||| XST_mUV|5.008001||p XST_mYES||| XS_VERSION_BOOTCHECK||| XS_VERSION||| XSprePUSH|5.006000||p XS||| ZeroD|5.009002||p Zero||| _aMY_CXT|5.007003||p _pMY_CXT|5.007003||p aMY_CXT_|5.007003||p aMY_CXT|5.007003||p aTHXR_|5.011004||p aTHXR|5.011004||p aTHX_|5.006000||p aTHX|5.006000||p add_data|||n add_utf16_textfilter||| addmad||| allocmy||| amagic_call||| amagic_cmp_locale||| amagic_cmp||| amagic_i_ncmp||| amagic_ncmp||| anonymise_cv||| any_dup||| ao||| append_elem||| append_list||| append_madprops||| apply_attrs_my||| apply_attrs_string||5.006001| apply_attrs||| apply||| atfork_lock||5.007003|n atfork_unlock||5.007003|n av_arylen_p||5.009003| av_clear||| av_create_and_push||5.009005| av_create_and_unshift_one||5.009005| av_delete||5.006000| av_exists||5.006000| av_extend||| av_fetch||| av_fill||| av_iter_p||5.011000| av_len||| av_make||| av_pop||| av_push||| av_reify||| av_shift||| av_store||| av_undef||| av_unshift||| ax|||n bad_type||| bind_match||| block_end||| block_gimme||5.004000| block_start||| boolSV|5.004000||p boot_core_PerlIO||| boot_core_UNIVERSAL||| boot_core_mro||| bytes_from_utf8||5.007001| bytes_to_uni|||n bytes_to_utf8||5.006001| call_argv|5.006000||p call_atexit||5.006000| call_list||5.004000| call_method|5.006000||p call_pv|5.006000||p call_sv|5.006000||p calloc||5.007002|n cando||| cast_i32||5.006000| cast_iv||5.006000| cast_ulong||5.006000| cast_uv||5.006000| check_type_and_open||| check_uni||| checkcomma||| checkposixcc||| ckWARN|5.006000||p ck_anoncode||| ck_bitop||| ck_concat||| ck_defined||| ck_delete||| ck_die||| ck_each||| ck_eof||| ck_eval||| ck_exec||| ck_exists||| ck_exit||| ck_ftst||| ck_fun||| ck_glob||| ck_grep||| ck_index||| ck_join||| ck_lfun||| ck_listiob||| ck_match||| ck_method||| ck_null||| ck_open||| ck_readline||| ck_repeat||| ck_require||| ck_return||| ck_rfun||| ck_rvconst||| ck_sassign||| ck_select||| ck_shift||| ck_sort||| ck_spair||| ck_split||| ck_subr||| ck_substr||| ck_svconst||| ck_trunc||| ck_unpack||| ck_warner_d||5.011001|v ck_warner||5.011001|v ckwarn_common||| ckwarn_d||5.009003| ckwarn||5.009003| cl_and|||n cl_anything|||n cl_init_zero|||n cl_init|||n cl_is_anything|||n cl_or|||n clear_placeholders||| closest_cop||| convert||| cop_free||| cr_textfilter||| create_eval_scope||| croak_nocontext|||vn croak_xs_usage||5.010001| croak|||v csighandler||5.009003|n curmad||| custom_op_desc||5.007003| custom_op_name||5.007003| cv_ckproto_len||| cv_clone||| cv_const_sv||5.004000| cv_dump||| cv_undef||| cx_dump||5.005000| cx_dup||| cxinc||| dAXMARK|5.009003||p dAX|5.007002||p dITEMS|5.007002||p dMARK||| dMULTICALL||5.009003| dMY_CXT_SV|5.007003||p dMY_CXT|5.007003||p dNOOP|5.006000||p dORIGMARK||| dSP||| dTHR|5.004050||p dTHXR|5.011004||p dTHXa|5.006000||p dTHXoa|5.006000||p dTHX|5.006000||p dUNDERBAR|5.009002||p dVAR|5.009003||p dXCPT|5.009002||p dXSARGS||| dXSI32||| dXSTARG|5.006000||p deb_curcv||| deb_nocontext|||vn deb_stack_all||| deb_stack_n||| debop||5.005000| debprofdump||5.005000| debprof||| debstackptrs||5.007003| debstack||5.007003| debug_start_match||| deb||5.007003|v del_sv||| delete_eval_scope||| delimcpy||5.004000|n deprecate_commaless_var_list||| despatch_signals||5.007001| destroy_matcher||| die_nocontext|||vn die_where||| die|||v dirp_dup||| div128||| djSP||| do_aexec5||| do_aexec||| do_aspawn||| do_binmode||5.004050| do_chomp||| do_chop||| do_close||| do_delete_local||| do_dump_pad||| do_eof||| do_exec3||| do_execfree||| do_exec||| do_gv_dump||5.006000| do_gvgv_dump||5.006000| do_hv_dump||5.006000| do_ipcctl||| do_ipcget||| do_join||| do_kv||| do_magic_dump||5.006000| do_msgrcv||| do_msgsnd||| do_oddball||| do_op_dump||5.006000| do_op_xmldump||| do_open9||5.006000| do_openn||5.007001| do_open||5.004000| do_pmop_dump||5.006000| do_pmop_xmldump||| do_print||| do_readline||| do_seek||| do_semop||| do_shmio||| do_smartmatch||| do_spawn_nowait||| do_spawn||| do_sprintf||| do_sv_dump||5.006000| do_sysseek||| do_tell||| do_trans_complex_utf8||| do_trans_complex||| do_trans_count_utf8||| do_trans_count||| do_trans_simple_utf8||| do_trans_simple||| do_trans||| do_vecget||| do_vecset||| do_vop||| docatch||| doeval||| dofile||| dofindlabel||| doform||| doing_taint||5.008001|n dooneliner||| doopen_pm||| doparseform||| dopoptoeval||| dopoptogiven||| dopoptolabel||| dopoptoloop||| dopoptosub_at||| dopoptowhen||| doref||5.009003| dounwind||| dowantarray||| dump_all_perl||| dump_all||5.006000| dump_eval||5.006000| dump_exec_pos||| dump_fds||| dump_form||5.006000| dump_indent||5.006000|v dump_mstats||| dump_packsubs_perl||| dump_packsubs||5.006000| dump_sub_perl||| dump_sub||5.006000| dump_sv_child||| dump_trie_interim_list||| dump_trie_interim_table||| dump_trie||| dump_vindent||5.006000| dumpuntil||| dup_attrlist||| emulate_cop_io||| eval_pv|5.006000||p eval_sv|5.006000||p exec_failed||| expect_number||| fbm_compile||5.005000| fbm_instr||5.005000| feature_is_enabled||| fetch_cop_label||5.011000| filter_add||| filter_del||| filter_gets||| filter_read||| find_and_forget_pmops||| find_array_subscript||| find_beginning||| find_byclass||| find_hash_subscript||| find_in_my_stash||| find_runcv||5.008001| find_rundefsvoffset||5.009002| find_script||| find_uninit_var||| first_symbol|||n fold_constants||| forbid_setid||| force_ident||| force_list||| force_next||| force_strict_version||| force_version||| force_word||| forget_pmop||| form_nocontext|||vn form||5.004000|v fp_dup||| fprintf_nocontext|||vn free_global_struct||| free_tied_hv_pool||| free_tmps||| gen_constant_list||| get_arena||| get_aux_mg||| get_av|5.006000||p get_context||5.006000|n get_cvn_flags|5.009005||p get_cvs|5.011000||p get_cv|5.006000||p get_db_sub||| get_debug_opts||| get_hash_seed||| get_hv|5.006000||p get_isa_hash||| get_mstats||| get_no_modify||| get_num||| get_op_descs||5.005000| get_op_names||5.005000| get_opargs||| get_ppaddr||5.006000| get_re_arg||| get_sv|5.006000||p get_vtbl||5.005030| getcwd_sv||5.007002| getenv_len||| glob_2number||| glob_assign_glob||| glob_assign_ref||| gp_dup||| gp_free||| gp_ref||| grok_bin|5.007003||p grok_hex|5.007003||p grok_number|5.007002||p grok_numeric_radix|5.007002||p grok_oct|5.007003||p group_end||| gv_AVadd||| gv_HVadd||| gv_IOadd||| gv_SVadd||| gv_add_by_type||5.011000| gv_autoload4||5.004000| gv_check||| gv_const_sv||5.009003| gv_dump||5.006000| gv_efullname3||5.004000| gv_efullname4||5.006001| gv_efullname||| gv_ename||| gv_fetchfile_flags||5.009005| gv_fetchfile||| gv_fetchmeth_autoload||5.007003| gv_fetchmethod_autoload||5.004000| gv_fetchmethod_flags||5.011000| gv_fetchmethod||| gv_fetchmeth||| gv_fetchpvn_flags|5.009002||p gv_fetchpvs|5.009004||p gv_fetchpv||| gv_fetchsv|5.009002||p gv_fullname3||5.004000| gv_fullname4||5.006001| gv_fullname||| gv_get_super_pkg||| gv_handler||5.007001| gv_init_sv||| gv_init||| gv_name_set||5.009004| gv_stashpvn|5.004000||p gv_stashpvs|5.009003||p gv_stashpv||| gv_stashsv||| gv_try_downgrade||5.011002| he_dup||| hek_dup||| hfreeentries||| hsplit||| hv_assert||| hv_auxinit|||n hv_backreferences_p||| hv_clear_placeholders||5.009001| hv_clear||| hv_common_key_len||5.010000| hv_common||5.010000| hv_copy_hints_hv||| hv_delayfree_ent||5.004000| hv_delete_common||| hv_delete_ent||5.004000| hv_delete||| hv_eiter_p||5.009003| hv_eiter_set||5.009003| hv_exists_ent||5.004000| hv_exists||| hv_fetch_ent||5.004000| hv_fetchs|5.009003||p hv_fetch||| hv_free_ent||5.004000| hv_iterinit||| hv_iterkeysv||5.004000| hv_iterkey||| hv_iternext_flags||5.008000| hv_iternextsv||| hv_iternext||| hv_iterval||| hv_kill_backrefs||| hv_ksplit||5.004000| hv_magic_check|||n hv_magic||| hv_name_set||5.009003| hv_notallowed||| hv_placeholders_get||5.009003| hv_placeholders_p||5.009003| hv_placeholders_set||5.009003| hv_riter_p||5.009003| hv_riter_set||5.009003| hv_scalar||5.009001| hv_store_ent||5.004000| hv_store_flags||5.008000| hv_stores|5.009004||p hv_store||| hv_undef||| ibcmp_locale||5.004000|n ibcmp_utf8||5.007003| ibcmp|||n incline||| incpush_if_exists||| incpush_use_sep||| incpush||| ingroup||| init_argv_symbols||| init_debugger||| init_global_struct||| init_i18nl10n||5.006000| init_i18nl14n||5.006000| init_ids||| init_interp||| init_main_stash||| init_perllib||| init_postdump_symbols||| init_predump_symbols||| init_stacks||5.005000| init_tm||5.007002| instr|||n intro_my||| intuit_method||| intuit_more||| invert||| io_close||| isALNUMC|5.006000||p isALNUM||| isALPHA||| isASCII|5.006000||p isBLANK|5.006001||p isCNTRL|5.006000||p isDIGIT||| isGRAPH|5.006000||p isGV_with_GP|5.009004||p isLOWER||| isPRINT|5.004000||p isPSXSPC|5.006001||p isPUNCT|5.006000||p isSPACE||| isUPPER||| isXDIGIT|5.006000||p is_an_int||| is_ascii_string||5.011000|n is_gv_magical_sv||| is_handle_constructor|||n is_inplace_av||| is_list_assignment||| is_lvalue_sub||5.007001| is_uni_alnum_lc||5.006000| is_uni_alnum||5.006000| is_uni_alpha_lc||5.006000| is_uni_alpha||5.006000| is_uni_ascii_lc||5.006000| is_uni_ascii||5.006000| is_uni_cntrl_lc||5.006000| is_uni_cntrl||5.006000| is_uni_digit_lc||5.006000| is_uni_digit||5.006000| is_uni_graph_lc||5.006000| is_uni_graph||5.006000| is_uni_idfirst_lc||5.006000| is_uni_idfirst||5.006000| is_uni_lower_lc||5.006000| is_uni_lower||5.006000| is_uni_print_lc||5.006000| is_uni_print||5.006000| is_uni_punct_lc||5.006000| is_uni_punct||5.006000| is_uni_space_lc||5.006000| is_uni_space||5.006000| is_uni_upper_lc||5.006000| is_uni_upper||5.006000| is_uni_xdigit_lc||5.006000| is_uni_xdigit||5.006000| is_utf8_X_LVT||| is_utf8_X_LV_LVT_V||| is_utf8_X_LV||| is_utf8_X_L||| is_utf8_X_T||| is_utf8_X_V||| is_utf8_X_begin||| is_utf8_X_extend||| is_utf8_X_non_hangul||| is_utf8_X_prepend||| is_utf8_alnum||5.006000| is_utf8_alpha||5.006000| is_utf8_ascii||5.006000| is_utf8_char_slow|||n is_utf8_char||5.006000|n is_utf8_cntrl||5.006000| is_utf8_common||| is_utf8_digit||5.006000| is_utf8_graph||5.006000| is_utf8_idcont||5.008000| is_utf8_idfirst||5.006000| is_utf8_lower||5.006000| is_utf8_mark||5.006000| is_utf8_perl_space||5.011001| is_utf8_perl_word||5.011001| is_utf8_posix_digit||5.011001| is_utf8_print||5.006000| is_utf8_punct||5.006000| is_utf8_space||5.006000| is_utf8_string_loclen||5.009003|n is_utf8_string_loc||5.008001|n is_utf8_string||5.006001|n is_utf8_upper||5.006000| is_utf8_xdigit||5.006000| isa_lookup||| items|||n ix|||n jmaybe||| join_exact||| keyword_plugin_standard||| keyword||| leave_scope||| lex_bufutf8||5.011002| lex_discard_to||5.011002| lex_end||| lex_grow_linestr||5.011002| lex_next_chunk||5.011002| lex_peek_unichar||5.011002| lex_read_space||5.011002| lex_read_to||5.011002| lex_read_unichar||5.011002| lex_start||| lex_stuff_pvn||5.011002| lex_stuff_sv||5.011002| lex_unstuff||5.011002| linklist||| listkids||| list||| load_module_nocontext|||vn load_module|5.006000||pv localize||| looks_like_bool||| looks_like_number||| lop||| mPUSHi|5.009002||p mPUSHn|5.009002||p mPUSHp|5.009002||p mPUSHs|5.010001||p mPUSHu|5.009002||p mXPUSHi|5.009002||p mXPUSHn|5.009002||p mXPUSHp|5.009002||p mXPUSHs|5.010001||p mXPUSHu|5.009002||p mad_free||| madlex||| madparse||| magic_clear_all_env||| magic_clearenv||| magic_clearhints||| magic_clearhint||| magic_clearisa||| magic_clearpack||| magic_clearsig||| magic_dump||5.006000| magic_existspack||| magic_freearylen_p||| magic_freeovrld||| magic_getarylen||| magic_getdefelem||| magic_getnkeys||| magic_getpack||| magic_getpos||| magic_getsig||| magic_getsubstr||| magic_gettaint||| magic_getuvar||| magic_getvec||| magic_get||| magic_killbackrefs||| magic_len||| magic_methcall||| magic_methpack||| magic_nextpack||| magic_regdata_cnt||| magic_regdatum_get||| magic_regdatum_set||| magic_scalarpack||| magic_set_all_env||| magic_setamagic||| magic_setarylen||| magic_setcollxfrm||| magic_setdbline||| magic_setdefelem||| magic_setenv||| magic_sethint||| magic_setisa||| magic_setmglob||| magic_setnkeys||| magic_setpack||| magic_setpos||| magic_setregexp||| magic_setsig||| magic_setsubstr||| magic_settaint||| magic_setutf8||| magic_setuvar||| magic_setvec||| magic_set||| magic_sizepack||| magic_wipepack||| make_matcher||| make_trie_failtable||| make_trie||| malloc_good_size|||n malloced_size|||n malloc||5.007002|n markstack_grow||| matcher_matches_sv||| measure_struct||| memEQs|5.009005||p memEQ|5.004000||p memNEs|5.009005||p memNE|5.004000||p mem_collxfrm||| mem_log_common|||n mess_alloc||| mess_nocontext|||vn mess||5.006000|v method_common||| mfree||5.007002|n mg_clear||| mg_copy||| mg_dup||| mg_find||| mg_free||| mg_get||| mg_length||5.005000| mg_localize||| mg_magical||| mg_set||| mg_size||5.005000| mini_mktime||5.007002| missingterm||| mode_from_discipline||| modkids||| mod||| more_bodies||| more_sv||| moreswitches||| mro_get_from_name||5.010001| mro_get_linear_isa_dfs||| mro_get_linear_isa||5.009005| mro_get_private_data||5.010001| mro_isa_changed_in||| mro_meta_dup||| mro_meta_init||| mro_method_changed_in||5.009005| mro_register||5.010001| mro_set_mro||5.010001| mro_set_private_data||5.010001| mul128||| mulexp10|||n my_atof2||5.007002| my_atof||5.006000| my_attrs||| my_bcopy|||n my_betoh16|||n my_betoh32|||n my_betoh64|||n my_betohi|||n my_betohl|||n my_betohs|||n my_bzero|||n my_chsize||| my_clearenv||| my_cxt_index||| my_cxt_init||| my_dirfd||5.009005| my_exit_jump||| my_exit||| my_failure_exit||5.004000| my_fflush_all||5.006000| my_fork||5.007003|n my_htobe16|||n my_htobe32|||n my_htobe64|||n my_htobei|||n my_htobel|||n my_htobes|||n my_htole16|||n my_htole32|||n my_htole64|||n my_htolei|||n my_htolel|||n my_htoles|||n my_htonl||| my_kid||| my_letoh16|||n my_letoh32|||n my_letoh64|||n my_letohi|||n my_letohl|||n my_letohs|||n my_lstat||| my_memcmp||5.004000|n my_memset|||n my_ntohl||| my_pclose||5.004000| my_popen_list||5.007001| my_popen||5.004000| my_setenv||| my_snprintf|5.009004||pvn my_socketpair||5.007003|n my_sprintf|5.009003||pvn my_stat||| my_strftime||5.007002| my_strlcat|5.009004||pn my_strlcpy|5.009004||pn my_swabn|||n my_swap||| my_unexec||| my_vsnprintf||5.009004|n need_utf8|||n newANONATTRSUB||5.006000| newANONHASH||| newANONLIST||| newANONSUB||| newASSIGNOP||| newATTRSUB||5.006000| newAVREF||| newAV||| newBINOP||| newCONDOP||| newCONSTSUB|5.004050||p newCVREF||| newDEFSVOP||| newFORM||| newFOROP||| newGIVENOP||5.009003| newGIVWHENOP||| newGP||| newGVOP||| newGVREF||| newGVgen||| newHVREF||| newHVhv||5.005000| newHV||| newIO||| newLISTOP||| newLOGOP||| newLOOPEX||| newLOOPOP||| newMADPROP||| newMADsv||| newMYSUB||| newNULLLIST||| newOP||| newPADOP||| newPMOP||| newPROG||| newPVOP||| newRANGE||| newRV_inc|5.004000||p newRV_noinc|5.004000||p newRV||| newSLICEOP||| newSTATEOP||| newSUB||| newSVOP||| newSVREF||| newSV_type|5.009005||p newSVhek||5.009003| newSViv||| newSVnv||| newSVpvf_nocontext|||vn newSVpvf||5.004000|v newSVpvn_flags|5.010001||p newSVpvn_share|5.007001||p newSVpvn_utf8|5.010001||p newSVpvn|5.004050||p newSVpvs_flags|5.010001||p newSVpvs_share|5.009003||p newSVpvs|5.009003||p newSVpv||| newSVrv||| newSVsv||| newSVuv|5.006000||p newSV||| newTOKEN||| newUNOP||| newWHENOP||5.009003| newWHILEOP||5.009003| newXS_flags||5.009004| newXSproto||5.006000| newXS||5.006000| new_collate||5.006000| new_constant||| new_ctype||5.006000| new_he||| new_logop||| new_numeric||5.006000| new_stackinfo||5.005000| new_version||5.009000| new_warnings_bitfield||| next_symbol||| nextargv||| nextchar||| ninstr|||n no_bareword_allowed||| no_fh_allowed||| no_op||| not_a_number||| nothreadhook||5.008000| nuke_stacks||| num_overflow|||n offer_nice_chunk||| oopsAV||| oopsHV||| op_clear||| op_const_sv||| op_dump||5.006000| op_free||| op_getmad_weak||| op_getmad||| op_null||5.007002| op_refcnt_dec||| op_refcnt_inc||| op_refcnt_lock||5.009002| op_refcnt_unlock||5.009002| op_xmldump||| open_script||| opt_scalarhv||| pMY_CXT_|5.007003||p pMY_CXT|5.007003||p pTHX_|5.006000||p pTHX|5.006000||p packWARN|5.007003||p pack_cat||5.007003| pack_rec||| package_version||| package||| packlist||5.008001| pad_add_anon||| pad_add_name_sv||| pad_add_name||| pad_alloc||| pad_block_start||| pad_check_dup||| pad_compname_type||| pad_findlex||| pad_findmy||5.011002| pad_fixup_inner_anons||| pad_free||| pad_leavemy||| pad_new||| pad_peg|||n pad_push||| pad_reset||| pad_setsv||| pad_sv||| pad_swipe||| pad_tidy||| pad_undef||| parse_body||| parse_unicode_opts||| parser_dup||| parser_free||| path_is_absolute|||n peep||| pending_Slabs_to_ro||| perl_alloc_using|||n perl_alloc|||n perl_clone_using|||n perl_clone|||n perl_construct|||n perl_destruct||5.007003|n perl_free|||n perl_parse||5.006000|n perl_run|||n pidgone||| pm_description||| pmflag||| pmop_dump||5.006000| pmop_xmldump||| pmruntime||| pmtrans||| pop_scope||| pregcomp||5.009005| pregexec||| pregfree2||5.011000| pregfree||| prepend_elem||| prepend_madprops||| prescan_version||5.011004| printbuf||| printf_nocontext|||vn process_special_blocks||| ptr_table_clear||5.009005| ptr_table_fetch||5.009005| ptr_table_find|||n ptr_table_free||5.009005| ptr_table_new||5.009005| ptr_table_split||5.009005| ptr_table_store||5.009005| push_scope||| put_byte||| pv_display|5.006000||p pv_escape|5.009004||p pv_pretty|5.009004||p pv_uni_display||5.007003| qerror||| qsortsvu||| re_compile||5.009005| re_croak2||| re_dup_guts||| re_intuit_start||5.009005| re_intuit_string||5.006000| readpipe_override||| realloc||5.007002|n reentrant_free||| reentrant_init||| reentrant_retry|||vn reentrant_size||| ref_array_or_hash||| refcounted_he_chain_2hv||| refcounted_he_fetch||| refcounted_he_free||| refcounted_he_new_common||| refcounted_he_new||| refcounted_he_value||| refkids||| refto||| ref||5.011005| reg_check_named_buff_matched||| reg_named_buff_all||5.009005| reg_named_buff_exists||5.009005| reg_named_buff_fetch||5.009005| reg_named_buff_firstkey||5.009005| reg_named_buff_iter||| reg_named_buff_nextkey||5.009005| reg_named_buff_scalar||5.009005| reg_named_buff||| reg_namedseq||| reg_node||| reg_numbered_buff_fetch||| reg_numbered_buff_length||| reg_numbered_buff_store||| reg_qr_package||| reg_recode||| reg_scan_name||| reg_skipcomment||| reg_temp_copy||| reganode||| regatom||| regbranch||| regclass_swash||5.009004| regclass||| regcppop||| regcppush||| regcurly|||n regdump_extflags||| regdump||5.005000| regdupe_internal||| regexec_flags||5.005000| regfree_internal||5.009005| reghop3|||n reghop4|||n reghopmaybe3|||n reginclass||| reginitcolors||5.006000| reginsert||| regmatch||| regnext||5.005000| regpiece||| regpposixcc||| regprop||| regrepeat||| regtail_study||| regtail||| regtry||| reguni||| regwhite|||n reg||| repeatcpy|||n report_evil_fh||| report_uninit||| require_pv||5.006000| require_tie_mod||| restore_magic||| rninstr|||n rsignal_restore||| rsignal_save||| rsignal_state||5.004000| rsignal||5.004000| run_body||| run_user_filter||| runops_debug||5.005000| runops_standard||5.005000| rvpv_dup||| rxres_free||| rxres_restore||| rxres_save||| safesyscalloc||5.006000|n safesysfree||5.006000|n safesysmalloc||5.006000|n safesysrealloc||5.006000|n same_dirent||| save_I16||5.004000| save_I32||| save_I8||5.006000| save_adelete||5.011000| save_aelem_flags||5.011000| save_aelem||5.004050| save_alloc||5.006000| save_aptr||| save_ary||| save_bool||5.008001| save_clearsv||| save_delete||| save_destructor_x||5.006000| save_destructor||5.006000| save_freeop||| save_freepv||| save_freesv||| save_generic_pvref||5.006001| save_generic_svref||5.005030| save_gp||5.004000| save_hash||| save_hdelete||5.011000| save_hek_flags|||n save_helem_flags||5.011000| save_helem||5.004050| save_hints||| save_hptr||| save_int||| save_item||| save_iv||5.005000| save_lines||| save_list||| save_long||| save_magic||| save_mortalizesv||5.007001| save_nogv||| save_op||| save_padsv_and_mortalize||5.010001| save_pptr||| save_pushi32ptr||| save_pushptri32ptr||| save_pushptrptr||| save_pushptr||5.010001| save_re_context||5.006000| save_scalar_at||| save_scalar||| save_set_svflags||5.009000| save_shared_pvref||5.007003| save_sptr||| save_svref||| save_vptr||5.006000| savepvn||| savepvs||5.009003| savepv||| savesharedpvn||5.009005| savesharedpv||5.007003| savestack_grow_cnt||5.008001| savestack_grow||| savesvpv||5.009002| sawparens||| scalar_mod_type|||n scalarboolean||| scalarkids||| scalarseq||| scalarvoid||| scalar||| scan_bin||5.006000| scan_commit||| scan_const||| scan_formline||| scan_heredoc||| scan_hex||| scan_ident||| scan_inputsymbol||| scan_num||5.007001| scan_oct||| scan_pat||| scan_str||| scan_subst||| scan_trans||| scan_version||5.009001| scan_vstring||5.009005| scan_word||| scope||| screaminstr||5.005000| search_const||| seed||5.008001| sequence_num||| sequence_tail||| sequence||| set_context||5.006000|n set_numeric_local||5.006000| set_numeric_radix||5.006000| set_numeric_standard||5.006000| setdefout||| share_hek_flags||| share_hek||5.004000| si_dup||| sighandler|||n simplify_sort||| skipspace0||| skipspace1||| skipspace2||| skipspace||| softref2xv||| sortcv_stacked||| sortcv_xsub||| sortcv||| sortsv_flags||5.009003| sortsv||5.007003| space_join_names_mortal||| ss_dup||| stack_grow||| start_force||| start_glob||| start_subparse||5.004000| stashpv_hvname_match||5.011005| stdize_locale||| store_cop_label||| strEQ||| strGE||| strGT||| strLE||| strLT||| strNE||| str_to_version||5.006000| strip_return||| strnEQ||| strnNE||| study_chunk||| sub_crush_depth||| sublex_done||| sublex_push||| sublex_start||| sv_2bool||| sv_2cv||| sv_2io||| sv_2iuv_common||| sv_2iuv_non_preserve||| sv_2iv_flags||5.009001| sv_2iv||| sv_2mortal||| sv_2num||| sv_2nv||| sv_2pv_flags|5.007002||p sv_2pv_nolen|5.006000||p sv_2pvbyte_nolen|5.006000||p sv_2pvbyte|5.006000||p sv_2pvutf8_nolen||5.006000| sv_2pvutf8||5.006000| sv_2pv||| sv_2uv_flags||5.009001| sv_2uv|5.004000||p sv_add_arena||| sv_add_backref||| sv_backoff||| sv_bless||| sv_cat_decode||5.008001| sv_catpv_mg|5.004050||p sv_catpvf_mg_nocontext|||pvn sv_catpvf_mg|5.006000|5.004000|pv sv_catpvf_nocontext|||vn sv_catpvf||5.004000|v sv_catpvn_flags||5.007002| sv_catpvn_mg|5.004050||p sv_catpvn_nomg|5.007002||p sv_catpvn||| sv_catpvs|5.009003||p sv_catpv||| sv_catsv_flags||5.007002| sv_catsv_mg|5.004050||p sv_catsv_nomg|5.007002||p sv_catsv||| sv_catxmlpvn||| sv_catxmlsv||| sv_chop||| sv_clean_all||| sv_clean_objs||| sv_clear||| sv_cmp_locale||5.004000| sv_cmp||| sv_collxfrm||| sv_compile_2op||5.008001| sv_copypv||5.007003| sv_dec||| sv_del_backref||| sv_derived_from||5.004000| sv_destroyable||5.010000| sv_does||5.009004| sv_dump||| sv_dup_inc_multiple||| sv_dup||| sv_eq||| sv_exp_grow||| sv_force_normal_flags||5.007001| sv_force_normal||5.006000| sv_free2||| sv_free_arenas||| sv_free||| sv_gets||5.004000| sv_grow||| sv_i_ncmp||| sv_inc||| sv_insert_flags||5.010001| sv_insert||| sv_isa||| sv_isobject||| sv_iv||5.005000| sv_kill_backrefs||| sv_len_utf8||5.006000| sv_len||| sv_magic_portable|5.011005|5.004000|p sv_magicext||5.007003| sv_magic||| sv_mortalcopy||| sv_ncmp||| sv_newmortal||| sv_newref||| sv_nolocking||5.007003| sv_nosharing||5.007003| sv_nounlocking||| sv_nv||5.005000| sv_peek||5.005000| sv_pos_b2u_midway||| sv_pos_b2u||5.006000| sv_pos_u2b_cached||| sv_pos_u2b_flags||5.011005| sv_pos_u2b_forwards|||n sv_pos_u2b_midway|||n sv_pos_u2b||5.006000| sv_pvbyten_force||5.006000| sv_pvbyten||5.006000| sv_pvbyte||5.006000| sv_pvn_force_flags|5.007002||p sv_pvn_force||| sv_pvn_nomg|5.007003|5.005000|p sv_pvn||5.005000| sv_pvutf8n_force||5.006000| sv_pvutf8n||5.006000| sv_pvutf8||5.006000| sv_pv||5.006000| sv_recode_to_utf8||5.007003| sv_reftype||| sv_release_COW||| sv_replace||| sv_report_used||| sv_reset||| sv_rvweaken||5.006000| sv_setiv_mg|5.004050||p sv_setiv||| sv_setnv_mg|5.006000||p sv_setnv||| sv_setpv_mg|5.004050||p sv_setpvf_mg_nocontext|||pvn sv_setpvf_mg|5.006000|5.004000|pv sv_setpvf_nocontext|||vn sv_setpvf||5.004000|v sv_setpviv_mg||5.008001| sv_setpviv||5.008001| sv_setpvn_mg|5.004050||p sv_setpvn||| sv_setpvs|5.009004||p sv_setpv||| sv_setref_iv||| sv_setref_nv||| sv_setref_pvn||| sv_setref_pv||| sv_setref_uv||5.007001| sv_setsv_cow||| sv_setsv_flags||5.007002| sv_setsv_mg|5.004050||p sv_setsv_nomg|5.007002||p sv_setsv||| sv_setuv_mg|5.004050||p sv_setuv|5.004000||p sv_tainted||5.004000| sv_taint||5.004000| sv_true||5.005000| sv_unglob||| sv_uni_display||5.007003| sv_unmagic||| sv_unref_flags||5.007001| sv_unref||| sv_untaint||5.004000| sv_upgrade||| sv_usepvn_flags||5.009004| sv_usepvn_mg|5.004050||p sv_usepvn||| sv_utf8_decode||5.006000| sv_utf8_downgrade||5.006000| sv_utf8_encode||5.006000| sv_utf8_upgrade_flags_grow||5.011000| sv_utf8_upgrade_flags||5.007002| sv_utf8_upgrade_nomg||5.007002| sv_utf8_upgrade||5.007001| sv_uv|5.005000||p sv_vcatpvf_mg|5.006000|5.004000|p sv_vcatpvfn||5.004000| sv_vcatpvf|5.006000|5.004000|p sv_vsetpvf_mg|5.006000|5.004000|p sv_vsetpvfn||5.004000| sv_vsetpvf|5.006000|5.004000|p sv_xmlpeek||| svtype||| swallow_bom||| swash_fetch||5.007002| swash_get||| swash_init||5.006000| sys_init3||5.010000|n sys_init||5.010000|n sys_intern_clear||| sys_intern_dup||| sys_intern_init||| sys_term||5.010000|n taint_env||| taint_proper||| tmps_grow||5.006000| toLOWER||| toUPPER||| to_byte_substr||| to_uni_fold||5.007003| to_uni_lower_lc||5.006000| to_uni_lower||5.007003| to_uni_title_lc||5.006000| to_uni_title||5.007003| to_uni_upper_lc||5.006000| to_uni_upper||5.007003| to_utf8_case||5.007003| to_utf8_fold||5.007003| to_utf8_lower||5.007003| to_utf8_substr||| to_utf8_title||5.007003| to_utf8_upper||5.007003| token_free||| token_getmad||| tokenize_use||| tokeq||| tokereport||| too_few_arguments||| too_many_arguments||| uiv_2buf|||n unlnk||| unpack_rec||| unpack_str||5.007003| unpackstring||5.008001| unshare_hek_or_pvn||| unshare_hek||| unsharepvn||5.004000| unwind_handler_stack||| update_debugger_info||| upg_version||5.009005| usage||| utf16_textfilter||| utf16_to_utf8_reversed||5.006001| utf16_to_utf8||5.006001| utf8_distance||5.006000| utf8_hop||5.006000| utf8_length||5.007001| utf8_mg_pos_cache_update||| utf8_to_bytes||5.006001| utf8_to_uvchr||5.007001| utf8_to_uvuni||5.007001| utf8n_to_uvchr||| utf8n_to_uvuni||5.007001| utilize||| uvchr_to_utf8_flags||5.007003| uvchr_to_utf8||| uvuni_to_utf8_flags||5.007003| uvuni_to_utf8||5.007001| validate_suid||| varname||| vcmp||5.009000| vcroak||5.006000| vdeb||5.007003| vdie_common||| vdie_croak_common||| vdie||| vform||5.006000| visit||| vivify_defelem||| vivify_ref||| vload_module|5.006000||p vmess||5.006000| vnewSVpvf|5.006000|5.004000|p vnormal||5.009002| vnumify||5.009000| vstringify||5.009000| vverify||5.009003| vwarner||5.006000| vwarn||5.006000| wait4pid||| warn_nocontext|||vn warner_nocontext|||vn warner|5.006000|5.004000|pv warn|||v watch||| whichsig||| write_no_mem||| write_to_stderr||| xmldump_all_perl||| xmldump_all||| xmldump_attr||| xmldump_eval||| xmldump_form||| xmldump_indent|||v xmldump_packsubs_perl||| xmldump_packsubs||| xmldump_sub_perl||| xmldump_sub||| xmldump_vindent||| yyerror||| yylex||| yyparse||| yywarn||| ); if (exists $opt{'list-unsupported'}) { my $f; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $API{$f}{todo}; print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n"; } exit 0; } # Scan for possible replacement candidates my(%replace, %need, %hints, %warnings, %depends); my $replace = 0; my($hint, $define, $function); sub find_api { my $code = shift; $code =~ s{ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*) | "[^"\\]*(?:\\.[^"\\]*)*" | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx; grep { exists $API{$_} } $code =~ /(\w+)/mg; } while (<DATA>) { if ($hint) { my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings; if (m{^\s*\*\s(.*?)\s*$}) { for (@{$hint->[1]}) { $h->{$_} ||= ''; # suppress warning with older perls $h->{$_} .= "$1\n"; } } else { undef $hint } } $hint = [$1, [split /,?\s+/, $2]] if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$}; if ($define) { if ($define->[1] =~ /\\$/) { $define->[1] .= $_; } else { if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) { my @n = find_api($define->[1]); push @{$depends{$define->[0]}}, @n if @n } undef $define; } } $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)}; if ($function) { if (/^}/) { if (exists $API{$function->[0]}) { my @n = find_api($function->[1]); push @{$depends{$function->[0]}}, @n if @n } undef $function; } else { $function->[1] .= $_; } } $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)}; $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$}; $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)}; $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce}; $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$}; if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) { my @deps = map { s/\s+//g; $_ } split /,/, $3; my $d; for $d (map { s/\s+//g; $_ } split /,/, $1) { push @{$depends{$d}}, @deps; } } $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)}; } for (values %depends) { my %s; $_ = [sort grep !$s{$_}++, @$_]; } if (exists $opt{'api-info'}) { my $f; my $count = 0; my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$"; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $f =~ /$match/; print "\n=== $f ===\n\n"; my $info = 0; if ($API{$f}{base} || $API{$f}{todo}) { my $base = format_version($API{$f}{base} || $API{$f}{todo}); print "Supported at least starting from perl-$base.\n"; $info++; } if ($API{$f}{provided}) { my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003"; print "Support by $ppport provided back to perl-$todo.\n"; print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f}; print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f}; print "\n$hints{$f}" if exists $hints{$f}; print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f}; $info++; } print "No portability information available.\n" unless $info; $count++; } $count or print "Found no API matching '$opt{'api-info'}'."; print "\n"; exit 0; } if (exists $opt{'list-provided'}) { my $f; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $API{$f}{provided}; my @flags; push @flags, 'explicit' if exists $need{$f}; push @flags, 'depend' if exists $depends{$f}; push @flags, 'hint' if exists $hints{$f}; push @flags, 'warning' if exists $warnings{$f}; my $flags = @flags ? ' ['.join(', ', @flags).']' : ''; print "$f$flags\n"; } exit 0; } my @files; my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc ); my $srcext = join '|', map { quotemeta $_ } @srcext; if (@ARGV) { my %seen; for (@ARGV) { if (-e) { if (-f) { push @files, $_ unless $seen{$_}++; } else { warn "'$_' is not a file.\n" } } else { my @new = grep { -f } glob $_ or warn "'$_' does not exist.\n"; push @files, grep { !$seen{$_}++ } @new; } } } else { eval { require File::Find; File::Find::find(sub { $File::Find::name =~ /($srcext)$/i and push @files, $File::Find::name; }, '.'); }; if ($@) { @files = map { glob "*$_" } @srcext; } } if (!@ARGV || $opt{filter}) { my(@in, @out); my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files; for (@files) { my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i; push @{ $out ? \@out : \@in }, $_; } if (@ARGV && @out) { warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out); } @files = @in; } die "No input files given!\n" unless @files; my(%files, %global, %revreplace); %revreplace = reverse %replace; my $filename; my $patch_opened = 0; for $filename (@files) { unless (open IN, "<$filename") { warn "Unable to read from $filename: $!\n"; next; } info("Scanning $filename ..."); my $c = do { local $/; <IN> }; close IN; my %file = (orig => $c, changes => 0); # Temporarily remove C/XS comments and strings from the code my @ccom; $c =~ s{ ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]* | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* ) | ( ^$HS*\#[^\r\n]* | "[^"\\]*(?:\\.[^"\\]*)*" | '[^'\\]*(?:\\.[^'\\]*)*' | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) ) }{ defined $2 and push @ccom, $2; defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex; $file{ccom} = \@ccom; $file{code} = $c; $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m; my $func; for $func (keys %API) { my $match = $func; $match .= "|$revreplace{$func}" if exists $revreplace{$func}; if ($c =~ /\b(?:Perl_)?($match)\b/) { $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func}; $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/; if (exists $API{$func}{provided}) { $file{uses_provided}{$func}++; if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) { $file{uses}{$func}++; my @deps = rec_depend($func); if (@deps) { $file{uses_deps}{$func} = \@deps; for (@deps) { $file{uses}{$_} = 0 unless exists $file{uses}{$_}; } } for ($func, @deps) { $file{needs}{$_} = 'static' if exists $need{$_}; } } } if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) { if ($c =~ /\b$func\b/) { $file{uses_todo}{$func}++; } } } } while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) { if (exists $need{$2}) { $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++; } else { warning("Possibly wrong #define $1 in $filename") } } for (qw(uses needs uses_todo needed_global needed_static)) { for $func (keys %{$file{$_}}) { push @{$global{$_}{$func}}, $filename; } } $files{$filename} = \%file; } # Globally resolve NEED_'s my $need; for $need (keys %{$global{needs}}) { if (@{$global{needs}{$need}} > 1) { my @targets = @{$global{needs}{$need}}; my @t = grep $files{$_}{needed_global}{$need}, @targets; @targets = @t if @t; @t = grep /\.xs$/i, @targets; @targets = @t if @t; my $target = shift @targets; $files{$target}{needs}{$need} = 'global'; for (@{$global{needs}{$need}}) { $files{$_}{needs}{$need} = 'extern' if $_ ne $target; } } } for $filename (@files) { exists $files{$filename} or next; info("=== Analyzing $filename ==="); my %file = %{$files{$filename}}; my $func; my $c = $file{code}; my $warnings = 0; for $func (sort keys %{$file{uses_Perl}}) { if ($API{$func}{varargs}) { unless ($API{$func}{nothxarg}) { my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))} { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge); if ($changes) { warning("Doesn't pass interpreter argument aTHX to Perl_$func"); $file{changes} += $changes; } } } else { warning("Uses Perl_$func instead of $func"); $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*} {$func$1(}g); } } for $func (sort keys %{$file{uses_replace}}) { warning("Uses $func instead of $replace{$func}"); $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g); } for $func (sort keys %{$file{uses_provided}}) { if ($file{uses}{$func}) { if (exists $file{uses_deps}{$func}) { diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}})); } else { diag("Uses $func"); } } $warnings += hint($func); } unless ($opt{quiet}) { for $func (sort keys %{$file{uses_todo}}) { print "*** WARNING: Uses $func, which may not be portable below perl ", format_version($API{$func}{todo}), ", even with '$ppport'\n"; $warnings++; } } for $func (sort keys %{$file{needed_static}}) { my $message = ''; if (not exists $file{uses}{$func}) { $message = "No need to define NEED_$func if $func is never used"; } elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') { $message = "No need to define NEED_$func when already needed globally"; } if ($message) { diag($message); $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg); } } for $func (sort keys %{$file{needed_global}}) { my $message = ''; if (not exists $global{uses}{$func}) { $message = "No need to define NEED_${func}_GLOBAL if $func is never used"; } elsif (exists $file{needs}{$func}) { if ($file{needs}{$func} eq 'extern') { $message = "No need to define NEED_${func}_GLOBAL when already needed globally"; } elsif ($file{needs}{$func} eq 'static') { $message = "No need to define NEED_${func}_GLOBAL when only used in this file"; } } if ($message) { diag($message); $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg); } } $file{needs_inc_ppport} = keys %{$file{uses}}; if ($file{needs_inc_ppport}) { my $pp = ''; for $func (sort keys %{$file{needs}}) { my $type = $file{needs}{$func}; next if $type eq 'extern'; my $suffix = $type eq 'global' ? '_GLOBAL' : ''; unless (exists $file{"needed_$type"}{$func}) { if ($type eq 'global') { diag("Files [@{$global{needs}{$func}}] need $func, adding global request"); } else { diag("File needs $func, adding static request"); } $pp .= "#define NEED_$func$suffix\n"; } } if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) { $pp = ''; $file{changes}++; } unless ($file{has_inc_ppport}) { diag("Needs to include '$ppport'"); $pp .= qq(#include "$ppport"\n) } if ($pp) { $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms) || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m) || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m) || ($c =~ s/^/$pp/); } } else { if ($file{has_inc_ppport}) { diag("No need to include '$ppport'"); $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m); } } # put back in our C comments my $ix; my $cppc = 0; my @ccom = @{$file{ccom}}; for $ix (0 .. $#ccom) { if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) { $cppc++; $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/; } else { $c =~ s/$rccs$ix$rcce/$ccom[$ix]/; } } if ($cppc) { my $s = $cppc != 1 ? 's' : ''; warning("Uses $cppc C++ style comment$s, which is not portable"); } my $s = $warnings != 1 ? 's' : ''; my $warn = $warnings ? " ($warnings warning$s)" : ''; info("Analysis completed$warn"); if ($file{changes}) { if (exists $opt{copy}) { my $newfile = "$filename$opt{copy}"; if (-e $newfile) { error("'$newfile' already exists, refusing to write copy of '$filename'"); } else { local *F; if (open F, ">$newfile") { info("Writing copy of '$filename' with changes to '$newfile'"); print F $c; close F; } else { error("Cannot open '$newfile' for writing: $!"); } } } elsif (exists $opt{patch} || $opt{changes}) { if (exists $opt{patch}) { unless ($patch_opened) { if (open PATCH, ">$opt{patch}") { $patch_opened = 1; } else { error("Cannot open '$opt{patch}' for writing: $!"); delete $opt{patch}; $opt{changes} = 1; goto fallback; } } mydiff(\*PATCH, $filename, $c); } else { fallback: info("Suggested changes:"); mydiff(\*STDOUT, $filename, $c); } } else { my $s = $file{changes} == 1 ? '' : 's'; info("$file{changes} potentially required change$s detected"); } } else { info("Looks good"); } } close PATCH if $patch_opened; exit 0; sub try_use { eval "use @_;"; return $@ eq '' } sub mydiff { local *F = shift; my($file, $str) = @_; my $diff; if (exists $opt{diff}) { $diff = run_diff($opt{diff}, $file, $str); } if (!defined $diff and try_use('Text::Diff')) { $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' }); $diff = <<HEADER . $diff; --- $file +++ $file.patched HEADER } if (!defined $diff) { $diff = run_diff('diff -u', $file, $str); } if (!defined $diff) { $diff = run_diff('diff', $file, $str); } if (!defined $diff) { error("Cannot generate a diff. Please install Text::Diff or use --copy."); return; } print F $diff; } sub run_diff { my($prog, $file, $str) = @_; my $tmp = 'dppptemp'; my $suf = 'aaa'; my $diff = ''; local *F; while (-e "$tmp.$suf") { $suf++ } $tmp = "$tmp.$suf"; if (open F, ">$tmp") { print F $str; close F; if (open F, "$prog $file $tmp |") { while (<F>) { s/\Q$tmp\E/$file.patched/; $diff .= $_; } close F; unlink $tmp; return $diff; } unlink $tmp; } else { error("Cannot open '$tmp' for writing: $!"); } return undef; } sub rec_depend { my($func, $seen) = @_; return () unless exists $depends{$func}; $seen = {%{$seen||{}}}; return () if $seen->{$func}++; my %s; grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}}; } sub parse_version { my $ver = shift; if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) { return ($1, $2, $3); } elsif ($ver !~ /^\d+\.[\d_]+$/) { die "cannot parse version '$ver'\n"; } $ver =~ s/_//g; $ver =~ s/$/000000/; my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; $v = int $v; $s = int $s; if ($r < 5 || ($r == 5 && $v < 6)) { if ($s % 10) { die "cannot parse version '$ver'\n"; } } return ($r, $v, $s); } sub format_version { my $ver = shift; $ver =~ s/$/000000/; my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; $v = int $v; $s = int $s; if ($r < 5 || ($r == 5 && $v < 6)) { if ($s % 10) { die "invalid version '$ver'\n"; } $s /= 10; $ver = sprintf "%d.%03d", $r, $v; $s > 0 and $ver .= sprintf "_%02d", $s; return $ver; } return sprintf "%d.%d.%d", $r, $v, $s; } sub info { $opt{quiet} and return; print @_, "\n"; } sub diag { $opt{quiet} and return; $opt{diag} and print @_, "\n"; } sub warning { $opt{quiet} and return; print "*** ", @_, "\n"; } sub error { print "*** ERROR: ", @_, "\n"; } my %given_hints; my %given_warnings; sub hint { $opt{quiet} and return; my $func = shift; my $rv = 0; if (exists $warnings{$func} && !$given_warnings{$func}++) { my $warn = $warnings{$func}; $warn =~ s!^!*** !mg; print "*** WARNING: $func\n", $warn; $rv++; } if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) { my $hint = $hints{$func}; $hint =~ s/^/ /mg; print " --- hint for $func ---\n", $hint; } $rv; } sub usage { my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms; my %M = ( 'I' => '*' ); $usage =~ s/^\s*perl\s+\S+/$^X $0/; $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g; print <<ENDUSAGE; Usage: $usage See perldoc $0 for details. ENDUSAGE exit 2; } sub strip { my $self = do { local(@ARGV,$/)=($0); <> }; my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms; $copy =~ s/^(?=\S+)/ /gms; $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms; $self =~ s/^SKIP.*(?=^__DATA__)/SKIP if (\@ARGV && \$ARGV[0] eq '--unstrip') { eval { require Devel::PPPort }; \$@ and die "Cannot require Devel::PPPort, please install.\\n"; if (eval \$Devel::PPPort::VERSION < $VERSION) { die "$0 was originally generated with Devel::PPPort $VERSION.\\n" . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n" . "Please install a newer version, or --unstrip will not work.\\n"; } Devel::PPPort::WriteFile(\$0); exit 0; } print <<END; Sorry, but this is a stripped version of \$0. To be able to use its original script and doc functionality, please try to regenerate this file using: \$^X \$0 --unstrip END /ms; my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms; $c =~ s{ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*) | ( "[^"\\]*(?:\\.[^"\\]*)*" | '[^'\\]*(?:\\.[^'\\]*)*' ) | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex; $c =~ s!\s+$!!mg; $c =~ s!^$LF!!mg; $c =~ s!^\s*#\s*!#!mg; $c =~ s!^\s+!!mg; open OUT, ">$0" or die "cannot strip $0: $!\n"; print OUT "$pl$c\n"; exit 0; } __DATA__ */ #ifndef _P_P_PORTABILITY_H_ #define _P_P_PORTABILITY_H_ #ifndef DPPP_NAMESPACE # define DPPP_NAMESPACE DPPP_ #endif #define DPPP_CAT2(x,y) CAT2(x,y) #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) #ifndef PERL_REVISION # if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION)) # define PERL_PATCHLEVEL_H_IMPLICIT # include <patchlevel.h> # endif # if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL))) # include <could_not_find_Perl_patchlevel.h> # endif # ifndef PERL_REVISION # define PERL_REVISION (5) /* Replace: 1 */ # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION /* Replace PERL_PATCHLEVEL with PERL_VERSION */ /* Replace: 0 */ # endif #endif #define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) #define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION)) /* It is very unlikely that anyone will try to use this with Perl 6 (or greater), but who knows. */ #if PERL_REVISION != 5 # error ppport.h only works with Perl version 5 #endif /* PERL_REVISION != 5 */ #ifndef dTHR # define dTHR dNOOP #endif #ifndef dTHX # define dTHX dNOOP #endif #ifndef dTHXa # define dTHXa(x) dNOOP #endif #ifndef pTHX # define pTHX void #endif #ifndef pTHX_ # define pTHX_ #endif #ifndef aTHX # define aTHX #endif #ifndef aTHX_ # define aTHX_ #endif #if (PERL_BCDVERSION < 0x5006000) # ifdef USE_THREADS # define aTHXR thr # define aTHXR_ thr, # else # define aTHXR # define aTHXR_ # endif # define dTHXR dTHR #else # define aTHXR aTHX # define aTHXR_ aTHX_ # define dTHXR dTHX #endif #ifndef dTHXoa # define dTHXoa(x) dTHXa(x) #endif #ifdef I_LIMITS # include <limits.h> #endif #ifndef PERL_UCHAR_MIN # define PERL_UCHAR_MIN ((unsigned char)0) #endif #ifndef PERL_UCHAR_MAX # ifdef UCHAR_MAX # define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX) # else # ifdef MAXUCHAR # define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR) # else # define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0) # endif # endif #endif #ifndef PERL_USHORT_MIN # define PERL_USHORT_MIN ((unsigned short)0) #endif #ifndef PERL_USHORT_MAX # ifdef USHORT_MAX # define PERL_USHORT_MAX ((unsigned short)USHORT_MAX) # else # ifdef MAXUSHORT # define PERL_USHORT_MAX ((unsigned short)MAXUSHORT) # else # ifdef USHRT_MAX # define PERL_USHORT_MAX ((unsigned short)USHRT_MAX) # else # define PERL_USHORT_MAX ((unsigned short)~(unsigned)0) # endif # endif # endif #endif #ifndef PERL_SHORT_MAX # ifdef SHORT_MAX # define PERL_SHORT_MAX ((short)SHORT_MAX) # else # ifdef MAXSHORT /* Often used in <values.h> */ # define PERL_SHORT_MAX ((short)MAXSHORT) # else # ifdef SHRT_MAX # define PERL_SHORT_MAX ((short)SHRT_MAX) # else # define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1)) # endif # endif # endif #endif #ifndef PERL_SHORT_MIN # ifdef SHORT_MIN # define PERL_SHORT_MIN ((short)SHORT_MIN) # else # ifdef MINSHORT # define PERL_SHORT_MIN ((short)MINSHORT) # else # ifdef SHRT_MIN # define PERL_SHORT_MIN ((short)SHRT_MIN) # else # define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3)) # endif # endif # endif #endif #ifndef PERL_UINT_MAX # ifdef UINT_MAX # define PERL_UINT_MAX ((unsigned int)UINT_MAX) # else # ifdef MAXUINT # define PERL_UINT_MAX ((unsigned int)MAXUINT) # else # define PERL_UINT_MAX (~(unsigned int)0) # endif # endif #endif #ifndef PERL_UINT_MIN # define PERL_UINT_MIN ((unsigned int)0) #endif #ifndef PERL_INT_MAX # ifdef INT_MAX # define PERL_INT_MAX ((int)INT_MAX) # else # ifdef MAXINT /* Often used in <values.h> */ # define PERL_INT_MAX ((int)MAXINT) # else # define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1)) # endif # endif #endif #ifndef PERL_INT_MIN # ifdef INT_MIN # define PERL_INT_MIN ((int)INT_MIN) # else # ifdef MININT # define PERL_INT_MIN ((int)MININT) # else # define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3)) # endif # endif #endif #ifndef PERL_ULONG_MAX # ifdef ULONG_MAX # define PERL_ULONG_MAX ((unsigned long)ULONG_MAX) # else # ifdef MAXULONG # define PERL_ULONG_MAX ((unsigned long)MAXULONG) # else # define PERL_ULONG_MAX (~(unsigned long)0) # endif # endif #endif #ifndef PERL_ULONG_MIN # define PERL_ULONG_MIN ((unsigned long)0L) #endif #ifndef PERL_LONG_MAX # ifdef LONG_MAX # define PERL_LONG_MAX ((long)LONG_MAX) # else # ifdef MAXLONG # define PERL_LONG_MAX ((long)MAXLONG) # else # define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1)) # endif # endif #endif #ifndef PERL_LONG_MIN # ifdef LONG_MIN # define PERL_LONG_MIN ((long)LONG_MIN) # else # ifdef MINLONG # define PERL_LONG_MIN ((long)MINLONG) # else # define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3)) # endif # endif #endif #if defined(HAS_QUAD) && (defined(convex) || defined(uts)) # ifndef PERL_UQUAD_MAX # ifdef ULONGLONG_MAX # define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX) # else # ifdef MAXULONGLONG # define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG) # else # define PERL_UQUAD_MAX (~(unsigned long long)0) # endif # endif # endif # ifndef PERL_UQUAD_MIN # define PERL_UQUAD_MIN ((unsigned long long)0L) # endif # ifndef PERL_QUAD_MAX # ifdef LONGLONG_MAX # define PERL_QUAD_MAX ((long long)LONGLONG_MAX) # else # ifdef MAXLONGLONG # define PERL_QUAD_MAX ((long long)MAXLONGLONG) # else # define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1)) # endif # endif # endif # ifndef PERL_QUAD_MIN # ifdef LONGLONG_MIN # define PERL_QUAD_MIN ((long long)LONGLONG_MIN) # else # ifdef MINLONGLONG # define PERL_QUAD_MIN ((long long)MINLONGLONG) # else # define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3)) # endif # endif # endif #endif /* This is based on code from 5.003 perl.h */ #ifdef HAS_QUAD # ifdef cray #ifndef IVTYPE # define IVTYPE int #endif #ifndef IV_MIN # define IV_MIN PERL_INT_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_INT_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_UINT_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_UINT_MAX #endif # ifdef INTSIZE #ifndef IVSIZE # define IVSIZE INTSIZE #endif # endif # else # if defined(convex) || defined(uts) #ifndef IVTYPE # define IVTYPE long long #endif #ifndef IV_MIN # define IV_MIN PERL_QUAD_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_QUAD_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_UQUAD_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_UQUAD_MAX #endif # ifdef LONGLONGSIZE #ifndef IVSIZE # define IVSIZE LONGLONGSIZE #endif # endif # else #ifndef IVTYPE # define IVTYPE long #endif #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_LONG_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_ULONG_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_ULONG_MAX #endif # ifdef LONGSIZE #ifndef IVSIZE # define IVSIZE LONGSIZE #endif # endif # endif # endif #ifndef IVSIZE # define IVSIZE 8 #endif #ifndef PERL_QUAD_MIN # define PERL_QUAD_MIN IV_MIN #endif #ifndef PERL_QUAD_MAX # define PERL_QUAD_MAX IV_MAX #endif #ifndef PERL_UQUAD_MIN # define PERL_UQUAD_MIN UV_MIN #endif #ifndef PERL_UQUAD_MAX # define PERL_UQUAD_MAX UV_MAX #endif #else #ifndef IVTYPE # define IVTYPE long #endif #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_LONG_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_ULONG_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_ULONG_MAX #endif #endif #ifndef IVSIZE # ifdef LONGSIZE # define IVSIZE LONGSIZE # else # define IVSIZE 4 /* A bold guess, but the best we can make. */ # endif #endif #ifndef UVTYPE # define UVTYPE unsigned IVTYPE #endif #ifndef UVSIZE # define UVSIZE IVSIZE #endif #ifndef sv_setuv # define sv_setuv(sv, uv) \ STMT_START { \ UV TeMpUv = uv; \ if (TeMpUv <= IV_MAX) \ sv_setiv(sv, TeMpUv); \ else \ sv_setnv(sv, (double)TeMpUv); \ } STMT_END #endif #ifndef newSVuv # define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) #endif #ifndef sv_2uv # define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) #endif #ifndef SvUVX # define SvUVX(sv) ((UV)SvIVX(sv)) #endif #ifndef SvUVXx # define SvUVXx(sv) SvUVX(sv) #endif #ifndef SvUV # define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) #endif #ifndef SvUVx # define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) #endif /* Hint: sv_uv * Always use the SvUVx() macro instead of sv_uv(). */ #ifndef sv_uv # define sv_uv(sv) SvUVx(sv) #endif #if !defined(SvUOK) && defined(SvIOK_UV) # define SvUOK(sv) SvIOK_UV(sv) #endif #ifndef XST_mUV # define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) #endif #ifndef XSRETURN_UV # define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END #endif #ifndef PUSHu # define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END #endif #ifndef XPUSHu # define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END #endif #ifdef HAS_MEMCMP #ifndef memNE # define memNE(s1,s2,l) (memcmp(s1,s2,l)) #endif #ifndef memEQ # define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) #endif #else #ifndef memNE # define memNE(s1,s2,l) (bcmp(s1,s2,l)) #endif #ifndef memEQ # define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif #endif #ifndef memEQs # define memEQs(s1, l, s2) \ (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1))) #endif #ifndef memNEs # define memNEs(s1, l, s2) !memEQs(s1, l, s2) #endif #ifndef MoveD # define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) #endif #ifndef CopyD # define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) #endif #ifdef HAS_MEMSET #ifndef ZeroD # define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) #endif #else #ifndef ZeroD # define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) #endif #endif #ifndef PoisonWith # define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) #endif #ifndef PoisonNew # define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) #endif #ifndef PoisonFree # define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) #endif #ifndef Poison # define Poison(d,n,t) PoisonFree(d,n,t) #endif #ifndef Newx # define Newx(v,n,t) New(0,v,n,t) #endif #ifndef Newxc # define Newxc(v,n,t,c) Newc(0,v,n,t,c) #endif #ifndef Newxz # define Newxz(v,n,t) Newz(0,v,n,t) #endif #ifndef PERL_UNUSED_DECL # ifdef HASATTRIBUTE # if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER) # define PERL_UNUSED_DECL # else # define PERL_UNUSED_DECL __attribute__((unused)) # endif # else # define PERL_UNUSED_DECL # endif #endif #ifndef PERL_UNUSED_ARG # if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ # include <note.h> # define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) # else # define PERL_UNUSED_ARG(x) ((void)x) # endif #endif #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(x) ((void)x) #endif #ifndef PERL_UNUSED_CONTEXT # ifdef USE_ITHREADS # define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl) # else # define PERL_UNUSED_CONTEXT # endif #endif #ifndef NOOP # define NOOP /*EMPTY*/(void)0 #endif #ifndef dNOOP # define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL #endif #ifndef NVTYPE # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) # define NVTYPE long double # else # define NVTYPE double # endif typedef NVTYPE NV; #endif #ifndef INT2PTR # if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) # define PTRV UV # define INT2PTR(any,d) (any)(d) # else # if PTRSIZE == LONGSIZE # define PTRV unsigned long # else # define PTRV unsigned # endif # define INT2PTR(any,d) (any)(PTRV)(d) # endif #endif #ifndef PTR2ul # if PTRSIZE == LONGSIZE # define PTR2ul(p) (unsigned long)(p) # else # define PTR2ul(p) INT2PTR(unsigned long,p) # endif #endif #ifndef PTR2nat # define PTR2nat(p) (PTRV)(p) #endif #ifndef NUM2PTR # define NUM2PTR(any,d) (any)PTR2nat(d) #endif #ifndef PTR2IV # define PTR2IV(p) INT2PTR(IV,p) #endif #ifndef PTR2UV # define PTR2UV(p) INT2PTR(UV,p) #endif #ifndef PTR2NV # define PTR2NV(p) NUM2PTR(NV,p) #endif #undef START_EXTERN_C #undef END_EXTERN_C #undef EXTERN_C #ifdef __cplusplus # define START_EXTERN_C extern "C" { # define END_EXTERN_C } # define EXTERN_C extern "C" #else # define START_EXTERN_C # define END_EXTERN_C # define EXTERN_C extern #endif #if defined(PERL_GCC_PEDANTIC) # ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN # define PERL_GCC_BRACE_GROUPS_FORBIDDEN # endif #endif #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus) # ifndef PERL_USE_GCC_BRACE_GROUPS # define PERL_USE_GCC_BRACE_GROUPS # endif #endif #undef STMT_START #undef STMT_END #ifdef PERL_USE_GCC_BRACE_GROUPS # define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ # define STMT_END ) #else # if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__) # define STMT_START if (1) # define STMT_END else (void)0 # else # define STMT_START do # define STMT_END while (0) # endif #endif #ifndef boolSV # define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no) #endif /* DEFSV appears first in 5.004_56 */ #ifndef DEFSV # define DEFSV GvSV(PL_defgv) #endif #ifndef SAVE_DEFSV # define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) #endif #ifndef DEFSV_set # define DEFSV_set(sv) (DEFSV = (sv)) #endif /* Older perls (<=5.003) lack AvFILLp */ #ifndef AvFILLp # define AvFILLp AvFILL #endif #ifndef ERRSV # define ERRSV get_sv("@",FALSE) #endif /* Hint: gv_stashpvn * This function's backport doesn't support the length parameter, but * rather ignores it. Portability can only be ensured if the length * parameter is used for speed reasons, but the length can always be * correctly computed from the string argument. */ #ifndef gv_stashpvn # define gv_stashpvn(str,len,create) gv_stashpv(str,create) #endif /* Replace: 1 */ #ifndef get_cv # define get_cv perl_get_cv #endif #ifndef get_sv # define get_sv perl_get_sv #endif #ifndef get_av # define get_av perl_get_av #endif #ifndef get_hv # define get_hv perl_get_hv #endif /* Replace: 0 */ #ifndef dUNDERBAR # define dUNDERBAR dNOOP #endif #ifndef UNDERBAR # define UNDERBAR DEFSV #endif #ifndef dAX # define dAX I32 ax = MARK - PL_stack_base + 1 #endif #ifndef dITEMS # define dITEMS I32 items = SP - MARK #endif #ifndef dXSTARG # define dXSTARG SV * targ = sv_newmortal() #endif #ifndef dAXMARK # define dAXMARK I32 ax = POPMARK; \ register SV ** const mark = PL_stack_base + ax++ #endif #ifndef XSprePUSH # define XSprePUSH (sp = PL_stack_base + ax - 1) #endif #if (PERL_BCDVERSION < 0x5005000) # undef XSRETURN # define XSRETURN(off) \ STMT_START { \ PL_stack_sp = PL_stack_base + ax + ((off) - 1); \ return; \ } STMT_END #endif #ifndef XSPROTO # define XSPROTO(name) void name(pTHX_ CV* cv) #endif #ifndef SVfARG # define SVfARG(p) ((void*)(p)) #endif #ifndef PERL_ABS # define PERL_ABS(x) ((x) < 0 ? -(x) : (x)) #endif #ifndef dVAR # define dVAR dNOOP #endif #ifndef SVf # define SVf "_" #endif #ifndef UTF8_MAXBYTES # define UTF8_MAXBYTES UTF8_MAXLEN #endif #ifndef CPERLscope # define CPERLscope(x) x #endif #ifndef PERL_HASH # define PERL_HASH(hash,str,len) \ STMT_START { \ const char *s_PeRlHaSh = str; \ I32 i_PeRlHaSh = len; \ U32 hash_PeRlHaSh = 0; \ while (i_PeRlHaSh--) \ hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \ (hash) = hash_PeRlHaSh; \ } STMT_END #endif #ifndef PERLIO_FUNCS_DECL # ifdef PERLIO_FUNCS_CONST # define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs # define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs) # else # define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs # define PERLIO_FUNCS_CAST(funcs) (funcs) # endif #endif /* provide these typedefs for older perls */ #if (PERL_BCDVERSION < 0x5009003) # ifdef ARGSproto typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto); # else typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX); # endif typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); #endif #ifndef isPSXSPC # define isPSXSPC(c) (isSPACE(c) || (c) == '\v') #endif #ifndef isBLANK # define isBLANK(c) ((c) == ' ' || (c) == '\t') #endif #ifdef EBCDIC #ifndef isALNUMC # define isALNUMC(c) isalnum(c) #endif #ifndef isASCII # define isASCII(c) isascii(c) #endif #ifndef isCNTRL # define isCNTRL(c) iscntrl(c) #endif #ifndef isGRAPH # define isGRAPH(c) isgraph(c) #endif #ifndef isPRINT # define isPRINT(c) isprint(c) #endif #ifndef isPUNCT # define isPUNCT(c) ispunct(c) #endif #ifndef isXDIGIT # define isXDIGIT(c) isxdigit(c) #endif #else # if (PERL_BCDVERSION < 0x5010000) /* Hint: isPRINT * The implementation in older perl versions includes all of the * isSPACE() characters, which is wrong. The version provided by * Devel::PPPort always overrides a present buggy version. */ # undef isPRINT # endif #ifndef isALNUMC # define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) #endif #ifndef isASCII # define isASCII(c) ((c) <= 127) #endif #ifndef isCNTRL # define isCNTRL(c) ((c) < ' ' || (c) == 127) #endif #ifndef isGRAPH # define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) #endif #ifndef isPRINT # define isPRINT(c) (((c) >= 32 && (c) < 127)) #endif #ifndef isPUNCT # define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) #endif #ifndef isXDIGIT # define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) #endif #endif #ifndef PERL_SIGNALS_UNSAFE_FLAG #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 #if (PERL_BCDVERSION < 0x5008000) # define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG #else # define D_PPP_PERL_SIGNALS_INIT 0 #endif #if defined(NEED_PL_signals) static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; #elif defined(NEED_PL_signals_GLOBAL) U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT; #else extern U32 DPPP_(my_PL_signals); #endif #define PL_signals DPPP_(my_PL_signals) #endif /* Hint: PL_ppaddr * Calling an op via PL_ppaddr requires passing a context argument * for threaded builds. Since the context argument is different for * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will * automatically be defined as the correct argument. */ #if (PERL_BCDVERSION <= 0x5005005) /* Replace: 1 */ # define PL_ppaddr ppaddr # define PL_no_modify no_modify /* Replace: 0 */ #endif #if (PERL_BCDVERSION <= 0x5004005) /* Replace: 1 */ # define PL_DBsignal DBsignal # define PL_DBsingle DBsingle # define PL_DBsub DBsub # define PL_DBtrace DBtrace # define PL_Sv Sv # define PL_bufend bufend # define PL_bufptr bufptr # define PL_compiling compiling # define PL_copline copline # define PL_curcop curcop # define PL_curstash curstash # define PL_debstash debstash # define PL_defgv defgv # define PL_diehook diehook # define PL_dirty dirty # define PL_dowarn dowarn # define PL_errgv errgv # define PL_error_count error_count # define PL_expect expect # define PL_hexdigit hexdigit # define PL_hints hints # define PL_in_my in_my # define PL_laststatval laststatval # define PL_lex_state lex_state # define PL_lex_stuff lex_stuff # define PL_linestr linestr # define PL_na na # define PL_perl_destruct_level perl_destruct_level # define PL_perldb perldb # define PL_rsfp_filters rsfp_filters # define PL_rsfp rsfp # define PL_stack_base stack_base # define PL_stack_sp stack_sp # define PL_statcache statcache # define PL_stdingv stdingv # define PL_sv_arenaroot sv_arenaroot # define PL_sv_no sv_no # define PL_sv_undef sv_undef # define PL_sv_yes sv_yes # define PL_tainted tainted # define PL_tainting tainting # define PL_tokenbuf tokenbuf /* Replace: 0 */ #endif /* Warning: PL_parser * For perl versions earlier than 5.9.5, this is an always * non-NULL dummy. Also, it cannot be dereferenced. Don't * use it if you can avoid is and unless you absolutely know * what you're doing. * If you always check that PL_parser is non-NULL, you can * define DPPP_PL_parser_NO_DUMMY to avoid the creation of * a dummy parser structure. */ #if (PERL_BCDVERSION >= 0x5009005) # ifdef DPPP_PL_parser_NO_DUMMY # define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ (croak("panic: PL_parser == NULL in %s:%d", \ __FILE__, __LINE__), (yy_parser *) NULL))->var) # else # ifdef DPPP_PL_parser_NO_DUMMY_WARNING # define D_PPP_parser_dummy_warning(var) # else # define D_PPP_parser_dummy_warning(var) \ warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), # endif # define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) #if defined(NEED_PL_parser) static yy_parser DPPP_(dummy_PL_parser); #elif defined(NEED_PL_parser_GLOBAL) yy_parser DPPP_(dummy_PL_parser); #else extern yy_parser DPPP_(dummy_PL_parser); #endif # endif /* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ /* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf * Do not use this variable unless you know exactly what you're * doint. It is internal to the perl parser and may change or even * be removed in the future. As of perl 5.9.5, you have to check * for (PL_parser != NULL) for this variable to have any effect. * An always non-NULL PL_parser dummy is provided for earlier * perl versions. * If PL_parser is NULL when you try to access this variable, a * dummy is being accessed instead and a warning is issued unless * you define DPPP_PL_parser_NO_DUMMY_WARNING. * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access * this variable will croak with a panic message. */ # define PL_expect D_PPP_my_PL_parser_var(expect) # define PL_copline D_PPP_my_PL_parser_var(copline) # define PL_rsfp D_PPP_my_PL_parser_var(rsfp) # define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) # define PL_linestr D_PPP_my_PL_parser_var(linestr) # define PL_bufptr D_PPP_my_PL_parser_var(bufptr) # define PL_bufend D_PPP_my_PL_parser_var(bufend) # define PL_lex_state D_PPP_my_PL_parser_var(lex_state) # define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) # define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) # define PL_in_my D_PPP_my_PL_parser_var(in_my) # define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) # define PL_error_count D_PPP_my_PL_parser_var(error_count) #else /* ensure that PL_parser != NULL and cannot be dereferenced */ # define PL_parser ((void *) 1) #endif #ifndef mPUSHs # define mPUSHs(s) PUSHs(sv_2mortal(s)) #endif #ifndef PUSHmortal # define PUSHmortal PUSHs(sv_newmortal()) #endif #ifndef mPUSHp # define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) #endif #ifndef mPUSHn # define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) #endif #ifndef mPUSHi # define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) #endif #ifndef mPUSHu # define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) #endif #ifndef mXPUSHs # define mXPUSHs(s) XPUSHs(sv_2mortal(s)) #endif #ifndef XPUSHmortal # define XPUSHmortal XPUSHs(sv_newmortal()) #endif #ifndef mXPUSHp # define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END #endif #ifndef mXPUSHn # define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END #endif #ifndef mXPUSHi # define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END #endif #ifndef mXPUSHu # define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END #endif /* Replace: 1 */ #ifndef call_sv # define call_sv perl_call_sv #endif #ifndef call_pv # define call_pv perl_call_pv #endif #ifndef call_argv # define call_argv perl_call_argv #endif #ifndef call_method # define call_method perl_call_method #endif #ifndef eval_sv # define eval_sv perl_eval_sv #endif /* Replace: 0 */ #ifndef PERL_LOADMOD_DENY # define PERL_LOADMOD_DENY 0x1 #endif #ifndef PERL_LOADMOD_NOIMPORT # define PERL_LOADMOD_NOIMPORT 0x2 #endif #ifndef PERL_LOADMOD_IMPORT_OPS # define PERL_LOADMOD_IMPORT_OPS 0x4 #endif #ifndef G_METHOD # define G_METHOD 64 # ifdef call_sv # undef call_sv # endif # if (PERL_BCDVERSION < 0x5006000) # define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) # else # define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) # endif #endif /* Replace perl_eval_pv with eval_pv */ #ifndef eval_pv #if defined(NEED_eval_pv) static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); static #else extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); #endif #ifdef eval_pv # undef eval_pv #endif #define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) #define Perl_eval_pv DPPP_(my_eval_pv) #if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error) { dSP; SV* sv = newSVpv(p, 0); PUSHMARK(sp); eval_sv(sv, G_SCALAR); SvREFCNT_dec(sv); SPAGAIN; sv = POPs; PUTBACK; if (croak_on_error && SvTRUE(GvSV(errgv))) croak(SvPVx(GvSV(errgv), na)); return sv; } #endif #endif #ifndef vload_module #if defined(NEED_vload_module) static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); static #else extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); #endif #ifdef vload_module # undef vload_module #endif #define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) #define Perl_vload_module DPPP_(my_vload_module) #if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) { dTHR; dVAR; OP *veop, *imop; OP * const modname = newSVOP(OP_CONST, 0, name); /* 5.005 has a somewhat hacky force_normal that doesn't croak on SvREADONLY() if PL_compling is true. Current perls take care in ck_require() to correctly turn off SvREADONLY before calling force_normal_flags(). This seems a better fix than fudging PL_compling */ SvREADONLY_off(((SVOP*)modname)->op_sv); modname->op_private |= OPpCONST_BARE; if (ver) { veop = newSVOP(OP_CONST, 0, ver); } else veop = NULL; if (flags & PERL_LOADMOD_NOIMPORT) { imop = sawparens(newNULLLIST()); } else if (flags & PERL_LOADMOD_IMPORT_OPS) { imop = va_arg(*args, OP*); } else { SV *sv; imop = NULL; sv = va_arg(*args, SV*); while (sv) { imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); sv = va_arg(*args, SV*); } } { const line_t ocopline = PL_copline; COP * const ocurcop = PL_curcop; const int oexpect = PL_expect; #if (PERL_BCDVERSION >= 0x5004000) utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), veop, modname, imop); #else utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), modname, imop); #endif PL_expect = oexpect; PL_copline = ocopline; PL_curcop = ocurcop; } } #endif #endif #ifndef load_module #if defined(NEED_load_module) static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); static #else extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); #endif #ifdef load_module # undef load_module #endif #define load_module DPPP_(my_load_module) #define Perl_load_module DPPP_(my_load_module) #if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) { va_list args; va_start(args, ver); vload_module(flags, name, ver, &args); va_end(args); } #endif #endif #ifndef newRV_inc # define newRV_inc(sv) newRV(sv) /* Replace */ #endif #ifndef newRV_noinc #if defined(NEED_newRV_noinc) static SV * DPPP_(my_newRV_noinc)(SV *sv); static #else extern SV * DPPP_(my_newRV_noinc)(SV *sv); #endif #ifdef newRV_noinc # undef newRV_noinc #endif #define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) #define Perl_newRV_noinc DPPP_(my_newRV_noinc) #if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) SV * DPPP_(my_newRV_noinc)(SV *sv) { SV *rv = (SV *)newRV(sv); SvREFCNT_dec(sv); return rv; } #endif #endif /* Hint: newCONSTSUB * Returns a CV* as of perl-5.7.1. This return value is not supported * by Devel::PPPort. */ /* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ #if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005) #if defined(NEED_newCONSTSUB) static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); static #else extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); #endif #ifdef newCONSTSUB # undef newCONSTSUB #endif #define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) #define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) #if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) /* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ /* (There's no PL_parser in perl < 5.005, so this is completely safe) */ #define D_PPP_PL_copline PL_copline void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) { U32 oldhints = PL_hints; HV *old_cop_stash = PL_curcop->cop_stash; HV *old_curstash = PL_curstash; line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = D_PPP_PL_copline; PL_hints &= ~HINT_BLOCK_SCOPE; if (stash) PL_curstash = PL_curcop->cop_stash = stash; newSUB( #if (PERL_BCDVERSION < 0x5003022) start_subparse(), #elif (PERL_BCDVERSION == 0x5003022) start_subparse(0), #else /* 5.003_23 onwards */ start_subparse(FALSE, 0), #endif newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) ); PL_hints = oldhints; PL_curcop->cop_stash = old_cop_stash; PL_curstash = old_curstash; PL_curcop->cop_line = oldline; } #endif #endif /* * Boilerplate macros for initializing and accessing interpreter-local * data from C. All statics in extensions should be reworked to use * this, if you want to make the extension thread-safe. See ext/re/re.xs * for an example of the use of these macros. * * Code that uses these macros is responsible for the following: * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" * 2. Declare a typedef named my_cxt_t that is a structure that contains * all the data that needs to be interpreter-local. * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. * 4. Use the MY_CXT_INIT macro such that it is called exactly once * (typically put in the BOOT: section). * 5. Use the members of the my_cxt_t structure everywhere as * MY_CXT.member. * 6. Use the dMY_CXT macro (a declaration) in all the functions that * access MY_CXT. */ #if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) #ifndef START_MY_CXT /* This must appear in all extensions that define a my_cxt_t structure, * right after the definition (i.e. at file scope). The non-threads * case below uses it to declare the data as static. */ #define START_MY_CXT #if (PERL_BCDVERSION < 0x5004068) /* Fetches the SV that keeps the per-interpreter data. */ #define dMY_CXT_SV \ SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) #else /* >= perl5.004_68 */ #define dMY_CXT_SV \ SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ sizeof(MY_CXT_KEY)-1, TRUE) #endif /* < perl5.004_68 */ /* This declaration should be used within all functions that use the * interpreter-local data. */ #define dMY_CXT \ dMY_CXT_SV; \ my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) /* Creates and zeroes the per-interpreter data. * (We allocate my_cxtp in a Perl SV so that it will be released when * the interpreter goes away.) */ #define MY_CXT_INIT \ dMY_CXT_SV; \ /* newSV() allocates one more than needed */ \ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ Zero(my_cxtp, 1, my_cxt_t); \ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) /* This macro must be used to access members of the my_cxt_t structure. * e.g. MYCXT.some_data */ #define MY_CXT (*my_cxtp) /* Judicious use of these macros can reduce the number of times dMY_CXT * is used. Use is similar to pTHX, aTHX etc. */ #define pMY_CXT my_cxt_t *my_cxtp #define pMY_CXT_ pMY_CXT, #define _pMY_CXT ,pMY_CXT #define aMY_CXT my_cxtp #define aMY_CXT_ aMY_CXT, #define _aMY_CXT ,aMY_CXT #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE /* Clones the per-interpreter data. */ #define MY_CXT_CLONE \ dMY_CXT_SV; \ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) #endif #else /* single interpreter */ #ifndef START_MY_CXT #define START_MY_CXT static my_cxt_t my_cxt; #define dMY_CXT_SV dNOOP #define dMY_CXT dNOOP #define MY_CXT_INIT NOOP #define MY_CXT my_cxt #define pMY_CXT void #define pMY_CXT_ #define _pMY_CXT #define aMY_CXT #define aMY_CXT_ #define _aMY_CXT #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE #define MY_CXT_CLONE NOOP #endif #endif #ifndef IVdf # if IVSIZE == LONGSIZE # define IVdf "ld" # define UVuf "lu" # define UVof "lo" # define UVxf "lx" # define UVXf "lX" # else # if IVSIZE == INTSIZE # define IVdf "d" # define UVuf "u" # define UVof "o" # define UVxf "x" # define UVXf "X" # endif # endif #endif #ifndef NVef # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \ defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000) /* Not very likely, but let's try anyway. */ # define NVef PERL_PRIeldbl # define NVff PERL_PRIfldbl # define NVgf PERL_PRIgldbl # else # define NVef "e" # define NVff "f" # define NVgf "g" # endif #endif #ifndef SvREFCNT_inc # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ if (_sv) \ (SvREFCNT(_sv))++; \ _sv; \ }) # else # define SvREFCNT_inc(sv) \ ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) # endif #endif #ifndef SvREFCNT_inc_simple # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_simple(sv) \ ({ \ if (sv) \ (SvREFCNT(sv))++; \ (SV *)(sv); \ }) # else # define SvREFCNT_inc_simple(sv) \ ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) # endif #endif #ifndef SvREFCNT_inc_NN # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_NN(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ SvREFCNT(_sv)++; \ _sv; \ }) # else # define SvREFCNT_inc_NN(sv) \ (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) # endif #endif #ifndef SvREFCNT_inc_void # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_void(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ if (_sv) \ (void)(SvREFCNT(_sv)++); \ }) # else # define SvREFCNT_inc_void(sv) \ (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) # endif #endif #ifndef SvREFCNT_inc_simple_void # define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END #endif #ifndef SvREFCNT_inc_simple_NN # define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) #endif #ifndef SvREFCNT_inc_void_NN # define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif #ifndef SvREFCNT_inc_simple_void_NN # define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif #ifndef newSV_type #if defined(NEED_newSV_type) static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); static #else extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); #endif #ifdef newSV_type # undef newSV_type #endif #define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) #define Perl_newSV_type DPPP_(my_newSV_type) #if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) SV* DPPP_(my_newSV_type)(pTHX_ svtype const t) { SV* const sv = newSV(0); sv_upgrade(sv, t); return sv; } #endif #endif #if (PERL_BCDVERSION < 0x5006000) # define D_PPP_CONSTPV_ARG(x) ((char *) (x)) #else # define D_PPP_CONSTPV_ARG(x) (x) #endif #ifndef newSVpvn # define newSVpvn(data,len) ((data) \ ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ : newSV(0)) #endif #ifndef newSVpvn_utf8 # define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) #endif #ifndef SVf_UTF8 # define SVf_UTF8 0 #endif #ifndef newSVpvn_flags #if defined(NEED_newSVpvn_flags) static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); static #else extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); #endif #ifdef newSVpvn_flags # undef newSVpvn_flags #endif #define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) #define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) #if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) { SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len); SvFLAGS(sv) |= (flags & SVf_UTF8); return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv; } #endif #endif /* Backwards compatibility stuff... :-( */ #if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen) # define NEED_sv_2pv_flags #endif #if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL) # define NEED_sv_2pv_flags_GLOBAL #endif /* Hint: sv_2pv_nolen * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen(). */ #ifndef sv_2pv_nolen # define sv_2pv_nolen(sv) SvPV_nolen(sv) #endif #ifdef SvPVbyte /* Hint: SvPVbyte * Does not work in perl-5.6.1, ppport.h implements a version * borrowed from perl-5.7.3. */ #if (PERL_BCDVERSION < 0x5007000) #if defined(NEED_sv_2pvbyte) static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); static #else extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); #endif #ifdef sv_2pvbyte # undef sv_2pvbyte #endif #define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) #define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) #if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) { sv_utf8_downgrade(sv,0); return SvPV(sv,*lp); } #endif /* Hint: sv_2pvbyte * Use the SvPVbyte() macro instead of sv_2pvbyte(). */ #undef SvPVbyte #define SvPVbyte(sv, lp) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) #endif #else # define SvPVbyte SvPV # define sv_2pvbyte sv_2pv #endif #ifndef sv_2pvbyte_nolen # define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv) #endif /* Hint: sv_pvn * Always use the SvPV() macro instead of sv_pvn(). */ /* Hint: sv_pvn_force * Always use the SvPV_force() macro instead of sv_pvn_force(). */ /* If these are undefined, they're not handled by the core anyway */ #ifndef SV_IMMEDIATE_UNREF # define SV_IMMEDIATE_UNREF 0 #endif #ifndef SV_GMAGIC # define SV_GMAGIC 0 #endif #ifndef SV_COW_DROP_PV # define SV_COW_DROP_PV 0 #endif #ifndef SV_UTF8_NO_ENCODING # define SV_UTF8_NO_ENCODING 0 #endif #ifndef SV_NOSTEAL # define SV_NOSTEAL 0 #endif #ifndef SV_CONST_RETURN # define SV_CONST_RETURN 0 #endif #ifndef SV_MUTABLE_RETURN # define SV_MUTABLE_RETURN 0 #endif #ifndef SV_SMAGIC # define SV_SMAGIC 0 #endif #ifndef SV_HAS_TRAILING_NUL # define SV_HAS_TRAILING_NUL 0 #endif #ifndef SV_COW_SHARED_HASH_KEYS # define SV_COW_SHARED_HASH_KEYS 0 #endif #if (PERL_BCDVERSION < 0x5007002) #if defined(NEED_sv_2pv_flags) static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); static #else extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif #ifdef sv_2pv_flags # undef sv_2pv_flags #endif #define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c) #define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags) #if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) { STRLEN n_a = (STRLEN) flags; return sv_2pv(sv, lp ? lp : &n_a); } #endif #if defined(NEED_sv_pvn_force_flags) static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); static #else extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif #ifdef sv_pvn_force_flags # undef sv_pvn_force_flags #endif #define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c) #define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags) #if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) { STRLEN n_a = (STRLEN) flags; return sv_pvn_force(sv, lp ? lp : &n_a); } #endif #endif #if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) # define DPPP_SVPV_NOLEN_LP_ARG &PL_na #else # define DPPP_SVPV_NOLEN_LP_ARG 0 #endif #ifndef SvPV_const # define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) #endif #ifndef SvPV_mutable # define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC) #endif #ifndef SvPV_flags # define SvPV_flags(sv, lp, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags)) #endif #ifndef SvPV_flags_const # define SvPV_flags_const(sv, lp, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \ (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN)) #endif #ifndef SvPV_flags_const_nolen # define SvPV_flags_const_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX_const(sv) : \ (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif #ifndef SvPV_flags_mutable # define SvPV_flags_mutable(sv, lp, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif #ifndef SvPV_force # define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC) #endif #ifndef SvPV_force_nolen # define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC) #endif #ifndef SvPV_force_mutable # define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC) #endif #ifndef SvPV_force_nomg # define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0) #endif #ifndef SvPV_force_nomg_nolen # define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0) #endif #ifndef SvPV_force_flags # define SvPV_force_flags(sv, lp, flags) \ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags)) #endif #ifndef SvPV_force_flags_nolen # define SvPV_force_flags_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags)) #endif #ifndef SvPV_force_flags_mutable # define SvPV_force_flags_mutable(sv, lp, flags) \ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \ : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif #ifndef SvPV_nolen # define SvPV_nolen(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) #endif #ifndef SvPV_nolen_const # define SvPV_nolen_const(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) #endif #ifndef SvPV_nomg # define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) #endif #ifndef SvPV_nomg_const # define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0) #endif #ifndef SvPV_nomg_const_nolen # define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) #endif #ifndef SvPV_renew # define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ SvPV_set((sv), (char *) saferealloc( \ (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ } STMT_END #endif #ifndef SvMAGIC_set # define SvMAGIC_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END #endif #if (PERL_BCDVERSION < 0x5009003) #ifndef SvPVX_const # define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) #endif #ifndef SvPVX_mutable # define SvPVX_mutable(sv) (0 + SvPVX(sv)) #endif #ifndef SvRV_set # define SvRV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END #endif #else #ifndef SvPVX_const # define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) #endif #ifndef SvPVX_mutable # define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) #endif #ifndef SvRV_set # define SvRV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ ((sv)->sv_u.svu_rv = (val)); } STMT_END #endif #endif #ifndef SvSTASH_set # define SvSTASH_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END #endif #if (PERL_BCDVERSION < 0x5004000) #ifndef SvUV_set # define SvUV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END #endif #else #ifndef SvUV_set # define SvUV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END #endif #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) #if defined(NEED_vnewSVpvf) static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); static #else extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); #endif #ifdef vnewSVpvf # undef vnewSVpvf #endif #define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) #define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) #if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) { register SV *sv = newSV(0); sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); return sv; } #endif #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf) # define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf) # define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); static #else extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif #define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { va_list args; va_start(args, pat); sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #ifdef PERL_IMPLICIT_CONTEXT #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) #if defined(NEED_sv_catpvf_mg_nocontext) static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); static #else extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif #define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) #define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) #if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) { dTHX; va_list args; va_start(args, pat); sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #endif /* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */ #ifndef sv_catpvf_mg # ifdef PERL_IMPLICIT_CONTEXT # define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext # else # define sv_catpvf_mg Perl_sv_catpvf_mg # endif #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg) # define sv_vcatpvf_mg(sv, pat, args) \ STMT_START { \ sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ SvSETMAGIC(sv); \ } STMT_END #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); static #else extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif #define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { va_list args; va_start(args, pat); sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #ifdef PERL_IMPLICIT_CONTEXT #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) #if defined(NEED_sv_setpvf_mg_nocontext) static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); static #else extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif #define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) #define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) #if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) { dTHX; va_list args; va_start(args, pat); sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #endif /* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */ #ifndef sv_setpvf_mg # ifdef PERL_IMPLICIT_CONTEXT # define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext # else # define sv_setpvf_mg Perl_sv_setpvf_mg # endif #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg) # define sv_vsetpvf_mg(sv, pat, args) \ STMT_START { \ sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ SvSETMAGIC(sv); \ } STMT_END #endif /* Hint: newSVpvn_share * The SVs created by this function only mimic the behaviour of * shared PVs without really being shared. Only use if you know * what you're doing. */ #ifndef newSVpvn_share #if defined(NEED_newSVpvn_share) static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); static #else extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); #endif #ifdef newSVpvn_share # undef newSVpvn_share #endif #define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) #define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) #if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) { SV *sv; if (len < 0) len = -len; if (!hash) PERL_HASH(hash, (char*) src, len); sv = newSVpvn((char *) src, len); sv_upgrade(sv, SVt_PVIV); SvIVX(sv) = hash; SvREADONLY_on(sv); SvPOK_on(sv); return sv; } #endif #endif #ifndef SvSHARED_HASH # define SvSHARED_HASH(sv) (0 + SvUVX(sv)) #endif #ifndef HvNAME_get # define HvNAME_get(hv) HvNAME(hv) #endif #ifndef HvNAMELEN_get # define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) #endif #ifndef GvSVn # define GvSVn(gv) GvSV(gv) #endif #ifndef isGV_with_GP # define isGV_with_GP(gv) isGV(gv) #endif #ifndef gv_fetchpvn_flags # define gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt) #endif #ifndef gv_fetchsv # define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt) #endif #ifndef get_cvn_flags # define get_cvn_flags(name, namelen, flags) get_cv(name, flags) #endif #ifndef WARN_ALL # define WARN_ALL 0 #endif #ifndef WARN_CLOSURE # define WARN_CLOSURE 1 #endif #ifndef WARN_DEPRECATED # define WARN_DEPRECATED 2 #endif #ifndef WARN_EXITING # define WARN_EXITING 3 #endif #ifndef WARN_GLOB # define WARN_GLOB 4 #endif #ifndef WARN_IO # define WARN_IO 5 #endif #ifndef WARN_CLOSED # define WARN_CLOSED 6 #endif #ifndef WARN_EXEC # define WARN_EXEC 7 #endif #ifndef WARN_LAYER # define WARN_LAYER 8 #endif #ifndef WARN_NEWLINE # define WARN_NEWLINE 9 #endif #ifndef WARN_PIPE # define WARN_PIPE 10 #endif #ifndef WARN_UNOPENED # define WARN_UNOPENED 11 #endif #ifndef WARN_MISC # define WARN_MISC 12 #endif #ifndef WARN_NUMERIC # define WARN_NUMERIC 13 #endif #ifndef WARN_ONCE # define WARN_ONCE 14 #endif #ifndef WARN_OVERFLOW # define WARN_OVERFLOW 15 #endif #ifndef WARN_PACK # define WARN_PACK 16 #endif #ifndef WARN_PORTABLE # define WARN_PORTABLE 17 #endif #ifndef WARN_RECURSION # define WARN_RECURSION 18 #endif #ifndef WARN_REDEFINE # define WARN_REDEFINE 19 #endif #ifndef WARN_REGEXP # define WARN_REGEXP 20 #endif #ifndef WARN_SEVERE # define WARN_SEVERE 21 #endif #ifndef WARN_DEBUGGING # define WARN_DEBUGGING 22 #endif #ifndef WARN_INPLACE # define WARN_INPLACE 23 #endif #ifndef WARN_INTERNAL # define WARN_INTERNAL 24 #endif #ifndef WARN_MALLOC # define WARN_MALLOC 25 #endif #ifndef WARN_SIGNAL # define WARN_SIGNAL 26 #endif #ifndef WARN_SUBSTR # define WARN_SUBSTR 27 #endif #ifndef WARN_SYNTAX # define WARN_SYNTAX 28 #endif #ifndef WARN_AMBIGUOUS # define WARN_AMBIGUOUS 29 #endif #ifndef WARN_BAREWORD # define WARN_BAREWORD 30 #endif #ifndef WARN_DIGIT # define WARN_DIGIT 31 #endif #ifndef WARN_PARENTHESIS # define WARN_PARENTHESIS 32 #endif #ifndef WARN_PRECEDENCE # define WARN_PRECEDENCE 33 #endif #ifndef WARN_PRINTF # define WARN_PRINTF 34 #endif #ifndef WARN_PROTOTYPE # define WARN_PROTOTYPE 35 #endif #ifndef WARN_QW # define WARN_QW 36 #endif #ifndef WARN_RESERVED # define WARN_RESERVED 37 #endif #ifndef WARN_SEMICOLON # define WARN_SEMICOLON 38 #endif #ifndef WARN_TAINT # define WARN_TAINT 39 #endif #ifndef WARN_THREADS # define WARN_THREADS 40 #endif #ifndef WARN_UNINITIALIZED # define WARN_UNINITIALIZED 41 #endif #ifndef WARN_UNPACK # define WARN_UNPACK 42 #endif #ifndef WARN_UNTIE # define WARN_UNTIE 43 #endif #ifndef WARN_UTF8 # define WARN_UTF8 44 #endif #ifndef WARN_VOID # define WARN_VOID 45 #endif #ifndef WARN_ASSERTIONS # define WARN_ASSERTIONS 46 #endif #ifndef packWARN # define packWARN(a) (a) #endif #ifndef ckWARN # ifdef G_WARN_ON # define ckWARN(a) (PL_dowarn & G_WARN_ON) # else # define ckWARN(a) PL_dowarn # endif #endif #if (PERL_BCDVERSION >= 0x5004000) && !defined(warner) #if defined(NEED_warner) static void DPPP_(my_warner)(U32 err, const char *pat, ...); static #else extern void DPPP_(my_warner)(U32 err, const char *pat, ...); #endif #define Perl_warner DPPP_(my_warner) #if defined(NEED_warner) || defined(NEED_warner_GLOBAL) void DPPP_(my_warner)(U32 err, const char *pat, ...) { SV *sv; va_list args; PERL_UNUSED_ARG(err); va_start(args, pat); sv = vnewSVpvf(pat, &args); va_end(args); sv_2mortal(sv); warn("%s", SvPV_nolen(sv)); } #define warner Perl_warner #define Perl_warner_nocontext Perl_warner #endif #endif /* concatenating with "" ensures that only literal strings are accepted as argument * note that STR_WITH_LEN() can't be used as argument to macros or functions that * under some configurations might be macros */ #ifndef STR_WITH_LEN # define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) #endif #ifndef newSVpvs # define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif #ifndef newSVpvs_flags # define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) #endif #ifndef newSVpvs_share # define newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0) #endif #ifndef sv_catpvs # define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif #ifndef sv_setpvs # define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) #endif #ifndef hv_fetchs # define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) #endif #ifndef hv_stores # define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) #endif #ifndef gv_fetchpvs # define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) #endif #ifndef gv_stashpvs # define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) #endif #ifndef get_cvs # define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags) #endif #ifndef SvGETMAGIC # define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif #ifndef PERL_MAGIC_sv # define PERL_MAGIC_sv '\0' #endif #ifndef PERL_MAGIC_overload # define PERL_MAGIC_overload 'A' #endif #ifndef PERL_MAGIC_overload_elem # define PERL_MAGIC_overload_elem 'a' #endif #ifndef PERL_MAGIC_overload_table # define PERL_MAGIC_overload_table 'c' #endif #ifndef PERL_MAGIC_bm # define PERL_MAGIC_bm 'B' #endif #ifndef PERL_MAGIC_regdata # define PERL_MAGIC_regdata 'D' #endif #ifndef PERL_MAGIC_regdatum # define PERL_MAGIC_regdatum 'd' #endif #ifndef PERL_MAGIC_env # define PERL_MAGIC_env 'E' #endif #ifndef PERL_MAGIC_envelem # define PERL_MAGIC_envelem 'e' #endif #ifndef PERL_MAGIC_fm # define PERL_MAGIC_fm 'f' #endif #ifndef PERL_MAGIC_regex_global # define PERL_MAGIC_regex_global 'g' #endif #ifndef PERL_MAGIC_isa # define PERL_MAGIC_isa 'I' #endif #ifndef PERL_MAGIC_isaelem # define PERL_MAGIC_isaelem 'i' #endif #ifndef PERL_MAGIC_nkeys # define PERL_MAGIC_nkeys 'k' #endif #ifndef PERL_MAGIC_dbfile # define PERL_MAGIC_dbfile 'L' #endif #ifndef PERL_MAGIC_dbline # define PERL_MAGIC_dbline 'l' #endif #ifndef PERL_MAGIC_mutex # define PERL_MAGIC_mutex 'm' #endif #ifndef PERL_MAGIC_shared # define PERL_MAGIC_shared 'N' #endif #ifndef PERL_MAGIC_shared_scalar # define PERL_MAGIC_shared_scalar 'n' #endif #ifndef PERL_MAGIC_collxfrm # define PERL_MAGIC_collxfrm 'o' #endif #ifndef PERL_MAGIC_tied # define PERL_MAGIC_tied 'P' #endif #ifndef PERL_MAGIC_tiedelem # define PERL_MAGIC_tiedelem 'p' #endif #ifndef PERL_MAGIC_tiedscalar # define PERL_MAGIC_tiedscalar 'q' #endif #ifndef PERL_MAGIC_qr # define PERL_MAGIC_qr 'r' #endif #ifndef PERL_MAGIC_sig # define PERL_MAGIC_sig 'S' #endif #ifndef PERL_MAGIC_sigelem # define PERL_MAGIC_sigelem 's' #endif #ifndef PERL_MAGIC_taint # define PERL_MAGIC_taint 't' #endif #ifndef PERL_MAGIC_uvar # define PERL_MAGIC_uvar 'U' #endif #ifndef PERL_MAGIC_uvar_elem # define PERL_MAGIC_uvar_elem 'u' #endif #ifndef PERL_MAGIC_vstring # define PERL_MAGIC_vstring 'V' #endif #ifndef PERL_MAGIC_vec # define PERL_MAGIC_vec 'v' #endif #ifndef PERL_MAGIC_utf8 # define PERL_MAGIC_utf8 'w' #endif #ifndef PERL_MAGIC_substr # define PERL_MAGIC_substr 'x' #endif #ifndef PERL_MAGIC_defelem # define PERL_MAGIC_defelem 'y' #endif #ifndef PERL_MAGIC_glob # define PERL_MAGIC_glob '*' #endif #ifndef PERL_MAGIC_arylen # define PERL_MAGIC_arylen '#' #endif #ifndef PERL_MAGIC_pos # define PERL_MAGIC_pos '.' #endif #ifndef PERL_MAGIC_backref # define PERL_MAGIC_backref '<' #endif #ifndef PERL_MAGIC_ext # define PERL_MAGIC_ext '~' #endif /* That's the best we can do... */ #ifndef sv_catpvn_nomg # define sv_catpvn_nomg sv_catpvn #endif #ifndef sv_catsv_nomg # define sv_catsv_nomg sv_catsv #endif #ifndef sv_setsv_nomg # define sv_setsv_nomg sv_setsv #endif #ifndef sv_pvn_nomg # define sv_pvn_nomg sv_pvn #endif #ifndef SvIV_nomg # define SvIV_nomg SvIV #endif #ifndef SvUV_nomg # define SvUV_nomg SvUV #endif #ifndef sv_catpv_mg # define sv_catpv_mg(sv, ptr) \ STMT_START { \ SV *TeMpSv = sv; \ sv_catpv(TeMpSv,ptr); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_catpvn_mg # define sv_catpvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_catpvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_catsv_mg # define sv_catsv_mg(dsv, ssv) \ STMT_START { \ SV *TeMpSv = dsv; \ sv_catsv(TeMpSv,ssv); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setiv_mg # define sv_setiv_mg(sv, i) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setiv(TeMpSv,i); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setnv_mg # define sv_setnv_mg(sv, num) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setnv(TeMpSv,num); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setpv_mg # define sv_setpv_mg(sv, ptr) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setpv(TeMpSv,ptr); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setpvn_mg # define sv_setpvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setpvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setsv_mg # define sv_setsv_mg(dsv, ssv) \ STMT_START { \ SV *TeMpSv = dsv; \ sv_setsv(TeMpSv,ssv); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setuv_mg # define sv_setuv_mg(sv, i) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setuv(TeMpSv,i); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_usepvn_mg # define sv_usepvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_usepvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef SvVSTRING_mg # define SvVSTRING_mg(sv) (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL) #endif /* Hint: sv_magic_portable * This is a compatibility function that is only available with * Devel::PPPort. It is NOT in the perl core. * Its purpose is to mimic the 5.8.0 behaviour of sv_magic() when * it is being passed a name pointer with namlen == 0. In that * case, perl 5.8.0 and later store the pointer, not a copy of it. * The compatibility can be provided back to perl 5.004. With * earlier versions, the code will not compile. */ #if (PERL_BCDVERSION < 0x5004000) /* code that uses sv_magic_portable will not compile */ #elif (PERL_BCDVERSION < 0x5008000) # define sv_magic_portable(sv, obj, how, name, namlen) \ STMT_START { \ SV *SvMp_sv = (sv); \ char *SvMp_name = (char *) (name); \ I32 SvMp_namlen = (namlen); \ if (SvMp_name && SvMp_namlen == 0) \ { \ MAGIC *mg; \ sv_magic(SvMp_sv, obj, how, 0, 0); \ mg = SvMAGIC(SvMp_sv); \ mg->mg_len = -42; /* XXX: this is the tricky part */ \ mg->mg_ptr = SvMp_name; \ } \ else \ { \ sv_magic(SvMp_sv, obj, how, SvMp_name, SvMp_namlen); \ } \ } STMT_END #else # define sv_magic_portable(a, b, c, d, e) sv_magic(a, b, c, d, e) #endif #ifdef USE_ITHREADS #ifndef CopFILE # define CopFILE(c) ((c)->cop_file) #endif #ifndef CopFILEGV # define CopFILEGV(c) (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv) #endif #ifndef CopFILE_set # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) #endif #ifndef CopFILESV # define CopFILESV(c) (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) #endif #ifndef CopFILEAV # define CopFILEAV(c) (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) #endif #ifndef CopSTASHPV # define CopSTASHPV(c) ((c)->cop_stashpv) #endif #ifndef CopSTASHPV_set # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) #endif #ifndef CopSTASH # define CopSTASH(c) (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) #endif #ifndef CopSTASH_set # define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch) #endif #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) #endif #else #ifndef CopFILEGV # define CopFILEGV(c) ((c)->cop_filegv) #endif #ifndef CopFILEGV_set # define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv)) #endif #ifndef CopFILE_set # define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv)) #endif #ifndef CopFILESV # define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv) #endif #ifndef CopFILEAV # define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav) #endif #ifndef CopFILE # define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch) #endif #ifndef CopSTASH # define CopSTASH(c) ((c)->cop_stash) #endif #ifndef CopSTASH_set # define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) #endif #ifndef CopSTASHPV # define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) #endif #ifndef CopSTASHPV_set # define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) #endif #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) #endif #endif /* USE_ITHREADS */ #ifndef IN_PERL_COMPILETIME # define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #endif #ifndef IN_LOCALE_RUNTIME # define IN_LOCALE_RUNTIME (PL_curcop->op_private & HINT_LOCALE) #endif #ifndef IN_LOCALE_COMPILETIME # define IN_LOCALE_COMPILETIME (PL_hints & HINT_LOCALE) #endif #ifndef IN_LOCALE # define IN_LOCALE (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME) #endif #ifndef IS_NUMBER_IN_UV # define IS_NUMBER_IN_UV 0x01 #endif #ifndef IS_NUMBER_GREATER_THAN_UV_MAX # define IS_NUMBER_GREATER_THAN_UV_MAX 0x02 #endif #ifndef IS_NUMBER_NOT_INT # define IS_NUMBER_NOT_INT 0x04 #endif #ifndef IS_NUMBER_NEG # define IS_NUMBER_NEG 0x08 #endif #ifndef IS_NUMBER_INFINITY # define IS_NUMBER_INFINITY 0x10 #endif #ifndef IS_NUMBER_NAN # define IS_NUMBER_NAN 0x20 #endif #ifndef GROK_NUMERIC_RADIX # define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send) #endif #ifndef PERL_SCAN_GREATER_THAN_UV_MAX # define PERL_SCAN_GREATER_THAN_UV_MAX 0x02 #endif #ifndef PERL_SCAN_SILENT_ILLDIGIT # define PERL_SCAN_SILENT_ILLDIGIT 0x04 #endif #ifndef PERL_SCAN_ALLOW_UNDERSCORES # define PERL_SCAN_ALLOW_UNDERSCORES 0x01 #endif #ifndef PERL_SCAN_DISALLOW_PREFIX # define PERL_SCAN_DISALLOW_PREFIX 0x02 #endif #ifndef grok_numeric_radix #if defined(NEED_grok_numeric_radix) static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); static #else extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); #endif #ifdef grok_numeric_radix # undef grok_numeric_radix #endif #define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b) #define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix) #if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) bool DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send) { #ifdef USE_LOCALE_NUMERIC #ifdef PL_numeric_radix_sv if (PL_numeric_radix_sv && IN_LOCALE) { STRLEN len; char* radix = SvPV(PL_numeric_radix_sv, len); if (*sp + len <= send && memEQ(*sp, radix, len)) { *sp += len; return TRUE; } } #else /* older perls don't have PL_numeric_radix_sv so the radix * must manually be requested from locale.h */ #include <locale.h> dTHR; /* needed for older threaded perls */ struct lconv *lc = localeconv(); char *radix = lc->decimal_point; if (radix && IN_LOCALE) { STRLEN len = strlen(radix); if (*sp + len <= send && memEQ(*sp, radix, len)) { *sp += len; return TRUE; } } #endif #endif /* USE_LOCALE_NUMERIC */ /* always try "." if numeric radix didn't match because * we may have data from different locales mixed */ if (*sp < send && **sp == '.') { ++*sp; return TRUE; } return FALSE; } #endif #endif #ifndef grok_number #if defined(NEED_grok_number) static int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); static #else extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); #endif #ifdef grok_number # undef grok_number #endif #define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c) #define Perl_grok_number DPPP_(my_grok_number) #if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) int DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) { const char *s = pv; const char *send = pv + len; const UV max_div_10 = UV_MAX / 10; const char max_mod_10 = UV_MAX % 10; int numtype = 0; int sawinf = 0; int sawnan = 0; while (s < send && isSPACE(*s)) s++; if (s == send) { return 0; } else if (*s == '-') { s++; numtype = IS_NUMBER_NEG; } else if (*s == '+') s++; if (s == send) return 0; /* next must be digit or the radix separator or beginning of infinity */ if (isDIGIT(*s)) { /* UVs are at least 32 bits, so the first 9 decimal digits cannot overflow. */ UV value = *s - '0'; /* This construction seems to be more optimiser friendly. (without it gcc does the isDIGIT test and the *s - '0' separately) With it gcc on arm is managing 6 instructions (6 cycles) per digit. In theory the optimiser could deduce how far to unroll the loop before checking for overflow. */ if (++s < send) { int digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { /* Now got 9 digits, so need to check each time for overflow. */ digit = *s - '0'; while (digit >= 0 && digit <= 9 && (value < max_div_10 || (value == max_div_10 && digit <= max_mod_10))) { value = value * 10 + digit; if (++s < send) digit = *s - '0'; else break; } if (digit >= 0 && digit <= 9 && (s < send)) { /* value overflowed. skip the remaining digits, don't worry about setting *valuep. */ do { s++; } while (s < send && isDIGIT(*s)); numtype |= IS_NUMBER_GREATER_THAN_UV_MAX; goto skip_value; } } } } } } } } } } } } } } } } } } numtype |= IS_NUMBER_IN_UV; if (valuep) *valuep = value; skip_value: if (GROK_NUMERIC_RADIX(&s, send)) { numtype |= IS_NUMBER_NOT_INT; while (s < send && isDIGIT(*s)) /* optional digits after the radix */ s++; } } else if (GROK_NUMERIC_RADIX(&s, send)) { numtype |= IS_NUMBER_NOT_INT | IS_NUMBER_IN_UV; /* valuep assigned below */ /* no digits before the radix means we need digits after it */ if (s < send && isDIGIT(*s)) { do { s++; } while (s < send && isDIGIT(*s)); if (valuep) { /* integer approximation is valid - it's 0. */ *valuep = 0; } } else return 0; } else if (*s == 'I' || *s == 'i') { s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; if (s == send || (*s != 'F' && *s != 'f')) return 0; s++; if (s < send && (*s == 'I' || *s == 'i')) { s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; if (s == send || (*s != 'I' && *s != 'i')) return 0; s++; if (s == send || (*s != 'T' && *s != 't')) return 0; s++; if (s == send || (*s != 'Y' && *s != 'y')) return 0; s++; } sawinf = 1; } else if (*s == 'N' || *s == 'n') { /* XXX TODO: There are signaling NaNs and quiet NaNs. */ s++; if (s == send || (*s != 'A' && *s != 'a')) return 0; s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; sawnan = 1; } else return 0; if (sawinf) { numtype &= IS_NUMBER_NEG; /* Keep track of sign */ numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT; } else if (sawnan) { numtype &= IS_NUMBER_NEG; /* Keep track of sign */ numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT; } else if (s < send) { /* we can have an optional exponent part */ if (*s == 'e' || *s == 'E') { /* The only flag we keep is sign. Blow away any "it's UV" */ numtype &= IS_NUMBER_NEG; numtype |= IS_NUMBER_NOT_INT; s++; if (s < send && (*s == '-' || *s == '+')) s++; if (s < send && isDIGIT(*s)) { do { s++; } while (s < send && isDIGIT(*s)); } else return 0; } } while (s < send && isSPACE(*s)) s++; if (s >= send) return numtype; if (len == 10 && memEQ(pv, "0 but true", 10)) { if (valuep) *valuep = 0; return IS_NUMBER_IN_UV; } return 0; } #endif #endif /* * The grok_* routines have been modified to use warn() instead of * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit, * which is why the stack variable has been renamed to 'xdigit'. */ #ifndef grok_bin #if defined(NEED_grok_bin) static UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); static #else extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif #ifdef grok_bin # undef grok_bin #endif #define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d) #define Perl_grok_bin DPPP_(my_grok_bin) #if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) UV DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_2 = UV_MAX / 2; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) { /* strip off leading b or 0b. for compatibility silently suffer "b" and "0b" as valid binary numbers. */ if (len >= 1) { if (s[0] == 'b') { s++; len--; } else if (len >= 2 && s[0] == '0' && s[1] == 'b') { s+=2; len-=2; } } } for (; len-- && *s; s++) { char bit = *s; if (bit == '0' || bit == '1') { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. With gcc seems to be much straighter code than old scan_bin. */ redo: if (!overflowed) { if (value <= max_div_2) { value = (value << 1) | (bit - '0'); continue; } /* Bah. We're just overflowed. */ warn("Integer overflow in binary number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 2.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount. */ value_nv += (NV)(bit - '0'); continue; } if (bit == '_' && len && allow_underscores && (bit = s[1]) && (bit == '0' || bit == '1')) { --len; ++s; goto redo; } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal binary digit '%c' ignored", *s); break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Binary number > 0b11111111111111111111111111111111 non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #ifndef grok_hex #if defined(NEED_grok_hex) static UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); static #else extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif #ifdef grok_hex # undef grok_hex #endif #define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d) #define Perl_grok_hex DPPP_(my_grok_hex) #if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) UV DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_16 = UV_MAX / 16; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; const char *xdigit; if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) { /* strip off leading x or 0x. for compatibility silently suffer "x" and "0x" as valid hex numbers. */ if (len >= 1) { if (s[0] == 'x') { s++; len--; } else if (len >= 2 && s[0] == '0' && s[1] == 'x') { s+=2; len-=2; } } } for (; len-- && *s; s++) { xdigit = strchr((char *) PL_hexdigit, *s); if (xdigit) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. With gcc seems to be much straighter code than old scan_hex. */ redo: if (!overflowed) { if (value <= max_div_16) { value = (value << 4) | ((xdigit - PL_hexdigit) & 15); continue; } warn("Integer overflow in hexadecimal number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 16.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount of 16-tuples. */ value_nv += (NV)((xdigit - PL_hexdigit) & 15); continue; } if (*s == '_' && len && allow_underscores && s[1] && (xdigit = strchr((char *) PL_hexdigit, s[1]))) { --len; ++s; goto redo; } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal hexadecimal digit '%c' ignored", *s); break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Hexadecimal number > 0xffffffff non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #ifndef grok_oct #if defined(NEED_grok_oct) static UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); static #else extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif #ifdef grok_oct # undef grok_oct #endif #define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d) #define Perl_grok_oct DPPP_(my_grok_oct) #if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) UV DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_8 = UV_MAX / 8; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; for (; len-- && *s; s++) { /* gcc 2.95 optimiser not smart enough to figure that this subtraction out front allows slicker code. */ int digit = *s - '0'; if (digit >= 0 && digit <= 7) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. */ redo: if (!overflowed) { if (value <= max_div_8) { value = (value << 3) | digit; continue; } /* Bah. We're just overflowed. */ warn("Integer overflow in octal number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 8.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount of 8-tuples. */ value_nv += (NV)digit; continue; } if (digit == ('_' - '0') && len && allow_underscores && (digit = s[1] - '0') && (digit >= 0 && digit <= 7)) { --len; ++s; goto redo; } /* Allow \octal to work the DWIM way (that is, stop scanning * as soon as non-octal characters are seen, complain only iff * someone seems to want to use the digits eight and nine). */ if (digit == 8 || digit == 9) { if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal octal digit '%c' ignored", *s); } break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Octal number > 037777777777 non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #if !defined(my_snprintf) #if defined(NEED_my_snprintf) static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); static #else extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); #endif #define my_snprintf DPPP_(my_my_snprintf) #define Perl_my_snprintf DPPP_(my_my_snprintf) #if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) int DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) { dTHX; int retval; va_list ap; va_start(ap, format); #ifdef HAS_VSNPRINTF retval = vsnprintf(buffer, len, format, ap); #else retval = vsprintf(buffer, format, ap); #endif va_end(ap); if (retval < 0 || (len > 0 && (Size_t)retval >= len)) Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); return retval; } #endif #endif #if !defined(my_sprintf) #if defined(NEED_my_sprintf) static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); static #else extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); #endif #define my_sprintf DPPP_(my_my_sprintf) #define Perl_my_sprintf DPPP_(my_my_sprintf) #if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) int DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) { va_list args; va_start(args, pat); vsprintf(buffer, pat, args); va_end(args); return strlen(buffer); } #endif #endif #ifdef NO_XSLOCKS # ifdef dJMPENV # define dXCPT dJMPENV; int rEtV = 0 # define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) # define XCPT_TRY_END JMPENV_POP; # define XCPT_CATCH if (rEtV != 0) # define XCPT_RETHROW JMPENV_JUMP(rEtV) # else # define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 # define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) # define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); # define XCPT_CATCH if (rEtV != 0) # define XCPT_RETHROW Siglongjmp(top_env, rEtV) # endif #endif #if !defined(my_strlcat) #if defined(NEED_my_strlcat) static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); static #else extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); #endif #define my_strlcat DPPP_(my_my_strlcat) #define Perl_my_strlcat DPPP_(my_my_strlcat) #if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) Size_t DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) { Size_t used, length, copy; used = strlen(dst); length = strlen(src); if (size > 0 && used < size - 1) { copy = (length >= size - used) ? size - used - 1 : length; memcpy(dst + used, src, copy); dst[used + copy] = '\0'; } return used + length; } #endif #endif #if !defined(my_strlcpy) #if defined(NEED_my_strlcpy) static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); static #else extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); #endif #define my_strlcpy DPPP_(my_my_strlcpy) #define Perl_my_strlcpy DPPP_(my_my_strlcpy) #if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) Size_t DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) { Size_t length, copy; length = strlen(src); if (size > 0) { copy = (length >= size) ? size - 1 : length; memcpy(dst, src, copy); dst[copy] = '\0'; } return length; } #endif #endif #ifndef PERL_PV_ESCAPE_QUOTE # define PERL_PV_ESCAPE_QUOTE 0x0001 #endif #ifndef PERL_PV_PRETTY_QUOTE # define PERL_PV_PRETTY_QUOTE PERL_PV_ESCAPE_QUOTE #endif #ifndef PERL_PV_PRETTY_ELLIPSES # define PERL_PV_PRETTY_ELLIPSES 0x0002 #endif #ifndef PERL_PV_PRETTY_LTGT # define PERL_PV_PRETTY_LTGT 0x0004 #endif #ifndef PERL_PV_ESCAPE_FIRSTCHAR # define PERL_PV_ESCAPE_FIRSTCHAR 0x0008 #endif #ifndef PERL_PV_ESCAPE_UNI # define PERL_PV_ESCAPE_UNI 0x0100 #endif #ifndef PERL_PV_ESCAPE_UNI_DETECT # define PERL_PV_ESCAPE_UNI_DETECT 0x0200 #endif #ifndef PERL_PV_ESCAPE_ALL # define PERL_PV_ESCAPE_ALL 0x1000 #endif #ifndef PERL_PV_ESCAPE_NOBACKSLASH # define PERL_PV_ESCAPE_NOBACKSLASH 0x2000 #endif #ifndef PERL_PV_ESCAPE_NOCLEAR # define PERL_PV_ESCAPE_NOCLEAR 0x4000 #endif #ifndef PERL_PV_ESCAPE_RE # define PERL_PV_ESCAPE_RE 0x8000 #endif #ifndef PERL_PV_PRETTY_NOCLEAR # define PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR #endif #ifndef PERL_PV_PRETTY_DUMP # define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE #endif #ifndef PERL_PV_PRETTY_REGPROP # define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE #endif /* Hint: pv_escape * Note that unicode functionality is only backported to * those perl versions that support it. For older perl * versions, the implementation will fall back to bytes. */ #ifndef pv_escape #if defined(NEED_pv_escape) static char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); static #else extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); #endif #ifdef pv_escape # undef pv_escape #endif #define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f) #define Perl_pv_escape DPPP_(my_pv_escape) #if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) char * DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags) { const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\'; const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc; char octbuf[32] = "%123456789ABCDF"; STRLEN wrote = 0; STRLEN chsize = 0; STRLEN readsize = 1; #if defined(is_utf8_string) && defined(utf8_to_uvchr) bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0; #endif const char *pv = str; const char * const end = pv + count; octbuf[0] = esc; if (!(flags & PERL_PV_ESCAPE_NOCLEAR)) sv_setpvs(dsv, ""); #if defined(is_utf8_string) && defined(utf8_to_uvchr) if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count)) isuni = 1; #endif for (; pv < end && (!max || wrote < max) ; pv += readsize) { const UV u = #if defined(is_utf8_string) && defined(utf8_to_uvchr) isuni ? utf8_to_uvchr((U8*)pv, &readsize) : #endif (U8)*pv; const U8 c = (U8)u & 0xFF; if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) { if (flags & PERL_PV_ESCAPE_FIRSTCHAR) chsize = my_snprintf(octbuf, sizeof octbuf, "%"UVxf, u); else chsize = my_snprintf(octbuf, sizeof octbuf, "%cx{%"UVxf"}", esc, u); } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) { chsize = 1; } else { if (c == dq || c == esc || !isPRINT(c)) { chsize = 2; switch (c) { case '\\' : /* fallthrough */ case '%' : if (c == esc) octbuf[1] = esc; else chsize = 1; break; case '\v' : octbuf[1] = 'v'; break; case '\t' : octbuf[1] = 't'; break; case '\r' : octbuf[1] = 'r'; break; case '\n' : octbuf[1] = 'n'; break; case '\f' : octbuf[1] = 'f'; break; case '"' : if (dq == '"') octbuf[1] = '"'; else chsize = 1; break; default: chsize = my_snprintf(octbuf, sizeof octbuf, pv < end && isDIGIT((U8)*(pv+readsize)) ? "%c%03o" : "%c%o", esc, c); } } else { chsize = 1; } } if (max && wrote + chsize > max) { break; } else if (chsize > 1) { sv_catpvn(dsv, octbuf, chsize); wrote += chsize; } else { char tmp[2]; my_snprintf(tmp, sizeof tmp, "%c", c); sv_catpvn(dsv, tmp, 1); wrote++; } if (flags & PERL_PV_ESCAPE_FIRSTCHAR) break; } if (escaped != NULL) *escaped= pv - str; return SvPVX(dsv); } #endif #endif #ifndef pv_pretty #if defined(NEED_pv_pretty) static char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); static #else extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); #endif #ifdef pv_pretty # undef pv_pretty #endif #define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g) #define Perl_pv_pretty DPPP_(my_pv_pretty) #if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) char * DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags) { const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%'; STRLEN escaped; if (!(flags & PERL_PV_PRETTY_NOCLEAR)) sv_setpvs(dsv, ""); if (dq == '"') sv_catpvs(dsv, "\""); else if (flags & PERL_PV_PRETTY_LTGT) sv_catpvs(dsv, "<"); if (start_color != NULL) sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color)); pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR); if (end_color != NULL) sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color)); if (dq == '"') sv_catpvs(dsv, "\""); else if (flags & PERL_PV_PRETTY_LTGT) sv_catpvs(dsv, ">"); if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count) sv_catpvs(dsv, "..."); return SvPVX(dsv); } #endif #endif #ifndef pv_display #if defined(NEED_pv_display) static char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); static #else extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); #endif #ifdef pv_display # undef pv_display #endif #define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e) #define Perl_pv_display DPPP_(my_pv_display) #if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) char * DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) { pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP); if (len > cur && pv[cur] == '\0') sv_catpvs(dsv, "\\0"); return SvPVX(dsv); } #endif #endif #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDL.xs��������������������������������������������������������������������������������000444��000765��000024�� 13736�11760240073� 14224� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* */ /* SDL.xs */ /* */ /* Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* This library is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public */ /* License as published by the Free Software Foundation; either */ /* version 2.1 of the License, or (at your option) any later version. */ /* */ /* This library is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public */ /* License along with this library; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* Please feel free to send questions, suggestions or improvements to: */ /* */ /* David J. Goehrig */ /* dgoehrig@cpan.org */ /* */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_GL #include <gl.h> #endif #ifdef HAVE_GLU #include <glu.h> #endif #ifdef USE_THREADS #define HAVE_TLS_CONTEXT #endif /* For windows */ #ifndef SDL_PERL_DEFINES_H #define SDL_PERL_DEFINES_H #ifdef HAVE_TLS_CONTEXT PerlInterpreter *parent_perl = NULL; extern PerlInterpreter *parent_perl; #define GET_TLS_CONTEXT parent_perl = PERL_GET_CONTEXT; #define ENTER_TLS_CONTEXT \ PerlInterpreter *current_perl = PERL_GET_CONTEXT; \ PERL_SET_CONTEXT(parent_perl); { \ PerlInterpreter *my_perl = parent_perl; #define LEAVE_TLS_CONTEXT \ } PERL_SET_CONTEXT(current_perl); #else #define GET_TLS_CONTEXT /* TLS context not enabled */ #define ENTER_TLS_CONTEXT /* TLS context not enabled */ #define LEAVE_TLS_CONTEXT /* TLS context not enabled */ #endif #endif #if defined WINDOWS || defined WIN32 #include <SDL_syswm.h> #include<windows.h> extern int SDL_RegisterApp (char*, Uint32, void*); HWND get_handle_win32( ) { SDL_SysWMinfo SysInfo; //Will hold our Window information SDL_VERSION(&SysInfo.version); //Set SDL version if(SDL_GetWMInfo(&SysInfo) <= 0) { printf("%s : %d\n", SDL_GetError(), SysInfo.window); return NULL; } return SysInfo.window; //There it is, Win32 handle } #endif #ifndef NOSIGCATCH #include <execinfo.h> #include <signal.h> #include <stdlib.h> void handler(int sig) { void *array[10]; size_t size; /*get void*'s for all entries on the stack */ size = backtrace(array, 10); /* print out all the frames to stderr */ fprintf(stderr, "Error: signal %d:\n", sig); backtrace_symbols_fd(array, size, 2); exit(1); } #endif void windows_force_driver() { char *test; #if SDL_MAJOR_VERSION >= 1 && SDL_MINOR_VERSION >= 2 && SDL_PATCHLEVEL >= 9 test = SDL_getenv("SDL_VIDEODRIVER"); #else test = getenv("SDL_VIDEODRIVER"); #endif if(!test || 0 != strcmp("dummy", test)) { #if SDL_MAJOR_VERSION >= 1 && SDL_MINOR_VERSION >= 2 && SDL_PATCHLEVEL >= 14 putenv("SDL_VIDEODRIVER=directx"); #else putenv("SDL_VIDEODRIVER=windib"); #endif } } #define INIT_NS_APPLICATION #define QUIT_NS_APPLICATION void sdl_perl_atexit (void) { QUIT_NS_APPLICATION SDL_Quit(); } void boot_SDL(); void boot_SDL__OpenGL(); XS(boot_SDL_perl) { #ifndef NOSIGCATCH signal(SIGSEGV, handler); #endif PL_perl_destruct_level = 2; GET_TLS_CONTEXT boot_SDL(); #if defined WINDOWS || defined WIN32 SDL_RegisterApp ("SDLPerl App", 0, GetModuleHandle (NULL)); #endif } MODULE = SDL_perl PACKAGE = SDL PROTOTYPES : DISABLE # workaround as: # extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...); void set_error_real (fmt, ...) char *fmt CODE: SDL_SetError(fmt, items); char * get_error () CODE: RETVAL = SDL_GetError(); OUTPUT: RETVAL void clear_error () CODE: SDL_ClearError(); int init ( flags ) Uint32 flags CODE: INIT_NS_APPLICATION #if defined WINDOWS || defined WIN32 windows_force_driver(); #endif RETVAL = SDL_Init(flags); #ifndef WINDOWS #ifndef WIN32 #ifdef HAVE_TLS_CONTEXT call_atexit((void*)sdl_perl_atexit,0); #else atexit(sdl_perl_atexit); #endif #endif #endif OUTPUT: RETVAL int init_sub_system ( flags ) Uint32 flags CODE: RETVAL = SDL_InitSubSystem(flags); OUTPUT: RETVAL void quit_sub_system ( flags ) Uint32 flags CODE: SDL_QuitSubSystem(flags); void quit () CODE: QUIT_NS_APPLICATION SDL_Quit(); int was_init ( flags ) Uint32 flags CODE: RETVAL = SDL_WasInit(flags); OUTPUT: RETVAL SDL_version * version () PREINIT: char * CLASS = "SDL::Version"; SDL_version *version; CODE: version = (SDL_version *) safemalloc (sizeof(SDL_version)); SDL_VERSION(version); RETVAL = version; OUTPUT: RETVAL SDL_version * linked_version () PREINIT: char * CLASS = "SDL::Version"; SDL_version *version; CODE: version = (SDL_version *) safemalloc ( sizeof(SDL_version) ); SDL_version* version_dont_free = (SDL_version *) SDL_Linked_Version(); version->major = version_dont_free->major; version->minor = version_dont_free->minor; version->patch = version_dont_free->patch; RETVAL = version; OUTPUT: RETVAL char* getenv (name) char *name CODE: char *test; /* SDL version 1.2.9 doesn't have SDL_getenv */ #if SDL_MAJOR_VERSION >= 1 && SDL_MINOR_VERSION >= 2 && SDL_PATCHLEVEL >= 9 test = SDL_getenv(name); #else test = getenv(name); #endif RETVAL = test; OUTPUT: RETVAL void delay ( ms ) int ms CODE: SDL_Delay(ms); Uint32 get_ticks () CODE: RETVAL = SDL_GetTicks(); OUTPUT: RETVAL IV get_handle () CODE: #if defined WINDOWS || defined WIN32 RETVAL = (IV)get_handle_win32(); #else RETVAL = 0; #endif OUTPUT: RETVAL MODULE = SDL PACKAGE = SDL PROTOTYPES : DISABLE ����������������������������������SDL-2.540/src/SMPEG.xs������������������������������������������������������������������������������000444��000765��000024�� 6351�11760240072� 14427� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> void smpeg_display_callback (SDL_Surface* s , int a, int b, unsigned int c, unsigned int d) { } #endif MODULE = SDL::SMPEG PACKAGE = SDL::SMPEG PROTOTYPES : DISABLE #ifdef HAVE_SMPEG char * SMPEGError ( mpeg ) SMPEG* mpeg CODE: RETVAL = SMPEG_error(mpeg); OUTPUT: RETVAL SMPEG* NewSMPEG ( filename, info, use_audio ) char* filename SMPEG_Info* info int use_audio PREINIT: char* CLASS = "SDL::SMPEG"; CODE: #ifdef HAVE_SDL_MIXER RETVAL = SMPEG_new(filename,info,0); #else RETVAL = SMPEG_new(filename,info,use_audio); #endif OUTPUT: RETVAL void FreeSMPEG ( mpeg ) SV* mpeg CODE: objDESTROY(mpeg, (void (*)(void *))SMPEG_delete); void SMPEGEnableAudio ( mpeg , flag ) SMPEG* mpeg int flag CODE: SMPEG_enableaudio(mpeg,flag); /*#ifdef HAVE_SDL_MIXER */ /* sdl_perl_use_smpeg_audio = flag; */ /*#endif */ void SMPEGEnableVideo ( mpeg , flag ) SMPEG* mpeg int flag CODE: SMPEG_enablevideo(mpeg,flag); void SMPEGSetVolume ( mpeg , volume ) SMPEG* mpeg int volume CODE: SMPEG_setvolume(mpeg,volume); void SMPEGSetDisplay ( mpeg, dest, callback ) SMPEG* mpeg SDL_Surface* dest SV* callback CODE: SMPEG_setdisplay(mpeg,dest,NULL,(void*)&smpeg_display_callback); void SMPEGScaleXY ( mpeg, w, h) SMPEG* mpeg int w int h CODE: SMPEG_scaleXY(mpeg,w,h); void SMPEGScale ( mpeg, scale ) SMPEG* mpeg int scale CODE: SMPEG_scale(mpeg,scale); void SMPEGPlay ( mpeg ) SMPEG* mpeg CODE: SDL_AudioSpec audiofmt; Uint16 format; int freq, channels; /*#ifdef HAVE_SDL_MIXER */ /* if (sdl_perl_use_smpeg_audio ) { */ /* SMPEG_enableaudio(mpeg, 0); */ /* Mix_QuerySpec(&freq, &format, &channels); */ /* audiofmt.format = format; */ /* audiofmt.freq = freq; */ /* audiofmt.channels = channels; */ /* SMPEG_actualSpec(mpeg, &audiofmt); */ /* Mix_HookMusic(SMPEG_playAudioSDL, mpeg); */ /* SMPEG_enableaudio(mpeg, 1); */ /* } */ /*#endif */ SMPEG_play(mpeg); SMPEGstatus SMPEGStatus ( mpeg ) SMPEG* mpeg CODE: RETVAL = SMPEG_status(mpeg); OUTPUT: RETVAL void SMPEGPause ( mpeg ) SMPEG* mpeg CODE: SMPEG_pause(mpeg); void SMPEGLoop ( mpeg, repeat ) SMPEG* mpeg int repeat CODE: SMPEG_loop(mpeg,repeat); void SMPEGStop ( mpeg ) SMPEG* mpeg CODE: SMPEG_stop(mpeg); /*#ifdef HAVE_SDL_MIXER */ /* Mix_HookMusic(NULL, NULL); */ /*#endif */ void SMPEGRewind ( mpeg ) SMPEG* mpeg CODE: SMPEG_rewind(mpeg); void SMPEGSeek ( mpeg, bytes ) SMPEG* mpeg int bytes CODE: SMPEG_seek(mpeg,bytes); void SMPEGSkip ( mpeg, seconds ) SMPEG* mpeg float seconds CODE: SMPEG_skip(mpeg,seconds); void SMPEGSetDisplayRegion ( mpeg, rect ) SMPEG* mpeg SDL_Rect* rect CODE: SMPEG_setdisplayregion(mpeg,rect->x,rect->y,rect->w,rect->h); void SMPEGRenderFrame ( mpeg, frame ) SMPEG* mpeg int frame CODE: SMPEG_renderFrame(mpeg,frame); SMPEG_Info * SMPEGGetInfo ( mpeg ) SMPEG* mpeg PREINIT: char* CLASS = "SDL::SMPEG::Info"; CODE: RETVAL = (SMPEG_Info *) safemalloc (sizeof(SMPEG_Info)); SMPEG_getinfo(mpeg,RETVAL); OUTPUT: RETVAL #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13727� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/Audio.xs�������������������������������������������������������������������������000444��000765��000024�� 3441�11760240072� 15502� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Audio PACKAGE = SDL::Audio PREFIX = audio_ int audio_open ( desired, obtained ) SDL_AudioSpec *desired SDL_AudioSpec *obtained CODE: RETVAL = SDL_OpenAudio(desired, obtained); OUTPUT: RETVAL void audio_pause ( pause_on ) int pause_on CODE: SDL_PauseAudio(pause_on); Uint32 audio_get_status () CODE: RETVAL = SDL_GetAudioStatus (); OUTPUT: RETVAL void audio_lock () CODE: SDL_LockAudio(); void audio_unlock () CODE: SDL_UnlockAudio(); AV * audio_load_wav ( filename, spec ) char *filename SDL_AudioSpec *spec CODE: SDL_AudioSpec *temp = safemalloc(sizeof(SDL_AudioSpec)); Uint8 *buf; Uint32 len; memcpy( temp, spec, sizeof(SDL_AudioSpec) ); temp = SDL_LoadWAV(filename,temp,&buf,&len); if ( temp == NULL ) { croak("Error in SDL_LoadWAV: %s", SDL_GetError()); } else { RETVAL = (AV*)sv_2mortal((SV*)newAV()); av_push(RETVAL, obj2bag( sizeof(SDL_AudioSpec *), (void *)temp, "SDL::AudioSpec" )); av_push(RETVAL, newSViv(PTR2IV(buf))); av_push(RETVAL, newSViv(len)); } OUTPUT: RETVAL void audio_free_wav ( audio_buf ) Uint8 *audio_buf CODE: SDL_FreeWAV(audio_buf); int audio_convert( cvt, data, len ) SDL_AudioCVT *cvt Uint8 *data int len CODE: cvt->buf = (Uint8 *)safemalloc(len * cvt->len_mult); cvt->len = len; memcpy(cvt->buf, data, cvt->len); RETVAL = SDL_ConvertAudio(cvt); OUTPUT: RETVAL SV * audio_audio_driver_name ( ... ) CODE: char buffer[1024]; if ( SDL_AudioDriverName(buffer, 1024) != NULL ) { RETVAL = newSVpv(buffer, 0); } else XSRETURN_UNDEF; OUTPUT: RETVAL void audio_close () CODE: SDL_CloseAudio(); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/CDROM.xs�������������������������������������������������������������������������000444��000765��000024�� 556�11760240072� 15271� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::CDROM PACKAGE = SDL::CDROM PREFIX = cd_ int cd_num_drives() CODE: RETVAL = SDL_CDNumDrives(); OUTPUT: RETVAL char * cd_name( drive ) int drive CODE: RETVAL = strdup(SDL_CDName(drive)); OUTPUT: RETVAL ��������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/Events.xs������������������������������������������������������������������������000444��000765��000024�� 7060�11760240072� 15706� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include <SDL_events.h> /* Static Memory for event filter call back */ static SV * eventfiltersv; int eventfilter_cb( const void * event) { dSP; int count; int filter_signal; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs( cpy2bag( (void *)event, sizeof(SDL_Event *), sizeof(SDL_Event), "SDL::Event" ) ); PUTBACK; /* printf ( "Eventref is %p. Event is %p. CopyEvent is %p \n", eventref, event, copyEvent); */ count = call_sv(eventfiltersv, G_SCALAR); SPAGAIN; if (count != 1 ) croak("callback returned more than 1 value\n"); filter_signal = POPi; FREETMPS; LEAVE; return filter_signal; } MODULE = SDL::Events PACKAGE = SDL::Events PREFIX = events_ =for documentation The Following are XS bindings to the Event category in the SDL API v2.1.13 Describe on the SDL API site. See: L<http:/*www.libsdl.org/cgi/docwiki.cgi/SDL_API#head-29746762ba51fc3fe8b888f8d314b13de27610e9> */ =cut void events_pump_events() CODE: SDL_PumpEvents(); int events_peep_events( events, numevents, action, mask ) SDL_Event *events int numevents int action Uint32 mask CODE: if(action != (action & (SDL_ADDEVENT | SDL_PEEKEVENT | SDL_GETEVENT))) { croak("Value of 'action' should be SDL_ADDEVENT, SDL_PEEKEVENT or SDL_GETEVENT."); } RETVAL = SDL_PeepEvents(events,numevents,action,mask); OUTPUT: RETVAL int events_poll_event( event ) SDL_Event *event CODE: RETVAL = SDL_PollEvent(event); OUTPUT: RETVAL int events_push_event(event) SDL_Event *event CODE: RETVAL = SDL_PushEvent(event); OUTPUT: RETVAL int events_wait_event(event = NULL) SDL_Event *event CODE: RETVAL = SDL_WaitEvent(event); OUTPUT: RETVAL void events_set_event_filter(callback) SV* callback CODE: eventfiltersv = callback; SDL_SetEventFilter((SDL_EventFilter) eventfilter_cb); AV * events_get_key_state() PREINIT: int value; CODE: Uint8* KeyArray = SDL_GetKeyState(&value); RETVAL = (AV*)sv_2mortal((SV*)newAV()); int i; for( i = 0; i <value; i++) { SV* scalar = newSViv( KeyArray[i] ); av_push( RETVAL, scalar); } OUTPUT: RETVAL SDLMod events_get_mod_state() CODE: RETVAL = SDL_GetModState(); OUTPUT: RETVAL void events_set_mod_state(mod) SDLMod mod CODE: SDL_SetModState(mod); Uint8 events_event_state(type, state) Uint8 type int state CODE: RETVAL=SDL_EventState(type, state); OUTPUT: RETVAL char * events_get_key_name(key) SDLKey key CODE: RETVAL = SDL_GetKeyName(key); OUTPUT: RETVAL int events_enable_unicode ( enable ) int enable CODE: RETVAL = SDL_EnableUNICODE(enable); OUTPUT: RETVAL int events_enable_key_repeat ( delay, interval ) int delay int interval CODE: RETVAL = SDL_EnableKeyRepeat(delay,interval); OUTPUT: RETVAL AV* events_get_mouse_state () CODE: Uint8 mask; int x; int y; mask = SDL_GetMouseState(&x,&y); RETVAL = (AV*)sv_2mortal((SV*)newAV()); av_push(RETVAL,newSViv(mask)); av_push(RETVAL,newSViv(x)); av_push(RETVAL,newSViv(y)); OUTPUT: RETVAL AV* events_get_relative_mouse_state () CODE: Uint8 mask; int x; int y; mask = SDL_GetRelativeMouseState(&x,&y); RETVAL = (AV*)sv_2mortal((SV*)newAV()); av_push(RETVAL,newSViv(mask)); av_push(RETVAL,newSViv(x)); av_push(RETVAL,newSViv(y)); OUTPUT: RETVAL Uint8 events_get_app_state () CODE: RETVAL = SDL_GetAppState(); OUTPUT: RETVAL int events_joystick_event_state (state) int state; CODE: RETVAL = SDL_JoystickEventState(state); OUTPUT: RETVAL ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/Joystick.xs����������������������������������������������������������������������000444��000765��000024�� 4237�11760240073� 16245� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Joystick PACKAGE = SDL::Joystick PREFIX = joystick_ SDL_Joystick * joystick_new (CLASS, index ) char* CLASS int index CODE: RETVAL = SDL_JoystickOpen(index); OUTPUT: RETVAL int joystick_num_joysticks () CODE: RETVAL = SDL_NumJoysticks(); OUTPUT: RETVAL char * joystick_name ( index ) int index CODE: RETVAL = (char*)SDL_JoystickName(index); OUTPUT: RETVAL int joystick_opened ( index ) int index CODE: RETVAL = SDL_JoystickOpened(index); OUTPUT: RETVAL int joystick_index ( joystick ) SDL_Joystick *joystick CODE: RETVAL = SDL_JoystickIndex(joystick); OUTPUT: RETVAL int joystick_num_axes ( joystick ) SDL_Joystick *joystick CODE: RETVAL = SDL_JoystickNumAxes(joystick); OUTPUT: RETVAL int joystick_num_balls ( joystick ) SDL_Joystick *joystick CODE: RETVAL = SDL_JoystickNumBalls(joystick); OUTPUT: RETVAL int joystick_num_hats ( joystick ) SDL_Joystick *joystick CODE: RETVAL = SDL_JoystickNumHats(joystick); OUTPUT: RETVAL int joystick_num_buttons ( joystick ) SDL_Joystick *joystick CODE: RETVAL = SDL_JoystickNumButtons(joystick); OUTPUT: RETVAL void joystick_update () CODE: SDL_JoystickUpdate(); Sint16 joystick_get_axis ( joystick, axis ) SDL_Joystick *joystick int axis CODE: RETVAL = SDL_JoystickGetAxis(joystick,axis); OUTPUT: RETVAL Uint8 joystick_get_hat ( joystick, hat ) SDL_Joystick *joystick int hat CODE: RETVAL = SDL_JoystickGetHat(joystick,hat); OUTPUT: RETVAL Uint8 joystick_get_button ( joystick, button) SDL_Joystick *joystick int button CODE: RETVAL = SDL_JoystickGetButton(joystick,button); OUTPUT: RETVAL AV * joystick_get_ball ( joystick, ball ) SDL_Joystick *joystick int ball CODE: int success,dx,dy; success = SDL_JoystickGetBall(joystick,ball,&dx,&dy); RETVAL = (AV*)sv_2mortal((SV*)newAV()); av_push(RETVAL,newSViv(success)); av_push(RETVAL,newSViv(dx)); av_push(RETVAL,newSViv(dy)); OUTPUT: RETVAL void joystick_DESTROY ( joystick ) SDL_Joystick *joystick CODE: SDL_JoystickClose(joystick); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/Mouse.xs�������������������������������������������������������������������������000444��000765��000024�� 1123�11760240072� 15524� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Mouse PACKAGE = SDL::Mouse PREFIX = mouse_ void mouse_warp_mouse ( x, y ) Uint16 x Uint16 y CODE: SDL_WarpMouse(x,y); void mouse_set_cursor ( cursor ) SDL_Cursor *cursor CODE: SDL_SetCursor(cursor); SDL_Cursor * mouse_get_cursor () PREINIT: char* CLASS = "SDL::Cursor"; CODE: RETVAL = SDL_GetCursor(); OUTPUT: RETVAL int mouse_show_cursor ( toggle ) int toggle CODE: RETVAL = SDL_ShowCursor(toggle); OUTPUT: RETVAL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/MultiThread.xs�������������������������������������������������������������������000444��000765��000024�� 733�11760240072� 16644� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include <SDL_thread.h> MODULE = SDL::MultiThread PACKAGE = SDL::MultiThread PREFIX = multi_ =for documentation The Following are XS bindings to the MultiThread category in the SDL API v2.1.13 Describe on the SDL API site. See: L<http:/*www.libsdl.org/cgi/docwiki.cgi/SDL_API> */ =cut Uint32 multi_threadID() CODE: warn(" ... " ); �������������������������������������SDL-2.540/src/Core/Time.xs��������������������������������������������������������������������������000444��000765��000024�� 1564�11760240073� 15344� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "defines.h" #include <SDL.h> Uint32 add_timer_cb (Uint32 interval, void* param ) { Uint32 ret_interval; ENTER_TLS_CONTEXT; dSP; int count; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(sv_2mortal(newSViv(interval))); PUTBACK; count = call_pv(param,G_SCALAR); SPAGAIN; if (count != 1 ) croak("callback returned more than 1 value\n"); ret_interval = POPi; PUTBACK; FREETMPS; LEAVE; LEAVE_TLS_CONTEXT; return ret_interval; } MODULE = SDL::Time PACKAGE = SDL::Time PREFIX = time_ SDL_TimerID time_add_timer ( interval, cmd ) Uint32 interval char *cmd CODE: GET_TLS_CONTEXT; RETVAL = SDL_AddTimer(interval, add_timer_cb, (void *)cmd); OUTPUT: RETVAL int time_remove_timer ( id) SDL_TimerID id CODE: RETVAL = SDL_RemoveTimer((SDL_TimerID) id); OUTPUT: RETVAL ��������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/Video.xs�������������������������������������������������������������������������000444��000765��000024�� 24636�11760240072� 15540� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> void _uinta_free(Uint16* av, int len_from_av_len) { if( av != NULL) return; safefree(av); } Uint16* av_to_uint16 (AV* av) { int len = av_len(av); if( len != -1) { int i; Uint16* table = (Uint16 *)safemalloc(sizeof(Uint16)*(len+1)); for ( i = 0; i < len+1 ; i++ ) { SV ** temp = av_fetch(av,i,0); if( temp != NULL ) { table[i] = (Uint16) SvIV( *temp ); } else { table[i] = 0; } } return table; } return NULL; } MODULE = SDL::Video PACKAGE = SDL::Video PREFIX = video_ =for documentation The Following are XS bindings to the Video category in the SDL API v2.1.13 Describe on the SDL API site. See: L<http:/*www.libsdl.org/cgi/docwiki.cgi/SDL_API#head-813f033ec44914f267f32195aba7d9aff8c410c0> */ =cut SDL_Surface * video_get_video_surface() PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDL_GetVideoSurface(); OUTPUT: RETVAL SDL_VideoInfo* video_get_video_info() PREINIT: char* CLASS = "SDL::VideoInfo"; CODE: RETVAL = (SDL_VideoInfo *) SDL_GetVideoInfo(); OUTPUT: RETVAL SV * video_video_driver_name( ) CODE: char buffer[1024]; if ( SDL_VideoDriverName(buffer, 1024) != NULL ) { RETVAL = newSVpv(buffer, 0); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV* video_list_modes ( format, flags ) Uint32 flags SDL_PixelFormat *format CODE: SDL_Rect **mode; RETVAL = newAV(); sv_2mortal((SV*)RETVAL); mode = SDL_ListModes(format,flags); if (mode == (SDL_Rect**)-1 ) { av_push(RETVAL,newSVpv("all",0)); } else if (! mode ) { av_push(RETVAL,newSVpv("none",0)); } else { int i; for (i=0; mode[i]; ++i) av_push(RETVAL, cpy2bag( (void *)mode[i], sizeof(SDL_Rect *), sizeof(SDL_Rect), "SDL::Rect" )); } OUTPUT: RETVAL int video_video_mode_ok ( width, height, bpp, flags ) int width int height int bpp Uint32 flags CODE: RETVAL = SDL_VideoModeOK(width,height,bpp,flags); OUTPUT: RETVAL SDL_Surface * video_set_video_mode ( width, height, bpp, flags ) int width int height int bpp Uint32 flags PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDL_SetVideoMode(width,height,bpp,flags); OUTPUT: RETVAL void video_update_rect ( surface, x, y, w ,h ) SDL_Surface *surface int x int y int w int h CODE: SDL_UpdateRect(surface,x,y,w,h); void video_update_rects ( surface, ... ) SDL_Surface *surface CODE: SDL_Rect* rects; int num_rects,i; if ( items < 2 ) return; num_rects = items - 1; rects = (SDL_Rect *)safemalloc(sizeof(SDL_Rect)*items); for(i=0;i<num_rects;i++) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( ST(i + 1) ))); rects[i] = *(SDL_Rect *)(pointers[0]); } SDL_UpdateRects(surface,num_rects,rects); safefree(rects); int video_flip ( surface ) SDL_Surface *surface CODE: RETVAL = SDL_Flip(surface); OUTPUT: RETVAL int video_set_colors ( surface, start, ... ) SDL_Surface *surface int start CODE: if ( items < 3 ) RETVAL = 0; else { int i; int length = items - 2; SDL_Color *colors = (SDL_Color *)safemalloc(sizeof(SDL_Color) * (length + 1)); for ( i = 0; i < length ; i++ ) { SDL_Color *temp = (SDL_Color *)bag2obj( ST(i + 2) ); colors[i].r = temp->r; colors[i].g = temp->g; colors[i].b = temp->b; } RETVAL = SDL_SetColors(surface, colors, start, length); safefree(colors); } OUTPUT: RETVAL int video_set_palette ( surface, flags, start, ... ) SDL_Surface *surface int flags int start CODE: if ( items < 4 ) RETVAL = 0; else { int i; int length = items - 3; SDL_Color *colors = (SDL_Color *)safemalloc(sizeof(SDL_Color) * (length + 1)); for ( i = 0; i < length ; i++ ) { SDL_Color *temp = (SDL_Color *)bag2obj( ST(i + 3) ); colors[i].r = temp->r; colors[i].g = temp->g; colors[i].b = temp->b; } RETVAL = SDL_SetPalette(surface, flags, colors, start, length); safefree(colors); } OUTPUT: RETVAL int video_set_gamma(r, g, b) float r; float g; float b; CODE: RETVAL = SDL_SetGamma(r,g,b); OUTPUT: RETVAL int video_get_gamma_ramp( redtable, greentable, bluetable ) AV* redtable; AV* greentable; AV* bluetable; CODE: Uint16 red_ramp[256]; Uint16 green_ramp[256]; Uint16 blue_ramp[256]; int i; RETVAL = SDL_GetGammaRamp(red_ramp, green_ramp, blue_ramp); for ( i=0; i<256; ++i ) { av_push(redtable,newSViv(red_ramp[i])); av_push(greentable,newSViv(green_ramp[i])); av_push(bluetable,newSViv(blue_ramp[i])); } OUTPUT: RETVAL int video_set_gamma_ramp( rt, gt, bt ) AV* rt; AV* gt; AV* bt; CODE: Uint16 *redtable, *greentable, *bluetable; redtable = av_to_uint16(rt); greentable = av_to_uint16(gt); bluetable = av_to_uint16(bt); RETVAL = SDL_SetGammaRamp(redtable, greentable, bluetable); _uinta_free(redtable, av_len(rt) ); _uinta_free(greentable, av_len(gt) ); _uinta_free(bluetable, av_len(bt) ); OUTPUT: RETVAL Uint32 video_map_RGB ( pixel_format, r, g, b ) SDL_PixelFormat *pixel_format Uint8 r Uint8 g Uint8 b CODE: RETVAL = SDL_MapRGB(pixel_format, r,g,b); OUTPUT: RETVAL Uint32 video_map_RGBA ( pixel_format, r, g, b, a ) SDL_PixelFormat *pixel_format Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = SDL_MapRGBA(pixel_format, r,g,b,a ); OUTPUT: RETVAL int video_lock_surface ( surface ) SDL_Surface *surface CODE: RETVAL = SDL_LockSurface(surface); OUTPUT: RETVAL void video_unlock_surface ( surface ) SDL_Surface *surface CODE: SDL_UnlockSurface(surface); SDL_Surface * video_convert_surface( src, fmt, flags) SDL_Surface* src SDL_PixelFormat* fmt Uint32 flags PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = SDL_ConvertSurface(src, fmt, flags); OUTPUT: RETVAL SDL_Surface * video_display_format ( surface ) SDL_Surface *surface PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDL_DisplayFormat(surface); OUTPUT: RETVAL SDL_Surface * video_display_format_alpha ( surface ) SDL_Surface *surface PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDL_DisplayFormatAlpha(surface); OUTPUT: RETVAL int video_set_color_key ( surface, flag, key ) SDL_Surface *surface Uint32 flag SV *key CODE: Uint32 pixel; if(SvOK(key) && SvIOK(key)) pixel = (Uint32)SvUV(key); else { SDL_Color *color = (SDL_Color *)bag2obj(key); pixel = SDL_MapRGB(surface->format, color->r, color->g, color->b); } RETVAL = SDL_SetColorKey(surface,flag,pixel); OUTPUT: RETVAL int video_set_alpha ( surface, flag, alpha ) SDL_Surface *surface Uint32 flag Uint8 alpha CODE: RETVAL = SDL_SetAlpha(surface,flag,alpha); OUTPUT: RETVAL AV * video_get_RGB ( pixel_format, pixel ) SDL_PixelFormat *pixel_format Uint32 pixel CODE: Uint8 r,g,b; SDL_GetRGB(pixel,pixel_format,&r,&g,&b); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(r)); av_push(RETVAL,newSViv(g)); av_push(RETVAL,newSViv(b)); OUTPUT: RETVAL AV * video_get_RGBA ( pixel_format, pixel ) SDL_PixelFormat *pixel_format Uint32 pixel CODE: Uint8 r,g,b,a; SDL_GetRGBA(pixel,pixel_format,&r,&g,&b,&a); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(r)); av_push(RETVAL,newSViv(g)); av_push(RETVAL,newSViv(b)); av_push(RETVAL,newSViv(a)); OUTPUT: RETVAL SDL_Surface* video_load_BMP ( filename ) char *filename PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDL_LoadBMP(filename); OUTPUT: RETVAL int save_BMP ( surface, filename ) SDL_Surface *surface char *filename CODE: RETVAL = SDL_SaveBMP(surface,filename); OUTPUT: RETVAL int fill_rect ( dest, dest_rect, pixel ) SDL_Surface *dest SDL_Rect *dest_rect Uint32 pixel CODE: RETVAL = SDL_FillRect(dest,dest_rect,pixel); OUTPUT: RETVAL int blit_surface ( src, src_rect_bag, dest, dest_rect_bag ) SDL_Surface *src SDL_Surface *dest SV *src_rect_bag SV *dest_rect_bag CODE: SDL_Rect *src_rect = NULL; SDL_Rect *dest_rect = NULL; if(SvOK(src_rect_bag)) src_rect = (SDL_Rect *)bag2obj(src_rect_bag); if(SvOK(dest_rect_bag)) dest_rect = (SDL_Rect *)bag2obj(dest_rect_bag); RETVAL = SDL_BlitSurface(src,src_rect,dest,dest_rect); OUTPUT: RETVAL void set_clip_rect ( surface, rect ) SDL_Surface *surface SDL_Rect *rect CODE: SDL_SetClipRect(surface,rect); void get_clip_rect ( surface, rect ) SDL_Surface *surface SDL_Rect *rect; CODE: SDL_GetClipRect(surface, rect); int video_lock_YUV_overlay ( overlay ) SDL_Overlay *overlay CODE: RETVAL = SDL_LockYUVOverlay(overlay); OUTPUT: RETVAL void video_unlock_YUV_overlay ( overlay ) SDL_Overlay *overlay CODE: SDL_UnlockYUVOverlay(overlay); int video_display_YUV_overlay ( overlay, dstrect ) SDL_Overlay *overlay SDL_Rect *dstrect CODE: RETVAL = SDL_DisplayYUVOverlay ( overlay, dstrect ); OUTPUT: RETVAL int video_GL_load_library ( path ) char *path CODE: RETVAL = SDL_GL_LoadLibrary(path); OUTPUT: RETVAL void* video_GL_get_proc_address ( proc ) char *proc CODE: RETVAL = SDL_GL_GetProcAddress(proc); OUTPUT: RETVAL int video_GL_set_attribute ( attr, value ) int attr int value CODE: RETVAL = SDL_GL_SetAttribute(attr, value); OUTPUT: RETVAL AV * video_GL_get_attribute ( attr ) int attr CODE: int value; RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(SDL_GL_GetAttribute(attr, &value))); av_push(RETVAL,newSViv(value)); OUTPUT: RETVAL void video_GL_swap_buffers () CODE: SDL_GL_SwapBuffers (); void video_wm_set_caption ( title, icon ) char *title char *icon CODE: SDL_WM_SetCaption(title,icon); AV * video_wm_get_caption () CODE: char *title,*icon; SDL_WM_GetCaption(&title,&icon); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSVpv(title,0)); av_push(RETVAL,newSVpv(icon,0)); OUTPUT: RETVAL void video_wm_set_icon ( icon ) SDL_Surface *icon CODE: SDL_WM_SetIcon(icon,NULL); Uint32 video_wm_grab_input ( mode ) Uint32 mode CODE: RETVAL = SDL_WM_GrabInput(mode); OUTPUT: RETVAL int video_wm_iconify_window () CODE: RETVAL = SDL_WM_IconifyWindow(); OUTPUT: RETVAL int video_wm_toggle_fullscreen ( surface ) SDL_Surface *surface CODE: RETVAL = SDL_WM_ToggleFullScreen(surface); OUTPUT: RETVAL int video_MUSTLOCK ( surface ) SDL_Surface *surface CODE: RETVAL = SDL_MUSTLOCK(surface); OUTPUT: RETVAL ��������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects��������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15360� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/AudioCVT.xs��������������������������������������������������������������000444��000765��000024�� 4770�11760240072� 17516� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include <SDL_audio.h> =for documentation typedef struct{ int needed; Uint16 src_format; Uint16 dest_format; double rate_incr; Uint8 *buf; int len; int len_cvt; int len_mult; double len_ratio; void (*filters[10])(struct SDL_AudioCVT *cvt, Uint16 format); int filter_index; } SDL_AudioCVT; =cut MODULE = SDL::AudioCVT PACKAGE = SDL::AudioCVT PREFIX = audiocvt_ SDL_AudioCVT* audiocvt_new(CLASS) char* CLASS CODE: RETVAL = safemalloc(sizeof(SDL_AudioCVT)); OUTPUT: RETVAL SDL_AudioCVT* audiocvt_build(CLASS, src_format, src_channels, src_rate, dst_format, dst_channels, dst_rate) char* CLASS Uint16 src_format Uint8 src_channels int src_rate Uint16 dst_format Uint8 dst_channels int dst_rate CODE: RETVAL = (SDL_AudioCVT *)safemalloc(sizeof(SDL_AudioCVT)); if(SDL_BuildAudioCVT(RETVAL, src_format, src_channels, src_rate, dst_format, dst_channels, dst_rate)) { safefree(RETVAL); RETVAL = NULL; } OUTPUT: RETVAL int audiocvt_needed(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->needed = SvIV( ST(1) ); } RETVAL = self->needed; OUTPUT: RETVAL Uint16 audiocvt_src_format(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->src_format = SvIV( ST(1) ); } RETVAL = self->src_format; OUTPUT: RETVAL Uint16 audiocvt_dest_format(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->dst_format = SvIV( ST(1) ); } RETVAL = self->dst_format; OUTPUT: RETVAL double audiocvt_rate_incr(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->rate_incr = SvIV( ST(1) ); } RETVAL = self->rate_incr; OUTPUT: RETVAL int audiocvt_len(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->len = SvIV( ST(1) ); } RETVAL = self->len; OUTPUT: RETVAL int audiocvt_len_cvt(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->len_cvt = SvIV( ST(1) ); } RETVAL = self->len_cvt; OUTPUT: RETVAL int audiocvt_len_mult(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->len_mult = SvIV( ST(1) ); } RETVAL = self->len_mult; OUTPUT: RETVAL int audiocvt_len_ratio(self, ...) SDL_AudioCVT* self CODE: if( items > 1 ) { self->len_ratio = SvIV( ST(1) ); } RETVAL = self->len_ratio; OUTPUT: RETVAL void audiocvt_DESTROY(self) SDL_AudioCVT* self CODE: safefree(self); ��������SDL-2.540/src/Core/objects/AudioSpec.xs�������������������������������������������������������������000444��000765��000024�� 6626�11760240072� 17756� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #include "defines.h" #ifndef aTHX_ #define aTHX_ #endif #ifdef USE_THREADS #define HAVE_TLS_CONTEXT #endif #include <SDL.h> #include <SDL_audio.h> void audio_callback ( void* data, Uint8 *stream, int len ) { ENTER_TLS_CONTEXT; dSP; char* string = (char*)stream; SV* sv = newSVpv("a",1); SvCUR_set(sv,len * sizeof(Uint8)); SvLEN_set(sv,len * sizeof(Uint8)); void* old = SvPVX(sv); SvPV_set(sv,string); ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(sv_2mortal(newSViv(sizeof(Uint8)))); XPUSHs(sv_2mortal(newSViv(len))); XPUSHs(sv_2mortal(newRV_inc(sv))); PUTBACK; call_pv(data,G_VOID|G_DISCARD); SvPV_set(sv,old); SvCUR_set(sv,1); SvLEN_set(sv,1); sv_2mortal(sv); FREETMPS; LEAVE; LEAVE_TLS_CONTEXT; } MODULE = SDL::AudioSpec PACKAGE = SDL::AudioSpec PREFIX = audiospec_ =for documentation SDL_AudioSpec -- Audio specification /* The calculated values in this structure are calculated by SDL_OpenAudio() */ typedef struct SDL_AudioSpec { int freq; /* DSP frequency -- samples per second */ Uint16 format; /* Audio data format */ Uint8 channels; /* Number of channels: 1 mono, 2 stereo */ Uint8 silence; /* Audio buffer silence value (calculated) */ Uint16 samples; /* Audio buffer size in samples (power of 2) */ Uint16 padding; /* Necessary for some compile environments */ Uint32 size; /* Audio buffer size in bytes (calculated) */ /* This function is called when the audio device needs more data. 'stream' is a pointer to the audio data buffer 'len' is the length of that buffer in bytes. Once the callback returns, the buffer will no longer be valid. Stereo samples are stored in a LRLRLR ordering. */ void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len); void *userdata; } SDL_AudioSpec; =cut SDL_AudioSpec * audiospec_new (CLASS) char* CLASS CODE: RETVAL = safemalloc(sizeof(SDL_AudioSpec)); OUTPUT: RETVAL int audiospec_freq ( audiospec, ... ) SDL_AudioSpec *audiospec CODE: if (items > 1 ) audiospec->freq = SvIV(ST(1)); RETVAL = audiospec->freq; OUTPUT: RETVAL Uint16 audiospec_format ( audiospec, ... ) SDL_AudioSpec *audiospec CODE: if (items > 1 ) audiospec->format = SvIV(ST(1)); RETVAL = audiospec->format; OUTPUT: RETVAL Uint8 audiospec_channels ( audiospec, ... ) SDL_AudioSpec *audiospec CODE: if (items > 1 ) audiospec->channels = SvIV(ST(1)); RETVAL = audiospec->channels; OUTPUT: RETVAL Uint16 audiospec_samples ( audiospec, ... ) SDL_AudioSpec *audiospec CODE: if (items > 1 ) audiospec->samples = SvIV(ST(1)); RETVAL = audiospec->samples; OUTPUT: RETVAL #ifdef USE_THREADS void audiospec_callback( audiospec, cb ) SDL_AudioSpec *audiospec char* cb CODE: /* the audio callback will happen in a different thread. */ GET_TLS_CONTEXT; audiospec->userdata = cb; audiospec->callback = audio_callback; #else void audiospec_callback( audiospec, cb ) SDL_AudioSpec *audiospec char* cb CODE: warn("Perl need to be compiled with 'useithreads' for SDL::AudioSpec::callback( cb )"); #endif void audiospec_DESTROY(bag) SV *bag CODE: objDESTROY(bag, safefree); ����������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/CD.xs��������������������������������������������������������������������000444��000765��000024�� 3250�11760240073� 16357� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::CD PACKAGE = SDL::CD PREFIX = cdr_ SDL_CD * cdr_new ( CLASS, drive ) char* CLASS int drive CODE: RETVAL = SDL_CDOpen(drive); OUTPUT: RETVAL Uint32 cdr_status ( cd ) SDL_CD *cd CODE: RETVAL = SDL_CDStatus(cd); OUTPUT: RETVAL int cdr_play_tracks ( cd, start_track, ntracks, start_frame, nframes ) SDL_CD *cd int start_track int ntracks int start_frame int nframes CODE: RETVAL = SDL_CDPlayTracks(cd,start_track,start_frame,ntracks,nframes); OUTPUT: RETVAL int cdr_play ( cd, start, length ) SDL_CD *cd int start int length CODE: RETVAL = SDL_CDPlay(cd,start,length); OUTPUT: RETVAL int cdr_pause ( cd ) SDL_CD *cd CODE: RETVAL = SDL_CDPause(cd); OUTPUT: RETVAL int cdr_resume ( cd ) SDL_CD *cd CODE: RETVAL = SDL_CDResume(cd); OUTPUT: RETVAL int cdr_stop ( cd ) SDL_CD *cd CODE: RETVAL = SDL_CDStop(cd); OUTPUT: RETVAL int cdr_eject ( cd ) SDL_CD *cd CODE: RETVAL = SDL_CDEject(cd); OUTPUT: RETVAL int cdr_id ( cd ) SDL_CD *cd CODE: RETVAL = cd->id; OUTPUT: RETVAL int cdr_num_tracks ( cd ) SDL_CD *cd CODE: RETVAL = cd->numtracks; OUTPUT: RETVAL int cdr_cur_track ( cd ) SDL_CD *cd CODE: RETVAL = cd->cur_track; OUTPUT: RETVAL int cdr_cur_frame ( cd ) SDL_CD *cd CODE: RETVAL = cd->cur_frame; OUTPUT: RETVAL SDL_CDtrack * cdr_track ( cd, number ) SDL_CD *cd int number PREINIT: char* CLASS = "SDL::CDTrack"; CODE: RETVAL = (SDL_CDtrack *)(cd->track + number); OUTPUT: RETVAL void cdr_DESTROY ( cd ) SDL_CD *cd CODE: SDL_CDClose(cd); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/CDTrack.xs���������������������������������������������������������������000444��000765��000024�� 1101�11760240073� 17335� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::CDTrack PACKAGE = SDL::CDTrack PREFIX = cdt_ Uint8 cdt_id( track ) SDL_CDtrack *track CODE: RETVAL = track->id; OUTPUT: RETVAL Uint8 cdt_type( track ) SDL_CDtrack *track CODE: RETVAL = track->type; OUTPUT: RETVAL Uint16 cdt_length( track ) SDL_CDtrack *track CODE: RETVAL = track->length; OUTPUT: RETVAL Uint32 cdt_offset( track ) SDL_CDtrack *track CODE: RETVAL = track->offset; OUTPUT: RETVAL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Color.xs�����������������������������������������������������������������000444��000765��000024�� 2065�11760240072� 17151� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Color PACKAGE = SDL::Color PREFIX = color_ =for documentation SDL_Color -- Format independent color description typedef struct{ Uint8 r; Uint8 g; Uint8 b; Uint8 unused; } SDL_Color; =cut SDL_Color * color_new (CLASS, r, g, b ) char* CLASS Uint8 r Uint8 g Uint8 b CODE: RETVAL = (SDL_Color *) safemalloc(sizeof(SDL_Color)); RETVAL->r = r; RETVAL->g = g; RETVAL->b = b; OUTPUT: RETVAL Uint8 color_r ( color, ... ) SDL_Color *color CODE: if (items > 1 ) color->r = SvIV(ST(1)); RETVAL = color->r; OUTPUT: RETVAL Uint8 color_g ( color, ... ) SDL_Color *color CODE: if (items > 1 ) color->g = SvIV(ST(1)); RETVAL = color->g; OUTPUT: RETVAL Uint8 color_b ( color, ... ) SDL_Color *color CODE: if (items > 1 ) color->b = SvIV(ST(1)); RETVAL = color->b; OUTPUT: RETVAL void color_DESTROY ( bag ) SV *bag CODE: objDESTROY(bag, safefree); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Cursor.xs����������������������������������������������������������������000444��000765��000024�� 2025�11760240073� 17345� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Cursor PACKAGE = SDL::Cursor PREFIX = cursor_ =for documentation SDL_Cursor -- Cursor object =cut SDL_Cursor * cursor_new(CLASS, data, mask, w, h, x ,y ) char* CLASS AV* data AV* mask int w int h int x int y CODE: int len = av_len(data); Uint8 *_data = (Uint8 *)safemalloc(sizeof(Uint8)*(len)); Uint8 *_mask = (Uint8 *)safemalloc(sizeof(Uint8)*(len)); int i; for ( i = 0; i < len + 1; i++ ) { SV ** temp1 = av_fetch(data,i,0); SV ** temp2 = av_fetch(mask,i,0); if( temp1 != NULL) { _data[i] = (Uint8)SvIV( *temp1 ); } else { _data[i] = 0; } if( temp2 != NULL) { _mask[i] = (Uint8)SvIV( *temp2 ); } else { _mask[i] = 0; } } RETVAL = SDL_CreateCursor(_data, _mask, w, h, x, y); safefree(_data); safefree(_mask); OUTPUT: RETVAL void cursor_DESTROY(self) SDL_Cursor *self CODE: SDL_FreeCursor(self); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Event.xs�����������������������������������������������������������������000444��000765��000024�� 35254�11760240073� 17203� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> SV* new_data( SV* thing ) { if ( SvROK( thing ) ) return newRV_inc(SvRV(thing ) ); else return SvREFCNT_inc(thing); } MODULE = SDL::Event PACKAGE = SDL::Event PREFIX = event_ =for documentation SDL_Event -- General event structure typedef union{ Uint8 type; SDL_ActiveEvent active; SDL_KeyboardEvent key; SDL_MouseMotionEvent motion; SDL_MouseButtonEvent button; SDL_JoyAxisEvent jaxis; SDL_JoyBallEvent jball; SDL_JoyHatEvent jhat; SDL_JoyButtonEvent jbutton; SDL_ResizeEvent resize; SDL_ExposeEvent expose; SDL_QuitEvent quit; SDL_UserEvent user; SDL_SysWMEvent syswm; } SDL_Event; =cut SDL_Event * event_new (CLASS) char *CLASS CODE: RETVAL = (SDL_Event *) safemalloc(sizeof (SDL_Event)); /*set userdata to NULL for now */ (RETVAL->user).data1 =(void *)NULL; (RETVAL->user).data2 =(void *)NULL; OUTPUT: RETVAL Uint8 event_type ( event, ... ) SDL_Event *event CODE: if( items > 1 ) { event->type = SvUV( ST(1) ); } RETVAL = event->type; OUTPUT: RETVAL SDL_ActiveEvent * event_active ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::ActiveEvent"; CODE: RETVAL = &(event->active); OUTPUT: RETVAL Uint8 event_active_type ( event, ... ) SDL_Event *event CODE: SDL_ActiveEvent * a = &(event->active); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_active_gain ( event, ... ) SDL_Event *event CODE: SDL_ActiveEvent * a = &(event->active); if( items > 1 ) { a->gain = SvUV( ST(1) ); } RETVAL = a->gain; OUTPUT: RETVAL Uint8 event_active_state ( event, ... ) SDL_Event *event CODE: SDL_ActiveEvent * a = &(event->active); if( items > 1 ) { a->state = SvUV( ST(1) ); } RETVAL = a->state; OUTPUT: RETVAL SDL_KeyboardEvent * event_key ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::KeyboardEvent"; CODE: RETVAL = &(event->key); OUTPUT: RETVAL Uint8 event_key_type ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_key_state ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); if( items > 1 ) { a->state = SvUV( ST(1) ); } RETVAL = a->state; OUTPUT: RETVAL SDL_keysym * event_key_keysym ( event, ... ) SDL_Event *event PREINIT: char* CLASS = "SDL::keysym"; CODE: SDL_KeyboardEvent * a = &(event->key); if( items > 1 ) { SDL_keysym * ksp = (SDL_keysym * )SvPV( ST(1), PL_na) ; a->keysym = *ksp; } RETVAL = &(a->keysym); OUTPUT: RETVAL Uint8 event_key_scancode ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); SDL_keysym * b = &(a->keysym); if( items > 1 ) { b->scancode = SvUV( ST(1) ); } RETVAL = b->scancode; OUTPUT: RETVAL Uint16 event_key_sym ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); SDL_keysym * b = &(a->keysym); if( items > 1 ) { b->sym = SvUV( ST(1) ); } RETVAL = b->sym; OUTPUT: RETVAL Uint16 event_key_mod ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); SDL_keysym * b = &(a->keysym); if( items > 1 ) { b->mod = SvUV( ST(1) ); } RETVAL = b->mod; OUTPUT: RETVAL Uint16 event_key_unicode ( event, ... ) SDL_Event *event CODE: SDL_KeyboardEvent * a = &(event->key); SDL_keysym * b = &(a->keysym); if( items > 1 ) { b->unicode = SvUV( ST(1) ); } RETVAL = b->unicode; OUTPUT: RETVAL SDL_MouseMotionEvent * event_motion ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::MouseMotionEvent"; CODE: RETVAL = &(event->motion); OUTPUT: RETVAL Uint8 event_motion_type ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_motion_state ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->state = SvUV( ST(1) ); } RETVAL = a->state; OUTPUT: RETVAL Uint16 event_motion_x ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->x = SvUV( ST(1) ); } RETVAL = a->x; OUTPUT: RETVAL Uint16 event_motion_y ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->y = SvUV( ST(1) ); } RETVAL = a->y; OUTPUT: RETVAL Sint16 event_motion_xrel ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->xrel = SvIV( ST(1) ); } RETVAL = a->xrel; OUTPUT: RETVAL Sint16 event_motion_yrel ( event, ... ) SDL_Event *event CODE: SDL_MouseMotionEvent * a = &(event->motion); if( items > 1 ) { a->yrel = SvIV( ST(1) ); } RETVAL = a->yrel; OUTPUT: RETVAL SDL_MouseButtonEvent * event_button ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::MouseButtonEvent"; CODE: RETVAL = &(event->button); OUTPUT: RETVAL Uint8 event_button_type ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_button_which ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->which; OUTPUT: RETVAL Uint8 event_button_button ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->button = SvUV( ST(1) ); } RETVAL = a->button; OUTPUT: RETVAL Uint8 event_button_state ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->state = SvUV( ST(1) ); } RETVAL = a->state; OUTPUT: RETVAL Uint16 event_button_x ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->x = SvUV( ST(1) ); } RETVAL = a->x; OUTPUT: RETVAL Uint16 event_button_y ( event, ... ) SDL_Event *event CODE: SDL_MouseButtonEvent * a = &(event->button); if( items > 1 ) { a->y = SvUV( ST(1) ); } RETVAL = a->y; OUTPUT: RETVAL SDL_JoyAxisEvent * event_jaxis ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::JoyAxisEvent"; CODE: RETVAL = &(event->jaxis); OUTPUT: RETVAL Uint8 event_jaxis_type ( event, ... ) SDL_Event *event CODE: SDL_JoyAxisEvent * a = &(event->jaxis); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_jaxis_which ( event, ... ) SDL_Event *event CODE: SDL_JoyAxisEvent * a = &(event->jaxis); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->which; OUTPUT: RETVAL Uint8 event_jaxis_axis ( event, ... ) SDL_Event *event CODE: SDL_JoyAxisEvent * a = &(event->jaxis); if( items > 1 ) { a->axis = SvUV( ST(1) ); } RETVAL = a->axis; OUTPUT: RETVAL Sint16 event_jaxis_value ( event, ... ) SDL_Event *event CODE: SDL_JoyAxisEvent * a = &(event->jaxis); if( items > 1 ) { a->value = SvUV( ST(1) ); } RETVAL = a->value; OUTPUT: RETVAL SDL_JoyBallEvent * event_jball ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::JoyBallEvent"; CODE: RETVAL = &(event->jball); OUTPUT: RETVAL Uint8 event_jball_type ( event, ... ) SDL_Event *event CODE: SDL_JoyBallEvent * a = &(event->jball); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = event->type; OUTPUT: RETVAL Uint8 event_jball_which ( event, ... ) SDL_Event *event CODE: SDL_JoyBallEvent * a = &(event->jball); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->which; OUTPUT: RETVAL Uint8 event_jball_ball ( event, ... ) SDL_Event *event CODE: SDL_JoyBallEvent * a = &(event->jball); if( items > 1 ) { a->ball = SvUV( ST(1) ); } RETVAL = a->ball; OUTPUT: RETVAL Sint16 event_jball_xrel ( event, ... ) SDL_Event *event CODE: SDL_JoyBallEvent * a = &(event->jball); if( items > 1 ) { a->xrel = SvIV( ST(1) ); } RETVAL = a->xrel; OUTPUT: RETVAL Sint16 event_jball_yrel ( event, ... ) SDL_Event *event CODE: SDL_JoyBallEvent * a = &(event->jball); if( items > 1 ) { a->yrel = SvIV( ST(1) ); } RETVAL = a->yrel; OUTPUT: RETVAL SDL_JoyHatEvent * event_jhat ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::JoyHatEvent"; CODE: RETVAL = NULL; if ( &event != NULL ) RETVAL = &(event->jhat); OUTPUT: RETVAL Uint8 event_jhat_type ( event, ... ) SDL_Event *event CODE: SDL_JoyHatEvent * a = &(event->jhat); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_jhat_which ( event, ... ) SDL_Event *event CODE: SDL_JoyHatEvent * a = &(event->jhat); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->which; OUTPUT: RETVAL Uint8 event_jhat_hat ( event, ... ) SDL_Event *event CODE: SDL_JoyHatEvent * a = &(event->jhat); if( items > 1 ) { a->hat = SvUV( ST(1) ); } RETVAL = a->hat; OUTPUT: RETVAL Uint8 event_jhat_value ( event, ... ) SDL_Event *event CODE: SDL_JoyHatEvent * a = &(event->jhat); if( items > 1 ) { a->value = SvUV( ST(1) ); } RETVAL = a->value; OUTPUT: RETVAL SDL_JoyButtonEvent * event_jbutton ( event, ... ) SDL_Event *event PREINIT: char *CLASS = "SDL::JoyButtonEvent"; CODE: RETVAL = NULL; if ( &event != NULL ) RETVAL = &(event->jbutton); OUTPUT: RETVAL Uint8 event_jbutton_type ( event, ... ) SDL_Event *event CODE: SDL_JoyButtonEvent * a = &(event->jbutton); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL Uint8 event_jbutton_which ( event, ... ) SDL_Event *event CODE: SDL_JoyButtonEvent * a = &(event->jbutton); if( items > 1 ) { a->which = SvUV( ST(1) ); } RETVAL = a->which; OUTPUT: RETVAL Uint8 event_jbutton_button ( event, ... ) SDL_Event *event CODE: SDL_JoyButtonEvent * a = &(event->jbutton); if( items > 1 ) { a->button = SvUV( ST(1) ); } RETVAL = a->button; OUTPUT: RETVAL Uint8 event_jbutton_state ( event, ... ) SDL_Event *event CODE: SDL_JoyButtonEvent * a = &(event->jbutton); if( items > 1 ) { a->state = SvUV( ST(1) ); } RETVAL = a->state; OUTPUT: RETVAL SDL_ResizeEvent * event_resize ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::ResizeEvent"; CODE: RETVAL = NULL; if ( &event != NULL ) RETVAL = &(event->resize); OUTPUT: RETVAL Uint8 event_resize_type ( event, ... ) SDL_Event *event CODE: SDL_ResizeEvent * a = &(event->resize); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL int event_resize_w ( event, ... ) SDL_Event *event CODE: SDL_ResizeEvent * a = &(event->resize); if( items > 1 ) { a->w = SvUV( ST(1) ); } RETVAL = a->w; OUTPUT: RETVAL int event_resize_h ( event, ... ) SDL_Event *event CODE: SDL_ResizeEvent * a = &(event->resize); if( items > 1 ) { a->h = SvUV( ST(1) ); } RETVAL = a->h; OUTPUT: RETVAL SDL_ExposeEvent * event_expose ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::ExposeEvent"; CODE: RETVAL = &(event->expose); OUTPUT: RETVAL Uint8 event_expose_type ( event, ... ) SDL_Event *event CODE: SDL_ExposeEvent * a = &(event->expose); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL SDL_QuitEvent * event_quit ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::QuitEvent"; CODE: RETVAL = &(event->quit); OUTPUT: RETVAL Uint8 event_quit_type ( event, ... ) SDL_Event *event CODE: SDL_QuitEvent * a = &(event->quit); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL SDL_UserEvent * event_user ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::UserEvent"; CODE: RETVAL = &(event->user); OUTPUT: RETVAL Uint8 event_user_type ( event, ... ) SDL_Event *event CODE: SDL_UserEvent * a = &(event->user); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL int event_user_code ( event, ... ) SDL_Event *event CODE: SDL_UserEvent * a = &(event->user); if( items > 1 ) { a->code = SvUV( ST(1) ); } RETVAL = (int)a->code; OUTPUT: RETVAL SV* event_user_data1 ( event, ... ) SDL_Event *event PPCODE: SDL_UserEvent * a = &(event->user); if ( items > 1) a->data1 = new_data( ST(1) ); if (!a->data1) XSRETURN_EMPTY; ST(0) = a->data1; XSRETURN(1); SV* event_user_data2 ( event, ... ) SDL_Event *event PPCODE: SDL_UserEvent * a = &(event->user); if ( items > 1) a->data2 = new_data( ST(1) ); if (!a->data2) XSRETURN_EMPTY; ST(0) = a->data2; XSRETURN(1); SDL_SysWMEvent * event_syswm ( event, ... ) SDL_Event * event PREINIT: char *CLASS = "SDL::SysWMEvent"; CODE: RETVAL = &(event->syswm); OUTPUT: RETVAL Uint8 event_syswm_type ( event, ... ) SDL_Event *event CODE: SDL_SysWMEvent * a = &(event->syswm); if( items > 1 ) { a->type = SvUV( ST(1) ); } RETVAL = a->type; OUTPUT: RETVAL SDL_SysWMmsg * event_syswm_msg ( event, ... ) SDL_Event *event PREINIT: char* CLASS = "SDL::SysWMmsg"; CODE: SDL_SysWMEvent * a = &(event->syswm); if( items > 1 ) { SDL_SysWMmsg * sysm = (SDL_SysWMmsg * )SvPV( ST(1), PL_na) ; a->msg = sysm; } RETVAL = a->msg; OUTPUT: RETVAL void event_DESTROY(bag) SV* bag CODE: if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( bag ))); SDL_Event* self = (SDL_Event*)(pointers[0]); if (PERL_GET_CONTEXT == pointers[1]) { /*warn("Freed surface %p and pixels %p \n", surface, surface->pixels); */ if(self->type == SDL_USEREVENT) { if( (self->user).data1 != NULL ) SvREFCNT_dec( (self->user).data1); if( (self->user).data2 != NULL ) SvREFCNT_dec( (self->user).data2); } safefree(self); safefree(pointers); } } else if (bag == 0) { XSRETURN(0); } else { XSRETURN_UNDEF; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/keysym.xs����������������������������������������������������������������000444��000765��000024�� 2563�11760240072� 17417� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::keysym PACKAGE = SDL::keysym PREFIX = keysym_ =for documentation SDL_keysym -- keysym structure typedef struct{ Uint8 scancode; SDLKey sym; SDLMod mod; Uint16 unicode; } SDL_keysym; =cut SDL_keysym * keysym_new ( CLASS ) char* CLASS CODE: RETVAL = safemalloc(sizeof(SDL_keysym)); OUTPUT: RETVAL Uint8 keysym_scancode ( keysym, ... ) SDL_keysym *keysym CODE: if( items > 1 ) { keysym->scancode = SvIV( ST(1) ); } RETVAL = keysym->scancode; OUTPUT: RETVAL SDLKey * keysym_sym ( keysym, ... ) SDL_keysym *keysym PREINIT: char* CLASS = "SDL::Key"; CODE: if( items > 1 ) { SDLKey *kp = (SDLKey * )SvPV( ST(1), PL_na) ; keysym->sym = *kp; } RETVAL = &(keysym->sym); OUTPUT: RETVAL SDLMod * keysym_mod ( keysym, ... ) SDL_keysym *keysym PREINIT: char* CLASS = "SDL::Mod"; CODE: if( items > 1 ) { SDLMod *mp = (SDLMod * )SvPV( ST(1), PL_na) ; keysym->mod = *mp; } RETVAL = &(keysym->mod); OUTPUT: RETVAL Uint16 keysym_unicode ( keysym, ... ) SDL_keysym *keysym CODE: if( items > 1 ) { keysym->unicode = SvIV( ST(1) ); } RETVAL = keysym->unicode; OUTPUT: RETVAL void keysym_DESTROY(self) SDL_keysym *self CODE: safefree( (char *)self ); ���������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Overlay.xs���������������������������������������������������������������000444��000765��000024�� 2334�11760240072� 17513� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Overlay PACKAGE = SDL::Overlay PREFIX = overlay_ =for documentation SDL_Overlay -- YUV video overlay typedef struct{ Uint32 format; int w, h; int planes; Uint16 *pitches; Uint8 **pixels; Uint32 hw_overlay:1; } SDL_Overlay; =cut SDL_Overlay * overlay_new(CLASS, width, height, format, display) char* CLASS int width int height Uint32 format SDL_Surface *display; CODE: RETVAL = SDL_CreateYUVOverlay(width, height, format, display); OUTPUT: RETVAL int overlay_w( overlay ) SDL_Overlay* overlay CODE: RETVAL = overlay->w; OUTPUT: RETVAL int overlay_h( overlay ) SDL_Overlay* overlay CODE: RETVAL = overlay->h; OUTPUT: RETVAL int overlay_planes( overlay ) SDL_Overlay* overlay CODE: RETVAL = overlay->planes; OUTPUT: RETVAL Uint32 overlay_hwoverlay( overlay ) SDL_Overlay* overlay CODE: RETVAL = overlay->hw_overlay; OUTPUT: RETVAL Uint32 overlay_format( overlay ) SDL_Overlay* overlay CODE: RETVAL = overlay->format; OUTPUT: RETVAL void overlay_DESTROY(overlay) SDL_Overlay *overlay CODE: SDL_FreeYUVOverlay(overlay); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Palette.xs���������������������������������������������������������������000444��000765��000024�� 2122�11760240072� 17463� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Palette PACKAGE = SDL::Palette PREFIX = palette_ =for documentation SDL_Palette -- Color palette for 8-bit pixel formats typedef struct{ int ncolors; SDL_Color *colors } SDL_Palette; =cut int palette_ncolors ( palette ) SDL_Palette *palette CODE: RETVAL = palette->ncolors; OUTPUT: RETVAL AV * palette_colors ( palette ) SDL_Palette *palette CODE: RETVAL = (AV*)sv_2mortal((SV*)newAV()); int i; for(i = 0; i < palette->ncolors; i++) av_push( RETVAL, cpy2bag( (SDL_Color *)(palette->colors + i), sizeof(SDL_Color *), sizeof(SDL_Color), "SDL::Color" ) ); OUTPUT: RETVAL SV * palette_color_index ( palette, index ) SDL_Palette *palette int index PREINIT: char * CLASS = "SDL::Color"; CODE: RETVAL = cpy2bag( (SDL_Color *)(palette->colors + index), sizeof(SDL_Color *), sizeof(SDL_Color), "SDL::Color" ); OUTPUT: RETVAL void palette_DESTROY ( bag ) SV *bag CODE: objDESTROY(bag, safefree); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/PixelFormat.xs�����������������������������������������������������������000444��000765��000024�� 5745�11760240072� 20335� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::PixelFormat PACKAGE = SDL::PixelFormat PREFIX = pixelformat_ =for documentation SDL_PixelFormat -- Stores surface format information typedef struct SDL_PixelFormat { SDL_Palette *palette; Uint8 BitsPerPixel; Uint8 BytesPerPixel; Uint8 Rloss, Gloss, Bloss, Aloss; Uint8 Rshift, Gshift, Bshift, Ashift; Uint32 Rmask, Gmask, Bmask, Amask; Uint32 colorkey; Uint8 alpha; } SDL_PixelFormat; =cut SV * pixelformat_palette( pixelformat ) SDL_PixelFormat *pixelformat PREINIT: char* CLASS = "SDL::Palette"; CODE: if(pixelformat->palette) RETVAL = cpy2bag( pixelformat->palette, sizeof(SDL_Palette *), sizeof(SDL_Palette), "SDL::Palette" ); else XSRETURN_UNDEF; OUTPUT: RETVAL Uint8 pixelformat_BitsPerPixel( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->BitsPerPixel; OUTPUT: RETVAL Uint8 pixelformat_BytesPerPixel( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->BytesPerPixel; OUTPUT: RETVAL Uint8 pixelformat_Rloss( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Rloss; OUTPUT: RETVAL Uint8 pixelformat_Bloss( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Bloss; OUTPUT: RETVAL Uint8 pixelformat_Gloss( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Gloss; OUTPUT: RETVAL Uint8 pixelformat_Aloss( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Aloss; OUTPUT: RETVAL Uint8 pixelformat_Rshift( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Rshift; OUTPUT: RETVAL Uint8 pixelformat_Bshift( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Bshift; OUTPUT: RETVAL Uint8 pixelformat_Gshift( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Gshift; OUTPUT: RETVAL Uint8 pixelformat_Ashift( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Ashift; OUTPUT: RETVAL Uint32 pixelformat_Rmask( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Rmask; OUTPUT: RETVAL Uint32 pixelformat_Bmask( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Bmask; OUTPUT: RETVAL Uint32 pixelformat_Gmask( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Gmask; OUTPUT: RETVAL Uint32 pixelformat_Amask( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->Amask; OUTPUT: RETVAL Uint32 pixelformat_colorkey( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->colorkey; OUTPUT: RETVAL Uint8 pixelformat_alpha( pixelformat ) SDL_PixelFormat *pixelformat CODE: RETVAL = pixelformat->alpha; OUTPUT: RETVAL void pixelformat_DESTROY ( bag ) SV *bag CODE: objDESTROY(bag, safefree); ���������������������������SDL-2.540/src/Core/objects/Rect.xs������������������������������������������������������������������000444��000765��000024�� 2263�11760240072� 16770� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::Rect PACKAGE = SDL::Rect PREFIX = rect_ =for documentation SDL_Rect -- Defines a rectangular area typedef struct{ Sint16 x, y; Uint16 w, h; } SDL_Rect; =cut SDL_Rect * rect_new (CLASS, x, y, w, h) char* CLASS Sint16 x Sint16 y Uint16 w Uint16 h CODE: RETVAL = (SDL_Rect *) safemalloc (sizeof(SDL_Rect)); RETVAL->x = x; RETVAL->y = y; RETVAL->w = w; RETVAL->h = h; OUTPUT: RETVAL Sint16 rect_x ( rect, ... ) SDL_Rect *rect CODE: if (items > 1 ) rect->x = SvIV(ST(1)); RETVAL = rect->x; OUTPUT: RETVAL Sint16 rect_y ( rect, ... ) SDL_Rect *rect CODE: if (items > 1 ) rect->y = SvIV(ST(1)); RETVAL = rect->y; OUTPUT: RETVAL Uint16 rect_w ( rect, ... ) SDL_Rect *rect CODE: if (items > 1 ) rect->w = SvIV(ST(1)); RETVAL = rect->w; OUTPUT: RETVAL Uint16 rect_h ( rect, ... ) SDL_Rect *rect CODE: if (items > 1 ) rect->h = SvIV(ST(1)); RETVAL = rect->h; OUTPUT: RETVAL void rect_DESTROY(bag) SV *bag CODE: objDESTROY(bag, safefree); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/RWOps.xs�����������������������������������������������������������������000444��000765��000024�� 3315�11760240072� 17104� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::RWOps PACKAGE = SDL::RWOps PREFIX = rwops_ =for documentation SDL_RWops -- Direct memory read write. =cut SDL_RWops* rwops_alloc (CLASS) char* CLASS CODE: RETVAL = SDL_AllocRW(); OUTPUT: RETVAL SDL_RWops* rwops_new_file ( CLASS, file, mode ) char* CLASS char* file char * mode CODE: RETVAL = SDL_RWFromFile(file,mode); OUTPUT: RETVAL SDL_RWops* rwops_new_FP ( CLASS, fp, autoclose ) char* CLASS FILE* fp int autoclose CODE: RETVAL = SDL_RWFromFP(fp,autoclose); OUTPUT: RETVAL SDL_RWops* rwops_new_mem ( CLASS, mem, size ) char* CLASS char* mem int size CODE: RETVAL = SDL_RWFromMem((void*)mem,size); OUTPUT: RETVAL SDL_RWops * rwops_new_const_mem (CLASS, mem, ... ) char* CLASS SV* mem CODE: STRLEN len; unsigned char *text = SvPV(mem, len); if(items > 2 && SvIOK(ST(2))) len = SvIV(ST(2)); RETVAL = SDL_RWFromConstMem((const void*)text, len); OUTPUT: RETVAL int rwops_seek ( rw, off, whence ) SDL_RWops* rw int off int whence CODE: RETVAL = SDL_RWseek(rw,off,whence); OUTPUT: RETVAL int rwops_tell ( rw ) SDL_RWops* rw CODE: RETVAL = SDL_RWtell(rw); OUTPUT: RETVAL int rwops_read ( rw, mem, size, n ) SDL_RWops* rw char* mem int size int n CODE: RETVAL = SDL_RWread(rw,mem,size,n); OUTPUT: RETVAL int rwops_write ( rw, mem, size, n ) SDL_RWops* rw char* mem int size int n CODE: RETVAL = SDL_RWwrite(rw,mem,size,n); OUTPUT: RETVAL int rwops_close ( rw ) SDL_RWops* rw CODE: RETVAL = SDL_RWclose(rw); OUTPUT: RETVAL void rwops_free ( rw ) SDL_RWops* rw CODE: SDL_FreeRW(rw); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Surface.xs���������������������������������������������������������������000444��000765��000024�� 11146�11760240073� 17504� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #define NEED_newSV_type_GLOBAL #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> void _free_surface(void *object) { // Frees the resources used by a previously created SDL_Surface. // If the surface was created using SDL_CreateRGBSurfaceFrom then the pixel data is not freed. SDL_FreeSurface((SDL_Surface *)object); } MODULE = SDL::Surface PACKAGE = SDL::Surface PREFIX = surface_ =for documentation SDL_Surface -- Graphic surface structure typedef struct SDL_Surface { Uint32 flags; /* Read-only */ SDL_PixelFormat *format; /* Read-only */ int w, h; /* Read-only */ Uint16 pitch; /* Read-only */ void *pixels; /* Read-write */ SDL_Rect clip_rect; /* Read-only */ int refcount; /* Read-mostly */ /* This structure also contains private fields not shown here */ } SDL_Surface; =cut SDL_Surface * surface_new (CLASS, flags, width, height, depth = 32, Rmask = 0xFF000000, Gmask = 0x00FF0000, Bmask = 0x0000FF00, Amask = 0x000000FF ) char* CLASS Uint32 flags int width int height int depth Uint32 Rmask Uint32 Gmask Uint32 Bmask Uint32 Amask CODE: RETVAL = SDL_CreateRGBSurface ( flags, width, height, depth, Rmask, Gmask, Bmask, Amask ); OUTPUT: RETVAL SDL_Surface * surface_new_from (CLASS, pixels, width, height, depth, pitch, Rmask = 0xFF000000 , Gmask = 0x00FF0000, Bmask = 0x0000FF00, Amask = 0x000000FF ) char* CLASS int width int height int depth int pitch Uint32 Rmask Uint32 Gmask Uint32 Bmask Uint32 Amask SV* pixels CODE: int* pix = (int *) SvRV ( (SV*) SvRV( pixels ) ); RETVAL = SDL_CreateRGBSurfaceFrom ( (void *)pix, width, height, depth, pitch, Rmask, Gmask, Bmask, Amask ); if( RETVAL == NULL) croak ("SDL_CreateRGBSurfaceFrom failed: %s", SDL_GetError()); OUTPUT: RETVAL SV * surface_format ( surface ) SDL_Surface *surface PREINIT: char* CLASS = "SDL::PixelFormat"; CODE: RETVAL = cpy2bag( surface->format, sizeof(SDL_PixelFormat *), sizeof(SDL_PixelFormat), "SDL::PixelFormat" ); OUTPUT: RETVAL Uint16 surface_pitch( surface ) SDL_Surface *surface CODE: RETVAL = surface->pitch; OUTPUT: RETVAL Uint32 surface_flags( surface ) SDL_Surface *surface CODE: RETVAL = surface->flags; OUTPUT: RETVAL Uint16 surface_w ( surface ) SDL_Surface *surface CODE: RETVAL = surface->w; OUTPUT: RETVAL Uint16 surface_h ( surface ) SDL_Surface *surface CODE: RETVAL = surface->h; OUTPUT: RETVAL int surface_get_pixel(surface, offset) SDL_Surface *surface int offset CODE: switch(surface->format->BytesPerPixel) { case 1: RETVAL = ((Uint8 *)surface->pixels)[offset]; break; case 2: RETVAL = ((Uint16 *)surface->pixels)[offset]; break; case 3: RETVAL = ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel] << 0) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 1] << 8) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 2] << 16); break; case 4: RETVAL = ((Uint32 *)surface->pixels)[offset]; break; default: XSRETURN_UNDEF; break; } OUTPUT: RETVAL SV * surface_get_pixels_ptr(surface) SDL_Surface *surface CODE: if(!surface->pixels) croak("Incomplete surface"); SV * sv = newSV_type(SVt_PV); SvPV_set(sv, surface->pixels); SvPOK_on(sv); SvREADONLY(sv); SvLEN_set(sv, 0); SvCUR_set(sv, surface->format->BytesPerPixel * surface->w * surface->h); RETVAL = newRV_noinc(sv); OUTPUT: RETVAL void surface_set_pixels(surface, offset, value) SDL_Surface *surface int offset unsigned int value CODE: switch(surface->format->BytesPerPixel) { case 1: ((Uint8 *)surface->pixels)[offset] = (Uint8)value; break; case 2: ((Uint16 *)surface->pixels)[offset] = (Uint16)value; break; case 3: ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel] = (Uint8)( value & 0xFF); ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 1] = (Uint8)((value << 8) & 0xFF); ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 2] = (Uint8)((value << 16) & 0xFF); break; case 4: ((Uint32 *)surface->pixels)[offset] = (Uint32)value; break; } void surface_DESTROY(bag) SV* bag CODE: objDESTROY(bag, _free_surface); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/typemap������������������������������������������������������������������000444��000765��000024�� 0�11760240073� 17025� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Core/objects/Version.xs���������������������������������������������������������������000444��000765��000024�� 1674�11760240073� 17526� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include <SDL_version.h> MODULE = SDL::Version PACKAGE = SDL::Version PREFIX = version_ =for documentation SDL_Version -- Version structure typedef struct SDL_version { Uint8 major; Uint8 minor; Uint8 patch; } SDL_version; =cut SDL_version * version_new( CLASS ) char* CLASS CODE: RETVAL = safemalloc( sizeof( SDL_version) ); OUTPUT: RETVAL Uint8 version_major ( version, ... ) SDL_version *version CODE: RETVAL = version->major; OUTPUT: RETVAL Uint8 version_minor ( version, ... ) SDL_version *version CODE: RETVAL = version->minor; OUTPUT: RETVAL Uint8 version_patch ( version, ... ) SDL_version *version CODE: RETVAL = version->patch; OUTPUT: RETVAL void version_DESTROY ( bag ) SV *bag CODE: objDESTROY(bag, safefree); ��������������������������������������������������������������������SDL-2.540/src/Core/objects/VideoInfo.xs�������������������������������������������������������������000444��000765��000024�� 4715�11760240072� 17761� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> MODULE = SDL::VideoInfo PACKAGE = SDL::VideoInfo PREFIX = videoinfo_ =for documentation SDL_VideoInfo -- Video target information typedef struct{ Uint32 hw_available:1; Uint32 wm_available:1; Uint32 blit_hw:1; Uint32 blit_hw_CC:1; Uint32 blit_hw_A:1; Uint32 blit_sw:1; Uint32 blit_sw_CC:1; Uint32 blit_sw_A:1; Uint32 blit_fill:1; Uint32 video_mem; SDL_PixelFormat *vfmt; int current_w; int current_h; } SDL_VideoInfo; =cut Uint32 videoinfo_hw_available( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->hw_available; OUTPUT: RETVAL Uint32 videoinfo_wm_available( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->wm_available; OUTPUT: RETVAL Uint32 videoinfo_blit_hw( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_hw; OUTPUT: RETVAL Uint32 videoinfo_blit_hw_CC( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_hw_CC; OUTPUT: RETVAL Uint32 videoinfo_blit_hw_A( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_hw_A; OUTPUT: RETVAL Uint32 videoinfo_blit_sw( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_sw; OUTPUT: RETVAL Uint32 videoinfo_blit_sw_CC( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_sw_CC; OUTPUT: RETVAL Uint32 videoinfo_blit_sw_A( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_sw_A; OUTPUT: RETVAL Uint32 videoinfo_blit_fill( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->blit_fill; OUTPUT: RETVAL Uint32 videoinfo_video_mem( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->video_mem; OUTPUT: RETVAL SV * videoinfo_vfmt( videoinfo ) SDL_VideoInfo *videoinfo PREINIT: char* CLASS = "SDL::PixelFormat"; CODE: RETVAL = cpy2bag( videoinfo->vfmt, sizeof(SDL_PixelFormat *), sizeof(SDL_PixelFormat), "SDL::PixelFormat" ); OUTPUT: RETVAL #if SDL_MAJOR_VERSION >= 1 && SDL_MINOR_VERSION >=2 && SDL_PATCHLEVEL >=10 int videoinfo_current_w( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->current_w; OUTPUT: RETVAL int videoinfo_current_h( videoinfo ) SDL_VideoInfo *videoinfo CODE: RETVAL = videoinfo->current_h; OUTPUT: RETVAL #endif ���������������������������������������������������SDL-2.540/src/GFX�����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13463� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/GFX/BlitFunc.xs�����������������������������������������������������������������������000444��000765��000024�� 730�11760240072� 15661� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_BLITFUNC #include <SDL_gfxBlitFunc.h> #endif MODULE = SDL::GFX::BlitFunc PACKAGE = SDL::GFX::BlitFunc PREFIX = gfx_blit_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http://www.ferzkopp.net/joomla/content/view/19/14/> =cut #ifdef HAVE_SDL_GFX_BLITFUNC #endif ����������������������������������������SDL-2.540/src/GFX/CHANGELOG�������������������������������������������������������������������������000444��000765��000024�� 23060�11760240072� 15052� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ver 2.0.20 - Wed Sep 23 18:42:02 PDT 2009 * Fix for 1-pixel postponement with 8bit scaling * Updates to headers and configure to allow for cross-compiling to DLL (not just static .a) and fixes for compiling on Windows using autotools * Added Visual CE Project to Other Builds * Added Symbian and Windows 64bit fix for lrint function. Ver 2.0.19 - Mon Apr 20 22:56:59 PDT 2009 * gcc43 compiler patch for asm code in image filters as per http://bugs.gentoo.org/219621 (Peter Alfredsen) * off-by-one hline patch for 1byte indexed surfaces (Manuel Lausch) * update acinclude.m4 from SDL-1.2 and moved # serial in file * applied patch to add pkg-config support for SDL_gfx (Luca Bigliardi) * changed configure.in INTERFACE_AGE and BINARY_AGE based on Debian build feedback (Barry deFreese) * fixed zoom XY-flip code and made it available for all modes in zoom and rotations * fixed edge issue on interpolated rotozoom modes * updated TestRotozoom custom test mode, added delay parameter, added tests which include flipping, included negative rotation * update libtool files * updated Makefile.mingw (Jan Leike) Ver 2.0.18 - Sun Dec 21 08:38:20 PST 2008 * libtool update for dependencies * MSVC C89 variable hoisting to enable MSVC compile (sweetlilmre) * addition of VC9 (Visual Studio 2008) project file (sweetlilmre) * update to MinGW make file (Sergio Padrino, sweetlilmre) * fix uninitialised variables in _putPixelAlpha() (Paul Pedriana) * reverted to original alpha routine in _putPixelAlpha() as new one was causing issues in 16bbp new routine #define has been renamed to EXPERIMENTAL_ALPHA_PIXEL_ROUTINE original is now DEFAULT_ALPHA_PIXEL_ROUTINE * added colorkey handling patch to rotozoom (Sergio Padrino) * downgraded optimization to -O for asm compatibility with gcc4 Ver 2.0.17 - Sun Jun 1 15:39:38 EDT 2008 * hline/vline clipping and swap-logic fixed * clipping box dimension check added and clipping-checks optimized * TestFonts program updated * Updated documentation on cross-compilation, AMD64 * Fixed circleColor overdraw + [version check done] Added arcColor routine + [version check done] Added polygonColorMT and polygonTextureMT routines * Updated 32bit alpha blending routine Ver 2.0.16 - Mon Feb 5 19:03:31 AST 2007 * updated config.sub to newer version + added custom RGBA blitter function that sets/maintains target alpha + added setAlpha function that sets alpha values in 32bit surfaces * added TextGfxBlit testprogram for new functions * Fixed C++ type in .h files (thanks Olivier) * Update some text in README and .spec file * Removed broken Uint filter routines from test program * "Cosmetic" changes to test programs and Automake.am Ver 2.0.15 - Fri Dec 22 08:44:31 AST 2006 * bugfixes in 32bit _putPixelAlpha/filledRectAlpha (thanks CISC) * various bugfixes in return value generation and return (thanks CISC) * lock font-surface before using it (thanks CISC) * fix some breakage in non-MMX filter routines (thanks CISC) * fix typo in TestABGR (thanks CISC) * fix double buffer flipping in Tets programs (thanks CISC) * fixed microversion in .h * fixed texturePolygon inverted bug * fixed wrong surface use in test 21 of TestRotozoom Ver 2.0.14 - Tue Dec 19 08:49:02 AST 2006 (SDL_GFXPRIMITIVES_MICRO is 13!) + added texturedPolygon routine to library (thanks Jees) * changed iterator condition in aaellipse to add some overdraw to smooth circle + [version check done] added ShrinkImage routine to rotozoom code * added TestABGR Test program (bug in SDL_gfx or SDL??) * improved TestImageFilter program (bug in Uint filters) * changed .so versioning from .so.13.0.0 to .so.0.0.14 (best is to remove all old libs before installing) * added updated MacOSX ProjectBuilder file (thanks Brian) * added info on MacOSX 10.3 build * added mingw (on cygwin) makefile (thanks Brian) * added Dev-Cpp makefile (thanks Sebastian) * removed some unused variables from gfx and rotozoom code (thanks Thi) * fixed a non-critical typecast mistake (thanks Thi) * converted all C++ comments to C comments in SDL_imageFilter Ver 2.0.13 - Tue Dec 21 08:41:25 EST 2004 * changed include back to "SDL.h" * compile fixes for OSX fink (thanks (Michael) * compile fixes for gcc3.4 (thanks Dries) + [version check done] support vertical and horizontal flipping of axis in new rotozoomSurfaceXY function (thanks Victor) * updated TestRotozoom program Ver 2.0.12 - Mon Aug 30 09:04:11 EDT 2004 * piecolor naming fix * primitive API change to 'filledPie' * introduction of some const variables Ver 2.0.11 - Thu May 13 09:42:34 EDT 2004 * added pieRGBA/pieColor primitive (non filled pie) * added QNX6 build patch * use $(includedir)/SDL to automake setup * updated README * added 2x2 box & pie tests * added dynamic font setup routine * added sample font files to the Fonts directory * added font test program * string routines changed to use const char * fixed TestRotozoom clear color bug Ver 2.0.10 - Thu Dec 11 09:40:08 EST 2003 * updated "missing" script to newer version to avoid build errors * fixed filled polygon int32 overflow error in calculation * updated RPM spec file for new website path * added micro version number to .h file Ver 2.0.9 - Mon Oct 27 10:03:18 EST 2003 * Fixed "filled-box width too small by 1 bug" for A=255 * Wrong versioning in .h file Ver 2.0.8 - Wed Jul 16 16:18:13 EDT 2003 * Modified filledPolygon drawing (The edges of a filled polygon and a polyline were reported to not intersect correctly. With this fix, the edges do still do not intersect 100% due to the difference in the algorithms. But now a polygon will never draw outside of the area enclosed by a polyline.) Ver 2.0.7 - Sun Jun 8 08:17:38 EDT 2003 * Added MacOS X Project Builder code * changed SDL include to * added bezier curve Ver 2.0.6 - Sat May 25 15:12:17 EDT 2002 * Fixed clipping code for most primitives * Added clipping code for character * Added VC7 project file Ver 2.0.5 - n/a * Removed some unused code Ver 2.0.4 - Sat Feb 9 22:09:45 EST 2002 * Fixed rectangle drawing bug on edges for A<255 * Added trigons (triangles) as wrapper calls to polygon. Ver 2.0.3 - Sat Jan 26 10:06:16 EST 2002 * Zipped VisualC directory to avoid EOL problems. * Fixed aalineColor call (y2 parameter was y1). * Fixed rotozoom bug that caused black or undefined pixels on edges. Ver 2.0.2 - Sat Jan 19 21:41:28 EST 2002 * Removed dependency from GL libraries during compile. * Added VisualC makefile. Ver 2.0 - Sat Dec 29 16:27:57 EST 2001 * Initial release of SDL_gfx based on SDL_gfxPrimitives and SDL_rotozoom code. * Added framerate code and testprogram. * Added imageFilters code and testprogram. * New distribution: source code, README, configure system etc. Previous versions ================= SDL_gfxPrimitives: ------------------ Ver 1.5 - Mon Jul 2 11:27:40 EDT 2001 * New alpha blending code for factor 4 speedups if a<255 on all functions. * Modified include file for W32 DLL support. * Added VC6 project files for DLL and static library building. * Added simple AA-circle/-ellipse routine - quality needs improvement. * Removed 32bit shift on 64bit number from aaline for better portability across platforms. * Removed a couple more compiler warnings (i.e. purely cosmetic fix). Ver 1.4 - Sun Jun 3 11:52:07 EDT 2001 * Fixed hline, vline and rectangle clipping and result codes. * Fixed AA-line arithmetic (was alpha subtraction, should be alpha ratio). * More caching on fonts for speedups. * More pointer checks in several places. * New special cases for ellipses for rx=0/ry=0. * Same sanity checks for circles/ellipses. * Same return code for polygon/filledpolygon. Ver 1.3 - Thu May 31 12:41:35 EDT 2001 * Minor cleanups and fixes (gcc -Wall is your friend). Ver 1.2 again - Thu Apr 5 07:50:57 EDT 2001 * Fixed lineRGBA and aalineRGBA calls (had coordinate-passing mixed up twice, thanks Lion for pointing this out) Ver 1.2 - Wed Apr 4 08:32:42 EDT 2001 * Changed to a dual, you-have-the-choice(TM) licencing system to accomodate GPL developments using SDL_gfxPrimitives. * Some minor fixes (thanks Karl). * All routines return proper result code now. * Clipping for aaline, circle and ellipse. Ver 1.1 - Thu Mar 22 15:28:27 EST 2001 * Added code for Alpha=255 pixel drawing through direct memory writes to all routines resulting in a much faster performance (factor 5 to 20) for non transparent pixels. * New test and benchmark program with better info and nicer look. * More info in README. Proper licence file. Comment cleanup. Ver 1.0 - Fri Mar 16 08:38:07 EST 2001 * Initial release SDL_rotozoom: ------------- Ver 1.6 - Mon Nov 19 21:19:26 EST 2001 * Added interpolation to alpha channel (simplifies code) * Ran the sourcecode through 'indent' for better readability Ver 1.5 - Sat Jul 7 13:02:07 EDT 2001 * Added project files (VisualC.zip) and modifications for VC project building. * Fixed old versioning in configure.in file. * Fixed LICENSE file and LGPL source reference. Ver 1.4 - Mon Jun 4 12:15:31 EDT 2001 * Removed SDL_SoftStretch call again in favour of an internal zoom routine. * Added new zoomSurface() function with seperate X and Y zoom factors. Ver 1.3 - Thu May 31 08:37:36 EDT 2001 * Modified code to handle RGBA or ABGR source surfaces transparently. * More error checking, source surface locking. * Slighly expanded test program with event handling. Ver 1.2 - Wed May 30 18:18:05 EDT 2001 * Fixed the completely broken 32bit routine's pointer arithmetic. * Uses SDL_SoftStretch in certain cases (angle=0, smooth=0). * Convert source surface on the fly if not 8/32bit. * Added license file - was empty before (duh). Ver 1.1 - Wed May 23 15:04:42 EDT 2001 * Added automake/autoconf scripts and testprogram. Ver 1.0 - Fri Mar 16 08:16:06 EST 2001 * Initial release��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/GFX/FPSManager.xs���������������������������������������������������������������������000444��000765��000024�� 3761�11760240073� 16126� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_FRAMERATE #include <SDL_framerate.h> #endif MODULE = SDL::GFX::FPSManager PACKAGE = SDL::GFX::FPSManager PREFIX = gfx_fps_ =for documentation The Following are XS bindings to the SDL_gfx Library typedef struct { Uint32 framecount; float rateticks; Uint32 lastticks; Uint32 rate; } FPSmanager; Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut #ifdef HAVE_SDL_GFX_FRAMERATE FPSmanager * gfx_fps_new (CLASS, framecount, rateticks, lastticks, rate) char *CLASS Uint32 framecount float rateticks Uint32 lastticks Uint32 rate CODE: RETVAL = (FPSmanager *) safemalloc(sizeof(FPSmanager)); RETVAL->framecount = framecount; RETVAL->rateticks = rateticks; RETVAL->lastticks = lastticks; RETVAL->rate = rate; OUTPUT: RETVAL Uint32 gfx_fps_framecount ( fps, ... ) FPSmanager *fps CODE: if (items > 1 ) fps->framecount = SvIV(ST(1)); RETVAL = fps->framecount; OUTPUT: RETVAL float gfx_fps_rateticks ( fps, ... ) FPSmanager *fps CODE: if (items > 1 ) fps->rateticks = SvNV(ST(1)); RETVAL = fps->rateticks; OUTPUT: RETVAL Uint32 gfx_fps_lastticks ( fps, ... ) FPSmanager *fps CODE: if (items > 1 ) fps->lastticks = SvIV(ST(1)); RETVAL = fps->lastticks; OUTPUT: RETVAL Uint32 gfx_fps_rate ( fps, ... ) FPSmanager *fps CODE: if (items > 1 ) fps->rate = SvIV(ST(1)); RETVAL = fps->rate; OUTPUT: RETVAL void gfx_fps_DESTROY(bag) SV *bag CODE: if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( bag ))); FPSmanager * fps = (FPSmanager*)(pointers[0]); if (PERL_GET_CONTEXT == pointers[1]) { pointers[0] = NULL; safefree(fps); } } else if (bag == 0) { XSRETURN(0); } else { XSRETURN_UNDEF; } #endif ���������������SDL-2.540/src/GFX/Framerate.xs����������������������������������������������������������������������000444��000765��000024�� 1612�11760240072� 16101� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_FRAMERATE #include <SDL_framerate.h> #endif MODULE = SDL::GFX::Framerate PACKAGE = SDL::GFX::Framerate PREFIX = gfx_frame_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut #ifdef HAVE_SDL_GFX_FRAMERATE void gfx_frame_init(manager) FPSmanager * manager CODE: SDL_initFramerate(manager); int gfx_frame_set(manager, rate) FPSmanager * manager int rate CODE: RETVAL = SDL_setFramerate(manager, rate); OUTPUT: RETVAL int gfx_frame_get(manager) FPSmanager * manager CODE: RETVAL = SDL_getFramerate(manager); OUTPUT: RETVAL void gfx_frame_delay(manager) FPSmanager * manager CODE: SDL_framerateDelay(manager); #endif ����������������������������������������������������������������������������������������������������������������������SDL-2.540/src/GFX/GFX.xs����������������������������������������������������������������������������000444��000765��000024�� 2177�11760240072� 14626� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include <SDL.h> #ifdef HAVE_SDL_GFX_PRIMITIVES #include <SDL_gfxPrimitives.h> #endif SDL_version *linked_version = NULL; #ifndef SDL_GFXPRIMITIVES_MAJOR #define SDL_GFXPRIMITIVES_MAJOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MINOR #define SDL_GFXPRIMITIVES_MINOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MICRO #define SDL_GFXPRIMITIVES_MICRO 0 #endif #ifndef SDL_GFXPRIMITIVES_VERSION #define SDL_GFXPRIMITIVES_VERSION(X) \ { \ (X)->major = SDL_GFXPRIMITIVES_MAJOR; \ (X)->minor = SDL_GFXPRIMITIVES_MINOR; \ (X)->patch = SDL_GFXPRIMITIVES_MICRO; \ } #endif MODULE = SDL::GFX PACKAGE = SDL::GFX PREFIX = gfx_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut const SDL_version * gfx_linked_version() PREINIT: char* CLASS = "SDL::Version"; CODE: if(linked_version == NULL) { linked_version = safemalloc(sizeof(SDL_version)); } SDL_GFXPRIMITIVES_VERSION(linked_version); RETVAL = linked_version; OUTPUT: RETVAL �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/GFX/ImageFilter.xs��������������������������������������������������������������������000444��000765��000024�� 22641�11760240073� 16411� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_IMAGEFILTER #include <SDL_imageFilter.h> #endif MODULE = SDL::GFX::ImageFilter PACKAGE = SDL::GFX::ImageFilter PREFIX = gfx_image_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut #ifdef HAVE_SDL_GFX_IMAGEFILTER int gfx_image_MMX_detect() CODE: RETVAL = SDL_imageFilterMMXdetect(); OUTPUT: RETVAL void gfx_image_MMX_off() CODE: SDL_imageFilterMMXoff(); void gfx_image_MMX_on() CODE: SDL_imageFilterMMXon(); int gfx_image_add(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterAdd(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_mean(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMean(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_sub(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterSub(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_abs_diff(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterAbsDiff(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_mult(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMult(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_mult_nor(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultNor(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_mult_div_by_2(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultDivby2(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_mult_div_by_4(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterMultDivby4(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_bit_and(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitAnd(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_bit_or(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitOr(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_div(Src1, Src2, Dest, length) unsigned char *Src1 unsigned char *Src2 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterDiv(Src1, Src2, Dest, length); OUTPUT: RETVAL int gfx_image_bit_negation(Src1, Dest, length) unsigned char *Src1 unsigned char *Dest int length CODE: RETVAL = SDL_imageFilterBitNegation(Src1, Dest, length); OUTPUT: RETVAL int gfx_image_add_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterAddByte(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_add_uint(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned int C CODE: RETVAL = SDL_imageFilterAddUint(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_add_byte_to_half(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterAddByteToHalf(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_sub_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterSubByte(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_sub_uint(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned int C CODE: RETVAL = SDL_imageFilterSubUint(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_shift_right(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftRight(Src1, Dest, length, N); OUTPUT: RETVAL int gfx_image_shift_right_uint(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftRightUint(Src1, Dest, length, N); OUTPUT: RETVAL int gfx_image_mult_by_byte(Src1, Dest, length, C) unsigned char *Src1 unsigned char *Dest int length unsigned char C CODE: RETVAL = SDL_imageFilterMultByByte(Src1, Dest, length, C); OUTPUT: RETVAL int gfx_image_shift_right_and_mult_by_byte(Src1, Dest, length, N, C) unsigned char *Src1 unsigned char *Dest int length unsigned char N unsigned char C CODE: RETVAL = SDL_imageFilterShiftRightAndMultByByte(Src1, Dest, length, N, C); OUTPUT: RETVAL int gfx_image_shift_left_byte(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeftByte(Src1, Dest, length, N); OUTPUT: RETVAL int gfx_image_shift_left_uint(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeftUint(Src1, Dest, length, N); OUTPUT: RETVAL int gfx_image_shift_left(Src1, Dest, length, N) unsigned char *Src1 unsigned char *Dest int length unsigned char N CODE: RETVAL = SDL_imageFilterShiftLeft(Src1, Dest, length, N); OUTPUT: RETVAL int gfx_image_binarize_using_threshold(Src1, Dest, length, T) unsigned char *Src1 unsigned char *Dest int length unsigned char T CODE: RETVAL = SDL_imageFilterBinarizeUsingThreshold(Src1, Dest, length, T); OUTPUT: RETVAL int gfx_image_clip_to_range(Src1, Dest, length, Tmin, Tmax) unsigned char *Src1 unsigned char *Dest int length unsigned char Tmin unsigned char Tmax CODE: RETVAL = SDL_imageFilterClipToRange(Src1, Dest, length, Tmin, Tmax); OUTPUT: RETVAL int gfx_image_normalize_linear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax) unsigned char *Src1 unsigned char *Dest int length int Cmin int Cmax int Nmin int Nmax CODE: RETVAL = SDL_imageFilterNormalizeLinear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax); OUTPUT: RETVAL int gfx_image_convolve_kernel_3x3_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel3x3Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL int gfx_image_convolve_kernel_5x5_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel5x5Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL int gfx_image_convolve_kernel_7x7_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel7x7Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL int gfx_image_convolve_kernel_9x9_divide(Src, Dest, rows, columns, Kernel, Divisor) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char Divisor CODE: RETVAL = SDL_imageFilterConvolveKernel9x9Divide(Src, Dest, rows, columns, Kernel, Divisor); OUTPUT: RETVAL int gfx_image_convolve_kernel_3x3_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel3x3ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL int gfx_image_convolve_kernel_5x5_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel5x5ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL int gfx_image_convolve_kernel_7x7_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel7x7ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL int gfx_image_convolve_kernel_9x9_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns Sint16 *Kernel unsigned char NRightShift CODE: RETVAL = SDL_imageFilterConvolveKernel9x9ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift); OUTPUT: RETVAL int gfx_image_sobel_x(Src, Dest, rows, columns) unsigned char *Src unsigned char *Dest int rows int columns CODE: RETVAL = SDL_imageFilterSobelX(Src, Dest, rows, columns); OUTPUT: RETVAL int gfx_image_sobel_x_shift_right(Src, Dest, rows, columns, NRightShift) unsigned char *Src unsigned char *Dest int rows int columns unsigned char NRightShift CODE: RETVAL = SDL_imageFilterSobelXShiftRight(Src, Dest, rows, columns, NRightShift); OUTPUT: RETVAL void gfx_image_align_stack() CODE: SDL_imageFilterAlignStack(); void gfx_image_restore_stack() CODE: SDL_imageFilterRestoreStack(); #endif �����������������������������������������������������������������������������������������������SDL-2.540/src/GFX/Primitives.xs���������������������������������������������������������������������000444��000765��000024�� 42757�11760240072� 16365� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_PRIMITIVES #include <SDL_gfxPrimitives.h> #ifndef SDL_GFXPRIMITIVES_MAJOR #define SDL_GFXPRIMITIVES_MAJOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MINOR #define SDL_GFXPRIMITIVES_MINOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MICRO #define SDL_GFXPRIMITIVES_MICRO 0 #endif #ifndef SDL_GFXPRIMITEVES_VERSION #define SDL_GFXPRIMITEVES_VERSION(X) \ { \ (X)->major = SDL_GFXPRIMITIVES_MAJOR; \ (X)->minor = SDL_GFXPRIMITIVES_MINOR; \ (X)->patch = SDL_GFXPRIMITIVES_MICRO; \ } #endif #endif MODULE = SDL::GFX::Primitives PACKAGE = SDL::GFX::Primitives PREFIX = gfx_prim_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut #ifdef HAVE_SDL_GFX_PRIMITIVES const SDL_version * gfx_prim_linked_version() PREINIT: char* CLASS = "SDL::Version"; CODE: SDL_version *linked_version = safemalloc( sizeof( SDL_version) ); SDL_GFXPRIMITEVES_VERSION(linked_version); RETVAL = linked_version; OUTPUT: RETVAL int gfx_prim_pixel_color(dst, x, y, color) SDL_Surface *dst Sint16 x Sint16 y Uint32 color CODE: RETVAL = pixelColor(dst, x, y, color); OUTPUT: RETVAL int gfx_prim_pixel_RGBA(dst, x, y, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = pixelRGBA(dst, x, y, r, g, b, a); OUTPUT: RETVAL int gfx_prim_hline_color(dst, x1, x2, y, color) SDL_Surface * dst Sint16 x1 Sint16 x2 Sint16 y Uint32 color CODE: RETVAL = hlineColor(dst, x1, x2, y, color); OUTPUT: RETVAL int gfx_prim_hline_RGBA(dst, x1, x2, y, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 x2 Sint16 y Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = hlineRGBA(dst, x1, x2, y, r, g, b, a); OUTPUT: RETVAL int gfx_prim_vline_color(dst, x, y1, y2, color) SDL_Surface * dst Sint16 x Sint16 y1 Sint16 y2 Uint32 color CODE: RETVAL = vlineColor(dst, x, y1, y2, color); OUTPUT: RETVAL int gfx_prim_vline_RGBA(dst, x, y1, y2, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y1 Sint16 y2 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = vlineRGBA(dst, x, y1, y2, r, g, b, a); OUTPUT: RETVAL int gfx_prim_rectangle_color(dst, x1, y1, x2, y2, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint32 color CODE: RETVAL = rectangleColor(dst, x1, y1, x2, y2, color); OUTPUT: RETVAL int gfx_prim_rectangle_RGBA(dst, x1, y1, x2, y2, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = rectangleRGBA(dst, x1, y1, x2, y2, r, g, b, a); OUTPUT: RETVAL int gfx_prim_box_color(dst, x1, y1, x2, y2, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint32 color CODE: RETVAL = boxColor(dst, x1, y1, x2, y2, color); OUTPUT: RETVAL int gfx_prim_box_RGBA(dst, x1, y1, x2, y2, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = boxRGBA(dst, x1, y1, x2, y2, r, g, b, a); OUTPUT: RETVAL int gfx_prim_line_color(dst, x1, y1, x2, y2, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint32 color CODE: RETVAL = lineColor(dst, x1, y1, x2, y2, color); OUTPUT: RETVAL int gfx_prim_line_RGBA(dst, x1, y1, x2, y2, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = lineRGBA(dst, x1, y1, x2, y2, r, g, b, a); OUTPUT: RETVAL int gfx_prim_aaline_color(dst, x1, y1, x2, y2, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint32 color CODE: RETVAL = aalineColor(dst, x1, y1, x2, y2, color); OUTPUT: RETVAL int gfx_prim_aaline_RGBA(dst, x1, y1, x2, y2, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = aalineRGBA(dst, x1, y1, x2, y2, r, g, b, a); OUTPUT: RETVAL int gfx_prim_circle_color(dst, x, y, r, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 r Uint32 color CODE: RETVAL = circleColor(dst, x, y, r, color); OUTPUT: RETVAL int gfx_prim_circle_RGBA(dst, x, y, rad, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = circleRGBA(dst, x, y, rad, r, g, b, a); OUTPUT: RETVAL #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 17) int gfx_prim_arc_color( dst, x, y, r, start, end, color ) SDL_Surface * dst Sint16 x Sint16 y Sint16 r Sint16 start Sint16 end Uint32 color CODE: RETVAL = arcColor(dst, x, y, r, start, end, color); OUTPUT: RETVAL int gfx_prim_arc_RGBA( dst, x, y, rad, start, end, r, g, b, a ) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = arcRGBA(dst, x, y, rad, start, end, r, g, b, a); OUTPUT: RETVAL #else int gfx_prim_arc_color( dst, x, y, r, start, end, color ) SDL_Surface * dst Sint16 x Sint16 y Sint16 r Sint16 start Sint16 end Uint32 color CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Primitives::arc_color( dst, x, y, r, start, end, color )"); XSRETURN_UNDEF; OUTPUT: RETVAL int gfx_prim_arc_RGBA( dst, x, y, rad, start, end, r, g, b, a ) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint8 r Uint8 g Uint8 b Uint8 a CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Primitives::arc_RGBA( dst, x, y, rad, start, end, r, g, b, a )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif int gfx_prim_aacircle_color(dst, x, y, r, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 r Uint32 color CODE: RETVAL = aacircleColor(dst, x, y, r, color); OUTPUT: RETVAL int gfx_prim_aacircle_RGBA(dst, x, y, rad, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = aacircleRGBA(dst, x, y, rad, r, g, b, a); OUTPUT: RETVAL int gfx_prim_filled_circle_color(dst, x, y, r, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 r Uint32 color CODE: RETVAL = filledCircleColor(dst, x, y, r, color); OUTPUT: RETVAL int gfx_prim_filled_circle_RGBA(dst, x, y, rad, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = filledCircleRGBA(dst, x, y, rad, r, g, b, a); OUTPUT: RETVAL int gfx_prim_ellipse_color(dst, x, y, rx, ry, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 rx Sint16 ry Uint32 color CODE: RETVAL = ellipseColor(dst, x, y, rx, ry, color); OUTPUT: RETVAL int gfx_prim_ellipse_RGBA(dst, x, y, rx, ry, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rx Sint16 ry Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = ellipseRGBA(dst, x, y, rx, ry, r, g, b, a); OUTPUT: RETVAL int gfx_prim_aaellipse_color(dst, xc, yc, rx, ry, color) SDL_Surface * dst Sint16 xc Sint16 yc Sint16 rx Sint16 ry Uint32 color CODE: RETVAL = aaellipseColor(dst, xc, yc, rx, ry, color); OUTPUT: RETVAL int gfx_prim_aaellipse_RGBA(dst, x, y, rx, ry, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rx Sint16 ry Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = aaellipseRGBA(dst, x, y, rx, ry, r, g, b, a); OUTPUT: RETVAL int gfx_prim_filled_ellipse_color(dst, x, y, rx, ry, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 rx Sint16 ry Uint32 color CODE: RETVAL = filledEllipseColor(dst, x, y, rx, ry, color); OUTPUT: RETVAL int gfx_prim_filled_ellipse_RGBA(dst, x, y, rx, ry, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rx Sint16 ry Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = filledEllipseRGBA(dst, x, y, rx, ry, r, g, b, a); OUTPUT: RETVAL int gfx_prim_pie_color(dst, x, y, rad, start, end, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint32 color CODE: RETVAL = pieColor(dst, x, y, rad, start, end, color); OUTPUT: RETVAL int gfx_prim_pie_RGBA(dst, x, y, rad, start, end, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = pieRGBA(dst, x, y, rad, start, end, r, g, b, a); OUTPUT: RETVAL int gfx_prim_filled_pie_color(dst, x, y, rad, start, end, color) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint32 color CODE: RETVAL = filledPieColor(dst, x, y, rad, start, end, color); OUTPUT: RETVAL int gfx_prim_filled_pie_RGBA(dst, x, y, rad, start, end, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y Sint16 rad Sint16 start Sint16 end Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = filledPieRGBA(dst, x, y, rad, start, end, r, g, b, a); OUTPUT: RETVAL int gfx_prim_trigon_color(dst, x1, y1, x2, y2, x3, y3, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint32 color CODE: RETVAL = trigonColor(dst, x1, y1, x2, y2, x3, y3, color); OUTPUT: RETVAL int gfx_prim_trigon_RGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = trigonRGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a); OUTPUT: RETVAL int gfx_prim_aatrigon_color(dst, x1, y1, x2, y2, x3, y3, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint32 color CODE: RETVAL = aatrigonColor(dst, x1, y1, x2, y2, x3, y3, color); OUTPUT: RETVAL int gfx_prim_aatrigon_RGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = aatrigonRGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a); OUTPUT: RETVAL int gfx_prim_filled_trigon_color(dst, x1, y1, x2, y2, x3, y3, color) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint32 color CODE: RETVAL = filledTrigonColor(dst, x1, y1, x2, y2, x3, y3, color); OUTPUT: RETVAL int gfx_prim_filled_trigon_RGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a) SDL_Surface * dst Sint16 x1 Sint16 y1 Sint16 x2 Sint16 y2 Sint16 x3 Sint16 y3 Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = filledTrigonRGBA(dst, x1, y1, x2, y2, x3, y3, r, g, b, a); OUTPUT: RETVAL int gfx_prim_polygon_color(dst, vx, vy, n, color) SDL_Surface * dst AV* vx AV* vy int n Uint32 color CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = polygonColor(dst, _vx, _vy, n, color); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_polygon_RGBA(dst, vx, vy, n, r, g, b, a) SDL_Surface * dst AV* vx AV* vy int n Uint8 r Uint8 g Uint8 b Uint8 a CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = polygonRGBA(dst, _vx, _vy, n, r, g, b, a); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_aapolygon_color(dst, vx, vy, n, color) SDL_Surface * dst AV* vx AV* vy int n Uint32 color CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = aapolygonColor(dst, _vx, _vy, n, color); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_aapolygon_RGBA(dst, vx, vy, n, r, g, b, a) SDL_Surface * dst AV* vx AV* vy int n Uint8 r Uint8 g Uint8 b Uint8 a CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = aapolygonRGBA(dst, _vx, _vy, n, r, g, b, a); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_filled_polygon_color(dst, vx, vy, n, color) SDL_Surface * dst AV* vx AV* vy int n Uint32 color CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = filledPolygonColor(dst, _vx, _vy, n, color); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_filled_polygon_RGBA(dst, vx, vy, n, r, g, b, a) SDL_Surface * dst AV* vx AV* vy int n Uint8 r Uint8 g Uint8 b Uint8 a CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = filledPolygonRGBA(dst, _vx, _vy, n, r, g, b, a); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 14) int gfx_prim_textured_polygon(dst, vx, vy, n, texture, texture_dx, texture_dy) SDL_Surface * dst AV* vx AV* vy int n SDL_Surface * texture int texture_dx int texture_dy CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = texturedPolygon(dst, _vx, _vy, n, texture, texture_dx, texture_dy); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL #else int gfx_prim_textured_polygon(dst, vx, vy, n, texture, texture_dx, texture_dy) SDL_Surface * dst AV* vx AV* vy int n SDL_Surface * texture int texture_dx int texture_dy CODE: warn("SDL_gfx >= 2.0.14 needed for SDL::GFX::Rotozoom::textured_polygon(dst, vx, vy, n, texture, texture_dx, texture_dy)"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 17) int gfx_prim_filled_polygon_color_MT(dst, vx, vy, n, color, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n Uint32 color int **polyInts int *polyAllocated CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = filledPolygonColorMT(dst, _vx, _vy, n, color, polyInts, polyAllocated); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_filled_polygon_RGBA_MT(dst, vx, vy, n, r, g, b, a, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n Uint8 r Uint8 g Uint8 b Uint8 a int **polyInts int *polyAllocated CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = filledPolygonRGBAMT(dst, _vx, _vy, n, r, g, b, a, polyInts, polyAllocated); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_textured_polygon_MT(dst, vx, vy, n, texture, texture_dx, texture_dy, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n SDL_Surface * texture int texture_dx int texture_dy int **polyInts int *polyAllocated CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = texturedPolygonMT(dst, _vx, _vy, n, texture, texture_dx, texture_dy, polyInts, polyAllocated); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL #else int gfx_prim_filled_polygon_color_MT(dst, vx, vy, n, color, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n Uint32 color int **polyInts int *polyAllocated CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Primitives::filled_polygon_color_MT( dst, vx, vy, n, color, polyInts, polyAllocated )"); XSRETURN_UNDEF; OUTPUT: RETVAL int gfx_prim_filled_polygon_RGBA_MT(dst, vx, vy, n, r, g, b, a, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n Uint8 r Uint8 g Uint8 b Uint8 a int **polyInts int *polyAllocated CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Primitives::filled_polygon_RGBA_MT( dst, vx, vy, n, r, g, b, a, polyInts, polyAllocated )"); XSRETURN_UNDEF; OUTPUT: RETVAL int gfx_prim_textured_polygon_MT(dst, vx, vy, n, texture, texture_dx, texture_dy, polyInts, polyAllocated) SDL_Surface * dst AV* vx AV* vy int n SDL_Surface * texture int texture_dx int texture_dy int **polyInts int *polyAllocated CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Primitives::textured_polygon_MT( dst, vx, vy, n, texture, texture_dx, texture_dy, polyInts, polyAllocated )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif int gfx_prim_bezier_color(dst, vx, vy, n, s, color) SDL_Surface * dst AV* vx AV* vy int n int s Uint32 color CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = bezierColor(dst, _vx, _vy, n, s, color); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_bezier_RGBA(dst, vx, vy, n, s, r, g, b, a) SDL_Surface * dst AV* vx AV* vy int n int s Uint8 r Uint8 g Uint8 b Uint8 a CODE: Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); RETVAL = bezierRGBA(dst, _vx, _vy, n, s, r, g, b, a); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); OUTPUT: RETVAL int gfx_prim_character_color(dst, x, y, c, color) SDL_Surface * dst Sint16 x Sint16 y char c Uint32 color CODE: RETVAL = characterColor(dst, x, y, c, color); OUTPUT: RETVAL int gfx_prim_character_RGBA(dst, x, y, c, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y char c Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = characterRGBA(dst, x, y, c, r, g, b, a); OUTPUT: RETVAL int gfx_prim_string_color(dst, x, y, c, color) SDL_Surface * dst Sint16 x Sint16 y const char *c Uint32 color CODE: RETVAL = stringColor(dst, x, y, c, color); OUTPUT: RETVAL int gfx_prim_string_RGBA(dst, x, y, c, r, g, b, a) SDL_Surface * dst Sint16 x Sint16 y const char *c Uint8 r Uint8 g Uint8 b Uint8 a CODE: RETVAL = stringRGBA(dst, x, y, c, r, g, b, a); OUTPUT: RETVAL void gfx_prim_set_font(fontdata, cw, ch) char *fontdata int cw int ch CODE: gfxPrimitivesSetFont(fontdata, cw, ch); #endif �����������������SDL-2.540/src/GFX/README����������������������������������������������������������������������������000444��000765��000024�� 70�11760240072� 14434� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������Docs: http://www.ferzkopp.net/joomla/content/view/19/14/������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/GFX/Rotozoom.xs�����������������������������������������������������������������������000444��000765��000024�� 10447�11760240073� 16052� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_GFX_ROTOZOOM #include <SDL_rotozoom.h> #ifndef _SDL_gfxPrimitives_h #include <SDL_gfxPrimitives.h> #endif #ifndef SDL_GFXPRIMITIVES_MAJOR #define SDL_GFXPRIMITIVES_MAJOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MINOR #define SDL_GFXPRIMITIVES_MINOR 0 #endif #ifndef SDL_GFXPRIMITIVES_MICRO #define SDL_GFXPRIMITIVES_MICRO 0 #endif #endif MODULE = SDL::GFX::Rotozoom PACKAGE = SDL::GFX::Rotozoom PREFIX = gfx_roto_ =for documentation The Following are XS bindings to the SDL_gfx Library Described here: See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */ =cut #ifdef HAVE_SDL_GFX_ROTOZOOM SDL_Surface * gfx_roto_surface(src, angle, zoom, smooth) SDL_Surface * src double angle double zoom int smooth PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = rotozoomSurface(src, angle, zoom, smooth); OUTPUT: RETVAL #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 13) SDL_Surface * gfx_roto_surface_xy(src, angle, zoomx, zoomy, smooth) SDL_Surface * src double angle double zoomx double zoomy int smooth PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = rotozoomSurfaceXY(src, angle, zoomx, zoomy, smooth); OUTPUT: RETVAL #else SDL_Surface * gfx_roto_surface_xy(src, angle, zoomx, zoomy, smooth) SDL_Surface * src double angle double zoomx double zoomy int smooth PREINIT: char *CLASS = "SDL::Surface"; CODE: warn("SDL_gfx >= 2.0.14 needed for SDL::GFX::Rotozoom::surface_xy( src, angle, zoomx, zoomy, smooth )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif AV * gfx_roto_surface_size(width, height, angle, zoom) int width int height double angle double zoom CODE: int dstwidth,dstheight; rotozoomSurfaceSize(width, height, angle, zoom, &dstwidth, &dstheight); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(dstwidth)); av_push(RETVAL,newSViv(dstheight)); OUTPUT: RETVAL AV * gfx_roto_surface_size_xy(width, height, angle, zoomx, zoomy) int width int height double angle double zoomx double zoomy CODE: int dstwidth,dstheight; rotozoomSurfaceSizeXY(width, height, angle, zoomx, zoomy, &dstwidth, &dstheight); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(dstwidth)); av_push(RETVAL,newSViv(dstheight)); OUTPUT: RETVAL SDL_Surface * gfx_roto_zoom_surface(src, zoomx, zoomy, smooth) SDL_Surface * src double zoomx double zoomy int smooth PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = zoomSurface(src, zoomx, zoomy, smooth); OUTPUT: RETVAL AV * gfx_roto_zoom_surface_size(width, height, zoomx, zoomy) int width int height double zoomx double zoomy CODE: int dstwidth,dstheight; zoomSurfaceSize(width, height, zoomx, zoomy, &dstwidth, &dstheight); RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(dstwidth)); av_push(RETVAL,newSViv(dstheight)); OUTPUT: RETVAL #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 14) SDL_Surface * gfx_roto_shrink_surface(src, factorx, factory) SDL_Surface * src float factorx float factory PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = shrinkSurface(src, factorx, factory); OUTPUT: RETVAL #else SDL_Surface * gfx_roto_shrink_surface(src, factorx, factory) SDL_Surface * src int factorx int factory PREINIT: char *CLASS = "SDL::Surface"; CODE: warn("SDL_gfx >= 2.0.14 needed for SDL::GFX::Rotozoom::shrink_surface( src, factorx, factory )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif #if (SDL_GFXPRIMITIVES_MAJOR >= 2) && (SDL_GFXPRIMITIVES_MINOR >= 0) && (SDL_GFXPRIMITIVES_MICRO >= 17) SDL_Surface * gfx_roto_rotate_surface_90_degrees(pSurf, numClockwiseTurns) SDL_Surface* pSurf int numClockwiseTurns PREINIT: char *CLASS = "SDL::Surface"; CODE: RETVAL = rotateSurface90Degrees(pSurf, numClockwiseTurns); OUTPUT: RETVAL #else SDL_Surface * gfx_roto_rotate_surface_90_degrees(pSurf, numClockwiseTurns) SDL_Surface* pSurf int numClockwiseTurns PREINIT: char *CLASS = "SDL::Surface"; CODE: warn("SDL_gfx >= 2.0.17 needed for SDL::GFX::Rotozoom::rotate_surface_90_degrees( src, numclockwiseturns )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer���������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14123� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/Channels.xs���������������������������������������������������������������������000444��000765��000024�� 6737�11760240072� 16403� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #define NEED_sv_2pv_flag #include "ppport.h" #include "defines.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> #ifdef HAVE_SDL_MIXER static int sdl_perl_use_smpeg_audio = 0; #endif #endif #ifdef USE_THREADS static SV * cb = (SV*)NULL; void callback(int channel) { PERL_SET_CONTEXT(parent_perl); dSP; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(sv_2mortal(newSViv(channel))); PUTBACK; if(cb) call_sv(cb, G_VOID); FREETMPS; LEAVE; } #endif MODULE = SDL::Mixer::Channels PACKAGE = SDL::Mixer::Channels PREFIX = mixchan_ =for documentation SDL_mixer bindings See: http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html =cut #ifdef HAVE_SDL_MIXER int mixchan_allocate_channels ( number ) int number CODE: RETVAL = Mix_AllocateChannels(number); OUTPUT: RETVAL int mixchan_volume ( channel, volume ) int channel int volume CODE: RETVAL = Mix_Volume(channel,volume); OUTPUT: RETVAL int mixchan_play_channel ( channel, chunk, loops ) int channel Mix_Chunk *chunk int loops CODE: RETVAL = Mix_PlayChannel(channel,chunk,loops); OUTPUT: RETVAL int mixchan_play_channel_timed ( channel, chunk, loops, ticks ) int channel Mix_Chunk *chunk int loops int ticks CODE: RETVAL = Mix_PlayChannelTimed(channel,chunk,loops,ticks); OUTPUT: RETVAL int mixchan_fade_in_channel ( channel, chunk, loops, ms ) int channel Mix_Chunk *chunk int loops int ms CODE: RETVAL = Mix_FadeInChannel(channel,chunk,loops,ms); OUTPUT: RETVAL int mixchan_fade_in_channel_timed ( channel, chunk, loops, ms, ticks ) int channel Mix_Chunk *chunk int loops int ticks int ms CODE: RETVAL = Mix_FadeInChannelTimed(channel,chunk,loops,ms,ticks); OUTPUT: RETVAL void mixchan_pause ( channel ) int channel CODE: Mix_Pause(channel); void mixchan_resume ( channel ) int channel CODE: Mix_Resume(channel); int mixchan_halt_channel ( channel ) int channel CODE: RETVAL = Mix_HaltChannel(channel); OUTPUT: RETVAL int mixchan_expire_channel ( channel, ticks ) int channel int ticks CODE: RETVAL = Mix_ExpireChannel ( channel,ticks); OUTPUT: RETVAL int mixchan_fade_out_channel ( which, ms ) int which int ms CODE: RETVAL = Mix_FadeOutChannel(which,ms); OUTPUT: RETVAL #ifdef USE_THREADS void mixchan_channel_finished( fn ) SV* fn CODE: if (cb == (SV*)NULL) cb = newSVsv(fn); else SvSetSV(cb, fn); GET_TLS_CONTEXT; Mix_ChannelFinished(&callback); #else void mixchan_channel_finished( fn ) SV* fn CODE: warn("Perl need to be compiled with 'useithreads' for SDL::Mixer::Channels::channel_finished( cb )"); #endif int mixchan_playing( channel ) int channel CODE: RETVAL = Mix_Playing(channel); OUTPUT: RETVAL int mixchan_paused ( channel ) int channel CODE: RETVAL = Mix_Paused(channel); OUTPUT: RETVAL Mix_Fading mixchan_fading_channel( which ) int which CODE: RETVAL = Mix_FadingChannel(which); OUTPUT: RETVAL Mix_Chunk * mixchan_get_chunk(chan) int chan PREINIT: char* CLASS = "SDL::Mixer::MixChunk"; CODE: Mix_Chunk *chunk = Mix_GetChunk(chan); Mix_Chunk *copy = malloc(sizeof(Mix_Chunk)); copy->abuf = malloc( chunk->alen ); memcpy( copy->abuf, chunk->abuf, chunk->alen ); copy->alen = chunk->alen; copy->volume = chunk->volume; copy->allocated = 1; RETVAL = copy; OUTPUT: RETVAL #endif ���������������������������������SDL-2.540/src/Mixer/Effects.xs����������������������������������������������������������������������000444��000765��000024�� 12277�11760240072� 16243� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef SDL_PERL_DEFINES_H #include "defines.h" #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #define MAX_EFFECTS 31 PerlInterpreter *context = NULL; int registered_effects = 0; void** effects = NULL; void** effects_done = NULL; char* effect_func_cb = NULL; char* effect_func_done_cb = NULL; void effect_func(int chan, void *stream, int len, void *udata) { ENTER_TLS_CONTEXT; Sint16 *buf = (Sint16 *)stream; len /= 2; /* 2 bytes ber sample */ dSP; /* initialize stack pointer */ ENTER; /* everything created after here */ SAVETMPS; /* ...is a temporary variable. */ PUSHMARK(SP); /* remember the stack pointer */ XPUSHs(sv_2mortal(newSViv(chan))); XPUSHs(sv_2mortal(newSViv(len))); XPUSHs(sv_2mortal(newSVsv(udata))); /* push something onto the stack */ int i; for(i = 0; i < len; i++) XPUSHs(sv_2mortal(newSViv(buf[i]))); PUTBACK; /* make local stack pointer global */ /*if(cb != (SV*)NULL) */ { int count = call_pv(effect_func_cb, G_ARRAY); /* call the function */ SPAGAIN; /* refresh stack pointer */ if(count == len + 1) *(SV *)udata = *(newSVsv(POPs)); if(count) { memset(buf, 0, len * 2); /* clear the buffer */ for(i = len - 1; i >= 0; i--) { buf[i] = POPi; } } PUTBACK; } FREETMPS; /* free that return value */ LEAVE; /* ...and the XPUSHed "mortal" args. */ LEAVE_TLS_CONTEXT; } void effect_pm_func(void *udata, Uint8 *stream, int len) { effect_func(-2, (void *)stream, len, udata); } void effect_done(int chan, void *udata) { ENTER_TLS_CONTEXT; dSP; /* initialize stack pointer */ PUSHMARK(SP); /* remember the stack pointer */ /*if(fcb != (SV*)NULL) */ /*warn ( "Called %s", effect_func_done_cb ); */ call_pv(effect_func_done_cb, G_DISCARD|G_VOID); /* call the function */ LEAVE_TLS_CONTEXT; } #endif MODULE = SDL::Mixer::Effects PACKAGE = SDL::Mixer::Effects PREFIX = mixeff_ #ifdef HAVE_SDL_MIXER #ifdef USE_THREADS int mixeff_register(channel, func, done, arg) int channel char *func char *done SV *arg CODE: if(effects == NULL) { effects = safemalloc(MAX_EFFECTS* sizeof(void*)); } if(effects_done == NULL) { effects_done = safemalloc(MAX_EFFECTS* sizeof(void*)); } GET_TLS_CONTEXT; effect_func_cb = func; effect_func_done_cb = done; if(registered_effects <= MAX_EFFECTS ) { effects[registered_effects] = (void*)&effect_func; effects_done[registered_effects] = (void*)&effect_done; if(0 != Mix_RegisterEffect(channel, effects[registered_effects], effects_done[registered_effects], arg)) { /*warn( "Registered %d %p %p", registered_effects, effects[registered_effects], effects_done[registered_effects]); */ RETVAL = registered_effects; registered_effects++; } else { warn( "Maximum effects allowed is 32 " ); RETVAL = -1; } } else { RETVAL = -1; } OUTPUT: RETVAL #else int mixeff_register(channel, func, done, arg) int channel char *func char *done SV *arg CODE: warn("Perl need to be compiled with 'useithreads' for SDL::Mixer::Effects::register( channel, func, done, arg )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif int mixeff_unregister( channel, func ) int channel int func CODE: int check; if( func <= registered_effects) { check = Mix_UnregisterEffect(channel, effects[func]); if (check == 0 ) { warn ("Error unregistering: %s", Mix_GetError() ); } } else { warn (" Invalid effect id %d, currently %d effects registered", func, registered_effects); check = 0; } RETVAL = check; OUTPUT: RETVAL int mixeff_unregister_all( channel ) int channel CODE: RETVAL = Mix_UnregisterAllEffects(channel); OUTPUT: RETVAL int mixeff_set_panning( channel, left, right ) int channel int left int right CODE: RETVAL = Mix_SetPanning(channel, left, right); OUTPUT: RETVAL int mixeff_set_position( channel, angle, distance ) int channel Sint16 angle Uint8 distance CODE: RETVAL = Mix_SetPosition(channel, angle, distance); OUTPUT: RETVAL int mixeff_set_distance( channel, distance ) int channel Uint8 distance CODE: RETVAL = Mix_SetDistance(channel, distance); OUTPUT: RETVAL int mixeff_set_reverse_stereo( channel, flip ) int channel Uint8 flip CODE: RETVAL = Mix_SetReverseStereo(channel, flip); OUTPUT: RETVAL #ifdef USE_THREADS void mixeff_set_post_mix(func = NULL, arg = NULL) SV *func SV *arg CODE: GET_TLS_CONTEXT; if(func != (SV *)NULL) { Mix_SetPostMix(&effect_pm_func, arg); } else Mix_SetPostMix(NULL, NULL); #else void mixeff_set_post_mix(func = NULL, arg = NULL) SV *func SV *arg CODE: warn("Perl need to be compiled with 'useithreads' for SDL::Mixer::Effects::set_post_mix( func, arg )"); #endif #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/Groups.xs�����������������������������������������������������������������������000444��000765��000024�� 3005�11760240072� 16110� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> #ifdef HAVE_SDL_MIXER static int sdl_perl_use_smpeg_audio = 0; #endif #endif MODULE = SDL::Mixer::Groups PACKAGE = SDL::Mixer::Groups PREFIX = mixgrp_ =for documentation SDL_mixer bindings See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */ =cut #ifdef HAVE_SDL_MIXER int mixgrp_reserve_channels ( number ) int number CODE: RETVAL = Mix_ReserveChannels ( number ); OUTPUT: RETVAL int mixgrp_group_channel ( which, tag ) int which int tag CODE: RETVAL = Mix_GroupChannel(which,tag); OUTPUT: RETVAL int mixgrp_group_channels ( from, to, tag ) int from int to int tag CODE: RETVAL = Mix_GroupChannels(from,to,tag); OUTPUT: RETVAL int mixgrp_group_available ( tag ) int tag CODE: RETVAL = Mix_GroupAvailable(tag); OUTPUT: RETVAL int mixgrp_group_count ( tag ) int tag CODE: RETVAL = Mix_GroupCount(tag); OUTPUT: RETVAL int mixgrp_group_oldest ( tag ) int tag CODE: RETVAL = Mix_GroupOldest(tag); OUTPUT: RETVAL int mixgrp_group_newer ( tag ) int tag CODE: RETVAL = Mix_GroupNewer(tag); OUTPUT: RETVAL int mixgrp_fade_out_group ( which, ms ) int which int ms CODE: RETVAL = Mix_FadeOutGroup(which,ms); OUTPUT: RETVAL int mixgrp_halt_group ( tag ) int tag CODE: RETVAL = Mix_HaltGroup(tag); OUTPUT: RETVAL #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/Mixer.xs������������������������������������������������������������������������000444��000765��000024�� 3761�11760240072� 15726� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> #ifdef HAVE_SDL_MIXER static int sdl_perl_use_smpeg_audio = 0; #endif #endif MODULE = SDL::Mixer PACKAGE = SDL::Mixer PREFIX = mixer_ =for documentation SDL_mixer bindings See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */ =cut #ifdef HAVE_SDL_MIXER #if (SDL_MIXER_MAJOR_VERSION >= 1) && (SDL_MIXER_MINOR_VERSION >= 2) && (SDL_MIXER_PATCHLEVEL >= 10) int mixer_init( flags ) int flags CODE: RETVAL = Mix_Init(flags); OUTPUT: RETVAL void mixer_quit() CODE: Mix_Quit(); #else int mixer_init( flags ) int flags CODE: warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::init( flags )"); XSRETURN_UNDEF; OUTPUT: RETVAL void mixer_quit( index ) CODE: warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::quit()"); #endif const SDL_version * mixer_linked_version () PREINIT: char* CLASS = "SDL::Version"; SDL_version *version; CODE: version = (SDL_version *) safemalloc ( sizeof(SDL_version) ); SDL_version* version_dont_free = (SDL_version *)Mix_Linked_Version(); version->major = version_dont_free->major; version->minor = version_dont_free->minor; version->patch = version_dont_free->patch; RETVAL = version; OUTPUT: RETVAL int mixer_open_audio ( frequency, format, channels, chunksize ) int frequency Uint16 format int channels int chunksize CODE: RETVAL = Mix_OpenAudio(frequency, format, channels, chunksize); OUTPUT: RETVAL void mixer_close_audio () CODE: Mix_CloseAudio(); AV * mixer_query_spec () CODE: int freq, channels, status; Uint16 format; status = Mix_QuerySpec(&freq,&format,&channels); RETVAL = (AV*)sv_2mortal((SV*)newAV()); av_push(RETVAL,newSViv(status)); av_push(RETVAL,newSViv(freq)); av_push(RETVAL,newSViv(format)); av_push(RETVAL,newSViv(channels)); OUTPUT: RETVAL #endif ���������������SDL-2.540/src/Mixer/Music.xs������������������������������������������������������������������������000444��000765��000024�� 14267�11760240072� 15745� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "defines.h" #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> char *cb = NULL; char *fcb = NULL; void mix_func(void *udata, Uint8 *stream, int len) { PERL_SET_CONTEXT(parent_perl); dSP; /* initialize stack pointer */ ENTER; /* everything created after here */ SAVETMPS; /* ...is a temporary variable. */ PUSHMARK(SP); /* remember the stack pointer */ XPUSHs(sv_2mortal(newSViv(*(int*)udata))); /* push something onto the stack */ XPUSHs(sv_2mortal(newSViv(len))); *(int*)udata = *(int*)udata + len; PUTBACK; /* make local stack pointer global */ if(cb != NULL) { int count = call_pv(cb, G_ARRAY); /* call the function */ SPAGAIN; /* refresh stack pointer */ if(count == len + 1) { int i; for(i=0; i<len; i++) stream[i] = POPi; /* pop the return value from stack */ } PUTBACK; } FREETMPS; /* free that return value */ LEAVE; /* ...and the XPUSHed "mortal" args. */ } void mix_finished(void) { PERL_SET_CONTEXT(parent_perl); dSP; /* initialize stack pointer */ PUSHMARK(SP); /* remember the stack pointer */ if(fcb != NULL) { call_pv(fcb, G_DISCARD|G_VOID); /* call the function */ } } #endif MODULE = SDL::Mixer::Music PACKAGE = SDL::Mixer::Music PREFIX = mixmus_ =for documentation SDL_mixer bindings See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */ =cut #ifdef HAVE_SDL_MIXER #if (SDL_MIXER_MAJOR_VERSION >= 1) && (SDL_MIXER_MINOR_VERSION >= 2) && (SDL_MIXER_PATCHLEVEL >= 9) int mixmus_get_num_music_decoders( ) CODE: RETVAL = Mix_GetNumMusicDecoders(); OUTPUT: RETVAL const char * mixmus_get_music_decoder( index ) int index CODE: RETVAL = Mix_GetMusicDecoder(index); OUTPUT: RETVAL #else int mixmus_get_num_music_decoders( ) CODE: warn("SDL_mixer >= 1.2.9 needed for SDL::Mixer::Music::getnum_music_decoders()"); XSRETURN_UNDEF; OUTPUT: RETVAL const char * mixmus_get_music_decoder( index ) int index CODE: warn("SDL_mixer >= 1.2.9 needed for SDL::Mixer::Music::get_music_decoder( index )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif Mix_Music * mixmus_load_MUS( filename ) char *filename PREINIT: char * CLASS = "SDL::Mixer::MixMusic"; CODE: Mix_Music * mixmusic; mixmusic = Mix_LoadMUS(filename); if (mixmusic == NULL) fprintf(stderr, "Could not load %s\n", filename); RETVAL = mixmusic; OUTPUT: RETVAL #if VERSION_ATLEAST(SDL_MIXER_MAJOR_VERSION, SDL_MIXER_MINOR_VERSION, SDL_MIXER_PATCHLEVEL, 1, 2, 7) Mix_Music * mixmus_load_MUS_RW( rw ) SDL_RWops *rw PREINIT: char * CLASS = "SDL::Mixer::MixMusic"; CODE: Mix_Music * mixmusic; mixmusic = Mix_LoadMUS_RW(rw); if (mixmusic == NULL) fprintf(stderr, "Could not load SDL::RWOp object\n"); RETVAL = mixmusic; OUTPUT: RETVAL #else Mix_Music * mixmus_load_MUS_RW( rw ) SDL_RWops *rw CODE: warn("SDL_mixer >= 1.2.7 needed for SDL::Mixer::Music::load_MUS_RW( rw )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif void mixmus_free_music( music ) Mix_Music *music CODE: Mix_FreeMusic(music); #ifdef USE_THREADS void mixmus_hook_music( func = NULL, arg = 0 ) char *func int arg CODE: if(func != NULL) { parent_perl = PERL_GET_CONTEXT; cb = func; void *arg2 = safemalloc(sizeof(int)); *(int*) arg2 = arg; Mix_HookMusic(&mix_func, arg2); } else { Mix_HookMusic(NULL, NULL); void *arg2 = Mix_GetMusicHookData(); if(arg2 != NULL) safefree(arg2); } void mixmus_hook_music_finished( func = NULL ) char *func CODE: if(func != NULL) { parent_perl = PERL_GET_CONTEXT; fcb = func; Mix_HookMusicFinished(&mix_finished); } else Mix_HookMusicFinished(NULL); #else void mixmus_hook_music( func = NULL, arg = 0 ) char *func int arg CODE: warn("Perl need to be compiled with 'useithreads' for SDL::Mixer::Music::hook_music( func, arg )"); void mixmus_hook_music_finished( func = NULL ) char *func CODE: warn("Perl need to be compiled with 'useithreads' for SDL::Mixer::Music::hook_music_finished( func )"); #endif int mixmus_get_music_hook_data() CODE: RETVAL = *(int*)Mix_GetMusicHookData(); OUTPUT: RETVAL int mixmus_play_music( music, loops ) Mix_Music *music int loops CODE: RETVAL = Mix_PlayMusic(music,loops); OUTPUT: RETVAL int mixmus_fade_in_music( music, loops, ms ) Mix_Music *music int loops int ms CODE: RETVAL = Mix_FadeInMusic(music,loops,ms); OUTPUT: RETVAL int mixmus_fade_in_music_pos( music, loops, ms, position ) Mix_Music *music int loops int ms double position CODE: RETVAL = Mix_FadeInMusicPos(music,loops,ms,position); OUTPUT: RETVAL int mixmus_volume_music( volume = -1 ) int volume CODE: RETVAL = Mix_VolumeMusic(volume); OUTPUT: RETVAL int mixmus_halt_music() CODE: RETVAL = Mix_HaltMusic(); OUTPUT: RETVAL int mixmus_fade_out_music ( ms ) int ms CODE: RETVAL = Mix_FadeOutMusic(ms); OUTPUT: RETVAL Mix_Fading mixmus_fading_music() CODE: RETVAL = Mix_FadingMusic(); OUTPUT: RETVAL void mixmus_pause_music () CODE: Mix_PauseMusic(); void mixmus_resume_music () CODE: Mix_ResumeMusic(); void mixmus_rewind_music () CODE: Mix_RewindMusic(); int mixmus_paused_music () CODE: RETVAL = Mix_PausedMusic(); OUTPUT: RETVAL int mixmus_playing_music() CODE: RETVAL = Mix_PlayingMusic(); OUTPUT: RETVAL int mixmus_set_music_position( position ) double position CODE: RETVAL = Mix_SetMusicPosition(position); OUTPUT: RETVAL int mixmus_get_music_type( music = NULL ) Mix_Music * music CODE: RETVAL = Mix_GetMusicType( music ); OUTPUT: RETVAL int mixmus_set_music_cmd( cmd = NULL ) char *cmd CODE: RETVAL = Mix_SetMusicCMD( cmd ); OUTPUT: RETVAL void mixmus_DESTROY( music ) Mix_Music *music CODE: Mix_FreeMusic(music); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/README��������������������������������������������������������������������������000444��000765��000024�� 115�11760240073� 15115� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������C Docs are here: http://jcatki.no-ip.org:8080/SDL_mixer/SDL_mixer_frame.html ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/Samples.xs����������������������������������������������������������������������000444��000765��000024�� 4326�11760240073� 16245� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> #ifdef HAVE_SDL_MIXER static int sdl_perl_use_smpeg_audio = 0; #endif #endif MODULE = SDL::Mixer::Samples PACKAGE = SDL::Mixer::Samples PREFIX = mixsam_ =for documentation SDL_mixer bindings See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */ =cut #ifdef HAVE_SDL_MIXER #if (SDL_MIXER_MAJOR_VERSION >= 1 && SDL_MIXER_MINOR_VERSION >= 2 && SDL_MIXER_PATCHLEVEL >= 10) int mixsam_get_num_chunk_decoders() CODE: RETVAL = Mix_GetNumChunkDecoders(); OUTPUT: RETVAL char * mixsam_get_chunk_decoder( index ) int index CODE: RETVAL = (char *)Mix_GetChunkDecoder(index); OUTPUT: RETVAL #else int mixsam_get_num_chunk_decoders( ) CODE: warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_num_chunk_decoders()"); XSRETURN_UNDEF; OUTPUT: RETVAL char * mixsam_get_chunk_decoder( index ) int index CODE: warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_chunk_decoder( index )"); XSRETURN_UNDEF; OUTPUT: RETVAL #endif Mix_Chunk * mixsam_load_WAV ( filename ) char *filename PREINIT: char * CLASS = "SDL::Mixer::MixChunk"; CODE: Mix_Chunk * mixchunk; mixchunk = Mix_LoadWAV(filename); RETVAL = mixchunk; OUTPUT: RETVAL Mix_Chunk * mixsam_load_WAV_RW ( src, freesrc) SDL_RWops * src int freesrc PREINIT: char * CLASS = "SDL::Mixer::MixChunk"; CODE: Mix_Chunk * mixchunk; mixchunk = Mix_LoadWAV_RW(src, freesrc); RETVAL = mixchunk; OUTPUT: RETVAL Mix_Chunk * mixsam_quick_load_WAV ( buf ) Uint8 *buf PREINIT: char * CLASS = "SDL::Mixer::MixChunk"; CODE: RETVAL = Mix_QuickLoad_WAV(buf); OUTPUT: RETVAL Mix_Chunk * mixsam_quick_load_RAW ( buf , len) Uint8 *buf int len PREINIT: char * CLASS = "SDL::Mixer::MixChunk"; CODE: RETVAL = Mix_QuickLoad_RAW( buf, len ); OUTPUT: RETVAL int mixsam_volume_chunk ( chunk, volume ) Mix_Chunk *chunk int volume CODE: RETVAL = Mix_VolumeChunk(chunk,volume); OUTPUT: RETVAL void mixsam_free_chunk( chunk ) Mix_Chunk *chunk CODE: Mix_FreeChunk(chunk); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/objects�������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15553� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/objects/MixChunk.xs�������������������������������������������������������������000444��000765��000024�� 2120�11760240072� 20005� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #include "defines.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> void _free_mixchunk(void *object) { /* int allocated: if 1 struct has its own allocated buffer, if 0 abuf should not be freed */ if(((Mix_Chunk *)object)->allocated) Mix_FreeChunk((Mix_Chunk *)object); } #endif MODULE = SDL::Mixer::MixChunk PACKAGE = SDL::Mixer::MixChunk PREFIX = mixchunk_ =for documentation SDL_MixChunk - Stores audio data in memory typedef struct { int allocated; Uint8 *abuf; Uint32 alen; Uint8 volume; } Mix_Chunk; =cut #ifdef HAVE_SDL_MIXER Uint32 mixchunk_alen ( mixchunk ) Mix_Chunk *mixchunk CODE: RETVAL = mixchunk->alen; OUTPUT: RETVAL Uint8 mixchunk_volume ( mixchunk, ... ) Mix_Chunk *mixchunk CODE: if (items > 1 ) mixchunk->volume = SvIV(ST(1)); RETVAL = mixchunk->volume; OUTPUT: RETVAL void mixchunk_DESTROY(bag) SV *bag CODE: objDESTROY(bag, _free_mixchunk); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Mixer/objects/MixMusic.xs�������������������������������������������������������������000444��000765��000024�� 1005�11760240072� 20016� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_MIXER #include <SDL_mixer.h> #endif MODULE = SDL::Mixer::MixMusic PACKAGE = SDL::Mixer::MixMusic PREFIX = mixmusic_ =for documentation SDL_mixmusic - This is an opaque data type used for Music data typedef struct _Mix_Music Mix_Music; =cut #ifdef HAVE_SDL_MIXER void mixmusic_DESTROY(mixmusic) Mix_Music *mixmusic CODE: Mix_FreeMusic(mixmusic); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Pango���������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14103� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Pango/Pango.xs������������������������������������������������������������������������000444��000765��000024�� 7605�11760240072� 15667� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include <SDL.h> #ifdef HAVE_SDL_PANGO #include <SDL_Pango.h> SDLPango_Matrix _MATRIX_DEFAULT = {0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0,}; SDLPango_Matrix *MATRIX_DEFAULT = &_MATRIX_DEFAULT; #endif MODULE = SDL::Pango PACKAGE = SDL::Pango PREFIX = pango_ =for documentation See L<http:/*sdlpango.sourceforge.net/> */ =cut #ifdef HAVE_SDL_PANGO int pango_init() CODE: RETVAL = SDLPango_Init(); OUTPUT: RETVAL int pango_was_init() CODE: RETVAL = SDLPango_WasInit(); OUTPUT: RETVAL void pango_draw(context, surface, x, y) SDLPango_Context *context SDL_Surface *surface int x int y CODE: SDLPango_Draw(context, surface, x, y); int pango_get_layout_width(context) SDLPango_Context *context CODE: RETVAL = SDLPango_GetLayoutWidth(context); OUTPUT: RETVAL int pango_get_layout_height(context) SDLPango_Context *context CODE: RETVAL = SDLPango_GetLayoutHeight(context); OUTPUT: RETVAL void pango_set_default_color(context, ...) SDLPango_Context *context CODE: if(items == 3) /* context, foreground, background */ { Uint32 fg = SvIV(ST(1)); Uint32 bg = SvIV(ST(2)); MATRIX_DEFAULT->m[0][1] = (fg >> 24) & 0xFF; /* fg red */ MATRIX_DEFAULT->m[1][1] = (fg >> 16) & 0xFF; /* fg green */ MATRIX_DEFAULT->m[2][1] = (fg >> 8) & 0xFF; /* fg blue */ MATRIX_DEFAULT->m[3][1] = fg & 0xFF; /* fg alpha */ MATRIX_DEFAULT->m[0][0] = (bg >> 24) & 0xFF; /* bg red */ MATRIX_DEFAULT->m[1][0] = (bg >> 16) & 0xFF; /* bg green */ MATRIX_DEFAULT->m[2][0] = (bg >> 8) & 0xFF; /* bg blue */ MATRIX_DEFAULT->m[3][0] = bg & 0xFF; /* bg alpha */ SDLPango_SetDefaultColor(context, MATRIX_DEFAULT); } else if(items == 9) /* context, fr, fg, fb, fa, br, bg, bb, ba */ { MATRIX_DEFAULT->m[0][1] = SvIV(ST(1)); /* fg red */ MATRIX_DEFAULT->m[1][1] = SvIV(ST(2)); /* fg green */ MATRIX_DEFAULT->m[2][1] = SvIV(ST(3)); /* fg blue */ MATRIX_DEFAULT->m[3][1] = SvIV(ST(4)); /* fg alpha */ MATRIX_DEFAULT->m[0][0] = SvIV(ST(5)); /* bg red */ MATRIX_DEFAULT->m[1][0] = SvIV(ST(6)); /* bg green */ MATRIX_DEFAULT->m[2][0] = SvIV(ST(7)); /* bg blue */ MATRIX_DEFAULT->m[3][0] = SvIV(ST(8)); /* bg alpha */ SDLPango_SetDefaultColor(context, MATRIX_DEFAULT); } else croak("Usage: SDL::Pango::set_default_color(context, fg, bg) or (context, r, g, b, a, r, g, b, a)"); void pango_set_markup(context, markup, length) SDLPango_Context *context const char *markup int length CODE: SDLPango_SetMarkup(context, markup, length); void pango_set_minimum_size(context, width, height) SDLPango_Context *context int width int height CODE: SDLPango_SetMinimumSize(context, width, height); void pango_set_surface_create_args(context, flags, depth, Rmask, Gmask, Bmask, Amask) SDLPango_Context *context Uint32 flags int depth Uint32 Rmask Uint32 Gmask Uint32 Bmask Uint32 Amask CODE: SDLPango_SetSurfaceCreateArgs(context, flags, depth, Rmask, Gmask, Bmask, Amask); SDL_Surface * pango_create_surface_draw(context) SDLPango_Context *context PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = SDLPango_CreateSurfaceDraw(context); OUTPUT: RETVAL void pango_set_dpi(context, dpi_x, dpi_y) SDLPango_Context *context double dpi_x double dpi_y CODE: SDLPango_SetDpi(context, dpi_x, dpi_y); void pango_set_text(context, markup, length, alignment = SDLPANGO_ALIGN_LEFT) SDLPango_Context *context const char *markup int length SDLPango_Alignment alignment CODE: SDLPango_SetText_GivenAlignment(context, markup, length, alignment); void pango_set_language(context, language_tag) SDLPango_Context *context const char *language_tag CODE: SDLPango_SetLanguage(context, language_tag); void pango_set_base_direction(context, direction) SDLPango_Context *context int direction CODE: SDLPango_SetBaseDirection(context, direction); #endif ���������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Pango/objects�������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15534� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/Pango/objects/Context.xs��������������������������������������������������������������000444��000765��000024�� 1337�11760240073� 17675� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #include <SDL.h> #ifdef HAVE_SDL_PANGO #include <SDL_Pango.h> void _free_context(void *object) { SDLPango_FreeContext((SDLPango_Context *)object); } #endif MODULE = SDL::Pango::Context PACKAGE = SDL::Pango::Context PREFIX = context_ =for documentation See L<http:/*sdlpango.sourceforge.net/> */ =cut #ifdef HAVE_SDL_PANGO SDLPango_Context * context_new(CLASS, ...) char* CLASS CODE: if(items > 1) RETVAL = SDLPango_CreateContext_GivenFontDesc((char *)SvPV(ST(1), PL_na)); else RETVAL = SDLPango_CreateContext(); OUTPUT: RETVAL void context_DESTROY(bag) SV *bag CODE: objDESTROY(bag, _free_context); #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13651� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Layer.h��������������������������������������������������������������������������000444��000765��000024�� 241�11760240072� 15207� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� typedef struct SDLx_Layer { int index; SDL_Surface *surface; SDL_Rect *clip; SDL_Rect *pos; HV *data; } SDLx_Layer; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Layer.xs�������������������������������������������������������������������������000444��000765��000024�� 14746�11760240072� 15471� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include "SDLx/LayerManager.h" MODULE = SDLx::Layer PACKAGE = SDLx::Layer PREFIX = layerx_ SDLx_Layer * layerx_new( CLASS, surface, ... ) char* CLASS SDL_Surface *surface CODE: RETVAL = (SDLx_Layer *)safemalloc( sizeof(SDLx_Layer) ); RETVAL->index = -1; RETVAL->surface = (SDL_Surface *)safemalloc( sizeof(SDL_Surface) ); RETVAL->clip = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); RETVAL->pos = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); RETVAL->touched = 1; RETVAL->attached = 0; RETVAL->attached_pos = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); RETVAL->attached_rel = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); RETVAL->surface = SDL_ConvertSurface(surface, surface->format, surface->flags); (RETVAL->pos)->x = 0; (RETVAL->pos)->y = 0; (RETVAL->pos)->w = (RETVAL->surface)->w; (RETVAL->pos)->h = (RETVAL->surface)->h; (RETVAL->clip)->x = 0; (RETVAL->clip)->y = 0; (RETVAL->clip)->w = (RETVAL->surface)->w; (RETVAL->clip)->h = (RETVAL->surface)->h; if(SvROK(ST(items - 1)) && SVt_PVHV == SvTYPE(SvRV(ST(items - 1)))) { RETVAL->data = (HV *)SvRV(ST(items - 1)); /*if(SvREFCNT(RETVAL->data) < 2) */ SvREFCNT_inc(RETVAL->data); items--; } else RETVAL->data = (HV *)NULL; if(items > 2) (RETVAL->pos)->x = SvIV(ST(2)); if(items > 3) (RETVAL->pos)->y = SvIV(ST(3)); if(items > 4) (RETVAL->clip)->x = SvIV(ST(4)); if(items > 5) (RETVAL->clip)->y = SvIV(ST(5)); if(items > 6) (RETVAL->clip)->w = SvIV(ST(6)); if(items > 7) (RETVAL->clip)->h = SvIV(ST(7)); OUTPUT: RETVAL int layerx_index( layer ) SDLx_Layer *layer CODE: RETVAL = layer->index; OUTPUT: RETVAL int layerx_x( layer ) SDLx_Layer *layer CODE: RETVAL = (layer->pos)->x; OUTPUT: RETVAL int layerx_y( layer ) SDLx_Layer *layer CODE: RETVAL = (layer->pos)->y; OUTPUT: RETVAL int layerx_w( layer ) SDLx_Layer *layer CODE: RETVAL = (layer->clip)->w; OUTPUT: RETVAL int layerx_h( layer ) SDLx_Layer *layer CODE: RETVAL = (layer->clip)->h; OUTPUT: RETVAL SV * layerx_surface( layer, ... ) SDLx_Layer *layer CODE: if(items > 1) { SDL_Surface *surface = (SDL_Surface *)bag2obj(ST(1)); layer->surface = SDL_ConvertSurface(surface, surface->format, surface->flags); layer->touched = 1; layer->manager->saved = 0; layer->pos->w = layer->surface->w; layer->pos->h = layer->surface->h; layer->clip->w = layer->surface->w; layer->clip->h = layer->surface->h; } RETVAL = _sv_ref( layer->surface, sizeof(SDL_Surface *), sizeof(SDL_Surface), "SDL::Surface" ); OUTPUT: RETVAL SV * layerx_clip( layer ) SDLx_Layer *layer CODE: RETVAL = _sv_ref( layer->clip, sizeof(SDL_Rect *), sizeof(SDL_Rect), "SDL::Rect" ); OUTPUT: RETVAL SV * layerx_pos( layer, ... ) SDLx_Layer *layer CODE: if(items == 3) { layer->attached = 2; layer->pos->x = SvIV(ST(1)); layer->pos->y = SvIV(ST(2)); } RETVAL = _sv_ref( layer->pos, sizeof(SDL_Rect *), sizeof(SDL_Rect), "SDL::Rect" ); OUTPUT: RETVAL HV * layerx_data( layer, ... ) SDLx_Layer *layer CODE: if(items > 1) { layer->data = (HV *)SvRV(ST(1)); SvREFCNT_inc(layer->data); } if((HV *)NULL == layer->data) XSRETURN_UNDEF; else RETVAL = layer->data; OUTPUT: RETVAL AV * layerx_ahead( layer ) SDLx_Layer *layer CODE: RETVAL = layers_ahead( layer ); OUTPUT: RETVAL AV * layerx_behind( layer ) SDLx_Layer *layer CODE: RETVAL = layers_behind( layer ); OUTPUT: RETVAL void layerx_attach( layer, x = -1, y = -1 ) SDLx_Layer *layer int x int y CODE: if(-1 == x || -1 == y) SDL_GetMouseState(&x, &y); layer->attached = 1; layer->attached_pos->x = layer->pos->x; layer->attached_pos->y = layer->pos->x; layer->attached_rel->x = layer->pos->x - x; layer->attached_rel->y = layer->pos->y - y; layer->manager->saved = 0; AV * layerx_detach_xy( layer, x = -1, y = -1 ) SDLx_Layer *layer int x int y CODE: layer->attached = 0; layer->pos->x = x; layer->pos->y = y; layer->manager->saved = 0; RETVAL = newAV(); av_store(RETVAL, 0, newSViv(layer->attached_pos->x)); av_store(RETVAL, 1, newSViv(layer->attached_pos->y)); OUTPUT: RETVAL SV * layerx_foreground( bag ) SV *bag CODE: SDLx_Layer *layer = (SDLx_Layer *)bag2obj(bag); SDLx_LayerManager *manager = layer->manager; int index = layer->index; /* we cant trust its value */ layer->manager->saved = 0; int i; for(i = 0; i <= av_len(manager->layers); i++) { if(*av_fetch(manager->layers, i, 0) == bag) /* what bag do we have? => finding the right layer index */ { index = i; break; } } for(i = index; i < av_len(manager->layers); i++) { AvARRAY(manager->layers)[i] = AvARRAY(manager->layers)[i + 1]; ((SDLx_Layer *)bag2obj(AvARRAY(manager->layers)[i]))->index = i; } AvARRAY(manager->layers)[i] = bag; ((SDLx_Layer *)bag2obj(AvARRAY(manager->layers)[i]))->index = i; SvREFCNT_inc( bag ); RETVAL = newSVsv(bag); SvREFCNT_inc(RETVAL); OUTPUT: RETVAL void layerx_DESTROY( layer ) SDLx_Layer *layer CODE: /*if((HV *)NULL != layer->data) // Attempt to free unreferenced scalar */ /*SvREFCNT_dec(layer->data); */ safefree(layer); ��������������������������SDL-2.540/src/SDLx/LayerManager.h�������������������������������������������������������������������000444��000765��000024�� 7242�11760240072� 16532� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "ppport.h" #include "helper.h" typedef struct SDLx_LayerManager { AV *layers; SDL_Surface *saveshot; SDL_Surface *dest; int saved; } SDLx_LayerManager; typedef struct SDLx_Layer { SDLx_LayerManager *manager; int index; int attached; int touched; SDL_Surface *surface; SDL_Rect *clip; SDL_Rect *pos; SDL_Rect *attached_pos; SDL_Rect *attached_rel; HV *data; } SDLx_Layer; int intersection( SDLx_Layer *layer1, SDLx_Layer *layer2 ) { if( /* upper left point inside layer */ ( layer1->pos->x <= layer2->pos->x && layer2->pos->x < layer1->pos->x + layer1->clip->w && layer1->pos->y <= layer2->pos->y && layer2->pos->y < layer1->pos->y + layer1->clip->h ) /* upper right point inside layer */ || ( layer1->pos->x < layer2->pos->x + layer2->clip->w && layer2->pos->x + layer2->clip->w <= layer1->pos->x + layer1->clip->w && layer1->pos->y <= layer2->pos->y && layer2->pos->y < layer1->pos->y + layer1->clip->h ) /* lower left point inside layer */ || ( layer1->pos->x <= layer2->pos->x && layer2->pos->x < layer1->pos->x + layer1->clip->w && layer1->pos->y < layer2->pos->y + layer2->clip->h && layer2->pos->y + layer2->clip->h <= layer1->pos->y + layer1->clip->h ) /* lower right point inside layer */ || ( layer1->pos->x < layer2->pos->x + layer2->clip->w && layer2->pos->x + layer2->clip->w <= layer1->pos->x + layer1->clip->w && layer1->pos->y < layer2->pos->y + layer2->clip->h && layer2->pos->y + layer2->clip->h <= layer1->pos->y + layer1->clip->h ) ){ return 1; } return 0; } AV *layers_behind( SDLx_Layer *layer) { AV *matches = newAV(); int i; int count = 0; for( i = layer->index - 1; i >= 0; i-- ) { SV *bag = *av_fetch(layer->manager->layers, i, 0); SDLx_Layer *layer2 = (SDLx_Layer *)bag2obj(bag); if(intersection( layer, layer2 ) || intersection( layer2, layer )) { /* TODO checking transparency */ SvREFCNT_inc(bag); av_store( matches, count, bag ); count++; } } if(count) { AV *behind = layers_behind((SDLx_Layer *)bag2obj(*av_fetch(matches, av_len(matches), 0))); if(av_len(behind) >= 0) { for( i = 0; i <= av_len(behind); i++ ) { av_store( matches, count, *av_fetch(behind, i, 0)); count++; } } } return matches; } AV *layers_ahead( SDLx_Layer *layer ) { AV *matches = newAV(); int i; int count = 0; for( i = layer->index + 1; i <= av_len(layer->manager->layers); i++ ) { SV *bag = *av_fetch(layer->manager->layers, i, 0); SDLx_Layer *layer2 = (SDLx_Layer *)bag2obj(bag); if(intersection( layer, layer2 ) || intersection( layer2, layer )) { /* TODO checking transparency */ SvREFCNT_inc(bag); av_store( matches, count, bag ); count++; } } if(count) { AV *ahead = layers_ahead((SDLx_Layer *)bag2obj(*av_fetch(matches, av_len(matches), 0))); if(av_len(ahead) >= 0) { for( i = 0; i <= av_len(ahead); i++ ) { av_store( matches, count, *av_fetch(ahead, i, 0)); count++; } } } return matches; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/LayerManager.xs������������������������������������������������������������������000444��000765��000024�� 25136�11760240073� 16760� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include "SDLx/LayerManager.h" int _get_pixel( SDL_Surface *surface, int x, int y ) { int value = 0; int offset = x + surface->w * y; switch(surface->format->BytesPerPixel) { case 1: value = ((Uint8 *)surface->pixels)[offset]; break; case 2: value = ((Uint16 *)surface->pixels)[offset]; break; case 3: value = ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel] << 0) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 1] << 8) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 2] << 16); break; case 4: value = ((Uint32 *)surface->pixels)[offset]; break; } return value; } MODULE = SDLx::LayerManager PACKAGE = SDLx::LayerManager PREFIX = lmx_ SDLx_LayerManager * lmx_new( CLASS, ... ) char* CLASS CODE: RETVAL = (SDLx_LayerManager *)safemalloc( sizeof(SDLx_LayerManager) ); RETVAL->layers = newAV(); RETVAL->saveshot = (SDL_Surface *)safemalloc( sizeof(SDL_Surface) ); RETVAL->saved = 0; OUTPUT: RETVAL void lmx_add( manager, bag ) SDLx_LayerManager *manager SV* bag CODE: if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(bag); layer->index = av_len( manager->layers ) + 1; layer->manager = manager; layer->touched = 1; av_push( manager->layers, bag); SvREFCNT_inc(bag); } AV * lmx_layers( manager ) SDLx_LayerManager *manager CODE: RETVAL = manager->layers; OUTPUT: RETVAL SV * lmx_layer( manager, index ) SDLx_LayerManager *manager int index PREINIT: char* CLASS = "SDLx::Layer"; CODE: if(index >= 0 && index < av_len( manager->layers ) + 1) { RETVAL = *av_fetch( manager->layers, index, 0 ) ; SvREFCNT_inc(RETVAL); } else XSRETURN_UNDEF; OUTPUT: RETVAL int lmx_length( manager ) SDLx_LayerManager *manager CODE: RETVAL = av_len( manager->layers ) + 1; OUTPUT: RETVAL AV * lmx_blit( manager, dest ) SDLx_LayerManager *manager SDL_Surface *dest CODE: manager->dest = dest; RETVAL = newAV(); int index = 0; int length = av_len( manager->layers ) + 1; int attached_layers = 0; int did_something = 0; while(index < length) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); if(layer->attached == 0) { if(layer->touched || manager->saved == 0) { SDL_Rect *rect = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); rect->x = layer->pos->x; rect->y = layer->pos->y; rect->w = layer->clip->w; rect->h = layer->clip->h; layer->touched = 0; SDL_BlitSurface(layer->surface, layer->clip, dest, rect); av_push(RETVAL, _sv_ref( rect, sizeof(SDL_Rect *), sizeof(SDL_Rect), "SDL::Rect" )); did_something = 1; } } else attached_layers = 1; index++; } if(manager->saved == 0) { manager->saveshot = SDL_ConvertSurface(dest, dest->format, dest->flags); manager->saved = 1; } if((manager->saved && did_something) || attached_layers) { SDL_BlitSurface(manager->saveshot, NULL, dest, NULL); } if(attached_layers) { int x, y; SDL_GetMouseState(&x, &y); index = 0; while(index < length) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); if(layer->attached == 1 || layer->attached == 2) { if(layer->attached == 1) { layer->pos->x = x + layer->attached_rel->x; layer->pos->y = y + layer->attached_rel->y; } SDL_Rect *rect = (SDL_Rect *)safemalloc( sizeof(SDL_Rect) ); rect->x = layer->pos->x; rect->y = layer->pos->y; rect->w = layer->clip->w; rect->h = layer->clip->h; SDL_BlitSurface(layer->surface, layer->clip, dest, rect); av_push(RETVAL, _sv_ref( rect, sizeof(SDL_Rect *), sizeof(SDL_Rect), "SDL::Rect" )); } index++; } } OUTPUT: RETVAL SV * lmx_by_position( manager, x, y ) SDLx_LayerManager* manager int x int y CODE: int i; SV *match = NULL; for( i = av_len( manager->layers ); i >= 0 && match == NULL; i-- ) { SV *bag = *av_fetch(manager->layers, i, 0); SDLx_Layer *layer = (SDLx_Layer *)bag2obj(bag); SDL_Rect *clip = layer->clip; SDL_Rect *pos = layer->pos; SDL_Surface *surf = layer->surface; if ( pos->x <= x && x <= pos->x + clip->w && pos->y <= y && y <= pos->y + clip->h) { Uint8 r, g, b, a; Uint32 pixel = _get_pixel(surf, x - pos->x, y - pos->y); SDL_GetRGBA( pixel, surf->format, &r, &g, &b, &a ); if(a > 0) match = bag; } } if(match != NULL) { RETVAL = match; SvREFCNT_inc(RETVAL); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV * lmx_ahead( manager, index ) SDLx_LayerManager *manager int index CODE: SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); RETVAL = layers_ahead( layer ); OUTPUT: RETVAL AV * lmx_behind( manager, index ) SDLx_LayerManager *manager int index CODE: SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); RETVAL = layers_behind( layer ); OUTPUT: RETVAL void lmx_attach( manager, ... ) SDLx_LayerManager *manager CODE: manager->saved = 0; int x = -1; int y = -1; if(SvIOK(ST(items - 1))) { y = SvIV(ST(items - 1)); items--; } if(SvIOK(ST(items - 1))) { x = SvIV(ST(items - 1)); items--; } if(-1 == x || -1 == y) SDL_GetMouseState(&x, &y); int i; for( i = 1; i < items; i++ ) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(ST(i)); layer->attached = 1; layer->attached_pos->x = layer->pos->x; layer->attached_pos->y = layer->pos->y; layer->attached_rel->x = layer->pos->x - x; layer->attached_rel->y = layer->pos->y - y; } AV * lmx_detach_xy( manager, x = -1, y = -1 ) SDLx_LayerManager *manager int x int y CODE: RETVAL = newAV(); int index = 0; int length = av_len( manager->layers ) + 1; int lower_x; int lower_y; int offset_x = 0; int offset_y = 0; while(index < length) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); if(layer->attached == 1) { if(av_len(RETVAL) == -1) { lower_x = layer->attached_pos->x; lower_y = layer->attached_pos->y; offset_x = layer->attached_pos->x - x; offset_y = layer->attached_pos->y - y; av_push(RETVAL, newSViv(layer->attached_pos->x)); av_push(RETVAL, newSViv(layer->attached_pos->y)); } layer->attached = 0; layer->touched = 1; layer->pos->x = layer->attached_pos->x - offset_x; layer->pos->y = layer->attached_pos->y - offset_y; } index++; } manager->saved = 0; OUTPUT: RETVAL void lmx_detach_back( manager ) SDLx_LayerManager *manager CODE: int index = 0; int length = av_len( manager->layers ) + 1; while(index < length) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(*av_fetch(manager->layers, index, 0)); if(layer->attached == 1) { layer->attached = 0; layer->touched = 1; layer->pos->x = layer->attached_pos->x; layer->pos->y = layer->attached_pos->y; } index++; } manager->saved = 0; AV * lmx_foreground( manager, ... ) SDLx_LayerManager *manager CODE: RETVAL = newAV(); int x; for(x = 1; x < items; x++) { SDLx_Layer *layer = (SDLx_Layer *)bag2obj(ST(x)); SDLx_LayerManager *manager = layer->manager; int index = layer->index; /* we cant trust its value */ int i; SV *fetched; for(i = 0; i <= av_len(manager->layers); i++) { fetched = *av_fetch(manager->layers, i, 0); if(fetched == ST(x)) /* what bag do we have? => finding the right layer index */ { index = i; break; } } for(i = index; i < av_len(manager->layers); i++) { AvARRAY(manager->layers)[i] = AvARRAY(manager->layers)[i + 1]; } AvARRAY(manager->layers)[i] = fetched; manager->saved = 0; } OUTPUT: RETVAL void lmx_DESTROY( manager ) SDLx_LayerManager *manager CODE: safefree(manager); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/SFont.h��������������������������������������������������������������������������000444��000765��000024�� 5536�11760240072� 15220� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* */ /* SFont.h */ /* */ /* Original SFont code Copyright (C) Karl Bartel */ /* Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* This library is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public */ /* License as published by the Free Software Foundation; either */ /* version 2.1 of the License, or (at your option) any later version. */ /* */ /* This library is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public */ /* License along with this library; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* Please feel free to send questions, suggestions or improvements to: */ /* */ /* David J. Goehrig */ /* dgoehrig@cpan.org */ /* */ #include <SDL.h> #ifdef __cplusplus extern "C" { #endif /* Delcare one variable of this type for each font you are using. */ /* To load the fonts, load the font image into YourFont->Surface */ /* and call InitFont( YourFont ); */ typedef struct { SDL_Surface *Surface; int CharPos[512]; int h; } SFont_FontInfo; /* Initializes the font */ /* Font: this contains the suface with the font. */ /* The font must be loaded before using this function. */ void InitFont (SDL_Surface *Font); void InitFont2(SFont_FontInfo *Font); /* Blits a string to a surface */ /* Destination: the suface you want to blit to */ /* text: a string containing the text you want to blit. */ void PutString (SDL_Surface *Surface, int x, int y, char *text); void PutString2(SDL_Surface *Surface, SFont_FontInfo *Font, int x, int y, char *text); /* Returns the width of "text" in pixels */ #ifdef MACOSX int SFont_TextWidth(char *text); int SFont_TextWidth2(SFont_FontInfo *Font, char *text); #else int TextWidth(char *text); int TextWidth2(SFont_FontInfo *Font, char *text); #endif /* Blits a string to with centered x position */ void XCenteredString (SDL_Surface *Surface, int y, char *text); void XCenteredString2(SDL_Surface *Surface, SFont_FontInfo *Font, int y, char *text); /* Allows the user to enter text */ /* Width: What is the maximum width of the text (in pixels) */ /* text: This string contains the text which was entered by the user */ void SFont_Input ( SDL_Surface *Destination, int x, int y, int Width, char *text); void SFont_Input2( SDL_Surface *Destination, SFont_FontInfo *Font, int x, int y, int Width, char *text); #ifdef __cplusplus } #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/SFont.xs�������������������������������������������������������������������������000444��000765��000024�� 21101�11760240072� 15425� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* */ /* SFont.xs */ /* */ /* Original SFont code Copyright (C) Karl Bartel */ /* Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* This library is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public */ /* License as published by the Free Software Foundation; either */ /* version 2.1 of the License, or (at your option) any later version. */ /* */ /* This library is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public */ /* License along with this library; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* */ /* ------------------------------------------------------------------------------ */ /* */ /* Please feel free to send questions, suggestions or improvements to: */ /* */ /* David J. Goehrig */ /* dgoehrig@cpan.org */ /* */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_IMAGE #include <SDL_image.h> #endif #include <string.h> #include <stdlib.h> #ifdef USE_THREADS #define HAVE_TLS_CONTEXT #endif #include "SDLx/SFont.h" SFont_FontInfo InternalFont; Uint32 SFont_GetPixel(SDL_Surface *Surface, Sint32 X, Sint32 Y) { Uint8 *bits; Uint32 Bpp; if (X<0) puts("SFONT ERROR: x too small in SFont_GetPixel. Report this to <karlb@gmx.net>"); if (X>=Surface->w) puts("SFONT ERROR: x too big in SFont_GetPixel. Report this to <karlb@gmx.net>"); Bpp = Surface->format->BytesPerPixel; bits = ((Uint8 *)Surface->pixels)+Y*Surface->pitch+X*Bpp; /* Get the pixel */ switch(Bpp) { case 1: return *((Uint8 *)Surface->pixels + Y * Surface->pitch + X); break; case 2: return *((Uint16 *)Surface->pixels + Y * Surface->pitch/2 + X); break; case 3: { /* Format/endian independent */ Uint8 r, g, b; r = *((bits)+Surface->format->Rshift/8); g = *((bits)+Surface->format->Gshift/8); b = *((bits)+Surface->format->Bshift/8); return SDL_MapRGB(Surface->format, r, g, b); } break; case 4: return *((Uint32 *)Surface->pixels + Y * Surface->pitch/4 + X); break; } return -1; } void SFont_InitFont2(SFont_FontInfo *Font) { int x = 0, i = 0; if ( Font->Surface==NULL ) { printf("The font has not been loaded!\n"); exit(1); } if (SDL_MUSTLOCK(Font->Surface)) SDL_LockSurface(Font->Surface); while ( x < Font->Surface->w ) { if(SFont_GetPixel(Font->Surface,x,0)==SDL_MapRGB(Font->Surface->format,255,0,255)) { Font->CharPos[i++]=x; while (( x < Font->Surface->w-1) && (SFont_GetPixel(Font->Surface,x,0)==SDL_MapRGB(Font->Surface->format,255,0,255))) x++; Font->CharPos[i++]=x; } x++; } if (SDL_MUSTLOCK(Font->Surface)) SDL_UnlockSurface(Font->Surface); Font->h=Font->Surface->h; SDL_SetColorKey(Font->Surface, SDL_SRCCOLORKEY, SFont_GetPixel(Font->Surface, 0, Font->Surface->h-1)); } void SFont_InitFont(SDL_Surface *Font) { InternalFont.Surface=Font; SFont_InitFont2(&InternalFont); } void SFont_PutString2(SDL_Surface *Surface, SFont_FontInfo *Font, int x, int y, char *text) { int ofs; int i=0; SDL_Rect srcrect,dstrect; while (text[i]!='\0') { if (text[i]==' ') { x+=Font->CharPos[2]-Font->CharPos[1]; i++; } else { /* warn("-%c- %c - %u\n",228,text[i],text[i]); */ ofs=(text[i]-33)*2+1; /* warn("printing %c %d\n",text[i],ofs); */ srcrect.w = dstrect.w = (Font->CharPos[ofs+2]+Font->CharPos[ofs+1])/2-(Font->CharPos[ofs]+Font->CharPos[ofs-1])/2; srcrect.h = dstrect.h = Font->Surface->h-1; srcrect.x = (Font->CharPos[ofs]+Font->CharPos[ofs-1])/2; srcrect.y = 1; dstrect.x = x-(float)(Font->CharPos[ofs]-Font->CharPos[ofs-1])/2; dstrect.y = y; SDL_BlitSurface( Font->Surface, &srcrect, Surface, &dstrect); x+=Font->CharPos[ofs+1]-Font->CharPos[ofs]; i++; } } } void SFont_PutString(SDL_Surface *Surface, int x, int y, char *text) { /* warn("putString \n"); */ SFont_PutString2(Surface, &InternalFont, x, y, text); } int SFont_TextWidth2(SFont_FontInfo *Font, char *text) { int ofs=0; int i=0,x=0; while (text[i]!='\0') { if (text[i]==' ') { x+=Font->CharPos[2]-Font->CharPos[1]; i++; } else { ofs=(text[i]-33)*2+1; x+=Font->CharPos[ofs+1]-Font->CharPos[ofs]; i++; } } /* printf ("--%d\n",x); */ return x; } int SFont_TextWidth(char *text) { return SFont_TextWidth2(&InternalFont, text); } void SFont_XCenteredString2(SDL_Surface *Surface, SFont_FontInfo *Font, int y, char *text) { SFont_PutString2(Surface, Font, Surface->w/2-SFont_TextWidth2(Font,text)/2, y, text); } void SFont_XCenteredString(SDL_Surface *Surface, int y, char *text) { SFont_XCenteredString2(Surface, &InternalFont, y, text); } void SFont_InternalInput( SDL_Surface *Dest, SFont_FontInfo *Font, int x, int y, int PixelWidth, char *text) { SDL_Event event; int ch=-1,blink=0; long blinktimer=0; SDL_Surface *Back; SDL_Rect rect; int previous; /* int ofs=(text[0]-33)*2+1; */ /* int leftshift=(Font->CharPos[ofs]-Font->CharPos[ofs-1])/2; */ Back = SDL_AllocSurface(Dest->flags, Dest->w, Font->h, Dest->format->BitsPerPixel, Dest->format->Rmask, Dest->format->Gmask, Dest->format->Bmask, 0); rect.x=0; rect.y=y; rect.w=Dest->w; rect.h=Font->Surface->h; SDL_BlitSurface(Dest, &rect, Back, NULL); SFont_PutString2(Dest,Font,x,y,text); SDL_UpdateRects(Dest, 1, &rect); /* start input */ previous=SDL_EnableUNICODE(1); blinktimer=SDL_GetTicks(); while (ch!=SDLK_RETURN) { if (event.type==SDL_KEYDOWN) { ch=event.key.keysym.unicode; if (((ch>31)||(ch=='\b')) && (ch<128)) { if ((ch=='\b')&&(strlen(text)>0)) text[strlen(text)-1]='\0'; else if (ch!='\b') sprintf(text+strlen(text),"%c",ch); if (SFont_TextWidth2(Font,text)>PixelWidth) text[strlen(text)-1]='\0'; SDL_BlitSurface( Back, NULL, Dest, &rect); SFont_PutString2(Dest, Font, x, y, text); SDL_UpdateRects(Dest, 1, &rect); /* printf("%s ## %d\n",text,strlen(text)); */ SDL_WaitEvent(&event); } } if (SDL_GetTicks()>blinktimer) { blink=1-blink; blinktimer=SDL_GetTicks()+500; if (blink) { SFont_PutString2(Dest, Font, x+SFont_TextWidth2(Font,text), y, "|"); SDL_UpdateRects(Dest, 1, &rect); /* SDL_UpdateRect(Dest, x+SFont_TextWidth2(Font,text), y, SFont_TextWidth2(Font,"|"), Font->Surface->h); */ } else { SDL_BlitSurface( Back, NULL, Dest, &rect); SFont_PutString2(Dest, Font, x, y, text); SDL_UpdateRects(Dest, 1, &rect); /* SDL_UpdateRect(Dest, x-(Font->CharPos[ofs]-Font->CharPos[ofs-1])/2, y, PixelWidth, Font->Surface->h); */ } } SDL_Delay(1); SDL_PollEvent(&event); } text[strlen(text)]='\0'; SDL_FreeSurface(Back); SDL_EnableUNICODE(previous); /*restore the previous state */ } void SFont_Input2( SDL_Surface *Dest, SFont_FontInfo *Font, int x, int y, int PixelWidth, char *text) { SFont_InternalInput( Dest, Font, x, y, PixelWidth, text); } void SFont_Input( SDL_Surface *Dest, int x, int y, int PixelWidth, char *text) { SFont_Input2( Dest, &InternalFont, x, y, PixelWidth, text); } MODULE = SDLx::SFont PACKAGE = SDLx::SFont PREFIX = st_ SDL_Surface * st_new ( CLASS, filename ) char *CLASS char *filename CODE: /* warn( "[xs] new" ); */ #ifdef HAVE_SDL_IMAGE RETVAL = IMG_Load(filename); #else SDL_SetError("SDL_image not available for SFont. Using SDL_loadBMP instead of IMG_loadBMP."); RETVAL = SDL_LoadBMP(filename); #endif SFont_InitFont(RETVAL); OUTPUT: RETVAL void st_use ( surface ) SDL_Surface *surface CODE: /*warn( "[xs] use" ); */ SFont_InitFont(surface); void st_print_string ( surface, x, y, text ) SDL_Surface *surface int x int y char *text CODE: /* warn( "[xs] ps" ); */ SFont_PutString( surface, x, y, text ); int st_TextWidth ( text ) char *text CODE: RETVAL = SFont_TextWidth(text); OUTPUT: RETVAL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Surface.xs�����������������������������������������������������������������������000444��000765��000024�� 15430�11760240072� 15774� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #define NEED_newSV_type_GLOBAL #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include "SDLx/Validate.h" #ifdef HAVE_SDL_GFX_PRIMITIVES #include <SDL_gfxPrimitives.h> #endif SV * get_pixel32 (SDL_Surface *surface, int x, int y) { /* Convert the pixels to 32 bit */ Uint32 *pixels = (Uint32 *)surface->pixels; /* Get the requested pixel */ void* s = pixels + _calc_offset(surface, x, y); /* printf( " Pixel = %d, Ptr = %p \n", *((int*) s), s ); */ SV* sv = newSV_type(SVt_PV); SvPV_set(sv, s); SvPOK_on(sv); SvLEN_set(sv, 0); SvCUR_set(sv, surface->format->BytesPerPixel); return newRV_noinc(sv); /* make a modifiable reference using u_ptr's place as the memory :) */ } SV * construct_p_matrix ( SDL_Surface *surface ) { /* return get_pixel32( surface, 0, 0); */ AV * matrix = newAV(); int i, j; i = 0; for( i =0 ; i < surface->w; i++ ) { AV * matrix_row = newAV(); for( j =0 ; j < surface->h; j++ ) av_push( matrix_row, get_pixel32(surface, i,j) ); av_push( matrix, newRV_noinc((SV *)matrix_row) ); } return newRV_noinc((SV *)matrix); } int _calc_offset ( SDL_Surface* surface, int x, int y ) { int offset; offset = (surface->pitch * y) / surface->format->BytesPerPixel; offset += x; return offset; } unsigned int _get_pixel(SDL_Surface * surface, int offset) { unsigned int value; switch(surface->format->BytesPerPixel) { case 1: value = ((Uint8 *)surface->pixels)[offset]; break; case 2: value = ((Uint16 *)surface->pixels)[offset]; break; case 3: value = ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel] << 0) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 1] << 8) + ((Uint32)((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 2] << 16); break; case 4: value = ((Uint32 *)surface->pixels)[offset]; break; } return value; } MODULE = SDLx::Surface PACKAGE = SDLx::Surface PREFIX = surfacex_ SV * surfacex_pixel_array ( surface ) SDL_Surface *surface CODE: switch(surface->format->BytesPerPixel) { case 1: croak("Not implemented yet for 8bpp surfaces\n"); break; case 2: croak("Not implemented yet for 16bpp surfaces\n"); break; case 3: croak("Not implemented yet for 24bpp surfaces\n"); break; case 4: RETVAL = construct_p_matrix (surface); break; } OUTPUT: RETVAL unsigned int surfacex_get_pixel_xs ( surface, x, y ) SDL_Surface *surface int x int y CODE: _int_range( &x, 0, surface->w ); _int_range( &y, 0, surface->h ); int offset; offset = _calc_offset( surface, x, y); RETVAL = _get_pixel( surface, offset ); OUTPUT: RETVAL void surfacex_set_pixel_xs ( surface, x, y, value ) SDL_Surface *surface int x int y unsigned int value CODE: _int_range( &x, 0, surface->w ); _int_range( &y, 0, surface->h ); int offset; offset = _calc_offset( surface, x, y); if(SDL_MUSTLOCK(surface) && SDL_LockSurface(surface) < 0) croak( "Locking surface in set_pixels failed: %s", SDL_GetError() ); switch(surface->format->BytesPerPixel) { case 1: ((Uint8 *)surface->pixels)[offset] = (Uint8)value; break; case 2: ((Uint16 *)surface->pixels)[offset] = (Uint16)value; break; case 3: ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel] = (Uint8)( value & 0xFF); ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 1] = (Uint8)((value << 8) & 0xFF); ((Uint8 *)surface->pixels)[offset * surface->format->BytesPerPixel + 2] = (Uint8)((value << 16) & 0xFF); break; case 4: ((Uint32 *)surface->pixels)[offset] = (Uint32)value; break; } if(SDL_MUSTLOCK(surface)) SDL_UnlockSurface(surface); void surfacex_draw_rect ( surface, rt, color ) SDL_Surface *surface SV* rt SV* color CODE: Uint32 m_color = __map_rgba( color, surface->format ); SDL_Rect r_rect; if( SvOK(rt) ) r_rect = *(SDL_Rect*)bag2obj( create_mortal_rect( rt ) ); else { r_rect.x = 0; r_rect.y = 0; r_rect.w = surface->w; r_rect.h = surface->h; } SDL_FillRect(surface, &r_rect, m_color); #ifdef HAVE_SDL_GFX_PRIMITIVES SV * surfacex_draw_polygon ( surface, vectors, color, ... ) SV* surface AV* vectors Uint32 color CODE: SDL_Surface * _surface = (SDL_Surface *)bag2obj(surface); AV* vx = newAV(); AV* vy = newAV(); AV* vertex; while(av_len(vectors) >= 0) { vertex = (AV*)SvRV(av_shift(vectors)); av_push(vx, av_shift(vertex)); av_push(vy, av_shift(vertex)); } int n = av_len(vx) + 1; Sint16 * _vx = av_to_sint16(vx); Sint16 * _vy = av_to_sint16(vy); if ( items > 3 && SvTRUE( ST(3) ) ) aapolygonColor( _surface, _vx, _vy, n, color ); else polygonColor( _surface, _vx, _vy, n, color ); _svinta_free( _vx, av_len(vx) ); _svinta_free( _vy, av_len(vy) ); RETVAL = SvREFCNT_inc(surface); // why SvREFCNT_inc? OUTPUT: RETVAL #endif void surfacex_blit( src, dest, ... ) SV *src SV *dest CODE: assert_surface(src); assert_surface(dest); /* just return the pointer stored in the bag */ SDL_Surface *_src = (SDL_Surface *)bag2obj(src); SDL_Surface *_dest = (SDL_Surface *)bag2obj(dest); SDL_Rect _src_rect; SDL_Rect _dest_rect; if( items > 2 && SvOK(ST(2)) ) _src_rect = *(SDL_Rect *)bag2obj( create_mortal_rect( ST(2) ) ); else { _src_rect.x = 0; _src_rect.y = 0; _src_rect.w = _src->w; _src_rect.h = _src->h; } if( items > 3 && SvOK(ST(3)) ) _dest_rect = *(SDL_Rect *)bag2obj( create_mortal_rect( ST(3) ) ); else { _dest_rect.x = 0; _dest_rect.y = 0; _dest_rect.w = _dest->w; _dest_rect.h = _dest->h; } SDL_BlitSurface( _src, &_src_rect, _dest, &_dest_rect ); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Timer.h��������������������������������������������������������������������������000444��000765��000024�� 216�11760240072� 15215� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Controller Timer Header */ typedef struct TIMER { int started_ticks; int paused_ticks; int started; int paused; } sdlx_timer; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Timer.xs�������������������������������������������������������������������������000444��000765��000024�� 5276�11760240073� 15454� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include "SDLx/Timer.h" MODULE = SDLx::Controller::Timer PACKAGE = SDLx::Controller::Timer PREFIX = timerx_ sdlx_timer * timerx_new (CLASS, ... ) char* CLASS CODE: RETVAL = (sdlx_timer *)safemalloc( sizeof(sdlx_timer) ); RETVAL->started_ticks = 0; RETVAL->paused_ticks = 0; RETVAL->started = 0; RETVAL->paused = 0; OUTPUT: RETVAL int timerx_started_ticks ( timer, ... ) sdlx_timer *timer CODE: if (items > 1 ) timer->started_ticks = SvIV(ST(1)); RETVAL = timer->started_ticks; OUTPUT: RETVAL int timerx_paused_ticks ( timer, ... ) sdlx_timer *timer CODE: if (items > 1 ) timer->paused_ticks = SvIV(ST(1)); RETVAL = timer->paused_ticks; OUTPUT: RETVAL int timerx_started ( timer, ... ) sdlx_timer *timer CODE: if (items > 1 ) timer->started = SvIV(ST(1)); RETVAL = timer->started; OUTPUT: RETVAL int timerx_paused ( timer, ... ) sdlx_timer *timer CODE: if (items > 1 ) timer->paused = SvIV(ST(1)); RETVAL = timer->paused; OUTPUT: RETVAL void timerx_start ( timer ) sdlx_timer *timer CODE: timer->started = 1; timer->started_ticks = SDL_GetTicks(); void timerx_stop ( timer ) sdlx_timer *timer CODE: timer->started = 0; timer->paused = 0; void timerx_pause ( timer ) sdlx_timer *timer CODE: if( timer->started == 1 && timer->paused == 0) { timer->paused = 1; timer->paused_ticks = SDL_GetTicks() - timer->started_ticks; } void timerx_unpause ( timer ) sdlx_timer *timer CODE: timer->paused = 0; timer->started_ticks = SDL_GetTicks() - timer->started_ticks; timer->paused_ticks = 0; int timerx_get_ticks ( timer ) sdlx_timer *timer CODE: if(timer->started == 1) { if(timer->paused == 1) { RETVAL = timer->paused_ticks; } else { int update = SDL_GetTicks(); int diff = update - timer->started_ticks; RETVAL = diff; } } else { RETVAL = 0; } OUTPUT: RETVAL int timerx_is_started ( timer ) sdlx_timer *timer CODE: RETVAL = timer->started; OUTPUT: RETVAL int timerx_is_paused ( timer) sdlx_timer *timer CODE: RETVAL = timer->paused; OUTPUT: RETVAL void timerx_DESTROY(bag) SV *bag CODE: if( sv_isobject(bag) && (SvTYPE(SvRV(bag)) == SVt_PVMG) ) { void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( bag ))); sdlx_timer * timer = (sdlx_timer*)(pointers[0]); if (PERL_GET_CONTEXT == pointers[1]) { pointers[0] = NULL; safefree( pointers ); safefree(timer); } } else if (bag == 0) { XSRETURN(0); } else { XSRETURN_UNDEF; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Validate.h�����������������������������������������������������������������������000444��000765��000024�� 15201�11760240073� 15727� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "ppport.h" #include <SDL.h> #include "helper.h" /* SV input should be a mortal SV */ SV *create_mortal_rect( SV *rect ) { SV *retval = NULL; if( !SvOK(rect) ) { /* create a new zero sized rectangle */ SDL_Rect* r = safemalloc( sizeof(SDL_Rect) ); r->x = 0; r->y = 0; r->w = 0; r->h = 0; retval = obj2bag( sizeof( SDL_Rect *), (void *)(r), "SDL::Rect" ); sv_2mortal(retval) ; } else if( sv_derived_from(rect, "ARRAY") ) { /* create a new rectangle from the array */ SDL_Rect* r = safemalloc( sizeof(SDL_Rect) ); AV* recta = (AV*)SvRV(rect); int len = av_len(recta); int i; int ra[4]; for(i = 0; i < 4; i++) { SV* iv = i > len ? NULL : AvARRAY(recta)[i]; ra[i] = ( iv == NULL || !SvOK( iv ) || iv == &PL_sv_undef ) ? 0 : SvIV( iv ); } r->x = ra[0]; r->y = ra[1]; r->w = ra[2]; r->h= ra[3]; retval = obj2bag( sizeof( SDL_Rect *), (void *)(r), "SDL::Rect" ); sv_2mortal(retval) ; } else if( sv_isobject(rect) && sv_derived_from(rect, "SDL::Rect") ) { /* we already had a good mortal rect . Just pass it along */ retval = rect; } else croak("Rect must be number or arrayref or SDL::Rect or undef"); return retval; } void assert_surface( SV *surface ) { if( sv_isobject(surface) && sv_derived_from(surface, "SDL::Surface")) return; croak("Surface must be SDL::Surface or SDLx::Surface"); /* does not return */ } char *_color_format( SV *color ) { char *retval = NULL; if( !SvOK(color) || SvIOK(color) ) retval = "number"; else if( sv_derived_from(color, "ARRAY") ) retval = "arrayref"; else if( sv_isobject(color) && sv_derived_from(color, "SDL::Color") ) retval = "SDL::Color"; else croak("Color must be number or arrayref or SDL::Color"); return retval; } SV *_color_number( SV *color, SV *alpha ) { int c = SvIV(color); int a = SvIV(alpha); unsigned int retval = SvUV(color); if( !SvOK(color) || color < 0 ) { if( color < 0 ) warn("Color was a negative number"); retval = a == 1 ? 0x000000FF : 0; } else { if( a == 1 && (c > 0xFFFFFFFF) ) { warn("Color was number greater than maximum expected: 0xFFFFFFFF"); retval = 0xFFFFFFFF; } else if ( a != 1 && ( c > 0xFFFFFF) ) { warn("Color was number greater than maximum expected: 0xFFFFFF"); retval = 0xFFFFFF; } } return newSVuv(retval); } /* returns a new mortal AV* */ AV *_color_arrayref( AV *color, SV *alpha ) { AV *retval = (AV*)sv_2mortal((SV*)newAV()); int length = SvTRUE(alpha) ? 4 : 3; int i = 0; for(i = 0; i < length; i++) { if( av_len(color) < i || !SvOK(AvARRAY(color)[i]) ) av_push(retval, newSVuv(i == 3 ? 0xFF : 0)); else { int c = SvIV(AvARRAY(color)[i]); if( c > 0xFF ) { warn("Number in color arrayref was greater than maximum expected: 0xFF"); av_push(retval, newSVuv(0xFF)); } else if( c < 0 ) { warn("Number in color arrayref was negative"); av_push(retval, newSVuv(0)); } else av_push(retval, newSVuv(c)); } } return retval; } /* returns a mortal AV* */ AV* __list_rgb( SV* color ) { char *format = _color_format(color); AV* RETVAL ; if ( 0 == strcmp("number", format) ) { RETVAL = (AV*)sv_2mortal( (SV *) newAV() ); unsigned int _color = SvUV(sv_2mortal(_color_number(color, newSVuv(0)))); av_push(RETVAL, newSVuv(_color >> 16 & 0xFF)); av_push(RETVAL, newSVuv(_color >> 8 & 0xFF)); av_push(RETVAL, newSVuv(_color & 0xFF)); } else if ( 0 == strcmp("arrayref", format) ) { /* _color_arrayref returns a mortal AV* */ RETVAL = _color_arrayref((AV *)SvRV(color), sv_2mortal(newSVuv(0))); } else if ( 0 == strcmp("SDL::Color", format) ) { RETVAL = (AV*)sv_2mortal((SV *) newAV() ); SDL_Color *_color = (SDL_Color *)bag2obj(color); av_push(RETVAL, newSVuv(_color->r)); av_push(RETVAL, newSVuv(_color->g)); av_push(RETVAL, newSVuv(_color->b)); } else { RETVAL = (AV*)sv_2mortal((SV *) newAV() ); av_push(RETVAL, newSVuv(0)); av_push(RETVAL, newSVuv(0)); av_push(RETVAL, newSVuv(0)); } return RETVAL; } AV* __list_rgba( SV* color ) { char *format = _color_format(color); AV* RETVAL ; if ( 0 == strcmp("number", format) ) { RETVAL = (AV*)sv_2mortal((SV *) newAV() ); unsigned int _color = SvUV(sv_2mortal(_color_number(color, sv_2mortal(newSVuv(1))))); av_push(RETVAL, newSVuv(_color >> 24 & 0xFF)); av_push(RETVAL, newSVuv(_color >> 16 & 0xFF)); av_push(RETVAL, newSVuv(_color >> 8 & 0xFF)); av_push(RETVAL, newSVuv(_color & 0xFF)); } else if ( 0 == strcmp("arrayref", format) ) { RETVAL = _color_arrayref((AV *)SvRV(color), sv_2mortal(newSVuv(1))); } else if ( 0 == strcmp("SDL::Color", format) ) { RETVAL = (AV*)sv_2mortal((SV *) newAV() ); SDL_Color *_color = (SDL_Color*)bag2obj(color); av_push(RETVAL, newSVuv(_color->r)); av_push(RETVAL, newSVuv(_color->g)); av_push(RETVAL, newSVuv(_color->b)); av_push(RETVAL, newSVuv(0xFF)); } else { RETVAL = (AV*)sv_2mortal((SV *) newAV() ); av_push(RETVAL, newSVuv(0)); av_push(RETVAL, newSVuv(0)); av_push(RETVAL, newSVuv(0)); av_push(RETVAL, newSVuv(0xFF)); } return RETVAL; } unsigned int __map_rgb( SV* color, SDL_PixelFormat* format ) { Uint8 r, g, b; AV* a = __list_rgb( color ); r = SvUV(*av_fetch(a, 0, 0)); g = SvUV(*av_fetch(a, 1, 0)); b = SvUV(*av_fetch(a, 2, 0)); return SDL_MapRGB( format, r, g, b ); } unsigned int __map_rgba( SV* color, SDL_PixelFormat* format ) { int r, g, b, a; AV* ar = __list_rgba( color ); r = SvUV(*av_fetch(ar, 0, 0)); g = SvUV(*av_fetch(ar, 1, 0)); b = SvUV(*av_fetch(ar, 2, 0)); a = SvUV(*av_fetch(ar, 3, 0)); return SDL_MapRGBA( format, r, g, b, a ); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Validate.xs����������������������������������������������������������������������000444��000765��000024�� 6562�11760240073� 16124� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #include "SDLx/Validate.h" MODULE = SDLx::Validate PACKAGE = SDLx::Validate PREFIX = val_ char * val__color_format( color ) SV *color CODE: RETVAL = _color_format( color ); if(NULL == RETVAL) XSRETURN_UNDEF; OUTPUT: RETVAL SV * val__color_number( color, alpha ) SV* color SV* alpha CODE: RETVAL = _color_number( color, alpha ); OUTPUT: RETVAL AV * val__color_arrayref( color, ... ) AV *color CODE: RETVAL = items > 1 ? _color_arrayref( color, ST(1) ) : _color_arrayref( color, sv_2mortal(newSVuv(0)) ); OUTPUT: RETVAL SV * val_num_rgb( color ) SV *color CODE: char *format = _color_format( color ); if( 0 == strcmp("number", format) ) RETVAL = _color_number( color, sv_2mortal(newSVuv(0)) ); else if( 0 == strcmp("arrayref", format) ) { AV *c = _color_arrayref( (AV *)SvRV(color), sv_2mortal(newSVuv(0)) ); unsigned int v = (( SvUV(AvARRAY(c)[0]) << 16 ) + ( SvUV(AvARRAY(c)[1]) << 8 ) + SvUV(AvARRAY(c)[2])); RETVAL = newSVuv(v); } else if( 0 == strcmp("SDL::Color", format) ) { SDL_Color *_color = (SDL_Color*) bag2obj( color ); unsigned int v = ( (_color->r) << 16 ) + ( (_color->g) << 8 ) + _color->b; RETVAL = newSVuv( v ); } else XSRETURN_UNDEF; OUTPUT: RETVAL SV * val_num_rgba( color ) SV *color CODE: char *format = _color_format( color ); if( 0 == strcmp("number", format) ) RETVAL = _color_number( color, sv_2mortal(newSVuv(1)) ); else if( 0 == strcmp("arrayref", format) ) { AV *c = _color_arrayref( (AV *)SvRV(color), sv_2mortal(newSVuv(1)) ); unsigned int v = (SvUV(AvARRAY(c)[0]) << 24) + (SvUV(AvARRAY(c)[1]) << 16) + (SvUV(AvARRAY(c)[2]) << 8) + SvUV(AvARRAY(c)[3] ); RETVAL = newSVuv(v); } else if( 0 == strcmp("SDL::Color", format) ) { SDL_Color *_color = (SDL_Color*)bag2obj( color ); unsigned int v = (((_color->r) << 24) + ((_color->g) << 16) + ((_color->b) << 8) + 0xFF) ; RETVAL = newSVuv( v ); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV * val_list_rgb( color ) SV *color CODE: RETVAL = __list_rgb( color ); OUTPUT: RETVAL AV * val_list_rgba( color ) SV *color CODE: RETVAL = __list_rgba( color ); OUTPUT: RETVAL void val_rect( r ) SV* r PPCODE: ST(0) = create_mortal_rect( r ); XSRETURN(1); void * val_surface( s ) SV *s PPCODE: assert_surface(s); /* ok or dead */ /* ret is already mortal */ ST(0) = s; XSRETURN(1); SV * val_map_rgb( color, format) SV* color SDL_PixelFormat * format CODE: RETVAL = newSVuv( __map_rgb( color, format ) ); OUTPUT: RETVAL SV * val_map_rgba( color, format) SV* color SDL_PixelFormat * format CODE: RETVAL = newSVuv( __map_rgba( color, format ) ); OUTPUT: RETVAL ����������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Controller�����������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 15774� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Controller/Interface.h�����������������������������������������������������������000444��000765��000024�� 2605�11760240073� 20205� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Defines Controller Interface structs */ /* */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" typedef struct SDLx_State { /* Position */ float x; float y; /* Velocity */ float v_x; float v_y; /* Rotation */ float rotation; float ang_v; /* owned by an object or not? */ int owned; } SDLx_State; typedef struct Derivative { float dx; float dy; float dv_x; float dv_y; float drotation; float dang_v; } SDLx_Derivative; typedef struct SDLx_Interface { /* states to hold */ SDLx_State* previous; SDLx_State* current; /* subs to callback */ SV* acceleration; SV* evaluate; SV* interpolate; SV* integrate; } SDLx_Interface; void copy_state( SDLx_State * a, SDLx_State * b ) { a->x = b->x; a->y = b->y; a->v_x = b->v_x; a->v_y = b->v_y; a->rotation = b->rotation; a->ang_v = b->ang_v; } void interpolate( SDLx_Interface* obj, SDLx_State* out, float alpha ) { out->x = obj->current->x * alpha + obj->previous->x * (1 - alpha); out->y = obj->current->y * alpha + obj->previous->y * (1 - alpha); out->v_x = obj->current->v_x * alpha + obj->previous->v_x * (1 - alpha); out->v_y = obj->current->v_y * alpha + obj->previous->v_y * (1 - alpha); out->rotation = obj->current->rotation * alpha + obj->previous->rotation * (1 - alpha); out->ang_v = obj->current->ang_v * alpha + obj->previous->ang_v * (1 - alpha); } ���������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Controller/Interface.xs����������������������������������������������������������000444��000765��000024�� 15165�11760240072� 20434� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "defines.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include "SDLx/Controller/Interface.h" AV *acceleration_cb( SDLx_Interface *obj, float t ) { SV *tmpsv; if( !(SvROK(obj->acceleration) && (tmpsv = obj->acceleration) ) ) croak( "Interface doesn't not contain an acceleration callback" ); dSP; AV *array = newAV(); int i; int count; SDLx_State *copyState = (SDLx_State *)safemalloc( sizeof(SDLx_State) ); copy_state( copyState, obj->current ); copyState->owned = 0; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs( sv_2mortal(newSVnv(t)) ); XPUSHs( sv_2mortal( obj2bag( sizeof(SDLx_State *), (void *)copyState, "SDLx::Controller::State" ) ) ); PUTBACK; count = call_sv( obj->acceleration, G_ARRAY ); SPAGAIN; /* warn( "state %p, state->x %f", copyState, ((SDLx_State *)copyState)->x ); */ for( i = 0; i < count; i++ ) av_push( array, newSVnv(POPn) ); /* warn ("before obj->current->x %f", obj->current->x); */ copy_state( obj->current, copyState ); /* warn ("after obj->current->x %f", obj->current->x); */ PUTBACK; FREETMPS; LEAVE; return array; } void evaluate(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, float t) { out->dx = initial->v_x; out->dy = initial->v_y; out->drotation = initial->ang_v; AV *accel = acceleration_cb(obj, t); SV *temp; temp = av_pop(accel); out->dv_x = sv_nv(temp); SvREFCNT_dec(temp); temp = av_pop(accel); out->dv_y = sv_nv(temp); SvREFCNT_dec(temp); temp = av_pop(accel); out->dang_v = sv_nv(temp); SvREFCNT_dec(temp); SvREFCNT_dec((SV *)accel); } void evaluate_dt(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, float t, float dt, SDLx_Derivative *d) { SDLx_State state; state.x = initial->x + d->dx * dt; state.y = initial->y + d->dy * dt; state.rotation = initial->rotation + d->drotation * dt; state.v_x = initial->v_x + d->dv_x * dt; state.v_y = initial->v_y + d->dv_y * dt; state.ang_v = initial->ang_v + d->dang_v * dt; out->dx = state.v_x; out->dy = state.v_y; out->drotation = state.ang_v; AV *accel = acceleration_cb(obj, t+dt); SV *temp; temp = av_pop(accel); out->dv_x = sv_nv(temp); SvREFCNT_dec(temp); temp = av_pop(accel); out->dv_y = sv_nv(temp); SvREFCNT_dec(temp); temp = av_pop(accel); out->dang_v = sv_nv(temp); SvREFCNT_dec(temp); SvREFCNT_dec((SV *)accel); } void integrate( SDLx_Interface *object, float t, float dt) { SDLx_State *state = object->current; SDLx_Derivative *a = (SDLx_Derivative *)safemalloc( sizeof(SDLx_Derivative) ); SDLx_Derivative *b = (SDLx_Derivative *)safemalloc( sizeof(SDLx_Derivative) ); SDLx_Derivative *c = (SDLx_Derivative *)safemalloc( sizeof(SDLx_Derivative) ); SDLx_Derivative *d = (SDLx_Derivative *)safemalloc( sizeof(SDLx_Derivative) ); evaluate(object, a, state, t); evaluate_dt(object, b, state, t, dt*0.5f, a); evaluate_dt(object, c, state, t, dt*0.5f, b); evaluate_dt(object, d, state, t, dt, c); const float dxdt = 1.0f/6.0f * (a->dx + 2.0f * (b->dx + c->dx) + d->dx); const float dv_xdt = 1.0f/6.0f * (a->dv_x + 2.0f * (b->dv_x + c->dv_x) + d->dv_x); const float dydt = 1.0f/6.0f * (a->dy + 2.0f * (b->dy + c->dy) + d->dy); const float dv_ydt = 1.0f/6.0f * (a->dv_y + 2.0f * (b->dv_y + c->dv_y) + d->dv_y); const float drotationdt = 1.0f/6.0f * (a->drotation + 2.0f * (b->drotation + c->drotation) + d->drotation); const float dv_angdt = 1.0f/6.0f * (a->dang_v + 2.0f * (b->dang_v + c->dang_v) + d->dang_v); state->x = state->x + dxdt * dt; state->v_x = state->v_x + dv_xdt * dt; state->y = state->y + dydt * dt; state->v_y = state->v_y + dv_ydt * dt; state->rotation = state->rotation + drotationdt * dt; state->ang_v = state->ang_v + dv_angdt * dt; safefree(a); safefree(b); safefree(c); safefree(d); } MODULE = SDLx::Controller::Interface PACKAGE = SDLx::Controller::Interface PREFIX = objx_ SDLx_Interface * objx_make( CLASS, ... ) char *CLASS CODE: RETVAL = (SDLx_Interface *)safemalloc( sizeof(SDLx_Interface) ); RETVAL->previous = (SDLx_State *)safemalloc( sizeof(SDLx_State) ); RETVAL->current = (SDLx_State *)safemalloc( sizeof(SDLx_State) ); RETVAL->acceleration = newSViv(-1); RETVAL->current->x = 0; RETVAL->current->y = 0; RETVAL->current->v_x = 0; RETVAL->current->v_y = 0; RETVAL->current->rotation = 0; RETVAL->current->ang_v = 0; RETVAL->current->owned = 1; RETVAL->previous->owned = 1; if(items > 1) (RETVAL->current)->x = SvIV(ST(1)); if(items > 2) (RETVAL->current)->y = SvIV(ST(2)); if(items > 3) (RETVAL->current)->v_x = SvIV(ST(3)); if(items > 4) (RETVAL->current)->v_y = SvIV(ST(4)); if(items > 5) (RETVAL->current)->rotation = SvIV(ST(5)); if(items > 6) (RETVAL->current)->ang_v = SvIV(ST(6)); copy_state(RETVAL->previous, RETVAL->current); OUTPUT: RETVAL void objx_set_acceleration(obj, callback) SDLx_Interface *obj SV *callback CODE: SV *tmpsv = NULL; if( !(SvROK(callback) && (tmpsv = (SV*)SvRV(callback)) && SvTYPE(tmpsv) == SVt_PVCV ) ) croak( "Acceleration callback needs to be a code ref, %p", callback ); obj->acceleration = SvRV( newRV_inc(callback) ); AV * objx_acceleration(obj, t) SDLx_Interface* obj float t CODE: RETVAL = acceleration_cb(obj, t); sv_2mortal((SV*)RETVAL); OUTPUT: RETVAL SDLx_State * objx_interpolate(obj, alpha) SDLx_Interface *obj float alpha PREINIT: char *CLASS = "SDLx::Controller::State"; CODE: SDLx_State *out = (SDLx_State *)safemalloc(sizeof(SDLx_State )); interpolate( obj,out, alpha); out->owned = 0; /* condition free */ RETVAL = out; OUTPUT: RETVAL SDLx_State * objx_current ( obj, ... ) SDLx_Interface *obj PREINIT: char * CLASS = "SDLx::Controller::State"; CODE: RETVAL = obj->current; OUTPUT: RETVAL SDLx_State * objx_previous ( obj, ... ) SDLx_Interface *obj PREINIT: char *CLASS = "SDLx::Controller::State"; CODE: RETVAL = obj->previous; OUTPUT: RETVAL void objx_update(obj, t, dt) SDLx_Interface *obj float t float dt CODE: copy_state( obj->previous, obj->current); integrate( obj, t, dt ); void objx_DESTROY( obj ) SDLx_Interface *obj CODE: SvREFCNT_dec(obj->acceleration); safefree(obj->previous); safefree(obj->current); safefree(obj); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SDLx/Controller/State.xs��������������������������������������������������������������000444��000765��000024�� 3425�11760240073� 17571� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "defines.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include "SDLx/Controller/Interface.h" MODULE = SDLx::Controller::State PACKAGE = SDLx::Controller::State PREFIX = state_ SDLx_State * state_new( CLASS, ... ) char * CLASS CODE: RETVAL = (SDLx_State * ) safemalloc( sizeof(SDLx_State) ); if(items > 2) RETVAL->x = SvIV(ST(2)); if(items > 3) RETVAL->y = SvIV(ST(3)); if(items > 4) RETVAL->v_x = SvIV(ST(4)); if(items > 5) RETVAL->v_y = SvIV(ST(5)); if(items > 6) RETVAL->rotation = SvIV(ST(6)); if(items > 7) RETVAL->ang_v = SvIV(ST(7)); OUTPUT: RETVAL float state_x(state, ...) SDLx_State * state CODE: if (items > 1 ) state->x = SvNV(ST(1)); RETVAL = state->x; OUTPUT: RETVAL float state_y(state, ...) SDLx_State * state CODE: if (items > 1 ) state->y = SvNV(ST(1)); RETVAL = state->y; OUTPUT: RETVAL float state_v_x(state, ...) SDLx_State * state CODE: if (items > 1 ) state->v_x = SvNV(ST(1)); RETVAL = state->v_x; OUTPUT: RETVAL float state_v_y(state, ...) SDLx_State * state CODE: if (items > 1 ) state->v_y = SvNV(ST(1)); RETVAL = state->v_y; OUTPUT: RETVAL float state_rotation(state, ...) SDLx_State * state CODE: if (items > 1 ) state->rotation = SvNV((ST(1))); RETVAL = state->rotation; OUTPUT: RETVAL float state_ang_v(state, ...) SDLx_State * state CODE: if (items > 1 ) state->ang_v = SvNV((ST(1))); RETVAL = state->ang_v; OUTPUT: RETVAL void state_DESTROY( bag ) SV *bag CODE: SDLx_State *obj = (SDLx_State *)bag2obj(bag); if (obj->owned == 0) objDESTROY(bag, safefree); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SMPEG���������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13712� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/SMPEG/Info.xs�������������������������������������������������������������������������000444��000765��000024�� 3420�11760240073� 15315� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #ifdef HAVE_SMPEG #include <smpeg/smpeg.h> #endif MODULE = SDL::SMPEG::Info PACKAGE = SDL::SMPEG::Info PROTOTYPES : DISABLE #ifdef HAVE_SMPEG SMPEG_Info * NewSMPEGInfo() PREINIT: char* CLASS = "SDL::SMPEG::Info"; CODE: RETVAL = (SMPEG_Info *) safemalloc (sizeof(SMPEG_Info)); OUTPUT: RETVAL void FreeSMPEGInfo ( info ) SV *info CODE: objDESTROY(info, safefree); int SMPEGInfoHasAudio ( info ) SMPEG_Info* info CODE: RETVAL = info->has_audio; OUTPUT: RETVAL int SMPEGInfoHasVideo ( info ) SMPEG_Info* info CODE: RETVAL = info->has_video; OUTPUT: RETVAL int SMPEGInfoWidth ( info ) SMPEG_Info* info CODE: RETVAL = info->width; OUTPUT: RETVAL int SMPEGInfoHeight ( info ) SMPEG_Info* info CODE: RETVAL = info->height; OUTPUT: RETVAL int SMPEGInfoCurrentFrame ( info ) SMPEG_Info* info CODE: RETVAL = info->current_frame; OUTPUT: RETVAL double SMPEGInfoCurrentFPS ( info ) SMPEG_Info* info CODE: RETVAL = info->current_fps; OUTPUT: RETVAL int SMPEGInfoCurrentAudioFrame ( info ) SMPEG_Info* info CODE: RETVAL = info->audio_current_frame; OUTPUT: RETVAL int SMPEGInfoCurrentOffset ( info ) SMPEG_Info* info CODE: RETVAL = info->current_offset; OUTPUT: RETVAL int SMPEGInfoTotalSize ( info ) SMPEG_Info* info CODE: RETVAL = info->total_size; OUTPUT: RETVAL double SMPEGInfoCurrentTime ( info ) SMPEG_Info* info CODE: RETVAL = info->current_time; OUTPUT: RETVAL double SMPEGInfoTotalTime ( info ) SMPEG_Info* info CODE: RETVAL = info->total_time; OUTPUT: RETVAL char * SMPEGError ( mpeg ) SMPEG* mpeg CODE: RETVAL = SMPEG_error(mpeg); OUTPUT: RETVAL #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/support�������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14553� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/support/darwin_support.h��������������������������������������������������������������000444��000765��000024�� 71�11760240072� 20076� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������void init_ns_application(); void quit_ns_application(); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/support/darwin_support.m��������������������������������������������������������������000444��000765��000024�� 2135�11760240072� 20146� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <Foundation/Foundation.h> #include <AppKit/AppKit.h> #include <setjmp.h> @interface perl_SDLMain : NSObject @end @interface SDLApplication : NSApplication @end static jmp_buf jmpbuf; @implementation perl_SDLMain - (void) applicationDidFinishLaunching: (NSNotification *) note { fprintf(stderr,"Finished launching\n"); // longjmp(jmpbuf,1); } @end extern void setApplicationMenu(void); extern void setupWindowMenu(void); static NSAutoreleasePool* pool = NULL; static perl_SDLMain* perl_sdlMain = NULL; void init_ns_application() { // Allocate pool so Cocoa can refcount pool = [[NSAutoreleasePool alloc] init]; // Create the application [SDLApplication sharedApplication]; [NSApp setMainMenu: [[NSMenu alloc] init]]; // setApplicationMenu(); // setupWindowMenu(); perl_sdlMain = [[perl_SDLMain alloc] init]; [NSApp setDelegate: perl_sdlMain]; // fprintf(stderr,"Calling [NSapp run]\n"); // if (0 == setjmp(jmpbuf)) { [NSApp run]; // } else { // fprintf(stderr, "Returned from that nasty [NSApp run]"); // } } void quit_ns_application() { [perl_sdlMain release]; [pool release]; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/support/win32.c�����������������������������������������������������������������������000444��000765��000024�� 63�11760240073� 15755� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� #ifdef MSWIN32 int dummy() { return 0; } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/TTF�����������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 13474� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/TTF/README����������������������������������������������������������������������������000444��000765��000024�� 65�11760240073� 14452� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������Docs are here: http://jcatki.no-ip.org:8080/SDL_ttf/ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/TTF/TTF.xs����������������������������������������������������������������������������000444��000765��000024�� 24557�11760240072� 14676� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include <SDL.h> #ifdef HAVE_SDL_TTF #include <SDL_ttf.h> #ifndef SDL_TTF_MAJOR_VERSION #define SDL_TTF_MAJOR_VERSION 0 #endif #ifndef SDL_TTF_MINOR_VERSION #define SDL_TTF_MINOR_VERSION 0 #endif #ifndef SDL_TTF_PATCHLEVEL #define SDL_TTF_PATCHLEVEL 0 #endif #define SDL_TTF_VERSION(X) \ { \ (X)->major = SDL_TTF_MAJOR_VERSION; \ (X)->minor = SDL_TTF_MINOR_VERSION; \ (X)->patch = SDL_TTF_PATCHLEVEL; \ } static Uint16 *UTF8_to_UNICODE(Uint16 *unicode, const char *utf8, int len) { int i, j; Uint16 ch; for ( i=0, j=0; i < len; ++i, ++j ) { ch = ((const unsigned char *)utf8)[i]; if ( ch >= 0xF0 ) { ch = (Uint16)(utf8[i]&0x07) << 18; ch |= (Uint16)(utf8[++i]&0x3F) << 12; ch |= (Uint16)(utf8[++i]&0x3F) << 6; ch |= (Uint16)(utf8[++i]&0x3F); } else if ( ch >= 0xE0 ) { ch = (Uint16)(utf8[i]&0x0F) << 12; ch |= (Uint16)(utf8[++i]&0x3F) << 6; ch |= (Uint16)(utf8[++i]&0x3F); } else if ( ch >= 0xC0 ) { ch = (Uint16)(utf8[i]&0x1F) << 6; ch |= (Uint16)(utf8[++i]&0x3F); } unicode[j] = ch; } unicode[j] = 0; return unicode; } static Uint16 *utf16_to_UNICODE(SV *sv) { STRLEN len; char *text = SvPV(sv, len); len /= 2; /* 1-Byte chars to 2-Byte Uint16 */ Uint16 *unicode = safemalloc((len + 2) * sizeof(Uint16)); /* length = BOM + characters + NULL */ int i; /* UTF-16 Big Endian with BOM */ if((Uint8)text[0] == 0xFE && (Uint8)text[1] == 0xFF) { for( i = 0; i < len; i++ ) { unicode[i] = ((Uint8)text[i * 2] << 8) | (Uint8)text[i * 2 + 1]; } unicode[i] = 0; } else /* UTF-16 Little Endian with BOM */ if((Uint8)text[0] == 0xFF && (Uint8)text[1] == 0xFE) { for( i = 0; i < len; i++ ) { unicode[i] = ((Uint8)text[i * 2 + 1] << 8) | (Uint8)text[i * 2]; } unicode[i] = 0; } else /* everything without BOM is treated as UTF-16 Big Endian */ { unicode[0] = 0xFEFF; /* we have to pass it as UTF-16 Big Endian */ for( i = 0; i <= len; i++ ) { unicode[i + 1] = (text[i * 2] << 8) | text[i * 2 + 1]; } unicode[i] = 0; } return unicode; } #endif MODULE = SDL::TTF PACKAGE = SDL::TTF PREFIX = ttf_ #ifdef HAVE_SDL_TTF const SDL_version * ttf_linked_version() PREINIT: char* CLASS = "SDL::Version"; SDL_version *version; CODE: version = (SDL_version *) safemalloc ( sizeof(SDL_version) ); SDL_version* version_dont_free = (SDL_version *)TTF_Linked_Version(); version->major = version_dont_free->major; version->minor = version_dont_free->minor; version->patch = version_dont_free->patch; RETVAL = version; OUTPUT: RETVAL const SDL_version * ttf_compile_time_version() PREINIT: char* CLASS = "SDL::Version"; CODE: SDL_version *compile_time_version = safemalloc(sizeof(SDL_version)); SDL_TTF_VERSION(compile_time_version); RETVAL = compile_time_version; OUTPUT: RETVAL void ttf_byte_swapped_unicode(swapped) int swapped CODE: TTF_ByteSwappedUNICODE(swapped); int ttf_init() CODE: RETVAL = TTF_Init(); OUTPUT: RETVAL TTF_Font * ttf_open_font(file, ptsize) const char *file int ptsize PREINIT: char* CLASS = "SDL::TTF::Font"; CODE: RETVAL = TTF_OpenFont(file, ptsize); OUTPUT: RETVAL TTF_Font * ttf_open_font_index(file, ptsize, index) char *file int ptsize long index PREINIT: char* CLASS = "SDL::TTF::Font"; CODE: RETVAL = TTF_OpenFontIndex(file, ptsize, index); OUTPUT: RETVAL TTF_Font * ttf_open_font_RW(src, freesrc, ptsize) SDL_RWops *src int freesrc int ptsize PREINIT: char* CLASS = "SDL::TTF::Font"; CODE: RETVAL = TTF_OpenFontRW(src, freesrc, ptsize); OUTPUT: RETVAL TTF_Font * ttf_open_font_index_RW(src, freesrc, ptsize, index) SDL_RWops *src int freesrc int ptsize long index PREINIT: char* CLASS = "SDL::TTF::Font"; CODE: RETVAL = TTF_OpenFontIndexRW(src, freesrc, ptsize, index); OUTPUT: RETVAL int ttf_get_font_style(font) TTF_Font *font CODE: RETVAL = TTF_GetFontStyle(font); OUTPUT: RETVAL void ttf_set_font_style(font, style) TTF_Font *font int style CODE: TTF_SetFontStyle(font, style); int ttf_font_height(font) TTF_Font *font CODE: RETVAL = TTF_FontHeight(font); OUTPUT: RETVAL int ttf_font_ascent(font) TTF_Font *font CODE: RETVAL = TTF_FontAscent(font); OUTPUT: RETVAL int ttf_font_descent(font) TTF_Font *font CODE: RETVAL = TTF_FontDescent(font); OUTPUT: RETVAL int ttf_font_line_skip(font) TTF_Font *font CODE: RETVAL = TTF_FontLineSkip(font); OUTPUT: RETVAL long ttf_font_faces(font) TTF_Font *font CODE: RETVAL = TTF_FontFaces(font); OUTPUT: RETVAL int ttf_font_face_is_fixed_width(font) TTF_Font *font CODE: RETVAL = TTF_FontFaceIsFixedWidth(font); OUTPUT: RETVAL char * ttf_font_face_family_name(font) TTF_Font *font CODE: RETVAL = TTF_FontFaceFamilyName(font); OUTPUT: RETVAL char * ttf_font_face_style_name(font) TTF_Font *font CODE: RETVAL = TTF_FontFaceStyleName(font); OUTPUT: RETVAL AV * ttf_glyph_metrics(font, ch) TTF_Font *font SV *ch CODE: int minx, maxx, miny, maxy, advance; if(TTF_GlyphMetrics(font, *(utf16_to_UNICODE(ch)+1), &minx, &maxx, &miny, &maxy, &advance) == 0) { RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(minx)); av_push(RETVAL,newSViv(maxx)); av_push(RETVAL,newSViv(miny)); av_push(RETVAL,newSViv(maxy)); av_push(RETVAL,newSViv(advance)); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV * ttf_size_text(font, text) TTF_Font *font const char *text CODE: int w, h; if(0 == TTF_SizeText(font, text, &w, &h)) { RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(w)); av_push(RETVAL,newSViv(h)); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV * ttf_size_utf8(font, text) TTF_Font *font const char *text CODE: int w, h; if(0 == TTF_SizeUTF8(font, text, &w, &h)) { RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(w)); av_push(RETVAL,newSViv(h)); } else XSRETURN_UNDEF; OUTPUT: RETVAL AV * ttf_size_unicode(font, text) TTF_Font *font SV *text CODE: int w, h; if(0 == TTF_SizeUNICODE(font, utf16_to_UNICODE(text), &w, &h)) { RETVAL = newAV(); sv_2mortal((SV*)RETVAL); av_push(RETVAL,newSViv(w)); av_push(RETVAL,newSViv(h)); } else XSRETURN_UNDEF; OUTPUT: RETVAL SDL_Surface * ttf_render_text_solid(font, text, fg) TTF_Font *font const char *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderText_Solid(font, text, *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_utf8_solid(font, text, fg) TTF_Font *font SV *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: /* this is buggy, see: http://bugzilla.libsdl.org/show_bug.cgi?id=970 */ /*RETVAL = TTF_RenderUTF8_Solid(font, text, *fg); */ STRLEN len; unsigned char*utf8_text = SvPV(text, len); Uint16 *unicode = safemalloc((sv_len_utf8(text) + 2) * sizeof(Uint16)); *unicode = 0xFEFF; UTF8_to_UNICODE(unicode+1, utf8_text, len); RETVAL = TTF_RenderUNICODE_Solid(font, unicode, *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_unicode_solid(font, text, fg) TTF_Font *font SV *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderUNICODE_Solid(font, utf16_to_UNICODE(text), *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_glyph_solid(font, ch, fg) TTF_Font *font char ch SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderGlyph_Solid(font, ch, *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_text_shaded(font, text, fg, bg) TTF_Font *font const char *text SDL_Color *fg SDL_Color *bg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderText_Shaded(font, text, *fg, *bg); OUTPUT: RETVAL SDL_Surface * ttf_render_utf8_shaded(font, text, fg, bg) TTF_Font *font SV *text SDL_Color *fg SDL_Color *bg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderUTF8_Shaded(font, SvPV(text, PL_na), *fg, *bg); OUTPUT: RETVAL SDL_Surface * ttf_render_unicode_shaded(font, text, fg, bg) TTF_Font *font SV *text SDL_Color *fg SDL_Color *bg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderUNICODE_Shaded(font, utf16_to_UNICODE(text), *fg, *bg); OUTPUT: RETVAL SDL_Surface * ttf_render_glyph_shaded(font, ch, fg, bg) TTF_Font *font char ch SDL_Color *fg SDL_Color *bg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderGlyph_Shaded(font, ch, *fg, *bg); OUTPUT: RETVAL SDL_Surface * ttf_render_text_blended(font, text, fg) TTF_Font *font const char *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderText_Blended(font, text, *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_utf8_blended(font, text, fg) TTF_Font *font SV *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderUTF8_Blended(font, SvPV(text, PL_na), *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_unicode_blended(font, text, fg) TTF_Font *font SV *text SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderUNICODE_Blended(font, utf16_to_UNICODE(text), *fg); OUTPUT: RETVAL SDL_Surface * ttf_render_glyph_blended(font, ch, fg) TTF_Font *font char ch SDL_Color *fg PREINIT: char* CLASS = "SDL::Surface"; CODE: RETVAL = TTF_RenderGlyph_Blended(font, ch, *fg); OUTPUT: RETVAL void ttf_quit() CODE: TTF_Quit(); int ttf_was_init() CODE: RETVAL = TTF_WasInit(); OUTPUT: RETVAL #if SDL_TTF_MAJOR_VERSION >= 2 && SDL_TTF_MINOR_VERSION >= 0 && SDL_TTF_PATCHLEVEL >= 10 int ttf_get_font_outline(font) TTF_Font *font CODE: RETVAL = TTF_GetFontOutline(font); OUTPUT: RETVAL void ttf_set_font_outline(font, outline) TTF_Font *font int outline CODE: TTF_SetFontOutline(font, outline); int ttf_get_font_hinting(font) TTF_Font *font CODE: RETVAL = TTF_GetFontHinting(font); OUTPUT: RETVAL void ttf_set_font_hinting(font, hinting) TTF_Font *font int hinting CODE: TTF_SetFontHinting(font, hinting); int ttf_get_font_kerning(font) TTF_Font *font CODE: RETVAL = TTF_GetFontKerning(font); OUTPUT: RETVAL void ttf_set_font_kerning(font, allowed) TTF_Font *font int allowed CODE: TTF_SetFontKerning(font, allowed); int ttf_glyph_is_provided(font, ch); TTF_Font *font SV *ch CODE: RETVAL = TTF_GlyphIsProvided(font, *(utf16_to_UNICODE(ch)+1)); OUTPUT: RETVAL #endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/TTF/objects���������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 15124� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/src/TTF/objects/Font.xs�������������������������������������������������������������������000444��000765��000024�� 1305�11760240072� 16542� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include <SDL.h> #ifdef HAVE_SDL_TTF #include <SDL_ttf.h> void _free_font(void *object) { TTF_CloseFont((TTF_Font *)object); } #endif MODULE = SDL::TTF::Font PACKAGE = SDL::TTF::Font PREFIX = ttf_font_ =for documentation SDL_TTF_Font - The opaque holder of a loaded font =cut #ifdef HAVE_SDL_TTF TTF_Font * ttf_font_new(CLASS, file, ptsize, index = 0) char* CLASS char *file int ptsize long index CODE: RETVAL = TTF_OpenFontIndex(file, ptsize, index); OUTPUT: RETVAL void ttf_font_DESTROY(bag) SV *bag CODE: objDESTROY(bag, _free_font); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t�����������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 12513� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/00-load.t�������������������������������������������������������������������������������000444��000765��000024�� 3214�11760240072� 14170� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::Most 'bail'; use File::Spec 'catfile'; BEGIN { my @modules = qw / SDL SDL::Video SDL::Color SDL::Surface SDL::Config SDL::Overlay SDL::Rect SDL::Time SDL::Events SDL::Event SDL::Mouse SDL::Joystick SDL::Cursor SDL::Audio SDL::AudioCVT SDL::AudioSpec SDL::CDROM SDL::CDTrack SDL::CD SDL::MultiThread SDL::PixelFormat SDL::VideoInfo SDL::GFX::BlitFunc SDL::GFX::Framerate SDL::GFX::FPSManager SDL::GFX::ImageFilter SDL::GFX::Primitives SDL::GFX::Rotozoom SDL::Image SDL::Mixer SDL::Mixer::Samples SDL::Mixer::Channels SDL::Mixer::Groups SDL::Mixer::Music SDL::Mixer::Effects SDL::Mixer::MixChunk SDL::Mixer::MixMusic SDL::Pango SDL::Pango::Context SDL::TTF SDL::TTF::Font SDL::Version SDLx::App SDLx::Sprite SDLx::Sprite::Animated SDLx::FPS SDLx::SFont SDLx::Validate SDLx::Surface SDLx::Surface::TiedMatrix SDLx::Surface::TiedMatrixRow SDLx::Controller SDLx::Controller::Interface SDLx::Controller::State SDLx::Controller::Timer SDLx::Sound /; my $tests = scalar @modules; my $load_test_strict = 0; if( $ENV{RELEASE_TESTING}) { eval 'require Test::Strict'; $load_test_strict = 1 unless $@; } foreach( @modules ) { use_ok $_ ; if( $load_test_strict ) { my $file = $_; my @files = split /::/, $file; $file = File::Spec->catfile( 'lib', @files ); $file = $file.'.pm'; eval 'Test::Strict::syntax_ok $file'; pass unless $@; eval 'Test::Stict::strict_ok $file'; pass unless $@; eval 'Test::Strict::warnings_ok $file'; pass unless $@; } } } done_testing(); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/colorpm.t�������������������������������������������������������������������������������000444��000765��000024�� 1725�11760240073� 14515� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use Test::More tests => 15; use_ok('SDL::Color'); # check empty: black my $black = SDL::Color->new( 0, 0, 0 ); isa_ok( $black, 'SDL::Color' ); is( $black->r(), 0, 'black r is 0' ); is( $black->g(), 0, 'black g is 0' ); is( $black->b(), 0, 'black b is 0' ); # check full: white my $white = SDL::Color->new( 0xff, 0xff, 0xff ); isa_ok( $white, 'SDL::Color' ); is( $white->r(), 255, 'white r is 255' ); is( $white->g(), 255, 'white g is 255' ); is( $white->b(), 255, 'white b is 255' ); # check setting a value my $orange = $white; $orange->r(254); $orange->g(153); $orange->b(0); is( $orange->r(), 254, 'orange_notcloned r is 254' ); is( $orange->g(), 153, 'orange_notcloned g is 153' ); is( $orange->b(), 0, 'orange_notcloned b is 0' ); # check that copies also change is( $white->r(), 254, 'white (now orange) r is 254' ); is( $white->g(), 153, 'white (now orange) g is 154' ); is( $white->b(), 0, 'white (now orange) b is 0' ); sleep(2); �������������������������������������������SDL-2.540/t/config.t��������������������������������������������������������������������������������000444��000765��000024�� 2624�11760240073� 14306� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������# t/002_config.t - test config() functionality use Test::More tests => 2; BEGIN { use_ok('SDL::Config'); } print "Testing SDL::Config\n"; print "Has SDL = " . SDL::Config->has('SDL') . "\n"; print "Has SDL_mixer = " . SDL::Config->has('SDL_mixer') . "\n"; print "Has SDL_image = " . SDL::Config->has('SDL_image') . "\n"; print "Has SDL_ttf = " . SDL::Config->has('SDL_ttf') . "\n"; print "Has SDL_gfx_framerate = " . SDL::Config->has('SDL_gfx_framerate') . "\n"; print "Has SDL_gfx_imagefilter = " . SDL::Config->has('SDL_gfx_imagefilter') . "\n"; print "Has SDL_gfx_primitives = " . SDL::Config->has('SDL_gfx_primitives') . "\n"; print "Has SDL_gfx_rotozoom = " . SDL::Config->has('SDL_gfx_rotozoom') . "\n"; print "Has SDL_net = " . SDL::Config->has('SDL_net') . "\n"; print "Has SDL_Pango = " . SDL::Config->has('SDL_Pango') . "\n"; print "Has SDL_sound = " . SDL::Config->has('SDL_sound') . "\n"; print "Has SDL_svg = " . SDL::Config->has('SDL_svg') . "\n"; print "Has smpeg = " . SDL::Config->has('smpeg') . "\n"; print "Has png = " . SDL::Config->has('png') . "\n"; print "Has jpeg = " . SDL::Config->has('jpeg') . "\n"; print "Has tiff = " . SDL::Config->has('tiff') . "\n"; # we assume that the following are always present is( SDL::Config->has('SDL'), 1 ); ������������������������������������������������������������������������������������������������������������SDL-2.540/t/core.t����������������������������������������������������������������������������������000444��000765��000024�� 6701�11760240072� 13770� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use Config; use SDL; use SDL::Video; use SDL::Version; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } else { plan( tests => 28 ); } my @done = qw/ init quit was_init get_error version linked_version putenv getenv init_sub_system quit_sub_system /; use_ok('SDL'); can_ok( 'SDL', @done ); my $v = SDL::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); is( SDL_INIT_TIMER, 1, 'SDL_INIT_TIMER should be imported' ); is( SDL_INIT_TIMER(), 1, 'SDL_INIT_TIMER() should also be available' ); is( SDL_INIT_AUDIO, 16, 'SDL_INIT_AUDIO should be imported' ); is( SDL_INIT_AUDIO(), 16, 'SDL_INIT_AUDIO() should also be available' ); is( SDL_INIT_VIDEO, 32, 'SDL_INIT_VIDEO should be imported' ); is( SDL_INIT_VIDEO(), 32, 'SDL_INIT_VIDEO() should also be available' ); is( SDL_INIT_CDROM, 256, 'SDL_INIT_CDROM should be imported' ); is( SDL_INIT_CDROM(), 256, 'SDL_INIT_CDROM() should also be available' ); is( SDL_INIT_JOYSTICK, 512, 'SDL_INIT_JOYSTICK should be imported' ); is( SDL_INIT_JOYSTICK(), 512, 'SDL_INIT_JOYSTICK() should also be available' ); is( SDL_INIT_EVERYTHING, 65535, 'SDL_INIT_EVERYTHING should be imported' ); is( SDL_INIT_EVERYTHING(), 65535, 'SDL_INIT_EVERYTHING() should also be available' ); is( SDL_INIT_NOPARACHUTE, 1048576, 'SDL_INIT_NOPARACHUTE should be imported' ); is( SDL_INIT_NOPARACHUTE(), 1048576, 'SDL_INIT_NOPARACHUTE() should also be available' ); is( SDL_INIT_EVENTTHREAD, 16777216, 'SDL_INIT_EVENTTHREAD should be imported' ); is( SDL_INIT_EVENTTHREAD(), 16777216, 'SDL_INIT_EVENTTHREAD() should also be available' ); my $display = SDL::Video::set_video_mode( 640, 480, 232, SDL_ANYFORMAT ); isnt( SDL::get_error(), '', '[get_error] got error ' . SDL::get_error() ); TODO: { local $TODO = 'These test are not critcal if they fail'; SDL::quit_sub_system(SDL_INIT_VIDEO); isnt( SDL::was_init(SDL_INIT_VIDEO), SDL_INIT_VIDEO, '[was_init] recognizes turned off sub system' ); SDL::init_sub_system(SDL_INIT_VIDEO); is( SDL::was_init(SDL_INIT_VIDEO), SDL_INIT_VIDEO, '[was_init] recognizes turned back on sub system' ); } SDL::quit(); pass '[quit] SDL quit with out segfaults or errors'; isnt( SDL::was_init(0), SDL_INIT_VIDEO, '[was_init] recognizes turned off flags' ); SKIP: { skip 'perl compiled with -DPERL_USE_SAFE_PUTENV', 2 if defined $Config{'config_args'} && $Config{'config_args'} =~ /PERL_USE_SAFE_PUTENV/; is( SDL::putenv('PERLSDL_TEST=hello'), 0, '[putenv] returns 0' ); is( SDL::getenv('PERLSDL_TEST'), 'hello', '[getenv] returns hello' ); } my @left = qw/ load_object load_function unload_function unload_object /; my $why = '[Percentage Completion] ' . int( 100 * $#done / ( $#done + $#left ) ) . "\% implementation. $#done / " . ( $#done + $#left ); TODO: { local $TODO = $why; pass "\nThe following functions:\n" . join ",", @left; } if ( $done[0] eq 'none' ) { print '0% done 0/' . $#left . "\n" } else { print "$why\n" } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; sleep(2); ���������������������������������������������������������������SDL-2.540/t/core_audio.t����������������������������������������������������������������������������000444��000765��000024�� 10610�11760240072� 15163� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w BEGIN { # http://wiki.cpantesters.org/wiki/CPANAuthorNotes use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } } use strict; use SDL; use SDL::Audio; use SDL::AudioSpec; use Test::More; use Devel::Peek; use lib 't/lib'; use SDL::TestTool; my $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } else { plan( tests => 45 ); } my @done = qw/ audio_spec open pause close get_status lock unlock /; is( AUDIO_S16, 32784, 'AUDIO_S16 should be imported' ); is( AUDIO_S16(), 32784, 'AUDIO_S16() should also be available' ); is( AUDIO_S16MSB, 36880, 'AUDIO_S16MSB should be imported' ); is( AUDIO_S16MSB(), 36880, 'AUDIO_S16MSB() should also be available' ); is( AUDIO_S16LSB, 0x8010, 'AUDIO_S16MSB should be imported' ); is( AUDIO_S16LSB(), 0x8010, 'AUDIO_S16MSB() should also be available' ); is( AUDIO_S8, 32776, 'AUDIO_S8 should be imported' ); is( AUDIO_S8(), 32776, 'AUDIO_S8() should also be available' ); is( AUDIO_U16, 16, 'AUDIO_U16 should be imported' ); is( AUDIO_U16(), 16, 'AUDIO_U16() should also be available' ); is( AUDIO_U16MSB, 4112, 'AUDIO_U16MSB should be imported' ); is( AUDIO_U16MSB(), 4112, 'AUDIO_U16MSB() should also be available' ); is( AUDIO_U16LSB, 0x0010, 'AUDIO_U16MSB should be imported' ); is( AUDIO_U16LSB(), 0x0010, 'AUDIO_U16MSB() should also be available' ); is( AUDIO_U8, 8, 'AUDIO_U8 should be imported' ); is( AUDIO_U8(), 8, 'AUDIO_U8() should also be available' ); ok( ( SDL::Audio::AUDIO_U16SYS == AUDIO_U16LSB ) || ( SDL::Audio::AUDIO_U16SYS == AUDIO_U16MSB ), 'AUDIO_U16SYS should be imported' ); ok( ( SDL::Audio::AUDIO_U16SYS() == AUDIO_U16LSB() ) || ( SDL::Audio::AUDIO_U16SYS() == AUDIO_U16MSB() ), 'AUDIO_U16SYS() should also be available' ); is( SDL_AUDIO_PAUSED, 2, 'SDL_AUDIO_PAUSED should be imported' ); is( SDL_AUDIO_PAUSED(), 2, 'SDL_AUDIO_PAUSED() should also be available' ); is( SDL_AUDIO_PLAYING, 1, 'SDL_AUDIO_PLAYING should be imported' ); is( SDL_AUDIO_PLAYING(), 1, 'SDL_AUDIO_PLAYING() should also be available' ); is( SDL_AUDIO_STOPPED, 0, 'SDL_AUDIO_STOPPED should be imported' ); is( SDL_AUDIO_STOPPED(), 0, 'SDL_AUDIO_STOPPED() should also be available' ); my $driver = SDL::Audio::audio_driver_name(); pass "[audio_driver_name] using audio driver $driver"; my $desired = SDL::AudioSpec->new; $desired->freq(44100); is( $desired->freq, 44100, '[audiospec] can set freq' ); $desired->format(SDL::Audio::AUDIO_S16SYS); is( $desired->format, SDL::Audio::AUDIO_S16SYS, '[audiospec] can set format' ); $desired->channels(2); is( $desired->channels, 2, '[audiospec] can set channels' ); $desired->samples(4096); is( $desired->samples, 4096, '[audiospec] can set samples' ); $desired->callback('main::audio_callback'); is( SDL::Audio::get_status, SDL_AUDIO_STOPPED, '[get_status stopped]' ); my $obtained = SDL::AudioSpec->new; is( SDL::Audio::open( $desired, $obtained ), 0, '[open returned success]' ); isa_ok( $obtained, 'SDL::AudioSpec', 'Created a new AudioSpec' ); my $wav_ref = SDL::Audio::load_wav( 'test/data/sample.wav', $obtained ); isa_ok( $wav_ref, 'ARRAY', "Got and Array Out of load_wav. $wav_ref" ); my ( $wav_spec, $audio_buf, $audio_len ) = @{$wav_ref}; isa_ok( $wav_spec, 'SDL::AudioSpec', '[load_wav] got Audio::Spec back out ' ); is( $audio_len, 481712, '[load_wav] length is correct' ); SDL::Audio::free_wav($audio_buf); is( SDL::Audio::get_status, SDL_AUDIO_PAUSED, '[get_status paused]' ); SDL::Audio::pause(0); is( SDL::Audio::get_status, SDL_AUDIO_PLAYING, '[get_status playing]' ); SDL::Audio::lock(); pass('Audio locked'); SDL::Audio::unlock(); pass('Audio unlocked'); SDL::Audio::close(); pass('Audio Closed'); is( SDL::Audio::get_status, SDL_AUDIO_STOPPED, '[get_status stopped]' ); my @left = qw/ audio_cvt build_audio_cvt convert_audio mix_audio /; my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; fail "Not Implmented $_" foreach (@left) } print "$why\n"; if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } sleep(1); sub audio_callback { } ������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_audiospec.t������������������������������������������������������������������������000444��000765��000024�� 3144�11760240073� 16023� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w BEGIN { # http://wiki.cpantesters.org/wiki/CPANAuthorNotes use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } } use strict; use threads; use threads::shared; use SDL; use SDL::Audio; use SDL::AudioSpec; use Test::More; use Devel::Peek; use Config; use lib 't/lib'; use SDL::TestTool; plan( skip_all => "author tests not required for installation" ) unless ( $ENV{AUTOMATED_TESTING} or $ENV{SDL_RELEASE_TESTING} ); my $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy'; # unless $ENV{SDL_RELEASE_TESTING}; plan( skip_all => 'Failed to init sound' ) unless SDL::TestTool->init(SDL_INIT_AUDIO); my $obtained = SDL::AudioSpec->new; my $p : shared = 0; my $f : shared = 0; my $desired = SDL::AudioSpec->new; $desired->freq(44100); $desired->format(AUDIO_S8); $desired->channels(1); $desired->samples(4096); $desired->callback('main::callback'); sub callback { my ( $int_size, $len, $streamref ) = @_; my $chr = chr(0); $chr = chr($p) if $p; #Windows is delaying the thread update for some reason for ( my $i = 0; $i < $len; $i++ ) { use bytes; substr( $$streamref, $i, 1, $chr ); if ( $f && $p++ > 200 ) { $f = 0; } elsif ( !$f && $p-- < 0 ) { $f = 1; } } isnt $p, 0, '[callback] tested $p = ' . $p; } die 'AudioMixer, Unable to open audio: ' . SDL::get_error() if ( SDL::Audio::open( $desired, $obtained ) < 0 ); SDL::Audio::pause(0); sleep(1); SDL::Audio::close(); if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_cd.t�������������������������������������������������������������������������������000444��000765��000024�� 7241�11760240073� 14437� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; BEGIN { use Test::More; use lib 't/lib'; use SDL::TestTool; use Config; plan( skip_all => 'GNU Hurd <= 0.3 not supported' ) if $^O eq 'gnu' && $Config{osvers} <= 0.3; plan( skip_all => 'Failed to init cdrom' ) unless SDL::TestTool->init(SDL_INIT_CDROM); } use SDL::CD; use SDL::CDROM; use SDL::CDTrack; is( CD_ERROR, -1, 'CD_ERROR should be imported' ); is( CD_ERROR(), -1, 'CD_ERROR() should also be available' ); is( CD_PAUSED, 3, 'CD_PAUSED should be imported' ); is( CD_PAUSED(), 3, 'CD_PAUSED() should also be available' ); is( CD_PLAYING, 2, 'CD_PLAYING should be imported' ); is( CD_PLAYING(), 2, 'CD_PLAYING() should also be available' ); is( CD_STOPPED, 1, 'CD_STOPPED should be imported' ); is( CD_STOPPED(), 1, 'CD_STOPPED() should also be available' ); is( CD_TRAYEMPTY, 0, 'CD_TRAYEMPTY should be imported' ); is( CD_TRAYEMPTY(), 0, 'CD_TRAYEMPTY() should also be available' ); is( SDL_AUDIO_TRACK, 0, 'SDL_AUDIO_TRACK should be imported' ); is( SDL_AUDIO_TRACK(), 0, 'SDL_AUDIO_TRACK() should also be available' ); is( SDL_DATA_TRACK, 4, 'SDL_DATA_TRACK should be imported' ); is( SDL_DATA_TRACK(), 4, 'SDL_DATA_TRACK() should also be available' ); my $num_drives = SDL::CDROM::num_drives(); ok( $num_drives >= 0, "[SDL::CDROM::num_drives] is $num_drives" ); SKIP: { skip( "no drives available or SDL_RELEASE_TESTING not set", 17 ) if $num_drives <= 0 || !$ENV{SDL_RELEASE_TESTING}; for ( 0 .. $num_drives - 1 ) { my $name = SDL::CDROM::name($_); ok( $name, "[SDL::CDROM::name] for drive $_ is $name" ); } my $cd = SDL::CD->new(0); isa_ok( $cd, 'SDL::CD', "[SDL::CD->new]" ); my $status = $cd->status(); my %states = ( -1 => 'CD_ERROR', 0 => 'CD_TRAYEMPTY', 1 => 'CD_STOPPED', 2 => 'CD_PLAYING', 3 => 'CD_PAUSED' ); my %types = ( 0 => 'SDL_AUDIO_TRACK', 1 => 'SDL_DATA_TRACK' ); ok( defined $states{$status}, "[SDL::CD->status] is " . ( defined $states{$status} ? $states{$status} : 'undefined' ) ); SKIP: { skip( "CD should be in CD_STOPPED state", 14 ) unless $status == CD_STOPPED; my $track = $cd->track(3); isa_ok( $track, 'SDL::CDTrack', "[SDL::CD->track]" ); my $id = $cd->id(); ok( $id >= 0, "[SDL::CD->id] is $id" ); my $num_tracks = $cd->num_tracks(); ok( $num_tracks >= 0, "[SDL::CD->num_tracks] is $num_tracks" ); is( $cd->play_tracks( 4, 0, 5, 0 ), 0, "[SDL::CD->play_tracks] playing track 4" ); SDL::delay(2000); is( $cd->pause(), 0, "[SDL::CD->pause] succeeded" ); SDL::delay(2000); SKIP: { skip( "I have no idea why cur_track and cur_frame are 0.", 2 ); is( $cd->cur_track(), 4, "[SDL::CD->cur_track] is 4" ); my $frame = $cd->cur_frame(); ok( $frame, "[SDL::CD->cur_frame] is $frame" ); } my $t_id = $track->id(); ok( $t_id, "[SDL::CDTrack->id] is $t_id" ); my $t_type = $track->type(); ok( defined $types{$t_type}, "[SDL::CDTrack->type] is " . ( defined $types{$t_type} ? $types{$t_type} : 'undefined' ) ); my $t_length = $track->length(); ok( $t_length > 0, "[SDL::CDTrack->length] is $t_length" ); my $t_offset = $track->offset(); ok( $t_offset > 0, "[SDL::CDTrack->offset] is $t_offset" ); is( $cd->resume(), 0, "[SDL::CD->resume] succeeded" ); SDL::delay(2000); is( $cd->stop(), 0, "[SDL::CD->stop] succeeded" ); SDL::delay(2000); is( $cd->play( CD_FPS * 30, CD_FPS * 2 ), 0, "[SDL::CD->play] succeeded" ); SDL::delay(2000); } SKIP: { skip( "CD should be in CD_STOPPED or CD_TRAYEMPTY state", 1 ) unless $status == CD_STOPPED || $status == CD_TRAYEMPTY; is( $cd->eject(), 0, "[SDL::CD->eject] succeeded" ) unless SDL::delay(2000); } } done_testing; sleep(1); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_error.t����������������������������������������������������������������������������000444��000765��000024�� 1610�11760240072� 15173� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl use strict; use warnings; use SDL; use Test::More tests => 5; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; SKIP: { skip "Video fail", 1 unless SDL::TestTool->init(SDL_INIT_VIDEO); is( SDL::init(SDL_INIT_VIDEO), 0, '[init] returns 0 on success' ); } SDL::set_error('Hello'); is( SDL::get_error, 'Hello', '[get_error] returns Hello' ); SDL::set_error( 'Hello %s!', 'SDL' ); is( SDL::get_error, 'Hello SDL!', '[get_error] returns Hello SDL!' ); SDL::set_error( 'Hello %s! Three is %d.', 'SDL', 3 ); is( SDL::get_error, 'Hello SDL! Three is 3.', '[get_error] returns Hello SDL! Three is 3.' ); SDL::clear_error(); is( SDL::get_error, '', '[get_error] returns no error' ); sleep(2); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } ������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_events.t���������������������������������������������������������������������������000444��000765��000024�� 146506�11760240073� 15425� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Event; use SDL::Events; use SDL::Surface; use SDL::Video; use Devel::Peek; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my @done = qw/ pump_events peep_events push_event poll_event wait_event set_event_filter event_state get_key_state get_key_name get_mod_state set_mod_state enable_unicode enable_key_repeat get_mouse_state get_relative_mouse_state get_app_state joystick_event_state /; my @done_event = qw/ type active key motion button jaxis jball jhat jbutton resize expose quit user syswm /; can_ok( 'SDL::Events', @done ); can_ok( 'SDL::Event', @done_event ); is( SDL_ACTIVEEVENT, 1, 'SDL_ACTIVEEVENT should be imported' ); is( SDL_ACTIVEEVENT(), 1, 'SDL_ACTIVEEVENT() should also be available' ); is( SDL_ACTIVEEVENTMASK, SDL_EVENTMASK(SDL_ACTIVEEVENT), 'SDL_ACTIVEVENTMASK should be imported' ); is( SDL_ACTIVEEVENTMASK(), SDL_EVENTMASK(SDL_ACTIVEEVENT), 'SDL_ACTIVEVENTMASK() should also be available' ); is( SDL_ADDEVENT, 0, 'SDL_ADDEVENT should be imported' ); is( SDL_ADDEVENT(), 0, 'SDL_ADDEVENT() should also be available' ); is( SDL_ALLEVENTS, 0xFFFFFFFF, 'SDL_ALLEVENTS should be imported' ); is( SDL_ALLEVENTS(), 0xFFFFFFFF, 'SDL_ALLEVENTS() should also be available' ); is( SDL_APPACTIVE, 4, 'SDL_APPACTIVE should be imported' ); is( SDL_APPACTIVE(), 4, 'SDL_APPACTIVE() should also be available' ); is( SDL_APPINPUTFOCUS, 2, 'SDL_APPINPUTFOCUS should be imported' ); is( SDL_APPINPUTFOCUS(), 2, 'SDL_APPINPUTFOCUS() should also be available' ); is( SDL_APPMOUSEFOCUS, 1, 'SDL_APPMOUSEFOCUS should be imported' ); is( SDL_APPMOUSEFOCUS(), 1, 'SDL_APPMOUSEFOCUS() should also be available' ); is( SDL_BUTTON_LEFT, 1, 'SDL_BUTTON_LEFT should be imported' ); is( SDL_BUTTON_LEFT(), 1, 'SDL_BUTTON_LEFT() should also be available' ); is( SDL_BUTTON_MIDDLE, 2, 'SDL_BUTTON_MIDDLE should be imported' ); is( SDL_BUTTON_MIDDLE(), 2, 'SDL_BUTTON_MIDDLE() should also be available' ); is( SDL_BUTTON_RIGHT, 3, 'SDL_BUTTON_RIGHT should be imported' ); is( SDL_BUTTON_RIGHT(), 3, 'SDL_BUTTON_RIGHT() should also be available' ); is( SDL_BUTTON_WHEELUP, 4, 'SDL_BUTTON_WHEELUP should be imported' ); is( SDL_BUTTON_WHEELUP(), 4, 'SDL_BUTTON_WHEELUP() should also be available' ); is( SDL_BUTTON_WHEELDOWN, 5, 'SDL_BUTTON_WHEELDOWN should be imported' ); is( SDL_BUTTON_WHEELDOWN(), 5, 'SDL_BUTTON_WHEELDOWN() should also be available' ); is( SDL_DISABLE, 0, 'SDL_DISABLE should be imported' ); is( SDL_DISABLE(), 0, 'SDL_DISABLE() should also be available' ); is( SDL_ENABLE, 1, 'SDL_ENABLE should be imported' ); is( SDL_ENABLE(), 1, 'SDL_ENABLE() should also be available' ); is( SDL_GETEVENT, 2, 'SDL_GETEVENT should be imported' ); is( SDL_GETEVENT(), 2, 'SDL_GETEVENT() should also be available' ); is( SDL_HAT_CENTERED, 0, 'SDL_HAT_CENTERED should be imported' ); is( SDL_HAT_CENTERED(), 0, 'SDL_HAT_CENTERED() should also be available' ); is( SDL_HAT_DOWN, 4, 'SDL_HAT_DOWN should be imported' ); is( SDL_HAT_DOWN(), 4, 'SDL_HAT_DOWN() should also be available' ); is( SDL_HAT_LEFT, 8, 'SDL_HAT_LEFT should be imported' ); is( SDL_HAT_LEFT(), 8, 'SDL_HAT_LEFT() should also be available' ); is( SDL_HAT_LEFTDOWN, 12, 'SDL_HAT_LEFTDOWN should be imported' ); is( SDL_HAT_LEFTDOWN(), 12, 'SDL_HAT_LEFTDOWN() should also be available' ); is( SDL_HAT_LEFTUP, 9, 'SDL_HAT_LEFTUP should be imported' ); is( SDL_HAT_LEFTUP(), 9, 'SDL_HAT_LEFTUP() should also be available' ); is( SDL_HAT_RIGHT, 2, 'SDL_HAT_RIGHT should be imported' ); is( SDL_HAT_RIGHT(), 2, 'SDL_HAT_RIGHT() should also be available' ); is( SDL_HAT_RIGHTDOWN, 6, 'SDL_HAT_RIGHTDOWN should be imported' ); is( SDL_HAT_RIGHTDOWN(), 6, 'SDL_HAT_RIGHTDOWN() should also be available' ); is( SDL_HAT_RIGHTUP, 3, 'SDL_HAT_RIGHTUP should be imported' ); is( SDL_HAT_RIGHTUP(), 3, 'SDL_HAT_RIGHTUP() should also be available' ); is( SDL_HAT_UP, 1, 'SDL_HAT_UP should be imported' ); is( SDL_HAT_UP(), 1, 'SDL_HAT_UP() should also be available' ); is( SDL_IGNORE, 0, 'SDL_IGNORE should be imported' ); is( SDL_IGNORE(), 0, 'SDL_IGNORE() should also be available' ); is( SDL_JOYAXISMOTION, 7, 'SDL_JOYAXISMOTION should be imported' ); is( SDL_JOYAXISMOTION(), 7, 'SDL_JOYAXISMOTION() should also be available' ); is( SDL_JOYBALLMOTION, 8, 'SDL_JOYBALLMOTION should be imported' ); is( SDL_JOYBALLMOTION(), 8, 'SDL_JOYBALLMOTION() should also be available' ); is( SDL_JOYBUTTONDOWN, 10, 'SDL_JOYBUTTONDOWN should be imported' ); is( SDL_JOYBUTTONDOWN(), 10, 'SDL_JOYBUTTONDOWN() should also be available' ); is( SDL_JOYBUTTONUP, 11, 'SDL_JOYBUTTONUP should be imported' ); is( SDL_JOYBUTTONUP(), 11, 'SDL_JOYBUTTONUP() should also be available' ); is( SDL_JOYHATMOTION, 9, 'SDL_JOYHATMOTION should be imported' ); is( SDL_JOYHATMOTION(), 9, 'SDL_JOYHATMOTION() should also be available' ); is( SDL_JOYAXISMOTIONMASK, SDL_EVENTMASK(SDL_JOYAXISMOTION), 'SDL_JOYAXISMOTIONMASK should be imported' ); is( SDL_JOYAXISMOTIONMASK(), SDL_EVENTMASK(SDL_JOYAXISMOTION), 'SDL_JOYAXISMOTIONMASK() should also be available' ); is( SDL_JOYBALLMOTIONMASK, SDL_EVENTMASK(SDL_JOYBALLMOTION), 'SDL_JOYBALLMOTIONMASK should be imported' ); is( SDL_JOYBALLMOTIONMASK(), SDL_EVENTMASK(SDL_JOYBALLMOTION), 'SDL_JOYBALLMOTIONMASK() should also be available' ); is( SDL_JOYHATMOTIONMASK, SDL_EVENTMASK(SDL_JOYHATMOTION), 'SDL_JOYHATMOTIONMASK should be imported' ); is( SDL_JOYHATMOTIONMASK(), SDL_EVENTMASK(SDL_JOYHATMOTION), 'SDL_JOYHATMOTIONMASK() should also be available' ); is( SDL_JOYBUTTONDOWNMASK, SDL_EVENTMASK(SDL_JOYBUTTONDOWN), 'SDL_JOYBUTTONDOWNMASK should be imported' ); is( SDL_JOYBUTTONDOWNMASK(), SDL_EVENTMASK(SDL_JOYBUTTONDOWN), 'SDL_JOYBUTTONDOWNMASK() should also be available' ); is( SDL_JOYBUTTONUPMASK, SDL_EVENTMASK(SDL_JOYBUTTONUP), 'SDL_JOYBUTTONUPMASK should be imported' ); is( SDL_JOYBUTTONUPMASK(), SDL_EVENTMASK(SDL_JOYBUTTONUP), 'SDL_JOYBUTTONUPMASK() should also be available' ); is( SDL_JOYEVENTMASK, SDL_EVENTMASK(SDL_JOYAXISMOTION) | SDL_EVENTMASK(SDL_JOYBALLMOTION) | SDL_EVENTMASK(SDL_JOYHATMOTION) | SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP), 'SDL_JOYEVENTMASK should be imported' ); is( SDL_JOYEVENTMASK(), SDL_EVENTMASK(SDL_JOYAXISMOTION) | SDL_EVENTMASK(SDL_JOYBALLMOTION) | SDL_EVENTMASK(SDL_JOYHATMOTION) | SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP), 'SDL_JOYEVENTMASK() should also be available' ); is( SDL_KEYDOWN, 2, 'SDL_KEYDOWN should be imported' ); is( SDL_KEYDOWN(), 2, 'SDL_KEYDOWN() should also be available' ); is( SDL_KEYUP, 3, 'SDL_KEYUP should be imported' ); is( SDL_KEYUP(), 3, 'SDL_KEYUP() should also be available' ); is( SDL_KEYDOWNMASK, SDL_EVENTMASK(SDL_KEYDOWN), 'SDL_KEYDOWNMASK should be imported' ); is( SDL_KEYDOWNMASK(), SDL_EVENTMASK(SDL_KEYDOWN), 'SDL_KEYDOWNMASK() should also be available' ); is( SDL_KEYUPMASK, SDL_EVENTMASK(SDL_KEYUP), 'SDL_KEYUPMASK should be imported' ); is( SDL_KEYUPMASK(), SDL_EVENTMASK(SDL_KEYUP), 'SDL_KEYUPMASK() should also be available' ); is( SDL_KEYEVENTMASK, SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP), 'SDL_KEYEVENTMASK should be imported' ); is( SDL_KEYEVENTMASK(), SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP), 'SDL_KEYEVENTMASK() should also be available' ); is( SDL_MOUSEBUTTONDOWN, 5, 'SDL_MOUSEBUTTONDOWN should be imported' ); is( SDL_MOUSEBUTTONDOWN(), 5, 'SDL_MOUSEBUTTONDOWN() should also be available' ); is( SDL_MOUSEBUTTONUP, 6, 'SDL_MOUSEBUTTONUP should be imported' ); is( SDL_MOUSEBUTTONUP(), 6, 'SDL_MOUSEBUTTONUP() should also be available' ); is( SDL_MOUSEMOTION, 4, 'SDL_MOUSEMOTION should be imported' ); is( SDL_MOUSEMOTION(), 4, 'SDL_MOUSEMOTION() should also be available' ); is( SDL_MOUSEMOTIONMASK, SDL_EVENTMASK(SDL_MOUSEMOTION), 'SDL_MOUSEMOTIONMASK should be imported' ); is( SDL_MOUSEMOTIONMASK(), SDL_EVENTMASK(SDL_MOUSEMOTION), 'SDL_MOUSEMOTIONMASK() should also be available' ); is( SDL_MOUSEBUTTONDOWNMASK, SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), 'SDL_MOUSEBUTTONDOWNMASK should be imported' ); is( SDL_MOUSEBUTTONDOWNMASK(), SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), 'SDL_MOUSEBUTTONDOWNMASK() should also be available' ); is( SDL_MOUSEBUTTONUPMASK, SDL_EVENTMASK(SDL_MOUSEBUTTONUP), 'SDL_MOUSEBUTTONUPMASK should be imported' ); is( SDL_MOUSEBUTTONUPMASK(), SDL_EVENTMASK(SDL_MOUSEBUTTONUP), 'SDL_MOUSEBUTTONUPMASK() should also be available' ); is( SDL_MOUSEEVENTMASK, SDL_EVENTMASK(SDL_MOUSEMOTION) | SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP), 'SDL_MOUSEEVENTMASK should be imported' ); is( SDL_MOUSEEVENTMASK(), SDL_EVENTMASK(SDL_MOUSEMOTION) | SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP), 'SDL_MOUSEEVENTMASK() should also be available' ); is( SDL_NUMEVENTS, 32, 'SDL_NUMEVENTS should be imported' ); is( SDL_NUMEVENTS(), 32, 'SDL_NUMEVENTS() should also be available' ); is( SDL_PEEKEVENT, 1, 'SDL_PEEKEVENT should be imported' ); is( SDL_PEEKEVENT(), 1, 'SDL_PEEKEVENT() should also be available' ); is( SDL_PRESSED, 1, 'SDL_PRESSED should be imported' ); is( SDL_PRESSED(), 1, 'SDL_PRESSED() should also be available' ); is( SDL_QUERY, -1, 'SDL_QUERY should be imported' ); is( SDL_QUERY(), -1, 'SDL_QUERY() should also be available' ); is( SDL_QUIT, 12, 'SDL_QUIT should be imported' ); is( SDL_QUIT(), 12, 'SDL_QUIT() should also be available' ); is( SDL_QUITMASK, SDL_EVENTMASK(SDL_QUIT), 'SDL_QUITMASK should be imported' ); is( SDL_QUITMASK(), SDL_EVENTMASK(SDL_QUIT), 'SDL_QUITMASK() should also be available' ); is( SDL_RELEASED, 0, 'SDL_RELEASED should be imported' ); is( SDL_RELEASED(), 0, 'SDL_RELEASED() should also be available' ); is( SDL_SYSWMEVENT, 13, 'SDL_SYSWMEVENT should be imported' ); is( SDL_SYSWMEVENT(), 13, 'SDL_SYSWMEVENT() should also be available' ); is( SDL_SYSWMEVENTMASK, SDL_EVENTMASK(SDL_SYSWMEVENT), 'SDL_SYSWMEVENTMASK should be imported' ); is( SDL_SYSWMEVENTMASK(), SDL_EVENTMASK(SDL_SYSWMEVENT), 'SDL_SYSWMEVENTMASK() should also be available' ); is( SDL_USEREVENT, 24, 'SDL_USEREVENT should be imported' ); is( SDL_USEREVENT(), 24, 'SDL_USEREVENT() should also be available' ); is( SDL_VIDEOEXPOSE, 17, 'SDL_VIDEOEXPOSE should be imported' ); is( SDL_VIDEOEXPOSE(), 17, 'SDL_VIDEOEXPOSE() should also be available' ); is( SDL_VIDEOEXPOSEMASK, SDL_EVENTMASK(SDL_VIDEOEXPOSE), 'SDL_VIDEOEXPOSEMASK should be imported' ); is( SDL_VIDEOEXPOSEMASK(), SDL_EVENTMASK(SDL_VIDEOEXPOSE), 'SDL_VIDEOEXPOSEMASK() should also be available' ); is( SDL_VIDEORESIZE, 16, 'SDL_VIDEORESIZE should be imported' ); is( SDL_VIDEORESIZE(), 16, 'SDL_VIDEORESIZE() should also be available' ); is( SDL_VIDEORESIZEMASK, SDL_EVENTMASK(SDL_VIDEORESIZE), 'SDL_VIDEORESIZEMASK should be imported' ); is( SDL_VIDEORESIZEMASK(), SDL_EVENTMASK(SDL_VIDEORESIZE), 'SDL_VIDEORESIZEMASK() should also be available' ); is( KMOD_ALT, 768, 'KMOD_ALT should be imported' ); is( KMOD_ALT(), 768, 'KMOD_ALT() should also be available' ); is( KMOD_CAPS, 8192, 'KMOD_CAPS should be imported' ); is( KMOD_CAPS(), 8192, 'KMOD_CAPS() should also be available' ); is( KMOD_CTRL, 192, 'KMOD_CTRL should be imported' ); is( KMOD_CTRL(), 192, 'KMOD_CTRL() should also be available' ); is( KMOD_LALT, 256, 'KMOD_LALT should be imported' ); is( KMOD_LALT(), 256, 'KMOD_LALT() should also be available' ); is( KMOD_LCTRL, 64, 'KMOD_LCTRL should be imported' ); is( KMOD_LCTRL(), 64, 'KMOD_LCTRL() should also be available' ); is( KMOD_LMETA, 0x0400, 'KMOD_LMETA should be imported' ); is( KMOD_LMETA(), 0x0400, 'KMOD_LMETA() should also be available' ); is( KMOD_LSHIFT, 1, 'KMOD_LSHIFT should be imported' ); is( KMOD_LSHIFT(), 1, 'KMOD_LSHIFT() should also be available' ); is( KMOD_META, 0x0400 | 0x0800, 'KMOD_META should be imported' ); is( KMOD_META(), 0x0400 | 0x0800, 'KMOD_META() should also be available' ); is( KMOD_MODE, 0x4000, 'KMOD_MODE should be imported' ); is( KMOD_MODE(), 0x4000, 'KMOD_MODE() should also be available' ); is( KMOD_NONE, 0, 'KMOD_NONE should be imported' ); is( KMOD_NONE(), 0, 'KMOD_NONE() should also be available' ); is( KMOD_NUM, 4096, 'KMOD_NUM should be imported' ); is( KMOD_NUM(), 4096, 'KMOD_NUM() should also be available' ); is( KMOD_RESERVED, 0x8000, 'KMOD_RESERVED should be imported' ); is( KMOD_RESERVED(), 0x8000, 'KMOD_RESERVED() should also be available' ); is( KMOD_RALT, 512, 'KMOD_RALT should be imported' ); is( KMOD_RALT(), 512, 'KMOD_RALT() should also be available' ); is( KMOD_RCTRL, 128, 'KMOD_RCTRL should be imported' ); is( KMOD_RCTRL(), 128, 'KMOD_RCTRL() should also be available' ); is( KMOD_RMETA, 0x0800, 'KMOD_RMETA should be imported' ); is( KMOD_RMETA(), 0x0800, 'KMOD_RMETA() should also be available' ); is( KMOD_RSHIFT, 2, 'KMOD_RSHIFT should be imported' ); is( KMOD_RSHIFT(), 2, 'KMOD_RSHIFT() should also be available' ); is( KMOD_SHIFT, 3, 'KMOD_SHIFT should be imported' ); is( KMOD_SHIFT(), 3, 'KMOD_SHIFT() should also be available' ); is( SDLK_0, 48, 'SDLK_0 should be imported' ); is( SDLK_0(), 48, 'SDLK_0() should also be available' ); is( SDLK_1, 49, 'SDLK_1 should be imported' ); is( SDLK_1(), 49, 'SDLK_1() should also be available' ); is( SDLK_2, 50, 'SDLK_2 should be imported' ); is( SDLK_2(), 50, 'SDLK_2() should also be available' ); is( SDLK_3, 51, 'SDLK_3 should be imported' ); is( SDLK_3(), 51, 'SDLK_3() should also be available' ); is( SDLK_4, 52, 'SDLK_4 should be imported' ); is( SDLK_4(), 52, 'SDLK_4() should also be available' ); is( SDLK_5, 53, 'SDLK_5 should be imported' ); is( SDLK_5(), 53, 'SDLK_5() should also be available' ); is( SDLK_6, 54, 'SDLK_6 should be imported' ); is( SDLK_6(), 54, 'SDLK_6() should also be available' ); is( SDLK_7, 55, 'SDLK_7 should be imported' ); is( SDLK_7(), 55, 'SDLK_7() should also be available' ); is( SDLK_8, 56, 'SDLK_8 should be imported' ); is( SDLK_8(), 56, 'SDLK_8() should also be available' ); is( SDLK_9, 57, 'SDLK_9 should be imported' ); is( SDLK_9(), 57, 'SDLK_9() should also be available' ); is( SDLK_AMPERSAND, 38, 'SDLK_AMPERSAND should be imported' ); is( SDLK_AMPERSAND(), 38, 'SDLK_AMPERSAND() should also be available' ); is( SDLK_ASTERISK, 42, 'SDLK_ASTERISK should be imported' ); is( SDLK_ASTERISK(), 42, 'SDLK_ASTERISK() should also be available' ); is( SDLK_AT, 64, 'SDLK_AT should be imported' ); is( SDLK_AT(), 64, 'SDLK_AT() should also be available' ); is( SDLK_BACKQUOTE, 96, 'SDLK_BACKQUOTE should be imported' ); is( SDLK_BACKQUOTE(), 96, 'SDLK_BACKQUOTE() should also be available' ); is( SDLK_BACKSLASH, 92, 'SDLK_BACKSLASH should be imported' ); is( SDLK_BACKSLASH(), 92, 'SDLK_BACKSLASH() should also be available' ); is( SDLK_BACKSPACE, 8, 'SDLK_BACKSPACE should be imported' ); is( SDLK_BACKSPACE(), 8, 'SDLK_BACKSPACE() should also be available' ); is( SDLK_BREAK, 318, 'SDLK_BREAK should be imported' ); is( SDLK_BREAK(), 318, 'SDLK_BREAK() should also be available' ); is( SDLK_CAPSLOCK, 301, 'SDLK_CAPSLOCK should be imported' ); is( SDLK_CAPSLOCK(), 301, 'SDLK_CAPSLOCK() should also be available' ); is( SDLK_CARET, 94, 'SDLK_CARET should be imported' ); is( SDLK_CARET(), 94, 'SDLK_CARET() should also be available' ); is( SDLK_CLEAR, 12, 'SDLK_CLEAR should be imported' ); is( SDLK_CLEAR(), 12, 'SDLK_CLEAR() should also be available' ); is( SDLK_COLON, 58, 'SDLK_COLON should be imported' ); is( SDLK_COLON(), 58, 'SDLK_COLON() should also be available' ); is( SDLK_COMMA, 44, 'SDLK_COMMA should be imported' ); is( SDLK_COMMA(), 44, 'SDLK_COMMA() should also be available' ); is( SDLK_COMPOSE, 314, 'SDLK_COMPOSE should be imported' ); is( SDLK_COMPOSE(), 314, 'SDLK_COMPOSE() should also be available' ); is( SDLK_DELETE, 127, 'SDLK_DELETE should be imported' ); is( SDLK_DELETE(), 127, 'SDLK_DELETE() should also be available' ); is( SDLK_DOLLAR, 36, 'SDLK_DOLLAR should be imported' ); is( SDLK_DOLLAR(), 36, 'SDLK_DOLLAR() should also be available' ); is( SDLK_DOWN, 274, 'SDLK_DOWN should be imported' ); is( SDLK_DOWN(), 274, 'SDLK_DOWN() should also be available' ); is( SDLK_END, 279, 'SDLK_END should be imported' ); is( SDLK_END(), 279, 'SDLK_END() should also be available' ); is( SDLK_EQUALS, 61, 'SDLK_EQUALS should be imported' ); is( SDLK_EQUALS(), 61, 'SDLK_EQUALS() should also be available' ); is( SDLK_ESCAPE, 27, 'SDLK_ESCAPE should be imported' ); is( SDLK_ESCAPE(), 27, 'SDLK_ESCAPE() should also be available' ); is( SDLK_EURO, 321, 'SDLK_EURO should be imported' ); is( SDLK_EURO(), 321, 'SDLK_EURO() should also be available' ); is( SDLK_EXCLAIM, 33, 'SDLK_EXCLAIM should be imported' ); is( SDLK_EXCLAIM(), 33, 'SDLK_EXCLAIM() should also be available' ); is( SDLK_F1, 282, 'SDLK_F1 should be imported' ); is( SDLK_F1(), 282, 'SDLK_F1() should also be available' ); is( SDLK_F10, 291, 'SDLK_F10 should be imported' ); is( SDLK_F10(), 291, 'SDLK_F10() should also be available' ); is( SDLK_F11, 292, 'SDLK_F11 should be imported' ); is( SDLK_F11(), 292, 'SDLK_F11() should also be available' ); is( SDLK_F12, 293, 'SDLK_F12 should be imported' ); is( SDLK_F12(), 293, 'SDLK_F12() should also be available' ); is( SDLK_F13, 294, 'SDLK_F13 should be imported' ); is( SDLK_F13(), 294, 'SDLK_F13() should also be available' ); is( SDLK_F14, 295, 'SDLK_F14 should be imported' ); is( SDLK_F14(), 295, 'SDLK_F14() should also be available' ); is( SDLK_F15, 296, 'SDLK_F15 should be imported' ); is( SDLK_F15(), 296, 'SDLK_F15() should also be available' ); is( SDLK_F2, 283, 'SDLK_F2 should be imported' ); is( SDLK_F2(), 283, 'SDLK_F2() should also be available' ); is( SDLK_F3, 284, 'SDLK_F3 should be imported' ); is( SDLK_F3(), 284, 'SDLK_F3() should also be available' ); is( SDLK_F4, 285, 'SDLK_F4 should be imported' ); is( SDLK_F4(), 285, 'SDLK_F4() should also be available' ); is( SDLK_F5, 286, 'SDLK_F5 should be imported' ); is( SDLK_F5(), 286, 'SDLK_F5() should also be available' ); is( SDLK_F6, 287, 'SDLK_F6 should be imported' ); is( SDLK_F6(), 287, 'SDLK_F6() should also be available' ); is( SDLK_F7, 288, 'SDLK_F7 should be imported' ); is( SDLK_F7(), 288, 'SDLK_F7() should also be available' ); is( SDLK_F8, 289, 'SDLK_F8 should be imported' ); is( SDLK_F8(), 289, 'SDLK_F8() should also be available' ); is( SDLK_F9, 290, 'SDLK_F9 should be imported' ); is( SDLK_F9(), 290, 'SDLK_F9() should also be available' ); is( SDLK_FIRST, 0, 'SDLK_FIRST should be imported' ); is( SDLK_FIRST(), 0, 'SDLK_FIRST() should also be available' ); is( SDLK_GREATER, 62, 'SDLK_GREATER should be imported' ); is( SDLK_GREATER(), 62, 'SDLK_GREATER() should also be available' ); is( SDLK_HASH, 35, 'SDLK_HASH should be imported' ); is( SDLK_HASH(), 35, 'SDLK_HASH() should also be available' ); is( SDLK_HELP, 315, 'SDLK_HELP should be imported' ); is( SDLK_HELP(), 315, 'SDLK_HELP() should also be available' ); is( SDLK_HOME, 278, 'SDLK_HOME should be imported' ); is( SDLK_HOME(), 278, 'SDLK_HOME() should also be available' ); is( SDLK_INSERT, 277, 'SDLK_INSERT should be imported' ); is( SDLK_INSERT(), 277, 'SDLK_INSERT() should also be available' ); is( SDLK_KP0, 256, 'SDLK_KP0 should be imported' ); is( SDLK_KP0(), 256, 'SDLK_KP0() should also be available' ); is( SDLK_KP1, 257, 'SDLK_KP1 should be imported' ); is( SDLK_KP1(), 257, 'SDLK_KP1() should also be available' ); is( SDLK_KP2, 258, 'SDLK_KP2 should be imported' ); is( SDLK_KP2(), 258, 'SDLK_KP2() should also be available' ); is( SDLK_KP3, 259, 'SDLK_KP3 should be imported' ); is( SDLK_KP3(), 259, 'SDLK_KP3() should also be available' ); is( SDLK_KP4, 260, 'SDLK_KP4 should be imported' ); is( SDLK_KP4(), 260, 'SDLK_KP4() should also be available' ); is( SDLK_KP5, 261, 'SDLK_KP5 should be imported' ); is( SDLK_KP5(), 261, 'SDLK_KP5() should also be available' ); is( SDLK_KP6, 262, 'SDLK_KP6 should be imported' ); is( SDLK_KP6(), 262, 'SDLK_KP6() should also be available' ); is( SDLK_KP7, 263, 'SDLK_KP7 should be imported' ); is( SDLK_KP7(), 263, 'SDLK_KP7() should also be available' ); is( SDLK_KP8, 264, 'SDLK_KP8 should be imported' ); is( SDLK_KP8(), 264, 'SDLK_KP8() should also be available' ); is( SDLK_KP9, 265, 'SDLK_KP9 should be imported' ); is( SDLK_KP9(), 265, 'SDLK_KP9() should also be available' ); is( SDLK_KP_DIVIDE, 267, 'SDLK_KP_DIVIDE should be imported' ); is( SDLK_KP_DIVIDE(), 267, 'SDLK_KP_DIVIDE() should also be available' ); is( SDLK_KP_ENTER, 271, 'SDLK_KP_ENTER should be imported' ); is( SDLK_KP_ENTER(), 271, 'SDLK_KP_ENTER() should also be available' ); is( SDLK_KP_EQUALS, 272, 'SDLK_KP_EQUALS should be imported' ); is( SDLK_KP_EQUALS(), 272, 'SDLK_KP_EQUALS() should also be available' ); is( SDLK_KP_MINUS, 269, 'SDLK_KP_MINUS should be imported' ); is( SDLK_KP_MINUS(), 269, 'SDLK_KP_MINUS() should also be available' ); is( SDLK_KP_MULTIPLY, 268, 'SDLK_KP_MULTIPLY should be imported' ); is( SDLK_KP_MULTIPLY(), 268, 'SDLK_KP_MULTIPLY() should also be available' ); is( SDLK_KP_PERIOD, 266, 'SDLK_KP_PERIOD should be imported' ); is( SDLK_KP_PERIOD(), 266, 'SDLK_KP_PERIOD() should also be available' ); is( SDLK_KP_PLUS, 270, 'SDLK_KP_PLUS should be imported' ); is( SDLK_KP_PLUS(), 270, 'SDLK_KP_PLUS() should also be available' ); is( SDLK_LALT, 308, 'SDLK_LALT should be imported' ); is( SDLK_LALT(), 308, 'SDLK_LALT() should also be available' ); is( SDLK_LCTRL, 306, 'SDLK_LCTRL should be imported' ); is( SDLK_LCTRL(), 306, 'SDLK_LCTRL() should also be available' ); is( SDLK_LEFT, 276, 'SDLK_LEFT should be imported' ); is( SDLK_LEFT(), 276, 'SDLK_LEFT() should also be available' ); is( SDLK_LEFTBRACKET, 91, 'SDLK_LEFTBRACKET should be imported' ); is( SDLK_LEFTBRACKET(), 91, 'SDLK_LEFTBRACKET() should also be available' ); is( SDLK_LEFTPAREN, 40, 'SDLK_LEFTPAREN should be imported' ); is( SDLK_LEFTPAREN(), 40, 'SDLK_LEFTPAREN() should also be available' ); is( SDLK_LESS, 60, 'SDLK_LESS should be imported' ); is( SDLK_LESS(), 60, 'SDLK_LESS() should also be available' ); is( SDLK_LMETA, 310, 'SDLK_LMETA should be imported' ); is( SDLK_LMETA(), 310, 'SDLK_LMETA() should also be available' ); is( SDLK_LSHIFT, 304, 'SDLK_LSHIFT should be imported' ); is( SDLK_LSHIFT(), 304, 'SDLK_LSHIFT() should also be available' ); is( SDLK_LSUPER, 311, 'SDLK_LSUPER should be imported' ); is( SDLK_LSUPER(), 311, 'SDLK_LSUPER() should also be available' ); is( SDLK_MENU, 319, 'SDLK_MENU should be imported' ); is( SDLK_MENU(), 319, 'SDLK_MENU() should also be available' ); is( SDLK_MINUS, 45, 'SDLK_MINUS should be imported' ); is( SDLK_MINUS(), 45, 'SDLK_MINUS() should also be available' ); is( SDLK_MODE, 313, 'SDLK_MODE should be imported' ); is( SDLK_MODE(), 313, 'SDLK_MODE() should also be available' ); is( SDLK_NUMLOCK, 300, 'SDLK_NUMLOCK should be imported' ); is( SDLK_NUMLOCK(), 300, 'SDLK_NUMLOCK() should also be available' ); is( SDLK_PAGEDOWN, 281, 'SDLK_PAGEDOWN should be imported' ); is( SDLK_PAGEDOWN(), 281, 'SDLK_PAGEDOWN() should also be available' ); is( SDLK_PAGEUP, 280, 'SDLK_PAGEUP should be imported' ); is( SDLK_PAGEUP(), 280, 'SDLK_PAGEUP() should also be available' ); is( SDLK_PAUSE, 19, 'SDLK_PAUSE should be imported' ); is( SDLK_PAUSE(), 19, 'SDLK_PAUSE() should also be available' ); is( SDLK_PERIOD, 46, 'SDLK_PERIOD should be imported' ); is( SDLK_PERIOD(), 46, 'SDLK_PERIOD() should also be available' ); is( SDLK_PLUS, 43, 'SDLK_PLUS should be imported' ); is( SDLK_PLUS(), 43, 'SDLK_PLUS() should also be available' ); is( SDLK_POWER, 320, 'SDLK_POWER should be imported' ); is( SDLK_POWER(), 320, 'SDLK_POWER() should also be available' ); is( SDLK_PRINT, 316, 'SDLK_PRINT should be imported' ); is( SDLK_PRINT(), 316, 'SDLK_PRINT() should also be available' ); is( SDLK_QUESTION, 63, 'SDLK_QUESTION should be imported' ); is( SDLK_QUESTION(), 63, 'SDLK_QUESTION() should also be available' ); is( SDLK_QUOTE, 39, 'SDLK_QUOTE should be imported' ); is( SDLK_QUOTE(), 39, 'SDLK_QUOTE() should also be available' ); is( SDLK_QUOTEDBL, 34, 'SDLK_QUOTEDBL should be imported' ); is( SDLK_QUOTEDBL(), 34, 'SDLK_QUOTEDBL() should also be available' ); is( SDLK_RALT, 307, 'SDLK_RALT should be imported' ); is( SDLK_RALT(), 307, 'SDLK_RALT() should also be available' ); is( SDLK_RCTRL, 305, 'SDLK_RCTRL should be imported' ); is( SDLK_RCTRL(), 305, 'SDLK_RCTRL() should also be available' ); is( SDLK_RETURN, 13, 'SDLK_RETURN should be imported' ); is( SDLK_RETURN(), 13, 'SDLK_RETURN() should also be available' ); is( SDLK_RIGHT, 275, 'SDLK_RIGHT should be imported' ); is( SDLK_RIGHT(), 275, 'SDLK_RIGHT() should also be available' ); is( SDLK_RIGHTBRACKET, 93, 'SDLK_RIGHTBRACKET should be imported' ); is( SDLK_RIGHTBRACKET(), 93, 'SDLK_RIGHTBRACKET() should also be available' ); is( SDLK_RIGHTPAREN, 41, 'SDLK_RIGHTPAREN should be imported' ); is( SDLK_RIGHTPAREN(), 41, 'SDLK_RIGHTPAREN() should also be available' ); is( SDLK_RMETA, 309, 'SDLK_RMETA should be imported' ); is( SDLK_RMETA(), 309, 'SDLK_RMETA() should also be available' ); is( SDLK_RSHIFT, 303, 'SDLK_RSHIFT should be imported' ); is( SDLK_RSHIFT(), 303, 'SDLK_RSHIFT() should also be available' ); is( SDLK_RSUPER, 312, 'SDLK_RSUPER should be imported' ); is( SDLK_RSUPER(), 312, 'SDLK_RSUPER() should also be available' ); is( SDLK_SCROLLOCK, 302, 'SDLK_SCROLLOCK should be imported' ); is( SDLK_SCROLLOCK(), 302, 'SDLK_SCROLLOCK() should also be available' ); is( SDLK_SEMICOLON, 59, 'SDLK_SEMICOLON should be imported' ); is( SDLK_SEMICOLON(), 59, 'SDLK_SEMICOLON() should also be available' ); is( SDLK_SLASH, 47, 'SDLK_SLASH should be imported' ); is( SDLK_SLASH(), 47, 'SDLK_SLASH() should also be available' ); is( SDLK_SPACE, 32, 'SDLK_SPACE should be imported' ); is( SDLK_SPACE(), 32, 'SDLK_SPACE() should also be available' ); is( SDLK_SYSREQ, 317, 'SDLK_SYSREQ should be imported' ); is( SDLK_SYSREQ(), 317, 'SDLK_SYSREQ() should also be available' ); is( SDLK_TAB, 9, 'SDLK_TAB should be imported' ); is( SDLK_TAB(), 9, 'SDLK_TAB() should also be available' ); is( SDLK_UNDERSCORE, 95, 'SDLK_UNDERSCORE should be imported' ); is( SDLK_UNDERSCORE(), 95, 'SDLK_UNDERSCORE() should also be available' ); is( SDLK_UNDO, 322, 'SDLK_UNDO should be imported' ); is( SDLK_UNDO(), 322, 'SDLK_UNDO() should also be available' ); is( SDLK_UNKNOWN, 0, 'SDLK_WORLD_95 should be imported' ); is( SDLK_UNKNOWN(), 0, 'SDLK_WORLD_95() should also be available' ); is( SDLK_UP, 273, 'SDLK_UP should be imported' ); is( SDLK_UP(), 273, 'SDLK_UP() should also be available' ); is( SDLK_WORLD_0, 160, 'SDLK_WORLD_0 should be imported' ); is( SDLK_WORLD_0(), 160, 'SDLK_WORLD_0() should also be available' ); is( SDLK_WORLD_1, 161, 'SDLK_WORLD_1 should be imported' ); is( SDLK_WORLD_1(), 161, 'SDLK_WORLD_1() should also be available' ); is( SDLK_WORLD_2, 162, 'SDLK_WORLD_2 should be imported' ); is( SDLK_WORLD_2(), 162, 'SDLK_WORLD_2() should also be available' ); is( SDLK_WORLD_3, 163, 'SDLK_WORLD_3 should be imported' ); is( SDLK_WORLD_3(), 163, 'SDLK_WORLD_3() should also be available' ); is( SDLK_WORLD_4, 164, 'SDLK_WORLD_4 should be imported' ); is( SDLK_WORLD_4(), 164, 'SDLK_WORLD_4() should also be available' ); is( SDLK_WORLD_5, 165, 'SDLK_WORLD_5 should be imported' ); is( SDLK_WORLD_5(), 165, 'SDLK_WORLD_5() should also be available' ); is( SDLK_WORLD_6, 166, 'SDLK_WORLD_6 should be imported' ); is( SDLK_WORLD_6(), 166, 'SDLK_WORLD_6() should also be available' ); is( SDLK_WORLD_7, 167, 'SDLK_WORLD_7 should be imported' ); is( SDLK_WORLD_7(), 167, 'SDLK_WORLD_7() should also be available' ); is( SDLK_WORLD_8, 168, 'SDLK_WORLD_8 should be imported' ); is( SDLK_WORLD_8(), 168, 'SDLK_WORLD_8() should also be available' ); is( SDLK_WORLD_9, 169, 'SDLK_WORLD_9 should be imported' ); is( SDLK_WORLD_9(), 169, 'SDLK_WORLD_9() should also be available' ); is( SDLK_WORLD_10, 170, 'SDLK_WORLD_10 should be imported' ); is( SDLK_WORLD_10(), 170, 'SDLK_WORLD_10() should also be available' ); is( SDLK_WORLD_11, 171, 'SDLK_WORLD_11 should be imported' ); is( SDLK_WORLD_11(), 171, 'SDLK_WORLD_11() should also be available' ); is( SDLK_WORLD_12, 172, 'SDLK_WORLD_12 should be imported' ); is( SDLK_WORLD_12(), 172, 'SDLK_WORLD_12() should also be available' ); is( SDLK_WORLD_13, 173, 'SDLK_WORLD_13 should be imported' ); is( SDLK_WORLD_13(), 173, 'SDLK_WORLD_13() should also be available' ); is( SDLK_WORLD_14, 174, 'SDLK_WORLD_14 should be imported' ); is( SDLK_WORLD_14(), 174, 'SDLK_WORLD_14() should also be available' ); is( SDLK_WORLD_15, 175, 'SDLK_WORLD_15 should be imported' ); is( SDLK_WORLD_15(), 175, 'SDLK_WORLD_15() should also be available' ); is( SDLK_WORLD_16, 176, 'SDLK_WORLD_16 should be imported' ); is( SDLK_WORLD_16(), 176, 'SDLK_WORLD_16() should also be available' ); is( SDLK_WORLD_17, 177, 'SDLK_WORLD_17 should be imported' ); is( SDLK_WORLD_17(), 177, 'SDLK_WORLD_17() should also be available' ); is( SDLK_WORLD_18, 178, 'SDLK_WORLD_18 should be imported' ); is( SDLK_WORLD_18(), 178, 'SDLK_WORLD_18() should also be available' ); is( SDLK_WORLD_19, 179, 'SDLK_WORLD_19 should be imported' ); is( SDLK_WORLD_19(), 179, 'SDLK_WORLD_19() should also be available' ); is( SDLK_WORLD_20, 180, 'SDLK_WORLD_20 should be imported' ); is( SDLK_WORLD_20(), 180, 'SDLK_WORLD_20() should also be available' ); is( SDLK_WORLD_21, 181, 'SDLK_WORLD_21 should be imported' ); is( SDLK_WORLD_21(), 181, 'SDLK_WORLD_21() should also be available' ); is( SDLK_WORLD_22, 182, 'SDLK_WORLD_22 should be imported' ); is( SDLK_WORLD_22(), 182, 'SDLK_WORLD_22() should also be available' ); is( SDLK_WORLD_23, 183, 'SDLK_WORLD_23 should be imported' ); is( SDLK_WORLD_23(), 183, 'SDLK_WORLD_23() should also be available' ); is( SDLK_WORLD_24, 184, 'SDLK_WORLD_24 should be imported' ); is( SDLK_WORLD_24(), 184, 'SDLK_WORLD_24() should also be available' ); is( SDLK_WORLD_25, 185, 'SDLK_WORLD_25 should be imported' ); is( SDLK_WORLD_25(), 185, 'SDLK_WORLD_25() should also be available' ); is( SDLK_WORLD_26, 186, 'SDLK_WORLD_26 should be imported' ); is( SDLK_WORLD_26(), 186, 'SDLK_WORLD_26() should also be available' ); is( SDLK_WORLD_27, 187, 'SDLK_WORLD_27 should be imported' ); is( SDLK_WORLD_27(), 187, 'SDLK_WORLD_27() should also be available' ); is( SDLK_WORLD_28, 188, 'SDLK_WORLD_28 should be imported' ); is( SDLK_WORLD_28(), 188, 'SDLK_WORLD_28() should also be available' ); is( SDLK_WORLD_29, 189, 'SDLK_WORLD_29 should be imported' ); is( SDLK_WORLD_29(), 189, 'SDLK_WORLD_29() should also be available' ); is( SDLK_WORLD_30, 190, 'SDLK_WORLD_30 should be imported' ); is( SDLK_WORLD_30(), 190, 'SDLK_WORLD_30() should also be available' ); is( SDLK_WORLD_31, 191, 'SDLK_WORLD_31 should be imported' ); is( SDLK_WORLD_31(), 191, 'SDLK_WORLD_31() should also be available' ); is( SDLK_WORLD_32, 192, 'SDLK_WORLD_32 should be imported' ); is( SDLK_WORLD_32(), 192, 'SDLK_WORLD_32() should also be available' ); is( SDLK_WORLD_33, 193, 'SDLK_WORLD_33 should be imported' ); is( SDLK_WORLD_33(), 193, 'SDLK_WORLD_33() should also be available' ); is( SDLK_WORLD_34, 194, 'SDLK_WORLD_34 should be imported' ); is( SDLK_WORLD_34(), 194, 'SDLK_WORLD_34() should also be available' ); is( SDLK_WORLD_35, 195, 'SDLK_WORLD_35 should be imported' ); is( SDLK_WORLD_35(), 195, 'SDLK_WORLD_35() should also be available' ); is( SDLK_WORLD_36, 196, 'SDLK_WORLD_36 should be imported' ); is( SDLK_WORLD_36(), 196, 'SDLK_WORLD_36() should also be available' ); is( SDLK_WORLD_37, 197, 'SDLK_WORLD_37 should be imported' ); is( SDLK_WORLD_37(), 197, 'SDLK_WORLD_37() should also be available' ); is( SDLK_WORLD_38, 198, 'SDLK_WORLD_38 should be imported' ); is( SDLK_WORLD_38(), 198, 'SDLK_WORLD_38() should also be available' ); is( SDLK_WORLD_39, 199, 'SDLK_WORLD_39 should be imported' ); is( SDLK_WORLD_39(), 199, 'SDLK_WORLD_39() should also be available' ); is( SDLK_WORLD_40, 200, 'SDLK_WORLD_40 should be imported' ); is( SDLK_WORLD_40(), 200, 'SDLK_WORLD_40() should also be available' ); is( SDLK_WORLD_41, 201, 'SDLK_WORLD_41 should be imported' ); is( SDLK_WORLD_41(), 201, 'SDLK_WORLD_41() should also be available' ); is( SDLK_WORLD_42, 202, 'SDLK_WORLD_42 should be imported' ); is( SDLK_WORLD_42(), 202, 'SDLK_WORLD_42() should also be available' ); is( SDLK_WORLD_43, 203, 'SDLK_WORLD_43 should be imported' ); is( SDLK_WORLD_43(), 203, 'SDLK_WORLD_43() should also be available' ); is( SDLK_WORLD_44, 204, 'SDLK_WORLD_44 should be imported' ); is( SDLK_WORLD_44(), 204, 'SDLK_WORLD_44() should also be available' ); is( SDLK_WORLD_45, 205, 'SDLK_WORLD_45 should be imported' ); is( SDLK_WORLD_45(), 205, 'SDLK_WORLD_45() should also be available' ); is( SDLK_WORLD_46, 206, 'SDLK_WORLD_46 should be imported' ); is( SDLK_WORLD_46(), 206, 'SDLK_WORLD_46() should also be available' ); is( SDLK_WORLD_47, 207, 'SDLK_WORLD_47 should be imported' ); is( SDLK_WORLD_47(), 207, 'SDLK_WORLD_47() should also be available' ); is( SDLK_WORLD_48, 208, 'SDLK_WORLD_48 should be imported' ); is( SDLK_WORLD_48(), 208, 'SDLK_WORLD_48() should also be available' ); is( SDLK_WORLD_49, 209, 'SDLK_WORLD_49 should be imported' ); is( SDLK_WORLD_49(), 209, 'SDLK_WORLD_49() should also be available' ); is( SDLK_WORLD_50, 210, 'SDLK_WORLD_50 should be imported' ); is( SDLK_WORLD_50(), 210, 'SDLK_WORLD_50() should also be available' ); is( SDLK_WORLD_51, 211, 'SDLK_WORLD_51 should be imported' ); is( SDLK_WORLD_51(), 211, 'SDLK_WORLD_51() should also be available' ); is( SDLK_WORLD_52, 212, 'SDLK_WORLD_52 should be imported' ); is( SDLK_WORLD_52(), 212, 'SDLK_WORLD_52() should also be available' ); is( SDLK_WORLD_53, 213, 'SDLK_WORLD_53 should be imported' ); is( SDLK_WORLD_53(), 213, 'SDLK_WORLD_53() should also be available' ); is( SDLK_WORLD_54, 214, 'SDLK_WORLD_54 should be imported' ); is( SDLK_WORLD_54(), 214, 'SDLK_WORLD_54() should also be available' ); is( SDLK_WORLD_55, 215, 'SDLK_WORLD_55 should be imported' ); is( SDLK_WORLD_55(), 215, 'SDLK_WORLD_55() should also be available' ); is( SDLK_WORLD_56, 216, 'SDLK_WORLD_56 should be imported' ); is( SDLK_WORLD_56(), 216, 'SDLK_WORLD_56() should also be available' ); is( SDLK_WORLD_57, 217, 'SDLK_WORLD_57 should be imported' ); is( SDLK_WORLD_57(), 217, 'SDLK_WORLD_57() should also be available' ); is( SDLK_WORLD_58, 218, 'SDLK_WORLD_58 should be imported' ); is( SDLK_WORLD_58(), 218, 'SDLK_WORLD_58() should also be available' ); is( SDLK_WORLD_59, 219, 'SDLK_WORLD_59 should be imported' ); is( SDLK_WORLD_59(), 219, 'SDLK_WORLD_59() should also be available' ); is( SDLK_WORLD_60, 220, 'SDLK_WORLD_60 should be imported' ); is( SDLK_WORLD_60(), 220, 'SDLK_WORLD_60() should also be available' ); is( SDLK_WORLD_61, 221, 'SDLK_WORLD_61 should be imported' ); is( SDLK_WORLD_61(), 221, 'SDLK_WORLD_61() should also be available' ); is( SDLK_WORLD_62, 222, 'SDLK_WORLD_62 should be imported' ); is( SDLK_WORLD_62(), 222, 'SDLK_WORLD_62() should also be available' ); is( SDLK_WORLD_63, 223, 'SDLK_WORLD_63 should be imported' ); is( SDLK_WORLD_63(), 223, 'SDLK_WORLD_63() should also be available' ); is( SDLK_WORLD_64, 224, 'SDLK_WORLD_64 should be imported' ); is( SDLK_WORLD_64(), 224, 'SDLK_WORLD_64() should also be available' ); is( SDLK_WORLD_65, 225, 'SDLK_WORLD_65 should be imported' ); is( SDLK_WORLD_65(), 225, 'SDLK_WORLD_65() should also be available' ); is( SDLK_WORLD_66, 226, 'SDLK_WORLD_66 should be imported' ); is( SDLK_WORLD_66(), 226, 'SDLK_WORLD_66() should also be available' ); is( SDLK_WORLD_67, 227, 'SDLK_WORLD_67 should be imported' ); is( SDLK_WORLD_67(), 227, 'SDLK_WORLD_67() should also be available' ); is( SDLK_WORLD_68, 228, 'SDLK_WORLD_68 should be imported' ); is( SDLK_WORLD_68(), 228, 'SDLK_WORLD_68() should also be available' ); is( SDLK_WORLD_69, 229, 'SDLK_WORLD_69 should be imported' ); is( SDLK_WORLD_69(), 229, 'SDLK_WORLD_69() should also be available' ); is( SDLK_WORLD_70, 230, 'SDLK_WORLD_70 should be imported' ); is( SDLK_WORLD_70(), 230, 'SDLK_WORLD_70() should also be available' ); is( SDLK_WORLD_71, 231, 'SDLK_WORLD_71 should be imported' ); is( SDLK_WORLD_71(), 231, 'SDLK_WORLD_71() should also be available' ); is( SDLK_WORLD_72, 232, 'SDLK_WORLD_72 should be imported' ); is( SDLK_WORLD_72(), 232, 'SDLK_WORLD_72() should also be available' ); is( SDLK_WORLD_73, 233, 'SDLK_WORLD_73 should be imported' ); is( SDLK_WORLD_73(), 233, 'SDLK_WORLD_73() should also be available' ); is( SDLK_WORLD_74, 234, 'SDLK_WORLD_74 should be imported' ); is( SDLK_WORLD_74(), 234, 'SDLK_WORLD_74() should also be available' ); is( SDLK_WORLD_75, 235, 'SDLK_WORLD_75 should be imported' ); is( SDLK_WORLD_75(), 235, 'SDLK_WORLD_75() should also be available' ); is( SDLK_WORLD_76, 236, 'SDLK_WORLD_76 should be imported' ); is( SDLK_WORLD_76(), 236, 'SDLK_WORLD_76() should also be available' ); is( SDLK_WORLD_77, 237, 'SDLK_WORLD_77 should be imported' ); is( SDLK_WORLD_77(), 237, 'SDLK_WORLD_77() should also be available' ); is( SDLK_WORLD_78, 238, 'SDLK_WORLD_78 should be imported' ); is( SDLK_WORLD_78(), 238, 'SDLK_WORLD_78() should also be available' ); is( SDLK_WORLD_79, 239, 'SDLK_WORLD_79 should be imported' ); is( SDLK_WORLD_79(), 239, 'SDLK_WORLD_79() should also be available' ); is( SDLK_WORLD_80, 240, 'SDLK_WORLD_80 should be imported' ); is( SDLK_WORLD_80(), 240, 'SDLK_WORLD_80() should also be available' ); is( SDLK_WORLD_81, 241, 'SDLK_WORLD_81 should be imported' ); is( SDLK_WORLD_81(), 241, 'SDLK_WORLD_81() should also be available' ); is( SDLK_WORLD_82, 242, 'SDLK_WORLD_82 should be imported' ); is( SDLK_WORLD_82(), 242, 'SDLK_WORLD_82() should also be available' ); is( SDLK_WORLD_83, 243, 'SDLK_WORLD_83 should be imported' ); is( SDLK_WORLD_83(), 243, 'SDLK_WORLD_83() should also be available' ); is( SDLK_WORLD_84, 244, 'SDLK_WORLD_84 should be imported' ); is( SDLK_WORLD_84(), 244, 'SDLK_WORLD_84() should also be available' ); is( SDLK_WORLD_85, 245, 'SDLK_WORLD_85 should be imported' ); is( SDLK_WORLD_85(), 245, 'SDLK_WORLD_85() should also be available' ); is( SDLK_WORLD_86, 246, 'SDLK_WORLD_86 should be imported' ); is( SDLK_WORLD_86(), 246, 'SDLK_WORLD_86() should also be available' ); is( SDLK_WORLD_87, 247, 'SDLK_WORLD_87 should be imported' ); is( SDLK_WORLD_87(), 247, 'SDLK_WORLD_87() should also be available' ); is( SDLK_WORLD_88, 248, 'SDLK_WORLD_88 should be imported' ); is( SDLK_WORLD_88(), 248, 'SDLK_WORLD_88() should also be available' ); is( SDLK_WORLD_89, 249, 'SDLK_WORLD_89 should be imported' ); is( SDLK_WORLD_89(), 249, 'SDLK_WORLD_89() should also be available' ); is( SDLK_WORLD_90, 250, 'SDLK_WORLD_90 should be imported' ); is( SDLK_WORLD_90(), 250, 'SDLK_WORLD_90() should also be available' ); is( SDLK_WORLD_91, 251, 'SDLK_WORLD_91 should be imported' ); is( SDLK_WORLD_91(), 251, 'SDLK_WORLD_91() should also be available' ); is( SDLK_WORLD_92, 252, 'SDLK_WORLD_92 should be imported' ); is( SDLK_WORLD_92(), 252, 'SDLK_WORLD_92() should also be available' ); is( SDLK_WORLD_93, 253, 'SDLK_WORLD_93 should be imported' ); is( SDLK_WORLD_93(), 253, 'SDLK_WORLD_93() should also be available' ); is( SDLK_WORLD_94, 254, 'SDLK_WORLD_94 should be imported' ); is( SDLK_WORLD_94(), 254, 'SDLK_WORLD_94() should also be available' ); is( SDLK_WORLD_95, 255, 'SDLK_WORLD_95 should be imported' ); is( SDLK_WORLD_95(), 255, 'SDLK_WORLD_95() should also be available' ); is( SDLK_a, 97, 'SDLK_a should be imported' ); is( SDLK_a(), 97, 'SDLK_a() should also be available' ); is( SDLK_b, 98, 'SDLK_b should be imported' ); is( SDLK_b(), 98, 'SDLK_b() should also be available' ); is( SDLK_c, 99, 'SDLK_c should be imported' ); is( SDLK_c(), 99, 'SDLK_c() should also be available' ); is( SDLK_d, 100, 'SDLK_d should be imported' ); is( SDLK_d(), 100, 'SDLK_d() should also be available' ); is( SDLK_e, 101, 'SDLK_e should be imported' ); is( SDLK_e(), 101, 'SDLK_e() should also be available' ); is( SDLK_f, 102, 'SDLK_f should be imported' ); is( SDLK_f(), 102, 'SDLK_f() should also be available' ); is( SDLK_g, 103, 'SDLK_g should be imported' ); is( SDLK_g(), 103, 'SDLK_g() should also be available' ); is( SDLK_h, 104, 'SDLK_h should be imported' ); is( SDLK_h(), 104, 'SDLK_h() should also be available' ); is( SDLK_i, 105, 'SDLK_i should be imported' ); is( SDLK_i(), 105, 'SDLK_i() should also be available' ); is( SDLK_j, 106, 'SDLK_j should be imported' ); is( SDLK_j(), 106, 'SDLK_j() should also be available' ); is( SDLK_k, 107, 'SDLK_k should be imported' ); is( SDLK_k(), 107, 'SDLK_k() should also be available' ); is( SDLK_l, 108, 'SDLK_l should be imported' ); is( SDLK_l(), 108, 'SDLK_l() should also be available' ); is( SDLK_m, 109, 'SDLK_m should be imported' ); is( SDLK_m(), 109, 'SDLK_m() should also be available' ); is( SDLK_n, 110, 'SDLK_n should be imported' ); is( SDLK_n(), 110, 'SDLK_n() should also be available' ); is( SDLK_o, 111, 'SDLK_o should be imported' ); is( SDLK_o(), 111, 'SDLK_o() should also be available' ); is( SDLK_p, 112, 'SDLK_p should be imported' ); is( SDLK_p(), 112, 'SDLK_p() should also be available' ); is( SDLK_q, 113, 'SDLK_q should be imported' ); is( SDLK_q(), 113, 'SDLK_q() should also be available' ); is( SDLK_r, 114, 'SDLK_r should be imported' ); is( SDLK_r(), 114, 'SDLK_r() should also be available' ); is( SDLK_s, 115, 'SDLK_s should be imported' ); is( SDLK_s(), 115, 'SDLK_s() should also be available' ); is( SDLK_t, 116, 'SDLK_t should be imported' ); is( SDLK_t(), 116, 'SDLK_t() should also be available' ); is( SDLK_u, 117, 'SDLK_u should be imported' ); is( SDLK_u(), 117, 'SDLK_u() should also be available' ); is( SDLK_v, 118, 'SDLK_v should be imported' ); is( SDLK_v(), 118, 'SDLK_v() should also be available' ); is( SDLK_w, 119, 'SDLK_w should be imported' ); is( SDLK_w(), 119, 'SDLK_w() should also be available' ); is( SDLK_x, 120, 'SDLK_x should be imported' ); is( SDLK_x(), 120, 'SDLK_x() should also be available' ); is( SDLK_y, 121, 'SDLK_y should be imported' ); is( SDLK_y(), 121, 'SDLK_y() should also be available' ); is( SDLK_z, 122, 'SDLK_z should be imported' ); is( SDLK_z(), 122, 'SDLK_z() should also be available' ); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); is( SDL::Events::pump_events(), undef, '[pump_events] Returns undef' ); my $event = SDL::Event->new(); my $aevent = SDL::Event->new(); $aevent->type(SDL_ACTIVEEVENT); $aevent->active_gain(1); $aevent->active_state(SDL_APPINPUTFOCUS); my $userdata = SDL::Event->new(); $userdata->type(SDL_USEREVENT); my @udata = ( 0 .. 10 ); $userdata->user_data1( \@udata ); SDL::Events::push_event($aevent); pass '[push_event] Event can be pushed'; SDL::Events::push_event($userdata); SDL::Events::pump_events(); pass '[pump_events] pumping events'; my $got_event = 0; while (1) { SDL::Events::pump_events(); my $ret = SDL::Events::poll_event($event); my $r; if ( $event->type == SDL_ACTIVEEVENT && $event->active_gain == 1 && $event->active_state == SDL_APPINPUTFOCUS ) { $got_event = 1; is( $got_event, 1, '[poll_event] Got an Active event back out' ); is( $event->active_gain(), 1, '[poll_event] Got right active->gain' ); is( $event->active_state(), SDL_APPINPUTFOCUS, '[poll_event] Got right active->state' ); } if ( $event->type == SDL_USEREVENT ) { $r = $event->user_data1(); is( @{$r}, 11, '[user_events] can hold user data now' ); } last if $r && $got_event; last if ( $ret == 0 ); } SDL::Events::push_event($aevent); pass '[push_event] ran'; SDL::Events::pump_events(); my $value = SDL::Events::wait_event($event); is( $value, 1, '[wait_event] waited for event' ); my $num_peep_events = SDL::Events::peep_events( $event, 127, SDL_PEEKEVENT, SDL_ALLEVENTS ); is( $num_peep_events >= 0, 1, '[peep_events] Size of event queue is ' . $num_peep_events ); my $callback = sub { return 1; }; SDL::Events::set_event_filter($callback); pass '[set_event_filter] takes a callback'; my $array = SDL::Events::get_key_state(); isa_ok( $array, 'ARRAY', '[get_key_state] returned and array' ); my @mods = ( KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_LCTRL, KMOD_RCTRL, KMOD_LALT, KMOD_RALT, KMOD_LMETA, KMOD_RMETA, KMOD_NUM, KMOD_CAPS, KMOD_MODE, ); foreach (@mods) { SDL::Events::set_mod_state($_); pass '[set_mod_state] set the mod properly'; is( SDL::Events::get_mod_state(), $_, '[get_mod_state] got the mod properly' ); } #SDL::quit(); #SDL::init(SDL_INIT_VIDEO); $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); SDL::Video::get_video_info(); is( SDL::Events::get_key_name(SDLK_ESCAPE), 'escape', '[get_key_name] Gets name of key_sym back' ); SDL::Events::push_event($aevent); my $nevent = SDL::Event->new(); SDL::Events::event_state( SDL_ACTIVEEVENT, SDL_IGNORE ); SDL::Events::pump_events(); my $got = 0; while ( SDL::Events::poll_event($nevent) ) { $got = 1 if $nevent->type == SDL_ACTIVEEVENT; } is( $got, 0, '[event_state] works with SDL_IGNORE on SDL_ACTIVEEVENT' ); SDL::Events::event_state( SDL_ACTIVEEVENT, SDL_ENABLE ); SDL::Events::push_event($aevent); SDL::Events::pump_events(); my $atleast = 0; while ( SDL::Events::poll_event($nevent) ) { $atleast = 1 if $nevent->type == SDL_ACTIVEEVENT; } is( $atleast, 1, '[event_state] works with SDL_ENABLE on SDL_ACTIVEEVENT' ); is( SDL::Events::enable_unicode(1), 0, '[enable_unicode] return 0 took 1' ); is( SDL::Events::enable_unicode(-1), 1, '[enable_unicode] return 1 took -1' ); is( SDL::Events::enable_unicode(0), 1, '[enable_unicode] return 1 took 0' ); is( SDL::Events::enable_unicode(-1), 0, '[enable_unicode] return 1 took -1' ); #my $kr = SDL::Events::enable_key_repeat( SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); my $kr = SDL::Events::enable_key_repeat( 10, 10 ); is( ( $kr == -1 || $kr == 0 ), 1, '[enable_key_repeat] returned expeceted values' ); SDL::Events::pump_events(); my $ms = SDL::Events::get_mouse_state(); isa_ok( $ms, 'ARRAY', '[get_mouse_state] got back array size of ' . @{$ms} . ' ' ); $ms = SDL::Events::get_relative_mouse_state(); isa_ok( $ms, 'ARRAY', '[get_relative_mouse_state] got back array size of ' . @{$ms} . ' ' ); $ms = SDL::Events::get_app_state(); is( ( $ms >= SDL_APPACTIVE || SDL_APPINPUTFOCUS && $ms <= SDL_APPMOUSEFOCUS ), 1, '[get_app_state] Returns value within parameter ' . $ms ); is( SDL::Events::joystick_event_state(SDL_ENABLE), SDL_ENABLE, '[joystick_event_state] return SDL_IGNORE correctly' ); is( SDL::Events::joystick_event_state(SDL_QUERY), SDL_ENABLE, '[joystick_event_state] return SDL_ENABLE took SDL_QUERY' ); is( SDL::Events::joystick_event_state(SDL_IGNORE), SDL_IGNORE, '[joystick_event_state] return SDL_IGNORE correctly' ); is( SDL::Events::joystick_event_state(SDL_QUERY), SDL_IGNORE, '[joystick_event_state] return SDL_IGNORE took SDL_QUERY ' ); SKIP: { skip "Turn SDL_GUI_TEST on", 1 unless $ENV{'SDL_GUI_TEST'}; SDL::quit(); SDL::init(SDL_INIT_VIDEO); $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); $event = SDL::Event->new(); #This filters out all ActiveEvents my $filter = sub { if ( $_[0]->type == SDL_ACTIVEEVENT ) { return 0 } else { return 1; } }; my $filtered = 1; SDL::Events::set_event_filter($filter); while (1) { SDL::Events::pump_events(); if ( SDL::Events::poll_event($event) ) { if ( $event->type == SDL_ACTIVEEVENT ) { diag 'We should not be in here. The next test will fail!'; $filtered = 0; #we got a problem! print "Hello Mouse!!!\n" if ( $event->active_gain && ( $event->active_state == SDL_APPMOUSEFOCUS ) ); print "Bye Mouse!!!\n" if ( !$event->active_gain && ( $event->active_state == SDL_APPMOUSEFOCUS ) ); } last if ( $event->type == SDL_QUIT ); } } is( $filtered, 1, '[set_event_filter] Properly filtered SDL_ACTIVEEVENT' ); } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } #SDL::quit(); pass 'Are we still alive? Checking for segfaults'; done_testing; sleep(2); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_joystick.t�������������������������������������������������������������������������000444��000765��000024�� 1512�11760240072� 15702� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use Test::More; use SDL::Joystick; my @done = qw/num_joysticks/; can_ok( "SDL::Joystick", @done ); SDL::init(SDL_INIT_JOYSTICK); is( SDL::Joystick::num_joysticks() >= 0, 1, "[num_joysticks] ran" ); SKIP: { skip "Need a joystick for below tests", 1 unless ( SDL::Joystick::num_joysticks() > 0 ); my $joy = SDL::Joystick->new(0); pass "[new] can open joystick"; } my @left = qw/ name opened index num_axes num_balls num_hats num_buttons update get_axis get_hat get_button get_ball /; my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; fail "Not Implmented $_" foreach (@left) } print "$why\n"; done_testing(); sleep(2); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_mouse.t����������������������������������������������������������������������������000444��000765��000024�� 1143�11760240072� 15173� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use Test::More; use SDL::Mouse; use SDL::Cursor; use SDL::Surface; my @done = qw/ /; my @left = qw/ warp_mouse set_cursor get_cursor show_cursor /; can_ok( 'SDL::Mouse', @left ); #change to @done later ... after tests can_ok( 'SDL::Cursor', qw/new DESTROY/ ); my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; fail "Not Implmented $_" foreach (@left) } print "$why\n"; done_testing; sleep(2); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_multi.t����������������������������������������������������������������������������000444��000765��000024�� 1650�11760240073� 15201� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use Test::More; plan( tests => 4 ); my @done = qw/ none /; use_ok('SDL::MultiThread'); SKIP: { skip 'Not implemented', 1; can_ok( 'SDL::MultiThread ', @done ); } my @left = qw/ create_thread thread_id get_thread_id wait_thread kill_thread create_mutex destroy_mutex mutex_P mutex_V create_semaphore destroy_semaphore sem_wait sem_try_wait sem_wait_timeout sem_post sem_value create_cond destroy_cond cond_signal cond_broadcast cond_wait cond_wait_timeout /; my $why = '[Percentage Completion] ' . int( 100 * $#done / ( $#done + $#left ) ) . "\% implementation. $#done / " . ( $#done + $#left ); TODO: { local $TODO = $why; pass "\nThe following functions:\n" . join ",", @left; } if ( $done[0] eq 'none' ) { print '0% done 0/' . $#left . "\n" } else { print "$why\n" } pass 'Are we still alive? Checking for segfaults'; sleep(2); ����������������������������������������������������������������������������������������SDL-2.540/t/core_overlay.t��������������������������������������������������������������������������000444��000765��000024�� 1254�11760240072� 15527� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use Test::More; use SDL; use SDL::Surface; use SDL::Video; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } else { plan( tests => 2 ); } use_ok('SDL::Overlay'); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_ANYFORMAT ); my $overlay = SDL::Overlay->new( 100, 100, SDL_YV12_OVERLAY, $display ); isa_ok( $overlay, 'SDL::Overlay' ); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } sleep(2); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_palette.t��������������������������������������������������������������������������000444��000765��000024�� 3017�11760240073� 15504� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use Test::More; use SDL; use SDL::Surface; use SDL::PixelFormat; use SDL::Video; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } else { plan( tests => 10 ); } use_ok('SDL::Palette'); can_ok( 'SDL::Palette', qw/ ncolors colors color_index / ); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); isa_ok( $display->format, 'SDL::PixelFormat', 'Are we a SDL::PixelFormat?' ); ok( !defined $display->format->palette, 'Palette is not defined as BitPerPixels is greater then 8' ); my $disp = SDL::Video::set_video_mode( 640, 480, 8, SDL_SWSURFACE ); SKIP: { skip( 'Cannot open display: ' . SDL::get_error(), 4 ) unless ($disp); isa_ok( $disp->format, 'SDL::PixelFormat', 'Are we a SDL::PixelFormat?' ); isa_ok( $disp->format->palette, 'SDL::Palette', 'Palette is SDL::Palette when BitPerPixels is 8 ' ); is( $disp->format->palette->ncolors, 256, '256 colors in palette' ); my $colors = $disp->format->palette->colors(); isa_ok( $colors, 'ARRAY', 'Palette->colors is an array' ); isa_ok( $colors->[0], 'SDL::Color', 'Palette->colors[x] is an SDL::Color' ); isa_ok( $disp->format->palette->color_index(23), 'SDL::Color', 'Palette->color_index() is a SDL::Color' ); } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } sleep(2); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_rect.t�����������������������������������������������������������������������������000444��000765��000024�� 742�11760240072� 14764� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use Test::More tests => 10; use_ok('SDL::Rect'); my $rect = SDL::Rect->new( 0, 0, 0, 0 ); isa_ok( $rect, 'SDL::Rect' ); is( $rect->x(), 0, 'x is 0' ); is( $rect->y(), 0, 'y is 0' ); is( $rect->w(), 0, 'w is 0' ); is( $rect->h(), 0, 'h is 0' ); $rect->x(1); $rect->y(2); $rect->w(3); $rect->h(4); is( $rect->x(), 1, 'x is now 1' ); is( $rect->y(), 2, 'y is now 2' ); is( $rect->w(), 3, 'w is now 3' ); is( $rect->h(), 4, 'h is now 4' ); sleep(2); ������������������������������SDL-2.540/t/core_rwops.t����������������������������������������������������������������������������000444��000765��000024�� 2134�11760240072� 15216� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use Test::More; use SDL::RWOps; my @done = qw/ new_file seek close /; can_ok( 'SDL::RWOps', @done ); open FH, '>', '.rwops'; print FH 'rwops'; close FH; my $file = SDL::RWOps->new_file( '.rwops', 'rw' ); isa_ok( $file, 'SDL::RWOps', '[from_file] returns RWOps' ); #0 SEEK_SET #1 SEEK_CUR #2 SEEK_END my $len = $file->seek( 0, 0 ); is( $len, 0, '[seek] gets seek_end' ); $len = $file->seek( 0, 1 ); is( $len, 0, '[seek] gets seek_start' ); $len = $file->seek( 0, 2 ); is( $len, 5, '[seek] gets seek_cur' ); SKIP: { skip( 'crashing', 1 ); my $char; my $blocks = $file->read( $char, 16, 1 ); is( $blocks, 5, '[read] got ' . $char ); } $file->close(); unlink '.rwops'; my @left = qw/ from_fp from_mem from_const_mem alloc free tell read write /; my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; fail "Not Implmented $_" foreach (@left) } print "$why\n"; done_testing; sleep(2); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_surface.t��������������������������������������������������������������������������000444��000765��000024�� 10125�11760240072� 15513� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl -w # Copyright (C) 2009 kthakore # # Spec tests for SDL::Surface # BEGIN { unshift @INC, 'blib/lib', 'blib/arch'; } use strict; use SDL; use SDL::Config; use SDL::Surface; use SDLx::App; use SDL::Rect; use SDL::Color; use SDL::Video; use SDL::PixelFormat; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } else { plan( tests => 41 ); } my $surface = SDL::Surface->new( SDL_ANYFORMAT, 640, 320, 8, 0, 0, 0, 0 ); isa_ok( $surface, 'SDL::Surface' ); is( $surface->w, 640, 'surface has width' ); is( $surface->h, 320, 'surface has height' ); is( $surface->pitch, 640, 'surface has pitch' ); my $clip_rect = SDL::Rect->new( 0, 0, 0, 0 ); SDL::Video::get_clip_rect( $surface, $clip_rect ); isa_ok( $clip_rect, 'SDL::Rect' ); is( $clip_rect->x, 0, 'clip_rect has x' ); is( $clip_rect->y, 0, 'clip_rect has y' ); is( $clip_rect->w, 640, 'clip_rect has width' ); is( $clip_rect->h, 320, 'clip_rect has height' ); my $image = SDL::Video::load_BMP('test/data/icon.bmp'); is( $image->w, 32, 'image has width' ); is( $image->h, 32, 'image has height' ); my $pixel_format = $image->format; isa_ok( $pixel_format, 'SDL::PixelFormat' ); is( $pixel_format->BitsPerPixel, 8, ' BitsPerPixel' ); is( $pixel_format->BytesPerPixel, 1, ' BytesPerPixel' ); is( $pixel_format->Rloss, 8, ' Rloss' ); is( $pixel_format->Gloss, 8, ' Gloss' ); is( $pixel_format->Bloss, 8, ' Bloss' ); is( $pixel_format->Aloss, 8, ' Aloss' ); is( $pixel_format->Rshift, 0, ' Rshift' ); is( $pixel_format->Gshift, 0, ' Gshift' ); is( $pixel_format->Bshift, 0, ' Bshift' ); is( $pixel_format->Ashift, 0, ' Ashift' ); is( $pixel_format->Rmask, 0, ' Rmask' ); is( $pixel_format->Gmask, 0, ' Gmask' ); is( $pixel_format->Bmask, 0, ' Bmask' ); is( $pixel_format->Amask, 0, ' Amask' ); is( $pixel_format->colorkey, 0, ' colorkey' ); is( $pixel_format->alpha, 255, ' alpha' ); my $pixel = SDL::Video::map_RGB( $pixel_format, 255, 127, 0 ); is( $pixel, 2, 'maping RGB to surface' ); SDL::Video::fill_rect( $surface, SDL::Rect->new( 0, 0, 32, 32 ), $pixel ); ok( 1, 'Managed to fill_rect' ); my $small_rect = SDL::Rect->new( 0, 0, 64, 64 ); SDL::Video::blit_surface( $image, $small_rect, $surface, $small_rect ); ok( 1, 'Managed to blit' ); #my $image_format = $surface->display; #$surface->update_rect( 0, 0, 32, 32 ); #ok( 1, 'Managed to update_rect' ); #$surface->update_rects( SDL::Rect->new( 0, 0, 32, 32 ) ); #ok( 1, 'Managed to update_rects' ); my $app = SDLx::App->new( title => "Test", width => 640, height => 480, init => SDL_INIT_VIDEO ); pass 'did this pass'; my $image_format = SDL::Video::display_format($image); isa_ok( $image_format, 'SDL::Surface' ); my $image_format_alpha = SDL::Video::display_format_alpha($image); isa_ok( $image_format_alpha, 'SDL::Surface' ); my $app_pixel_format = $app->format; my $rect = SDL::Rect->new( 0, 0, $app->w, $app->h ); my $blue_pixel = SDL::Video::map_RGB( $app_pixel_format, 0x00, 0x00, 0xff ); SDL::Video::fill_rect( $app, $rect, $blue_pixel ); SDL::Video::update_rect( $app, 0, 0, 0, 0 ); SDL::Video::update_rects( $app, $small_rect ); my $ref = $surface->get_pixels_ptr; my $other_surface = SDL::Surface->new_from( $ref, 640, 320, 8, $surface->pitch, 0, 0, 0, 0 ); my $get_pixel = $surface->get_pixel(0); ok( $get_pixel >= 0, "[get_pixel] returns integer ($get_pixel)" ); $surface->set_pixels( 0, 42 ); pass '[set_pixel] first pixel to 42'; is( $surface->get_pixel(0), 42, '[get_pixel] returns integer (42)' ); isa_ok( $other_surface, 'SDL::Surface' ); is( $other_surface->w, $surface->w, '[new_form] have same w' ); is( $other_surface->h, $surface->h, '[neh_form] have same h' ); #TODO: Added more comparison stuff if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Final SegFault test'; SDL::delay(100); sleep(2); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_timer.t����������������������������������������������������������������������������000444��000765��000024�� 2613�11760240072� 15166� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w BEGIN { # http://wiki.cpantesters.org/wiki/CPANAuthorNotes use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } } use threads; use threads::shared; use strict; use SDL; use Test::More; use SDL::Time; use Config; use lib 't/lib'; use SDL::TestTool; if ( !SDL::TestTool->init(SDL_INIT_TIMER) ) { plan( skip_all => 'Failed to init timer' ); } else { plan( tests => 6 ); } my @done = qw/get_ticks delay/; my $before = SDL::get_ticks(); like( $before, qr/^\d+$/, '[get_ticks] returns a number' ); SDL::delay(250); my $after = SDL::get_ticks(); like( $after, qr/^\d+$/, '[get_ticks] returns a number again' ); my $diff = $after - $before; ok( $diff > 100 && $diff < 400, '[delay](250) delayed for ' . $diff . 'ms' ); my $fired : shared = 0; sub fire { $fired++; return 100 } my $id = SDL::Time::add_timer( 101, 'main::fire' ); sleep(2); is( SDL::Time::remove_timer($id), 1, "[remove_timer] removed $id timer" ); isnt( $fired, 0, '[add_timer] ran ' . $fired ); my @left = qw/set_timer new_timer_callback add_timer remove_timer/; my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; pass "\nThe following functions:\n" . join ",", @left; } print "$why\n"; sleep(2); ���������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_version.t��������������������������������������������������������������������������000444��000765��000024�� 1326�11760240072� 15533� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Version; use Test::More tests => 8; my $version = SDL::version(); isa_ok( $version, 'SDL::Version' ); like( $version->major, qr/^\d+$/, 'Compile-time version major is a number' ); like( $version->minor, qr/^\d+$/, 'Compile-time version minor is a number' ); like( $version->patch, qr/^\d+$/, 'Compile-time version patch is a number' ); my $linked_version = SDL::linked_version(); isa_ok( $linked_version, 'SDL::Version' ); like( $linked_version->major, qr/^\d+$/, 'Link-time version major is a number' ); like( $linked_version->minor, qr/^\d+$/, 'Link-time version minor is a number' ); like( $linked_version->patch, qr/^\d+$/, 'Link-time version patch is a number' ); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_video.t����������������������������������������������������������������������������000444��000765��000024�� 33320�11760240072� 15173� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Color; use SDL::Surface; use SDL::Config; use SDL::Overlay; use Test::More; use SDL::Rect; use SDL::Video; use SDL::VideoInfo; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my @done = qw/ get_video_surface get_video_info video_driver_name list_modes set_video_mode video_mode_ok update_rect update_rects flip set_colors set_palette set_gamma set_gamma_ramp map_RGB map_RGBA unlock_surface lock_surface convert_surface display_format display_format_alpha set_color_key set_alpha get_RGB get_RGBA load_BMP save_BMP fill_rect blit_surface set_clip_rect get_clip_rect lock_YUV_overlay unlock_YUV_overlay display_YUV_overlay GL_load_library GL_get_proc_address GL_get_attribute GL_set_attribute GL_swap_buffers get_gamma_ramp wm_set_caption wm_get_caption wm_set_icon wm_toggle_fullscreen wm_iconify_window wm_grab_input /; can_ok( 'SDL::Video', @done ); is( SDL_SWSURFACE, 0, 'SDL_SWSURFACE should be imported' ); is( SDL_SWSURFACE(), 0, 'SDL_SWSURFACE() should also be available' ); is( SDL_HWSURFACE, 1, 'SDL_HWSURFACE should be imported' ); is( SDL_HWSURFACE(), 1, 'SDL_HWSURFACE() should also be available' ); is( SDL_ASYNCBLIT, 4, 'SDL_ASYNCBLIT should be imported' ); is( SDL_ASYNCBLIT(), 4, 'SDL_ASYNCBLIT() should also be available' ); is( SDL_OPENGL, 2, 'SDL_OPENGL should be imported' ); is( SDL_OPENGL(), 2, 'SDL_OPENGL() should also be available' ); is( SDL_OPENGLBLIT, 10, 'SDL_OPENGLBLIT should be imported' ); is( SDL_OPENGLBLIT(), 10, 'SDL_OPENGLBLIT() should also be available' ); is( SDL_RESIZABLE, 16, 'SDL_RESIZABLE should be imported' ); is( SDL_RESIZABLE(), 16, 'SDL_RESIZABLE() should also be available' ); is( SDL_HWACCEL, 256, 'SDL_HWACCEL should be imported' ); is( SDL_HWACCEL(), 256, 'SDL_HWACCEL() should also be available' ); is( SDL_SRCCOLORKEY, 4096, 'SDL_SRCCOLORKEY should be imported' ); is( SDL_SRCCOLORKEY(), 4096, 'SDL_SRCCOLORKEY() should also be available' ); is( SDL_RLEACCELOK, 8192, 'SDL_RLEACCELOK should be imported' ); is( SDL_RLEACCELOK(), 8192, 'SDL_RLEACCELOK() should also be available' ); is( SDL_RLEACCEL, 16384, 'SDL_RLEACCEL should be imported' ); is( SDL_RLEACCEL(), 16384, 'SDL_RLEACCEL() should also be available' ); is( SDL_SRCALPHA, 65536, 'SDL_SRCALPHA should be imported' ); is( SDL_SRCALPHA(), 65536, 'SDL_SRCALPHA() should also be available' ); is( SDL_ANYFORMAT, 268435456, 'SDL_ANYFORMAT should be imported' ); is( SDL_ANYFORMAT(), 268435456, 'SDL_ANYFORMAT() should also be available' ); is( SDL_DOUBLEBUF, 1073741824, 'SDL_DOUBLEBUF should be imported' ); is( SDL_DOUBLEBUF(), 1073741824, 'SDL_DOUBLEBUF() should also be available' ); is( SDL_FULLSCREEN, 0x80000000, 'SDL_FULLSCREEN should be imported' ); is( SDL_FULLSCREEN(), 0x80000000, 'SDL_FULLSCREEN() should also be available' ); is( SDL_HWPALETTE, 536870912, 'SDL_HWPALETTE should be imported' ); is( SDL_HWPALETTE(), 536870912, 'SDL_HWPALETTE() should also be available' ); is( SDL_PREALLOC, 16777216, 'SDL_PREALLOC should be imported' ); is( SDL_PREALLOC(), 16777216, 'SDL_PREALLOC() should also be available' ); is( SDL_IYUV_OVERLAY, 1448433993, 'SDL_IYUV_OVERLAY should be imported' ); is( SDL_IYUV_OVERLAY(), 1448433993, 'SDL_IYUV_OVERLAY() should also be available' ); is( SDL_UYVY_OVERLAY, 1498831189, 'SDL_UYVY_OVERLAY should be imported' ); is( SDL_UYVY_OVERLAY(), 1498831189, 'SDL_UYVY_OVERLAY() should also be available' ); is( SDL_YUY2_OVERLAY, 844715353, 'SDL_YUY2_OVERLAY should be imported' ); is( SDL_YUY2_OVERLAY(), 844715353, 'SDL_YUY2_OVERLAY() should also be available' ); is( SDL_YV12_OVERLAY, 842094169, 'SDL_YV12_OVERLAY should be imported' ); is( SDL_YV12_OVERLAY(), 842094169, 'SDL_YV12_OVERLAY() should also be available' ); is( SDL_YVYU_OVERLAY, 1431918169, 'SDL_YVYU_OVERLAY should be imported' ); is( SDL_YVYU_OVERLAY(), 1431918169, 'SDL_YVYU_OVERLAY() should also be available' ); is( SDL_LOGPAL, 0x01, 'SDL_LOGPAL should be imported' ); is( SDL_LOGPAL(), 0x01, 'SDL_LOGPAL() should also be available' ); is( SDL_PHYSPAL, 0x02, 'SDL_PHYSPAL should be imported' ); is( SDL_PHYSPAL(), 0x02, 'SDL_PHYSPAL() should also be available' ); is( SDL_GRAB_OFF, 0, 'SDL_GRAB_OFF should be imported' ); is( SDL_GRAB_OFF(), 0, 'SDL_GRAB_OFF() should also be available' ); is( SDL_GRAB_ON, 1, 'SDL_GRAB_ON should be imported' ); is( SDL_GRAB_ON(), 1, 'SDL_GRAB_ON() should also be available' ); is( SDL_GRAB_QUERY, -1, 'SDL_GRAB_QUERY should be imported' ); is( SDL_GRAB_QUERY(), -1, 'SDL_GRAB_QUERY() should also be available' ); #needs to be done before set_video_mode my $glVal = SDL::Video::GL_load_library('this/should/fail'); is( $glVal, -1, '[GL_load_library] Failed appropriately' ); TODO: { local $TODO = 'These should be tested with OS specific DLL or SO'; is( SDL::Video::GL_load_library('t/realGL.so'), 0, '[GL_load_libary] returns 0 on success' ); # this gets set by GL_load_library => SDL_GL_LOADLIBARY. How do we get this from XS though? # below t/realGL.so needs to use SDL_GL_LOADLIBRARY isnt( SDL::Video::GL_get_proc_address('t/realGL.so'), 0, '[GL_get_proc_address] returns not null on success' ); is( SDL::Video::GL_set_attribute( SDL_GL_DOUBLEBUFFER, 1 ), 0, '[GL_set_attribute] returns 0 on success' ); my $tdisplay = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); my $value = -3; SDL::Video::GL_set_attribute( SDL_GL_DOUBLEBUFFER, $value ); is( $value, 1, '[GL_get_attribute] returns 1 on success as set above' ); SDL::Video::GL_swap_buffers(); pass('[GL_swap_buffers] should work because Double Buffering is turned on'); } my $video_info = SDL::Video::get_video_info(); isa_ok( $video_info, 'SDL::VideoInfo', '[get_video_info] Checking if we get videoinfo ref back' ); my $list_modes = SDL::Video::list_modes( $video_info->vfmt, SDL_NOFRAME | SDL_HWSURFACE | SDL_FULLSCREEN ); is( ref($list_modes), 'ARRAY', '[list_modes] Returned an ARRAY! ' ); my @modes = @{$list_modes}; if ( $#modes > 0 ) { foreach my $mode (@modes) { ok( $mode->w > 0 && $mode->h > 0, '[list_modes] available mode: ' . $mode->w . ' x ' . $mode->h ); } } elsif ( $#modes == 0 ) { is( $modes[0], 'all', '[list_modes] available mode: all' ); } my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); if ( !$display ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } #diag('Testing SDL::Video'); isa_ok( SDL::Video::get_video_surface(), 'SDL::Surface', '[get_video_surface] Checking if we get a surface ref back' ); my $driver_name = SDL::Video::video_driver_name(); pass '[video_driver_name] This is your driver name: ' . $driver_name; cmp_ok( SDL::Video::video_mode_ok( 100, 100, 16, SDL_SWSURFACE ), '>=', 0, "[video_mode_ok] Checking if an integer was return" ); $display = SDL::Video::set_video_mode( 100, 100, 16, SDL_SWSURFACE ); isa_ok( $display, 'SDL::Surface', '[set_video_more] Checking if we get a surface ref back' ); #TODO: Write to surface and check inf pixel in that area got updated. SDL::Video::update_rect( $display, 0, 0, 0, 0 ); #TODO: Write to surface and check inf pixel in that area got updated. SDL::Video::update_rects( $display, SDL::Rect->new( 0, 10, 20, 20 ) ); my $value = SDL::Video::flip($display); is( ( $value == 0 ) || ( $value == -1 ), 1, '[flip] returns 0 or -1' ); SKIP: { skip( "These negative test may cause older versions of SDL to crash", 2 ) unless $ENV{NEW_SDL}; $value = SDL::Video::set_colors( $display, 0, SDL::Color->new( 0, 0, 0 ) ); is( $value, 0, '[set_colors] returns 0 trying to write to 32 bit display' ); $value = SDL::Video::set_palette( $display, SDL_LOGPAL | SDL_PHYSPAL, 0 ); is( $value, 0, '[set_palette] returns 0 trying to write to 32 bit surface' ); } SDL::delay(100); my @b_w_colors; for ( my $i = 0; $i < 256; $i++ ) { $b_w_colors[$i] = SDL::Color->new( $i, $i, $i ); } my $overlay = SDL::Overlay->new( 200, 220, SDL_IYUV_OVERLAY, $display ); is( SDL::Video::lock_YUV_overlay($overlay), 0, '[lock_YUV_overlay] returns a 0 on success' ); SDL::Video::unlock_YUV_overlay($overlay); pass '[unlock_YUV_overlay] ran'; my $display_at_rect = SDL::Rect->new( 0, 0, 100, 100 ); is( SDL::Video::display_YUV_overlay( $overlay, $display_at_rect ), 0, '[display_YUV_overlay] returns 0 on success' ); my $bmp_surface; my $hwdisplay; SKIP: { skip( "No hardware surface available", 26 ) unless $video_info->hw_available(); $hwdisplay = SDL::Video::set_video_mode( 640, 480, 8, SDL_HWSURFACE ); if ( !$hwdisplay ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } $value = SDL::Video::set_colors( $hwdisplay, 0 ); is( $value, 0, '[set_colors] returns 0 trying to send empty colors to 8 bit surface' ); $value = SDL::Video::set_palette( $hwdisplay, SDL_LOGPAL | SDL_PHYSPAL, 0 ); is( $value, 0, '[set_palette] returns 0 trying to send empty colors to 8 bit surface' ); $value = SDL::Video::set_colors( $hwdisplay, 0, @b_w_colors ); is( $value, 1, '[set_colors] returns ' . $value ); $value = SDL::Video::set_palette( $hwdisplay, SDL_LOGPAL | SDL_PHYSPAL, 0, @b_w_colors ); is( $value, 1, '[set_palette] returns 1' ); $value = SDL::Video::lock_surface($hwdisplay); pass '[lock_surface] ran returned: ' . $value; SDL::Video::unlock_surface($hwdisplay); pass '[unlock_surface] ran'; is( SDL::Video::map_RGB( $hwdisplay->format, 10, 10, 10 ) >= 0, 1, '[map_RGB] maps correctly to 8-bit surface' ); is( SDL::Video::map_RGBA( $hwdisplay->format, 10, 10, 10, 10 ) >= 0, 1, '[map_RGBA] maps correctly to 8-bit surface' ); TODO: { local $TODO = "These test case test a very specific test scenario which might need to be re tought out ..."; isa_ok( SDL::Video::convert_surface( $hwdisplay, $hwdisplay->format, SDL_SRCALPHA ), 'SDL::Surface', '[convert_surface] Checking if we get a surface ref back' ); isa_ok( SDL::Video::display_format($hwdisplay), 'SDL::Surface', '[display_format] Returns a SDL::Surface' ); isa_ok( SDL::Video::display_format_alpha($hwdisplay), 'SDL::Surface', '[display_format_alpha] Returns a SDL::Surface' ); } is( SDL::Video::set_color_key( $hwdisplay, SDL_SRCCOLORKEY, SDL::Color->new( 0, 10, 0 ) ), 0, '[set_color_key] Returns 0 on success' ); is( SDL::Video::set_alpha( $hwdisplay, SDL_SRCALPHA, 100 ), 0, '[set_alpha] Returns 0 on success' ); is_deeply( SDL::Video::get_RGB( $hwdisplay->format, 0 ), [ 0, 0, 0 ], '[get_RGB] returns r,g,b' ); is_deeply( SDL::Video::get_RGBA( $hwdisplay->format, 0 ), [ 0, 0, 0, 255 ], '[get_RGBA] returns r,g,b,a' ); my $bmp = 't/core_video.bmp'; unlink($bmp) if -f $bmp; SDL::Video::save_BMP( $hwdisplay, $bmp ); ok( -f $bmp, '[save_BMP] creates a file' ); $bmp_surface = SDL::Video::load_BMP($bmp); isa_ok( $bmp_surface, 'SDL::Surface', '[load_BMP] returns an SDL::Surface' ); unlink($bmp) if -f $bmp; my $pixel = SDL::Video::map_RGB( $hwdisplay->format, 255, 127, 0 ); SDL::Video::fill_rect( $hwdisplay, SDL::Rect->new( 0, 0, 32, 32 ), $pixel ); ok( 1, '[fill_rect] filled rect' ); my $clip_rect = SDL::Rect->new( 0, 0, 10, 20 ); SDL::Video::get_clip_rect( $hwdisplay, $clip_rect ); is( $clip_rect->x, 0, '[get_clip_rect] returns a rect with x 0' ); is( $clip_rect->y, 0, '[get_clip_rect] returns a rect with y 0' ); is( $clip_rect->w, 640, '[get_clip_rect] returns a rect with w 640' ); is( $clip_rect->h, 480, '[get_clip_rect] returns a rect with h 480' ); SDL::Video::set_clip_rect( $hwdisplay, SDL::Rect->new( 10, 20, 100, 200 ) ); SDL::Video::get_clip_rect( $hwdisplay, $clip_rect ); is( $clip_rect->x, 10, '[get_clip_rect] returns a rect with x 10' ); is( $clip_rect->y, 20, '[get_clip_rect] returns a rect with y 20' ); is( $clip_rect->w, 100, '[get_clip_rect] returns a rect with w 100' ); is( $clip_rect->h, 200, '[get_clip_rect] returns a rect with h 200' ); } SKIP: { skip( "No window manager available", 11 ) unless $video_info->wm_available(); my ( $title, $icon ) = @{ SDL::Video::wm_get_caption() }; is( $title, undef, '[wm_get_caption] title is undef' ); is( $icon, undef, '[wm_get_caption] icon is undef' ); SDL::Video::wm_set_caption( 'Title text', 'Icon text' ); ( $title, $icon ) = @{ SDL::Video::wm_get_caption() }; is( $title, 'Title text', '[wm_set_caption set title]' ); is( $icon, 'Icon text', '[wm_set_caption set icon]' ); SKIP: { skip( "No hardware surface available", 1 ) unless $video_info->hw_available(); SDL::Video::wm_set_icon($bmp_surface); pass '[wm_set_icon] ran'; } SKIP: { skip 'Turn on SDL_GUI_TEST', 6 unless $ENV{SDL_GUI_TEST}; SDL::Video::wm_grab_input(SDL_GRAB_ON); pass '[wm_grab_input] ran with SDL_GRAB_ON'; is( SDL::Video::wm_grab_input(SDL_GRAB_QUERY), SDL_GRAB_ON, '[wm_grab_input] Got Correct grab mode back' ); SDL::Video::wm_grab_input(SDL_GRAB_OFF); pass '[wm_grab_input] ran with SDL_GRAB_OFF'; is( SDL::Video::wm_grab_input(SDL_GRAB_QUERY), SDL_GRAB_OFF, '[wm_grab_input] Got Correct grab mode back' ); my $ic = SDL::Video::wm_iconify_window(); is( $ic, 1, '[wm_iconify_window] ran' ); SKIP: { skip( "No hardware surface available", 1 ) unless $video_info->hw_available(); SDL::Video::wm_toggle_fullscreen($hwdisplay); pass '[wm_toggle_fullscreen] ran'; } } } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; sleep(1); done_testing(); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/core_video_convert_surface.t������������������������������������������������������������000444��000765��000024�� 2733�11760240072� 20427� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use SDL; use SDL::Rect; use SDL::Color; use SDL::Video; use SDL::Surface; use SDL::PixelFormat; use SDL::Palette; use Test::More; use Data::Dumper; use Devel::Peek; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my $hwdisplay = SDL::Video::set_video_mode( 640, 480, 8, SDL_HWSURFACE ); my $surface = SDL::Video::convert_surface( $hwdisplay, $hwdisplay->format, 0 ); isa_ok( $surface, 'SDL::Surface', '[convert_surface] makes copy of surface correctly' ); warn 'Copy conversion failed: ' . SDL::get_error if !$surface; my $display = SDL::Surface->new( SDL_HWSURFACE, 640, 480, 8, 0, 0, 0, 0 ); my $surface2 = SDL::Video::convert_surface( $display, $hwdisplay->format, 0 ); isa_ok( $surface2, 'SDL::Surface', '[convert_surface] makes copy of surface converted surface HW->HW' ); warn 'HW->HW conversion failed: ' . SDL::get_error if !$surface2; $display = SDL::Surface->new( SDL_SWSURFACE, 640, 480, 8, 0, 0, 0, 0 ); my $surface3 = SDL::Video::convert_surface( $display, $hwdisplay->format, 0 ); isa_ok( $surface3, 'SDL::Surface', '[convert_surface] makes copy of surface converted surface SW->SW' ); warn 'SW->SW conversion failed: ' . SDL::get_error if !$surface3; if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } done_testing; �������������������������������������SDL-2.540/t/core_video_gamma.t����������������������������������������������������������������������000444��000765��000024�� 2105�11760240073� 16313� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Color; use SDL::Surface; use SDL::Config; use SDL::Overlay; use Test::More; use SDL::Rect; use SDL::Video; use SDL::VideoInfo; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my $zero = [ 0, 0, 0, 0 ]; SDL::Video::set_gamma_ramp( $zero, $zero, $zero ); pass '[set_gamma_ramp] ran'; my ( $r, $g, $b ) = ( [], [], [] ); SDL::Video::get_gamma_ramp( $r, $g, $b ); pass '[get_gamma_ramp] ran got ' . @{$r}; is( @{$r}, 256, '[get_gamma_ramp] got 256 gamma ramp red back' ); is( @{$g}, 256, '[get_gamma_ramp] got 256 gamma ramp green back' ); is( @{$b}, 256, '[get_gamma_ramp] got 256 gamma ramp blue back' ); SDL::Video::set_gamma( 1.0, 1.0, 1.0 ); pass '[set_gamma] ran '; if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; sleep(1); done_testing(); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/extendingrect.t�������������������������������������������������������������������������000444��000765��000024�� 1026�11760240073� 15677� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package MyRect; use base 'SDL::Rect'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); unless ( ref $self ) { require Carp; Carp::confess SDL::GetError(); } return bless $self => $class; } sub foo { my $self = shift; return $self->x; } package main; use Test::More tests => 6; my $rect = MyRect->new( 0, 0, 0, 0 ); isa_ok( $rect, 'SDL::Rect' ); isa_ok( $rect, 'MyRect' ); can_ok( $rect, qw(x y w h) ); can_ok( $rect, qw(new foo) ); $rect->x(10); is( $rect->x, 10 ); is( $rect->foo, 10 ); sleep(2); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/gfx.t�����������������������������������������������������������������������������������000444��000765��000024�� 731�11760240073� 13602� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Config; use SDL::Version; use SDL::GFX; use Test::More; use lib 't/lib'; use SDL::TestTool; if ( !SDL::Config->has('SDL_gfx_primitives') ) { plan( skip_all => 'SDL_gfx support not compiled' ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); pass 'Are we still alive? Checking for segfaults'; done_testing; ���������������������������������������SDL-2.540/t/gfx_fpsmanager.t������������������������������������������������������������������������000444��000765��000024�� 2633�11760240072� 16027� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Config; use SDL::Version; use SDL::GFX; use SDL::GFX::Framerate; use SDL::GFX::FPSManager; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_framerate') ) { plan( skip_all => 'SDL_gfx_framerate support not compiled' ); } else { plan( tests => 11 ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); my $fps = SDL::GFX::FPSManager->new( 0, 0, 0, 0 ); isa_ok( $fps, 'SDL::GFX::FPSManager' ); is( $fps->framecount, 0, 'fps has framecount' ); is( $fps->rateticks, 0, 'fps has rateticks' ); is( $fps->lastticks, 0, 'fps has lastticks' ); is( $fps->rate, 0, 'fps has rate' ); $fps->framecount(1); $fps->rateticks(2); $fps->lastticks(3); $fps->rate(4); is( $fps->framecount, 1, 'fps has framecount' ); is( $fps->rateticks, 2, 'fps has rateticks' ); is( $fps->lastticks, 3, 'fps has lastticks' ); is( $fps->rate, 4, 'fps has rate' ); SDL::delay(100); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; �����������������������������������������������������������������������������������������������������SDL-2.540/t/gfx_framerate.t�������������������������������������������������������������������������000444��000765��000024�� 2436�11760240073� 15654� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Config; use SDL::Version; use SDL::GFX; use SDL::GFX::Framerate; use SDL::GFX::FPSManager; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_framerate') ) { plan( skip_all => 'SDL_gfx_framerate support not compiled' ); } else { plan( tests => 6 ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); # init my $fps = SDL::GFX::FPSManager->new( 0, 0, 0, 0 ); is( SDL::GFX::Framerate::init($fps), undef, '[init] returns undef' ); # get my $rate = SDL::GFX::Framerate::get($fps); is( $rate, 30, "[rate] is 30 by default" ); # set SDL::GFX::Framerate::set( $fps, 60 ); is( SDL::GFX::Framerate::get($fps), 60, "[rate] successfully set to 60" ); # delay is( SDL::GFX::Framerate::delay($fps), undef, "[delay] return undef" ); SDL::delay(100); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/gfx_imagefilter.t�����������������������������������������������������������������������000444��000765��000024�� 11002�11760240072� 16202� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Rect; use SDL::Config; use SDL::Video; use SDL::Version; use SDL::Surface; use SDL::PixelFormat; use SDL::GFX; use SDL::GFX::ImageFilter; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_imagefilter') ) { plan( skip_all => 'SDL_gfx_imagefilter support not compiled' ); } else { plan( tests => 8 ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); my @done = qw/ MMX_detect /; my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); my $pixel = SDL::Video::map_RGB( $display->format, 0, 0, 0 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, $display->w, $display->h ), $pixel ); if ( !$display ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } my $mmx_before = SDL::GFX::ImageFilter::MMX_detect(); is( $mmx_before == 1 || $mmx_before == 0, 1, "MMX_detect == $mmx_before" ); is( SDL::GFX::ImageFilter::MMX_off(), undef, 'MMX_off' ); is( SDL::GFX::ImageFilter::MMX_detect(), 0, "MMX_detect (MMX is off now)" ); is( SDL::GFX::ImageFilter::MMX_on(), undef, 'MMX_on' ); is( SDL::GFX::ImageFilter::MMX_detect(), $mmx_before, "MMX_detect (MMX is same as at start)" ); #add(Src1, Src2, Dest, length) #mean(Src1, Src2, Dest, length) #sub(Src1, Src2, Dest, length) #abs_diff(Src1, Src2, Dest, length) #mult(Src1, Src2, Dest, length) #mult_nor(Src1, Src2, Dest, length) #mult_div_by_2(Src1, Src2, Dest, length) #mult_div_by_4(Src1, Src2, Dest, length) #bit_and(Src1, Src2, Dest, length) #bit_or(Src1, Src2, Dest, length) #div(Src1, Src2, Dest, length) #bit_negation(Src1, Dest, length) #add_byte(Src1, Dest, length, C) #add_uint(Src1, Dest, length, C) #add_byte_to_half(Src1, Dest, length, C) #sub_byte(Src1, Dest, length, C) #sub_uint(Src1, Dest, length, C) #shift_right(Src1, Dest, length, N) #shift_right_uint(Src1, Dest, length, N) #mult_by_byte(Src1, Dest, length, C) #shift_right_and_mult_by_byte(Src1, Dest, length, N, C) #shift_left_byte(Src1, Dest, length, N) #shift_left_uint(Src1, Dest, length, N) #shift_left(Src1, Dest, length, N) #binarize_using_threshold(Src1, Dest, length, T) #clip_to_range(Src1, Dest, length, Tmin, Tmax) #normalize_linear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax) #convolve_kernel_3x3_divide(Src, Dest, rows, columns, Kernel, Divisor) #convolve_kernel_5x5_divide(Src, Dest, rows, columns, Kernel, Divisor) #convolve_kernel_7x7_divide(Src, Dest, rows, columns, Kernel, Divisor) #convolve_kernel_9x9_divide(Src, Dest, rows, columns, Kernel, Divisor) #convolve_kernel_3x3_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) #convolve_kernel_5x5_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) #convolve_kernel_7x7_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) #convolve_kernel_9x9_shift_right(Src, Dest, rows, columns, Kernel, NRightShift) #sobel_x(Src, Dest, rows, columns) #sobel_x_shift_right(Src, Dest, rows, columns, NRightShift) #align_stack() #restore_stack() SDL::Video::update_rect( $display, 0, 0, 640, 480 ); #SDL::delay(1000); my @left = qw/ MMX_detect MMX_off MMX_on add mean sub abs_diff mult mult_nor mult_div_by_2 mult_div_by_4 bit_and bit_or div bit_negation add_byte add_uint add_byte_to_half sub_byte sub_uint shift_right shift_right_uint mult_by_byte shift_right_and_mult_by_byte shift_left_byte shift_left_uint shift_left binarize_using_threshold clip_to_range normalize_linear convolve_kernel_3x3_divide convolve_kernel_5x5_divide convolve_kernel_7x7_divide convolve_kernel_9x9_divide convolve_kernel_3x3_shift_right convolve_kernel_5x5_shift_right convolve_kernel_7x7_shift_right convolve_kernel_9x9_shift_right sobel_x sobel_x_shift_right align_stack restore_stack /; my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . '% implementation. ' . ( $#done + 1 ) . '/' . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; pass "\nThe following functions:\n" . join ",", @left; } if ( $done[0] eq 'none' ) { print '0% done 0/' . $#left . "\n" } else { print "$why\n" } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/gfx_primitives.t������������������������������������������������������������������������000444��000765��000024�� 30004�11760240072� 16110� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Rect; use SDL::Config; use SDL::Video; use SDL::Version; use SDL::Surface; use SDL::PixelFormat; use SDL::GFX; use SDL::GFX::Primitives; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_primitives') ) { plan( skip_all => 'SDL_gfx_primitives support not compiled' ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_ANYFORMAT ); my $pixel = SDL::Video::map_RGB( $display->format, 0, 0, 0 ); if ( !$display ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } my $surface = SDL::Surface->new( SDL_SWSURFACE, 640, 480, 32, 0, 0, 0, 0 ); SDL::Video::fill_rect( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $pixel ); # pixel tests is( SDL::GFX::Primitives::pixel_color( $surface, 2, 3, 0xFF0000FF ), 0, 'pixel_color' ); is( SDL::GFX::Primitives::pixel_RGBA( $surface, 4, 3, 0x00, 0xFF, 0x00, 0xFF ), 0, 'pixel_RGBA' ); # demo for pixel functions #SDL::GFX::Primitives::rectangle_color($surface, 3, 4, 125, 106, 0xCCCCCCFF); #SDL::GFX::Primitives::rectangle_color($surface, 3, 116, 125, 218, 0xCCCCCCFF); my $max_x = 120; my $max_y = 100; my $max_iterationen = 400; my $punkt_abstand_x = 0.015; my $punkt_abstand_y = 0.015; my $min_cx = -2.1; my $min_cy = -1.1; my $max_betrag_quadrat = 4000; my $r = 0xFF; my $g = 0x00; my $b = 0x00; for ( my $x = 0; $x <= $max_x; $x++ ) { if ( $x < 20 ) { $g += 12.7; } elsif ( $x < 40 ) { $r -= 12.7; } elsif ( $x < 60 ) { $r = 0; $b += 12.7; } elsif ( $x < 80 ) { $g -= 12.7; } elsif ( $x < 100 ) { $g = 0; $r += 12.7; } else { $b -= 12.7; } for ( my $y = 0; $y <= $max_y; $y++ ) { # fractal my $iteration = mandel_point( $min_cx + $x * $punkt_abstand_x, $min_cy + $y * $punkt_abstand_y ); my $col = ( $iteration / $max_iterationen * 8192 ) & 0xFF; SDL::GFX::Primitives::pixel_RGBA( $surface, 4 + $x, 5 + $y, $col, 0, 256 - $col, 0xFF ); # color picker SDL::GFX::Primitives::pixel_RGBA( $surface, 4 + $x, 117 + $y, $r, $g, $b, 0xFF - 0xFF * $y / $max_y ); } } # line tests is( SDL::GFX::Primitives::hline_color( $surface, 131, 135, 4, 0x00FF00FF ), 0, 'hline_color' ); # green is( SDL::GFX::Primitives::hline_RGBA( $surface, 131, 135, 6, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'hline_RGBA' ); # yellow is( SDL::GFX::Primitives::vline_color( $surface, 137, 3, 7, 0x0000FFFF ), 0, 'vline_color' ); # blue is( SDL::GFX::Primitives::vline_RGBA( $surface, 139, 3, 7, 0xFF, 0x00, 0x00, 0xFF ), 0, 'vline_RGBA' ); # red # hline/vline demo #SDL::GFX::Primitives::rectangle_color($surface, 131, 55 + $_ * 20, 253, 67 + $_ * 20, 0xCCCCCCFF) for(0..5); #SDL::GFX::Primitives::rectangle_color($surface, 136 + $_ * 20, 50, 148 + $_ * 20, 172, 0xCCCCCCFF) for(0..5); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0xFF000080 ) for ( 56 .. 66 ); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0xFFFF0080 ) for ( 76 .. 86 ); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0x00FF0080 ) for ( 96 .. 106 ); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0x00FFFF80 ) for ( 116 .. 126 ); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0x0000FF80 ) for ( 136 .. 146 ); SDL::GFX::Primitives::hline_color( $surface, 132, 252, $_, 0xFF00FF80 ) for ( 156 .. 166 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0xFF000080 ) for ( 137 .. 147 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0xFFFF0080 ) for ( 157 .. 167 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0x00FF0080 ) for ( 177 .. 187 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0x00FFFF80 ) for ( 197 .. 207 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0x0000FF80 ) for ( 217 .. 227 ); SDL::GFX::Primitives::vline_color( $surface, $_, 51, 171, 0xFF00FF80 ) for ( 237 .. 247 ); # aaline test is( SDL::GFX::Primitives::line_color( $surface, 261, 3, 265, 7, 0xFF00FFFF ), 0, 'line_color' ); # pink is( SDL::GFX::Primitives::line_RGBA( $surface, 261, 7, 265, 3, 0x00, 0xFF, 0xFF, 0xFF ), 0, 'line_RGBA' ); # turquoise is( SDL::GFX::Primitives::aaline_color( $surface, 267, 3, 271, 7, 0xFF00FFFF ), 0, 'aaline_color' ); # pink is( SDL::GFX::Primitives::aaline_RGBA( $surface, 267, 7, 271, 3, 0x00, 0xFF, 0xFF, 0xFF ), 0, 'aaline_RGBA' ); # turquoise # aaline demo my $last_x = 287; my $last_y = 62; my @points_x = ( 309, 333, 355, 372, 380, 380, 371, 354, 332, 308, 286, 269, 261, 261, 270, 287 ); my @points_y = ( 53, 53, 62, 79, 101, 125, 147, 164, 173, 173, 163, 146, 124, 100, 78, 62 ); for my $p1 ( 0 .. 15 ) { for my $p2 ( 0 .. 15 ) { SDL::GFX::Primitives::aaline_color( $surface, $points_x[$p1], $points_y[$p1], $points_x[$p2], $points_y[$p2], 0xFFFFFF50 ); } } # rectangle/box demo #SDL::GFX::Primitives::rectangle_RGBA($surface, 260 + $_ * 2, 5 + $_ / 120 * 100, 380 - $_ * 2, 105 - $_ / 120 * 100, $_ / 60 * 256, 0, 0, 0xFF) for(0..60); #SDL::GFX::Primitives::box_RGBA($surface, 260 + $_, 117 + $_ / 120 * 100, 380 - $_, 217 - $_ / 120 * 100, $_ / 120 * 256, 0, 0, 0x08) for(0..120); # rectangle/box test is( SDL::GFX::Primitives::rectangle_color( $surface, 390, 3, 394, 7, 0x00FF00FF ), 0, 'rectangle_color' ); # green is( SDL::GFX::Primitives::rectangle_RGBA( $surface, 396, 3, 400, 7, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'rectangle_RGBA' ); # yellow is( SDL::GFX::Primitives::box_color( $surface, 402, 3, 406, 7, 0x0000FFFF ), 0, 'rectangle_color' ); # blue is( SDL::GFX::Primitives::box_RGBA( $surface, 408, 3, 412, 7, 0xFF, 0x00, 0x00, 0xFF ), 0, 'rectangle_RGBA' ); # red # rectangle/box demo my @box = ( [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' ], [ '0', '0', '0', '0', '0', '0', '/', '_', '\\', '0', '0', '0', '0', '0', '0' ], [ '0', '0', '0', '0', '/', '/', '/', '_', '\\', '\\', '\\', '0', '0', '0', '0' ], [ '0', '0', '0', '/', '/', '/', '/', '_', '\\', '\\', '\\', '\\', '0', '0', '0' ], [ '0', '0', '/', '/', '/', '/', '/', '_', '\\', '\\', '\\', '\\', '\\', '0', '0' ], [ '0', '0', '/', '/', '/', '/', '/', '_', '\\', '\\', '\\', '\\', '\\', '0', '0' ], [ '0', '/', '/', '/', '/', '/', '/', '_', '\\', '\\', '\\', '\\', '\\', '\\', '0' ], [ '0', '<', '<', '<', '<', '<', '<', '0', '>', '>', '>', '>', '>', '>', '0' ], [ '0', '\\', '\\', '\\', '\\', '\\', '\\', '-', '/', '/', '/', '/', '/', '/', '0' ], [ '0', '0', '\\', '\\', '\\', '\\', '\\', '-', '/', '/', '/', '/', '/', '0', '0' ], [ '0', '0', '\\', '\\', '\\', '\\', '\\', '-', '/', '/', '/', '/', '/', '0', '0' ], [ '0', '0', '0', '\\', '\\', '\\', '\\', '-', '/', '/', '/', '/', '0', '0', '0' ], [ '0', '0', '0', '0', '\\', '\\', '\\', '-', '/', '/', '/', '0', '0', '0', '0' ], [ '0', '0', '0', '0', '0', '\\', '\\', '-', '/', '/', '0', '0', '0', '0', '0' ], [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' ] ); for my $y ( 0 .. 14 ) { for my $x ( 0 .. 14 ) { my $x_pos = 390 + $x * 8; my $y_pos = 53 + $y * 8; my $bg_color = ( ( $y & 1 ) ^ ( $x & 1 ) ) ? 0xFFFFFFFF : 0x333333FF; my $fg_color = ( ( $y & 1 ) ^ ( $x & 1 ) ) ? 0x333333FF : 0xFFFFFFFF; SDL::GFX::Primitives::box_color( $surface, $x_pos, $y_pos, $x_pos + 7, $y_pos + 7, $bg_color ); if ( @{ $box[$y] }[$x] =~ /[\-_]/ ) { SDL::GFX::Primitives::box_color( $surface, $x_pos + 1, $y_pos + ( $y < 7 ? 5 : 1 ), $x_pos + 2, $y_pos + ( $y < 7 ? 6 : 2 ), $fg_color ); SDL::GFX::Primitives::box_color( $surface, $x_pos + 5, $y_pos + ( $y < 7 ? 5 : 1 ), $x_pos + 6, $y_pos + ( $y < 7 ? 6 : 2 ), $fg_color ); } if ( @{ $box[$y] }[$x] =~ /[<>]/ ) { SDL::GFX::Primitives::box_color( $surface, $x_pos + ( $x < 7 ? 5 : 1 ), $y_pos + 1, $x_pos + ( $x < 7 ? 6 : 2 ), $y_pos + 2, $fg_color ); SDL::GFX::Primitives::box_color( $surface, $x_pos + ( $x < 7 ? 5 : 1 ), $y_pos + 5, $x_pos + ( $x < 7 ? 6 : 2 ), $y_pos + 6, $fg_color ); } if ( @{ $box[$y] }[$x] =~ /\\/ ) { SDL::GFX::Primitives::box_color( $surface, $x_pos + 1, $y_pos + 1, $x_pos + 2, $y_pos + 2, $fg_color ); SDL::GFX::Primitives::box_color( $surface, $x_pos + 5, $y_pos + 5, $x_pos + 6, $y_pos + 6, $fg_color ); } if ( @{ $box[$y] }[$x] =~ /\// ) { SDL::GFX::Primitives::box_color( $surface, $x_pos + 5, $y_pos + 1, $x_pos + 6, $y_pos + 2, $fg_color ); SDL::GFX::Primitives::box_color( $surface, $x_pos + 1, $y_pos + 5, $x_pos + 2, $y_pos + 6, $fg_color ); } } } # circle/arc/aacircle/filled_circle/pie/filled_pie test is( SDL::GFX::Primitives::circle_color( $surface, 520, 5, 2, 0x00FF00FF ), 0, 'circle_color' ); # green is( SDL::GFX::Primitives::circle_RGBA( $surface, 527, 5, 2, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'circle_RGBA' ); # yellow is( SDL::GFX::Primitives::aacircle_color( $surface, 534, 5, 2, 0x00FF00FF ), 0, 'aacircle_color' ); # green is( SDL::GFX::Primitives::aacircle_RGBA( $surface, 541, 5, 2, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'aacircle_RGBA' ); # yellow is( SDL::GFX::Primitives::filled_circle_color( $surface, 548, 5, 2, 0x00FF00FF ), 0, 'filled_circle_color' ); # green is( SDL::GFX::Primitives::filled_circle_RGBA( $surface, 555, 5, 2, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'filled_circle_RGBA' ); # yellow SKIP: { skip( 'Version 2.0.17 needed', 2 ) if $v < 2.0.17; is( SDL::GFX::Primitives::arc_color( $surface, 562, 5, 2, 5, 175, 0x00FF00FF ), 0, 'arc_color' ); # green is( SDL::GFX::Primitives::arc_RGBA( $surface, 569, 5, 2, 185, 355, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'arc_RGBA' ); # yellow } is( SDL::GFX::Primitives::pie_color( $surface, 576, 7, 5, 270, 0, 0xFF0000FF ), 0, 'pie_color' ); # red is( SDL::GFX::Primitives::pie_RGBA( $surface, 583, 7, 5, 270, 0, 0x00, 0x00, 0xFF, 0xFF ), 0, 'pie_RGBA' ); # blue is( SDL::GFX::Primitives::filled_pie_color( $surface, 590, 7, 5, 270, 0, 0xFF0000FF ), 0, 'filled_pie_color' ); # red is( SDL::GFX::Primitives::filled_pie_RGBA( $surface, 597, 7, 5, 270, 0, 0x00, 0x00, 0xFF, 0xFF ), 0, 'filled_pie_RGBA' ); # blue # circle/arc/aacircle/filled_circle/pie/filled_pie demo SDL::GFX::Primitives::filled_circle_color( $surface, 553, 137, 36, 0x00FF0080 ); SDL::GFX::Primitives::filled_circle_color( $surface, 601, 137, 36, 0x0000FF80 ); SDL::GFX::Primitives::filled_circle_color( $surface, 577, 87, 36, 0xFF000080 ); if ( $v->major >= 2 && $v->minor >= 0 && $v->patch >= 17 ) { SDL::GFX::Primitives::arc_color( $surface, 553, 137, 36, 310, 335, 0xFFFFFF80 ); SDL::GFX::Primitives::arc_color( $surface, 601, 137, 36, 205, 230, 0xFFFFFF80 ); SDL::GFX::Primitives::arc_color( $surface, 577, 87, 36, 75, 105, 0xFFFFFF80 ); SDL::GFX::Primitives::arc_color( $surface, 553, 137, 36, 48, 255, 0xFFFFFF80 ); SDL::GFX::Primitives::arc_color( $surface, 601, 137, 36, 285, 132, 0xFFFFFF80 ); SDL::GFX::Primitives::arc_color( $surface, 577, 87, 36, 155, 25, 0xFFFFFF80 ); } SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 0, 0, 640, 480 ) ); SDL::Video::update_rect( $display, 0, 0, 640, 480 ); SDL::delay(3000); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; sub mandel_point { my $cx = shift; my $cy = shift; my $betrag_quadrat = 0; my $iter = 0; my $x = 0; my $y = 0; while ( $betrag_quadrat <= $max_betrag_quadrat && $iter < $max_iterationen ) { my $xt = $x * $x - $y * $y + $cx; my $yt = 2 * $x * $y + $cy; $x = $xt; $y = $yt; $iter++; $betrag_quadrat = $x * $x + $y * $y; } return $iter; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/gfx_primitives2.t�����������������������������������������������������������������������000444��000765��000024�� 16220�11760240072� 16176� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Rect; use SDL::Config; use SDL::Video; use SDL::Version; use SDL::Surface; use SDL::PixelFormat; use SDL::GFX; use SDL::GFX::Primitives; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_primitives') ) { plan( skip_all => 'SDL_gfx_primitives support not compiled' ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); my $pixel = SDL::Video::map_RGB( $display->format, 0, 0, 0 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, $display->w, $display->h ), $pixel ); if ( !$display ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } # ellipse/aaellipse/filled_ellipse tests is( SDL::GFX::Primitives::ellipse_color( $display, 3, 245, 1, 2, 0xFF0000FF ), 0, 'ellipse_color' ); # red is( SDL::GFX::Primitives::ellipse_RGBA( $display, 7, 245, 1, 2, 0x00, 0xFF, 0x00, 0xFF ), 0, 'ellipse_RGBA' ); # green is( SDL::GFX::Primitives::aaellipse_color( $display, 11, 245, 1, 2, 0x0000FFFF ), 0, 'aaellipse_color' ); # blue is( SDL::GFX::Primitives::aaellipse_RGBA( $display, 15, 245, 1, 2, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'aaellipse_RGBA' ); # yellow is( SDL::GFX::Primitives::filled_ellipse_color( $display, 19, 245, 1, 2, 0x00FFFFFF ), 0, 'filled_ellipse_color' ); # cyan is( SDL::GFX::Primitives::filled_ellipse_RGBA( $display, 23, 245, 1, 2, 0xFF, 0x00, 0xFF, 0xFF ), 0, 'filled_ellipse_RGBA' ); # magenta # ellipse/aaellipse/filled_ellipse demo SDL::GFX::Primitives::aaellipse_color( $display, 65, 249 + 2 * $_, 60, 2 * $_, 0xFFFFFF80 ) for ( 1 .. 25 ); SDL::GFX::Primitives::filled_ellipse_RGBA( $display, 65, 405, 60 - 1.2 * $_, 50 - $_, 0xFF, 0x00, 0x00, 0x05 ) for ( 0 .. 30 ); SDL::GFX::Primitives::filled_ellipse_RGBA( $display, 65, 405, 12, 10, 0x00, 0x00, 0x00, 0xFF ); SDL::GFX::Primitives::aaellipse_RGBA( $display, 65, 405, 12, 10, 0x00, 0x00, 0x00, 0xFF ); # trigon/aatrigon/filled_trigon tests is( SDL::GFX::Primitives::trigon_color( $display, 130, 243, 132, 245, 130, 247, 0xFF0000FF ), 0, 'trigon_color' ); # red is( SDL::GFX::Primitives::trigon_RGBA( $display, 134, 243, 136, 245, 134, 247, 0x00, 0xFF, 0x00, 0xFF ), 0, 'trigon_RGBA' ); # green is( SDL::GFX::Primitives::aatrigon_color( $display, 138, 243, 140, 245, 138, 247, 0x0000FFFF ), 0, 'aatrigon_color' ); # blue is( SDL::GFX::Primitives::aatrigon_RGBA( $display, 142, 243, 144, 245, 142, 247, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'aatrigon_RGBA' ); # yellow is( SDL::GFX::Primitives::filled_trigon_color( $display, 146, 243, 148, 245, 146, 247, 0x00FFFFFF ), 0, 'filled_trigon_color' ); # cyan is( SDL::GFX::Primitives::filled_trigon_RGBA( $display, 150, 243, 152, 245, 150, 247, 0xFF, 0x00, 0xFF, 0xFF ), 0, 'filled_trigon_RGBA' ); # magenta # polygon/aapolygon/filled_polygon/textured_polygon/MT/ tests my $surf = SDL::Video::load_BMP('test/data/pattern_red_white_2x2.bmp'); is( SDL::GFX::Primitives::polygon_color( $display, [ 262, 266, 264, 266, 262 ], [ 243, 243, 245, 247, 247 ], 5, 0xFF0000FF ), 0, 'polygon_color' ); # red is( SDL::GFX::Primitives::polygon_RGBA( $display, [ 268, 272, 270, 272, 268 ], [ 243, 243, 245, 247, 247 ], 5, 0x00, 0xFF, 0x00, 0xFF ), 0, 'polygon_RGBA' ); # green is( SDL::GFX::Primitives::aapolygon_color( $display, [ 274, 278, 276, 278, 274 ], [ 243, 243, 245, 247, 247 ], 5, 0x0000FFFF ), 0, 'aapolygon_color' ); # blue is( SDL::GFX::Primitives::aapolygon_RGBA( $display, [ 280, 284, 282, 284, 280 ], [ 243, 243, 245, 247, 247 ], 5, 0xFF, 0xFF, 0x00, 0xFF ), 0, 'aapolygon_RGBA' ); # yellow is( SDL::GFX::Primitives::filled_polygon_color( $display, [ 286, 290, 288, 290, 286 ], [ 243, 243, 245, 247, 247 ], 5, 0x00FFFFFF ), 0, 'filled_polygon_color' ); # cyan is( SDL::GFX::Primitives::filled_polygon_RGBA( $display, [ 292, 296, 294, 296, 292 ], [ 243, 243, 245, 247, 247 ], 5, 0xFF, 0x00, 0xFF, 0xFF ), 0, 'filled_polygon_RGBA' ); # magenta SKIP: { skip( 'Version 2.0.14 needed', 1 ) if $v < 2.0.14; isnt( SDL::GFX::Primitives::textured_polygon( $display, [ 298, 302, 300, 302, 298 ], [ 243, 243, 245, 247, 247 ], 5, $surf, 0, 0 ), -1, 'textured_polygon' ); # texture } SKIP: { skip( 'Version 2.0.17 needed', 3 ) if $v < 2.0.17; is( SDL::GFX::Primitives::filled_polygon_color_MT( $display, [ 304, 308, 306, 308, 304 ], [ 243, 243, 245, 247, 247 ], 5, 0xFF0000FF, 0, 0 ), 0, 'filled_polygon_color_MT' ); # red is( SDL::GFX::Primitives::filled_polygon_RGBA_MT( $display, [ 310, 314, 312, 314, 310 ], [ 243, 243, 245, 247, 247 ], 5, 0x00, 0xFF, 0x00, 0xFF, 0, 0 ), 0, 'filled_polygon_RGBA_MT' ); # green isnt( SDL::GFX::Primitives::textured_polygon_MT( $display, [ 316, 320, 318, 320, 316 ], [ 243, 243, 245, 247, 247 ], 5, $surf, 0, 0, 0, 0 ), -1, 'textured_polygon_MT ' ); # texture } # polygon demo SDL::GFX::Primitives::filled_polygon_color( $display, [ 311, 331, 381, 301, 311, 351 ], [ 293, 293, 378, 378, 361, 361 ], 6, 0xFF000080 ); # red SDL::GFX::Primitives::filled_polygon_color( $display, [ 381, 371, 271, 311, 321, 301 ], [ 378, 395, 395, 327, 344, 378 ], 6, 0x00FF0080 ); # green SDL::GFX::Primitives::filled_polygon_color( $display, [ 271, 261, 311, 351, 331, 311 ], [ 395, 378, 293, 361, 361, 327 ], 6, 0x0000FF80 ); # blue # bezier test is( SDL::GFX::Primitives::bezier_color( $display, [ 390, 392, 394, 396 ], [ 243, 255, 235, 247 ], 4, 20, 0xFF00FFFF ), 0, 'polygon_color' ); # red is( SDL::GFX::Primitives::bezier_RGBA( $display, [ 398, 400, 402, 404 ], [ 243, 255, 235, 247 ], 4, 20, 0x00, 0xFF, 0x00, 0xFF ), 0, 'polygon_RGBA' ); # green #character/string tests is( SDL::GFX::Primitives::character_color( $display, 518, 243, 'A', 0xFF0000FF ), 0, 'character_color' ); # red is( SDL::GFX::Primitives::character_RGBA( $display, 526, 243, 'B', 0x00, 0xFF, 0x00, 0xFF ), 0, 'character_RGBA' ); # green is( SDL::GFX::Primitives::string_color( $display, 534, 243, 'CD', 0x0000FFFF ), 0, 'string_color' ); # blue is( SDL::GFX::Primitives::string_RGBA( $display, 550, 243, 'DE', 0xFF, 0xFF, 0x00, 0xFF ), 0, 'string_RGBA' ); # yellow SKIP: { skip ' test font not found', 1 unless -e 'test/data/5x7.fnt'; my $font = ''; open( FH, '<', 'test/data/5x7.fnt' ); binmode(FH); read( FH, $font, 2048 ); close(FH); is( SDL::GFX::Primitives::set_font( $font, 5, 7 ), undef, 'set_font' ); } #chracater demo SDL::GFX::Primitives::character_RGBA( $display, 518 + ( $_ % 17 ) * 7, 251 + int( $_ / 17 ) * 8, chr($_), 0x80 + $_ / 2, 0xFF, 0x00, 0xFF ) for ( 0 .. 255 ); SDL::Video::update_rect( $display, 0, 0, 640, 480 ); SDL::delay(3000); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/gfx_rotozoom.t��������������������������������������������������������������������������000444��000765��000024�� 10373�11760240073� 15615� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Rect; use SDL::Config; use SDL::Video; use SDL::Version; use SDL::Surface; use SDL::PixelFormat; use SDL::GFX; use SDL::GFX::Rotozoom; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_gfx_rotozoom') ) { plan( skip_all => 'SDL_gfx_rotozoom support not compiled' ); } else { plan( tests => 23 ); } my $v = SDL::GFX::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); is( SMOOTHING_OFF, 0, 'SMOOTHING_OFF should be imported' ); is( SMOOTHING_OFF(), 0, 'SMOOTHING_OFF() should also be available' ); is( SMOOTHING_ON, 1, 'SMOOTHING_ON should be imported' ); is( SMOOTHING_ON(), 1, 'SMOOTHING_ON() should also be available' ); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_ANYFORMAT ); my $pixel = SDL::Video::map_RGB( $display->format, 0, 0, 0 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, $display->w, $display->h ), $pixel ); if ( !$display ) { plan skip_all => 'Couldn\'t set video mode: ' . SDL::get_error(); } my $src = SDL::Video::load_BMP('test/data/picture.bmp'); draw(); # Note: new surface should be less than 16384 in width and height isa_ok( SDL::GFX::Rotozoom::surface( $src, 0, 1, 0 ), 'SDL::Surface', 'surface' ); draw(); my ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::surface_size( 100, 200, 45, 1 ) }; is( $dest_w > 100, 1, 'surface_size, resulting width raises at angle is 45' ); is( $dest_h > 200, 1, 'surface_size, resulting height raises at angle is 45' ); ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::surface_size( 100, 200, 45, 0.3 ) }; is( $dest_w < 100, 1, 'surface_size, resulting width decreases at zoom 0.3' ); is( $dest_h < 200, 1, 'surface_size, resulting height decreases at zoom 0.3' ); SKIP: { skip( 'Version 2.0.13 needed', 1 ) if $v < 2.0.13; isa_ok( SDL::GFX::Rotozoom::surface_xy( $src, 1, 1, 1, 1 ), 'SDL::Surface', 'surface_xy' ); draw(); } ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::surface_size_xy( 100, 200, 45, 1.3, 1.7 ) }; is( $dest_w > 100, 1, 'surface_size_xy, resulting width raises at zoom 1.3 and angle 45' ); is( $dest_h > 200, 1, 'surface_size_xy, resulting height raises at zoom 1.7 ans angle 45' ); ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::surface_size_xy( 100, 200, 45, 0.3, 0.2 ) }; is( $dest_w < 100, 1, 'surface_size_xy, resulting width decreases at zoom 0.3 and angle 45' ); is( $dest_h < 200, 1, 'surface_size_xy, resulting height decreases at zoom 0.2 ans angle 45' ); isa_ok( SDL::GFX::Rotozoom::zoom_surface( $src, 1, 1, 1 ), 'SDL::Surface', 'zoom_surface' ); draw(); ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::zoom_surface_size( 100, 200, 0.5, 0.7 ) }; is( $dest_w < 100, 1, 'zoom_surface_size, resulting width decreases at zoom 0.5' ); is( $dest_h < 200, 1, 'zoom_surface_size, resulting height decreases at zoom 0.7' ); ( $dest_w, $dest_h ) = @{ SDL::GFX::Rotozoom::zoom_surface_size( 100, 200, 1.2, 7.7 ) }; is( $dest_w > 100, 1, 'zoom_surface_size, resulting width raises at zoom 1.2' ); is( $dest_h > 200, 1, 'zoom_surface_size, resulting height raises at zoom 7.7' ); SKIP: { skip( 'Version 2.0.14 needed', 1 ) if $v < 2.0.14; isa_ok( SDL::GFX::Rotozoom::shrink_surface( $src, 1, 1 ), 'SDL::Surface', 'shrink_surface' ); draw(); } $src = SDL::Surface->new( SDL_SWSURFACE, 100, 200, 32, 0, 0, 0, 0 ); SKIP: { skip( 'Version 2.0.17 needed', 1 ) if $v < 2.0.17; isa_ok( SDL::GFX::Rotozoom::rotate_surface_90_degrees( $src, 1 ), 'SDL::Surface', 'rotate_surface_90_degrees' ); } # Note: everything but 32bit surface will crash for ( 1 .. 5 ) { draw(); } sub draw { my $surface = $src; SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, $surface->w, $surface->h ), $display, SDL::Rect->new( 50 * 20, 100, $surface->w + 50 + 20, $surface->h + 100 ) ); SDL::Video::update_rect( $display, 0, 0, 640, 480 ); } SDL::delay(1000); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/image.t���������������������������������������������������������������������������������000444��000765��000024�� 14300�11760240073� 14135� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; use SDL::Version; use SDL::Image; use SDL::RWOps; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } my @done = qw/ linked_version load_rw load_typed_rw load_PNG_rw load_BMP_rw load_GIF_rw load_JPG_rw load_LBM_rw load_PCX_rw load_PNM_rw load_TIF_rw load_XCF_rw load_XPM_rw load_XV_rw is_PNG is_BMP is_GIF is_JPG is_LBM is_PCX is_PNM is_TIF is_XCF is_XPM is_XV /; can_ok( "SDL::Image", @done ); my $lver = SDL::Image::linked_version(); isa_ok( $lver, "SDL::Version", '[linked_version] got version back!' ); printf( "got version: %d.%d.%d\n", $lver->major, $lver->minor, $lver->patch ); SKIP: { skip( 'PNG support not compiled', 14 ) unless SDL::Config->has('png'); isa_ok( SDL::Image::load("test/data/highlight.png"), "SDL::Surface", "[load] Gets Surface" ); my $file = SDL::RWOps->new_file( "test/data/logo.png", "rb" ); isa_ok( SDL::Image::load_rw( $file, 1 ), "SDL::Surface", "[load_rw] Gets surface" ); my $file2 = SDL::RWOps->new_file( "test/data/menu.png", "rb" ); isa_ok( SDL::Image::load_typed_rw( $file2, 1, "PNG" ), "SDL::Surface", "[loadtyped_rw] Makes surface from png" ); my $file3 = SDL::RWOps->new_file( "test/data/menu.png", "rb" ); is( SDL::Image::is_PNG($file3), 1, "[is_PNG] gets correct value for png file" ); is( SDL::Image::is_BMP($file3), 0, '[is_BMP] returned correct value' ); is( SDL::Image::is_GIF($file3), 0, '[is_GIF] returned correct value' ); is( SDL::Image::is_JPG($file3), 0, '[is_JPG] returned correct value' ); is( SDL::Image::is_LBM($file3), 0, '[is_LMB] returned correct value' ); is( SDL::Image::is_PCX($file3), 0, '[is_PCX] returned correct value' ); is( SDL::Image::is_PNM($file3), 0, '[is_PNM] returned correct value' ); is( SDL::Image::is_TIF($file3), 0, '[is_TIF] returned correct value' ); is( SDL::Image::is_XCF($file3), 0, '[is_XCF] returned correct value' ); is( SDL::Image::is_XPM($file3), 0, '[is_XPM] returned correct value' ); is( SDL::Image::is_XV($file3), 0, '[is_XV] returned correct value' ); } SKIP: { skip( 'JPEG support not compiled', 14 ) unless SDL::Config->has('jpeg'); isa_ok( SDL::Image::load("test/data/picture.jpg"), "SDL::Surface", "[load] Gets Surface" ); my $file = SDL::RWOps->new_file( "test/data/picture.jpg", "rb" ); isa_ok( SDL::Image::load_rw( $file, 1 ), "SDL::Surface", "[load_rw] Gets surface" ); my $file2 = SDL::RWOps->new_file( "test/data/picture.jpg", "rb" ); isa_ok( SDL::Image::load_typed_rw( $file2, 1, "JPG" ), "SDL::Surface", "[loadtyped_rw] Makes surface from jpg" ); my $file3 = SDL::RWOps->new_file( "test/data/picture.jpg", "rb" ); is( SDL::Image::is_JPG($file3), 1, "[is_JPG] gets correct value for jpg file" ); is( SDL::Image::is_BMP($file3), 0, '[is_BMP] returned correct value' ); is( SDL::Image::is_GIF($file3), 0, '[is_GIF] returned correct value' ); is( SDL::Image::is_PNG($file3), 0, '[is_PNG] returned correct value' ); is( SDL::Image::is_LBM($file3), 0, '[is_LMB] returned correct value' ); is( SDL::Image::is_PCX($file3), 0, '[is_PCX] returned correct value' ); is( SDL::Image::is_PNM($file3), 0, '[is_PNM] returned correct value' ); is( SDL::Image::is_TIF($file3), 0, '[is_TIF] returned correct value' ); is( SDL::Image::is_XCF($file3), 0, '[is_XCF] returned correct value' ); is( SDL::Image::is_XPM($file3), 0, '[is_XPM] returned correct value' ); is( SDL::Image::is_XV($file3), 0, '[is_XV] returned correct value' ); } SKIP: { skip( 'TIFF support not compiled', 14 ) unless SDL::Config->has('tiff'); isa_ok( SDL::Image::load("test/data/picture.tif"), "SDL::Surface", "[load] Gets Surface" ); my $file = SDL::RWOps->new_file( "test/data/picture.tif", "rb" ); isa_ok( SDL::Image::load_rw( $file, 1 ), "SDL::Surface", "[load_rw] Gets surface" ); my $file2 = SDL::RWOps->new_file( "test/data/picture.tif", "rb" ); isa_ok( SDL::Image::load_typed_rw( $file2, 1, "TIF" ), "SDL::Surface", "[loadtyped_rw] Makes surface from tif" ); my $file3 = SDL::RWOps->new_file( "test/data/picture.tif", "rb" ); is( SDL::Image::is_TIF($file3), 1, "[is_TIF] gets correct value for tif file" ); is( SDL::Image::is_BMP($file3), 0, '[is_BMP] returned correct value' ); is( SDL::Image::is_GIF($file3), 0, '[is_GIF] returned correct value' ); is( SDL::Image::is_JPG($file3), 0, '[is_JPG] returned correct value' ); is( SDL::Image::is_LBM($file3), 0, '[is_LMB] returned correct value' ); is( SDL::Image::is_PCX($file3), 0, '[is_PCX] returned correct value' ); is( SDL::Image::is_PNM($file3), 0, '[is_PNM] returned correct value' ); is( SDL::Image::is_PNG($file3), 0, '[is_PNG] returned correct value' ); is( SDL::Image::is_XCF($file3), 0, '[is_XCF] returned correct value' ); is( SDL::Image::is_XPM($file3), 0, '[is_XPM] returned correct value' ); is( SDL::Image::is_XV($file3), 0, '[is_XV] returned correct value' ); } #need to get DEFINES to SDL::Image::Constants; #IMG_INIT_JPG =?o is( IMG_INIT_JPG, 0x00000001, '[IMG_INIT_JPG] constant loaded properly' ); is( IMG_INIT_PNG, 0x00000002, '[IMG_INIT_PNG] constant loaded properly' ); is( IMG_INIT_TIF, 0x00000004, '[IMG_INIT_TIF] constant loaded properly' ); SKIP: { skip( 'This is only for version >= 1.2.10', 2 ) if $lver < 1.2.10; SKIP: { skip( 'JPEG support not compiled', 1 ) unless SDL::Config->has('jpeg'); is( SDL::Image::init(IMG_INIT_JPG), IMG_INIT_JPG, '[init] Inited JPEG' ); } SKIP: { skip( 'TIFF support not compiled', 1 ) unless SDL::Config->has('tiff'); is( SDL::Image::init(IMG_INIT_TIF), IMG_INIT_TIF, '[init] Inited TIFF' ); } SKIP: { skip( 'PNG support not compiled', 1 ) unless SDL::Config->has('png'); is( SDL::Image::init(IMG_INIT_PNG), IMG_INIT_PNG, '[init] Inited PNG' ); } can_ok( 'SDL::Image', qw/ load_ICO_rw load_CUR_rw is_ICO is_CUR/ ); SDL::Image::quit(); pass '[quit] we can quit fine'; } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/image_xpm_array.t�����������������������������������������������������������������������000444��000765��000024�� 5036�11760240073� 16205� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -Iblib/lib -Iblib -Iblib/arch # use SDL; use SDL::Config; use SDL::Rect; use SDL::Video; use SDL::Image; use SDL::Surface; use SDL::PixelFormat; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } my $screen_width = 800; my $screen_height = 600; # setting video mode my $screen = SDL::Video::set_video_mode( $screen_width, $screen_height, 32, SDL_SWSURFACE ); # # my @test = ( '30 30 9 1', ' c #FFFFFF', '. c #EFEFEF', '+ c #CFCFCF', '@ c #9F9F9F', '# c #808080', '$ c #505050', '% c #202020', '& c #000000', '* c #303030', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' .+@##@+. ', ' .@$%&&%$@. ', ' .@*&&&&&&*@. ', ' +$&&&&&&&&$+ ', ' @%&&&&&&&&%@ ', ' #&&&&&&&&&&# ', ' #&&&&&&&&&&# ', ' @%&&&&&&&&%@ ', ' +$&&&&&&&&$+ ', ' .@*&&&&&&*@. ', ' .@$%&&%$@. ', ' .+@##@+. ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ); my $mapped_color = SDL::Video::map_RGB( $screen->format(), 43, 43, 255 ); # SDL::Video::fill_rect( $screen, SDL::Rect->new( 0, 0, $screen->w, $screen->h ), $mapped_color ); my $picture = SDL::Image::read_XPM_from_array( \@test, 30 ); warn SDL::get_error . "\n" if ( !$picture ); SKIP: { skip "picture not comming from XPM", 1 unless $picture; SDL::Video::blit_surface( $picture, SDL::Rect->new( 0, 0, $picture->w, $picture->h ), $screen, SDL::Rect->new( 0, 0, $screen->w, $screen->h ) ); SDL::Video::flip($screen); pass 'ok'; } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } sleep(1); done_testing(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer.t���������������������������������������������������������������������������������000444��000765��000024�� 5737�11760240073� 14175� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } #SDL_init(SDL_INIT_AUDIO) + Version bootstrap conflict prevention in windows # # To reproduce this bug do # # use SDL; use SDL::Version; SDL::init(SDL_INIT_AUDIO); # use SDL::Mixer; use SDL::Version; my $v = SDL::Mixer::linked_version(); isa_ok( $v, 'SDL::Version', '[linked_version]' ); printf( "got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch ); is( MIX_DEFAULT_CHANNELS, 2, 'MIX_DEFAULT_CHANNELS should be imported' ); is( MIX_DEFAULT_CHANNELS(), 2, 'MIX_DEFAULT_CHANNELS() should also be available' ); is( MIX_DEFAULT_FORMAT, 32784, 'MIX_DEFAULT_FORMAT should be imported' ); is( MIX_DEFAULT_FORMAT(), 32784, 'MIX_DEFAULT_FORMAT() should also be available' ); is( MIX_DEFAULT_FREQUENCY, 22050, 'MIX_DEFAULT_FREQUENCY should be imported' ); is( MIX_DEFAULT_FREQUENCY(), 22050, 'MIX_DEFAULT_FREQUENCY() should also be available' ); is( MIX_FADING_IN, 2, 'MIX_FADING_IN should be imported' ); is( MIX_FADING_IN(), 2, 'MIX_FADING_IN() should also be available' ); is( MIX_FADING_OUT, 1, 'MIX_FADING_OUT should be imported' ); is( MIX_FADING_OUT(), 1, 'MIX_FADING_OUT() should also be available' ); is( MIX_MAX_VOLUME, 128, 'MIX_MAX_VOLUME should be imported' ); is( MIX_MAX_VOLUME(), 128, 'MIX_MAX_VOLUME() should also be available' ); is( MIX_NO_FADING, 0, 'MIX_NO_FADING should be imported' ); is( MIX_NO_FADING(), 0, 'MIX_NO_FADING() should also be available' ); SKIP: { skip( 'Version 1.2.10 needed', 1 ) if $v < 1.2.10; my @flags = ( MIX_INIT_MP3, MIX_INIT_MOD, MIX_INIT_FLAC, MIX_INIT_OGG ); my @names = qw/MP3 MOD FLAC OGG/; foreach ( 0 ... 3 ) { my $f = $flags[$_]; my $n = $names[$_]; ( SDL::Mixer::init($f) != $f ) ? print "Tried to init $n" . SDL::get_error() . "\n" : print "You have $n support\n"; pass 'Init ran'; } } is( SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ), 0, '[open_audio] ran' ); my $data = SDL::Mixer::query_spec(); my ( $status, $freq, $format, $chan ) = @{$data}; isnt( $status, 0, '[query_spec] ran' ); isnt( $freq, 0, '[query_spec] got frequency ' . $freq ); isnt( $format, 0, '[query_spec] got format ' ); isnt( $chan, 0, '[query_spec] got channels ' . $chan ); SDL::Mixer::close_audio(); pass '[close_audio] ran'; SKIP: { skip( 'Version 1.2.10 needed', 1 ) if $v < 1.2.10; SDL::Mixer::quit(); pass '[quit] ran'; } if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ���������������������������������SDL-2.540/t/mixer_channels.t������������������������������������������������������������������������000444��000765��000024�� 13104�11760240072� 16052� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use warnings; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } require threads; require threads::shared; use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Samples; use SDL::Mixer::MixChunk; my $can_open = SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ); unless($can_open == 0) { plan( skip_all => 'Cannot open audio :'.SDL::get_error() ); } is( $can_open , 0, '[open_audio] ran' ); is( SDL::Mixer::Channels::allocate_channels(4), 4, "[allocate_channels] 4 channels allocated" ); my $finished :shared = 0; my $callback = sub { my ($channel) = shift; printf( "[channel_finished] callback called for channel %d\n", $channel); $finished++; }; SKIP: { skip( 'No callbacks unless SDL_RELEASE_TESTING', 1 ) unless $ENV{'SDL_RELEASE_TESTING'}; SDL::Mixer::Channels::channel_finished($callback); pass '[channel_finished] registered callback'; } my $delay = 500; my $audio_test_file = 'test/data/silence.wav'; if ( $ENV{'SDL_RELEASE_TESTING'} ) { SDL::Mixer::Channels::volume( -1, 10 ); is( SDL::Mixer::Channels::volume( -1, 20 ), 10, "[volume] set to 20, previously was 10" ); $delay = 2000; $audio_test_file = 'test/data/sample.wav'; } else { SDL::Mixer::Channels::volume( -1, 10 ); is( SDL::Mixer::Channels::volume( -1, 1 ), 10, "[volume] set to 1, previously was 10" ); } my $sample_chunk = SDL::Mixer::Samples::load_WAV($audio_test_file); my $playing_channel = SDL::Mixer::Channels::play_channel( -1, $sample_chunk, -1 ); isnt( $playing_channel, -1, "[play_channel] plays $audio_test_file on channel " . $playing_channel ); is( SDL::Mixer::Channels::fading_channel($playing_channel), MIX_NO_FADING, "[fading_channel] channel $playing_channel is not fading" ); is( SDL::Mixer::Channels::playing($playing_channel), 1, "[playing] channel $playing_channel is playing" ); is( SDL::Mixer::Channels::paused($playing_channel), 0, "[paused] channel $playing_channel is not paused" ); ok( $delay, 'delay definedness madness test #1' ); my $fading_channels = SDL::Mixer::Channels::fade_out_channel( $playing_channel, $delay ); is( $fading_channels > 0, 1, "[fade_out_channel] $delay ms for $fading_channels channel(s)" ); is( SDL::Mixer::Channels::fading_channel($playing_channel), MIX_FADING_OUT, "[fading_channel] channel $playing_channel is fading out" ); ok( $delay, 'delay definedness madness test #2' ); SDL::delay($delay); ok( $delay, 'delay definedness madness test #3' ); $playing_channel = SDL::Mixer::Channels::fade_in_channel( -1, $sample_chunk, 0, $delay ); ok( $delay, 'delay definedness madness test #4' ); isnt( $playing_channel, -1, "[fade_in_channel] $delay ms for channel $playing_channel" ); is( SDL::Mixer::Channels::fading_channel($playing_channel), MIX_FADING_IN, "[fading_channel] channel $playing_channel is fading in" ); ok( $delay, 'delay definedness madness test #5' ); SDL::delay($delay); ok( $delay, 'delay definedness madness test #6' ); SDL::Mixer::Channels::pause(-1); pass '[pause] ran'; is( SDL::Mixer::Channels::paused($playing_channel), 1, "[paused] channel $playing_channel is paused" ); SDL::delay( $delay / 4 ); ok( $delay, 'delay definedness madness test #7' ); SDL::Mixer::Channels::resume(-1); pass '[resume] ran'; SDL::delay($delay); ok( $delay, 'delay definedness madness test #8' ); is( SDL::Mixer::Channels::halt_channel($playing_channel), 0, "[halt_channel] stop channel $playing_channel" ); is( SDL::Mixer::Channels::playing($playing_channel), 0, "[playing] channel $playing_channel is not playing" ); SDL::delay($delay); ok( $delay, 'delay definedness madness test #9' ); $playing_channel = SDL::Mixer::Channels::play_channel_timed( -1, $sample_chunk, 0, $delay ); ok( $delay, 'delay definedness madness test #10' ); isnt( $playing_channel, -1, "[play_channel_timed] play $delay ms for channel $playing_channel" ); SDL::delay( $delay / 4 ); ok( $delay, 'delay definedness madness test #11' ); my $expire_channel = SDL::Mixer::Channels::expire_channel( $playing_channel, $delay ); ok( $delay, 'delay definedness madness test #12' ); is( $expire_channel > 0, 1, "[expire_channel] stops after $delay ms for $expire_channel channel(s)" ); SDL::delay($delay); ok( $delay, 'delay definedness madness test #13' ); $playing_channel = SDL::Mixer::Channels::fade_in_channel_timed( -1, $sample_chunk, 0, $delay, $delay * 2 ); ok( $delay, 'delay definedness madness test #14' ); isnt( $playing_channel, -1, "[fade_in_channel_timed] play " . ( $delay * 2 ) . " ms after $delay ms fade in for channel $playing_channel" ); isa_ok( SDL::Mixer::Channels::get_chunk($playing_channel), 'SDL::Mixer::MixChunk', '[get_chunk]' ); SDL::delay(1000); ok( $delay, 'delay definedness madness test #15' ); SDL::Mixer::close_audio(); pass '[close_audio] ran'; SKIP: { skip( 'No callbacks unless SDL_RELEASE_TESTING', 1 ) unless $ENV{'SDL_RELEASE_TESTING'}; is( $finished > 0, 1, '[callback_finished] called the callback got ' . $finished ); } if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } sleep(1); done_testing(); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer_effects.t�������������������������������������������������������������������������000444��000765��000024�� 14072�11760240073� 15704� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use warnings; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } require threads; require threads::shared; use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Effects; use SDL::Mixer::Samples; my $can_open = SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ); unless($can_open == 0) { plan( skip_all => 'Cannot open audio :'.SDL::get_error() ); } is( $can_open , 0, '[open_audio] ran' ); my $delay = 500; my $audio_test_file = 'test/data/silence.wav'; SDL::Mixer::Channels::volume( -1, 1 ); if ( $ENV{'SDL_RELEASE_TESTING'} ) { SDL::Mixer::Channels::volume( -1, 20 ); $delay = 1000; $audio_test_file = 'test/data/sample.wav'; } my $effect_func_called : shared = 0; my $effect_done_called : shared = 0; my @last_stream = (); sub echo_effect_func { my $channel = shift; my $samples = shift; my $position = shift; my @stream = @_; $effect_func_called++; printf( "[effect_func] callback: channel=%2s, position=%8s, samples=%6s\n", $channel, $position, scalar(@stream) ); my @stream2 = @stream; my $offset = $samples / 2; for ( my $i = 0; $i < $samples; $i += 2 ) { if ( $i < $offset ) { if ( scalar(@last_stream) == $samples ) { $stream2[$i] = $stream[$i] * 0.6 + $last_stream[ $samples + $i - $offset ] * 0.4; # left $stream2[ $i + 1 ] = $stream[ $i + 1 ] * 0.6 + $last_stream[ $samples + $i - $offset + 1 ] * 0.4; # right } } else { $stream2[$i] = $stream[$i] * 0.6 + $stream[ $i - $offset ] * 0.4; # left $stream2[ $i + 1 ] = $stream[ $i + 1 ] * 0.6 + $stream[ $i - $offset + 1 ] * 0.4; # right } } @last_stream = @stream; push( @stream2, $position + $samples ); return @stream2; } sub echo_effect_func2 { my $channel = shift; my $samples = shift; my $position = shift; my @stream = @_; $effect_func_called++; printf( "[effect_func2] callback: channel=%2s, position=%8s, samples=%6s\n", $channel, $position, scalar(@stream) ); push( @stream, $position + $samples ); return @stream; } sub effect_done2 { printf("[effect_done2] called\n"); $effect_done_called++; } sub effect_done { printf("[effect_done] called\n"); $effect_done_called++; } my $sample_chunk = SDL::Mixer::Samples::load_WAV($audio_test_file); my $playing_channel = SDL::Mixer::Channels::play_channel( -1, $sample_chunk, -1 ); is( $playing_channel >= 0, 1, "[play_channel] playing $audio_test_file" ); SDL::delay($delay); my $effect_id = SDL::Mixer::Effects::register( $playing_channel, "main::echo_effect_func2", "main::effect_done2", 0 ); isnt( $effect_id, -1, '[register] registerering echo effect callback' ); SDL::delay($delay); my $check = SDL::Mixer::Effects::unregister( $playing_channel, $effect_id ); isnt( $check, 0, '[unregister] unregistering effect_func will call effect_done' ); SDL::delay(200); is( $effect_func_called > 0, 1, "[effect_func] called $effect_func_called times" ); is( $effect_done_called > 0, 1, "[effect_done] called $effect_done_called times" ); SDL::delay($delay); $effect_func_called = 0; $effect_done_called = 0; $effect_id = SDL::Mixer::Effects::register( $playing_channel, "main::echo_effect_func2", "main::effect_done2", 0 ); isnt( $effect_id, -1, '[register] registerering echo effect callback' ); SDL::delay($delay); $check = SDL::Mixer::Effects::unregister( $playing_channel, $effect_id ); isnt( $check, 0, '[unregister] unregistering effect_func will call effect_done' ); SDL::delay(200); is( $effect_func_called > 0, 1, "[effect_func] called $effect_func_called times" ); is( $effect_done_called > 0, 1, "[effect_done] called $effect_done_called times" ); $effect_func_called = 0; $effect_done_called = 0; my $effect_id_all = SDL::Mixer::Effects::register( MIX_CHANNEL_POST, "main::echo_effect_func", "main::effect_done", 0 ); isnt( $effect_id_all, -1, '[register] registerering echo effect callback' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::unregister_all(MIX_CHANNEL_POST), 0, '[unregister_all] unregistering all will call effect_done' ); SDL::delay(200); is( $effect_func_called > 0, 1, "[effect_func] called $effect_func_called times" ); is( $effect_done_called > 0, 1, "[effect_done] called $effect_done_called times" ); $effect_func_called = 0; is( SDL::Mixer::Effects::set_post_mix( "main::echo_effect_func", 0 ), undef, '[set_post_mix] registering echo effect callback' ); SDL::delay($delay); is( SDL::Mixer::Effects::set_post_mix(), undef, '[set_post_mix] unregistering echo effect callback' ); SDL::delay(200); is( $effect_func_called > 0, 1, "[effect_func] called $effect_func_called times" ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_panning( $playing_channel, 128, 255 ), 0, '[set_panning] 50% left, 100% right' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_position( $playing_channel, 225, 80 ), 0, '[set_position] left-behind, 33% away' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_distance( $playing_channel, 160 ), 0, '[set_distance] 66% away' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_position( $playing_channel, 0, 0 ), 0, '[set_position] front, 0% away' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_reverse_stereo( $playing_channel, 1 ), 0, '[set_reverse_stereo] on' ); SDL::delay($delay); isnt( SDL::Mixer::Effects::set_reverse_stereo( $playing_channel, 0 ), 0, '[set_reverse_stereo] off' ); SDL::delay($delay); SDL::Mixer::close_audio(); pass '[close_audio] ran'; if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer_groups.t��������������������������������������������������������������������������000444��000765��000024�� 6767�11760240072� 15577� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Groups; use SDL::Mixer::Samples; my $can_open = SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ); unless($can_open == 0) { plan( skip_all => 'Cannot open audio :'.SDL::get_error() ); } is( $can_open , 0, '[open_audio] ran' ); is( SDL::Mixer::Channels::allocate_channels(8), 8, "[allocate_channels] 8 channels allocated" ); is( SDL::Mixer::Groups::reserve_channels(4), 4, "[reserve_channels] 4 channels reserved" ); my $delay = 100; my $audio_test_file = 'test/data/silence.wav'; if ( $ENV{'SDL_RELEASE_TESTING'} ) { SDL::Mixer::Channels::volume( -1, 10 ); is( SDL::Mixer::Channels::volume( -1, 20 ), 10, "[volume] set to 20, previously was 10" ); $delay = 2000; $audio_test_file = 'test/data/sample.wav'; } else { SDL::Mixer::Channels::volume( -1, 10 ); is( SDL::Mixer::Channels::volume( -1, 1 ), 10, "[volume] set to 1, previously was 10" ); } my $sample_chunk = SDL::Mixer::Samples::load_WAV($audio_test_file); my $playing_channel = SDL::Mixer::Channels::play_channel( -1, $sample_chunk, -1 ); is( $playing_channel > 3, 1, "[play_channel] plays on channel $playing_channel" ); SDL::Mixer::Channels::halt_channel(-1); is( SDL::Mixer::Groups::group_channel( 0, 0 ), 1, "[group_channel] channel 0 to group 0" ); is( SDL::Mixer::Groups::group_channels( 1, 3, 1 ), 3, "[group_channels] channel 1-3 to group 1" ); is( SDL::Mixer::Groups::group_channel( 3, -1 ), 1, "[group_channel] channel 0 ungrouped" ); is( SDL::Mixer::Groups::group_channels( 3, 3, 2 ), 1, "[group_channels] channel 3-3 to group 2" ); is( SDL::Mixer::Groups::group_count(0), 1, "[group_count] for group 0 is 1" ); is( SDL::Mixer::Groups::group_count(1), 2, "[group_count] for group 1 is 2" ); is( SDL::Mixer::Groups::group_count(2), 1, "[group_count] for group 2 is 1" ); is( SDL::Mixer::Groups::group_available(0), 0, "[group_available] first channel for group 0 is 0" ); is( SDL::Mixer::Groups::group_available(1), 1, "[group_available] first channel for group 1 is 1" ); is( SDL::Mixer::Groups::group_available(2), 3, "[group_available] first channel for group 2 is 3" ); is( SDL::Mixer::Groups::group_oldest(1), -1, "[group_oldest] group 1 does not play something" ); SDL::Mixer::Channels::play_channel( 2, $sample_chunk, -1 ); SDL::delay( $delay / 4 ); SDL::Mixer::Channels::play_channel( 1, $sample_chunk, -1 ); SDL::delay(100); is( SDL::Mixer::Groups::group_oldest(1), 2, "[group_oldest] channel 2 started first" ); is( SDL::Mixer::Groups::group_newer(1), 1, "[group_newer] channel 1 started at last" ); SDL::delay(100); is( SDL::Mixer::Groups::fade_out_group( 1, $delay * 2 ), 2, "[fade_out_group] $delay ms for group 1" ); SDL::delay($delay); is( SDL::Mixer::Groups::halt_group(1), 0, "[halt_group] group 1 halted" ); SDL::Mixer::close_audio(); pass '[close_audio] ran'; if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ���������SDL-2.540/t/mixer_mixchunk.t������������������������������������������������������������������������000444��000765��000024�� 2564�11760240073� 16076� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use strict; use warnings; use SDL; use SDL::Config; use SDL::Mixer; use SDL::Mixer::Channels; use SDL::Mixer::Samples; use SDL::Mixer::MixChunk; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } else { plan( tests => 6 ); } } is( SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ), 0, 'open_audio passed' ); my $mix_chunk = SDL::Mixer::Samples::load_WAV('test/data/sample.wav'); isa_ok( $mix_chunk, 'SDL::Mixer::MixChunk' ); is( $mix_chunk->volume, 128, 'Default volume is 128' ); $mix_chunk->volume(100); is( $mix_chunk->volume, 100, 'Can change volume to 100' ); is( $mix_chunk->alen, 1926848, 'Alen is 1926848' ); SDL::Mixer::Channels::play_channel( -1, $mix_chunk, 0 ); # we close straight away so no audio is actually played SDL::Mixer::close_audio(); ok( 1, 'Got to the end' ); if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } sleep(2); ��������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer_mixmusic.t������������������������������������������������������������������������000444��000765��000024�� 2464�11760240072� 16104� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } else { plan( tests => 6 ); } } use_ok('SDL::Mixer'); use_ok('SDL::Mixer::Music'); use_ok('SDL::Mixer::MixMusic'); is( SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ), 0, 'open_audio passed' ); my $mix_music = SDL::Mixer::Music::load_MUS('test/data/tribe_i.wav') ; # from Matthew Newman, http://opengameart.org/content/vocal-grunts-tribeiwav #warn 'Error:'. SDL::get_error() if (!$mix_music); { # I'm not sure why this fails isa_ok( $mix_music, 'SDL::Mixer::MixMusic' ); }; SDL::Mixer::Music::play_music( $mix_music, 0 ); # we close straight away so no audio is actually played SDL::Mixer::close_audio(); ok( 1, 'Got to the end' ); if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } sleep(2); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer_music.t���������������������������������������������������������������������������000444��000765��000024�� 13271�11760240073� 15405� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use SDL; use SDL::Config; require threads; require threads::shared; use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } use SDL::Mixer; use SDL::Mixer::Music; use SDL::Mixer::Samples; use SDL::RWOps; use SDL::Version; my $v = SDL::Mixer::linked_version(); is( SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ), 0, '[open_audio] ran' ); my $finished : shared = 0; my $mix_func_called : shared = 0; sub mix_func { my $position = shift; # position my $length = shift; # length of bytes we have to put in stream my @stream = ''; $mix_func_called++; # printf("[hook_music] callback: position=%8s, stream length=%6s\n", $position, $length); for ( my $i = 0; $i < $length; $i++ ) { push( @stream, ( ( $i + $position ) & 0xFF ) ); } return @stream; } my $delay = 100; my $audio_test_file = 'test/data/silence.wav'; my $volume1 = 2; my $volume2 = 1; if ( $ENV{'SDL_RELEASE_TESTING'} ) { $delay = 2000; $audio_test_file = 'test/data/sample.wav'; $volume1 = 20; $volume2 = 10; } SDL::Mixer::Music::volume_music($volume1); is( SDL::Mixer::Music::volume_music($volume2), $volume1, "[volume_music] was $volume1, now set to $volume2" ); sub callback { # printf("[hook_music_finished] callback called\n", shift); $finished++; } SKIP: { skip( 'No sound unless SDL_RELEASE_TESTING', 5 ) unless $ENV{'SDL_RELEASE_TESTING'}; SDL::Mixer::Music::hook_music_finished('main::callback'); pass '[hook_music_finished] registered callback'; SDL::Mixer::Music::hook_music( 'main::mix_func', 0 ); pass '[hook_music] registered custom music player'; is( SDL::Mixer::Music::get_music_hook_data(), 0, "[get_music_hook_data] should return 0" ); SDL::delay(1000); SDL::Mixer::Music::hook_music(); pass '[hook_music] unregistered custom music player'; SDL::delay($delay); is( $mix_func_called > 0, 1, "[hook_music] called $mix_func_called times" ); } my $sample_music = SDL::Mixer::Music::load_MUS($audio_test_file); isa_ok( $sample_music, 'SDL::Mixer::MixMusic', '[load_MUS]' ); is( SDL::Mixer::Music::play_music( $sample_music, 0 ), 0, "[play_music] plays $audio_test_file" ); SKIP: { skip( 'Version 1.2.7 needed', 2 ) if $v < 1.2.7; my $rw = SDL::RWOps->new_file( $audio_test_file, "rb" ); my $sample_music_rw = SDL::Mixer::Music::load_MUS_RW( $rw ); isa_ok( $sample_music_rw, 'SDL::Mixer::MixMusic', '[load_MUS_RW]' ); is( SDL::Mixer::Music::play_music( $sample_music_rw, 0 ), 0, "[play_music_rw] plays $audio_test_file" ); } SKIP: { skip( 'Version 1.2.9 needed', 2 ) if $v < 1.2.9; my $num_decoders = SDL::Mixer::Music::get_num_music_decoders(); is( $num_decoders >= 0, 1, "[get_num_music_decoders] $num_decoders decoders available" ); my $decoder = SDL::Mixer::Music::get_music_decoder(0); isnt( $decoder, undef, "[get_music_decoder] got $decoder" ); } SDL::delay($delay); is( SDL::Mixer::Music::playing_music(), 1, "[playing_music] music is playing" ); is( SDL::Mixer::Music::get_music_type($sample_music), MUS_WAV, "[get_music_type] $audio_test_file is MUS_WAV" ); is( SDL::Mixer::Music::get_music_type(), MUS_WAV, "[get_music_type] currently playing MUS_WAV" ); SDL::delay($delay); is( SDL::Mixer::Music::pause_music(), undef, "[pause_music] ran" ); is( SDL::Mixer::Music::paused_music(), 1, "[paused_music] music is paused" ); SDL::delay($delay); is( SDL::Mixer::Music::resume_music(), undef, "[resume_music] ran" ); is( SDL::Mixer::Music::playing_music(), 1, "[paused_music] music is playing" ); is( SDL::Mixer::Music::fading_music(), MIX_NO_FADING, "[fading_music] music is not fading" ); is( SDL::Mixer::Music::rewind_music(), undef, "[rewind_music] ran" ); SDL::delay($delay); is( SDL::Mixer::Music::fade_out_music(2000), 1, "[fade_out_music] $delay ms" ); is( SDL::Mixer::Music::fading_music(), MIX_FADING_OUT, "[fading_music] music is fading out" ); SDL::delay(3000); is( SDL::Mixer::Music::halt_music(), 0, '[halt_music]' ); is( SDL::Mixer::Music::set_music_cmd("mpeg123 -q"), 0, '[set_music_cmd] we can specify an external player' ); is( SDL::Mixer::Music::set_music_cmd(), 0, '[set_music_cmd] return to the internal player' ); is( SDL::Mixer::Music::fade_in_music( $sample_music, 0, 2000 ), 0, "[fade_in_music] $delay ms" ); SDL::delay(100); is( SDL::Mixer::Music::fading_music(), MIX_FADING_IN, "[fading_music] music is fading in" ); is( SDL::Mixer::Music::halt_music(), 0, '[halt_music]' ); SKIP: { skip( 'We need an MOD/OGG/MP3 for positioning', 2 ) unless $audio_test_file =~ /\.(ogg|mod|mp3)$/; is( SDL::Mixer::Music::fade_in_music_pos( $sample_music, 0, 2000, 2.5 ), 0, "[fade_in_music_pos] $delay ms, beginning at 2.5 ms" ); is( SDL::Mixer::Music::set_music_position(2.5), 0, "[set_music_position] skipping 2.5 ms" ); SDL::Mixer::Music::halt_music(); } SKIP: { skip( 'No sound unless SDL_RELEASE_TESTING', 2 ) unless $ENV{'SDL_RELEASE_TESTING'}; is( $finished > 0, 1, "[hook_music_finished] called the callback $finished times" ); SDL::Mixer::Music::hook_music_finished(); pass '[hook_music_finished] unregistered callback'; } SDL::delay($delay); SDL::Mixer::close_audio(); pass '[close_audio] ran'; if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/mixer_samples.t�������������������������������������������������������������������������000444��000765��000024�� 5102�11760240073� 15703� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } #SDL_init(SDL_INIT_AUDIO) + Version bootstrap conflict prevention in windows # # To reproduce this bug do # # use SDL; use SDL::Version; SDL::init(SDL_INIT_AUDIO); use SDL::Mixer; use SDL::Mixer::MixChunk; use SDL::Mixer::Samples; use SDL::Mixer::Channels; use SDL::RWOps; use SDL::Version; my @done = qw/ get_num_chunk_decoders get_chunk_decoder load_WAV volume_chunk load_WAV_RW /; my @left = qw/ quick_load_WAV quick_load_RAW /; my $can_open = SDL::Mixer::open_audio( 44100, SDL::Audio::AUDIO_S16SYS, 2, 4096 ); unless($can_open == 0) { plan( skip_all => 'Cannot open audio :'.SDL::get_error() ); }my $version = SDL::Mixer::linked_version(); printf( "got version: %d.%d.%d\n", $version->major, $version->minor, $version->patch ); SKIP: { skip 'Need version 1.2.10', 2 if $version < 1.2.10; is( SDL::Mixer::Samples::get_num_chunk_decoders() >= 0, 1, '[get_num_chunk_decoders] passed' ); my $stream = SDL::Mixer::Samples::get_chunk_decoder(0); is( defined $stream, 1, "[get_chunk_decoder] found decoder $stream" ); } my $sample_chunk = SDL::Mixer::Samples::load_WAV('test/data/sample.wav'); isa_ok( $sample_chunk, 'SDL::Mixer::MixChunk', '[load_WAV]' ); is( SDL::Mixer::Samples::volume_chunk( $sample_chunk, 120 ), 128, '[volume_chunk] was at max 128 volume on start' ); is( SDL::Mixer::Samples::volume_chunk( $sample_chunk, 10 ), 120, '[volume_chunk] is now at 120 volume' ); my $file = SDL::RWOps->new_file( 'test/data/sample.wav', 'r' ); isa_ok( $file, 'SDL::RWOps', '[new_file]' ); isa_ok( SDL::Mixer::Samples::load_WAV_RW( $file, 0 ), 'SDL::Mixer::MixChunk', '[load_WAV_RW]' ); my $why = '[Percentage Completion] ' . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) ) . "\% implementation. " . ( $#done + 1 ) . " / " . ( $#done + $#left + 2 ); TODO: { local $TODO = $why; fail "Not Implmented SDL::Mixer::*::$_" foreach (@left); } print "$why\n"; pass 'Checking for segfaults'; if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/pango.t���������������������������������������������������������������������������������000444��000765��000024�� 6276�11760240073� 14154� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; use SDL::Color; use SDL::Surface; use SDL::Overlay; use SDL::Rect; use SDL::Video; use SDL::PixelFormat; BEGIN { use Test::More; use lib 't/lib'; use SDL::TestTool; if ( !SDL::Config->has('SDL_Pango') ) { plan( skip_all => 'SDL_Pango support not compiled' ); } } use SDL::Pango; use SDL::Pango::Context; use SDL::Version; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; is( SDL::Pango::was_init(), 0, "[was_init] returns false" ); is( SDL::Pango::init(), 0, "[init] succeeded" ); isnt( SDL::Pango::was_init(), 0, "[was_init] returns true" ); my $context = SDL::Pango::Context->new; isa_ok( $context, 'SDL::Pango::Context', "[new SDL::Pango::Context]" ); my $text = 'Hi <b><span foreground="red"><i>k</i></span>thakore</b> its me, <u>Pango</u>!!'; SDL::Pango::set_default_color( $context, 0xA7C344FF, 0 ); pass "[set_default_color] ran"; SDL::Pango::set_default_color( $context, 0xA7, 0xC3, 0x44, 0xFF, 0, 0, 0, 0x00 ); pass "[set_default_color] ran"; SDL::Pango::set_minimum_size( $context, 640, 0 ); pass "[set_minimum_size] ran"; SDL::Pango::set_text( $context, $text, 20 ); pass "[set_text] ran"; SDL::Pango::set_markup( $context, $text, -1 ); pass "[set_markup] ran"; my $w = SDL::Pango::get_layout_width($context); ok( $w >= 0, "[get_layout_width] width is $w" ); my $h = SDL::Pango::get_layout_height($context); ok( $h >= 0, "[get_layout_height] height is $h" ); is( SDLPANGO_DIRECTION_LTR, 0, "constant: SDLPANGO_DIRECTION_LTR" ); is( SDLPANGO_DIRECTION_RTL, 1, "constant: SDLPANGO_DIRECTION_RTL" ); is( SDLPANGO_DIRECTION_WEAK_LTR, 2, "constant: SDLPANGO_DIRECTION_WEAK_LTR" ); is( SDLPANGO_DIRECTION_WEAK_RTL, 3, "constant: SDLPANGO_DIRECTION_WEAK_RTL" ); is( SDLPANGO_DIRECTION_NEUTRAL, 4, "constant: SDLPANGO_DIRECTION_NEUTRAL" ); SDL::Pango::set_base_direction( $context, SDLPANGO_DIRECTION_LTR ); pass "[set_base_direction] to SDLPANGO_DIRECTION_LTR"; SDL::Pango::set_dpi( $context, 48, 48 ); pass "[set_dpi] to x=48 and y=48"; SDL::Pango::set_language( $context, "en" ); pass "[set_language] to 'en'"; SKIP: { skip( 'We need video support for this', 2 ) unless SDL::TestTool->init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); SDL::Pango::draw( $context, $display, ( 640 - $w ) / 2, ( 480 - $h ) / 2 ); pass "[draw] ran"; my $bg = SDL::Video::map_RGB( $display->format, 0x12, 0x22, 0x45 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, 640, 480 ), $bg ); SDL::Pango::set_surface_create_args( $context, SDL_SWSURFACE, 32, 255 << 24, 255 << 16, 255 << 8, 255 ); pass "[set_surface_create_args] ran"; my $surface = SDL::Pango::create_surface_draw($context); isa_ok( $surface, 'SDL::Surface', "[create_surface_draw]" ); SDL::Video::blit_surface( $surface, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( ( 640 - $w ) / 2, ( 480 - $h ) / 2, $w, $h ) ); SDL::Video::update_rect( $display, 0, 0, 0, 0 ); SDL::delay(2000); } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Are we still alive? Checking for segfaults'; done_testing; sleep(1); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlgamerect.t���������������������������������������������������������������������������000444��000765��000024�� 12463�11760240072� 15354� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use Test::More tests => 87; use strict; use SDL; use_ok('SDLx::Rect'); can_ok( 'SDLx::Rect', qw/ new x y width height w h top left centerx centery / ); my $rect = SDLx::Rect->new( 0, 0, 0, 0 ); isa_ok( $rect, 'SDLx::Rect', 'new went ok' ); foreach my $attr ( qw(x y top left width height w h bottom right centerx centery) ) { is( $rect->$attr, 0, "$attr is 0" ); } # set and get at the same time (and testing method aliases) is( $rect->left(15), 15, 'left is now 15' ); is( $rect->x, 15, 'x and left point to the same place' ); is( $rect->x(12), 12, 'x is now 12' ); is( $rect->left, 12, 'left is an alias to x' ); is( $rect->top(132), 132, 'top is now 132' ); is( $rect->y, 132, 'y and top point to the same place' ); is( $rect->y(123), 123, 'y is now 123' ); is( $rect->top, 123, 'top is an alias to y' ); is( $rect->w(54), 54, 'w is now 54' ); is( $rect->width, 54, 'w and width point to the same place' ); is( $rect->width(45), 45, 'w is now 45' ); is( $rect->w, 45, 'w is an alias to width' ); is( $rect->h(76), 76, 'h is now 76' ); is( $rect->height, 76, 'h and height point to the same place' ); is( $rect->height(67), 67, 'h is now 67' ); is( $rect->h, 67, 'h is an alias to height' ); # get alone is( $rect->x(), 12, 'x is 12' ); is( $rect->left(), 12, 'left is 12' ); is( $rect->y(), 123, 'y is 123' ); is( $rect->top(), 123, 'top is 123' ); is( $rect->width(), 45, 'width is 45' ); is( $rect->w(), 45, 'w is 45' ); is( $rect->height(), 67, 'height is 67' ); is( $rect->h(), 67, 'h is 67' ); # other helpers is( $rect->bottom, 190, 'bottom should be relative to heigth and top' ); is( $rect->bottom(189), 189, 'changing bottom value' ); is( $rect->bottom, 189, 'checking bottom value again' ); is( $rect->top, 122, 'top value should have been updated after bottom change' ); is( $rect->height, 67, 'height should have stayed the same' ); is( $rect->centery, 155, 'checking vertical center' ); is( $rect->centery(154), 154, 'changing centery value' ); is( $rect->centery, 154, 'checking centery value again' ); is( $rect->top, 121, 'top value should have been updated after centery change' ); is( $rect->height, 67, 'height should have stayed the same' ); is( $rect->right, 57, 'right should be relative to width and left' ); is( $rect->right(56), 56, 'changing right value' ); is( $rect->right, 56, 'checking right value again' ); is( $rect->left, 11, 'left value should have been updated after bottom change' ); is( $rect->width, 45, 'width should have stayed the same' ); is( $rect->centerx, 33, 'checking horizontal center' ); is( $rect->centerx(32), 32, 'changing centerx value' ); is( $rect->centerx, 32, 'checking centerx value again' ); is( $rect->left, 10, 'left value should have been updated after bottom change' ); is( $rect->width, 45, 'width should have stayed the same' ); # checking two-valued accessors can_ok( 'SDLx::Rect', qw/ size center topleft midleft bottomleft topright midright bottomright midtop midbottom / ); is_deeply( [ $rect->center ], [ 32, 154 ], 'checking center pair' ); $rect->center( undef, undef ); is( $rect->centerx, 32, 'center() does nothing when passed undef' ); is( $rect->centery, 154, 'center() does nothing when passed undef' ); $rect->center( undef, 200 ); is( $rect->centerx, 32, 'center() does nothing for X when passed undef' ); is( $rect->centery, 200, 'center() works on one-parameter (y)' ); $rect->center( 7, undef ); is( $rect->centerx, 7, 'center() works on one-parameter (x)' ); is( $rect->centery, 200, 'center() does nothing for Y when passed undef' ); $rect->center( 32, 154 ); is( $rect->centerx, 32, 'center() can be used as an acessor for x' ); is( $rect->centery, 154, 'center() can be used as an acessor for y' ); is_deeply( [ $rect->topleft ], [ 121, 10 ], 'checking topleft pair' ); $rect->topleft( undef, undef ); is( $rect->top, 121, 'topleft() does nothing when passed undef' ); is( $rect->left, 10, 'topleft() does nothing when passed undef' ); $rect->topleft( undef, 200 ); is( $rect->top, 121, 'topleft() does nothing for Y when passed undef' ); is( $rect->left, 200, 'topleft() works on one-parameter (x)' ); $rect->topleft( 7, undef ); is( $rect->top, 7, 'topleft() works on one-parameter (y)' ); is( $rect->left, 200, 'topleft() does nothing for X when passed undef' ); $rect->topleft( 121, 10 ); is( $rect->top, 121, 'topleft() can be used as an acessor for y' ); is( $rect->left, 10, 'topleft() can be used as an acessor for x' ); is_deeply( [ $rect->midleft ], [ 154, 10 ], 'checking midleft pair' ); $rect->midleft( undef, undef ); is( $rect->centery, 154, 'midleft() does nothing when passed undef' ); is( $rect->left, 10, 'midleft() does nothing when passed undef' ); $rect->midleft( undef, 200 ); is( $rect->centery, 154, 'midleft() does nothing for Y when passed undef' ); is( $rect->left, 200, 'midleft() works on one-parameter (x)' ); $rect->midleft( 7, undef ); is( $rect->centery, 7, 'midleft() works on one-parameter (y)' ); is( $rect->left, 200, 'midleft() does nothing for X when passed undef' ); $rect->midleft( 154, 10 ); is( $rect->centery, 154, 'midleft() can be used as an acessor for y' ); is( $rect->left, 10, 'midleft() can be used as an acessor for x' ); sleep(2); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_app.t������������������������������������������������������������������������������000444��000765��000024�� 2600�11760240073� 14645� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w # basic testing of SDLx::App use strict; use SDL; use SDL::Config; use SDL::Rect; use SDLx::Rect; use SDL::Color; use SDL::Video; use Test::More; use lib 't/lib'; use SDL::TestTool; plan( tests => 2 ); use SDLx::App; can_ok( 'SDLx::App', qw/ new resize title delay ticks error warp fullscreen iconify grab_input sync attribute / ); my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; SKIP: { skip 'No Video', 1 unless SDL::TestTool->init(SDL_INIT_VIDEO); my $app = SDLx::App->new( title => "Test", width => 640, height => 480, init => SDL_INIT_VIDEO ); my $rect = SDL::Rect->new( 0, 0, $app->w, $app->h ); my $pixel_format = $app->format; my $blue_pixel = SDL::Video::map_RGB( $pixel_format, 0x00, 0x00, 0xff ); my $col_pixel = SDL::Video::map_RGB( $pixel_format, 0xf0, 0x00, 0x33 ); my $grect = SDLx::Rect->new( 10, 10, 30, 35 ); foreach ( 0 .. 80 ) { $grect->x($_); $grect->centery( $_ * 3 ); $grect->size( ( $_ / 40 ) * $_, ( $_ / 38 ) * $_ ); SDL::Video::fill_rect( $app, $rect, $blue_pixel ); SDL::Video::fill_rect( $app, $grect, $col_pixel ); SDL::Video::update_rect( $app, 0, 0, 640, 480 ); SDL::delay(10); } SDL::delay(100); pass 'Ran'; } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } ��������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_controller.t�����������������������������������������������������������������������000444��000765��000024�� 11175�11760240073� 16277� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Config; use SDL::Video; use SDL::Color; use SDLx::Controller; use Scalar::Util 'refaddr'; use lib 't/lib'; use SDL::TestTool; can_ok( 'SDLx::Controller', qw( new run stop pause dt min_t current_time add_move_handler add_event_handler add_show_handler remove_move_handler remove_event_handler remove_show_handler remove_all_move_handlers remove_all_event_handlers remove_all_show_handlers move_handlers event_handlers show_handlers eoq exit_on_quit ) ); TODO: { local $TODO = 'methods not implemented yet'; can_ok( 'SDLx::Controller', qw( ) ); } my $app = SDLx::Controller->new; isa_ok( $app, 'SDLx::Controller', 'default controller can be spawned' ); is($app->dt, 0.1, 'default dt set to 0.1'); is($app->min_t, 1 / 60, 'default min_t set to 1/60' ); is($app->eoq, 0, 'no eoq by default'); is($app->exit_on_quit, 0, 'no exit_on_quit by default'); is( scalar @{ $app->move_handlers }, 0, 'no motion handlers by default' ); is( scalar @{ $app->show_handlers }, 0, 'no show handlers by default' ); is( scalar @{ $app->event_handlers }, 0, 'no event handlers by default' ); is( $app->exit_on_quit, 0, 'exit_on_quit is not set by default' ); is( $app->eoq, 0, 'eoq() is a method alias to exit_on_quit()' ); $app->exit_on_quit(1); is( scalar @{ $app->event_handlers }, 0, 'exit_on_quit does not trigger event handlers' ); is( $app->exit_on_quit, 1, 'exit_on_quit can be set dynamically' ); is( $app->eoq, 1, 'eoq() follows exit_on_quit()' ); $app->remove_all_event_handlers; is( $app->exit_on_quit, 1, 'exit_on_quit is not an event handler' ); is( $app->eoq, 1, 'eoq() still follows exit_on_quit()' ); $app->eoq(0); is( $app->eoq, 0, 'eoq can be set dynamically' ); is( $app->exit_on_quit, 0, 'exit_on_quit() follows eoq()' ); $app = SDLx::Controller->new( dt => 0.1, min_t => 0.5, ); isa_ok( $app, 'SDLx::Controller' ); is($app->dt, 0.1, 'new dt set to 0.1'); is($app->min_t, 0.5, 'new min_t set to 0.5' ); sub dummy_sub {1} sub dummy_sub2 {1} my @kinds = qw(move show); # SDL events need a video surface to work my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; push @kinds, 'event' if SDL::TestTool->init(SDL_INIT_VIDEO) and SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); foreach my $kind (@kinds) { my $method = "add_${kind}_handler"; my $index_1 = $app->$method( \&dummy_sub ); my $index_2 = $app->$method( \&dummy_sub2 ); is($index_1 , 0, "got index 0 from added $kind handler" ); is($index_2 , 1, "got index 0 from added $kind handler" ); $method = "${kind}_handlers"; is( scalar @{ $app->$method }, 2, "$kind handlers added" ); is( $app->$method->[0], \&dummy_sub, "$kind handler 0 added correctly" ); is( $app->$method->[1], \&dummy_sub2, "$kind handler 1 added correctly" ); $method = "remove_${kind}_handler"; $app->$method( \&dummy_sub ); $app->$method( $index_2 ); $method = "${kind}_handlers"; is( scalar @{ $app->$method }, 0, "$kind handlers removed correctly" ); } my $move_inc = 0; my $move_inc2 = 0; my $show_inc = 0; my $show_inc2 = 0; sub test_event { my ($event, $application) = @_; } sub test_move_first { cmp_ok($move_inc, '==', $move_inc2, 'test_move_first called first'); $move_inc++; } sub test_move { my ($part, $application, $t) = @_; ok(defined $part, 'got step value'); ok(defined $application, 'got our app (motion handler)'); ok(defined $t, 'got out time'); ok( do {$part > 0 and $part <= 1}, "move handle \$_[0] of $part was > 0 and <= 1" ); is(refaddr $application, refaddr $app, 'app and application are the same (motion handler)'); cmp_ok($move_inc, '>', $move_inc2, 'test_move called second'); $move_inc2++; } sub test_show_first { cmp_ok($show_inc, '==', $show_inc2, 'test_show_first called first'); $show_inc++; } sub test_show { my ($ticks, $application) = @_; ok(defined $ticks, 'got our ticks'); ok(defined $application, 'got our app (show handler)'); ok( $ticks >= 0.5, "show handle \$_[0] of $ticks was >= 0.5" ); is(refaddr $application, refaddr $app, 'app and application are the same (show handler)'); cmp_ok($show_inc, '>', $show_inc2, 'test_show called second'); $show_inc2++; if ($show_inc2 >= 30) { $application->stop(); } } $app->add_move_handler(\&test_move_first); $app->add_move_handler(\&test_move); $app->add_show_handler(\&test_show_first); $app->add_show_handler(\&test_show); $app->run(); cmp_ok($move_inc, '>=', 30, 'called our motion handlers at least 30 times'); is($show_inc, 30, 'called our show handlers exactly 30 times'); done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_controller_interface.t�������������������������������������������������������������000444��000765��000024�� 5560�11760240072� 20277� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDLx::App; use SDLx::Controller; use SDLx::Controller::State; use SDLx::Controller::Interface; use lib 't/lib'; use SDL::TestTool; use Data::Dumper; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy'; can_ok( 'SDLx::Controller::Interface', qw( new ) #meh, put the rest in later ); TODO: { local $TODO = 'methods not implemented yet'; can_ok( 'SDLx::Controller::Interface', qw( foo ) ); } my $obj = SDLx::Controller::Interface->new( x => 1, y => 2, v_x => 3, v_y => 4, rot => 5, ang_v => 6 ); isa_ok( $obj, 'SDLx::Controller::Interface' ); my $s = sub { pass 'ran accel'; return ( 0.0, 10, 19 ) }; $obj->set_acceleration($s); my $av = $obj->acceleration(1); isa_ok( $av, 'ARRAY' ); ## This is reversed, maybe we fix this ... or not because acceleration will #be called internal is( $av->[0], 19 ); is( $av->[1], 10 ); is( $av->[2], 0.0 ); my $hv = $obj->interpolate(0.5); isa_ok( $hv, 'SDLx::Controller::State', '[interpolate] provides state back out' ); is( $hv->x, 1 ); is( $hv->y, 2 ); is( $hv->rotation, 5 ); $obj->update( 2, 0.5 ); $hv = $obj->interpolate(0.5); isa_ok( $hv, 'SDLx::Controller::State', '[interpolate] provides state back out' ); is( $hv->x, 1.75 ); is( $hv->y, 3.625 ); is( $hv->rotation, 7.6875 ); $obj = SDLx::Controller::Interface->new( x => 1, y => 2, v_x => 3, v_y => 4, rot => 5, ang_v => 6 ); $obj->set_acceleration( sub { $_[1]->x(2); pass '[state] is mutable'; return ( 0.0, 10, 19 ) } ); $obj->acceleration(1); my $a = $obj->current; my $a_x = $a->x(); is( $a_x, 2, '[obj/state] acceleration callback copies state back to current' ); my $dummy = SDLx::App->new( init => SDL_INIT_VIDEO ); my $controller = SDLx::Controller->new( dt => 1, delay => 200 ); my $interface = SDLx::Controller::Interface->new(); my $event_called = 0; require SDL::Event; require SDL::Events; my $eve = SDL::Event->new(); SDL::Events::push_event($eve); my $counts = [ 0, 0, 0 ]; $controller->add_event_handler( sub { $counts->[0]++; return 0; } ); $interface->set_acceleration( sub { $controller->stop() if $counts->[0] && $counts->[1] && $counts->[2]; $counts->[1]++; isa_ok( $_[1], 'SDLx::Controller::State', '[Controller] called acceleration and gave us a state' ), return ( 10, 10, 10 ); } ); $interface->attach( $controller, sub { $counts->[2]++; isa_ok( $_[0], 'SDLx::Controller::State', '[Controller] called render and gave us a state' ); } ); $controller->run(); cmp_ok( $counts->[0], '>', 0, '$counts->[0] is >0' ); cmp_ok( $counts->[1], '>', 0, '$counts->[1] is >0' ); cmp_ok( $counts->[2], '>', 0, '$counts->[2] is >0' ); $interface->detach(); pass('Interface was able to deattach '); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_fps.t������������������������������������������������������������������������������000444��000765��000024�� 3254�11760240072� 14662� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Config; use SDL::Video; use SDLx::FPS; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } can_ok( 'SDLx::FPS', qw( new set get delay framecount rateticks lastticks rate ) ); my $_fps = 5; my $ticks_start = SDL::get_ticks(); my $fps = SDLx::FPS->new( fps => $_fps ); my $ticks_init = SDL::get_ticks(); isa_ok( $fps, 'SDLx::FPS' ); is( $fps->get, $_fps, 'fps->get' ); is( $fps->rate, $_fps, 'fps->rate' ); cmp_ok( $fps->lastticks, '>=', $ticks_start, 'fps->lastticks' ); cmp_ok( $fps->lastticks, '<=', $ticks_init, 'fps->lastticks' ); # rateticks is Uint32, so precision differs ok( $fps->rateticks - 1000 / $_fps < 0.000001, 'fps->rateticks' ); my $count = 10; for ( 1 .. $count ) { $fps->delay; } cmp_ok( $fps->framecount, '>', 0, 'fps->framecount' ); $_fps = 20; $fps->set($_fps); is( $fps->get, $_fps, 'fps->get after fps->set' ); my $ticks_pre_delay = SDL::get_ticks(); $fps->delay; my $ticks_post_delay = SDL::get_ticks(); cmp_ok( $fps->lastticks, '>=', $ticks_pre_delay, 'fps->lastticks after fps->delay' ); cmp_ok( $fps->lastticks, '<=', $ticks_post_delay, 'fps->lastticks after fps->delay' ); $fps = SDLx::FPS->new(); is( $fps->get, 30, 'fps->get default value' ); #reset the old video driver if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Final SegFault test'; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_layermanager.t���������������������������������������������������������������������000444��000765��000024�� 11642�11760240072� 16561� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Surface; use SDL::Rect; use SDLx::LayerManager; use SDLx::Layer; use SDLx::Surface; use SDLx::Sprite; use SDL::PixelFormat; use SDL::Video; use lib 't/lib'; use SDL::TestTool; use Data::Dumper; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my $display = SDL::Video::set_video_mode( 800, 600, 32, SDL_SWSURFACE ); my $surface = SDL::Video::load_BMP('test/data/picture.bmp'); ############# SDLx::Layer ########################################################### my $hash = { id => 7 }; my $layer = SDLx::Layer->new( $surface, 20, 40, 0, 5, 100, 120, $hash ); my $layer2 = SDLx::Layer->new( $surface, 60, 60 ); my $layer3 = SDLx::Layer->new( $surface, 60, 60, { aa => 'bb', bb => 'cc' } ); my $manager = SDLx::LayerManager->new(); isa_ok( $manager, 'SDLx::LayerManager', 'SDLx::LayerManager->new' ); is( $manager->length, 0, 'SDLx::LayerManager->length' ); $manager->add($layer); pass('SDLx::LayerManager->add'); $manager->add($layer2); pass('SDLx::LayerManager->add'); $manager->add($layer3); pass('SDLx::LayerManager->add'); $manager->add( SDLx::Layer->new( $surface, 120, 120, { aa => 'bb', bb => 'cc' } ) ); pass('SDLx::LayerManager->add'); isa_ok( $layer, 'SDLx::Layer', 'SDLx::Layer->new' ); is( $layer->x, 20, 'SDLx::Layer->x' ); is( $layer->y, 40, 'SDLx::Layer->y' ); is( $layer->w, 100, 'SDLx::Layer->w' ); is( $layer->h, 120, 'SDLx::Layer->h' ); isa_ok( $layer->surface, 'SDL::Surface', 'SDLx::Layer->surface' ); is( $layer->surface->w, 180, 'SDLx::Layer->surface->w' ); is( $layer->surface->h, 200, 'SDLx::Layer->surface->h' ); isa_ok( $layer->clip, 'SDL::Rect', 'SDLx::Layer->clip' ); is( $layer->clip->x, 0, 'SDLx::Layer->clip->x' ); is( $layer->clip->y, 5, 'SDLx::Layer->clip->y' ); is( $layer->clip->w, 100, 'SDLx::Layer->clip->w' ); is( $layer->clip->h, 120, 'SDLx::Layer->clip->h' ); isa_ok( $layer->pos, 'SDL::Rect', 'SDLx::Layer->pos' ); is( $layer->pos->x, 20, 'SDLx::Layer->pos->x' ); is( $layer->pos->y, 40, 'SDLx::Layer->pos->y' ); is( $layer->pos->w, 180, 'SDLx::Layer->pos->w' ); is( $layer->pos->h, 200, 'SDLx::Layer->pos->h' ); isa_ok( $layer->data, 'HASH', 'SDLx::Layer->data' ); is( $layer2->data, undef, 'SDLx::Layer->data' ); is( $layer->data->{id}, 7, 'SDLx::Layer->data->{}' ); is( $layer3->data->{bb}, 'cc', 'SDLx::Layer->data->{}' ); isa_ok( $layer->ahead, 'ARRAY', 'SDLx::Layer->ahead' ); isa_ok( $layer->ahead->[0], 'SDLx::Layer', 'SDLx::Layer->ahead->[]' ); is( $layer->ahead->[0]->x, 60, 'SDLx::Layer->ahead->[]->x' ); isa_ok( $layer3->behind, 'ARRAY', 'SDLx::Layer->behind' ); isa_ok( $layer3->behind->[1], 'SDLx::Layer', 'SDLx::Layer->behind->[]' ); is( $layer3->behind->[1]->h, 120, 'SDLx::Layer->behind->[]->h' ); ############ SDLx::LayerManager ##################################################### is( $manager->length, 4, 'SDLx::LayerManager->length' ); isa_ok( $manager->layer(0), 'SDLx::Layer', 'SDLx::LayerManager->layer' ); isa_ok( $manager->layer(1), 'SDLx::Layer', 'SDLx::LayerManager->layer' ); is( $manager->layer(4), undef, 'SDLx::LayerManager->layer' ); is( $manager->layer(-3), undef, 'SDLx::LayerManager->layer' ); is( $manager->layer(0)->h, 120, 'SDLx::LayerManager->layer->h' ); isa_ok( $manager->layer(0)->surface, 'SDL::Surface', 'SDLx::LayerManager->layer->surface' ); is( $manager->layer(0)->surface->w, 180, 'SDLx::LayerManager->layer->surface->w' ); is( $manager->by_position( 10, 30 ), undef, 'SDLx::LayerManager->by_position' ); isa_ok( $manager->by_position( 30, 50 ), 'SDLx::Layer', 'SDLx::LayerManager->by_position' ); is( $manager->by_position( 30, 50 )->index, 0, 'SDLx::LayerManager->by_position->index' ); is( $manager->by_position( 60, 60 )->index, 2, 'SDLx::LayerManager->by_position->index' ); is( $manager->by_position( 60, 60 )->data->{aa}, 'bb', 'SDLx::LayerManager->by_position->data->{}' ); isa_ok( $manager->ahead(0), 'ARRAY', 'SDLx::LayerManager->ahead' ); isa_ok( $manager->ahead(0)->[0], 'SDLx::Layer', 'SDLx::LayerManager->ahead->[]' ); is( $manager->ahead(0)->[0]->x, 60, 'SDLx::LayerManager->ahead->[]->x' ); isa_ok( $manager->behind(2), 'ARRAY', 'SDLx::LayerManager->behind' ); isa_ok( $manager->behind(2)->[1], 'SDLx::Layer', 'SDLx::LayerManager->behind->[]' ); is( $manager->behind(2)->[1]->h, 120, 'SDLx::LayerManager->behind->[]->h' ); isa_ok( $layer->foreground, 'SDLx::Layer', 'SDLx::Layer->foreground' ); isa_ok( $layer3->foreground, 'SDLx::Layer', 'SDLx::Layer->foreground' ); isa_ok( $layer2->foreground, 'SDLx::Layer', 'SDLx::Layer->foreground' ); $manager->blit($display); pass('SDLx::LayerManager->blit'); SDL::Video::update_rect( $display, 0, 0, 0, 0 ); sleep(2); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Final SegFault test'; done_testing; ����������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_music.t����������������������������������������������������������������������������000444��000765��000024�� 5526�11760240073� 15217� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use warnings; use SDL; use SDL::Config; my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } require threads; require threads::shared; use Test::More; use lib 't/lib'; use SDL::TestTool; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } use_ok( 'SDLx::Music', "Can load SDLx::Music" ); # Object Creation can_ok( 'SDLx::Music', 'new' ); my $music = SDLx::Music->new(); #my $music2 = SDLx::Music->new(); isa_ok( $music, "SDLx::Music" ); #isa_ok( $music2, "SDLx::Music" ); # Music Data defination can_ok( 'SDLx::Music', 'data' ); ## Simple ok( $music->data( silence => 'test/data/silence.wav' ) ); ## Long ok( $music->data( sample => { file => 'test/data/sample.wav', loops => 2, fade_in => 0.5, volume => 72 }, ) ); ## Check if stuff actually got loaded my $silence = $music->data('silence'); isa_ok( $silence, "SDLx::Music::Data"); isa_ok( $music->data('sample'), "SDLx::Music::Data"); is_deeply( $silence, $music->{data}->{silence}, "Silence is retreived correctly"); is_deeply( $music->data('sample'), $music->{data}->{sample}, "Sample is retreived correctly"); # Chained changes can_ok( 'SDLx::Music', 'playing'); $silence->volume(55)->loops(2)->file('test/data/silence.wav'); $music->play($silence); my $played; while( $music->playing ) { $played = 1 unless $played; } is( $played, 1, "Music played and atleast one" ); isa_ok( $music->{data}->{silence}->{_content}, "SDL::Mixer::MixMusic", "Didn't load data for play" ); can_ok( 'SDLx::Music', 'load' ); $music->load; isa_ok( $music->{data}->{sample}->{_content}, "SDL::Mixer::MixMusic" ); $music->play( $music->data('sample') ); $played = 0; while( $music->playing ) { $played = 1 unless $played; } is( $played, 1, "Music played and atleast one" ); is( $silence->{volume}, 55); # Clear the data can_ok ( 'SDLx::Music', 'clear' ); ok( $music->clear ); ## Check if we are actually clear is( $music->{data}, undef, "Is clear" ); # Check default call can_ok ( 'SDLx::Music', 'default' ); isa_ok( $music->default, "SDLx::Music::Default" ); $music->default->ext('.wav'); isa_ok( SDLx::Music->default, "SDLx::Music::Default" ); SDLx::Music->default->ext('.ogg'); is( $music->default->ext, '.wav' ); is( SDLx::Music->default->ext, '.ogg'); if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_rect.t�����������������������������������������������������������������������������000444��000765��000024�� 4012�11760240072� 15020� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use SDL; use SDL::Rect; use SDLx::Rect; use Test::More; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } can_ok( 'SDLx::Rect', qw/ width w height h left x top y bottom right centerx centery size topleft midleft bottomleft center topright midright bottomright midtop midbottom new copy duplicate move move_ip inflate inflate_ip clamp clamp_ip clip clip_ip union union_ip unionall unionall_ip fit fit_ip normalize contains collidepoint colliderect collidelist collidelistall collidehash collidehashall / ); my ($x, $y, $w, $h) = (0, 1, 2, 3); my $rect = SDLx::Rect->new($x, $y, $w, $h); ok($rect, 'new'); isa_ok($rect, 'SDLx::Rect'); is($rect->width, $w, 'get width'); is($rect->w, $w, 'get w'); is($rect->height, $h, 'get height'); is($rect->h, $h, 'get h'); is($rect->left, $x, 'get left'); is($rect->x, $x, 'get x'); is($rect->top, $y, 'get top'); is($rect->y, $y, 'get y'); is($rect->bottom, $y + $h, 'get bottom'); is($rect->right, $x + $w, 'get right'); my $copy = $rect->copy(); is($copy->w, $w, 'copy (w)'); is($copy->h, $h, 'copy (h)'); is($copy->x, $x, 'copy (x)'); is($copy->y, $y, 'copy (y)'); my ($dx, $dy) = (4, 5); my $moved = $rect->move($dx, $dy); is($moved->w, $w, 'move (w)'); is($moved->h, $h, 'move (h)'); is($moved->x, $x + $dx, 'move (x)'); is($moved->y, $y + $dy, 'move (y)'); my ($dw, $dh) = (6, 7); my $inflated = $rect->inflate($dw, $dh); is($inflated->w, $w + $dw, 'inflate (w)'); is($inflated->h, $h + $dh, 'inflate (h)'); is($inflated->x, $x - $dw / 2, 'inflate (x)'); is($inflated->y, $y - $dw / 2, 'inflate (y)'); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Final SegFault test'; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_sfont.t����������������������������������������������������������������������������000444��000765��000024�� 2525�11760240073� 15224� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Config; use SDL::Video; use SDL::Surface; use SDLx::SFont; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; my $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } can_ok( 'SDLx::SFont', qw( new ) ); #Make a surface #Select a font my $d = SDL::Surface->new( SDL_SWSURFACE, 100, 100, 32 ); my $font = SDLx::SFont->new( 'test/data/font.' . ( SDL::Config->has('png') ? 'png' : 'bmp' ) ); isa_ok( $font, 'SDL::Surface', '[new] makes surface' ); #print using $font SDLx::SFont::print_text( $d, 10, 10, 'Huh' ); pass('[print_test] worked'); $font->use(); pass('[use] switch font worked'); SDLx::SFont::print_text( $d, 10, 10, 'Huh' ); pass('[use|printe_text] switch to font and print worked'); END { done_testing; #reset the old video driver if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_sound.t����������������������������������������������������������������������������000444��000765��000024�� 3367�11760240073� 15230� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������# basic testing of SDLx::Sound my $audiodriver; BEGIN { use Config; if ( !$Config{'useithreads'} ) { print("1..0 # Skip: Perl not compiled with 'useithreads'\n"); exit(0); } use Test::More; use lib 't/lib'; use lib 'lib'; use SDL; use SDL::TestTool; use SDL::Config; use SDLx::Sound; $audiodriver = $ENV{SDL_AUDIODRIVER}; $ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) { plan( skip_all => 'Failed to init sound' ); } elsif ( !SDL::Config->has('SDL_mixer') ) { plan( skip_all => 'SDL_mixer support not compiled' ); } } my $fase2 = 0; # load # NOTE: use ok is tested in t/00-load.t so we can bail out # methods can_ok( 'SDLx::Sound', qw/ new load unload play stop loud fade / ); ok (my $snd = SDLx::Sound->new(), 'Can be instantiated'); ok (my $snd2 = SDLx::Sound->new(), 'Can be instantiated again'); isa_ok( $snd, 'SDLx::Sound', 'snd' ); isa_ok( $snd2, 'SDLx::Sound', 'snd2' ); # load and play a sound ok ($snd->play('test/data/sample.wav'), 'Can play a wav'); SKIP: { skip 'complex tests', 1 unless $fase2; # in a single act do the wole Sound ok( my $snd2 = SDLx::Sound->new( files => ( chanell_01 => "test/data/sample.wav", chanell_02 => "test/data/tribe_i.wav" ), loud => ( channel_01 => 80, channel_02 => 75 ), bangs => ( chanell_01 => 0, # start chanell_01 => 1256, # miliseconds chanell_02 => 2345 ), fade => ( chanell_02 => [2345, 3456, -20] ) )->play() ); } #diag( "Testing SDLx::Sound $SDLx::Sound::VERSION, Perl $], $^X" ); if ($audiodriver) { $ENV{SDL_AUDIODRIVER} = $audiodriver; } else { delete $ENV{SDL_AUDIODRIVER}; } done_testing(); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_sprite.t���������������������������������������������������������������������������000444��000765��000024�� 3612�11760240072� 15376� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Config; use SDL::Video; use SDL::Color; use SDLx::Sprite; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } can_ok( 'SDLx::Sprite', qw( new rect clip load surface x y w h draw alpha_key) ); TODO: { local $TODO = 'methods not implemented yet'; can_ok( 'SDLx::Sprite', qw( add remove zoom ) ); } my $disp = SDL::Video::set_video_mode( 300, 300, 32, SDL_ANYFORMAT ); my $sprite = SDLx::Sprite->new( width => 1, height => 1 ); # test initial values #ok($sprite, 'object defined'); isa_ok( $sprite, 'SDLx::Sprite' ); my $rect = $sprite->rect; ok( $rect, 'rect defined upon raw initialization' ); isa_ok( $rect, 'SDL::Rect', 'spawned rect isa SDL::Rect' ); is( $rect->x, 0, 'rect->x init' ); is( $rect->y, 0, 'rect->y init' ); is( $rect->w, 1, 'rect->w init' ); is( $rect->h, 1, 'rect->h init' ); my ( $x, $y ) = ( $sprite->x, $sprite->y ); is( $x, 0, 'no x defined upon raw initialization' ); is( $y, 0, 'no y defined upon raw initialization' ); my ( $w, $h ) = ( $sprite->w, $sprite->h ); is( $w, 1, 'w defined upon raw initialization' ); is( $h, 1, 'h defined upon raw initialization' ); isa_ok( $sprite->load('test/data/hero.bmp'), 'SDLx::Sprite', '[load] works' ); isa_ok( $sprite->alpha_key( SDL::Color->new( 0xfc, 0x00, 0xff ) ), 'SDLx::Sprite', '[alpha] works' ); isa_ok( $sprite->alpha(0xcc), 'SDLx::Sprite', '[alpha] integer works ' ); isa_ok( $sprite->alpha(0.3), 'SDLx::Sprite', '[alpha] percentage works' ); done_testing; #reset the old video driver if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } ����������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_sprite_animated.t������������������������������������������������������������������000444��000765��000024�� 35320�11760240072� 17261� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Config; use SDL::Video; use SDL::Color; use SDLx::Sprite::Animated; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } elsif ( !SDL::Config->has('SDL_image') ) { plan( skip_all => 'SDL_image support not compiled' ); } can_ok( 'SDLx::Sprite::Animated', qw( new rect clip load surface x y w h draw alpha_key step_x step_y type max_loops ticks_per_frame current_frame current_loop set_sequences sequence next previous reset start stop draw) ); TODO: { local $TODO = 'methods not implemented yet'; can_ok( 'SDLx::Sprite', qw( add remove zoom ) ); } my $disp = SDL::Video::set_video_mode( 300, 300, 32, SDL_ANYFORMAT ); my $sprite = SDLx::Sprite::Animated->new( width => 48, height => 48 ); isa_ok( $sprite, 'SDLx::Sprite' ); isa_ok( $sprite, 'SDLx::Sprite::Animated' ); my $clip = $sprite->clip; ok( $clip, 'clip defined upon raw initialization' ); isa_ok( $clip, 'SDL::Rect', 'spawned clip isa SDL::Rect' ); is( $clip->x, 0, 'clip->x init' ); is( $clip->y, 0, 'clip->y init' ); is( $clip->w, 48, 'clip->w init' ); is( $clip->h, 48, 'clip->h init' ); my $rect = $sprite->rect; ok( $rect, 'rect defined upon raw initialization' ); isa_ok( $rect, 'SDL::Rect', 'spawned rect isa SDL::Rect' ); is( $rect->x, 0, 'rect->x init' ); is( $rect->y, 0, 'rect->y init' ); is( $rect->w, 48, 'rect->w init' ); is( $rect->h, 48, 'rect->h init' ); my ( $x, $y ) = ( $sprite->x, $sprite->y ); is( $x, 0, 'no x defined upon raw initialization' ); is( $y, 0, 'no y defined upon raw initialization' ); my ( $w, $h ) = ( $sprite->w, $sprite->h ); is( $w, 48, 'w defined upon raw initialization' ); is( $h, 48, 'h defined upon raw initialization' ); isa_ok( $sprite->load('test/data/hero.bmp'), 'SDLx::Sprite::Animated', '[load] works' ); isa_ok( $sprite->alpha_key( SDL::Color->new( 0xfc, 0x00, 0xff ) ), 'SDLx::Sprite::Animated', '[alpha_key] works' ); isa_ok( $sprite->alpha(0xcc), 'SDLx::Sprite::Animated', '[alpha] integer works ' ); isa_ok( $sprite->alpha(0.3), 'SDLx::Sprite::Animated', '[alpha] percentage works' ); is( $clip->x, 0, 'clip->x after load' ); is( $clip->y, 0, 'clip->y after load' ); is( $clip->w, 48, 'clip->w after load' ); is( $clip->h, 48, 'clip->h after load' ); is( $rect->x, 0, 'rect->x after load' ); is( $rect->y, 0, 'rect->y after load' ); is( $rect->w, 48, 'rect->w after load' ); is( $rect->h, 48, 'rect->h after load' ); $sprite->set_sequences( left => [ [ 1, 0 ], [ 1, 1 ], [ 1, 2 ] ], ); my ( $clip_w, $clip_h ) = ( $sprite->clip->w, $sprite->clip->h ); $sprite->alpha_key( SDL::Color->new( 0xfc, 0x00, 0xff ) ); is( $sprite->clip->w, $clip_w, 'alpha_key() does not change clip width' ); is( $sprite->clip->h, $clip_h, 'alpha_key() does not change clip height' ); $sprite->sequence('left'); is( $sprite->current_frame, 1, 'sprite->current_frame after sequence' ); is( $sprite->current_loop, 1, 'sprite->current_loop after sequence' ); is( $clip->x, 48, 'clip->x after sequence' ); is( $clip->y, 0, 'clip->y after sequence' ); is( $clip->w, 48, 'clip->w after sequence' ); is( $clip->h, 48, 'clip->h after sequence' ); is( $rect->x, 0, 'rect->x after sequence' ); is( $rect->y, 0, 'rect->y after sequence' ); is( $rect->w, 48, 'rect->w after sequence' ); is( $rect->h, 48, 'rect->h after sequence' ); $sprite->next; is( $sprite->current_frame, 2, 'sprite->current_frame after next' ); is( $sprite->current_loop, 1, 'sprite->current_loop after next' ); is( $clip->x, 48, 'clip->x after next' ); is( $clip->y, 48, 'clip->y after next' ); is( $clip->w, 48, 'clip->w after next' ); is( $clip->h, 48, 'clip->h after next' ); is( $rect->x, 0, 'rect->x after next' ); is( $rect->y, 0, 'rect->y after next' ); is( $rect->w, 48, 'rect->w after next' ); is( $rect->h, 48, 'rect->h after next' ); $sprite->next; is( $sprite->current_frame, 3, 'sprite->current_frame after second next' ); is( $sprite->current_loop, 1, 'sprite->current_loop after second next' ); is( $clip->x, 48, 'clip->x after second next' ); is( $clip->y, 96, 'clip->y after second next' ); is( $clip->w, 48, 'clip->w after second next' ); is( $clip->h, 48, 'clip->h after second next' ); is( $rect->x, 0, 'rect->x after second next' ); is( $rect->y, 0, 'rect->y after second next' ); is( $rect->w, 48, 'rect->w after second next' ); is( $rect->h, 48, 'rect->h after second next' ); $sprite->next; is( $sprite->current_frame, 1, 'sprite->current_frame after third next' ); is( $sprite->current_loop, 2, 'sprite->current_loop after second next' ); is( $clip->x, 48, 'clip->x after third next' ); is( $clip->y, 0, 'clip->y after third next' ); is( $clip->w, 48, 'clip->w after third next' ); is( $clip->h, 48, 'clip->h after third next' ); is( $rect->x, 0, 'rect->x after third next' ); is( $rect->y, 0, 'rect->y after third next' ); is( $rect->w, 48, 'rect->w after third next' ); is( $rect->h, 48, 'rect->h after third next' ); is( $sprite->next, $sprite, 'next() returns the object' ); is( $sprite->current_frame, 2, 'sprite->current_frame after next' ); is( $sprite->previous, $sprite, 'previous() returns the object' ); is( $sprite->current_frame, 1, 'sprite->current_frame after previous' ); $sprite->next; is( $sprite->current_frame, 2, 'sprite->current_frame before reset' ); is( $clip->x, 48, 'clip->x before reset' ); is( $clip->y, 48, 'clip->y before reset' ); is( $clip->w, 48, 'clip->w before reset' ); is( $clip->h, 48, 'clip->h before reset' ); is( $sprite->reset, $sprite, 'reset() returns the object' ); is( $sprite->current_frame, 1, 'sprite->current_frame after reset' ); is( $clip->x, 48, 'clip->x after reset' ); is( $clip->y, 0, 'clip->y after reset' ); is( $clip->w, 48, 'clip->w after reset' ); is( $clip->h, 48, 'clip->h after reset' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), ); $clip = $sprite->clip; is( $clip->x, 0, 'clip->x after new with image and rect' ); is( $clip->y, 0, 'clip->y after new with image and rect' ); is( $clip->w, 48, 'clip->w after new with image and rect' ); is( $clip->h, 48, 'clip->h after new with image and rect' ); $rect = $sprite->rect; is( $rect->x, 40, 'rect->x after new with image and rect' ); is( $rect->y, 50, 'rect->y after new with image and rect' ); is( $rect->w, 48, 'rect->w after new with image and rect' ); is( $rect->h, 48, 'rect->h after new with image and rect' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', clip => SDL::Rect->new( 0, 0, 48, 48 ), ); $clip = $sprite->clip; is( $clip->x, 0, 'clip->x after new with image and clip' ); is( $clip->y, 0, 'clip->y after new with image and clip' ); is( $clip->w, 48, 'clip->w after new with image and clip' ); is( $clip->h, 48, 'clip->h after new with image and clip' ); $rect = $sprite->rect; is( $rect->x, 0, 'rect->x after new with image and clip' ); is( $rect->y, 0, 'rect->y after new with image and clip' ); is( $rect->w, 48, 'rect->w after new with image and clip' ); is( $rect->h, 48, 'rect->h after new with image and clip' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), step_x => 50, step_y => 50, ); $sprite->set_sequences( left => [ [ 1, 0 ], [ 1, 1 ], ], right => [ [ 3, 0 ], [ 3, 1 ], ], ); $sprite->sequence('left'); $clip = $sprite->clip; is( $clip->x, 50, 'clip->x after new with step_x, step_y' ); is( $clip->y, 0, 'clip->y after new with step_x, step_y' ); is( $clip->w, 48, 'clip->w after new with step_x, step_y' ); is( $clip->h, 48, 'clip->h after new with step_x, step_y' ); $sprite->next; $clip = $sprite->clip; is( $clip->x, 50, 'clip->x after first next' ); is( $clip->y, 50, 'clip->y after first next' ); is( $clip->w, 48, 'clip->w after first next' ); is( $clip->h, 48, 'clip->h after first next' ); $sprite->next; $clip = $sprite->clip; is( $clip->x, 50, 'clip->x after second next' ); is( $clip->y, 0, 'clip->y after second next' ); is( $clip->w, 48, 'clip->w after second next' ); is( $clip->h, 48, 'clip->h after second next' ); $sprite->sequence('right'); $clip = $sprite->clip; is( $clip->x, 150, 'clip->x after sequence change' ); is( $clip->y, 0, 'clip->y after sequence change' ); is( $clip->w, 48, 'clip->w after sequece change' ); is( $clip->h, 48, 'clip->h after sequence change' ); $sprite->next; $clip = $sprite->clip; is( $clip->x, 150, 'clip->x after first next' ); is( $clip->y, 50, 'clip->y after first next' ); is( $clip->w, 48, 'clip->w after first next' ); is( $clip->h, 48, 'clip->h after first next' ); $sprite->next; $clip = $sprite->clip; is( $clip->x, 150, 'clip->x after second next' ); is( $clip->y, 0, 'clip->y after second next' ); is( $clip->w, 48, 'clip->w after second next' ); is( $clip->h, 48, 'clip->h after second next' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), max_loops => 2, ); $sprite->set_sequences( up => [ [ 0, 0 ], [ 0, 1 ], ], ); $sprite->sequence('up'); $clip = $sprite->clip; is( $clip->y, 0, 'clip->y after new with max_loops' ); $sprite->next; is( $clip->y, 48, 'clip->y after first next' ); $sprite->next; is( $clip->y, 0, 'clip->y after second next' ); $sprite->next; is( $clip->y, 48, 'clip->y after third next' ); $sprite->next; is( $clip->y, 0, 'clip->y after fourth next' ); $sprite->next; is( $clip->y, 0, 'clip->y after fifth next' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), type => 'reverse' ); $sprite->set_sequences( up => [ [ 0, 0 ], [ 0, 1 ], [ 0, 2 ], ], ); $sprite->sequence('up'); $clip = $sprite->clip; is( $clip->y, 0, 'clip->y after new with type = reverse' ); is( $sprite->current_loop, 1, 'sprite->current_loop after new with type = reverse' ); $sprite->next; is( $clip->y, 48, 'clip->y after first next' ); is( $sprite->current_frame, 2, 'sprite->current_frame after first next' ); is( $sprite->current_loop, 1, 'sprite->current_loop after first next' ); $sprite->next; is( $clip->y, 96, 'clip->y after second next' ); is( $sprite->current_frame, 3, 'sprite->current_frame after second next' ); is( $sprite->current_loop, 1, 'sprite->current_loop after second next' ); $sprite->next; is( $clip->y, 48, 'clip->y after third next' ); is( $sprite->current_frame, 2, 'sprite->current_frame after third next' ); is( $sprite->current_loop, 1, 'sprite->current_loop after third next' ); $sprite->next; is( $clip->y, 0, 'clip->y after fourth next' ); is( $sprite->current_frame, 1, 'sprite->current_frame after fourth next' ); is( $sprite->current_loop, 2, 'sprite->current_loop after fourth next' ); $sprite->next; is( $clip->y, 48, 'clip->y after fifth next' ); is( $sprite->current_frame, 2, 'sprite->current_frame after fifth next' ); is( $sprite->current_loop, 2, 'sprite->current_loop after fifth next' ); $sprite->next; is( $clip->y, 96, 'clip->y after sixth next' ); is( $sprite->current_frame, 3, 'sprite->current_frame after sixth next' ); is( $sprite->current_loop, 2, 'sprite->current_loop after sixth next' ); $sprite->next; is( $clip->y, 48, 'clip->y after seventh next' ); is( $sprite->current_frame, 2, 'sprite->current_frame after seventh next' ); is( $sprite->current_loop, 2, 'sprite->current_loop after seventh next' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), ); $sprite->set_sequences( up => [ [ 0, 0 ], [ 0, 1 ], ], ); $sprite->sequence('up'); $clip = $sprite->clip; is( $clip->y, 0, 'clip->y after new' ); $sprite->previous; is( $clip->y, 48, 'clip->y after first previous' ); $sprite->previous; is( $clip->y, 0, 'clip->y after second previous' ); $sprite->previous; is( $clip->y, 48, 'clip->y after third previous' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), type => 'reverse' ); $sprite->set_sequences( up => [ [ 0, 0 ], [ 0, 1 ], [ 0, 2 ], ], ); $sprite->sequence('up'); $clip = $sprite->clip; is( $clip->y, 0, 'clip->y after new with type = reverse' ); $sprite->previous; is( $clip->y, 96, 'clip->y after first previous' ); is( $sprite->current_frame, 3, 'sprite->current_frame after first previous' ); $sprite->previous; is( $clip->y, 48, 'clip->y after second previous' ); is( $sprite->current_frame, 2, 'sprite->current_frame after second previous' ); $sprite->previous; is( $clip->y, 0, 'clip->y after third previous' ); is( $sprite->current_frame, 1, 'sprite->current_frame after third previous' ); $sprite->previous; is( $clip->y, 48, 'clip->y after fourth previous' ); is( $sprite->current_frame, 2, 'sprite->current_frame after fourth previous' ); $sprite->previous; is( $clip->y, 96, 'clip->y after fifth previous' ); is( $sprite->current_frame, 3, 'sprite->current_frame after fifth previous' ); $sprite->previous; is( $clip->y, 48, 'clip->y after sixth previous' ); is( $sprite->current_frame, 2, 'sprite->current_frame after sixth previous' ); $sprite->previous; is( $clip->y, 0, 'clip->y after seventh previous' ); is( $sprite->current_frame, 1, 'sprite->current_frame after seventh previous' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), clip => SDL::Rect->new( 48, 48, 48, 48 ), sequences => { up => [ [ 0, 0 ], [ 0, 1 ] ] }, sequence => 'up', ); $clip = $sprite->clip; is( $clip->x, 48, 'clip->x after new with clip' ); is( $clip->y, 48, 'clip->y after new with clip' ); $sprite->next(); is( $clip->x, 48, 'clip->x after first next' ); is( $clip->y, 96, 'clip->y after first next' ); $sprite->next(); is( $clip->x, 48, 'clip->x after second next' ); is( $clip->y, 48, 'clip->y after second next' ); $sprite = SDLx::Sprite::Animated->new( image => 'test/data/hero.bmp', rect => SDL::Rect->new( 40, 50, 48, 48 ), ); $clip = $sprite->clip; is( $clip->x, 0, 'clip->x after new with no sequences' ); is( $clip->y, 0, 'clip->y after new with no sequences' ); my $sequences = [ [ 0, 0 ], [ 48, 0 ], [ 96, 0 ], [ 144, 0 ], [ 192, 0 ], [ 0, 48 ], [ 48, 48 ], [ 96, 48 ], [ 144, 48 ], [ 192, 48 ], [ 0, 96 ], [ 48, 96 ], [ 96, 96 ], [ 144, 96 ], [ 192, 96 ], ]; foreach my $count ( 1 .. 20 ) { $sprite->next; my $s = $sequences->[ $count % @$sequences ]; is( $clip->x, $s->[0], 'clip->x after ' . $count . '-th next' ); is( $clip->y, $s->[1], 'clip->y after ' . $count . '-th next' ); } done_testing; #reset the old video driver if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_surface.t��������������������������������������������������������������������������000444��000765��000024�� 17237�11760240072� 15550� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Surface; use SDL::Rect; use SDLx::Surface; use SDL::PixelFormat; use SDL::Video; use Data::Dumper; use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my $app = SDL::Video::set_video_mode( 400, 200, 32, SDL_SWSURFACE ); my $app_x = SDLx::Surface::display(); is_deeply( $app_x->surface->get_pixels_ptr, $app->get_pixels_ptr, '[display] works' ); my $surface = SDL::Surface->new( SDL_SWSURFACE, 400, 200, 32 ); my @surfs = ( SDLx::Surface->new( surface => $surface ), SDLx::Surface->new( width => 400, height => 200 ), SDLx::Surface->new( width => 400, height => 200, flags => SDL_SWSURFACE, depth => 32 ), SDLx::Surface->new( width => 400, height => 200, flags => SDL_SWSURFACE, depth => 32, greenmask => 0xFF000000 ), ); foreach my $a (@surfs) { isa_ok( $a, 'SDLx::Surface' ); isa_ok( $a->surface(), 'SDL::Surface' ); my $color = $a->[0][0]; is( $color, 0, 'Right color returned' ); $a->[0][0] = 0x00FF00FF; is( $a->[0][0], 0x00FF00FF, 'Right color returned' ); is( @{$a}, 200, 'Correct Y value' ); is( @{ $a->[0] }, 400, 'Correct X value' ); } #my $source = SDLx::Surface->new( width=> 400, height=>200, flags=> SDL_SWSURFACE, depth=>32 ), is( $surfs[0]->[1][2], 0, 'Checking source pixel is 0' ); is( $surfs[1]->[1][2], 0, 'Checking dest pixel is 0' ); $surfs[0]->[4][4] = [255,255,0,255]; is( $surfs[0]->[4][4] , 0xFFFF00FF, "Surface can set pixel with other color values"); $surfs[0]->[1][2] = 0x00FF00FF; is( $surfs[0]->[1][2], 0x00FF00FF, 'Checking that source pixel got written' ); $surfs[0]->blit( $surfs[1] ); #SDL::Video::blit_surface( $surfs[0]->surface, SDL::Rect->new(0,0,400,200), $surfs[1]->surface, SDL::Rect->new(0,0,400,200)); isnt( $surfs[1]->[1][2], 0, 'Pixel blitted from one surface to another' ); $surfs[1]->blit_by( $surfs[0], undef, [ 1, 0, 0, 0 ] ); isnt( $surfs[1]->[2][2], 0, 'Pixel by_blitted to another surface with offset' ); push @surfs, SDLx::Surface->new( w => 1, h => 1, color => 0x204080FF, ); my $fill = SDL::Video::get_RGBA( $surfs[-1]->surface()->format(), $surfs[-1]->[0][0] ); is( $fill->[0], 0x20, 'Fill color red worked' ); is( $fill->[1], 0x40, 'Fill color green worked' ); is( $fill->[2], 0x80, 'Fill color blue worked' ); is( $fill->[3], 0xFF, 'Fill color alpha worked' ); $surfs[1]->flip(); pass 'Fliped the surface'; $surfs[0]->update(); pass 'update all surface'; $surfs[0]->update( [ 0, 10, 30, 40 ] ); pass 'Single rect update'; $surfs[0]->update( [ SDL::Rect->new( 0, 1, 2, 3 ), SDL::Rect->new( 2, 4, 5, 6 ) ] ); pass 'SDL::Rect array update'; my @colors = ( # opaque [ 0xFF, 0xFF, 0xFF, 0xFF ], [ 0xFF, 0xFF, 0x00, 0xFF ], [ 0xFF, 0x00, 0xFF, 0xFF ], [ 0x00, 0xFF, 0xFF, 0xFF ], [ 0xFF, 0x00, 0x00, 0xFF ], [ 0x00, 0xFF, 0x00, 0xFF ], [ 0x00, 0x00, 0xFF, 0xFF ], [ 0x00, 0x00, 0x00, 0xFF ], [ 0x20, 0x40, 0x80, 0xFF ], [ 0x80, 0x20, 0x40, 0xFF ], [ 0x40, 0x80, 0x20, 0xFF ], # translucent [ 0xFF, 0xFF, 0xFF, 0xCC ], [ 0xFF, 0xFF, 0x00, 0xCC ], [ 0xFF, 0x00, 0xFF, 0xCC ], [ 0x00, 0xFF, 0xFF, 0xCC ], [ 0xFF, 0x00, 0x00, 0xCC ], [ 0x00, 0xFF, 0x00, 0xCC ], [ 0x00, 0x00, 0xFF, 0xCC ], [ 0x00, 0x00, 0x00, 0xCC ], [ 0x20, 0x40, 0x80, 0xCC ], [ 0x80, 0x20, 0x40, 0xCC ], [ 0x40, 0x80, 0x20, 0xCC ], # transparent [ 0xFF, 0xFF, 0xFF, 0x00 ], [ 0xFF, 0xFF, 0x00, 0x00 ], [ 0xFF, 0x00, 0xFF, 0x00 ], [ 0x00, 0xFF, 0xFF, 0x00 ], [ 0xFF, 0x00, 0x00, 0x00 ], [ 0x00, 0xFF, 0x00, 0x00 ], [ 0x00, 0x00, 0xFF, 0x00 ], [ 0x00, 0x00, 0x00, 0x00 ], [ 0x20, 0x40, 0x80, 0x00 ], [ 0x80, 0x20, 0x40, 0x00 ], [ 0x40, 0x80, 0x20, 0x00 ], ); foreach my $c (@colors) { my $color = ( $c->[0] << 24 ) + ( $c->[1] << 16 ) + ( $c->[2] << 8 ) + $c->[3]; $surfs[0]->draw_rect( [ 0, 0, 10, 20 ], $c ); my $num = sprintf( '0x%08x', $color ); my $rgba = SDL::Video::get_RGBA( $surfs[0]->surface()->format(), $surfs[0]->[0][0] ); is( $rgba->[0], $c->[0], "draw_rect uses correct red for $num" ); is( $rgba->[1], $c->[1], "draw_rect uses correct green for $num" ); is( $rgba->[2], $c->[2], "draw_rect uses correct blue for $num" ); is( $rgba->[3], $c->[3], "draw_rect uses correct alpha for $num" ); } $surfs[0]->draw_rect( [ 0, 0, 10, 20 ], 0xFF00FFFF ); pass 'draw_rect works'; SKIP: { skip( 'SDL_gfx_primitives needed', 2 ) unless SDL::Config->has('SDL_gfx_primitives'); is( $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], 0xff00ffff ), $surfs[1], 'draw_line returns self' ); $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], 0xff00ff ); $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], 0xff00ffff ); $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], 0xff00ffff, 1 ); $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], [ 255, 255, 0, 255 ] ); $surfs[1]->draw_line( [ 0, 10 ], [ 20, 10 ], [ 255, 255, 0, 255 ], 1 ); pass 'draw_line works'; $surfs[1]->draw_gfx_text( [ 0, 0 ], 0xffffffff, "fooo" ); $surfs[1]->draw_gfx_text( [ 10, 10 ], [ 20, 20, 20, 20 ], "fooo" ); my $f = ''; open( my $FH, '<', 'test/data/5x7.fnt' ); binmode($FH); read( $FH, $f, 4096 ); close($FH); my $font = { data => $f, cw => 5, ch => 7 }; $surfs[1]->draw_gfx_text( [ 0, 0 ], 0xffffffff, "fooo", $font ); pass 'draw_gfx_text works'; my @colors_t = ( [ 255, 0, 0, 255 ], 0xFF0000FF, 0xFF00FF, [ 255, 0, 255 ] ); is( $surfs[0]->draw_circle( [ 100, 10 ], 20, [ 0, 0, 0, 0] ), $surfs[0], 'draw_circle returns self' ); foreach my $cir_color (@colors_t) { my $cir_color = [ 255, 0, 0, 255 ]; $surfs[0]->draw_circle( [ 100, 10 ], 20, $cir_color ); #no fill $surfs[0]->draw_circle( [ 102, 12 ], 22, $cir_color , 1 ); $surfs[0]->draw_circle_filled( [ 100, 10 ], 20, $cir_color ); #fill isnt( $surfs[0]->[100][10], 0 ); pass 'draw_circle works'; pass 'draw_circle_filled works'; } is( $surfs[0]->draw_trigon( [ [100, 10], [110, 10], [110, 20] ], [ 255, 0, 0, 255 ] ), $surfs[0], 'draw_trigon returns self' ); is( $surfs[0]->draw_trigon_filled( [ [100, 10], [110, 10], [110, 20] ], [ 255, 0, 0, 255 ] ), $surfs[0], 'draw_trigon_filled returns self' ); foreach my $color (@colors_t) { my $color = [ 255, 0, 0, 255 ]; my $verts = [ [100, 10], [110, 10], [110, 20] ]; $surfs[0]->draw_trigon( $verts, $color ); #no fill $surfs[0]->draw_trigon( $verts, $color, 1 ); $surfs[0]->draw_trigon_filled( $verts, $color ); #fill isnt( $surfs[0]->[100][10], 0 ); pass 'draw_trigon works'; pass 'draw_trigon_filled works'; } is( $surfs[0]->draw_polygon( [ [100, 10], [110, 10], [110, 20] ], [ 255, 0, 0, 255 ] ), $surfs[0], 'draw_polygon returns self' ); is( $surfs[0]->draw_polygon_filled( [ [100, 10], [110, 10], [110, 20] ], [ 255, 0, 0, 255 ] ), $surfs[0], 'draw_polygon_filled returns self' ); foreach my $color (@colors_t) { my $color = [ 255, 0, 0, 255 ]; my $verts = [ [100, 10], [110, 10], [110, 20], [100, 20] ]; $surfs[0]->draw_polygon( $verts, $color ); #no fill $surfs[0]->draw_polygon( $verts, $color, 1 ); $surfs[0]->draw_polygon_filled( $verts, $color ); #fill isnt( $surfs[0]->[100][10], 0 ); pass 'draw_polygon works'; pass 'draw_polygon_filled works'; } } my $surf_dup = SDLx::Surface::duplicate( $surfs[1] ); is( $surf_dup->w, $surfs[1]->w, 'Duplicate surf has same width' ); is( $surf_dup->h, $surfs[1]->h, 'Duplicate surf has same flags' ); is( $surf_dup->flags, $surfs[1]->flags, 'Duplicate surf has same flags' ); is( $surf_dup->format->BitsPerPixel, $surfs[1]->format->BitsPerPixel, 'Duplicate surf has same bpp' ); if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } pass 'Final SegFault test'; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_text.t�����������������������������������������������������������������������������000444��000765��000024�� 2410�11760240072� 15047� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use SDL; use SDL::Config; use SDL::Color; use SDL::Surface; use SDLx::App; BEGIN { use FindBin; use Test::More; use lib 't/lib'; use SDL::TestTool; if ( !SDL::Config->has('SDL_ttf') ) { plan( skip_all => 'SDL_ttf support not compiled' ); } } use_ok( 'SDLx::Text' ); my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; use File::Spec; my $score = SDLx::Text->new( font => File::Spec->catfile($FindBin::Bin, '..', 'share', 'GenBasR.ttf') ); isa_ok( $score, 'SDLx::Text'); is($score->x, 0, 'default x position'); is($score->y, 0, 'default y position'); is($score->h_align, 'left', 'default horizontal alignment'); isa_ok( $score->font, 'SDL::TTF::Font' ); isa_ok($score->color, 'SDL::Color', 'default color'); is($score->size, 24, 'default size'); $score->text('Hello'); is( $score->text, 'Hello', 'text() as a getter' ); ok( $score->w >= 50 && $score->w <= 53, 'Hello! is 50..53 px wide!' ); is( $score->h, 28, 'Hello! is 28 px high!' ); isa_ok($score->surface, 'SDL::Surface'); my $value = undef; my $other_self = $score->text($value); isa_ok($score, 'SDLx::Text'); END { if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } done_testing; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/sdlx_validate.t�������������������������������������������������������������������������000444��000765��000024�� 7101�11760240073� 15657� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use SDL; use SDL::Video; use SDLx::Surface; use SDLx::Validate; #use_ok is checked in t/00-load.t use lib 't/lib'; use SDL::TestTool; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) { plan( skip_all => 'Failed to init video' ); } my $app = SDL::Video::set_video_mode( 400, 200, 32, SDL_SWSURFACE ); can_ok( 'SDLx::Validate', qw( surface rect num_rgb num_rgba list_rgb list_rgba color ) ); my @surfaces = ( 'SDL::Surface->new(0, 1, 2, 32, 0, 0, 0, 0)', 'SDLx::Surface->new(w => 1, h => 2)', ); for (@surfaces) { ok( SDLx::Validate::surface(eval)->isa("SDL::Surface"), "surface($_) is a SDL::Surface" ); } eval { SDLx::Validate::surface( SDL::Rect->new( 0, 0, 0, 0 ) ) }; is( $@ =~ /Surface must be SDL::Surface or SDLx::Surface/, 1, "Validate detects wrong objects" ); my @rects_0 = ( '[]', '[0, 0, 0, 0]', 'SDL::Rect->new(0, 0, 0, 0)', ); for (@rects_0) { my $r = SDLx::Validate::rect(eval); is_deeply( [ $r->x, $r->y, $r->w, $r->h ], [ 0, 0, 0, 0 ], "rect($_) is (0, 0, 0, 0)" ); } my @rects_positive = ( '[1, 2, 3, 4]', 'SDL::Rect->new(1, 2, 3, 4)', ); for (@rects_positive) { my $r = SDLx::Validate::rect(eval); is_deeply( [ $r->x, $r->y, $r->w, $r->h ], [ 1, 2, 3, 4 ], "rect($_) is (1, 2, 3, 4)" ); } my $format = $app->format; my $mapped_black = SDL::Video::map_RGBA( $format, 0x00, 0x00, 0x00, 0xFF ); my $mapped_white = SDL::Video::map_RGBA( $format, 0xFF, 0xFE, 0xFD, 0xFF ); my @blacks_rgb = ( 'undef', 0, '[0, 0, 0]', '[]', 'SDL::Color->new(0, 0, 0)', ); for (@blacks_rgb) { is( SDLx::Validate::num_rgb(eval), 0, "num_rgb($_) is 0x000000" ); is_deeply( SDLx::Validate::list_rgb(eval), [ 0, 0, 0 ], "list_rgb($_) is [0, 0, 0]" ); is( SDLx::Validate::map_rgb( eval, $format ), $mapped_black, "map_rgb($_, $format) is $mapped_black" ); my $c = SDLx::Validate::color(eval); is_deeply( [ $c->r, $c->g, $c->b ], [ 0, 0, 0 ], "color($_) is (0, 0, 0)" ); } my @whites_rgb = ( '0xFFFEFD', '[0xFF, 0xFE, 0xFD]', 'SDL::Color->new(0xFF, 0xFE, 0xFD)', ); for (@whites_rgb) { is( SDLx::Validate::num_rgb(eval), 0xFFFEFD, "num_rgb($_) is 0xFFFEFD" ); is_deeply( SDLx::Validate::list_rgb(eval), [ 0xFF, 0xFE, 0xFD ], "list_rgb($_) is [0xFF, 0xFE, 0xFD]" ); is( SDLx::Validate::map_rgb( eval, $format ), $mapped_white, "map_rgb($_, $format) is $mapped_white" ); my $c = SDLx::Validate::color(eval); is_deeply( [ $c->r, $c->g, $c->b ], [ 0xFF, 0xFE, 0xFD ], "color($_) is (0xFF, 0xFE, 0xFD)" ); } my @blacks_rgba = ( 'undef', '0x000000FF', '[0, 0, 0]', '[undef, undef, undef, 0xFF]', '[]', 'SDL::Color->new(0, 0, 0)', ); for (@blacks_rgba) { is( SDLx::Validate::num_rgba(eval), 0xFF, "num_rgba($_) is 0x000000FF" ); is_deeply( SDLx::Validate::list_rgba(eval), [ 0, 0, 0, 0xFF ], "list_rgba($_) is [0, 0, 0, 0xFF]" ); is( SDLx::Validate::map_rgba( eval, $format ), $mapped_black, "map_rgba($_, $format) is $mapped_black" ); } my @whites_rgba = ( '0xFFFEFDFF', '[0xFF, 0xFE, 0xFD]', '[0xFF, 0xFE, 0xFD, 0xFF]', 'SDL::Color->new(0xFF, 0xFE, 0xFD)', ); for (@whites_rgba) { is( SDLx::Validate::num_rgba(eval), 0xFFFEFDFF, "num_rgba($_) is 0xFFFEFDFF" ); is_deeply( SDLx::Validate::list_rgba(eval), [ 0xFF, 0xFE, 0xFD, 0xFF ], "list_rgba($_) is [0xFF, 0xFE, 0xFD, 0xFF]" ); is( SDLx::Validate::map_rgba( eval, $format ), $mapped_white, "map_rgba($_, $format) is $mapped_white" ); } isnt( SDLx::Validate::num_rgba(0), 0xFF, "num_rgba(0) isn't 0x000000FF" ); done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/smpeg.t���������������������������������������������������������������������������������000444��000765��000024�� 5334�11760240072� 14154� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl # basic testing of SDL::SMPEG BEGIN { unshift @INC, 'blib/lib', 'blib/arch'; } use strict; use SDL; use SDL::Config; use Test::More; my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; if ( SDL::Config->has('smpeg') ) { if( $ENV{SDL_RELEASE_TESTING} ) { plan( tests => 17 ); } else { plan( skip_all => "Skiping test for now. EXPERIMENTAL" ); } } else { plan( skip_all => ( SDL::Config->has('smpeg') ? '' : ' smpeg support not compiled' ) ); } use_ok('SDL::SMPEG'); use SDL::Video; can_ok( 'SDL::SMPEG', qw/ new error audio video volume display scale play pause stop rewind seek skip loop region frame info status / ); # Create a video as it is done in the SYNOPSIS for SDL::SMPEG SCOPE: { my $smpeg = SDL::SMPEG->new( -name => 'test/data/test-mpeg.mpg', ); isa_ok( $smpeg, 'SDL::SMPEG' ); } # Get some information about a video SCOPE: { # TODO: On the following line we don't use the same code as # above, intentionally so we can evade the failing test and # continue testing. Once the above test case passes, merge # this with the test case above. my ($smpeg) = SDL::SMPEG->new( -name => 'test/data/test-mpeg.mpg', ); isa_ok( $smpeg, 'SDL::SMPEG' ); # Get the video metadata my $mpeg = $smpeg->info; isa_ok( $mpeg, 'SDL::SMPEG::Info' ); # Check it matches what we expect is( $mpeg->has_audio, 1, '->has_audio ok' ); is( $mpeg->has_video, 1, '->has_video ok' ); is( $mpeg->width, 160, '->width ok' ); is( $mpeg->height, 120, '->height ok' ); is( $mpeg->size, 706564, '->size ok' ); is( $mpeg->offset, 2717, '->offset ok' ); is( $mpeg->frame, 0, '->frame ok' ); is( $mpeg->time, 0, '->time ok' ); like( $mpeg->length, qr/^21.3/, '->length ok' ); # TODO: I'm not entirely sure this is meant to be zero is( $mpeg->fps, 0, '->fps ok' ); # Create a display to attach the movie to my $surface = SDL::Video::set_video_mode( $mpeg->height, $mpeg->width, 32, # Colour bits SDL::Video::SDL_SWSURFACE, # flags ); isa_ok( $surface, 'SDL::Surface' ); # Attach the movie to a surface is( $smpeg->display($surface), undef, '->display(surface) ok' ); # Now that we are bound we should be able to do things # to the movie and have them actually work. # Confirm we can change where we are in the video. # is( $smpeg->frame(5), undef, '->frame(5) ok' ); $smpeg->play(); # TODO: Figure out how this info object really works #is( $mpeg->current_frame, 5, '->frame updated in info object' ); } if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/ttf.t�����������������������������������������������������������������������������������000444��000765��000024�� 31322�11760240073� 13653� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; use SDL::Color; use SDL::Surface; use SDL::Overlay; use SDL::Rect; use SDL::Video; use SDL::PixelFormat; BEGIN { use FindBin; use Test::More; use lib 't/lib'; use SDL::TestTool; if ( !SDL::Config->has('SDL_ttf') ) { plan( skip_all => 'SDL_ttf support not compiled' ); } } use SDL::TTF ':all'; use SDL::TTF::Font; use SDL::RWOps; use SDL::Version; use Encode; use File::Spec; my $font_filename = File::Spec->catfile( $FindBin::Bin, '..', 'share', 'GenBasR.ttf' ); my $videodriver = $ENV{SDL_VIDEODRIVER}; $ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING}; my $lv = SDL::TTF::linked_version(); my $cv = SDL::TTF::compile_time_version(); isa_ok( $lv, 'SDL::Version', '[linked_version] returns a SDL::Version object' ); isa_ok( $cv, 'SDL::Version', '[compile_time_version] returns a SDL::Version object' ); printf( "got version: %d.%d.%d/%d.%d.%d\n", $lv->major, $lv->minor, $lv->patch, $cv->major, $cv->minor, $cv->patch ); is( TTF_HINTING_NORMAL, 0, 'TTF_HINTING_NORMAL should be imported' ); is( TTF_HINTING_NORMAL(), 0, 'TTF_HINTING_NORMAL() should also be available' ); is( TTF_HINTING_LIGHT, 1, 'TTF_HINTING_LIGHT should be imported' ); is( TTF_HINTING_LIGHT(), 1, 'TTF_HINTING_LIGHT() should also be available' ); is( TTF_HINTING_MONO, 2, 'TTF_HINTING_MONO should be imported' ); is( TTF_HINTING_MONO(), 2, 'TTF_HINTING_MONO() should also be available' ); is( TTF_HINTING_NONE, 3, 'TTF_HINTING_NONE should be imported' ); is( TTF_HINTING_NONE(), 3, 'TTF_HINTING_NONE() should also be available' ); is( TTF_STYLE_NORMAL, 0, 'TTF_STYLE_NORMAL should be imported' ); is( TTF_STYLE_NORMAL(), 0, 'TTF_STYLE_NORMAL() should also be available' ); is( TTF_STYLE_BOLD, 1, 'TTF_STYLE_BOLD should be imported' ); is( TTF_STYLE_BOLD(), 1, 'TTF_STYLE_BOLD() should also be available' ); is( TTF_STYLE_ITALIC, 2, 'TTF_STYLE_ITALIC should be imported' ); is( TTF_STYLE_ITALIC(), 2, 'TTF_STYLE_ITALIC() should also be available' ); is( TTF_STYLE_UNDERLINE, 4, 'TTF_STYLE_UNDERLINE should be imported' ); is( TTF_STYLE_UNDERLINE(), 4, 'TTF_STYLE_UNDERLINE() should also be available' ); is( TTF_STYLE_STRIKETHROUGH, 8, 'TTF_STYLE_STRIKETHROUGH should be imported' ); is( TTF_STYLE_STRIKETHROUGH(), 8, 'TTF_STYLE_STRIKETHROUGH() should also be available' ); is( SDL::TTF::was_init(), 0, "[was_init] returns false" ); is( SDL::TTF::init(), 0, "[init] succeeded" ); is( SDL::TTF::was_init(), 1, "[was_init] returns true" ); is( SDL::TTF::quit(), undef, "[quit] ran" ); is( SDL::TTF::was_init(), 0, "[was_init] returns false" ); is( SDL::TTF::init(), 0, "[init] succeeded" ); is( SDL::TTF::byte_swapped_unicode(0), undef, "[ttf_byte_swapped_unicode] on" ); is( SDL::TTF::byte_swapped_unicode(1), undef, "[ttf_byte_swapped_unicode] off" ); my $font = SDL::TTF::open_font( $font_filename, 22 ); isa_ok( $font, 'SDL::TTF::Font', "[open_font]" ); isa_ok( SDL::TTF::open_font_index( $font_filename, 8, 0 ), 'SDL::TTF::Font', "[open_font_index]" ); my $file = SDL::RWOps->new_file( $font_filename, 'r' ); isa_ok( $file, 'SDL::RWOps', "[new_file]" ); isa_ok( SDL::TTF::open_font_RW( $file, 0, 12 ), 'SDL::TTF::Font', "[open_font_RW]" ); $file = SDL::RWOps->new_file( $font_filename, 'r' ); isa_ok( SDL::TTF::open_font_index_RW( $file, 0, 16, 0 ), 'SDL::TTF::Font', "[open_font_index_RW]" ); # get_font_style returns the style as a bitmask my $style = SDL::TTF::get_font_style($font); is( $style, TTF_STYLE_NORMAL, "[get_font_style] returns TTF_STYLE_NORMAL" ); is( SDL::TTF::set_font_style( $font, TTF_STYLE_BOLD ), undef, "[set_font_style] to TTF_STYLE_BOLD" ); $style = SDL::TTF::get_font_style($font); ok( $style & TTF_STYLE_BOLD , "[get_font_style] returns TTF_STYLE_BOLD" ); is( SDL::TTF::set_font_style( $font, TTF_STYLE_ITALIC ), undef, "[set_font_style] to TTF_STYLE_ITALIC" ); $style = SDL::TTF::get_font_style($font); ok( $style & TTF_STYLE_ITALIC, "[get_font_style] returns TTF_STYLE_ITALIC" ); is( SDL::TTF::set_font_style( $font, TTF_STYLE_UNDERLINE ), undef, "[set_font_style] to TTF_STYLE_UNDERLINE" ); $style = SDL::TTF::get_font_style($font); ok( TTF_STYLE_UNDERLINE, "[get_font_style] returns TTF_STYLE_UNDERLINE" ); is( SDL::TTF::set_font_style( $font, TTF_STYLE_NORMAL ), undef, "[set_font_style] to TTF_STYLE_NORMAL" ); is( SDL::TTF::get_font_style($font), TTF_STYLE_NORMAL, "[get_font_style] returns TTF_STYLE_NORMAL" ); SKIP: { skip( "Version 2.0.10 (or better) needed", 10 ) if $cv < 2.0.10 || $lv < 2.0.10; my $font_outline = SDL::TTF::get_font_outline($font); ok( $font_outline >= 0, "[get_font_outline] is $font_outline" ); $font_outline++; SDL::TTF::set_font_outline( $font, $font_outline ); pass "[set_font_outline] to $font_outline"; is( SDL::TTF::get_font_outline($font), $font_outline, "[get_font_outline] is $font_outline" ); SKIP: { skip( "Font hinting is buggy in SDL_ttf", 3 ); is( SDL::TTF::get_font_hinting($font), TTF_HINTING_NORMAL, "[get_font_hinting] is TTF_HINTING_NORMAL" ); SDL::TTF::set_font_hinting( $font, TTF_HINTING_LIGHT ); pass "[set_font_hinting] to TTF_HINTING_LIGHT"; is( SDL::TTF::get_font_hinting($font), TTF_HINTING_LIGHT, "[get_font_hinting] is TTF_HINTING_LIGHT" ); } my $kerning_allowed = SDL::TTF::get_font_kerning($font); like( $kerning_allowed, '/^[01]$/', "[get_font_kerning] is " . ( $kerning_allowed ? 'allowed' : 'not allowed' ) ); SDL::TTF::set_font_kerning( $font, 0 ); pass "[set_font_kerning to not allowed] "; $kerning_allowed = SDL::TTF::get_font_kerning($font); is( $kerning_allowed, 0, "[get_font_kerning] is " . ( $kerning_allowed ? 'allowed' : 'not allowed' ) ); ok( SDL::TTF::glyph_is_provided( $font, "\0M" ) > 0, "[glyph_is_provided] is true for character 'M'" ); } my $font_height = SDL::TTF::font_height($font); ok( $font_height, "[font_height] is $font_height" ); my $font_ascent = SDL::TTF::font_ascent($font); like( $font_ascent, '/^[-]?\d+$/', "[font_ascent] offset from the baseline to the top of the font is $font_ascent" ); my $font_descent = SDL::TTF::font_descent($font); like( $font_descent, '/^[-]?\d+$/', "[font_descent] offset from the baseline to the bottom of the font is $font_descent" ); my $font_line_skip = SDL::TTF::font_line_skip($font); like( $font_line_skip, '/^[-]?\d+$/', "[font_line_skip] recommended spacing between lines of text is $font_line_skip" ); my $font_faces = SDL::TTF::font_faces($font); ok( $font_faces, "[font_faces] font has $font_faces faces" ); my $font_face_is_fixed_width = SDL::TTF::font_face_is_fixed_width($font); like( $font_face_is_fixed_width, '/^[01]$/', "[font_face_is_fixed_width] is $font_face_is_fixed_width" ); my $font_face_family_name = SDL::TTF::font_face_family_name($font); ok( $font_face_family_name, "[font_face_family_name] is $font_face_family_name" ); my $font_face_style_name = SDL::TTF::font_face_style_name($font); ok( $font_face_style_name, "[font_face_style_name] is $font_face_style_name" ); my @glyph_metrics = @{ SDL::TTF::glyph_metrics( $font, "\0M" ) }; is( scalar @glyph_metrics, 5, "[glyph_metrics] (minx, maxx, miny, maxy, advance) = (" . join( ', ', @glyph_metrics ) . ")" ); my ( $width, $height ) = @{ SDL::TTF::size_text( $font, 'Hallo World!' ) }; ok( $width > 0 && $height > 0, "[size_text] width=$width height=$height" ); ( $width, $height ) = @{ SDL::TTF::size_utf8( $font, "Hallo World!" ) }; ok( $width > 0 && $height > 0, "[size_utf8] width=$width height=$height" ); SKIP: { skip( 'Unicode::String is needed for this', 2 ) unless eval 'use Unicode::String qw(latin1 utf8); 1'; my $unicode = latin1("Hallo World!"); ( $width, $height ) = @{ SDL::TTF::size_unicode( $font, $unicode->utf16be ) }; ok( $width > 0 && $height > 0, "[size_unicode] width=$width height=$height" ); } SKIP: { skip( 'We need video support for this', 15 ) unless SDL::TestTool->init(SDL_INIT_VIDEO); my $display = SDL::Video::set_video_mode( 640, 480, 32, SDL_SWSURFACE ); my $y = 0; my $text_fg = SDL::Color->new( 0xFF, 0xFF, 0xFF ); my $utf8_fg = SDL::Color->new( 0x80, 0x80, 0xFF ); my $glyph_fg = SDL::Color->new( 0x80, 0xFF, 0x80 ); my $unicode_fg = SDL::Color->new( 0xFF, 0x80, 0x80 ); my $bg = SDL::Color->new( 0x80, 0x80, 0x80 ); my $black = SDL::Video::map_RGB( $display->format, 0x00, 0x00, 0x00 ); SDL::Video::fill_rect( $display, SDL::Rect->new( 0, 0, 640, 480 ), $black ); my $font = SDL::TTF::open_font( $font_filename, 24 ); my $render_text_solid = SDL::TTF::render_text_solid( $font, 'render_text_solid', $text_fg ); isa_ok( $render_text_solid, 'SDL::Surface', "[render_text_solid] ".SDL::get_error() ); SDL::Video::blit_surface( $render_text_solid, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_text_shaded = SDL::TTF::render_text_shaded( $font, 'render_text_shaded', $text_fg, $bg ); isa_ok( $render_text_shaded, 'SDL::Surface', "[render_text_shaded]" ); SDL::Video::blit_surface( $render_text_shaded, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_text_blended = SDL::TTF::render_text_blended( $font, 'render_text_blended', $text_fg ); isa_ok( $render_text_blended, 'SDL::Surface', "[render_text_blended]" ); SDL::Video::blit_surface( $render_text_blended, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_utf8_solid = SDL::TTF::render_utf8_solid( $font, "render_utf8_solid", $utf8_fg ); isa_ok( $render_utf8_solid, 'SDL::Surface', "[render_utf8_solid]" ); SDL::Video::blit_surface( $render_utf8_solid, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_utf8_shaded = SDL::TTF::render_utf8_shaded( $font, "render_utf8_shaded", $utf8_fg, $bg ); isa_ok( $render_utf8_shaded, 'SDL::Surface', "[render_utf8_shaded]" ); SDL::Video::blit_surface( $render_utf8_shaded, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_utf8_blended = SDL::TTF::render_utf8_blended( $font, "render_utf8_blended", $utf8_fg ); isa_ok( $render_utf8_blended, 'SDL::Surface', "[render_utf8_blended]" ); SDL::Video::blit_surface( $render_utf8_blended, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_glyph_solid = SDL::TTF::render_glyph_solid( $font, 'r', $glyph_fg ); isa_ok( $render_glyph_solid, 'SDL::Surface', "[render_glyph_solid]" ); SDL::Video::blit_surface( $render_glyph_solid, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_glyph_shaded = SDL::TTF::render_glyph_shaded( $font, 'r', $glyph_fg, $bg ); isa_ok( $render_glyph_shaded, 'SDL::Surface', "[render_glyph_shaded]" ); SDL::Video::blit_surface( $render_glyph_shaded, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); my $render_glyph_blended = SDL::TTF::render_glyph_blended( $font, 'r', $glyph_fg ); isa_ok( $render_glyph_blended, 'SDL::Surface', "[render_glyph_blended]" ); SDL::Video::blit_surface( $render_glyph_blended, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); SKIP: { skip( 'Unicode::String is needed for this', 3 ) unless eval 'use Unicode::String qw(latin1); 1'; my $unicode = latin1("render_unicode_solid"); my $render_unicode_solid = SDL::TTF::render_unicode_solid( $font, $unicode->utf16be, $unicode_fg ); isa_ok( $render_unicode_solid, 'SDL::Surface', "[render_unicode_solid]" ); SDL::Video::blit_surface( $render_unicode_solid, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); $unicode = latin1("render_unicode_shaded"); my $render_unicode_shaded = SDL::TTF::render_unicode_shaded( $font, "\xFF\xFE" . $unicode->utf16le, $unicode_fg, $bg ); isa_ok( $render_unicode_shaded, 'SDL::Surface', "[render_unicode_shaded]" ); SDL::Video::blit_surface( $render_unicode_shaded, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); $unicode = latin1("render_unicode_blended"); my $render_unicode_blended = SDL::TTF::render_unicode_blended( $font, $unicode->utf16be, $unicode_fg ); isa_ok( $render_unicode_blended, 'SDL::Surface', "[render_unicode_blended]" ); SDL::Video::blit_surface( $render_unicode_blended, SDL::Rect->new( 0, 0, 640, 480 ), $display, SDL::Rect->new( 5, $y += 27, 640, 480 ) ); } SDL::Video::update_rect( $display, 0, 0, 0, 0 ); SDL::delay(2000); } END { if ($videodriver) { $ENV{SDL_VIDEODRIVER} = $videodriver; } else { delete $ENV{SDL_VIDEODRIVER}; } done_testing; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/ttf_font.t������������������������������������������������������������������������������000444��000765��000024�� 2123�11760240073� 14656� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w use strict; use SDL; use SDL::Config; BEGIN { use FindBin; use File::Spec; use Test::More; use lib 't/lib'; use SDL::TestTool; if ( !SDL::Config->has('SDL_ttf') ) { plan( skip_all => 'SDL_ttf support not compiled' ); } } use SDL::TTF; use SDL::TTF::Font; use SDL::Version; my $font_filename = File::Spec->catfile( $FindBin::Bin, '..', 'share', 'GenBasR.ttf' ); my $lv = SDL::TTF::linked_version(); my $cv = SDL::TTF::compile_time_version(); isa_ok( $lv, 'SDL::Version', '[linked_version] returns a SDL::Version object' ); isa_ok( $cv, 'SDL::Version', '[compile_time_version] returns a SDL::Version object' ); printf( "got version: %d.%d.%d/%d.%d.%d\n", $lv->major, $lv->minor, $lv->patch, $cv->major, $cv->minor, $cv->patch ); is( SDL::TTF::init(), 0, "[init] succeeded" ); isa_ok( SDL::TTF::Font->new( $font_filename, 24 ), 'SDL::TTF::Font', "[new] with font and size" ); isa_ok( SDL::TTF::Font->new( $font_filename, 24, 0 ), 'SDL::TTF::Font', "[new] with font, size and index" ); is( SDL::TTF::quit(), undef, "[quit] ran" ); done_testing; sleep(1); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/lib�������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 13260� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/lib/SDL���������������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 13702� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/t/lib/SDL/TestTool.pm���������������������������������������������������������������������000444��000765��000024�� 2570�11760240072� 16156� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������package SDL::TestTool; use strict; use warnings; use Capture::Tiny qw(capture); use SDL; use SDL::AudioSpec; use SDL::Audio; my %inits = ( 0x00000001 => 'SDL_INIT_TIMER', 0x00000010 => 'SDL_INIT_AUDIO', 0x00000020 => 'SDL_INIT_VIDEO', 0x00000100 => 'SDL_INIT_CDROM', 0x00000200 => 'SDL_INIT_JOYSTICK', 0x00100000 => 'SDL_INIT_NOPARACHUTE', 0x01000000 => 'SDL_INIT_EVENTTHREAD', 0x0000FFFF => 'SDL_INIT_EVERYTHING' ); sub init { my ( $self, $init ) = @_; my $stdout = ''; my $stderr = ''; if ( $init == SDL_INIT_VIDEO ) { if ( $^O !~ /win/i && !$ENV{DISPLAY} && !$ENV{SDL_VIDEODRIVER} ) { warn '$DISPLAY is not set! Cannot Init Video'; return; } } if ( $init == SDL_INIT_AUDIO ) { if ( test_audio_open() != 0 ) { warn "Couldn't use a valid audio device: " . SDL::get_error(); return; } SDL::quit(); } ($stdout, $stderr ) = capture { SDL::init($init) }; if ( $stderr ne '' ) { warn 'Init ' . $inits{$init} . ' failed with SDL error: ' . SDL::get_error() . "\nand stderr $stderr\n"; } return !( $stderr ne '' ); } sub test_audio_open { my $desired = SDL::AudioSpec->new; $desired->freq(44100); $desired->format(SDL::Audio::AUDIO_S16SYS); $desired->channels(2); $desired->samples(4096); $desired->callback('main::audio_callback'); my $obtained = SDL::AudioSpec->new; return SDL::Audio::open( $desired, $obtained ); } sub audio_callback { } 1; ����������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test��������������������������������������������������������������������������������������000755��000765��000024�� 0�11760240072� 13226� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data���������������������������������������������������������������������������������000755��000765��000024�� 0�11760240073� 14140� 5����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/24P_Arial_NeonYellow.png��������������������������������������������������������000444��000765��000024�� 165507�11760240072� 20710� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�� O���$���&[���gAMA�� a���bKGD������ pHYs�� �� d_���tIME #of�� �IDATx{xUWY{s9;HBH�i-T8)Zt舏8ҟaFȌԢEJGtD*mҖ-Rnkn'sgF%9'<9{^{z׻%$R Hy7Jy7R)? |^KqcY!G"@ݵܿk@O{+1кak_}-\1?eiguMEcz-o򯅁[oĶؕvvq%nD0жލT'7,іr+{+ ]h9r=mkQ˗v#lk|}~{3п+r*KX\}u#+}@=θQMʉD~9Ov#+(+Qۍ&@~ wF>iŰqy9r �o% @w L AC4`/{Z* qc? GA G+r̨>Un*_M%0xYcj^pQMÄp@M(;'6 {^)DnPl$v4DQ&G4KZv3BGE!PLVn+5pa4wUrB&G>(ލH#rvAY>%s:tS9iL%R&M46&κryMtl k|.!?#z}&+r:@cP& <He&WoM)]czA["1SVƑq/h`~~9=XnΒpJd5eXhw''{t[]M; Ft@n9bG6(Iér)GNJmIY/1z,n;IنI&Q<Qz F-)z"~/Zη͵NzH쳐~ߣ5SvewW(B`JĶUpSۺON 9f^Sc(\;AlK-^~/}iǼW,{0qѦָOo> KB2q1DT%O1bsZŭP4 wI& 6%|nl:(C2]_S4Z9/%6Ѻ+ 9CE\9HȖerpAq�-_;s\ÄT'oI">x_tVخC]_t?j*qLUaP +Ѱ>Bi9JIVANwT%*Ezr&ؓȲ~6\Ȏ|^q]oyF"m6zrYmrj99tIfU9%QH5IgDz._ϵ)W"Ѧv[Sx[|"+~FvL ž6|~ռKN8º6Δ3f:۩믇 @zf<sZ͢ЙαnOϝ+&\YlRDpxQ;Au9~O;]Oʣ1X\bx)rIF3[ߑ3ʒE<Mva\pUbwrج%Q>ᫍ6nJWB"tڷ7|b^nZ'6|sIGS@UsKjL9#ϒ+J'jcm7JcÄQRu=m?\趮_1>gct s Z#ֈx&qڵ~בMԭ ܱ4HI3&\avy/PIoWvgךq<@S@F L{U׿o/۱mN.SۢP\^W]߁DWmge.n ݫNDcl@D,IZ*fk\Oz=ISOo*Kwșme!Q4M$SRf aɯecbgC0'q_mll?f~[rqN666CJ] 2iv, ! x8N~''[^j}Cu"�7AMT%VR&t6W\g"y9,OSS(;g0XLv p cKQ/&f&BM] I& x˔RWv5w_i*um7ܞp"[SrM'}Q3JnyT/v,dQhi:|E~Lq`u8^ iuOdS=n0"v(E"vʹif(Dң&MDGrF޵KQ̏7~LP VI K_Eej?<fU*Q$kYt(HvHߓ-٫7ux_uBf\rؿ3F,O*>)NA0Τ:EFCֵr^OKVHsi0ZtnEM7̧RS&g5+Z+eR~Pu\WSRDw2VKrgsqs-' *[ fH <²P >q R4z @3t.+@ЄKQ'&1M:A*O@ � Dd,bNm}\R/O|/2u`bJ@J0 Q s iq؂řzzËrSHOdd*ECurZ)LKVHsk0Y�h|NAsvk"Ҥ/pOD66Ōu0׋UrrOv{_$`lΐq9\H]юz2,qe.(pA�Y4g53ULHX$`Ǖ% UQ>0hR9Hh[A1K8ToAOZ:LST(6kM,#Z\m~Wx} ^d &v9$ 2J9h4=ߪ)&jUGqЩs1yd6rh.k_" hWy4b&$龴-j�$źp!¹ R`9KSI >�0)&G %6>&׊3"1LGlf;k]]oRYc^34Dn*J׼ �<$x) wE8}Uvd.n1]]IߕEsTk9Ȅc>Fj41יQ[^Շ+yn= #ER1Y^9h5W^o}T,NĂvDdԿw}R>,\iKc3gzʡ^,16?ߢmn]+z|_Ew;FƊo2ִѻ{01{N[=i_wh1:Vv?a &K{OK좡yg_O]YyKR51XX6Sq@iU4L.c1CI19<mVS2:+6pޑUYy]Ŕ8ݗZm$M(˯ROnzB)š7sBK,�b!GtT%×Z>g)sѪo. @m\T<RKClYT2U(پNUwn}StTa]mRuwe?$:h ֘<s Ttev]O3ͅE91-@$)P3N$ p< ;-/ԯRDz} -ד4掔,`tCÅhN}0h9{@?OŃ�}¸a;5\?̰>xS.?bvV WbNO|y#DcA"}>)M1e>Gg969bM!qx?F\PU(=՗UW Lͅh^@I@N;Y9Ui v%JIaA zze.0*GAd` Ts.E^HS4|| eg܋g/̨^tU|%PQ�Enomi-Z!02FBh`"p.wN9oQjzqvk6)Mo1n `o9enQ/?Hrss>4ԋLJeQҞÙT!Bgn (!33} RWC I9L@Qd�yP<65%=eb<mLah\]5(5 ^0')?egG3`xp ݃p߄W5)c;Gl4dAL:pxaj'-R%@64<n7T=u {F=Etd1<J. 6ЏM)bH^̸gx^?1)wk RY{@9j;kkY꿪8- M1IOwR7n?̤�#{>͑>q l,ԓ̫\0 SZr鷾]SjOT go0 =-]ղ{_F@J& p TwmXU0 їfXȓb)9*ݰw#TmpkLFJZ1;s<Q5l)ľ;fT&Tƺ( 2QBmp"] ,4ՌQXҠ Rbq3끗#)CE8yƌ[̈>9Qo/gdja $dj.AY8?3<z ҵCcgʁPwΞGŻ3 x8:UDLAg&8mr X:(d}\rMgraH b=T{8\< 9y"It17ޠBE`9JC~WKds@{˿Tz 3pd0J0T›[a.su^S kx`0(nF{`t6Y:ީL8y!SӨG3KOw[FЏzo3 `xNODz]�Z?]vZn2K<צlS OCy8sd=f ߑљZ}3=Dzv:}`gv[+-{%FggģbIӸM|)tN]A6YTc|~f4鳴8^}|I$ '\o4zbdƭ!'a92͈^n6 낉Cadgxk?45Ρ<IbL΀Q@E%Et=WJ/t 0&6vp  G.T)vmi2Lq鐗UCR~<PgʟYCa2ä5dvEW_1/>$x JO"dY_8B FFc S:)c`)d~:h }0jd�v)켄rz kU[Tp9- xg?ƃ;+O*O廭抭$-(L BjLs!S<&DNR)HKZmeѥ.(_Hbf9: ~#{ګ/{ŭ 'x i>$|&$ͣah,{�oT1Z2m[S &U| M?ȹ{1V}꫿Ǡ666iyUGv u h66EZgrc0~47/K© n]޷9E+Y򭃡9 ?o#x:mM54+=A*E=nAș[u Q)Ja`|vwt]%YUr]N8%~$MR ˹O g75~Z/M=JYCr7YO o e=4܇'K۱IC/R>*<(ee_d r_ZJu[Wy\IW*tk$M=B31CD>ɚ+250#nii ׾b0]y-4u+%r1Q3ȪXBuWS%pƒu4d· (ЫZ&m}E< ]9ܚS`MF= ue?1R.[ﲝe_wQΣ|j}%u5\"ܾNX5nja -@`|<5w>o~r4 Šu>c/=wwcqk\ĕI]l>W |sp>a¨Ndoa}( '#M=grgCgH3\Zː!EˢA}4(<:z9!m&UeeVr=%m͇岔k@QK&ewcaas}-[JպVn vx1+{%Gyp=}zU3~Zl�+(/tP.gZFZeVdYkxDq]-[äE<I`Ź Y ԧj}[P3&~la\)3EBl푁 @ڳP{yNʿ,g+H_(>l*9;7pw6\<K\bO&VQ95FX< Cxo}[\A/7OPF`0( gEop%Q^?!>7R! }O~bap9h+.{uy�R .Ɔ 4> pu9B_anHL,mjq_Cȇe{K{@3*XAit,,@u $eo˜`82tHdCp^v؋W+A;=zTP2^_Fnz5НY6@O>ز<1(xB:OmAxe.ktIנx4 !bčcz�78875txw) /7=d}@$ߥ#]ڕP=֢ TK_<~gY%]s ={]qNl! g<IҳF.E 6jt-WR`ԔYa2yΘC-n.>=7Vƴ\ȻOt:P4X $=Yu@ƌw;xÑCp#*:>OPm͎KGCA)D <m]|EIj ~ Lа٩4j1RR  7Aekɗ%xU/ECtk[iO2gT24 |P)wCTZ53hxxtn3(qho6og"DZF,a\ |Xcp,bVY"봲䜶, qu6#U}k\'X�� �IDAT+q:rzauuC|?wER!: tخ]CYm3n 7Ǝ> WAw[0 }^L3ai0~h7͆ LCD|.`ŨD ͨ*0pLjbX":&6IƔXm9Tx;x}xUzض:a@ӶSJ,p}RedP92mPX7};n }Zs^> ѣ3U oUJeccsoyY>FG|FhM NݷֈvH^b7T] s 0^ֱ}3^aR`.e=>t?3^t?HR`=-}2u3:b7)U0˧@nUC@þpCXyBv,>NF%gz4owP@lݻ0ϰ/zyK#| ?h,RUը{ޜ7x7_^ ^ 2]O-z/3-ϕmڤѦߦ>|HAlvd.F;Ll)/y;aB.7<\.g*&Ϡj>Fd1v`[gj9{Kr 1xڭA219Qea3OY@q/�]/2Faʿ`MZ< YV0(*u2[w`pa �%FkJ,fNБ1ғY;2`p 1M+2W!3ïgWֹ%.TS󆹘wI: AZeniCnEE(g̀O?H/GOӡ=rF+## tZߔwwD+)£sB rmf05R̈́8vwU^M wu098nr!=2p@[˥7/u @P<cTY\8-I6‘:ȩ]bGBe-fd2~_9{E=uǘnxh0M>o% y{|_c^xf&4/7!̶4=X qo*\o]BZ:a\lk덀"2ЌzGRdaSb# ?r>IK&C]~5lYg@n:n.$iybLY_(D $_o,[/.cQ >)Vg3 Lamq rBmn( eLh4`$ˁ'#Pu kh1s\bio yqX/0B?˕<|CM8v mL>9/ê`$p,]Zm|:L=P8T@N) [0v$d?,(b) gE$Q8T\4G-t"</"1̄,) jMZ<pj gHSLaҙ%axwP~`�0Xw?>^%{'xbW Fk!X-obmw$1 |x}DH3L3.P20בŭ]' z#QL6~Gq5hѷjWL"Víǫ>A3¡CM Gfh1Y^S BQk"ka} [+U%huƱc:oA<ʋ1�}%~~YD,軒^ƈ (8cqr4nΧӁ]rij&yJOwG)"�ABJ ?v.#t\<sT `/|5]g8VLZMC֢kÌq\}b?b̦SP$LWd0g2i>?R:\|B,Nl˘X͇C9]FuL%C$z{eĂeT/)ΈA}8o-t3d*h Yx/osѭW`Z=Һ&Z�𦲆n?8}|* >qhb3~0a!} CpBfT IyY�} *mX<]?EXٕuS ѲSC[t_63x�~/؇p|FIswS(鴣@!^nI+=/ !I(-ApAXfɝH#Fp\4HӘ\pn;XA\OE =ٴXSpGɁ+:mT`&O4~ ˷H}|#|VSۺ Ǥ]I GmV4Ĭ}MIu^;qp !*> R>GVIi3{ڎE$04JX͵fǫ]1vTl4%͵&cu02Ւsh/Yv4c@$_ߝޛE);d1Z&d)ob*A4 Dz%1(bK' d;Q�̈ArdYs72K2UH{tv T쀵9\۲hn&k4($*-PVt7wB_/k2_A\y%O8N;=@EʗBhI7'3ҳKv m͛!@,Y·]ON@KhaҼ)kK͙ . M>0`4SüR q � 6?"3ԱY|mn=&fhmJ#rvT mON<XL{H{(4}ͼ V@X$ T3 (Nϓ<3'8ubh}9xt+< | rî=Ъi9 쫅C˄c۳ҬTuzB/Meܞ y?gAbqB +X-W^ iJ9nӾP?@a B Q} QEY%*WTk  wo*F8$IW|[9|.G?..A @cSvn9۝@N6Vص4, ٜL 9Zl3{?f̈>.xH.s81Ά/| Nm;WS[}L)ɹƵ+bM<~d*iPIeU%1TB\ݺϿ=Nlm\G )n/B98wM_ heV�˧`!=rr<XI%)uUs;'fcӥ\a S#ĨAR.(څk#Շ0i >|fu~< }Sh/mڛ4a\K̖�.x@h=z4I4&0Y(&G‹Ie#Ll]CX1Ep߾H~x:.$Va� 46r!4W.e7r ) N=tR)5q/Tބ %^ZK.Gk\j6 ?3p^xEp62\mB Ji OT>QL6 ¥3`aj{R&q 2~XOR{2a/fbmu'| D± ; Z;uISd +i7t ޲CFd!s+ЍP^Cn([6]Vk% BǚcD?2>�5.^zѕvskV9pDjzEUow=,-5,Fo[3L|ʺvxϸEW�{[5P%bfU>P‘*$yV[Y}fI<"\~bzzE(rM96́Gbl>B'N#>}=#d"YFZά@O +n^P:khM-[!"ia&w7_!__ҡ pqomx~OUf 3{̇ϑZx4+%YCypT{+hYnWMtkg$+;qm,Vt{3L#h )% KzjZ nЧ W8oZAC sPF6gWʦ/3e*{s_C0qxێP F}hp3=ڟ=P� ZUHSpr:@|:מ WX#;\2ZMϯe+*84s `m T<_=mn¼xj]w%ٽ ɰg oD 片ǭ>hߘţ+$c%,I癆"DZ"<Ù� tXuC|ǥ�ǎZ1f>2MmllGM^H"P Sm-,3d3A@f{፽0&{X|ܫͭk4tWy|a~K^A"GHAMm+I9s/LH4H|d/c}5qecR!,p+ck}fl.inRa4,qor߹(7?ڷh=:C8GS2 PԦ2#eL4<3Iǿ^ₔ2X�S~g&5d͎H ٓ3fuN5)XXyz8dW"#Lv>p\!6s_u|kW_¨'oit:+þ&'+;}y 9匕R|=Ү%@׬lu?YmRLgc̶ܣ픜V +3vq)F϶ogbr(Zh='}>hya ^9o$~z~[/ "D$4Kݦp^{ŧ YMF_H)aѢyYy *dl^8[[>n[Gn rV޽s,bw: homZ]b˩N=B nx$%)2]4teL,YDr[=$]5lQ0 0cA.dpsV)lqrNtd!S0(G۴9y_e8x_8Zz+FzN~()uQ+rxX$ ֠8J&Q`ga.f|.AP�k- T/z;hHk̲{L' y}Mx!)Gj-MFݲ[NM(/Zo[Gm{ZHJѥѿ >WP;ZG\eN׃Wz͆P,g)l/ܺ];C_o-9tr Pܽ6oZl |]tS+,YUwO5X#oߗLr9t+a9n ^> Q je  5/x@mַ;g|NXdDwM/BQi2 qLk(P[o-*gg+BƹhA@9ɕKD OKoe[6TM򒵅zKڕ#DXt4t{v~>v#]MqFw,[m62|LA:pU9]h} óHHʈڍAWy=l:&q~ n+'^4sl>�B"MCϓߑ{K??/g#+ml:J)ڱsL >ݵس笌1b`wSPJpGkW+a9dt \>?p}vS?ƒ%%:@u}_:KEX˺eʖuOoI\=ʙc͘ 5DY"gpjq@zhAz[mi#LaP@ڜ<vujf9RvPFp\@d0rJ `J1)a3QS^NQ[]ER"pSBp~;"o;Α4Ңs='ɹxz g4n6w%,]_iTIJxxe@|f`@v}�vf}΀9: ?N3%կٜ+Hݴ~ N$/9R:CV{ئl߾B}ıУ5QK<A n{Sd4݉}U0 Ԃ{Bxf/|P 7@CM.;Yӗ>ߝXD!#ojAV4bUvJ4k9.絕ɩ28]pDURR)%mm% tр$Sn:~GǪ ZƷ n393q$*mA_[ 27Uv5,K-9PKAcHjսb.h'FLj5Roޜ)MSZI*ҶڶԓX\9~,2ž<1&>BQBTV}_Ky.!ZJ]{Yn'sX Vb/XdmrT;ۖaV֥MmzrI^34Efn5woLk4u1~vX6}5Cbu<IIVSOo:$^3g5m+3[Nez, _]ø)SnQzXS*k ~^Yz[×FviYEWS ܦl} JRsq g:)v <W7~gY&zsqL9]H*{\3dfҷΑJyrem"_4Ś+D7E".qs疾Ksi%Y{R":w3 GJ}-o}Bo3*sw򔂆o_~~Cn.uk Zl*u Wڷ7|`=>.I ~{re0aj+:sN`ߐiZd 6,Li28yxUEiN\u N8�Sw4|Zʆ'v:_Y~k}WS̕y_~wWN~'Nv 0]6i}=vũ kWWk8*,<x�%Yģm8oLCcF Hpf*\ΎQM #J7gLaǩQXC8*>9t`p 0LMpX19ap ľ Nk+÷}U,Pk_A}/'"hZBG#jeI(ǜWOڟUs,xƴ,˰:]> ig㣬1IJHB "$**m-+ww{koiKxm-M[w+TqW`Ym � !Bf2<]sg2WW\Og|oŕm@cL#bmoMOD~<snOԎH<`I!t*ft7ABԏ /ӈ ɏ/K?ܙ]lvSCJsZ gDcp}5\GqU@V\B&<re/SkyBgͤ4]6gjoA,nRQفԖZ6e~-o^@�� �IDATlΘwD?" }*oÚoO'~_s`D[G⏯ ZjA$ M}8ψne)݈*x�U"^iS. 3ieB�#�"Hk!-b+P Y Feš|`:T+KN r{VWpBF"ٶSbִEJ|9T$Y@gy[|~"N^Av0 N7sǽ,/ Ѥ,WSax.8 2ye 79 Cn'̘>1rF>c, -:?EwOxGh̦\;Vo|\ἔ3_om.8ВυaaC`A -82i5Wlll lq(6kDAbik~ eQdvI!xafD,~.@Hq6XÔY%/(yU%O.z{%1vȦom#ޥǀJ 'I&u痐q\u[{lly)^ RD=rk1RFp,r8պg%H]eK2Q+edjPIwR:8V7!Nlt^_o )!$ Ⱥ*dtOJWwB7SU*U묙yzrjX _Gkz/iל|)NH_tO ʘ7D9#GpaR'\J`0p y(9ul*_/^P0ʼn dI8g+鞓UB>h e͙@և[+z,Vd[1p3I e8Ћ<m,ukSaנyi[KcoFTz^WGKC;D-@=+9Qя*S} E{'D\ <.CGHVay�Z7Z1*wz=GD=/8}MyO_±E^ +AK7E>H؇ӂAG;.`)k:lB\9 #-~$jFH%cҞ:&-li[ ¹ډ" Ok'"rm8@U: -&Ŗ^@T7&8K0k2}@s)~E9zud@_<֗h%˭LxN�{~ b~I$Y)/\Qcv}!lIH;v=4\&d->6r0}yAA~i|'{ 8a|my47ÝAÃ%RT�|m5R?E4~> <쀆 a �аbLMkMK͘a(s}›6gVtiŒBqILq^qJ2֮/IE)I&U aVWy@1q)!"s8&+ESU /Gm+2<3,1^)saG\ץ%Uߗ5FXHM[mw/#mz6�d~܉tNנu�qC^5gU=mw"I%MkPw;1m X4JݨzzNqmA˪rH)Ry,k+@dJ^$ طo4e5%@LZ$gjni;)Ԗ?"t� Y~v?G0R췵)ˢ:>ht;O s-u%2Oδf479'39߬l&4^AkP2k5h;3gX,P tY۞O5w?k25gz "J2|d>5K̠S6UN\wڃ i'ym0`X`;ǣz}ktj7?r25kN XN </Kɬ-X!YW}M7yAP``�+ü|]D_wDwk”DX1)5^ sѦ/&)'ƛ4(Ǟ5*oSt+EQ \ V?<!ۿ=)ҔRìi "'/B&ByxK.,.H4uKclsg\boa Ih3 ^>)u\T\dt݇")}_\hOZ Jǻ mb휘C6ޕ& ơ5N&,t^'mTo YV|-nQfp\~=(Z]'"/_,b ;J锑?#/]eB'5a@8 &gS|ﲡjw/=a!NwB_|Jo݋ _$ſX@fę1Wv9}Ebǘ~̑4p,GP7 Ok5gJ% Ƃs%Nݨ쳀(ɂ? q;3WJ.2DwYC RD9{.bZ) 0঵zX xt.LZٱUMro8">}KpcZԽ{|-+,)�TNHSƿP4x1YVD[R}A_$-eW_̷ԇ T_Ӷo`-Ph1]REk<CDsF k XDZh3J;u ;K#*'`)oøn6ULlR2�ێ8-t $7kI_ RBb!'=1B[ -Rx. / 8-8[ )]>&YtO〝UC`˗5>xeE}uDrP,-@ZzfVKٲb!IXQ("1m1_68ӁVRtbUrw`%/"K<NHģ u,Y[<# O~yn7rEB.3ߙo i0.�p;pȱ sؔ%'`Ɓ6^} 2k7(ISORk^svc}|F`�Ga#PrB_ղS1_lr 2}ŝ-7ݽKƇ4>=8E23׶L\'Ďwo W^r+F*bAGr݌y%75u][\/)]J�vWm;*I>0b;{#%f\/,C*°Zd8%A`* Z ћ�Lq9NƝkK W/n-`e"VYa+*,TYR*MBR6E7 {`dbc`L P(F!TEs!ij>j?0tp}@\tj~I g/m; &{_Sam*H.JZ`[B\r5ҟdV^_㥚#t}6Bh=ȜȀK{:J{Cq"^ \/zPhiG%OɥN9]T@s}l-5j#<1Xts!\LjPqPU"$ؒH^8%K\}Okp1ySjy!K5z>fDZ0,%'4!r60}6JNrȥoӵc4W#CJ U$3G~PLJw?<Gη`D7Xގ.ROROq3q�< 5lm&XZTp+o/Orn/+ PRn=T J$-*`q4Nx6Zdf)3uk]i{R^Ah__=Nס.XnIw-a}Y2e.8"i=fC&pBׄkYvynj+$0 ](E]wk]pKbjs{Ѽ]c50>u̩YC{#뀿I|a1 Yp3L @DzPDZZOBY'zgviS-|r�0* UnpT)<EVxXQ7%KXROFK `Xe3*m==o;Z8qߔa^FگXd+LΆ)!&Te \#z<#Sv5ZJɅPt7I.~uB;@% )YW*a2EnM0`xCnrX0;)ѥ6|6?@HOCX̋3ϫu{m$}K8mppe] ѯqAGiGm%톢ѐ}#H/xyR8u&l nɆ1#uy<=ܕ&3 nDz.vDJXT:WQv J#~c?aczE2E4vr'iʗ+}g}_3FϠ8K ЪiBgI/H6ǍVc Ljq8#ɬj_Eb~&٪Q~(΁(Xh`DDڬڕIw3 ¾VҦM~<OH,:#ɐYq n?-OD#doS�AŊ~K8[0L{*@:B;{- q%kpR;nUviމS^v3sa[jX_?1>m .+ẃKwH?-- P[#vH晎B|]*uLí o9�v>U!|A3/Oge槡~52EYscFE/(&D_2rvsk6e6U#9f\HʪR<L 0}\})!` .@)nQ<ԋ@ 8q_BK{9.N0nA "?%9i/wl'9k?yxX1|t"i,ʳ+llԿ&6b[Ӯl= V}�rۇahp1u}: EHOTF[�O©Zh1v$73;K*ͅ6 MLӠ|@;@F96YL.T]|߸[BY~\�9}ǘMoaTe_+4ﴼƯm pGQ۟K7Y'NӄQPџ7J|�ʻ@| J)!5 h,M}߫r^%K-uLo_ iɭAv⫪*t8k ,{Ef\$aCqW<Ue|n_kV XrСA  h"`¥VE& 448\XyOVd Kx^*_�yA&b"y;|Ei (rV9̿(WZRPda^ x� :veƝCw? %ޒEINr "R>Ex-P|jy*1Ҭ}&.z=Cħ"ҚOVCQ̾p1mrחjCW]JQ4< 쀷W8ےVfQ}AKQh_-, \iN^ K铭yR-D磆3kۊGZ`fqMx>ַP'fږrOhP-rmA "P̔،\yyi=~ e7 E߆GvgϦp:};f~ Qh0 WA ɳH3n@F UKƓDf#P7{ۏ>-5%bG1#&3NB~S(Ju~5~N X fԧLj_h@In|_!tǪ�4 f"\\Ĕ7$skG ]ᢊ6.^@"h! ( Sr}׸�탦 BGDَ$0TJGr6 CJZ !U T/,SR,t,޳�p9 @)AvB^8L_,AXmj;m㣍T_׏,`{U= ;=*JCa� pjZG8Cs>{@A= ձ#X8^Pzbrxzq"CWzq@եJpb7o9<:kO Q dσf.)t"2ƍY 1IDQݷkŀEhNhn7؞;OTRgd)ۑ ;Pw�3;b+tHȺ]\߉4L A,Njtq)mmȏoNo h\A&Fb_;^Ѱ_)1Ə~'h),BR<6'G�CK mQr-B[<+YK|xGɫvSQǗto: \ \(ӴdY56QWUDQ@[)<2}/wlL{˿ vjj?]mIW|?1}*q8}]Du߅^B-i+PJc sy"45q q DI%9͌"J¥{x [/%UްȌ5Mr!xLr;,n&g_e{! wSr!]'J `F|&Tl4meR<(ʮ> SsLE,ϼHXiUĔ>>m /ƆFu {O>l]<:퇎#rRm90�&4HӠ\2?R'#͖IU`(EopǞpx FXMH.e~Z%j<Y.^8] aS}HO>Or�I^Ô;]6XmIbF�rfE )/a$TbL98=xՈ>291a6B6~ $o܍J$]=_257V1s9_ }6P'Y3KQܑ]Q�oC8wĽC2<:V.r;*e7UDI.n >.lcm` )`+ꁧsgXf]Ho@cDno4'ut7s`ɇGJ`&dC~-4Ƭ7�w'uo7:8\[g:aH&Pl0s@*~T|m7=g"pp^ mF)={{)%ߢ#�_)ڮ;!Jh=Bs!0BY7zڅwbF9`\?Y J /ysȲ9( ^'z,whm5jۮKvb,}<o-iEcP?^"\m_?__$g4 ;ឯÕ_,/y:|ѬL/uߑbYᴴ JpCWEPZ;+/CD"ʚ}0Uѝ^A Mw�^v}( od׶gv(쾣fT.f /jU GvdS~ !O�Ċ +ňȽj^U9r_%{ 64Vf-?5CjO�� �IDATt+h|VZgQ0&*By&k+dB56d-&G#D9�)[7 <VB{ʟ89,SjCt?XrŠUZz’+(`Hy9s) Ogis:ϭL_Pg#{Zm6d)֧6Թa .4=zY={p A%ܭ}\p#5>|9^#*ێ'Q>Mj �c!|<hm\dC5;.Dj}3.Ơ򝑕@5@Nm ӳjc(H01 Ct{z tg˅kᾈ6_<p^epGau.}QC"n8-gd$2Fzߞ4(<u/D?(M}`p=9KKPCp]kے,t5Yn [m:X*֦dl|$@1Y'm'3kH;Wʀh"]nG沶aKu^u$YO4.RJ8.SvJ<]zO�T2FwE%?I0j4Rk]ϬY%oø)hnĞDYAFybIQ^#Z| ^-4D %a'D(!4&;KR{DKU0p|au;6Jy"q\ȱ[zl= A+O뜼TI+R8 r` < k |N x2~FBnBxB u#EwN~_Wλ@AWQԐ{|2"1Q%"ؾ/D^oV[-c474&oGB1p4x9ե)%K "[R؄+hSdLYmuLRCg/ V$:?T EPCFⷚ ,/k "o pzfN:u| R X::?^ L*_'> {*ݎnH7vZLBqaQ>X<r_A>$?jH;x]$s^"(d =Fu1Y=Y}GZvUiI׸0 B%航y9(e{D&\12�Ḑ/6_{ n:�"J&x᝷uNGR^*3,5 k&$%'l%ԽV EH#P{QV mRx ywèw!Qj?�l#̰cԝz">J`Ր8"ě?k`VNo;熇V;Q oA}wA keI&Ҧ!cv@_i0ԌbuR ljpP;Z?o%>ؙvx=I8{vt|(= hRn\g+Ø"h 9h!b$7='):cd-ӡJЭET;R~\+礜 J(L~Q p˅<%pȝjFng7M0ol쨓ˀGsf;aJ/!xe; nb\+4_o DvIp:~_C˵"T4ɤluOdԶ�/,&w9)Ӝ?ѮacT~(W0 @70lZ i +[nxf_'p1$ V6Lr.io"X9(M1Lat=Maӹ[653x}^Bb;PRT|k0fqœje.ƈx0H1YNJzMwys] ʠ{ Wĩ6/7nzWj&ulw S5@Cg͸>99: WQ{0.�oMC/{B��^hYOX&Ҽ;d$S{i Uqy_AZ(=2;[ W+n.2roeV79/�YYPӬ@㈯Wih?` a\[F)fYiUǛ)N_&E춏(:.;j.6'#+bW;[HOtXDQpuþi'[-)!WZRi)u /mǩUC]")]<VQ=9v|:QY8S-' sV&F`neP\ˠ QmWlXNJMX́CVpB)uOX Brl0!Am-1ݓp )!|G V:"f`7,`Ϧ ۙ/F`=jCd!I峙p7d{d>=}G׉gJ+3WB-rq200,B{4u�1TP(]aX{V{;b,vȉ> zx5F # d=p6JJ^/EơT̸^?_|+ vPL[ &Q혭U0I/A׫>8�SvbU-smv*2oUq'^\듽q [dG8 qJʴ 6\8&,] ,avP :Nɤ�o볼C (N6d}R,KIIV Gқ H9De}8/LJR<́qkPK| SH "&*65#WON -(jU HyŲt2x?%Cebc!cO-s13"I2V<ߦ=&~�MwէR8w�ِf.nzO)a e؀6pɗop=d^LF|< �U{  t~"%Q1%JGRw$! <Op$jK8@촬N! j߄:&ۣJȱp:7mAdz) ͕3> Upn7lJKVU6-nA/gC\F'K PlbO_&hW(s�>cO[f\UQyRpp xg=XS*M}8O0(�"GYlK֙yQ' LzJ fKLSMvnuOB >�!sjLj)$}�WIS=X{g{ ?Iq}L.<M X4dB t3^fR͙k~#aSA1͈MUFgP.(fFH ӁQ� #P؇xq?}c9cFSJl [!.;,1jE*n~pZEb_})=F<m zPK |mY UEK*>Wu!T)L�N-:!=+GeU+(fY UKdqWP�9s:Uؾ /f2E^c'-('ҭ" [8 f=q/\ mH@=Aɭ(HU6v;X¦vȘ>JF<#uL 6#oI2՗ز>$4 V^Ȫu!6R^r^.R H"/.n2 ~� rW*mE}4ľ_([]y-U}'q+{. 7)]ܩ2VM9z >߄sQX&Bp ݑO5Jn};! pSIS \H9xJnvwB7!8Ɨ7&Td#7 8b١ߥG _f31ŰgbbXR+ytfl], 'eKď#0mpvWX60sT(*W G <[>A0o.1Ks4?UbU"GT*áU V{\Խ0U PpawUx^^doY=?~Y%*;w\#D}$T)jnxL3Rգ s�,or\mgr02q:L֮Ċ";ݧOU BM4mF%7"5m>jNUB/d|D=Dھ�'41cr'|N߂jI߀MLk_F܍xUm& ]&xFt]kCggd;չ? [poe-X <EY't< :px_MlpZfV%]QA'Bk<(�*rL8/?e\|a۬~/kB#k�ɮ>0;:}}R>bBKm_u9jBhN$ӞjW͕Ix"LO\:ϴ (; \!4<ವ * apl_SytoOC ZTnsg =Ļ7},vZln0e!Ly ޕ B b49?& �L?_̝o9EݢZ)nT pf6lR.1\!xmbdqmL~v\h^<yC {搜Ņ�C(~Q~~c<4Yg p[)~: ҭ0�~ƾcA/nh;ztLQ$! 9$?ZhaXg�PoGW4cή!SF~&@h ͗P>nE,C- 5|rOۥ'CJpr$Z- $Tض&%T$K%U"ьyr\"J7ai7ppvf~adak3yhyB,ڒ!azy׋p,T1D,)BX&[RXDQXh6 i@ @�,T0aWӴvπʀ N|5C: 53w؀?oP錙AJ|jay 5ߩ˱j@!D'0Ɓ oc !~.BbnӞF /ÅH*[e:v 5^+OT ۛJg v\><r{A;MzpP鱐i#ǝ lA0 s<Iq-_O5~= <cG|o ^+˵W+PԲf�퇗r>_B.t"rMh \`!5U/K&jM+yZ*G l GA9֦/v2s.} 5|m@/"L塲Cծ)Q溭U s87ۤ\e؆Fy )u1"l79У;eP!$irTO;RI)Z*VU%2&ajU46YdʁK!'^ӳ?H{ YO ױ4M`pz *u3r˺\U:s) z%¬}sjک #]ِ~+(7zqR^, TjYX-%g{}}jb#jy>MÄP߃)#nkV druPivY̻ 2E͏/piCz8__,n8-`0|ޕ,{@w pX*8"NBanw[9aI\jj9BC�e2=~Iwad<}dԞs@� Swp-.LVT.e5P]&o'ʼn }MоHk2.kH3EnYx^=w|ؾ*V&-@)u5͟](UL5({RrܿaJ<rclw˘~r)g}8/Ri”@� `:|^6̘^ GWI#N+1dxw)f7QfȻ -`j%,a]tյoeۧ,색{Qqy;�8WNXX{|nj?(BLBAJvm2᪼*M+z*g ,.ߞQF ==As#I}!.vbqL~A_Pu�jv P!\K𛄍8.?O:g Kn)^kIG s8<yat)|zii~Fދ�: g{c<}W60IQЇM:c8&d9,+8e}Ք7Sf1�+0Eɭ\K(;%?at'4۷C Pz}8[:PK|5r<cz_ AGJ-rOTHq5Qǰ�q%,9{_Uu瞓\B$\(C+Z2-ȴt-bi:S:2SmQG+ZTAQ@An HH^k@9Aw~>kk߃e:TVDi)a/ {!xw/\yHd\_ru2бH8ܖ2/kg$MD[ osA=93-$yf]Sx\+m )Ýuws-8pr;^Q\ǻeLYL`t0`9U U�&:9ݜaJإ+aw%+Ei[wրW=4˩4BzART@[j`~ݕоIXc}h,s&d8J =,Vrt@|X&FLgLrD~MBxÁ<\{:2)(+=3MʠRUgϥ|2,,Y9ڶH{8]:2_';\'׹o]y|.Ns  F=cWx|LyQQfB .KߞXFk,ԩABwԕK@<wGX`j\r7j|d_.}R/.䃱fKjڱ#uWv-1(l7\sz˸>8^rt!o:)B꤆-Pyx+3IkӠ #hϏϒ {a| D|i?;= }I>Amя4< <-eCcP8fD.ss@rTavO�H3S0mT&{mrfкTRꎎrcZ´Ҥ�Nob;lA}@)\1I_)YBw4gP "Z ` Si3# ҖZ[x]i=׉׃ Xr6!NC!m0n[/~h&A^i)>6pvZBղO ([S6@L�� �IDATֹ6R ւK=Cn$OB<_l ^IPʫ42sO~Ca&{7brq!>(zkMȷX–B梦 M䢜l0"r=_i}H}p%sR}H?Ci:8׈ Of\މ"cc f4[E\+I(o;aa=5σNv%b Z5�96<ޗ >W_ 5*"P #|�Ngg-DπCOPzV &s4N^fy,g rPwٲ0WLM ? QD�aj0 cxNlgtq>c�TWgFD3 wVI?Ec9iuw7[`4G)Zӊ:1 C^kK ƀSwsȷ*妁rY_<vdMVΡ?F|Gh"O'PH>==P`:$ dDc?}d,f󪫔$%C&r4x\cg_HCQ}`-A%A~Rz+j;A}sgo\xyðçH]cGW`e0Ineg]@2Trv1 ҰK a(?3HePMq ! 4 _OSY^A!_._J nC•vxz6pjO ` {@Y._o% UP"< /~)!p8tPߑ<<.:{"n~J@[&L_2ۘsc3-<{|q dqJS@l[8c]cT3TƌT"ixbgO\;O;&bFJP,2$۾_Q<oa$֜QeI۾ع"/Bm B<(EϥJcơx5~6{h N7X:z] ^k;RR/^tHK!˪k>k)UG`وf4s>.{aL; Іf$R`7,Yl:k=ǛU ٸT*c0*A&փu;N~BlNA97bJkZDxzo%cE]$% _đaJ5UÑ)~DH[b Vc]Y0# C)Q"jUvUpg'=sC滸ҥ\TRw} LW5I߿9'7$5BVf  :(=|ee<f`\~F&9v;ʐ&,jXz6i$%ew6H< mFe9sփ9Et I ;c~( b~2 t:J$4o|:O!"m}[tkC͛P7$E[-0,=!鹏鹯 !-j2ȼT|6f?8 j0?KX'\8RppgW$qa+s!ʬ; O[k޸`}6pXND@x#`Y{FԘUV!$|!2E7,n9eJH[t=a[-w>H۷ XTԜ?|Y[ί:t@ypv t!-}W\f ґUߞLq`}?SˊH;td aW; ,s;/j^[>/|K^7(3d5Nw>g93l JE`<+ܣ~48&ܬez_sVpz u/vR -Ea.X]qk+JSk`{ӥ%4 B!AoXMQl|�Mږr^8FjㅌR_H`T7][x{1ذޗ xsUPo`p8ݒI+1›M}F\_ZtU-3y\f߀$7b~}>>iBC5E*"3[RhB.e ";=oBOkP}W xJ{aZ ߻r&HRp<{c ;t�Zg| 5VlTï\[f`}2Ɨ%Zs+ԣpr}#g['}?`%Ci1y{/ t?S%ӱ A_"ŌVi6Ÿ`ڳ)iHJއ68>|G,  f�&t񑧵cZc[nؚJ]|ьAaB 2(d\/u#OGR.b-گG&_S7 ;TɗtD}ݻ۟/ɠ?l>` ,W+ޞOr(.By.aorZC`cp (@ JiA>#k4vLycо{aV_BK)RnG; EIUF߈\N xNcF 'k$0= '}D—Q1$]#/™JSx\ŇËC꜌:wCxKC1S0aF7b9 Ejj(,,ĸ-s[ʅyǏ P2EƹƔ}t z*K)QE.v@*A0@{N1ZRХ6fk;BVi;aJ )j_lZ88-qߵ)7!k� jo7 *eEpA8H!l@vV#ʹ4BF; xF$^*St7} 3>p7*(\JߠPr#jV9\ ,{ $&c\%f&|p5{ǘ@eZ'e >s# "Gb^*26kK0Xwx6jFkӫO2JLriX3s"D^^8�?owcY'@8 &OiJR�IT>GBO}\H߃L�eFef9!TOY,l2Rv=$M-൮:N:)V!4yho'gsm'jML+l}6hYഠ;/tDj9 (DyɋC|3,_)W+CtaY4Af)A�dIZy[dHo&Vsro'wB/{j|97yr[avĤ;xC*>Z8* )XI% `| '@MyVW5wdpx#, E8lzREX9[�qq!l?ӅLi~f-DNY;oTHOLWSx@ch YNW#>i/^ E'7BA&NOR~.$J7Js@o8kWps7j 7̂Yj 2v6H֕F[1g#d:W箮ii.'mJc~vj1sI >+@{X:3?YST$_?P VBNe~йM>aFB~γ#_ʊ/4 ;-h;<HCwryy&_!',300Bx<vjq$ʅۓɶ`'Dk .!L`^=UZ(x Q0DaDA!#m1:L쉀g5Ǹz?Ln#&Kx:+!?^-6bNݳ2նB8f@s�Qm8}Bن95{[/`MGMث{6Qx<5fgA:=aFBQ#eǍ~+ivB\?6َ$@Sgoa'e/Ij_ӛD=g>weNimo!Q6BB"Ku 2tjlkBt>1~k 6 =5+#8A&6#%.X:ʨn@#(3m/[ 6fز ^�wg1Y&n&\33i[G.T @H,-1~]M()\cmޟ%w8up8،;=>g*,?6 @ ḙ^4Fy=:wZkՑuS,zdObħ޼X{ǘ.'>J3bX Xd!wf_^F)B e$7mZ UT$j_]tRbivQFZ#+&v#sL/Gg'*H䤳^$hfPUږ$3>2aQIpڏf!|?:?sn+ tnBSjioS6[[ػP\>w[ev1 UK{jmAt/86BqEH8>B1T{_zl iL͝NHC6 JCs9FTQ%'\E{"z(SrI_-֮ĎK=hnBSiƓV8k>OJ#5NP4>eT@U>\uB(ՆB@i%;M@h \ ɳ(:kß998^h_MQ,_L| dM!ka񞐿s2α iʢ`p,{IWHb#"'#:ɷ÷أ} $ȳF7 @hpkTavu~ ~r~ݒOXcCEG[> 1\(VQ _]5U'1TOkrVp}2iMgimM~`{1`K`d>j38wny#G1tOcMi?Ǽ$޽rpzLB�qO;8"g Em@|W!@�~9!~^97bjZ`@۔p:-ξgpJޅ.ܥiw} *$Jm4IdN'g'TWLBZķz"RIL\ 4U*Q.ckdYZ*pE tGncHm&>$A=a"No F/w#&/m3ۀp;Z#>5xVKA}T{7[Iu{IO셦&nM~H?"mqae&5~!*`hQgV\ ] n5Ac3;0V>EpF/vpHRϧKy.NDςIxhYjgCV)[ ʸv=b|>H2.M31v (4"(c^hdx Eh PLuAL�(!S%|m.Z/%CZJ@SϠV,>˺\(rj�8ԊĦr,ZQ)]5XV[M"kL.KMlUwXKgTg) pUg0Hco.W:ئgL1)3H) PVSSf!>iU[58玏<pU6;+g3gE%PI6M8;>"+˪ :ܷ$NBm *1V~贙k자Rw\f@K{ڪ @)pṿ5LE]n,g$U\8F;^z=8WC)hn`1% v+|: E .pP pS(nsu i#=<gQ> 6~+ ="f B6hVt}݂:.)UHAJe;bqo.|\0p&A l*Sbo5f�U&>'9KHyĺr|`|* @S�>aM`(>(c9틠s&.M@\K2!M`z7 m,rM@ ˆ=iCGZҒm b5s #&Hx`Bb EiZXë~we^4L7e x77,OV~90sjӯ™(/˸>-+ g5 -+e\,Β5|a+`-1cu M 'oVD2c8A:B:7ld+)?Q |Y0$ji.k!qϗNyR[{.#xqm>b<q;+(B9MM(2b8N2RGP384ςY[«~ ajOZ~k1[PM U'옧Jl�W D^X3zҩ ЇrȽ -k(2(ǘD`vBXjaiMGHӿ} +FMrzg=9S /?ƭ u_r$=z]'y?:ZNh ?'$NŨ2ȱTة؀ǜAcPd5F"$+q! w} P䛤Ɗ �l0"d*1n ;lG'g-{ /Gjymm_xd\OqR9 2/i#Tog# cއ7PV9Ξ,6߈QӟoQ>g7Mz12O$C!fbā2ƉJB4G&(9xWnח$IIgWqP3ȷǴBFNMe?$N  ?Gᰨ2uQۦM-JEJ$Wh6rYLat1?(B;x 5"_fO|5-̓ƒT8Z~Wߞ3OK5-iƼ3Uu^'(B;s,0}M;qBAFiH&Bi^[ީ́d;)˾ 5=6PcCl0f } QGGǁPR@uA2SYYr>pf7֏wpy |`Y$ }hsdXFfP0pNAZJi'"~"ڱӲKG$U'sִ'O~_o8.X yFΗ}j8LysJ7K-kՑjKDWצ]MC q3@e\V_Ihi"~w-qET4n`_ 2*EZUTԣ]u 6]�hnɰRwsd+vBoo'd:PNӞg "z[Qdw4s)ڮѼw2Ǘ㖙MΕ>.[g3q4 B.Co*<"Uɖ ҅ѬM>'̣3`M y]㯓 T۬|{)̅_R s4?JVan/&88ɤ_7UmQ<_?vNɲ̃zK6{ 8J0A[I'"0ҿ_` g{i;hl& ~d!g=#1Yd@BZ݁~jI~WL8ԶcJ^6tD*up4ǠW&69Zi`ߠ�� �IDATD˕1y^8=8=||:R4a- /WlcImツc)s X7 '+D]Ȩ0&[)YZ!En(!-p*]([|b-H@K~$ɅL= Ƙ@ fx'(5kGIqY@B>BaFL/YvSeϛ}_ ~4_8a {˶Agຌd lgQELl! {[Uz!ijB  1J Qq\?b)>d4\*P?3{1)]$t@+`H?>HDA촑`{4a^wtś)qf:[rAx^=A=YŖB1LPD ~m|}61DnWe@8m>Gqȶ{;�#N2ì T,|$SP%@SLW!mꯅad2t~#ǽw҅0j(-'s1 iEwy`؛L #\=PHL$ J擾ٖ}-1jn!,S%Uñ6eƎtyŬ̀P7xpnCo XZ[ΝJ46/C)8ǰ&mYuߠdu7P|%جzlL\o8t\�GK�S_0| SRD^pڋM=OHh7D ytas3Alc.9ݳ ?PuO϶rz,xGkMI}~!p@k(puwr% -_+A3\.l͸Jle(c|J% K;@4=*hAT1YI-g>^;DIQn@8&.� lmۤ<2 gZ9sKJg WVC3%Ш84d>=i/B @#udzc xcÃC:,&#"qI(}_ O¾d [WoCDDnM"6~cVޚ'Yu>cҐgQIRSrБ I:C?Wf [ˠ8:0xZۆXk8v = lHiWQ`KZ x> V` -$np 8ƀ:ߕ= C@ pXOytیF=SN*s`7Vj'[ಗ;`8]�ԣ9f[@Tyuf*gRTCcRˑB r-"퐿N(|Z,T.6X;(! JhEDE[B`$Ջ*ky]{D F9 R#)n̴"r$pY2ֳ@4z{TyxVQGaR~ ^7ᴦvyXiq )?U&@CʔN�]Si0D o&21*X:S_޳#6c0n||R3s}.nak!7NA9Us}8eiKrʹ!R_*E鈩xA+iU 's1/Akd.7bziONpoб P+8Vؼ~٪׆*8.(l*"l3Ͷ\54mCY&et(M=U;i-0һIU9: ҝ |_53.y;}>Lݡ=IGJ?g*c*R#"M븹䖒|?a𶥤x.ސ$;'.~M�$e9.x <(E ,P$ %oRgJ(۵Af8?E mxy.>Q(~.]cSxH`qzWA=_$/JSHx}oH)kW0OmJK,#_Zi=3Itg\aUϠAe"7.\aGU>wfml>c|)x�!~ܯOX-l7Dql,brЬ+ؚcO6 t =ӳ.`h�~ ^~VȦUDSn#\iGaܓo.1v6?Kgq$,CO|%%gup_%6ELbb\uJ)^55e<H1aRwө/|ɠ4+6pZ?\(p/L6Ke.˱ Q/ͭב\=Hȼ4٥6FWPv/qK {}[eX6X\ "ctXaIo){axqTl{Wz3g:a'}@K$wjQ~ 1rͣ@8s=4< Q`*?q.ȍul+V*LDy||+or9``Y_Cs`~/4%r?Ѫ^=G+I/ZS(e@ [+_NBsЬaD=r5˴]| 8u̞-{8qf"ݍCrqŒOVA &٠)+~;O@Ni Fnl ikf\�"e])E0b\dHuϞ"6rDI߃ބ=/aQ#m[d8 s9R'H z 1|s,�GX2\> yi|Xય'a}1)IH]@NK;XS~sgey%8ZHL6ub%9$S"6 t Xߤ25'3)#1qZO 8ZYG %I9U0ۚe�:iKC#$bkI$n�R6XmUߟ:_$ $sҨe!H-߅+@ӡdBi?s"&VMчiv ܚ4LԼgؾ.Yuz6gw΀?ܳc68e#mZ>[ĵKOEPR2OGiﱮC.@}bk6T{ Y&ﳩ^1A<b>o &u˒cmv_6Νr2[G?A־@d3q-N#tmc`-/䒿F@A>8c̥b9v2hCσ?`ygX*I>}C(]d:@2)u7/IL+^M1.P_@VҒ82!`pr[p|po{U‰zHr֤=a[84TE뷊sF-!bLR)hfW }%sVI( LpcM≯NPP PoTǞRbI*c _Z�,^HDhIBd`P l3qx6ShkHGLX Hwo Mأ0np>3izô%]t'^ݨoK%2WR”a0_9̈́*eӫp$)mq֠8!}L$nh=;öU4#�1Bb5W1晻4tJrp+i5{4HAvv�۠nn$\±' :"ݻ9&f01NJz<{)0h,%|Y8z#lc,͞ GB EI(A3A1Wr͍HjNz1NYʈ)u"I ~d95PP ̀k+-3(+b UXA׿ Hζ~fLx�Xȸ>_XeLUNCOy!+ňpjy1αJjIu8GS?fԗD ]?:?Q# 2@1Gv *jJhxNG 1vXBB  .QA/6z ̒2<[G@Y YT?nx\%(0+e]>7c'`J~NE1Z%zg.m0A1}Os鑂<!FcozH1%6+A֏HO׫^s3K, s|OƮ:'7a0i tތ$>x\pX[/ޗd r-}|Ja,Gv<Xap/I˰w= -V8ӱ}5F2#>E@ "wcFRzH(ȼZ, U'3`oap<#[lをbSYn-:||.xobOٮDc\H"t)j|gH2Ƥi^MpZ 6V G%֧#xg#\w0 4j_0"WY0thBFуqˤ#+"H>݉R$O[#1X5VV|ɤ"igQUOouܴ!<VXu1:ނybM8~|FƮˤp1|B/8<xCps 3o®:goii\ߟ 7š]u: `(md;2O/h|=@՚O1ǃBWJ כ(ʦifOBƥ1^h X߃,TqP]crޱAaAr�Xb̻)}q`慳lSrɦm@~^ŶYtd$rۀ1kٜXS3}[NHn,JzXu4B͞!yZS'wAM~򆮐Uyt~8 =ZK KijVQ5 aQ⭖^}^[z2p:q 55'[ /aD1hXuiPe 毕Ur ԇ 7z߻jG\foK$  oCg82vlG Cz iiM#>1)KeHT gK2s;鋙ZZ)k@ ,"[J< ^r>z<CR%>"2=&OH:L3' T\mJz~fp"C9_fWR'Oa1kXcXմe|32:8ëULr G:0F6[w'\H"\E cWg_+sL{82ZNÀ&#ވqI)uV s, =18~S/` <Ӷax`B>)F.2D0>YSi<}lxXo,jZ`3e#5 1&!PPӂ0b f{ w RS#*fpt2.y(GYfj>8�L˾ ^X&#&7ٟk.Smjkڑp?]h h)c \lF-w5Ѝqp]'y>f  W^uo DE#O?Qbrft(x4"<0A%XV {}Zh椖E?خkx>6C;/'kȦ.u/f(IT{C4KVR5`Fp7mdthǷ74 *W+YЬY':x6OțipwOn(ڗT|$ c<}+5-0Ͷ>}xa%  }3 \2&1Ԫ O`rF.!O'JA=/pR Q.ռ ~c)4|cO".vfφlÔVd= @0}J]ү nOǸqDʉ+Ķ$kv/yX߁ϿEk ŋMG½0>Je4,gp8Q"4Sv(  nZgX*Z.h (QfZEvVbL^KX+,NTP jUhajpxZh/yn8Y37 |( }(eUQsQNr- -or8y ^^{B�a_E-/C}khE: ӛvKz+X 7S)�%_{u߹4W620`m8 nHCB}u,ڒNhC5 IHBbRpqcLƶ0` �IBo{f}ks{}hߒ6M}"Ɏ)X8E] Ӏi9u[c,.P NhDf] ߌ|/R} | p[Dl5o4ʕc-NOq N' ,rCmԧYQƼ?ߛ<& KHYB2# lT+2Y[ f1e`.6*uVlZIٕ�El %V_pr͐zf bw/VݳPix,1h.g<]knސw* {WWOlFR:\ݓZD@m^-L 4 E&l +?MbТF];R7oD� VVZi7{OM(.(^قZm o qAYg(W}ɇlW?7~[ 9o&M DB=b 3OB]%Dw=5Aup n-VDqzT;`_ֹ.oBSV#1hȿW&7)Nw<߳oI^g{F䂾w'a܍aJ Eӿ@,bDLIëPV=.0פw(;+獓�{BX- MP͠tO.~13˴uGh;mW@{eSӉ Sp~�`Ok,;TtvrT^D&ps'&:.}Bys (=}nHPz5K6r9v,;|&|&$* Oz3ۚ m~K[U 2%*8'pN4j/G6yM_gP]Zkenv Ĭ~8SiM]dGzKKp_x\7`p,fuߊ:}<S/Φ;ԅ۔]ǝL$L2~>ދ`sw9|k=-cBnX #nf[zi/p=[#Mu{M\8XEpoOl)E3۱p[8r[<q'TU .\)c?04P7at1kx -h$2",aQe#9>Jb|֧$gд;0^hx'Sn.LT04vd~Mw<e{]c߂wZIew'{^/TTE~O�� �IDATpk_F[xn_Iz//:VF?˥'N\hta3p4jiJuQ['"ЖCv@n,�s4ա" _cw͵o4$Ú;}kKd#,"_"LB(%;QfLl"l#gZ;=mn HZ^9XR,>JW%3!tQ繱~gm"_62N?@6)<kN"ᜬvb=3;m9p #kV8| !(L3/ܳ/ >PVI]f}ß#VG2Aա\}_ ϬSg]Sdxm7x )xNҳ (Оե8;! E+ϤJ&:pw=_;ys*N:v4Ʒ#x`J'W0d Y?Ze/WM33OBޯ`N/4X+]E0n= mf`D#+ *ۼ\pƏLb�^m9}p]Aoa3Ua5RXː�ѝ(%Tx ԯ=$eT&&J|ޱNQKDT-W^"3on�ԟ9uЭ?b9vo9~ I+7 ᒫT7Rp`3yOpm2a?;P 3.p\*(7 ݠqsaB^<[Ι'iP7/ɵȮ~Dms>'N<'AgYOvH'/O/v@KB&zJN¨=|vQc@Lϋ*.xvh%`]%%PyU7rEY i ma1H"sZ/>8z({i"',G`Ey@9$*2N'HJ_yR,+;~"V{$;~&Rd<zԈ5^8\vV0Vp<'gwp 4!jJ;E;ALg纋V\m\*IgZt~qRr.gL+e¥yW+eצڈہE}`l\!(nƙrծ+_{1|8dr) > |({_wj*F|7,Jz --E\n$Yq //DwwU4S 0Kehf>ϔmnYseal^vdFqP2u:sB[p wXx!$u7/IJ< f0d{2?ʨu5ީ]⑬ .HYNn2c2]vHÇp 4rZ9k7:H8 ?mB-G`4<BI&kZ׽'gSEƎW? zJf_oVX0PYr^9C6T,rĒ/Ep~lpe/Lc9ÄAS(F|1# QRNV:6H:~=zb.<h񌥀k 3uuӸY�'p$aet ;Ir&_5  𾕜f`+Pt$r3Zz Où3p,0O8Jr3BOô_N!>aƑV&f Mr5BaK-/8wb|3X_p\<bi1?%02AkO%G1;sg^V[s[/*aaxp߂5˙�OZNVYϧ.7/*]2d/]z{"br*b?07?7m]NAGfF:O,{ۘЮ_Q6^R(?dGaܭTӴP+YuxAOA @Lwo i)2 zΪVWp{/_cDZyڬѻ~zx<SĊa}k_4 էs6\T0FTM`JjS bF¹T<-M>~T/|E=>YrgJ7(bu"dMWgb6QȖ}Owaj/Q CafUz]T,~Ƙ+où2(X@ 8Sy2~'q]qE p1n`]]�FoeuJ:i%/4#x g5]ly >j!<N'4?A dAa/Z2&45&h5qm;8n(- NjpLHb(,|t>s*IC}gwMROOm>2%hX`8Sӱ,xZZ/[ 7ɜx' }4#�q.O3<y\ CC0 JmE<F+9VCPzx ֲUqR'PK"o,yּVpT=֭#`s'jlVeC-P^&ek?&G=yMi^SBǁPy |:n#4"WĂl*vuk8S&ô",�<tN24sfDߛ-hY7o?'/Ùn.9V}.g yp$$kP|;\:_du&QW@,ϩ`Ñ}8�'äX+},kSA'8UU@W_b*Xǵ9wǬox$l7-螏K!~Vj:Fr;^^ 6,[f"ֆhSGZ5:+VdsL(Zc촺_k&͂&A-TxzFW#w~|MS{8٤ ϴb,Y V'Y6NMcO^UR]ʳ<-gp>$3JByJ93ņ 梂Fm`) $Hj$:dN'{}X3A^‘&h0!dt_p^zFM5"ηwW{iN epj#$ggYy!3f 480SBJ]φH9_*a4e(sf:ڋJ;&Z:np.J6#z N\qH]&QP>0Tv.#PVA]<Q6Ox9% x #xJ쩃77CqJ19b BȄ;eOYJBah5Q>̼BBTgw ^)x,C2FrKZҭSSO|bY%O@RyKYV]�/guO( .]G@qh+RdZezmQ.^XJÈ u;_r ~m&ԏ$Wx_I$vܒ7%ȖkТ /UOċPbv.b6X'̾ gD_+A?#RXozJK!р_f97f7o5rRsG0?ɡoDkTMMzeAc/gXwR@ !oX: Jz`JՄ5/Z._n;c9A$Y V?8+HIRBuuš2 uV3WCy� 7Eit) QIlYXQ+.l2̉6#vJ4m`6W9t?Xkk%ubyƟP{*ݡK&x183)zYXqO˱m&l3js==hMkj$6{VZc.l.]ZBjԈ[>sX*7 ,ݤfsOᗔ \rMW\#U?K_g =!S'BI9 ˄xb'_)b;{sgU&$q4 =83V2ܤIpPGP' MΠ x,W>>mJ݄mN{\g@7AcHHqI8n&h?BS+[_[7:y43oRXslBM:fC'dku5qЭtGZB\L=gO+re _yԵ[/$)Z2%fBylqm3_-MuJd"ѸpS٤{2e,<.Qÿ㯲'~>ȶvL-ykD;H Op7[֮{K藿9ť mMIU .X/:?.xW| p_[Mx9cLHjT. \9b¼^IM![/[rYВ.O(h u܅S4ߵu/Rr2ͳs wrp̻8̿>Nֳ9 e`Tp)և65K{#RcJqhg5*o8w^z(ψRW7h;YeչJc2_d鞂cUiFψ51b@k< ZA}3:Y٩ߕ_8n$ޙYr_+sqPR8UFKaE2@T:5U+/+C-%D7K5Q}^EkmRP^r"5Ƴ: XJHS-fX[xb־F8eFW\ZL ë�_*OTw]߷JOiԥd}M'9ٻ 1 X+/5r.YOxV0`ǪDs*y[k-KB:*X:.SE{u *ڬ9:=<?hRZsR]- ^ڹ7xcr0Gg|_ sq]=;.K89(<۬$s̍8-BhQ)չ" < GtAtpu_8W%rKhTbrc6Ud\~L@gR.|Wѧ-%#?P*0$̻䰿LKobCC€F n{1jX%Iy񰩫딋$@]%>ϵ9wlZ,3Wt<95}&D!ړKJ�2yZ;8\"ik?.ݽL_`DG~0DzEAc3kk|pv8ZHйzD^nY% F>ua4 D 0!" y)9f]G("2o܊j&~mvpmI}YAF_Kb_H9.fge g&":Ֆ~9ۦ]ŮP|ZLG_R@eխ'#u1jw2q~6]v 84fo Vm%wN;)\֮uiwGAknĔfZsJŮn~}XFLy%&)mK�?jU{Q cUz1 x%4`-ڱU++2gD%F݄;^1g&P_y?m$BW1]KmD٘fmd8EؘH"zL~:X.:/)ݹ0GLMr{&J,eWmbu6=گT&Qsn:iv�P|$\7PQeo؞ YAj{O)ujk aCg(J=51o'&AyaFRMpT+0&gN E aʾ/\qُ *44�Ӕݼz]-h1%x]cn7Dȹrl�PZ7bGx)0=$tj4ptaZnj dmJg!}_SF̼'㑣!cV,G3ڼ[ij"u{N^"WzHGz;|cDUbW`ؘ7�ϕ(:6(E)jF'PILE3]P 8[M8r]=q朗J6D91y2=l"ޑwȻIl̸9cI֤ƦPo;Ş)bK?;W ;yW6cO_(~eCS*ݲs)S~\.ĩ+z', 8ݴ3* *eT"C.sA Ȭ)4?W]I[ŎC3|"<xltйVm߽#suQ;R&U dO~m7pU Wǘ8cW3p<׋=bWxȲrƕ)-}7NTy'ʼIbgx6/^Woru{M]U"}Qd;nΉW)n]2cehUbzM @@?/ŭRn Gi4V x+-jw0JǸoX]%1cXuZ>DBU6Џr{W/E{lMo;Д\&=UL7c E*յ&(u)k*N:ި.}[Fú/E 3?mD=jIȉS,݆jɃCoR$FjJZw;1H4#D?)GvBzJ*mhij}:>8(֜Knj![NKbiƯ ik:צI91 %NSy{(-a<b+DW`LL=QcK2%yVLȒܕfޝ<o6$zxВm[B_Wf/݄_Q6 OIqhg}?> #>\2!Vnc|udgsTr\o4${:*7).puZ[uıq'W{_J_Rz{.uȋF(fWDE@8"^G (bU2]_> t JΐKw#=L$+ fmy:hfJm8z4_љ鼸R,"nZ)z]/au\ڱϜjEuR0[QtX=̅w٩zYֹ+Ntj7)\?Gh?9F;-R-9 _ v =(~Ș>*ӛ)Q@pމJ~=MzK8v+"+.Gc덖 MWiCGf~Ӝ  ܙ͔!/:fGX@vG^+z}I:@þڽ}Ғ^rm.9f4 $>7^iNzT;F ,=F:o"k_DG~>\Z)gDJ -Q#8}ZV-{R09 =nkm.5gBI`Њg;Vdί%sFJ]6$zMjhSRQWpꜣEoŦ#XL2YGq9^" y=uEVՎ[ChT+43o2e[dZ(Zk۞*.W.|B3B=iw&c}n|~mww@א�� pIDATcۼ &;8H٫:F9:΍1*K8X}po.˦͹][FYyj/fUԌ W }{s}U n>/ƠSi]+BH*rxFaL]ПN Č]̱U@~GVo3`t|A>Q*\//ෳi3y<m_V{rOʎ/J+RRJ)ʺ5g[+\cDԏ'c뤔Iy?I9.) v^'eaPҩR~ogRoQ?9`ccccccc~4_V*#:2|84_ʟK)!RV͔gY%?/ǖ_2ؼ?9fGy?e+R#eaqY8]R֏IxyUDjGP/h9)Z,O,˷Ël[/b)jk|}?)"K6)-Y7iev)_ͼ )-ϊek'[\p⫝6eR>a˷pqZ@3<3[cA@P˷'_~Aʟ_ 2O ,5?&lb9kSsykێ”Y,?'T LACJ[(.%xBwK3{14Չhy-+ 0aH9/s6gf+4>\f0tXdVsU*[&.lcMK3 KI#(+8sKΞr �")+ sBhiDƏ/Û(fdZKR2+#~;TBTK* Pol[av-p__UH\!�@5ՠdմdV 22\Q~ǡL7dJo;2a 3WC5d[$6 9C'Iy�3wE\wIl ,wI@vf<p%@T3#5<mcsQ\ܶn~-3#=3pqCbx< ]őRuR[EVO--MOf ɔZ{)ՕumKix(uZFrƲ5mlllllll> ?-@  ['y"5sU`F:f>އM<yWXδ@]u@\_C^+%@1܅H6vv0忖0B*C`7e@xG+U)M.p*8 lN[ n t`+էll>,%7%2b(tBEfX᭍PC,wCS\7Y]΢F�C?MGA9 :?*B@*s?( JĒ XiicO_e<B!owXۧr@uc9V^g9yNKK!ktep$sG~qƦ'zes5B `3aP8(ȃ|!-)-<p% 'G %�PpXouw'PVCAUa;7@]&/:9T5oLCʀMgg[N' 5X2^\ge2e7?QhK@}UO|S-x'Yy e'! C=v.]΅!0覥YMS5ВFJ]T/cހ[Йc&G;pIuz[rי &ebw2El3իb{'łƦ7zeccccccccccccccc")8}]L5an@2$m iK8]sS#eH)ú#ݙO 666}i%ՅUOmj q;3&$tIʀXZ3˾.ztphKn=>ƔaL ffyM;^/66IA]. @, NJNgL_}BH_L`zHB|DƬp, 򖱮qߕT()#9-ntII]L~cMXov pk;Kw~]vXޱJh\SdNZ}\AZ pՌ '6 t山 {?mqI\;ٜ +V=e"6XZ6 V%92|pjOISݥ s;afkLRjK'){Fvj0eLZfKur,KD$nWMzбI) n%$uaTf4\zENnĶ5FYK#z)!p-ݢT0KU:EY(Z`˚K )wnsaA9,StyYګMQI}t{tѴtVꮟ*GْW*4 q����IENDB`�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/24P_Copperplate_Blue.png��������������������������������������������������������000444��000765��000024�� 40732�11760240072� 20702� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�� ���$���Z���gAMA�� a���bKGD������ pHYs�� �� d_���tIME  MP�� �IDATx]-tމ@DDD " b@X"bbbbE@ +bLwLT܄ޒ;]?a�@L])I'{7X~$xDZmSX:rіy4&1m &Jh`\i+N[BJs/ѭ9$sXJ /9O d ^椿*sbUҼLտ7<L-`in~VE6X~VQz[XVa]!Cc07sxX=?9QRLSs,2v3v*kїs"Ki0^&sWQs}|sUSrM=o2=u3RL=%׾) BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( BP( Ū��h;�}2) BP( BP( B 0 BP( B]A=ߧo>u9}.:4.̿) BP( BP( Bqz{)o17C/JP( BPh{ >,T3 vJz�Ҏ*uμz,_BPLZ\(E:\ëBP(n|{˪x* B H*n;�efneOBz8BP( Bq;@վ ss@3Yo@5iÃAuОh\Wm=� @?l?�zT`;)W:@Gv<;4N-Ͽ&HOxNіw=h3}zd}cp9*w �u^ͮ2i6nڵ⽕?]VfІ0 ۧD!>u}f�+K;ӘB:cRtG6n|ce΅o`Iɤ!fӶmsmlho̮0{Mm;YVF>ys;wzOl'F Y+Je9@_`]Y�_0ޖߝqʕHgQ}q&/[[Ve_ki׶l ͝(mdUw8kct},"9_g"|U[ZI-ޡ>ۿ?5[5;ˣ1=cH_4`eO-wLihUe+ݎ5X4m~' N(Ñy^[L}t$K*«?4#b@k0GP( BPXԺOIUWA\EL]н�{]))1@>GH[8 9E|?WB`JzNѿ: ;em}/|SS}_a i)+Qfacvx<kFi`0<W~ȴ<h]%&Qϐe<6L? [~lA\4m:Rh?Wt�-PA`γ# p�;)iyzR% s9 t f/)3[g6!Esct G/ԍHV4|]2U%nJ9>hZ}KvNP1O8eKȿo5c#XLC~Fߺ(Av"SbmxQ)gp1>h30WN#eY\ix76[7t�#mO߿^75K C|Kv*\2īEYSg{:77 BP( bUw~AEzv,Oj$uq2;u~#tm+iy7cEϬ#){4Q)3>%ĢI)E(7l=;u,S~yhOo ҿ)8oĿ!y$<5\Y)k[8Ϧ.[`,|$8oH�[B a<O}1%j[;5Ӧ׭##Zu3G1cץ M@{?*ȯA0Nd<X^ZCV$iR6O[g! ei_)UTtrbcFdݖ pƇNT%{s  M)x;߲x_"OkGL=+g5ߜo/M:|=x~.7?ﻷqmYoZb8qo9{<%\Hx4C9zPE+ EJ(V s3$Pū8<\ *h8w/o3"X6ҁޢ(hTH::ơ=wwpm`z o61Yu-'s <BsWGIx)]NJt$7Z~6+%ѐOy ;iˮIw "۾>1Ƃige]hOy`[ޚ߿++D 5FSPRWņ72ʪkSi�3{k�9KЮ#%q:|++޴kN`3ĥqˢo, zZXZycYol&~i&W3Axt0P: OvswFC=+k'v hȺS m5ɸFl薻JϦ+l�Q*sm :kj9ic*>$:BƧ-uds%#Jqr  }a@_<>e1mqcH$~ZǟΝ\[跔~c/S'%}GH#kH:^bcYHڂw{ON֔3De  F0=EKe˅߷@rneKa M={GvїbGr[Oq0CaV_yw}d[,MzV1ϥ5%ߋ #W};gYr|#rm۞}Kgl/owGSW~J5eE-zcJښJ3G7:s--q14%PZvWA<L�}FOT8ϓKwFGeF(#:#Fi7 Fxmw$=2 ^TBQ^s4/Sf(/C⾙ljsCT!D[uAv܇%FSoy]p}[ t|&:bSƴQ9QhtС=G^/qHSW)wuEa?7Wǔt7ש5Z<o=l݇(XuY+˕E\Db0m:t2y/(V |ʫpm_Kd^}A/m1rs,[ΐe^'+8<'2}:�o4 7 ~ǩd.iWd$s= v¨5ܪ8>NsLj|sdE9yD{;@_䦈/\|ӷD}9IJzL!WJh#y~ O1.tӿ8{}||:oD/e#ffi:{w,}1=%1jNuE;CiC'yP~>KjeysgU+$hfu f\�l}81' =8)us)d3$@� 6+%kR"Qgn6}8ܘ &[XΕ%gٚY*o2Ϻm{M9M{ c"2 PڰcVMGΫ.N ɨd#?w\a4`V/w dxOb|?C8g]`w"bLcga,2�O\}F M Ԩ2li}/w&["Ӣn H~i\Dp*P"v5w5Ĝr �̈M&_V&H솂+N# ؃ʮyL:ߝCĸ|HJwZ�@)ѠWk%~SOH/iu 7%<K[7]jdDd/j2!%?jȡ1Q"Z?ݲC,^#Ok$򔭻0D96gH{4 b# gFsθ �rɍX%0}Ҵ6{MqW uME'.:]ʱu4*ۿ`vJ+KJ58eyQD0Ÿ+uhs{cj_pƣrOع1Lם˗4JhMx8[I5ш/4=e w EmKΩ^q"v> Xc[U (e[ou݅ y+N=|/x `v H=!9["eq>gx0Voborz{R0'w)Y--k[uD~\o!:h.3|D3g[PS,2h Vq{ g BN)d¶%oK׌w3�M֩n1}' ;i:PƇ MǫdgKJÔUWKa^5VιQBJJc<J ~ :ɳwG77W xFVK甫, cr^RXyAvC=z{FZ#o.0@kizx߻2BRDk/?{<t(ۇ<:6Z}=Iޙ)   `tnH6}Lf@ڣ*gH<Yk?l{ug'y{/F^<[0?؈LK=п@aG"sAs͈@x*Q9<јL3m7VDU`` EUޖ8!!7 cx\-]d9_ ١"{l,0c,KSȕ~G̜qm޽7۟O7zg$"Q}�~BUk6C3/ Ylҕ_:Ff&H&3b9scd[1zL^ځ#sF:QK12_}?G.J.ZL(riYlJi_!CV^Ft+y͝Ffag n>_I.aB6^{O �={io/aƮ|]}ȶ+1ȏ1$gI5C1- rEk CwBN7="<SGul;/7 VqY_>u$FݱwΐYjOZVA;2Rzuu Q_6qsDRXa^.dPB G|gC]t;1L#|a6u[1 hF&^E4BȾȬ�U6KvQ<Av@;C w NydF)ّU76V:g$DVC[Y P!іq-J\zP<uPm5ڄyygޅ;qsdO==hxgq񧽼 o ](ppULP) F[Zgb&4 mms o�*~S˝?'(('9`Ρ\Z=kK[z ֙Qa-j|d\hWR sBRא >">jOܹ~^A{<]ae%/{.Y/2rŦeOyE}~I~=/\ �.dQkRBCTV7<ƕ_Piw]z-fMR?}7{qtN\3XwuI;u[G2uiJ x[tR>>{E6;7 Fiבݯ q4W^,~=7M/7ǵT3Rg<^%̝i9ò"9W f-k51z{ʼnmlk3q. E_˒9%mvxkuwKA5<$S@+ܒIģ eu}lɮλ-:PIN F)l99:)R|.@'Gwc7 7 :oлxJRw,&]t4-),ʥLP}\+.`0Ɩ̓sg,ҧ}`d AO}wIt%ԩSGO zk^ы$a\ѣApY5Do>1w`I4\F|P݃X҈#䳷םMk%#w9 ZKSz/(K 2tbSsQ $W`G+1f=Y9c@ZT6=,C)�^әY=7g{g_iF&؇OaKMcD;ʍ<ffȹ@IAtOI'T=0 UXt@FQ*&gt.BZjhF9"#܂hۆurC P99۝ع\E+r4\:@D -N%Z}vG}YeIЃDޅz}ޚG "FY.{/(oXwu19L 㣿w^2xQ/Ak0k¹}Y30_I[6mEj[ϵydoBL2:4eAKi{/}c#f#Jm'ܙ4!#K渶)mvRB2=)|H!yHW ^Fhm=ܝ 7Nfbm ^wO!z bogoG/oʢ:xn ϵgI\4נ&ۆ$ۻe}V^:WF)v`Ŗ+cswP^jrZ^zxZ'fj؈%}zKa6[g�=tƓ]"dj_BvhG+f|H%H-/E|9LD觪8i\.CJ�|LWi'd{ѐ,E0M۷!Ңz: [EDtlqZ}U8m©0;҉M|#d=gi `(l )r!1i'CIQ2&>0Y9QZ$y<fT?߽6/2Th "7 ӈ{"dbk,Ml־Σćڰs럘PSȕDz F8Ooݿg8EM6k�o_=iT^^sdE^Uؖh4hs}hi%/L%ၞ~C{b~g:J_ddG,M"'c+%<>w HY# !ND+!S_d\azf%w MR8~x ޷I_ZөconM ,0׽Oͷ7G<~Dy6sF^=~s#"i-�� �IDATQ{E^/WKEg0wug%x =LN ZǠ%<La. /C%j�؅&KN 6yc=m2/Oc 90 8.I' $A_㥠{SQ<.~9soe_HFg\FiƮ%FOhE>$P?\7UTX$j`+}bi ەw}g <MvOP5R*vm{IvL}㧽c[waۢ/18f 2=k=缞L7,Is֎DL3' 1BiıڳsʋE0:$>~L /5OzA0υ& bE%4ju502FNh. 6EiZ=*h=v�;tKcٖL_Jӧh/ڨoaù̘yt g;η?iǔRLE30Dѣh.#=fT{+5ۻ?>WMf},E5,]*S9MKgi22'ͮP9y{6Ÿjzd#uԍ�F-|\Z8oȹDF1_q`~UЙӆsف}+gգ W<3׹1,MޱY'a;bexk१qw]͓; 0DNif9ht{#7tF@8Ohat[*ПM)H:h x_f y-4J#;߂iy4kTQYy؍(2F<h8cDμG?n.u9C(=:o IX~.Z3M] ƣoLq#,FlvV0 %BS<Uh,"3:6w5gգܵxyë;s.{IGy)V27}vG(c, uMEgpLK\Y"=?T)/pe.Zh1Vlfac+Y֎:U_t]WT5-c./1\)Q?(yt-G0<euVF;HZ,L7eQo}L5##Й->zοs zѝ %tKyRLEϫ+A/K\~ITPyT:lԳkH+WmcxT|'!C,!$:QRwqrRHWz眩GPO&7{g|wl(DMq &;*SwG{/^ZRƥ(dۇh~$ݦ#yGiR[ntwt4^{^ m,^IBtIPxʺhsю<y  o3(|̦-S>kA1E23R¶hF*,$1S3mO ǦMG?v?y8%8ˤFX#+H<xy+ßwh1ad?y!+B iT?b" FitҼ2S?.;О _яX "FS5.*Ai{설t,9 1<G0%D]LfDu")&<I͹hnGO=zkxCo2Κs͙F@)(w9RB;0r(C{`{ cML.M^u6u&DM$YCg9se CW%tϚ}\Kƹh.O{4jstIo)kچ>84< ;+d(ml LA1EvK!^I>KohT6׆Kϳ);3xq9-MN#gW@(v"2ٳ9%7kIh'�/su@zg`Bv[=ߝuݨ v5%b#f#K̃ 4:s8Hbh} _أuIc'M06qd,7dGafI10q(Fyϝl䎄<\d")Bn/Ke@sy9s^i\CZsb R3n6 Fk1#md,{i=\eS(><'beʃҳĚT$oϦg^Ue:x0N`BQ\OcYi<OOw0\4{ko9 ׆K禝ݳ}A()JF{9RBl##24=ڕK~|9Sr=Hĉy*F{;5m)e72 7gD(hwN]Ɨ6` (˙Fؚ~d[٩4kǩCk 9S|)'kHKzr ء&9th3pprc_{#íh)m<Lx^(nkuXsoi߇1"<tc0W-iWz޴ QɎ6 _KI?M ̥/rtz4wa=3}mgZo-^zJKX{%'.j'ߛ v`ngol{7A*ZXuAF/QP[>Ny0Ѭ b[07EkrE|/6*Q8.A:p݃2R8vS]@!Bbwj{w(D5k@U k5m]oPq<|alg 7_` 5 .F;xUBjT@QDg>2xZMnc{:zגֵJA'./s1ڬ!Bw'[﷡M �m%s`FLJ_13w.`3zӛ8Qbc!G;.utPfXη߾XW7vpGB=;|"T:D{uϴ'#r!T:Qf�edD;IUBSѤ~˜%̚BSkc O6t hSCx5n͠9SA^&bK/;} &rbPč8pn06w=C~!M#c~5Ź{DXN7)BF[ѧ[ ! mS]sO`R!x 76Zo-^z%8, >>4/ziS>BԱHb3&PJGixpզ <б?kFߠ5O�6d(5"?^U-V8!^w DŽp}N&\Y/o3l\Fw=<K#&D l#]~cYuӕ+˕V`A/uHBJ7I7[+<e>g5}4;0%%SRr#skW sbx^0pMN;g6W;͹bh՘Cs)E 58s$׉r g( 3z#^uBe O^s2ݍ"}>WaƫA*ݠLN= ۓ3ґNL`&B Oz7Ewߴ_ka-ME#K5BSx-i5VO k$PU)]) aVwi^cg96B#DLkJ޹;^7@EQcmNE8Z)j00{T6W8r*羋k^;hJ E2_qghVWSx.tTU-n5 S1cBo|y7llT \#&=#i ?'H �s݇1X59C_IBV13|KB:jݵ\|¦LP%nُqmgTiޙRfE_ ּ 7D_ǜDO5ڱm^;}D|b $xaFU#{Gΰ Iw ?h |9F떗2n* ^G)/>`2vys NQ.z88/Y/Oq/ɇbhF Ls)6R�?lsOxтΙ"@r}iȔ5OB9)u !c'#l$cz� Hأ36eyC߆'3 hks6y&%zÝ^~&x_!q�o?Iֻ!+VV{]gc0!V֔/:Y 3s Oi=lGoeO1x*xjѡ{_H[G;wsh 3Ih/vdUce)<H-#rdbqs9Jqƛ]>9pot5%aWtо<ԚcGLe:S[Wqx7;k=%4)&DGcx!+ { zf ;!<:^Xh1I]l 邢=\\!?_q|b("w񗔅^/j3#+^iڄ#CWx?Cc=H-yF7@ZkH0ơ]0(Nqawx Rc[nzmoagGe/? ݸ!<cNڅ1Ĺ8 3 `iQByʽ5 IhgIZw^:sv ɩD% `ے WE}w׬OKȊ<h0zXs䙻IHa 0rxe)ՓKρֵ)aw6`Oaw%WXd?ҍ~ae=aZXK%<`Y7z@USҏmm0|=xqts@ /6aΙ1)tΞ'lb*`tHn~ >~p;s$oQdE7) YZ,Pj ;AW'Ō7n )*]ZWyYߣtl`Nܛ2/e|iolI 2ќ1@Ak2wl{ixNǛd-5g)i&څ19DCw\ꦒ.5(?ż7 7Nځ\k)<3 )n;ϹyI2,{KC\n~g"wFӟեt=I!!uQz;N>j8=>*ǮF_8C}G(}pіQ*ܔ�;9de-8hTcldX;*[WqFRv ,,Qկ<*xLZC,dfSeŔOf ލ[j0x4҉N06AkGc SԷ|UGCr$D~ pSʏtٛ q;(?!KeeB��Q%1H[e\֣/%z&kқSK/[1uW0aA.11I@=\ yu#OxA7E@D? 3q^2PuERbGȖa ُżEJU.e_ev ZC-|G2 Wf@ppN zsf|jr^7KrΣȠ=G{ƓN^lw2|T1Wݶh\&oi $Dbӛf牬t-}`}|1ٙ%eG6�ȋV)3hw7طk`3İ:B˹9TPijyP"iM3|`nRA8AL�| cqQٙo~(.̲B'e{ ϱ`J"]/UEe=EsRWEX1Nn)9‘Y7|C*< e F1*xh+E``63Y|�?\9C5c7�czuʞ3F8~H ;`2ƁH*OEm=)}f/4߿jyE;)|y( I;.tVNg<k(Q.B(= KD[m mK[[/)!:)kh7OU G=E||e[66aa9ayQMz P}9cih.~ |x?^O5P>I:BrahDo&rnY"yxq)T`~qP*,0{䣖Zy(β5לWqc~{7' 9F^hTtR(JFn_2Npǡ/ qx!4\(OGݕ˙g6QrFK:Gq4`qy ?~fNsKfi =oDgK}Q3E{g#0 z>[ViF?%κ3 n}ܷ9L}ߐ1SV!xdAzwztDd RwlgOe+ V؏Z\=ySPr%A{~LHs#0[0*<|q^,#\@"9(_. 0w5m?AvR 2^J@+4F6 3gf@Cϼк]wo`xkp}RіRz拶`qu||P0h[I`>D"}6o> qfZ\24\d0{[;״k<g0'H6)tVǫ뢘SE'G>]tʟ0?!u/GJUb#G_a<ݷr+]gV6.=}q@׺8/̳9@0gSeX s~ $QzL{SU? *f4"Haw X!u_1ؾx`eHAI]ɉݰ )KۉR}מ#¶{Z:m:(];h # i!OCq4XJJ쫒햮/�j3o(k=\h&= ]ɟ(&׺¶, t!mϏQ|NiT=\_虚:GAm.c Sey|[ ­S!86|,7圃?{5u"3~w>{Lk0Ķ{nt'0q: |<>J^jYc?)z݊Aq}[":t<{ɼ}n DS;*BX 7ܨ( B=(2еIC88( Em/inlUEi "&B3@*ҾEG?Bqeg e-C͔̊4.B}V Ya BABiBP( -ճ( \f*t %��?IDATBP(@kƶH4P(1m0} G?B<+bzlA#0m[ |VS0*0 BQf TP( B& OS7*KY) Bpn. τ҈ڢXRP(AYϣDP(Q( BP(@/U)P( yBP( BBBP(j6lssP( BP( BPQBP( B3on BP( BP( BP( BP( BP(g([k_5 c����IENDB`��������������������������������������SDL-2.540/test/data/5x7.fnt�������������������������������������������������������������������������000444��000765��000024�� 3400�11760240072� 15425� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ pp �PPPp �0 �`P`P� 0 � P ���� � 8�xP� ������ ���8 8��� ���������������������������������� 8 ������  @ p�@  @p���pPPP�� @��0@@���``���������� � �PPP�����PPP��pp(p� @��@@P� ���� @@@@ �@ @��P p P�� �����0 @����������``�� @�� PPPP � ` p�` @�``� ` �`�``� @@�```�`p`��``�``��``�`@� @ �������@  @� P � �``�`��``����`p�𐐐�p p�`���𐐐�а�``��``ࠐ�`@ `�p �`�``��``�PPP � @�p@@@@p��@ ��pp� P�����������@ �������pP����``�pp���``� P@@@���p`p� �` p��P �` p���������``�����pp�����p0�@@@@0���p���PPP ������``���P @�� @� ` � �@ 0 @�P��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � �� pp �0@@��pPp�PP p �� � �0@`P0`P������pȨp``������HH����������p���pȈp������ P ���� �` @`���`` `��� @�������pPPP���``�������� @ ` p���@@������H��0p 0@0p � @P �`�`�`�`�`�``�p࠰�``@����p p�p p�p p�p p�PPP�а�``�``�``�``�``���``�p�`�`�`��`�PPP ��`�@ pP� @pP� PpP�PpP�P�pP�``pP���pp���0@@0 @ ``� @``�@``��``�@ ` p� @` p� P` p�P�` p�@0``�P�@ ``� @``�`�``�P``�P�``��`��`���p�@ p� @p�`�p�P�p� @P @�P�P @����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/button_dark.png�����������������������������������������������������������������000444��000765��000024�� 5321�11760240073� 17320� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sBIT|d��� pHYs�� �� ~���!tEXtSoftware�Macromedia Fireworks 4.0&'u���tEXtCreation Time�08/13/10�� $IDATxZ[lΙY7ȥZyRlPV%,A*U$-HMPԛ D T*ٴ<^h߸PAdyA \�{ݝ}33gk;$_B6, |$vڅl6V9<bqԋpDK `fs? ,5Nǯ7yU\]{R¶m `ll ǁ8wl㏖/]x:DfcMH_#穧k֌^D)%rP.o>lݺJ)}ґ?GU<+ fzz>n{ի!"](D>ݻq!LLL ϣ7CoځVYTJi!hF{c�st|k出@^˲8nv>|{eYx}~'þ�1q!$ f(�J)xHyE'�"vuRJ8Q<سgxgǏ}lqq�lF6l8d�|CF݆M5NvG3k#\wÇcO=Fc JC۶` B?Z&? 󟣹DDAPD!38*沙i ,-%$ؑ5p!ݻ7n4 &Xl!],..p;ϰ\yZ6{C})&#B9F1`䲙iK 7 f`Y055 X}F[fmY߂[o>۶S///AJ%Zܔ 㢈'$t@ ;cll wu<.^|t%~�S8u%\2: (6!MHcs3֬﫪I{pp֭[.8x EBoŁ_acG+g—}LI@�t�|ߩ 7_XlwR .}2�B� ޶~,7?yxGOTϊN! ܃)pg|_;L;}?B˿k@[iW;zY@[Bmbv8rZf(Lf�۷Sx3joZk'RkE1 dY;wчR`�mcqKW1F,<˒e)E�d±NyWd]XSBmq'N˟^K_|\f �.}q�q6y3Ο w] bt4ö2�'OTΰYV Aci)^AvS^FB K) f'Qid2 `rhp+V_1]-�!$< iYwt{� }Oz}fŽ 8 b l`I1.|$vfJfpyf gRvN'lH)Jv\4 p]AK9$NIDe=NI91w fb�DZ)yrN W WƮ`O\fT%W"p+e_0U(5rrmr9Ė7o)ni�}U1q @ F)QFd["ȥF{6 NZoz(Pfeԉwqɘw &lLU0*\BxγlǐۆOk8AiQ-� F3ӷ U)<-ElXf01 Aũ]JQ<Ub�~fQy!)~6A)"JG&a:�)%|-EF1Rdu/{-D<1"(ENҤ5?PD!�XB03@ճY;'-9j1`2^>$! Ea�)R(o|^5Kz#YHÿR24% -L:P{PzyAji1#fvnw* .8Z%3K3SƴϺ͗RC:Ѱb}RT,m[wnÀ TA)Egkt-KVCPS.wmI] 3 '|S9^I0C&wJY7f-H\^펬>U=-)-GA <B!XEiG )}kׁ@w+X; 7%I5;mfҦ%GFD%ԝ X׈v'lۂ%0\DԜpȪF#f6e)5?nf*ՆgiI )"5ZO" ぢYW'/F\l[VY ?'0|+<y2�FEŽՀ_z$L25.PCTJijD\QfZs1yk����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/button_light.png����������������������������������������������������������������000444��000765��000024�� 6305�11760240072� 17510� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sBIT|d��� pHYs�� �� ~���!tEXtSoftware�Macromedia Fireworks 4.0&'u���tEXtCreation Time�08/13/10�� IDATxZKl\Wc왱NZ%Ez ,\61iĢUJY*F%@lEbPeEB]V Z()vx}y8婓6WΝ;s !:!`VܹsXYY+WpELNN"젷8{fzVhMNV p@SJ$Th=Nwگ_yosX15hRp177˗/իX\\D^GE68sr@+ TRAJ !%DR=ݹ/o{ãO(Vp6}YC)5eһNfnhaZ[`ZeK% 䔆Rbҫy?/7!Z qVVVP1<g0Q c, xv*RxJ$La2Bl?@ޓ�+1z%ܼyO<&''n3 6@ *�dj`` ` `4`2R* 1XŔ3O|+eG PJs/@)vIjb�de @0� Phm Z@I R1v),[IHB[ ڧOvwGenSVjpM,--mKqp@WHzR:` c(a"DQ8!2 ^mLaH~ ?̃66(pqܸq?x |� V5$I 9 nX) lV2e@sBmfRB1RAk¥[R*eBcõkװ<3�Ze ;oc4# $2_MaV.@(*Ar!dJBB>K)^$4|I<sEMZ+39 B9`w?{<q!I4kf,`Sԏm3ʳݗCP`sիGE­`T3x56=(շy= LcJA[OY*YpT8eFD@Hxc`qqJ)ad yj$<غl !DU Z>|b<f#.T 5XQ7<+WP8&LtuB*faֻۄ:,Z$?[K:O Ppr1�Q\fNŋ2*12&{-x8JlEM?3BJ98砄@km]IƗr6(QC&%0vlqg>#BJRsjL7�A�\+t!@$1zp($(`s B@HXl]�tggWZ[Mc\�QQAʗ[79 R� I"0? � -4e5 D H!1$R+p9HykjgL_ZL!ksRilp3 J) @$ACy:ƀ ѹA[꓁�%+0{Z7�ԩV%E` Ǒum]njN19Bi795 TZ Zkm, Nr3"+QBARd-kr�M%U%y-)?*�yxچ[GnlhRCaxE?ɯ4PZ"P 00$>΂H=JW[2O< uX2#Uv4#@$H��qN ZJ3}><EI!$8A'i'LN;m\gU2�'KΌ Q#D@IߦwiU]x6L9)/na! #DQDH(@k_R|ܧ4$q"ޱ?V c (?yoyZy$pʰB'+!DDQ [kI"F;wW3I"lt 򑊔u<8g R`b丫l|yU1RJ Nq} |8CCD��nAΝrg’10)F.!!F0g A&�qJj^fYO|ݓ3mC>z}8$N@)A:9@6L}Ue!d>i+73G*l6|`n�CaA$Xxm2?9keCJ`B^uGή:)hdw:=t:=�J*LLTPUd?}pf/w' P"m⣘Jt_6-vdl c0n+9G^nm-gww3>nK*7AnxF`B1:<`0+wԵ¥(m6qR<yp6ֻ2$ʅYVa}?``!BH)(C}{rlI<_[x̒v.DS"vfcIGA";fD:>\8.FE1`^u{�~?�+%)y/Ҙ)cBԌ0Az"`bjmrO`鯽(mEyPzظ R"I@&̞!D3An|z=:7qg>s]ٰRnp ^ IQD I;l�8c> ō7 c�?/=z}nSm!e#k Ay﷐] |f]pj{ߗH�O9$Yϯ<V5s7)qWww8?Ȏ/:5ݚ95(mB 8YOdu~z4����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/chest.png�����������������������������������������������������������������������000444��000765��000024�� 6255�11760240072� 16120� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sRGB����bKGD������ pHYs�� �� ����tIME4'���tEXtComment�̖�� IDATh]]Ukqgc8؉cB (j)J@xT*Պ"U$*>$@C}HPHThh+Ȏ۱k'vl׽眽a{=מ"3::s^kZnj7ɏ7O73b*"c$ƈ!"**XLωӶ!,Ks|/.)�/^, Пgh[!-]s/\z"!D+%*\Xy'?rBg ~xo1�)koz+qn+@ pN~qKZp?C3�f QE^0)qb}�\pϝC$D1]DO<-|+�{KX$فeyB!,fH4HE7ū\ �|@D111&Be|E&a>ZLxp.Q]E uPXkڎ [ϟᕋP6oncD/֏�XD s.A"=@^:bR"y(ѢW97P`ss#$s$N 8,-9K70/oaMoznt&\A3q7dUVqjtP]xAz!RbSX=k=[LI6/)lV tkF/�Fzȉ9x4KƤxp*UI 80iWj/֪rJEo"еs6^NY3=T;%72l"-�.�W@Qp`]`?ujc7O')Fb!Rr_+UP ֗k뽼+Ui5)ʜI@_(j 6D@DI5{S7DYF濷VE{鳚N SLXH4!e(Ε* ]=Δsf Of|YhMIiP8%Hr4FRlF{TB'�}a4[�x+."1X*>z"uJA !A0֏u#_࡬aL[Ap5."=-X{W[%H ܸ1F\/ >R-C4a�&жCt']f2.=/dc u#WhWz՜,ڠȑY(R#1 |JTfvM6➉QziYhJ̧ś%eB ?=g:^CI|=>) QV`ZՆ<#/fK³t E0~qE|)/ކJĝwYjrȦnzmG̘hf'}�O8w\ޚ,5_%,sx)x!<Dw}ߣ<#? ?Snnn3,hT9c}D8'9ύ~ =s-n{_[ $/^UǿfX_U_1<=җ_�\ϳHj^$WNQN22 _+?֭M$` Tl'wW`(񩘄,iZc6+S.$NqBYዥtoa0 _xs?~2lDbo,re 2XEI.ΕiZ8Ub( k!Vdq.g8L "hU7*GrhD] \W6e.1 B<ԁ܄- TB`11km RBYݛZJW=x<f<]PUuj)s*QU$˨YW՜Yz*N٦LaS׈n4PXȔwĀ+۠O|댫گ[OFGSܺ =u% h?Ε]hWh]j!hW# &^F)$hY,(LM;Qoe( q-<8In[Oz :`<WZw "OM8yc;/WysیލؕT8Rj97Ț ZT-S4u0U s:C(K~{9|Dym? WM�3W8uϾphx;]Xͧ&19}Qu dQ ־_`ُ?+ lZӌa26vFo {sBY#S윻x6�g\h8u@wӬ4"- $@AWxn%|^aľ#4$)lg^vh СCh<#X"1%.Nb ׿B\h-d&=_i6wr �XKדeuu7] KάQqC*fp{+жB+R SKf6!D67cvww9|8$XS[ҭ{>be0Ju: t9\78ۙNOEv_Ho86Ks>x~~kzW`ω23{(H ]4BtY,GZ.\STW~l'V['|F_0fN"6x(ưu]w(*i7 *JQ.g*~} Eۜ~&?[wv.f4I5|5kRq\$sɝh$&-`U mE%ZXh0x|7ll}Og*N< 27bsBY+hQE=P,Gءy)4v(`rDQh(nۍ\a|u#˵[ /;v&-"<k7tBZ6#.BG "E hƷm%@04&\d6TSskҡ6@H]ü]K7a1}:e7ZT.o|b X멄>OgTcі/葮*z_L_����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/electrohar.ttf������������������������������������������������������������������000444��000765��000024�� 41124�11760240072� 17165� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0��OS/2Q{��AH���VPCLTm ��A���6cmapA#��8<��cvt ^, ��D���"fpgm3O��0���glyf z����/hdmxhu��;���Hheade��A���6hhea|��B���$hmtxI��5��|loca� }��4`��maxp���B4��� name �Z�����3post `��7\���prep~'a��h���R���&���������Z�-��������������������������V!�����������������F����������������� ��������-�������������������������+����������������#w��������������� �� ���Z�-�� ����� ����� ��V!�� ����� ��F�� ���� ��� Ray Larabie - freeware - rlarabie@hotmail.com�R�a�y� �L�a�r�a�b�i�e� �-� �f�r�e�e�w�a�r�e� �-� �r�l�a�r�a�b�i�e�@�h�o�t�m�a�i�l�.�c�o�mElectroharmonix�E�l�e�c�t�r�o�h�a�r�m�o�n�i�xRegular�R�e�g�u�l�a�rElectroharmonix�E�l�e�c�t�r�o�h�a�r�m�o�n�i�xMacromedia Fontographer 4.1 Electroharmonix�M�a�c�r�o�m�e�d�i�a� �F�o�n�t�o�g�r�a�p�h�e�r� �4�.�1� �E�l�e�c�t�r�o�h�a�r�m�o�n�i�xMacromedia Fontographer 4.1 3/24/98�M�a�c�r�o�m�e�d�i�a� �F�o�n�t�o�g�r�a�p�h�e�r� �4�.�1� �3�/�2�4�/�9�8Electroharmonix�E�l�e�c�t�r�o�h�a�r�m�o�n�i�x�@�,vE %E#ah#h`D-{�RF�`��X��F��Z]����@ ��EhDEhDEhDEhDEhDEhDEhDEhDEhDEhDF�+F�+EhDEhD����?�� ���V@ @ �����Fv/7�?</<<</<</<<�10Ih���Iha@RX87�8Y3!%3#?w ?��BGp���@;@  � � � Fv/7�?<?</<</<<<<<...�.10Ih��Iha@RX87�8Y%#"'&=#53#;'7DK.QQK9:.*8``! DD���LN���v@4@ ���Fv/7�?<?/</<<.ć...�10Ih��Iha@RX87�8Y#53'7NQQlIMI++���5�`b@�!�%�@Z&&@'�! �#" %$%"! � $# Fv/7�/</</<<</<</<</<<...........�10Ih��&Iha@RX87�&8Y%##5#+5327#535#53533533#3#5#bQH !1QQ zzRDQRRD<'-`0`0``````000��/Px� �#�/�;�m@/<<@= *6$�0 -9' !3�� Fv/7�????////<//...�..10Ih��<Iha@RX87�<8Y#"&54632#"&547'767676324&#"3264&#"326H23HH32HH23HW'$LQ#P'Y".2H<TT<<TTt<TT<("qzThpx#T���F���a@(@���������Fv/7�?/.ć...�10Ih��Iha@RX87�8Y'7IMI++��T,��:@@��   Fv/7�///..�10Ih� �Iha@RX87�8Y'&54767,C&&C7,%OnJAO^^M?IG!s`RY���E��:@@� � Fv/7�///..�10Ih��Iha@RX87�8Y'7654'&'7,%P7i&C8O%,6r`QWG v^OAJFYR`��J�L$��� �@}!!@"� �  ��        Fv/7�//</<</<</<<<<.ć.ć.ć.ć.........�.......10Ih��!Iha@RX87�!8Y%'+532765#53'75373#7'#59a!JRR{AR:RQR9QAjQDr^`E``D`LL`D```���Q�`��l@.@��     �Fv/7�/</<</<</<<<<<<�10Ih��Iha@RX87�8Y#+532765#53533z"<QQzzRz J6@`C`���H ���L@@������Fv/7�?/...�10Ih��Iha@RX87�8Y%'7 9D���@�� �W@  @ � � � �  Fv/7�/</<<</<<..�.10Ih� � Iha@RX87� 8Y+5325!5!F4))) =S`0`���J���� ��F@@� � �Fv/7�?///�10Ih��Iha@RX87�8Y%#"&546324#"32<*+;;+*<Rx2FF22FF2���* ��7@@���Fv/7�??..�10Ih��Iha@RX87�8Y'76 2 UKX���D��-p���W@!@ �����Fv/7�?<?<<</<</<<�10Ih��Iha@RX87�8Y)!!-QpP��>��p��`@'@ ����Fv/7�?<?</<<..�..10Ih��Iha@RX87�8Y!#'753QR:Q<`D���5��Xp����@;@�  � �Fv/7�?<?<<</<</<<.........�..10Ih��Iha@RX87�8Y+53276=!5!'7!5!X:?S/'$@9VJP`1.1``D `��G��p� �g@* @ �  ��  ��Fv/7�?<?<</<<</<<......�10Ih�� Iha@RX87� 8Y)5!5!5!5!5!?oo```��2��5� �&�l@-''@(�!  %#!�% �Fv/7�?<?<////<<.......�.....10Ih��'Iha@RX87�'8Y#5#"'#"&54767&'7327367#25?"QFb"2'!0 EJO <Q)">*p;)5d){'  ��<h��!�s@1""@#  ���� Fv/7�??<///<</....�....10Ih� �"Iha@RX87�"8Y'7#"&'7327654#"3632:UOx\4C)ZJQ8BK:bU:QheM-/@DKuFBKW7F3&+LN/(.H.1��8Qx��!�T@""@#� � � Fv/7�??//....�.....10Ih� �"Iha@RX87�"8Y#"&547#7674'&'3276Qw\fWt;{yE+B A<1:(beXh_F'hK9$Zp$%!$*���3����j@-@� �    �Fv/7�?<?</<<</<<<<.�10Ih��Iha@RX87�8Y+532767!53533co_))^xsR@_`k`k```���E1��'�5�r@.66@7�*& $ . (�2"Fv/7�//////.......�.....10Ih��6Iha@RX87�68Y%#"'&547&''67&'7632'&#"64'32761RF^ULU*A3."((K%762%,-\ ( 4[d<M>51)"Yh?69A_e>K-T177$p Oa *555$ "��<$���c@(@      �� Fv/7�??</<</<<<....�.10Ih� �Iha@RX87�8Y'>7&'&'&=3533!6R4I fTY(Q,6MH^!Jy(8;Z;40``U41��A��.T����b@(@������  �Fv/7�?////...�.10Ih��Iha@RX87�8Y'7#"&546324#"32.99<*+;;+*<RDD$2FF22FF2���N<@� ���b@(@     � �Fv/7�?////...�.10Ih��Iha@RX87�8Y#"&54632'?4#"32+<**<<**<::R2FF22FF6DD���4B��f@+@������Fv/7�??.ć.....�10Ih��Iha@RX87�8Y%BAC&9BT7��A�*���T@@ ��Fv/7�/</<<</<<....�10Ih��Iha@RX87�8Y!5!!5!GQ``��:I��f@+@��������Fv/7�??.ć.....�10Ih��Iha@RX87�8Y'7IAC/9 7���8���`@&@�  � � Fv/7�?//.....�...10Ih� �Iha@RX87�8Y'$54#"'7632'7N'DAs7}:(0/:9 f~G`TfH #DD��t���l@- @ ���Fv/7�?<?.ć.....�...10Ih�� Iha@RX87� 8Y%'�' tH1 B.kk���=3y�(�4�}@855@6�032$� �0/)"%$-�Fv/7�?<?<?//<<//<</<....�..10Ih��5Iha@RX87�58Y%+5327654'&#"'675363232'4'&#"67'63aGe))' JJ9,(  R9?8)0II:@,B64>`f0"`:=8+WKKq'$>G<28A55?��,$p��_@%@�  �   � Fv/7�??/.....�...10Ih� �Iha@RX87�8Y%#"'&547'%327$qAuS^lXI5nF<R8f ENV`5^  ;qZ2*��>��'p���}@7@ ��  � Fv/7�?<?</<<<<</<<<<......�.10Ih� �Iha@RX87�8Y!5!+532765##5#5!GQ{))dtRQ`h_`CM```��7��!p��@:@� � �   ��Fv/7�?<?<</<<</<<..........�10Ih��Iha@RX87�8Y)"&=#535#5!#!!3!!/KRRRGX8`````` ���?��)p��@=@��   ��Fv/7�?<?<<</<</<<<......�10Ih��Iha@RX87�8Y!+5326=#535#5!!!)K/RR{{)P8X` `````���5����k@-@�  �   �� Fv/7�?<?</<</<</<<<.�...10Ih� �Iha@RX87�8Y!#"'&'&'&=3533!353)?Y^G:&$RsU0}"R=AbRjbB0```vCd���=��&��t@4@� �      � Fv/7�?</</<<</<</<<....�10Ih� �Iha@RX87�8Y%+532=###5353!&667RQQRF`j`���1����@R@�      �  �   ��Fv/7�?<//<<</<<<<<<.ć.....�10Ih��Iha@RX87�8Y)53#53'73#3{R:b({`\``Dt0`��D��Bw���@D@� ����   � Fv/7�?<?</<</<<...........�.10Ih� �Iha@RX87�8Y3#+532=#53'%5BYYl`{J EO`r~``W@��&0���@J@����    ��Fv/7�???<?<</<<<.ć.....�..10Ih��Iha@RX87�8Y'7;#"&='753e9/QQ0KR@DO7 `X8 ��8��p� �(�k@-))@*�!�%  �'#� Fv/7�??<//<</<<//<.�....10Ih� �)Iha@RX87�)8Y%#"'&'#"&5476323327'3'&#"32)*2:<^-;'$5!"R 3%M&'0"0/v` &aG4=" I9 ��C����@?@� �   �Fv/7�?<?</<<</<</<</<<..�..10Ih��Iha@RX87�8Y%+532765#####5353347a)/9RzR)Rb=A`$":0 ```���D��-��}@8@�  �   �Fv/7�?<?</<<</<<</<</<<<..�10Ih��Iha@RX87�8Y%+532765!##53533-37b(/9Q)Qb=A`%!:0```���Y��C�� �h@+ @ �  � � ��Fv/7�?<?</<<</<</<</<<�10Ih�� Iha@RX87� 8Y)3533!CRNp``P��1�����@>@��        � Fv/7�?<?</<</<</<</<<<<<.�.10Ih� �Iha@RX87�8Y#5#535#53533#>)bR))QQ]M@06Yx`````b��B��,� ��@@@�  �    � �Fv/7�?<?</</<<<</<</<</<<<<.�.10Ih��Iha@RX87�8Y%+#53533!327&'&+532,mX)RR+/2:));;6iw```P<49`*'��1)p����q@0@� � �� Fv/7�??<?<...........�..10Ih� �Iha@RX87�8Y'6767#5!'7#676)95[>8$MHH"5:9K C4;@aNH. _.[v`DD<X\-3���DVp��o@/@� �  Fv/7�?</<</<<</<</<<....�10Ih��Iha@RX87�8Y%#!5!276=!5#5!!!V:?S/'$zFVJP`1.1``0���/��p��r@3@� �  �  �Fv/7�?<?<</<</<<<<..�10Ih��Iha@RX87�8Y#+53276=#53533'.+))=R)-7-6`:H`���F��/���s@2@�����    � Fv/7�??<?<</<</<<...�.10Ih� �Iha@RX87�8Y'7!"'&53;3::F0-Q0"QDD|?:GP">���.��!p��F@@��   � Fv/7�?<?</<<.�..10Ih� �Iha@RX87�8Y+36767!2$2<Mf7)Rt`cKM78C<Np?w|z��F��0r��f@+@� �  ���Fv/7�?<?<</<<//<<....�10Ih��Iha@RX87�8Y)"&53;&'&547330AbR2R! RQ)ARsMP%;cd^JGPLc/���-.��G@@� � � Fv/7�??......�....10Ih� �Iha@RX87�8Y&''767&'767.0h6.D-&'Tz9O$Z=j$Z=P6Q*6[#0.V54h��)*���V@!@ ������ Fv/7�???.....�.10Ih� �Iha@RX87�8Y'7'67676767:::; !Vkg'DD*:[ Io���2��]��@@@����� � ��Fv/7�?<?</</<<.ć...........�.10Ih��Iha@RX87�8Y 632;#"&#"'67!53'7].r5Rk+C]7 F(9cpar`rfG`0Dt���!���5@ @��Fv/7�//..�10Ih���Iha@RX87�8Y7'&! 2 UKX�@v��=@@���Fv/7�/</<....�10Ih���Iha@RX87�8Y!!'6��D��-���@O @!�   �   �Fv/7�?<?</<</<<</<<</<</<<<..�10Ih�� Iha@RX87� 8Y%+53276=!##535#53533!!-37b(/9Q)))QQb=A`%!:sS`]````]�=3y��#����(����[@ @  ��Fv/7�/</<...........�........10Ih���Iha@RX87�8Y;5#"'&'!5#5##(co_))^xR@_`k`k```��>��'p��%���7��!p��&���?��)p��'���5����(���=��&��)���1����*���D��Bw��+���&0��,����R�� �� �S@@  � �Fv/7�?<?</</<<...�..10Ih��Iha@RX87�8Y7'!3327::)Q:1DD|pD9�C����.���D��-��/���Y��C��0���1����1���B��,��2���1)p��3���DVp��4���/��p��5���F��/��6���.��!p��7���F��0r��8���-.��9���)*��:���2��]��;����L���a@(@���������Fv/7�?/.ć...�10Ih��Iha@RX87�8Y'7IMI++��E���5@ @��Fv/7�//..�10Ih���Iha@RX87�8Y7'EIMI++��LN���v@4@ ���Fv/7�?<?/</<<.ć...�10Ih��Iha@RX87�8Y#53'7NQQlIMI++���[]���E@@ ���Fv/7�//......�....10Ih���Iha@RX87�8Y35#7'[QQlIMI++���J����#�+�3�;�h@*<<@=�:62.*&,(048$� ! �Fv/7�?<</<<<<////�......10Ih��<Iha@RX87�<8Y%#"&'#"&'#"&54632>32>324#"32'4#"32'4#"32<*%88$%88$+;;+$88%$88%*<Rx2F7))77))7F22F7))77))7F2����������|���|���|���|��F��������������������n���� T�� �� X�� 2�� �� �� ��N����������4����:����x��x����.������l��6������~��Z��D��&������ Z��!,��"��"��#��$Z��%��%��&`��&��'��(z��(z��(��),��*&��*6��*��*��*��+��+��+"��+2��+B��+R��+��+��+��,��,��,.��,>��,N��,^��,n��,~��,��,��,��,��,��-:��-��.(��.��/�?����x��x���B�L�5�/"�F�Tb�E�J�QT�H�@_�J3�*q�DY�>�5N�Gg�2�<�8P�3v�E^�<o�A�Nv�4k�A�:.�8x��p�p�=P�,e�>X�7h�?T�5c�=K�1�DV�&L�8�Cq�Dw�YK�1n�B[�1�D=�/u�FO�.v�F\�-T�)�2x��3�!q�Dh�=P�(e�>X�7h�?T�5c�=K�1�DG�&/�R�Cq�Dw�YK�1n�B[�1�D=�/u�FO�.v�F\�-T�)�2��F�L/�E�L�[�J�������{����������������������_���������� � � � ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�B�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�_���������������������������������������������������������������������������������������������������[� � � � � ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�����>�Z�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X���Y������������������������������������������������������������������������������������������\�������������������������������]���^�$�������#�%�\�_�z�|    &��� �%�'�_�a�|    &�������������������������������������� � � � � ������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y��Z�[�\�]�^��������d � ��� � ��� � ��� �   ��� �          ����                             ����        ����         ��� �          ��� �          ��� �          ��� �             ��� �                   ��� �                           ��� �            ��� �         ����;��������2��������������������������MACR�@� &@������������������x��`�uElectroharmo 7ELER00������������_<������=o����=o@ ������������ 8������������������_����_�<��5����@� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/font.bmp������������������������������������������������������������������������000444��000765��000024�� 335236�11760240072� 16016� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BM�����6���(�����'���������h� �� ����������϶Э齽̥漼޹כ⿿ʙᱱ񹹹ݳߦ˥З䩩ܲ񹹹ѥ񾾾˛ٙ馦˛ٙķ񹹹в̚ݩ㳳Я׹𮮮lllvvv٩ppp߹bbb몪fffᢢeee̥wwwddd㷷ĕyyyޡvvvqqq喖oooiiirrr͘mmmqqq吐MMMUUU]]]yyyº[[[ܥfffeee븸aaažiii{{{򽽽iiimmmܒYYYnnnnnnjjjgggʌnnniiiۛcccnnn񼼼ǘ缼㴴ѷ¼hhhǩtttiiifffooo鲲VVVaaa̪mmmhhh蛛aaaᤤzzz___aaannn봴iiiڟsssmmmѩٟsssttteee纺oootttؙfff\\\]]]rrr뺺mmmyyy鷷aaaɴrrrﺺQQQ僃]]]®UUUooo}}}YYY}}}ᰰbbbbbb~~~hhhiii򾾾rrrmmm콽}}}___vvvuuuvvvooo۸iiittt\\\}}}󴴴qqq~~~jjj길tttꈈiiiiii~~~gggmmmrrrȵꑑԗxxxpppdddꐐꕕlll꺺䅅~~~ߎaaagggmmm}}}㱱㙙oooҒooorrrggg꭭mmmvvvꙙyyyꡡWWWaaaꂂ܁{{{ܭZZZ\\\ԑqqqnnn൵ttt˹xxxmmmuuu꽽UUUхttt]]]괴WWW꽽~~~}}}ݤbbb{{{^^^}}}ggg깹cccꩩqqqӟpppyyytttyyysssZZZfffqqqΪkkk|||ꎎ굵}}}ꡡצpppwww|||xxxlllߖڃrrrzzzֹiiitttꐐtttۏрߤޥtttٸߡxxxeeeꖖ̏ꖖꋋꕕ⾾곳盛۾ꙙuuuwwwpppŁvvvuuuꅅɍʦ頠說噙~~~Ԝ頠jjjꎎꈈ~~~yyy}}}^^^mmm䚚ꊊmmmΓ깹꯯⑑ꅅꡡ꟟ܣġnnnqqqꢢ___朜^^^sssqqqrrr殮nnnbbb߹Ꞟvvv꽽iii꣣把݈xxxꫫrrrnnn꼼哓YYYjjj~~~sssĹ⵵ٷvvv龾~~~ϲmmmzzzȱXXXꇇ꣣uuudddꩩ޴罽mmmyyyʪ길ܸꥥ꯯ꤤтꧧkkk鮮򽽽ιyyy͆꒒꿿ɇnnnlll蚚̉鷷qqqꅅɯQQQjjjꑑꮮꕕzzzꏏ頠ˎϛ޴ڛ饥ѺkkkQQQttt߯ķZZZWWW⥥ߟ|||yyy̺򶶶ꕕʯꗗꪪ餤ꢢ깹dddꩩꂂwww~~~⿿ݣ곳͡꺺ч˓ꔔ܊rrrꔔ꟟ꇇꃃ깹蠠eee蚚}}}꒒ڨ꾾bbbꗗ͗{{{۟ꅅ詩dddߘ꽽ٹwwwꚚꮮ길pppܼኊ~~~ˎꐐmmmnnnꦦ귷㾾ooowwweee呑oootttꚚrrrvvvlllꝝ|||ꗗꈈ꺺}}}uuu몪も懇mmmꥥyyy^^^֟zzz嚚۟fff㷷aaa^^^ꌌꔔeeeꁁ򽽽hhh筭qqqllltttꎎ}}}MMMꌌnnn|||mmm㾾qqq鴴ڬˎ游yyyjjj’ᚚ饥ppp꾾ƾ[[[ߥzzzooojjj檪䲲ꔔkkk䦦;鸸ꇇrrrѻᑑiii鸸ܨzzzꖖͪ||||||õ괴达꒒澾qqqٙ귷ˎ꒒Ս脄©ꆆꋋӒؘ꟟bbbꗗϵټ걱۵ꗗꨨяꎎؘꔔ鴴ꏏ꒒ɪ媪ꈈ猌ꝝ̏sssﰰpppꙙꐐꍍ}}}jjj|||ہƱoooꢢKKKꛛqqq׫ꪪuuuɏzzzmmm霜꿿ƉmmmyyyrrrىꋋQQQqqq괴ꜜꧧꏏ䕕YYY~~~ꌌ缼痗YYY鴴uuuՌꓓꩩ꼼sssꨨꖖeee|||ĵޚŋ̏rrr겲lllȋ饥ꃃ́```ߥБꞞzzzrrrꑑ{{{ꨨ꒒hhhꃃfffʡooogggꋋvvvzzz޴}}}ٞ磣꾾ꢢꊊꎎʕꡡѓꧧ̏描fffꄄˎ柟ꌌrrrΑmmmꤤjjjꗗ峳̎ttt꭭ǾꗗnnnjjjދꔔΑ~~~狋귷ȶיꑑrrrۅ꽽̍]]]꿿jjjmmm굵hhhpppꚚWWW腅qqq귷|||Ί翿ӯꏏjjj⹹iii倀qqq薖陙~~~׻ꫫˁzzz걱򶶶eee]]]ߝۼݪۦꐐҔeeeځˇ겲䷷ꑑ݀uuu޿ߚ̉깹~~~ꗗ޽饥ܷyyyꚚbbbڮꕕ㥥ӄقꢢꃃꕕїfff]]]ҳꇇeeettt껻iii鹹uuu›ꗗꁁϝ蚚ꠠꤤꐐꅅꎎooo髫ʍ̑꭭ˎ꿿ꍍꈈ˓ڂɍmmmꗗ糳̎eee鸸鷷ꗗꠠʓꎎxxxȨ̏妦ⅅꑑꗗrrrۙ꾾тqqqꍍ]]]ꛛoooꩩUUUbbbމzzzaaa괴\\\nnn΄⛛꒒UUU^^^旗걱蠠xxxכuuuvvvԺiiiyyyۀՌޱmmm깹mmm|||zzz꭭GGGeee噙껻uuu걱̺jjj⦦rrr{{{굵ꦦeee갰̏tttppp귷կmmm飣̱൵㲲~~~ꜜӼȳ祥봴]]]|||׭鳳汱cccꇇ贴ꬬꐐˮĢꕕꌌꅅڃ΁cccsssꗗ꣣zzzzzzڮꎎÉꜜ꒒֍lllooo```ʎ羾բ̠걱ˎۓ۹Ȧ꾾忿qqqꖖᑑ̊귷̏鶶ꕕ蹹ᵵ䠠¤̦xxxԖˎᢢ覦耀ť蕕iiiꦦ길{{{ꗗも٧YYY}}}rrryyy꭭ꪪꗗlllꦦꎎlllꃃxxx굵]]]ggg຺ꗗ迿؜ꔔ٤䨨ꦦccc꽽~~~귷ˌddd|||꺺瞞^^^mmmŰ걱vvvɅggg걱}}}ʉmmmpppꎎȾ꣣gggҪhhh{{{ꬬooo˹YYY腅|||ꛛٽݨꖖהmmmʿiii鞞ꁁĔԹ꟟䱱×奥寯ꃃiii鼼㢢Ηุhhhꗗꜜܱ穩٨ꗗ̏旗]]]꼼ꖖꕕꗗtttvvv载tttooo˕zzz‰꽽达ꗗˎꤤΘٱ榦깹ıꇇꔔ痗www깹˕黻ꌌے~~~jjj~~~٩ܢ窪vvv͐ˎ㼼ތꔔ棣rrrꎎߴ虙}}}곳߃kkk꭭kkkꈈmmmڹYYYqqq𥥥jjjfff虙ꩩȒꠠꙙmmmwww񵵵ģꔔŐ۾ꋋ|||mmmܳꌌtttnnn苋蔔}}}RRRꉉ꣣zzz꼼꼼mmm길mmmuuuꔔfff꣣ꅅ}}}jjjooohhh깹깹mmmꈈˡoooxxxqqqlll꒒ܗuuu곳nnnꃃ鮮999Ƴtttώꪪꪪ___վ꭭eeeŔ䥥꾾qqqޔggg}}}罽갰qqqۅꗗꙙ͉ꐐpppyyyꗗ~~~ꑑ꼼rrr]]]Ŵ第㺺꼼虙虙Ꚛˎꎎδܿꤤꔔ鴴֕꒒νnnnkkk꿿Ů靝ꔔqqq^^^zzz걱zzz驩cccttt̏̏䘘jjj鴴ꙙ䰰kkkᬬ񶶶慅yyyꬬ߄꺺ӹ꣣eee靝fffꉉcccxxx愄{{{ީꃃnnnuuuccciiiꖖeeeꤤ겲hhhvvvȮ꟟걱 يeeeꦦꇇ깹ꙙޘꇇqqqvvvmmmeeeiiiˍꧧYYYꜜ꟟mmm꺺~~~|||oooiiieeezzzzzzꛛ꿿ꆆ꽽qqq꟟鲲ٛ겲꭭祥ꆆjjj뾾]]]ꅅ㢢˩vvvnnn걱ꕕꖖpppꕕdddӅˎꝝꇇԕ깹ꃃ걱{{{___ٞ馦nnn길꼼Ȁގꗗ꭭ˎٌњ詩ꍍꐐəʸꃃ՝겲~~~斖瀀ӦcccoooꚚꙙ²ܫiiiꅅˎ̑ޙ```ƓꁁⅅꚚͱ㙙___rrr{{{www߉ꬬꗗeeeȖꅅ񽽽˩aaa___꼼ꌌꡡaaaꧧ^^^ꪪyyyꔔꠠ᝝졡eeejjj߽fffܫપꕕyyyłXXXꐐꧧfff곳ꨨꐐꆆꕕkkkҒvvv꟟fff갰kkkmmmuuuꆆmmmhhh갰۾ꩩ{{{곳Ȋ귷nnnꓓ韟길蝝bbbgggɛtttpppvvviii餤پś禦Ꚛ|||Ꚛzzzݨnnṉ]]]Œ꿿eeeԡ͍굵yyyϔˑ꒒ꫫiii}}}̆ꕕ峳ˉߢ[[[岲暚|||ꗗ⁁ᬬaaaƕ귷ꕕuuu૫iiiꮮꏏ矟ꇇ~~~ˎ̠崴{{{qqqrrrꪪ㱱ꅅꁁjjjٌȁꊊ___tttꍍiiipppꪪ謬mmmqqqqqqꞞNNN׼}}}ddd```ꡡmmmttt껻ͽꁁ弼mmmiiiˁꊊӃ}}}Ιޡ緷껻sssꤤ~~~ꝝRRRꔔrrruuuƅމꔔqqqꌌꗗ͌깹jjj⭭eeeeeevvv}}}zzzyyyccctttsss꿿ꮮkkkggg腅۬겲ƭ͗}}}ꅅrrrꉉꧧʸꁁȷ濿ߴ\\\ꢢfffճݭ꭭www꭭iiiۿmmmoooܼrrr곳TTTϬqqq貲ꅅꢢVVVXXX~~~ꍍҾiiiꂂꉉiiijjj{{{ꠠ߶VVVzzzꉉrrruuuぁͩ꿿tttꋋaaaȅ⼼ꮮpppؤfff^^^}}}މ}}}ꔔyyy꿿aaammmꗗ```꣣ꖖqqq\\\{{{ג׿fff޻갰Ԕmmm騨Ź길kkkٞ\\\mmmꥥҥnnn\\\]]]MMMTTTߑѾꮮiiiiii\\\nnn꺺괴䁁^^^YYYnnnۀmmm~~~Ꚛ괴rrr}}}䥥˫էeeeş|||]]]fffǙvvvfffIIIccc~~~ꡡttt|||곳길iiioooxxx鋋sssҙtttꈈ沲fffkkk|||꾾ɽϨꅅJJJYYYqqq괴aaaRRRhhhڷAAAYYY慅iiiWWW```{{{ꮮeee\\\{{{ݹlll___pppyyyꝝuuuԮ‡̖ӱꁁZZZ˩ӹᩩꉉ·˞rrrsssݿAAAooo궶qqquuu꼼궶vvvۥߖfffooo길Үiiimmm˾vvvkkkyyyž^^^{{{є{{{}}}vvvꤤ滻ꊊ踸곳៟ꪪꦦ괴خiiikkklll~~~IIIݿkkk߱ږѥ귷xxxꇇߦčؠ}}}ݪooo꭭ξꈈ귷ڹҽƾꮮ桡귷֙þ鹹꿿꿿꼼۪զꩩꡡʫ꼼ܼ길ľɢꫫýꤤ갰ꑑ޴꼼ž꺺꽽髫jjjꫫhhhŝ길ttt¥и߮βԌ䝝ﴴⴴyyyﳳⴴyyy곳곳깹֚갰鹹ݮɳ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/font.png������������������������������������������������������������������������000444��000765��000024�� 45533�11760240072� 16002� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�����'���Өa��� pHYs�� �� ~���tIME  $��JIDATxwU 0P3R(ꠈ EDP DD(E)TTl`W,1&hQc/ݟw9 cI<sg架ګ~?32Rܹߗs}oٿ^u797ŜM75>߇g1ާ:|][1-]x:Y]zM=}Y|k}Q~EgI@ (P@ (P@ (п?^upҼ( (P@ (P==-wu8s <dwr;w6р}?ꫯ>qGy@ (P@ ?񏧿58Ë-z/awsAS_BӥK &\>{}Q-~@O?_ y{kk׮%XFhO?}0" (PoA~O>ygl_~vG} ?<Ls*:ιO<1?(kGx8 _A9zW>s^{mqIwrc);w>tph7 v~ (P@Du6_c|ge˖wGnxkԩ;wv^#wͿΘ1ciӶgN@}$˝9hݣ/ݥK>>{ׯ}hwX~4hpnr gzz#5:mwhw=K;vs=?J.gxߟ)*~>~hwQZ0/A-?QJD9qwcn+<Cp>;)S:*({a[G+X>bseěd sFѵYyY# ={WKŮUO>d8uovYc-s1gq~ɯ>OdǓ0'dr${Ja&lY)nLc w0gzwn:Oc%K+֩>ojr1+,;³.4o+?>`͛Plߗbm%;v/[L~3"3pv!)~ӭhkhw=rI46lX+W>9a„|?s7MsG?6%iv*f9wxYqc}~3Sh0|T%k$QF/Eϗ~U辶frᄏ�{h٫L՝?jkrַò}uMG_{qN&>k|=k=\.@cAcKX2J-,24q`Xgtw~,JIsPymYrwyy5rdx/qw>bĈ X09wantG,wQ0`�S "CW_}oygwb`ǩN~Se25o龱>"^xa<<c׿GNXjsΥF 2/7o_|VZ29n J_$'{;fuR^yx8?"ޫe9'[L_YmAd:#ty뭷.q_O5@7eF!2}CFZcÆ eH)g䨓x~wS76o]{:iN|Lƣw7yyEN; 㓧=z\\ TLdGvɓ4i39 z8w Y_<̯С: ym%::R7}ѣp:ֈ,3D<BsO;!H׻4#)EY}ݸ؛ls,Mg|_s[jd֮8ύsDI\ 9~F&2Cdg!6zk.Yh7ڰfz7qcjL2t[3t߮Vz饗~9)1n;ál{&G+g}},]j=^BKW/- L8c 8IAl:fz x?\wuN9Nuy̒BZ%DtfuZs25~W8?·nlf`oZ&yQR(cnNzXB9ld;+~#JI|^8}ʢ,(% '82͇~ŷ%9|=A9x6{[ݯc6?}^℧/0xn9("5H3>t _ RWiffΜyhwWĚY @) g>ĉ?ꨣiYb:9`1Q<e˞;Ӧ۸(`P 5ʷ%`T ]ƍ{M#nDDn?{_E 'FN8ᄛܟtaS ݔ=Ldn*sLjEmp_S(/9*bw\l QYY}v~[+]+6mڐu%kرKB[3_ib3$ݼ38E*3wʔ)9WIݺiZn(~O?JԾX/S(�BاO~Iq}>/48H~!?;9Yb=/ިD_)H0RQ`l! !=fLaAG3!&L%\ �h7ʨNut2xDַmEq`1�5w 1긾3:Dw 9s朢H|,G/fch޳ B7hq[em� &Agr>A){Y=w|Qr<Kx߾;k֬I2?۵kYat}3f :x>l ~Fiȴ-[>ǏÅV8|}|{:]%R;-pwq\ zg1l ,_sox#<q7#JsTҘqݻ9^x&5O/֭[?;.X9G<y1vߦM?c@Ѝ;zI&WV8w^}p teD 9e~s43 zs͚57`Qs<e= ~& H_d2[nYgKqP/IOD9uweKru>CF7IH;_CtE]3"| bG^bmeVqu7x㫞Jt-(oN;^9v,wLǦƹr'`jݺVEr~#{u]vٳeIows1_~/]cݘd=Kw= s:*9 Ⱦܵ/$8p}N~>Ÿ1ƶ>CQX<F\*ǒ C掠g}yX% ttd?d[M%[S rQ^S"w`ٳgo f,Yx&>Q"tsFkTٝ;wwd9e(evJCjԻ\`Д`i {_hغ9!Ë8R&q:Eu2CH S&YRlpq9^z~=,XwKݱ#KND@FGZ' h vݛJUD{Of8>Y)SW7iq3`>cwI'7E~,Ɂ6H QBgR{'8`odF(bH l!F)QkT:cZ:E3: S98͊b{mZr9ʘtJC=i օS֫fG(5MgLY[ks{BYILeP(9eG]vAT�G8#q7vi%3 lT<9iq 9Y}j?رcTt|fRQzgנBYr!K*CNyy>eL&NGD2Eܘ9z ዄ0~g[ w@F왓͹PG9 [N?t_zBxˍi)gl Sq�t@FRkzU*@:٭g&e=tFsΡXvN%Z4Vr"\π3ZIKvAlpRir=g`8<B@%qHX!%SrE+`d}WqkW߹ .\,!lr9_C0OdIkf#)KϜ56e5,(!Mc{ū7$h7pd t>}e#tZʦ:ģ]])_(H3#< /_5"rl@LJpzZWUt A9ɯr+5{֦lyJ"(r ;<W ltn:j 1}tjc|8;F뮼ʇ/<O q<* ﯝx"+eI< wP N|a\ĺA7,;p@ޭ)O7DŢ\MiqRPnJzXQ1jO)3`"v]nݺuk`"D=Y�1)q1"SD*qdZD铃ì]1@C$EbN N0#61]+i>P~A pDGgϤ6\ᄎ`uU<K7' = j)(h! 5I8-,!#ꫯO6{{z8a„.Q5h5 V.[[ !q^x ~L0 CCiIk/c([Sf<;|WhS:>o)3F%#Aō*9F@=[ <?+m0b/;1N'!q1vn/%84249m۶YʾS 0`{ܙL BY3( :aرc)Mwt4Qm tP68tE*")hf͚G@y뗺rU4 ?P`PjG혂j)=Vȕ`l&;zD$9rN5psHN@W&eg*biMּ6UN{a?W03f\|={] &y/gqe !xWO>yH5dͣݒN3x|O= dɯ1WD{KMJ<~9g2%WCrs9:v^ RFz9,%X$ Y92< YXCA pYަ0d׫uuNkn;w ͜#0~3OY <[ TIMN$fX@LP/k_*)!8$>neTd9Fxq%`}96Xtyթwẻy8# n)'h'/ |dMiYϙlU#-ڵkwJ%q<&s:JvտqJ�9#F ͵ Ȧ)MFƬR %`GW^Ie%N"uJBrXNu.$p޵kK%q2S~܃A΁?AWY yNwb֬Y[ÔhI ؼ&? xޫ/X۟#˜+@)Eڣ֕Bsx:ܔ^Z^؏2% b=XQpK|o{|j#Ph@ƜElO l]hF^9iLl\MШDrZ˂ɫblF5t\:O8N0M/JmX0eFo؈39#rjިPJԔ˗?mc <h?5�5tDX(0hjޟ,ꀦ+X#b/ 'Ɗ.0;G$�WfL:")(E$Q0-mLU ЌO{�k!CζQF˞û$_9 ٺMʆ"SM $lR 6l|e_4ġ5Wdq-xzV"ªsuٴi\[ s:kzuDFy Y:~E|Stu~|  8%:o=aCXrI ^ϯp.7I bp_~qޑ C5pow}GX9GfS򼏌RߘI n·2=2+9NsxI2d1'c)Xgc8m5%G!NrM yIr3ndJdz'-!AAu4+pet:cs> Ҹ1,(ltZPPݜ=7H 0.~rxcBi<!qu޽#Se(cXBzqY^YWJ;;0OZW*C0)H'3CeoyOsr9肃Ar"-,mmͧyhs@pDI︵`$ ! )R* ޽h Ql^3K3;ԮgEBK\7 =kV0'&<d PIX _ޫyIKS~)!#1Vs 1'+hϵ "81Le5Sݭ,rA9)f0v1r^lqhtY|l‡W0jB\ 6SAt-{^m^-Ԟ( GᕂTTKgi5nR@dVXP@ I`EL 0/-u9<yQGCv$JQ5hl8`D4= S�HdgE!28|3\L? 6R_c'(3gμ\+\/PtAҰApƆn,`3y9O!N6g گ.`D (M9D 5cI?7J#G \^ttApJ2s/\d̈́`XN!.rt]G/RBv Cۮ!i4JS< (Q J= xTRI e[<A8@8'% ;NӌQ깭G!IWL<fj\ Ա< LiݺI6FT=yl /(/�yR#) <dŠSgƜsuk,PbH[l [y989_d,쳌)?F15avk׮9=Ӌɢ9ȑj5)mk₹Hqj6G91to[_d>\kFT %I%F ? dSk.By茸tw՞x O`S`^HήY}.JftgO`'0(2Mt<&![q@YQwJ`ʓdv1}'\ddPhseb$+BKwDIt)'e:87hJ睥-wvz/Iz2yȃ=<(�Cv \w WR%�sokzvWކկ`@aAg$e{yγ)`" NېiX|0(F=(+ȡ=z,B.i (jkBpjQvA`ʥm8$.ʝ )yB=t!C[٢\khύsO2kS =pqzqouj3 {UPhXzfԗ =X{Ǒ9Zӕ z O2?*jXml 6Ƞ:|t~RwW,͋ (90][(V% >BS@wy۷o"'i_jK/if⠢0M'%fjGFEvZQTYdEv L7oNٹ'0}#Dj|+t3>d`PrxPPsnB`qWtn~;@-[v 5@ 1T1G]}uf-BCAr:)9užfbժ$ qJ9ۼږcRD9Π˲[+32A#5|x_A(P0)sM7Le%fɍG?J*0dx`Djr $f<#r-N݅ _(?#5!ጇW)CppbB]"J+Zelݝv5 44L9 `(;O< 1oxAƨ۷AcwUC&Jhn:e,xh&4x`28BEvJkeKa[_ Ó^w q$?xh7AnL]@CFWXSJ&82zs{d|:e~,,! �,љ^5( ߮lu:Zq.kd` Wh.'AzA!wCD*@ QLw:<˶~wn-ä5t|!le=�48z˽a+:m7s8" k�<39/йBH =oE,!lKsnzEs]?/\H�-[)TWDq"S9ȗ#[3~!9(q=h$Tͳ캳<l `Ѿ}r=!n8?Z1Gj_VLaT`+Fֲx]y[ȂQh5kv KIdjs*K[IȯRoby W1]Rp)M3{\ 3ZsϹ g[MݳP'$=4ak]v{YRu,9餓>;@s[rkZj]_LYϥ`ņ1"v9J6炝Sa}6/FBkPz7IaUʅ<wժU7QBL S2Q#Ƹ+*pꪥAΟߑ5r;K +N5l9C}4e3:YFVԅ(9-9ª"Q.D D?�h7]F"]~lY7GBpumVRDkLUX$AuE�14ȕDMd=MZ⶞ 'إÒߠ8vl?yQPk/KjSC"HL띳2.EDc;HngGb I8*˚e$J657< eWSlYq~F(B6�JھDM0U4FvrͶ'CƓ`m{^]/9& ~%"C*P2nR8q03Ӷ]b.?Cg?(yRVg` X0, �ĺVF,�*}kРA[@#2M#A&ScsնYNIX˔ݪO+gdQ!b Bf-R{R`eHf1<3tp"Ǎ Jj 7F{5/V燼V^m۷o\s*,`a6 LʈT;YIlӔ q2눌Pb4iCFHdU8"; A իۻwg@j =;%~"!1>"nNkYKRtX>uԇ|(df 5g|m5Aj/ٓCD2H{wpmO |vi)4$j!tNݿt\OG] Eڭ lTaNALxP2"?,QR@n:5Ŝ,R.֝dC5eehjP]Kd-!9$@і֭[߉KJ%!$ȫ>?)?ʟ%ЎVyÄ2PzE7JmRl+oD�ۜLk V q@9DA9!s'@ö\/(SkUF%(}3}PYYGUROZP'|ﭶ,%yI}!sf%PVh~VIvo>. &[�1XAösPj̀.o֑OPVx4  iB.8]+9#m !g &xGfQu $04Ptt@=ps ˴0(Eu2hu=eU?^Ygh.P'pw<ܔ.4Fp"ˣ%G2LQ y_@p0qD)MX' %q0=5 9$UBZ&kbnנ~P[ĎgR_G]-105M"J r=P7.޵eIB0 u\Le~+;nGXPøݜZ-{.O81#JvK9>%lmsvOAF^֮9NQ[<l;79xs}.ҌA9 9qwY7RD2h)r 9r˭믿~ Cٔ&{Z7Cdн7jk' 4W]u�&(~8ϯ =#Ysc4pQ] &R+=)R;I/z0uC= L@N5qA"8i:0Few ,3W͵F*1ݡCY:@^ʀč'g{c xі5%dL%O;f'9SmʹiH c~Ad}l<`_jM^`yϕ1Z.ɦCuyIQ _Iyʧ^QJo\H+H>c٘k[➙9T= ~ձ?!.tH-sMrx۹_+˂wGR%:@5:5fli}e4/n%::1'%{g!Trr-|l e."iU \Vm{m i?eWY[wkfD93;VKb;K  | 3(}XXn%qXA<J?L\\adqO9P3iN [eSQy^'r@2k'$8_PSԌ+N=0:.hj[VgU n٫#$_c3eg8*Jw1-l \Emt(Z0f`yP/}+ JBF-01EXd8ָ`3,KjSwFͱq;2IjgbzVAFYEǕQ͜/r_5 :I^ΐnhsIQ&kq7m1<T΅IkL$,NfS`J(RG(ENzS(j%zqW*͠.j33ق I*6vmkgd(Ole1bu^qz٣%K+$7*%+J 8ȧ6\f!J^eF-{*5ZϒfT@#4['Yt &I:SȆ.Baq�1hw'=uHq@L82nc;:{ʞCku}?*Yg dd-3^?d?Gk?i 'NI!yЏM?!%fKU 9?%A9b2I^5-r9} W 8A6zܹs/C|fl*΁wAk7o|$DM̐^YBP]{wD1@yr34QT Mmq(+W2J^{rRF-x mQK.rF)_8:g!~?lbûfi2BNWb"?N؋-6xdbRd4Au<1 i!x_{S:xG!q?x>E9:EJ㯩Q2rۥHk +"x6>Yu=ʺ=mcp!@F4Jj�!.ctC?]zݓ&Ad)-Ql<qaK r`c'<0E|\#7jb PdفrD']|YisgnX󣴈U;ws�jb0=1JZ]Sg+D2ea9z)N!u)C*1 *($!sh1c",cjK\(5(T=X.gJ2⸆/bO00/Ei~Mua&]vAWtzmڴ/%YƖݻwCr!jYutV6lYQaPNqGu=sqlOJ y_]̨lU-^nR2\2EPR(X5٘\: RVdUٵWA^fR֭.AFf}KH gQ~ O2~$,j\]#]AtfϊUoP/28eFz_=<-ȤP#n˗=5޹s鮍RnK8JF溡*#Jzj%A[~s+W5N{]4|6D29āWpM7 :bsoߞ54l55~>n;{AKq9\Mv\^(d&<]zaXVӸ,J而S�לv\AA ώ10rv|{xϜ怬9r$Nvsԡc̼~-$5MmF/'CCh[6iX6.~i65R0fȹlTWTid*e]AΝi!}2Œ*8ӷq75zgK+cKAC skTlOiQo5�*@5EA Ъ We:ɂ_J4͘aϷZd?G:Lf#:{(YYUx$Sf1^U#ܔ!C7�䌎uR L Ln.S6lAB}YD dȾ)Q5k4U"mD} NeG`dr]a3B?(t^7aڒ첺G2-u="-RFaHT~XQqbuN;mS [܎7mQd܃ĵѸ5<oqnfPwќIpI0EI<%'ޥc=*VzP2xf8E nO/hkg Gv9lsgơnQ]u;0]rD@W'̾+C(#䐲ma(7Y'jȲ(oS`kPYd ʺg@AGtN aK,$[no ѰdÆ 7n8/! �'cZ׬ywo0B'2D:nժUUVVbf : J1b15KcO騕2('gՆ�/e]޸K<x8sÚ u2x%9^JF2/l[@~׶'hC�2Ȣta٭%S(d΂ I6d#oԤ (Q0{6u]|ޓY7Jke d80[s"+a=+80{FޙÇ҄a2{Cmz8^3eCx/=LNg< _J漦%kP*YlH:9v$ɽ0kj.)J@M)j;4Wr{45BT xQE-@%=Y-n֜/O} P/(^Ndg.OyvMmTg== vGyJl)[,Q!T!ɎClDc<%�Y6ѧOܮ;z"Hю-R葲hﶸJUHQP3<*GS6IebʤlΗD je�*]-i Jk$0&>ꨀ+Ϩy1aNM[ E,-\a6Ļ^jZdV[& Av~Q5B#ռҔE jvRp�Hr�ߴ7 \C'#ɎE 0zDaPJhޘH 0,8slZP&vB!5@`TK<e"%Z׹mRk KV zwxע.L[wsfN=~c gY36r" `FF=8baO2*z)f1VӱQB(M4Pn[Bdmaeg rLO\ǎ|T<'P{GBZ[V`UEZS=/RHq3<z@Qr#[�tg43@}}+Zޒ=d3(Cu%(JPB\HQQJ} ^G{INW(.aۗqtQ,D` QpE$g>l36Ilԃ]nkR{L1~v o8 0@B(;9`34Ɠ=(^B stb7 *d\pz(AMs~)bK �zO6 /ce^ J7qgZK֍T1 \ vHo,,eZ#"Vѳgϝ-b70YKk[Iꏙ~ @ d!oM=g{SZ* Y}˂0ⶋFe%W=g30@.-Η3vup32"9*N^6=Kւ9$!7J5)5ѵ? miαʥV(ɈUο <xsV?Ӓ*y_ Q:C8_`(3$]f2|SAQ̐v꘳Ҝ*n<2:v!@ТBYrjggFyOdN1d #F{FGY?$:ܼ9o.8?gu@ݪL68WdCپQBm0m_yV dUOYAAߠo4I@ /BPjU-Xk?k] c̘|kQ:,͉#JmMu]i:^[g$6(`ȴRlVڪ0P#P#P‰�H&?XPd7|.<jsS!PCN 8O;(l|ySC $o*-}ڳ cƌnuv_Z9 T~sT-<tZ%t8> *X[?2R{$Vy;mڴ-䎌R:O8Gl=Ց*'K`v$LЗ: O%% PN$Ɉ% ZC`8vץ/W&8Sބ gWT<2>h%Ի3Eg-* g6ͽgo'b噝ޠY+" msI* 8wO+pE�vܚH*ѴӧϓCYֶA (Qz_eQJ>uv.]eYԱ5R%_~Lw+Kamv1:=d>$f|nۖ3!~íb'F3θ TUR\ߒ,TY/Pɩέ9b̛7-ZX͔mAA( dqق=-i (e  I5kZuH0 K-}lcHȩZHYo`y#@T Lnp`AE kI Zm8=chs%tٮgd"s _1)d@^$!;ZJ4ZR?w1Xe nNc6ZYؖ(B<6DpSK'n 2 )9+ Wm'n *mBϵQqx::"}9ӿ`Fk4V-(Mv]}7fFEnTR$c7;w&ꌁ4G==R=Ss ?bN{üK1e qj::%[kv'6O&r&~˂mUVɺ z9!sl7alc&G .)͟m'yJF>jܭ[>^OlLEH$VHtPeP%ޥH϶;d$2V |m۶ O9L2BkiQ4ԘR(>Kn=78 .|Ccy~ fլxg[/ui\w,s3g;2ئ%ߪ�IQi^im]\kx\:` i9#&&Է# dgoұ@OEF%W!YF35Ytz*9U=GAYM{5Vwjfx 1uƸzp,G+d29ȶh~<`7t v ] be@G-*X7QIL$qe Z7]_kK%KX͒B'Z|R ܓD�^T]*uɮiY&k%!]#]%ܣH/TKxmP+ڻP}&|ez3̒s@>N$ITΕ;Fq##=G?5e `--X rޭvr7.> #54K9BqU<YabezKed+DZ,nȗwhg<n4S]qY<.E;<iB<CϙJyȷ% aZ*{Ucݪܱu:H^Q$Kޚ~+.$'Hu|>X8^P. ,A|x,iE5PQ*woQ?l tϊx4,:H6;ː1I"ѽkذdx3egZ}U]Ld80iFW6=C гR:Z2{Ti�m"ΏbmH[;Hg"η8޻o(5:{d O<$*^{X1ƺPQgN7ޫEZ_1wJDMOE|1Q-A %jGnV²3]"SU[]WyJB%k5wM5u3DŽL{'Y6eh{Z"^-v^9uK1oPZ><O?7kue HT ˉ1W35lW~n9XW^3:uF49KS5]iz~u TzO}="Ʈ~c,F,3Kwz38:9l\5[eu)ȟZ_SV-*4&{= _MR-(Pʢ@.F5 (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@e<|����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/hero.bmp������������������������������������������������������������������������000444��000765��000024�� 105466�11760240072� 16005� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BM6������6��(������������������ �� ������������X��9_�AAB���fJ�(8���Au�1Rr� �fff�-M�VF<�����6(!�Zr�ITz�?m�%Bh�pP8�{pi���(� ��H~�|{y��Kb��E0��5Xz�GNi�Zc�)?Z�}� 9Z�)**�_y��k�x�?Fb�hZZ�#!��f��]�De�A\|� #�&/E��333���ppp�|Z�3f�TRR��.;W�, �<r��s��dYT�q�S[}��/W���$3J�k�%):� ��en�:FU�K8)��rR��ff�Cy� #0�!3�#�+If�LKK�SVe��Rj���q�,A���2T�>Us�nd]��74<�y��3f� <a�Cs�q~�@Nk� (��}[C��kt�Mn���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5�h>>>>>>>>>h�7/////7�hrrrrrdDd4�75�4dddLp3Drh��������������������>3d>>>h�7!�4D33Ldrrrrrh�7/////7�������77�h>>>d3>��������������������hrD33Lddd4�55�h>>>>>>>>>h�5/////5�h>>>>>dDd4�55�4dddL3Ld>h�������������������%�-3D>>>h�55�4dL3Ld>>>>>h�5/////5�������55�h>>>D3-�%�������������������h>dL3Lddd4�5!�hrr>>>>>4�57575�� -DD-�555"!�4DLLLLrhV���%ZZZZZZZZZZZZZZ�-ppd>--d5""7D-p3- V�57575D4--4hhh5""5d4->d3p-�ZZZZZZZZZZZZZZ%���VVhrLLLLD4�!5�h>>>>>>>d-���������������h>dd-�����55�4dL33d4�������\\\\\\\\\\\\\B\%�-3ppd>d4�55�>3D>h�������������-dDd>>>h�55�4d>d3pp-�%\B\\\\\\\\\\\\\�������4dL33d4�5"7dh-D3-�ZZZZZZZZZZZZZ4 b-V�`N)Ne5""54dp4FN)N�UXD%60JJJJJ6B6J06BB|3dLL-�!&7�-4 4ZZZZZZZZZZZ�-3Lrr>4d555"!�-LLd3|\BB0J6B6JJJJJJ6%DXU�N)NF4pd45"5�4dddddL3-�%\B\\\\\\\\\B\Z�����NRORN�55�>3�ROR(�XWX�%\J]]]]]6\6]6\\\B\%�-ppppp�55�������Z\B\\\\\\\B\%�-3D>>>dDd-���55�3pppp-�%\B\\\6]6\6]]]]]J\%�XWX�(ROR�3>�5&7�4D3333Z|B0JJJ6B6J6BBB|Z�`NOR)e5""5dV�NW[XlqX��%DXXXX L DZpd2rrp�5"555r��GGG%Z|BBB0JJJ6B0JD>>ddDD4�UN)5&7�p>r2dpZD LL AXXXD%��XqlX[WN�Vd5"5���4dL3pp-�%\\\6]]]6\6]6\\\B\%�RRRRWX�55���NRWWW?WX���a*********z�-d4�2+2�pp>�55�����G%Z\\\\\6]]]6\6]]]�-33dddddh�gR)�77�>pp�2+2�4d-�z*********a���XW?WWWRN���5"5)))(rh4>>bzr3333 L LLLpp4�)OOOW//!�5"5r�)OWq?ONNgF; ;k cz�hh�`2)5d>Dp>�7&5e(rGdL33LLLDLppppppD4�ppLLLLL4�~O^�77�>pD>d5)2`�hh�zc cck; ;FgNNO??WOO)�r5"5�NRRy�����a*******************;�NRW///!�55�NRRROWORRRRN��� ::#:U�h>b���77�>3>�77�2ff2�;*******z�h>d>h���>3pppppp4�)R)�77�>3>�77���b>h�U:#:: ���NRRRROWORRRN�55r�U)t+��a,cccccccccccnSN{q//"!>�r5"�`NO)YU*:gg.<�h>b�r5&&5d5 5)NNY```b�z ccc cz�V-rrr-� UU3pppL4�UN<�7&55&&5r�b>h�<g:*Y)OON`������(t2� ' o:::::::o ''z�)W//5�����55���NRRRRRN�:#:::#.<�h>h�5A�57�)R������� ::::#:U�>>>>>�<:<�4dL33d4�����5A�A5�h>h�<.#:::#:�NRRRRRN���5�;Uz<2((Sa*:::::::::::::::::::::::S;rX!!dzaUh�! UUYN<F#F bbbV�VVV� E5"7�^O�UNNNU�;'##gg.<�hrrrrrh�Sok``-4b �5E5E �VVV�Vbbb F#F<NYUU �U:: ���* ::::::::::::::::::::::: *��� #:U�55�������R)�:::g�����������5�)R<�NRORN� ::g.<�>>>>>�S:U�����* �5�����������:::�)R�������5�<gg',aaaSo::ooo##gggggggg:ooo::oSaaazzn'gg<�!"5k`hbU<2.gYb<NNNNNNNNNNN(555"!�`<Y)RO+< bbbV��VVVVVV� bbb �VaaaScU�!"5(NNNNNNNNNN<bYg.2<<4h`kk5" �U:: ''�;*o:y*c:gg:c*y:o*;� ' ::U�55�'''''��� :g.b�NRRRRRRRRRN���55���XWRRRRN�����������������������* ::U�5���NRRRRRRRRRN�b.g:;���'''''�5A5U*:##ckaa VV VVV b ; VV V aakc##:*U5""5r*9ckU2Nr;<NOOWQXNNe5""5h�!//WOO??)�bNXXXXXXXXXXXXXXXNN~+eaS :*U5""5eNXQWOON<bbbbbrN2Ukc9*r5"/5�U:g:U�*V�����������������������V*�U:g:U�55�'''''�URORN�����NRRRRRRRROWWWWWR�5�!///W?WX�(ROWWWWWWWWWWWWWWWORf+�z*o:U�55�RWWWWWORRRRRRRRN�����NRORU�'''''�5/=b Vh4hV;Vh4hV b="5*'cUfON(N(NRRRRRROWWW???e5"!4!"//qlXY(QW???????????????WIfI[Y 4 5""e???WWWORRRRRRN(N(NOfUc'*5"/5���������'''''''''''''''''''''''���������55�''���URf+RRRRRRRRRRRRRRROWWWWWWWWWR�5A�h�!//W)�(ROWWWWWWWWWWWWWWWWWWWORRRN�������5�RWWWWWWWWWORRRRRRRRRRRRRRR+fRU���''�55e2(2 � *'9C'''''C'C'''''9c � 2(2e5"5�a''� UfIf.+ORRRRRR???WWWq)�5&5eN~(d!!XY(l?/m??WWWWWWWWWWWW?mmm?R+N`�UN)Ne5&5�)qWWW?q?RRRRRROO+.fIfU �''a�5�(t`�''' 9 9' 9 C'C 9' 9 9'''�`t2�55�''�URf+fR�(RRRRRRRRRROWWW///WWW?WX�77�NRR(���(RW///WWWWWWWWWWWWWWW///WRRR(�(RORN�77�XW?WWW///WWWORRRRRRRRRR(�Rf+fRU�''�5�I( C'99999 CCC999999 9999C'cvk(I�35(vc ''a�SOOf)Ubb(tRRRRRRRRR[XeXlm?WWWq)�77�Nf)4-([R?E! X[OWWWWWWWWWO[) 5E?RN�(N�77�)qWWW?mlXeX[RRRRRRRRRt(bbU)fOOS�a'' cv(5"�)R)�' C'C C'C C'C C'C C'C C'C C'C C' ,�)RN��, '''�<RORU���2+RRRRRRRRN���XW?WWWWWR�77�NRRF�RRRN���NRWWWWWWWRN���NRRR�FRRN�77�RWWWWW?WX���NRRRRRRRR+2���UROR<�''' ,�5�))�kCCCCCCCCCCCw_wCCCCCw_wCCCCCCCCCk�)N�r�Sw9 *U<Uk,z�(tRRRRRRRRR~-��eWqWWW?e5&5�NOU�FRRR~-��yOOOOOOOOO~-��2RR(�FN�5&5e?WWWqWe��-~RRRRRRRRRt(�z,kU<U`* 9wS�!�)R)�, 'C C'C C'C ____C'C ____C'C C'C '�)RN��' 9'''��� v�(RRRRRRRRRRR[ 4�)W?WWWR�55�NRRb�`RRRR[ 4�RRRRRRRRRR[ 4�RRR�FRRN�55�RWWW?W)�4 [RRRRRRRRRRR(�v ���'''9 '�55eUk,'CCCw_wCCCCC_____C_____CCCCCw_wCc`Ue5 �kCCCCC'*P C,F)QRN(NRRR~rD7lOOOOONe5""5eN2``UNQRRR~rL7lRRRR~rL7lRRRRR^<``YNe5""5eNOOOOOl7Dr~RRRN(NRQ)F,C P*'99999k�5/�, 'C ____C'C _ __C'C ____'�d/7�, 'C 9' C ,�R���NRR(�/RRN�55���k'k�NRR(�/RRRRRRRRR(�/RRRR)�����55�NRR/�(RRN���R�, C' 9 C' ,�5/ �, C_____C__ _ H __C______k�!/ �,__CCCCC' ,�R�znFN{Ry�5l(�7"5A5"EV�,S�NRRy�45lRRRRRRRRRQN`�45lRNNNU�;E"5A5"7�(l5�yR{NFnz�R�, '99CCC _,�5/5�, ,�7/7�, C'C C'C C' ,�R�v v�)RN���NRRRN�55���77��� v�NRRN���NRRRRRRRR)�����NR)�����k'k�77���55�NRRRN���NR)�v v�R�, 'C C'C C'C ,�55e,P __ H __ 818 H __ H__P,N5�, CCCCCCCc YN<�oswnSN~N2(xRRRRY�5d;�5e �v_PSNQR+N2(xRN(NNc,z�U(.N*,z���k' ,e5�;d5�YRRRx((N~NSnwso�<NY cCCCCCCC ,�!�, H 1R1 H ,���, __C'C 'a�a''���)RK n�NRRRRRRRRU���k'k���k'�, w'�NRRRRRRRN���R�v v�R�v ���'w v���k'k���URRRRRRRRN�n KR)���''a�a' C'C __ ,�5�v H 818HH HH1Rs HH8M8 818 ,�5N,1 C_HPk��ccV�XOOs9nS)}NxIR<� c'<���k'�, Ck�FT.)QRR)�;no)r�v_C,y)2,P_C,;�a w ���<'c �<RIxN})Sn9sOX��cc��kPH_CC 1,25"�, H 1R1 H H 1R1 H 1R1 H H 1R1 ,�77�NR@ H ,���''z�XWWRs n�R�(OR<�''���k'�,  ,�'k�NRRR)�v ���,  n�n ,�'w v���''�<RO(�R�n sRWWX�z''���, H @RN�5�, M18HH H 1RtM8HHHHHHH8MI1H MIO H HH1R1HH ,� 7�NORM8HHHMsy�;vz*a�X?qOs9,*Ncnc(NNb�k''k���nCc,w1y�'k�Fx)Y,wso���yMs n� MMM ,�C__v���k''k�bNN(cncN*,9sOq?X�a*zv;�ysMHHH8MRON�5�, @R1 H H 1RR1 H H MRW MRW H H 1R1 ,�77�NROR1 H @RN�, v�'a�XWqWORs �, �����''���v w'z�)R)�a'�'�n KR)���)RK � @R@ �n  ,���''����� ,� sROWqWX�a'�v ,�NR@ H 1RORN�5�v M11M8HHHMROOtMMMMMMMtO?itO}HHH8MtOI1 ,�7&52NQW11@1,,XYz��2WmO@_�o:�V �k'ce5�o@MCz~RTnkkn9sOX��n+OK_H@K �2ss ,�d5ec'k� V�:o�_@OmW2��zYX,,1@11WQN25"�, 1R1 H MRWORRRRRRRW/WWm/$ H MRWRs n�55�XWqWORM �XW~���n $//W �XWX�a'�'k�77�NR@ P'jR@ n�'�n sRWWX� tW P'P sR@ �NRK n�77�k'�'a�XWX� W//$ n���~WX� MROWqWX�55(,P_KiMM@RW?OROOOW//WWWm/i1MMtOWWW@ n�!"5XlW18H k�X?$!!52g$?m?$# m!�z'k�  �7&5eNT@1j}OOty�Vzz#O:aWmlCPC8K19FNx1M ,�7 �  �k'z�!m #$?m?$g2555$?X�k H81WlX5"5�n W?WOR?/mWRWWW///WW/?ROWWWORs n�5�NR@ H �Rq///!� $///['l/5�a'k�����55�NRRROWqWX���a'WqW P'+W//='P Wt �NR@ ,�77�����k'a�5/l'[///$ �!///qR� H @RN�"5Y,OqOR?//RWmmm/////mRRqmqOs9,Y5"=r_ P,Flm//lN PT$/['[?ln�555E"5eNO??y��zoim/mQP.l&mm?CT$i8Pc{WK_P,Y5""555�nl?['[/$TP Nl//mlF,P _r=5�n Wm/WRW///WRW///////////WRWm/?Rs n�5�, �RWRT'P tW['TRRs n�55�RWW �z'Wm///['[///?RM $/$ P'TRW n�55�n sRRT'[Wt P'TRWR� ,�"5<n$$RRO?mmi11$Wmm?i$}$Wm?ORi$ts9nF5",,,P C,FNTKK8_Mj8sT)y,z�5"52N))gCv)l?///?$j$?IM _1$jHTl?O,Y5"5�z,y)Ts8jM_8KKTNF,C P,,,5�, 1RRRW H WRM H WRRRRR1 ,�5���, n�n ,�����55���' l/////} MRRRRR1 H H $//W n�55�����, n�n ,���"5Fn9s@s@M_HHMs_HHM@sss@s9nnY5" <,,,;� nnn,,,,nn,,,nY575!5E"5 bw1ii$$$M_@@sss__ ___ i[X2nY5"E5!575Yn,,,nn,,,,nnn �;vv,,,< 5���, ,���5���������������������5�, ,���55���������������������"5 <nnnnnn,,,nnnn,,,,nnnnnnnnY555" r 5!5"=<,,nnnnnn,,nnnnn,,,,,,,,,nF555""5!5 r 5�������������������������55�������������������������5EA! 5L-----44>>44-----Ldd! !AE"5=EEEE 5""5!57 E= =AEEADr-----44>>44-----DDL7AEEA= =E 75!5""5 EEEE=5"5�h>>>d333Ld>h�5///5�h>dL333d>>>h�55�4dL333p>�77���h>d33d>d4�55�4dL3Lddddd>h�5///5�h>dddddL33d4�55�4d>dL3d>h���77�>pppppLd4�5"5rh-rdL33D-h��r5 5r��h-DL33dr-hr5""54rDpp>>>h�5DZZhh>Dd>->AE"5-ppLDDDD>h��r5 5r��h>DDDDLpp-5"EA>->dd>bhZZD5�h>>>ppDr45"5�h>ddd>h�����������h>ddd>h�55�4dL3p>�������\\Z���-dDd4�55�3ppLddd-�����������-dddL3pp�55�4dDd-���Z\\�������>pppLd4�5"577d�Vhhbbb 4ZZZZZZZZZZZ4 bbbbhV�d775"!�4DppV�yNNrG\|Z%4444d7&&7�>>--bbbZZZZZZZZZZZbbb4->>�7&&7d4444%Z|\GrNNy��pD4�!5�������������Z\B\\\\\\\B\Z�������������55�4dpp>�G�2RRN�G\���55�����������Z\B\\\\\\\B\Z�����������55���\G�NRR2�G�>ppd4�5"5 XXU�%ZZZ|B0J6BBB6J0B|ZZZ%�U)) 5"!�-DGG%ryxIQX%ZZD7""5eN))U�V%ZZZ|6JJ6BBB6JJ6|ZZZ%V�UN)Ne5""7DZZ%XQIxyr%GG4D-�!5�XW?R�G\\\\\6]6\\\6]6\\\\\G�R?WX�55�-d-�G�2IRRRWX�����|�55�NRORN�G\\\\\6]6\\\6]6\\\\\G�NRORN�55�|�����XWRRRI2�G�-d-�55))lqmWX��ZdL33333 LLL LL3333dZV�XWmql)e5""544%�RRROq~��;;;4%L�!"5e)R)��3p3ZpppppppZ3p3V�)R)e5"!�L%4zzz��~ORRR�%445"�NRWqWX���a***********************a���XWqWR�55�\\%�RRROWqWX� *c*z�-d-�55�XWRRRN���a*c*z�h>ddd>h�z*c*a���NRRRWX�55�-d-�z*c* �XWqWORRR�%\\�5�U)Q)��zcccccccccz��)Q)U�!"5%DAdaSNQqqlXrS : a�h4�5!�!//)��zc cz�V-ddd-V�zc cz��)qq//!�!5�4h�a : SrXlqqQNSadAD%5"���(t2�;* o:::::::o *;�2t(���55�U:o* �XWWX� * :#:U�h>h�55�!///mWX� * :#:U�>ddd>�U:#: * �XWm///!�55�h>h�U:#: * �XWWX� *o:U�5� S222b�z* ::::::::::::::::::::::: *z�b222S �57�k:c;;YXXX< kogg.<�h>h�55�r!55!XYaSo#.<�rr�<.#oSaYX!!5!r�55�h>h�<.gok <)XXYzzzc:k�7�<:<�����* ::::::::::::::::::::::: *�����<:<�55�<:U� k���* :g.<�h>h�55�������* :g.<�>>>>>>>�<.g: *�������55�h>h�<.g: *���k �U:<�5�Sgczzak*coo:ooo##gggggggg:ooo::oc*kaaazzcg<�!"5!5r� UUUc:*U*oS;;bbbV�VVV�3!� aazzzSck;;bbbV��VVVVVVVV�VbbbhhkcSzzzaa �!3�VVV�VbbbhhSo*U*:c<UU �r5!5"�U:: c*****y:y*c:gg:c*y:y*****c ::U�55�������U:#:::g:;�����������5�U:: * ����������������������� * ::U�5�����������;:gg:::#:U�������55dUc#g#*ak*zVV VVV b ; VV Vz*ka*#g#cU5""5k`hhhFg..Y;<NNNNNNNNNNN(555""5<c# k U2(NXXXXXXXXXXXXXXXNN(2U k c<5""555(NNNNNNNNNN<;Y..F;hh`kk5"/5�U:g:U�*V�����������������������V*�U:g:U�55�'''''���b..b�NRRRRRRRRRN���55�U:o* �2tROWWWWWWWWWWWWWWWORt2� *o:U�55���NRRRRRRRRRN�b..V��'''''�5/=b Vh4hV;Vh4hV b="5r*9ckU2Nrbbbbb<NOOWQXNNe5""5 4 UNxtW????????????????txNU 4 5""5eNXQWOON<bbbbbN2Ukc9*r5"/5���������'''''''''''''''''''''''���������55�'''''�URORN�����NRRRRRRRROWWWWWR�55�������NRRROWWWWWWWWWWWWWWWWWWWORRRN�������55�RWWWWWORRRRRRRRN�����NRORU�'''''�55e2(2 � *'9C'''''C'C'''''9c � 2(2e5""5*'cUfON(N(NRRRRRROWWW???e5""5eN)NU�`NW?mmm??WWWWWWWWWWWW?mmm?WN`�UN)Ne5""5e???WWWORRRRRRN(N(NOfUc'*5"�(t`�''' 9 9' 9 C'C 9' 9 9'''�`t2�55�''���URf+RRRRRRRRRRRRRRROWWWWWWWWWR�77�NROR(�(RRRW///WWWWWWWWWWWWWWW///WRRR(�(RORN�77�RWWWWWWWWWORRRRRRRRRRRRRRR+fRU���''�5�I( C'99999 CCC999999 9999C'cvk(I�!5�a''� UfIf.+ORRRRRR???WWWq)�77�N(�NR?E! X[OWWWWWWWWWO[) 5E?RN�(N�77�)qWWW?q?RRRRRROO+.fIfU �''a�5�)R)�' C'C C'C C'C C'C C'C C'C C'C C' ,�)RN�55�''�URf+fR�(RRRRRRRRRROWWW///WWW?WX�77�NRRF�RRRN���NRWWWWWWWRN���NRRR�FRRN�77�XW?WWW///WWWORRRRRRRRRR(�Rf+fRU�''�5�))�kCCCCCCCCCCCw_wCCCCCw_wCCCCCCCCCk�)N�35(vc ''a�SOOf)Ubb(tRRRRRRRRR[XeXlm?WWWq)�77�NU�FRRR~-��yOOOOOOOOO~-��2RR(�FN�77�)qWWW?mlXeX[RRRRRRRRRt(bbU)fOOS�a'' cv(5"�)R)�, 'C C'C C'C ____C'C ____C'C C'C '�)RN��, '''�<RORU���2+RRRRRRRRN���XW?WWWWWR�77�NRRb�`RRRR[ 4�RRRRRRRRRR[ 4�RRR�FRRN�77�RWWWWW?WX���NRRRRRRRR+2���UROR<�''' ,�55eUk,'CCCw_wCCCCC_____C_____CCCCCw_wCc`Ue5 �Sw9 *U<Uk,z�(tRRRRRRRRR~-��eWqWWW?e5""5eN2``UNQRRR~rL7lRRRR~rL7lRRRRR^<``YNe5""5e?WWWqWe��-~RRRRRRRRRt(�z,kU<U`* 9wS�!/�, 'C ____C'C _ __C'C ____'�d/7�' 9'''��� v�(RRRRRRRRRRR[ 4�)W?WWWR�55���k'k�NRR(�/RRRRRRRRR(�/RRRR)�����55�RWWW?W)�4 [RRRRRRRRRRR(�v ���'''9 '�5/ �, C_____C__ _ H __C______k�!/ �kCCCCC'*P C,F)QRN(NRRR~rD7lOOOOONe5"V�,S�NRRy�45lRRRRRRRRRQN`�45lRNNNU�;"5eNOOOOOl7Dr~RRRN(NRQ)F,C P*'99999k�5/5�, ,�7/7�, 'C 9' C ,�R���NRR(�/RRN�55��� v�NRRN���NRRRRRRRR)�����NR)�����k'k�55�NRR/�(RRN���R�, C' 9 C' ,�55e,P __ H __ 818 H __ H__P,N5d�v__CCCCC' ,�R�znFN{Ry�5l(�7"5!5752 �v_PSNQR+N2(xRN(NNc,z�U(.N*,z���k' ,(575!5"7�(l5�yR{NFnz�R�, '99CCC _,�5�, H 1R1 H ,���, C'C C'C C' ,�R�v v�)RN���NRRRN�55�����k'�, w'�NRRRRRRRN���R�v v�R�v ���'w v�����55�NRRRN���NR)�v v�R�, 'C C'C C'C ,�5�v H 818HH HH1Rs HH8M8 818 v���v CCCCCCCc YN<�oswnSN~N2(xRRRRY�5d;���k'�, Ck�FT.)QRR)�;no)r�v_C,y)2,P_C,;�a w ���;d5�YRRRx((N~NSnwso�<NY cCCCCCCC ,�!�, H 1R1 H H 1R1 H 1R1 H H 1R1 ,���, __C'C 'a�a''���)RK n�NRRRRRRRRU���k'k���k'�,  ,�'k�NRRR)�v ���,  n�n ,�'w v���k'k���URRRRRRRRN�n KR)���''a�a' C'C __ ,�5�, M18HH H 1RtM8HHHHHHH8MI1H MIO H HH1R1HH ,�d5e,1 C_HPk��ccV�XOOs9nS)}NxIR<� c'k���nCc,w1y�'k�Fx)Y,wso���yMs n� MMM ,�C__v���k'c �<RIxN})Sn9sOX��cc��kPH_CC 1,25"�, @R1 H H 1RR1 H H MRW MRW H H 1R1 ,�77�NR@ H ,���''z�XWWRs n�R�(OR<�''���v w'z�)R)�a'�'�n KR)���)RK � @R@ �n  ,���''�<RO(�R�n sRWWX�z''���, H @RN�5�v M11M8HHHMROOtMMMMMMMtO?itO}HHH8MtOI1 n� 7�NORM8HHHMsy�;vz*a�X?qOs9,*Ncnc(NNb�k''k���@MCz~RTnkkn9sOX��n+OK_H@K �2ss ,���k''k�bNN(cncN*,9sOq?X�a*zv;�ysMHHH8MRON�5�, 1R1 H MRWORRRRRRRW/WWm/$ H MRWRs n�77�NROR1 H @RN�, v�'a�XWqWORs �, �����''���)R@ P'jR@ n�'�n sRWWX� tW P'P sR@ �NRK ,���''����� ,� sROWqWX�a'�v ,�NR@ H 1RORN�55(,P_KiMM@RW?OROOOW//WWWm/i1MMtOWWW@ n�5&52NQW11@1,,XYz��2WmO@_�o:�V �k'cD575 NT@1j}OOty�Vzz#O:aWmlCPC8K19FNx1M ,�5ec'k� V�:o�_@OmW2��zYX,,1@11WQN25"5�n W?WOR?/mWRWWW///WW/?ROWWWORs n�55�XWqWORM �XW~���n $//W �XWX�a'�'k�55�NRRROWqWX���a'WqW P'+W//='P Wt �NR@ ,�77�k'�'a�XWX� W//$ n���~WX� MROWqWX�5"5Y,OqOR?//RWmmm/////mRRqmqOs9,Y5""5XlW18H k�X?$!!52g$?m?$# m!�z'k�  �5"5eNO??y��zoim/mQP.l&mm?CT$i8Pc{WK_P,Y5&7�  �k'z�!m #$?m?$g2555$?X�k H81WlX5"5�n Wm/WRW///WRW///////////WRWm/?Rs n�5�NR@ H �Rq///!� $///['l/5�a'k�����55�RWW �z'Wm///['[///?RM $/$ P'TRW n�55�����k'a�5/l'[///$ �!///qR� H @RN�"5<n$$RRO?mmi11$Wmm?i$}$Wm?ORi$ts9nF5"=r_ P,Flm//lN PT$/['[?ln�555E"52N))gCv)l?///?$j$?IM _1$jHTl?O,Y5"E555�nl?['[/$TP Nl//mlF,P _r=5�, 1RRRW H WRM H WRRRRR1 ,�5�, �RWRT'P tW['TRRs n�55���' l/////} MRRRRR1 H H $//W n�55�n sRRT'[Wt P'TRWR� ,�"5Fn9s@s@M_HHMs_HHM@sss@s9nnY5",,,P C,FNTKK8_Mj8sT)y,z�5"5 bw1ii$$$M_@@sss__ ___ i[X2nY5"5�z,y)Ts8jM_8KKTNF,C P,,,5���, ,���5���, n�n ,�����5�, ,���55�����, n�n ,���"5 <nnnnnn,,,nnnn,,,,nnnnnnnnY555" <,,,;� nnn,,,,nn,,,nY575!5E=<,,nnnnnn,,nnnnn,,,,,,,,,nF555"E5!575Yn,,,nn,,,,nnn �;vv,,,< 5�������������������������5���������������������55�������������������������55���������������������"5AD-------44>>44-ddd! 5E -44---------444-drr7"53>4h4>>44-------LDD AE7rrd-444---------44- EA====== 5""5 ======AE5�4dDd>>>>>h�5/////5�h>>>>>>>>>h�55�4dddLppp3d4�4dd>h�55�������5/////5�h>>>>>dL33d4�55�h>dd4�4d3pppLddd4�55�4dL3Lddddd>h�55�h>dddddL33d4�5"555r�-DD-h hhhV�r57575r�4>>>>>>>h�A"5>�4|||>ZZ-h5""5rhhh4444d57575r�Vhhh -Lpd-5""5h-ZZ|||4�>5""5r-ppLDDDD>h��r5 5r��h>DDDDLpp-r5"5�����-dd>h���������������-d>>>>>>>h�55���Z>L\|>h�55�h>>>dDd-�������������h>D3>�55�h>|\L>Z���55�3ppLddd-�����������-dddL3pp�5"5eN)N`�V-b 4ZZZZZZZZZZZZZ�-3D-hd7""5ZZZ|\\\||\6h�7&"555d4>>rL3-�ZZZZZZZZZZZ4 4-�7&&7�h6\|||||\\\|ZZZ5""557 73----bbbZZZZZZZZZZZbbb4---37 755"5�NRORN�����Z\B\\\\\\\\\B\%�-33ddddd4�55�Z\\\6]]]6\\\\\\\���55���-dDd>>>D3-�%\B\\\\\\\B\Z�������55���\\\\\\\6]]]6\\\Z�55���7/7�������Z\B\\\\\\\B\Z�������7/7���5"5 )ON`�Z|BBB6J6B6JJJ0B|Z3333D4�7&!�%\BB6JJJ6B\%%%GGNNNe5""5)NU�4dDdd>%ZJJJ6B6JJJ0B|Z%GGV�r555""5e))GG%%%\\6JJJ6BB\%�!"5eNNX7DGGG%ZZZ|60JJJ6B6JJ6|ZZZ%GGD7XNNNe5"5�XWRRRR�%\B\\\6]6\6]]]6\\\%�-3ppLd4���55�\\\\\\\�����NRORN�55�)Rg�hdddddL3-�%\J]]]6\6]]]6\\\%G�����55�NRORN�����\\\\\\\�55�NRORN�%Z\\\\\6]]]6\6]6\\\\\%�NRORN�55�XmiiOWO)�433LLL LL L33rzb4hr(N))5"5�GZLLL%3ZGryWQX 5"!�^O~�4LLLLLpp�43LLpppppLDLL33dGre5""5 XQWyrGZ3%333ZG�5!�X?qO(>G%dL333ZpppppZ3333d%G>(Oq?X�!5� &&&&WRN�;*******************a�����yRRN�55���a*c*�a*;�NRRRRRROWqWX�55�)R)�43pppppp�a*a�h>d>h�z*****;�2ff2�55�XWqWORRRRRRN�;*a�*c*a���55�XWWRt2�;*****z�h>ddd>h�z*****;�2tRWWX�55�- &mq{NSnccccccccccc,aV�+t)U�>5"5� *czzazzSgOqmmX�A5�<NU�4Lppp3-U*ca�V-d-V�zc cccz�b```YNNe5"A�XmqOOWWgS;;azzc* �55�>XXNN`�z c cz�V-ddd-V�zc cccz�`NNXX>�5�����A&mWX�z ' o:::::::o ''�2t(�����55�U:: a� a�NRRROWWWWWWW?WX�55�����4dL33d4�:g:U�>d>�U:#:: �������R)�55�XW?WWWWWWWORRRN�a �a #:U�55��������� ::#:U�>ddd>�U:#:: ���������5�hUaz AXF;S:::::::::::::::::::::::*aS((2<zU �!5�<gyaa*:*F)OWqlX)) 5"5� za`444`ky.<�rr�<:�UNNNU�O^�!"5 X))lqWO)F*:*aayg<�5!� azzz��:gg.<�rr�<g:��;;;aa �!�U:: ���* ::::::::::::::::::::::: *��� #:U�55�<:U�a ::#:�NRRfWX���55�  �����U:g.<�>>>>>�<.g: �NRORN�<R)�55���XWfRRN�:#:: a�U:<�55�U:: *;�:g.<�>>>>>>>�<.g:�;*c ::U�5�<gg'nzzaaaSo::ooo##gggggggg:ooo::oSaaaaa,'gg<�!"5!5r� U �:::ggy<<UUUU`Ur> !�U##'*aaV�V;bbbbV��VVVVVV�Vbbbbb<+OR)Y<`�! >>U``UUU<<ygg:::� U �r5!5""5<c# Sa bbbV��VVVVVVVV�Vbbbb aS c<5"�U:: ''�;*o:y*c:gg:c*y:o*;� ' ::U�55���������U:::#.b�����������55�U:: * �����������������������NRRRRWX���55�����������b.#:::U���������55�U:: * ����������������������� *c ::U�55dU*:##ckaa VV VVV b ; VV V aakc##:*U5""5k`h�`g..2<NNNNNNNNNNNe555""5UF: k U2(NXXXXXXXXXXXXXXXNNb�)??OOW//!�h5""555eNNNNNNNNNN<2..g`�h`kk5""5U* k U2(NXXXXXXXXXXXXXXXNN(2U k *U5"/5�U:g:U�*V�����������������������V*�U:g:U�55�'''''���b..b�NRRRRRRRRRN���55�U:o* �2tROWWWWWWWWWWWWWWWOR(�XW?W///!�5���NRRRRRRRRRN�b..V��'''''�55�a* �2tROWWWWWWWWWWWWWWWORt2� *a�5/=b Vh4hV;Vh4hV b="5r*9ckU2Nrbbbbb<NOOWQXNNe5""5 4 UNxtW???????????????WQ(YXlq//"!4!"5eNXQWOON<bbbbbN2Ukc9*r5""5!5 b UNxtW????????????????txNU b 5!5"/5���������'''''''''''''''''''''''���������55�'''''�URORN�����NRRRRRRRROWWWWWR�55�������NRRROWWWWWWWWWWWWWWWWWWWOR(�)W//!�h�A5�RWWWWWORRRRRRRRN�����NRORU�'''''�55�������NRRROWWWWWWWWWWWWWWWWWWWORRRN�������55e2(2 � *'9C'''''C'C'''''9c � 2(2e5""5*'cUfON(N(NRRRRRROWWW???e5""5eN)NU�`NW?mmm??WWWWWWWWWWWW?mm?l(YXX!d(~Ne5""5e???WWWORRRRRRN(N(NOfUc'*5""5eN)NU�`NW?mmm??WWWWWWWWWWWW?mmm?WN`�UN)NX57�(t`�''' 9 9' 9 C'C 9' 9 9'''�`t2�55�''���URf+RRRRRRRRRRRRRRROWWWWWWWWWR�77�NROR(�(RRRW///WWWWWWWWWWWWWWW///WR(���(RRN�77�RWWWWWWWWWORRRRRRRRRRRRRRR+fRU���''�55�NROR(�(RRRW///WWWWWWWWWWWWWWW///WRRR(�(RORN���I( C'99999 CCC999999 9999C'cvk(I�!5�a''� UfIf.+ORRRRRR???WWWq)�77�N(�NR?E! X[OWWWWWWWWWO[) 5E?R[(-4)fN�77�)qWWW?q?RRRRRROO+.fIfU �''a�5!�N(�NR?E! X[OWWWWWWWWWO[) 5E?RN�()���)R)�' C'C C'C C'C C'C C'C C'C C'C C' ,�)RN�55�''�URf+fR�(RRRRRRRRRROWWW///WWW?WX�77�NRRF�RRRN���NRWWWWWWWRN���NRRR�FRRN�77�XW?WWW///WWWORRRRRRRRRR(�Rf+fRU�''�55�NRRF�RRRN���NRWWWWWWWRN���NRRR�FRR)���))�kCCCCCCCCCCCw_wCCCCCw_wCCCCCCCCCk�)N�35(vc ''a�SOOf)Ubb(tRRRRRRRRR[XeXlm?WWWq)�77�NU�FRRR~-��yOOOOOOOOO~-��2RR(�FON�77�)qWWW?mlXeX[RRRRRRRRRt(bbU)fOOS�a'' cv(53�NU�FRRR~-��yOOOOOOOOO~-��2RR(�F)���)R)�, 'C C'C C'C ____C'C ____C'C C'C '�)RN��, '''�<RORU���2+RRRRRRRRN���XW?WWWWWR�77�NRRb�`RRRR[ 4�RRRRRRRRRR[ 4�RRR�FRRN�77�RWWWWW?WX���NRRRRRRRR+2���UROR<�''' ,��NRRb�`RRRR[ 4�RRRRRRRRRR[ 4�RRR�FRR)��5eUk,'CCCw_wCCCCC_____C_____CCCCCw_wCc`Ue5 �Sw9 *U<Uk,z�(tRRRRRRRRR~-��eWqWWW?e5""5eN2``UNQRRR~rL7lRRRR~rL7lRRRRR^<``YNe5""5e?WWWqWe��-~RRRRRRRRRt(�z,kU<U`* 9wS�35eN2``UNQRRR~rL7lRRRR~rL7lRRRRR^<``YNX57/�, 'C ____C'C _ __C'C ____'�d/7�' 9'''��� v�(RRRRRRRRRRR[ 4�)W?WWWR�55���k'k�NRR(�/RRRRRRRRR(�/RRRR)�����55�RWWW?W)�4 [RRRRRRRRRRR(�v ���'''9 '�5/5���k'k�NRR(�/RRRRRRRRR(�/RRRR)�����5/// �, C_____C__ _ H __C______k�!/ �kCCCCC'*P C,F)QRN(NRRR~rD7lOOOOONe5"V�,S�NRRy�45lRRRRRRRRRQN`�45lRNNNU�;"5eNOOOOOl7Dr~RRRN(NRQ)F,C P*'99999k�7/EV�,S�NRRy�45lRRRRRRRRRQN`�45lRNNNU�;///5�, ,�7/7�, 'C 9' C ,�R���NRR(�/RRN�55��� v�NRRN���NRRRRRRRR)�����NR)�����k'k�55�NRR/�(RRN���R�, C' 9 C' ,�7/7��� v�NRRN���NRRRRRRRR)�����NR)�����k'k�5//5e,P __ H __ 818 H __ H__P,N5d�v__CCCCC' ,�R�znFN{Ry�5l(�7"5!5752 �v_PSNQR+N2(xRN(NNc,z�U(.N*,z���k' ,(575!5"7�(l5�yR{NFnz�R�, '99CCC _v�d5e �v_PSNQR+N2(xRN(NNc,z�U(.N*,z���k' ,(57�, H 1R1 H ,���, C'C C'C C' ,�R�v v�)RN���NRRRN�55�����k'�, w'�NRRRRRRRN���R�v v�R�v ���'w v�����55�NRRRN���NR)�v v�R�, 'C C'C C'C ,���k'�, w'�NRRRRRRRN���R�v v�R�v ���'w v���v H 818HH HH1Rs HH8M8 818 v���v CCCCCCCc YN<�oswnSN~N2(xRRRRY�5d;���k'�, Ck�FT.)QRR)�;no)r�v_C,y)2,P_C,;�a w ���;d5�YRRRx((N~NSnwso�<NY cCCCCCCC v���k'�, Ck�FT.)QRR)�;no)r�v_C,y)2,P_C,;�a w ���, H 1R1 H H 1R1 H 1R1 H H 1R1 ,���, __C'C 'a�a''���)RK n�NRRRRRRRRU���k'k���k'�,  ,�'k�NRRR)�v ���,  n�n ,�'w v���k'k���URRRRRRRRN�n KR)���''a�a' C'C __ ,���k'�,  ,�'k�NRRR)�v ���,  n�n ,�'w v���, M18HH H 1RtM8HHHHHHH8MI1H MIO H HH1R1HH ,�d5e,1 C_HPk��ccV�XOOs9nS)}NxIR<� c'k���nCc,w1y�'k�Fx)Y,wso���yMs n� MMM ,�C__v���k'c �<RIxN})Sn9sOX��cc��kPH_CC 1,e5d�nCc,w1y�'k�Fx)Y,wso���yMs n� MMM ,�C__v���, @R1 H H 1RR1 H H MRW MRW H H 1R1 ,�77�NR@ H ,���''z�XWWRs n�R�(OR<�''���v w'z�)R)�a'�'�n KR)���)RK � @R@ �n  ,���''�<RO(�R�n sRWWX�z''���, H @RN�77�, w'z�)R)�a'�'�n KR)���)RK � @R@ �n  ,���v M11M8HHHMROOtMMMMMMMtO?itO}HHH8MtOI1 n� 7�NORM8HHHMsy�;vz*a�X?qOs9,*Ncnc(NNb�k''k���@MCz~RTnkkn9sOX��n+OK_H@K �2ss ,���k''k�bNN(cncN*,9sOq?X�a*zv;�ysMHHH8MRON�77�o@MCz~RTnkkn9sOX��n+OK_H@K �2ss ,���, 1R1 H MRWORRRRRRRW/WWm/$ H MRWRs n�77�NROR1 H @RN�, v�'a�XWqWORs �, �����''���)R@ P'jR@ n�'�n sRWWX� tW P'P sR@ �NRK ,���''����� ,� sROWqWX�a'�v ,�NR@ H 1RORN�77�NR@ P'jR@ n�'�n sRWWX� tW P'P sR@ �NRK ,��5(,P_KiMM@RW?OROOOW//WWWm/i1MMtOWWW@ n�5&52NQW11@1,,XYz��2WmO@_�o:�V �k'cD575 NT@1j}OOty�Vzz#O:aWmlCPC8K19FNx1M ,�5ec'k� V�:o�_@OmW2��zYX,,1@11WQN25""5eNT@1j}OOty�Vzz#O:aWmlCPC8K19FNx1M v��5�n W?WOR?/mWRWWW///WW/?ROWWWORs n�55�XWqWORM �XW~���n $//W �XWX�a'�'k�55�NRRROWqWX���a'WqW P'+W//='P Wt �NR@ ,�77�k'�'a�XWX� W//$ n���~WX� MROWqWX�55�NRRROWqWX���a'WqW P'+W//='P Wt �NR@ ,��"5Y,OqOR?//RWmmm/////mRRqmqOs9,Y5""5XlW18H k�X?$!!52g$?m?$# m!�z'k�  �5"5eNO??y��zoim/mQP.l&mm?CT$i8Pc{WK_P,Y5&7�  �k'z�!m #$?m?$g2555$?X�k H81WlX5""5eNO??y��zoim/mQP.l&mm?CT$i8Pc{WK_P,(575�n Wm/WRW///WRW///////////WRWm/?Rs n�5�NR@ H �Rq///!� $///['l/5�a'k�����55�RWW �z'Wm///['[///?RM $/$ P'TRW n�55�����k'a�5/l'[///$ �!///qR� H @RN�5�RWW �z'Wm///['[///?RM $/$ P'TRW n�5//"5<n$$RRO?mmi11$Wmm?i$}$Wm?ORi$ts9nF5"=r_ P,Flm//lN PT$/['[?ln�555E"52N))gCv)l?///?$j$?IM _1$jHTl?O,Y5"E555�nl?['[/$TP Nl//mlF,P _r="52N))gCv)l?///?$j$?IM _1$jHTl?O,Y5"//5�, 1RRRW H WRM H WRRRRR1 ,�5�, �RWRT'P tW['TRRs n�55���' l/////} MRRRRR1 H H $//W n�55�n sRRT'[Wt P'TRWR� ,�5���' l/////} MRRRRR1 H H $//W n�5////"5Fn9s@s@M_HHMs_HHM@sss@s9nnY5",,,P C,FNTKK8_Mj8sT)y,z�5"5 bw1ii$$$M_@@sss__ ___ i[X2nY5"5�z,y)Ts8jM_8KKTNF,C P,,,"5 bw1ii$$$M_@@sss__ ___ i[X2nY5"////5���, ,���5���, n�n ,�����5�, ,���55�����, n�n ,����, ,���5//////"5 S,,,,,,,,,,,,,,,,,,,,,,,,,Y555" <,vvz� nv,,vvv,,,vv,Y575!5E=Svvnnnnn,,,,,,,,,,,,,,,,,nY555"E5!575Y,vvvn,,vvv,,, �z,vv< =Svvnnnnn,,,,,,,,,,,,,,,,,nY555"//////5�������������������������5���������������������55�������������������������55���������������������5�������������������������5//////////����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/hero.png������������������������������������������������������������������������000444��000765��000024�� 160436�11760240072� 16011� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������6���sRGB����bKGD������ pHYs�� �� ����tIME  :Ǡ�� �IDATxܽwt\}9m:ʠFA`'IjHK,[v&ySֳM"(ɍ}Kr\ˉeGQ\d=ےHH �`f0i33�Xdٱow֚u9ge4`=goK7~g;<tn{ۀ*qMn]u^$ eZX()eYiX (XK ^ݫn,|u>|$ގeWx3q+X\Q',2-dIFd,0- ]2udYA$Jqyl|D@pIQ,>`e[C#&,+ Qv`iS6 íFY05Jh!Lڗ5.r8�]u AdI� ( _a,TJQ`!et<t%}NW@Gbc} Հ)Su~Gntca/�2+J<Ƒ9OE\ye9k;~wO oӲ:<'vύz2?<;;ƚmn?y}Wweu6J8dki]$PH\ �QIa* Pt-<Gpf Tޗ4#?*wN [ e8.1xQǺ3pֿmUyi!m5~N>Λ=㜸>M?u@{<Eyrgx+|9-42=s1;y8~F)V=[+s(uL*meMfD(`jI{"j*Vc&j2(HApn`heSXɡu ׌RvUܘ;(O7PLqQ5%Ul/bMQS54X L.$IH6ڰa6ykXr|H;Wgu%n $iuYM#:wt EHC@ښb>d (lQ&ԡnb:2HB5q;\WQ.P !PC$ ~,I0 $)k&Vo<i9V8}NSu~5.mcjH$&'Q'虎Q,')'z %wp~:Ayr rhBڶ@`]=Hԟk߬4kMf*Ι0y핬0�K^ E㨃rAvʞc9`�MSQAtٌWI4a8tuW^==3㿶*^Am@|ctMSuw#(n 3[q歄 J.hx`䯿{hRgUeam5,S:w_H_e＀3>_J뎽8 KPE79� yEPX% &!Tn 7fO�Vwz(m]h RVt75pFfQƹgt=ŅCO2vii߹UE:N),jJf^O1m<!}/8/.F~[ir7%@^)$$⭪\:s7^{\aaRKdhuN޵?}*Do"Q*͑Nq/B<F9]z@|](N7ׯ1vMکٴnQ$Z�q=AAs; yշ|( [+̡y=})"n'AoY]2}� kHĺ{mfב.! F:o͞Y|z{6lA;>HkUꊳ4dpjq]�c=$<צ�.N:65}kA*pz 5+/Tװ Wª\?y5+ɻb8傚�5 <x (gyԩ-n`vb;ࠟݰ?=\:F4(X-y>_ևuKzt<q yt;tُ$S) D)*z^=[WNYK'tV"XoloY?h$pMˑaNN|i}{63t[@nYݣ͉3/(.Q<rM\d :, \c̜;"TQڲ:G=\wm:q {˘)(>ǹ(-|ðH(UcM~4p]sy^6yÿ:y uYlK6'ƯOױ?$~7Ὸe6`SƆRm_O=h /B&Ùu 3%m5A@ebsdRRCbV+LK +A5!njuld'8$(.TXk!;! YvpF|C�^ձ:o֭}ОB&UgbHN{'Smi943?s肄W4rWtjc~g8sǻ'h u$ICmI.# Lnۀ;֬>t׆V޺ NEe%Qgi&bU, @=6n�(N$ɱ>GcF+렼D>z]8%X4mɕ79|qGz[(rȖS2Mu}C<c /%9LG%ImPFs{GԔQ۲_Aɪ-4~r+?'fȖJ}KM/ :e$WPQD6(ᡇރO/Ys̛w ק?7Hd$Ac]m+Eipy :c0?oKI AC?B,3ehd0_E'ퟦD(2ǒ6H%!Y/P'ZnfRoé7A۱{8n?55jh4d[ŕ|H_{/d~[i} Jw~�t1{0qx''>�.0Q5]�h(mީ. {ZW}.C,!5^Jj!lH:s (;'r 2G[ QSΥn^bڠPnc[h05O.*?yA5$v6yijG][W*io.x\U0q9@gN\$8ž$ȸm ׶Ro%T$|<,H{UO¦_LfEqRRXMMM+`lg۶,pIw vn8 @:6޿,.  1UP%+_�ZSn uӾ6MEE,_! eCQ> + /^N|ݖ)/  i<gmvm6o�AUX nԴ/.r `p5n'd.uJkm"pW2LbC#=.&2@x1%r*TnLSB0lvZv*#2L4B&ihsp>swRZ|@9: ;Gq2R�ZչNHyKE�MyDvt34M?kl]Yڦ85tcP3xdy=4UT$dI�ap*aZۚ[d̎dM8$d̞79lw r`MΞ&0 O黚G<w|[{:\hnD=qJ+B=RF9uM eN<>!G(afkoH,v JN 80^d=ⵦ!iN+Iɬ?c #ĝSh՞{{ݶH1U\L=O�:vmm<? 34xn7 ik| Vɡ-5<:2ۚxhg s SPsab%PE171@Whީl'uT͠4ǻ' NEYF_#2KorF{ B"3\&7vH8z8}2LXzŠFjI˹7(q]dG 奰ɢRLCwv_FҼ<vDo~xg {<s'jpe@{e~Tq S�-8'ԙC]$yYW^.kQPw8ͦ<ȑ~q~c Q׎Tn7jZ zd аu-זԳϯ|Joa?б?5]_0:e*JW J맙 ]CT +yS:ǮaHY$V48�l"W0ݾii*3�kk)baf i/|$Jcg~aВnh~U3&8y=1D(ʚ*M9z(Z 6#,іns~*:>0_y E|GT1gE"vʖ(” EywJ}$sv`X-HșkdIXv&"/8pY8EI7-}-a C:Glpwd[x:e4#Lܸ C往(4TWRćލ8IC$b3|+ +٣3/PjrI"㠩"h4D('8y=hoBLܸB": Z0 [6!#Y<*膽5]'*(,]h#a7"DK@2Jpb`9eY:[./$$1v(\p)!1yEq2nr/ )$ee X�- `zf؍Ab�%cl)d!kh۶p>|_>>s{\'gM:ӳh$T]P5#zg0/ 5s} `_L{Tp{7&RJtSpĥo3 ȩi1XTog)Ӎ ZSu s$2O퉷SwΟ㋿>C|Wgt=E~T@~>X?Hh.0ӱc\=)(ܛ X͡Tf+s75/E)bN08KUaLώi*iO4}==3bH &hj! +9 &-LSG  v@FR|s�)qfPsPQ'韉22" XY'`d:  6.▇?wmtzWԃb(Al/.L'Tv~gtr(_ 8 w6h\!fо:J<2~S ^?ߙm&x2XQux]Ě^H7&\r*05̎״Ҿٴb7wJ8}4_9|<6T]㬫/$U~Bq9Lddn>L\c:"O1) L4<މ�'SZ ^~[mQ)gGn+yo>SDN7^ɍӒPnBYԑN75e XmN dvCf+ 9E$aMg,H~LH[S܆"^_#slW)�j:]}gsv'I8YW%D38J0Jq丰,kh059=8ϩ)޿Oo4WZYfg҄P5Va3߆<ՅW\ 4?$#)uSu v1u dR-Ƣ&eI"r `Yjeii;gq [a,n+y<#<ƷmPJ0)Hl$ }.VQƭ>M8q")Y'4"*:)fѧoT SsP@V»;, !Z JKtFB7ss$oRZw%t`]M^rCSB;/dCD,(XxJ%mo Hƺ\ĖBVxjjw.:{ً$".fW7:vՖO>FMi}əY܊}[7pfPH&xՖqѱ聸OJI1lZE#uP`ƺ4{6젥!-Qld<T4+ɼ;I8v%Ƒs9r` Nswt|lã<{Gf93Vi"K)݂d$;Wέ%EL \.4~y@B)/.' |USFI%؁i_kcabT[Y$Tw&,5âo6NK-Qd [n_VCDK6M԰l"vJ( ,)'o K8 T\YT$s8c5+()K3 :c{m_ճ ް%a[~ ~:6Ϥ%@~~ hZVL`8cuB od0 )Zdlưrlٽ"I@_>s%#.!J2!qo䋟ޓ)NՕ u EtC-N/0j^ձ:i;*Ե!ײ?ct|1yA^i`l?I'.\x;9s N}R T񗁎[_g],e- `:iH2,gg!o]%i8X3 N=ӁY q=yځ`Kᙘ\+́eQ`4$4$fk2K(?@8*8o'�3ss�T6z+m I$ZJ"}~uIi"sO?5m`Ҷ=NY6H8%t<Gn嫼q `ߦ6:,h f0 ؼЇǍ!=υ~lZHǓ10vgsyl27"90ˍ@tj"=x^MT&칭.#<�Mm|_^`JCvBJP_9|ɅeX, .QBDBIpYhH%q},,!%n_9=`pfԱڏ$$u8r-޷}nCm΁Y^,/͕few4Z0ax8ttSpBüE=@O<^(Mx͎_8 (qKY:m�IB7-&ÜꝢ˾j�{g[_YS�ϼ.6k</=T`] oԱtnӖ g۽JB8_•,+jic<ܷ6RzdV96C@Tg.T^&}.Jc_2 w 3K2)VuferѽУPsd߲C`sG] QJ{`3f0Mf%Z8p o6%/ $ "N/|mlʍot| 6GpnȨ�ZQF�� �IDATJ6A*NݎSy Ч8l< hX*3X[�}WV+o_#}34^<1jO~"[!W ^BgW!B<]X}j6ٴwlSxd9I3:<Yj2|3xg߶ѮJGO5;ku)k rFAMI,h2Il}qwWo.'l9HL DmIPuhM`\[Q9ҙpe%QS=1RYYnix>i{[= UK$$ltwtKUƉ3| <Gm)an}43h_{/<SQ6Bvcnj@m'z m,VN7` %-�I[ñU̇B\CO<lmZdoήFgD3xKO;t^Bǯ?UM_&S^CCC2|67h/]!Tz8{m/E4Ƥaf%q =Yҟ>o/OZۼ$j N,BBڮC" % ʹ (-YEA`:1fmR[|o!e08`קQ5(/Շ3E@#ϾR<ٚ\B' D WjKh Dg FU66ֳ  ә崷nnpB:&CuVid2חn)LR$#;g<?2B۟Lvl9xpֲe8$h2LQtrT%n01gI(J0@[YZ9oKKߗgp+ȶLR0MzF&y7QاnVeNVɱ,,,>/'!'Ti.-`sCM[ G >^$ҙ %JQVTFSe9%y$Ss hϭ ")R<, "OE�ƀu6K=6xϦ5矱k6qb ~7nEb,L؞`:H ~7$0Qi g$k0~ӱ۷^$e0Q42ǩ)űgl_Ԝ ӶPR3k"M\o>_ܗ9 nysIz( 0nsΜJŅEvѹiUXR4]d{'?̖m~_$U8{-@B?[ܪygwG<vK_|1۽ȨS|r7|OҼ0cK^M0M%xu+LNL,6P[^1!ڪmd:nN|/x/N7W'^@DUkI*} Jw#WmK?d;#A�!MZEmeL\5sm = ~B013| = (ܾr KwٚtXeю:Ff?9p8 Hu9,˚ oߌ(L# "^b 3^O=][TH,NQ^*{GGHDLζ)*EAKKϲ(Y<NPUŅ$�Z;䠝tEv 'R fYvvp!8<h)mgMD:4<NL4]͡ Ѹ`~sg~{φz=ʨ˩ԝ lGMA>au9YYYiypF&Y ޴0CIHL:gED3b/^Q Aěs X")!cSvMEi-m|xJg$I %3Q{JҴcKPS Q4#k Xu2VR$R-$f G{G ?X]S2qݤ =;rσeC^i{UWH:.(;QrY7 (iFXYBQ@q0gQ(*9˵hs.eB 05ҲyӒPɴ1L#].jaK^�Iso[Km�!\{SO2P^�pr(,W*{#]*Gcnp"$Hr V8^=#]㨉"6!, 2ol\C3LcZ6.w! ׃ cq Yd{ $rnxS>rn\Y3LCQ4?Cz=dp^hk{[C^M3-zׅ;H.  2rK$5A^0$(6ϵI0*!ɐޖ*WQjV NS}lo,밅f@ZVg׮m<C'EUۼI < 8yr}E<ۯ�Z~nY\oDZ[�qEBJƖ#魔xBl^dno߄"K52'j㧹80<;d[3nѬܿ"CSD6#m!ۚfa^.ՕPVb͙XhIV o?/usw p8 0o'4)B7u$K.-qj,k̢,S/ OoNr\U3p*`@H`+gPVojZcsYz(!,DAirK%nG\FZt IBMO',Ɂ&i>'nKS3瞻r{5{6c~ z.p?n;G3n#E񍎁i 8O&pDHtxl^f3Ų#wo^Zm ByNlt"Cnc+-į1ؽR5((N@,nkKʩk]ˁvIR~yԕ5@@uI++s &쐓(fZ@A[f&fۺbr3u90k+O '(q) #Wz_J'[[sTO]i.c3 & 0VEeC;(o5q9sNcē*t nh!3nzˑYrgE0(;&gz_:|{7iZuHT^;ř~Up&n-+/7:H.œX&W�KUPA d N-p#0?DZ#o%8m-NW^!IA˪5;9sM#P+G^>}_CkWܲje{=PXhԚ">ɔ]+o4cx,=2ytw;vnTʜu$/?T8, Yi7s@k!&bFwO?�\9>pAHD,f'g.steU#njpK&މӯf3~r*el8l8,PԂʈݯ.'/^O-L-w|>ޅel\.?^z|) ԑp: O #^Y^sĒ|NŮ"95zӲ̡ s|ᅗnSQݺadiĢ岉cT! 7 > ߗ�䷄uv-ctTs\ 1D/.7aH &A(_?X\O=wa�O?v~/_{L:ݏn%6ݫV؟؄$$-})s•;eSS~sǯ\ZSDU36ؾ߻&v $rqL__deْܹstHi!M7BIq(rtHhxe$-8L{ >BJӃ)ZPd)P]N,& *pJʋ�#ӑCGXTϪ*?lU]l)HLM~:WStxCeGDtDEt3⪦yܶ]6iT " ovGΣ-,hgz_J_M� ^wsYfY&j*+UM]Ⱦf\^E2.^߭N^eb?C2Ώ_W1nۨi୓'J92Q#g|lŗ6}Sl{]qJ#Kiϱ<yΩ{[++81ϵ#ӑ439ݥjS^vE:T5 ?iJZɅpisdQ˕P٘_Igns]߰<p,O 7U䳾/,M>m nXYƅ%WK 2T:&2X Q |95t_?P^THZ{͓ᄻ6K5É$ے:'?9oSTck۶SK0>5ëF<_xa{P[RL( X 5{㿟w%zE]u_w-IW}+۷SO99R~[]=m$sg,ƞ,>os|<_x%*<mO<?AiY79ۛp*x*K%w+Y[S\{%c1a(Nߤ,:+ó#7w,ub=]_^x?|t$3eK\[S"P<2)Ye N$6-@e|nˡL$R$%ɔMA,t<Nɺ<2+8d-UǧXHfTņ|ɹwy/7U;xk-Tdz6QIAACE2tM![Cؽ~$q7Գg%miK7L.\\Rywg++<X^K}MErO\WWձ9/{r=n\.'ǍrwiGxI.;ryHy~Z�YVF%GIC3+쪮+=l'v?o.lomr`e`G D '|SefvxsLub|j =:X[]�Xd+ T>/xVP롹Fat:tH2QYt(% @EBo9o\ e}()*Dx^ yzقeY 1b1rsCMĘ ymR<dscM8P(ei,S[^̑m#Ssw_=YI&Oq™YRABîF6>칝-6ǫwws: sٷ1K$ 87~ʏ l<\6 }ddd.|СH]:~|J;LcUwA<" X<K~@P?2|Vq)gFA,@Ku!e\(u{޳nS_-qbug:iw{ׅK0Y5.LwcӁfX-\n7(zp(NC4Mb$"neI(|>.'É(n h18T79aUE)𹭤% "?m@{?B&̄TՒ̔ ZL˶TSPVBY~i" j*8dS7oLԁџvn�Y)nILU u0 !brPC$,@E d.##2n+[q%I ]' ϻ:ys@dc+{?u-E{'gkf uUUe%Uz2#NòDK7ϳj.2ZPÊB&H׈?zwpce<V)[)]Fg"X0*s=8NA@Q䟊ιϼizPՅ>4_ȵt˧BKMNEL<\8A8P,AM&#)Lf}Ϻ" =>L\t;5#j:N;c0MAp{|4TXD.Msv`&|MCILM QMXKw`۴-ezdYDQ/\ '4Sԯ[?ۯU]ՒOp & ˜&#QNO/spU9ik0?JkgzͧI0 #{&47˖յ<k}=-"՗O(m 怪|ᅗػ#^x;_j?Fr*+s|gWK̅N(ivચv6rșj>4| B0j*%E\ S4phwb ;s}%Wہeᠺ0|\oiE9f "V"*VBHuziNك(S)AȪVz+AYKye`근r(X  P^ŽAy5nvyw*oq%[h+-I$䍮QVהP_^HpG{Guwޟۦc NbdD%G[6v{N=zϛfoȉDqu#ɢ"V �D�mwfȒF̙3=OhhrPE@�A*+)p5[|[eCQ<zX~MufHf2NdY!I4BR87bib<.^wu3=M8$a!;$Ix<AIJL2L ,4 L~W`PuKs|py`x`͢Z(K~>^[ %*\nM_.ľx=Kg/gM}cϣ&k!u!) mJ@c3 hyԭl.'膉LElÛ,X8cnF%DQ4ML ޑ2}]晱pMq"$v,A-t/0K~[o_t6W8GƏ)-dù\JW\a:fiףlXϧ"R?x*n\oH9*x6 Όq(uWƧ97'ԇ]-5| )OgK{?_kRyn$ݔ"I^ #M2�#㨚.YLU@^ӅlD(ulHCAk(F6 [!+rફ]ΰqC7׬g珝AW4F83fs{ wmk; nxJ0dSILDn(JDQ*0o-_0 M,X\nO b~`=܇7PnX<g'V,Υ+t# ebp֍Fp 1N16edFcC{<c3{:GNrz໢ -I7"fȳKG) qx|l&Gg+a蟾mY+K+nvP:Rt:F|[N^pׇ[jz8Ev #VdI~E0 L9T^T<JlqCF8e5RPյ|h"ItXm5B$gTѺt̊b2,3DHqͼa7e^8WBt8ɦSr*M -f(gt>M(WH;ldߎ-L5C2+976A2$Ni9T6ݵ|-=(X`%k!�� �IDATyӉ LMZ9qpE^=ygϯreew~>O:#^6c[u7DKծ­b?k7WLqqdW_ )i]D&]d`ۺs0/@8"MV e~Όsf<ʆVׇ'xeyG{ۊxR~hQ|E嶀3;O<5 S, /hZAe?AWqctds p((#J Å%Nc u4$'h p^>]$9.!'VKEӳH6&h~ auڸ8ș]Auu,ft.ND8y׬wl i  N36;O,8oP-@t~.Å$+6 DDu{+lXůkpyoeQ`U>-65+25'(Fn>^^ݶ)k{0%|&eZ@-uI$:ɬ%HaZ9Ab|ӡ 9(X*F>g?xQ=~`|ngEԼ5[gsjT8զ Vzx)\wk8EU7x].m®[oW#? ?:qCoV4> jYi9T5ahZA$˃Y0$uzFu1|[ .-4V'L%.Ys$qJ8CGI�yW;gf^p~|,\ÁSPM#E< =ۚ[iSQŪ%ZB!0^|:*>LF+<qΆc8WC,/Gvd tOZRTi]L2gFY}85TJg,Trbp~<쁺jxJXu̥avtMoy[՛Qn,5aZH;@$ye .I@3rL22-pg$Ck?|iEkw/5MXeҢe4Cc!<k{qL<-בvLF ^xvYT[^JE#K6Aet]Dz AB,$ɋ\h)[PkTSQRHR#Xаl1xڤD0BM�'‰!دZru_>vX=P[-/еa66l?5MdԋTsZaq)^cn1p ~j;F~ J!( V/ʢZ 8-wl-P<UQôPEt~*H4D0x Squ]-مF.g.?6tsn;+$_g0-Դ!90<yI!Kh٣+2q]F t!kf/3?6fA}m5E5,KGp.: <2R܉;Pm )Q,- ų'R)JhUK<#V@"ԕk?c ?sEN$"˒뚐ϫy<좢 "k<[pl@ruLY&i(( ?f&tE%a*ђ 2_:oCmdܩÏ>q#e>mImc;u8=~II]J $ TRaaby%s<~7: yďM=.׏u$Yiu-.ha60$ǏqyF/eRd 2zd;kC?sD>qxE,ti<"tDܽ~l珟YQWMs"SQewV, ,HXn^(o1F kؼu?&-!Lqa k(8  -CqP龱sf*Ѿv#k7"vt2DŽK%˳n D,3dzYvP_A[:Ν}G_%M {Pn48ZHyBopsoŃsUowQš ːVXy5Mx%H1,iPX]U3yD%8 #D'xc'02#fmIU]3#u qlH_s|C˾Km6еGz>E*_ +:fA&I$!..(c:f! IDKE4M (dY25ƊDt˲B>&cFviZnHRY;U~[;mr)ȥcّaUVy(2Ifu,AC1$3v5`F.Y7¼[Šx<~ʕLӴAn.ab^,p83zA%ӰgvePLS$,8A?e o)bcwt<\a`:,.ltdxCt`LL2>3c` \ ]C`md~`yhZD5>S˲L2M, E@A-L]SaZJ+Ë(JXA,tpjf?]bYmS^_0xK qGkft]#YdjjS*y aB<>d2,r9:H$Sݷӎ#JKDw 817m$ k0aIn)(N3JD uuuA, ÅCB:E7mw&6ǵ3/aNVqX_x,"nLGGF\~WX;EXS*PZ++'Iw6{*6]rQrhrի :V{`͚Nz7w\ϝ;v@ϒ䷂bQ�Yq8N.pbI" חǦfŧ˩Yeaf48YFAwYNEQydݝ{GE:A5_DqS_߀tJo?-H&LNN}'8A:~S:2~> (r(XZZ|Χ|TUz,\dldrzPJӨti}\IxV:^UUOգ(,+�mٳiQSUA4D!K_A`"A0XA_|"(ѴNȓ|[XF 躎rSYU)!g1sjjH;J6-1-[Ȗew ..WK2I$AM܊ہ(*&I9&.]dbbvVɍx|#QؑtH*JS\/ @TTT(ko\XX|Sr\SYY,+L]&K@'Xd{@s-eehZUFJ֎ )a)&?U477utat톡Ho6oC7H&xL\N !7V/;;%EQiʢ(#\K;''-AXv$ĸ877g\Έ T*Bs%vĀ FӛyaaAb8EQ2=ߒO&ƖZO'bz* rjDbaan3+%[i{-/>_Xϼ< |QEvGei`daY�JQ*$閊G$Jzi�inAŢ{vy뭾 ~=vv_ -4ʿ&O~ (, kz|= bdU (JB15L(U33nX7^ @sKߺɝq �/~QuU' v sKƲաYF4eBE4^%Ԭ5,@e۲nKgsZ(y#6Ttk YvDفƭߴXXL -ghjs!MڿLrzc=띊 躆d:Zꆎn("h#L't:jG )b6ur$|fձʿgЇ[Vxvw(^٣K|Y]1RZed>z~޵oy}y6t˸Mz:ڧk|bO?_`[漥m=?0=3IoKOleݞ= 7x?UWF>e렷{nI"f|~ (kh줲e-M(_"0Idi -CqJKQ,v.oI N7 NWéGA77wB>Zx2e.|N׆9vm2wOx3{n@Og281P_梾}eu파0j_%--rY=]/L8əWR?Bug{cu~qͤqvumA$I!J c~ub#穮n4QsiDA´ "K3Db3,;0<p{h݅}#4Ax28CSKo]u>WS]LMuWUu9;h 9b64l2GV򰮵^<Xdž5MCܽݍ2%fwx6C_ֱ׷T}8%ՐhoDmc2~SzIDjvpկv=v y 5HPq~Og!<{#ZvLZ+}yudo侎;#d`_B|n%+!ΰ04ZQ(߼]1e` elFmwHIryb%�5`3HJV(A ]ApTz6΢Fhص]++o~}y=@ xxop~m}-1vﰟOd207BFj7܋e2eAs j.x`$/?R9k 6崪̫#sŏniڇUtS `I2<4i5m렾4A*~p*[{~5Tl{ۄ3:7}Ky΍/>Z)Og]λuJ)e[,+2Yx=wcž09ƈ]1hw;f^"#I"ަUе ʋ?/,4 o/6Ҳ},$}?r2LEVZLp(Fae~֯LY*1t쵫L;I熝lN7ė-bxk'Yz׹xUBIm*˨Hpއ8CbEXMe?!ؽ:OšoVא/ *O<pW^?kC|퍦' I3!=Mmե5dpZ6plpd<(Jz? oi߷ޝ]ׂ` xвtR@h^k݀?He =)4ڍ,xjx+aj 3<hVW^atqf[ׯmZ1"! !SQL|ʜ|?B< jl/vϓy DU<o_cK%?o|迫g _䓰,8#~yb!-]EAx ׵3x9vdiz̾rY�7A˥I,tӲQdQ`i<ahvrh>6j{Hsg7gtxb`.Krv"Ec}<RUayPL=8kxZK~Ծ!ղ!ےvko_y.q?HԬ_Ю OBNMΒONH.45eT,Av._j&m4DTr-V ;!Au-z !IȲSG)0?q3mڰ{w*}:UD3HNU/j롧+՟?.HxEKG9/Qv) Osa߫u$I&B}?IfҷGv~M<}TT`Bm Kn؀ ϤX]Yg^*;67j YZ><KGf۠Da.;%Xt /G_<عoUrJbx6<!X+3^ZkʘO0KD!JŨ)PSL?̺:Z{!YNޟO3w(M2{^/ :e$l hhruԶGѓŷ[BG Mػk7={T&Cv:FtCjf<&žעKSAq"T@!7|R]chj-70i-7S(mv߮ҋfI"jP/,<_|R؇[އ_#,^|Љ9sdžSay0LTM�lĕ2p{{x̮dw!PO:/5-6 dq`AS�$hv d[06Gط >hZE_dB%(az~63y{�Φ wwճu3l87aY Xή: .eP5]0  lL3:2˳MLۺpk/-aEb/W_~DZlӓza_ZfEqRSLKK/`o/;mӬ=wq=2BCk貉aXdGuZue!>ɘ Y0g,IU@|bGVl&<YTiWepzNYX^I( X']ٵ_ܺ�etn켋߸+(s+|Ns<'Ih  )ae5m:Hmk-YSOʥq9̂ }qbŗILpe:fbޮq$Kvrtdv)Y" ?sǡMY[Gb 43<MRa"3c,͆ k%SaG :mXJ9͝ :#^:rfsZ�V~'j"BtӢLΎ|`dl|ؾw0"THRP#2BuA8 Y3ŕi[rKL2CEwN3+x}6wb`]Ϝ"M`g=S)=^ݼp�ADUz D㗮|D+47MP1=BW_'Mv.J6.v)Y<dR7>k*X'\k6KF& ΒMFpUzfvs)٬Vby�пk};0:X}7/_B|xG#nkW#?dGW݃gCq*6�!"*p}@QNXDg1=yh7OV맢DI7}I,\ԅ׸0f!>CdU]x; svk4'qꍋl2amM;hj&NB<]./bU>%!5x=r]m 5"|.;O}7jpij) zؽA"G7L`v)B΄84coDUtj" -�� �IDAT^%h bK{tpx`~(ajܵB4n? quJ$B{vnagk=O=ܚ.]ω^LCjW v$54M('OaHîh$T6PNi8rD"A_5P|#oh8�:jH.Lp}\r`-Eoȯ%XEƮeaae_7F bY�_r1KGgC~TH@Pa6B,^'<5N奋#TV6LʋhsxWQS0>( 8 STěes6Fx,aUo̙A9GDN_ #K";XHʋ8hP[g.˞?�(0Nrz N:NlK:/^YX3Sp^X:' 7ͯ "T{`*Nr_yF?Agy<Zkl9<6E{t6Jxǯ#bYf.M͡i*ecan U=[U^4biNZB n7"D*ta \)7U?UBV"r,_ (N0L L%:S2�NH xerRv IOH<{d{y%Ify u"aO֙|ҷ~g_<z>u�;@dC_DMT ꂪ%ѻx̆9uA \[ O%%s`gQ}8:8kSϾFL70,h)pRmKxz3ܿi9E7-B$'qUUѲ%LP\@x|WSwXnZ1?MuC+ N~"z,_KCsje<L**oOqqNEqxd&F_Fe(db|l,6KZՉD&4@ ;-03} 4M4 Z<0a/Af,c( VWUr kLSGl va!A۪] tBgQSa0D2q͠ڣ1bb)Y@l 4{L'8a|2|9?9?D'yp`kݾUWb`9[m‹!@hVex>p8ũPɇ(r} ώ+Tn̿쿟-4.qed"m;E&1bf ];EЙmզ x2 tQux]6b's ) >73![NE #Vj*nHu0BM,S|xhdpTFR:0͆UY$\4L& U2<Ť'0#Q۹4xP~0ۈ6??NZ;/Gg~q{ϑDn%8R瑝nZ_w"v!xA%�@7V4 ?j( ,HdBE.j1JWonލ%XZJ,,Q>O33q~aC[3~i4K5cYcY<N2e`)S('-|@'~#gX\,0y(sms&oB_+&EgVG*1Kh<~iU/I4=7AZ-E4aTɔIjPDnV,T`t6~a:.,C{Þ% x|^PsR(IR[Nm (XS6ƭ6O<*)YD N$i):+dw̫s;3,K-~i vMI4-ԑgiifIBd%\(!Myb1dC @{t&/̦ ržP4CiVK^Iwǯ-Z5^8slb9^䟏\cR[Edva"sMڹrR ֚*C|xur!u0;gnr%=uD [dFČ3Kش-Miq`[wm]N Ud^2K<u g/rd)s" ݌_̫#`cKS ^^t1%Q@3LYNɨ:DXbpaƏO'Αtꫫhcs9ey{{Sd ٽӓ`ךj5^S$4htP4[ZwͰ^PvKxYX�UnE3$|s^ބe[/Sb0D"Z BZ͕nEE@r0Pih EgVWQS᣻KK I]}:w~ g^qy?$O?0~sEr hZIh.>/fyk$eW,A=N\֬m{V\^$ PZ8͵p/n{?y%g/ J2!q|d O-qS1~,t#!]8tCH->ەJ9yu/}Oq?8B3^&^ඍq>*wXU:?j!iUø1{g=ڿ5Ȇ .YD7-LZ0tL@ddY.~s[FxY z|?ӁȩEΎ/q-xN(([`v`YHHJg4/+8E0oz "ꉑ0t=Σ`aص_h& ͩ7?(/,{.9BjSF9<0Muy wy--}[&Tˁ.0 غG?ϼ:¹B^~ic3:yg^E^S81T8BX/|s%+Qϡ>K%z>nk\+/_fh6b=nHv˩FJ$Xz<, ] HƒGC,PS~hcCsI)݌E[ ߎy I}|?bd'FƉ"#| p0mTXW x-I",;Eg[jzp:tԻG)!x_?wy!\q. QNAeG"IlW؞m%}7o]-_ӟ%>FL!N] tyyWP5ӡLíG]Ny\ώO4KgTgVz?8%xz>c[sRVҽ}.F{˕TTt늢)WuF3Teʜ%+\s)[Q+D7[+@:j>+t7dR%̤S%DkX /fțL$Id,|x&ץk`SKS1^ #;ćؿ6"ME�krb|_dOG#[ vV'ىSyCZbxө< |fwCXǯ~ZS-˽bk+5s'ji?~WK )|%N 12#L.&3x}wWǡl]P=9qLs}|k׮oE�`^?!FƯXݵo*g> 3s2:Ij $ T=]/Vu)�"nZD2ڍ=JRtT(A(ܡϺnZ̤ ͧKۀ ќmm(4-Cb 趦�Ʊk |X|O1% ݝɊX{{;<K|o|-7oEg{:Q5}DZ+#;dֱ,[i0߸jE X&J %;{:D4$yo_7Np(B "s₏�{6O@S͸z{_[.Fߪf?[yHsH3WRVOkf Å,S ]�s, V[F{cTz"WU:2R_HOk\xdz,ǹQ.MFwHR+� 5^\d]焥ݶ1N0"ѵˉsm!BtԔQjn|LGgv6ēI[IJWYESzʵG Y1ձ.wm{'2|a b[z{ `b–�+taٽӡk=wC[+tڻbjm!Le:if#[qGu{ﲙB˲ǦN8r8nXT-Ga="1{=ѫUŴNJFMstp*U>vaux^=co[wO[vc!ݸɄJ$HY)@{Ѝ" L&Tm-Eddn|+/7L\X9ݳ#{ܵou�TtfW#Y"Leω/w~9? cƉqg졌g"@4.*A/IiZhg&h{O}m]k >P8�п |/kT8s5LV?8*rI>oy<*;3nw y4u}/|Iֵ5vۺ}Se{mtӴ鱌>6ch33+{k-R'LȨ6 &Ɖq2c_^z˜-Y&(HT5ɒ z)'B+e>,p*o[k,V׊~gôET{;#uYY(zmd}eKaQz$?:^ ہC؅@ `Yl$*<tVDQdv)(x]NZk(/ZMnO=6TD:CU ɮ(@&iNU(>_)xi,JJ,!\r g<4ʑ#G A7Xfnf%g˄ccQ<?- +2n؞�|^ y|v9E*#Xan?x%?`b<awQ\P`j* ɚzLˤ"vlf6ʢZD\"TT_}K $Sj^(s)z|o_eN7HBF{KV$}j ⷠ)4$fX5ȵ;ۈKk6 vHT<0}<}-%++T$۵>p?żg-WuMX 斿aWt4֭}QP̆!TUr9oBybqfgWJuyq%fTZ0nB{Gq_wJ]{zr`0  �IAEP䵴Wgp~|{^d[e@Y") i09vOtwuwGu�`[ +7_ى_C#ȶUEο}Q6,s{j'Of\J$r翇#Ky[O~Na`-&yd; ?rSdRvo,AGX_uŔnZ}V|91#B~n٩@D.F8טSvZK U:F7-TE%;f#28:k{}^{f)*t66$ k+Zׅ94} 9lABM'%хl ]Wfr,EA9JBN:,9;P5-|FMė)uMWsyz5 /+s> RZUˑ;KB";+A$*mジ z֡( 6Ctr=}3WJ) CO(зW(8d'ۅ"Kt660%ڝ ߞ8O_h %;yD~Ϲ$#S3_x(ǯpoP=*"azZ~֨ȚxP `$/;Y-tsn-Z/-rom#G. #S3ē7aI$$8| -=}Q<Q@]M|U?rO"y.C|apܯN[\H$}s :[yS4{3?0?t?#92ܳYQPT@2qo|,KAysy tg-lyhvAׇllJ<w"oN>vk ;1^JZי8A31 vrD�-Ed\D" �$ ');E97)DsI܋T:_$l)bCE֚"  BgӇwOGOUc[/:wO#uh,{wph.E.4!\5]9 nOmS_^b|7Ws56Գvۍp��/_o|cb`fl&%N߉6B ׊ Õ8{D…Wy J2XSwس:>=�8YWim>L sEހƲS.…3^BAYS+ݶm#K"5EHbdef">"^q\Xm1+̮d׻+2kvcic+fW2<?cu_4tq]ByklީUU죮, yQ'd^,KOܪ?:wsw=WUu+CiarDt)^xuw�wt+t|]/ gt TEao&5ȿ^֊wa- 1&SҼp:z\b:fto'MM#:9*}4mgYǯ޼jm2$wO>ot)̷HbF7Z?xwE~Oy0Hg " EJjJ]؀wء|$V>^]љ sI7E<.ȭʸd62G|Uʪb m5El Ue+1ġC31f"Z_nXGE8ށ‚WD BE Ӥ,X:}CvrpNp6puqx6ZZxe^<}eE׹w?Utb>WmL6C;y5sc3 PH pNtOkNtqwWnFf˅ SxRqQS*O:ێҩ+ ?cv]J9L|.G+zfj!% òOCmEj_&l,'"bT*T<oDR=\8ucGw%rBhѦ"o,燸=b2Ok|͉hɎ:ڹ:W.?wk^@k&ږGnݤOY)\ AƪR>< #/Z"Q)^y_YVd|n*w6aS +;P^FQI Jt;e\Mt2)-.͗_4>2DCgoW'~{8wvdj+ yS@IxX]`^^x nss%"Oe ymq�� �IDAT^CuX*K,ZS_qe*KvC)!$RWK{TYuQ]hd.t@(KH΄xT -CV7+ڊ$ ~dIbCwxZk@1yM ~N7b*Ӗ[%m5!b˂-x\Q]-雽gB#wŅ۷[sƛ\yn);V[*_%ٲ~qK} &"\== z=*׃;rV9mH3Snʂo{]1Ua?EnٲD[l+%L.ĎSoUg k7?l&^ -C~o[)m= ]MUTbufGŘ?7[d6aȱF{y"}p[:Q0В\[e-CB`Y6(:b1|>%>|^O!anc6ɔJ"I$D2$  XY\y~Jё9qm{F�Dքdt{B$_tջ}䭯8۲#ۛLV'k~CA^O߃R1N[XW^ħ?ԍ!Nw٭8+B.B>7g=B0p2 fiMYK=ťHR,dJCDjjXEY&Eߏǭ}|ȒHZH4V4Wd ۶ȏgߖfJo95i8%x}4זagnRUdW}71({i 5%~ mpd$QĴ,"$ˉVU2 GO' Nӂa˥Ȯ) [Q؀K{,q ;CZ:i|볺�4W2ó{tnYfudn-ʊ0|tswPTU%`חbWn-؃3Qa9BfkC9-eLF3˂ o$89?Y3/WwI,fl!.ܜiօ) yqx~AcYVs*3YLVKuT'b, Ix`$RS7H*, %aU}MN1/t6Vqߖ*] =㋅+ql)f d]Y~|/](\̆:fff"gy;0dv9Π PXmG XDs$I\YdO[O^>pDHtхT|7؆˩bt|7F慵AyC}ޑ)l 5qtG n#* 0Mr{HR~Cx\.l}COO5',fA#Dxl^ ԱM,QBF2j6UWsxf~tSKw·gxdr?ua#<1ɦ[A/ ^[֖gK2e:AͶ>nL:lhEntscdT- :Ix<SG,,DӴ^g&e`S/ilj_@bTt2WswA'^?6t L.iS;?a|�)-@-C*ak]r?uxG {#qH\p{P]f:zOOѝl)}ͤs ƛmXz<V>r1Xfr)etlמz0xRϻy_@֖ �7s|o|j`jq ` (꒩:oǐۑkD?8Od9Fu8ul4E Nj(J9M9_RK3]58&WXDv{ɘ{?  yb;iL8&|f_6$}c94C$kKTo0Voiolk%ah f1ŕ)*BԕM3מտ젰 8!;W7 A;S$ ӆbVWqVRJ][Y!<w<[{I'_[ᱲMKdmMM|vV>Éuyt2Fƨ]IZo#.,%>/dƗ$':p<340ASU0G2z6Mc^21d<l(C3&c\q(a.~N%H&z2m+ٹˡ(̇O~k}7靌wRArUƉ qn\@!tYQ NBS|Cr%w_XNұH[ӫ]�ʊx {7[Y3[]P1UM;p׵R2ѽ1'X~|©nos׈'druI=�>5Ddt/ O8X2})\p 3܈"rr{!EVlFJ&:,,8>:Yq.DUť*ՉD 5:x4˓O> od.RlF6T{? mtIK-{!pǾ{GQ'u9*\\DUV�Q?""ea:eHI<e`Z6(ʫk&(#+JT:E"GMS]aM0qM( Hp駯K3:bZՊc@1:mUBR˽i:d  g)/*Nx4˅Q>qWбz[w{]|"7=G6mkM_rb Yro T(D! Nq BM :-(,T>P.%,!ES8ҫp=4 tw5%l]+\@Mtۡ/лAh473?XNja{MM$VV{~v|Nzܕ}1=; #Xdu4lڍ ,YPqy ]X,hðe߳) cy\2 e++1GHgkj[i} * ^# ሔzXSFԳΪ?=@W_ڦޠOI;BB$ |)mjhj6&X^K&"_qM(PV) Xgf,R=R`Z6Q(\hNEHM/;`2:/I~@ڔ%Bɾ #wS L8b|40/%Ffe FS4ι ]ith=[6wld4=˫0P=~<>c9*7vPAqЋ[HfLb)r̐WJMH<P7#ݘ(Ih-,HO،ppsm.]?~=c�Vڶ\E!e,xut|hO'ށL+}r7{'ZA ä)YiWsC?^}':X>-OmkyIgu^t>;$0pB.7a 2MԷn(%$^XXC>[&k,F6M:cv[r~xNR%S\}=88} V4}/>*RJ;"_J<i pc:ع$/_ӽa2-Rz(,}�ؿׁ Y1ݵrec3dlMnbPQUG̠g;R(#8r !N "`:aPS"TnL\j>v}3`*i{+<m{?HIe^T2=g}qN_{Q%.trg۝(3wV:.[9>wo%.|_sBW|n(_G=Է.#'NɧP ?<{ڱיf떽uAЄQ V{xV .rJeiƩ Hm[m9UsVfAlԅ% $ι;F3d$] ^~3y5<y,Hd Kkƶ-RXD&�xf-+P^$kÅEB ;imWԵ c=IėɤHf "ضH,;"/ _^0ż|X%464#KLl6'-AĦq 6uO#6!96W.0MIƗIyxE%O!rc,V6$SN/7K8!2ǘ,l瑩EqaY[eab;;" # _cLNN? Y+++zMLL�߁hHs2d٦Z_?U0+EPQ*\ s<Jk6<{dq)r(z7g4nd۶\Yt:J:-T.LV6w(\vqÅɭ[w} ys[^^+Q0)ev!sW=wƙ?Og:;(. cE0 cmbP!I/E CGQ@&aY(ijLj(&HpB"T_e-"I BȲL"8&DŽ.y�X쩾1*+Q IRǶ D;61Hdqrţ>$I"4Nyi1nG0,ɤI5hiieyys >౲ҧK# �D KF#,܃ ]:@Q$Euu- Y|J^x\0psEEEAi Qt$TWL!ny4ђ+D'u;,.2,\h M[bvvib؝[_ < ty<�'DzDdُ$)iJQi(wsqi9uuun^w?ˊ`&@@ dg,|HXwm4:\.l6g CkőVQQNF**)*B$Q4-M(/w=tA[J,L M[¶Mom` 3_Q (\1!ijRT: |9 ں MK-ͦ ÔWSS ssLL3v{< |8Z]YGG|ٶE60VdbN2<< wT y?2yk( .+jYm033YӜJ%t2dYh۶eVCŜX>FX,f9Z" ([^o v{ԊlivyyŔ(\ɻͦ=k|.NP5ŲSNL# 4=W4 dY= Iһw'ri" LL hu=d';@zUU#A].Q_p灯I$x<gm4|x<t=4UkE|A-?_٬emf,un!sj<wh __[g5jjs{uVU (JB>2t,,TAt2cVy<I6 ̮ܼ1ݵOQ##|Lβ~ k'j!.) ;7o UڦN& .,t{;ᮏѳYz'#7{rsx^8|[~m`],kc9=؈/O[oLl9gx"d;4O_�lKY߳8_zk+d\-t#Ih T], 4y]K*%(mE1,X "4]8.fع(QL-B4qnwn>|6bRelN08&(s_s),[NkY RMCǶLdYFl"ܚ<#]vwiQNdm۵B@[Uػ,@qELٶ-w }kQ]ۆeYdIDA²M",-OҳXF֩ Pq?[Ʃ-VF靌c]xIJ#kR<UgkQA 6(! ba"nX>Tܠ*i0#nyPXKo|?#@2>U2ɘ;Q&hPQ>IS 36ܸ6QAɬMfyOj07ZXv4-sqrDĶ~v-ZVId${[Շ6e[\fF.~:ɧ*-X'bжɂu*-'Rd\6#[4/YC3(S,A'y3ˣqs/nvϾewX$y.MQ_ok޾uz~MyX$~zWc9è%dDC�SP)Cq9H%sи6Qa T5n/LIZ:GRUM;M8=^PY-;Pdfx8ӹ|Ϸ hT*wև2e7~)ܞ')w>hHgl*পq FG_BG}=*NE&YX}#)l>Sm݄ `)R@fqz'lݺ@F)kTA&u~w"gY"ehoOQv{_gܸx=JoNH֏ƕṧo:jٻ-*#3EgJfVfaf%&yLGcb:˿ma[(#|D/ZyKtև ퟉DŽm`O]lcA*Mv7-BuwA] lZ6�0Bol*Js] V(x2h(mhqzxT׭4ɌO9~#ܧZif4I4š"u[(o+ݳW߰�[an:ݽIg3o?'l[}ro? E0yCGtCOF3G+΁A hN__FE5n]=+uh' F6m`^{Zm &tRm!(FGEY0l+=vLHl))gg}('389:=A|6Rk靍|`v:>@ySN 8RlZPce# 6dNZ= "٠8beb2BI d,H`XX\YeT[md貄,5tLwIWmi`K3J TIC,g\-7>?4�E�5a4y@Inͻ~2<AaU1HX{N{{w@q1GEP*wa&\:ɏ}�~ C&AlP&?ǩTlze"cDzˍ[i L9n\Ok<ćx.V%Sص&~L[|ͣwL69~q{x=F꿎/ʋix2~z/~O= xR0:=LGm s* dv6oL~G8=:yеAR�İI^֗\q􊑅y-}_;EgzBN?# ɴXdӐXre|>"vޘ\y3W#w! �� �IDATl~z}D:2Yy}?7=9ycM.>t0>YxH:4- st_{7k?"]@_zID0⣼|lCϴu+ ġ@P꫸>C#>(UNrx/~I;Se"/v׆Y^ S*v86cNrf7ycY/_]5t{ӴHg ?OpE'xq*z}3zڹZ]7_<ϓPVX^*S=H,]6<R`{U2QL2& 3ЗPPF5ʲSİrٷ\ZD_ )9"_FOP<~Jj NY n?t۶|x֌�40q$N 73/$|<яQidin]s.qa I"HPU쥡< 3$9,2BG~zOk#6U_c!dz%KmC+iK#DfsM,$OVnVENN˧.U< R @˦.["]ǰl6C-dW#=tޖ:އ\G&lsHحicP`l>L$$Bp3Lɹ{qO=Hj7Մ& fo=lC{ؾٙ/<>UFapVJ:' FOOoo^ VD4N h%IX*)X,zl(s:R>K _F[Y(qjo>#hX'7BGƿ] S_߁H$&ܹj ,?|%R'v뿰'?IŁnogK\:}3 ~|Yܭ[U1@ccE>7g|G=/=C| _ Y"C%z5&o:rnDfpK-شLEfK^ثqզFT' $zn`,Ӿ~7EǗݿx2͡s%{f")2![UC~8skyJS.A>Hl7Y~/~ҙ/KfYQTKꨯ�Ol}?=*zϊ&>U ](H ߾zF4tt=L�#NljLDR\Nޞea$SRHHQU7K W@ f*߲ �[ײ0x/˸[sH [7 cJ&q~8~^&Q⃭WRgB oGhhvtdbq$-2w8~�b()/to)0-fGrc�䂃)Ɩ7C\5;xx̥JdUHŁ9dIdJYM]x�T@-ŝ+z?A+=Rh', ̭pn<jְKIçXcz&.k9>?*#t5U {i)BU$dIax6iM9T?s78֛w7Zi餳";Q7S(pK/]`.NJ[%|0Gwmn=>7#˜){V Ɍ?TMIE ]˹}"0iN4=zjZL\;I]fJ\nP%L9GQT9edC@bx2d] ޿uc ah$`�>3'zs??<6Wāvܗ<xV T?$aiݸ<~ Idzs6>F+�tP8tcC3ǹp5bN\W`\7g\[93k3hpG 'YLJE~P Sr3oY ò[|jAmGI%If \Mq,A"+k# {9E<0-`&K5=L9ȴ <~2ZZqyTl=B[v5xxW3'57|05 {zX#1Dc.okgC~;-z!p!gHf & +,@vL3=9(?0>/\ij;9ߒ%g,]w=26Av: :Z\ c}Q)2S%ܮlZ uFPTǐgB,37Ϗ]L͍nRZ\ï}Qܡ"D=_?"(*U3)wtpj>&%0%Q0EWɽH//CGa[ $�S3=; U @;dL|X2h,Se|nF1> [D^#># w_HO=tKQIǖђ |KjG'y8*PaoE:ǩhH$^N#Tn'o%fu�z!0M6B:{QE*;??J2tb_6#"[46K"EV=$-dƮ!Sq WBH�a+;Έ% @,Jdn`ܸ9IN9_"iګxMYќ򦶩C:Xߗ짻"?r^k_<—~?Kw=J۾]\mF ne !;uŅ(fzp`K,.N<gΆFnwl{$~]'^D|kT$3Rnd:5;F23TZD¢2cRD;*Xt+}J=|W?ȗy? |vPTXѲSY6וR]t4~jfW26ɭT+eB�%{eIp^^m]#R/-MbY"u{ϐ;TEmDhV yF9'.Duٲ)T`:&#tXȦb2 _&3RJ']y"4 "+牴R&u16C #6gʏ^zI^>I?z�|^+7i#x .tYGPBUKX[^6g b0[Nrh]QT;1= ord@7sk}3Ē)Z}|# drqx}TW7󍓃\&_RqM El* vɖH\ѥZvi#NY8ݝ,g\v#K6O!\%'ض -aS:,b,B2e~|BJg>%XTF%S4éFnN,>* ]0|lF*yii7G赈x9";rlsr&YZ\խMA#0pxSuq.a`Y@r &I Y̤lb;Kyh{]y{"tW)m/k|4]E~O6Աmֈ`Yf^U8ƶ)lӴ 3y0ޖM<z"IBYo%=k{>ȗ~"I눒LƔ8;gp$<>Uˣ|jfKrq}m1 O7-]-GC{ tk ?fu]"tx)rMA~7-U!*B<ȥIJ0)بMTәg R)[˜X`#8i:^@` LE eQEtiHPD:{vs'F+r~w>ϭHȕ?1_ ao)ë`02wШ\inP0mUU\JgmPGއbpzJZ!󏗮I^>CWó_kضMKm5(MtKY1vt>N<-s+Dfb2J^_e~zcP9~0Oʢ 'o/~z †0 <vwRQ$$gE8{ Ë,%2D<:<}t4ApH⪅"%ۢd˖e9;s,;3d߱ '+'Xדs}8qlYIő%$Sĝ}mյ?"19p>Bum<|Jqy75н|3 c  keK5UL8ӻr52ӶKL$r҅U<}+ t4m^>K~>diC ˗18=c(!xI r<rv,Gpu!5MQ$I duKbm"zl6~ AB[Fo{?w~b,f{ um1dY|KX9 _i^ IK*w|k;7óM5aXnERBNGOG,@"@Pgy0C}z:;'yp]eDzLΌ{pE/=�ܶ |�V/dӫ޳cTnΧ!J*˘ù$yP9<|߱e=;D+o'}ާ �WW[^rr 96 nΩr <ףV~!\^'Μ_V_|лJP:I̗cr3wo^_ngDzj?_Uj Wl>hԅ}-!𾤿\+TFO")$us39j <JDƵ/k*a_% 4M2$<`,!cXeLfʨ\V$" r8@G̏" .$ ,dY"c8L >!׆$/<JN}$9|z }�hYu=_ClqI8`Y֕wSeM\n-@p&o0)2-}N_Ǘyvhj\d獛h}&/yZ(>@;G<9dx&{ϋO,vo}X۝w{}<Jy=,灞hp|'O/jߊCU@ůe/d c8Ȳ|B" :b~jr yJi;KduLѵ!xȷMa6g,et)-GQ壮gc"}SYEtںЦ0+.B gfFM,$H Ko91h/޼U,̮O~ezEP}e ~�\wXS&uˣ; T/_a۲-K[Istp/<,kcK|*qa:asșcz+7\-!'[ja>'gyϕmTTZ¾2Җy2c27 ,B_%|md[_yI} L%qAj}29Byl D4K"$SY;09>-r!_rE< ̲!spr:[b!"( 0812uUG|U<s+woX{y;;7g kBO,s`|d5.(h~A2KbQL|eO| o}7m4.o'+d E.L$?_ci-5K/$Ƈ/NP}%ĻG/9_9k6_ /P ۺpﶍF#/ ~/WOxbU;]=wݲeyAY~k=qX$ֲsiFk,kh%XS|& B’G/$x('/1! ^@% $U~YO|08d`7gυn# 3ic4S/E]z޽Km ԫFW_h1924g&#?ɪGN Qpk*[<0:YZE2oi~wN3.JXVwmdeGGkSE~_³l [[X hl@7̭\ڻ[ K>Ǯ?=? !%>/?lCzG plճc9zo?~w\n5@ukAk <JohZ'ﺓEݲ-:/xwg;wa|D[m,f5D[v'(ז *2D8dڊLG̏@5:b.)r߲y*l`"S,7<16L $q qjs`G�B\H\İl&Sd邭VkENyzO?\0M.R_6qU%e0Lλd:*v�l-J$"F�:{*|pmxb5T_Ă4 `9KIΧ/;61x 0K y&PN/zTPp` yXͫVp77q0L8[ɓ+/`;rC,�+Zd61| s}fn2iMLA'gy0m0sy7yCU笮!uQIn AEQBc ˦#@H xna_9E^UY ʂllUDY^~EӦ%[^39TBgf$t Uqj};O9+9=*wԡilɋucc8^w]m�׶0>[o6Zى"Ʈ6bȗH9Hkc25,BNTUo~wpM]aeF?Cg;/+wE 9y+{ͫVt+pa lەG|\y[߉㌏-ebY&$gx??.DCռsr4,-)h ז:_(Pk'LWdQ|Mj1{B, f*k1?pW$Le ׃+n ,{Ry&R&nڲ) z3w?m_O,D_:pg|6!>y&$Ib|.$$B~ u4T&V8l^c0lxU=nN/_r)ȧplk$I(pT- E`I6Fu42�Hɡw?}}cв[>:-Y)RS}гv;@[-OB}EX[nc)4Ml�]]u'|^%ڪ(m-X0.J8#drc[.`,j53$P[J'PPIM5ekhivljbܻg4Ds_;CәRhT&qVkW׏S@ hheً{՗zyyLѢ6@{ky9n-`ݲ6rm4qR v9W9+z޶mU#;ֶWe�|&M#CvC~=[6zI˂y\d;oE)&q=S3J@Q1}eh۰<Ϳ�� �IDATtWgzD`Iw.w~j$ ' %JO b1cw~+3 XGyUE|`Z./^K aˊB>=;ng݊%Ǔ%x ~|q~OEgM1KTrûgKWI 7<vۗ`b'1m]$ #hFw$YB,![sߗwh(s3nbY}$W*ιV3,M)zT7ܲzn& : ݱܽy=TE\kX40 X r‚$&<�=ļcCgV;'E]sӣލ1($g9rdίu)7YAPu0]*Wqv,Jˊ f9פx{a^z>{id N2nj�(r8Hp)dGX^2d<,2OU]Z=~Pd>yFTEc) ݱT<{? `}Ҧ�Oq$%Йdd~w!DZgȰ3u*vǒƒ i~ߗw6_M%S|W+us,* >~ I~ӟ(#Ʈ<rL_QHvI-MC*`cJ( $EęY(f&Z_|VzG*~cu;WZjPRe T:nP) A"GN uy Xf:#sal[?Rp~ .%};7Oczذ ch;x2?E]]#rvښpht|ј7Lk'OUju d$bܡvl+tD W)lrҪ"W|j_S) T&\tW�96RM{CjLFDaǿ-[쎛hXjפGk"=[6}F$tF,|[d=W �~_r([o8p^i`pGOO7=rVE>״p=ik]/'vC3qծKz! dY>ɳo>27TIIT6 �.pi_^~ǭP[6 B^+I!Ҏ'H}C(ϧoe-[Y]CAg{3:3Qض8,Rmk,IpftlIL�^\6*'-Y;ٱbh!M9|~pvÊ6ay<t~RS.CSnʦmu:huq_>X8MSU] X %;-_p.t(ꂑQ^~7<_rvm`~)7؟Oe;ܹvM%p2)%1`6O?ij^:$5#=>T~z+ƁH !Ś-x+˦P'5Sl[߱ޚ*Kaqftdp VǗ6T.aՑoFd:Gfj8| !Fst8(~^tgMߧR(,Sdr"A@S h>hdЌ) ״ E[Ŕ:vR+m<T=XRAMs)YRʌM[׵hU񛓧5!UQ۴l^=p(Fޭ7p9tqwuxkAt0*ΣI6˶5tU~~~ŏܰQ0xmw c&\ԩk,~q5DidĒ:qe^QTGMUEDعnݶ,eu}ܓ㹎`=$ifb>3Xۢ-o"ۻCS޳=5V\MzkY߉I>!q$!~jCMy|lַSE H&RIB55D!B@yAC8\t&,lh*|YGfȶ&4Uf~>ciSwM]* UD\n] uÒtâ5*cھS캖xUBmu#+yꧯKpܡz9S�s 9xc/OVpy4{Bj>pAQJU!rLɰT[t}[ QHeZvb>_?zr]ge3XχM-dsA|E:~c0EfS{,jԶjDSeRb+k y=wL='9=沔>ݰX5$ 2Tl&ˣ7kQ%wKD8&P}$ְfMPS) P?ae[׵7Q8G"JP"! L2uUʶ'}]lZLv,V-!xĩcO?SFˆ9*{ٓ./y�kۨF8y,Sܳn5׭vgr}�/?hGB`#!@UdI²mY39dE!/Z8B4eYdr:3, $,YvTE5abdGs W+'>5e q {ĩ\GK]p%XpG8|~9vnTlkcfSd>D8]VH*lkyKDd:B7mw<p}[:510m(e(ԋzѸ|lF@0LGCT8|~CC﫫 :M^C̱aҔ&h|{yٟ?P4Dc,OEѴv2n>zr؇lSUR<|v}h=' bNdx#<_PwC $Pp(PF{0#Y,?0 [Vs(adr3s<ɂda}}Iȯi(U1.Vcb\V;L$TFM}I<}|j+ǓE "VW�.LαqrN>- |㫈؜odĚp ˬJȊ"ۼ伀$'XO|~fr:^11<5UH `q^ `k뛗ղtA(Ƚ[788p x[l\-k"Uůi躎=r &Α"CC7t;{o9cO? =曮lECe?g#K,Hm(o"?9|s9B!IEid(8y$e3,\v8/gUU4c 5U< zI[ք"Ev|,_ 8wPPܼG?).Lraz305y8Dan̿h16࿽*i62K72%)xnXdwۿc _C^|u '[ <z+WxŵׯO.[£?I\t"%tdekK CK:VC6#VH{L% uݾw&B10upT0ɖc`yqmw'L6,xK^HYaYYINxD{{&/ 335K-dsd9lfdrMUDѴzO~-y 6ZQn>_?\Wѷn^Ooǻ851qx`_wwNoX)ǢX?RH[27Emze Aq83X޲vtq.S>q ;|`$ī89�뗷sܴ~ƪb1|-PǗvNu8~^?xt6XR&9.yY'KQ饕sZyqt ?ݿ󱧟٪$SN0, UI3&͐f0"'R$t'7(Ba4eZ̢;cX69ϊijjM&w)xtqM9QxJ1,Yp8=jq!KRYVb/&9, EzI;_N>}i/TUTWN;7C7 ^=p/7\{"֏m?ܧ@Ds<> pg(MULV%\Ĝ2,#C3\-_C&RW&Mkװim/zi�\V#mnNoaw UU.Pand]<H= fVmC|*z +,B*zVSz[͜8q{hL75Wy[| zv E:_ /sznmTH%-PthyAT@(a HLL?ڵ[ٲa4- qYazm{ߍ7z'}q�foMM]齺Ɔz+{gYJ@*05(Su ,CcS8=^My\^k/% l5+P; cpb'}qQ,297iM|aFlzgFhXKK#◈dI`ɜI` D قE2oBX6š7`4рjȧB")gcB*_ʭw\~mhxKn7[ࠩSkd :!FP6O&sHTn&"A0aYdtjrrXFv-im M 8~UZ@7KؠOr}ɂ-N*"*۶0"78tM"0H)6M+'S[LE B8z2py wF# u"_~whZ.L.e^~l]- >,pMxLWsNTME?5p?s膃-PM(TRn{/քJ>ks�^NyCoN{=p P,:3%^w1 |Tk s2i;Ud>cَ,\ `yi4\Ɲa=Ff@3-PT2sW^W~c1 =rio-ni-ִ5ϻD hzv`HE�7t-ٛ{{VnaPl6@9!z:q)KW#µC cq$nNU>*?6W`6mPQi e G)rXVLfDZB4LIJ\\:+&4o*$21MNbzE'5?Z=7!pxpE H`xB Ӫ(d54k?:4OY x,U) RUU &t#pi{Sv=E(8yLqLZxW/[KSli#;r0U %hb( IS(Q>هmp30=zY_yn!tH}8qCFcͻ|BAA8o{{4L[g3-Q|2R|13,!*Mfy,YYͤ7<_|> !8P#/V^h'LL3ҨB TUKn]OV-#dKmEE }8Y(nݍA1iEvoA/~>sS匤ϧe]| #y~^&9Q]S/Aծ>Hn͚2UA/?Qb&:رw�m(GW_gGne+ k7jVwJ%PFq3@zTYX,b L, 47/9^u$-Rp"wjL=8_h`C.\ш@7x%NG�zn3p䋆�J4?ū<WA^6<-Մ�qeeB4" 9@+e lr;"ϧ0͂bu D?D$|coh)s&3J6=kVm`[I&4(!d4M`ێ,[^3} \ _vFEryaEƁځtns'q5VмRӨ0ud-RS/˻$2y2-&L߿ן%ͮ͹ ,i[Ά 7sāu##]َE0@L&$ ,¶-$IF`:8cT]t)iٶcYv!)8IvfXP(p°cy߼n~2~(FAlvjk VRO?CUO:獃${9qakwдbh- ietReBv5 K n]B3 .XMK[>F6;pQUض~UqlIb[VY#J. I<ѽ/i;I `*HQ<SD>'B!iZض9111<t5{=LS(N&55̈́B5u[6v!͙~Mm%N4Ѝ IS`Ȯ\MՕkI%[B0*l& ?;IS˻L$ +ptxNZ/ XDb~e| innFê#R3z˱@fnS>|Ȳ]Q!$q)`f'[]cժD"y"_}KN:pGh^%LM\j|F*".]NMYյ[nϧannb1"0Y8v2OWjD-mYn ##道W-f9ss#|> mP(E>ctt aid2"N86tI |p )?NM}!RM!Slxx;͋ϗس?wʕDXS[[Ϸssk⚲,#pl۶):<hL$֟;ez_M,F4ZE0&qJZ(1Eu0먭Kؖ0hL\@?$I8TK"m;P۲@|Ϋ$ $TGafflv2X4HRWb444> h5j,XgIt%\]T}=G:Ţ^e32r J}t6eZeqxUSʡϥIMO2;z4A/r$n2L\Xt\4T͏$jZ BP($eQEH q:uʗҫkY <q{jhmm-srKH  nآ=}\⋞VO ˲MbI25r t2¸Hd?uto(Wd(JM{dYannt߫t?VյH$a,@ H]}#p,ϒ|+r5W4Lީmt=ϧ6 ɪ9ӌ;б=d6H$B0&(t= `IX]2JH\MRQB% J !$ I=Vyq,eEQPUTiإ Ka4]_ȕ~^B���JIDAT),MeiJKv KrW;ea^Em&InRUՓQX4<T>m����IENDB`����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/highlight.png�������������������������������������������������������������������000444��000765��000024�� 61004�11760240073� 16773� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR����h���y~���bKGD������C���tIME ~�� �IDATxv׶S}#ƲB  7&[M:U#~xI0B3G-V-|l�a#a&, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 0|0_?a��TU�,﷿xۯX;1 _]y�>0y'dp" Àu�l^8FBd ÀaPew#t^)^wSE,$_N""J2J TU,l6Ȳ  au]aEQP.Q.*0l6l6"h4ȚX,¶my.i\u]f3�0mX@(T*h48>>FFZeY&F#`>ò,t]Au, =4 bV vuM{l6QVJm1sDQha>7, a4M4 <}O>EӁ8;4 iB4DQs3۶<ymc<Cexr QUBFxg[S+۶!2$I(b|<X.ks`avPUr? s, ,Kl6Zq1,Hr=³g8JfE8uo%&NNN>,BVãG <{ fyc\"IOyc8\ɟ G@nɓ'x9*)& F$EQ9�@$ql6v8<Gu;WHZ5� h6t:(Z0 Bf??a<# Cs.<<^mZ]{~}w]]Uq�ϘOPeYVhZv, Q!IL&L&ض 0!29VTU8j06M4MZ-4 i EQDz a(*W:a� 2,˂,皦^lDt,UUa۶lNNNtE0 IfZ$Ix<|>Guz, KA.2X%k"MӝkvezF$\|2, @e۶aYۓȲ Cu$I,P*h4l65 C,KyYضmj5T*8Ee@\Vhm�`mF:z{ }<4Q,h4pttvB�DhիWl6jdx<c٠^ömp5{uy5 @VCF\ .}EX,�,4MJ%)*+% `!a>fj#t]/u]0vvZmG@�Çp]qc@ehF^fB��Hx8�FWNNN7!,CP@ZEXzeŦiwMi" CVmOT*V\.>p(0LP,w<#۶QtPT:6 yL&Nmɓ'vm$z<ϑe0h4`07u"s$I"F3 #e!I,Kf3A 8it:F}m(8�q!GGG8Re>Z =~'z=HE %yZڻd64M(C<56DDf4M`Eu^4My.Bw~a?3QG"DZ>"LS\\\m[b\$IH_˗/wrG,"}`avȲ c8_Ƌ/��r/^@Z >!\j4MwD$/B%ض qPVQ*!}ǸBTp8DP^^NeuxSk<a"M{[_�ISߌiu]D^VWWW�S<{LGEt:<O$4E2\.ò,Av 0DC, Ya\8힝,8ϟa> 9??l6C$X,N;!~ `c1$IiVxi"dDXt z:b4}yv-Kk{ׇ @ ɲ, sXVǐeBA4myr ]>*ʽăLJ>6 ,ًr,|if8>F~�jl6Ãl68  z.j|>1EQnX," C1ރʂi nq|| x4Mp)~7ci*<)2 GGGhn͛7 f|&Amaf$a:b:bZa^ /A4!t3/RzuER~{{>^|r 0fO ܞ}G .<x^'*: zƫW�@T@I \.E |>�~J.S+8EQ$ <�ׯ6cq]5sf{~0u'''駟cH$ 5TU(wzBa'$[/TL�^G>0oo8(x<%HYj*Jb)DƚbY!MS�Bl6nqttFSѴaeYx#@).//0ͰlDn"Ii5Qr<ۣ`>}z ID>X,`PP~$ig>S@ !X@;hX, @` ?Jΐ kNNNs<}FCqJxoȘa:b8 L*,L's˲vAw48NnW$G͌Ou]LSy.Z_y0yai E8ŷZ-Q @TlmS\4<x�O>qzz 0DzF\1t vq/*e=Pn'gL)ײu{)ױ8 "$ ?y->UH1^|~jIG7qyyK'aa usSwuR�ݼZldNLS),}iI:,BRix1Dsm8zXik4ͷNVc9r{M4)>/T(uɲL4CL&iLI4`?p7oիW@Fx|PفRm1\ef3\__c:i"^I<(`YJbÇtPEyvzᅰdWE[l'1FPq5EQ$}°S^d-tj|xx,Rn#".hi@eE;R(^GQ$ $`4`{, fUUCA4f3eL&�s�ށs 28#$T*9| ,I}*| ?ÄNd 2@D mN">e<NGx[V+T*^'s]}k&*%(۶QTvh4}a-[Ȳ,FШAً"4M>͛7�nSR=alp;c۶L<FDiHFi>t:`0Օњ� hԻȲ A`2իW^K8wƏP"ƛ7rA kJ%1{E<x -(|CZ[I'e\.X, jȓeyCuiZ&̪WlFR$>;sp(+4= CHSE.${O oiN(Di4fJ @ehZ0 C0 Ũ9 Dr3yc:FJꦧ~q8Ih })&Q̷ xvw\O霒777b&,ˢD5Z-.:1IgbTU1`N777"T(x<1D6ۆ$!D%ԑN3>WyUt]:)(R$Byp8Ņ!kYDH-[,FBX(tHK3id2p s_X@� ㈄+�[B1c1$ \lE"HP(> ap]n{۝elfF}t*<h$޵gcZ&CBZ=HY]ÐP~F, f3~&10;l$I0ŃaSPU=nľOA"τĀK<&`tr'QO{5,#"],"!vJDܛeY;zϴ׊@4!{C!vlyo&V+|4"gpo um!޷Z3苮R)Ftxu ;"5}a> s/hn65:}A P>=oϭ?g 0 sgJ0 a9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a /�毉a��UU]e�8?β쓮koOa X,at]3Zl6X׈q#6bi0 !'bbB�˲ 26X(u}w#YwfA��ׇ7dK2"l'<ϱlZ\..fK0P,QP`6,뺘NL&^ZQՠ*(b@eJra cc܈GD ÀeYjh40 yc:b4a4}Ծ0 s/"* l6QVQ(*$69(h49[4 V=BRA$,ˈjz?^4.1L*zzlۆx4MCXPUrNggg>(4MC$-,0_ 惐WnqzzOmȲ I( Lӄi}c\"{VV)~G4Ma]yf|hk 6;( 0MS>}F\|>X,a0`&* .?/^j!80 1G|m0IJ,j5<z/^gl69%$ijpq#s CE(UUur7 JNO<AۅyXV \=:J6=z$BU4Mt]A$TUcJ%~Q\.}0 /hky/tro6x1~|w4 a:y"y#sq b+TUeY"nv.nnnPVERzZdxeY( $ e$I0 CKY}WWVQ1]P(��ARAPi`]p5¼UUa6&NNNprrN(!nnnpuuI0j I1)V߅0 Ȳ �* cP@\FZEDل(hZh4h6;V2dطY%|wA,a4ikhUU Y%ݶm躾sf$ID֧3y/iX,hvBA#+l6}Q>$8jK4�^HilnjqNGa2x-t^J1 3}$V ,{R0 >\rzF$aMȻ!o0 J%t:$Ijq] aaމa\*PP.|dp(0LP,aMh^-'$I(0Nh;kizN Q!#l $I"t(0mj5QL!;:[.t9MӷBm۟:l1{Z �-Ksc) aa> HP]Hf4M!24MeY8::ÇtP.xH$ 0 @PBOPT9E@#l{=y(q`u^zW^ þ{hOEA\ ~'Oh6Xע}Ѹ~ׯ_0/ AdYX]ׅQ4mCӁiI@UU8qD]j(;y:ƒ jB$cg[@$k6;u>D݆m0 C'�!:$a:ZB4yf'Woi0Mz^Ϟ= <<^P8::J)�/ s/cah4s /Cu! O<AZݮB4ut]�@ۅeY@p]wǘC\^^͛7d2A sX%DD `:"s8^0 ,֢뺨.#(D>*(0PQa s$(t*vx8KqvEXzD8i;a*0n1z-<x+AY>T:m_v~Fy4MaYx$I8;;{[TFks\]]<$I#b { ̗9YŠ@㟝uߦ^c^ e2TE8{bl#k8華zEZ �H]Pp$!f3F#L&�r\EUv @OFe1}>h<t:rjBY!IizPc}k+pb$I9ن<6 ,עHTgk&ʡKs/ {kݧ"qt*<VkWvXONK G4M1yHk(puuׯ_ ]%[(ޮnwR0$MSa)̲] 1V=8ku]yUUE3l6b@TJ$h&.�D85/އ<wr.Ygus|IQ'I1ǰm7 f ۶܆\ׅ"0_ PBX.b,^/Cr<+fHK$I4$Io u`و(D(Ħyo+$I"!k_ hM5nCTV ^O<,B< Na, ;eaZtA JvQy�� �IDAT(vFzj%F\(jBENܿVu]l6Au$o𸨃^e+m4M=3"MD#4]L&1a, {ɲ %IO[VT*oA;bY qP@:}Sx, C1k>u]1Nj oe0+gUEmAk }8(43k;J7nβ,3k0˗xV%̗y/L&xR<Ei;pׯ_}ض ˲Z- @"Exp8Ы( j,>}N^.Y[9Z(TVEmQe@TC,K>K0N11 v0_ Pi:a 2Z-aP C}x4Mquu7o<r,r4CQ$I"*zl Ix}Xua(牰҇l6 ~A6 & >:<ׯV+1{uZ 뺨"GB {%F(0p]\`$, ɲ jR%4J$V+F#эm2* L'p8x<l6{�bt=㱘~K#3c2ע~:X,<GT潸^_7jgZyeb4~~hS0@סg{h$d0Q)� A0OSka4$ H2ET*&eY0 X,D#k &l"TUE$}_LNL$y!2) BF}F#)װ,K${"*à5�b �OE(B[*|M0DlDng5W(l㱘 z C >lm}r2Enj*EQgQR!E D1$4>ccBb7 D"=c li%nnnP*P(0puud|m06T!EQ;= >,Fu_�sзGCPcgZsTȲkEV+ u+1Xk�ߗ^e } ݾ>k5Ϻ=(/bZ GGG(4 ab:b4Rhka biP(m1% CbzX@  ЈZaaa0  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 00  0 s, 0A0 0|0.a��TU�,8}E>1̇a`TUEXau�6 oLjQ $bbR rR BBel6dYfjr u1�}NټO q|ET*4 nZ²,q&F#�5o8>1 cLDӧOSt:8:M`&4M@}Q};s}b`QUr? s, ,Kl6Zq1<p8y�UU'EQ}b}X@a(n<jI C(EQ9<,ː$ X,J$ ,4$:W-mFUUdYvm*3 )o]]O(u{~]w`F1 ,TUZ-t]X($ & & lۆyeC4ua7JDT!V+dY&J^ `na"cX,`& t]2 CA BA4M0 2E,>Ue|Ci0`:bZkѽ7>xu�:4M?O� ˲Hir#ƴI {\kJQu]z=f]X@a۶aY�Ýe9& \Ea8j8}y,˰Z!0뺢UQضZJ"8k}feYjj4 ab8b4!^c۶0rUQiuq uyLӄy<)O$a\b0 I8#ֶmh�b|¨أ۶Ǘe0DB7 \`0X(˨V0M}i M>ۚ$IBEǸ`0��1, 0'pHZ.|u]rnnr�!(rrt:E�zvfB��HgV >|@uL&zJ5AFCBRAXDP(H#A|` l6l6(::ժ�HDyȲ mmy.<qPT뺸$I:LD$ _qyyffqdYlul`6JN5١kRU?q8 7 $rl6C¨!cKLS,Dx9: /B%a2`X`٠Zl¶mH$rh4bi8==) %ӱ,HR n'''x葸nZi<I sks\\\_Ci6<I'%C-I eYx!?~rz ^Q(PVa8|>GE, BiիWpV+t:^#Ij5qm S֤( 9A$X,X,c~|P`8_Ƌ/��r/^@Z >Fh#cs(?<<*TF^RWih$Be?ٙ: 'iUUjjrY-c H~ci0`8u]^3t:h8$ TU8x>cX��<xgϞ#HBSQP(O18FRA^GVC0M-zkRJeb|dYr/h,8ϟa>c<c0<TUmaVh4j"쑦)$Ia5�tPT10y$βLn(/A^6y q( v$ a> R ❧Cjqc<u]u]�Ǐ[P<H4MwBIpMӄzBv㈼ŧ)sxb(H3OX@a(>/� f3<x�fP(P(u]cyj*0Ȟ!I4 q4M)�JEp{jT*x<F"{dEA^#ehCٳg�n :ЩG$chmcHۃ>޼y#BT:z|*@h4u@4qM˲v  O^rzj$%o,.۲Lqrrn X.E |EUM&�r^F?�D\.krq c@4M8H=TJilx 4w~ml5M۹ϱOtv臐$Io _͍dYFZE$V8;;ic>]}oZ~5Q?h4h4)f~|m(qyy#w ˾9UV%MnE؅*m( 0v%�Q!"a} JL>0 e A Cp8ě7o B5M1LÇv`w]躾S@},,kN}a*EA"~=v ?w^C$anXUUHD^]wo2HVX(CrZ]awq}, ?{.)8t:eY$ A`6!cZ-Q]EEړFx `A׃(�ϣ?lMTCa�od4Mdi0 ѣG;ym JTUEm(@ZjtT^ߛ�f EQDb|Q"$ _O?~k=~"$F^P$XV!2MSX4MZ8y�ns1mc2/&<ᘦ)>賭ن0 EnR��9V6Jv]"I&z&C9PC鴼}aPW�C}<2qyy_ YMe4M$rbptOu\__<F#QF=P(saaTv[(eLj&wlVh7i";OT%z ܻq?]&[YV}_k :%I( t]w&i< s!<k Z>`QUeRÇg6\.j~ AZþሃ�$Rn#sQE%s8FGǢhwy!ۆo٧j**EbBSX!!r{N,M4,c1///P_Uf)zX5LlkbGe1նX,qQ8<GXA(Fp{�1?҂ @$�nMHX| U5.I}FN$۞=Ce1d>>Qc]"y-IŢ陦VB ͔$ItyWt'x2?)<x+Q^lD]uZ-ѝ90� 7O"\.@̻Q$,c\}QK/_h4bv_ NG<b,{Z(0NEQpG$ַl`2zQݫ[cJZ&&4MbHn8NQׅm6oʎ fx Jf3kȲ,<n ۶?`qX<\.Ʊ<,DO,x!Zh($- O,c2 cAx,(X%fg f3y.BX~a\.cXq*4"J{i&91TU<Ȱo;?>ѳ6hyeY<Ofi&R kJ%q7o`2 ;?2K䝂 xwrTzYð|x~�fpgAu]qrpp(Ƥ܈齪z~S )D>?b>tZTV:Ř4M!˲(UUA`8 #N#" QO4u]1ƋРB]!q,Bb[ WWW`+f#&V++SƎнkbom$d?:YS?p[Z.quu%bHzvv2=T~ d;2T$ 6NOBq]Di,K<4E'1b!s޷@ëWOc>X` D%®b>#;K^\.E(,Ht?4T*akbް|1v& %%lF9իWFX.o=DC?>ϻ m/f힔~(1t3uwݯ;$P[/y;υUQkbҋ`\|m=6 CLSF#~AмCu1\c_㚘6, [EB�۶E1 s'8F!$ up(aa9'1 0kX@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@a`aaa9a X@aPo 0��,q6^e,Cj0u߃}1|ȠE]ס(56 58F ض ]ױl$ \ׅ} q5MfAE�Zζm($I8FE,$7 EEJ%eEض-Nyc`Za\"a]QjP,9)!�|u"BjpttZb,00>t]G\84 =曁$"* l6QVQ(*$6͖9(h4 9, <yF,p}}_~i0dlkj6x)PVZp}} 00͠*t`&<ׯl1Ma(h8==ӧOt`6dY$IPiB4DQshM`6NOO?mc\b4a6!/}; ۶l6c&(i�YAUUZ-<zBQa:0 xoa>`,BVãG <{ fyc\"IZq{608jh6bi_^GE׃yfpa@eXqP*l`Y4M("^W?1 Cr?~~}4Mx<Fu]x"y/6$ 0ya"ci JC*Dzl��ò,(B�4ŵ ˲{$ X,"cX0X@圜NQ! C $a6jA$cLSxUU1p}}-*(?E5TUi]D^@QʰzC6 <9�B(HH$- hS06, AbF#m 9??ǫWlQDi.y( "UU$ <C!B\fm#2, L&A�Yw*4b\iT*4MȲ,*0뺢2FăJ+zMTƒn�iA kb/ EQ`YJj2S|>%Qa2?eYFReY+MS ۶a&{Q$ .//oT<AuV+F#xMDPUU|d2`0I{w6<۶)L%f1>\K,u] p{^V" 9Q�2TUE\FÇEp8 \ׅjx?ci q9dY8>> lF(XV( (0MS$I$IH_˗/w1FUUhJ")My!fV,j|> Ņ3k9Y!N[]a&t]�$I4M(JNH^\\qYihz"_2Dk;8'_�� �IDATu8z ^a&2,Bh0 CxG$c�@Qضr^q�܊($Ia0M F Of00_, 'AFBj*:]l6C"O�+˰m[R%uzjJ,(4 FV Na>#sa˲nQrF9\,~$=!!&LSyNj 0Dp]a>', gDT |�~HMӄACyj,t^c\툧=z$d%IyB(g�^~/_D\CKIp)E{:{ޜ !q/I;iϜ-IZ_6!�!g $.mYLGH{t?{] l6-:,˒CCDd2�~'<�puu8y @Eq#~dPsE rOSndl611LUUETb�-F"Ezc$ ՊR)�pilu nV)-!"ekj 7770MWiWOr_g0<mٌ?VEBuEQ6 ¡6$,팬 %1Jł1rQ!&S[BDCl/¢$I6vBEJsTGuj!c8)? 8$uqöm}~|B\o^: ·3TG;h0 X,>;Ð0 (c5y$, zX,<z ǶՐneBPqD$@_V�a:~[AD UHT*1 QЦk4 |&]8U۶ ppp ضz qp~~, ׸X׼m{ÍSzzaWU\B￝~Z vN<N~}i\~7B7Z)Zj!OEq !fY~*טێz=X F>WS\: pX�?R&Z\3BpcQ(BP(,J6E|>bi}/q%" NDQt ۶tBQEbXZn,ApR`O0Ms#[*-߿)gvюu]8bnHJ׍�Be?=&+c4fɅrbZ!cŏ\Qap` t[t:L&o\A�D@c8j\.#I>=oyضt(6dYr9Ng rD@P׸p8p8T_VmTU ڑ; CLS}t:e(z-Ilb.Ʉ]swwwfb}$" NaUU8:t]GEh6u|^t 믿a>s^Ʀ�l4;躎dEQqyy`�q8l6i1yt ~.@$qvY86ױPM |g (- ^WWWx=!1[5;^ag(yv�fj\.\.q( IӁ80MmQ!c<]>�>TU,`Q(\.1L.,b1Nd5t:ʩb�6ɢJ޽{pl1i.|눀;C85 P*`&M(譪* `d{@;V+}d2Ah. �!ST8Jv6a<s}cߠ$aKz{ZEb6>'ضl&= " :c>#-89a6LD&j|>8L&qϊЎ==&:l*8bv]I@(6cY"ϙj9Vl8WWW,ViZ)xLYIP[( 5n\K|Yg5Yg?Y ?�n]ss\.u�^777ܝX<{�>݃g}ݗcO!GGG}:rX^A "_bbB:V\W?AJPKM?Aa'/_" #"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  ٿ{�coo@Qd2d2m\�@$5$?+aooL( g{4_=$A<G&qs6{zf'i#@ 4 \\ qr0 \.E78=mQ\#6\.|>4:Eb|>GH4My(0 > jB,4"Auy�@+o;>" yeE ^H@h\.1Ly& zgޭ뺎BRb|>L&l6YV}b:}ޱ3 rZ Fra8b2Ç0MFZ lm8lT&A.C\FZEP��LS KK" {{{r(T*(Jr| -�>EjbrjކuT*Mii(rbmW/0 TUnX,bZAUUV+k(jvz> ɰBd* Q,Yinb}_Mxh4pppr M�ܻ�0h i@D\ްȒfX,fCUg&jj` |>G.c!NOOa&0r* /c>}m\+_�4y9>>` . l6͸�VcR m$ DQx0 1U桪* @^zgϞ!ömA�u}z /^@>8l5)zGTBNOOfa6|G&+Q>y+�gP,y.a>#}}Rnr[Pgggj(p:8eYXVm~k=O? y 0 իWx5t]Gۅyi(8>>ƿo|s}\s@ɣ**  ?6$뺘L&T*T*F)J0 w/LprrUU5[\r-+۶Q,y+rfuJvgggx%�0 Cu]J%uC4srʺT*/^7o�ܻ;޿n/AZȿ'(hZׯQ.lb@R v-A6AbD鰕Jx޼yZ1L0$ ?#o(sZnHi4>lTUbJ}RAVap]Q}xM0LX,!]UU4QVu�^4M a1×#C C;n4Qjprr0X,ص3a&f12 >F0<m^}?+]ס:/bqsvQE} MP,qppgϞϞ=(,777�rV ibX<Z""^s4MC&jB<'z4l6Q! 1"W*iY.l6p8fz<ƽt}4MfVvxz UUX,�܋(O6E&1[3D@8hP r(<^~rqb49&Bq #c躎r )- !VhV*>zyt]-* B;43�!$vir<(F#XŁiJz< Rl^覡 ? $=0͢P(|/FNOO1ϑf8%ǵ{ :(Zx.mhD@8;MVǼ FFX׼rB7AEmc:b\X,^s0eG%I 0L`Y,`0�EZJMآFmgYjNOOqpp|>(x^*PV*f:nnny{AUU.L3{\FD f~KlBJpTICclZh6fqrrϟ5i5Lof\qt]d2q,CF ! h9q~~0 t8F)5goSelZf3 }DQ1ʎk)2qyyQ9!KZx"$ ^<h4BǘXלtqq~ZE'c j5hl6QyTUeWTRje\Ex<�TUN)@~h.dP%=cr5yn\.87% 2 uX\_rrrHwTiV,˂X,/!ĉ eWWWGj5x^~e+h4{JZ*$ ǁeYu+X,T*AQ8Z�SΗ"D2(hNn8y'n&o޼ؽS=-ʺ#INUY.0 ab0p\.\.hG�yR4 ^J "Xt $ JX' 0D6EZe(b4uWg O'NEL&?̋9 @Tⅆ\Qp/_DVCm3g<A�]a c>u]v=fyeRBM4l锭$Ih4xWO1[Z[_mXVr]wwwL&4 ϟ?HR *jJ@8E~V$v-9Kqvv咿*v" Ð]L?3h4 P*P(P(pzzׯ_u]�@zTEP A|U0 ^EPP,8Ο6(ؕΪJp}}ͮ3roh|]рyH;EQj$mu]qӍDVrd$!!+ 㡴kq~m��[/+2 CcMY;_[4 ^/^1NNN!8p|Z}t<#@ >f<}`Yb-jfq*a6uݏD2ՕLaȖu&)gэF#d2f3N&V8EeD@ `6:Ky?rlC87/}G�۶/OǰJ/TB[VÐww, ?�QlN.0Pyq4Z~$(z)+BjŅwww8>>ވ񜝝j<.&u[K5{- T!!1<}ng|>qau9V@i۬V+˻fqi qyyɅsraRwtPV|;+RCGpA.=Ix )S!/P\mI,}|>m۸A\8 Àah,,vg c(((˼]Vf^u8;;hQ$8F xw т\.93̲,L&ީj8=( 4MczE焤-} jm,\^^aXp9}q!!w塄za p`00 9k[6WS|3;K" O]Q,qxxVj �p]bB|:~R@,B۷o1EmBt:+.X~�'eIE]8 u4 nl*rZ]lIaQ'''P;/X.0 #wWLzEQXa�^;]HVA݇K:pxxiNe{N0GGGBPxtF}#ġ&V ^BF&h4t]J²OA (b'>v7�=KE `8T*Hۇrs[(ZiѥɵX,8ϟ?ߘ=ځ(41 P"DQ4+I8?56\c=SBȚ&[(m|ɄjÒu&_BC2*7!4 J�r<I>Hw}4 R3rWf3>?R~ }A 'Q/ogx<FEl1r- j5[y�.;آ kډ@ $x<8 -ꔵEiiE3K F-O(,$uhٳg0MfvR\x˲/e c]?uԥia]<ϩX,ra`>GDPq=zjB^uw.d<?Fvx-,u-#4O�I"p_=qyyɮj8ygO?yGQ`M2G.t{rq=^!.&7+8<<fTAOjB Z 8q?3Ax " Jpi0MI `2ph( :j<z)eY6VԦlX,t 5 9tؚL&<Ә-*)lF`$7Y?aqEh6ܴ1ZJN۳ɖV<B,F#nI^!i,ѹ!۷,c7vH䖤-�Xf8})&'N�T\.>Nd2V' G]`F^ʠL&p<>i,mjrPt6HBp8|><\v]�l6QV7: o|V<<1+pw,v4 eaX<861 ;�I dݥLti,)jp(G#ġ|Rinc9W;Sk \@"g1& [\~Qz))1a Vc/dqʍtX. b:Qq߄Ijgr �u.Nc0 DQ؀,0^]嘬tz3}K]F#L&c9Dx4{�>|* D ޕRq:4J2ܻҟ%hE&";:,]v33( LH# 8 ҁ{{ҼP9(T?B P|#yF3͸9[(zdQ3(US!?HlDB"@"|JJ۪ovsO^?cN礏 c6n��IDATҼ?5~I-ޱCM+}o_KϠ A;塞W]@ҟ}g~Bܙ"2~s}Ŷvױ={sO!" 서 #  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N ;!"  " N?!}iv����IENDB`����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/icon.bmp������������������������������������������������������������������������000444��000765��000024�� 1102�11760240072� 15716� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BMB������B���(��� ��� ������������m ��m ������������������������������������������������������������������������������������������������""""���������"!"��������!!�������""������!""""!������""""""""!�����""""""""""����""""!""""����""""!""""����""""""""""����""""""""""����""""""����""""""�����""""!������""""""""!������""""""""�������""""""!��������""""""���������""""�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/LargeFont.bmp�������������������������������������������������������������������000444��000765��000024�� 660066�11760240072� 16733� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BM6`�����6���(����������������`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������@@@@@@���@@@@@@���������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������������������������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������������������������������@@@@@@���������@@@@@@���������������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������������������������������@@@@@@���������������������������@@@@@@���������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������������������������@@@@@@���������������������������@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������������������@@@@@@���������@@@@@@���������������@@@@@@���@@@@@@���������������������������������@@@@@@���@@@@@@���������@@@@@@������������@@@@@@������������������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���@@@@@@������������@@@@@@���@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@������������������������������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������������@@@@@@���������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������@@@@@@���@@@@@@���������������@@@@@@���������@@@@@@���������������@@@@@@���������@@@@@@���������������������������������������������������@@@@@@���������@@@@@@���������������������������������������������������������������@@@@@@���������������������������������������������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���������������@@@@@@���������������������@@@@@@���@@@@@@���������@@@@@@���������������@@@@@@���������������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������������@@@@@@���@@@@@@���������@@@@@@���������������@@@@@@���������������@@@@@@���������������������������������������@@@@@@���@@@@@@���������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���@@@@@@���������������@@@@@@���������������������������@@@@@@@@@@@@���������@@@@@@���������������@@@@@@���@@@@@@���������@@@@@@���������������������������@@@@@@������������������������@@@@@@���������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���������@@@@@@���������@@@@@@���������������������@@@@@@���������@@@@@@���������������������������������������@@@@@@���������������@@@@@@���������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���������������������������@@@@@@���@@@@@@���������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@���������������������@@@@@@���������������������������@@@���@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@������@@@@@@������@@@@@@������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@@@@������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������������@@@@@@���������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������@@@@@@���������������@@@@@@���@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������������������@@@@@@���������������������������@@@@@@���������������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���@@@@@@������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@���������������@@@@@@������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@������������������@@@@@@������������@@@@@@���������@@@@@@���������������@@@@@@���������������@@@@@@������������@@@@@@���������������@@@@@@���������������@@@@@@���������������������������@@@@@@���������������@@@@@@���������������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���@@@@@@���������@@@@@@���������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������@@@@@@���������������@@@@@@������������@@@@@@���������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������@@@@@@���������@@@@@@���������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������@@@������������������������������@@@@@@���@@@@@@������������������@@@@@@���������������������������@@@@@@@@@@@@������@@@@@@������������������������������������������@@@@@@���������������@@@@@@���������������������������������������������������������������������������������������������@@@@@@���������������@@@@@@���������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@������������������������������@@@@@@���������@@@@@@���@@@@@@���������@@@���@@@@@@���������������������������@@@������������������������@@@@@@������������@@@@@@���������@@@������������@@@���������������������������������������@@@@@@���������@@@@@@������������������@@@@@@���������@@@������������@@@@@@���������������@@@@@@������������������������������@@@@@@���������������@@@���@@@���@@@@@@���@@@@@@���������@@@@@@���������������@@@���������@@@���������������������������������������������@@@���������@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@���������������������������@@@���������@@@������������������@@@@@@���������������������������������@@@���@@@@@@������@@@@@@������������������@@@@@@������������������������@@@@@@���������@@@@@@���������������������������������������@@@@@@���@@@@@@���������������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���@@@@@@@@@@@@���������@@@���������@@@���������������������@@@@@@������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@������������������������������������������@@@@@@������������������������������������������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������@@@@@@���������@@@@@@���������������@@@@@@���@@@���@@@@@@���@@@@@@���������@@@@@@@@@@@@���������������������������������������������������������������@@@���������@@@@@@���@@@���@@@@@@���@@@���������@@@@@@������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@������������������@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������������������������������������@@@@@@������������������������������������������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@@@@���@@@@@@������������@@@@@@���������������@@@@@@������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@������������@@@@@@������������������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������������������@@@@@@���������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@���������@@@@@@���������������������@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@���@@@���������������������������������������������������������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@������������������������������������������������@@@@@@������������������������������������������������������������������������������@@@@@@���������������������@@@@@@������������������������@@@���������������������������������������@@@@@@���@@@@@@���������@@@@@@���������������@@@@@@@@@@@@���������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������������@@@@@@������������������������@@@@@@���������������������������@@@@@@���������@@@@@@���������@@@@@@������������@@@@@@���@@@@@@������������@@@@@@���������������@@@@@@���@@@������������������������������������������������������������������������������@@@@@@���������������@@@���@@@@@@���������������@@@���@@@@@@���@@@@@@���������������������������������@@@@@@������������������@@@@@@���@@@@@@���@@@������������������������������������������������������������@@@@@@������������������@@@@@@������������������������������������������������@@@@@@���@@@������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@���������������������������������@@@@@@���������������������������@@@������������������������������������������@@@������������������������������������������������������������@@@@@@������������������������@@@������������������������������������������������������������������������������������@@@���������������@@@������������������������@@@@@@���������@@@@@@������������������������@@@@@@���������������������������@@@@@@������������@@@@@@���������@@@���������������@@@@@@���@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���@@@@@@������������������������������������������������@@@@@@���������������������������������������������������@@@@@@������������������@@@���@@@@@@���@@@@@@������������������������������������������������������������������������������������������������@@@@@@���@@@@@@������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���@@@@@@���������@@@@@@���@@@���@@@���������@@@@@@���@@@���������@@@@@@���������������������������������������������������������������������������@@@@@@���������@@@@@@���������@@@���@@@@@@������@@@���@@@@@@������@@@���@@@@@@���������@@@���@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������@@@���������������������������������������������������������������������������������������@@@@@@���������@@@���@@@���������������������������������������������������������������������������@@@@@@������������������������������������������������������������������@@@���������@@@���������@@@���������@@@���������@@@���������@@@������@@@@@@���@@@@@@���������@@@@@@���@@@���������@@@���������@@@������@@@���������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������@@@���������������@@@������@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������@@@@@@���������������������@@@@@@���������������@@@@@@���������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������@@@@@@���������������������������������������������������������������@@@@@@������������������������������������������������������������@@@@@@���������������������������@@@@@@���������@@@���������������������������������@@@���������������������@@@@@@���������������@@@@@@���������������@@@���������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������������@@@���������������������������������������������������������������������������������������������������@@@@@@������������������������������������������@@@@@@������������������������@@@���������������������������@@@@@@���������@@@������������������������@@@������������@@@���������������������������@@@@@@������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@@@@@@@������������������������������������������������������@@@@@@���������������������������������������@@@@@@���������������@@@@@@������������������������������������������������������������������������������������������������������@@@���������������@@@������������@@@@@@���������@@@������������������@@@@@@������������������������������������������@@@������������������������������������������������������������������������������@@@������������������������������������������������������������������������������������@@@���@@@���������������@@@������@@@@@@������������������������������������������������������������������������������������@@@@@@������������������������@@@@@@���@@@@@@���������������@@@@@@���������������������������������������@@@@@@������������������������@@@@@@���������������������������������������������������������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������@@@@@@������@@@@@@���������������������������������������������@@@@@@���������������������������������@@@@@@���������������@@@@@@������������������������������������������������������@@@������������������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������@@@���������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������@@@@@@������������@@@������������������������������������������������������������������������@@@���������������������@@@@@@������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@@@@������������������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@������@@@������������������������������������������������@@@���@@@@@@���������@@@���@@@@@@���������@@@���@@@@@@���������@@@���@@@@@@������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������@@@@@@���������������@@@������������������@@@@@@���������@@@���������������@@@���������������@@@���������������@@@������������@@@���������������@@@������������@@@���@@@@@@���������@@@@@@���������������������������������������������@@@���������������������������@@@���������������������������@@@������������������������@@@������������������������@@@@@@���������������������������@@@@@@���@@@@@@@@@@@@���@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@������������������@@@���������������������������������������������@@@@@@���������������������@@@@@@���������@@@@@@������������@@@@@@���������@@@���������������������������������@@@@@@������@@@@@@���������@@@���������������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@������������������������������������@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@������������������������������������������������������������������@@@������������������������@@@���@@@@@@������������������������������������������������������������������������������������������@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@������������������������������������������������������@@@@@@���������������������������������������@@@@@@���@@@@@@���������������������������������������������������������������������@@@@@@���������������������@@@@@@������������@@@���������@@@@@@���������������@@@���������@@@@@@���������@@@@@@������������������@@@@@@���������@@@���������@@@���������������������������������������������������������������@@@@@@���������������������������������@@@@@@���������@@@@@@���������������������������������������������@@@@@@���@@@@@@������������@@@@@@���������������������������������������������@@@@@@���@@@@@@@@@@@@������������������@@@���������@@@@@@���������������������������������������@@@@@@������������������������@@@@@@���������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������@@@@@@���@@@@@@���������������������������@@@@@@���������������@@@@@@������������������������������������������������������@@@������������������@@@���@@@@@@���@@@@@@���������������������������������@@@@@@������������������������������������������������������@@@������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������@@@@@@������������������������@@@���������������������������������������������������������������������@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@������@@@@@@���������@@@@@@���@@@@@@���������@@@@@@������������������������@@@@@@������������������@@@@@@���������������������@@@@@@���������������������@@@@@@������������������@@@@@@���������������������@@@@@@������������������������@@@������������������������������������������@@@���@@@���@@@���@@@������@@@@@@������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������@@@@@@������@@@������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@@@@���������@@@���@@@������������������������������������������������������������������������������������������@@@������������@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@������������@@@@@@���������������������@@@@@@���������@@@@@@������@@@@@@���@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@���������������������������@@@@@@���������@@@������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������������������������������@@@@@@������������������������������@@@@@@���������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������@@@���������@@@���������������������@@@@@@������������������@@@@@@������������������������@@@���������@@@���������������@@@@@@������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������������������@@@@@@@@@���������������������������@@@@@@���������@@@@@@������������@@@@@@������������@@@@@@���@@@@@@������������@@@@@@���@@@@@@���@@@@@@���������@@@@@@������������������������������������������������������������������������������������������������@@@@@@������������������������������������@@@������@@@@@@���@@@@@@������������������������������������������������������@@@���@@@@@@������@@@@@@������@@@@@@���������������������������������������������������������������@@@@@@���@@@@@@���������������@@@���������@@@@@@���������������������������������������@@@@@@���������������������������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������@@@@@@���������������������������������������������������@@@@@@������������������������������������������������������@@@@@@���������������������@@@@@@���������������@@@@@@���@@@@@@������������@@@@@@���������������@@@@@@������������������������������������������@@@@@@������������������������@@@@@@������������������������������������@@@@@@���������@@@@@@������@@@@@@���������������������@@@@@@���������������@@@@@@���@@@@@@���@@@@@@���@@@@@@���������������@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���@@@@@@������������@@@@@@���@@@@@@���������@@@@@@���������@@@@@@���������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������@@@@@@������������������������@@@@@@������������@@@���������������������������������������������������@@@@@@���������������������������������������������������������@@@@@@������������������������@@@���������@@@@@@���@@@������������������������������������������������������@@@@@@���������������������������������������������������������@@@@@@���������������@@@@@@������������������@@@@@@������������������������������@@@���������������@@@@@@���������������������@@@@@@���������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������@@@������������������������������������@@@���@@@@@@���@@@���������@@@@@@���@@@@@@@@@���@@@@@@���@@@@@@���@@@@@@������������@@@@@@���������������������������������@@@@@@���������@@@@@@���������������������@@@@@@���@@@@@@���@@@@@@���������@@@@@@���@@@@@@������������������������@@@@@@���������������������������@@@@@@���������������@@@������������@@@@@@���������@@@@@@���@@@@@@���@@@@@@���@@@@@@���@@@@@@������@@@@@@������������������@@@@@@���������������@@@@@@���������������@@@@@@���������������������@@@@@@@@@���������@@@@@@������������@@@@@@������������������������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���@@@@@@���@@@@@@���������@@@@@@���������@@@���������@@@������@@@@@@���������@@@@@@���������@@@@@@���������������@@@������������������@@@���������������@@@���������������������@@@@@@���������������@@@@@@���������@@@������������������@@@@@@���������������������@@@���������������@@@@@@���@@@@@@���������������������@@@@@@���������������@@@���������������������@@@@@@���������������@@@@@@������������@@@@@@���������������������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������������������@@@@@@���������������������������������@@@@@@���������������������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������������������������������������������������������������������������������@@@@@@���������������������������������������������@@@@@@���������������@@@@@@���������������������������������@@@@@@������������������������@@@@@@���������@@@@@@���������������������������������������������������������������@@@@@@���������������@@@���������@@@@@@������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������@@@@@@������@@@@@@���������������@@@@@@���������@@@@@@������������������������������������������������������@@@@@@������������������@@@@@@���������������������������@@@@@@���������@@@@@@���������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���������@@@������������������@@@@@@���������@@@@@@���������������������@@@���������@@@���������������@@@@@@������������������������@@@@@@���������@@@@@@���������������������@@@@@@���������������������������������@@@@@@���������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���������@@@���@@@���������@@@@@@���������������������������@@@@@@���������������������������������@@@@@@���@@@������������@@@@@@���������������������@@@���@@@���@@@������������������@@@@@@���������@@@@@@@@@@@@���������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������������@@@���������������@@@@@@������������������������������@@@���������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������@@@������������������������������������������������������������������������������������������@@@���������������������������������������������������������������@@@@@@���������������������������������������������������������@@@������������������������������������@@@@@@������������������������������������������@@@@@@���������@@@���������������������������������@@@������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@������������������������������������������������������������������������������������������������������������@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������@@@@@@������������@@@@@@���������������������@@@@@@���������@@@@@@������������������������������������������@@@@@@���@@@@@@������������@@@@@@���@@@@@@������������������@@@@@@���������������@@@@@@���������@@@@@@���������������������������������������������������@@@@@@���@@@@@@���������@@@@@@���������������������������@@@@@@������������������������������@@@@@@���������������������@@@������������@@@@@@������������������������������������������������������������@@@���������������������������������������������������������������������������������������������������������������@@@���������������������@@@@@@���������@@@@@@���������@@@���������������������������@@@������������������������@@@@@@������������������������������@@@@@@���������������������������������������@@@@@@������@@@@@@���������������������������@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���������������@@@@@@���������������������@@@@@@���������@@@@@@���������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������@@@@@@������@@@@@@���������������������������������@@@@@@���������������@@@@@@������@@@@@@���������@@@@@@���������������@@@������@@@@@@������������@@@@@@������������������������@@@@@@���������������������@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������������������������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������������������@@@@@@���������������������@@@���������������@@@@@@���������������������@@@@@@���������������������������@@@@@@���������������@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���������������@@@@@@���������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���������������@@@@@@������@@@@@@���������@@@@@@���������������@@@@@@���������������������������������@@@@@@���������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@������������������������������@@@@@@���������������������@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@������������������������������������������������������������������������������������������������@@@@@@���������������������������������@@@@@@���������������@@@@@@���������������@@@@@@���������@@@@@@���������������������@@@@@@���������������@@@@@@������������@@@@@@���������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���@@@@@@���������������@@@@@@���@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������@@@@@@������������������@@@@@@���������������������������������������������@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������@@@@@@���������������������@@@@@@������������������������@@@@@@���������������������@@@@@@���������������������������������@@@@@@���������@@@@@@���������������������@@@@@@���������������@@@@@@���������������@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@���������������������@@@@@@������@@@@@@���������������@@@@@@���@@@@@@������������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@���������������������������������@@@@@@���@@@@@@���������@@@@@@���@@@@@@���������������������@@@@@@���������������@@@@@@���@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@������������@@@@@@���@@@@@@������������@@@@@@���@@@@@@���������@@@@@@���������@@@@@@���������@@@@@@���������������@@@@@@������������������������������������@@@@@@���������������������������������@@@@@@������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������@@@@@@���������������������������������������������������������������@@@@@@���������������������������������@@@@@@������������������������������������������@@@@@@���������@@@@@@���������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���������������@@@@@@���������������������������������@@@@@@���@@@@@@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������@@@@@@���@@@@@@������������@@@@@@���������@@@@@@���������������������@@@@@@������������������������������������������������������������������������������������������������������������������������������������������������������������@@@@@@���������@@@@@@������������@@@@@@���������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@������������������@@@@@@������������������������������������������������������������������@@@@@@���������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������@@@@@@���������������������������������������������������������@@@@@@���������������������������������@@@@@@���������������������������@@@@@@���������������������������������@@@@@@���������������������������������������@@@@@@������������������@@@@@@���������������������������������@@@@@@���������������������@@@@@@���������@@@@@@���@@@@@@���������@@@@@@���������������������@@@@@@���������������������������������@@@@@@������������@@@@@@���������������������@@@@@@���������������������������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������@@@@@@������@@@@@@���������������������������������������������@@@@@@���������������������@@@@@@������������@@@@@@������@@@@@@���������������@@@@@@���������������������@@@@@@���������@@@@@@������������@@@@@@���������������������������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@���������������������������������������������������������������������������@@@@@@���������@@@@@@���������������������������������������������@@@@@@���������������������@@@@@@���������������@@@@@@������@@@@@@���������������������������@@@@@@���������������������@@@@@@������������������������������@@@@@@���������������������������@@@@@@������������������������������������@@@@@@���������������������@@@@@@������������������@@@@@@������@@@@@@���@@@@@@���������@@@@@@���������������������@@@@@@���������������������������������������������������������������������������������������������������������������������������������@@@@@@���������������������������������������@@@@@@���������������������@@@@@@���������������@@@@@@���������@@@@@@���������������@@@@@@���������������������������������������������@@@@@@������������������@@@@@@���������������������@@@@@@���������@@@@@@@@@@@@���@@@@@@���������������@@@@@@���������@@@@@@���������@@@@@@������������������������������������������@@@@@@���������������������������@@@@@@���������������������@@@@@@���������@@@@@@���@@@@@@���������������@@@@@@������������������������������������������������������������������������������������������������������@@@@@@������������������������������������������@@@@@@���������������������@@@@@@���������������������@@@@@@������@@@@@@���������������������������@@@@@@���������������@@@@@@������������������������@@@@@@���������@@@@@@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/logo.png������������������������������������������������������������������������000444��000765��000024�� 355461�11760240073� 16021� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��`���~��� J:E���bKGD������ pHYs����(J���tIME�|D�� �IDATxY$W&vι{2;Yb-S]Kitf A#EoS&)zYbU$s%3#3c_l9zdO@ddٵ{}߽ft<CĵՕU 5bH ",� ®qj6}"�:SLiފU1GD��H)$EJc޷Y""�ϡ1J(3�ȾaWG B ۯCc9;#̟(Zٞ]q9::&.Qd"p# \+E12{FBш*TAXMYt׳z''b擀JRcUn[U(R^ɨ:aBB4~�lgQt^&�.6HzڜP#bX!D1ÓWsQ!J910"a 2_uS*Q2)l?J8uKjFIl7EXK4 x69]8 � 2YͶV΅FD@tztt ,�@lBH,FDb,YG^fƗ.:�IFeFeCʺ(GN! 2]hu3;>:]pJ2E(R=98E� cLL!*E1z.'.�"2stܔ>( �$90�Q!ꕭq�@@duQ>CYYrB2*0G ]#� "%BN^@d�)""}pn !KD8g"Fe"҄*"P@„Pb`ߺ 㠀, 4!R&3]�]v몹  sV];�� ;kҙ)A@v,|vh ҾVJ+Ti@'>4J+P3sDD"M\kHD;f6QJ)љm+?,Wi�1 H$/")vJ# (E ݢ(H)DtSW7M9J\ eH"\4"vM]6lt>IY{̍ǣrpDf^8Hdp64N'up2C !b26-5B%]v=" $ *T!3H#1 5I=Y@[ QU],")Gڐ0J͵�k��HP3CtF.O�) *v2JtX' )�<I< uFzw'�(tr\\[]gk�0O*z '$ CtXr2i8"d A E+pZ?9M�) ֦� Ϫ琪X] >xP Z1zvE̺&Wx::=N@Zb�mNg٨g^XNc 90G$ M�(",٬Ɵ6U4`TXL޳UcLzkMg{�WW$,PGJBg(̱i$QD$Tq[.x "Y5q9 6s5*C #D"bz5 9)a"�̂ m)1c&&d8MZ۬ pxZ; �JɕW_ڒh&~IUQJSo=͂6-\"SB]�aBn9٧z P[09}E@)T� :f"T� )?/s2J)DkV"rr|,'EI|%sֆV p<}yEE$ W 3Wte6+M&SfiǏiOuJJh2�񳡫0�ҔJ4ߤ(fxt�DHB*;VgɰPvqݹ} D6 GaH#$tڕѱɵՙѶ0]>is c�9CG=>-&\l8">rV5iN#~%(K�!4Ϊi\OGVobڴwJDax(\JV8IJƇ*� 3 !*CƐd*d֔G kUS"lJR+{R9rr{[hR ԚP%9߄g_ ȕcJPF޳g: "c6:?Sh`9PkF&e]βH`d?sCyr3MG YsΚ�.6>6Vex4Qq9GPU"QjńY3MgckfJN~q9-aj݄ۀʎ5)Ԇ�E .zA'5pʐ B&WU]s>ͪ㐬"eP$,Bje=׈4*C6P3 BWMit6ҋCGQ"e(*y Ej<MQA) הRHEkX|[I,JEj#� J XVگ,2`U "MJWi6x|R63>LB#Qp7a )A"fi$l6t>2y] .<0ʒ5iJ#:pkoɔҔ ֺԆ̱�WbJmFҡ6 RжC^%R *EڪA9OKWy],#i�MO(Ϻjf"0>|�Sx� B{Mlf>E\/9@rZI骐M)ԹBE<OplZx8d29�jVF餙faH`. �)JߛC�Dmn >HdUҧIcr^/TUU7D�PՎc M"Ǻǣ.geY&lRUZY96\Y IhС �XV&pO /%7^-%_?"$Mm)ޡJnB]O\_QM�W!90iLX"�RM*A2��P9#jꢋz&!%_ GC]9 K6M*ҍ2DEB~KDDB"<ņh�Qb>aJ1TQsdI1EȁRڻyj>Bt�j"]0I4.G PRٞ~xKB r:o.Y M�-ͤ �|üjՄPեK@ZI! x}"3USjioiTLw G"! .:w\Ҙ)!A*ÿ\ J-̐f)m5m!S>"aS7C5qFB]O" :=-&]tꛘ dF!Wx +!HThn QiBb m4�\O2܃!*t2c/ 0˗64+x9,`ϗBոʻSlAϔji<^ Ƕ!S꺎KE �,zy^o.nJλS�m�0 ª)2>ĔyDXKH0z!"LTMqz>Ƙ7g'"Mb)"t2+#_qX40"*T,FD,D5U*C?"@3G!r3, $"F́y+' W$Œ!~?"5*DlL Ƅ# Dū]x$p'R{.13s`O"M0L �c90@6�WC , 9ڻ5hFDEVeۑ P:C<(J |t~i$U)\+2~F6ưR(&|9>HL"kXLU)Be2*0ᘐrQ_]=B@i"̋]i[t !1?BT0# *4FܨL�\yJ!KD^;Da$DXs'EDB// $RFJD@pPgJV;"LYP- /~ m%Tb`1p*H!1r~j&[Tgֺj* ʒޡnP)E E�9fp^y�"!j{/r2(hp#��_ikeo*"2ϤsN'eH[RZvK@^HXZE]E@"jJ}Z jھt& H@$ii9 �Cml@)[`S0LE\6Z4ER ] yvY' FEUVqF(0$h{"%]K!"`,Q n'̱!裈#&~]OR# i1D,12#Qd1/]"H)C1і-mmQVIP*'VD&E:/(6)2>6.J_L& 5*⎶j[&c7�4'&ԩD iRA࣢"S&JcD"H)Jf(hI4Nm&CE@D^9rη$@B5Zm"3c# .n<ʨJERdbk`(6~nm i CJmVcfߴyֱZ)JVTYNd�ɍU'#Ҥw>-닡Y$%+Ҥ )E:WyIZDV�`s3X@OF4B4B@2se(jר&J�EZ+C==R4َ&B|o{+2S(TC`Ivn\|U@P M0~^*ҔB /a ✼I_"E*V9 2&zb; 8 oL]ɘTRB~q/&&X[͗^2J%檻QMS>ǃW$KKʻ7MSΪDV6#R"ڒ:ќȑC:& &jjikG`[mQHhwTW 4I^JZ,*H>L CiZ-zMAotlR3Gr~q)kK�T%,Y@P8f&PEH�D""mk 0W( Y@SD/ߴ~9Y4V+X[)Pb@H�Qԥ`9%Db&`/xf >� +Vd@@6#%B:iP+K 1m=Q}L�x"{kTB0m.$J3I<uҴfZ 92' /*HjEʠ& ALID�H XUp"bDLM HVID8Zg}suf7d@� 1�tƫW׻;''??8?*C#jVl9vMO5R]{^XU&Y9vHFYa tzZWvsyop Qn �V�eo;냝i3:{<�+}ɰYl](==}<]Fb`ٕ{]lTLGtVne+�0kƧg'_'UpI))C<q]Moc -3_/k񳻣j %1)M.Hq)A&<-Lw-I ; ,�@@oa|\5 �3ݵ|JdXWSWO}hꍬzG<o"BޕuͭBwP�"cU Mҹ~6jfM"�yϬt`vTc i\\yscbB9ޅIo~qW7Ò:-Brܜ>MO[\v/;?c`W�eA594o*рP25@Ps!D"B{ )u%H) v[*luLI!rI^hFHQlZk,cL)aT,rłT-jyQ ꩣ@daT e!^$ \(sX26dw-Ubt#9Jo* qDz+C_u' ѳAHk܂ ll4/ .j%zf.J18(EN&CZ�!qgI@$Z؀�pi^1Y׿ |{1'rOAd+.O\ I1]}xak�Aih9 I( (T)ojD""/V@n|KfXq Of٨E�76ު>}t`xk dջ<mŝ>WQ: lݛuP>}dѬ<otep19a]MǴ콺zsrhGMg)AjK �ƭwW0ÓrÚ}v^_Aob1wG]\;kؾڵNMϪ٨vuTڼ{{o2O5ЛWWil6SXxtRdX&CLD_X˦M= Àv2 sHt"IpjIJ$EFOgE&B_Gd\�4+ֵ`3??QhVov_Yv 'j|R|"j-[SC$H$P A$2�@1:_}fOgij{ve{~~kFW;gUQ[ܸ[S?V @JT޼ZMytlO�(γn{U#mZtG= tV[Y+v<4\M,8ED[y7f4bzlBɑF"G`NbXQZ.: VȂ !iy%3sFly�-JS s-&9i^JKڒ1FfGP@-ʽy^E! k"2ʼȼH͐.`6pKS@(@Nlh[@aLLLדWJib`3$t:P]8@jcz</?-eNjT27E@RH.́H+ |KHb 2ŴAi5PHB[#K1rteH"INvv}Rh BmZ||:RE@lj]Qgi �EDD"%Aj96/5uN#98V\1K|=u]#v{�;+nOOJ7}lظzgŦO~lH /W/_{;+?GG_zXM\5<z5,^SՁp+Ǔjgj^�@bW�dvP?~Qyx磏}ѽ0�`99nw]͵6.2] _F؝5._Y}{w?GQ7قo^^Ƶw<xůmo~suL5iM<ӗ_[߿}qLUWaϏ_LV &f|Ώ̄)FB-X]Z<y4)M^^|f]l4A)e Ⱥkc|Kxg, H0ƥ꭭ގo}qB"k%抈.=tG[~~Vm]fgQi]rO*D6LgM0M-ٳѣ"s5GGGU7!+u~Z>lYpnI{kK'AzP6 .o=>7Zl.*t<> (Y V4Dre.RnJ԰##2L°\,Ob0_𱈄∴mc#g�� �IDAT3+kRzOB8DֆRSC dێ6!x-/mӂb)%@ Y(Qr{@LQZ3S ͽ�I!QN{\A^`wHW@�fY j N*ɴ E{y6^\$A^b tԆ@iN{HGDKHB Tn BUޒ`ۋ{3D/Aye)@ϹvOd&TmDDi/?�aFk-tsD.`; pi^ ERhMZ&pWI.m}"WE^{:;,a M3WҶSbSʗ'La9=gkNOWuVxkzg1QuFq8:oBwx'ǕBu8Jg5te}ի[ʔ%CCu4:88|QVC5Fl3G_z8��(?+;zcce;S^}eg'ݵ+wN?h|\h@7zo֫K7~6t|\?n;;;W~8OǓ2.՗ڜg]e\�ʠD/_Œ >;/1 �!)kCuyRhzko:Z`y.[l#O泇γ }&ض{Oǿ'zv ?�R5㒂05;v3}?'{ƕw^y~u~�{�&|3[Ӄ֚b1F$zY3Wn?z] w߷`Zkޕi8;0n:s;C`jʣ/=~`"RjJ7 0'NOAeEQHD$yE\& "'$XBxA \L yg⤆O[I!Jr�0:z|C)V!�0sP7-6W,vˉ$Me ud:Fb4!ҤZ}BA@AEKv(G͵B|vЎaſι`jA4jKT4A+N!?"۲{0 ei!sVg :)L*\|l|۝*0FX8wʑt '"9 DyN82giզ#RۄwHx4URj2IvRp4W\PH6Ҁ ToQA> %^vsko <}|f(wG a OɗV+?< +Thsݿgjuu5D<=?Fn76Z[oӣgGGY\+M6Wx~fn�\ݻ\ y՜|~zxXP Iyo\ otWgkF;֟};w&͙uobѯ~WG*~e3;o>oo?Ο7G/ѓ2\Ik;ydqH̞|~z5gM,m$49lwVw:`뗆5I{{{sggO'ʨ+om\ֲ{+f'ͩBۿFg�>z~}A�S!+ϛ|? )F}5vu8}25icPBR6Wzb>G 1�N׏v΍g?8N%?L'ÊCm�ޅֵ*{rd/o�o(+k[=OoLnowrwxΨ<o޺W ĉ-Mϫi-qe9?wAtR 2(KIEf,QbO P=sH?͖-܂rJȔ*3#D߄؞~ .\(iGs5 &LBǁ >aZȶdFR,*MD" `c <撔),цpAMBlķ{NIDDqZb)`JD�RAڮ]u"3h$gޅ!:vXM|XMiq˜ŴDF}��HTj!`dʚ{X) KU#EJ!3��GvI)HsHBWaNvl}jBitv۾;:s_>dzqCYsþSK{,~/ SQQe?~-^�x~cǐ5*[쾺 /g?M9nݽmln @g�I+k{x6@;u5@o׾iD1jI%t1ЅFg̍Ʒ._r9|yp~t񽧿O>;mʰ{jÇٟgZb=Jm LQUufٳi` @pTWQ9;6.wt)+EY\yg;_zz|MV\4' Ie}ʷ77{~|r~4;z8u{v@Ywnnvf|2zg7l}wZgqfX:ͦg<:Y*4謫.UWv+o`O?鳣㣇j�@gju {vewƭͷ?y�! "j*x쳏?7n}s< ؋�Hm?ೳ箊-S3`�Z_1k[+[omLwN~ouojg;ǿѳY=U5Ӧaj(!ou^yw^P5%wԵg*B:5\,Zi$jRc�:J;b%y ,?AAV=/-BG1:D�ڷzn2t溏vf�Z@!jnJiӶςDIn4cZk胗%a\˒\- >WjKLKjFF2Kj#A1.//c/˻r.Ĉ̬=/A@́!XG@&rA~`�9Z �AHK}<Kpc$ffAeGB$hsLU:h"Z|MZNtA"jbR/x $T:dL,I asik2M UNJzja N~t^y|gxkno}k;mF/ೳ)઩;y<E1͜ʱ;?.LH{s䪷_z}ۿ{K󯮇 -K<O~{Y:g:v:vKӧS[ؽ[ng0vW/z:{ӿiTص^ojՄׇ?==]^U~OꠞyR8Ud_{UG'o}wrlI Uުf*1z&`wT7�3ܼҿ6>_yusxKtvpHL 8&__w^~%n]~YpgJ<N\~x? ʱ{^]ƕݪv;={.f>9~;oޕWn<XVRX 7DlB׮?_?>uESkqinj/[dΊ)'^D|>?zv{'YQS=}vȎ j)_3{ffQQy~rx:l3;Fg'CTDVQw53abLhB皀:XwϏӃ)6V = p�i7Z)RFLd тn 0D`A@ZZV3BC,52< @DraSe" /˯L@R1eϝ-0*DŨ1 "^ zSpdip#Sbuph%9WD8 . a2%$-KȡaUDBJ))LH.,ךBEt s$vvH(ˬVP)P"‘}#i=Ʉڪ7ouXl)M&C$0B&s0aNO\�9R)EfH&D4tmo-+&7]Mtc؝LQ}'FN>V^Mÿ?>~vU !4� dzt`3eU9v�0=kHa77ĝW Gan|;|4:. KF6;kQk߻`p}Fj5~ݻoO>?[23koXȝoΞݱ'_~|7O>M . ~x~\>)f'?1DDe"őm]Bg-{vhu\֕Xуӏ&ͥo+?#7;wC[()m(67*V}7?px0W^m5UQ[:|x~~XhxPj�yA1N:kF6=kxIlm: _]wko^ OΫㅻ妿ٌ>G''uo=v._on8r(Lw{gW� 0 ?h|o`RwWcQ\Or-?6oP4S<ֵ?+Mk;c;}f>P}bs/B}Y{C\v8(&SZw1sh "ꔊ='5Li.tB:@G �A$ြtB`2Y<7>bwQHSzG.2 "/W(ˈ tN3V C6JSt ,mmyr�yq| 4im~~yeRVeCtAJ@LD{pI酒e.8CCtmFal�tz�@hXӆ4YC6MDyM3aq\ᅀ@`*:U|Fr! i =#iI*D `c %&WFMHD]؈(Յ-b8 a~h"@{Ōe�䀊�+QC6mtsӭ|vã'{bgg7{WV_?=4pE.9 zM0u5MPt،y??>6EWow#gV \7ӳɰonW":='}?��2ktYT+L/~qrlvz0Kd/_L>߿Vnx;Nu01&(AP7\}k=՝77qW;~q\ޟ￲1<p|R#hke�n{[__V>>?jfs:+6*8Wg4 Ocxw~v4618(l <><-nϮn K\_~rgeᵷkl"c:[!xבEݻk\9uգgڼts%7GwΎt.7ibSEmIt:2ClH�Sz"&S&A8 �Ha$&u"*$*kRI:<.oɗ{UՍ^@7b! %%R{<šc<秉(<hd[+%Y� FݵYr2h*</::̷{=e:+MHO-D$!Gg9Ej6E\E8ܔEG Zc4唺 k?W@39;}psɅh5r֒Ӑs_T}&Ob0FrN7јB肄d'R~�魸\t) 9UM}Ki=]'|N/pd' vU= to 8×qdN?6mn,#ɰyh@Y"b%E츽~IHN1 >bn51"7FD2|d%DN&a,Ycv %"(%8 B@�$dSEfr."08� I�niܵ�Dn;ؾ{vIBzek_ؽ{d�w'ەI6łZdFD? 童�\p3sQ$}^ A71݃T' ۨ:* �l_̮w۽4u?9S\ Zq~ `B?zypf*?mlwݽ޽Ago3B ( Dt|A;#O.^5?uA7ǙףŹ5Pg8<ӄ1ϞΖ=u]eo,T>|ϟ{稻@vM^땕R뛟v׆֐9�SsDu&x>5fΛ7ǽB^ogJQvt!s_GW.^{Osovۯu] "A$.TV@F`von|KsxoNӑS m}ur�Hzz ~'62osfov%HnvDzɨuRëcYj*2`2Ze 5:N6r&ȩ[@!$FĜUTы�h<ldX!"cG^ � 6!S 8qpTNNZ"e8N*s"ND.jm I0,R.}.<m 3z!38I'~%$IZkf&̉"v*{w݅LxOcƐ,щpƅ`NP/a>'AtB%/�@'kΓ\S g�5vr@Hdjד62 xp΁+ F ZԜJE@*#.rƸ>IRArdĜM)].Xy 3q(Cdy'<42'=O@9CFYj͐"C h `8.܈& �r8IXdI:/;EY 2&6b`38??0v't`c~[^Y +r骡dag\Kq5u;(y*�dcE�c쨛K2G$S:YbTFH\6MX^ P@PyŨT➶9xC9W|t,av8`э7vwZ_ccM&ao?0Kbn\Ǭa;ݼiϪ<6t{Q7ۿ{o//~o?!9+3ԟ Qӷ.Us_o]x~r="n`m gӃJ+{ٽw9*ݽdWm^3 տ`ng7q5s U66L+YX}w.^y~nAg-0C$wK\ן֭վj� vkp{}�� �IDATA$ZVNg76چ9e>mM3$*3Q R{ґSp\Qn=\m0Ӱ"ksAT4dUAkg:~Q{k׺7wI:Bč&~1"=A�*UNwqpL$F9WCvz;qu:*g gUxbRVݻ2@@O%NDNh:a qQNM΍!_dRJϗ/'Y*͒0iR]6C1,C(!B�yajyy^&,v'ѴxDxzEB.4N+arPP{3v%qpc! �%J{!/7< GdAxJY r)3@FXs1`imT鮮H81�2Δ2XAP`sJԑe2姑w1k*9J/PrK5rCNG'' FyYn9 ͹:,f(hr{<Sk)UȀyVԨ̜l#` 8J * LJUn ^s|PPѫIȀ 3Ƶj Įܻy\u 9n'ן|Tƃݭ,V<{~7c'yT/fϖ8gN:F(cP/dfRЇ{ Jo͖a44{^ ڛ\9k̇O67___~{_gWf(yy;7�%Zggak'*P錐aXOT*3> gզ2Q糬bI'??aKQ_m-6L+R ,+OdzT Zp9ѣ3p13X+%,U=kiGso|K_ko O%>c �S_ ÍQT DqWYCaU,<Q/?]gq]5 ok^S69mgjۇ#WfŽjHSA !B0;Gso,+хgpjͥ_ZO~w1q`R7ڪxϓa.âg]H<5 ZK/ά6돓QGXL 8Xkf ι}B;E[1TR9%9~q΄ǤυiEN<&) ҴS80"BON1X҈°TT<,iehc!r'&(MT(rXGIRn'٧pWy^T[k,q&Iݝ/Brk[$gBa1BJY3c(ի+ _`)Y!OqL� <67/ٷ͡kTZ x}!h.K+͹Z$;۷jRTI$iF,+1F)}1U(e5FH?8g,8ӴI -#KZtAdb-4Njl7N0]7d"Dڜ2,KHB6\Bs&Zsna<Oh�H,>Q~On|hd'UqIV?adh,L9IYFHc!"�QCQz.&c 9C .�ymΉ#B{ qF\r2vo,\w5v͛[ Xu6(e[l .ʌW !/aR]ILvLU&BOtivW zgAB8xؼX@Fb7L|yPk]ɹ`֘}EƉXVEI_a#qn J_sgˍ6ke*դ_bQU ۿ.| (SjDGlw+__mnw;?~թ=t}rrBFt񻍠o,ׇku!ݍD#l_L#6UDs3fJ+g*?l:W>tqs6 RM|[g+yoq덃~2.w}AkuO .8{OB��αu&z˭WڙSѕn7ޏU_QZjEw>\pC�hR%.<1/cL,>턅3@;:.Y'9-CNdM '�BDZ+OcZ=RP>(2s*@'ϝ.˲FEN>m<5 :8:)z> �1ƂːE0 Bq||xt>pFcM1Gt^b5{\yiϨAY)&K|~SRFQPUʕRT$tZ[km 2r³l2N ˹v Iyε)2:q?9I XxTnxcXh-< ?TUDXaʥs' F|{=@͆a[mPJOJ��kmXe3U|w?v\}$`ΕLj7ݍ% kk<.\tl8O<)JgVqhdZO3O^6{N^:&~Yf4(gfJ(mgo7n?{ya<0DhVyOrwM**uGބW6maaSn ̨̐ kD'߷th)?qw7eKjFr: 慜 iE@N <Fq¶i  �D1n$(Z JIb\VjRk1*kFmV#7:�5dPiwv<5^RLco¸+N;9⁾aTg5y~w85xp޷._%Go?Y�ʅzw_яQ2Tyb`mxW+6MIVU9WYz;q8VCCD֐|ry}?;w~zi3 ҡ%tWl^GZac�`m}w啅+_jmnXq`Gj7o7X7jJ7~ؕxX%L"DipH/4* -MA:XO!B -�TPP.\E tn0 <)F1jG'caī~}&dy/yRU 1d MdeΝ9M2Ihɉ�klU>Jk'QR^Q>wy8GI<8kLnz1E0pjwƜYu>;9:.:bVDF4[Vʕ,ipquωx2.sttzc6Jq&A}џY.!/7~ubI2T}otp<fb;,XPeB7CqG'}f䏥mD# hj<.}y3kw?˃yʔ@8x9%BD>hm3Z0v YyeY,-.6mm>{^+:aeeo}`}R%r^A2('jت-Dԍw`(Ȳq2P% pN.fzn-Nڒ8I^Qw[D2āYRyV2ƈךwn0fq_霶uÿ؉߻v_Dcc-F,( /j'$hp*4ʺ)4l-0ɤ.gyY6K2/2Qhk27@9pw;r{CV~*+(3+bk @뭯VX:{4NUjґdHy? yI U1TbununǙ:Kʈ}ٍC_o'?:noaMJ !N{�y-8^<WV^?&i_ l,p =w;?~wGҥ[/|gWv~_p|Hx㇇F�Myy~wr(!g"7N}`BEG:݃@>2Y>!b;zhqwtO'۷c-]FxVpm<h\Xm*3h #=f�唧}DJ~)? "$ƁѵC/�!5/0J=Ikg?R^0٨RZvM<p!,Nd+bs5V;;)11qOzAWRR6m>8<>1#v?:VNA 뼱~Ϟ Vt H�eLzx0';*J) G)asCZ`͈5(RrddVKJ^o}[y\^k*mm*P_| q_Xu[TR,[7NNp%%":E(.0OM::A$)>ٔxy.J6*iʭ2>1b+S NdP1;n�<J&p^\dQ&@\+WןS6e%{oю܀Ο+ͮͅ/FKvwm$c}(49کKɄ2@ ԉcg=C:eKƐS &8~#Z�tg*uzOOɍu$!Vg|aS2;mB[W|zejްF72�ل*dX &KDD'Y5}.# o!wby:s<שòOn)Tccv1>C@ʲL1.*Fˬ^;_txK{4!g-_. ÊtRDk5l,^ӑNFkE%kh·|ɉ( >i*2|(;.:w[ƿhTn3_꯽*p?jq:`'_:{X};k:[z˒q^.^}3�rCQݛ?[!H~>Q4A}Ln9c ~K5酜s#ޘ/]}fy.�eq@efC�8ڌ R+�dPnzW+K bݘrrD*\h8(|_js곍K/<٦whM18va }"c0l"w[Z\F0 a:F"�zm-jsl8@DLX_d嚤00ꨍdms!͊KӾURU"C`@H$ YqUh|^W~XA~o$CXk(KtjAzjP43a�3$}E}>j|bR噃(o&w4e '-dgot{8H6^~g^9Xe8YYS]{vo`}s7t XHGyZqՖY4%(lM({fp~E(]wA)AND^:Rb D? ҐNƅCgw"1Nм_ۣ/ƍsW%|6ntf^ȃ x7ЛVBY#ޭ;yj …Hmq$Ml8'ÞS~΂`-3|Ȑ""c.d:$VX2**3]Nl2"£C$Rm #ٍywjdέ097&r&D`hIֹ �� ݔ ,4 ie/q5p:mh2&� 0d2FoQ*ւY46d, r73/<}o{Vب/=q 6x Ҿa'rK#G+gˍ?ꨄMu&/_J*\%(ԤcuݎԮ^G|B·ԟ|r0ɛk?�k!'tz??}r5M�=sJUZ em&'oJ4lQiI8 psJr1yg-7,YlL'[L�0KԊTrr,wBs)r2"z�L2磥0ȣǙ8<Ju/(1F:yxnŅR)x+OUҩ 9CH8+ @",_41\ᱩr*>^]S/J,̎QFV1cr̹̋\y܁‚2<klAxԓ^-6*3r}N'.NF4<t͡;d!X,*M%ukT30fcUXM8zԗߺ̫ a/t$΀!�!QHAm=G&C^ygΔV'ήxO<Hl7~e8g־Q7L� Oul}WOS'.}D,6JFSx|2M9on՗^1lU*&Axg/=o&ϴ(=Ĉ�=2ƀYׅYEx8ao/Jwk_Uu[G*ۧdm(q>w-x{>̨Vr٨uDl~2VoB1d ?n;KUDi֠DdCN`�`Q[s82 #K`N'a-dMccz|k2'<=Hcsڸ?gIڬTozZ jvSs" nd? 6S@�@Hf і ie8cLH%# ʐEr[ Pr,J<Qv}΃_8d@`琍F8s%§)Äʌm$aY̟<LX #!}[]t|Xm:{qL'Mt�@0{}RccVTt>w=-P5"R9}gXUu4M1~,"Gwޟ&a$J+;j}1*5P%&xQ/|f\b`A׹ޅ JKF-4~կ7\<��љ+OU/EJH}e{sNGƶ̨qǠ$\x6KKgv#L8Y8lR 3b:ش2Ƽwj}\UާI<<WW#0~-NIS.Vq|H 50B`qA,[eg^7`<QA'_NwǨzGim<w.OPoy3a8kogwc; Kl<FR]pҳͥI:^}x-E� $i&AS5kƨ_˫͆Q7֍-.K炰^Eno֒xBsvgw; z?F=(m|1.7�� �IDAT]%K "̒ރdk-y_Wf(E^[zݍD@Z Ȣȹ T9Rpȶ[mOKK΅& :3{wG/roh OT)oVUWƟl[\-ysA!j|8Z*Uy ZDp6,h i_i 4mM0d "VҜI"DVkrYM\bcs{̭…s!r4IƓg7k[7FJ'|xNYj.OZX\ɀ�N w#"#pjyb& E!g1$ fNP 8G_<dƪ,1> ':Mܳ?,Wj%u0y_g/|N,A{h#vd �'9",_̟/]yq|RtEO.Q7ZRx5KgW* pd5sх|w_V쳋+N0NGfgNn�m{F /}7(hIu]㝣@E FuQ <5[ce;IP3gڜM;N {\~ӊ*Mov)0n2 }R:~l\@M\`X3amF<m|ܛ] kp)^~wSfρs�a'�kHL8r+~;w/_J=@|dcm MgY"lX2md8.W?n ODOܼ¹`26J |X8̒\+s3!GYj7daXBDˣXXUj|̅xa4t?D'`#Tv:,].-=! "V8#FGlf +2v9FnVJyr߈pAT"F #!PڀeBrpn%z;X|4"{ǣq4έ\(?ysto_K |-k% ?w2Ǿq&Yb>Z6;cbs@ n|<UgD:+OEHzoZ}+_k n}�(R%$Pʎ1 #i1K?1Cm�7*EjӝK^m{ag/IǓ2g j|R {_ꗿ�sp܍なx,cp,#tnd^F1A T^ẈS+d(Z,[tfh;b"$x̭EǨw o.aY܎rUWo~r3Ѫx bg%cÄv>]k&.rq'lD>wD` Uq@Ν0ДU�HE ř'!t,W:Zsuu33$[GB(f磠Zr(\0̭AHe Hy=}},_~~LNylTVŪ71 *Q}QFu1h,4"3kgxh($:<bxwNɓ[:;7~xZ7o~V`3ung|;vrk(Kl: K:+*Mi�R4H(U"4=E<Hny||닯1U&}Aw~s?䥪 |Å/]כ:*K (&}vO _|qgi<e 1̙ t2�E "쥃NҿYL:ǔ6o,�QR]qRLRF22MScl,w=SM#KJ»nʭV*3#1)fNƑ " mQgR"0.xc[~X+;>e UF7T~jD�uΝ8pɏq몳mm z妬yJڙ~[dX%Z^ /w;P.p9Yc3"X0 8L6ƹl)w4۱!$߽w[kz?Rc栓:1 O|0vS05򄂂پw4왻?}x7S9!bw?_d;w>}jy̭ouwVC4,20%M9sk F(LI $CʤZ%@$0\9b$XT[{ nXXj.ݣtx92||K{sg~X*32{IgG)#ֹ^WU x>qƑ­ ')tttє(#]up;Asƹ@>/f}u0f�C'# M$i_J0_l72zADOpOA /PH@'$#]cqgf �Fec9MWRZ$ǡ�D" JhTL,ye>J4.hҎC`r?]{[!1YmUeF>z>oMX J~xruNCm SFxo~oW:]F3?oì''1Bvo6#mw'moN<Unұ1ڜZ F]5>Ґ@:�Jm{+զJTdhisS{F?m78փ3VNNf, n+|G\喈�Y F=G]5s34:dXkɝ'CȐA%Et@o�ws65fDdh@$.-"Bˊt!# Z(G~3عg*_dۑ<)o Ӟ:wIDdb>2I,[I>c$ e8͵s^\}}֍wԜN4G䦟O;EKt^L�C0x`"C/`\Pj /ʳ�:0"1*=9>AGFŞ~?\93RCEq0f=:G[Ke.+C{7;k{wv+,Lɩ1!"PXՔ%v|N;Pq&,46zVɈ\}qvkm-XVȅkka( N+LOq@Ebdl"J:d �EaV?&Z+W+,ƣ8gDy!%Vxkş9W[|a|Fj4 𱳗uw|~u;ɻvtAg|FLGr Q*B㪀U'{S�(JydZ9!I ? 6_Y:!wV"G͑f qhz(;WgE!"PSG)0gfpF9ǏI똻0k,�CրѤrp/$@ 3h-oH)w,dY& ϼt{q>ykv[v,��PKr-qrixA%TA/s~;Ȓ^;pn?O[o|\~櫍,ٸ14K,VxsKz4kSPF+>ܙ 8?X*Xk'Ýq<;e �J.[Cdq̟ +REދފü{!a?OF]u+KsS-m:sV*_o.ծׂV',C1E-pl症F 4  9JdY8=. e 1v$Mռrz#p XKںMEk, C|)hs:\tvh#޿Q1n72E8 lϤS\aVO!fYnRF3KϾ>yv~7>MB)Ѵ37a 1Mn9ȧ5ݨ�;ޑ?HT^}W/g&H8^ng dÏB1WmLYm =-wfȈ0ϔ%*&w?d0Y76ؼ7zqx?ҵXhPU9r#?`>�ss ZPM:ˡNYX{V>Q*Ƹ{ΟZɯZ{7 +QTi(]:F[k-֖"w9dPQN䗐gL�%EI MFfvTi|+SR[CQ]̭y: ,l^|+;Qt'`]n �EfP%8�24z]X!& Nq"w"[Z55Y̪Ơ֒Q]bӣc%zJstl qxC/%#,qJ�aA=�\zL^HV(sFRAʟ/p>)pr"JBD#Sة u\K\xdZn=ًIYkm*`��Bjs3a2rno4ٽիypSdZK샿j40{SaJss7kZ{3y[uk.P@�gJZ")QRdMK uR5�I�PUyUwr<ɼYy@=y {5}odhM5u7βfETREr֭laL{io_'C+$:璱^XZ<s6RgM%/~>G2m;ou\y?NZ;Q&2 c=uܱ0Ik' B<KO agњ'JSCM(A%ńu�a5,$8?SB=T0@ !!.E f=cӟC 5 /G'όsZ3ya'(��fFjx-6]~D3|ANg,_dbrzxԶ{n^yw<8jzwTxյvڕ݃QSFc 0|~<Թ~BB9:&KMo/OfZ�R&,#8Ĝ\x`۰but.P?Zp|TLQ ; )33 \䌈*ԓnX3Aal5oF}Key,Xn ``7I{7_ 6n͕7?Z ⪌*s Xbp[/O=lr^uX >|;/!>Fs%�ؾll,57q$7hUuzퟍOF׋<01ɘo|c αs(LI�z/~B=. �f9;)(ct6c&^< M q HFnj6q湱3{jO!�K5qv Pu|.Q׆զ<y28tp>H?vt`- f5#|6ֿ^zHB29\ ]u+M&O�Iqӑݺ;J]%_ ffvg>g?<CƷoK,͗.Ī9Zc}O7Wd7vxůWZ EAlo^yow=uM!NUQmɹ`Nbڨk+oZ_Ygo=^H ʳ9.JEqvZΉd`gL^E9eۙH2[@QTb' 2JKTrU8mz4\x<x[:w7~^dnmDdwOC˧=(3;?2%Wmu줢JvfWW[wO{Y8kWS6Yy]ד O:N(^MKDαk?eϻIjΉɇݡΌ5G7n1k",HlۻV3sc˲y@iJ3AADD$6h" BQy3KPN,SLFj,`FU M\+, ;y ,0Ȣܻ2[pɳxZۏo|�yWHYlr"$!3Z !' ݣIX)זh XzzNz}]#T#<uڜ2J+jDSL<gKh9(H=| #eݛ.gY gf_4RUV 'K߮/x` Q c "r֥#~}?yciG@Sc 0I*J yI6H�ҤRMAH͊YH5�B8#j`0এ}vAdg [Yk]݃^�蜙YD9i~-j,sk!\} l{+# ʢ>H<6IAD*@ԚZ\ =WGfa,}pq:XY*LYj {1P_8n\Hz?[럎Y.#CY<k$q.K 1*5dl5lfƥ{qos�?lk ֱꫡ>6RUX$xNRR|8ܺld�poWPK/;VPT\֝qwWŀgq$� T[rTx녣n.R(q&y P0)ZyADͥlP_'_,B90aޏׯ'jp Džl;= xFέx?{Q^�SY4& FќѦrϺΞ?V[>81T $Rt|Dƣ+d�e%BAFk8 2]19džunATB4NVL2 *Rp bLdLr.ÒD@@4 i <!$Q)ˢ\:0z+ZWV=느/m'Ýxfc%Z*A΁՞3< �}+LIJdnbdɰSK?,}­s3�}n\Z9L6*i˚񪼟eS9#3@Bb`k<2<5$>V^~U]N{;U,Jǎ@f+. Gk΁ZGB 4[T/6KΝ$eB1N9p @FOC۬">#Aσ* #g {X @'iʎ vF}.ׯ<{Q:4 +MzW Ω꜊+rp[36œx,F*60:4} 0!MՖl,y;^Ta,<Fg'/Tc!#WT{4q1E_w9߀.`�(2rLqEJiܳdT P!O<_jpZ6tkk\} ,�U@Ǟ+ݳo//ⷮoIK`(n;?ӕZэa:զ+Yy]˫T;FXHdf"Ky2B$j6˜Vs9]/3G\P)�AϤBH(H{΁Sg ~}tQoϔK!ɯWP�� �IDAT7Z쪐BHH*][IZhU[o|;L%̈|1?T2ä 3?|*OJ]Tm,YWdg/B8Xwb'%2562_vDsPr]%'6kPHJRBQ�c &cAB5YJ#�<[G@y#NkV̐3�g&:ĢV2nQUR=�qkT_J_>{s;gLՌpұLV%ca?3ݼ7 # yZ XFzy4:[ޣlxK)V@B$"̬+,bY>(A1/Ryj=w&܂@R*㲒ɀ7~޾G*Da,*MWͥ0ѩ^wC$*"`-"Br!2GOSȗɱ1ں/DgYժف';s`h'h0HAXr�籬Es" 9Fv<۷?h^zڋ]mNMA4շ:nU%Õv 1,R!{yo_{-Qא ;D"q\i" tzҩhd\Avpwݽ,Y"<T;w DtM^ =pT^Ԛ*J~uwsnjc?XVzt<\gڥ[Wpp@8gYk'em>rǪ˗Oֿi%bfڣn0ѽ`c;6 T@/Ug++K{O<|n.//�@޸9SWS0,d-I3Z**  ^,;_R! Rw3��Z*)rN3;kW=x�&�on*#DB)‘ �J-6^ڥKpE^W<6M:I)5##eԲsHIRcc,&?3 YKOiSk krMzp2vnߋ+]� *J=X9]+WJZHbb>Ζ1۸*JUSgИ H<ݞg b=L{: 3ubq陽lS2426ZY-m>޺;�ibn]_/}wK_5v6:qu>?qyO?H@ynd`IL,Ie0;I>J][Q9ib儐DD,p6�((&̸V/JU95{$P(J;nѶ`�@*ADaM#W3tWՖGQKM:z[R-ڏ(@HTja66Rg'yJ(-"밣:+4gy%Z32 1~cb @HPezͯ^  =WKd?ێU,/.(?( sڥBfxxxܳ"l<9aܑ,sath3_=d`uƫg+ ug+{5Bs?|aoqvM LUHU2QE@[|rbqս^y?{{9 ܍:(QNks ]O>ig~m׏EtQ ܴ6#n[߬t⇌xw{ oxhm.}N9o<qgJl-PH 33Sk-g$[wf6S-, P9aP!j*}JIDfD0_BDʊ ;hcÃ_>b+w:Y@d5αn3Qă>^V[֙3%HP*JAMp˦)7oIMn>H,䋺>]X�άLZ5�PY:]v[,gJ@X!DctډJh(PHs!BdƢSkOYK鼳Iz�$;�!H% kp+BAT Ee>4Åh0۫]c<>+""wA2<bhkWSsу0K}1síٓ'/k+h7b$%+<52DXo}Q3ML >/6Q ͅK'j=J2pRH9Z<"bA[z5"'.sG:"RRVtdwSncasYyITv@ E{;q6R\j4#l|8 "eg'Nó/G8SRH"Ddw}jsK)IlI ,�K)1T )yڙ71(ْqֹ=.Vl|Yay]7t�pFZ g_q{HF{QϘ5"j2.j+v<f),έ.rMz嗷;Y` tV~yX6 {V&R'>;Z;lQ_KgJ'/VϽR?ReR"0o>s{p#R"T.|ـ;&kg4r]OxiFzsput惲jTcW+ZNֱګ{:??.>||ݸ|98{؈N86|OIJU2;L͠ 6*K{;Y:.ҁy$OnM"2 Phe^֔< NpD:/>0Zv%;'F*|b']:-m^a-_\4vVWi�f`PIw DeXKa AiH>JDDHBɏT{YfZAܺ=|xb~BRRs9>j|og  �EI? L~TYhO�3x<O#:; 3qϨP4WbTw'Ocl#f7GeBU9G)PZNT{o.ǽ?6o9HgڟV3<7Zc74s ~`Yb7"^_ �b(]Lwp0ʀՙFCmF= ݱX92$"C{2TBfpy:<gڀCߏ��)I$@!1,I"(=SA˧+.U{MyYbH(kͨ$\=d3 !fcphc-[c}H-ŒP@qvYSԯS_"Bc9B[8MI i/([XΣ2R/9c5:$@fA$p滝Ƿɩ^vM{ċ7cw哭;#A>"ڻpm'|zaP;tlfr�<<TX| ȕK To\idhGw^ ’вmksoo]6y8NGVN.:uz7*9{[_nKiP#`TŠRWH~yF<?“'\x?GۃCg]_9S㿈+/*0ɇ~[dhꋝraGR~嗗LR3Ooշ},ˀP6dhҡAD`MύuDƲފJ� Ii*IPJIaAF{=ٷ! < KwF!"UՉEME(KE6Yd$فC`]hN0 ]DJJ`8NӚ!`n%~_JO =;zL '1sc>,7l H*$7LaE2GA'k{GYk*'_hfYg2 'ϛ̞#F T O9O4L9a'fA(HQaGvrO&@Yb\{L|s1:vFXN^ʹ^;;Y2BI['.~ǎz5ݝk ˳hd߬I7!  *0$vΙ:(wA_@H*Օ ̎&s0hg%y|Y`'P*DBI gob2"D'$�Px(JAZgءRs9*q}_w}[64, ezl2f׳^fё� s̈쬧)x;h2�*?>9kRفq X7 h| Bc4D@"rF"@D`iQ ׷QOo�TH˧q?xo|;B�0vۿ~a;o[luU3@�e<1aRTa,<`YTmxY-0ڗp;y�Z JTC?;X\Eft-\d<(=F\+g˭+W33O6n{:K-h- *"$S<QώYOk*.n?ӥ0:wyR=Ϸ YbG]=,%!zU@aYvrɕK}J6ƅ\:U#v:<uVs,d#Z�RZk,z�s֡xIff(�V9$;⢠�ґ <ek *0:7 HkR} ;'"T[[[7NZ"=]Nr�v6=6(IMXcYA$b!B4d`KPb3Fs|R+ EK'JǸw?m ͤ#!y) +pSW71PnrMk?SOm^ Ju"B!r0* gNZ6Z?AXk/7Z+aRU*g^<|i`ѣ}8zpmEJ=r\vi 1{=ҟ`-#B:a4ZPl24_UHB!x;HFl.FA,<'"M1ȰP*vFWd+" EAO�" "#n:}/$a�@ihc0WmJhܹ۟[y\QPT_tnA{;?r]nfr$b(K*F>k-e�O4r?} HdI!N s'o1S2�c1R2)DƘ,OXuE{k4kÇ>l yԳߛD}%>|c|aq}:<9یzH)R1@H%eOA,$,-͗/ƪOv7:̌r@2=<-/U/#@HUmSBRyteԵ k׿ŗ4<l_u\A(زcq:lϝv9_RM՗JxvUjTiҩr=<уk~e@yV[ =Jۻ:`#۹pwb7Zq3ԹKfxp"Z:UJf֌.gv,31_Yڭ/౛AZ'VAV. 4F:sTRU㲱EP\F0I&ZDtLL"EPJ!Rq?{ Em>זɳ `-oNcZ7Q$"`4(v) լl KaIzPiZ+q~<ĕհճrp l`8|' ߤ"/gPK8ddfJ ΀J=Aw?-,5i-ms`HR(3krGLB1$4/5ʎyɳ,/|eq|nw[;>߽>yY݃j4s^w`L٣(jqlv0 U xP r<yU’d:wDRm)3sXRZh-S($IֲΝGZN'_Bc/BP �D%P mtl|<A7ie�vpj9{43/,}7JnG|v/$]~yq( iB-O]y\X1m)!0 ܚ_7Z[$rTV(M6zxa}!,~7h~- QYPGbW<N%.K\o/w*r] ;:, <~})HI �X2vNM6;?~pҢ H.jj/}w9W?')hDK_^AnۯGKc$;{7iڹ (JO Kl2#)iuUm!㗾6FYgKS=Hz<Ӷ!�P@"8iauwnn5*ҥW=!iDin%^=['tl%9yjlEهu Iu^u4|KXϋC .OO,o [_ ˭8QY6\HТ$$Hd5}t#z3(EJx#!ԥ _]nD'6:7>lhw_N_sWQB6(9ZЩRAs)[)9ɰqaY!T@A,(wBR}>lj`~pDHh-g.7rp׽ޖ̇i �?xRΘ4<?j�I22 "* i5N\*PdBJJ9c:RsLn_{lQw/wl:@lM?1v9*d> @@v"�5g=�8qEVC l9`$rZRR5J%d@}13W$?AIIfgvY �`MGbر\20v3Vp7nuo r0|=D(SF'Q4g,NjcdܑLT2fBwYpAJ@HlOL*$j±_]/;@H4UXB 178Z:F+ﭤ#,V[Ak%YW7(:bkBVNq2)XV*Ǜͭ;N*/AĚܑ N$g9O\_.ǟ"~rp+ާ<nO|툜g rg5 1#� T IHR1pxbc~n&9cQ?EL `4cHF0H`o_ˀ@Rh|Ro~UX]9[^\x]m/|ӡfʓ)ZKZ4O(�g?ת)T(�^`TQʍ\ 揉q>. o$\X1)PH 4"qbRpL{ R0 Qk � *rZ"J3|۫bf{5:q,ůlz٧LN 90#�� �IDAT:BKڊVHt24X$0,/4_ʥoHs[߽aبVmޭ:%Zy~$�=:N@J`+fkRíѨM4!VS/7WNUNUD(p»iF}1&B!6x3 LDyac�v:;c5r^'A�[OGQ?q8 �t$vV=KH$`1}(a�\JIAPJV磓*0%n7R\,H@dhR-X:U=wuf%հZqB9BayA1)p@^s|g&So~T$$g `-kf͝e!qZ[xyq9w6RxkڅկO �*R"3d HG@Ƚ'�0A9< L{'%S'LP3mi3e G"]2G]] +͹Q Iҙ/B,VJ"*fF&l\V%xZazLݰWi~XcK��h~zvw{Oˎ*&KѶuwa/@qP4qi<l(Εnc1%:βgϰ;鴜mֲ " 2LlR�̅zf:QT:nӏ>dGYb^n>LKq$UD:$9gIg6$ 3g2QEV[A\U:?!ɏ7Vn-;7aFo/W;Whq%%B�TjD 8{$P0Ȁ�@kc5V)\A2B7Kg.דAg`3¥,.I *( "R$7�ൻ8 0v0 ,FD" ǪQYYuHPi_[8"Ubc{ƍn6Ε^s-WΔNe ׯibfk8*ܱB4%�PJ�dcs\/,~xiۡfvjrBSN,^߿~{,M9—`%NqOST0VRR vllI@IjW{> Y:QP,kXQyTeZ!hDHas "E̵VxB\~0W<}S!=!:?{BZ3e�0�1ZPJ R(_7 PPV^Kk_o}fg/pw?vt):O’TT cvAmHVK_S-AmP}ԩ8 \(Ee&ɟX{v yN$k3;#A$f5YA^}HAA"b}!~K']yOnsqUj7x'ʵOtuȄ(w:`k{_Dvj7-dM"PSg9噙yy>)|�U A,٧Z qU ,ZmB-sPn _zf NT� Q7\Rq/ou3/.-Īڈ_En?ǃmlhp( Sq 3 J(ͬq2/;h,VC2;;/&�Qm.fL'V�X"$;B 0:f7pBұIfu{GG8wlg'HpA:~L,b6dB3` +^}翧˒|8򲒬~il0OcckB'G-vȞGfKPA4q \s!sPERQפ#aYg:+#Um.Ux˚Q IM~PHJ_8]vج�M!Qkv�QՃG7$S/-Tv0|w_yίwTTnDJ)q fV.TzEÜDa;oQlֽLe+ MKGyس8`Ϗ_'O�j,HJ*J3?V*Ao*{ѭv:4BDĵ�un܎E#X jj~ ;fcp8vIiWűkǫynFv6mHd#νVAԶi2 _CUA bp&1|x3l`AVo GncvHEaIPp1+8Z/=|_3q{C_I&H<N ll9 /4VgN4_4z\{g? 7i0cZF )b<OYOOr lYgc;05jzhF@?AW,RR_k/|;_mn'>KzKxlDÖK!= "DMZ>P TJ e4iR4ziy>}TL5}b *P$DRQ1YuR-?^:bP=W[SըeeRX(p{4a'^aXV"BJ sFpK'O5_>9r bA*5Jk~g罷o<Jd0Wf.*e\fZUalCa,֝~w XHr"b}1 bxuf;S%k2*Vi"Y��BJRj� 5z<ܺ3>HS��;3P*Q(!&O>9i_0 PI:sqW*5>CU`VIƶ*�0ʻwz'.OV*ösYZXoS�gPx@B_&h/,4}f�D�d*{G"IADXt%3ć( �@tMxb`!Ed π,(ƥd 9$oo^OF4OM0A灂{Ө^xcsNͿ;μr?fQ*b8`0 )ֽ^h۵Vi`xa{o-O{kqT@ M$I&jM`_o%q GD[]{7$H(]Ijռ̙s<hf9WsPHJ A�lt=3l<2 ) 6nf}}�@(R1l1 E^nS(]i\]Rt:VUտ: }`8i Hjt"Vfݑ_ p땤"TJu:8/XZW5ք諙)|VR~' @TJ$ڹӹg&Zk!^Wcc##)� u�{�^֮(Ls{>9svU]}t/ E/L5ډ1?hN|Ty6{+֒+14瓃ǿ O8dOU]}Eko~^q P)Oc=0/;//n9"6^磣8GQEjmHF7q]??|>:RV7,27_Y3$Xge) %I$Hd@kRFF"DG �J `(׿B$"Zkvvv^YJL'xD<.SܖUH q0Ϟгe�$թm_[{׮_8;ɿâމ{|csÚlWoYg{5RRWVu�zvXgѓOOaQd[(BFrU:k$(FjuZ$9IEjl`Z" T1C۵f"HZȄ":/݁NuZ3iH^ P.\$PŢ$fk52w6^60dቇ-o<OTkK@Yo5ĉjwZ&zl6.}d<Lz:g֛ϧ{:O/@"K=;�X\xHLZ* CAOTv[bڑp,֮ݭj5"m^NI3[HdqJOXb$AA ED8{h6ق=HDv1YZd٫X_>d3?Dt7W_{jGgNht6ϵָ k9jFS5)OgI]?ZXz`  A=n R* 뵽{kt:wqRFͤdD �E1; ҙ*"d�1 GD8Q*s9� !IZ[kELbV)2 u;+eE#3Xm z!I%ݵgGOƋAZ{~~NDIRURk "!(�2\N0"xg8=K|}''qVk%g߹[k47;ok|;n Y`go&F D< 4Q E(HʆL $ ֹ V =˩Y!=!\*[f`87gQ0cpfTQy"tlCUs r ;`%@RD�IBل3FQbvٔvABZ* UmDZH8�KI *zJ54+*k{*RU]B((Dw:Jd]d sW~Whs[7Z=<ʋwv�mnRW?=FFy>:# _<ytx:16ڠZ= h�l<UWJ,(qqRTkD4M8s08ncJ>f:s�ew&йqY_?b\ө#;U:WFT/W <V\?s;ٺ~qy*yU^q3 o_[ψhFp5�^U_P"f8mLόEQ=X;ֲA^w}^l1u{pƗAv5{̮;!Cৰ B3SpPkD"¸"0;x<٠�ͽպԍ٩/^�QcMLnqHd;WH�fbTPt Dh stg_E RʸU6Bf`F]td!0gG,~?DV/۟>i.%u1Ƭ!bn1_H(Jzh%Uu>ٙ{O'?ΧU05F/ k+FBxB �F{oxnmoϏGu9 8/yp4NqQ"j1WvZ<{pV8$wںTd'zV,y\.&tȯ X;WԝvxI`Bsqx:`pLj`Igٳrs*ԙ4ps#G~9p֛!ƍ[xwkۋ+Wig^~;_ Tf{K.!s޳3Ʊg+5K+*5FR 伱C@(=rz`lMzwIJwcJSTjxzk{t>>y93f&*Zg{R҈e-38A |<# g 2:x) "FtbYεfiMJVgna]ڈJҋDz㒯$Y ,il[혃2/3!ųWAǏ g<� xO{zs`61O헿:bZJ)<{!ER:{~/Syd4;~unF_K]yDBBb9g<3c &"SHT*zR _ϋ,ZD}}f @z@g[Á �l b6J67ãEB'l-eNb&/9oH Wgv[F)8chol44MGá pB$FQFeY�18"Kk1E2f6p}N~V<c.2 R>38dBi-[XJ!=Վf**-b1!~H~єGkAJ!Ш�ŴBqB:F[50MPZADk~S6E!D\Q,Eq/QqWo]#8#jiFr� @2cU3 <JRkfhM'3;Fȃ3":&tyWP= DDQz[>lQav}mxOW;9$Y*aMunZiz;N{_,t:)'cr[<(Fy2sZB>f2婮$jת뽘g.2KEI-NF:wHj YWT]m^A XMeW*bp�h4;g#X)2d:s/?/[7;[7}tpl{:{hr~ RN+7:hWwqVk;Q,Iv?M`PdBUF])QȅkXHHHT$ Y.~`B �BB! ͥ@L$fd5N]5H t+w>{;wtbtaCqDEtz\kv6E_$fyW:^! \!VUdL$�,{I}TDB"6m>{ӟ?JɉY&鼰)6vGeU"lrkJ[n]S C �glIYŠjOyXdnnvޮFtRnl`VeCٟd m1^{pԲ(:g4 *0Rή1f<jZknIS;;8Ϧ5gݩG|IgF~x<r@V~j2t'gE>OpiH,;+  rRYkK ֕Qahm}6Mkd<X P(D |7Q`MOwG燋Օp0AҴ0/ Rkp`fH*@(P0wlߊZ+\̊q7[U?֋k*jp@TF@J*$FŅê5`%٥uzA.׸uE$-W9q*$9TꉊU(<ӹ{޽'?k9{4ENF`\d5HP<U<{lQxd2nΛz״.F/$D2eDJ 24Px94d4|ytϞhx<¬Q,UEnyΊZs}[mTTEUm6+Xʆr4vΕ_쭱33LJUwlM2QsVrf5ko @(E^ g4]ZskݝJT]^8,(cxꍺvX,`69^]qօlI*֙ TԬ{͍YaI{Ο=Ż�� �IDAT[Vo*R؈snTX $`Y!R'D64ÈHF""Zo޳^F"Rv0R%^Z5K' A*J(DkLa KBaz-nEӾlXHq}6BLq5*Q6k^wW(W\۹9rE6pP= T"&AI %*1Qz�5`}nmGNՃn1;n>NnW/|.#q1.IJ Bcެ c2TZ �ηw L,Q$zZE}tfgtcPk*f߹8L#;سB*썱1f<#dY_Xdnvun;r><Q2?޸~qb<ã٤eDԣ{k{-ts+#!J@hхf)=Eۼ 3B3󛙗p$IzVK( u`)De `r|1R|~?W{ L($gHp+@b-"!r'"s~5\–S38f[+߆ WHB$H8v8s ).Ϋ<h'#HHh5z^;e$dTQHgZ(1|:IR[~dh:M@G �<-!@:[yƘ4͜z])5Ol>fKg{XGȳ$ EJpk&5vx2>x[<`Y]YfE:˼u]"5|PlNK b^`.s^kme8EVֳO흽+dz}v;F찞<dt2sDfRT[kzH5!gYj`p19> !z!kJBY/SP;wwJ|kJTm$bx6>gQm;bV흝յֆJ UkjךǓݵZin-`/8OD")]!RHB2ij9"n8a0D *;P@0{%IRA<2! I�lUz靟Y 0^VV:[[W}(uEVއ[݆1;DjE|KI$p-KDv33;G2  쭳�L(<{笴b'AQ]\ObMReҨg\f>ZYo57\nf}AHZH�Td{RT/t ƑUdln6{)[Bk=yQ/-Z4/i_\~_= IJ)<8 AO|1Vչp0F}mөtW:+[yg4Ó|>9_OXW:fj<DRh9ew{T$d5d:�RBt^Tor{{{NGX,fYY.)1X zD??(jo}|qD�pB LTY =D<$Axr{-Ffx"V H- 36R )ˀ=MN<VP.QIP`qy@. ǠxyH ZA qZkuA煷y(ȌrYb~mW땨 ��ә)s>JH]KO4x �QI);!IJ3Ɔ2QERH �;gl 4!OW |\ IF|-e >(Ns�@Z.xX֎w$.Z9vܼIW|Oq权_|L%vd|< Uoml^]L(2S=GOݝy:<zY:.bJ+O#[턤p{�̼zt8֟sk7"I!GXm;iL~xo~wgWn[Ui/糳Zg8=aO(!$PDd<ٹp@1p$Eqkއ:R A!T^"s!DVl6K'ylmɷUvEU˿Nq76q7ή@! J dPZcg5aW=BD�xL�y3I /r^,jIK?'Gg_~|>HJTϤfK6Z$HH aH)%HxsRJ /w JJW.!<Lq:uEju]z^ӱ֎xU)P0`)] 9#@U�D u|sf,Ϭqzn:yVGͦڕw޺SSb1yizsO0nޮHN5p |~& 1S9_x&+ZVAٹ U#JPt@=B%?=y޽MǗmPwaIR/;l4 zEnԘq0f�g;yǎ)tUuQA5(>YX0I(I*!$3ֺ�%-r*F8Qz"$EI˒ڪ5g| J>J=!�vޤ:ͦ'Ynzktk&ٓLIEJ �Eua{ehsok9;ba^Jdf`=k!K]^K�й fqij$+r5K\KsKot>ϷZ罫W?YL{߻ky?ͿϦ$٩7zzW2mɴ?fEoOͯo[lz<sS"d?ɲ,S dbc&\ZD䭛 IpliUZYL2�8z?tXɟ9޼(/�`ك}qu.2`$ CsƅOBH$ʉZn͐ΕK̬.ϋt#AQIgJR>Opx2|UGi6Gqkl�8ܟE$߻9Mqxg?z3Yd 5"R�"_m/Bdp^y! g Q.޳bl}dtܼv{w^Lz<=zL0&# aPv0f{) Ĥ ɥ+ Iks[XZj=8NZM:yX,4^M� A]_Jb#U"]X�1(%zm4j4hJ//G<~5$k;?ol߸|FVuJm?9ijԢX"!:\OBp"*rWDIDDADf^@DN !q !+$V;VDŬ[_**Z|] > hF|4MZ@*k"QhoG$|?IJI3_ //1�HjQU4<RJ!E'H78G 1 !*�molݻv?q.-L1$޸پ}Z!Nfg_DCy/olR̒gdd[m#GQIRsL.=E6F(?8$9KSzpWO~rx2bZo4 klxdzl6Z�Mv<;ON&Gl1E pKC8QJR "L٭wkZrl[kWwJ㇟<ͫqz|/rqQyoї>/T]۸o^Ԭd_"4DduW ŋM V<K�@)|)+¶ �0gyFs nNGH5_̞f:Uɝ\wJd2<,u-x42B ).sJs=,'W ʮx!m*ըݮg$O&k]ٸIDIT۸{>OW !I)10EJK(#3b=rhR8mJ$s\^aEU,ƹm$^o}}�?\,E>1h/Y q $7Sdf($ %uZ[{x^nDb̜ͬM,V{Yju֛7y5eH53 %JK؞ %bKWq*B5re�f٪v\a`G./)iN`}#і=$$IiM'%{K@[F5^b|![*wD^8CR�~Pq Ye>�H*$,V .5fЅv֭p;WLL&sǔJ3fYj!"I"pP,<B)15z�BPW*2�$T*UDVѭܼӹy$uVmoۺ6l,]YEA$.@Kt0vΡG�F"]ZNIGY@ˁ$!42We8LawxggB`7^Ufz>]٬b$,˹ྴY*8-&ɕ{k){_'Fs<OΧ޳sNft:(V(jO,Pb{S7u}w~kq'tE!@Pm3$R(Q֮ݪc H|NzjO/??<ͫ'cYR¦_g?}ꋣf+F/{O>~}ٵB+p/�ΔBer-1XgClޙ܄r d99`'㬲R*I^ꡯp3"Ej<zUjmiҊBf>I+ӇW|/{ָ7jkޱB�@HłH cc/9WZJ2 zȶXkg6;=׺I@/ᗧ0b[w߻YjΙY !Px�هfݴJ" ,TR*tT\QNIg-YRkJ]kQjTվv5v2(`&=x@BQ@ X y"r+.-*� Wv9@Pȇfnnmo<9ӣW/jNB~JDFUFhEfq ?��k6eM%Pނv_$s(8l6 Pҁ T~iYO_�&=v٫oXMtй埇G'AJ)𒄋(@f   H$02HP5}S.Ej](*ޮQ" _i) hc]J˞p"Fe3KEq5E/&3֬vv<ө*;݆E:u5߬7kN7~[wڨ b:ta=%U|u}mud㘀({o XoQnQ VW!/}K# bbu|y@�nŹzr{|3 W(LaV卣*.=BB,45pN$E>/Oskcf]z�vy`ZoN&?}ީgȐP)Z.$(Kz]d:^y!#ZoXƧ\kٽ" Qz]T/>?\L(V$ө>yZ d.zӠEgiԐ pw5e\ <sNJ%H ZzL�KaLǞ $*|t1:3s@X"LglW[N{Qk%I^HuV[fdTjD )1EBHBbf^I-OUψ/ų/cZ~sα4zzwIwznwz,V�~KxࣕܓHFI8o;ͽۛfl2;yOzʝk֚&\|H(XU_<(<{`=[cZ)"8tp(gp&AR{Ew%{Z|?;oZ6U(jV4ϓo}y[UUmr R4*N02FeυqֺJp@^1jkE(ȃH%CڑfHWŢ y ͛{'RU޵kͭɭo C$Dk/l�VLB,A`pB˂qY3 A HJ)`f namunjVL$'ƆB: qu 3 %d$IERZ\H&jrջ[{wNɣckN*$IjITU%- 7Y*UɊt<;oR tp46ښ8xzx %w-D__̞(RJEJ霛0TR ɞ/�[dEj/26y,Կӟ_C[bFqykQoWI?y.?�  "II-tjƚaS*%Yg`fpwFd&i4oL/6wv޼7=_f3`Z xF2q0;=~~vi:^$'l?>_ozڳO_ N.xk^oѳbrZ&H)\z|CތrLYI/5WOC f AZg, ([fXl2\0>gVY$ %%@R2"P`sw-613I !(&LM??BIE[?wQHh?TJ"+U BZ0.FDA/X a♅ bQ;~WUJT[ko67'{; .fYQ :BB(R lAFI睵6$D@8ܒKD�@-y=�(QJ*}t@ SIPEn8Ç�ccmzDE\Ujl%i69?]4aS~6[y:#AHK�et1*Zj9BI"I={N YbY=w+ʊ?_*S:o}V6^<W0$*bڢVR@FJRn5�B38u($iQťv9TvhIFD,R.ŠA(az;Gg罏(z}k`渦q7?wnܫWZ'=tڵglx쓃`56N,UT� E'l;`:k]D2?{췯LnMata$nj[$ȋ(%m7N9mxT_52Ork/k\:˘9G[̼.撡 |$@FBdn0%͍Jܬתm֮6WBKڨv~R{;mID�J;4 P {E1LsFIlgI> _p1NǧLO7JF*%͵ݻ||p8 /Ny))Nne�� �IDATS/ixRaO" k?nnIYJ$ Wίʛ g� *Q�,űs1^1^㽵α'10$9KH!CbFZ!7V܄ `g$ Re<+vb2 )4VoȽs;FgN~o+wn|c: ʡK}ru,g? @ HT0T`I6zʭ^m'qh~>&V$cmLMi_Y*x(lQkf ՖeJH] , ziRPwjZg FˆS�B `�2k~իdnunޕ&z>'h1ʤZr{|;߾wԫ8J7N?)&ƀe;< oWh'R8K%&aUR19g),2.K�,C ;6+kŋI S )VdnѻK"b!Y%|r0ha9W&EO06W]4UM1[%C58wEqKhyL,EZW{[Tm|w_Mjk7OFO$óӳ|V8&YJ=Y??DWj=[F|njZsXk$gi#ML Di5vUz2 C�Ժ+cLDQ8io|^"eP|�yMh8M Φι( QRU9 R)(gС]cٵ^};ػ/&٤?En1T �Q,7uxrzȍn�yg٩Da<ς/T={[=(tklt9Xx\ {]!l %j^} f ,~m.| r5|Oc�KE'b9^aJ7ESڌqlSvOsm|:}/_6j߼w(2'x [k.,xpBU ZSd[eY{㬋XT@ $ "yVhm :"|Wtoܸ/^d �DT2Cx-c(;Je±%`P3Bd`kn>M?|mƭF}6;{'O/هUm1`WHma 8e *"ӅCrt1] A^Q! # mtQy{QecO*3 ī4<6b$^><ͲT{_@xT  A"b7 eH![@()R@ε1V{D+qh3K)K{ouZW_>taZO^@CƆX7\;e})%�mNԐ֕H$!?[�wsK%jv?w7{ӓ~ǧ0I r?1ZVjq  " +(0kDH&Qr庬ŵ[;?N;JTq/O_[lsڬ ΌP"N"34|[k,|٣]^+ڻWz8"rz-gY-ykKjXPxXeiAW_{] x/`J.">kW$Wr&~DyUif+jh63fcsll\9C 4Pթ3Cq nPVuofĉs\|Ľ7(A* H2Z pjOώMit,;oZDNR)�ݗϧ7\K1e^"iȓ^@Tt?Zn: %uBD ^OVe�~g:RQf7?<=?g7xuNkXNȼF)UaSZVjïFf` mb%. ܎WWC<H+'QeYŦ,J݁CHl-_zvol5=y~:}<,*%.ZhqKC**IIqnb]ͪ\_݃gNӤc/r[�H-9~~gX릷tJ)" I(j]*Z??ϥŪqgůwgUeXդxYJ)$xoXʱΚmp7�>-կdIDg'�Us#=*RLq99'")Dzonzp{P/>>WU$ptb-7u1?[*޾u*q~(@m{˺9 5Ig$�nRH9*")yXtoa|2wDd&݇_NNOOl6m1Psy$Ah?(TZH 9oktLw BJU҉D0),58|͏UZcRPe^P Ϛ�6ذ)Zqoֺ,?>:_,tnGɳit;B3^V_&qUa-Jny.j=٘%0G/O>?|ًrqdpex^bDBBFqOv9eIv`ZO&&p0ֺV$^(YPSم;J(V-J=m֍;^6v=9r$W>%d\�L >k^\<C H:bfY|؄TtT+!P $$o'%uQYZI!'gB&7GEnobٴMtGa҉ջG�@zv2_^1;i/roj5O:l-sf�^O~oc(�3݇m<` DIDR|o󶻀ȓR2"|ߜQ8S  55!4A Z5ޑ|D(HDZT(h7_~{|xl,rw7;O&¥;W4]-6b\=7<HFR "R"BB&{Wo||cuvJ>_n$YOxgOMRD�L\7RFQtyS]?{*"TsGCБB )||8GP�ƹǐ 5@$WwAҳgOs*_N| o"2_~–/7CU|S-$[3!0HO ZjeQ9P$BJE�p�q+Bt [ٺ\]cu*SVI':>߯gko}MM\j"LNChae΄4"X8j3Ⱥ,_t\;;n<?}Iq~< *Q'3UN+k(Q(䉾c66RhX7(GǕfsS ZD䦜Q/V^NʫI5vCǯ||#P8j/bsz29?Jc͐H"RRIE*M?v,*Z.WeKl</ km !:VR F."<Wa+P>n_-YĘm%"+[m^\cED|cpxTV*wWpv:Wͺ5:qlҊZ5@DeYRɓ3!�` [\Ǣe8C^lkARN?yG'wa wqœ>8t3%4݃{7>] ,_ dYN |u.B0!o(R ȓ'OMAk'^B;RH4y%i;N{{FDX >* /u/88�a@ {7{| )dQr{m$׺{!%oU]uv4l#\xm>xun߿~Ꮢ,."}|Uw4yYgD4M5)J+R0T֚Z66E!~- 踆 Yo8s8BPgj0%"%!zyݨV~XZ{@liMeMVӍ) 3! @D ^ P�L挱JJ)̻hE U8!تq_VZ UٓgSg}Mz;dӺ˙M(j6p֊znP/ͦ!&Un o|Ɵߜ?ȇqE:*MBhvgm~nO/>4 Eyq1(l�ia"Ue$pBei :Y&Q2i%]-cu--D߸y0$Xk9nݾlNNf*^jT)-%s�@ \ʕV-!J@ʻdC$ѐc{Kզ|~uJBp`Qx�(ǝ^\tY˪4D6} Pmo#-wU"0ĸ,^rUTIzRJD@MuR z#RI߽qcD ql}͟qfSyA$rI~>'GsD4}>ZS7Q QS7['*A#t?z t�.I*9f2|�RNiJ(V<'HE*⬓ ƽ{7(-nNvC1i~[ m~{]p!{F)/j/rc X\!PQOo.x-sU)iu! Y'{ ӯ=ϖ5uۍxz1[,R8�,֬*  `-B^;X+AǬ 0] +Jy[3jڔ_Q"JDJK>~~vr ڔ9= ( -2鈤$q9B`D\]m/QZ(PՠP7Wjt )s)Qᷚܚ:Ea9[^NMaʼ4E~[n * �v�k^/#�͢,sAH9<7߹O:;^7"R MWZC0d;a4@[Ay/,˺y:Y,v9lUVrh~V�t$xck-^{@$Fa97.WZODf6J7ܸǑsYk*S�|_<z||||V7 CX8癍ֆ wI<Y_ IR `a )X'IB(̷mH)p@l ] zI@5y཯Gyz"&FQJN'cml cN^.C% ON%7�o�4ƔUMZ'Js&7'(҃~v~ϒo䝷Vk�}kw)ʼ~?燿!?;ѕ+.& �B<4nER֔S1.>'6aUHV iC1h}F8t$'"vTWB\Ωs;</3lrMK)9lO1ߊByNR��z\2ҙ}|UGNGJ kNM=Ub�B(�=))N#o1 QJ)1&^:!Z @LnBRt$k078)D<ҁxS%f4mi".Ia'lku� 0:NKÁa1[[5vS*� "rXk2⍈, |/7vʭ ?I\lh-THEڽ>R}GHT67T轞<%@!lU5O6LDUDZ眭ҡ:R:J(2ְ(JUXSZ[*7ER8X1qF�T$CKMB5gKr&:xrNVg?oo vƩY0tRboRjjF5+ Ly9wkJ@ {AYV*:秓tMtYR"4_AYr>()(Q Z$Ζ''Ӳ4Q*K펇g'GgUe@iuttqz:~Ͽx\JkWN&S:`%j)v4Hı"WRx)\csJFqU DG^#Xo/,~ zmƝm �45*a0!YJR46PmWU)x<�lUU wI#�ћn ge^!uSJ5gZ,M��PPy\ $đFDn�:Ζ_?87ݽ6U~rt>[<~r|r2\!t</oy7GE煵,VaƁ{-Z+D}8n?7`Û'""A/U/]h%`ڬVf",H# |0s畔?Ѹ^rÝ>}s)Ei�ֱ$Z+^7>7ߨ@P*oҚW[wM%8*++(E!xc*RR)%PjQJq+pw"ޗϦG_IiްrdEnŵkGfS4!#qP @WɅ7_" PCd~ww<^y7<.|b 86%1P R))JQ_y !ͳO n_?0zB =4{`g?)F�XA�) )A$pi3\aey(HDgb09GRI%e#<)EEJh}ڄ8_̗\v3Q t7'jAI;o%yBhZ@+ ҃;Wq'xo{| 9Gt*K[$XKckRzE_z yPQ.KkwwwgRh]PއqR $2Иl:/ɂYWUrVM^ԆiBGþTrȟ>;9;SR,lY}7n'yu4MUYDžWcL%θԕbTJ),ƑVZI �e%;Y=FJ:#Si�ѶbFRR @ R^@mJnweq_+eQTvKcn7;^g\/WyRN]Mh1=;zql 0@%EeY�D< $HDR ZJ(}t4߼~8ퟜ~Gb2YM/*c#zT !l6b8Fl3<7|.[{/NV/.˪:@TZqԾD9˶`6J@b_~@d(YQV3R TA!PUYc G]Eb1_=~t;}x8I6$rN֬}M))[x0oYٵxЖw>4�^S@h RI 䜳Ը|K&I>W:uJ8ZZ[U5d2;z|4Y-7I8!PQ۬gnRNۤZIhI!DGp8J!ͼ Y4'�� �IDAT\NRNgi+)| 2*AellJDCq(–&pxx7tqvQϻvn'Wv.U..f˅?-U|)2δ1i XӮ9ۑRqGڻ`l[Tc!b5xVRJ]YVV</ ^n30Bk�Ueuiw.}QSFy͡ 4{ܿu?QqIw~hxo+gI+wёR2+՗qEj}g 3qoY,~{~v:ixs.⢢"G"�<+"k=SQ.EC Bw3od^,pdo7v:lmb1_-VD`o5uS)(Gr^3�b9:>?>1#7JFJ$B-z&+,p_ԍ:.7uI4J;A&M1.զѰ;wyxlܤI<t{Ȗt\UeW"/6s]8WupPpJg?x*N&Bͺ|xȍ''妬Lh6[5Ln٧{߿ƇJBQӳfUgeiqֹ{"{^'!P)rl +O!«UTR@QTUκ֓ymcLR+wI׽yZ;BrMr ñRJ X#ԼxFZwԑ)'"Zgm)jJ*!TIO; ![{WUZ9@QNTee _"L&qGIO>~tG+{N( yFSVY`/??4:Ng4VUu\ ӊq#8YgMz~H)"_,Dde{(P(,fhMmt ߔ{G_pRiGR./Pk[(�8_sY7.އL#W2wsZ^)%ZR) 8jǐ1vs)Y-di"2%*�n2d|m%)+)F?8I'^|p6]^;ɓreGX DS1 [ ˮ2^t|I 3*D=N@ZZ{vvVիW;;UY$D)Ѧx*Q@De ZS3se,6BRqmu ׮쥑.b2})@ί֛(N.NO&ϞOdhSRJuYmWM߸w;!PRʏ޿ODUUI)�,ly|r~|zqY,Mcዲ╕RZѠK%RX ZUG*/)ͦO4uy_7ƌQ9w~D_\F<x괆Bu|Qlz$L@j9{[,g_=[,GGOqD@48#A餃~&'/x~{_uWo ~}m!p!#u55lu:D)NV �j) \݆4RJzS�·6پ7Dd֔LyΉ711"3vE�RU XLgVL^)eT,a.= PZz J!VhDŽ`&qd#88cM+t9ONe �M)*%@18Lm~Ǝs{(Bxoܷ"$DYG|afpsD*M4MEQsq <I:q|K컰ʘlq(7mVr֫�bF!9Ni9L]~݂+DB�\B(3Q͈e!"@4zX!í]))@yC@ª.~q�D:7tqZY߻{Νk?O=9ϖׯO?ݺN^gscYc7B �X[~4�<nsptǒKb??$ �e^z^5UE*+[sqk (7+5r P??KuwGqbɋqRS90/y\~|AYOzrvv-@[{$Oj=_h8{#�xbz>]l6E^yQa&k52䍍#el5]QR#pDRHku|"l߇nݟ;7nMON~7JJy{';> ,e|-46EeB͊1�|(r~.x4ܻzb>q&Ђm)а;aI</Ng{;?z|X.sRhQ+?&̭c1 [;믤Fxq ƫ.A!Zmw%yzf%5#hq{C{�>�TiڊmZ5]cT@ιМD.A ;p\[,֒$r!D18Dh ʲ,MSkmUUB,%�f ȲnvXof4�um@.?tzo5<ȁ/`PbKEq Be\=x^#CF9Z?>L)uDd׶ZIfC~ն/%|ҌwR?fUu;Zeg3.BJR1[%ZKnJ߻5/x3T5h#)% /!u<bK lV`4uXyw_~<?:@D%o{We(ʊ?(Yw fqf6V =!Ć:>9k׺~EJvgZ�:YIN'MKs}pZReHD:HEE^Mf8j[ |xq|.~jooq</+P)ԱV̓/>+2/J"Jq8*+r{�qeIFK4㪲U?��ZI%ŶD$<kD*Ҙ6qo_?]ŴX6_~ׯ-yۑHT3 f&(%C c,?yq/x&8_8z7.׹w=�,t�!t7n_:yQ>=<;:xqr^ �Gbv~1SRͿk a HTq (m Qcl<Ɉ&16M'B8\&64$&q̝R@PUb,uiԏŔT5�=x!d"AIjEVZEଵSlbprF[W'1* @=5dl6ƘJ D)P+ B;ElBpVBp~///_J[$"oJ@d:Ob~% H띃+{uQB 3cD$fx)(k\L s(/Ճpp1q9,M^a&qTDU#RjzH.ZFz9@߭@.S��bHRjbpл}J1n\eùhUp-{hk/eA $I\N'aN޾qurp2[Ng2J h3>}T P2P@!׋%Z"(ʒc@F��f2nwlXo !xRI';$vSVR FY+c㬵D5ÍQj:WwyQLf:mE77b�8:(+7^Q&ڔfx 2nXs?hSV!3cm%X7EGZIȡETR%Z_?؛Η�һwnƃO0=:yйiD)*@|pqIxp7nx?'=D/~_?>Xkz޹r}|6 YG84mH68@@p yrx @{AO; _kN/^}έ<yztbףaM?'o^\4Pw>�u " @)`BB��zvjQt snsu'MbX\֕y!duD[٩VB%EG\ i(JE9v@�k ݨե)jCQ1 A`HZi-VJTjM*xVD)wa3\+$q&B*@Xmw�)95,!e,_#Syh!�E^xc,/JL�iwޑ "9YG,a@$[‹_^k}U;Yo k-�lb>[Ҭ&VR)hjs@H)ֺ&Z  5t\ljW-xO!RuS 2A);yc yҩBjK�x�Gk x",W$PD Æ dOf%:ᓛo+#i-J �B]%Z4+|6,Д*9/ViBEY,h8ewbqi;w:.gfSEJTRx-w8S5@dxROպLx]ΰ;G V6֞_ NZ4-!\5a�PR^Zk+cRRH@a v`]JWnݼ|ϽD)|@ k^b UWBhDx%o߽-7/>GyiTJy~|;W\Q<r~PysΛiFQTy"eA DX\ =24S^* !IytΗMY(n]ݿsʧ~͓O_eE�J)khM�p>]di^\ ARro6r8_y'7 rγd5KdRZcWJ'HY Ddu4p3eShI(H*MC\C d]GQ+) Kwze_٘6A"C7<\[km^h{R>I!ׄ:ԓJ�B8jőjz$ EQY|k8&qa|X?EP;x}[x*O׮83i-Գo ";("c/򢸴:@AKɡ& 6V>"F_kNKhJ}(#!+w] X#VvO!CmZ[}.0 $4�@e(gjYsؔ%v5Z)%�^"$ 0oMR+Բ4A{|xw߹;-6 9c2*)#zKwbBD PUX%[Ѥ\ֹlfJ޻wQSUYyQ~tUV�e;o-Bm=U^l6ƾ0І JK'�hQ&Dq] ^ZPq�NDLՠ.2(M)9v޼s>zέIl J{?B()ysQKbŇEk]Ŧ8R[o&Qw?.y=NQ'6_<|z>]=ֈq{e?䇷~g/6E!4xA  eV>{ן>^nܽq{?=9?❻gǏDJ &#rΝM*0="vE_gN9WKM}񇯺"^7㢨g c]&a'MNG2F-9ڳ< m]~.=�Hk)e `}#bRÀl*Z*m \2X?pDQ,ϘX'uʲɲz|k5MbX U|+5uȽ\{D}uR!*{Hxg'^e[f :=Xz)GRIAVh5-dQ'IJ!fz3Y*"L~o^fN7C24P$ PCd\7)%;iؚ .WښUȓ& 8c\tyN"LXϘy=}ԢS\dD:geC*\7[}j:Nl8RqZm4և`GcJHE~zM኷Z@q W+hyء|὏xww7˲8 "E$nO�H+;)^ })Ylsh@qaHD6eՄz AEYeYzH QWϸ_q5FZeIIE(Tλ5TREJSXJ&Ὣ;l VE/�{< >p]B>,I8o_ro={rxt>[RJ"ZJEi|+kONG޻wo޻rZ y1_HĝT4=htb㼯y}DPEiNK '￳?]^\\/<~)+D�qDt#BUUvvU\WB@ݶ暡6USRW^gg1IMG6|?Ã^go8>\Lu�Xnz&@{^W%E1hD1C=+VjmJvXS *Қ^5.~T8Nە$:W(\H)5)eԙJu;@*{98ұֽReEwCi M%yVUmL@!i�yQVeuqv6"t_Q MA.4Qpֲ3h+!PӬ [ѿQi^c6E\�n XuM5v!h�nٽ1<F)DǣѸIbq-#Y4Β8K8RŚ$ZiDRf%/1wSF^^y�~!o|zvv/mf"k ! Cذ9}~y8QI/LJMYG%Ln˥1&M,IF;`4d\EZ(:iZT xXoH�I*P� 4O )0 \0FJmhAB1z>R,ͦ5$kB :BIӽ`_?<:AavaYTXu9)L D%%ay@`AT/Kx;?zO]e\¨ !eUTUeݦ(/:Ψ0-8ֺk!lpYhp>lDDEzw_m6{Dt!Nfօɴ^ލkŒm i1c5.ZaXƺzk%/P!CD/-Z-Y�&F6(E hC+(NjҦ6^Eg*졪1&_AࠄCQDj|q }G@VJ*)odؓ"EX H x4d!+-EQTպ4:@nθߏ(p &ItCḖˬfc!xkB�"@]t>Vyc"f!@eUϖӺ}B&0~2�� �IDATBI1!Χ wW쬍_ܶ)h =QF1SBH@%I!U^||�Ș<ϝ@)ppg<yztBgE<:m"!_As4ʎ;TI;4෣?ق3˷��� %v o26,j%Y!FG*ƶsnX#I 4Nw:&?>[uXƑ aejh=eE�!Tr|i^f \Bđ콬Z~<ϭ4b%C�Vw!ԟ`enT.ep10B&i+%o]u`^m:~ ޹jq>Y:ȫkG۩ua?"98{%$>�A |?ݔ5L(uemiͨߋrv]U*.P(z8({$8g7Ҙ*~ vDt2҅ *{r|IJb6�eYGֺv\D̒Zsr=rmRȡn@u5א]٢ 2+0< F!n7M+ky^vHui!MQZyX7{@RAJ[�(A;wRHk{�،N @}!"b۽r?v_L'|祱ذE[7Fr隁_0n.xy> a8B rQ�B RRFuee"X75)t*  }A`m1ga!/j}`o4&K r2_L+k׎HS6l1.75/ճ^�%b ŨY7հ׻vp(WTEQ}?|v$˲`v:YeRJ QeYT|2˯~)ׯF(P T$ ;k7R`@D?TWJɠME#F=R)l8-BM (Yα5 q<!k1gy >\W9jƚnI&IG:ˮ݌Fq nz[U3caY܁'EHZXk<gݤ(*@jVD>If (7+>ӝbΈ3P(HVq(SSZK~e?~h{Yn)b�0L$r̘gùF�(J}_̼yso�'Dd YdEƘr<Gjn(c, eth-d4IR:~bJ�ak,HЗE_0nai^!dX$i"U1^nG7n7i6P 6jcg XSFIYn|9].è!Y&2N\#2J}aku&>u5yzA5wg/UJEHR<^3 ͈RVs!W"2X/1blqF]TPouTv*姻NG;0| �w[A r[�Xq"Jbqc)Vwv_Z!<ƹTJZK1O8[[]p (A)UyykƝ7Zh2M|P|Xݮ`i{\~M9 th-S:!!HK*,E=@ZS(%<E!y;eQRS\?H$ƚl~ҔI3 n]z5踇7TW\zS#'EN=.<!n9XK)=~xwn=|χnnE>#@%ElAACBËN5 9贇)�`ei�oӒ.؏)u4W�hք7~<!yCg /CNVp6:BTRFT+p<uiRjVy".fPNP#bm6N?3J9rRZ\")8ح RʨC-N #ݍ</ҴpR~ Ori`"drAL+f/L"IsE^!��  ;Je eEv: ;0N3mPjkg,jo%+90Ve5Z1,M樹Gã/__Ne992#(kQM.%*F--/4K (AJq$Tj`HkFK-Xe<KD7[;^i:<[SQй7xE5$+Ίz dEҨtz@iwMm4 �R7!' I\Ŏ[XI^[6D̨݊@ LSdV2F90,;@4H}ܔk[WbK.mv'*9h'%D7Z&ceΒp"(Ncssi7<==3M)UqCu%�G7T].ՄP{(X7 1qrZi�*9+84t2\ /5ZװVQk3fIO^u(/4N>:>zr;BI@b$YM qC`m^}{v9?Yko_؍^ng̈́gX0&^.4RJ<Y.,cw7[/JRVc.Y[*%}׏{A{ٓ'祾t]RӗRW@pv3=MeP%fm鸮8uJt:ΦSwYի%[֚j\.<I6aEnHl4\^^F#z�7ڃ`Id"ZSF�!_�Z?QJ :6>Y.m)�uD,($@=J-5,4.Y|k7ͭ:_ ڔj4ވ"d䜢 Qae]Z2@)mfYV7zsgG'N.G�z'Æe,~" V+jD>eDj4}O2 0J)E1c Í-\ucRr׿ze]Mï_^ 'n4hc%}DpIZ A٥`nJ Dp,Z[N#ژGDF\xhZKrѪb\U[Ĵح@: nnu t!1VigiF~CZ3_. +(=9F"h5gs*[8WRAPUDm5lP0SjR򵆿75 !9-h$4wl6W'\ە)ZΨeyq6<!Rħ %Ռs c4"+%�J&8 ]MvP6J~hFp˸Rp_pΤR#e!Ƭl!D"gӳO>+/N%4ƍrnY5) @iFMQx'u{[7T6_OOJn7n6I4)V)�<s֦27￿yt�T/$OV eֶ2CdJVu)-'n_[Dn8XVheB2b-)oH@pהRkUF(j~aAJ4k"Xݶ{Ah$IMөkQz=)h42_u^ݯȥqy2B Jݢ!4{F<:-$SRsP̗ c vj �0X̳l�;ZIFvo3hHe_#":=qՉ>$T:lܩ)j8M"<"t:],i>YGO^&iZ8l4(9XYff!j�0^\XJkƁëשGGYg$1A?5O_yzZ " rYPt,˭q|5kuzQȕebtR]E'` `4:|ϢKWjUJY\�ZѳY, r2]ltGʩhm5JBf(i$. %-^}ʝ{Kֺ�PZx2R[k0T/v2!vKZHnthx9vo$ $;0\?CJR U5zK8*۪&LZmS׺Zkm)\txeڽd,M)et!ƕ_Y͗KEۻ|B'kGР` %D#!X RLmõ6BP_|~>LKFif|=[SJgi2cJ 1* $%&+ E3_6UvX%o9g ~}o 6Al?yiA& ]k" )GS"RZVjc@*!4Ss;/<;N<8ؓJ.$I8q!hN(*VRfnNH٬m}?r^KY8nuh8ORjUX3񨍖gp4fb8lF[in촀x1'P+H;,YIKխnю`{RbZ0FTyD AJIIuE>t8:~9]̱J !HQ t9,8ch6hEoкrslwB-|><)<-E9s<MY%眜SXg@Y*PrOt?g <d},r2F>->,Ңyrv6ފˆR �8v؊>Z ZQՐ,wڲ=@][.|3y!,=6VX;Yx'q:7Vdy!9I�Vґ 7޸ZguZkp" B.|[^?alпuZo1-<_$E:K5&q{?d(|VZrTB1Y0qWe}fEMZ) AJ('ZQSj`ю\TRU[TɃeR 6u %_w^q8 Zֆؽ?z5Nb 6ztp-jIoU¿)llIERƠBi^(.v H|LJe;�BFr9.旣L O"_c�, 4gtQ5RRސM:&#cr0o3\XQ$)aqw6n=IM !A)2JV>ATR#8; 0̲իW7OOO//.ZV~g///&J*ܭv.eZ+RRjKI!6oa,(ꇢȥz:O|wNO^IomSCc[Ӵ8I. q7(#S* O&x) uZ! YR\{W(8MNv=[{k\haK0 [bha+0hxx> J6[̣iϦ2#k -RHѼ~wǿx/ߟdbA3b.fRuzicU�nfYg=.HR?GgQU&_dhYƘGI:>m`>qHZS'jFt/dd\VH-ӵ3YktcegܣlkE|LFjmH59\ [լ\]匫{uP%or* ZYRTѡ Vj;cۍwn޹2^zuj,lrx=)\Z N):0ZjC/�(\x,s$N'J\Y~sq(!JX skA*-jZhsxQ]DV#r@dCΩfosj/'oN1;t8R�Z H")0"N[�jUX] 1k@J3\R*B[7ϿwID4JX GdKX"'i2·J2lcChuJtP$5*U{{Cĭޕ;s9L4oK k"X4289A[[Q$& B�!5Xc}{AƗAȵ2J)z\jcwol~=%IDZR֎T3֔JkU @myhed(#LP@r'޸ŵ:Џ~,3PǵFk%d֭Hh @+-X5c/k��,gBIi Cc�b%A^ VI`I)FLB|Y^ ϧ"r!"h,lL2y!-Z/77?Żd a =HXmFEDDRַ1nĚE.J8eD+]hyj ;?5Jxi Ždv0PN Y,8]ۭ%A `ڸTW]VU5ߜP_AU1B(ւTw}S9+e) y[ݨ†wm5r%XU઒FW|۷ LQõE!PxZmq0J)VWd3 J }? Vq2OfI7wnBӷ[Pmz>bt6`K[1θq?JW,ycM A`L%q*ZZ.'9j7hR=!=(s 0ݾO~:d͒"<KpţNk c�K7_FgmY(e{+:e#n\̕N~?-49$jdR7; d:  XlZ|T9ʅԣ`\& P> !Xܾor8]Ε�l} Ǐ_&ƕ][f`"|BQ+=5Zhk& E@"|@La#,N `]d 2$Iٽ*I QRJ*IФ߅*d }}(O{i~/Jx|Ah&RRY-8_.8uL%6[}bWd|[0,]#qCrjt2\۹޻<|:t,lAwǹ1&Iee2B9>SRg.HZoYBFA)===FL7:Nh~qzEQq((Ɨuqmw;7nÇn5{RZ)8N*2" �U *T.DkSHH17?\=Z_x,gi,/r8C|,rcL<uw�e\P vx-- N DH&s'}M0UܾN-)MSZkv|wp|g/dZVj5 �j4 R*&S]eo?s;J āu\!+>ՆG s=0 <|ikد~w'S>/==`8_, /,.!O�P8Ԃ ue.ƺU`UVRiSjx1fǽ+<Vʬ壪eOg�� �IDATPVo7*r(ejY袐O?K^kO?a!(`Q3@t1 X=;S:${>!ݢN!-X)VʸyjPFaX[vy ފon6;Q}#l/KCM(:#dY,͝+|p,L#lr 5Akh %Q)Df%"0N7waOzyr8̓yj#0@@$XZ9%D@Ju`+21PFNGq̹UVZjX6Aft@Xkify;5s\ n5[MFRj28e~_I'<�yVE˄Cs"D\L%Uc2J*%z+1Nԋiٯ I#1itFotF0 '7v[`-[Px9U1)hCi6QygF {pcp'?o^كG_,!{Y*\:A}{뽽Ao^ƙVgbȲJ(hFpή/jx<yF(hg{ogQ"Sg,qIa. ,3gҤsDa)ZRj)]>G(])t qGBYqg 2N.'xɳuXn(MIJ(%U۱3\`%6u``b)tZ?a>CdKr,g-)'SBQTF2DιBeTZ冥&[9B{5WVrǯfee% zr6y"�U uYkB3^ $k\?'Iiv8tZ[a� 1PgH2*<F)�,F+q\H\H-A_7OnokmF<^̧n�f@5$$U/EFN9DF[r{(h;;ڗO>|qz4ѕo)TUPWFiiV9]Q?VĜPScq�l%G8?Jzy {>/9VZj1O=9=9? !Rj}:,8�ף)]Hc�Y+n:s/hHm ;V+G n8\,.OLvzy<Lz{[QÐ6z*s^t<?;;L&uxG [HX&D~(pݟ2|DWmµ鱦*�+%(G�PR_̹%z_|}v|#u<QJ�-z;{4x~csX" 7N<+ ghF~ڳJrL/ 6í+Žだq4hf/  6w>=x7w!O_dylyH$x<.d! ɖ|RxE8#Aj\ 8*]PRQswv<rOJYL,T\cJh$yJ[8ļ^qEHcxCY4 !X2 R#Pr6E=܄�aD{ c��ySK=h9.O))#A1A¦}["%XSlrAg].1~[A9\.Vc9rSE"I^|<:<=<ie(C%RFJM}\g V\V}�1~+ooj X#XWk)c}7MBWIE PqkleQw42"yy�X4^dYR\9oBm\=<j4&<-F/G}xg{e݋/kvZ}5M)!rQZ\ZYj5jȆqfD2^^<=~qr7/OgƘLfc{ "2hwGg!kxeI1\q�DFk{f>[#.jPU5!]]ڀ@9-#URc_,^PRSJ7h\pʈEvL8/Kx1IH|jM}Xٝ~3PؾvwɗRܳRٷ"W'~D JjXaxD(9z!� mh^fb]GB{�TaʢI*Y?}4f*T)#D(aRB)%Ʃ8c E/SU"6'/F<b;w?OD,jm\dY*7vZ݃& G~;GOF y( nallv{N'yl"`' 8Hxsj7v/O X6AZkiBb;ki_ݺU2=<jO4é11y%Ƞ R`뵂y9P>SJʒB"WڍNq|b1:#&նJ>E>%MJpBTf$"RF@>5P˔n 0*9T,HDjW678W2 ~kJprq<MAÿ{ṚgƮ?!K kZ-Z֪jb`dPr2NCO `ww' ݪQ't?ū;ǍRR@ELLa[;K a*�pm(�#vRX Hlw+6DasZ[ 9Q,H "RNU$AIdP"qbkkK#0yÆ/syq2͎F7hNgXkNj'әQh%aPFHDMߙm4{[M,-Fgm% Xk·g^fʿ+wݛ?.�ڸeYv8zq kEjm-I^ηss8~w_?;|&¦,-Ǘƿ^pQ2[}?y8=p>I�`󠷵}|E2R\q7qBŒf^*"xGf)%릓FkiRdI(+rSEfVPBg!V"ET *N0q2ֹS:Lv�@ i{ϭh1YHj]A<ϖ=@^N\eF3XvL*7PJ hlYsFUU ;Ǎ鈼f?8Iy"ly"?͗{g]>D\+F3[πpNx@K Rܣ^ ^WVn]{̲N$ 39[d|Ѻzof{/V~hц-ch^ȃ섃`ʋï<\"R2yz$W�P;:{g4� ^o'E$[hb?UV%rz~duѼBx_/HJ1FJUq͒<j/BQk2sG債7ݝ򽻃~r;?хqZ[5S%AKX ?jy3ʉ8c#\[i+ XZ݈3Q2(4N*:kWk+BTk]sód�_ ~?ϒ"<JjUm;K#k=ƀ!WAg+.]<OD<Z_H)Zo_.//x/pV)q04yFZL&<gE.w¦$(zGڌ<U+݃r4Ad.3f2 ĕ]2Nn, :�\J-7VFq3?f,^$ ׺\=(^ W_>=/&(#Ѩ\m촶]!ߜOa,xj`gc1J^!O>ӣq242p*"ZJ%mw6!"PBӸ8J)ʡ ۃq}fOgǓdLy+x1\|{ͭ݃ "[;ݫūi,TL;!('XRIY貽V-Y!uJ: e7^G)bs!rV) mLҭ[�j Q\ [Q<]-EuE{+@jgL2j}k_zre�MjRf uaڃ5 4//ٲP#:R%0q><qqp_>H/.^MUf0p=a2J6JKS[;P5"ʉ59!߾z"0a:^X(  f <~xy`Hx?t^ȣ(Z&s}irD{;_͛Z<8OT_giG@';{^n_p~57w2iI,dIqiV7|cKlp%BRJ tVZ5^JtQ˼4e{wt۝pH'xW__:5-8iH5Z]ھγ8-2 jC ('`AR[ =Q߻߼x!Z>glAE9HT"kNK�X- ;zI6'46kBJ ^@Jm _IY"JjRLǪBVwi/hvd7T_DS(Zb<γfgyON2Wk.ξs5:Ak^{{KmrF{?}I㤿~~z `#y3L=.<.eT@QB8uhRBZh XJæ$i*e! ZJKtݡZF?h;߹懍oN gk3脽ODD_燓I(��(T^ΒM5o@Dyx\R5Jjkؔ1D{SJVDik-peyeH8!DK!Ɣ~~l6ϏFnxw7nߋi<<oTQAD5y ]iPh ʺ[TtDDZ,)7qj\0&1& ւV)ü{)%#Vc%rNZkkl B$uBy{7\ZtYJԑޜA(iggF1 <PJjDon{7[h r]Zpz|9Kf̔і{ (O x~21,RFk!"RzG( �ej-بk߹A4LZ{$R+ItʇZq6,OѣLjHr'�`1PFwŞ\:,HѳËxŋxz9\&IK(7?r~ާL49>8{ `\?{2Y3?SٲqJ*KdJ)k0N@V3nBRR3Nz{;?\E:9>_^??6v_ZNנ )+W?nz_L'JjdE(-2) %SXEL|RF\m`jwOM`X)t [țty՘,Q,|ڌ~s{c{9_T)qm�,|4�Y"k:3MW` r8.Rvϔ�1zû":#$G/l{aw:T0"Haԍѓ'gOٲ(2Ņ1F=iou{ww?qlh(g{Wb;+;+AJw"k ;;[+0c5�*;?ϟ!W^ еYf-U{k溲(mq݄Q'~ht91:JZmІ9r="6يn~xWy%^/:V珆bdr˼Ȕ�L&4o͞PJ)&1N \,(mo}k ME4aTMͣkb pfbb7Z)Ƶ;hJ(#n͂y",VysvX3_眗\ E!er+J&eyL0A Z |¨zvaefЬL[:rΆigջ֌gY<+_󑸦@aWEۛ"~K0FTOJ7΍'?k)g_LgE:-|vbLTy@PFO,'ɋF8Y+�,TXk"ZtUvӿx@[UB[%HPZF/wi<I #S�X] �# ~C7R(N橋gtM<ZJJ%nXغ9x7ɣdܕYom˙|Ag+Oom{߽9{4~:Li:>Y29|2m\imU)#nDb5Rqqa?Ncptѯ_g٢lQd+ � =4VD9u:h{vmhzDaǏ~|9KRJkzR " ,֘tFuDkBmU�7D&Wg<\ݏó||n|/]Z"Ov۰zibmK$ڬz8"`r¶E_}[^ݸ}}[^Ɠ,:l{nЍ6Ơ:hAf4;?$.g>'�{?,#bȣVЙϾE�ZBp>G,+Xi9`ͱZƵ eƳf-jmBDkA+-`k4)aC;ZygRBk<2܏xouޞ/Xezq},Wl,sVU[[v{W5-|}={%oSOO2`Pyi5ηZ7¯<En-pϋv..Ogrק/FX)I�C@PF*k #*׾GxԢ} 7<A1c #.`b=`A报2VF*([G 2P4%-" CBT:]êwjIhoAމXv} a[l:~Ey4e6˷nuEwo6Z=]x::MO_e.BD.򍽖TjspʩT2ϴ4h:J)$J1K)}|쇗_Po6𛋇/'OO]></RI9"j8gf0f`"ebdA#e>;Iͧyol/ruy8Kq}(xFDT0?Sɯ"7/?{�jvHʪ\3Ea3\I;R-j8XCRDW!n`5~ݿi]�P5USk6Q"Sɣ?ilI+E�� �IDATEtFhp5 IfaJdCdaKq,1 2pǪЮH1 qBTfգ79bcz2jnq�d맇_/bccV[6F$'m+Oٛ5IregbnǞKem(vl6$F1Q?(lI4ِl.M@c/ԚY{FfHDF_Y'k\/X�`j˚WB%Gԋx2ϫLh&�|uyۣoLGg:> ׿pK #�jm"SYwn1”5Gos0K/?w_"+U;0y/Xi0Jm1) N"ܕCCzǘv(-UV �cV[;Ã? Dh;&TAGA*92q0CnKwaoBy!Ntmi"y(UYҨ+Pf:^q()Z$(\pJ(h[;BXBN!8v+%oב@WR2^yE4hKCXȮ%3j@&Alt$&,"|M#:0a W7 NS󣙒*]48"AC,eV[tr@{EY$  [iKy<Mv v'颻I%lQdhW"{ߟ=w;SYZeʏ[÷N>|FVeS# XU :\NH*F) "Hth\J*nخjLZm'|׋Ӥ; ?o)�ܤҽ,*5�pL`�P]MˈpOhR 0B8l>;:&SV?{[OW ;7?JY**';^or田dID �WG΅ a~(@j󶆒RuFvo'>˧KUMS&vB ߝdzUr�8q4_ţo,eY߳ܣ Q :m!ʤ>_E 寺nj򵢤al,gtUo*Ϟy}.�EKk{ �\B{)n&m 5?p oFY@B()3Yʔэ&N`56T܏:Vvyim>޽ۑߝgg_s1],~}/eIFk|8[t?A//̦z=My{8Dde~ p Z&mlD3V Q *4%4`r~8FbCRN+;vy=1^<_kQķvxc�U*E{U;pm.Rj:x쨕R.ho1cUu FRxy8"5];vq6ںmmǓөVV)RJ!\#V[ W\1c \[9n "J PJ(wJ!6�, v{=n mu3*uKUjkn&0j0XY ,40Q8<o0q~y*=>x0î_joD^'$uT)iZv!tww _e)K*tw'N/|VV3%Lj>[UBxUS ,u*`0 ~ (#4ABeq#_^*Gk9$$!ԁ7e$0;Y_z.矞>b]>*dWe x{󬵪MA(޻\L‘3'y[dku  qJM$z[?+e9}\oߍ7g)#˓$_V??{dg໋ϓ.czYp!<,Khm]{eڱ 3=pDN;2˫db=?h)%ZYj,yV[�;b|7 ^L_6(B y "� <&<wf�P: ,!( g6ƚq UaE+qkKІ}; ([$p4G?=|ϒuZJfI �] t.QN%hꛥV( [k_/(s]ѧ~w{?zvOJ9_ž~]?U.eOGl.wGvuvV!�^IU$eQ'iqŽA܍*io*DDk4 9@Wʜ MuD-ME3_?.ʥ#$#g1P3OYYlk,ʈnjrI [Sn[�§î2U*%'@)%T% mkYwlԵm|CB yAq@lQ#@�)9G&}eUYeEwTlı k*2ZBW\aq8e*/7[]kȖEk�H(p1Z.'i.B@KcP "ޭ1oT~z;>Gݠ4iF|U.RSa /X;D"E{F[} tbuݼXׄZ l} `2J)+A\1釮fxL:/U{pGf:I]IUP!1N)(#Zi-- )6rus֪RkeͺxUшV9"PN{{To"}Ef4"5.ꜶmPJD:<ו>Y.{rf_vvẹ <i/6/7B+~[?hgy)ώKYJCNWQ��A$?>v-GZ@A>cvwA۝=_|3|r$y(-$ )B2ǐ<D`tL:4}mc^ie]LB�EV;�$:̋5B)Q9f&K}{0?|v ._=G^(Vix-#kem@;�@^ BV}eYӡR־]-,RW4 :rYr/|dy,_Kkm&5h QZɛr^/ A0׿sj|;5& ̥.+Naogo\]^ΜK뀑Ar]$8 k׌FYA(Ш6JJEz:>Hʼ~) G�nQL B ްQU<%Eİ=p@zqm.s2r=fQZSJB�㦥 ؋A (#L !,6nήE/v[an,obCh9BӸʶqJYM,@>$dz-0֠D+H[#B)ʠPh+�B2iIKlYQ6{`^H9HEׁ'4<OfE/:3ĩƨw0;,9v3�^Mk &T*RJclJUj?`ZZ̥1HTl].N7Ŧ}/vY1qBJZuI@Yh' Һ k/Bs.|8bm@.~yox%46:( 3F Wp;I\O;?{ϲ78uWųe udug=3%|䓗O�0k}ǗKBjyڰ@ׇ]BhSF6 ÷voJT "ݏ =C `,wjeԏ<q#f,[�*dc(߷ uiJBh;Tzji_o/;Qw'z[w텃)a>=_z& kW5Ը?ցS6Ak-A*ܗgo<{'ѷofW2�`-TYeeZ#(K) -sZin Ii]�/K&: Qѿe2&]L;QǫZ4J""DkZKmkrB�c(B6V)E Cb֙B\΋ҵ |ek~ *R'#C֧=B]&iE\3GwohGOtH@$PNѢ\XL�h\g Vҹe>7FӚ.t+iPv;^#1Bc4b,Ͼwo4bSYȆڠ',]-[+R!`ׄG##]Xg^(ЇB-+47W �?M8KRBnQW~5($$xL;ohe/U!s3 ܖYý^(?炆] :cLjs]<.Dm5D4[kjQJmTrh ]B1Fq92.\~?lIm0qvXV4j:I%@f;kZ[bt# v?%ټt5WZkBJn&'9ʸD!DxzR/}8 Q/ffәQdd\vDЕ9{/O>PM~~j:,n@ ^af-q8<9{mUUyQns8CkX"K/T ?yķ;R,he~Oxi̋E@VHJ",˲D^[&m![bkkMKԴ!vtA.-C%֠LyvlvٳgA?o 2=F4hLEWfNMV>uqڶ'Ao}˿ѧOZjJ Q@ڶ�+S12~n3t7(D2udEs~{NjѪBn\tJ4<U;P(g֡xj$9y'2FDeQ@ѵۦ0dA:],&Q:JS|v:qL/^^jT0F,Yf[]TQ ! fzB1_0F� S+(8</^ȕdJQWFjr#AwtGWcF$�ԵO_t='i?ˋ'K7/ B+FDfwCZ]@5r3 '8S+1\0$hA hb֗cOBpJ@� ˄8n\m _<d([qsl<O~_GٺX_#`ZYJ֠eU酼/׳Ԙ%udF[/(!J,f,kh]e9�0ǜ󋋋`ȥ` �h]{<r}:ѽ2 <YWQ3$<kpfqI|ݽqX^܆_ܫQM�@xE9� ]BK\7TBN/ʿ/IB+33&\W:E2U~li42:qw{buztt,<vkɫ݃Xԍve3! Fiu~d(gnV:y{^n`h0]泣U2ϴaǻ~L2uhxN/|Q&UWEZǍjK1֠Pr"YMp.3(s -e۩3ֱ3ά1h1�.8 �B=Iul8w(đS{cIF))4[G%yÙ} @A,2\Ǟ/;(ލoΎ\^\Z�pn�I( >0PMm ]֢QF7U7<xwo/kG*r6YkGA3y�X6EsYs!PZiJb5֐:db[}sEn|/NpaP-L^Jik,%3A^m Ƈ~p=}h-sH@_;{#iX[R<.D :ʗLIie7 -~< d-jqy{oy<,=yy®%A!ߧԷE)+Hkm<!Ete`nn+@՚ 4WV=YrGqۋ2-֕W}BofxESX9#=tq 5؍Ub4[h4 Z�e <BWVj+Rt߿˲ei}R.-W5RQi*3|׏(]٪r)+醨 hI7`�Z40. ";HBeJ >}\H<O ~;LnXBs pzօ4�x˩ȳr^k]h׹ʦaO cJXha3>/ϞҪ;`0й`h&XoD0klU.tU::?㟀_=,N2Ƣ~UrYk(n=C]n @ \0@b" iuǺ\NքnPZ"^ 5(#VZ჉ wxyx:{~6YrMԝh`-91J aw;QB�M*|0}8 YˣӹV2XeBĹJ9;Ѐro r{BJ[tYً2G?w?ʧ`Sw"djr$'@@@cq9<�im8Jl*!bMWҕѩ"\#U !l6�@+IT{?z>Wٰ7k,4guJ�u"8<8MI��d�8!҄Dž/\<#Lz;1{lo!-P&'_E:>{wFvcR~\Rƶ:w)asF5ʨ\5$>ki5 -4v Zu$9"I+1DF5=�,VU S$RmU(-`W{˵A&cēku8L&^,f㚐 Z~tMڴ!(s5;^%Tpz �8B,ri=ܯx] Tjk 2ER>A針n^T_NXYJ6U"-)!^n:I0 gV,JUbϑt5ERJA2 p9_F:%vے;M[Ս*@DLT__]P�=߉N R`iLRy.|SVjٻ7go"ǯGM0hj:R�@R\/ 6!3鑫궓$2ZVYgZˌ17~(#Rj 2No_~7}D`y "X̭~Q_S/ :(mtihp__~{t)ƘÚ? ^`'�Pie+[ۻEQl]y>!a..=yEQk5Rc)-:;H]QP�� �IDAT^0B6ULC&Fj,R`O rymJIEqy#Z-d=v{.-///z焀;m.w(c.3 uCei <12~(Рӑ0¸z{998=_7~(N~?޽;@�a;2 sfuARCkk2N x c5*P۹zd HpҠ~ !sEYV&]J%(V^6�@)C?_* ~ǹ8Pc 80*JW9~xo[pH.㜲YZ\Hv{:7vƘ4M˲lmp Z-ckT(j[d)+岏�Kȓ� `fJڱ NVVǽKG޺8h5La$N%v?7ե:Xej5KZZ+;?[ :>h[R~w~Y'J)E)e.E�%i:smSmMZCzx7l5UeR慬F0;o=M[GEQkR/\Ԅ4܁77peBeU) &_GZ/19+mt%\)�kQ)#Kv}%u?cDW&^?h맳UUhYPָ(MYj&۪W w.7PVHP &xL*Z�]P 2�*tj|r>-u K-|1>R>g"\aX Ad nfNɲc J\+%PJխJi �8cmm? @b,nB\�ڄONm*8www1qb-$ |Sz Y.|1:iȧ׵ERCAXsXLŕh$]AV  "Oܹ.:sڀE l]fR?萁'|dj ;<"j<K 8Y2* /kwX)!+xݷʈD M;v9MuCY)LmmI"Qwr0{AOǛ f- Gs+ǾZHu{^ZEeYRXxBpF)K5Z U*":vQJU/he6"xg R'L- {|dn$,]gZY NL0mUHmDdI1X./MU%m o K<-]>{!(x<g崒6[q"qvjRnQJgSNRʨ܊·lS<OU*ƘMާ?>x>_=\Yex !Zn=FlSB(W퇮$H� 4kW/W@oyh7k�uN ;�"{wǏ.u~4}x Y۾͑Նl{zϙXNuawgGfɧxv2EqU=v�[kFZDpN)x$Xcaj&fZSc %$+㽽h4 \e:��Aq/.\P!<BPfm:Rˆ8"8kSmQ:$e(m*EBhǃst\7+58]1FDo\QY``4"J9cZ뺷Un5%vUhrmFXsteTi/8wE ";,NlR//ǟ{UWY(GkT'�4"KFIS+#u>-0(;~;I�V$]wFo- 5Jh2H 4 eֳt;G2i9ͱ])Oo}? ǧ x'x32Ap kT׶!�kzVƑle~ZRJWbNaucZw�fQk%L��Ttwz'g#PIe-{ܹSB`,D7,p fmv1biWNjXk~<ze�1]fG3YhUBָs @k$IY-g )�׮af,B[DVW*6-j "'O>?<oګw\^^oΟ͗m�j)=_<mPN|F@#th:b 1&D7ڪv2!ڛXQ'\ϓ"Q7nYc\٨̥u E@`H.k΋ɺ,Jeϟ~}r©"J_Ʌ9+klh]{a Uj%u#KU _1yd2ZV+eY~hZc֍!8�@3JURlN1"jc1REQ;fyţuSVA+U^w$ld##"�9 eZgcʀ6]H)EsRi]Fu m晳{nr7EvI<X2ʳM<ZQʄ"RﮇīX@ 45B �(c濥TF߾-Uds~{?Hӿ_<92N\p3.xppΜmqȚ dcl6�EΎ&U%ˬҕ .IYV;%�vogcOyqrroJc %gIU {<"/jv׻neĴݬ7aѨWU^+@0ƶ>zr]ZG9JvqJc)Z ejA sw?T̳t8NܛJWT�J'nCj̫JITx(ZbहlmVUQyO�l4)p,a+ФH7+vvO<XLW:۫gaJ nV䣹NVVʉovkvx�@#Ir1Ag�x=Zfk8ͣݽnw25<O]G7:V,^'&Rj6qBZHn@ eWE"{==/V[BH.}v|tYGE^?p@lfd(0+uصxqL` Ιf�"J^vu6N˲988ؙ ,2y-1ZIm12� Zt-]yvug)HB,9Bz=kgϲ,-U])�%U΂&{;w: .EwzG^jFސ3ƵVhjބ�O +=F q9/'.Ri-*/WGYe6,N'ϥ�0EQ>.7٧J\ _e5 "|Ŵ5ƕ kAc2F(Vbͮn)1k[Uw"} 1 &JM2ˌ80R7ll :@{DܕAuǣfz~OFa'BMj}?(�{?/7/,fOh[316v|;9k5h(fn8R~?LeY&I"tjRfRB)0n$k1 qgkJe)85F2)hQw0X-7eQimM'-zx`8;4CX(Cxv:]WRBw@@&*T kSÝ,f$gp֘Pipq8%rg65?Ƕ'_Ζ؊9Q`ƿt9B0p-X*FQ'$Eab׍GB\CaaXSNvugW&}0n7RB*TV_o{wbm�81 Nkm6YRdIaɲp*Kyˢ*+}kR܎mhFwef3]IKy2;ܺRnfV4P¢(,)VE3޿}pw3͟<~sBJ֔eDxm#2¬Z"mIcPhG vAiM;Lmgʘ< D]JJ)'"hlM*N^ ۷ysy֎ֶ>kOm3'ƘuYUe8g u\PB^+}kmKƘ kKU>h{^Td1V> F*ՋUc5칦% 7EWxB-5Z%UJ)%�(ww*)7Q磏>vo~Oqg͓_]jXVɄEH4 ͭ^ݻeY:+ q[A<-N/?O$ƽfoн}/z rnL4dY.#i-}.쬪h5e[Qd͵n.VX]T5jiFZG_qnnQ7 bJ)t&EgaЉ ˲dZ;_,N.��B ٤{'+پ#4م_`08}K1NO\[z(!]J �5wnv5�muZILF7߻?/>^́`'܊41s딟^)#aDqa;YZlӥ8eY4Z_ ?(ciZK q 7�+BU*g?:+g,M!^{Kq/$2YgJAe|sk|a+ [.�;[p{.?)z D o·A_/ Y2JX)=R*xIdi3=}yRΕXX˧_s>?~,㧧'3/N'Dq<w߹{Xe$Y�Zp9`W`U?s@Cn c@]Ik4]1G !q78"d>_xQQJ<_ 9\{ !&|ow Bd[smncq&<(`-+e lhc/8q3{,*?vvz,*JtBY �E^./{0[yVDq0x}b|MҦx4ZrRIs @9(GDZw mk\ Ū_~͏w;;L>gϾ=:w{xxw/Тֺ"+-tM:y#bC~v*cu9`4i˲; xoإEeMebv[ZTDL,pNyVTlHhS݆=jGQvvv0�tt=r[> ؕnj@mmC5Fk89[TZcrƜX( HuAB kq~�V:٤E^i-©lޮgDQtppNgdJf jҴvF)۱::޽B'"YeRdH)JJ" ƽXj ?_=99;paY&点4{k%Xc0cEjIVYunÛ Js9gA[Bh`&wZj,"WWύ 2M2k sAl9],�+UYRv_9@[85 vQeB Ie1B sN6ZK(PYE(V9k ʓSdoggo^gWɫ,7,݃;;o}g_~usν�X%z[eE;.g/O4�PhP fB�Qk 8!5 }x2}c˓˲,\'xgRVlІ-aU]ϓ`Ѱ?� ]3m/ZƨJme:{(G&ƃsc Li'>* �&tM&bHSƘs \)!(%Xi,e>Ǩhm\99x@ƶ2hl\ha3O>q_>O7f= 0:/f˪ZF)ZKKƸt:V6;Ը*%sEx<t:Z+4s"_j~PZQyBJ%ZVmMMz |b5n%7<?ZGN;vqeYכjҸK@2ƔQbh6Ljl}}0^v|qE}Ӌܝ/`EQ ?e^jeQ_-|g�aw�&˴@Pa|uYqF#�l6$ZWejJI`+֫5t[s܇q/} w~V,*5c,Hs΂K%R[lO~jvww'?i3i旋Ztr[!E2Sv:  2Zn3P)U h=o8fs< ?Qy4yV0FC>D܋<s3o(Lo'RmQ<nPyƮ$ء0�\̗ SFH(-J)emi8m6Ց//;h0+2ϊ58%(dEa'x[￙iDn'[,y_~* yб:JPm[{Z t Xh_yNyAA`8<~yJ*uT1枂2Sb(ZV#gZp.h] �ht:l~^h)77Rx`rl z#�xpaҧyIip  (%ӣmo0 w<."2t.ïn)]k \q*ɺ":yz|qBQ2B ͋�t0gI!+eEq'zk|t9[Dt:Sj ÐsyQ'ʢb64Ȋnq^[ lX?TINo8z{gIN#"EZ 8;cKڝ}?-mnHbFkTJ<2'r`=UeFps [B[#۱Ўxkk"b]yg($6nH| M:+ҊKX8cڛUi'‘YZwTQ%Ƴ*Lˍ1]HHiEDޱhqD9dQl"qvn eUUyQeQFAħgD$={v:RGu{cr!endN/'ɳ㺮ˢ| 3WeM FUYT>Uw}O{ߺ?ߺgN�PUbdV=J*j Ia^g=@D{֖+ "2 z "iӲ^"�z>1*[Wn+sXc>!N#j([7FQ5?[,22!?*˔ P?xȪݶWI]W&2ӳkߺ{~"s@otaCq bg[;n' ^r)EMjGް;|*0yaN 3OǓӴ~ە8眳|6oaͧA$ *~u%QN s�� �IDATErYym VUŦ?UU-b%7rfSMEY%08gM2lmEJ��)RM9H=oڢ\BvG}G>=~zzᵛo__mǧӲ&LH+�M{2.間v$vGIlm(q30nV*K27LDZ1޳gα1֕D\mrz|=�$t#jVNjU d(R<\LЅ-n5`v\v;Ո$՝N'3EQ+֥h7 v{;v] 𗳎=;'I2֪(d:Lt1Z@JuH+ Z[[4'f)[ּ'M}Zt"v>YhUQ\BhH�9 %xfK mY,WRmH*(sAuRZ+i2jX,EM7�$όZVa A=Zߐ l$̼eZıٲ|UVUMUwV"ӁkVBsEwNNEueUJXk>R1�ԕzA"Y˛LQ~2[ꪶ#be:R,݂j9<*8zrrl\ebQP٤`x~6Ys*!&Al㜒d*H,g}�=Hչ-!s.ل4o[kUj0.(ot}/&(!H^v/s0H{?ϗ0s<ONN1{{{:D&GR|d7:UܐJ"hn adN<Nl>{;݄ݴܯKK ul1 к纰=[}fZil)�dyVZFc4F1!pmkWo:=#rNh4l~_gggӣgr2eZVlXx#"=c"lq oF- F"2($#QDDFRuVVxU\DJTcw\WValqum"=ECPs /6en@Dgdي*4HLD(!feju]Ut:^e`3:;۩-]]9TjeZ Nʪ͋<+BPR� ~46^YjڼRJ4C "�&i\ *H+i#N |=WE  (E併5"l8`Wc7z}eU^O͊iY_uUYYkeXRpŅW,38JI�6M`xa`2uQ餟|r$)c$<D؝p3g/ޏ4r�˼tև>X}%3F�!%I )zˢ*H4n-ݎXePZi={[۪GGբ0,NeQ ,;lgݎ2jU9� Ibcc�FBmBY[[[[a"ÈB!Lld |Њ6S, [k@E4ϊx@E/Y+N7G[Wn|~޳ǧey�7֦ ̓ɤ,N3 ޵q)Llw|r6+˲*l*\NhB(E&2DXUuB%SJxŇPm/3+E(=N7n�0ϲ(67\vk>d�ZTq6>l&BLPӌZ$�$I4+__<jmѓN7֎w޻~xTuyzvGGEDX!IQ]UUg4MpEֲkSU㑑(>N;g816K@ ͖I繁yZW1jB圓PzmhRD=rf&SC~|9Z,εCcL$A&iE6&bオ6MnVBm5Q$=j/\RԶocBX,{`!l VZR"y➶R- rLF$G�qlzADtݽ)Z B[~o`"cUJi)UL<[vcG$lQU拺(":wB"ISC؜1,&hM� F-2y)cؘ1znwgj9nr4iRʖE%Egj:'&ѵk\χO?}x4,ʢBlҢ*+YD&JBYWuv{wQa`uHK/q pX=We==Fi)%۬TeZQddGF]�֑6IHGZ)%- xNy":N]T:$!Ƚ\5@jSQ{Rv&oN{$:Z?/g_o?WGra ɟ4Mfqwqoߺu8DlYt:rSA�*vۡ9Wbl9LNnIH&UnV@}zv17H;gl%*NN/Fyۧ'd6QCc劒K3/l{ǀ@VH$%IeU0(YsnX]4f2t?o&GݭۯwzբEgOIͳK|䕃ku]LAD#3U==y �ZIlY"v]1;!Ƽ=ze(R\޳kڤウ-ίQW G'*7AU4[v]^:.bg/3moo^ib  K˲<+˲y~q+֓_K&PKYGHv3ܺAP i^vyޔ j'&R;OIdXl׼񐭊lfH:Q b>_,0i뺪*k-7 j^$P"zVDTӿQ8qѪ1qV(/*� #LW^ι<ϖUoUOGaKKt"S�EԴQ?u{Wovʲ**[κ+ҫnv] Y)&6vD~%d?LRMƟgǒqҍN[ټuFtQeFV*_utj&}eTInn~Q|e@qm 8Evyu]յ4Zʪ|kKT � UUjIشfѝ^#|U2tki7g=y>4/ [i`-bU:X+=-Zn bf(Ix1[fSY⪪Uu5⚀2k]d.2xvk;agvwp:N+h{ß~{)zO|;#PsU"ݺq7nӧNO!M⪮Tn~["{ǿl̋*?Y<;uYON}.tdLܸs{ס9jWeUֈ{?OOo޹?yv&4cYQ�`X7o=9 _wr}LNUY%qIB} @$"[jF/r;i*Қĭ8d�rrZbvrsl\5⺶(6K.N/9JKy vג=VϲѣGH4.\!p?) @@K`PFrx'鼼ymޟEHֻbP̬&<ۍ:%+EH$n5ۄ^Vg뜫/&t13 dy{?ֶ Vߠ}䮛@61<=QlmԱH{ 8-7e6!K{i/<k z6;Uuue,K;qɫh-r%߾?O3/?dsMwO5մ4g%  6T"j$gxkoTuUuYǝ<+`՗ouZXGZ[uYTڨn-ٳGGY;FM#ekwyguEսgdzMi~4Ih#O&gsl3kNvH</vS&0D{{ 'n<HNOwW>y<+"@Zku[~G'w޾y0O~lI1xz'>Wk81l(j1ϺDkZd9lo;ml?:y:OoZdՏ"St|5aggG2jJoR[ݝ޼:=j:K}4y:-NW}uv<n?}ՃQޗhvL.H``$Dq,ַg52VڱWk0k_|*Zf \yg@@HFԵu Zvs0h,Mь 6|%FsAڡ`&Còyn9k|dֵF|pH[w9ܶ _"$E^S$:)0U56jt K/T ?umj j{a׆gC @7V_'3FD`3!E뾹KY p<E)يlוi.[eQI{vugevz4Ouw~kVgǎ&}q lmE ^9́A"p֮.]I$QI#a*e ;4NL*R_ͳ'ɪ7G=ᢒ& quIU|6=zs_︼ g:owT*puvD nf7B"ݓ÷s烿z7Iͽ/==˖ݍ;{-[D{4[{G_|O?/ɣl n7gu]g<ȳrXFpw[֝~wNNhptW:iɉG/ueQ ʣ'&V&5`"t9^|rp>Iͷ^$Ҥ?g4㦐;n՟k^dl5Run}IUW>yT2j\~齤[}h:w7vEghԋ;Ԋ �`t," 'Z B1VIrmvkD6"d4 n4ߛ74B)E͑"4a-:p)bs!_*ws!P ֣L$M:nu)+)H([˼1 q ;dfgTf|x43Eیv0+/$\1��{Uhzt`-Wnﴰуo?]B.noNT+7s&^6ho]8‰kM0lr:+ZkeGlvgӧ㥸iMUP=cUVW'IUY[UنNkוּzʼ$ vt>>Y;E1JvHa0{@҉QXv+7E"Ah�@jAS-@v~?I]U Z!6H bUb7JkϟR]Ս_wN7o__?qʽb�Q;_W9gǓ>}tvkb9?|o*V+[s[sw|鼭ޜVtg'=Q6`ͽ+�9zo[ۢwGhgk'_fUV vA;߹yڭ?xZI'zO?y{?e]9kgg ҤVey[?xїORvG[_<~|UG``TvyVhMT{޻",'EDDFvy!  VkTh)4R _�Ў"ʿ"Up*jIoA6dpW`zHH)mfϡlC_o.iBJ^Pb.tPzT�)2[YA r$$MQIMgz�!�R*JRjWkt.]A;* IW܄$o]]7LnMЩ@m\}m|w27l״ ۷`yu@)UU={L|Ķ$*kYn?e^U<*Ei/l�`z2˖%"H! %lr zm 7FFXl6( QZ 4�zg)dkz|2MWUx1=<,&+MΫR+j|4 {ÎNdSHDqm[iUY #/-/.+MqHBm,�}DPb*b(.<N"1%@iڑBct8$<_۹bϟ>J9_&޻;w}ݤw:?_/w".D1)m�Pd>=Ƌx9>8OONxw?}0={7?×?-(eU`"cb{}o|ɍnܡ~w޹|}?_ˏ?{|N<'yuۯ޺G|ӳd͏mvn܎ɳǫE.-lul2ϻxW߸~}/O~x5MlmihSb@$Uojgb!EZC# B 4˂H)%ޣkB.Hצ$6G3+fkKzI*XpYzo3H0Okbő2_BdI!^x1H$@N EGJ@J QnlPٕ"̕,O YsE\\1{/A<k(ܶV*4 OjK봝h_f IKV$[wk"S(6iflYVe]uD\Wֹ޼qjF{(5uY(b9[,_>ϿQʝ筤Kϝtwvb:~<^3b4UE>'_-r|Yz煵CtNNue(œˢ;LW߽6=Y=>pwϖZk)&1if�`b}ϞO'MM. W1QU](DTf10w)_vM+s}҉.բh#2ͲBk@YBi n :|4N҈díw<|:??NNr5mm-ݘ!%UVȪ`]ɼ̪x>^2o]K7ݏ=P 0%^>6@PDU^9粲8;=ytrQ&N~/orP9o}��IDATg}^Uo9~rJu/?y֫~o}8@/?ukOlfe^)ӣ``hkwDލÛGnnc}եճr'|)MClʡs"++G&88}M "!:J丈tJoh�Vn#\[`�&҄dLϞwޅ&A0"�osw%wݠ# '-_])P;#`-P�@]Ձ2 Ρ&JrABKHkADC@9HD Mw2:�Ȱms_}  W%#a:z*dpu࿶R^<D:��q�jk']6C&R~uY�q) 0sU:}6Ն|{?0ݣxY0ǫY>9Wto[:k>^�)\3kmHJ[M<�m႘Ζhvt)Ha(i9Ǒ2;LwaxUK.R�8J nJF SA,sW$HIc-4i2e}ˬ 2/Qn;`mB�"_UUΗ"&m9ǮIDy&Ul+YgHI4~ZU|6-qj)lcA#bd-2�b&E>ˊe*'wq49^-|_߸j[7>_*6M$X5y;^t9ɪ.YUQ=pLDbUynE"ҽ; 4`d�.JWe]UWm=A;4B�[?=;1X2|E fސ0eFE�vե!Qh�ZzI_Xr٬yhZ6æHBr`KS&,3&K_ih4ODg_.PZfbCagn'ґj$`Q1""&Ct�k Q�|^1C ]x&3-΅~Z/ZWnҷOķ,Rh.aLu4X+� IhsUYGD=pOJQ5Ikd7H{qg:=_%Q1&D*K,kcc%<R`~ 6qOXEw;|WzzXͲ"[gI:H=嬋GT+¤]clg~w筛;[ռX#LbQUVF%r,n0v:4Kk'4r7!"5E-yuVJ-H@{oTra[WEe+%FGV6tβ*m. & Mkj8:Y\9|&(6`Tm[bwC/ fI؜"DSI;sk0Шk[{hSPk4J;7wvIUZe%t;v�=ѷwGr_{gŢN4Q7XF;o|gׯtD=ܙONFZ9:F%ZZv[[$&A={y!i d4pS -�i%`ߴf% "eqb(x]"F s읷5BBBlL�I'ꨶC;ֵ\!b99H]l%~c@TR#|<]�m򮕷la^"t Ł!Ibm)X�(2SR4fH)1Qra@bvjI׎sCjz%2j?meCDY[Hc8Z{#mYt(Q[EVX$TO9Qlz۝1q]P/Z@1/;.ͪ<z;O<xDHI:D&ټϋUYdu;i7RFեuۖue"QCWO&gjvփT%)R�mKkfkv❑;erR۽ " wvwGt' )0Ng_$QbEռ,jsڋ{tMvwf{ώJh. u9䦯EE n|uzV|׾$aZgD*QbQ;Ñ7_9D$Yyn+Bh$=`6g=u}ud*\˩{hw֨KJ8%Tߥqok/ק٣ϞgB0gk}Yhk^wckx3W`<g|̜u"]mmtOHL !r,Dut1�n7d�LdHѦh5bi'_.߈�Q!w\۫&8'+Fb\jP@6D zEzqM;\ڪ8KF6�v޾  (Q{W3>ʫuZGI]H#uīӆ`΍| &J֋}G|u3 "-3<)^/rl =˕RUUM{t5Tw81<+# `1s.sqom+4&i4WN�ʟܛWnrЗ)ZC@67qi?I;Յ-z53RZQH$+dTQ,gE{_bl"H 0SjLPKD ނ&=ѫl~_yHt/}βD#G׍ֱ1%.Bt +�+P(�AE!!>y4ƹZyEG�OdCنM&Ðz;?RSm"(WB3Hu)"y==iԉH*r ;DRaCI�f9.2�W{vo#Tq鼫t^dV]u$a2fFT�>ˊ9Fq1!yu]/W(<{B@gNU%OZ"$m:a϶ lbmbm1\HkPH+Ep4һBL5(6L3$gkaPB ѿȉŸ] 3}Vc@884)C fE.N_= :*HB)6ju z|49 ^| ; vDXBoğv �V4"C$3|K0$\;x 'vg3zv#[ \l2+RZ2/SFGD*NRD~h._ui JL[[uk[,GR:1̦g><آ+W$3֒"sUU^ QS%ֽ"E`l<>勢kd*`hTn4"DE</݋ ('$ʺl�٢s%9 FXR;.EOl+KdDlZ<>8ʌƳU^[b D%\ώOV핦DTmxIQ^޳?g$j� p7qJʕD4=^dMVpkrVG_eYE]Zw6A(F(63qOr*VYUZW)MżVr-2wJK`޺,K]յd:瘥c|ғ 4.N;xמ)u`.#Q-�⿐;#^+$ 0_yRZl>lo[(EkRXW/]5 gkˍ7^vCIn?HkA(~8"َ(5:R< M8Pa- 8D>䞐P-tm<7(]#Y/ 87?.w㏺\9i> \UUVs<$gXR%bnQB[/.ƋDMM PI @;m@#<}Ykˬ>B6fl(!dB�%ֳW6IW^i"M5jG_q DIO4:B1^ۿ)Mї&2벨\ _<'4X+ko<WG9�Fe"n%D 76,( zD3HE3*]еnE,ju&Aʖe^J !T҉6Y<*;Hp�W$!OpgEVGwh``lkTk8tޝ7 *'sq  Hd�`Ҕx�*I`ǮxNuhxn =:4 o@@ kB(<�cҨ"ICF)ZwNr.ns$±ƥCm%t' WKu"[ š Q6! #`5eg3Vs /4F΋_%&Ns;֣QSY@x)"E&R `+w;Gm@2ˮ-` -Ӕ@(Bd=Ul؝:{U ߿L�0�ȍW e>x4տ~q0 H 5*YT�|J>p4K�)G{wa9 +ҡ=RITF:2 `'"#iЙC槬&*/9?k^ ^jLEm Krwb-hǀRP(ė)7UDdh"3pӆxsCsg8̱t+9n07-;;n )4QY6b>ܭ37`�Bsg^HrPkk߂+'^{fIPB{1Lֺ}p$76cj(3;&"_~s?(�9#e*M>HrdQ!!+lclZ5 _zDd+iD$z4#@+] {lD[-M"dEl=92cڊlǂhMyUz4‹2{pKG eA 0U։ o,!E?`Z hnv}B)M*Ͼ*+i_! Dkĝ{̜s: r=�;+\7[_T'AHn{Ǖ@q3` 0c߮L"02d|X:AdTغF$D;%Y}AR󛋃glo ve[dеnhMBW{*0hYoY/K'kva!*޾)l)DDjC )T.lbEOa 4EB_K�Xl7�4m0s}7(ֆ '1o=3PG pmW]xDޝg HM5B[oB;O RE$U$ӤCFĆ`nәGrq�a@3oI|, ܁ r=�K* ƍ41$ ײ07g #չnND_rc8Jr;CVĞԂى'Qu4H^˔s3v'@@ʋ޽8ai1.7pTb 湕|0I͘C-|\5�rHNU4ڽh۱a�=QRdKlurm> tK #CqC�HJvI)zw@S'" %Y( &y .EΉ$$#Q #*Jiaa!)$B&wqsx(0 �H̲&(H2`2ȓ sPbc++G+*Z%F!yuj*4\c+� "_bJa<!iT&Gf`=XntgK.mB~F4�=!"#Z-T w3)TMB!44L5`qTeqӃ'_[�R BI!efcψIʹZ h0Iۓč% R4l'1[)˔p�¸m+� Ic+*Ey眫 7{Ct@!tP�]l Qj<7s[3!!*#>\wdP4" JynDZo(`u獸Waf Ն1lksQ_!"I*R_&hsυ8˦_0H/Qi�`SHJ܂ O){/z,Ҋb@`PѠךhT>7GnWY+k9, yP+A"uY]����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/menu.png������������������������������������������������������������������������000444��000765��000024�� 53647�11760240072� 16005� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR����h���y~���bKGD������C���tIME 6�� �IDATxo[7sSEIdIٱY$v6mŴ@fN/ mhLIŲ6kHwa<ϐشS;E9G9JF!xH']�!L B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""'Ɠ.x\nO矴DVNB|I{Riax<^g6F۶uh>ǃeY4 Z_4˅-eR0 }nwW4M}q�{Rn(`0%(ˤR)<mv Ì akkz].P^vqSXdss\.B|SI=\.086BVa0<<LTl0 y饗ڵke,q'r.aǿ2y<`ttqr4 @ujZT*ͦƓ�wQVٳ>|9$|^ix^]\.n7^afff8x f%>O V&˅kB!H$Eݕt]& bOi2::ٳg9r;;;XEZ?k\ۭ[!. (*N"GNqk A~vؿ?gΜ̙3LX, / t>L&CTrQ.vS(jsTU#$@ĞT̑#G8v###x^ZffIRJ4M(Gܹs�\p lsY^vϒk֒vG^,^/?~?pj r)&&&X]]e{{RD�,2. qkƖ*^U:'2~jt^3dFxT bOV ˲�\xT*E٤lvFUp]Eʑ#GaqqZFTkʯz;3,¶UiB!0�Fq|DmbH^qAx㍯,Vojj~ bQ2c8^>χaZVA9 :UzRDVӟx0MS*OĶU(zI=ٶnܹs9so۔en7`㍏Frkz|  Bn=P(P(Vme4==K/a$I p{1j7odyyq瞻gjO!344R`YVWK@_~b@@HZP(P.X,ƩSxw8p��ZZF6^h4fJRvXlۍeYJ%<z]gC�wiضM*… LLLpYoa| zPZl6qݴZ-*d똉DBCkD'Q,ceeJf}]_p8̥K~:m322|^WjFT:fzz2£itr`4 DQbP@ @$󱵵"tIw#ɰ[/|lmmxz:h`J!"jr|�R)?/̡CX__g~~YHӺ"f\~�,..石A\k j<țoI(… �|>9fffڵk$I àR:R q|,SRG7q�r 0 \.fS�N_ZO>R0'Nس xx<=33ûK"�`{{O>ׯF5__W֓BDncY$IN8ɓ'9t:w}6ӟӟzJ2W^\t۷oU Uz>|w}t-666tWMX*kxIRX+ZFբhpMn޼=TP @Aqd2TL>P(ċ/C4MXYYsettTZeYD"tW޸qCb$@ă�BdkkR W\[|;wX,@\fccX,|;a 3N8VV>C+WP,S+++{qPZ333|[4M.]˗q 8|wy_$ ǡP(\W_}E|>DQ0pCJ q_jN\VOG?_~%BAOSmrLT²`X,0ccc<x#Gt#1FA&\.}vW EV8ȋ/~3�:Dv155~K(T՞222B,#cTE^/.\ Lbv'+I +힎jYe9~8333LNNranܸATw+΁e0grr1�`ZAEnRniZ8|<.j*sR! V ߯_y|T*{dzg ^X>YYZZqL,--=ѽ7ٶM>/gff˲N+<OC$СC+DQ4tF ߫*ņrR^*Y.zUk^wﭷ"S,Y]]eqqu ܹs]/ϧfz~!d˲88T*ٟKDDijݫǡVիW1MSOm6]۞~~ǣ;koRVumF:$ zz]̧WW,^mdX__' FuKjv ibtbHV#LRոxbWb1Fw~:dY*Ǒń' bOjO+Vi{8 TUtE4zjxFLLLpqYYY0Xbxxrb1,+GTբVNukATLU(j+2 mqlۦqh4J%C[ =̟P[^^ӧJeB< 'ۭ(|dj�B!=gvv5nݺE6j�'j{D|>p۶x<4  g||B�q(^BP(tU*l~n-ڵkz&Z]h4 tgqqQXW! F%P5*DH$DÐ�w\a>M\j d2*z`8NsupA=W?T*JVݑ~^ uaLԳo�ܫtb,`L^_"m۔ex< 8HO("qM0_|׮]lDjzK@ @$V׳l޵Q599 ͛7|2dMCVWfݯ&ĽHjJ.T4.Vy,JEoiJ4 ۇ8zUm۔J%2;;;\퓕H$o~ �9e<\pA/UvJ۷i6]e2MSwϩ ZJvv~}�JW\assf:pXjsyGR(q^HXX[[c!`4bj,,,[wjSJ5f=il.@wQ-p8L0QUuB\3D"=^Rh4z / #* r9,"044ouu5$;'0wI<l>7 CSԊ{ͻ!`PV'ztRm\.�]T詿JDSkt~l:\|:չRq~gR;WM}i+ӣDꜹ9M}λmtu>T;1J{}aңaLAU5QH!_"BMD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@BDD!DO$@3r!7I@|3uVmz<<Rx<nǡjcn\բl>gsݴND<U!i&F۶iZ=}zqz8\n x^* R ˲sA* ;;;T*yr\I("`Yr˲z.B<M<{҅ =ljbD""haFGG 4͞+J˅g߾}LLLh4XH*QΜ9ɓ'1Mj8~9<odYJCVXi^~e8rj*"*H D<0C__8\FA `ddaJVJ& 155ũSHR4 jm?RoGŋi:irAo~ .pm$F?0 8o.sssEr\OE Zٳ8q@ @R!͒NIGq݄a=[oK/ i>|sus0SSSGL7 1Ν;믿ξ}y4x ;^`fft:g}F&T*r(loov) =u9AN<ɛo| oߦh<XH^/�tqB�>C}8TUJ�X@ nju'%�_I r)&&&X]]e{{Rw qf1ϽfVm=n _'s9.\,Zzl&5ʶm,ˢlҽ9I`9tZ-:;;;d2,0\0.UE<m$@1M}155E?Bb$cf55Vx<�:dT �1009}>[o˗2BUzʤ:_j0 0x<o6ضè3mۦP(�B|>=)hPuٶg�xZHf_ 鯪0uxaB6rzEVzb1ƺ>СCq B۶\ Xab;;;B!FGG`ddAѨ.o0s0 VEZ%iSv@:gp1KKK$ JJB\~Jqu'M:cccz:�Mdhh&+++Ըrm2 jg0n(xӧO駟R B:uJ266Ɓh4D"<3o><+++\~t:וw橨ݭ'''Y^^旿%lViA!JJzZ,&"W-Ε֝;._gjj\.͛7$paΟ?toh�|,--y*OW_q8|k_y* >P՘eeeqطoo6OfeedٮP"i LrL,c||qϕ+WX^^$≓�=Qc�j7E$0<<k~FGGyt7O `llg9rI&|LNNrUnݺ6F㑺oT`tt1t`)o6CCC3::mj pifssyt�QT D-ll,L&xR$@DTf``^{~?~۶gzzZ0 ʪ˲(lnn ۏe;^JH&Vܙ;33=99ɋ/6J1b~^x<.&4Qjd2j\ `bmmk׮d.BJD<2E(ɓ?ku".]b||7n077G>3Jö8W駟_{ǡVq �r~)l~jVZ-fgŚ&PX,݂'"H²,* P0ڵry(,--q�gkk @Wj0nZzիϳN(ڵk_7oKKKl6[[[ ݋ jݩ%:S#-IB\.M Y??x#hx<ZeY+N[rirPQ͠,ի\p˗/fm[ٶ[L- x߾}]C^ښoLBD<I ضM&a}}`0H4-V+{Y[[ի,..i%\.eh4tW -vSh"faXET"?[n+qUfpqǣ?['@`p84dkkrL?h\.G"ƍE+8 T6ׯ_�L۶ .YyZXX3T~Ӏ;#I&!wնtu=̝lfע{nTWizvX瘌*^WzUpB=OOOH$éTe*>'"8dY]F8O,h000е͛7z zuů*oS{H% DQbn1�Czo*5%Yuu$|2/_ iuEN0~Ѩh45�"fDQ Z5]M�Ox v[ߍ{<qH$' Q*t� ,aL%BuɨY]]ҥKLLLtUU<Tw\NWˌJ/,p8_Dp\]TV8Qze,t:ΎFFׄ]�Dg2fggʲT*qjY$PHR+w+FA2`{{[ߝ{^nqvvv|2dyŢ d2 ~!KKK4 t@<V{U.]wUn޼ښ^<ۅxHn,l6K\K<TJJ%j#( ꮼs;kV#HP(�u*z4Q**0�� �IDAT}PL&f\.kkk磏>P(AP]UjViXu94M"׮]P(�;:mYYY!k(!F ⡨SPԌJOU |ڪT*zzl-uXǡX,Rx<:T!RT0 k-%ǡT*qmp{J<r̭[m+W)!z.@=k*ݯa?A{W=Ky4j;!;�kkk,..R(dxI/D"IV\.?B|$@x յ'!v B!z!w�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�B !=�BI@e\nOxuI<#TEh&ibٶMmZ(%I' p\x<B}}}^/@�GXdss\.m\'!3r9p�q) Z- `ddaJVJB|*FNB< r;f߾}={Ç377G2$l6똦qZVW$ijL`&={#GeYTUVpݺ ;퇽N\˲5k~%k' x<q;^VlRTpn˅}gẉVuYH=^Ԙz:^y{}u\.fS^R~vx9s1qp|^c/8NDH<Zeyx"TJWQI  ju,ˢlb6f2sݘwf,Ym. G$0 *ʞ x>ߏ'`n4 }ez.N*0 L*\Us|>\u}>FrmZE.X,kx|:P2 k6Ye2MBR.M �۶֭[;w3gor|FU!x^FGGyW8rF%RIHZ]<vK$! tVQ*(4 `pp)0 R.  1449t&<4 R( j>N*H$B(vοR`Ykf||z8&XZZ"0J˗/3;;KT׼~,ˢT*aY e,..D\�yy !^{ tezA rI~ Jd2�D"B  100@4%166ѣGF9q8~8rmw>X,gϞ??OxWc{{ZiLNN3<<eY:{^ `H ;n}sq);??ϼ 1229z($xLMMo355E6eccCw" 鮸355n<Jߏ!JNj 8i<Z\?T*y9t萾geerL,qBBL&瞣^377zF!sA|MO(?~7|4YZZbqqQ"T7a ell3g󚜜lR(�74M bT*]Ysn߾M.0 ϫ\7oI ü:t9t: /;@8ٳ찺*iR*H84M9~8.]"`6>O4ahh9p�tlL&ޖ/�y&썍 }$'Nɓ:t_|;lmm駟r &Gett [[[z###۷P(8$I,ҕ � LNNV$ z,T*EZ]B---a8?~bȕ+Wt \ׯ3??4.{y2@1Ν;err۶0 O SK&ab1Ȉ`0chW^yLNN>r̼FAPRH g(Jp?[o}fff͛,,,066߿Ύ3d24iJtk0 0;w,'N ljD"x^FFF8z(HP,V q(JdY=@2$zT*СCD=!yI?5:ao߾J4M:\5&''ӟG}jդubbA&&&X]]P( 0M˲x<s]۷o?2u>$@3DM -j5vvvX__'H�ӟsG===ZUm� H$TU,!<+2exx@ �+{jʑ#G\.l6) rE\&ZM?0MNi} xzN&ҥK X۷o399"W\!HGf󬮮riN<I2dccۍ8zСC]l<J$4D' gLZ q, ˲Ü>}ӧO>5TM4q=krY=a^z%I$Dmz3j*m+u(oK< er $Z d2,//JT*{vZ-*233/L.ʕ+dY R ׫Ud2LB3e}m癝O=dbbX,F v - 3 |29kkk\v .PNuUU.x<u|> à;}+~ƍg?ٞŋT*腘*TJ%rSWEni6d2VWW,Kwٶ'|zIR~$H<\Ui^E8JR8 /p!Rr~(bW2>>N<ȑ#z]F:&NGujj1 s$s(Bh4zQ-UpimmOY\\$LR׻V+@@WjQ.YYY!N3== d/B/Ĭ$ >3;F.ڵk_K�yUjaZQ8^a&fe] w &''9q j\~d2'O]Q3) ]XX 0(J$ }is鱘X,2JsnšZ ӅשRxΥKfzU;B`PF:W\�.m>30Ml6K^Z$m �ۭ|>vvvd2z9 F~:n0D@j<,//sl֕Qh4tń\Ez\zO>bT*D�( i9THܖq^X,Fŋ\tb^tfTDؑ TcLR+?c{=;۷,h4Y&!$@ʩJBBv)˴Z-`kkK0*�ItMU[$ ,LFObz\"-Y677YYY!͒f1M+Wp5Ju1My4LP( qeYDRAilmmzv.ZֵUY%ٶzvMT??9͑Jh4\d>L$m T~Z%wN^/~_ߍyŢFqMt׮]cmmMo9Rհ,J^WEH$o~ mse.]6ap-n"ò,}ii K6V144D2$077GX 766R7n N5%q\|>ORSv"pi QL1۶rܸqH3~VH*':j BAOt:$m.@ڦԝu8& mOjZrF9s䥗^c=Z"pqtKE`xwj#p8]RP Uqb^&:kZ_5s[ډX}F?q=8EVʭWnn4ͮ KI<$@B\Kv <|{|G\p{~:ּεsv5m^UnkܙPn<>u0:t~u*juUZ-M;QTijGsݭ 0?<h5) _EtyZ!u~A/Es~nZ:I=uVOc7ؓqa^Q. ! qO{u{Hx! !=eB!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""' B!z""#r\OB<Ɠ.r�v[T׻n;2*jU׹ M'" UQi fIm]I$!8BJ8OtF XEPZ8. ǃ0 ,ˢ^j$D_ Te s0|>2T|>m۸\.0رcenܸA"^?㡯'Np!<_|dvJ%ǡh< HG*Ӊ FGGq\.G 0220RfIVqn7~lll}F-pIoL*bgg۶0 P(D4jQ(aIGr8p^{P(Db^/tunb_JVǙ¶m~r8fVEzEk!"! /033C:>#P*p\eq V EVc}}۶V]w{yZ6V 4z@v8ضMС9XB|I\.LdppSN111*۔J%oYr뮼nvu UT8֕xګ~ZZ ˲mF¶m&nuTlCo HLd߾}LMMOPX,Vw{QXFARRt4Ԁd6|j+l0x<=K=x0M�j6ضs:j1>Gun@ �@?>O̪Vzfz8w  y<0CCCx^* euIUcdd'OJ8u=JZڵk$ j.@ @<'P(4M^/`ϧךbeQ*zPǻ5100ǎ#H$ckkzOeY2v"j g*^/itUqچa0<< �RMj>|Mjr\.Gr $S.]CCCXE.Ӄ### YYYR< []u7?1x_dY<@ @(RN:)؄K�DMd;PkA<uգ8CCC\v wxz_<' 2;;n~|>^G0+D"qbh4ʩSxw�/~~+VVVtq<jE:tx<fd2Z-�DQzeq�jNd2zqBB!Lij5$<yq8JE4M4MFFF8<w T*8D"tǶmnܸV*ǩsEY^^&Hd?v ( _[xT Sc nfffx뭷�x裏B`2ڭnh4ammcǎ166ƁT*4MB�z4w-VWWXD4&xfcUU �rD"A.(Jǹy&nݢ\.-QIj8qҕlVU5X__Z2::?IѠhxdttTcddX,F>0 Rx^.\@2t^Uew˲R;gsX4j 4�D * P0tZtx1Y\lllÙ3gxh4,--f)n^U, 8hpm"ozzlHM-V^+f g*$:[GWVFUZ[)nm$X}wwvvnj\.r?駟L&,K8ͪlbY֞uT+C\㌌) m0pbTTR<$@#mL&:`PwAպk\Q0{4M,T*FGGy׸ycPŋwϗ_~*lk%|gT}j T8unǏg||JB&X]]e}}ejxjImlk)Vd2l&Up'@]j_8&`YyZ-J|9rH$[t2/^4M)XgC0lۦP(~jPj/GT*Q|d2Rkkk2W<$@#ql6˵kL~5@WiZp~D"=Wym:||U@mOx<zl! vuWa6jTc2Dy�h~I%frz]KV#ϓfέZxIGn),--Oj' Q*T*ܼyj+lUW*J@`R|z0tr�ۇeYB!lmz3ڔe.]a088ETCuqe}�d2rljeYzsFXQ<$@#Qz&avv~~s.J\rEy~:bQ׸z*;;;,,,tmcmT*) n=FlfggfI*꽱<%W{دmX&_|x^n^˲h4:L \˲z\r��1IDATYɤހsw^!v ⑩TU0 <T E^ۨZrm~ ޾p(zWT(Vx+ DBԶ8Zۻ6}]HJ!JUˍe8ua# ( Uo EѠinĎ,DzeLIMR䒻\~L4%G#;z>`@a4ٝ,<i氱R6D/2}'Uj59Anj:&LD6E>W$iة+{Vļh+^T*r8v+UUdY|PTJ^p^F.�<\9:n]~s(==ApY�_/n\YYsBD/@ \.w5l D�8aN/=9{r�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@9�!""G DDa#Q7ov{lwHrrn{onxaS. nn[vl7QՒ?/:q,_vfyr( EB@ѐmr\x<O`f#�9DGkD3f ˲=[~tw"L;zz~$!#j0 4ͧ vaZVcn "q䘲_}�\y:!$GvCUU(x: 9/D?Lx vVR\}�8{pc9 =3z<x^x<Dpq6::""Z vz[{0UUe'-:fjzǡ( 0$ vwwaFǕG(B2GXi녦ipݨT*/D?\ cDtVXL3])~edYXŽn~ah ! ^c{{FH@n7 &&&pDQbnne�|>$Ο?H$eѳX x<X]]EV{)臇rL\.hG8u&vvvVEQ122RjB '_$. @�Vu� ǃVbv#ܹs1��"H`||aww=wbdd/��FbF{;."rLA\xX^^F&AP@^GZ=gQU8wưT*|>V%CБvbmddgϞ�\xߐNQjP*d {(._ �X]]W,D###t&''e0 b-Ev 011/BQdY<ybfT*Vk]1-7TU144$^P(`qq`kkk9ǃp8)\|>nt]?Re: DŽA$$044׋V%*Jb6Nk۟㴣BO$ב尷4jP`ޭVKnr\h6^|cO|>ab1P(TUVn7W"LbffD�pܸq|?^ =,f?9�9&C;Dϟױ)Bt@g NVQڱZLPww\ݏeb%a:.1GQ<yXZZaoX\'  ,�(TUE\F.8q ~a#dԔ<p8Q-&& 8]e FGGo߿[fh4`l6UQ;ˉrLE\t :z-躎X,V=5a?0MoBRAT+EA(iPUU>VQZ-TUE~Izۍ@ X,P(zTx�[~y~I\.˲H$011p8t:Y<~j@�>O9ci4(J(2^ `0>wX!^GUUq>}HTJ+ڷ:}}}i$"Hǰx|$ߛx=EQqj5bk:677Gatto^ EQ_`ii lbjFC7 ctt@�4M h`eeV4 4 aR��bxyloo*DPN =pߨv-?::k׮᷿-,g}L&EQ0<<P(x<F4D1V! bhhxR thZF��4vafϹ$љ?1Μ9P($D(ZbM �,t]ّ#Bu<yjU~wdE {%: 1jP(�677q?82 RR?~B�EQ+… xWQ(-LLLw4氳#T*a~~+++h6/K`ee_' Ķ{ oS1ifffzzo auuPUahԩSH&@0<ܹ#Cܹsx077YT*B!�@:F*XYYܜjkkĊsqꫯb{{p1L&~�#+MpY\r@�wETeY, `ZMGL h۰, OfqYks<R�`zz'ȡ'q{�0.]񞛛0 Ba cffӘF&sW_+!�X[[_|۷oT*իW@&Aٔ<{#͛X\\2n߾7�r,Cj^Vh@UUa|ޖe!a~~^,٬jv<y$^X,@ R4QT: 1":meΝ;8s ._k׮all ?z>ʕ+X[[iP0Ο?]T*tT$% )X]]>2*dppxϟ?%|>q <A4!cooOV:4 J婡)QF @"Bvvv�fWVRbxx�Ht#L<? nj"ua !`}}?H$0MR KKKdRaw�P(`nnN?@bR`}}eamm w:JRGj4MbŢ\w"(0MFeɫM:U]Z{#AݯWTix1== HXYYAX9�9gղ,DQU>R=z$޽SNxeer9�Ç|<3of 0`Y"}о4Mlmm!Ncssj�,jZk<x�=*&2ט2 MsJ^[k0M+++0peLNN̙38q 4?N{ыrt/sb?Oܿ~:R2\4M0fgg?I.r[XXG}/|z]+%[8v 0P.QJo+Jf@u9ԫW\J'˲͛rIڍ1ܿ׮]C8F^Xo!V/^6"0)߇똟$N>-aNNN'?3 t( c&Dh6T*rl7or_4嘻E>eY�qdP.;50u#>uo_ ّ[l67owŧ~cuu|czwwBx\Nf)KUU:{;C`0s_gPzQ,K;wL&kW.]aƆz"6 DŽXX mS<щJs^֭[2$Īu bOm"_V^ۂFB\F:ƩSh4'RFMTUE(k4V~:,nܸ`0L&#<"�].2VWWW_ɐG$B8А\a_.~=C4M۷m}f{{{fA(B(s9bh4H$#<677P 033d2~΅С0@ ۍH$Q|>r9<yDV4 \~nݒ孁@�rZM[ 8qbѹ^ND"d2 MӐH$PƉ^QD"jp}}}o6󘝝gb+YoAnQ(dq@(+=p DFEj͎<H$PTV,É'044f-lll\.Zbkk Ç~J]rKx:41 t^/"j! BUUloo_,EuC4ar(ױoآD(ȹp8,7h_({f}�jjEuYze'u0,Knb&WbT Jr0<~euldD~m_4Mj5qT*!@4MC$(Όsw({<xA0#ѷ!';ѡ3bP-Ncmm [[[rGL\q%!UMӄa(J(ۓcU޽b,@оAI;EQPV{ass:Rwl@^mj*mfn7|>|>,.>Cܾ}[+`0h4 ˲ѣgM,BC K* À(rb�2E%ÇfQT t(.�,8#Wb߾_8a@Y{^*QaYqauo>#~X,W^yDB oooˀqw(9}><`0(<666*RX cccr(jmm`{u]|ž[bhQ 7\% YKN1@+^$a/C=^eo~Kt]Bw�6MN~ &{طs'[ [爪)[m,ͼXs"E[i}38)1tPazY=kB9ycj[uҶg}Ϫbp9|w#",9�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@9�!""G DDa# ""rBDD0@ȑRX����IENDB`�����������������������������������������������������������������������������������������SDL-2.540/test/data/pattern_red_white_2x2.bmp�������������������������������������������������������000444��000765��000024�� 2076�11760240072� 21203� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BM>������6��(������������������ �� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/picture.bmp���������������������������������������������������������������������000444��000765��000024�� 323026�11760240072� 16515� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������BM�����6���(���������������� �� ����������Fc`>[X#@=,)52%B?+HE1NK9OM=SQ5KI&<:%;92HF7MK0FD#<>550-1+ .*++ 049A6@ 0:+3 27DF'QP KH>; =A&CG.IM1LP0IM+AF$:?5:9PR0GI)@B*AC+BD'>@$;=#:</GE,DB&><$<:+CA2JH.FD%=;%D='F?(FA%E@$EA%ED#ED!CBAA<;%DC&C@+HE"B= 1)B:DQ <H:FENKRGODKEL =A<@9=5915.2+/ )- +6 +6 *5 *5 )4 )4 )4 )4#'#'"&"&!% $ $ $!$����"�#�!���������% #!&��������"� ����$)�',�& 6= 4G;NGZ)Sf5]pDi}PuZ}cRHOP}Ar|-nv"ty&qo_]MLHGHH EE:;�/0�63JGC`]7TQ96 *'74'DA(EB(EB0FD1GE.DB+A?,B@1GE4JH4JH6788=:?951+++/2:6D3?�.92:?F#KP#IM@D'BF(CG.GK2KO7MR7KP1EJ.AF-DF*AC)@B*AC'>@"9;"9;'>@":8750.,*1/7542+) & 51+ID1NK&ED=<>?&EFAE=@#@D%AB;</. ,(?:GT?L7A�2<7>?EBIAI8<7;4815.2+/ )- (,'0'0&/&/&/%.%.%. $ $##""�!�!����� �"�!����������#"���������%%07;DFODPKV%R_*We;hvMxNyS~R}JuDo~Al{<iwNUMSHMAF>DEK TX _aUTTS ONJIJIGGEE GG�<9�GD3PM7TQ0MJ#@=;8 =:'DA1NK2HF/EC/EC1GE/EC)?='=;*@>$@A&BB%DA?93/ ..:>'HQM]L\GVAQBPES CQ=J:?9>;@%?E-EK0HN1GM.DJ2IK5LN8OQ6MO-DF&=?*AC4KM$>> ::22,,//4411)) %! $")&..-.,-48$AE?I=F$AJ.HO6=!&+.9;>KGRLVLTOU"PWFK7=/3.2-1+/ )- '+ &*%)"("(!'!'!'� &� &� &�!�!� � � ���!  !$&&%"! ���������� �"�� +),. 05@I!IU%L[-Tc:fsN{Q~L{K|L|MI{:en6aj*X`JR >E�18�)0�)/=?�BC�ED�FERQ``]\�PN IJGH�<=�;< LMUVUUZZSPXU#@=3PM;XU2OL!>;85%B?4QN%=;%=;)A?-EC,DB)A?(@>+CA$BC#BA>;9473"AB:X]Olu,dw/dx(]qOcCU=O 8K 3F 586::>>BBF"EI&FK'GL9PR9PR8OQ4KM)@B"9;'>@2IK/II,FF&@@#=='AA.HH.HH(BB!99..(((*!%��$'5(73B3M['AM-8BJ#HP:`l7_k,Zb NVDK:?+1�" &* &*%)%)$(#'"&"&�#�#�#�#�"�"�!�!�������� #" � !�� �! �! �#!.,><!HFKR1_g8ep>jwR\Z_WX>lt5cn2_l'Wc O]6D14?A79�56 GGHHEDUT?>HE�LH�RMa\lha]MI FK IM�<@�:> NQUXOQPRIE EA%B?'DA*GD&C@9674"?<+HE:7&A>)DA'B?&A>)DA*EB*EB,JK*IH%DA @;"A>-IJ7QW>Wa7_q7_q,WhGY ;M9K >O @Q ?BDHKOLPJNJN"OS)SX@WY:QS3JL/FH*AC'>@,CE4KM+GH+GH(DE&BC+GH3OP4PQ/KL.0-/04/3"'�&3<(:%5*;+EU%?O0>?LAJ@J6@.7+2�',�!&� %#( $ $ $ $ $ $ $ $� � ������"!���������� !"$1 ,97DDP,R^7_kEmyPzU]TGxAs6is%Y`SZ-,�('��)*;>CFKO 9=�'' BB:9�:8YV QN�?;SO FEXW%fdea\X SOGE<;�15CG IMGJMPPROQSUEB 74+HE(EB)FC$A>4152)FC6SP%@=,GD/JG*EB&A>(C@)DA(C@3RS.NM&EB @;#@=(AC%=C!5@3NX2NY'GR=I;HHT"Vc)^kFJLP"QU!PTLPKO$NS)SX>UW5LN.EG-DF.EG/FH4KM;RT(EI'DH"?C9=7;9=59/3-0 (- (- )/%+� )(25?<N2B +<1A,:!.%/�$- +�$�%�%*�$)���""""""##� � � �����������!%$(�&�!)'/ /78@@H"GO&KS-Se/Wi5]oBm~O{Kw<j{7ev:p4j{*_lPY BI:=�44�..�+#�.&4.B>EA ?=;8�++�20FD�;9�:7 TQPL�A=RNXY+fh5np+hj_`UU FH7:�?DFKIN�DI�EI PTW[ VZ 20�'%,IF*GD1NK/LI<9:7.KH<YV;8"?<)FC.KH-JG*GD.KH4QN"DD"BA<994!<9+BD-@G'9D*DD*FF'EF#BE#FJ-QW6[c7^g'HQ%FO"CL#BK%BK'DM+FP,GQ+BD%<>"9;#:<$;=$;=(?A/FH(EI(EI#@D8<4815+/#'���$)1 3; 4=,8�%1 0?+9 (7!/"-!,�$�#*#,!*� &� &� $�"# %""""""""   �������� #�#'&, +43>9DFU#L[.Wf8apAjyEn}GpGp8es5bp.]k4cq:ky*^kGT ?L[]LNJJ EF�7877 >> ;;<8 HD"^] \[PPPQGH�<=ZX VTNLLJOM SQ VTXVY\[_NT?E�GKZ^Y]FLei\` UYJN�@DKPQV�AF0*/)+HE!>;&C@0MJ,IF*GD,IF(EB'DA$A>+HE6SP3PM&C@'DA3PM@@#CB"A> >9$?<,AC(;B"2>!@7&E>)GB*GD/II1JN-FJ&>D8LW1CN'9D'7C-=I5CO7CO5AM(?A&=?'>@'>@$;= 79#:<*AC"?C&CG&CG#@D$AE%BF!>B8< 16 27/7�*1�%.�%1�(3�*5� .�&2 +8�)!,'/��%*� �&�%��"#"""#####�������� 0257;?AI%HR/Q^;\kCdtQ~RQ~Kx>k,YnG\<Q >D ;A�399>EJ CH?DHMTE�@4E;LF=: =?IMDHUXZ]"imQU�CIX`\dZb)wv`_cbbaKKNNUU�BB�^akp aiGO�GM ]b \a�EK W]Z`hn`gGN JRQY?G<5=63OI6RL-IC)C=.E@(?:#94+A<-EC6NL4LJ'?=":8*B@1IG0HF3FM6IP2EL5HO0CJ2EL>QX.AH2RX6R]2M[)CT#=N$?M'DM(FK-FJ.GK,EI%>B 9=";?,EI5NR$AE"?C!>B#@D'DH*GK+HL*GK5Zb9^f5Zb'LTAI=E9A4<$/$/$/#.#.#."-"-�/�/�-�+�)�'%$#$"#�!!� � �!!�""�##  !! ����$" ! % #����!!���!*/:CGS#O\6Z~@d@fHqHtBqGx@s;fi1acUVGH FF�1235�%(EOCKDLGL�GK�HJ�KJ�LKC?�73�+*?>EECDPQEFUW�BC�@BUZbh^idr.w)xhq_jS^dq`m]mP`fwl| We\hnu ]b�PQ�TRIHMMUVUXPSIH�30��A;�VP%C>,JE)D@:684#:6!84!6331*B@1IG)A?!97#;9#;975"6;(<A%9>"6;*/', 49+0"?C7>!;G1K[5Qb-JY'GT,LW'BF*EI+FJ)DH%@D$?C&AE*EI?E=C<B>D"BH%EK&FL&FL>FAI>F4< .6,4)1�$,#,#,"+"+"+!*!*!*�!.�",�!+� )� % #" ��� "!#"#"$#�"$ $ �# ! $ %"!!$% */ -3 ,2�);�-? 5HDZ4VnGe~ToZrIqBj.\t0`x.by!WnPfAWLR>C�/4�37MQLQSX BG]fS\JQ�GNOS XZXY�SQYZQRRV#cg^cJQJQ MT OTW[^ddjmt$qz"mven(qyaiaidm)vmv p{ozmt#ltU^U^]eOWJQLP�=>UZ_eT[�DJ�7: BC-_]�`[ rm!@=&EB&C@52.+ 86'?="861IG8PN6NL(@>75#;9)A?+CA&;<)>?%:;#891223'<=!67&><0207(BR1Ob)J]BTBQ499>#@E)FK+HM*GL'DI%BG)LV#FP?I9C4> /9*4&0+1,2)/%+�$*%+�#)�%!( ' ' '&&&%� #� #�"� �����"!���!�$"�$$ $(,0276<:E BO CQ>NLj!Us2aAmGoAf4Wq+LfN`EW =NRe(ey#dy_t Rf�@I�>G�9C�8BHQHQ`h^fU\]d \cV[Y[ bdiikkV_LUWaeobnKY�?MP^dl"qz+v&nv hodk UY�@DDI�BG OTW\`dVZ VZ RVVTJI�23�-1-4,8;H@MAJWaXe S_ S_�FNNR:vvbcop,LK(HG)HG!@?44$>>2LL/II'?=*B@(@>!9775$<:'?=%=;(A= 95.*,(-)/+.* &"%<4/- $* (6=P(Ma!K^?R05388=!?D%CH%CH >C:?;H7D 0=+8(5$1�,�)&,%+#)#)%+'-%+�"(!&!&!& % % %$$��       ! " "! !  $ $$!"#( -69C?L&FQ/O\5Ve7[k:`r<cy5^u-Wn(Qq(Tq)Xs(\s"\oYiTb R\ EXF[ H\^s%g_z_zYu�OZP\R_Yg'kx_k `j�MW�OWgoou ekae de ef fgcq R`Zjbrj|h{\o!nq|myiu$gp^f RU�JJ�JI�=ACGJOEH:=3713�')�#��"#�%� - 0>+:;H DSDVK^[l R^�AHEJHPOWBB::!CC.MN.LM4RSEabIefC[Y9QO)A?5353":8!9731840,+',(62!<8 ;7 ;7,$ !�#1>Q/Th,ViL^:@7=4:394:28.4 *0&3$1�"/�"/$1%2%2$1$(�!%� $�"&$(%)�#'�"&#$#$"#"#"#!"!"!"!"  ������� " #,:2A7F;N%H\4Yo;ay;ayGmDj|:bu.Yn)Um(Up$SoLk>`DdMkVp^satduesNk\z%c,l"cUva$ihs`l T`JW T`R]irhp�KU`g dk bhmstxlnfh R`�GUN^N^ Xjgzex%rs~eq\h\eV^ NQPP\[W]MRGM=A�#'���� �  !# ',8ES @PIXSc]o`s^q]i U]MQ MTLSBF;?!DH5UZ9Y^7UZ:X]A^c:RP*B@.,'%/-%=;,DB-EC2LL0JJ0JJ+EE,FF+EE(BB5OO0- ! '6E(I\"HZ@R>M7=28 ,2)/)/)/(.&,)3&0�#-�#-%/%/%/�#-%*!&� %#($)"'!&"'##""""""!!!!!! ������ � � �*�*�-"1(7 0>6D:H:Zw;]z:_{;b~EmIt<i(Wr=O 7L�/E�.E ;W Tr2h9p\!d,m1o+eRw @d4Xd0u0u.q!c[w0o:zbo$jw&lybn\h�MX bl gp[elvhs_gcjah [a_e�CL�AJOY S]Vbgu*s-xfnbk\e S[OVNUMQ�JNT^?G9@BI'-��� �� �� 8B#al"huXb^kctZkM^Vcdkehijbc5[`.TY(LR,NT/QW)IO"BH(EL9QO3KI-EC-EC/GE/GE+CA'?= ;?:>$?C9=:>8<26)DH:= ,2(36E;K 0>�&2�%.*2'/%-%-&.(0*2*2'-$*"(#)%+'-'-&,&)#&#&&)%( #!$&)!!!   � �#'"-&5 *: .>/B8R<VC]&Ng0Yr:c|@lDpMuS|P|Et;o3k~Zj FU�/C�0D�1F8QLf*d7s9v/x0w0s(hX|Gn;c4^f!pg~cw bt(hs5r|2kt<t-jt^g[clsgnqwdjUbesbnV` T^LUKT]dEF�=>FJW[QVZa+ov"fmGL RV V\TZ Y``iYb�KTP^DRCMR[ DIIK ??�/-��!��&)�4: JRgohqglhq`lTcS`U^Z_dd]]QQ.TY,RWBG<B(JP/QW2RX9Y_9QO5MK1IG+CA%=;644242'AG :@9?285;17"(06 05+5$1�.�/$1&.�$(&.&.&.'/'/'/'/&. (,%)!% $!%!% $"�!��!!$�"��"%!/ %3-<6G AU(Ja.Rj2Uo:c<e=h>k?l?n>m<m4aDsHz6m"]lYaX[ SSFZNaUj#\u(c}%dYw KjVeZj ^p^r_v`xc}fkh|TcOXX[\ZRJ�2) 8C:C�=E�FL [`X]fl]c^lbp S`JWOZDN�7A?IZV@<�;:SR JJGHZ[EF@BJK WYchnt!q|gu[iZl]lUb T\PT1}|1~{\XEFKM BE DINT[bkrhp�UW ^cU^ O\Q\�=E�/0�?>36$'(?A3JLD[]9PR6MO?VX6MO5LN(=>$9:45//,,,,..008>6<28 -3)/%+#)�"(!, +!*!*")#*%*&+)%('(('*&,%.#1#1�)+�&(�""� ! # % %!(��! ��!%�$�('�$'� '�&4,@4L@Z$Hf+Qo.Vs8bLxN~DvDv%Xl$Wk$Yn%^t'cy'k%p$p5m4l8u6v!fy^n`m^kQU SZjuoWhNZLT;A�CH QVV[X]UZ@F�7= GM RY PWV]BJ�5>�8A�/8�5? HJ�+-�46�13�02VX!\^@B[WJF�22?@LPNR \a^d _i VX SO SS�OX�MXMS ML[\g]eVh]\\ KPQN OB]`WWMLNJ :4�"�74QPNNYX a]zu fa YVHH89 *&%% 7:=A�#'�����%<>/FH<SU1HJ,CE3JL+BD)@B!8:5713-.+, +,,--. /5 .4 +1(.&,$*#)#)")")!("'"'#&#&#&$'%(&)'('('('&'&$""# %" $!$#��� �!�!�$'';3G:PAY*Oi1Xt6^{Ai6b@lAo9h.`|$Yt!Xs(_z-gzRe@TFZ]r%nk~`s`w$g|/s1s*kz%drT_�:E 8?BI$_h+luW` HP ?F�.4�44EEQQHH77�//�)*�"#�=EBJ JRDLCK JR JR NVEI�>BUYY]TX#bfW[�:>�D@JGFE KLJMMQejqwMYHKDAHIPZP\LSLL VXRK�J>WOPQ�<B FFRH%agUZ?@;9.+�(*03 15 8;57 EF7846+/��/1 :>�*1�#(&* !%#24";=-FH&?A#<>)BD$=?";=/4.3,1 */(-)-)-*.%*$)#("'"'#($)$)$%$%%&%&&'%&%&%&%*%* '( (%(#('&' #!!!#$"& &�#/'3)5+93C?QBT?Q9Wt<\y7Yv0Xq0\t(Yo#Uk(]r3h.d)` XuKh JdRlYr)k}asYj\miyjz ^mQbT_^jakT_NXQ[BL�"*� +�$,59@A :; :< 9@19��'& 87 32��''�=H FP FP JSMV RZ X`U\LP RVfj"imcg`d PT�BF�RPWUPRQSPT QXZ` W^VdQU CB FHU` N\�=E:;FJ�:8�=7[W#Z]<C9;FDMVGM/1$#�!$�  '#*��$�#(/+2!��&& 8<5=3> 2;&0 '$";='@B*CE!:<3524,.(*&/&/&/&/&.&.�%-�%-�!$� #� #� #�!$#&$'%(&"&"($)% )( )('('(%$$#$!$%%%&��� �#�*"5(< 4K8O<UB[#Le+Tm+Tm&Nj.Q_&KY<I4@9D�;GCNS^)f"_(f*i^w^u#f{#f{`qdt_o _kam ^i Yd [f\^df]`FJ:? >A8<�(,� ��%!.)53�39�-69<�47:=:=�*-�#'�04=A HVQ_ IWP^WdXeeq[gRXZ`_e_e`fY_PV TZjl ^aRX SZS[ JR�;D�.8;K 9?�,- 8<#XeXgDNCE�4:�-0 <>-]a1_f?F.225CKKR <>((�� 03�-16=8?�#+�% ).73;�& ��##7= >J AN :H�)7)/'-569:7812+, '( %& !� )�!*"+�$,�$,�#+�#+�"*"%!$!$ #!$"%#&$'(!("'!&"$#"#"%!$)"' #����! #$1 .<9H:M 7N 5R<[Bc%Ts"Qp#Rq&Ut#RqIe@\ ;W�,/�.2�/59DIXN`ShaxPoWu.o7z&g|Zl^manaraq Zg \ggo`gJR�BI@>FDDC>>>>@@??�<<5C4?,1�*)�/-�79�?G�HRWeYg Tb Q_M\DSJY_nXf]l P_RaVeTd"^nRbOW T\NV U]aiW_QY^f[e R\T_YcLW2?�$2*81B,4��(-IWIY2<.10708<GJSJQ:A+2�)2�;EJQ<@%(�� 1507�:? >D�+2�&(0 4< 9@�#)��#%7AERK\ AR�.>,1). $%!"#$$%"# '(#$� %� %�"&�#'�#'�#'�"&�"&$%#$"#!" !!"!""#(!'!$ � �!�"�#�%�� � "�#'(0 -:2A6FJ_"Qf'Xn(Wr$Tp&Ut+\|3c3f0c0d0d(]xPiF_D[<H;H8I?UIf EiDlPy2q.k1p7u.ky]gW_U[Vh^m]i`iipUY�26�!'�.)�+(�)&�21AAGFHHNNap&dtVb DNAKHR\j){Ujg|bwVk Yo XnRh WmN_ PaFXCU CV BVEY <P HVDR�5C@NP^ES HV\jM_BRN^WfHV,;�,,<(:� )��!'@NCS3>.1�06<GIZCP@FAE6>/=�.< 3?$*��*1 )2�-45=(1�% *53==F,5��$,7CIXQbFV5B�,0�)- "#�  � !�"#"#!"�""�""�##�##�###$"#!" !  ! !!"$ # !!$!( %0 (6*:�$3)8 0?9KDV'M_/Th3XlRfNbI]FZF[J_ Mb"Od(\z-a.c~']v VmTiSfQb1l#^rJ` H`OlQq[}1oM3lQbMZRYGJ88�41�6I GWIV�IQLS<A�)-,0ID FA=9�?=JINNQS\`dw*s&l`{a|]uaw*w Tf\nZl ObJ]H[�?R�7J�1F�3H:O8M<QEZ @U ?TIZ ?P�*;�4E<M�/@ =N#WhOcAU K]RbKZ6D�!/'6 ,?(��"( 7F >N6@/2�+.?M%TiFV @GKM BK;L:G5@�"*#" !'1:3> 8@AI 2;�(*4(25>+4#"++88HHYP_DP5?8<59�!"� !"�%&!"#####""!"!�"!#"�$""!!   � ! ! �!� !$$++64B"<M(AU4Y{4Zz4Zx3[t/Xo)Sf#N_J[FS <J4B5B:F:C 09&.Lg!WpUl BW�8K<K=L�8D N] O^Ud%iv6z3w1r<}1fz!WhDQDNNQBB4082�+? AR HV LURXAD)-)-B< LG KIIH NO RUZ^"jq!p(udX`Z}Ro_vQ]AM EQLY CP >K ?L9F 5N 5NF^AYE\Ne CY DZ N`EW4F?Q?Q�); 8J%Se J_DY Re RcIW<H�(4-: -@�&��%�,:�2B�.8�&)�%';HPf=N�6< FHFN EXKU@J�+1�(+�"$� �+24<;E BL4>�(�)3�#.3>1< %0 +:3D;LGXKX ?I�/7:=7:%%%$#$#( (-"- + !'"##�"�#�&"# )-14=X >^ Pt)U~$Mt5^Ai.Yn.UcKX?J KTYbEN�1:�<FV_U_OWNTOR ?A�0142 <@BF :>04�*.�#'�,0GK�,08> =D!YdVdHZ^qUib~Qd"[j XiH`�C[�>OENPR II@? BBFG�8>�0<�<LJYJY Sa_mYgbp]j n{$X|'\U|"[Ux:Z ;SF[E[5M-E7L�5J<S"Ne CX?Q 8M ?SF\F\E\A[7P B]D\0F5G<L1B ?QWjET G[RpOsNpE`6FBK 4C� �!#*HTGW-;�),-409GR :G 9GDV9MG[KiEZ4@ /4$�1<�6E�-1.=�&2�!�(#-9*9�*.!**,1 :D=H@KGP�3:BH <B������������$�(�0%82D;OCY I_%Of)Sj*cy/d5f*XzFhKhKb 7I<G5?PY#ai KSHOV]RZ NU JRBG>BAC9:�55 >;�6<;AHNOU GM;A�7=�8>�;? JO MV ao]o Odby^w%iUi$Xh$XiOg LeH[ MXWeQ\EO DNL[ K]H`QlYpUlSjRiF]SjQhbyNlUtLoQuNs >_BaLg@V.F.FDY @U9PCZ:O8J3H <PE[G]JaGa>W=X?W,B /A8H1B =OTg AR G]UsUyTvGb3E:F4F�&,%( )0IT?O,:�+.-4.7GR>K ;KHZCWL`ToI\7A.2#�# 9AAM�)- 4C /;�&!+&,8-<7;�%%�(-7A>I CNKT8?AG <B!�������!#$ %$(( -039:?;CEjNr)Y}0a3f4g3g3g,fy;r<r-`z!RlMcBR�2?�6<�06PV"\bBHJObf W[MQORMP MN MMCC�<;?> NW�DMMVS\JSJS PYJS�HPYbWc`q_tVo"`~&d^zF[@QDVGbKh K`M\XtUn H` E[Uo'g+m(m(h!aTt Hh9ZHiCdNo8MIbIhPsSzFkDhBd =S(@,DLaF[ 3J 9P�6K7I3H <PDZG]LcIc ?X8S =T�)>(:5D1B:KOb9M DZRnTsRrF_3E8E 5G�18%* (/ BO�/A +8-0-6�+3CN=K5ECUCWF[NdAQ�3:-, !$ 9@EM�*.8G 1=�(#1, 1=/>=A���"'3=>IHSNW>E9?7=!"�����$$**&:0D:Q&F]0Ri:\t<^v8Zr8g9g:j<l=m>m=n=n;v@x1izTeN]IUFQMVRW MR EKGNSYW\ SWRU]_[] TWPPNN LMOPUV Ra N]UdYhSbSbVe Q`ESQaM_KaSmSqVy$^Nh3H�$6-C >\IiKeM`QoOl B]<UNl1j5s.l&f]{Nm Ba6VDe 5V 4U�,<CWGbPsV}MvEo :d >T'?)AH] BW0G:Q:O <N 9NAUF\F\JaF`:S;VAX,A�$65D4E7HJ]7L B[ Jf Ki Lh AZ6K9K 4G�6=�" )?N�(:'6�,0/:�(3>K ;I�,>:N >S:O?S�5C�05,+��!!37�=B�/38G*6�" 4/5A-<6:!��!&�1;>IITMV @G�17�17�% + '2 -82<8B>HBL%Jl+Qq.Tr-Un/Um,Tg!I[=L:ap:ap:ap=cuCh|LoSuVx(cs*et \hWaV` JRGOWaek`g IQLU,gp!bjRX]c SWPTMQKOLPSZ[b^eNfXpXpTlVnRjOgUm4H=P9P1L ?]KlJmQuOj4I�0*@AaLoNmQgF]BX7L0E<T$Tp'\}Qv\qQfBX9P5LD\.G�'@-:AS @ZFgQzQ|P{Gr <R'?(@DY @U 4K?V<Q =O <QCWF\F\KbGa8Q D^Ja4I�$68G ;L�6G H[ =WLePi Nj MfAW 8M7J2E�5?�! +KZ�3G(8�*15@.;@N@P�4E ?TF] ?V E[�;K;@32"!�!$�06�<D�/3 5D(4� -( /;�'6�-1 (%��%*3=>IHSGP=D5;6<2B<L@P>MCR'P_-Xg,WfNbOaJXAK @C@@84�,%-/+-(+*..43:7@9C�7L EUS^"ai$fkU\JSU_ Q] Q^Ta\j`nYfWdco LUJS MV NYO]Wf[jTcTs&\{On A`GfKjOn(^} &:-B8O,E3PGg CfGj Sm<Q�"1,BEeJqNnOi>S 8M 4G 4E;PLd&UtRsZnOc BW>S8NG]7M7M�'68N 9UEhV}XYRz <R�&>'?F[EZ8O@W:O8J 9NBVE[G]PgMg>WLfSj<Q�'8<KDU8I H[Fb"[uZqUj CY 8N 0F2G7B�#+ )4$\mDZ +;/6 9F 9EFTGYBVNc VmQjYsMaLW<?%($*3=FQ�*. 2A-9�$�$�$0�%4�,0/,�##,18B ?JFQAJ:A =C ?E MX#Q\GR7A:DLVOY BLPTMR CE�67�44:762�+'26�,0�$(�&�(�"+�#0$1 E^OdVaT\SX RYUb\kEXL_WiYkPbJ] NaQeYhN^ HX DW E[Um"^vVpIlMpKnGjLoQtPsMp�$11@#Na@V8RKiFeHiPi?Q�$3/FHi KsPsSoD^9P :P@U?WEd Tx$[QoLjIgHf:XB`9WEc&:3M 5TEiXZZSvF\�%=�$<J_K`8O=T<Q3E6K@TDZH^ TkRl B[Oi!Wn@U�'8@OM]<ML^Jh&_yYnTg BW ;Q 0J9N;F*2&3"]mLa +>=E8D <JBRDVF[OfWpUnUsLdRa?H%.&04B K]�-1.= /;�)$�"�&2-<�,02/&& 38 =G @K DO<E9@:@ ;ACFJM BE�69 DF!\^XZ>@ KL KOEI<B ?IKWKYBP\gR^ ET @OBSI[!Pe(UjRm$]s"_mPXKRX`cqcvWobyYo�J`McKb@X=VH[ AT AV D]Jd!Yv#\{OoEk@f GmNtOuX~U{@f�(0�;E,htXh BWRkLjNnMdAS�'6 6MQqSz[~_|On?\ >YC_9W�5X DlO|>dBhIoKp5Z�3X�,Q Af3L8U0Q<`NuTwYzXw"Tj�&>�7K`Mb 4K;R BW3E7LAUDZG] Tk Sm B[Oi"XoAV�'8BQ!Rb?POaFf"ZwRj Ob K^?T>V7Q@W=J*2�(PcG\+=JR0> 9G :J;L @UE\JcKe>a�:WK^=J$/$31C I]59*9+7+&�&! /; 6E�+/30'' 7<@J AL DO:C9@�.4�/5KJHGKJZZ gjeh\`Y]ed PO�88�88DDBB�@?IH(cm0gtSc!Uf+`t#]sXp MdLl"Uu#VvQp Vu-d/f%^},Zy'YwSrJi BcBfJn%QvEh 8P8JBZHnL{OwJhP{PxMs KnNpQpJh@_�4GpZIk;W$TxHsJrCn 7X�.+E@c MxPwYzQr <^IiFfNm?[A^&Ro'TzGm KrGlAd<_ 3T=^'IAbGgDdJjBb:[ Fh%Lh�'C.L FfEe6X3U"Fj8X9YHhTsQrPsJn ?cHhTr ?V� 2 :J Sc @Q;NVoQjNgWoSi�2IF\ =SB\HY�.5�&&EEIP @QQk�.89C >J AL DQIXJYIXCZDX EX >O�+<�!3 4CP]3;<D 9A�)2�'0 2;5>,5�36�$FKPUFRZf XdN]2435SWGK OR]b_fahbkYbV] NUDL HQOX KSJQU\#\k0gv%Yj"Tj$XoUnYrVqPq StRsNoRs'\}&\}Uv?^DcIiKjKlMq'Ty.Z$Jm<W ;QD`Ir#Q&X!VwS~U~T{QuQqOnFe;Z�!7GpUGi>Z)V{LwMu$OzBa�!8 1KBeLwPwXzNo <^IiHh On@\>[Jg#Pu Mr#PrBd;\>] 2R1Q/OHhHg ;Y >\=\:ZBbF_�)B 3O Hd He>[7WEeB^@]KgVsVsVuSrGhUr!YrEY�.>DPP\ @MGV\sUj LaPdK`�2FI[CU@VGW�.4�%&BCFL <LNd4< <DAIAK AMEQGTER?R@P ?O9G(6�-0<JT�.5<C<C�)0� '�&.+3(09:� $ ?BHMBLV`PY?N�/5�06Wa HRR\]hTbZh"crXgTeUgSfUhViM`N`^o Ui1cy-]u%ToLkKjXx `$U{PvKqLrPv!RxOuKq=\BaIiMlLmMq#Pu*Ty Fi8X 7T@aEp N}&W%X PzPzLtHkEfCc9Y /M�&9IpQFf?[+X}Q{"Py(VFe�$:4L@b"NwUz_~Kl <^IiJjNmB^:WA^Mm#Rr#Qp=\ 6S>Y 4O�)D 0P#LlLk9W8V <[9Y:ZAV�,A 9OMc"PhG_<WFaF]AWG\PfRjVnSmGbVoRgBR3?BJCK6@IUZlQdIYIZDT�4AHVBP ;LEP.1�$#>=?B5@HY37 8<;? 8?5= 9A <F9C5C5@6@4<(0 ) /4DH/3 :> 7<�',�$',+0%+ ??�#'9<BF@HQZIQ�5B3;4<P_IZPaUhPcRgWmSiVrXuUrRpRpMjRo%dRl._y/^z&RqFhHlY}(f*]RzKsOw$R{"PyKtIr Lk NmOoMlIjGkHm JoAd7X;\EjGrLx!R Q}!MvHq?e:^ =]>]5S)G�(;KpQ~Gh?X(Uw!S}*W}.\Jf�%; 0H5WAkMrXvKl@bIiIiIhD` 8U<YFeMiKg <W 8P>V 9P/F.K Jg!QmEaB^B^;X9VDT�/A <N Rf&XlLb?WMeFY?QDUL_PdUiRhG]OfI] <J08 9@ 9@19HRL[HW ANDQ =I5?@K 8C 6ABI,.�!!9979-4AL+-,./2,/�&+�,318,5 +4+2�.203',!% ,/?>25 47-0�#'�&* 15 04&* =;&'78?@=DLSIP8D7878BWMaKaJ`PgNeHaMfLlNoKlJl!OqPqUv,e$Uo+Zv0\{$OpEgKq#Z)d/b"U}Nv$R{+W&R{"Lv"Lv IiLkOoPpNoLpKp$KqC`>_Gl'Ry#Rx QyQ{M{IsEk>b >_EeHe;W*G);PuT~Ji<TLm!Rz+X}!Rx>Z�0)?)J8_HlSrLmFhKkHhCbEa 9V=ZA`EaC_@[=U ;S>U?V/LC` PlOkLhFb@]B_IY1C ;M"Qf+ZoKa>V$Rj HZBSEWO`SfWlTiI^IaF[;J,5 3;;B 5>FQ@N>L 7E 9F1<3><D3;29>E)-�"7: 37�'.:A+-*, .2-1�&+-5 7>09 /3.11334** &% 630/0/*)�""&& // ..&&/)""32::5:BHGL@H4*4*<Q"OdK`F\"RjMeA[HbDdJjIj!Jk&Op"MnLl!Tt'Wo)Vq1[x&OoFh Pt%Z(b.c$X} Qw&U{*W})Ry'Nu&MtAaGf Oo$Uu%Uw%Rw#Mr$IoBY?\ Jm(TyPpKkKpFrBhBhBfFfLjJg:V(B /? TxR}Jg;SEfKq$PuLp :T�/*>&D 0V>cFdLmKmNnIi>]Fb;XA^BbBb?^Ed@] 7RC^$Oj 5QC^MgNhIcD^E`!IeG\ 4I9P Ja*SlF_8T$Lh!BV;O@UG\J`NdMeC[E`AX5G�"0 ,6:D5A>K;M9K 0?/>�%36B<H6B2:>E)1�"*:B6>�'. 7?39 179?9A 2;;DEQ>J9?9< ;= ;< ,/���*'(&.,-+�#!��"!#"�!,*�20+.57CDAH5)4(BU%Ob#Na K`&Ri$SiIaH`A^#Mj)Om+Mk+Mk FdC`If&Wm&Uk4`x)SpHg!Rr#Yz&`+a%[|"Uv#Su%Rt&Nq$Jm$HlDdHh!No#Tt$Tv"Ns GmBhBP>VFg MnHbE\HgFpEkLpOpMlJeE_:R/H8H%W{MvHe=SDcEkCeQuA[�,=8L *I +R1T�2PJkOq"SsMm=\Ie>[EbEjHmDfIk?`4SFf+Tt7PF^NeF] >U ?VBZAZ:T5O8U=Z%Ge!Ca2S:[":R2L7O<U<UA]Db>\#Jj>Z/F 3 +:9H2B7I7N7L0D/B&9>NAO:H6>@K+9%3@N<J�+6 9A7A3=>H@L6D@N#L[BQ?G@DDGCE 04�!��)'�%!+' ,(�"�� $!�!($�.*''-0<>=A 5443#K]$O`'Rc&Qd'Rg)Vk%TjKa=T$Md-Qi-Le+Jc"F^H_)Sj#Ui%Ti8d{/XqGd"Qp#Yx'`&_~$[z"UuPpLm Ij EgBd#Jj!JjKlMmLnJoFlCiJUDYIhNjG[GZOjQy"Vz)_)bUtIcB\BZBY@P&YzHqEb?UDdAg 7Z >b6M�+<AS7V:^?b?[Gh!Qs%Vv!Pp=\Kg?\FcJp%RxJqJo<_1THi,Uv 2KG_Pg AX5L ;R<T 2K0M6S:Y3T=^#Ad.Q+P*=X5Q7R:W9W@^%Fg%De4X|"Cd2M)>4H!?R6K;R2L6P4L8M0D&GZ DV:J:DCP.=); FXBQ/< <F 3? /;:H<J 3B;MHY=N=FAGGLFJ59�"&�"$�./'#($&"�!�# '$ '$)!% *$�.( ().0;<:=/8.7!Gg)Oo0Ww8_8a1]|-Yx%SrF_!Jc,Tp&Mm'Mo0Vy.Sy1U}8Y1U{-Qy1Z1]"S{ T}3g:g5b.[*W'T#P{JuFq!Jw%N{,U2[3\-V"KxCpBd>b=`>dEk"Kr&Nx%Oy(Ms!Fl'Lr Ek 1W3Y;a 0V'J9\!Ae8\4[<e<e2[+E*H�D$AmB_ ?f /M@Z>e$Am(Er%Ap;h7`:^?`)Ch(Bg%?d!;`8]9^"<a&@e *E6U#?b$>f'Cl+Jq$Dh6Y'Cb6T2P =X#AZ6O ,C *A?V8Q6O<W'Eb)Gd$A`:Y3]z,UnCY4F7F@R>Q3HAS@R@R2D�+=GY$Rd 8J=J:G:G�*7<I JW/< 5B�)2�%.DLKS =E ?F>E AH=H@HAH<@-0�#%(( 42 //((�%%�&&''�&&))..)+-/*, 2413�*+34 56::22B`!Ge(Nl+Sp,Tq'Qn#Ol!Mj=U?Y$Ie Db#Fg-Pr(Jn+Mq=\}<]~8[}9_9c.[+[6h8d4`0\.Z.Z,X})Uz&Rw"Hr%Ku*Pz0V2X-S}%KuDn<]<^>`Be Fi!HnInHo Fi>aBe@c 3V9\>a 0S&G8Y>a4X0T6]6]-V*D -K�C7`0Nw4X(F:T6]8a:f<i<h>e?bA_&Ac#>`9[5W3U5W:\"=_!:5S&Be!;c6]9`?b@a$@^4R2M;V!?X7N-D +B0D1E -D ,C3L:U8S.IHeH`;Q,>+: 6G :L4I?P<M@Q ;L5FGX!O`<M 6C;H=J�*79FIV2?8E/8�(1GO!PX AH CJ DK CJ>IAICJ?C 25�&()) 42 00++(())((�&&** 11'),.*, 46 46./ 67 78 21*):W=Z Ea EaC_B^@\C_;R:S"AZ:U:W#A^6U4S:S$B[#B[A[ EaB^>[B_9U8T7S8T:V;W:V9U<_<_?bBeEhCf>a:]4Q9W>\AbCc@b>a=`:Z 2R6V8X4T<\?_ /O'E8V?]4U ,O2U4X.R)C0N%F1U#Cg6W1O C]#Cf @d;d8d7`4X /M*G:U7R4O1L1L2M4O5P�62M!>]5X *O.Q;\!C`<W2M0I9R>U6K/D-B 0@6F3E,> 0D<S>U5LA]F^@U 1C-< 8IBTDXBS=NCTDU=NDUIZ<M.9>ICN�,7 6AGR 7B=H3<�)1FN!RZ AH CJJQ CI=H@HBI@D 47(*)) 20 00..----))�&&** 33�&(*,)+ 46 6812:;;< 54-,6Q7R A[=W:T:T5O9S6K4I:O2J2J6N)A $< (77F6G1A4G6J .B*>(;)< *= -@0C1D2E2E0M .K -J /L1N3P2O0M.G3L9S;U8U5Q2P2P-I*F /K 2N 0L7S:V .J(B8R>[5R-L2S6W4U -G3P'F (G:Y7V2O<V8W8Y6[5\2W/P ,F*B0E0E0E0E1F0E.C ,A&9/F2M.M ,M3Q9V<T6O/H/F6K:O6I1D0@<I?L=J7F8JASGZFYEaJbEZ 8I 6EBSM_OcHVDRFTBP ;IBPES :H�'2@KFQ�-83>DO;F@K5=�(0@HOW>E AHLR@F<G ;C ;B 9=/2�&(''., 00.. //..((�$$(( 11�&&((�%$0/ 4310;:=< <:538P7O%D[ ?V;R;R /F2I)=)=2C.?0A6G)9 $4-4!>G=F1<4B9F/>&5�$�&*!,#.$/$/%0/D +@ (='< *?-B/D0E +>.A0E/D ,C)A)A*B#:'> .E -D)@ -D1H ,C%<1H7N0I +F0K5R5R2O3N'@�8.G1J"=<$? +H0R1T-O +H.E1E/B.A ,? +> +> +> -@.A *9.A1H0K2O7Q7O5I2G-B-B3F8H6F2A0?>K 8E 7D:I<M<MAT J]KfKbAV6G 8FFVM^J]FTGUDR 8F6DCQHV ;I�&.DLHP084<AI <DBJ :B�-5 =EMT @G CIOUCI ;F7?29/3�(+�"$�$$,* //....--''�""�&&..(&�'%� )'/,.+;8>; 861/$<R7M+F[%@U!>S>S +@-B)9*:4D/=0;3< &/!* -2;@6; )/ +409&1�'�! %$)&+%*%*%*&+,: '5!/-!/%3 )7+9+9*: )8 %6#6"5"7$9� 0'7 ,<)9#3&6*:)9� 3(; ,@(<&= +D0I0I2O1J(?�1 ,?4K";�7$; +D1N/N (E#<%8)94G1D +>$7"5&90C8K*41@9L9P6N4J3G6E/B -@ .>1A4C5B2?0=?M 6D 6G?P@S<Q@U!LaSnOfCW8H <JIYM^ GZBNEQ@L6B 9EIUKW>J�+1GMGM397= >D ;A@FAI8@ =DKRFMHNTZLR<G5=�.5�+/�&)�"$�$$+) 00..----((�""�$$***((&��'%-*�,) 85 :732-,,AV 8L-EY%>R"=Q$?S )< )<-;0>;F4=/5.3� #�47>B59%+(. +4!,�$�! %%*&+%*$)$)%*+2 %,%�!�# '$+ '.,8)5 $0!/!0"1"3"3�"/&3&3�"/�!.%2&3$1#2&6&6"5$7 )> ,C +B,J,E *=� / +:6I '@"@ 5%< *C+F (C&=&6&33H2G.C'<!6%:1F<Q*25?>N>R5L .B 1@5C .> -= -< .=1>3=2< 0:DV@RAVI^ LcJbKc$Ph Ys VmJ^ >N @ML\PaK^EQDP@L?KFRLXDP8D�28HNCI5;:@ <B8> <BDL@H:AELJP HNTZRX?J 8@18/3,/(*((-+44 00....++�&&�%%)),'+&�#,'2,�.(6060 32-,.CX!6K,AV":N!:N&?S %9 %9(5 -8;D5; 04 .1�""� <>AE6:&,'0 )2!,�&�"$' ), +. ), (+ (+ *-17*0"($% $*(.*0/6)3 $. ,!/#1#2"1%/%/� *�'�",(2&0�!+(7)8&5$4%8 +> ,A *? (F (A +;�*�!. *:�6<#6#8%> (A *C (=$3� --D2I4K/F (? (?0G9P .46>=K<O6J /A/= 3? -= -< -< .;0=2<2: 08F[H^J` Nf$Ql(Up'Sp$PmVpVlK_ >N >KIXO_L_NXGQDNLV"S]KU ;E�0:8>IOAG6< <B:@5;9?BJBJ�4;=DHN EKOUSXBM ;C5< 6: 36.0,,/-77 22 // 00..))''))-(-(�&!1, 600*5/2, --'':Xi!?P=N"@Q$BS:K *;8I5>5>!>G2;%.!*�%%.4C7L[3B #2-;#1�'�(&"�!�$$ ,/+/�(�&#.(3/:&1�)&1 -8 ,7/:/>1@.='6$3'6'6#2(.$*)2(1�(�,'4%2%2(5&5#2%5 *= *=%8 .; +8 .; ,9$1)6 -:$1 5!6$9'< )> *? *? )>*B /G2J 0H 2I7N 7N 4K� 3 4G 4G2E?R?Q 7I>P?V8O4K9P"D[%G^@W7N<SD[ Oe"TjTiPeMbMaM]JZDU@Q?PAREUHXGLJOLQKPHM DI BG AF5AIU?K>JGS>J8D6BCK ;C9C @JHSKXP\S_MRCI 8<495959 02�)+68 35 3557 35,.)++- 1//--+-+1.30301.�0*�0*3Qb >O!?P!?P"@Q!?P4E6G4=2;7@ *3 )'�#"+!7C0HT0< , '3!,�&�$�!�!((3728%.� +%2 *5.9'2!, +61</:0; (6 *8 '5-�+"0 &4 &4 -3%.(1(3#.&3 (7#2'4 ,9 ,;)9 *:.A/B +@)6'4*7(5#0)6 .;&3$;%<'> *A ,C-D-D ,C -E 1I3K 3K 6M;R:Q 5L*@=S=S:PF[DY<QBWBX<R8N<RDZ#H^CY<R@WE\McPfQfOdOdOdN^JZDU@Q?PARFVIYMWHREOFPJTJTCM<F5AIU?K>JGS?K 9E7CCK ;C9C @JGSKXO[R^MRBH 6: 16 26 26/1�)+57 24 2457 35-/+--/ 22 //-,.-1043320/ ;5 ;5.L];L"@Q#AR=N%CT >O4E6?092;&/�(!*�%"+#=D-GN18$+ '.%+#)�"�!!�""),4:3< )4&3 +: ,9 ,9%2#0 -:4A2?0=*5,7 (3*�& + '2 )4 ,5$/$/'4'4 (7&7�/%3 -;1? /? ,? .A0D0D)7)7+9*8'5 .<2@ -; *A ,C.E0G1H2I3J3J2J5M6N7O=TAX>U 6M6L G]G]DZ"MbLaEZJ_DZ@V=S?UDZG]E[BXD[F]J`LbLbOdQfShN^JZDU@Q?PBSGWJZN\IWDRESIWIWDR >L6BJV@L?KHT@L ;G 9EBJ ;C 7B?IFRJWMZQ]LQAG48.3 .2 /3-/*,57 13 245746 /1-/ 0255 00-,.- 32 654310:4:4/M^9J >O)GX!?P"@Q"@Q2C8B1;3=*4&0)3�",&0%?E+HM6;,1 ,1 */+/�"�&(�%)(. .6 ,6&5)92B .;(5� -� -*72?3@1>2;5>2; (1#,%. )2 )2&3$1$1%4&6&6"5�1%3 ,<4D2E -@ *> +B.E/B1D1D .A -@3F7J3F1I4L6N7O7O7O9Q;S7O9Q9Q;SBYG^BY9P:R"H`"KbH_%Of#OfKb"NeH]EZCXCXEZH]H]H]E\F]H_KaLbOdRgShO_K[DU@Q?PCTIYL\K\K\K\HYEVCTDUEV8DKW@L?KHTAM =I ;GBK ;C 7B?IFRIVLYO\KP@F48-2,0-1-/*,46 13 135746 02 02 3579 24-//1 57 9: 6723 4/ 4/5Sd9J;L-K\$BS9J;L2C4A .;2? ,9+8 .;&3(5;B*FM8?0706 -3 +1�$�&*(-+3,6(6%5)<1D1?%3�+�-&4 /=3A2@2=7B7B1<-8-8-8 *5'5+9 ,< +;)<&:%9';)92B;M<N3G +B +B /F7K:N7K1E2F6J7K6J8P:R=U=U;S;S>VAY;S<T<T>VE\!JaF]=T7OC[H_G^"Lc#Of!Md#OfI^G\EZEZF[H]I^I^CZD[G^KbOeQgRgQfP`K[DU@Q@QDUJZN^K\L]K\IZFWDUDUEV 9ELXAM?KIUBN?K>JCL;D 8C>IFRIVLYO\JOAG 7; 05 .2 .2-/+-57 13 135757 13 24578:46 02 24 68:; 89 5694946Te<M7H+IZ%CT4E7H2C.:*6 1=-9.: 2>*6-95@+GR:E0;2= +6(2� *�%-+32<3A .> *= -A1H5E'7�!1$4(8 /?5E5E .<4B8F8F9G:H6D 0> /?7G7J4H2F.E -D3L 0B8JCU!FZ?U5K2J6N;Q?U9O 0F 2H5K4J6L<U?XB[@Y>W>WB[F_=U?W?W>VD[!JaH_BY4N>XD]D]G` Ld!Me!MeH^F\DZE[F\G]G]F\AYCZF]Kb"Qg!RhQgPeQaL\DU@Q@QDUL\P`#P^JXESFTJXJXES?M :FMYAM@LJVDPAMAMEN=F8D@KGSIWLYP]INCI<@7<48 15/1+-79 35 245757 24 24687;5948487: 8;9< 8;:6:61O`$BS6G$BS$BS5F7H2C-;*8 1?-;.< 4B 0>6D6G5O`#?P2C6G/? *: +;+4 3<:F:H6H4H8O>V<L /? .>3C2B5E;K;K 4F9K<N?QDVFX@R7I:L?Q:N6M:Q8P5M:T 1C8JCW&K_"G];S8P;U=UBZ:R 1I5M7O6N9Q>ZA]D`B^>Z>ZC_ Hd>VAY@X>VBYH_I`F]7S>ZC_C_D`Je!LgJe"G] E[CYDZ"G]"G] E[BXBZBZE\ Ja!Pf"Si RhPfQaL\EV@Q@QEVM]Rb NYITEPGRKVJUDO=H ;GMYBN@LJVDPBNBNFO>G:FALGTJXMZP]HMEKBF?D;?6: 13,.9;57 355746 13 24685;6<8=7<6; 6;9>;@:6:6+IZ)GX6G:K!?P8I9J1B 3@/< 6C2? 3@;H:GCP#<P?Zn,G[7J>Q4G0C8K 4=9E=K:J8J:Q#E],Nf@P5E8H@P<L<L@P?OBWDYEZG\"Mb$OdG\<Q>R?S7K3J=U<T6P9S-? 2F?S%J`#H^=U9S<V@Z#F`>X5O:T<V;U?Y?[C_EaC_>Z>ZC_!Ie>VAYAY=U?VF]I`H_;WA]FbEaD`Id!LgId#E\ BYAX!CZ%G^%G^ BY>U D\BZD[H_"Ne"Si!SiQgRbM]EV@Q@QEVN^ScGNJQLSKRHODKBIAH ;GNZBN@LJVEQCOCO GP?H;GBMHUKYM[Q^HMGMFJDI@D9= 24,.;=68465746 13 24685;7=:?9>6; 5:9>=B=9=9!<Q!<P=P?O?O=K8F6B 4A8E8E7F;MBT@S:M/Qi)L`&JZ=I=FEQ<L:L9O .D=U>V5O@]%Gd$Fd@^>X>TBU H[&Mc(Mg)Mk)JY.O_)J^AX%F`0Rp*Jm8\;X=Z?\ @]!A^>[8U1N�#;>V@Z?Y,Nk&He9WA_ B`#Ec B`:X7U=[ B` B`A]B^C_E`GbHcIdJe?Y?Y>X>X?YB\ E_"Ga>\@^Db"Jg#Ol!PlNjJf!?\#A^%C`'Eb(Fc(Fc(Fc(Fc'Kc!G_CZCZI_QfWl!\p!XmPeJ_J^J[GYM]#TdI[FWDUHU MXMUFMAEBMFQFQBMBMEPEPALDVCUBTEVIZ!M^ N_ N_JVLVMULRHJAB ;975;@<A=@9=57 11 1133:66273<8;7513/627777%@U >Q<O<L=M;I6D 2>0< 3@ 3@1@ 4C8J6I/B%G_BVAQ6B6?=I4D3E4J+A<R=U2L=W!C`!C`<Z:T9O:M>QAWA[@^!EW'J^$F]>X Db-Pq'Ko:^<Y;X=Z"B_#C`>[8U4Q .F:R!D^&Ic*Li+Mj&Hf B`A_#Ec"Db>\<ZA_$Fd$FdC_D`EaHcJeKfMhMh!F` E_D^D^D^ E_"Ga"Ga@^B`Ec$Li%Qn%Tp!QmNj&Da&Da'Eb(Fc)Gd+If+If,Jg'Me"KbH_J`Oe!Vk#Zo#\qUjPeNcPdPaK]L\P`J[FWESFSKVKSEL@G@MDQERBOCPHUIVFS"J\ HZHYIZ!M^#Qb$Rc$RcIX JWHTFOBJ=A9;68;@;@:>8<5722 11 20845162:6953/ 1-402222'DY!?R:M:J;K;I5C /;�'3�*6-:/< 3B8J9K6H!C[=Q>N5A 4=9E 0@ 1C 2F+?>R@V4L=U C] C]<X9S8N9K<N?U@ZB^D\$Ic"GcA_!Gi-Sv'Nt@g=Z8U;X#C`%Eb>[9V:W6N3K C]+Nh$Fc,Nk1Sq@^A_#Ec$Fd B`A_#Ec&Hf'IgEaFbGcJe Kf MhNi Oj$Kg$Kg$Kg$Kg#Jf"Ie!Hd!HdB`Ca!Ge&Nk(Tq(Ws%Uq!So*Jg*Jg(He(He)If+Kh-Mj.Nk(Qh&Of%Of#Rh$Uk$Yn#Zo"YnQfPeSh#Vj"VgOaL\L\J[HVESERHSHSDM@I>LCQDRCQ!FT&KY(M[&KY%M_ K\IZJ[ N_$Rc%Vf%Vf)M_'K]&HX"CR!?J;D8?6;=@:>8<7955330/ .-513/3/62511- 0,1- ,+ ,+(G\ @S9L9I=M>L8F 2>�+4.72> 7D=JBQDSCU(Jb!DX"FV>J;D=I3C5G6E /ADVDX9MAW"F^"F^?[>V?R@RDV!I\'Me*Ok$Jh)Om&Mm!Gi%Mp,V{)SxEl?\7T9V%Eb(He>[:W?\5M0H=W%F` @]*Jg0On=\!Ca$Fd%Ge$Fd"Db#Ec$Fd%GeFbFbGcHcIdJeJeKf"Hf$Jh%Ki&Lj&Lj$Jh"Hf FdCa Db"Hf'Ol)Ur*Yu(Xt$Vr+Pl)Nj&Kg%Jf%Jf'Lh*Ok-Rn(Ri(Ri&Ri&Uk%Vl$VlTiQfQfSh!Vk&Ym$Xi RdM]JZMYIUFRDQGRGRCOAM>NCS!EUCS"FV(L\)M]'K[ K\HYFWHYM^"Sc%Vf$Wg,Vi)Sf)Oa&KY"DQ >I;D8?;?8<685555430/ .*2.1-1-1- 0, /+ .* .*)()('F[ @S9L;K?OAO<J 6B 8A9B=F@LCPDQDSFU/Qi(K_+O_"HTCL@L5E9K7E/=CRET9K@T EYDX@ZAWASBQDS!I[(Oe-Rl*Pp-Ss*Pr%Km%Mp)Sv%OrFh @]8U:W%Eb(He @]<Y!A^3L5N8S<W#A^+If,Ih%Ba$Fd%Ge&Hf&Hf#Ec B` B`!Ca GcFbFbFaFaE`E`E`EbGd"Jg$Li%Mj#Kh!IfGdCa Db!Ge&Nk(Tq)Xt(Xt%Ws,So*Qm&Mi#Jf#Jf%Lh(Ok+Rn'Sj$Si$Si$Si"SiPfLbG]Ti!Vk#Xm%Xl#Wh!SeP`L\MWKUISGRGTGTFSERBR"FV#GW!EU"FV'K[(L\%IYK\IZHYK\ Qa&Wg'Zj([k)`o(\l%Yf$Q^ KTDL>D;A9;68 333343401-/+0,0,/+ -) ,( -) ,( +' *& *&#DX?R<N<LAPBO=J8D 6= 7>:C@IAM@MBOGT,Nf%H\)M]"HTBK=I 1A7I6B+7<H=K5D?NAS>P>V=S<N<I<I>PDZ"H`,Op.Qr,Op$Jj#Jj%LlHh?_!A^;X<Y%Eb'Gd"B_?\!A^8Q"AZ=X:U'Eb-Kh*Gf.Kj'Ig&Hf'Ig(Jh$FdA_@^"Db!Hd HdGcGbGbFaE`E`EeGg Ii#Ll#Ll"Kk IiHh"Fd#Ge#Ig'Ol(Tq*Yu)Yu&Xt.Vr+So(Pl%Mi$Lh%Mi(Pl*Rn%Vl#Tj!Rh Qg"Qg OeKaG] Wl$Yn$Yn"Ui Te!Se QaM]LTLTLVKVKXJY IX HZGY"J\#K] HZ HZ$L^%M_"J\&Rc#Qb"Pa#Td'Xh)\l)]m(\l!_i\fV_NUHLBE>@<<4633222140403.1, .*/+ .* *&)% ,( ,( *& ,& ,&@T?Q=O>M>M=J 8E5@0407 5<;D;G:F=JDQ#E]?S#GWEQ?H9E .>6H9B+48A:F 3A>LAP<K;S<O;J9F8E;JBU F^0On1Po/Nm(Jg%Jf%JdG`AZ!A^?\ @]#C`%Eb$Da!A^ @] >W(F_%B] =X'Ca,Hf.Ji3On*Lj(Jh(Jh*Lj&Hf!Ca"Db'Ig$Kg#Kg#Kg!Lg"Mh MhMhNi$Mm%Nn&Oo'Pp&Oo%Nn#Ll"Kk'Ki'Ki&Lj)Qn*Vs+Zv+[w'Yu0[v-Xs*Up'Rm&Ql'Rm(Sn*Up&Xn$Uk!Rh Qg$Si$Si#Rh#Of Wl%Zo$Yn!ThSd!Se!RbM]LRMSOW"P[#O\#N]%M_$L^L]!O`"PaM^ N_$Rc%Sd!O`*Xi(Vg&Wg(Yi([k'[k%Yi"VfTZOTFI>@8:8695:7 // 0010212.2-4/50 ,)/,-*'$&# *' +( (% +& +&>R>P>P>M<K9F3@0;5948 6=:C 8A1= 3?9F>V9MBRBN>G8D .>7I?F/69B:F6BBPDR>M;Q<O<K<I=JAP"J])Pf5Qo6Rp3Ql-Nh,Nf*Nf&KaF\!A^"B_"B_"B_$Da%Eb"B_>["@Y&D]'D_"?Z!=[)Ec0Lk1Ml+Mk(Jh(Jh+Mk)Ki$Fd&Hf-Om&Mi%Mi'Ok&Ql(Sn(Up'Vq'Vq,Uv,Uv,Uv+Tu*St(Qr&Op$Mn+Om+Om)Om,Tq,Xu-\x,\x)[w0]x.[v+Xs)Vq'To(Up)Vq*Wr(Zp$Vl"Si"Si'Vl*Yo-Yp-YpVk%Zo%Zo!ThSd!Se QaK[LONT QY%S^&R_&Qb'Oa'ObN` Rd!SePb Rd%Wi%Wi"Tf+Yj*Xi'Xh'Xh%Xh"VfQaN]ILBE 69.-*)-*40"83++ ..102.1-2-5092 ,)/,-*&#%" *' +('$ *% *%$FVCU?U?VAVBS@M>G 9G :H?MCQ@N 9G 9G=K!CS:J@P@PAQAQ7G<L?R 6I 4G 7J9LCV!L_I\ER 8F 4EDWDZ?Y+Mj*Li(Pm3[x0Xu(Nl+Om'Ki"Db$Fd&Bd;]:]%Ad*Ej)Ck*Dl-Go&Ed-Lk*Ih%Dc'Fe'Fe*Ih4Sr,Op*Mn)Lm(Nn)Pp*Qq&Oo$MmJl!Oq&Tv)Wy)Wy(Vx(Vx)WyNlNlOm"Qp&Ut(Vu(Ts&Rq,Uu,Uu,Uu-Vv-Vv-Vv-Vv-Vv.Wn-Vm*Tk'Qh#Of"Qg'Vl)Zp)Zj'Xh$Ue%Vf'Xh'Xh%Vf"Sc Qa QaP`P` Qa"Sc$Ue%Vf!RhPfMcJ_K]"M`%Qb'SdRa"Yh*ap+ct'at"\oXlWk*`y']t%Zo"TfO]LVJPHO55 2.+!�%&+"*(')' $" %,)1011 .. ,' +& )$ *% ,' -( +& *%('('%I[!I\I^I_H]EVBO?H :H;I?MCQAO;I;I?MCS:J?O?O@P@P7G<LFW<M<M@QCTJ["N_HY?L 4C0A@S?U9S#Eb"Da"Jg-Ur+Qo"Hf$Hf$Fd B`#Ec-Lm'Fg%Cf)Gj,In+Ho*Gn-Jq'Fe.Ml+Ji&Ed(Gf'Fe*Ih4Sr)Lm'Jk$Jj&Ll'Nn&Oo%Nn$Mm!Oq$Rt'Uw'Uw&Tv%Su%Su&Tv Tr!Sq Rp$Sr&Ut&Ts&Rq#On'Ut'Ut(Vu'Ut'Ut%Sr$Rq#Qp%Ne'Qh)Sj'Sj%Qh#Rh#Tj%Vl'Xh%Vf#Td$Ue&Wg&Wg$Ue"Sc'Xh%Vf"Sc Qa!Rb#Td'Xh)Zj)^s,^t-_u.`t+]o)Yk&Te#Qb$Vl%Zo(\s(\s&\u&\u)_x*b{,au+_p&Yi!S_OYLRJNIL88845+ ,!) ,#+(')  )#/,/. +*)) -( +& *% *% ,' ,' +& )$'#'#&N`&Pc%Qh PhMcGYCP@L<J<J?MDRCQ>L>LBPCS9I>N>N?O?O6F;KCT9J9J@QCTIZHY=N=J 6E0B>Q>T7QB^A]!Ie+Rn)Pl!FbC_ B_#C`'Gd2Qr-Lm*Hk,Jm-Jo+Ho+Ho,Ip*Ih0On-Lk(Gf)Hg(Gf*Ih5Ts*Mn'Mm&Ll'Nn(Qq*Ss'Sr&Rq*Xz+Y{*Xz(Vx%Su%Su&Tv)Wy*^|*\z(Zx)Xw)Xw)Wv'Sr$Po'Yw'Yw(Zx'Yw&Xv$Vt!Sq Rp!Jc&Oh*Vn-Yq+Yq&Vn%Um$Tl&Xj%Wi$Vh%Wi&Xj'Yk&Xj%Wi+]o)[m%Wi"Tf"Tf$Vh'Yk*\n&_t'^s&]r&[o%[l&Zk&Yi%Xh*[u-^x1b|1b|/_{+[w(Xt&Vr!UaR\NUHNDFAB@?@=5688831* -& /) -,**�� &".) ,) )( *).) ,' *% *% ,' ,' *%(#%%'Re%Ti%Vl!SjLcFXCQAM?M>LBPFTES@NAOFTDS:I?N>M?N@O7F=LAP 6E 5D<KAPHWFU:IAO>M6H@S@V<UFb!Hd*Qm/Vr.So#Hd@]!A^%Eb)If(Ij&Gh%Eh'Gj(Hl)Ho*Ip+Jq,Kj3Rq/Nm)Hg*Ih)Hg+Ji5Ts-Ss,Rr+Rr-Tt/Xx/[z/[z+Yx0^0^.\~*Xz'Uw(Vx+Y{/]1e0b.`~/^}/^}.\{-Yx*Vu(\z)]{*^|+_}*^|(\z&Zx%Yw'Pi+Wo2^v3ay0`x,\t(Zq'Yp(\m(\m(\m)]n*^o+_p+_p+_p,_s+^r([o&Ym%Xl&Ym'Zn'Zn!\p!\p"[p"\o&^o*`q-ds/fu0bv1cw2dx1as*Zl!QcIZDUFHDFAB?=<9948381.01100/,3/8675 21#" # (#/*0-/,/*,' *% *%,',' *% '"$$"Tf#UkTkPiI`DXBSCPAOCQGUJXFTAODRKYET;J?N>M?N@O8G>MFU9H7F=LCR#L[$M\BQCQCS9K>QAW?X#Kg&Ql3Xr4Ys/Tn%Hb>X@Z&D_'E`@a!Bc#Cf%Eh'Gk,Kr0Ov1Pw/Nm5Ts1Po+Ji,Kj*Ih+Ji5Ts/Vv.Uu-Tt.Ww/[z1]|/]|.\{,Z|,Z|+Y{(Vx'Uw(Vx-[}1_-a-_}+]{-\{.]|/]|/[z.Zy&Zx(\z)]{+_}+_}+_}*^|*^|-Xs1\w2_z3`{.]x*[u(Ys&Ys'Zn([o)\p)\p)\p*]q+^r,_s+]t,^u,^u,^u+]t)[r&Xo$Vm'bv*ey/h}2l4l}3iz/fu,cr*^e&Za RXLOFJCEAB@A=:>;?9>9=6:47160-/-.,014>A#IK HG?> '$.+-(% (#40820*-)+')%)%+'+')% '# & &WjVkSlOiKdG]FWFUDRHV M[!N\FT?MES"O]GV<K@O>M?NAP9H@OBP6D 3A8F=KFT#JXBP=KAQ8J;N@V@Y"Mh'To6[u2Wq.Qk%F`;U=X$B]!>Y@a"Ef%Hj&Ik)Ko0Qx5V}7X2Qp8Wv3Rq-Lk-Lk*Ih,Kj5Ts.Uu+Tt*Ss*Vu-Yx-[z+Zy*Yx$Rt&Tv'Uw&Tv%Su&Tv)Wy,Z|%Yw%Wu#Us&Ut)Xw,Zy.Zy-Yx%Wu&Xv&Xv(Zx)[y*\z+]{,^|.[v/\w0]x,[v(Ys&Wq$Wq%Xr#Xm%Zo&[p&[p$Yn$Yn%Zo'\q)\v+^x.a{/b|.a{+^x&Ys#Vp+dy-dy*av)^r$Zk TeP`M]HIDFAA ?;>8>7>5<1 70819271602-0+-)012539:C&GP0RX)OQEE +*3241.)-)605,,#+')% ($)%+',(+')%)#)#YmWmVnUoSlQg N`"KZFTLZ&Sa%R`ES=KDR&SaHW>M@O?N@OBQ;JAP=K 3A 1?5C6D>LBP;I3B?O8J<PE[E]"Oj&Up;_w3Wo-Qi&H`>W$C\)G`!?X!De(Kl+Np)Ln*Lp1Ry6W~6W~4Sr:Yx5Ts.Ml.Ml+Ji,Kj6Ut.Ww-Vv*Vu+Wv,Zy,[z+Zy)Xw#Qs&Tv)Wy*Xz)Wy(Vx)Wy*Xz#Wu#Us"Tr%Ts(Wv,Zy/[z.Zy,Zy+Yx)Wv)Wv*Xw,Zy.\{0^}.Zw/[x-\x*Zv(Xt%Ws&Xt&[v'\q)^s*_t)^s'\q%Zo'\q)^s-_{.`|1c2d2d/a}+]y)[w+`u(Zp!SiL`GYEWFWFWEMDJBFCDDAB;=58.82603-/*+()&''%& 1/9;@H$DQ)IV+JS$EH<;3321211./)-$*"* )%($'#)%+'-),(+',*,*ZnYoZr [u$[v'Yp&Tf%N]GU"O]*We'TbDR;IDR'TbJY>MAP?N@OBQ<KBQBN9E9E<H;G@LCO=I/>?O;NAU"KaKc#Rm)Xs?c{5Yq2Tl+Me&E^-Kd0Ng&D]"Hh)Oo+Pr&Km&Jn+Ou/Sy/Sy5Ts;Zy6Ut/Nm.Ml+Ji,Kj6Ut3\|2[{.Zy/[z/]|/^}.]|*\z'Uw+Y{0^1_0^-[},Z|,Z|(\z'Yw%Wu(Wv+Zy/]|3_~2^}7`4]}1Zz/Xx/Xx1Zz4]}6_/[x/^z0_{.^z*\x*\x)^y+`{,cx.ez/f{.ez*av(_t*av,cx/c0d1e1e1e0d.b-a)Zp)Zp+Zp*Yn+Yk,Wj*Vg*Vg/^l)Vc MXFMBF@@=<<8 D>@:82/,**(((*(+.+<?$HR(IX&CR <G49,,==00 *).++%! ".$($'# &"($,(.*-),(././$\o#[n!YjWhVeT`S_R^PeUj#XlRfGYARFTLZ)RaGVHW#L[HWGV IXGV+Id"BY9L7G<L@S @W=X:L>PCUFX HZ%M_-Ug3[m?[z<Xw5Rq+Jk%Cf#Cf(Hl*Lp2Ot+Hm)Fk.Kp0Mr-Jo0Mr7Ty6Uj6Ul1Oh,Jg/No6Sx3Qz+Ht'Yw*\z-_}-_}+]{+]{-_}/a0\y.Zw,Xu-Yv0\y1]z/[x-Yv0Zw0Zw/[x/[x.]y/^z.^z.^z&\u,b{/b|([u(Ys.]x/^y,[v(`y(`y(`y)az*b{+c|,d}-e~*c|)b{-f2k2k,e~(az(az4e-^x(Ys+\v-^x,]w-^x0a{+cv*bu.cw.cw+^r$Vj#Ui(Zn_m`n]j[f%[f(Yc!OWCJ 6;7=4:187@&EN/OZ1T^%HDB>;784=9 C?@<955-+# %)!-%-%-%.&,(.*0,0,/+0,40739:9:SgSgSdSdSbS`R_R_O^Ud!Xg!TdL\HY!M^(Sd&K_ EY$I]'L`CWAU#H\%J^+Hc#AZ9N8H;K=R!?X!>Y>T>T>T@VCY#H^'Lb*Oe@\{<Xw5Rq.Jl(Fi%Eh)Im,Lp)Fk,In-Jo,In-Jo0Mr2Ot2Ot6Tm7To3Ql0Nk1Pq4Tw2Ru,Lp&Ro(Tq)Ur'Sp$Pm#Ol%Qn'Sp*Vn(Tl&Rj&Rj(Tl(Tl&Rj#Og%Qi&Rj%Sk(Vn(Xp*Zr+]t,^u+az+az-c|0c}0a{._y0_z3b}0e0e0e0e0e1f1f2g3k,d}(`y)az)az(`y+c|1i2e+^x([u*]w+^x)\v+^x/b|(`s&^q'_r+`t+^r%Xl%Wk)[o(ey%`s#Zi'Xf0]h2YaCI .2" &*,2166==F?H<E2/96#B?%DA>;85749650-()$.)2-1,.).).*/+0,0,1-2.51737878PdOcL^I[FVCP AN ?LMRPVPWJVCQ@QDW!H^>V=U%G_*Ld BZ=U"D\&H`+Ge&D] ?T;N;N=R#AZ&B`#C`?\<Y?\%Eb+Kh,Li+Kh>Ww9Ut4Po1Mo0Nq3Qt3Sw5Uy/Jo9Ty;V{4Ot1Lq5Pu6Qv1Lq6Qs6Rt6Sr1Po0Pm0Ro,Qk(Mg*Ph*Ph(Nf%Kc"H`!G_"H`$Jb'Pf%Nd#Lb#Lb#Lb"Ka I_G]J_K`Nc#Rg%Wk(Zn*]q,_s)_x$Zs&\u-`z-^x&Wq(Wr0_z8e8e7d6c6c5b4a4a.by(\s&Zq(\s(\s'[r*^u0d{1e|-ax,`w.by,`w)]t+_v1e|*bs%]n$\m)_p+_p&Zk$Vh%Wi)Yq0_u2]p)P^AI7<12-- #%)-+/056=8?7=6431 86+CA,DB#;975#;9 721,/*4/!83502-1,3/1-0,1-406273736666AV@U@R?Q=N=K ;I ;I FE EFCF >F :H;N@V!E]<W<W*Hc3Ql+Id'E`+Id,Je2Lj/Je*F^%CV"@S%AY+Fa1Ki/Km*Fh(Df.Jl8Tv>Z|<Xz6Rt:Ss8Qq5Qp9Tv?[~DbGdHe;V{B]B]:Uz1Lq0Kp0Kp/Jo5Ow6Qv4Ru1Po,Oi'Nd$L_!I[.Oc,Ma)J^&G[$EY$EY&G[(I]'M_&L^%K]%K]%K]$J\#I[#I[IZK\N^!Rb#Vf'Zj(\l*^n'Zt$Wq$Wq'Xr&Up#Rm)Vq/\w<b;a;a9_7]5[~3Y|2X{3_v-Yp)Ul)Ul(Tk%Qh&Ri+Wn-_u+]s+]s,^t)[q%Wm'Yo.`v,bs%[l#Yj+_p0bt-_q+[m*Zl2^v-Xm$L^EQBH ?@1.""<<.JJ=YYC_`C^b;VZ*GL9>$9720$977LJ<QO.CA%:8)><"95402. 73"95625162 73402.3/ 73"95"95!84 86 86G\F[FXEWDUDRDRCQNOLOKQJU$M\.Sg9[s?`z.Kf'D_,Id4Ql2Oj3Pk9Vq8Up7Pp6Ql2Nf,I^(EZ*F^1Lg8Qq9Tv5Pr4Oq;VxE`HcB]:Uw=Tt=Tt>WwC^LfRnUpSpF`D^B\?Y~7Qv/In1Kp9Sx5Ry4Qv3Qt/Qn(Nf"J]HWHU'H[%FY"CV!BU!BU#DW%FY&GZ GV GV!HW"IX"IX"IX#JY$KZIWJXKYM[Q^S`Ta Ub(Wr-Zu,Yt)To,Tp5]y>eAhPpPpOoNnKkHhDdBbDj:`x0Vn,Rj*Ph)Og/Um7]u1]t/[r/[r1]t-Yp(Tk*Vm0\s/br*[k(Yi1_p:fw9ev6ar5`q)Wi(Te&R_+T]0Y\-TR=9& ,JE/LI.KH(DD&@@#<>7;04(&/-2GEI^\CXV)><42(=;%<8623/62 735162#:6$;7!845162#:6%<8%<8#:6&<7&<7(Zn(Zn&Xj$Vh"UeS`R_Q^PZNZLY$L^+Pd2Tk7Vo:Wr2Ke%>X#<V)B\)B\/Hb9Rl;Tn;Qt9Qo5Nh/Ia+E].Ga5Mk;Qt>Tw=Sv=Sv@VyDZ}CY|<Ru6LoAXxCZzG^~KdPjTnToToUlOfNePgKbE\I`Tk9V{5Sv1Rs/Tp-Tj&Pc"M\!N[ H[FYDWDWGZ"J]#K^#K^GXIZ K\!L] K\!L]#N_%PaM^M^N^O_O_P`P`P`)Pl2Ws2Ws/Qn5UrDdPnRpZsZsZsXqUnQjMfKdAax=]t=]tBbyEe|Gg~LlRrInFkEjGlEj@e{@e{DiCn}<et8ap<cr@dt:^n6Xh3Ue!OW*U^/[b1Y^.UW'MM@>32$.'7295":8 88/0&(0.0.+@>@US>SQ*?=42#86'=;!754253 6442!75&<:'<9%:7$96$96%:7'<9'<9'<9+@8+@8 Ui Ui"Xi#Yj%\k&]j(_l(_l!Kb Ja!Ja$Jb(Jb&E^=V5O$<R4J7M%=S":P%=S.F\1I_9Mp6Kk1Gc+C[)AY,B^2Gg7Kn:On:On;Po:On9Nm7Lk5Ji4Ih=RrBWwG^~McOgNhPjOj]t[r[r[r[rZq]t`w=_}6Xv3Ur5Zt6_u3]p0\m1]n+Zp)Xn'Vl)Xn,[q.]s.]s,[q-[m0^p2`r2`r0^p0^p2`r5cu3as3as1as1as.`r.`r-ar-ar9Wt=Yw>Zx@ZxE]{KcUjYnPgPgPgOfLc}H_yCZtAXrC]uE_wNh[u`z]w\v]w\xWsVrYuYuTpRnTpSuKl|EfvEctC_p9Uf3M^0J[7[[3WW.PP,KN/LP/IO :@)/$) +$+%0,$:8+@>-?@-EC 8664-EC4LJ+CA":8!97'=;#97!75$:8$:8!75"86'=;(=:(=:(=:'<9&;8'<9)>;+@=.A8.A8SfSfSdSdTcVbVbVb;b=cBfGiHiB`y5Pj*F^2C4E)CT3M^+EV&@Q+EV,FW5Il0Ee*@\%=U$<T(>Z-Bb1Eh2Hd4Jf5Kg3Ie0Fb0Fb4Jf8Nj4Ii;PpBYyI_KcKeMgOiXo]t]tXoYp^u\sVmBe9\v3Yq:`x>g~=h}=h}?j=q;o:n;o?s@t>r;oDsGvIxGvEtCrEtHwKxKxHwHwFxEwDwDwSkOgRgWlVjSeUg]o\r]s]s\rYoUkPfNd}[sYq\t`x_wYqUmWo[rUlSjWnXoSjPg}Pg}Pl}IevGarGarE]o?Ug9Oa8N`:SOG`\PfdF[]6IN+:C#1= ,80&6,9082$;7*?<-?>*<;)DA&A>*EB3NK1LI&A>!<9%@=&;<$9:%:;)>?(=>$9:$9:'<=*=:,?<-@=+>;)<9)<9+>;.A>-@7-@7(We'Vd&Uc%Tb%Tb&Uc'Vd(WeCfzDg{Eh|Cfz>au6Ym.Qe)L`/Hb2Ke(A[$=W5NhAZtB[uD]wHfIb|CWp:Ga7C[?KcESiDUjEe|Ee|Ff}HhJjLlMmOoNgwPhzWqWpRm[vb~_{^s]tZsXsSrMqIoGmNiQlId~Gb|RmSnKfKfLdzJbxG`tE^rD^oB\l>Xh;Ue3Tc5Vf8Vg7Uh7Rf8Pf9Qg<Rk=\u9Xq/Ng5Sl1Lf/JdAZt:SmSdwPatSdyRcxK[rM\vN]wFUo*Xi3as6fx5dy3dz6h~6h1cz3Zh2Yg3Xf2Ta+KV&DO-JS8S]@Te=Qb>Rc8L]-AR0DU6J[/CT:LK9KJ7IH5GF3ED1CB0BA0BA>QT>QT>QT:MP5HK1DG1DG1DG.EG.EG.FF.FF.FD-FB-FB-FB2B;5D@9HD;IH;HJ8DH4@F1<D.C;+@8(=5(=5*?7,A9,A9+@80><0><.?<,?<,?<*?<*?<)@<4B<4B<:iw9hv8gu8gu8gu8gu8gu8guQrPqOpLmHi|Cdw>_r<]p4Vm9[r3Ul/Qh;]tBd{AczBd{9cv:_s6Uj2Ma0K_3Qb7Xh8ZjEg~Eg~Eg~Eg~Df}Bd{@by?axPhzNfxOizKdxA\qHcxOkKg+Zp,[q-\r0\s1]t0\s2\s1[r+Wn*Vm(Tk)Ul,Vm%OfI`"Lc,Qg*Oe'Lb'L`'M_&L^#JY GVIZL]#O`$Ob%Ob'Nd)Pf*Qg'G^.Ne2Qh<Xp3Og.H`9Sk5MeFWjFWjHYlDUj>NeEUlIXr?Nh?`o@br>`p4Xj/Rf-Rf(Oe#J`)JY@O<I%@N-GS3LV8NY>R]CVc4GT3FS9LY5HU0CP1DQ/BO6KI4IG1FD/DB-B@,A?,A?,A?:KN;LO<MP:KN7HK5FI6GJ7HK4KM4KM3KK1II0HF/HD.GC-FB,@;/C>4GD8JI:LM:KN8HN6FL.D?-C>-C>.D?0FA2HC3ID3ID7HE5HE5HE3HE4IF3JF1JF1JF0H>0H>3bp4cq4cq3bp3bp2ao1`n0_m9Yl7Wj3Sf/Ob-M`+K^+K^+K^?O$EU#DT AQ$EU%FV"CS"CS#HV CQ>M!>M ?NBP GU!MZ*Oe-Rh1Vl5Zp8]s:_u;`v;`vQi{LdvG`t>Wk3Nc:TlB^v>Ys[n]p_r#`t'bv+bw0bx0bx&ey$cw,i}4q3n-f{,ez0i~2`x0^v.\t/^t0_t1`u/_q-]o0_t2av6cx4av2]r0Yo/Xn/XnEdyHg|Li~OjB]r9Qg8Pf,CY4FW8J[:K^3DY/@U<LcBRi7F`$:E$:F"8D3B3C8H9J7H &6&@NBYhGZg4FQ(8D:IRVblTfm;MT7IPHZaHZa9KR4FM9KR7KL5IJ1EF.BC,@A-AB.BC/CD;JM<KN=LO<KN9HK8GJ9HK:IL2IK2IK1II/GG-EC,EA*C?*C?0GB2IE5LH6LJ7LM5JK2GI0EG,DB-EC-EC,DB*B@(@>(@>(@>7LI7LI6MI6MI4MI2MI2MI2MI6VK6VK'Wc(Xd(Xd)Ye(Xd&Vb$T`#S_)K['IY$FV!CS BR BR!CS"DT:M\>Q`@Sb>Q`<O^:M\9L[:M\,BM':G'8E,=J*?N&AO&HU,Q_7\r7\r7\r7\r7\r7\r8]s8]sQi}JbvD]q;Si2Ld<VnFa{C^x&j}'k~+m.m1n4o5n4m*n*l0r5t3n0i~.g|,cx6b4`}2_z3`{5c{7f|6e{5dyCe}EgIhIiFe|EayDavDavA_p9Uf2N_3M^2J\4L^4J\#9K&8I.@Q3EV,=P):O:K`@Pg0@W-@G*=D%:B%:B'=H+DN,DP)CO9L[8KZ4ER*:G&2>2<FV_iy8KN&9<)<?@SVGZ]<OR:MPEX[/DE-BC)>?%:;$9:&;<(=>*?@>MP?NQ?NQ<KN8GJ6EH6EH7FI2IK2IK2JJ2JJ2JH2KG2KG2KG4LJ4LJ5MK5MK4LL2JJ0HH.FF)AA-EE2JJ4LL3KK4LL5MM8PP8OJ9PK<SN>XR@\VC_YDc\Fe^HdWHdW._i/`j0ak0ak/`j._i,]g+\f.Ud-Tc-Tc,Sb+Ra+Ra,Sb,Sb8P\9Q];S_;S_6NZ4LX7O[:R^5OV/EP.BM2ER3HW0JZ1Rb8\l9[r7Yp3Ul1Sj1Sj4Vm8Zq:\sNfzG^tBZp<Tl6PhB[uKfHc~5dz3dz3e{0ez-dy*cx(av&au!Zo%\q'\q'Xn)Xn0Zq.Wn(Nf5Wu3Us0Ro0Ro1Tn3Wo3Wo2Wm@_xA_x>]t8Uj/M`(DU$>O"<L0KY!<J3A,:*9 5D4C'6"5D,?N4FW/AR->Q=NcARg0AV#?@9=7; =B(FK.KR-LU,KTJ]j;N[1BO2BN;GQ<FP:CL:AJ.AD*=@-@C8KN;NQ1DG/BE7JM2GI0EG,AC)>@(=?*?A-BD/DF7HK8IL9JM6GJ3DG1BE1BE2CF+BD,CE-EE/GG1IG3LH5NJ5NJ5MM6NN7OO8PP9QO:RP;SQ;SQ=UU@XXD\\E]]C[[BZZC[[E]]G^VF]UC[S@XP:UL6SJ3PG2OF6G<6G</`j0ak0ak1bl1bl1bl0ak0ak,Yf,Yf-Zg-Zg-Zg-Zg-Zg-Zg)Wb%S^(Va*Xc$R]"P[(Va+Yd(UY%OV&JT'IV'IY&L^(Re+Xm;Wo6Rj/Kc)E]'C[)E]-Ia0LdD[q?Vl=Um:Rj6OiAYuHc~B]x?ay?ay;ay7ax3_v,]s'\q%Zo$Ne*Sj&Ld%G_2Mg;Rl=RmDWrGdC`{?\w<Zs<[r=\s<[p:Yn$Ka#K^#I[DS?K:D9A:? ;E6@";E3=/:+?J.BM*<G%8E.AP7JY6HY4FW@QdBSh3DY!>B8<9<'EJ5U[>`fAbkBcl@Zf8S]3LV4IQ3FN/AH1AG7EK%;@*@E.DI3IN7MR4JO3IN:PU3IN1GL.DI-CH-CH.DI1GL2HM-DF/FH1HJ1HJ0GI0GI2IK4KM0GI1HJ2JJ4LL6NL8QM:SO;TP@UW@UW?TU>ST>TR?VR?VR@WRF[YF[YDYWAVT<QO8MK5JH4IG4F?4F?2G?3H@2IA1IA2JB2JB9J=9J=)Zb)Zb)Zb)Zb*[c+\d,]e-^f*`k*`k*`k*`k*`k*`k+al+al)`m!Xe%\i*an$[h"Yf'^k'^k+_e/^f1Ye1Sc0Qe1Sk1Tn/Tp3Ib0F_.D].D]1G`8Ng?UnDZs5Lb3Ib6Nf8Oi7OkBZvE_}=Wu?h?h@i@i?i>h=g~:f}PrVuJhJa{SfM[wU`|wHhCcz=]t8Ym6Wj5Vi2Td1Sc*K^(JZ&GVBL<B:=;;<;)CI&@F1IO&>D"8>2EL/BI*<C-@M0CP8KZ9L[7IZ?PcBSf7H[4JP(>D 8>(BI7PZ>Yc@ZfA]hDhp9]e3U[6SZ5RW0KO+DH*@E.KP0MR-JO0MR7TY0MR*GL1NS2HM1GL0FK0FK0FK1GL3IN4JO1OP4RS6TU6TU5ST6TU8VW:XYE\^D[]D\\C[[C[YB[WB[WAZVDTZCSY@QT=OP;ML:MJ:NI:NI8GC6EA5D@5D@6EA6EA6EA6EA;H@:IA:IA:KB:KB9LC7LC8MD9PA9PA,]e,]e+\d,]e-^f/`h2ck3dl'bk&aj%`i$_h$_h&aj(cl)dm.aq$Wg)\l0cs)\l&Yi)\l([k5`i=co@^o>Vj@QkCSp?Pq7Jm6Ga4E_2C]0A[2C]5F`9Jd<Mg)?X)?X0H`7Nh:RnE]yGa>Xv2g|5g}8i<kBlDmFlHlEgKj@[uD[uPa|BMiQWt5]p0Xk(Pb"J\GVFSCPAN);L)<K):G&9A$7<'9:+=<1B?$=A7;&?C"8=)=B?SX<OT2EJ2ER1DQ7JW9L[7IZ<N_@Qd:K^=MT-<E"1:'7C3DQ:KX:M\<O^&PW*T[4\a<`f9\`.OR(GJ)GH=]c8X^2RX=]cLlrFfl?_eGgmD]aD]aD]aD]aE^bF_cG`dG`d@bbBddCeeBdd@bb>``@bbAccBY[@WY>VV;SS7OM4MI1JF0IE;FN:FL8DH6CE7ED8GC:IE<LEBNH>JD<HB<HB?KEAMGAMG@LF;F><G?<G?;H@:IA:IA:KB:KB6VE6VE `k!al!al!al"bm"bm#cn#cn$]f(aj,en-fo,en+dm-fo.gp0fq.do,`l&Zf%Wc(Xd-]i1am=`t;^r9\p:]q?bvAdx>au:]q=We9Rb5M_4L`6Le7Lg6Kg5Ih@br;\l9Wj>YmF^tL`yM^xL]xGb|OjGb|NiLg=Xr;Vp,Ga,@E$8=)=B';@+0.3(<A&:?16#8@#7B$7D,@K)?E6864$:820 "#%&&(.31EJ-AFFXc<NY2CP.AP2GV8L]7N^4J\1AX5E\9I`;Kb;Kb<Lc?OfBRi8N`+AS"8J)?Q<RdLbtOewKasGbvIev=Vf.DP8KSN^dKZ]5BD1EPG[f0FQ8NZKbqGaoQjzPiyQnuPmvOmxOq~TvTzS{QzPmqA^b6QU7PT7PT6LQ5KP9MR5F=8I@;LC;LC9JA9JA<MD?PG8OG4KC0G?/F>1H@3JB2IA0G?-C>0FA4JE5KF5KF4JE4JE5KF<WM>YOA\RD_UGbXIdZJe[Kf\SkaSka*ap*ap)`o)`o)`o(_n(_n(_n8dq9er8dq6bo3_l0\i.Zg.Zg,\h+[g.[h.[h,Xe*Ta+Ub0We/Zm.Yl,Wj-Xk2]p7bu;fy<gz5jt4is3hr3gs5iv9mz>qAt?_j=Zh:Uc9Rb>TfCWiBSh=Nc.>K,<I#3@#3@%5B%5B*:G(8E&+,1+0&+$) "!)/-5,7.;"5B06&((&&;=!68.03818$7>7JR4GO<MZ7GW3CS5GX;O`?Se:Od5J_:K`;La<Mb<Mb=Nc?PeBShEVk<Rd2HZ*@R0FX?UgLbtNdvKasLhyQk|C]k/EQ2EMATYBQT0?AEYdZnyE[fJ`lVm|OiwWpUn~QmxQmxQn|UrVuTuQrNoQlpJeiC^bD]aDZ_;QV3GL,@E7KF7KF6JE3GB1E@2FA7KF;OJ4JE3ID3ID6LG;QL>TO?UP>TOE[VH^YKa\Mc^Nd_Nd_Mc^Mc^IbXIbXJcYJcYIbXHaWF_UE^TF^RF^R.^p.^p/_q0`r0`r1as2bt2bt.Wf-Ve,Ud-Ve/Xg1Zi1Zi1Zi.`l-_k2bn7gs7dq0\i.Zg2^k.\m/]n0^o2`q2`q4bs7ev;izHhsEepCdm@aj;]c3VZ)LP!DH497=6=4<%9D-@M.?L&7D,+#"   *).-#54&9@-@G29':AL_fJ]d.AH,?F*@F*?G(;H,?N.AN4<')**%8?$7>$7?*<G'9D+<I8IV4DT:J[:J[=L_CTgJ]rK]tCXn<QgBUj@Sh=Pe<Od>QfATiDWlEXmH^pBXj=SeAWiKasSi{Tj|RhzNhyVoOfu=S_8MUASZ?OU0ADQepfzUkvWmy]tTn|YrWpUoUoWqZs]tYq}UkwOeqQjnSlpUnrXnsZnsVjoL_dBUZ=SQ?USAWUBXVAWUAWUCYWE[YSgbRfaRfaThcWkfXlgWkfVjeNb]Nb]Nb]Nb]Ma\I]XEYTBVQBZPBZPC[QD\RC[QC[QBZPAYOG^OG^O0bt0bt/as.`r,^p+]o*\n*\n3gt/cp-an-an0dq2fs2fs1er3it/ep3gs9my9kw3co3co:jvHm{Hm{Hm{Ejx<ao/Tb(M[(M[+1>"(5($#')))'&#').0/4$7>0CJ/BJ$7?52,)521.52!>;52;8!7='=C06'=CSioWms<RX8NT7LT3GR1DS8KZ9L[%9D,122-?J-?J1BO5EU0@P2BS;K\9H[DSfDSfGViL]rPbyQczI]vCWpG[mDXj@Tf?SeBVhDXjDXjCWiLcsJaqH_oJaqNeuQhxRiyQhxHbpRixRjvKalJ_gM`hDV]4GLH\g[ozRhsTjvWn}OiwTm}Rk{ZsYqYoZo~]n{\mvZjqXemZpu_uzbv{]qv]pu`pv[kqSciLceSjl\suaxzaxzZqsRikLceM`]K^[I\YGZWFYVDWTCVSCVS@TO@TOCWRFZUH\WI]XG[VEYTH]TI^UK`WLaXNcZNcZNcZMbYG]JG]J+`m,an-bo.cp0er2gt3hu3hu=iv:fs8dq:fs?kxCo|Dp}Dp}Ip~Biw>cq<_m4We,M\,M\4Sb.ET)@O'>M(?N"9H-<'6(7)4+619!7<$;=%=;$=9"<6') 49*>C+>E1DK7LT2FQ%9D7>4;'CJ'CJ*FM/KR:A;B 7?*AI+BJ-DL6MU4KS/FN6MU;OZ9LY7JY?QbCVe3GR%;A+BD@Q^<MZBRbAQa:J[=L_CReCReJZkFVgCReBSfDWlFXoBWm?TjE[mCYk@VhAWiCYkCYkAWi>TfCZiCZiD[jD[jE\kE\kE\kE\kE[gH^jH^iF\gL`kMbjCV^4GO9MXI]hG]hKamNetLftPiyOhxMbwG]oCWhCScDT`JV`NYaNZ`J^cRejTglRbhRbhYgm\hnXdjVlq\rwe{ki`v{SinKafPa^N_\K\YHYVEVSEVSFWTHYVJ[WJ[WJ[WIZVHYUFWSDUQCTPH[RI\SJ]TK^UK^UJ]TI\SH[RJ]JJ]J8ku8ku8ku9lv9lv:mw:mw:mwYr|UnxOhrIblD]g?Xb:S]7PZ/?P-=N(8I"0B+= ,>&0B)3E/?L!1>*7/<%5B$4A&6C+;H3KWH`l_xg[u|Ici;U[6PV1<+=H2ER4GT5JY6M]0GW$=M*9L*9L4CV7FY;J]=L_4CV1@S1HP3JR8OW9PX6MU8OW>U]BYaL`kK^kGYjK\oM_p@S`3IO7MREWb<NYBS`>N^8HX?O`BRcCReDUb?P]8HX3FU3GX7K]7M_7M_B[kB[kB[kB[kB[kB[k?Xh>WgCZiD[jD[jD[jD[jD[jD[jCZiH\gCWb<P[;OZ@T_DXc<R]4JU:NYEYdF\gI_kMdsOiwRk{PiyM`oGZi@S`?P]BR^FW`KZcM\e>NTFV\M]cQ_eS_eVbhZdkZdkJ_aLacQfhVkmZoqYnpUjlRgi^lk]kjZhgVdcQ_^O]\O]\Q_^HWSJYUL[WM\XL[WN]YRa]VeaSbZUd\Wf^Yh`[jb]ld]ld]ldfugfugLrwIotBhm:`e0V[(NS!GLDI'7='7=&6<"28,2(.%+$*0A(:K.@Q0@Q7EWESeP\nP\nCU`,>I/:"4?-?J.@K.@K1CN$.?/9J:DU>HZ:CW7@T:BY>F]2CV8I^<Od?Tj?Vl?Wo:Sm5Pj9Kb;Md8Ja>PgASj?QhBTk=OfE^hAZd=V`B[eKdnOhrLeoHakDWdFYhASd@QdDVg<O\1FN2HM>QY2EM9LT6HS3DQ=N[=M]>N^AT[=PX8KS4HS5KV9O[;Ra=TcE^nE^nE^nD]mB[kB[kC\lD]mJbnJbnIamJbnKcoKcoKcoJbnNaiI\dBW_AU`AWbDZfF\hD\hK_jOcnPfqPfrQhwTn|Sl|Ohx`ry]ovZmuZmuZny[q}[q}Zp|UciWek[io\hnWahPZaS[bW_fGYZEWXEWXI[\QcdXjk]op^pqgutiwvkyxiwvesraon_ml`nmbqmetpdso_njXgcWfb]lhcrnR_WTaYWd\[h`_ldbogcphdqi^i_^i_6OS2KO,EI$=A37+/ $(!%++..00//** '' && ''&M[5\j=bp8]k<_mHixJkzEds=W^%?F29%?F7QX<V]:T[:T[=M]7GX1@S2@V9F`AMiFQoFQq@Ql@QlAToAWs?Wu<Vt:Vu:Wv:^p?cu3Wi:^p<`r5Yk=as5Yk@YcB[e;T^7PZ;T^4MW(AK(AK/BO5HW3DW4EX=Na>Q`9NV:PU<PU/BI8KR6IQ6HSBT_@Q^@Q^CW\AUZ@TY@V\BYaG^fHakIblHbpHbpGaoD^lA[iB\jF`nJdrIamIamH`lIamJbnKcoKcoKcoQdkQdkSfnSgrQgrQgsTlxZqZnyZnyYozUkwTkzVp~Rk{KdtYjmYjmXlqZow[q|Vp~Qk{Khw_ms\jp^jp]ioV`gPX_T\cagnYgfVdcR`_Sa`Xfe]kj`nmaonYfh`mohuwmz|mz|kxzkxzkxzixtl{wl{wetp]lh\kgetpn}y_ld`mebogdqierjerjerjdqiowpowp5;/5-34:&@F+EK%?E6<%9J*?N-CN$<B*, $ 2,(>P+AS/EW2HZ4J\8N`?UgCYk7P`'@P 9I.GWC\lJcsD]m>Wg;Pf8Mc4I_1F\1F\5J`:Oe=Rh>Rk=Qj<Pi<Pi=Qj>Rk@TmAUn=Rh=Rg;Pe:Qa8O^6NZ5NX4NU:LW:LW:LW:LW<NY>P[AS^CU`CSdDTeEUfGWhHXiJZkK[lK[lHWjHWjHWjGViGViGViGViGViMZhMZhLYgJWeHUcGTbFSaER`N^kM]jK[hJZgIYfJZgK[hL\iN^kO_lQanRboRboO_lL\iJZgN^jTdp\lx`p|_o{WgsM]iFVbJV\KW]LX^NZ`P\bQ]cR^dS_eZktZktYjsYjsXirWhqWhqWhqZhfXfdVdbUcaVdbXfd\jh^lj^or`qtduxhy|iz}hy|fwzevyaiickkemmhppjrrlttlttmuumsrmsrmsrmsrmsrmsrmsrmsrpuvpvupvupwtpwtpwrpxqpxqpvqpvq:S]4MW.GQ+DN,EO.GQ/HR.GQ1HX5L[9Q]/IP15 ! (%962HZ2HZ2HZ2HZ1GY2HZ4J\5K]D]m5N^,EU5N^AZjD]m=Vf6O_?Ti>Sh=Rg<Qf=Rg>Sh@UjAVkCWpCWpCWpCWpDXqEYrFZsFZsF[pEZoDZlCZjBYhAYe@Yc?XbFXcGYdHZeI[fJ\gK]hK]hK]hN^oM]nL\mK[lIYjHXiGWhFVgAQaBRbBRbBRbBRbBRbBRbBRbAQ^BR_BR_CS`CS`DTaDTaEUbHYfHYfGXeHYfHYfIZgJ[hK\iVgtXivYjw[lyZkxXivUfsSdqVfrUeqTdpRbnN^jK[gGWcEUaFV\FV\GW]IY_JZ`K[aL\bL\bYjsYjsYjsXirXirWhqWhqWhqZgiZgiZgi\ik_lncprgtvivxgvyhwzjy|kz}jy|hwzfuxetwemmfnnhppjrrksskssksskssoutoutoutoutoutoutoutoutoutoutoutovsovqovqowpowpuysuys*AQ/FV3JZ3JZ1HX0GW3JZ7N^0GW3JZ8O^2KU5<"(-1)EF?Ug>Tf>Tf>TfAWiCYkDZlE[mOhxD]m<Ue?XhD]mC\l=Vf8Qa?Ti@UjBWlDYnDYnDYnBWlAVkEZpF[qG\rH]sH]sH]sH]sG\rG\qG]oF\nF]mE\kE\kE]iD\hK]hK]hK]hJ\gGYdCU`?Q\<NY=M]>N^?O_@P`AQaAQaBRbCSc?Q\?Q\@R]@R]AS^BT_BT_BT_@S`ATaCVcFYfH[hK^kL_lM`mPfrQgsSiuTjvVlxWmyWmyWmy\r~^t_u`v`v^t\r~[q}^nz[kwXhtUeqTdpVfrYiu[kw_ry`sz`sz`szat{at{bu|bu|bqzbqzbqzbqzapyapyapy`oxeqweqwfrxfrxgsyhtziu{jv|m|l{~kz}ix{gvydsvbqtapshppiqqjrrkssksskssjrriqqntsntsntsntsntsntsntsntsotsotsotrotroupovoovoowmnrlnrl,AV3H]:Od<Qf9Nc7La8Mb;Pe6N`5M_;Td=We1KW$?I/JTEah8N`6L^6L^9Oa>TfCYkDZlDZlH_oCZj@Wg@WgBYiBYi@Wg?Vf;Qc=Se@VhBXjBXjAWi?Ug>TfCXnDYoEZpF[qF[qF[qDYoCXn@Wg@Wg@Wg@Wg@Wf@WfAXgAXg8JU:LW;MX=OZ>P[?Q\>P[>P[FVfEUeEUeEUeDTdDTdCScCScGZbH[cI\dJ]eK^fL_gM`hM`hQgsQgsSiuUkwVlxXnzZp|Zp|]u^v`xbzc{c{bzbz]u^v_w_w_w^v]u\taq}aq}aq}br~cseufvgwcycycybx~bx~bx~bx~bx~ds|ds|ds|cr{cr{cr{cr{cr{jt~kulvlvkujt~hr|gq{nz~lx|iuyequbnramq`lp_kogoohppiqqjrrjrrjrrjrriqqjpojpojpojpojpojpojpojponsqnsqnsqntonunnunnvlnvlloflofRg|OdyJ_tCXm>Sh<Qf<Qf=Rg6Nb1I]2J\8Pb6O_/HX5N^AZjCYk@Vh=Se=Se?UgAWi?Ug=Se<Pa=Qb=Qb<Pa<Pa>Rc@Te@Te<Rd=Se>Tf?Ug?Ug?Ug?Ug>TfCXmDYnF[pG\qF[pEZoDYnCXm@Wf@Wf@WfAXgAXhAXhBYiBYi?Q\?Q\?Q\@R]BT_DVaGYdHZeJ[hK\iK\iL]jM^kN_lN_lO`mUhpViqWjrXksYltZmu[nv[nv^t]s]s]s\r~\r~[q}[q}Zp|[q}\r~]s]s\r~Zp|Yo{Yo{Zp|Zp|[q}[q}[q}Zp|Zp|]my]my^nz^nz]my\lx[kwZjvVksVksUjrUjrTiqTiqTiqShp^jt^jt^jt^jt^jt^jt^jt^jtdmzen{hq~ktluluktjsgswequbnr_ko]im]im^jn^jnemmfnnhppiqqkssksskssksskqpkqpkqpkqpkqpkqpkqpkqpqtrqupqupquoquoqvmqwlqwlrulrul]rZoVkTi~Sh}Rg|PezNcxIbvD]qAZnBZpBZp>Vl<Tj>VlG]oDZlAWi?Ug>Tf=Se;Qc:PbCWhFZkG[lCWhAUfDXiFZkFZkCZjCZjCZjCZjCZjD[kE\lE\lJ`rJ`rJ`rJ`rJ`rI_qH^pH^pIamIamI`oI`oI`pJ`rJ`rJ_tRdoPbmL^iI[fHZeGYdHZeHZeGYdHZeK]hN`kRdoVhsXjuZlw\ny\ny]oz]oz^p{_q|_q|_q|[n{ZmzYlyWjwUhuSfsRerQdqTerUfsUfsUfsTerSdqRcpRcpWhuXivXivXivYjwYjwYjwYjwWgsVfrUeqUeqUeqVfrXhtYiu]px]px]px\ow\ow\ow\ow\owakuakublvblvblvcmwcmwcmwgq{hr|is}jt~jt~is}hr|fpzdoscnralp`ko_jn`koalpbmqfnngooiqqkssmuumuumuumuurxwrxwrxwrxwrxwrxwrxwrxwuvruvruwquwquxouynuynuynuvluvlUl|Yp^uczf}e|d{czfhhd~b|b{`y\uWmWmVl~Si{QgyPfxQgyRhzOarSevSevN`qK]nN`qPbsN`qH_oH_oI`pI`pJaqJaqJaqJaqNdvNdvMcuLbtKasKasKasLbtMfpMfpMeqMdsLcsLbtLavLavM_jM_jM_jM_jM_jM_jN`kN`kUgrUgrUgrUgrUgrUgrUgrUgrWgwWgwWgwWgwWgwWgwWgwWgwTdqScpScpQanP`mO_lN^kN^kXcqWbpWbpWbpWbpWbpXcqYdr[ft[ft[ft\gu\gu]hv^iw^iwYiuYiuYiuZjv\lx^nzaq}br~dr~dr~dr~dr~dr~dr~dr~dr~hr|hr|is}is}jt~jt~kukuozoznylwju}hs{epxdowirvirvhqugptgpthquhquirvmuunvvowwpxxqyypxxpxxowwv|{v|{v|{v|{v|{v|{v|{v|{wxtwyswyswzqw{pw{pw{ow{ovxlvxlSjyUl{Vm|SjyOfuOfuSjyXo~Ni~Yt^xZtXq]u^vZrZp[qZpWmRhzPfxQgySi{K]nPbsPbsJ\mHZkL^oN`qL^oH_nI`oKbqMdsMdsMdsKbqJapOewNdvLbtJ`rI_qJ`rKasKasIcjIblIamH_nH_oH]rG\qG\rQcnQcnRdoRdoQcnOalL^iK]hFXcFXcGYdHZeJ\gK]hL^iL^iN]pN]pN]pN]pM\oM\oM\oM\oQ^lQ^lR_mR_mR_mR_mR_mS`nXaoXaoW`nXaoYbp[dr]ft_hv_hv_hv_hv_hv`iwajxbkybky`p|br~dteueubr~_o{]mygp}hq~hq~hq~iririrjsgq{hr|hr|is}jt~jt~kukumy}my}my}my}my}my}my}my}nw{nw{nw{nw{mvzmvzmvzmvzt||t||u}}u}}t||s{{qyypxxv|{v|{v|{v|{v|{v|{v|{v|{y{uy{uy{uy|sy}ry}ry}qy}qttjgcyj}l|TaiO[any}ay`x_w^v]u[sZrZr\ovYlsTgnPcjM`gM`gM`gNahK_pJ^oH\mG[lFZkG[lH\mI]nJ\mK]nL^oN`qOarOarN`qN`qL[nN]pQ`sP_rM\oL[nO^qRatMarMarMarNbsOctOctPduPduQamP`lO_kO_kO_kN^jM]iM]iJ]eFYaI\dJ]eEX`I\dQdlQdlSasO]oLZlN\nSasUcuSasN\nY^mY^mY^mX]lX]lX]lX]lW\kYbpZcq[dr\es]ft_hv`iw`iwgk~gk~gk~gk~fj}fj}fj}fj}mtlsjqiphp}go|gpzgpzithsfr~fr~gs}gt|dqybpven{en{dmzdmzen{hq~jsktgthukvlwoxqzr{r{s~r}q|r{sy~sy~uy~vzvzvzvzuy~uy~tx}tx}tx}z}{{~|{~|y|zwzxwzxy|z{~|yuxtxuxuywzz||}}y}y}d~b{\scwdu~O]cLX\jvxVkzVkzUjyUjyTixShwRgvRgvObiM`gI\cFY`DW^CV]DW^EX_L^oL^oL^oL^oM_pN`qPbsPbsSctTduUevVfwVfwUevTduTduRatQ`sP_rO^qN]pN]pO^qO^qOarOarOarPbsPbsPbsPbsQctVeuVeuVeuVeuTcsSbrSbrTcsSepOalRdoSepN`kRdoZlwYkv\j|XfxTbtVdvZhz[i{XfxTbt\ap]bq]bq]bq]bq]bq]bq]bq\du]ev_gxbj{dl}goiqjrhniojpkqlrntououhognel{dlyckxclvclvcludo}bm{_kw_kwbnxerziv~kxjs}js}ir|ir|ir|js}kt~kt~lwnwoxqzr{u|w}x~vu~v}u|v{~wz~x{z{x{x{x{x{x{wz~wz~wz~y{u{}w~z||{~z}yz}m{~o|p~tvx{{TlxQiuLbmQdkQdi@RS@PO[ihI[fI[fI[fI[fI[fI[fI[fI[fJ]eI\dFYaDW_CV^DW_EX`FYaI[lK]nM_pOarQctRduSevTfwXfxYgyZhzZhzZhzYgyXfxWewWfyUdwRatRatSbuUdwUdwUdwUgxUgxUgxUgxTfwTfwTfwTfwZh{]k~_m]k~Zh{XfyZh{]k~\l|Yiy]m}^n~Xhx[k{csbrgsco`l~amcodpam]i{bgvchwchwdixdixejyfkzfkzishrhrhrhrhrhrhrem~em~em~em~em~em~em~em~krjqiq~ir|ir|kt}lu~nxjsktlulvlvkv~kw}kw}rxrxsysyrxqw~pv}pv}qxqxryu{w{x|z}z}y}y~|x}{y|zz{yz{y}{z~|{{|z{|z{|z{|z{|z{|z{|z{|zuvwxxvs}}qppnprw~uuH^dF\bCW\EX]HY\<NO@POTdcFU^FU^FU^GV_GV_HW`HW`IXaL\hK[gJZfIYeJZfK[gL\hM]iL\mN^oQarTduUevVfwVfwVfwYewZfx[gy\hz\hz\hz[gy[gy\j}]k~]k~\j}[i|]k~aodr`p`p_o_o^n]m~]m~\l}[h~_lbo`m\iZg}]jan`n]k~aobp\j}_mfteshtfrdpeqgshtfrcohm|in}jo~kplqmrnsnsnynylwkvitgrfqepmtmtmtlskrkrkrjqlrlr}lr}mt}nv}pxr{t}pvrxt{u|t|t}t}t}vvvwwwyyyyyyyyyxxxwwwvvvpswqtxsuvsuvvvvywvywvywvxypwxovwnxvnxumyvn|vo|vozwozwozwo{xp{xp|yq|yq|yql~j~}i~}i~jk~j~jye|hnruvsrstK^cJ]bH[`K\_M^aI[\O^`^moNZdNZdO[eO[eP\fQ]gR^hR^hO]iO]iO]iP^jQ_kR`lTbnTbnVfwXhyYiz[k|[k|[k|Zj{Yiz\fx]gy_i{ak}bl~bl~bl~bl~epkvozkvdobmhsozbrbrbraq`p`p_o_oYf|^kan_l[h~Yf|]jan`k]h|bmcn]h|_j~epcnfpeoeofpisjtjtismrnsotpuqvrwsxsxlslsmtmtnunuovovtxtxtxuyuyvzvzvz}~}~|~|~{~{~z}z}vuytswqptnmommmmmmopnpqonjeokfrnisojtpktpktpksojmkjolhpmiqmhqmhsmfvofvofspbroasm`sm`um`wnaxobznbwobwobxpcyqdzre{sf|tg|tgxr[ys\{u^~xazc|e}f~gml~l}k~nsvyQ_eP`fP`fQagScjTdkYipaqxWeqXfrXfrYgsYgsZhtZht[iuYftZgu[hv\iw]jx_lz`m{an|drdrdrdrcqbpao`nflgmhnjpkqkqkqjpmxs~wr}hsbmepkv_m_m_m_m^l~^l~^l~^l~Zh{]k~_m^l\j}[i|]k~`n_l|]jzbocp]jz^k{dqan~elfmgnhokrlsmtnupuqvqvrwsxsxtytypupupuqvqvrwrwrw~}~}}||{{zzyyxyxyq{yq{yrywpwtnspkmkfhidelc`kb_i`\jb[ld]jcZf_Vb\Qh_Ui`VkbXlcYne[ne[of\of\mf]mf]mf]of\qh[qh[shZshZpiVrhVqgUsgUsgUvhVxhWyiXukYukYwm[xn\zp^{q_|r`}sa}r\v`{e}g{ezdzdzdnrzĺZem\fp[gq[gqZfr[iu_myan|]m}]m}]m}^n~^n~^n~^n~^n~ep~fqgritjukvlwlwguftesdrdrcqcqdrmqnrnrnrmqlpkojnmvoxqzoxkthqenen]k}]k}]k}]k}^l~^l~^l~^l~^m}_n~`o`o`o`oapbqeq}co{htjvco{dp|iufr~ipjqkrlslsmtovovrwrwrwrwrwrwrwrwzzzzzzzzzzzzzzzzypzypzzq{{r||s}}t~~uvt|v~z|z~vx~qs{oorf{k_tdXscVwhXyjZvhVrdRobRnaQnaQnaQobRpcSqdTreUofYofYpeWpeWreUtfTtfTtfTthPthPsgOtfOwgPxhQ{iR|jSymUznV{oW}qYs[u]v^w_|fjmk~hiqxhq{irjsfqep~erhues_p_p_p_p_p_p_p^ocm~cm~eofphrisisiseqdpcoamambncodpnrnrmqlpjngk~ei|cgzenclclhqmvmvgpbk`l~`l~amambncocodpbr~br~br~csdteueudtjvht~myo{ht~iunzjvnuovovovovovpwpwrwrwrwqvqvqvpupuzw{x}z}öιn|hVvbPyfQ}kT~lUykYxjXvhVugUugUugUvhVwiWrgYtgWsfVugUugUvgTwfQwfQwjPviOxiOxiOziO~jQkRlS}pV~qWrXtZv\x^z`{a|ilm}j~kw±{np|oq}pr~qssutvuwvx|zv|vrxmqvosxrv{uy~uy~tx}sw|quzmwmwmwmwnxnxnxoyjyjykzl{m|n}n}o~oyoyoyoypzpzpzpzswswswtxtxuyuyuy}v}~w~xz|~Ʒ;ʼwoui_ufVufVufVugUvhUwiVxkUylVsgUvjXxlZxlZwkYwkYym[|p^xmWvkUujTwlV{pZ}r\|q[zoYqWsYu^xaydzgzgzg{f~itøøø·ÿſ}}xx~qqwkkqiiokkqppvssyfn{go|hp}jrksmunvows|s|r{qzpypyoxoxx|x|w{vztxswrvqu|z}{~ɻ|vi|m]yjZ|n\q_{m[~p^r`saq_}o]{m[zlZtas`r_s`tatatas`v_w`xbzd}jptv˽ķŸƹǺȻɼʽʽļļŽŽƾǿ~x}rlqkejegofhphjrkmumowprzrt|su}ps{qt|ru}sv~twvywzwz|~Żýwnyjan[~mZ}lY~mZo\p]p]p]p_q`sbtctcudwfxgpl}koʽ˽ƹƹǺȻɼɼʽʽļļļļļŽŽŽȾȾȾȾǽǽǽǽ÷ʼ̾νv}ludsbtcududuhyl~qsux|ȿƹƹƹǺȻȻɼɼ˾̿ȻȻȻɼɼʽʽʽƾƾƾƾƾǿǿǿɼɼɼɼɼʽʽʽ˾˾̿̿̿̿̿̿¾¾¾ÿÿÿ¾¾¾ÿÿÿ¼¼¼ýýý¹¹¹¹¹¹¹¹¼¼¼ýýý¿»»»üüüýýľľľſſſ········¹¹úúúĻĻϽ½½þþþĿĿĿĿ········¹¹úúúĻĻϽ½½þþþĿĿĿĿ³³³³³³³³ĵĵĵĵĵĵĵĵŸŸŸŸŸŸŸŸǺǺǺǺȻȻȻɼǽǽȾȾȾɿɿɿǾǾȿȿĴĴĴĴĴĴĴĴŸŸŸŸŸŸŸŸƹƹǺǺǺȻȻȻǽǽǽȾȾȾɿɿǾǾǾȿȿóóóóóóóóĵĵĵĵĵĵĵĵƷƷƷƷǸǸȹȹƼƼǽǽǽȾȾȾƽǾǾǾȿȿȿȿ°°°°°°°°ññññññññôôôôôôôôŶŶŶƷƷƷǸǸƺǻǻǻȼȼȼȼǼǼǼǼȽȽɾɾʿʿʿʿʿʿʿʿ°°°°°°°°óóóóóóóóĴĴŵŵŵƶƶƶƸƸƸƸǹǹǹȺǹǹǹȺȺȺɻɻɾɾɾɾɾɾɾɾ®®®®®®®®ññññññññIJIJųųƴƴƴƴŷŷŷƸƸƸǹǹƸƸƸǹǹȺȺȺɾɾɾɾɾɾɾɾɿɿɿɿɿɿɿɿ°°°°°°°°IJIJIJųųųƴƴŵŵƶƶƶǷǷǷŶƷƷƷǸǸǸȹȽȽȽȽȽȽȽȽȾȾȾȾȾȾȾȾ̿̿°°°°°°°°ñIJIJIJųųųųŵŵŵƶƶƶǷǷŶŶƷƷƷǸǸǸȽȽȽȽȽȽȽȽȾȾȾȾȾȾȾȾȿܾܾܾܾܾܾܾܾ̿̿̿޿޿޿ððððııŲŲŴŴŴŴŴŴŴŴƶƶƶƶƶƶƶƶƺƺƺƺƺƺƺƺȼȼȼȼȼȼȼȼ˼˼˼˼̽̽;;ͼͼνννϾϾϾͽͽͽͽͽͽͽͽммммммммԾԾԾԾԾԾԾԾ־־׿׿ܾܾܾܾܾܾܾܾݿݿݿݿݿݿݿݿݾ޿޿޿¯¯ðððıııijijijijijijijijƶƶƶƶƶƶƶƶƸƸƸƸƸƸƸƸɻɻɻɻɻɻɻɻʻʻ˼˼˼̽̽̽ͼͼͼͼννϾϾͽͽͽͽͽͽͽͽϻϻϻϻϻϻϻϻӾӾӾӾӾӾӾӾ־־־׿׿׿ܾܾܾܾܾܾܾܾ޿޿޿޿޿޿޿޿޾޾޾߿߿­­îîîįįįijijijijijijijijŵŵŵŵŵŵŵŵŷŷŷŷŷŷŷŷȺȺȺȺȺȺȺȺɺɺʻʻʻ˼˼˼̻̻̻ͼͼͼνν̼̼̼̼̼̼̼̼ϻϻϻϻϻϻϻϻҽҽҽҽҽҽҽҽԽԽԽվվֿֿֿܾܾܾܾܾܾܾܾݾݾݾݾݾݾݾݾݾݾ޿޿޿­­­îî¯¯¯¯¯¯ŲŲŲŲŲŲŲŲŵŵŵŵŵŵŵŵǸǸǸǸǸǸǸǸȹȹɺɺɺʻʻʻ˺˺˺˺̻̻ͼͼ̼̼̼̼̼̼̼̼κκκκκκκκѼѼѼѼѼѼѼѼӼӼӼԽԽԽվվٿٿٿٿݽݽݽݽݽݽݽݽ޼޼޼޼޼޼޼޼޼޼߽߽ྦྦྦྦ««ŰŰŰŰŰŰŰŰĴĴĴĴĴĴĴĴŶŶŶŶŶŶŶŶǸǸǸȹȹȹɺɺɸɸʹʹ˺˺˺˺˻˻˻˻˻˻˻˻͹͹͹͹͹͹͹͹ѼѼѼѼѼѼѼѼһһһһӼӼԽԽֽֽ׾׾ؿؿؿؿݼݼݼ޽޽߾߾߾޼޼޼޼޼޼޼޼߻߻߻߻߻߻߻߻ལལལལᾤᾤᾤ⿥©©îîîîîîîîññññññññųųųųųųųųƷƷƷǸǸǸȹȹȷȷɸɸɸʹʹʹʺʺʺʺʺʺʺʺ̸̸̸̸̸̸̸̸ллллллллйѺѺѺһһһӼռռֽֽֽ׾׾׾ۺܻܻܻݼݼݼݼ޼޼޼޼޼޼޼޼߻߻߻߻߻߻߻߻߽߽߽ྡྡῢῢῢῧῧῧῧῧῧῧῧྦྦྦῧῧῧìììììììì°°°°°°°°IJIJIJIJIJIJIJIJŶŶŶƷƷƷǸǸǶǶȷȷɸɸɸɸʺʺʺʺʺʺʺʺ̸̸̸̸̸̸̸̸κκκκκκκκййййѺѺѺһԻԻռռֽֽֽֽڹڹۺۺۺܻܻܻݻݻݻݻݻݻݻݻ޺޺޺޺޺޺޺޺߽߽߽߽ྡྡῢῢྦྦྦྦྦྦྦྦ߽߽ྦྦῧῧῧῧ««««««««®®®®®®®®űűűűűűűűĵĵŶŶƷƷƷƷǶǶǶȷȷȷɸɸɹɹɹɹɹɹɹɹ˷˷˷˷˷˷˷˷κκκκκκκκϸϸйййѺѺѺԻԻԻռռռֽֽڹڹڹڹۺۺۺܻບບບບບບບບບບບບບບບບ⼞⼞⼞⼞⼞⼞⼞⼞ὟὟὟὟὟὟὟὟ⽣⽣⽣⽣⽣⽣⽣⽣侦侦侦侦侦侦侦侦ªªëëĬĬĬĬŭŭŭƮƮƮǯǯƮƮǯǯȰȰȰȰɲɲɲʳʳʳ˴˴ɳɳʴʴ˵˵˵˵ͷͷͷͷͷͷͷͷηηηηηηηηҶҶҶҶӷӷӷԸֶֶ׷׷׷ظظظ޷޷޷߸߸߸ẚẚẚẚẚẚẚẚẚẚẚẚẚẚẚẚ⺝⺝⺝⺝⺝⺝⺝⺝ὟὟὟὟὟὟὟὟ⽣⽣⽣⽣⽣⽣⽣⽣侦侦侦侦侦侦侦侦㿧㿧㿧㿧㿧㿧㿧㿧ªªªëëëĬĬĬŭŭŭƮƮƮƮƮƮƮǯǯȰȰȰȱɲɲɲʳʳʳʳɳɳɳʴʴ˵˵˵ͷͷͷͷͷͷͷͷηηηηηηηηѵѵҶҶҶӷӷӷֶֶֶ׷׷׷ظظݶ޷޷޷߸߸߸߸๙๙๙๙๙๙๙๙๙๙๙๙๙๙๙๙⺝⺝⺝⺝⺝⺝⺝⺝⼞⼞⼞⼞⼞⼞⼞⼞㻢㻢㻢㻢㻢㻢㻢㻢弥弥弥弥弥弥弥弥⾦⾦⾦⾦⾦⾦⾦⾦ªªëëëëĬĬĬŭŭŭƮŭƮƮƮǯǯǯǯǰȱȱȱɲɲɲʳȲɳɳɳʴʴʴʴ̶̶̶̶̶̶̶̶ͶͶͶͶͶͶͶͶѵѵѵѵҶҶӷӷյյֶֶֶ׷׷׷ܵݶݶݶ޷޷޷߸⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙⹙㹜㹜㹜㹜㹜㹜㹜㹜ờờờờờờờờ⺡⺡⺡⺡⺡⺡⺡⺡令令令令令令令令㽥㽥㽥㽥㽥㽥㽥㽥侦侦侦侦侦侦侦侦ªªªªëëĬĬĬĬŭŭŭŭƮƮǯǯƯƯǰǰȱȱȱȱȲȲȲȲɳɳʴʴ˵˵˵˵˵˵˵˵̵̵̵̵̵̵̵̵дддѵѵѵҶҶԴյյյֶֶֶֶ۴۴ܵܵݶݶݶݶḘḘḘḘḘḘḘḘḘḘḘḘḘḘḘḘ⸛⸛⸛⸛⸛⸛⸛⸛ṜṜṜṜṜṜṜṜ㺡㺡㺡㺡㺡㺡㺡㺡亣亣亣亣亣亣亣亣令令令令令令令令弥弥弥弥弥弥弥弥忧忧忧忧ªªªëëëĬĬĬŭŭŭƮƮŮŮƯƯƯǰǰǰDZDZDZȲȲȲɳɳʴʴʴʴʴʴʴʴ̵̵̵̵̵̵̵̵ϳϳдддѵѵѵԴԴԴԴյյյֶٳٳڴڴڴ۵۵۵⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗⶗㷚㷚㷚㷚㷚㷚㷚㷚㹜㹜㹜㹜㹜㹜㹜㹜丠丠丠丠丠丠丠丠両両両両両両両両㺣㺣㺣㺣㺣㺣㺣㺣令令令令令令令令㽥侦侦侦忧忧忧ªªªëëëĬĬŭŭŭĭĭĭŮŮƯƯƯưưưDZDZȲȲȲʴʴʴʴʴʴʴʴ˴˴˴˴˴˴˴˴ββϳϳддддҳҳҳӴӴӴԵԵزززٳٳڴڴڴ߲߲߲䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗䶗嶚嶚嶚嶚嶚嶚嶚嶚⸛⸛⸛⸛⸛⸛⸛⸛㷟㷟㷟㷟㷟㷟㷟㷟両両両両両両両両㹢㹢㹢㹢㹢㹢㹢㹢亣亣亣亣亣亣亣亣㽥㽥㽥㽥侦侦侦忧忧忧ªëëëĬĬĬŭììĭĭĭŮŮŮůưưưDZDZDZȲɳɳɳɳɳɳɳɳʳʳʳʳʳʳʳʳβββϳϳϳддѲѲҳҳҳӴӴӴױױزززٳٳٳޱޱޱ߲߲߲㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖㵖䵙䵙䵙䵙䵙䵙䵙䵙⸛⸛⸛⸛⸛⸛⸛⸛㷟㷟㷟㷟㷟㷟㷟㷟㷠㷠㷠㷠㷠㷠㷠㷠⸡⸡⸡⸡⸡⸡⸡⸡亣亣亣亣亣亣亣亣⼤⼤㽥㽥㽥侦侦侦忧忧忧忧ªªëëëĬĬĬììììĭĭŮŮůůưưưDZDZDZɳɳɳɳɳɳɳɳʳʳʳʳʳʳʳʳͱβββϳϳϳϳѲѲѲҳҳҳӴӴױױױױززٳٳݰݰޱޱ߲߲߲߲䴒䴒䴒䴒䴒䴒䴒䴒峕峕峕峕峕峕峕峕㴕㴕㴕㴕㴕㴕㴕㴕嶗嶗嶗嶗嶗嶗嶗嶗㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚丛丛幜幜幜溝溝溝㷟㷟㷟㷟㷟㷟㷟㷟㻢㻢㻢伣伣伣彤彤彤彤澥澥翦翦翦翦©©ææħħŨŨŨŨƩƩǪǪǪȫȫȫȬȬȬȬɭɭɭʮʮʮ˯˯˯̰̰̰ͯͯͯͯΰΰΰϱϰϰϰббѲѲѲԲԲԲԲճճճִڲڲ۳۳۳ܴܴܴ䴒䴒䴒䴒䴒䴒䴒䴒峕峕峕峕峕峕峕峕㴕㴕㴕㴕㴕㴕㴕㴕䵖䵖䵖䵖䵖䵖䵖䵖㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚㷚丛丛丛丛幜幜溝溝㷟㷟㷟㷟㷟㷟㷟㷟㺡仢仢仢弣弣弣弣潤潤潤羥羥羥迦迦迦æææħħħŨŨƩƩƩǪǪǪȫȫǫǫȬȬȬɭɭɭʮʮʮ˯˯˯̰̰̮̮ͯͯͯΰΰΰϰϰϰбббѲѲӱӱԲԲԲճճճڲڲڲڲ۳۳ܴܴ㳑㳑㳑㳑㳑㳑㳑㳑䲔䲔䲔䲔䲔䲔䲔䲔ⳔⳔⳔⳔⳔⳔⳔⳔ䵖䵖䵖䵖䵖䵖䵖䵖䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙䵙嶚嶚嶚淛淛淛縜縜䶞䶞䶞䶞䶞䶞䶞䶞⹠㺡㺡㺡仢仢仢弣弣弣弣潤潤羥羥羥羥迦迦迦¥¥¥ææħħħŨŨƩƩƩǪǪǪȫȫȫȫɬɬʭʭɭɭʮʮʮ˯˯˯̮̮̮̮ͯͯΰΰϰϰϰϰбббѲӱӱӱӱԲԲճճٱٱٱڲڲڲ۳۳ްްްްްްްް߮߮ⲐⲐⲐⲐⲐⲐⲐⲐ䲔䲔䲔䲔䲔䲔䲔䲔ⳔⳔⳔⳔⳔⳔⳔⳔ㴕㴕㴕㴕㴕㴕㴕㴕䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘䴘嵙嵙嵙嵙涚涚緛緛䶞䶞䶞䶞䶞䶞䶞䶞㷟㷟丠丠幡幡幡幡溢溢溢绣绣绣輤輤潤潤羥羥迦迦迦迦¥¥¥ææħŨŨŨƩƩƩƩǪǪǪȫȫȫɬɬɪʫʫʫˬˬˬˬ˭˭˭̮̮̮ͯͯίίϰϰϰбббҰҰҰӱӱӱԲԲװװװװررٲٲݯݯݯݯݯݯݯݯݯݯݯݯݯݯݯݯܮܮⲐⲐⲐⲐⲐⲐⲐⲐ㱓㱓㱓㱓㱓㱓㱓㱓ᲓᲓᲓᲓᲓᲓᲓᲓⳔⳔⳔⳔⳔⳔⳔⳔ㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗㳗䴘䴘嵙嵙嵙嵙嵝嵝嵝嵝嵝嵝嵝嵝⶞⶞㷟㷟㷟丠丠丠幡幡幡幡溢溢绣绣弣弣潤潤潤羥羥羥¥¥ħħħħŨŨŨƩƩƩǪǪǪȫȫȫɩɩɩɩʪʪʪ˫ʬʬ˭˭˭̮̮̮ίίίϰϰϰббѯѯҰҰҰӱӱӱծծ֯֯װװװװܮܮܮܮܮܮܮܮܮܮܮܮܮܮܮܮۭۭᱏᱏᱏᱏᱏᱏᱏᱏⰒⰒⰒⰒⰒⰒⰒⰒ౒౒౒౒౒౒౒౒ᲓᲓᲓᲓᲓᲓᲓᲓ峗峗峗峗峗峗峗峗峗峗峗峗峗峗峗峗䲖䲖峗峗峗洘洘洘䴜䴜䴜䴜䴜䴜䴜䴜㵝㵝㵝䶞䶞巟巟巟巟渠渠渠繡繡繡躢仢仢仢弣弣潤潤潤澡翢翢翢æææħħħŨŨŨŨƩƩǪǪǪǪȨȨȨɩɩɩʪʪɫɫʬʬ˭˭˭˭ͮίίίϰϰϰϰЮЮѯѯҰҰҰҰԭԭծծծۭۭۭۭۭۭۭۭ֯֯֯٭٭٭٭٭٭٭٭٭٭ఎఎఎఎఎఎఎఎⰒⰒⰒⰒⰒⰒⰒⰒ౒౒౒౒౒౒౒౒ᲓᲓᲓᲓᲓᲓᲓᲓ䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖䲖㱕㱕䲖䲖峗峗峗峗峜峜峜峜峜峜峜峜䴜䴜嵝嵝嵝涞涞涞緟緟緟緟踠踠踠鹡㺡㺡仢仢仢弣弣弣澡澡澡澡翢翢翢¥¥æææħħħŨŨŨƩƩƩǪǪȦȦɧɧɧʨʨʨɫɫɫʬʬʬ˭˭ͮͮίίίϰϰϰЮЮЮѯѯѯҰҰӬӬԭԭծծծծڬڬڬڬڬڬڬڬججججججججججఎఎఎఎఎఎఎఎᯑᯑᯑᯑᯑᯑᯑᯑ߰߰߰߰߰߰߰߰౒౒౒౒౒౒౒౒汖汖汖汖汖汖汖汖汖汖汖汖汖汖汖汖尕尕尕汖汖汖粗粗䲛䲛䲛䲛䲛䲛䲛䲛䴜䴜䴜䴜嵝嵝涞涞涞涞緟緟緟踠踠踠㺡㺡㺡㺡仢仢弣弣彠彠澡澡澡翢翢翢¥¥¥æææħħŧƨƨƨǩǩǩǩȦȦȦɧɧɧʨʨȪɫɫɫʬʬʬʬͮͮͮίίϰϰϰϭЮЮЮѯѯѯѯӬӬӬԭԭԭծծ٫٫٫٫٫٫٫٫֬֬֬֬֬֬֬֬׭׭����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/picture.jpg���������������������������������������������������������������������000444��000765��000024�� 15567�11760240073� 16510� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000��������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF��H�H���C�       �C  �������������������U�  ����!1A"Qa#2SqB3CRbr$%cst45DuT��������������(��������!1a2QAq"BR� ��?�5RkǼF`r [+^.+G'$4('1>Qp_!Sc9SD|OяGzYC|OgC8,{b>P_#SY=F,FK=Dg5E=Cό~GgE?0#QY|gj>=_CDGS{</_GzYy)=Oz~)}C;oC8sz#g=N?ljަY푵N_S}_E<y}8vYY(t  ɷ%M+mW+/忰?܋ۅٲB4lh646aDzi#K`6hƜ-#UIZL5$61Sj-5.iOdP�XQɗ|_z^ۚ| ,!4IsivdFHFcHDƒ'i&"A IH4X'Xʘ#SjiE¢d nIGbX-Qj3\Ssr/a~Ly糇^hzMK!]Iii&ĞIӇ&ǪzLDhIsjL}؊W"b%=F6%=DkaQiiaEQsOl!grO\LJ^X'?./Z,5tc0Ў Զ}S NSUr&RA& &*hƞFi&—a é=S ]¢]Nd nEf(uY܋" +6%&6m1&aqnr>Jp잩v=-F &ЫэjeЫ1>͍>Ǝğq—q ]=b-.cc!7SrOCbu=W1I  8~Wq5H`~zGgoCQG#Qr}]L~kER))'f7h2{9ϹEzQH5,qʐ{4JrO[KU'lkEqݪǠ? woigǷ[@Nj:-N3|0}U9*|h ^x<<zyoتs Uy[n#{Z~*KrCR3Z@*{$GNYc(]TȽsbi.RJum9g#|1n~k^K4MCCl12y?Cٯ=ְm^>*\�ޞйK{MxH]v 6eIh"%}feزzk9]&)ՀijFGNiܽC Hon�z< .rK͒'e,k}V6d`4K v$5G3ESu ʍFd ;MT$;膟Je2.QSWaвE zv#[\OaFWŽI 3wNs-g'3OXDN.#ހjʛE ʞ/Y>D67h䨼m0mN ѡ5M?]HϔH Eނ N"Fls�,<E_yŚ>g-r+nNmdc�-*cnI1#tXep0Uv�#MДQ̺ӳvWݿZ4WN<g2v-Ft f!8β5=U.Tg %x0ON4Ÿ`Jk9Z޽Iq>G6i� 7iQM[boPRM 5Rvxb%JFz`leo^҇}ZMSM? [~ʗխw[bQNoy6G^clۨ$'VkH SIR ~j' 3 NevMyQ`U02Hq܋ȯ(v^1H763'grH 2ǥ~=K]R#ϛRܻ.=iNHW&#;vj8uWh]qq+c�Mb s%vzֺ>m ZKe-c6uٛh1�Θ.�$nRȻm 6N6Ou6I1:exTˉbR˒SwBr\iKɃ_vx n6tt8ᝨ]+|)DKK~"uι|>f7>.rtHXhhy׳#�sWF'5ssF[_n utO֖Sg1l6A7XM+pYjOH kQ=0!9oXJY)f}k$h ݭr�i@K!qJW_D�D # 2_+brTB։3D ;gg mQqiGQ 7~ssF_$|kv]k#*9@r<țƠ2Jyzȋp˒F@NXm{4wV:'w3Et\bo6m7h/Xr{iuQ2Mk|'�/:X>^f4̔ M &|/>VߑƜɈ9yW)*:6~Obf>hI| .P^G\=hi*lp֍-)%~RϬgGz:AĮCY(Zu"bnr>vHso*{Qj d0f֎!h7lX=l Γ�ݝsXM3;Nua\XG}G;\Lo|sv3+\ꗍó~M*A ex�y'txu�ZUWE#|l2\MU "iwNkbFU+Pe�;K˷^E{k6eq=Ƌk;RRMΑ?=$*_:]ċ"P&yѤ^ےJb=!rxf~៤ޣO*H0yq_k.sPy,t XU'o5G>b5X|Obq_<~-x^S^\[mHq[xuk%"X }t(j8,CMi})uU8 &H%3*TikI[.IIQ7[LLHa:f:&6-Si,gRZ-ml g"V| pWUWH7 wVttmg )ÊkISPNakګ9ǩ=Nf|컆%B%.|H@L׋J/3X\s.&B:\ݐFgIβxN2_vܖ22  rd>$OID Yl9Ƈ/UT ov̍ vɋ-+gň976+*zb --aZ]Fӆ77h.K,tS&_d8[kw'ReGmZÉSN'8 .Pmjmͧb+Bsc{ WS*@/iۨByBS|/@=u1=TI0?aaGOP|]�.{2I /:f0`h#AW:þ.l,- 7tt1WF_r&gq&?x;>`^o}{LZUQgZZI @sw_:.z9#'tGVJPY#.WvqN[gpKJnV/_.+pb6 &u%guU:jvxۓ3`)c _KIf cH#JzJd GRhsQ3Z:@mxʫp r۴�v^+~cS{z|mv"�θt?֜/7I NǨ]<$-Ǥ4W0>^@WfkK#,,XtrkgUjBׂ}UbC[~7&9Z*Ǜ28˙^;HWiU4 e cV�P "E%o(Z-z4n[(󍆩l:vQ>PK \8ecg;PKFR=%1>;[;:資 *)`LE~|zi348ޞl\RD!7 Dvir{-7g4ڸ6ru}+k]bV^a*w["B n1zt}3U?=^a6? èR8e=m|=[�z4Xf17)& ΢*ݺnJ0cֲˇ?IưxMǍЋso�*9y3mη6u2Պj|eZ6e׻Hx|!ΑTȘƛ{ǛE:�Mj&0`y˧np'N.[706uWϺ_ S5"_=x^~L곝w4M5bQOW6HkY'$-3m|Lܵ%6BdK$Y뾩8t9st`}r]->v-x0O.Dyn=VhvG4%7X}zKb<we]v8xCHaK^`f]%�S<?ןܫs>C;$<?9a'v4Xc媼oB5qpP~W %n!jQ^\>xZ\f j{x$~ȾEm=aOc0z~#OҊg \q[nոڮ4 |/.+fi$fVm,3L9p6-kkz[{r}l)pFEL2wu %hb/|fԷ\ծe?wnY %jqߞ=Sy?\X^KKf4S$_K5lӯHo{JdIHFtW.5n4QKUtouM9fox׵iwL2Ml{�.dy]*^vZJ۽ih#/ ENm2ˉ1sh�Z3AV%kw_ W]-&?+]M1AWɇiou/e=��X!|ᥦc$9ᯌ}K4m,p6p/=(0]N"F )c AhuXmc.tܯRXaO1[lQ٬+e'A_[o:]|%Qn&\ŎM:.c G&ڧ>-7lq 9r"U^Zccos gxVwEh?+()s+ y6Ms2f V)YНIY$s�x_f 9"n,!Fl8%eu-e qMָNq';]ǁU<B)%vW@2r͙.-ER4o>;~Ol/`_\Slf e**TT^إgl|K>Lw.C9rQkx�heVn#â<1ptޞYgᲫ=0{vI0-k,|%;˳s7( Ѹf7�.IC9Cp?il{EdXs{ɥYܗs+\nsOS�boTaY^q !sL? ";mfw%KG(?B܉ :b8@T�ȥطw rq,#_#v�#Rxbx7몿Oɩ#Rb8/몿Oɤ;yNiq\MU2<rt]�) `CQVGMڶ zvPTl|}Rϧn~;`U2iQWx`^o4.rI�yܢ ]Fl%`ß+|Y/3=g�0Ewۜ+iplF $R%kP`kKir- ��@� ��@� ��@� ��@� ��@� ��@� ��@� ��@� ��@� ��@� ��@� ������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/picture.tif���������������������������������������������������������������������000444��000765��000024�� 226112�11760240072� 16517� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������II*�*�?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRa僂NU"p5v_eYI%nW,s]7o,*r8.s鵓)Y8h3"uj9Sg6['}f\:7ʅtp7r(׎^S@t+7OQ/iJvw>3 GwuϗcLd�I1PeYUVdp+ Q p8WAD%y~`g\[|DhtiEWQw rZj<$Ʃ&Y~R*~7/K0̒Zk9*j6ͤ`qNS::.?ędpT%B=p̭rQI%JJ'8qfrU%GRRrumUWՕSD55NW ck]mw_ฎ39KYZF`[S=AvTus\QwG|AAt-{~\DqSv GLia`iy"HT(ctVR;cAĹFUN[#ybpYgtp3}@.M 5KmM隆5QͬzGm&4˲g&f[n{B\Ec5r5Z'=tqyH`6vۖop=wiPd?S&IqTe=|p9~yD$U`yG1[b^n!#&jj_rI|o|?lo}?_g؇ ?P8$ qA0T6q$.8R'EQE'Ǥ9(qI2TY/q%n9g5MSi{;MS G% șZiM-;Ij5:VIO-U}nX+ÒfW.[UmQ.2v^UHs_8*υlF/).JueJv#9 W~KT^Tx;[!,{*Oe-ez.v:sƱh?{E4UWWX$ @AtA|%-ۥ =rQ(Y<SEQlY)\Ƒ*ZqsGQyj4Hj,#L% \$lsJG16[ά[K0 ³lԷkܹ/3RD;0 >�Ќ5C1uG[D43YIMceKpINeSxU)V95CT.\˲Wej-t/[XbXodj;ِIbl=Vdl6^nůlۖݽm\oېqsDMHwaw^mwqtW{e}Ʃ,Z`X. ^bn#G$r+N>A-Y,1erq%ǖqD]k/,Oz @hN`:> 2QUFf-E+fxñ:zi{m[a|y\e[Y{eX}oZsWo7_WIdh6/$YVQfjl9t]'FY|RXϟ[uݏayvq]nWux$x'o~ϧ G߽$ҿGOߏk/r~8j'Kf+@X g 3ϓɄhF$sU:Ti9;ZjBF1GiPֵ`הښU1X270ḏ{[Ao 7`3G?Z+h\<Qq'{r!ʬ5åNҺT?Š܍Xc|n9GS8dx>GϘ/BGDa#{�Ka%dnMI0/QY_-p�sJY%P9k-K2{/ >Q1DicƜ*F 2( !Tم5e MSC~o"ÈC"FH'ᅈ>gX?\K&/9NCtitLET^ G T~I-)_㎕kK)}.ΙSZcMLMQO� 2,bS*}N@P**Yn1u.^VZhqֺ[0ƹ!N/-w5 9#s1*U1cl}uY;+e`f٫8+L¸ZA+(X akm}#|[;kmV۫yog0YK?.-ȸ$X,t'tY;C % 3w񞡮?7!ox4>}{.Y<o#쎏Qr~0 8M\˅XsL;Jd$& K6)d0cc1QqDUgUG&@E"d(̶9#%dܙMf*e1[l.Wj-Uf[ biVc6Z1G]:Z;K=[Kmm7] ^Z.-u.KWN^ks}_MM~.oM[h{z| ,�kd9GֿclAh9^&sճŒĭm=v[_m흹)%}qM͒w>%4]Z7yzo=WL}˅#4#^#4u.Jckbl^h٨tk-_ YZkL+W(>[<˙ A>8s}=NnI_Kt*zn]KI-VGXY#cPut}IM_NZQ~0DHR;/lj:>�[t#B?P8$0p0T6a()6qE1v9q'.G%IN -˦9ƣ]9'}=9EQTE*MӪ:Uʧ_5ӕPsWʖ fL'ElU7Xu]7k}ߕgf w 3ƬS&c3ɐh36KHZ2z^Yl_kVci[fpZ__)h~=իff~-6~f=\\~1�pns<AE�Aq[G) BCPI đ*L'QE1\]deqVqt\1wdvpR$"<G['I|(ʇ̰r.1S)S$5M3\6"9 <청ط.? A 9DlkʲyRT'J4>д;`ٙgkPuISKvU]VVC9+W\;~ZgQkdgY{iO[uųlD<-o@ptC!rt=tCl6\Mxz}D\8&>a;&#%&Ōx9 QgId>U*9a4Yl_foJ`g}>Za@/gUl5 P%Te#Kdd{˲fQN4KO屙{fmp-hW5nicQn,k<oYgݛ�&oB!olq]alr;}_j[9wI]W߃?}ymgqeE_/Gbzp_pe_@Vr Bo)Ĭ80B 6К,'ƛzMIBV!A-dv5,@ٛ3i6iyT Pqb<F.%Dؒ3PJ*E3V%[ܴarnmQp6gWӺXP㪎ٻ7pѦ=ǥCxd;]ȱx<2AW0${rl'�P9M)eDC1]+ek~YK( �eķ*^'rI0f,Ș$rSjjBY ن0Cv�,z1DUQ$ؙ;r bzO8[2/Ep5Bc]X·A..(C]#!aEzCuG$RDRW"$RXKi}.yh?HCvwO)>tQ Qj=F.TѼ(ߪJ1B/W_8S@5VJYj][]#�qW:]+yq 8kX; 8Ep&ثcub)eVfj1mbH;ګX-8؋q=-d[x=E+q5Bc- \osͺW=uu7^F>#BK?wà.y^/N]#h}Kޅ.H`/_1Gs}p~ |0^( 1>p~c1bL<c!dL1+$Q?09Jɶ27Yc-嬸71,ə6iUW]59g\uf9η{_+wZ 86'Fh8GI-)ȼiէZ|Z}MimfBc X<-6[{ow\}va͉6طsf]wo>Ѽג[.Ɠž#[\wD >¸Qa21!x◃�cu1%ܛp#{=Udž \r3/)^˹o/p>k(B` yϹ?]t@'S_xuNzW]PWh~8aݏhqb0?g=v8/uNu/ڪ֎_hgn({ ㇶy5Ų6/ ]O:}zfl|{Oh/->zyE2G,燇0D~ lfE3v}ba@řv~1dRcqa2Q#A@6b?P8$@n0T6nR'EQhzߏ7K$*X TW-KR餵Tp3[ =q+X4 GRhk+NUhtU5v_t-eYNmۗ,t]2^W=W, eN-vc9 W).Ys7gOEV"~.-x~֣߫ykp_9O/H~/:'믛>iqr}s'Sb:ߖ7v9Gx9eGyyfz{Y~>f'IDi,eƈ!F_sGQy)|nR$"<#I1~oI҄S+JapKR./LipDWg7Mz}9S9|Y,?O@Ї)jb4=DQTmG+iIR+I/]GAQT,]LƱ%٘|UGxf5}bf4y[Wu[ѝ^aV-~56Menۺwi7|jv~lnGmBH~]wi~ xwq ~G#g)bt`Qcg ~ad4dfQ G限gBAgف~j~'Ƒ~hL}^(~)jN_ھi-&`Fϴ1M㸕!úfb[oT9q/q<Y[W!r<-Qtd;sAQ xe_[UWYv{y=wZfy~I^Mߛyޏk[k9\GɷNEz^ W1`+6(9ػ  0d ,aLJcFPǠe=�#i GBV5Q0j QIH!$qb?Pn$@*$ı]J)•b7nCo_Q2'!15ơb#x. X=ǨHA!DR <$tFJI9-$ um ј=dXd]ȾUzf{˖YKYb,_ 3/쿘SbL&8k93\3IW_kctMkq9d_(s9Th$t T#$v2pc2 PD,<h;0헍^4�ӄCP|)EjLG4KA1p4ΘSZeLRO#zO@L1n2F 8ߍ.5FS"b:UWUf9k_cY-gUx2o5¹WZ]달zJB/hRJpemrKK-ؼ+)e쵙biYŭgmVzeL3hVi٬_\}snnYmS!ʁ'yq>FXB7*˛@�dC 3,48! (UA5{#}M)nс/m- 8# `08C a\)бclY Apcn<K12ثGp8Ïcv[G&@AёFEY:vPG*e<:t-,0U`y1 =6h�f|ٛh93w<4g3N١ZFhn&Iz0}dktӣ kI(lZ0֦:~ A?uu1#a48!+fѐ{|>#$뵠xD 8f1;G8w<cDx<vc}A>}6 2|)? 6ߚPP X'I7)伯l'w.bl7E[qƽwqB1˒rgQC*.z]E2fB0g`4͜suY`xC haw0b}c3|yksk7ؗ,Sc4GlP\{{Wk:6r{LwG}xko <Cqq~~N=?`?pm??mo�0�oÌ< Lynt 'ar96Ga|N0SpQT~!0gPim!aP'X,A0 n>NxAp>Gp a P  8/bImA hOMJ.$ !!˝CD*D3 !b!bσNd!d^aO9nт:϶,O~"?P8$^l0T6lMR'EM9R$yhmkV+rY.ٔfc8'rp4!?rR)W-2de%Uիue;l+ e;X,e.+ ^.s~L aX3h,?؍<s7gY3U vXd5anxe6 ۷6G)s=%þ벜\>iq/ 1?g:_ɠ}cvƑ~gyj~'m0~g~1~\[E}G4psiH %ɒjҌ(&*-RRa1L32mMSd[9N%nNtjpAT% cEQ4Azdzd_GU1MS4=NRβTF &!{Udz03űUn,WibdvUg֋\ֵ{ikFIG~[ ~fr1n8fwWqo;o|sÁ!r>�=ϣgXN#bGHj'@~Ǒl1:~YvqVqĆ~q~>1~X&l;ͲJnm!{ɳ9<%ɐnFxc<9^qq\&^)|c6sE/t=`g_Qu=_]YeݟkvqݝeWߞbbǿ{֬EsLy Xޭc{6dQ}fYqfGgo_΀#|~ ,@`F†7# :#BHF4R(?i i5;/Tw<(= -n7%""x1Ds$?<D~Ʀڻky&R?#;^I1Hci*D9ظb=GdC`\a!FȺjEH.@ےJH,\rdI89sҌ:%4fY+lRZ3|2]Ky/{x**1*y@heXci5mMɶ|oNW9{_#irqО' ga02@# (ʁ?F?t*t4z:hª- -?eA 8HDy6G'1"#*Yq\{8xG@j8p?#(,TZ?j|kD Y!UjVnUѮa@Yk,R.F:$E\qI2y:GE*l2XX[ a%V&Ua1&3řc 2l͙hYѤ?&Ԛl͹2Fܵ+`ٛ+Yk͐6OEݞxFz05v .=bhϘ!@nN1jB#ywF@ց8ԼTv16Bl<یpz3 8T!?,!%#zzRAIXEŲpFG nSG#DT꘷CSbWq/CP\!FcScv.  ф5r6Halh_)eA62l弻Y1!1g9aqs~n p10Haɟs~,r= "#E豊txҷI2ǎ#f-9QjMF1FxT걌4h]h=F@| >uCL}l=60e5;@gm?6l~ {hG]ۨ~5默^To2- ߆ko8!�끏8;$h[9qN&Glu8>~ ?FDToQɹ{5Au &7H<`Xy@ ~Ѻ+U]*>(Bc3?Y]ouޱ*1ݏv,q1i!<^M?*\r^̝1fA1>�a|?$oӞsހh:GJ(3o!2pԌR1OڤcMR25ek{؟}|A5-/可F~#mЄ {Ag+Ӕ5czC?ٽw[Q@#$o�D(FB.,4AD0*@†:jAL!j!!eΎA鮚nGБ .!Ɛ С p A0!vA xa p {  ,Oo!Q&",aӁQ4A qAA1UV`MamkAAaq! -A6Ѫ#lc{ݯ78QaA]^B%!dCABde(a eFdo!F]�c#C"D.>Ab2.e#I29aChp!Q%RRKfRC&He$Y' NH~2FpfA)P)b?P8$ri0T6i-ExiE1 Ǘ %ɘ,F[,a1Zhc6g #=ϘfܣR(fCvN-+%U՘̧me,+ fd36K%\-S5uݙl}|f3-</f^I|e9Q-W֍k:S}mVifxk q<Si?nQ~߭or?O7t?KS@0p~GqqxBPxq8~r{9s\ZuaF0Iwp~G g!'}\})ʒ)̵-'/3/̓ &B.hMsZ:hyaS:F!<fjOab=D1Fqc4KR: :oS)pYR1fU][Viƶ-lFq\uv v'uf}wyffzZGhl[FzǩjrtwQkw}xzl۲m`8mXF~yoؙo猺c#oRoX~1 q9zphpףCq ~g ǔVyqY#kgQ|u'tcxzgzI#A$&1𒴹\Qz`y_Fw)rg\79hsu)EueHR+JRfkM:n}Ffe?Fa&Ytz^fOtqvy1h_}ƉyFiPz@15*q=tdl)# 60n X=Pn¡7O0pk x:A8G?>'oX|σ1%D}b|A>D6 BQhqb^FH?(C1s:`t!##čE!JIm$btnD|%G|IAjQR%G)hC4W+erN^Z96\cF]Kw/F(Si a44Vc Q1Ϛ3@d q5f%mɻ7FQM#te9ʨ#yS<۞OeOWG\C<u?!4#ʅP5J15GdkZ9GڑRJF7Ѳ>u0xmh>~)>ACuAQԩ(lHSIR8OX@(ئ(h9?:Ep4q<j#t:Gu5!`&@!=#Z<HC6<la&$ܛo J(mT[R+ĮR_ 'o!0}ǹ7"^w1.™7Ne٥u֛`dwnC$m;yXoN2eI3Fh:/�4tL 3JX)kƈ롸N\,<ƸfaG0zbA6'cM5 SQq }SS(cVz)E|;7()3q^??B5g6£+b` Qe͛(g#h[m$ڔfݬIfl􄡶Ҡ` ᗥFX3Mi7u `10FHC*] [0FfUX0vc ٪3 _u;cʽ#Hf aFWm Q2<d}5;do17pC,n14oVl ϿG8#4O<4PnQ7N;M yrNH7p y.o~h=0n~yϹ?]?H+zhuN;OXhw޺Pu;X~?hcD<;7t#G>Go6({Z#x }>-|>rC I@b@8Z$~h\J>(Ĥt_VHM'mE?/_'K5z[}]W(׻<cm[dl?˰G#Nrqf`g??k�0�PAL2!aaCaO0ZAa9Nn$*A!AJh*rP t!NnnA0PAPn1?.xFAƤ&aD0fuDaEan$Zē#XO6bG),G!!nE FOlHPvA~^cx/O Z׭~Ao!!auR*I29#;#E$2:$r@R9$&fMQP:'(lo(((П)*R ! *!a ,,], .aAR/!"00111F-.aa2jA2nN!GC\m2EEI!J3~$6bb9M 9G9HkZJ&;$i2j ?P8$vcA0鎽]" d1j9Hclf2I&RV;-f-[!c3Y Vd>1&F%e11֧T);c4Y,v)eZSUk3vMmۮ fv'5|7Z.\h97N/28'>So+q46uSy;[u흍q>8.qyKv=˹w}?;'}~>u?.m_vw?y{zGpigAi瑐jpY_<pD)c jqtigap&zljt|'I}|/},3L2l7R0<ExbO@%zbEbEGQy^+JR1cF9adfIbFQeUah$Ƒdyc&iz[eX\1dDaD1G"G"K0KLR%9JU[aXUyZY%yhY%hY9xe"a`悎jFgoƙmŸł{ArMLruGf1c8='QԵmnM fRuǖXyfvpߝgq|G)y֘}9n}~kZ{z~fglp1s9OzIvwQ]pHCL289Cq?*40<CGd":DBMi<D% "OXZEFjzR|~" ̶}}_Ӈ%],"s>PD`d?yata)W TUb19gőU!~.�P B#H?Pe a3P4 s5pCr: C{p:nva;ACA%q�F! $@"8I &%M n*Ũ^v0 3ߠ<p![ucTqQ90my9Hn7xv8G?m zJIE'ǔ2hxIq%tw8o1=s9f4He'9|ј餏O8f!z }A:bT #Dn0p A?>\ �.Ah= @� \xrB pg 8A� aD#C\R!^z>P;Ko<AMO^&8&=GtM>'EP¬PX(�bW `.@b] Qh/[r.�/\ 1]ka l0kZ1,8 `~.H`P(0?Í p4hðp9Ð$?�XA`!!p1ÐACsC.aB tA9�u>pDP~8AA$!@QhF4#^XO a6(hBU !x,kjgqV`\g[cl k^(CpuV47q~1xw;Ljp8{QGn(|̘>&PC eAч>-;pXRqj.HG T@ !C >max8z .CZ 0 F:TAi9v Ј AFPa"(p\G^(#Xm\j=IlTQvA=!}nz�|B1!D F#XK$J%VX I1HGa"#D( a�!DV\#a!DP=q 9yy:/ zB ;Y˹o/!7s>kPy $<xPz b,=hx]K>t!=c _ӱNEكhp!@0 (~?a 8$A!ĘdL1>'BpT Q>*D`Qocs 7ƈ#w<1L=G {aҽ#LGR#6?G#{Cl Z/V BBfP0hX4pVs9x!f Ѐ 6 �� l ` �� *6 8 pIJ s&F!fax͒- j +n @  @  ``  0 p@ `� �` `0A0� ` � P aA @k~P   @� � A  @ P � @ `Q  Q� ` Q*@ @@jw k@3;��`  !$A.A6a@jH!hrGrJA%jF`aAAr !j!&  @  ` `O+2 r+  @ ..@ ` `@�� �H N �a p`tMVsA6@!<!)xjp>?3o  %8@   :S S:ӱ;p �@@ ! a =  ` s?Q@@kx n!at" 6 sD?D p OE3;�_E` �� @�@ Tz1 ` > t4K@A L4LTLM.4٫K` k!  R+-m<! ` o Һ @@ @ 9S;S `� @ U MV@U@ qWUr �| z � ` < (| h   K淁#A �*&Ff!aĨ Sc6$6St� � $ /` ` I@� 0 1� � 7eQ V[9 3 @ � @@ 9@Sh1w`<� '`=+O@`kP T" $  9pE9tMnQD �E� @ o'hv~VyEFq` q� '<` @I+9uˌ eqvV4K˒ M�y ٷ  1ؼJք ` �g ` � `g ` �||`|  ] :8�ۀ � @x(oOU5 �/N `Ѐ � � a v x �J,0^An!s\?P8$^%l_.%ipI0ixZ'GR>HO3 rD^)KF>i6Y|l0" w3&Y>uHj-S'IX{4Ϧ bZ,!ʊ;ǣ}փ7&hg# AL(`@Y@Cql/<�]O]F~5]p3 M^9PCW,4NF܃:ЇSqCHssC͞bmQSw܉;#<BCA$@> ?A #P ;c8(6őh8 x Cp5H9 Cx5!H15 ch6G#h4 8h3 㴰; C0+Lc:#p1 7Sd7< 2C9c8>PC9<è0=(A 3 @a�E5H?cG!"<JHו| 1 0+b"Ȑ'(* ¨lvо+0 E$ "4 `-c0% ȓy Wxv 6ݣx'C:*ުയ cً )P? mC-7$(1{(p? r>Fϋ(�4-4C:@S$1d�/32cA9 A#+3;7P7 #5@#c:ΨF< EbDP3v (Ðs|C`}>p<9C;Bc >�@x#;ϕcǝ4F9;zC<h5u#6;2NSOCU A`45a@HCȄ C�#@IX\#B Gt%U)A6@B| 2 BR L N@^"D8) p$Wx+8ˉ6pBXp 58d L()W^ ,X9[ `;PC0W*@0R6I$ x VIII'%ct MZѡd2yǹHC=%<>̓LeHA3|aY e0ŀ.`h s$1o3 y A=5C1lm9Mɽ6gqP9'<CH|Sylua@qQP@\CwU)Շ* sΆ]@p"<8DyB=Q�ø"�D~!>P{D4=S@Li: TPu.A jEC!m@"I;[UqW<?A͐s :]MBX ;< *gp4k 1hc'b}e i@^ &b (Fp a%۫qn$Jf !/�F] $'\ps- !>][em#; X:ݻw.ܶ )K[le)^Xc EĨ1 v ";�} p !p8 p> ,.‚ ]dC9 & 55�p B8\{C"gaa`!1ϐK{/(/Gr4 nR>P Sze\X$B>q D z"׻ BD(~?a> v `=gހY;Mw@!A '!JS +PoC.ڭbA1YVZ ,<1DD !*J\8y "(<xCPrc [HCpg 11en S� t#GQ|$�=]p[w*\@M!2H  'Fx{ j_OO'I Qn%UB/-ɨl A07`mc ۞:z?G +CZjd80s p:i2(i ߱28?icd5v!Ox=F%ߘg=8a?C@~l L08y! /2)R!@b."󵘳 r(mW:= ]prA 3 {jj= 36~ZB&9:?M}5d x*RU g& 8N!,�`t B,8"8 @ C~ F p @b++,� 2 �`pKZ H N* @L@ 0hKF ۀ, 3   ch 0 &T5 `д � �ҵPkK n 'k`P Ƣej � ` @�/K+�2@gn/JQ\@6 @/ n�q1jP ѣgA ѰeG ~{�@��M�xqD� V � ! @ a a,  @ ,(` P,P!!ʍkip<2@1(Y)2` u*y*c m0L`  r -(-@q.r.2` /R/r//O `0&`Ɗ @F3K F '22.꠰e렷3<4L5 N5ST2f1Q@@6pes6te{QB9�' p/X / s JDNPN;`< MS'1' >1>qDQj.>�ذ A `P@ � `KB  @D`  yE�|�@ )&6 `z�v@t ` HtJ`JT*@gKPiK TnLЂ (AL ։ p O/ HG .Q 2mR/bbm B`̼ O` SP@s kUB gVu4 5oW / X5~5GX+Y3 YY 5Zլڙu[@1wÓ8cz$/ 6@575  /Fb �G}`6V aa6av@{#;`bV @2> cՂ?P8$g)L|m,1<!8l]$K8/ł@NDYf$V JcUJza( E2<C)RsV21P}EP(@n,1ĸG-f3X 0" B/.V" $s)hh-%^j. eiNyU8J#Q\k, v7м9z.\l|8ݞO-Qg|{ ]OF`;nRdߊCx*mȩAͰ: B) B5 Ï2cp?#A: d6ECdN5;c881 X6".Ь/ h7 0-c\*,rԹ/9c;#`8c`9NÒ =ϓ+!`$hXtbpr0&(& z+aJU'+"j!Љ\x$&Bο/LKab~14v4'P!ZLBr"KmXV dY �% hv- (u_0# 54̊ )xx1 B8- $3 X/@&lj(c)+?b-#A< 01Ǣzťg9zAj9ས0z Nǜͨ 1[f?n;>c&o#1#(?6_5P9 3�9tosp8 z/x'97v]p8 ]sw]yߍC7x^'7` cIx3zS"UДX8a XdPZ (R^,exBE'pA96CQ*B�l BRkP"ΈH0Ax].cX\"D t%ĸ9#3A0PcNt&^H? @ ARLH"#x^ a(C�SP 0F4 Մ\ MA(2^PTfg+I(vNkW} ;&N?-CpSR,+2)r 9 i-{]C A891&0b!0̹3o 2@"f(=J`˃6z a<8vo)19sJP߻TC�AJAho)7C ;$tףI.0th4 ! xE"[K[ .rH/ @((`< =I �̓HL8V *20: m+H7X@A8p[k}n,@B(s Ab\*X!ÆPB@ AaeH l$L 7E`l f,KC 4F}!UQ!mD L3%q(X㄀I4F:Ziøj !q8s 29Y*%PTGaI h ,.0; 0=h!1 C!a|CM!k FBr;]PuxgA4HkC0w$'J:W?Y"d 9* +SnvRߨ5T&� (?A(N'0Z$<�$ e #+ Ժ *`2pAT92B""L1�A=$A� C(OA`i):k{)V TB6O< U yQvY9(C*wi#޴RћՀxH7AyP7h L}pJ aT$ S)D2^jE~3@im67AxR5<ф'{oJ 0BA `~BX^ 25 x)P( X`jphfA3a}\+u@P\ A/+6C/oA4NӉF#A2CXk xpv89 /^'&÷;?*q g䴳rV d' J=^ (, X �`~[@pNA0& 5_pB<"uB٨ 1(X .m[pܠo8A# - 0 b t@ t( p2@ �x&j`Ʊ kjS` �n 6�h `t�@^�j |@ z �Q@ �u x 0 @� l ` @؀*ꌣd� ` � @` 쀈 .„@! J  $v @ `1'@ I :e $ �  RCf) �ml `ڻQr $ * @;c` ,H o p p H � �@ � d iJ@K�蝠 &  \ƀ > f +"$ Bʠ@�@  ` `�B zO&ǸL�d@d8P�V*@H�8 `t t. x |t:h@Z `Ԥ ~H^ C<B@М`d ר:  < @ `r % H  c* �&q'a!`r 5P q0\0 Հ` d 0 O1 0 `j eh ` z?4Ё 0`Qc@ F B t  ⑉ H  h b " TC;=�`S `܉R ` ` C6 G ( erL,� `IIp *" //2H p +~ l A!"� 7# N#6q qOq`sP@ uPP& sak* ;/h �~��DV>`R 2b n@4^J hL �v@q@ �ΗE `` �lbTN9 ֋I9`U\[fH� �b G r \G 0 Td+H. ` m+j |%p6@ F'.S8 |@h/e)=eg=MD ` `ggցhv}gE ]¬ j2 x] t3@( h!-t@gHVJ` @ cK ip�!Q څD @-�؃" @ O 8 4 m d t <@ @ t /4 g wml`?P8$`"yZp1FQ2:q=9G B:<y p"Kȇ$i!Lci|xe+ e Xb) Qq<)&9a 7FVCz;ǢQH6"ph !DQD rdDGph%94*)x;ITJ! ɄAiT6)Ƅ0l6-e`J#)XR##)b^( DሤB0H%PLJD?Q Z%oiB6Ȇ+CP؊5"+H t#0 "Ї cP"C .@$G< 5 @5`1 'ᠰ&#@$B80c'0<"4 p78+c!0 P,�' b5=C`* ) 87 2 +㐸@c) @d 4c7 "$ . p. b$ bR#TB@UUb+ BHQuX*u $*]%آPaVcZbR k: H9!x0À H Z,zi `W&M2#hr;a1xZ:5C$bX&< B(0^-F@VP : 4 NL \ x6Ʉ`PHR0 `zaN�x*  BXp-JdBP~Ah!"�`U�w`/ "9 x(C;HcPϊ�)\B$!c8"P/ :r( ^p1 )P6I8% �. "@7c@C+x6)㘴!CY!,n 6m `:�_R!;`Xp 5җ+ )Px 000[ׅ!0. TI h# "q('X\ h#pC l#@BHY0B`Z a:5FQmGX칗(^/  +1% 0W4@ $`g � +%Cb a}zHV 7 !pp X^P4@^0!K5v =v@p 6D:B�c -`f`) .=ŬB�- @n X,@>�p`$ AP@j�9pd ' ǜ2,`ApF#�T* �@X<}T82@4Q$[DSSCt(:ЖC D@Sv@@0QCP BE\!'nP aJxy 8?C0O L`pA <@ &Q3`X(Wu> Y@gB6IY0`  2p L9E A5`yO 5)P~PxV  X$HY@30 A4@¸g bpoBb צޫM+/Z(%x BO xp N8`7Qp$FCAl QYO)r}q*AY@-Apj 5Hb3t @9h# h5rc 9.B`%]M`@tA j t0%P 0p`} H$�:� ! & Ah \0"m�h` @-`BЀ8`|<G_a`#Pp?ǘ%m`@;Gtg j27 RRed ժˆk "AYP( d7́JBf¸~6HlQ*@(u(Pli (1BD h"`83npE @!AA1@ԁD ϱ0L4 "E (h_]'wtsb >$0J\0 E Ax#y0<F;Chb^0# tÇ) PVp 3�t-`*.Ԏ�=Ax�:Cax�{BM0^Xg `4j@ pr F J @` � �z�`X`XpR�v*f4 x�~@Lb`�F@ni逊Rנ>lp@H�dF@J j0^q.?`d t@dtp  D| bD r @PxJ@n`�D9`Rݬ @ZOt z �r� or1`M`p0c`K`J�u`J@   @ a @1n l 1 �H�zj p`q` @srpct�|7 �b@:@Q�k   @ ` ֺB/2 N 2N  `d ` @NL  I(/Z L  ' H`Rx a*@ 2 R �ja`z�|�- l @  /R �  @t  �|.  4  @XS@  !Z�NGD9 2�/ R `x- Bt Nz`~r�.v<`~HPN w���1�9�%j:;%@ z@b@O>@ �L lz  �x  @R@z TT@ wG砊 o  I`I �Ԥ `<`@  `v  h `7t`pn`N@ x �@ @|@ q (q;P P KP@U2H� @SUcVd `RU%%hU{WWՃWu R`B`J!@TH IR r\ bKb B+, coHb ~k]` lp t �a`~�!b@a zD@  �g#@ 8ag `{��pU j F�%CD@>@x@z@2`wj6 ** b|}��@^j`�[ Ro?`EVdp5� �/ �$r `k� @j  nQѲ� @[so�@ b |b `avWcuw> b ` mx1 `kx p BDH > � k@U{h L@Kv v @@ }�l�~ m~UAT`uOT1~�U @&@\" 8)* x#@aZO ,f @ZGXID @ `J @ @H `X`$` J n N )@4S+ D>Pd z{@tlz@ x v@nVrN mW &` O?@ `` @x@_yB �` Fo`;R@2tӪj`@�lyv@z`4@^'sh^ѠK �\8nTw i?>fFp`x0;,īW � f 7`jOT2 17vg ow: Z u :&#uX@67> zGvQ uB @@_ p E|` `x ~ ". @@  p i@eUG:[@dͭ@r"?P8$_Ya Bqq,3fBTŦ"RrAdPJ#Lw5b0h['!X5(EE2(`b) Mȶ98F¨S&ҰZ˃јt/<4R f%dѐḳ3є`y2 O1Q(:DЄ\Ƭ) qu@Wy* Mq fm+,t.EQ/*<IcPBAGBT" D1|l' |DD#!B'<+!ara8!�# `Z* a`.B؜b'A#b t%!Ј �zb�Z' a b"JX"8d# �|P P!0b@n& !%"PI'0LX!(8^#!&bPA&rv'"`'b( v*," -bVb"Ȫ.j(U`sxdNlږ bN2 E SoBL0 "jbXR,!8#BA|B*&C 0|/  b`s`(pAXBx @L/!`.^[eَX9j>"1 C" )&Cpc< 5hV@q7$cpjA 7C`DH`> s6l>/CȌa3l!8@I�4### /#0 &b'ݐh%! "�\+ R0 a(0!AKꄢ@z V(`!8r-I*xiAdF+$�$rR@ h#& [ 54;z@x0>LH<@| I�;A'$#pA/A)@dG i^èfOQ> jb!PH �#`\B)PDwnVR XP!8)V �,D |+@BB׏Q8 fCn1@Z(`-a|CPW)0yx%9'Ox*PHQ RE W"!X$Jh>@ C(OA){7,:t�;�=à`+~x!0p[.lp bˆPL$g�BḧfT7Zv :\^xtE x]. MXCu 5h93 ,COP8,@fB�/ g|4 B(:@p3 �t`LBp@,ԈPfC$C0T 5nBH!,L `%j(1< Am )F`=i:xpPAxCP"~UA#� z &\UJd!>jT=K �P5&^Ĩa] !4_0e}K -8֠w 3\48#`B!@A�B`| ! ;@= @Q!vn@Ax;0r& xQ`H+%1B!~x.4Y&l$0ܨK/`8Tirt" 16`Ad%JH`ɒ LI Ld%01Iat&\@ X) pv)A,` �50rTđ*G5>,9o �9e@X) fH( wN�Ir� B !8)T)`fX%) AxI i$@ǒHVyȓjTQ;/ H! Aݥְ"p0Tn:A: D N2Z �$0B*n ױB0JY+v}x0́P' aT {%`2w Ca"|I,`Av!Xv( mjA0;@| A$8pX%v{"@H!%0 m 7vX 8q ZRa-`{ 89ths _,Hq 7 ` s � a�1& c  I @Ѝ� v#f  p �`b` r ` z / `j  JB `tà 0 c6 B ``oZ @ fG1 ϐ` @f @ �f @  @Z � z mԀp@@Z; ` ` vw�j@ @a`` �}H`1s`İțz|db s v @`,b`p�V@P$�YV|�~x?Q x@ih蒀7 `7! 6#6\9" @a `zA 0` � @Ĉ@0hQ6'^ggzf?X <``TU J/H @|�M N  `j N*a)h Msh�` x/< ˡ* C.@-` 2.A&- r L �{1z~�a u2`~`@}2`` 3T @6� X sw7�7�`5 ء AA   9Ri<�; `\ a0� ! Bg@�@A ҤOqB  r  lG@Vb`p@`X(�r@d�8v~�x@RF@@ 4r<z�JLH@JLTL@zND�|t4tJ�\O[ P@ F cPDL 5" @ @ARBgV @Ql>(5`I)8 nJ �tU\ , r`bVV (X 6 NjY�t Y@ rһ2`  $ ]@].: �lB�jl dΌ5R\6 f]a `Z 6J1c vv,4 gdPΠ60SB[e r(j�VR. s  'h@h& ` > T ?  @  �` @k�m� ` NgT2c. `n S\I�X � .6@@R 4R�H`VX�. Ľ�VAl�@l˾ h wT@n BgwFn7TxCv ExTMpO�SKxH�pH�� @Q|`P @`N@ `>  : @t2 �Vl Z td�JhF 8 nt  v`&oL 7(VBRS8` |[z � O`޺`j� @[HX2 $, mn(@ " sr+6$� �L``DE@B `�< PI8y � `@ԀC9 B p_ =8 �E $6YV U_j 5 �o@# @ ! �92L�/4`A�  2Vp   " `x� u,, B � b :RN�6@f :\d2'wqv@`4�L \�77uHDCv Gz@<`jhqytMnzl?P8$G 0W"ʤ@HJ$0<'XdJ C9L\s-OF./BHQ#Y@fq+NQ7zzZ" aQ18GbPICXv0P2AB;GGB=; f&$M$/SB2\!#Dnn$9<ѡТ37E1At"+R@pHHR DU!yGbAnD%HIB2,HW$d & 逦0"+X7H*Ⱥ#(|B  &B$7PG bY4 8"A B 0Cp BX4 ^:.#|Z5@+CC^5aP,0t; 0#�j4H(L.X,!0%H "�Fh0P x4"ᐸ HdzJ^>�blavCaص͎֡-iMl-o B�$(Xz !z((#`p@t&+�غ"<+KTiVbHV2Pdz8( BȂ"0V4h H P\Bx: A)K (k(-HD92A.�=/Cц@%㸞Պ!)x"xX2 8&ؒbx\0`%"ۦ,'!b hN/ BW$|$bp:1 A+cPP7 Pݎ"I℃a0)j@R;|Rwr@H:j> !,Cɡh*?xS(@3+c C]p@ [G\ ð`%ሟJ#LP1�h[a-m �@@H@x @ xS> !d� E&pT�db$ A0CUX A9@\ +堯l]#   A( a \+`& ~Maa@ pBJl h `|=a|#PPZ@\Ј�H#0T$ @@Z 0 L# xJg b4f0 :PrݛM,8f˜3!T^K+^aе`bKAM|9 SР xR(_9G�7?2A41:` N&:yOa t$�_ G%; p07PBU <R$p0Z-x   `ڽa @{!h%`Qc0'=@`) ;b,,H`0 CbA.P"bAA|$N�8RH]*@A7�Z�Z @p/`@�&A ۔  x D0j ``bP/�65  - +4 AsX�{ `l0Xo= Sم08}uaH  U,\ $K `T` �L\!IHHn,@W6N h$.x,BA! <aʲΠpP{ �;`j. !ΰPT anm`9Pd) l*^qn*F 8Sx͈% 1tA6 Gei~ 50JX7a{0ZC0a x0� 7| w1A@ dASAHy1A ʴ?ж Y.:s/V à`a/B0 j A2# ,4`B2 !  \��d �6 R6@?^ 6`!0(;|2 @kP @$ H/ _ł\AX/L L+Ïdp7@$D 7�Y!+TA|)e �\5P<B S#¡ A0 RuXHn?ש h, D xX �z`:A@` ! 9J B`j  @V ` ˜ B (4`\Ӫ@<�nl}l � Q� ^4lC^2@@vP~pz  �XĜ$D 8 @a �a ^H� Jh(~L� \0`PP! �T␄@ Z @R QPBح0Hjг``*TMj Kr  �2 @ `;lL� B @ v@>@h@p *�n@L @d �J@~`@Z:`V`: R J+L,�X/l& )!h%t ;":oF::ۀ8( Nt  @ T @,o& @> |:4L" 2 T`r *`( ��*^�FLJ\` �R`zd` `Z LDDCR,VfL  V .` J l \ P @S@|S: 3hr/ N`cLs`}$@:j6d� h@4<�c;hй `^j `\s>UR@ q \` Sx@ ?`X 4"4'A DC6` T s~ @Ĩ ` @ @8R@8tV6�tz&$@T�P� E>`P�\� ~ �H;P @@ hX�z@`� T@V`�B�0@PFNO &* Z\##OD  :F@4 @ `6  @<D 2c i FT0^@!&V(�* $)2 @v`Vz`b@l. �e`%,< @p. `^y v ml`B L D�3 @b$�-S5/SK4LsQ5@l0&~ Z:3+90 Am bN&>-g�@  E3@K:0e 3::+HN- >@]6 0>Zͺ@恀 �Mh N` mm@ KymV.$!� p@feC`P i" /"�* r0 %F& kYh`d�$�l�Z`5`˰NL b v &  �r vf`" dWhpR&Z@D@$�UR P VQI XU5(ĔLBF�-@n `F@ !`$ ui%D�K|yX Y 2Wu_p%ϒxZ^@4 au~ 5~ �12k$D \2@J >.$ D Q ` nL - j ' pf `I �VCc` \/ vJI  @IfyfkfS9plcicO: ( @ C.gyK\6@4BJՙ; w� * @h~jN`@ � 4 s  `~p |@k( c)` pe@b'v�(@$`a~�" f`@6  D $v`@V`d`( iQ`\ul@X4r~@!~�Oi #l`SPb?P8$Tʢ3YP<i(`)dA Hab4X%JhD Ia<J 4| �pʤ` r# PC ɂ24HQ!dA >K#\,rXQ3dhn* D)`|- EqF2CSYNr%ܠ162ߧ4f *؊SX^u*Aiܮ.=ǘ/=г,=EgUص_"|Z{."gL/%qBP/hW@AAP,8b= 0c, L7 A8-QdV8P/7BX:>#GQwcL6 1@^?60^9 a`/)x B0,"` b Ara| ʨhn (\!X$ ؖ$b8*PV!@Z(�P`!pA(N(RXuYvHFL@J k2A8*`BB1<ܑh $&O `Ȧ"p )j `ʢ*؃7XBXx$X74)� )A(1$#h7xf L$#P 8L\$x6d!xϭV-)nA[?#ô@ �ΐ,N!Xc(b@ \ _̺U�bS0_Hø0d<0-E"N6^ Q 0WpFa\O!0,oTc /È %b< 0#` Q!h$�HT#D@=@hS8��` 1 \+X /`@& A@(0FU @`8`DŐ `%5eD' l�XVaA'`Q(�@Y\`�J>=�x]EK( |p 06 ` @P9҄$ezP=! ` X (p$ PCpRa(hBC|!�f!ADИ CXHA%kZz!焐XCq s|3pPP67A8l 'pQSFAN$�kG:0KEA(v <wNx,H CT0ׂG\ y;;$`C 1Bz#tA,ڈ pVHUp@H0i $%ȑ[ª�RV V_ !|0g&Dh-^h{vua|p݂(U(0PB! @$� N  T @&, -X*@ @�p� Mkp RH*�*TMJ+@(�1]հH% /@] �d+P.׸HP$A뱀߀ J"KI`�0�W̜�e3`\-1y0hB0�YEa" r (+ H#@5C23`Neڨ) Ӻu - 86\nC E-vJ!%p%Jq :*\xUbh 9|@kmlH'= _KҰJ؁ p 2pspSi3SưPT.ˎd5e 3pMA6)-jA(�3!c7S[HtGaG/W]Y!-F o @9- \{<R*= !< pJa0$F8 B �P*VH'X�p&^ .�6h&B]+΀X$ %gN.I a["PKVPX m pr/ du޿׀`K@08!D `h)_0B>' @D_ >% +@4(Yp5VBd �<l ' 5ș !`]@x2APk`6@T8- y %̹30hx,&e/V&m6z: x@kZ?AX &8x 4@{0 ÎI TҠ D\@N M֭ڍ-ـA� �?`? -h�ޚn  DJ  ` D�@ f $L}G 8'GLj  ` I$ �4j\@ V�*�L�DP@$ $N4 D�>h< "P˦.{Npz� 8N E: N'4` �f�v� j�pl@@ pz f1V8 r@< b~p@| ,L^�)@$FT^6%:) ' fQR x�zf:�jHv` Z @ `L jhɠ@D/"h0 `|`@1D `z\`  F'jRl~H 8 /� dR � *��4PndR΢W, x �X�o|RC@`` Ĉ 7) UP�س 2 0* `& � \P `D - , L 2 R8 3f xM B C 'ֳ{`@@ l Z @Zn3V�]`0@Pd@`*@rK!:`L�D:@U�狕  )( z"))b`�jd`�xv�`#!A@`F �-1FS"V�QS`f~c4cI`+`('�%4"`v@@4  ^5TP 4 � 3"r 3;#r(h`@ |�P 0{ b`2o' QQ`U'fƠ N.x.``BB!2 蠅+` `D /_Vܠ` -t@ @VVh ``AZ�e.[)T ʰ`. ZF * & -34\͞  @ 6  `@Ҡ F  < 5 1`@Ka�C7;�P dQcu @� *  H:^ 0t`^<  dֈh@�O?P.,nl )$IA1t@| )N] d0 �FF. b@V�`z.‚ ` @|e2 w" e%tH1 ]u ީ.`1b"`6 x: O#( p4@> uw �!,6]R1Qf ƈ DfT`Ly}�%  @W`!h 7 fȀD ]R)XH|oG(h`x$P T\EU5 R `8 KU\ո i 8jpv � @>  EF@> q@GA�Lp sRv|88ڀE`tض� ,  $@Vx,hf`@d};�hRh`\hT`^ UR�P@ML.N ?P8$F`0K<%!08 0$L 0D)eR0tQb<VT$04EIcn*!Pʄ�d ,^.S HAlIIaHZp( e1im%N)ئ)9Ħ0d *qhEIx<"`(Nc\xđY,0B0GnEBPC=HlE w,tGB#I0Hj {+? 'ÈSX6!P&Se `J5cpBN4a$ID D3 Ș 8*4+#h+c(hh8*i B82*ܨ b08)ؤ!° 8F*  bXO#ȒZ$ȐN(8 BN5a@0#` J/ ! % :"Ђ!r  `mPa$ZX^\`PvbX@Mi!H`r !.&Ș"0p`�n�wH"hbֶ61 AB5LbP| ($:"x", 3C1B)ฤ  m'C@ xR6ƒHa(+6иn .̳b|2v&¸z 0JνAP'z |nD{~ˬ %X63 `gQ35 '3m!/&6 8*#A @'#8 "S&fr4AG A0*`Q0$(C@FȲ "H2 A�% BP2,$" %p J О .'S@ 8>0RSzO@t+`4MpM@f0ᅟnKI~�?`T$@5>Z{d@d՘1\l! x֤QAd"vXBi @ C@f �6@�x@p X �AzhB*�0bB02`\ UB!`pr!8@dax!иIH!0:N� @ Cm]&Bp6A-J�@p+ f^�z_8Sݎlo3NJp-)A�i |5#4"d,BH" 4?PB HmQI)>H& @QR<,@<EoP2�6j 3`E%/H% `Ep 0*Mp UKB E(֐ l&n"uią;p aHga-x!u7UJp8� t!h UWb.Àf}@ % �xZAT Py �6Aˠ�x �0@`&]b4qx �+ >B#@V$@%F-%Bˊ`4!hO J,+0 aЄ�8H^ @.а!@3rgBBX S"4�BD:!%T|YŞ!wM0>0 N݂D O:hJzH! $s?=ΦИ8=( P! A;2@LtqpRl=@pH( ')#!p0c d2�5M"5]Id `K0"�M%$%О+!WQ`|=ah$_ M!(;. Xq!\%y5 A "� 0'g.  dx0@[Xl6�Ր[ @b4rKQ(r@�HF0A("I 77@L&0RA5$"f1@P"S<svos'J` ^(cB BJ$b R2i0AHД 8>gM!H'"�%<99L& zvsB:TPN9tLq@ӎ ,ၮھ(\0缲Ǩ:Dx4PN8 4BlpCL#)(cMׯ_ ]p , DDd|`8 Ǡh`͸`�@-@* #�2 =* d_i@0n� Fb I@ 0 �.@ r`n.)Z`(F`�Tb40`nJ`nJ`n' `&PV � @8 & #X @r`. h�#~@`"t 媂 @~ `Zk`@W@�.T`0`,( /T @pr(~"p@.i $ InT).K< `n`"Ĭ4 �lN�~  fP t L”, x@lN"Z઺/N%|!S2*}F ~KM D *'  #:�8nd�In` e$ ؂H # @=b% ** `> Ĥ * `M @ @( �`` O $v@"`&~&  a-'& IE( �" d C &6 (d`\V�l Jf 3�v) { ~|Tk0t6E&8@9N � @I9. <`dv �T�`~ ;` \�|�+ kG;�)9~VtYv`]f@V FUzȦ7b 2hVed e0 n~( t[m/T lh\ '@LF D b#F\, D, )l�" ؛,,)#%/mJ!j'R( Td2@J 2Lˆ&̉%T b * BH+ఖr& ޤX$T@E *r*?*�) P~M@ #.. QO.^ >| � @1q1&<~(TtsVS>�n jU3Q4W56\I7+0|n243@ l _:ɔ6`Jh>t@X1`] a�Vtv�$d@l`@P�T��J��fx|@zYX ‘ N�b �H�@p� ?)l6{<= "ns`T_=6[@"\4(@`\_: J̌`Ԥ (n``@n Z Z n &` r�-q: )s(`&@ LRd� u Fj&-OjF2ujO)~5Mm>= r)RRJ ^HB q<  q�%@U"QV5f0}w"J| ``. � $  ]�" @"V�KFS5Э ]5a rx$NNb@G@/NP ?P8$S!`:\%Jd!$*!Dv.@Ȱ8#ౘ5HC4*cqLl0 Š$�B`�Pa` m1@cH 1 ᘔ+Cz/Fa{! 7b Aj* DA̤x,@L@8r) \< d*6FIcp8tم246 w2$R п,.SzR0Y r Pᄔ!.AL7a >^#dhBb 84- b02.� BІ b$,#x<3 )0 8-`Ъ" @o @ȼ'H:.- خ#-) (." H&ha* Ȝ!S%p !�X H*,'Bx PjA\@H^hV)eCN%@RN0l` Xpt!r cJ/ z,'�#"~Ap kzP%Rt�b(~@Vb@P^JHP!(�� lJ!H\ą@T$Kfj y`ba`F( fx% b�Z3A/�E+(ǁB h ȀTX^+ n$% 9P(�(.xv .,Rr�$QDKDQ B,`X AOe `>( B`42PX64 } Ƒq!Ȓ 0$R!$++h`MB K8vb.!`jBH? 'T `P#�@s AhR�^Y T}Y) A 'T0 AxS0 `h YQ"$\C@ Azx%Z�"@,  & 0 @�`@{B8-� Hp'@PR" �DbM\7 h @I-�K%c>@ZH$@H,( >�0@ NH  @ 4a�pn �H7i`v @Qb؃x�hD�>m*U Y�s uQs@ &[�$ 3a*}DAoHAJ l`6t# ( A4x_ @vx=9@!. Xr(t `۽.\ Hh- \#�N] ˜EP Uʬ`>`c}ؒJ@Q?o� zA\%P@] \(*L`0f uS*[Մ0RRU< ,  �` @(4WvDKlQqMkzmUz �1�f h)� j@!pB<�`� 8 � ���PAs�3 2-="z(][]h,]ڭ4(wpf #ĀSJ0 0r.T +"I=@l�Px @0>"v6Akh9\"� M3. j�*�aLl:>! a  :�ODz2}@# ! hЮ�!&Q� <�-Z-ؖu2O\&pE@#Pj+M`8#ALe5&9LI` �nabBR�$  ʄ @l0�I l�5Ku4x(2U@Ei-5ֶ�p^ � 5h~<@HXV'D K@p�.#Cr40t a0 f#< F=d`}A $��00ثa� A0%'�c fH x6`&Ha4Fx1((- \p/cS0V@ =`>hI@ $4lzDhArh<`TH}A�` \!HdBp7$Ht84D5@Qʻ 债Gp=N<t "P@" !Q�2`( @ 2@2Z ^ � Pe~@~`  LM|.ۍ� �$܍2 �,  �`"%` jd-�neH`\ ߀^,0 Vp�\,pg�b�T >XB lCl L3, N 4`j`h $ ��<c|* X``3xKֽdB욑 +@V^ Zn .�T�P@)x V�� ^ԿHfB�Μgfn+�F>]d&%i h  nX P2 V@T- \lB<�@l�p| 1�z f>Â*6™�~ ',@hb�| 68`df`zky&Ƹ)Jx$`t4@p�B .  � @  P�  :  `|K@@ (  @ 6 @F`Pp� .�x@x@BTr�3.`h�� � ` `& @xP l`�\0bEAk RN�3�`Ps�B)X+\0�@_5X@N�p�@ , R zPRi�|'!ˎj+Fc<@n#7 �$�iؾ��(AriR HT;CH$`J K B F N n�Xj �H`Q�BhK`D�h&�&hΓ Ɩ2S|L5 IT^c(@,�N @  !`fhi �fd*L xd~%, 9=�:&E&`j|mjnzmRz�|@�%�(B� CD`+� @ � CL z �0 �* �JLDuĹZ)�>Ђ#%1/1�@� t� �> \ @( O�p$b�k:X�`T�S�hV~c k)JaSX�L`F�D�s�PӢgrfV ֆv#?UQrj4-(``.vf`6_ȸt'B9 43!AD02X/V,dgWVsDi� B3Lh<llf>`P�ys4�F #@>��vB/ x<1|5`nԦ.b `psB rrrL @hTF:+fK'`$⸀ZʰGu6< xIЄ �q2xgŘUg%(� 8r`n�c^ %` @>@xzf��R)H]γV�.)bQ#`T@  N)@Z�@R�t*@?P8$8JV CL2FI# SA(A`R CAh@>&BÐ^@�L� `.E@5l 0Ȕr�=Gp@T ! A0` ut!H! |'E @Ad?  @8n$עX$Rrx(NH|�GCDTE0 !Rx#Q@/p8r*Ж$Q!A2Hl'&$ l !"�xB(pXhx  X,1 `Ȭ IX#�H# #⨎ B +" l"(+ �ȒpL� 0((%Ith�"`�$`H'#`h~dax��HQ"+AxE0hEHҽ6�J�@�JX\�mؖ- !"؂ 8*@?˜r a6$ȞRGsrXd�XIX0 8h A~<P �8x"";,D%bS,&#"s:(`j )mv ,(€dfpxBpd)P\X(a<b)m �&#-:,@جbp ;"j *((0X1K#qSnL##l&(("sk$3nh؀" B"Hx %� "Ў"0<0%BЊ !òh(/'3".(M24b(,$@XeV b�&(q7 !BWO j �p(> �F�#ҠBP d 0(Jꀪ �RYMP�"@;�`4@Pth= 30j<YA\@/08 � FR*Em APt"g *Pc aH0FXE 5Wh9G $Ka\t¬ J4Ve@p4P> t4A]х|AX  � n p /ʀ) .:WO0AT �R= `ł0%�T^:t.4Q@ @�`Y 2TvIzUQ . W*D^! &SRk ݠ  0`0x `3-�T! @#NA w@$N<*0*B @>`@=$М7� `8@z3��R0Q3:f >#R AH�`6�T @3�ː HlAM`Ƞ  �ū̱C�B#@p `8@X' <B P D#0hn @8VB=tж_"1�p `Fl"hx �@`)!,AHw @9DBX%A@� XA)ܐ CpDp x�>24`@@! $,c9P\ Nd8`0o ^Y( Ep @xD@%`oފ`P%ki9!Z 0  x+V`  /`tU0@1C`3X@Hzކ*f`<*L e R;BI}  A�8bk\�(A@w #@pO6!` N�PxV̀�,´*4'-A4%KJ,(L`H%W`5@&\@eu- `û5ȇ,\ �5�wL0 p2 A  a~@= ? |nt CS|#p&`A8y)?ys<Z B1=0DB  hb T(0q! DU -!% d@t1K&b a/p&!<0 `F!&Z�b` v̞`IR B p�l h&1@�  " @\H J @4 �~Оj J p > x@�Ld`H  @V �v� 4f, �z`YC/b"�> &.`< I   f Ϥ (ɲ^` H |@x`'^@Pz`� .0 NF`BmNJ�ldN^�䳠\ `8N  *kZ&�x`�JhfnX Sk�`^Sx`b�Vh`@tdf `F � @N !� R @w H /L V�D @ F 2&j  ` DF� L@ d > @iR K� `<8  @<,`<  : @$x @J D@! @RΠ�@ G ) � L QL ` ( @n@Ñdžz ` � B 2& `@� @K l+FGb�@`4 J�"& !:dv`e@'`ȏjh�`@Tf>4�$s1!`D`(R\ gX"`6 d| g@`@ \`kr 1t�@e,~*@g4@v` �:H2T " �, jLR\��Fp� @L�`: �|�F�HM R�@"Z8 [ O `�` `H +�T *F l-TV ̧�2  L f@R KE1F` V`9@ P �I3�:  F D �gB` @ @W�$� 0� , P +u�(`Xz�0v� :Y:` |-`:TR@� ` >o\=7 )2 G `̀ -V [`V | 8 JB! B kkd6(& G@EChxgi~ R L#�`@�N B8 nm c= ~ |Ėrf ^ TL r@r zPYtd b `& <��;Eb��BNhR 4��/{:� H�3M�6P�`UK@��@|+.� QK 1 @*H� P F !^O#p@7)@=fO" M]D  "� `b`L  p @P� @`L~  N* Ӵ`A(xt J@J@`� ( v `.Dq\+\& ` 4 F�~b3R `v41lt _y|`@ d)U�$  u R 4 D  < DӖ&  D+( h� X Ǽ , `L     $N O0� H  �બ`H` @0 -`4  ױD,4Bj+d "@mBE (E Qt�"XP`*bPTu(kx: ,Frzc@P ^p:yNPfx1B D�@D`T@9X�v��]n �q:�h� ?P8$B I ,4`% �ᔜ0Fbh\L a.HJI@:v*ЦQa$;gOȡ9ẐQ^}*$@e!1ؙRI"Y0<o'lL a(C Sa:y) ! =ChpIf!: 2BR@p; @ؤuL< IHB}, b0!(R/&@`Sl&0X4&"PÚ+ADA w¥l*A14> 2`#` &C.�!BȒ a&`X(Czt| J$ (&0 )"<4$H2-ȔXa!`|B'=c|"Pb "t! "Z@�npN�!`(X�\!h�jn!`b�,`8Tф� fax`U@R�AD�0X\ lUt�j &( Ph[@ o /�ȴ$"44 (8 :4ƃ 89]`cP ,@ ()ȾB^8H$C0PBSjhp (CBH6h-�؎Q#k:7A� bn "# `:@6; ` /@@)8Ra@� 㸪n+D( P6�j b&#,@u(x ,#H[<pD@x%0ϤBbBĚ"!x�'P)` B`6+xۋ"06( (cH `I)`� ,@ a0 pBpAD"�@X?%�$A$$ 0 ` �r7�0Sp+� ^zGQ��H XPP�0X 8% (|~2��` @ '`�(j @`4�6> 0��~ a0 �� 8�.EH'�a r �h |1IRr `3.B T 6@i p0$p x @C1t K( A, C`1;C꜠|݇RQ@\< ,(Lą Pi, !� Y؃ @J&F0Erh/ F�Q~ ;1L @�h8_/CSg@}0A&aQs`A @R�0$|͐@8V�-L:aX u43�W<0W @.p %+M X/ :�P_ �a(A�+ABa  M0GQm@ �jcNRp?w`dB0<a 0` @ BrV�>@4)8�"r(V @?.=��x@0FKZBH@�&| 9\\)08R 016  : XP`D�D$�аS p%�`@xk ;p`% AQH d8`&K@t `9ۡ@} Eb n{M(I@a*ppm @``ul 8w ?:CT!(dxv`\- pDASYf aXphz( x�e@sk�z �`Z�.~X&�d@U2!D AvB>"yt!Wp XdEpotYz@iGrC p:fht` ,@>"@�M�,+Z`�j x&�C�K��Ck`+p, :X&r! !@uBe SɋmK 8&B+"'�Oa`P�Ajr*2 zXCL ��4Ĭ�9�`0B@ `6B <l �:D %Ah-@�h x0&B 8"@ Ip@t) B` F g�nz Z) @X^`@  @4>w @p�@$ ôbe`8 �\ �*` `�*]b" <n @< d|3&� �*O< \�V�߭ ,@Jthhl aM: @|f$ f@( N� "$0 j;b n<: Jd \ h2` @J K `]P^; Q?@OR @t/�� v�kg�I ஘+` . & r (pQE,p r8|�hH^  +`2 �z!xh"L`O`vDČ�ll0N@ �: @  &d� jeoH(�` xȍ @`@x�@  wK` da@ $T@.� @7�H @ ` �� `8, B" � &�@3@� z� � +@ .Ί'F- e  �4`FSd`�Л` @8 J: B: ` lO`o` `$ :�, ~�#*�ƀ |  &.M x ( �fup6 �*`D , @ M x n�  R>`* `g- pT , K@pO`@. Cl  *h @DD$ @,@ n@A@ �75ഠ$V'`�/(Q+�` `@ c� u`^TB + T� nP L`%jTl_$``(N& E `t�("�NQǽ* K0 nL`t- Ov &@o+h`nHO$l@ en H�@$ , � & � L  � .> ̠  @ .d Ǫ +B� s@  0`  .p �0b��b�r`=a.ft~"jx 6e ` Ƕx` �tu7AM" 5 �@@ )θc@ [A` t j �^`DZzr x+.� x�txl� # J� Cq4�1 Ќ$ `6  P�mP @`` v `L� D )ȼz2p #M͂�i` % J�`@h�` E��zS H:VdQx��^@&W �f mZUx./\ t@dZ`x . @Ej X @��P� `P�\@�@f4=I� @ D ` @  * H  *  `6 0D t  `4 vA<'L�2<4iF`w,X�T ` P"%nD3 $ K7H>`}F  `|�hI2{ r0j` :6|4t8QOxwճ@'ZV& B|$� y~, p�Sn fc} @.@( 5@n� V`h6 IJ@$`V lXB  @ V`�k ~`PV*J@ @rQ@>J��`hr8~^�Gb`X�@m @VhPb?P8$J� �!8G yp$DxJJ"P\n*MQy,-D$PaM3z|4fb0SG 3e  \4`+JDY<MfPٜ(AER`DgBHc.0QP(@XL`l.e/ @5rxNV$ T9 Bl%Ԣ5D`�@3 %D IS9D0]# 0n"�eA8TKsD8q.L2,#(Z�b"-�h#Т 4=�#Bx8 �"⨀a+�bxz`h!" G% !/X% �6!#�$GA2(Plt hpA"@@~6bЖ ��8b9! ";�N!"؋nHvA@H`��j(6�@Zax@Z�@�Tf !)�# zox�-u݈ D �2 ��8�@H�APTA0 "�xNL4A.CBpC3$``xH&6İ ;dH CHb2銢N#° )M]F')" kX&.`* t&")2 ,B1o()0(b"X6`)Ȭ"H4:b@fJ�a4 %� *6 ਺!bx p0E A290L= "+("jXx� 1C >; "c tQ �Ww�fx:R@rZH)'`S@+ A҄@j(4 wA abBX 0 `ph]G � `/�@)|BH;t˜>0$0~|!V�0UJ<A� P: xu ; l@Fy7)R @�K '4eZ mXF��$�`0P � 0(0` N,A Gph$83�<`X!Ð;a C`R!&x2� X0�b $ P h A<@PMM !Pv?�\'��Fq0i !@Ӑ��b 81pK8t p7`(�"AF!D  Q H0h` *@ T@$7P4!C8'@ 8h�0�hLh0� C'�Ia$'S솊 `@c ^ h9-.nCh" c `1, `| P*%8!  A< r. H 0R}XA6(/t!�ЂA+s(`[X� {  U"rH (`X @�W @XM(A qL�X> p4@�9�DeT"ʼ� fX@ (e��l@.r�R (@ULdp @ DP"jI'PHy `?@^!05A``3XCsʞ2 !0xH6X BNEoV x S;T $�pUw!4#m�>��Z h  O1؆ 4P0$ <4\@ 2p,`O"*BX � 6@l KK 䡣o@>@t x.p ' &` �`\:0D %V‚TM~ATX +* �a K`a.H CUs=;X/`h`&X: 'O8 4@�0^!,� 0 B0tpGA8& nC|+ XH,C`%� )0 'p BC0J? |@<=,?~ �P-@8�N `D�:` F��.@0  6�4 8�p�πWb;E x� R j \ ` `< @~�JI6l ାn  *6�%f@h�`|t`h�Ơ�� `@\F B  - @0  `D`@``� |P @` �zhĠef l *o�  0 � C/ @#fQ�ഌ` 2`; D `x@ D �@Cld~    �n�'v�`#0 > � `{ @.@#@G�i�v @ `�>@DK� p `fYE@ d@8V v��s@rPQ(` T�b@ �z@>Ġ� @̐]^�.E��L.@G#/F�X�eX�EX��E�DJ  *@2@<Z3%2 Z_ŠVb*2 x@ P` @h`` �^ 0 ` @> c @x` E` `t2T \�.�.D``Fh-g o�$f�! b  $P k+ |N" ""�x  -n �� zn @& A �B� 8a �:i@ 2 l ` \` 8r�Wt0 $�#t ��. N�vL`+N� n @ `y'@м̐, |@p�/ �v� �< Ơ �I` ` @�`b V`H @�d y S8|9�f�]`|` (�J t`T v�`( 0r@n]2�0�8O]eO/5]�@D5�__H3 !u"aU`ɂ)aLXP)Z l�@T�fJp `Erj ^ ` MR . D~.t @: @ @ P `\ @ /_7@6 D& F �qE` `<`!8 v , `j pI@bS K 4 � `�P��@r~��  �@ 0 A G < ,@@   @$e;s侣W:N�6tQ"@N@F`'` EOS #\e 4sT@?F `SR6r RP@$`Y�>�@4^P 瀀{ dv H%"`[DI D )Y`& `v@IN`:�`V@  %  O` j˵H�`` ]P!R0 pL8YH�@_6%_5@B�  N�D9O_ŀE` `@#"+ @6>`D  P<H@La `f�f` �� PL4 `WSI@<h@T` A d^!n9  �7P   6 lOR, "˰* �  ��WB&< C?@X*4 T "  @" `�  �� 74` NE @�@� �"q� A Cq ( v�X@t) e`Rh2U�bdJ{: ��A@| z@yR~�T` ��*�Q` @RO4ZD P�"��jHo ,F.�@: XJˀu%9@ "?P8$l5 !62ExN  A"�R � X,�%AB"� D@1 5�&@(PQ"p(L�9p"�z!�'@<I4t' !,<ASPJp(%!Ъ&ň̤p+b`�d.� E X$<C@W n|37lF3fr(g (I!�� !  � x<�ƿ1b�AHT�r8~� B@�2p,. @"�"Ȕ<3 �."2*p B.+0*b41l", @/( /,b  %!TA 8>@@�+ в$dn�A#x%∔!`d(v�QD( �@AtU(�H`�h0@b! )p%HۖD!8!At4@\aPP0|j}0!hK`Ԑ'XX(� " PH NAJ2 6`h 4@u02 Pa'�pb؄ `F6^BpM Ȗ !$ #J؜!b0R?3(8:A0C $5h0H 3 ``.#0 `!p@ �$�@�AH\a `�lr�@/N� p$Kb)<B&2�28 }*@�_ <+�  _ `4-"% u�8X8"�@B- |`~KP�t� ^= VKA*t#�v z��4 PKQ-bHJL JbߑR-x@Fhz B I x` P RpJAIR�pDĥ�r JQ&8# eu2)"i` A@ rp2  p `> `E=A�x @9`!�T@zy ;nB0p XUa. ?�RB ,@C`R,Hs |5&B!0 AD�  e. Q0!TLY %`�;@1u�z1�`x`N�8:Zk�@(P.�B AH�BU�@&�PPf4 d �d*�P @�*x�S ڀplZx+ȍBA I 8Pz�+u*ow¸[t-0�@; K2hGVπhd'@N�*`*PHYtI"@�h 3�$| (;@$0,0zۑxnCK$AxU `%b`L @L A8 f @.D&aX@8�h `1`$pXAP$@%y`�Rp�, x(9䡀UBJ"̛BW 8@v_0X" @�d� b@AT : '� P@T,6Bx*` 0i"1a� Cr�.d0C_3T�-zHn5�w �pA x`=T %KP"� |P �W@$�r�X"PB  pnAyJ`);,&F<#�В@0B�,P,B P `W�W�BPj# !4qad&�AD$$n@ a0Va,)�@|�OB!E#5էA0P@@`WlJ�Qt ɀ#PC@6mX� ,u@ P$3� JYP�9( 23 l" BxMl`5H A \%@.H�<P `Z3bfh͠P&�X $PΌ��l�Vc ⎊( de bpJ�VS�P D&TB�- �@XdgB�`:�,XH& BS b@B h��:  V`*�@ $ `  H ͨ `N@ �K H@ hl $tr@` @4@  (L ��� (8 ( .�`�   � N`�`|��FǬgz̞3 6tB\ <d@�KF  @�  �   ল ��� � n  ` � 2 � @GZ3� 6t@<&�hA� . X @<  + � p�@LI@nǾ��2T4h ++~� � \ @80 �� ^dO r ` b `vJld91 8@@�>0`j`n /�`j�V-`@P%& 6`L� ^6s7t`rW&8@ 8ӈ�`Db�xb*Ƃ'0�`<�s;ӺglgppZ�0 �- @\ A `tN `| ~@ h`,@@V@ 0 ``m , @p` `Pz @dh @>�� >rb! :�@  N D@& @GS@�`tK �� q � � T .�`` H  Y � ~�@Gx`tS` `. @ `OZ��`D`  � 4 8 CV@ H`zb �Z `0 $ @` ~ � `}�!˾F`(le,,gMk,`\ @ R �@P `[a`Z �`zNv< =cll@. �' diXlJ |�LB@T@N�f `` V h� it�p�iD)bkL-bqk@<Ζpzh`FhmT`RZ@^�& x`< ħ`�0 a6 v݀gG> &cFbS a T ,r0` �P `v�`�B`� @@w `d @Z uf`y@GBD`@ @0 �d. � 2 `�u /     �  `  �l �GY $4`6,>$`>,�rAc"~`؁� O @` &�^ h�;c@-e@Bj /.lU+t@@T\J YaU(*V�Y�V j`o. � �D @�&`*!e+9x̰Bg f[hZZESrTY$)nb@Iҕ9iY�(h;F"h <xOlTDŽx@Th9@"f7g li @t@` ta s LF@3 @ A�r`7 !( X! V� ,a`�� `BCt&@t  @H  �� @�D� /|C  @@ 4P ``" ^ @耟!ŀ^`T * `~gP  ��`�G�%z�c;J �� �`6� �nw@h � ` xE 0 @* : `�׍� < @ @?P8$BA BN&qL41Hc)$[!#R3eD7F#0p qX@P,B7) (C�F(V�4=C@f \ C10 b$�@ W�2�+Q@A��MǀE88-(Dj4!YևD `: a x x3y5@h� �A@P# n'e@YL#Pm# DCtn,QI H5 bh.8 / 89'Cи#JEa1C C8E ! 4#` +@$z 9 p4�¨� �5`1C :7 3�8�/ B= 2(Ø48.C( °*(H(�ظ 2) #bz3 �, �]J�& :X b(,(�h$ 69�/#H ( &" oX@Qr!0 &BHN AP|  BtN(z rAp*aHZ ax-LJTP:0@%"~ $`zB ~K|8$``X�+�R腁0R[8 La#{7+x�7@qw #Sd΁- �(8* �A@Fh!  x^2-#x:+"P9H.@D4 *b_h#  �B5O�qH8Y5pj �,+�o H:2( P 0 Ah ϐa n!8@u |8pH %�b�!`H8 `p� l\ L(-2�t #T�L"��7�-0PH �%P@�9pI<WXB 0L ` `pTA$L  A#$ 0V&t A8`f =`B�\�,( A<Д B ! h9 0HM �&pTB '` BFa%;, @T}  Xx)n���7h�7*z N֎T6P@@e8 :���h�p65W�PNp*@BJx>3$!&<�X2`YxBD!�j `9PB 2A f!+@X` x+P& H  da/H@`�;�� 2fP�Pp*p@xc 0-` CXka|+�8a @7P< !,~€ va7`Td*n@`�*  ɜ*(U�T4 0@E!, N?!8#��pv1 xMoBP,`tɰg7_Z�#,l<`D P `@ X`n8;!l%AY @*pNF@$PT0+ s~ (AڔP~2@@|@BA,"P8& $;<@ )81@F6k@ =�P!�[u\dafHWP �5GP8tjH�\ :p8k�l�m@L�e0�<QL`CY($��IP; �Ⱀ @PZ|+@B8 PG #CI!@ `1C0P\ pbp�F@Q H,= Xf h.>ҐBrj a<XD)�TQ8 p^w(yEp w2( Hh" ևPC�X6@3AOAޅ} t /P!@e '࢐BL�``C, aP�7о B`�9�̩I & lH- �tPr`x V`t haBZL͠ �` ` l @`a�d @\ �D d �FH P�Z `Jb`~`EbP,mV@p @0 H)0 r`h^PnTE� @Z4�^��ZV8@R8@N8J�' ;N9*+`D0`F3@ >> 7#ʮ��`J6`�<�0ʞBL6��1@`t :x F �$ ` A$�� v ` > ���J�� `� I( (I怆�f@T`�~�`�` � � K~@ J  \  G� `/B @ $ � > J& $, � ��  �`�rĤ�f��(9v` �`|)J ` � |-`` `l s1O34�<@s"@rix0lB^]`|`S1*^ @c |@�`brHZ  j0z|_svr@tsVPM=P -Dp`l  ^�b@�1`Q3*@L�1��X5^8�QZʞn9@F�:` TP#{D`E\7F*8C�jG�0@Gt{G2`@8t`:��d `,٠: C  va& T !��4 x|`-. i, � h@v �t ;� -VR` D �`� � # � ( `.  ` I�� ��Y�S`+` m�* @ Ģ<��` @ @x�l/O1sp ` ^ xn@: � 3`=5 Dj`\77$ V�`�[8Oc`UZNmP` Z ` n`N vf jN V 1JL`rSsa3:P �J (b^`3 R*H8M�v`hkX�aOfP ^oB1: T3ͼ�+rC&D`p E-:9s6tWEFTmFPHrԓI`8GvWb�Ԃ8jEBm V@|- : `` \�� @�zCp�x\= @ TӠ&w`  n�%4( DR@@Q%$(@� �,Jt��` `U`  D l�r RM�C &7`� �� &@`�@R^̩/V@Qb�S2 H)+^`\D_d˘"f Dv `Wf�j f @.j( �0 `W-PW`H@ �B >  HS$}~ jPּ `h v 0`n,)R`^@`PYJR&ޠ�Fj@0@d�x` b-BZ VqHJ0lnlTt;EEczn2:�l8n.s;=�@ -t(v: ?12T&�S@�& �u@ `L  ^XjA`� ` @x�u h @ �2 o(]"M�\�kv�W"`@��t@ a� �` j @д+j k h� ơ( �`:`J ?P8$~BHr!T@!ÐnDR@n:"hP'IU-BA$U  I#s \|q/sA\XY#IY,r'E�(?By,6P&IĠݬ:S'1Id@)GDP̐F0CIcBAWHM(eИKQx(4FbD@`x3 �A;QY<~% dtA �$7FBO��F�~_|@b���<�4P0<�Da . 6���8�7 �3 b�AX(()Z<) = *$xK < cHl0 !()`ZDGAH�`p!(8 PNB@p� ˆ�)(82 (2bR`H#x�#`0$"P h) �0'%, Mef*ؘ'A|6hh!H"]H|  !v> f t:x2"P1!bxza#`Hpl(!Ȍ!H b0L&=xpaD 0X "H^#` z"N$ vP!@r!p\ @ �xJd 6A#j n�p-h%@$c`IA- b ,@b�OP!(ց@H8L(Fw`{ƾ$iヱy^lbn B�<ǯ F �4 ? 0;�!�8xF �):1ph BdD.!НA|E #X C`_A+p�DA `j8 l� "P `� H�@lt0P@9�x@Q $,P*$dyKDͅ@nh0Y< !@%c�0!pc$?i�n"%@^ j  h 0`A@!P@Q`%վ>"CS`N �&pb .i'jЂxM"~A1MH @ Xx/b @) <P 6( hh(A$@=l34& A `¥7 d+p=LՁ d 1@ AH `:` �Wj^ǒ3Ph>Vjp?|@8�( f0� PH :~� !&̀ /ga@R .�B� $ CT3pDD#K& Dx{ !2SXAH%V® )��K��0` �X.�'$ƀp{;A0`Uh-$0pXMeŒ~"`pEԋ%@ $ˠ� $H F3pl8 JP: An`t t2�0r G�PրIa f Հ( aPdh7" -Mu6 H"9C j .�`( |@9i + A\1zA>"j2 ˀ\Ax�~ Gg0 xsg�I:�o/EڟTA`(`mx&�q \o=73k"y�Z�h !0,j%H; , @�\pF~ � p@�d"`ǀ#�x�p"3  +�"h} J�0� 8D, C(WA4h!8F#R%l!4S!4$�`@D h�p�Xa *$��N ,$@@GT"_Ag! yRF lH0R �x2ap3#hO!D)В:K$^iF AbP.9Z@@�f 07@2rpX [@L ȕ` .-�Y } 3 Pz`HteNd_E@d\\J~N �HJX`Bk6U@4p*" L#z@D be  . �xt�* :�6@>O8/FMʠl` `TP@h  v rw&�=r?��6>$EG>DF.߄�^?@J`:R>@ F#e$@6�..E:�@*> F?@$`@<4E>@  Hch ` @. j A6� A   Z @ L  ڈ`e �^��f^ @!r!!!"2%"r)"-"1#25#r9#=#A$2E$rI$M$Q%2U%rY%]%a&2e&ri"?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkU?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkU?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkU?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkU ��������������������l+�������������������r+�������������������+�����:,�����B,��������(������������������� ��G����*��6��pF��ET��c��Wt��t��|�������������� �+�)�)�)�_*�����( ��f �� �� ���� ����G������ ��r����R���������� ��k���k���k���k������H������H���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/README��������������������������������������������������������������������������000444��000765��000024�� 1474�11760240072� 15162� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������README files in this directory: Filename Author License Link 24P_Arial_NeonYellow.png 24P_Copperplate_Blue.png 5x7.fnt Andreas Schiffler LGPL 2.1 http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx aircut3.ttf electrohar.ttf highlight.png icon.bmp LargeFont.bmp logo.png menu.png README Tobias Leich none/free this file picture.bmp Tobias Leich none/free sample.wav tribute_i.wav Matthew Newman GPL 3.0, LGPL 2.0, CC-BY-SA 3.0 http://opengameart.org/content/vocal-grunts-tribeiwav����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/sample.wav����������������������������������������������������������������������000444��000765��000024�� 1654752�11760240072� 16400� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������RIFFY�WAVEfmt �����"V��D������fact���ج�dataY�vvvvwwvvxxvvyyxxyyyyyyzzzzzzzzzzzzzzzzzzzzyyzzzzzzzzzzzzzzyyyyyyyyyyyyyyzzzzzzzzzzzzzzzz{{||||}}~~~~~~}}zzzzvvvvssrrnnnnkkkkhhhhffffddccbbaa``____^^^^^^^^^^^^^^______````bbbbccccddddddeeffffhhhhjjjjkkkkllllmmmmmmmmnnnnnnnnooooooooooooqqqqqqqqqqqqqqqqqqqqqqqqrrrrssssssssrrrrrrrrrrssssttttuuuuuuuuttttssttttttttttttuuuuwwwwxxyyyyyyzzzzzzzz{{{{||||||||}}}}~~~~~~~~~~~~~~~~}}||zzwwwwssssoonnllkkiiiiggffeeddbbbb````^^^^^^^^]]]]\\\\\\]]]]]]^^^^__________````bbbbccccccccddddffffggffffffeeffffggggggggeeeeeeeeeeffgggggggggghhhhhhhhggffddbbaa``__]]\\ZZXXWWVVTTTTRRSSQQQQQQPPPPNNMMMMJJKKJJJJJJKKKKMMLLNNNNNNOOPPQQTTTTWWWWZZZZ]]\\^^^^__````bbccddeeffgghhhhiijjkkmmnnppppqqqqrrssttuuvvwwxxyy{{||~~~~||{{{{zzzzyyyyyyxxxxwwvvvvttssrrrrppppppoooooooooooommnnllllllmmmmnnmmnnnnnnnnpppprrrrrrqqqqqqqqppppppppppppppqqppqqppqqqqqqqqqqqqqqppqqppppooooooooooooooppppppppqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssttssttttuuuuvvwwwwxxzzzz}}}}||||vvuuqqppppnnnnnnnnnnmmnnmmnnnnoopprrssttuuwwwwxxxxyyyy{{||}}~~~~~~||||zzzzyyzzyyyyxxyyyyzzzzzzzzyyxxwwwwwwwwxxxxzzzzzz{{{{{{{{{{}}}}zzyyvvssppmmmmjjjjggeecc``^^[[[[ZZZZYYZZZZZZZZZZZZYYYYXXXXXXXXYYZZ\\^^aaaaddeegghhjjkknnnnqqqqttvvzz}}~~{{{{wwuuttssrrrrqqqqppoommmmkkkkkkkkkkkkjjhhhhffffffgghhggffddbbbbbbaaaa````____________^^^^\\]]^^bbddffffiiiiggbbbbddZZZZnnggggggggxxnnnnrrrr||||||~~||nnttoojjssssooyyppkkggeennqqyyyytteekkkk]]eeZZSSJJMMWWkkddXXXXXXaaHHHHHHHHHHhhhhUUUUUUjjvvkkuu^^^^^^ppppkkkkkkooiisssssskkrr||||yyyyqq\\\\cccccccchhhhdddd^^VVOOGGGGEE44""""''''!!%%..((&&::AAAAAA22&&****##..88550000,,555588BBEEEEEEEE6666;;;;GGZZrryy~~{{ggggʻȵʿۮջⱱ˜rrrrggީ~~~~óݯɽttttbbbbqqyy}}zzvvnn__ddmmmmttqq__YYNNNNNNKKGG44..######''++++)),,)) "" ''33 ....88////!!!!    ****GGGG@@882222------88??NNaagg]]JJJJEEIIMMMMTThhoooo{{qqggccccqqyyyy~~~~zz~~xxttmmmmsswwnnnnxxı}}{{{{~~~~wwwwqqvv~~oooo``eeww}}nnbbccjjppuuyyyy||yy{{úttiiaaZZccooxxzzoo]]LLAA<<FFOO\\cc__ZZII88//,,++//AAHHIIKKQQWW\\__aaYYPPIIGGIIPP[[ggmmssppee\\UUPPKKGGGGFFEEFFEE??@@EEKKMMLLDD>>33**--44::HHTTZZ\\]]YYWWUUUUTTTTQQRRTTWW[[__``ZZII;;9988??SS\\__QQFF99//))00==LLTTQQJJ>>00&& ))1188@@CCHHKKMMOOQQSSQQGG====FFOO^^ggggee__YYUUKKEEBB<<997799::==8855??AADD??::00))**1155;;FFQQSSVVWWWWWWXX[[ZZSSNNOOXX``ddeebbYYMMGGJJTTbbkknnll^^KKAA@@MMXXffqqwwssjj]]TTKKHHOOXX``llvv}}{{~~uuuuxxxxvvttppnnmmttzzzzuuqqhhaa]]``eerryy||~~sslluu}}vvlliiggoouu}}}}ll^^XXVVccnn{{¼ͼȺøľµwwnniijjppyy||||yy}}ĵvvvvvvxx~~||xx||kkddccjjss{{wwwwllddWWKKGGKKMMSS[[ddgggg``RREE22$$''77HHWW[[YYUUQQNNSSVVZZYYQQKKIIOO[[eeqqttrree\\OOJJGGFFEECC@@==99>>CCHHKKFF>>884411//5588;;@@KKUU``ffee``UUMMRR]]ggppuummggYYQQQQXXggttuuttnn^^RROONNRRYY__eennww}}yyooaaMM@@;;BBPPbbqqyy{{yyuuttzzyyww||}}||||yywwuuww{{}}yyvvttttoonnoossxx||pptt̽zzssnnkkss||||}}xxoojjoo{{uujjaa^^__aabbcchhrr~~wwhhVVEE8866==OOaappnnllkkkknnnnqqwwyyrrhheeqqzzxxrrmmjjgghhhhhhggeegghhhhggggkkllcc\\SSPPVVffttxxrrppyyuunnllvv~~~~ppiieeccgghheeiirrtt``LL<<77BBKK[[eemmoommkkjjffeekkppooee^^``ggmmww}}rriibb[[TTPPMMKKMMPPNNIIFFDDEEIIMMJJEE::..--33BBOO[[^^]]XXVVUUWWaammxxyyrrii[[SSXXaallxx}}~~vvppff__[[]]^^^^__bbmm||ss``QQFFIIUUbbnnzz||}}~~||{{{{vvuuvvzz}}}}xxllcc__ddpp||{{{{zzyyxxxxyykk__^^ccpp{{yyüttnnlluu}}{{{{{{yyxxssnnkkkkppttuuoohh[[SSTT]]hhrrvvuummgglltt~~rrmmllvvzzssggbbhhnn{{~~oodd^^\\ccllyy~~zz{{}}vvllddddiirrzz||zzrrnnppxxssooqquu~~uugg[[SSVV]]ffmmzzppccWWKKBBCCHHTTbbppwwvvssqqllhhhhppwwxxssoooovvyyoommmmooqqmmiiffeebbggllnnkkee__ZZXX]]ggppqqqqjjggjjvvyy{{qqhhhhqqzzppddZZSSWWaauu~~xxww||}}uurrppmmkkiiiieeaa__``ddeeaa[[VVRRPPQQWW]]^^ZZVVRRRR]]ggyyuukkccddeellrruuzzyynn``UUQQVVbbllvvwwhh\\SSLLHHOO\\nn||{{uuuuyyyy||~~}}}}||{{wwttssssssuuttppkkgggghhkkmmppoogg____jjzzxxvvyy{{~~qq^^WW__ffttvvkk^^SSKKMMYYkk}}zzww{{~~zzxx{{}}uunnpp{{zz}}yykkiinn~~}}||||{{uuqqmmqqvvzzxxoohhbb\\[[eett~~yykkiipp}}ssgg__bbqq}}xx||vvkkddddkkvv~~{{{{||ssaaWW]]jjuuzzkk^^PPFFDDLL[[ll{{}}xxttmmjjllss{{~~}}zz||{{ttttttvvvvuuuuuuoojjffhhqqzz~~yykk^^VVWW^^jjzz~~}}ttgghhrr~~uuhh^^WW[[eevvvvsszzuuoollllllggeeccaaYYUUUUZZccjjffVVII@@<<>>EESS``jjssttqqllggee__[[WWYYccoo||||kkXXIIDDKKWWaajjqqyysseeZZNNFFDDHHXXiixxuulleejjuu~~}}{{yyvvssoooorryyzzkk__XXZZbbllyy}}vvuu{{ll__``hhuu||oobbXXTTRRXXggzzssiihhpp~~{{zzvvssqquuzzyykk``aaffrr}}}}ttmmpp{{xxooee]]]]ggyy~~rrkkooyy}}yyvvxxuuqqmmiihheebbaaeellqqqqggZZPPIINNSS[[ddoozz||vvqqjjeeeeoo}}{{ggXXXXbbpp}}ttllddXXRRYYppxxvvuullllqqww~~nn``iiqqppddWWMMOO]]tt||ppiiiinnzz~~||zzxxxxxxwwuuxx{{wwii[[XXaakktt{{~~}}~~{{uutt||{{xxuussqqqqppkkbbXXTTXX\\eeppyy~~~~{{zz{{}}~~~~zzuuttzz~~||{{vvqqjjhhmmssvvvvrrppvv~~yyssooiibb^^bbppyyqqjjoovv~~vvqqjj__TTNNLLRR^^kkvv{{{{yyzz||}}zzxxyy~~}}{{yy{{yyoollnnoooollkkmmppqqoollkkkkmmkkllnnqqssssrrrruuzz{{rriiaa__hhss||~~xxqqmmjjhheeaa\\YYXXXXVVUU[[ffrruuvvvvuuoohh``YY\\ddppyy{{ttqqqqqqrrttttww||yyttttuuvvyy||~~zzuussttttvvvvvvttookkggddffjjqqyy||sshhcceemmrrvvwwxxyywwooii``[[^^cciinnssvvvvuuttssrrssttuurrnnkkiiffffeehhkkoossssrrrrttvvwwwwuussrrssttttttuuuurrmmllnnqqttwwwwwwwwwwvvwwuuuussqqrrvv||yyttoopptt{{~~~~~~~~~~||{{}}~~||||||||~~||{{{{{{{{{{}}}}{{{{||~~~~~~~~~~}}~~zzuuqqoojjggeeccaa____``````__^^__``aaaaaaccccddffhhiijjjjkknnttwwzz}}~~zzvvvvttttttttxx~~||uuookkllooxx{{qqddZZZZffppyy||{{||}}}}~~xxzz||||||}}||uuqqss{{}}yy~~uummffddeennxxssrrqquuww||||}}~~zzssqqppnnllccUUKKTT]]ss}}xxqqxxzzyy}}yyrrzzzzttii``__bbhhttzzuussxxvvoommppqqvvzz}}yyooffhhmmxx}}tthh__XXVV^^hhsswwyyuuttyy{{nnkkuu}}~~uuqqnnppjjffddddbbddooxxuussrrqqaaTTTTYYaapp||ttiikk}}{{ggXXUUZZggqqzz||||{{qqkkss}}zzoogghhiiee^^YYZZ[[]]^^eehhiidd``RREE;;??FFSS^^ggss{{~~vvoohhddffmmtt{{~~}}zzttssnnhhjjrr||xxhhbbkk{{||jj____ffrr{{xxzzyynnllkkcc\\YYZZ[[WWXX]]cceebb\\OOEE>>@@GGOOVVaannww~~wwqqjjffggmmww||~~~~~~||{{yyrrff\\]]ddooyyzzpp\\LLCCOO``xx~~kkWWGGCCGGQQ[[eejjnnuu{{||ookkppzzttssoolljjiiiiiihhmmttzzuunnhhYYPPMMSS[[ffrr~~zzttrrvv~~xxkkbbddss}}ii\\VVccuussee^^__eelluu~~xxuuppmmjjiihhccggnnuusskkbbUUIIEEHHQQ[[hhtt}}{{ttppoossyy}}~~yymmccffwwll__XXbbuuwwjj``]]aaggqq||ƺwwnnnnxxppkknn||{{hh\\YY^^ppvvgg[[RROOUU^^oo}}wwssyywwvvuuttrroooott}}zzssff[[XXbbjjyyzzoommww~~nnaa]]__jjwwyy||||||||zzwwssppqqyyzzrrhhYYQQVV^^iitt}}yyssoouu}}nnccccmmxx}}nnbbYYTT\\eexxttddTTMMMMYYiiwwº~~yyuuuu}}uuffZZXXaaqq~~yyookknnpp||}}llXXJJEELLVVeerr||||wwqqqquuvvooggddhhpp~~uuiiggffffdd``]]ZZYYaannzzyyrrgg\\RRLLUUaass~~~~{{~~ttppoott~~ssdd\\]]ggyy{{vvoojjffkktt~~xxkk\\PPHHHHUU__iiqqrrss{{uuoopp||~~vv{{{{ttnnmmppyyxxgg^^YY``qq}}zzvvxx}}ttiibbaahhoozzqqhhggffoozzzzmm\\RRQQaatt~~{{xxvvppllkknnuuzzzzqqgg__XXTTQQTTZZ``ffnnzzwwmmoowwzzvvvv||tthheekkrrssddXXQQXXkk~~{{wwssqqooppww}}zzrrjjee``]]YYZZ__hhqq~~}}rrnnvv~~xxqqmmrrwwttbbTTPPTT[[ddoouueeTTFF<<@@NNgg{{||yywwuuvvvv{{{{uuqqnnee^^YYYY``ll||yyuuzz||xxxxuudd]]``jjtt}}mm[[MMLLSSii||zzxxwwxxzz{{||||qqggaahhuujj__ZZcckkrrxxggTTDDAADDTTeess||zzxx~~||uuxx||vvuussssssttrrqqqqrrqqnnmmkkccQQHHLLVViixx}}zzxxwwzzwwppooxxoo``[[__ggppww{{hhYYMMPPYYkkyy||vvssuuwwxxxxsspprrvv{{zzyysshh[[ZZbbssoobbbbffmmuussaaSSKKNNWWggxx~~zzzz||||xxttuuyy{{||vvrrppuu{{}}||vvooaaVVVVddtt}}zzttmmllss~~}}ll^^\\^^jjyy||wwllgghhkkllkkgg^^YY[[bbggeecc__YYNNCCCCLL\\hhqquussqqssxxttjjcckkwwwwggWWOOPP[[hhyyqq[[MMJJIIOO``rrzzvv}}~~{{}}ttnnkkrrxx||yywwssoojjeebbaabbbbbbggnnuu~~wwii^^]]hhzzjjUUHHJJQQbbtt||ll^^VVPPNNTTddxxyyssxx||yyuussqqkkbb__eemmttttssrrmmiiggkkppttnn^^RRXXggxxrriinn||xx__KKOOaaww{{kkaaYYTTPPVVddyyyyxxxxuuuuvvrroommsszz~~yyuuvvxxtthh[[QQTT__qq}}zzooee__ddppzz]]FF@@IIVVhhzzoocc^^ZZUUQQWWhhzzttnnss~~~~uukkoovvyyppee\\ddtt~~wwllggmmrryy||||}}{{ttrr~~nn\\XXeevv~~mmbb]]ZZ]]bbiiyy{{nnddggnn{{}}~~~~zzwwxxxxvvrrmmmmtt}}{{xxuuxx{{{{xxrrmmnnqqssttttuu}}{{jj\\^^eeqq{{xxrrllee__^^ccllxxzzssooqqyy~~}}~~~~ttrrrrssttqqllnntt||zzzzttoorrvvxx{{vvuuuuvv{{~~yyvvoogg__ZZ``kkttyywwuuttssttttqqoolljjllrr{{zzuurrrrssvv~~wwppnnppppppooooqqvvzz}}yyvvoooorruuyyzzwwqqmmnnppvv{{{{zz||~~~~zzwwrrrrttyy~~}}~~~~zzyy{{||ssrrrrssww}}}}uuoollppssvvuuuuqqoooorrttssrrqqsszz{{xxwwxxyy~~}}xxttttuuvvvvvvvvuuuuttqqoonnooqqrrqqssrrttuuvvxxwwuuttuuww||}}xxuuuuww||||yy{{~~}}yyvvssqqrrssxx{{||zzvvuuttvvyy||~~~~}}~~}}zzxxyy{{}}}}}}}}~~~~}}||{{{{{{||}}}}}}~~||xxttoolljjkklloorrssuuwwxxxxyyvvssppnnlljjkkmmqqvvzz~~}}}}||||||{{{{zzxxwwyy{{}}~~~~{{||}}}}{{{{||}}~~}}||{{zzzz{{~~~~||zz}}~~~~~~}}||~~||yywwvvxxzz}}||zz{{{{}}~~~~~~||{{yyxxxxzz||~~}}yyuuttttttuuzz}}~~yyvvttvvwwyyzzzzxxyyzz{{}}||yyuurrssttxxzzzzzzxxwwvvuuttttvvyy~~~~zz{{{{~~yyuussssttvvzz~~~~{{vvssppoooonnllkkjjkkmmnnpprrttvvxxwwvvuuttttttrrppppqqqqrrssuuvvvvvvvvwwxxzzyyxxttqqoonnnnnnooppqqttttssqqppoonnnnppqqssuuwwyyzzyyxxvvvvvvxxyy}}~~{{||}}}}||{{||}}~~~~~~}}||{{||~~~~yyttqqppppqqnnlljjjjggddaabbcceeccccbbbb````]]\\YYWWWWWWXXWWWWZZ]]bbeeffffffffeeddccbbccddddeeggjjllnnoommkkkkkkllllllllkkiieeaa``bbddffiimmqqrrrrqqppoooommjjhhffeeggiijjmmqquuyyyyyyyyyywwvvvvvvyy||}}{{zz||}}}}||||}}~~||}}}}}}}}}}~~}}||yywwuuuuuuxx{{||}}}}}}zzwwuuttuuxxxxxxxxzz}}~~~~~~~~||||||~~~~||||~~~~~~~~~~~~{{xxvvssrrqqrrttxxxx||}}~~||||||}}~~~~}}}}zzzzyyzz{{||}}||yy{{||~~}}}}}}~~~~||{{vvvvwwww||~~}}zzzzzz}}}}~~~~~~{{wwvvvvzz~~~~~~}}}}||{{yyxxyy{{{{{{zz{{{{||~~~~||{{{{{{}}~~||||||~~{{xxxxyy}}~~{{xxssoojjhhhhiikkoorrttssssoonnkkkkllllkkjjffffccddddeeffhhhhjjgghhgghhiikkllmmkkkkkkhhgggghhjjllmmooppnnoollnnnnqqrrssttuuttuuuuvvxx{{}}uu璒EEVVhhPP<<UU||຺Çvv;;??cceeZZhh}}##cc{{||II11ҊNNQQ[[rrssssttjjRRII""eeɪxxNNQQwwww\\qqmm{{{{jjss{{rrppVVAA66..99RR[[^^[[XXSSJJJJBB;;6677DDNNAA;;@@ && ""'' 11>>BBFF99..33TTjj}}uuZZCCGGJJHH;;55>>NNgg}}~~WWYY\\TTii{{||nn||xx{{||qqrrssmmnn{{{{iibb]]llssttzzuuddffxxxxyyppww~~zz̽ɸÿzz{{xxiiaaccYYJJMMKKJJ==%%**  &&##!! !!::KKHHLLJJ==FFFFEELLSS^^QQOOVVaayy{{vvrr{{xxƸƺ½þwwqqվmmnnooɩͿعDZÿȾĽònnffggeeQQ??66;;????CC88<<<<//4488//!!''--     $$((''!!66;;++))//9999FF\\LL::>><<66::CCGGJJQQYYYYUU[[aaffgg````ffppoopp{{ww{{{{{{ÿ}}}}||||||||ÿ||||zzzz~~||yyuuooppnnqqqqppuunngghhggggee]]\\aa^^^^^^WWSSQQHHKKNNNNQQTTWWZZUUQQLLKKLLKKOOOOJJJJKKJJDDAAEEIIJJMMRRPPLLQQXXWWUUPPGGFF<<88<<AABBCCFFJJKKKKMMQQMMMMJJGGCC>>==88441111DDMMPPOORRXX``XX^^kkii[[TTSS]]cckkttrrss~~}}{{zz}}||zzllmmrr{{xxooppnngg``bbbb\\``ddbbWWTTRRIIEE??==66446666,,--..335599888888774433..$$ ""$$))%%##&&00996644;;??CCCC>>BBFFDD==7788::;;@@HHKKKKNNTTYY^^aa``]]__ffjjjjffbb``__]]aakkwwttrrxx}}{{||wwssppqqyyzzxxzzyyrryy{{zzǿ~~ttwwyy}}zzvvnnff``\\YYRRLLEE>>>>??@@BBDDGGKKPPQQIIGGFFCC@@<<==>>??DDIINNQQRRTTVVYYZZWWXXZZVVSSQQPPPPTTXX[[^^aa``__bbddaa``bbjjjjhhhhqqllhhiimmppqqttxxxxqqiiggffnnuuyy{{||zzyyxxvvrrnnqqppmmkkjjppuupplliigghhiikkllmmoommmmmmlloonniiccddddggffffffbbeekkooxx||zzvvssoommnnmmhhffeejjmmlljjkkmmmmnnooppuuuussnnmmmmllhhdd]]ZZ^^ffllppttuuoojjhhkkiikknnmmllhhddffccaaaaiippvv{{yyssrrttvvuuuuuuvvxxyy{{zzýyyooggeeddfflliiggeebb\\WWSSKKEECC>>>>@@BB>><<773355::>>@@;;9988887777//**,,0044@@IIJJCC>>>>AA@@>>@@BBEEDDAABBHHHHEEGGKKPPUUZZXXUURRUUZZ__\\YYXXTTVVYYYY^^``cceehhkknnoojjddbbbbffggeeaaeeiillkkppuurrhhkknnqqssssjjaaZZ__ddhhllmmjjddffjjmmhhddddeeggdd``]]__]][[[[[[aaffggcc``ccffeeffmmnnhhddaa``aa]]]]__ddkkuuzzwwuussppqqrrrrnnssrroommssxxyyyy~~||~~~~}}ttmmhhffggggddcc``]][[ZZ]]``ddddbbddffcc[[VVSSRRUUYYWWVVVVYYddkkllmmoommjjppuuwwuusssszz~~~~zzzzuurrttzzyy||{{zzyyuutt{{~~||~~||}}~~zzvvyywwssrrvvyy{{||~~~~yyxx}}zzqqmmppvv{{||~~||wwssttttttuuttttwwyy||xxvvxx{{~~}}yywwxxuuqqlljjiihhggdd^^YYVVQQLLGGDDBBDDCCBBGGJJKKIICC@@??>>::7799;;::;;>>AA@@BBDDEEGGFFIIHHFFEEEEDDDDDDCCCCEEEEFFHHKKJJJJHHNNTTQQOOSSWWSSNNMMMMKKMMNNPPUU\\____ZZTTPPLLLLPPUUWWUUVV\\``ccggeeffgg__YYXX]]aaffddiiqqssssttrrssxxzzzzwwuurrpprrssssyy~~zzyyxxxxzz}}zzvvssttsssswwzzxxwwyy{{||{{zz{{{{zzxxwwwwzz||~~||}}~~{{yyxxssrryy{{zzyyyyzz¿~~zzssppoonnkkmmnnjjffddbb]]XXVVTTOOGGDDCCGGMMQQPPPPRRRRMMMMMMJJHHIIJJKKJJIIGGFFDDHHQQXXYY]]]]\\YY\\[[WWUUZZZZ[[[[^^aaggkkrryyxxxxxxyyttppooqqttvvzz~~~~~~{{vvvvppmmrrwwzz||}}yyxxxxwwvvttppmmnnoorruuww}}||}}}}}}{{zzyyyyzz||||}}wwssuuppiicc]]]]]]]]]]]]WWRRLLFF@@;;9988::<<::99886611////00001100,,**))((''))..22557766335599::6677;;AADDDDEEFFFFEEFFGGGGKKPPSSSSRRTTYY\\__bbccccdddd``````__YYXX``hhlloossttssssuuvvttuussnnmmoooooouuzzzzzz}}}}~~}}{{||xxvvyyzzww{{{{~~||wwvvvvvvxxvvuurroommppttwwxxwwvvuuvvvvvvssttwwxxxxxxssoonnqqrrssttyyyyxxzz~~||zzzz{{{{{{~~~~~~~~~~~~}}yyvvttrrppkkhhgggghhffddddccbb````__[[VVRRNNOOOOMMJJIINNOOOOOONNNNLLNNPPRRRRQQLLJJKKOOSSVVUUTTRRRRSSUUTTWW[[__``^^[[[[[[^^bbffhhiiffeeffjjllooooppssvvwwwwqqqqqqssuuyy}}~~}}}}~~}}~~~~||~~~~{{xxxxwwssoollllkkjjmmqqrrppllhhffeebb``__^^^^^^^^``aa__[[[[YYUUTTVVXXZZ]]____^^]]\\[[YYXX[[\\]][[\\YYWWUUUUUUZZ``eeggkkppqqnniiiiiihhjjjjllnnssxxzzwwxxxxxxvvyyyyxx{{}}~~}}||{{wwuuww}}||xx}}yyvv}}||ttssxxvvuuvvuuyyzzyyyy{{{{{{wwxxvvttyy~~}}~~||yy}}~~{{vvxxuussoollkkmmqqww||zzxxwwoouu{{ttnnjjggqqvvvvzz{{wwyyxxuuttvv~~{{}}~~zz~~||uussxx}}||ssjjggnnzzxxwwvvyy}}}}llbbZZWWVVUUYY\\``^^YYSSPPQQNNQQUU^^nn||ttmmhh__RRIIFFEEEEIIMMJJLLMMIIGG::::>>CCQQaammqqppiiaaWWLLKKNNVV]]ddaa]]ZZTTOOKKBB@@@@DDLLSSZZ^^^^``]][[\\YYZZ``ll||~~zzwwttqqssttxxyyxxqqgg[[[[ddqqxxmmppww}}ppggiittĿww~~zzppddffvvttllppvvtthhcciiqq{{zzppss}}||ooeebbccmm{{jjZZJJHHMMUUaauu~~wwppee]]VVUUWW``jjttvvvvttmmgg[[QQXXhhuu||zzzz||ppkkiiooxxmmZZKKGGOOWWjj}}uuhh^^XX\\hhuuxxllccbbiiss{{~~vvww{{~~xxmmdd]]aammww{{yyqqffTTFF>>EELLZZmm||uuhh^^VVSSVV^^iitt}}}}~~xxqqeeZZXXeeooxxþuuxx}}zzÿttddeekkttxxpprrxx~~ooddddhhrr||xxssww~~~~vvpphhiissqqbb``hhuu¸Ļxxhh^^aaggoowwkkccbbaafftt||}}yyvvjjZZNNGGLLVV^^hhttwwkkbbaaffkkvvttffZZWW[[hhwwyyffRRNNVVbboo}}uuttww{{~~zzxxpprr~~zzggXXTT^^kkvvqqgg````bbhhuuuujj[[SSTT^^ggqqyy}}ttppssuuwwzzpp__WWSS[[hhuu||||wweeOO==77@@IISSccqqwwwwpphh[[QQJJFFKKPP]]hhooqqqqll^^PPFFJJVVddss~~nnffnntt~~yyooggccggpp~~ssbbTTOOUU__hhoozzuuhhddggoovv}}ssffYYMMBB>>CCKKWW]]]]ZZMM::((!!++77AAMMWWXXTTQQKKFF@@==;;;;AANNZZ````aaWWGG;;99<<JJVVccoo}}{{rrjjkkppzzuuqquuyyffYY^^llxx{{rrjjffeelluu~~oobbZZ__ggmmvvzzrrtt{{ssjjeejjuuss^^MMPPWWccppxxoohhddddhhrrzzmm^^TTVV``ggoo{{ttssrryy~~ttjjggggoo{{jjZZZZjjxx~~pp^^XX__iirr}}qqee\\WWUU\\hhttyyxxppddSSFFBBGGNNWW``mmxx}}xxmmaa^^aahhpp~~yyrrhh__[[aann||yyggYYNNWW__llvvyyxxuurrww{{xx{{uubbSSZZaammvv}}uummddaahhssyyll\\RRTT^^iirrzz~~uussvv||vvmmffeemm||||llTTEEGGRR\\hhrrzz~~yyuummff[[RRPPUUbbpptteeXXOOTT\\ffrr~~ttrryyuuxxppbbddffkkpp}}vvqqvv}}||sskk``YYZZccqqxx{{ttiiUUBB99DDRR__iirrzzzzwwuuooff\\SSMMQQ[[ll{{wwkk__VVSSZZddmmyy{{}}vvoowwwwvv||||mmhhkktt||vvoooowwtt^^VVXXggttxxmmggcchhuu}}pp__UUVVZZccll{{||ppooqqyywwooiijjrr~~~~iiYY]]gguu}}jjWWQQZZffppxx}}zzttjj\\SSMMMMZZiiuuvvqqddSSGG;;77<<FFOO[[iiuu||xxffXXUUZZ__iiyy||ssllgg]]VVYYccppzz}}||ssbbTTOOVVeeqq||||sskkll{{ttttxx}}lleenn{{sshhaaggyyxxkk^^WWXX__ddoo{{wwkkllqq{{}}ooddddkkvvxxggSSIINN]]iittxx}}~~~~}}xxmmbbXXQQNNWWkk||}}oodd^^``ddjjuuǾyy~~wwkkhhkkqqzzuunnoott}}}}ttii]]SSXX``jjrrrrkk[[FF6644CCPP[[eennqquussoojjbbYYQQKKLLXXhhww}}xxtthh``UURRVV\\eepp}}~~ww||xxpptt~~yyxxrrjjoorr~~}}ttrrvv~~mmYYOORR^^iiqqyywwffYYTT[[mm~~pp``YYUU[[aallxxuuiihhnnttxxnnddccmmzz~~ll``bbllxxIJŹuuccYYaallvv}}ssii\\SSRR\\llzzyyrrii``TTJJDDEEJJQQ]]iivv~~pp\\WWWW^^ddpp~~xxoo^^PPQQZZhhsszzyyqqccSSJJOOXXccmmvv}}yyppiiiiuuyyppnnss~~ssffffppxx~~uugg__ddvvvvmmdd]]WWSS]]eesswwhhddjjrr}}ssff^^bbmmyy||oo]]PPKKSSZZ``cchhqqxx}}}}xxnnddXXQQTTbbuu}}tteeYYSSVV\\hh{{vvyy~~||ssgg^^cchhwwxxllmmoossyyvvhhYYNNMMWWbbllrrqqggVVEE99::EEOOVVYY\\ffnnqqppkkccYYPPJJLL[[kkvvxxrrmmeeZZOOHHJJQQ]]mm{{{{nnllrrww~~{{ttzz~~rrjjnnxx||||}}ssssvv}}vviijjttppbbWW\\bbffnnuu{{||ppdd[[[[ccss{{ooaaVVMMLLPP^^jjzz}}ppffggiioott}}oocc``kkww{{ooccbbggppxx~~Ǽppcc^^aaccffllzzsshhXXNNNNWWffttzzwwppffXXII==88??HHVVgguu}}xxnn\\SSXX\\bbhhyyyyoo]]SSXX``qq||{{vvoogg^^WWWWXXccppuurrxxttkkllssļ}}vvkkcceettrrggddmm||yyppddXXOOLLTTccuummbbaaddiiqqyyhhWWWWddrr{{yyxxwwwwooiiddaaXXLLAADDOOffuu{{xxqqhh__XX__eett~~~~{{rrkkggddccbbddmm||uuyyĺ||ssppnnllssyyvvaaUUYYbbppyy}}{{uugg\\SSOORR\\mm{{||rrff\\UUPPMMIIHHLLPPSSOOQQWW__]]XXUUXXhhuu||||mmbbVVOOOOQQ__qqoo]]ddrrzz{{wwzzzzuuww}}rrmmvvyyww~~yynnhhtt~~ttiiffeeddccdddd``XXSSPPWWeeppqqkkffqqzz{{oo__VVVVZZaannxx~~zzxxssllffaaaaffss}}||}}{{||zzppkkoouussjj^^UUPPRRUUZZ``jjoojjaa]]\\bbbb\\SSMMRR^^hhnnlljjffcc]]\\^^ggmmjjcc[[[[ccjjoonniieeiinnssrrrrrrppkkggffkkqqvvttppmmssyy}}}}vvooiijjkknnxx||||uuzz~~||zzzz||~~yyssttttssoolljjmmppvvzz~~zzuuqqnnoossttttrrooqqww~~xxssqqrrvv||}}zzzzyyxxwwww{{~~~~{{ssmmhhhhiillssxx{{yyxxuussttuuxxwwvvttssuuwwzzyywwuuww{{}}{{{{{{yyyy||}}{{xxzz||~~}}}}{{}}}}~~}}{{yyzz{{}}~~~~~~||||{{{{~~~~~~~~}}yynn]]SSOOOOZZddllrrvv}}||xxuussoooommmmoorrrrrrookkiiggiijjmmrrww{{yyxxttssrrrrppppoorrwwwwrrhhbbeehhnntt{{wwiiddddkkxx||xxxxxxxxvvvvvvvvvvuuppppmmmmnnppqqqqqqqqppkkaaVVPPMMRRYY__ccddddddddddddhhmmrrrrrrrryyzzxxttttttttqqkkcc\\``ll{{yyhh^^YYYY]]ddpp{{yy{{~~~~~~}}wwqqqqtt||zzoohhbbhhooxx~~zzzz~~{{wwoojjccaa^^[[[[^^eelllljjbbXXKKCCCCMM]]mmwwyyuuqqrrttzz~~}}~~zzssooooyyyylliillxx}}}}yy~~rreeeehhrr}}{{~~||uummeeaaccll}}zziiZZQQQQXXbbnnuu~~}}xxttxx~~~~zzvvvvvvttrrppllllmmuuxxzzvvmm^^TTPPWWeerr{{~~{{rroojj{{yyhhcclltt}}yyuuzzzz}}||wwjjXX]]uuuu}}ww}}}}zzooooggoo||xxqqqqkkhhhh]]LLLLLLLLXXXXUU``YYYYYYRRPPNNHHEEDD@@CC??5599993300++////%%%% "" 33333388GG::::::----11FFNN[[mmmmhhhh``VVVVJJQQQQQQXX[[]]]]hhss~~zzzzrrrrXX33IIӾkk̲ɷ}}~~ppTT@@4466BBJJOOHH@@..,,++,,)) !!!!-- ""++""++''%%   --;;// ""((..44::EE<<7733<<EE;;??LLKKOOOO``nn__\\ZZaaff__ZZWWUUWWZZ``]]^^nn||qqZZZZZZhhtt~~vvyy}}vvkkhhjj{{zzppccYYaahhmmvvwwww{{yywwttrrrrsskk]]\\\\__ddiiuu}}ssjj^^ZZWWIICCAADDHHDDJJKKIIKKNNDD==<<==;;::OOZZ]]``ccooqqssttssww}}yy~~{{{{~~~~||zzssllffiiuuyyii]]XXddss~~~~rrggcchhllppnnllppss~~~~yyzz~~üǶ»ƿνǼzzrrqqttrrttvvyy{{zzwwsstttt||~~||uuppllnnoorrvvxxttsskkbbRRIIPP[[eemmwwwwkk\\MMAA<<EEQQ\\hhoonnnnllkkjjffeeggaaTTOOQQSSYYddoonnkk__VVKKDD@@::88//))**33888822..,,$$""''((((((##!! !!  $$  &&////667799<<@@CCDD;;66AAGGQQZZbbbbccdd\\VVQQQQMMMMMMNNMMLLPPTTUUWWXXYYYYTTKKFFCCGGLLUU__hhjjkkjjllmmnnqqvvzzyyuuvvwwvvttqqoorr}}{{rrjjeeaaaahhrrzz}}wwjj__\\[[``hhww~~||}}||{{zzzz{{~~~~yyssooqqvv{{~~ݾ{{ppkkhhppyy~~}}zz{{nnjjhhlluu}}~~rree[[UULLEEAA>><<;;==>>==997766774400''!!""$$''((**--1155::>>==>>CCIINNMMEE@@8877::AAIIRRVVSSKKCC<<00,,**,,33::DDNNQQMMCC66,,&&##!!((44@@NNWWXXYYRROOQQUU[[aaaa\\WWUU[[aahhqqzzzzrrgg]]YYVVTTTTSSQQOOPPRRVV[[[[WWTTQQNNLLGGGGKKMMRRZZbbjjmmnnoorrssxx}}}}yyvvxxzzxxppppoouu~~xxqqmmkkkkrr~~ĺ~~xxzz}}~~xxssoolljjkkllllllkkggeeddbb\\WWSSQQUUYY``ffiillnnqqttvvxxyyxxvvssqqrrww||}}sskkiillnnnnqquuzz||{{uuqqhh``[[ZZ]]bbiiqqxx||||}}zz||~~~~{{vvttrrqqoommmmoopplljjffcc``[[WWTTRRRRVVYY[[XXVVXX\\\\^^``ddcc``VVOOQQRRWW\\bbffggaaXXNNBB==<<;;>>@@BBGGLLQQPPII@@7711....3388>>GGPPWW[[YYXXWWZZ__kkqqqqkkffhhoovv{{~~xxssnnllkklliiiiiijjmmppppmmllkkggccddffggkkppssww{{~~xxrrqqqqssyy||||{{wwssttuuxx||zzuuxx}}||wwoohhddccbbddhhkkoossvvxxxxyyyy}}~~{{~~||yywwttqqrrttwwzz~~||xxyy{{}}}}}}||~~||zzssllcc\\XX[[]]aaddhhllnnnnlliihhlloossvvwwttqqllhhjjnnqquuzzzzwwooiiaa\\YYTTPPNNNNPPRRRRNNNNLLLLLLKKEEAA????AAHHQQXX__hhkkkkjjggeeeeeellrrzz~~||uuooqqssyyyyuuqqnnnnppttyy}}||wwttrrooiiddaaaaeeiimmqquuvvwwttqqoonnnnmmmmqqww{{{{zzwwqqiiddaa``aaccddccbbaa``aa^^YYQQJJEEGGJJMMPPPPPPSSVVXXXXZZ[[^^aaffmmttvvrrllhhffiiooyy}}wwookkhhggffffggjjmmnnkkiiiillllhh``\\YYZZ``ggqqzz||zzzz||}}}}||zzzz||zzssllffbbddffllnnmmmmmmkkkkjjiiiillppxxyyqqnnppyyyyqqjjggffeeddffiilljjggeeddcccc\\XXRRPPSS^^ggmmrrvvvvttrrooppttvvwwyyzzsspptt{{~~}}~~{{xxssllhheehhmmrrwwvvrroonnnnnnrruuzz~~xxxx~~~~{{zz~~~~||yyxxyy{{~~zzzz||ttllffccaa``aaaa``````````__^^ZZRRHHDDEEJJRR__iillmmoolliihhhhjjmmppuuzz}}zzvvttsssswwzz}}}}||{{zzuuqqllkkkkmmtt{{}}}}xxuuuuwwyy{{||ttjjbb__ccgguu}}yyuuqqpppprrssvvxx||}}||zzvvrrnnjjjjkkkkjjiiggdd``]][[ZZWWUUUUTTTTWW[[\\\\YYWWUUUUVVXX]]aaggnnuuxxwwttookkkknnvv}}~~wwqqmmggbbaaaaaabb__^^__eehhjjggdd\\TTKKJJPPYYeeoovvyyxxvvttssssssssxx}}||||~~{{xxttooiiffddffllssvvwwttrrppoonnnnppvv||yyxx~~~~wwrrpppprrssssrrvvyy||||vvnnee^^XXZZbbnnxx}}xxuuww{{||}}~~}}zzyyxxxxzz||~~~~{{ttjjbb``eejjsszz||zzxxxxxxvvuuttvvyy}}~~||xxvvuuttttttrrppoonnlllliiff``\\\\aaeehheeccbbccddffffiimmuu||zz~~zzrrrrvv}}}}{{zz}}||{{~~~~||yyvvttssrrppoosswwzzvvrrkkff__[[\\``ggmmrrwwxxyyyyyyzzxxww{{~~~~}}~~yyrrllllppttyy}}{{xxqqnnmmppuuzz~~~~zzvvttssvvrrrroonnppnnkkggcceeddccccddddddeeddccbbcchhjjkkooww}}~~{{||~~~~zzxxvvyy||}}wwuuttssvv}}}}yyyyzzzzyyxxxxyy{{~~}}{{xxwwrroonnmmooqqrrttssssppnnlljjiikknnqqooppppkkddZZSSWW^^hhuuzzqqmmllooqqooppttyy}}~~~~uunnjjllrrxx~~||uummjjggffffggjjnnppqqmmiieeddccccddddddeeggjjmmpprrttttssssww{{xxppjjgghhjjiigghhffcc[[UUKKEECCHHRR]]ggppttssrrppoorrttxxzz||}}~~~~~~}}||xxwwssrrrrrrnnhhaa\\ZZ\\aahhnnpplljjgghhssvvjjkkww||yyyyzzxxvvvvyyxxqqkkiippvvyyttmmhhhhqqyyxxwwzzvvuunnmmpp||}}yyuuoojjiijjnnpprrrrmmeeUUOOOO__ss~~yyzzwwssvv||}}ttrrppqqmmggeeddddhhkklljjiijjjjpp||{{uuttssrrrrqqqqppttuunngg\\YY^^eettƿyymmddffqqzzqqllllqqxxyyvvttrrssnnccVVOOSS]]iittzz{{vvpphh^^UURRRRVVWWXXVVVV\\aaddeeccaa\\UUMMHHHHJJOOOOJJDD????@@CCGGQQXX__ddooxx||rree^^]]cchhmmmmhheebbZZOOFF@@??FFMMXXbbjjkkkkeeaaaaeeiinnrrvvyy~~zzrrpprrzztthh````ddhhjjjjiijjhhffccbbbbffhhllrrxx||{{wwoojjhhmmrrrrqqqquuxxwwvvvvwwyy{{zzqqjjggjjqqww}}}}yyttrrqqqqvv||xxrrmmpp]]//00MMff{{rrccWWttɸß``KKHHGG\\mmllyyggFF77VVppvvnnZZ??DDRR}}ppeeaa__ZZVVffttkkSSXXjjwwaajjqqxxii]]zz{{iixxffqqzzyyooxxwwxxffwwzzzz{{{{{{||~~~~zzkk]]VVYYffnnrrttoo||iikkllffhhooppuuvvvvpphhXX[[]]eeww}}}}{{yy~~~~ssYYQQTTOORRooppqqxxxxjjffppqqkkddhhzz{{qq{{ttnnoopptt{{||ww}}rriiffccaajjnn||pphhjjkk~~~~~~vvssssqq}}{{ppZZ\\sswwpp~~||||uuvvppffccvvwwnnbbQQHHLLTTVVYYXXaaqqddZZ\\^^``XXTTTTaarrssooppqqrr~~uurrssttuuiirr~~vvqqppkk__VVbbyyyyzz{{ttttoommxx{{ppqq{{~~||||||qqkk]]UU\\rryyttuuvvvvwwrrsssszz{{yyqqrreebbddiikkww~~~~qqbbddZZUUXXZZ\\jjssttooppll``bbdd^^``]]__jjttrrssxxttoohhiimmllmmllbb``[[]]\\YYWWMMCC;;@@DDUUeeggee``\\WWRRUUXXWWWWZZ]]__ffiicc\\YYUUUUZZaaeehhmmeeddeebbccnnyymmggoo{{{{{{{{ppmmnnvvppkkllppuuzzzzzzooppgg]]__aaffggkkjjbbWWGG33**//4499==FFIICCFFEECCAA==??AACCFFIIHHJJUUbb^^WWZZ\\ZZUUZZ^^aa[[XXZZ__hhee[[UUQQQQVVffkk{{uuffhhiiffhhiikktt}}ppiijjkkmmpp{{~~{{yyzzssttvv||~~xxyyyyvv{{yyttssooppvv||~~zzooddbbddbb__aakkrrwwzzzzvvyy||yyyyzz||xxkk``^^]]bbddhhllkkee]]XX[[ZZUUVVYYYY\\__aajjttxxzzzzttqqrrssrrrrzz}}xxmmddbbddkkss~~}}yyyy{{}}yyttxxzzjjaacc``bbkkrrssttrrqqooppooppooiijjjjggiihhjjllvvyywwuuvvuuuuvvoonnss}}qqggffeeffssttkkhhmmrr}}øzzqqbb[[XXVVTTYY]]bb^^VVNNIIKKKKJJMMRRXX[[WWXXbbjj^^UUMMIIEEMMUUWWWWWW]]cchhlleeUUIIBBFFVVcckkiijjkkmmjjhhjjee____iiss||zzttppllllqqvvzzyyzz||yy~~||yy~~{{qqjjnnuu{{{{zzvvrrnnhhffhhhhggffhhkknnkkee__]][[ZZ^^bbeejjssyyyyyyzzuujjggkkwwyy||ww}}zzjjZZPPYYggss||{{uuppnnlluuxxoollllnnsszzľŹwwii``[[XX^^ddiirryyqqjjeebb__aa]]]]]]^^__aahhrr{{||{{xxuussoohh]]VV[[ggoovvrrddVVLLBBAAHHTT__eeddeeffddbb^^XXTTSSXXllww||||qqii]]TTVV\\eennww||}}||{{zzxxwwxx¿wwkkeeeeiimmqqssoojj__UUMMIIIIHHHHIIIIJJLLMMQQSSXX[[WWSSMMLLOOUU\\eejjiillkkggddeeffhhkkrryy~~}}rriiffffkkqq~~}}~~~~{{zzyyyyqqllkkkkkkmmooppkkee``]][[WWWWZZ__ffllqqttuuvvxx{{~~}}zzwwttqqqqqqmmggeeeeffggddaa````ddggkkllmmnnrrqqqqvvxxzz{{wwuussrrssyy~~}}xxwwyyyywwuuttttuuvvvvssqqrrnnkkiikknnsswwyyzzyywwssnnkkhheeddffiimmttttrroommkkjjlloorrssuuxxyyyyyyxxwwxx}}~~}}||vvppmmkkjjeeaa__]]ZZTTMMHHDDCCAAAA@@@@>>==??BBCCDDCCEEGGIIKKMMNNPPQQNNLLKKMMNNMMNNOOVVXXZZ\\[[ZZ^^bbeeggjjnnnnkkhhiihhhhiikkppuuyy{{yyuurrppkkgghhmmmmiieeddeeffee``aa``__^^ZZ[[]]__aaaa````aa``bbddiijjkkkkmmnnnnnnoonnmmmmooqqrrssvvxxyywwuuppnnppssssuuzz~~zzwwyyzz||{{{{||xxvvrrssttvvvvvvuussppmmmmllkkmmnnnnnnnnllkkllmmnnnnmmnnqqssssssssssqqookkmmrrttqqqqqqssww~~~~}}zzwwvvuuuuuuttttrrppnnkkffbb``````````^^ZZXXVVWWZZ``ccffeeeeccccaa^^VVTTRROOOOQQQQQQOONNPPRRSSRRQQQQQQNNOORRUUYYYYYYXXXX[[__bbeeffhhjjjjjjmmoommjjjjllrrvvuurrssww{{~~}}||{{||~~zzuuqqoolljjdd__[[YYVVUUTTSSNNJJKKMMNNOONNOOQQRRSSTTUUUUUUWWYYZZ[[\\^^``cceeggjjkkmmkkllhhhhiikknnppssuuuuwwwwwwvvvvyy||}}{{zzyyyyyyyyyyyyyyxxzz~~}}{{xxxx||zzyywwuussuuttqqoommhhbb__^^aaccbbccccddeeiikknnrruuvvzz||zzuurrrrssqqnnkkhhhhhhhhkkllkkjjhhffffiilllllllllllloossvvyy||}}zzwwwwvvwwrrllhhffddccccccccddddddeeffccbbccccccbb__ZZXXXX[[__aabbccccccddeeeeeeggkknnmmkkiiggffffgghhkkmmoorruuwwwwxxyy{{{{{{yyxxxxzzyyxxxxwwxxyyzzxx{{}}yyttjjbb\\]]^^\\YYVVSSRROOMMKKKKIIIIKKOOSSUUUUUUUUVVXXZZ\\^^``dddd``]][[ZZ[[[[]]]]______^^^^``bbccbbaaddeehhiioorruuttttttuuuuvvyy}}~~}}{{yywwyyzzzzyyyy||~~{{wwttuuvvwwvvrrnnmmlljjiijjiihhggjjmmoooooopprrssrrqqqqrrrrookkjjjjkkmmnnpprrssrrmmiiffeeeehhkknnppppkkhhffiikknnqqssvvxxwwvvuuttssssttuuxxzz}}~~~~}}}}}}~~}}||{{zzxxvvrrrrssttssoonnmmllmmnnssuussqqnnmmmmnnooqquuxxzz}}}}||zzxxwwssppooqqrrssrrrrssttttrroooopprrssttrrvvzz}}}}yyvvuuttvvwwwwwwwwssrrrrttuuvvwwxxwwzz||{{ssoolljjiihhkkllmmmmkkkkkknnnnoooopprrrrrroonnooooppssuuwwxxyy{{||||||{{{{zzyyxxvvxxzz}}~~}}||{{||~~}}}}}}{{yyyywwuussssttttuuttrrqqoommmmllllmmnnooqqssrrssrrttuuwwxxyyyy||~~~~}}}}||zz{{||}}~~yywwvvvvvvvvuuttuuyy||||wwttqqrruuwwwwyy{{||||{{{{||}}}}||{{||}}||{{wwuuttssssssssttssuussssssssuuxxxx{{~~}}zzyyyyyyxxvvrrppqqqqrrqqttssssqqnnjjggeeffffffggggffggiillmmppssuuvvwwwwyy{{~~~~}}}}}}{{{{{{||}}||||||zzxxvvttvvxxyyvvssppnnmmmmkkmmnnpprrssqqoooorrvvyyyyyyyyzz{{yywwvvwwzzzz{{{{zzxxxxyyzz{{||}}}}{{zzyyzz||||||}}~~~~~~~~~~}}}}~~~~||zzyywwrroommpptt{{~~{{yyxxxxxxwwvvuurrpprrssuuxxyyyyxxxxxxwwttrrppssttuuvvvvvvuussssttvvwwwwyy{{~~||yyxxwwzz}}~~||||{{zz{{~~}}{{}}||yyuuuussvvvv{{{{{{{{zzwwvvuuuuuuvvwwxxxxxxvvvvttttrrrrrrrrrrppnnmmjjiiggiikknnnnoooonnnnnnppqquuuuuuuussssoorrsstt||{{{{xxxx||||xxssmmggaa^^__ccddgghhggbb__WWTTOOOOOOQQNNMMJJGGEEAA::44,,''##""""""))//,,**,,..,,((((++//335599??HHHHHHUUQQUU^^aaiiiimmqq}}ffVVȹѕᩩɮ¹~~~~zzwwuuppll``UUGG;;BBFFOO\\\\MMMM<<7777//,,!!!!       ''  """"%%++++''--::::>>44++++4444--//>>MMMMIIIIEEEEEECC??AAIITTkk{{mm``ZZUUUUYYYY``````bbkkiibbbbooookkggddddddkkzzzzrrrruu{{~~~~~~||{{yy}}{{xxxxuuuuuuuuxxxxxxxxyyyyvvttqqttqqjj````eewwwwqqlldd``ccjjrrwwwwwwttjjccccppppppppss~~~~{{ž~~{{wwvvnnnnqqqqoooommmmjjjjhhffee````````^^UURRRROOOOIIIIHHEEFFEE@@@@;;9999::;;8877443333----//333333----........223322000033222200******//112222..3322,,--,,**....////11116622..//////11..//1111113366999999555555555588>>@@BBAA==????CCEEFFBB::::AAGGIIIIFFFFDD??@@FFJJJJMMKKKKJJHHNNPPRRVVVVSSPPPPTTZZ^^^^^^]]]]______]][[[[[[ZZ\\__ccddccaa^^^^^^]]aaaaaa__^^``````____aa``aaaaaabbaaaaaa^^__``````ffhhlllllliijjhhffffeeiiiijjjjmmmmiiiiiikkjjhhjjiihhjjjjjjiiiikknnpprrssssooppssssssssuuzz}}}}}}}}||{{zzwwww{{{{~~{{yywwzz{{~~||{{xxxxxxvvssrrrrqqqqqqlllllllllljjiihhhhhhhhggggeeddccccccaaaa````aaaa]]\\XXXXYYZZ[[[[^^ZZWWVVWWXX[[[[[[ZZZZZZZZ\\____________bbbbbbbb``aaaaaaeeeeggbbaabbccddddeeffffiiiiiihhhhffhhhhjjjjnnooookkkkiiggeeggjjmmllkkjjjjjjjjkkkkhhhhiiiikkkkiiiihhiikkkkkkjjjjiijjjjjjjjjjjjjjkkllmmllnnnnnnlloopppppprrttxxxxwwttuuuuvvuuuuxxyyyyzz{{zz{{{{}}}}{{{{||||{{}}~~}}||||}}~~}}||||zzyyvvrrrrssrruuuussssssttttssrrrrrrrrqqqqssqqllllmmmmppqqooooooooqqqqoonnnnmmmmmmkkjjhheeggggiiiiiiiihhffddeeeebbaaaaaa``````ccddeeeeddccccccddddaa____]]]]^^^^^^__``aaaaaa^^^^]]ZZZZ\\]]^^^^^^]]^^__aabbbbaaddddccccccddddeeggeeeeeeeeccccbbbbbbbbbbddeeeeccaaaabbbbffeeffffiijjjjgggggghhjjmmmmmmmmooqqqqqqrrrruuww}}~~~~||||||}}~~}}{{||}}~~zz{{}}~~~~~~||~~~~~~||}}}}}}||{{{{zzzzzzzzxxwwwwwwyyxxyyyywwuurrqqqqppppqqqqqqqqrrrrppmmmmnnooqqqqqqqqnnmmjjggeeeeggjjmmllkkiihhffhhhhjjjjllkkllkkllllllkkkkjjiikknnqqssrrssssssssssppnnnnooooooqqooqqrrqqttsssspppprrttvvwwxxxxxxxxwwxxxxyyyy{{||~~~~||{{zzzz{{{{{{{{zzzzzzzzxxwwvvwwwwyyyyzzyyyywwxxwwvvuuttssssqqqqssssqqoonnnnmmmmlljjjjjjiiiiiiiiiijjjjiiiikkkkkkiiiiiiiijjkkmmooqqqqqqqqqqppnnnnoonnnnllmmnnnnnnnnmmmmooppqqqqqqoommmmmmnnnnnnpprrttssssssssssssqqqqssuuuuxxzzzzzzyywwuuuuuuuuuuuuuuuuuuuuvvrrrrooooqqrrrrrrqqqqrrssrrqqoooonnooqqqqqqssssuuvvvvvvvvvvwwxxzzxxxxwwwwuuvvvvwwuuuussttvvvvwwxxvvttppqqqqrrrruuvvxxzz}}~~~~{{}}~~~~~~}}}}{{{{{{zzyyxxwwwwuuuuuuuuuuuuttttttuuuuvvwwyyyy||||||{{{{{{{{||}}}}||||~~~~}}||||||||||}}~~}}~~~~}}{{{{{{{{{{}}}}~~}}}}||||||{{||||||||}}~~~~~~}}}}}}}}}}}}}}{{zzzzzzzz||~~~~~~~~{{||{{{{{{zzzzzzzz{{||||||{{{{yyyyyyyyyyxxyyvvvvssssrrrrrrttrrrrnnnnkkkkkkkkkkkkkkkkllmmkkllllkkmmnnnnoonnmmmmnnnnoooooonnnnnnoooooooonnllkkjjkkkkllllllllkkkkkkkkllllllkkllkkkkiijjjjllnnnnppppqqqqqqssssssssssssssssssssttttuuuuvvvvxxxxzzzzzzxxwwttttuuxxxxzzzzzzzz{{||||}}~~~~}}}}}}||~~}}~~~~}}{{zzyyxxyyzzzzzzxxwwwwwwxxxxyyyyzzzz{{||||||||||}}}}}}}}}}~~~~}}}}~~}}}}}}}}}}}}}}}}||||||}}}}}}}}}}~~~~~~~~~~~~~~||||||||}}}}}}||||{{zz{{zzzzyyyyyyyyyyyyxxxxwwwwwwyyyy{{zzzzyyyyxxyyxxxxxxzz{{{{}}}}~~~~~~~~~~~~}}}}}}}}~~}}}}}}~~~~~~}}{{yyyyyyzz{{||||}}~~~~~~}}}}}}}}~~~~}}}}||}}}}}}}}~~~~~~}}}}zzzzwwwwwwwwyyxxwwwwuuuuttttttttssssssssssssssssrrrrttttuuuuuuuuuuuuvvvvvvvvvvvvvvwwwwxxxxyywwwwwwvvttttssssrrssrrrrqqoonnnnmmnnnnooooooppppppqqppqqpppppprrssuuttuuuuvvvvvvttttssssssssssssssssssssttttuuuuuuwwvvvvuuuuuuuuuuuuttvvvvwwwwxxxxxxxxxxzzzz{{{{||||||}}{{{{zzzzzzzzzzzz{{{{}}}}}}||{{{{yyxxxxwwuuvvvvwwwwxxyy{{}}}}~~~~~~~~~~~~~~~~||||{{||||||||||{{zzzzyyzzzzzz{{{{}}}}}}||||||||||{{{{}}||||||||||~~~~}}{{{{{{||||||||||{{{{yyyyxxyyyyyyzzzzyyyyxxyyxxyyyyxxwwvvvvvvvvvvwwxxxxzzzz{{{{{{zzyyxxyyxxyyyyyyyyyyyyzzyyzzyyxxwwwwwwvvttttssssrrrrrrttuuvvuuuuuuuuwwwwwwwwvvvvvvwwwwyyzz{{{{||{{{{xxwwwwwwwwxxxxxxxxyyzzzzzzyyxxwwwwwwwwxxvvvvvvuuuuuuuuuuuuwwyyzz||||||||zz{{{{||}}}}}}}}~~~~}}{{zzyyssssrrooiiggggbbccaaaaaaaaaaaaaabbbbbbeeeeffggllppnnqqqqqqyyyyyy{{||||~~~~~~}}}}||zz||~~xxzz||xxwwwwttvvuuuuuussssuuuuuuvvyyyyyy}}~~~~~~}}}}}}||{{{{yyzz||zzzz||||zzzz{{{{{{{{xxwwxxttuuuuwwyyyyzz||}}}}}}zzzz||xxwwzzwwvvvvvvttttttttttttttssrrttssqqrrssqqppppqqqqoopprrrrrrssssttuuuuvvwwyyxxxxyyyyxxxxzzzzzzzz||~~~~~~||~~~~~~~~~~~~||{{yyzz}}{{{{}}}}{{||zzzzzzzz}}||||{{{{}}}}||||{{zzyyyyxxvvvvuuuuuuwwxxvvwwyyyywwwwvvrrrrqqssssssssssttvvvvvvwwwwxxyy||{{{{{{{{{{yy{{||}}||||zzwwttttttssrrppppppmmooooppooqqqqttssrrqqqqqqqqrrttuuvvxxxxxxyyyyzz||||{{{{yyyyyyyyyyyyzz{{||~~~~~~~~~~}}{{{{{{{{}}||}}}}}}||||||||{{||zzzzzz||}}~~~~}}{{}}{{||}}}}}}}}}}}}||||||||||~~~~~~~~}}}}}}}}}}}}}}||||||||}}~~}}~~~~}}||yyyywwwwwwxxyyzzzz{{{{{{{{||}}~~~~{{{{yyyyyy{{{{}}~~}}{{zzwwvvwwvvttvvuuvvvvwwvvvvuussssrrrrssssssttrrssttttwwwwwwwwyyzz{{||}}}}}}}}}}~~~~~~{{||||||||}}zz{{{{yyyyxxwwvvvvwwxxyyzz{{{{{{{{||||}}}}~~~~}}}}}}}}~~~~}}}}}}}}}}~~~~}}~~}}}}||||{{zzzzzzzzzzxxuurrqqqqrrrrssttssssssqqqqrrssttttuuuuuuuuttuurrrrrrssttuuuuvvvvvvvvvvwwxxxxxxyyyyyyyyzzzz{{{{}}~~~~~~~~~~~~~~}}}}||||||}}}}}}}}||||||}}}}}}||||{{{{||{{}}||||||||||{{{{{{zzyyyyzzzzzzzzzzzzyywwwwwwxxxxyyzzzz{{{{}}}}}}~~~~~~~~~~~~~~~~~~~~}}}}}}||zzzzzzyy||{{{{{{zzzzzzzzzzzz{{zzzzyyyyzzzz{{||{{}}}}}}~~~~~~~~~~~~~~~~||||{{{{||}}||{{{{zzzzzzzzzzxxxxyyzzyyyyyyyyyyxxxxxxxxxxwwwwvvwwwwxxyyyyyyyyzzzz{{{{||||||||||||{{{{{{{{||}}}}~~~~~~~~~~}}}}}}}}~~~~||||{{}}||}}||||||||{{{{||||||||||||{{}}}}}}}}}}}}~~~~~~~~~~}}}}||||zzzzyyzzyyyyxxxxxxxxvvvvvvwwvvxxxxyyyyyyyyxxxxxxxxzzzzzzzzzzyyyyxxxxxxyyzz||}}~~~~~~~~~~~~~~~~}}}}~~~~}}}}{{||||||~~~~~~||{{zzyyyyyyzzzzzzzz{{{{{{zzzzyyyyyyyyyy{{{{||||||{{{{{{{{{{||}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}||||zzzz{{{{{{{{zzyyzzyy{{yyyyyyyyyyyyyyxxxxxxxxyyyyzzzzzz{{{{{{{{{{{{{{||||||~~~~}}}}}}}}~~~~~~}}}}}}}}}}}}}}}}}}||{{{{zzzz{{||||~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}||||||}}}}}}||||{{zzzzyyyyxxxxwwwwwwxxxxxxwwxxwwwwwwwwwwvvvvuuuuvvvvwwwwwwwwxxxxxxyyyyzzzzzzzzzz||{{||{{||{{}}||}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~||||||||||||||||||||||||||{{zzzzwwwwvvwwwwxxxxxxxxxxxxxxxxxxwwwwwwxxxxyyyyyyzzzzzz{{||~~~~~~~~}}}}}}}}}}}}}}}}~~~~~~}}}}}}}}||}}{{}}||||||||zzzzyyyyyyzzzzzzzzzzzzzzzzzzzzyyyyzzyyzzzzzzzz{{zzzzzzzz{{{{{{{{{{}}}}~~~~~~~~~~}}~~~~~~||{{{{zz{{{{||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||~~}}~~~~~~~~~~~~~~}}}}}}}}||||||}}}}}}||{{{{zzzz{{{{}}}}~~}}}}}}}}}}}}}}}}||}}||}}||}}||||||||}}}}}}}}}}}}||||{{{{{{||||||{{zzzzzz{{||||}}}}~~}}||||||||||||}}}}~~~~}}}}}}}}}}||||||||}}}}}}}}}}||||||}}}}||||}}||||||||}}}}}}}}}}}}~~~~~~~~~~}}}}}}}}~~~~~~~~~~}}}}||{{{{zzzzzzzzzzzzzzzzzzxxxxwwwwwwvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwvvvvuuuuuuuuvvvvwwwwxxxxzz{{{{{{{{{{{{{{{{{{}}}}}}||||||}}}}~~~~~~}}}}||||||||||||||}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}~~~~~~~~}}||||{{{{{{{{{{{{||||||||||}}||}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}||||||||||||||{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||}}}}}}||}}||}}}}}}}}}}}}~~~~~~~~~~~~}}}}||||||{{{{{{||{{{{zz{{{{{{{{{{||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||||zzzzzzzzzzzzzz{{{{{{zzzzyyyyxxyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyxxxxxxxxxxxxyyyyyyyyyyyyxxyywwyywwxxxxxxxxxxyyzz{{{{{{{{{{{{{{||||||||}}}}}}}}}}}}~~~~~~}}}}||||||||||||||||||{{{{{{{{{{{{{{{{{{zzzzzz{{{{{{||}}}}}}}}}}}}}}}}}}}}~~~~}}}}}}}}||||{{{{zz{{zzzzzzzz{{{{zzzzyyyyyyyyyyyyyyxxxxyyyyzzzz{{zzzzzzzz{{{{||||}}}}}}~~~~~~~~~~~~~~~~}}}}||}}||||}}||||{{zzzzyyyyyyxxxxxxxxxxyyyyyyyyxxxxwwwwwwwwwwwwvvvvvvvvvvvvvvvvwwwwwwwwxxxxxxxxwwuuuuttttttttttuuuuttttttttssssssssssttssssttttttvvvvvvwwwwxxyyyyzzzzzz{{{{{{||||||||||}}}}}}~~~~~~}}~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}~~~~~~}}}}||||||||||{{{{zzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyzzzzyyyy||ssttzz{{{{{{||vv||zzzzsszzzz{{wwyyyyuuxxyy}}}}}}xxxx~~||yy}}zz~~||~~{{{{||||}}yy~~{{~~~~uu~~yy{{}}}}~~sskkttiijjaa__aaOORRTTWWZZMMPPWW]]VVRRZZVVXX^^aaaacc]]bbjjhhkkllppqqssppqqttooxxxxww}}ssppwwooppxxxxssqq||yy||}}xx}}zz}}zzzzxx~~{{llssoollqqeerrooppttkkllkk``bbYY[[cceegg``eemmhhbbbbbbVVYYIIAAJJNN==AAEE>>BB>>77??77886655**//&&,,556655116644++001166--..331199;;33<<==>>??<<;;@@IIKKJJHHNNWW]]hhjjssmmiiqquuvv__ÿ¾ޮrrԺńԡyyoouuqqrrvvppccWWII>>0055>>OORRKK>>44++$$##     %%!!""####**((8899++&&''..//11;;AA::,,**//77))))//??AA@@<<99::6677774455??OO^^[[QQFFDDEEHHGGGGJJMMNNRRZZRRQQYY^^]]__[[\\^^aahhssppqqddggttyyxx||{{yy{{}}yy{{~~}}}}{{xxwwyyxxyyvvwwwwuuww{{yyxxxx||||ttvvuuuummccbbffqqvvxxttmmhheeiiqquutt{{yyrrkkhhppvvttuuuu||||wwxxyyzz~~ſþ||{{xxwwxxyyuurrnnnnjjiiffddddbb``__\\\\XXQQJJNNKKIIHHEECCCC==;;;;;;::99667755220000000000--0000,,**))&&&&''&&''**++&&**))**))''(($$%%)),,..00----2211--//220000005599888899887777;;<<????@@AABB@@DDDDIIJJFFEEEEBBCCHHJJLLOOKKKKIIIIMMRRQQRRIIHHHHJJLLQQPPMMKKHHIIJJMMNNLLLLJJKKGGJJMMPPOOOOOOIIJJLLPPSSRRRRQQQQRRSSSSSSRRRRRRPPPPPPSSXXYYXXWWSSRRSSWW^^\\ZZVVUUUUUUUUUUYYXXYYZZXX\\]]]]____aacchhhhhhllmmmmjjjjnnppppppmmoopprrqqttuuuuppqqqqqqqqrrqqrrqqssssqqoorrttxxzzzzyyuuuuuuwwwwxx{{yyyyxxvvuuvvwwxxvvrrvvvv{{||||zzxxyyzz||||||||}}}}{{zzwwuussssssoommjjiijjhhffdd______]]^^^^\\UUTTQQRRRRRRPPOOMMKKLLLLIIFFDDEEEECCCCDDDDDD@@>>>>@@@@BBAADDBBBBDDEEGGFFCCBBBBGGGGGGFFEEEEFFIIHHKKNNNNOOPPPPPPPPPPSSZZZZXXXXXX\\__aa````````bbbbffffddggiikkkkjjiijjjjjjkkkkkkmmllllllllmmppppnnnnnnoorrooppppssuuwwwwxxxxyyxxxxyy||~~~~~~~~~~}}||{{{{||||}}~~~~||}}}}}}}}}}||{{}}}}||yyzzyyxxwwwwwwwwvvssrrrrssssrrppkkkkkklllllljjiiiikkjjggeeddccccddffeeeeccbbaabbbbbbbbccccbb``````aaddddeeeeddddbbbbbbbbbbccddeecceeddccaaccddccccbb``__________^^^^^^``bbaabbaabbbbbbbb``````aaaaccccbbbbccccccbb``````aaeeccccaa____aabbbb``````bbbbaa``````bbccccaaaaaaaaaabbbbccaaaaaaccbbbbbbddddggggggggggggggiiiiiikkllnnnnnnooqqqqssttvvwwyyyyyyyyyy{{~~~~~~~~||||{{{{yyyyyyyyyywwvvwwvvvvvvvvuussppqqqqrrrrrrppppppppppqqoonnnnnnnnnnnnnnnnnnnnnnnnnnnnppppqqqqqqrrrrssssttttuuuuvvvvwwwwwwwwvvwwwwwwyyyyyywwxxyyzz{{{{{{yyyy{{zzyy{{xxxxxxyyxxyyzzxxuuttuuvvvvuuvvuuuuuuvvvvuuuussssssssuuuussqqqqpprrrrrrrrrrqqoorrrrrrrrrrrrrrssuurrrrqqrrrrrrrrrrqqqqqqrrrrrrrrssssssssuuuuttuuuuvvvvwwxxxxxxxxyyyyzzyyzzzzxxxxyyyyzzyywwxxzzyyyyxxwwvvwwwwxxuuuuuuuurrrrssssssqqqqqqoooollmmmmnnmmmmkkkkkkkkiihhhhhhhhhhiiiiiiiiffffffhhhhiijjjjkkkkkkllmmnnnnooppppppqqrrttttttttttuuttuuvvvvvvvvvvvvvvwwzzyyyyxx{{{{{{||}}}}||||~~~~}}||||||}}~~~~~~}}}}}}}}||||{{{{{{zzzzyyyyvvwwxxxxxxwwwwwwvvvvvvvvuuuussuuttuuuuuussttttvvxxwwvvvvvvvvwwzzzzyyxxxxzz||||||||||||||~~~~~~}}||||{{{{{{{{zzxxxxxxwwwwuuvvvvvvvvvvuuttttssssrrrrrrssssssttuuuuvvuuuuvvvvwwvvwwwwxxxxxxwwyyzz||||||||||~~~~~~~~~~~~~~~~||||zzzzzzzzyyyyyyyyxxxxxxwwvvvvuuvvwwwwwwwwvvvvvvvvxxxxxxxxwwwwwwwwwwwwvvuuuuuuuuuuuuuuvvvvuuttttttttuuuuvvuuuuuuuuttvvvvwwwwwwwwwwwwvvvvvvvvvvwwvvuuuurrrrrrssssssqqqqppppoooommmmmmllkkkkkkkkhhhhhhhhggggggggffffffffffggggggffffffiiiijjjjkkkkkkllnnooooppqqrrttttttvvvvwwwwxxyyzz{{{{}}}}~~}}}}~~~~}}}}}}}}}}}}}}}}}}~~~~~~~~}}~~~~~~~~}}}}||||zzzzzz{{{{zzxxxxwwwwvvwwvvvvuuuuuuuuttttttuuuuuussssssvvvvvvttttuuuuuuuuuuvvvvvvuuvvvvvvuuvvvvvvvvvvuuuuuuxxyyyyyyyyzzzzzz}}||||||~~~~}}}}}}||||{{{{zzzz{{{{{{{{zzzz||}}~~~~~~~~}}~~}}}}~~~~~~~~}}}}}}}}||{{{{||}}{{{{yyzzzz{{yyyyyywwwwwwxxwwwwvvvvvvwwvvvvwwuuvvuuvvvvvvuuuuvvvvvvvvuuuuttuuvvvvuuuuttuuuuwwxxwwwwvvvvxxxxxxwwwwvvwwvvwwvvwwvvvvwwwwwwwwwwwwvvvvwwwwvvwwwwxxwwxxwwwwxxxxvvxxwwxxwwwwwwvvuuuuvvvvvvttuuttttttttttssssssttssssttttttttttuuuuuuuuuuuuuuvvxxxxwwwwwwwwwwwwwwwwyyzzzz{{{{{{||||}}||}}}}~~~~~~~~~~}}}}||||||}}}}||||{{{{zz{{{{{{{{{{{{{{||}}||}}}}}}}}~~}}~~}}~~||}}}}~~~~~~}}{{~~xxyyyy~~xx||{{{{{{rr~~zzxx~~~~wwzz~~{{{{{{{{||}}}}}}zzzz}}yy}}~~||{{yyyy||wwwwvvxxwwttuurr{{xx{{ppjjxxqquuyyiijjuuvvssppqqrrppxxppiittttssooppssppqqppooppxxrrqqrrqqrrvvttmmnnqqxxyynnoowwxxppqqmmxxyyssqqnnyyzzttooppvvttssvvzzqquuvvwwzzsszzwwwwyyttxxyy}}zzrrxx{{{{zzuuuu}}}}uuvvww}}{{qqyywwzz{{ttzzzz{{}}zz}}}}zz||||~~||||ww~~~~~~zz~~{{||||{{{{}}~~yy||~~~~{{~~~~~~~~~~~~xxyy}}}}~~zz~~{{~~{{~~~~~~zz}}~~zz~~||{{}}||vv}}zzyyxxvv||}}||}}||}}zzxx~~xxyyyyyyyy{{ttxxyywwwwvvzzzzzzssww{{zz}}uuttuu~~wwyyxx~~}}}}{{vv}}yyvvzz||yyvv~~||zzwwyy}}||{{||~~vvzzxx||xxvv}}xxyywwvvvvwwwwvvvvwwzzxxrrvvuuuuzzvvrrtt~~{{ppssxxzzttvvuuuuuuzzuuttxx||xxxxxxww{{uuwwxx||{{ttxxyy{{yyxx||{{wwyy{{{{}}uuww~~xxyy||zz||||}}}}{{||||{{~~{{zzzzzzyyxxxxzzvvxxxxxx||uuxx{{yy||vvuuzz{{~~}}vv||~~xxyy{{~~}}xxzz{{||{{||vvvv||}}xxyy}}}}||||||{{}}||wwzz{{zz||wwyy{{}}}}{{{{}}}}wwzz||ww~~}}~~{{~~~~~~~~}}||ww~~~~}}||~~}}}}}}}}~~}}~~ttww~~yyzz||||||||yyxx||~~~~zzxx}}||||}}zz||}}}}yyyyyy~~yyzz}}{{zzzz{{}}||wwzzyyyy{{zz}}||||||||xx||}}}}||yy}}zz||}}yy{{~~}}}}||~~~~}}}}||}}~~~~~~zz||||~~{{||||||xx}}zzyy{{||{{||wwxx}}yyzz}}xx{{zzvv}}{{||zz||{{||}}zzzz{{{{||||||||{{yy~~}}}}||||||zz{{}}~~}}{{||}}~~~~~~}}~~{{}}}}zz||}}~~~~||||~~||~~~~{{{{||}}~~~~{{~~||~~~~}}~~}}~~~~}}||zz{{||~~||||}}~~||~~||ww||{{xx||yyzzzzuuxxxxxx{{xxuuyyxxwwwwwwwwwwwwxxuuuussyyxxxxxxuuyyxxssttyy||ttvvuuww{{zzyyrr||||xxyyww{{}}yyxx||||||{{}}}}~~||||~~~~{{~~}}||||}}}}}}~~~~}}}}}}}}~~zz}}}}~~~~xxyy}}||||||~~}}{{yy{{}}yy{{{{zzzz||||{{{{yyyyzzxx{{vvzzxxww||vvww||{{wwxxwwyy}}vvxxvv||||yyvvvvxxyywwvvwwyyzzwwww||{{xxuuyyzzzzvvwwvvxxxxuuww||uuww||yyxxvvvv||wwwwwwww}}xxyyyy{{~~||xxzz{{~~~~~~}}||}}}}~~}}~~}}~~{{~~}}||||~~~~||||||zzzz}}xxxxxx{{xxww{{wwvvvvzzyyuuwwvvxx||{{yyyyxx}}ww{{zzyyww{{zzyy}}~~||||||zz{{~~}}||}}||}}}}}}yy~~{{}}zz~~~~||~~}}}}~~~~{{{{~~~~}}}}}}}}~~}}||}}}}||~~xx{{||||||}}||zz{{~~}}}}{{~~~~~~~~~~~~~~}}||}}||}}}}~~~~~~~~}}}}~~||}}~~||||||}}}}}}||{{{{||||||{{{{xxyyzzzzyyvvyy||yywwwwyyxx{{zzwwuuvv{{zzwwxxyy~~}}xxxx||{{{{{{zz{{zz{{||{{{{||||||zzyy||||{{xx}}||||yyww{{{{zzzzzz~~}}}}~~{{||}}zz}}||||||||}}}}~~||zz~~}}}}zz||~~}}}}||}}}}}}||{{~~||||~~}}~~}}~~~~~~}}~~||}}~~}}~~~~}}~~~~~~~~~~}}}}{{||~~}}~~yyxx~~||{{~~}}wwyy||}}xxyy||~~yyzz}}||||~~yy}}zz~~yyzz~~}}~~}}{{{{}}||||||||}}}}~~~~||~~~~}}~~~~zz}}{{||{{}}}}}}~~~~||{{}}~~||zz~~~~~~}}~~}}~~~~~~~~~~~~~~~~~~~~||~~||{{||||zzzz||||||}}||zz~~}}~~}}{{||||}}}}||||~~||||||~~~~{{{{{{}}{{}}~~}}~~yy||}}}}~~}}||}}}}~~}}~~{{||~~}}~~}}{{~~~~~~||{{~~}}~~~~~~~~~~||||}}~~~~~~~~~~~~||~~~~~~{{{{~~zz{{}}~~~~~~||||{{~~yyzz~~||||~~zz{{{{~~~~||zzzzzzzz{{{{zz{{{{zzzz{{zzzzzzzzyy||{{||||||}}{{{{~~~~}}}}~~}}~~~~}}}}~~}}~~||}}~~~~}}}}||}}}}{{}}~~~~||||||}}~~}}{{{{||~~}}}}~~~~~~~~~~~~~~}}}}}}~~~~~~~~~~~~{{~~}}}}||~~}}~~~~}}{{||{{}}}}{{}}}}{{||~~}}||zz{{~~}}{{xx}}}}~~yyxx{{}}zzyyyyyyzz~~||wwuuxx{{zzyywwwwxx{{||yyyyyy{{{{||{{zz||||||||{{||{{{{{{||zz{{{{{{yyyy||{{{{}}zz{{yy{{{{{{}}zz{{||~~||||~~{{||~~||{{||~~~~~~~~~~~~~~}}}}~~~~}}}}~~~~}}}}||~~}}~~}}~~}}}}}}~~~~~~~~~~~~~~~~~~~~~~||}}~~~~~~~~~~~~||}}{{{{}}||~~~~~~||~~||yy~~~~||}}~~~~~~}}}}||||~~}}~~||zzzz}}~~zzxxzz~~||yyyy{{}}zz||}}}}wwwwzz||zzwwxxzzzzzzyyyyvvvvtt{{xxwwzzwwxxyywwvvuuvvuuuussvvxxvvssvvvvttvvvvuuuuvvvvvvwwvvxxvvxxwwttttwwyyuuuuyywwvvwwyyxxwwttzz{{xxwwwwxx{{zzyyxxvvvvxxyyxxxxwwvvxxttttyywwvvvvxx{{zzwwww{{yyzz{{~~||||||}}~~||}}~~||||~~}}~~}}||~~~~}}~~}}~~}}{{||}}zzzz||}}{{||~~~~||||}}~~~~~~~~}}||~~~~~~||||}}||{{}}~~||||{{~~~~~~||{{{{{{}}}}zz~~zzyyzz~~~~{{xx{{}}||||{{{{}}}}}}||||}}}}}}}}||||}}}}~~||||}}~~}}||}}~~}}}}||||~~||zz{{||}}}}}}~~||~~~~~~}}||~~||}}{{yyuussrrppnniibbffccffeeeeaa__bbeeaaddddiikknniillnnnnrrttzzzz||{{~~~~}}||~~~~xx}}||zzzz||{{zzww||~~}}zz||||{{xxzzuuxxzzqqoossxxssssoohh}}ttAAĪPP��XXeezzдæ}}JJ""EEEEJJbb99EE߰ۢaann// 55ii``CCqq[[UUmmaa++{{pp55KKeeyywwOOQQeevvnnzzssff{{pp||yyyyllmmggGGMM||~~xx{{ggddvvaaYYWW__ssxx||\\FFUUZZVVbbxxgg``}}||ggllwwrraaHHGG[[bbtthhXXYYLLIIddvv]]SShh``DDSSrr^^YYccwwxxUU??PPWWXXggwwoowwxxxxyyooKKOOjjllwwyyllmmcc[[ffppbbdd}}yyrreeffWWJJdd||vveeffvv{{zzssttzzuuvvvvyyyyvv||||qqWWddmmyyyy``bbrryyffbbdd\\VV\\^^]]ZZaannhhPPSSVVQQTTVVYYQQBBAA@@????<<GG44##2266 !!!!  **77559955::>>11))4444//44993388BBHHNNEEIISSCCGG[[ccee^^NN]]~~xxɽßГֳ缼ܳҼ϶||iijjqqrrnnkkmmkkllppgg[[99##))..GGJJNNCC@@33..33++ %%''     %%&& ""%% ,,44,,--**00,,!!!!,,--&&%%**88++$$**//BBSSNN@@..,,77<<22..77<<==DDGGKK@@55::BBCC==UUeemm^^VVXXOOGGKKQQaakkllZZccppaacciizzqq]]__aaccoo~~hhjjxx~~xxxxyyoollyy~~uu{{{{zzxxwwooddcckkwwxxuuvvqqjjuuzzzz~~qqqqrrwwþ½û¶~~~~}}uunnqqxxyyvvjjkkhhffkkiiZZ]]ddee__PPSSZZOOFFQQTTNNIISSTTOOMMHHDDFFGG@@==GGKK??338888====BB@@==????AABB::----337711,,116633))..!!'',,112277<<442277;;..'',,(())..00..11331122++))2277996688994411331188==995533++,,116655,,55>>??CCAABBDDNNFF00,,1166AAEECCCC::77??FFOORRLLMMKKHHJJJJPPRRMMIIDD@@EENNRRXXXXXX``YYTTcchhccWWAAAANNZZ____ccggggggmmhh[[[[__bb\\\\^^ee__aaccmmtttttt||uukkkkkkkkccZZZZiimmmmqqggdddduunnhhmmrrrr}}xxeeee``ddmmmmpp||||yymmjjssvvttyyppppww~~vvooqq}}~~vv{{xxttrruu~~~~~~}}ssppvv}}{{{{{{qqtttt||}}{{||{{ppppppssppppppnnhhhhppuuuuqqqqvvvvttppjjccYYRRRRWW\\eellllllppmmmmmmiiee\\\\\\\\UUUUWWWWWW]]hhoooooollhhbb``____aa^^[[aaaaaacchhjjggggiikkmmnnnnii^^^^^^ddddddddddddllllggggggffffggffhhhhjjnnvvssggccffmmjjbbbbbbbbbbgghhjjjjjjoottssppppii__bbddggggnnppllkklloossssyyyyttuuwwwwssnnnnnnsspprrww||wwvvttttvv||}}}}yyyywwyy}}}}{{~~~~}}}}~~zzwwwwzzzz||||yyzzxxttlliiffffjjnnnnmmmmoooollllppnnffddkkoommee__]]ZZZZcciillllnnnnnnhhhhhhaa^^^^ddffggggeeddbbddjjqqooggggggeeeeeeaa__]]]]bbccccbbbb^^bbbb``bbbb____^^^^[[[[[[[[____]]YYZZ``bbbb__^^WWYYaaeeeeaa``^^\\WWZZaaaaaaeeiiccaa__``eeeebb``\\\\\\aaffkkeebbbbddffffhhiiggddddeeeeeeggjjnnrruuuuqqmmkkoommmmllllooqqqqoooooooott{{}}wwwwww{{{{{{yywwxxzzyy{{||yyww{{~~}}}}{{||{{wwzzzzttqqvvzzyyssoommjjjjllnnnnttxxyyuuuuxxssjjcc``cchhllhheeddkkqqvvxxuurrssxxwwttppmmhhccddkkppkkmmttxxwwxxyyvvrrppqquuvvwwwwqqmmkkqquuttttssssuu||zzvvqqnnooqquuwwxxxxssoorrvvuuttssuuwwuuuussssppoonnrrxx{{zzuussttmmnnooppppqqqqrrww{{xxrrnnqqssvvyy}}zzqqkkllnnnnnnllkknnttxxvvuuttttww}}~~||wwppkkkkllmmnnoooooorrttyyzz||wwuuttrrppoommnnqquuvvuuooppqqrruuwwvvssrrrrppnnkkmmqquuuuwwxxzzttrrppooqqrrrrppoommllmmppssttvvvvuuyy{{uuppjjjjjjoonnmmppqqqqqqvvyywwwwvvttuuvvuuuuttppoosswwwwvvxx{{{{zz||{{{{zzwwuuttrrssvvwwuuwwyyyy{{||xxuuuuuuxxvvuuww{{||}}}}||||~~yyuuvvyy{{||~~||xxyy~~~~~~~~||||||||}}wwwwzz{{}}~~~~}}~~||zz||~~{{xxyy{{}}{{~~}}zzzzxxzz||||{{xxuuuuyy{{{{zz{{zzxxvvwwwwxxyy{{zzxxwwvvuuxxyyyyuuxxyyxxxx||~~}}~~}}}}yyyyyy~~}}||{{yyxx||}}~~~~~~}}zzzzxxvvxx{{}}xxxxxxvvttxxzz{{yyxxxxxxuuyy{{zzxx{{{{uuppooqqssrrrruuvvvvsspppplljjiimmqqqqooqqppnnllllmmkkjjmmlljjggffeeddeeffhhllnnppppookkhheegggggghhmmlljjiikkkkkkkknnqqqqppppppppkkiiiioopppprruuuuttwwxxssqqssuuuuuuww||}}||}}~~{{wwzz~~~~~~}}xx{{~~~~~~~~~~~~||||||||||~~~~||yyyy{{}}zzzz{{}}{{zzzz{{{{||||||{{{{{{zzwwyy||{{vvvvvvyyyyyy||}}}}||||zzvvuuuuuuvvyy||}}||~~~~~~~~~~}}zz||||xxwwwwwwwwzz{{}}||||zz}}~~~~||yy{{{{zzuuqqoooorrxx||||{{{{{{{{{{||||||yyxxxxyyyyxxuuvvyyzzzz||~~~~}}}}~~~~||{{yywwzz}}~~~~~~~~~~~~||||{{{{zzzz{{||||||||}}}}||xxuuvvyyzzyyyyyyyyxxyyzzzzzz||~~~~{{wwvvuuttttrruuxxxxxxxxxxxxxxxxzz~~~~~~{{xxwwwwwwvvuuqqqqwwww{{||}}{{{{||{{yyxxvvttqqrrwwww~~~~~~yywwwwuurrttssttyyxxyy||~~}}~~~~zzzzyyppvvvvttttttttttwwwwzz||||||yyyy}}yyvvvvxxvvyyuuww}}{{zz{{||yyyy{{uuuuuusswwwwssttyyyyzz||||xxvvuurrqqssxxvvoommssuuxxwwssssvvvvwwwwvvttssooppqqqqrrqqpprrttxxwwssssssqqttrrrrrrxxyyxxxxxxttuuvvvvvvttttvvuuvvssttuuvvxx}}}}}}yyxxxxxxwwwwzzzzzz{{yyyyyy{{~~~~~~}}||||~~~~}}}}||||~~~~~~}}}}~~~~}}}}||{{zz||||~~}}||}}}}}}}}||yyvvxx{{xxzzzz}}~~{{yyxxxxxx{{{{{{{{}}}}~~}}~~||||||||}}zzttssssvvvvvvxx{{||~~||{{xxwwuuttww{{}}}}yywwvvwwxxyyzz{{zzyyvvvvvvvvttttuuwwwwzz||}}}}||{{zzxxzzzzzzxxyyyyxxzzzzzzzz{{}}zzzzwwxxyy||||}}}}~~~~{{{{{{{{~~~~~~||zzyyxx{{}}}}~~}}xxxxxxxxvvvvvvuuttttqqssssttttoolljjee__[[VVTTTTTTTTSSSSSSSSSSSSUUVVTTTTUUWWXXXXYYZZZZ\\^^bbeekkoorruuvvvvvvttssuuwwzzzzzz{{xxxxyy||~~}}||{{{{yy{{zz{{||~~~~||||zzzzzzzzzzyyvvwwwwzz{{||||~~}}}}||~~~~}}}}~~~~{{zzzzyyxxvvvvuuvvvvvvuuwwwwzz||~~||}}||||~~||zz~~~~zzzzzz{{||}}~~||zzwwwwwwwwxxxxxxzz{{}}{{zzwwvvvvyyyyyyxxvvttssttuuuuuuvvxxwwwwwwuussssuuyy{{{{xxyyyywwuuuuvvuuuussuuwwttuuuuuuwwwwvvwwxxxxwwuuuuuuxxxxxxxxwwwwwwxxxxxxwwvvvvxxwwvvvvvvvvwwzz~~||||{{{{||}}}}{{{{}}}}}}}}}}}}}}}}}}{{xxxxxxwwyyyyzzzzvvvvwwwwwwuuuuookkkknnppppqqqqrrttttttttqqqqssppqqooppppmmnnttttvvwwyyxxxxssssssrrrrvvzzzzwwvvvv||||}}||{{zzxxxxyy{{{{~~~~~~~~zz{{~~~~{{xxwwwwwwvvwwwwwwzzyyyy{{}}yyssqqqqrrttvvvvttrrssssssuuvvvvrrssssssssvvttppqqttuuvvwwyyzz||xxxxxxyyxxxxxx||{{xxzz||||}}}}~~}}||}}}}~~~~}}}}~~~~}}||~~||~~~~zz{{~~||~~~~~~xxxxzz||zzyyyyzz{{yyxxxxxxxxyy||}}||{{||}}}}yyyyyyyyyy{{}}~~{{yyyy{{{{{{xxyy}}}}||yyvvwwzz}}||xxxxxxwwwwttvvvvrrttuuttuuuuuuuuttssttvvwwttqqssssssssssqqsssssspprrvvwwyyuuuuuuuuuuuuwwxxwwvvuuuuuuwwwwxxxx{{{{}}{{||zzyyyy||||{{{{||||}}~~~~||{{||}}~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}~~}}}}~~~~~~~~~~~~~~~~~~}}}}zzzz{{{{||~~}}}}}}}}}}}}||||}}||||}}}}}}zzzzzzzz{{{{||~~}}}}}}}}~~~~~~~~~~~~~~~~~~||||||~~~~}}{{{{{{~~~~~~}}}}}}}}zzzzzz||}}}}||||}}}}}}{{{{{{||||||||}}}}}}{{~~||}}{{zzyyxxxxwwxxyyyyzzyyyywwwwuuvvvvuurrppppppqquuvvvvvvvvuuuuttttttuuttssrrqqqqqqpppprruuwwwwwwuuttttuuvvvvwwvvvvuuuuttttssssvvyyzzzz{{zzyyyyyyyyyyzz{{{{{{}}}}}}}}}}}}~~}}}}||}}~~~~~~~~~~~~}}~~}}~~~~~~||||||~~~~~~}}}}}}}}||||{{{{{{}}~~{{{{yyyy{{{{}}~~~~}}||||||||}}{{zzzzzzyyyyyy{{||}}~~~~{{{{{{||{{{{zzyywwwwwwzzzz||~~}}yyyyxxyyyy||}}}}}}{{zzzzzz}}}}~~~~~~}}}}~~}}{{||}}}}||{{{{{{{{||||~~~~~~||||||||||}}||||||~~}}}}~~~~~~~~~~~~~~~~~~~~||||}}}}}}{{{{{{{{{{{{{{||}}}}~~~~||{{zzzz{{||||{{{{{{||}}{{||}}}}~~||{{{{{{{{zz{{{{}}}}}}||||||||}}}}}}}}~~~~~~||||yyyyzzzzzz{{{{||zzzzzzzz||||}}}}}}{{xxxxyyyyzzzzzzzzzzyyyyyyzzzz{{||||||||}}||||{{zzzzzzyyzz{{}}}}~~~~~~~~~~}}}}||||}}}}}}~~~~~~}}}}}}~~~~~~~~}}~~}}}}{{}}~~}}||{{{{||}}~~~~~~~~~~~~~~~~~~}}~~~~~~~~~~~~}}}}}}~~~~~~~~||{{yyyyyy||}}||zzyywwxxxxyyxxxxxxyy||}}||zzwwwwvvwwwwxxzz{{zzzz{{||||}}~~~~}}}}~~~~}}}}}}}}}}~~~~}}||||||||}}}}~~~~}}||||||||}}~~~~~~~~~~~~}}}}{{||{{||||||}}}}}}}}~~||zzyyyyzzyyyyyy{{||||||||}}}}zzyyyyyyyywwvvvvuuxxyy{{||}}~~}}~~~~~~~~{{{{yyyyyyyyyyyyzz{{}}~~~~~~~~~~}}~~}}~~~~~~zzzzwwxxxx{{~~~~~~~~||zzwwwwuuvvuuxxyyzzzz||||}}}}||{{{{xxxxwwvvvvttuuvvyyzz||}}}}}}||||||||||{{zzyyyyyyyyzz{{||}}}}~~||||||||}}||}}||||yyyyyy}}}}~~||}}||||||||||{{{{{{{{||}}}}~~~~~~~~~~~~~~~~}}}}~~~~~~~~~~~~}}~~~~~~~~~~~~}}}}~~~~~~||{{xxxxxxyyyyzz{{{{{{||{{{{zzzzzzyyyyzzzzyywwwwvvwwwwxxyyyyzz{{{{{{yyyyxxyyzz{{{{{{{{{{zzzzzzzz{{{{||||||}}||||yyyyyyzz{{{{zzzz{{{{||||}}~~||||{{{{{{{{||~~~~~~~~~~}}}}}}}}}}||~~~~~~~~~~~~~~~~~~~~~~||||{{zzyyyyzzzz{{||}}}}~~~~~~~~~~~~}}{{zzzzyyyyyyzzzz{{||~~~~~~~~~~~~}}~~~~~~~~}}}}}}~~~~}}~~~~~~}}||||zz{{yyzzzz{{}}}}}}{{{{zzzzzzxxxxvvwwwwxxyyyyyywwwwwwyyyyyyxxxxxxxxwwwwyyyy{{{{{{{{{{{{||||{{{{{{{{}}||||||||||~~~~}}}}{{{{||}}~~~~~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~}}}}}}}}}}||||||}}}}}}{{{{zzzzzz||||||{{zzzzzzzzzzzzyyzzzz{{{{{{{{{{{{{{||||||||||{{{{{{{{||||||||||}}~~~~~~~~~~~~~~}}~~~~~~~~~~~~~~~~~~}}}}}}}}{{{{zzyyyyxxxxxxxxwwxxxxyyyyyyyyyywwvvvvttssrrrrrrssttvvvvvvwwxxwwttttwwppppoottttttvvvv~~yyyy{{}}~~}}||||{{{{||vvvv~~}}}}xxxx}}||uurr}}}}}}}}ooww||vv{{{{{{{{{{zz}}uuppyynnnnnnkkkkttttjjssuunnnnpp||xxjj{{vvvvvvkk~~xx~~~~kk||||yyyyssxxxxxxxxxx~~ssww||xxyyssppttllggdd[[]]__^^``WWVVXXUUUUGGDD>>44(($$ $$ $$##))!!''))..**"",,22778844EEEE>>BBIIJJBBPPSSYY^^[[mmnnxx}}yyvvzz{{ǰ½ÒooooVVŨmmooppqqݺyyuuvvssnnoowwtteeaaIIDD1166GGZZbbNNCC::33..**//##%%           --9944;;66::<<99BB>>BBFFVVffhhTTPPLLOORRUU``^^ddffoouuqqppqqwwyy||wwxx}}~~~~{{}}yyuuww||||tthhiirrllhh^^]]eeqqrrppqqggddffkkttuuuuwwttuu{{ÿĿÿýzzxxttssqqppooooiiiicc``^^^^\\ZZ\\VVSSVVVVUURRJJMMMMJJGGCCEEEEEE??99::<<>><<668877775577<<8877::8855554422774466222255::99::99::@@::88<<;;====AA@@<<>>BB<<==88::8888;;7799;;99==55663344335577112211--0011////,,))((##((++00003300,,++..11669955//..0055::::==<<99;;;;==AABB????AA@@??DDIIJJNNSSOOMMLLOOTT[[^^WWYY\\^^^^``bb__aaddccccggggkkkkjjee``````ddiiee____aa__]]__\\^^\\ZZZZYYXXTTTTWWSSTTSSTTVVUUWWTTUURRNNOOQQOOKKJJMMOOOOOOOOSSUUTTWWXX^^^^]]____aaccccccddiillrruuuussrrqqssvvvvwwwwyy||zzzzyy||||||}}}}}}||||||yywwuuttssqqoommkklljjggggggggggddddddeeffffffhhggffffffeeeeddddffffffiiiilllljjllnnooppmmookkjjjjkkppppqqqqqqqqppppppssoooonnmmllppoooonnoommppppssssssppqqttppookkkkkkjjnnlllliiiiiihhhhhhjjjjiiiiggddbbaabbccffffeeeeeeffhhhheeaaaabbcchhhhhhggggiinnjjlliiiiiihhhhiihhiijjkkkknnooqqqqrrrrssrrrrppppqqttuuzzzzyyzz{{zz{{}}}}xxxxuuvvttrrppqqoonnkkiiggffffggddaa____``____``^^^^^^``ccddddccbbeeffhhggffaaccddddeeiihhhhffhhjjiihhgggghhiikkkkkkjjhhjjjjkkgggghhgghhffgghhkkllllmmllkkkkiiiiiikkffffffggeeffddddeeddddddddddbb``________\\[[ZZ[[\\^^^^^^aabb``````__````````````aaaaaacc``aaaabbccggggffffddddggiiiiiiiillnnnnnnllllllpppppprrrrrrrrrrsswwwwwwyy{{}}}}||||||||}}||}}||~~||{{xxzz{{~~{{zzyyzzyyzzyyyywwxxwwwwwwvvwwwwvvvvvvwwvvuuuuwwvvvvvvvvvvttssssssssttttttttttvvvvxxvvvvvvvvwwwwvvvvvvuuttuuttttssssttuuttttssrrrrrrrrqqppqqppoommmmllllmmoonnmmmmmmoollllmmllmmmmmmmmooooqqssuuuuttuuuuxxxxxxxxwwwwwwzzzzzz{{{{||~~||{{{{{{xxwwwwwwttttrroooooooooooommlljjjjhhhhffffeeeeddddddeeeeeeccccccddbbccddffddddddddddffffhhjjkkkkllllmmmmppppooppppppoonnnnqqttttvvvvvvvvvvvvttvvxxvvwwwwxxxxxxwwwwwwwwwwyyyyyyxxxxxxxxyy{{{{||||||||||||||||||{{yyxxxxxx{{{{zzyyyyxxxxxxxxxxxxxxxxxxxxwwwwvvvvvvvvwwxxwwwwuuwwwwyyyywwuuuuuuwwwwwwwwwwvvwwwwwwvvvvvvxxyyyyzz{{zzzzzz{{{{{{zzzzzz||||||}}~~~~~~~~~~~~}}}}}}}}}}}}{{||{{{{xxxxxxyywwxxxxwwwwvvvvvvvvvvvvvvwwwwuuttssttttuuttttuuuuttttttvvwwwwvvxxwwwwwwxxxxxxwwxxyyyyyyyyyyyyyyzz||||||}}}}}}~~}}}}||||{{{{{{{{{{zzzzzz||||||{{{{{{{{{{{{zz{{zz||||||||{{{{{{{{{{{{{{{{||||}}}}~~||}}||||~~~~}}}}{{yyxxvvvvttrrppppnnmmlljjjjjjiiiihhhhggffccccaabbaaaa________^^^^__``````aaaabbbbbbbbaaaabbccddddeehhggiihhjjjjkkkkmmmmmmllllnnooooppqqrrssssttuuvvvvwwwwwwwwwwyyyyyyyy{{||||||}}||||||}}~~~~~~~~~~~~}}~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}||{{{{zzzz{{{{}}}}}}~~~~}}||||zzzzzzyyyyyywwwwwwwwwwttssrrrrrrqqppooppqqqqrrqqqqqqrruuvvvvwwwwxxxxyy{{{{||||}}~~}}}}}}}}}}}}}}||~~}}}}||||||||||||{{zzxxyyxxxxxxxxxxxxxxyyyyyyzz{{zzzzzzzz||||||||||||||~~~~}}}}}}}}~~~~~~}}}}}}~~~~~~~~}}~~~~~~~~~~~~||||zzzzyyyyxxxxwwxxwwwwuuuuuuuuuuttttuuttttttttrrssssttuuvvvvxxwwwwvvwwxxxxyyyyyyyyzz{{}}}}}}}}~~~~}}}}zz||~~||{{{{zzzz{{{{{{zzxxyyzzvvwwwwyyyyzzzzxxwwyyyyyyyyxxxxxxwwxxxxxxxxuuuuttvvyyxxuurrttvvvvrrssssssqqqqssrrrrooooqqrrrrooqqooppqqqqqqqqqqppnnooqqrrrrooppppppoooorrrrrrooppppppooooqqqqqqppmmmmnnppppppmmnnnnllmmqqqqqqqqqqppqqqqrrrrssqqqqssvvttvvvvuuuuttxxzzyyxxvvyyyyyyyyzz~~}}}}}}~~zz||}}~~}}{{{{~~~~yywwwwwwxxxxyywwxxuuuuuuxxxxzz{{zzzzzzzzzz{{||~~}}~~~~~~~~||||yy||||||zzvvvvyy{{yyyyyyvvzzzzzzzzuuuu||yyqqttvvvvvvttttzz{{{{{{{{~~}}xxvvyy||zzzzzzzzzzxxzz{{{{{{~~zzzzwwyy{{~~~~}}||yyyyzzzz{{zzyyxxyyyy{{||yyyyzz{{{{{{yyyyyyxxxxvvvvttww||zzuussssxxxxxxwwwwwwxxyyvvwwvvxxyyxxxxxxzz{{zzyy||||yy}}}}~~uuKKppppppYYYYYYccuuuujjaaaaĊ)) &&WWWWkkssssppjjaaSS:://WW||xx__OOOOUUwwsssszzzzoodd[[ccvv||]]JJRRqqxx{{yyyyrrggppttSSSSmmqqggggoo}}}}}}xxxx||||||}}vvmmVVVV||qqqqxx}}uuxxvvbbTT[[kkuuyysscc^^^^jjxx||yy||llffllll__jjwwnngg``lllliiiiaaaapp}}oohhhhmmmmeeaaaaggzzzzzz||oo``ggllggggxx}}xxxxxxxxxxttggmm||xxttuuiiiiiitt{{wwww}}}}sswwww{{rrmm{{qqqquuuu||||wwyyvvvvvvqqqqqqqqqq}}xxtt||}}}}}}{{{{vv{{~~{{xx{{{{yypppppppp~~oojjnnvvppzzzzvvkkkknnyy}}wwwwwwwwzz{{{{~~yy~~{{~~{{yyyyyyuuuuuuzznnfffflloobbbbffYYQQ\\\\PPPPcc]]LLQQggggZZZZ``ddXX[[bbbbuuuuuuuuuuuuuuttxxzzzz||~~~~zzqqwwrrrr||~~~~~~zzrr~~zzyy{{{{tttt{{xx{{zzrrtt~~~~uuuuzzsskkuu}}~~zzzzwwmmggoozzvvvvxx||zzssoouu{{}}}}ttww}}||wwttxxwwoooottrrmmmmffbbXXXXXXXXTTRRLLDDNN^^^^^^^^^^[[XX__[[PPPPSSQQSSbbrrrrrrrrrrrrjjjjjjmmoollrrzzzzyyttttttrruuuuuuyy~~~~}}~~~~~~zzxx~~~~yyrrssttxx~~~~zzttttuuttuuww||}}xxuunnhhiiqqssttvvyy}}~~||yyuuvvxx{{{{{{yyuuuuvvvvvvwwxxrrssvvyy{{}}}}}}}}~~yyvv}}~~~~zzzz{{xxzz{{~~~~||wwoonnkkjjjjhhjjggeecc^^VVVVXXRRRRPPSSSSTTZZXXUUXXXXVVXX[[__bbbbddffee````bbbbeeggllssrrnnssuuqqqqqqmmmmqqsspprrppqqwwvvvvwwvvxx{{}}}}||||}}||{{{{{{}}~~~~zzuuvvwwwwyy{{||yyyyxxuuyyzzwwxxxxyyyyyyxxvvvvzz}}~~xxzz{{{{ttuuuuvv||||zzzz{{{{yy||ooddiinnooppqqnnqquuzzxxrrssww{{rrnnoojjkkllppttvvwwvvrrvvzz{{||||{{xx||zzvvttvv{{}}~~}}||||zz{{}}}}{{{{}}vvooiihhjjkkooppjjgg``]][[aacceekkggddggff^^YYSSPPSS__ccggiinnooppqqvvzz}}yyuurrppqquuuurruuyy~~}}~~~~yyyyyy~~{{}}~~~~{{{{}}}}~~~~}}||zzwwzz{{||wwuuvvyy||}}zzxxttttwwww~~~~xxttoopprrzz||xxwwxx{{~~vvookkllnnoossttrroollnnffaa]]XXVVZZ``__[[[[\\]][[\\]]^^``bbggjjjjjjgghheebbeejjooqqrrppllmmooppqqssttssssttuussttttqqssvvvvvvwwxxxxttxx}}||xxyy||||{{}}}}{{{{{{||}}~~~~~~~~{{||}}{{yyvvuuvvyy}}}}zzwwxxxxxxyyxxuuvvvvyyyyttqqrrssssuuxxzz{{xxyywwttttyyxx{{{{}}}}}}~~{{}}}}}}}}}}~~yywwzz}}~~xxuuvv||~~{{zzxxxxww{{}}}}}}xxuuvvyy~~{{{{{{{{{{uuqqqqppppjjllllmmiiffeeggjjlllllliillmmoolljjjjllqquuxx{{}}||{{{{||~~yyvvxxzz{{||||zzuuuuxx{{vvttvvzz{{{{{{{{||~~zz{{{{{{~~||yy||~~||||||||{{zzzz}}||zzyyxxyyyyxxvvwwyy||~~}}zzwwttssttuuttssrruuyy~~~~yyuuqqnnppqqoommqqvv||}}yyxxttqqrruuxxyy{{||~~||xxwwxx{{xxvvuuyy}}~~xx{{yyxx~~{{wwyy}}zzvvqqmmjjjjjjjjjjlllljjggeebbaaaa__\\\\]]^^\\ZZZZZZ\\]]\\[[\\aaggkknnppppmmjjhhggiillmmjjjjqqwwyyyyxxssmmllnnqqssuuxxyy{{~~||{{||zzzz{{zzyy~~||zzyy{{}}~~yyssrrrrssuuxx{{||zzxxttssttzz~~~~~~~~~~~~}}}}}}||}}||zzyyyy{{~~~~}}{{yyxxuuttxx{{~~||vvssppqqttxx{{}}xxzz||}}}}~~||yyxxwwwwxxxxyywwvvwwuurrqqoonnnnppqqoommllhhggllpprrrrrrssrrrrssssuuvvssqqttxx{{~~~~}}yyuuttuuww{{}}}}}}yywwuussuuvvwwwwwwwwttuuvvxxzz}}~~}}||{{yywwyyxxvvttuuxx{{||}}||{{}}yyxxxxyywwxxxxxxyy~~}}xxxxxxxxuuuuuuxxyy{{||{{xxvvwwvvuuuuuussqqqqppssrrqqppooooqqrrttssssrrqqooooppoonnoossttqqoopppprrvvvvvvttttttttttuuuuuuxx||}}}}~~~~}}~~~~||yyzzzzxxxx}}}}xxttssssuuxx{{{{{{yyxxwwuuttttssrrrrttuussssssuuwwxxzz}}~~~~{{vvuuttwwzz||||~~~~~~~~~~}}wwuuuuuuuuuuwwyyyy{{{{{{wwwwwwwwwwwwvvssppoooorrrrssqqrrrrttssssqqssttyyzz||||zzxxvvwwxxwwwwttvvzz}}~~~~||zzzzzzzzzz}}}}||xxuurrrrssuuuuxxzz~~{{uuuuvvvvzz}}}}yyyyyyyyzz}}}}}}{{zz{{}}~~~~~~~~~~~~~~{{xxxxwwvvvvwwyyvvuuttttttuuttrrrrttvvvvssrrnnnnnnnnnnpprrttuuxxxxwwttuuuuuuttttuuvvwwxxxxxxwwwwyy{{||||~~~~{{yywwwwwwzzzzzz{{{{zz{{{{{{}}}}{{{{vvvvttsspprrvvxx||~~~~||yyyyxxvvvvvvvvvvwwzz}}~~~~}}}}{{~~~~}}}}}}~~~~}}zzzzzz{{||{{zz}}}}{{xxxxyyyyyyxxwwwwxxzzzzzz{{||||}}}}}}zzyyyy||}}}}~~}}}}||||}}}}~~}}~~{{yywwwwwwxxxxvvrrrruuyyzz{{{{||{{{{yyyyxxxxvvvvvvyyxx{{{{}}||~~}}}}~~~~~~zz{{{{~~||zzzzzz{{yyxxxxvvuuuuwwwwwwww{{}}}}}}xxvvssqqrruuwwwwwwxxxxyyyyyyxxyyyyzz{{}}||{{xxyyyy{{{{||~~~~}}||||{{{{{{{{{{{{zz{{{{~~}}}}}}~~zzyyzz{{~~||zz}}~~||{{zzzz~~~~~~~~~~}}}}}}}}||||}}zzxxvvttssssttssssuuvvyyzz{{{{zzyywwttssqqrrqqppnnnnllooqqsssswwxx{{{{{{yywwssttuuuuttttttssuuvvxx{{}}~~~~~~~~~~~~}}~~~~~~}}}}{{~~}}xxxxuuttttxxyyyy{{||}}||||||zzyywwxxxxzzzz||}}~~{{{{{{{{xxyyyyyy}}}}~~}}||xxxxwwwwwwwwwwwwvvvvuuxxxxyyyyyywwvvttssrrnnkkkkllppssssssuuxxzzzzzzwwxxxx{{{{{{zz{{zzyyxxyyyyzzzzzz}}||yyyyzz}}~~~~}}}}~~~~~~~~~~{{vvyyyymmmmmmssssssssssoollppnnjjiijjhhffkkiihhjjccaappppggggnnnnkkkkiiiiccjjffffpppppphhoobbkkrrkkrrrrrrrrrrrr||yy{{||||||xxzzzzzzzz||~~~~~~}}ww}}zzzzzzzzzzuuxx~~{{{{{{{{||{{qqeeee____aa]]__ddffgg__eebbRRRRAA;;;;7744444411**,,....////****,,######----$$0000'',,''%%''$$&&$$------33<<<<77<<88==AAFFMMMMSS^^iiiioottaa((==wwwwwwMMZZ{{{{{{{{{{{{ppeessңllƲyyyyyyyyƛžö{{vvddTTPPPPWWiinnii``PPKKKKHH==44++&&$$$$++6666--%%''''--""'' "" ##)) %%--339933**&&&&0033333377????CCOOSSHHEEHHRR[[]]iixxkkZZZZcccc\\\\jjsswwttmmppppnnnnnnnnnnqqyyvvllllttttxxxx}}}}}}||uuww||||vvvvvvrrooww}}vvppmmppzzwwwwzzzz||||zzwwuu{{yyvvttrrrrmmmmkkkklloommjjffddddddggggeeffffiiiiiiiiddZZZZZZaaffjjjjllllppjjjjoooorrttttttttvv{{xxxxxxyy}}}}||||~~~~¾~~~~~~}}xxuuuuyy}}||||{{yyuuxx{{}}}}}}||||xxxx}}}}}}||||{{{{wwuuttttttvvuussppoollkkhhhheeeebbbbcc^^\\WWOOOOMMMMIIDDDDCCAA@@>>::99==<<9988884422..//00----444422........****,,--////002200--------..//222200,,--222222////33//0033224455777744446688889999886644447799995522..--,,//6699;;;;995555;;>>>>8833..2266==BBBB>>>>>>BBFFHHKKMMMMMMNNNNQQWW[[``ccaa]]ZZ\\ccggkkjjjjjjllmmoollkkiihhiillqquuvv{{{{vvuuuuttvv||zzrrrrrrvvttssssttttttvvwwxxwwvvvvuurrrrrrrrrrrrttttppllkkkkkkffddccddddccaa``^^XXTTTTTTWWVVSSQQQQMMMMIIFFEEHHHHLLLLJJFFBBBBDDBBCCDDGGHHIILLLLLLLLLLLLLLPPQQWW________]]bbbbddeeffllqquuxxwwttqqttww||½~~{{wwwwttmmjjhhhhffccddcc``]][[XXXXXXWWRRRRPPPPNNNNNNLLJJJJJJJJJJJJJJMMMMMMKKKKJJJJJJKKJJIIHHJJJJNNNNNNLLJJLLLLLLOOOOIIGGGGGGHHHHJJHHGGGGGGFFFFFFFFFFFFFFFFGGIIIIGGEEGGIIMMMMPPPPPPNNPPSSSSTTTTVVXX[[^^]]______``aaddeeiiiiiinnmmnnmmllmmssuuuuuuuuuuzzzzzzzzxxxxxxzz||}}~~~~}}||yyttrrnnlliiggffggffcc^^^^ZZZZZZYYWWSSSSTTSSSSQQQQQQTTSSVVVVVVWWXXYY[[\\^^^^^^^^aaccgggghhhhnnrrvvvvvvuuuuuuwwwwwwwwwwwwzzxxxxwwzzzzzzzz{{}}zzzzyyyyssqqooooppppssqqppllmmllllkkkkhhiihhggddddaaaaaaccccffffffccccccddccbb``ccddbbaaddeeeehhiijjllllmmllnnllnnnnnnnnoopprrrrssrrssuuwwwwwwvvuuttuussppoonnppttvvvvvvuuuuttppppoooonnoooonnnnnnooppppppooooooqqqqqqnnmmmmmmqquuwwxxyyyy||||||||||{{zzvvuussoonnppppppmmiiiiggeedd``\\ZZXXWWWWYYXXXXUUWWYYYYZZYYYYZZZZZZZZXXWWYY\\^^aacceeggiimmppttttttvvyy{{||||||{{}}{{zzvvvvuuuuttrrmmmmjjkkjjiihhddaa]]ZZYYWWUUUUTTUUUURRQQPPNNLLKKJJIIHHEEEEAAAAAA@@????????@@@@BBCCCCDDDDEEGGIIIIIIKKMMOOOOQQQQSSVVWW[[^^``````ddddeeffffhhhhhhhhjjllooqqqqqqppqqqqqqnnpprrvvvvvvvvxxvvvvvvvvvvxxxxxxyy{{{{{{{{||}}}}}}}}}}}}||{{{{||||}}}}}}||||||||||||}}}}~~~~~~~~}}zzxxwwvvvvuuvvwwxxxxvvvvssssppoonnnnnnppooppqqssssssssttttttvvxxzzzz{{{{||{{yyxxvvuuttttttttrrqqnnjjiiffffddddaa``]]\\\\\\ZZVVTTUUUURRRRRRQQNNNNOOOOOOPPQQQQPPPPPPQQQQOOQQRRVVYY^^^^aabbeeeeffgghhkkllmmoorrvvvvxxzz||||zzwwwwuuuuttssrrppmmmmjjhheeeeaa``^^\\YYVVRRQQPPOONNNNMMNNNNNNNNNNMMMMLLLLJJKKKKLLKKKKLLOORRTTVVZZZZ\\__````````aabbddffffiikkllnnooppqqrrrrssssssttuuuuwwwwxxvvvvttwwyyzzxxxxxxyyzz{{{{{{}}~~~~~~}}||||||}}~~~~||zz{{||}}}}}}}}}}{{{{}}~~}}||}}~~~~~~}}||||}}~~||{{{{zzwwuuuuuuttttssssrrqqnnnnoolliiggffeeddbbbbbbccbbbbaa````^^\\\\[[ZZXXWWWWXXWWWWVVTTRRQQRRSSSSTTSSSSTTUUVVUUTTSSRRSSUUXXYYZZYYZZ\\^^__``aabbeeggffffgghhllppppqqpprrrrssuuttttttttwwzz||{{{{{{{{{{}}}}||||zz||}}~~~~}}}}}}~~||||||~~~~}}}}||||||}}~~~~~~}}}}}}~~~~}}{{{{zzxxxxvvssrroommlljjhhffffddffccbb``__aabbaaaa\\[[ZZZZ[[ZZYYZZZZ^^]]^^^^__^^^^__``bbbbbbddffiiiijjllnnppssuuwwwwxxzz{{{{zzzz}}~~}}||}}}}}}||{{zz{{zz||||}}||~~}}||{{}}~~||zzyywwuussssqqoonnmmlljjffccaaaa``__]]]][[YYWWWWXXWWVVTTRRRRSSSSRRRRSSSSSSSSSSSSRRRRSSTTUUWWYYZZ[[[[\\\\]]]]]]__aabbcceeffgghhiijjmmnnooqqttuuttssttvvvvwwwwvvvvxxzz||~~~~~~~~~~~~}}||||||~~~~}}}}{{zzyyxxyy{{zz{{zzzzzzzzyyxxxxwwwwxxxxwwwwxxwwxxxxyy{{yyyyxxwwxxyyyyzzzzyyzzyyzzyyyyzzyyzz{{{{{{yyxxxxxxxxyyzzzzyyyyzzzzzz{{{{||||}}~~~~}}||||||~~}}zzzz{{zzyyxxvvuuttssqqoommmmkkjjiiiiffddccaa``__^^^^^^``__``````____]]]]]]]]]]]]^^____aaaacceeffggiiiiiihhjjjjjjjjjjllmmooooppqqqqssssuuttttttttvvxxxxxxxxzz{{||||||||||}}~~zzxxxxvvttqqqqrrrrmmmmmmjjggggggffccccddaaaabbaa^^^^\\[[[[ZZ[[ZZ[[[[[[[[[[^^^^^^__aa^^]]bb````````bbeeffggggkkiiiikknnoooorrqqqqqqqqqqqqqqssttrrssuuuuuuwwxxwwwwwwwwwwuussssuuttttvvwwzz||{{{{{{||{{||{{||||zzzz{{||||||~~~~}}yyyywwuuuuuuuuttttpppprrrrrrrrppppoommhhgghhhhhhffiijjjjmmkkllooppppoommmmppppppppmmppqqrrssvvvvxxxxxxxxzzzz||{{{{zz}}}}}}~~~~~~~~||||{{||||||{{{{zz{{{{{{||zzwwwwxxxxxxxxxxxxxxxxxxyyyyyywwxxyyxxzz{{||}}}}}}{{zzzz}}||||yyzz{{}}}}}}}}}}{{||{{{{zzzzxxyyyyyyyyxxyyzzzz{{zzyyyyyyyyyyyy{{||||||||~~~~{{{{{{yyuuuuttttttvvwwwwxx{{{{||{{{{{{yyyyyyyy||~~~~~~}}||||zzzzzzzzyyzzzzzzzz{{{{{{{{{{{{yyyyyyyyzzzz{{||||||||{{zzxxxxuuuuttqqlljjcc\\VVPPMMLLHHDD@@;;661111//--------,,,,....0011113333778899::999999::====BBDDGGIIMMMMPPQQTTVV\\]]aaaacccceehhjjmmnnnnppnnqqqqrrssssuuuuwwxx{{}}}}~~~~~~~~~~~~~~~~}}}}}}}}zz{{xxxxxxxxyyzzzz||}}~~ÿ||zzvvrrmmhhdd^^XXTTOOKKGGCCAA>>::8877553333445555555544333333556688::==@@BBBBCCDDFFHHJJLLNNPPRRTTWWXXYYYY[[]]````aabbccddffggiiiiiikkmmooqqqqrrrrssssttuuuuuuttttttuuvvuuttssssssrrrrrrqqqqppppoonnnnnnllllkkkkjjjjjjjjkkllllmmooppppppppppppqqrrrrssttttvvxxyyyyzz{{||}}||||}}~~~~~~~~||xxrroojjeeaa]]YYVVQQMMJJGGDD@@>>==99553300--++**++))**++,,,,----..------00223344445577::<<==??BBDDGGHHJJKKLLMMOOPPPPSSSSVVWWYYZZ[[\\__``aaccffhhiiiijjjjjjkkkkllmmmmllllmmnnooppppqqqqppoommllllmmllkkjjjjjjkkkkkkkkjjiijjllmmllnnnnnnnnnnnnnnooppqqrrssssttuuuuxxwwyyyyzz{{||}}}}}}~~~~}}yywwrrpplliiffddbb__[[WWTTQQOOMMMMKKIIHHFFDDDDEEEEDDDDDDEEFFFFEEEEFFFFGGHHJJKKNNOOQQRRTTVVXXXXZZ[[\\]]\\]]]]]]^^__``bbddffggggiijjkkllnnnnnnmmooooppqqpprrssuuwwxxwwwwxxxxwwwwvvvvuuvvvvvvvvuuwwuuuuuuvvwwwwvvuuuuuuttssrrssssssssvvvvwwyyyyyyzzzzzzyyzzzzyyyy{{||}}~~~~{{yyvvssoonnkkhheebb__[[YYWWUUSSQQOONNLLKKJJJJJJJJHHIIJJIIIIIIJJLLMMNNPPQQSSTTUUWWYYZZ[[\\]]``cceeffiiiijjllmmnnooooqqqqssttvvxxyyxxxxxxyy||}}}}~~}}||||{{zzzzyyyyyyxxwwxxwwxxxxxxwwwwwwxxxxxxxxwwwwvvwwxxyyzzzzzz{{}}~~~~{{xxvvttqqnnjjffcc__\\YYUURROOMMJJGGEECCBB@@????>>>>==<<;;;;;;<<====??AABBDDEEFFHHIIJJKKLLOORRUUWWYYZZ\\]]__``bbcceegghhiijjllmmooqqrrttuuwwxxzz{{{{||||}}}}~~~~~~~~~~~~~~}}{{zzyyyyyyxxyyzz{{{{||||}}}}}}||{{zz{{{{||||~~||xxttrrppnnkkhheeaa]]ZZXXWWTTRRPPNNLLJJIIGGEEEEBBAA@@@@??>>>>>>????AABBBBCCDDDDDDEEFFGGGGIIJJLLNNQQSSUUUUWWXXYY[[\\\\]]^^__aaccddgghhkkllmmnnooqqrrssuuttvvxxxxxxxxxxyyyy{{||}}}}~~~~~~||{{{{{{||}}}}}}||{{{{{{zzzzzzzzyyyyyyxxxxxxxxxxxxyyzzyyxxxxxxxxxxyyxxxxyyyyzz||}}||}}}}~~~~||yyvvssppnnkkggddbb``^^[[XXSSQQOOMMJJHHFFDDCCBBBBBBAA@@??>><<<<<<;;;;;;<<<<>>@@AABBBBDDDDGGGGIIKKLLMMNNPPRRTTVVWWXXYY[[]]^^__aaddeeffggiijjjjllmmnnooqqrrrrrrrrrrrrssssssttssttttttttuuuuuuuuuuttttrrrrqqrrqqqqqqqqrrrrssttttttssrrqqqqppoonnooppqqrrttttuuvvuuttuuvvvvvvuuuuvvwwwwxxzzzz}}}}~~zzvvrroolljjggddaa__]]ZZXXUUQQNNKKIIFFDDAA??==<<;;::9988777777776655666666667777778899;;<<==>>@@AABBCCFFGGIIKKMMOOQQSSUUVVXXZZ[[]]__``aaccddffhhjjmmnnooqqrrrrssttttssttttssttvvuuvvwwxxxxzzyyzzyyxxxxwwvvvvuuuuuuttttuuttuuttttssssssrrssssssrrqqqqppppooppppppppooooppqqssssrrssssttttttuuuuuuvvxxzz{{||}}~~{{xxuurrnnkkhhddbb``]]\\XXWWTTQQNNKKJJGGEECCBB@@>>==;;;;;;::::::::::99999988888899::<<==>>@@AABBCCDDEEFFHHJJKKMMOOPPQQRRRRTTUUXXZZ]]^^``aaaaccddddffhhiikkllnnooppqqqqssssttuuvvvvvvvvwwwwwwwwwwwwwwxxxxxxxxxxxxxxyyyyyyyyxxxxwwuuttttttttuussttttttttttssrrqqrrrrrrssrrqqppooooooooppppqqrrssttttuuuuvvvvwwvvwwvvvvvvvvwwwwxxzz{{}}}}~~}}}}~~}}}}}}~~}}zzwwttqqmmjjffccaa]]ZZWWUUQQPPLLJJHHFFCCAA@@>>====<<;;;;997766665555778899::::::;;<<==>>??AABBCCDDEEGGIIJJJJLLOOQQSSTTVVWWYY[[\\^^__``aabbcccceeffhhjjkkkkmmnnooooppppppppqqqqqqrrrrrrttuuuuvvvvwwwwwwvvuuttttssssssssssttttttttssssssrrssssrrrrrrssssssrrrrrrqqrrssssssttttuuuuvvwwxxxxxxyyzzzz{{||}}~~~~{{xxuuqqnnjjggdd``]]ZZWWTTRROOMMKKIIFFCC@@>><<;;::99776644444444333322334444554444556688::<<>>??AACCDDFFGGIIKKMMOOQQSSTTVVYYZZ[[]]^^__aaddeeffhhiijjkkmmooppqqrrrrssssssttttttvvwwxxyyzzzzzzzzzzzzyyyyzz{{{{{{{{{{zzyyyyxxyyyyyyyyyyxxwwwwxxwwwwuuuuuuttttssrrssrrrrssssttttuuuuttuuuuuuvvvvuuwwwwyyzzzz{{||}}}}~~}}zzwwttqqmmjjggeebb__]]\\YYVVTTRRPPOOLLJJHHFFEECCCCCCBB@@@@AADDGGIIKKMMMMPPPPSSTTUUVVWWXXYYZZ[[[[]]]]__aaaaccbbddeeffgghhiiiijjjjkkkkjjkkkkjjkkkkmmnnooooppooppppppppppooppooppppqqqqrrssssttuuuuuuvvvvuuuuuuuuuuvvvvvvvvuuuuuuttuurrttrrssrrrrqqqqqqqqqqqqqqqqppqqqqrrqqrrrrrrssttttuuvvvvvvvvwwwwxxyyyyyyyy{{||||}}}}}}}}}}}}||}}}}}}||||}}}}}}}}||||}}~~~~||zzxxuuttqqqqoommmmkkiiiihhggggeeffcccc````]]^^[[[[XXYYVVUUSSSSRRQQPPPPOOQQNNMMKKJJIIIIJJMMMMOOPPRRSSSSRRRRQQQQQQTTVVYY[[]]^^^^^^^^^^^^____aaccddeeeeffffffffffffgggggghhggffggeeffggggggggggffggeeffeeffgggghhiijjiijjkkllllmmmmnnooppooppqqqqqqrrrrssssssssttuuwwwwxxyyxxxxwwwwwwwwxxyyzz{{}}}}~~~~~~~~||||ppxxttuuww||~~vvwwxxoo||||||}}ttpp||yyppqqoorrqqggllmmhhaaaaccaaZZYYVVWWQQMMNNII@@AA>>9955::778899<<AA;;??CC88AAIIEEEEOOOOHHQQTTRRSSUUXXVV``bbcckkiijjnnppttxx}}{{üzz{{}}~~||llssttuu~~ooppqqcceeccZZYY\\VVMMMMIIMM@@::>>>>::??FF;;;;<<55773300..55CC8877@@HHHH<<@@DDHHDDEEHHIIQQ]]__aaaallmmnnqqyy˯̽ůrrss||||游TTiikk{{˒ֽ͹zzmmjjkkeegg]]QQLLKK77,,**66FFOORRHH55##""      !!##""$$**220022..--**%%%%&&""##((++3344**## ..CCCCCCCCCCCCCC<<<<<<>>IIcckkdddddd^^^^^^^^^^aaaaiippllhheemmyyqqjjjjjjggnn}}~~zzzzzzzz||||}}}}}}xxttrrrrmmkkkkllllllffXXJJJJNNNNNNNNZZZZZZ]]ffddZZWWUUUUQQLLEEEEOOZZffccYYSSHHHHPP[[[[[[``^^TTMMMMUU^^VVXX__eegglliihhiijjkkjjmmrrvvyyǾ¿ÿź{{ttttssssppqqssnnee________cccc``[[YY[[[[UUPPNNUUcccccc``\\YYYYRRVV^^``ggnnlldd]]RRNNNNFF>>::>>::::776666333311,,**((""""%%%%''++11114499996600007799996622225555887766556677;;663344445599774444442222225599????::6666666666;;>>AAHHQQYY^^ZZTTHHHHSS``mmppssppffcc````\\ZZVVQQQQUUTTTTSSUUYYYYTTKKKKIIFFHHGGHHOOTT\\aa]]]]____``\\ZZ[[__ccccaa__``ccaaaaaa__[[YYYYYYWW\\]]]][[YYWWQQQQQQSSSSWW[[``__XXVVVVTTSSSSYY]]ffffffffdd````ccjjllrrww}}}}{{wwvvrrkkhhffddbb^^``cckkkkppppjjhheeeeaaaaddggmmqqyy}}¾||uuqqnnllllllmmuuwwyyyyyy{{{{zzvvvvvvvvvvyy{{wwwwuussqqppnnnnkkjjggiiiiiiiiee^^[[XXVVVVYY\\]]]]\\XXSSPPMMLLKKKKOOYY__bbbb``````bbbb``````eejjpprrookkgg^^^^UURROOKKKKKKKKQQRRTTUURRKKGGCCCCCCCCJJRRTTVVVVZZ^^aaaa____``ddddffggggiioooooollllllllllppooqqqqrroollkkmmnnkknnppvv{{||yyuuqqoorruuzz}}}}wwuussqqqqppuu{{~~~~}}~~zzxxwwxxyywwuuwwzz~~{{xxvvttoolljjoouuzz~~zzttnnjjhhffhhhhiijjff``ZZWWTTTTSSSSTTWWWWYY]]^^__bbaa__]]^^]]\\``aa^^__``aa``^^ZZVVUUXXVVTTRRRRSSTTSSRRQQQQQQRRSSTTVVXXWWWWSSPPOOPPQQTTYYbbffiillooqquuvvrroouuyy||vvqqmmkkllmmnnppssttssppnniiggeeeeggiijjnnssxx||~~}}yyxxyyxxyywwxxxx||}}}}yyvvttssqqqqttww}}~~}}}}}}||||}}}}zzzzyyttssssxx¸}}yyuuqqqqvv{{~~~~~~}}yyvvssrrppoonnppppssttssnnjjggddbbeeggnnssyy||}}}}}}yyuurrss{{||uuppjjiiffddccbbaaddffeeeeee``\\VVQQNNSSXXaaiimmppssssssppmmjjkkmmqqvvzz||yyxxyyxxwwvvvvuuuussttssssssssqqoonnppppmmlloottwwvvuurrppoooonnrrzz~~zzxxuurroommmmmmnnoooollhhbb]]YYVVYY^^cciinnssrrqqooppoolljjkkoossttuuvvwwuussqqoonnmmnnnnllmmmmmmjjiiiihhddbb``bbffjjkkjjhhggeebb``bbeejjppyy||zzxxyy||zzvvrrppoollkkkkoorrssttqqkkffaa]]]]^^eellrrxxyyyywwuuttssssssvvyy{{||}}~~zzwwuuttvvvvssssrrrrqqppnnmmjjhhggggggiillmmnnlljjiiffeeeeggnnxx~~}}yyvvvvttppmmooqqssuuvvqqmmiiggeeddffmmuu}}~~wwqqnnnnssww~~||||}}}}||zzzz||}}}}{{wwuuxx{{||}}{{yyvvssppoorrxx}}}}yywwttqqoooonnoorrttssppiibb\\]]__eekkqqvvzzyyxxxxwwvvuuttwwzz||~~~~~~~~}}{{yyzz{{{{xxuuuuxx||~~~~||}}}}||{{}}zzzz||}}vvooiieeddiinnssxx||}}~~||||zzxxuuuuvvyyzz}}}}zzxxxxxxxxxxwwwwvvuussqqppqqqqoollhhgghhlloooooommmmmmllllnnssxx}}~~~~~~||zzwwrrnnkkjjjjmmppoommhh__WWWWXX\\aaddiikkmmnnmmkkjjiihhhhjjmmooppqqssttrrppppoooonnmmmmmmnnmmlljjhhhhhhggggeeddbbbbeehhiijjjjkkjjjjkkmmppvvyy{{{{{{{{||yyuurrssttxxzz{{zzssnniiffffmmrrww{{~~~~zz{{||||||zzvvrrmmhheeeeffiillppppppqqqqqqppllllllnnqqssssttssttttssrrqqqqppoonnmmnnnnmmlljjiijjlllljjiigggggghhiikknnqqrrrrrruuxx}}~~~~~~}}yyvvttrruuyy~~}}||}}~~~~}}zzyy{{~~{{yyvvttssttuuvvwwwwwwxxyyyywwwwwwxxzz{{{{||~~~~~~||zz{{{{||zz{{{{{{zzxxvvuuuuuuuuuuttttssssttuuwwyyxxyyzz}}{{wwqqookkhhgghhiiiijjkkiihhggeeccbbbbbbbbccggllqqvvwwuussssssxx||||zzyyxxwwwwvvuuuuvvttrrssssttttttssrrppooooppppqqqqrrttvvyyzz||}}}}}}}}{{wwttqqppqqrrssrrrrqqppnnllllmmooppooqqssuuvvwwxxzzxxzz{{}}}}~~~~~~~~~~~~||zzyyxxvvyyzz||}}~~||zzxxxxwwvvuuuussssqqrrppqqoonnmmlllljjhhiijjllnnppoooonnnnooppssuuvvxxyy{{{{||||~~~~}}||zzwwuuttuuuuvvvvvvvvttssssrrppppppppppqqrrqqrrqqqqrrssssssssuuvvwwxxxxyy{{~~}}zzwwxxxx{{}}~~zzyyxxuuvvvvwwyy{{{{||yyyyxxxxyy{{||{{zzyyyy{{}}||yyxxvvwwxxxxxxzzyyyywwwwuuvvuuuuuuuuuuuuvvvvwwwwxxxxxxxxxxwwvvvvwwwwxxyyzz||{{||zzzzzz{{{{{{~~zz~~}}~~~~vvssccoolleeff^^``__UUXXZZVV\\^^WWbbZZYY\\ee``YY^^hhggiirrllss||xxxxxx||||}}zz{{{{~~yyzzzzxx||||ssvvww||zz~~{{ppqqjjoovvyyzzzzvvuuvvrruu~~qqmmjjssyy||zzvvii``YYOOGGGGWWddllyyyyzzzzuuoohhggff``iimmjjoottttkkaaccbbddeeeeccjjllnnooggbbddeeggff``bbjjllnniidd__QQTTWWYYddffggiihhiiqqrrwwxxnnoopp||}}sskkaaffqqxxuu}}yyrrssvvqqmmttuuuussoossrrsswwppnnoonnuuvvvvxxoommkkmmlltt~~}}yyvvoomm``bb``^^YY\\ffjjkk]]TTVVFF9999FF^^mmzzzzzzxxoohhbbffjjtt{{{{zzzzssttuuvvvvttzzzzzz{{ttuuppffdd^^ddkkllmmoonnjjee``\\ZZYYZZeennyyuullhhnn||vvqqkkggeekkjj__]]hhmmqqxx{{uuffZZPPJJUUddvvssqqoonnnnwwyyuuooiihhggee__ddkkddccffffcc\\\\ZZYYYYXXXX^^ffiihhmmjjdd^^^^^^iivv}}||ttyy~~xxrrllllhhmmppff^^\\bbooppqqllaaNN??==BBWWddnn{{zzppppppmmiiooxxyyyyuurrlliiiiiimmppjjiikkhhffjjkkbb^^^^]]^^bbhhookkee``XXQQQQRR__nnttxxzzqqjj^^``ccoo}}}}qqkkffkkmmhhjjggeeffhhnnuu{{||xxll\\PPVV``ii||||||||{{zzzz}}wwzz||vvlltt{{qqiiddkkuu||xxxxwwvvuunnllllooxx}}{{pp]]NNHHPPVV``tt~~zz||||||~~{{ppyyyyqquu||||}}yyuuvvyy}}jj\\[[aaggtt||||vvppwwyywwuuqqssuuuurrvvssmmbb]]ddjjyy{{kkbbZZZZ``kkxxyy~~~~xxvvuummmmcc__mmyyttiiWWLLLLOO[[jjxxxxuuww~~}}zz}}qqjjnnyyzzvvttrrkkee``ddtt}}vvmmffWWNNKKTT__rr||yyvv||||||||~~}}ttrrrrvvzzttnnqqtt{{yyuuoojjiiooxxwwnngghhqqzzvvll\\aaeess}}zzyy||||~~~~zz{{{{rrkkeemm||vvii^^[[aaiirryy||}}xxttoommqq}}nnbb^^ddss}}vvoorrwwhhhhiinnyyxxrrvvzz}}qqhh]]VVYY__nnxx}}{{{{yyuurryy~~zz||zzuuttwwyyvvtttt}}qqhhaaeeqqvviiccbbeekkss||{{{{{{vvttww~~ttggbbbbffkkzz}}kk``bbiiuuqqbbWWQQRRUU[[``ffrr||||zzyy{{}}~~}}{{ttss~~uupplljjggffeelluu||zzttmmbbZZTTMMPPYYggrryy}}~~zzuu||ttqquu}}rrrrssvvyy||vvoooonnlliieemmwwxxrrnncc^^ZZXXYYeeoo{{xxkknnvv{{qqiiggjjppww||~~~~xxmmggaaeeppyy{{}}}}||uummiiooxxvvnnmmkkjjllrrxx||~~zzsszz||ttkkeeaa[[XX]]bbkkllkkee^^UUMMEEEEKKTT__iirrttxx{{yyyyvvvvww{{||{{}}{{rrkkllss}}yyvvrrkkhhiimmppttww||~~yyrrnnrrzz}}yyppkk``WWSSZZ__eepprruuyywwvvvvttlllloovvzzyywwxxxxttppooppww}}}}wwssoojjllqqxx{{||}}}}zzwwzz}}||||~~zzpphhddbbhhmmrryy~~zzssppnnoottww||{{uuppmmllhhffccbbaaccccccffiinnuu}}||xxzzzzttrruuzz}}wwrrhhbb]]__aahhrrxxzz||~~||yyvvttyy||||||vvrrssssssuuwwyy{{wwvvmmggddddllnnrrxxyywwssoommnnqqookkjjjjffhhffeejjqqww}}}}yy||ssllggbb``__ccjjlllliidd``YYSSOOPPUU[[ddllrrwwwwwwxxwwvvwwyy}}~~zzuussttvvyy{{}}~~zzrrppoooorrrroolliiffccaaaaeeooww~~~~~~zzuuppkkggffooww}}~~{{wwssqqpprrttwwzz||{{uuppnnmmoouuxxuurrppmmjjiillppww}}~~vvqqjjhhggffnnuussookkhhee__ZZWW[[``hhoouu~~||}}yyuuqqkkffeejjoossxx||~~yyxx}}~~vvoojjggddffllnnmmmmllee``\\WWUUTTWW]]ddiippppssuuuuttoonnppppqqrruuvvwwyy{{xxvvttssrroommooqquuxxzzxxvvttrrmmppuuyy}}~~{{wwoommllllqqyy~~xxqqmmllllmmnnrruuqqhhggffdd__XXTTUUZZ__hhqqww}}{{{{||~~zzyy}}{{yyuussrrssww{{zzxxrrnnhhddbbffnnttzz~~zzzz}}ttoommmmssyyzz{{wwvvssoommjjggbb__^^``ggllqqxx}}||yyttooppwwwwyyzz||~~xxvvttttttttuuvvzz}}~~zzwwuuttxx{{yyssoonnvv||zzssoommnnnnmmnnkkkkmmnnmmggbb^^\\\\]]bbgglltt||~~||~~}}}}||||~~zzzz~~}}xxvvvvxxzzxxppjjeeggjjpp{{~~||{{||yyuuookkoorruuvvxx~~~~||~~~~{{yyzz{{~~~~{{xxuuuuttppnnqqssppttvvrrnnmmoouu{{~~{{wwrroonnmmoossyy~~xxssmmkkjjkkkkkkggeeggjjhheebb\\XXWWYYaahhnnsswwvvuuuuuuuuuuvvwwxxzz~~}}{{zzwwyy{{zzyyxxwwrrttxx~~}}xxuuookkkkoonnooqqttttwwzz}}}}~~zzxx{{~~}}{{zzyywwvvssppnnqquuyyzz}}}}}}~~}}}}||zzxxvvttuuttqqqqrrnnnnnnqqpprrssssrrppoollnnpprrttuuwwxxyyzz||~~~~||wwuuttqqnnnnooqqoommkkkkgghhiihhggiikknnppssvvvvvvwwwwyyzzzz{{}}~~~~||||||||{{{{zzyyvvttuuuuttssttrrssrrrrrrssttuuwwyyxxyy{{yyyy||||}}~~~~||zz{{{{||{{||||{{{{zzyyzz{{||||~~~~||{{zz||zzzzzz~~~~}}{{yywwwwvvttssttssrrqqttttuuwwyyzzzzzz{{{{||{{~~}}{{{{zzyyxxwwvvwwwwvvxxxxxxxxwwwwwwww{{}}~~||{{||}}||~~}}~~~~}}||}}~~~~~~||||||{{yywwvvuuuussqqpppppprrttuuttuuwwwwwwwwxxzzzzzz{{}}||zzwwwwwwuuttuuwwvvuuttssssrrqqoommmmmmnnppqquuvvxxxxwwvvvvssuuvvzz{{{{zzyyzzyyyyzz||}}}}~~}}~~~~}}zzzzzzzzyyyyzz||||||{{{{{{zzyyzz{{||||}}}}}}||}}~~~~~~||||||||||||}}}}~~~~~~~~||{{yyyyxxxxvvuuuussssrrssrrssrrttttssssrrrrrrssttvvxxyy||||~~~~}}}}||||~~}}~~}}~~~~~~~~||{{zz{{zzzzzzxxwwvvvvyyxxxxwwvvuussssssqqqqppppoooooonnoonnnnoommmmmmnnnnllmmmmnnoopprrssssssssqqppmmllkklliihhggggiihhiiiihhhhhhggeeffgghhkkllmmppppqqttttuuvvwwyyzz{{||~~~~~~}}{{ppqqOO!!DDcceell,,11HHKKNNkkhh==OOþyyggaa""PPSSoobbddvvmmnnhhii}}^^MM..EEooEEHHXXoozz__aappqqbbSSeemmbboo}}}}vvccMMPPssyysshhttyyllmm~~qqgg__aaccuuvvvvwwjjllttuuLLOOllmmnnoodd]]__ZZ\\oouuqqffvvooppqqrrXX[[ddrr~~ppXXRRddllnnoo~~~~~~~~~~~~oobbSSee~~~~vveeggmmss~~~~ooppwwwwookkuu}}wwwwuukk__VVccXXSSII,,22,,''$$**//(( &&%%++%%55441188EEHHGGIINN]]__SSVVXX[[ffppqq``::>>ff}}~~ll^^uu||kkggiisseeUU]]xxxx莎ƨ˻ʱ~~~~ppqq~~rrmmjjoowwxx||oollrrww~~||ssnnoodd^^``ee\\CCGGeeggLLFFJJMMDDHHPP<<2277;;%%##((..--""((--2244""&&2266;;22//--((((--++  &&  ++11%%!!'',,//4444778899GGRRHH55::EEHHLLOOWWUUMMGGMMZZ]]__\\``ffjjkkllrrrrkkllssoott{{}}||||||||}}~~||yyyyzz{{ssppxxxxqqrrqquu~~ssssttyyzzvv~~¾zzooss}}}}{{uu{{zzttooppwwyyuuuu||zzzzsskklluuuuvvwwqqrrssttnnddXXWWYYYYRRUUXXVVQQOORRUUQQTTPPHHHHIIAABBFFGG??CC<<==77;;??<<==??66--..//++--2200((--//--,,4488;;77442277????77<<55((....//44<<::00551166;;9988664499//////4499::;;553388<<99::BBDDEE@@>>;;??IIMMKKNNQQQQTT\\hhiiccddss||||~~~~{{ssnnrrsslloollmmooggeedddd__RROORRGGBBBBFFIIBBFFFF==,,$$))////++--22----2277;;<<;;BBDD>>>>BBCCBB883388GGHHBBIINNQQRRZZcceegggghhffkknnoovvxxwwqqrrzzzzzz||}}xx}}Žyyookkhhbbaa``]]NNKKOOMMHHHHDDBB;;99777744****005566****&&##))..0000++**--00..////4499::;;??<<5533005599BBIIKKJJIIEEIINNOOVV]]``ZZWW[[\\VVVVUUOOMMUU__eehhmmmmssssppllllnnppnnggggggkkmmlliiiiqqyyyyyywwvvvvvvrrttssooppssyyyy||}}||}}zzzzzzxxyy||}}zzyy}}}}xxxxwwuurrqqqquuzzyyyy{{~~~~~~~~{{xx||}}ý~~zzzzyyrrjjbbZZUUUUSSNNHHFFFFCC>>99667777::::::6622,,++++++000000//..115544113399@@>>>>CCHHEEEEBB@@>>==CCIIIIMMQQTTSSOOOOSSOOQQRRWW\\^^\\WWTTRRTTZZ\\bbeekkkkkkjjgghhiigggggghhjjoonnhhffkkllssssssqqppmmllllkkkkpppplloowwwwwwwwyyyyyyyy{{xxvvvvvvqqqqqqmmrrwwyyyyyyyyxxxxxxxxwwwwttttttttttttwwwwuuuurrssww}}}}||||zzyy}}}}zzxxxxxxxxzz~~}}}}~~||yyyy}}zzxxxxxxzz||~~~~{{}}~~||||~~~~}}||}}~~||vvttttppooiiiihhcc^^ZZWWUUUUWWXXYYYYYYUURROONNPPSSSSRRQQUUXXZZZZZZZZ[[``eehhhhiihhhhkkmmppooooqqttvvww{{~~}}}}{{wwvvuuvvyyyyzzzzvvwwwwttnnnnnnnnjjkkllmmjjiiffeeddeeccgghhkkhhhhggffffeeeeeeeeggoooohhddaa]]]]aaffiikkqqrrrrrrzzuunnjjllmmppttxxyy}}zzwwuuuuvvqqiiddaa[[UUPPLLIIHHAAAAAA??<<9977222211112222--(($$!!""##((--------..225599::::9988;;==??CCCCIIMMQQUUYY\\\\____]]\\\\\\\\^^aaccffhhhhkkllllppqqrrrrrrrrppkkkkllooppuuzzzzzzyyyy{{||}}}}}}xxxxvvxxyy{{}}~~{{||||{{zzzzxxzz||{{{{{{wwuuuurrnnqqssssoooooopppppprrssssttttttrrqqmmoooooooorrrrrrttwwwwxxyy||||||yyyyyyzzzz||}}}}{{}}vvppkkeeaa__]]ZZWWWWYYYYVVSSTTTTSSNNLLLLKKIIIIHHJJJJKKIIIILLNNPPRRSSSSSSSSTTSSSSVVYY[[]]__``bbffiikkmmppppppppppqqrrrrsswwzz}}}}{{{{||||||}}zzyyvvvvvvuuttssttttttuuuuvvxx{{}}{{uuttssssssssssvvww{{zz{{||}}}}{{}}||{{{{||||{{yyxxzzzzxxzz}}||{{zzzzvvrrssttuuuuwwvvuuuuttwwzz||||~~||zzyyzzzz}}{{wwssppiihhhhffbb__[[XXTTRROOKKGGFFCCAA<<99664400111122112244777755//,,--//2255779988::::;;>>BBGGIIJJLLMMLLIIIIIIJJIIKKPPUUWWWWVVTTQQQQQQTTXX[[\\]]``bb``^^\\ZZZZ\\__bbccbbbbaa``bbccffffiillmmkkiihhggiikkmmrruussrrqqqqrrssuuyy||||{{{{{{yyvvttvv{{~~~~||zzyyyyyy||~~~~}}~~~~||yyvvttssrrmmllkkffddbb^^\\YYYYZZWWTTPPMMKKFFAA??@@AAAABBCCDDEEDDCC@@==9999;;>>BBDDFFGGEEDDHHOOPPQQRRSSVVXXYYZZZZ]]``ddccggjjllllllpprrrrssuuyyzz{{xxww||~~||yyyyzz{{||~~||zzzzzz||~~}}{{xxwwwwyyzz}}~~xxqqoojjffccaabb__]]XXWWWWXXUUSSPPMMKKIIDDAA@@@@BBDDDDDDCCBBAABBCCEEHHHHHHHHGGFFFFIILLMMOOQQSSUUVVYYXXXXXXYY]]``ccddeeffggjjkkmmnnppqqttvvyy{{||zzzz{{}}||}}~~~~||~~||zz{{||||||||||||}}||{{yywwxxzz{{~~{{wwssrrqqqqpplljjnnrrrrrrssttssrrqqqqqqooookkiihhiihhiiiiiinnsswwyyyyzzwwuuttssqqppnnlljjllmmqqssttuuwwyy||{{}}{{zzwwxxxxyyyyyyyy{{||~~}}zzzz{{wwuuttqqqqppoooooottvvttssqqwwttmmooppqqnnoonnppppnnqqkkoossqqppssrrllllmmhhkknnmmppxxwwmmhhuu{{zzyyyyxxxxuuxx{{yywwvvzz||{{zz}}||~~~~~~~~}}||~~||{{||||||zzzz~~~~{{}}xxvvttuuvvwwwwvv{{}}}}~~yy||~~zz}}}}}}}}}}ttttttxxuuvvxxvvwwttsssssslliiggmmnnjjmmnniikkmmmmmmnnnniieeddddhhggeeddggffcc``ccggggiihhddaa\\__^^]]bbbb``cceebbccffggff__eekkffbbggggeejjiiggggffffffhhmmnnqqppkkmmjjhhhhggggmmoossssuuvvxxwwssqqqqrrssttuuww||{{wwyy||~~{{wwoommllkknnrrttttvvrrppooqqrrqqlljjjjjjooppqqssrrrrrrttttttrrqqqqrrssrroonnqqxx||{{xxwwyy{{}}~~||{{||zz{{||yyyy||{{wwuuxxzz||~~rrbbRRKKXXddnnvvyymmjjhhhhiijjooqqqqmmkkff__ZZ]]^^__iiwwxxrrttzz{{ooaaZZbbqq~~{{xxww}}~~{{}}||xxrrll``SSJJJJOOVVaaooww||~~zzppcc__aa``^^[[WWUUZZccdd\\SSLLJJOOWWaajjtt}}yyrruupp__mmyy}}||½û{{hhffiirr||ttnnllrrzzzzppjjnnrrxx}}{{~~vvooff]][[gg{{eeSSPPUU]]qqümm^^[[aaggyyrrccTTJJHHMMTTYYbbggbbSSDD9977;;AAIIWW``aaZZSSMMJJLLSS[[ddhhkkgg]]QQFF>>77--..<<NN]]``]]RR@@--##))0099LL^^kkkkkkrruuoogg\\RRMMQQ]]hhqqyy~~qqhhffppxx~~wwjjlltt{{zzsstt||zzttxx{{}}qqiirrvvaaPPNNTTZZbbpp||{{ppccUUKKJJPPZZccggppwwssggYYSSYY__jjssssoovv}}zzwwyyzzmmooww~~zzooeeXXOOMMWWkkrrnnddRR??++%%((..44BBPPWWYY[[[[ZZRRGG88--''''11;;CCKKSSVVKK>>552299CCOO\\llrrooff__cchhqqyy~~uunnff__aassttbbYY[[^^ffssuukkfffflltt{{wwjjjjqqzzvvoouutt]]NNQQTT\\iiwwyykk``XXUU[[cciioo||wwffXXRRWW__ggoo{{}}rrllppuuzz~~||ttkkcc[[QQLLPPggyyxxwwmmeeQQAAEEIIUU``mmzzttkkffppwwuuyymmffkkoossqqccWWQQQQZZbbjjppwwrr__PPDDCCJJPPVV^^ffjjee\\XXYY__ddhhrrzz{{xxmmeeZZMMDD==@@RRbbjjffccWWFF661199@@GGPP``llpprryyyyqqee\\UUNNRRXXccll||qqddfflluu||||ssyy~~xxrr}}vvttvv~~wwuuzzzzeeXX\\``ddhhvvvvggYYMMGGMMVVeeqq{{~~ssff[[SSWW__ffppuuyy||||ttvv~~sssszz||ppgg]]UUXXggssqqoogg[[DD22--44<<==DDOOSSYY``ffbb\\II;;00))((44??LLXXbb]]PP==3333==DDLL]]kkttttiiddcclltt}}||rrggffppyyggaaeejjqq~~wwmmmmttyytt{{¿qqiimmqqttwwzzkkbb]]ddoowwsscc]]ffmmssxx{{xx~~wwppee``eezzzzoo__UU[[aaeepp{{wwqqxxȼyy{{}}~~qqccXX__eennvvxxddSSFFEEHHOOUUggssxxssiibbaaddhhkkvvzzooff^^TTLLJJPPccnnppooiiZZHH::::>>BBIITTccmmuu}}mm``VVOORR\\kkwwttiiffmmvv}}{{sswwzzxxttttzzzzjjiikkss}}{{vvrrttwwbbXXYYaaffggss~~rr``TTNNVV``llvv||vvhh]]WW]]ccmmzz}}||yyppbb__ggqqyyxxxxqqbbOO;;7788==BBIIWW__ddhhllooggWWHH<<4455;;FFQQZZbb__OO??7788==EEOO\\ggqqoohhbb^^ffnnxx}}uunncc``ggvvpp^^XX``ffkkssttkkooxxttss}}ſppccggjjqqwwooffiimmss{{tthhbbeehhpp}}~~vvww||}}ssllffaahhxx~~||qqeeTTUUVV]]bbnn{{ppqqrr{{uu{{žttnnppttwwoobb\\ZZ``eejjnnrrllbbOOGGGGMMQQTT]]ggoollddYYUU[[aaiittzznnee[[OOEEBBFFSS^^ffddcc``QQ<<4477==DDLLTTbbjjooxx~~xxppccXXSSWW``ggllqqyy{{mmbbbbeeoowwttvvxx{{zzxxrrww~~||vvsszz}}iiYYSSWW[[__ggss||qqccYYTTWW\\aaddhhooooff\\WW^^cchhqq{{zz||~~vvww}}vvjj``bbiixx}}{{yyrraaQQDD==??AADDOO[[eejjoorrooeeVVKKBBBBFFJJJJKKQQXXWWNNDD??CCNNWW``hhppoogg__]]bbnnwwzzooggbbddpp~~{{mmcc\\``cciittwwzz||xxxx}}xx{{nnee``cceejjxxssmmnnooppttwwwwmmiikkpptt||wwttzz}}rrff^^__ggzzvvkk^^[[\\__ddpp}}zzww||}}~~nneebbffnn~~oocc^^]]____``aaiinnhh[[RRMMSSXX\\bbhhmmgg``[[WW^^ddjjjjuu}}sseeVVHHAAFFSS__iioooollee]]RRDD882288II]]llxxyy}}{{kk^^XX[[^^aaddiirr}}{{gg[[aakkss~~ssxxuuff[[ccpp{{rrrruuyy{{}}ssttzz~~pprrzzllYYKKLLWWggzzzzii[[RRWW[[``ddggoovvrrll__XXWW^^eepp||}}uurruuyy}}}}||rrccaamm||zzqqooggZZKKEEKK[[ppqqbbZZbbiitt||{{vvrrppssyy}}rrnnxx{{vvrrjj``TTOOTTgg{{nnZZVV^^mmzz~~~~}}yyttqqqqrrooooww||yy~~wwoohhggpp~~yyoouuxxvvuunnkkiihheeccbbeellzzssaaSSWWccrrvvppoosswwoojjeeeelllllluuuukkpp||}}xxttqqrr}}ooaaiiuu~~rrllggccddeeffggggjjss||ttiikkss}}}}}}zz{{ttyyyyzz{{wwssqqqqww}}qqrr{{~~}}||~~~~zzuuvv}}oohhqqyyqqjjkkooqqkkff__``bbkkvv}}ttrrzz{{uuxx||uurruu~~||wwrr~~xxuuxxzzvvooffddhhllqqvvzz}}wwsspptt||{{wwvv{{yyttkkiilluu||zzvvssww{{{{yyyy||}}zzxxuuoojjhhmmuuvvttlljjllmmnnmmcc``__ddllrruuxxxxwwssuu||}}wwoollkkjjmmsszz{{wwookkllmmlljjeeddccddhhiijjiiffffddeekkqquuuurrnnnnpprrttttssrruuyy}}~~~~~~yyssppooppuu}}~~||yy{{{{}}zzwwttwwzz||xxvvvv}}||||||}}zzxxvvuurrssqqrrvvxxyyyyxxwwxxvvrroollllllmmnnooqqrrqqppnnooooqqqqqqppqqqqrroonnmmnnoorrssvvwwzz||||zzzzzz||}}zzvvvvuuwwyy{{||}}||{{wwvvssrrrrssuuwwxxyyzzyyvvuuttuuvvxxyyzz}}}}}}~~}}}}}}~~}}~~~~~~}}{{wwttssssvvzzzzzzxxvvrrppmmooppttuuuurrrrqqrrrrqqqqqqrrssttuuvvttssqqooppqquuuuuuttttuuwwvvvvxxuurr||yyzz{{{{}}~~~~||qq}}ppqqrrssggddmmnnoossssvvuuiiffccaaUUKKNNGGKKNNJJXX[[WWQQBB::..))&&$$$$   ((..--22::::77557755332255>>AAGGIIJJMMKKFFJJQQOOZZ__ddggggoossbb??oovvɺ뭭Ϟоyyzzzzzzyyzz}}vvvvwwww||||llhhaaNNDDBBFFSSZZYYMM@@::662277<<,,##""&&,,111133@@;;''!!..::>>LLKKBBBB9911++--// ""(())//44//''**55::CCGGGGCCDDJJFF88//44>>BBJJQQXXJJ9988BBEE<<@@HHXXZZOORRMMPPMMFFCCAAEEYYwwkkSSUUJJMMVVccnnww~~yyyy~~~~~~||}}{{}}uussooppxx}}~~vviiiioouuyy~~||yywwyyxxǹʽ¾~~~~vvppnnww~~ttmmggmmwwúľzznneejjzz}}||yyxxuuwwww||wwggZZUURRPPHH>>33//66==AA>><<22((!!""**1166::AA??;;99664444776677::8899;;998811339966557733669977--&&!!##22@@<<::00  ))22::==@@??==>>BBBBAA7788::BBJJQQ^^dd^^VVJJBB;;777777//****33>>GGFFDD66''00;;FFMMNNPPRRSSQQIIHHHHJJOOTTUUXXZZ\\^^ZZRRMMPPTTVVUUTTYYZZ]][[MMBB::88??JJ__iikkhh\\CC00**..;;IIUUbbddffhhllllpprroommiiffjjrr||vvnnnnpprrjjcceelltt||yyxxvvrriiffiippvv{{~~ttqqvvyyggYY[[aallvv~~zzrruu||}}mm``]]\\UUIIBB??BBJJSSWWQQMMDD;;551155AAIIQQXX__ddllppqqqqrrqqvv}}}}ƼƼwwttyyyymmttyy}}}}}}uuddWWMMKKZZll{{{{tt^^MM@@::>>HHQQYY``iijjgg``^^bbeeee``WWQQVV[[ccppxx~~wwnn__SSJJGGEE@@<<;;<<CCHHFFCC??<<77..**++1188>>DDJJIIJJJJNNNNOOQQZZ``^^^^]]^^``aacc``]]\\aaggjjllrrttnn^^QQJJNNZZss~~ttgg]]^^jj}}Ƹyyssoojjhhlltt~~wwppmmnnttyy{{{{ssccPPBB::==HH[[nnttnnee^^QQAA5566AALLYYhhoorruuvvuuzz~~{{||~~}}vvwwzzllbbbbmmzz||{{||||uuooiidd^^YYWW\\__^^[[VVRROOMMKKGGDDDDJJPPUUYY\\``eeffffccbbcchhkkoottyyyyssjjaa^^bbmmuuxxuunnbbTTJJBBDDNN^^nnxxssllccVVLLEE@@CCJJTT^^ggjjlljjjjkkoovvzzuunnhhkknnvvuullhhffaa^^]]^^bbffhhff__[[VVSSOOMMMMOOUU\\__``aacceehhiiffddggkkqquuwwttppiiddaaeepp||vvjj\\NNCCDDLL\\jjyy~~vvhh]]TTHH??@@HHRR__jjnnqqppoollppvv||}}xxttvv}}||xxxxwwvvxxzz~~||zzxxvvqqooss}}ɿ{{zz~~wwssnnjjkknnrrttppjjccbbbbbbYYRRPPUU[[bbggjjjjmmttxxxxxx{{zz||¾ƿ||sskkkkppuuzz||{{uuooiibb]][[^^bbjjooqqssttvvwwyy~~}}wwwwzz}}uurroommllooqqxxxxvvppmmiiee__\\[[__ddmmqqppooqqssuuvvxx~~||uurruuzz}}nnbb____aahhmmrruuxxwwoohhbbZZUURRRRZZaahhkknnqqssvvyy||~~{{{{yyssppllggccffiijjeeaa]]ZZ[[ZZQQJJIIKKPPWW[[aaffkkllkkjjllnnqqnnllhhjjoottzz||~~~~yynncc\\__cckkqqssuuuurrssssrroolljjiiiikknnrruu{{~~{{xxuurrssttwwuussnnkkhhffaa]][[ZZZZ``bbddccffiimmrruuxx{{zzvvnnhhddhhllssuuvvuurriibbYYRRNNLLOORRWW[[[[YYTTPPJJGGEEAA>><<>>DDJJPPPPRRSSWWZZbbhhmmqqrroollkknnqqvv}}xxvvwwttqqooqqssuuwwxxwwwwxxxxttnniijjnnsszz}}{{yywwyyzz{{{{xxttqqoonnkkhhccaaffjjnnqquu{{}}||~~}}}}ÿ||ttqqppvv{{~~{{vvwwxx}}||yyvvttssrrqqqqnnmmkkjjiijjkkllnnqqvv{{~~||{{}}}}~~}}||~~||vvppoottxx~~}}zzwwuuwwwwuuttssttrrrrrrrrrruuyy{{wwww{{{{ooeebbaa^^\\ZZYYZZZZWWVVUUTTNNFF>><<==GGPPXX__ffkkpplliiffgghhmmqqxx}}}}yywwwwxxxxyy{{~~||||}}||{{}}}}~~{{}}||zzxxuuttppkkeeaaaaccffjjoouuzz}}}}wwrrppqqqqrrssttttwwxxuuooffbb__]]YYUURRSSWWXXVVSSPPNNLLHHEEDDHHIIIIHHGGGGFFEEEEHHNNTTZZaaffkkoonnllhhffddhhllyyvvppnnmmiiiiiinnssttuuvvuussnniibb__``ggmmww~~yyuurrpprrxx||~~{{ssppmmkkffccbbbbddeeddbb]]WWQQKKGGHHLLPPXX^^eekkmmoooommkkkkooqqrruuwwyy{{}}{{yywwxxxxvvrrssuuyy{{}}{{yywwvvssssuu{{~~{{yyxxyy}}~~zzsskkaa]]``ggppxxzz||~~~~}}||~~||yyvvrrrrqqppoommllkklljjffcc````^^\\[[^^``bbeebb]]XXTTRRTTYY^^ddkkrrww{{||}}||zzvvuuww~~||~~~~zzvvuuxx~~yyqqjjhhllppuurrppjjffaa\\UUPPOOSSZZcciikklliihhggffiinnttzz~~~~}}yyzz{{{{yyyyyy{{{{yyttttttvvttssrrrrrrssttyy}}zzttoooorrxx||~~yyuurroommnnoopprrvvyy||~~~~{{vvqqnnnnooqqppppppmmllnnppssssrrookkhhffiillrrww{{wwqqnnppss{{||zz}}{{wwttuuwwyy{{~~{{ttrrqqookkhhffggggeecc__\\WWRRMMIIGGHHLLUU__hhqqttvvuussssuuwwxxzzzz~~}}zzxxwwttoolliimmnnoooooopprrssuuvvwwxxvvxxxxxxzzxxxxwwvvssww||||yyuuuussssssssttrrppii``WWSSQQUUYYggqq{{yyttnnjjjjoovv~~~~~~zzvvssrrmmmmjjiiiieeddcc``__``]]__ddccddccbbeeffffbbcc``aabbaaccbbggmmvv{{uuppqqww||zz||}}}}||||~~||uunnkkiinnww}}{{{{||||zz{{||~~||||uusstt{{zzuuww{{zzuurrnnlliiggggggiijjqqsswwssnneeWWSSNNPP__kk}}}}~~}}xxttrrvvwwqqjjkkllllpppppptt{{zzmmhheeffggkkkkllii\\SSLLOO\\ggllttxx}}jjaaddqqww~~ppkkoouuvvssjjaaQQNNRR\\nn||}}ssnnqqxx||wwww{{{{ww||{{vvxx||~~yyttooqqvv||{{ssqqvv~~yyoogghhiijjhhhhffffjjjjddYYJJEEKKWWddvv~~yyvvmmiiffiiiirrssuuxx}}~~ll[[SS]]hhxx~~yynn``__jjssqqwwzzllggoo}}{{zz||}}~~}}yyhhaann~~}}vvĻ||xx{{rr^^SSYY``nn~~ttggddjjss||}}{{{{||xxooqqyy}}vvssttyyttttzzii__eeuu~~dd22mm||$$==BBKKgg\\QQAAIIeeϻppttKK$$##>>44GGnnKK??LLuuYYNNLLqqhh!!EEzz||nnHHKKZZGG[[llvvTTbbyyzziiYYaa^^uu~~mmmmddzz»jjYYppħqqbbuuzz{{wwrr^^YY]]gg~~iitttt{{qqXXAA<<XX{{jjccggiissxxppnnvvhhZZNNNNCCFFTTqqrr[[LLJJUU]]llwwYYLLTTNN44--;;aaؾ}}ooiikkoo``__jjffkkeeII99EEffwwmmvvtt\\TTdd~~vvwwTTDDSSffXX[[nnrr{{uuzzjjpp||__PPDDUUnnyyeeNNRR^^hh||~~rrnn||vvuu{{vvzzss__>>9955..**BBEE99777777** 00NNggbb^^jjaa>>##&&22<<EENNmmqqffLLGGEEPPWWgg~~}}||vvmmaa[[mmuunnssggrr||wwffgguuwwʺ}}qqzzvv\\jjuujjaagg˾ԽøǤ~~pp}}kkUUJJVVffyyyyrrllXX[[ccffhhzzhhNNAAEEOOXXii||wwwwzzxxyyyypp``]]ddzz{{kk^^]]aaoo{{wwjj``UUSS``~~~~vvww]]QQHHRRjjoommuu{{qqqq˲ëllhhkkhhffllbbUUTTPPJJ<<''!!))BB``ttrrjj__QQ99''!!$$%%))11CCRRGG66""<<QQ__bbQQKKSSUUWWYYXXWW[[^^aaddVVLLZZggrrzzzzaaMMBBEEII]]mm{{ssllxx}}ssooii``ffsskklltt}}yybbOOXXoo~~~~ttoovvqqUU??DD^^nn{{{{vvrrlljjffUULLRRffwwxxnnrrss{{uunnhhqqxxwwssnnjjkkll``KK;;//::]]zz}}mmQQ;;0099BBJJYY__eeffVVII::44BBOOZZhhwwwwqqff]]ZZddllssvvppaaUUWWccqqmmSS>>FFMMTT``eejjiiiiiimmkk\\QQLLaattmmppvvvv{{ppXXHHTTffuu{{~~}}||||uuqqooss}}yyrrtt||eeSSRR\\oo~~{{{{||||ssddXXRRccƹǻǾȽbbaa``ggss||ll``]][[UUFF.. ''::ZZuuzzuuggUU<<++..22>>IISS\\^^YYFF33$$&&));;JJWWccddbbaaVVRRRRRRXX``ccaaRRGG??EERR``llttjjXXEE??CCHHRRaaiiiiiiiirrrrhhXXNNWWoozzrryy~~kkVVSS__iiuuttppppxx}}zziiXXNNZZuuòǰllXXXX]]YYWWddjjppuuppiiXXCC22<<MMbbttmmggccUUFF::>>BBRRggvvooee__WWEE88??EEKKQQYYddnnqqhhhhiijjkkllqqzzuummggeeqq~~nn__VV``hhttvvooxx~~}}mmggllttyynniikktt||zzssmmii[[OOQQaa}}º͸}}zzxxyy~~{{yyttjjXXQQXXoooo]]NNJJNNTT]]iioojjeebb]]II::4488AAII]]jjqqoommiiffjjrrxxxxuujjZZNNUUggvv||ppXXMMTT__hhppwwwwwwttuuppccRRKKVVxxoouu{{kkZZXXeeqqyy{{wwiikknnwwmmXXTTbbͿ{{~~wwrrqqllWWFF::@@bb}}ffII225599HHUUaajjhhffYYII33**66BBQQhh{{wwnnllkkoorruu~~yyllbb``eeuurrffZZSSZZddmmnnoorrxx||nn__YYcc{{vvbb]]ccll||yyzzyyppqqssyyyynnffssƿļ}}xxvvzz}}uussggSS==2277QQssuubbTTHHJJPPZZccgghhdddddd]]OODDAAMMWWkk||}}ppee``hhuuzzvvxxuull\\QQOO[[mm}}wwhhXXHH??BBMM[[hhppttwwzzuull\\OOTTllȽoovvzzggXXTTbbss||vvttyyvvccTTPP__ɵĺŧyyhh__ccjjppssuuuusskkbbPP;;++++FFffzzffVVOOPPYYbbiilloorrrrrrrrssggLL77;;DDMMUUXXWWZZmm||ttiibb\\TTQQSS\\ddssmmZZJJCCBBFFTTbbnnvv}}zzrrccSSJJSStt¼~~zzxxvvyyvvhhVVKKOO^^ppzz{{vvyyyyggccaaeekkuu||}}||wwqqhh^^SSSSbbʻҾqqffaa[[\\ccnnxx}}xxttgg``[[OO@@99@@QQllqqeeccaa``]]\\``ddiinnrruuqqffYYHH;;--,,55DDSSccrrnncc^^XXSSUU__iixxyybbPPFFLLQQ]]llzz{{ssjjcc``^^YY[[aappuuqqss}}{{nnccaahhss||~~~~}}yyhh[[VVVVaaiiqquuxxttmmggggmmrrttww||Ķžyyjjcc``__bbeekkoohh__UUQQKKEE????>>>>FFWWeeoorrttssnnee\\UUVVZZ]]``aaccddggff]]PPGGBB@@DDLLYYeekkjjhhffddhhiibb__ddnnxxssbbTTNNMMRRVV__kkuuvvuuttrrnnjjkkllllnnrrzz||}}||rrggeeffnnyy~~zzzzvvjjkkllrr||~~~~ÿoo]]SSQQRRYY^^\\WWUUTTMMIIAA::44112255@@KKUU[[``ggjjcc[[UUNNKKNNTT\\__bb]]YYWWVVRROOKKKKOOUUZZ^^``]]XXUUQQUUWW[[``eehhnnxx||~~zzssjjeegghhmmss||~~vvkkbbcckkss||{{vvssrrvvyyrrppppqqttzz}}||zz}}zzuurroojjddYYQQMMNNPPRRSSTTYY[[WWRROOIIFFDDDDJJPPUUYY]]ccccccaa]][[VVSSSSQQRRTTUUSSPPLLGGCCEEJJNNRRWWZZ[[XX[[__^^ZZXX]]ccllttyy~~}}||{{{{{{uuqqnnllmmss||zzwwuussqqqqqqqqvvzz||~~{{xxyy{{}}uummkkrrttkkffbbiiooww~~vvqqlloovvýyyuuvvyy||{{||{{ttoo^^PPFFFFIISS^^iissttsshh]]TTPPPPSSYY__ggiiffaaYYUU\\^^aabbccffjjffbb]]XXTTQQPPUUWWYYUUSSXX__ccgghhddggjjeeddcccceeiinnuussqqmmkkeeddggkkrrww||}}zzvvttttttvvxxyyzz}}||yyuurrppooppqquuyyxxssoolljjhhffggggdd``aa^^[[WWWWWWYY\\__cceebb]]VVQQRRSSSSSSVV\\__``__^^[[WWTTSSVVZZYY\\^^____YYRROONNOOSS[[bbggffdd]]XXSSQQRRXX__hhkkjjgghhggeeeehhnnvvzz~~}}zzwwttttyy~~xxvvttttwwzz}}~~{{yywwuuuuxx{{||}}{{yyvvqqrruuxx{{||~~}}}}zzvvttttssrrppqqqqssuuwwxxzzyyxxxxzz{{}}~~||||{{yyxxxx{{~~}}zzssrrrrrrttuuxx||~~xxqqkkffffggoossvvzz||wwssssvvxxxxuuttvvyy||{{yy{{~~vvppmmooqqww{{}}}}||yyssooppssuuvvxxxxuussqqkkeeccddeeffffhhiiiihhhhgghhkknnpprrssqqoommnnpprrwwyy{{xxxxyyxxvvttvv{{~~}}}}~~}}{{||zzvvuuqqmmhhhhjjnnttxxyyyyvvuussppmmjjhhhhjjoottyy||||xxttqqooppsswwzz||||||xxvvuussssssttuuxx{{}}~~||yyvvxxyywwvvwwwwvvuurrrrssqqpprrssvvwwuuuuqqppqqqqqqqqssuuwwxxyyyyxxyy{{zz}}~~yyzz||uurrppqqssuuxxzz{{zzuuoollkkjjnnnnnnmmqqppnnhheeddggjjmmoossxxzzxxuussqqnnkkiikkkkjjiijjkknnppttzz{{yyxxzz}}~~}}||zzxxvvyyxxuurrooqqxx}}~~{{yywwvvuuvvxx}}}}zzwwttxx{{||xxttqqppoolljjjjmmnnmmiiggcc__``ccggkkmmlliiffcc^^]]``ddddffhhkkmmppoonnkkjjllpprrttqqoommmmmmppttyy}}~~||zzxxwwyyxxttppppttuuvvwwwwzz||yywwzz}}~~||||~~||yyxxvvttssttttuuxx~~}}}}}}~~}}{{yywwuuttssssrrppoooorruuxxuuuuuuuuttssqqqqqqssvv||}}}}zzwwttttttuuttssppppqqssssrrqqppqqrrttvvvvvvuuttttvvxxyy{{zzyyyyyy}}{{yyssmmrr}}}}ttuuhh]]jjllee]]eemmuummiiee]]]]\\\\cchhcc]]XXRRQQUUUUUUVVRRSSRRTT]]SSII;;))''!!%%..''))2266,,""!!''--//--%%""$$--884444??AAEEKKBB88====;;??CCGGJJNNYYVVVV]]aaiillnnllkkllnnkkllllmmppwwNNcc¾þÿƱ||ุܤ㷷ϧ¾~~vvwwwwxxxxqqffXXHH553388<<TTVVIICC::0000%%**       ''$$!!''####''(((()),,;;MMDD554499====AALLII66;;??CC;;::>>GGJJJJAAAAHHIILLEEFFBBFFXXjjkk``[[VVSS[[]]````cceejjlljjkknnrrppnnllhhkkkkuuxxyyxxuuvvvvww}}~~{{xxxx}}}}||}}}}}}}}||{{}}}}wwssqqttsshh``^^``ssyyyyyyrrlljjnnrrwwxx||{{qqrrsssszzzzzz}}~~{{~~~~ƾ{{{{zzzz||~~vvkkeeffhhiikkllggeeccdd^^XXSSNNQQOOJJFFGGGGGGFFDD??>>BB??AAEEDDCCAAAACCCCCC??@@::998866;;88888844335533++--**,,,,11116699::8833,,116622//--,,//,,,,//00//444400--**..11448877::6699;;??CCDDCC@@@@DDHHKKMMMMJJJJGGBBEEIIJJMMOOFFEEEEIIIIGGHHGGGGJJLLOOUUXXUUNNNNKKLLJJNNMMNNSSSSPPMMNNQQSSOOLLJJGGHHEEDDFFFFGGFFFFAABBEEIIOOPPQQRRSSVV[[ZZXXQQMMJJMMPPSSVVXX[[ZZXXZZUUTTVVYY]]aaffkkiiffhhiikkgghhjjppqqqqoommoonnkkooppmmnniijjjjkknnqqrrttxxzzzzzzxxxx{{}}}}uuookkoossvvwwwwxxwwttppmmkkjjkkkkkkiiggbb``____^^YYXX[[]]\\YYVVTTRRTTVVVVYYYYVVSSRRQQQQSSVVYYYYYYYYYYXXTTPPMMOOOOOOOOPPQQRRPPNNKKIIJJLLMMNNRRXX\\]]ZZWWSSSSWW[[\\ZZYY[[]]``aaddiikkhheeddbbcceehhjjllnnllllqqqqrrrrppppttzz}}yyuussssssssssvvxxyy}}}}yyttnnllmmppttww||}}{{yyttrrttxx}}}}}}||zz||}}zzwwxxzz{{{{}}~~~~~~~~~~~~||||}}~~}}~~zzxxwwwwyy~~}}~~||xxqqssuuttpprruuyyyyyyttqqppssvvxxvvrrlliigghhggggbbbbddffeeddddggffffiikkjjhhggggeeddddeehhkknnnnlljjiihhhhhhffggbb````aaaa``[[WWWW\\aaddffffddccbb``ZZUUUU\\__aaddbbaa__cceeeeffeebb``bbaa__^^aaaabbddggiikknnooqqrrqqoonnnnmmllkkjjiijjnnppnnlljjiikkoonnmmiiffeeiilloossssppoorrppnnmmmmnnoonnmmlliiiijjnnppoommllkkjjllnnnnoopprrssuuttssrrqqttww||~~}}||{{zz||}}||{{yyxxwwuuxx~~~~{{wwuussttvvwwuussrrqqppppoonnmmllkkjjiijjjjkkkkkkkkkkkkkkiijjkknnqqssttuussqqppoopprrrrssssooooppqqrrttuurrqqssttww{{zzzzzz{{||||||{{zzzzyyyywwwwvvxxxxyyzz{{zzwwrroonnnnrruuvvvvvvvvvvvvuuttttssvv}}}}zzwwttttssqqnnllnnpprrttttttrroojjffiimmqqsswwzz{{{{zzxxttqqssttttttvvvvuuuuttttuuuussppqqppooooqqqqqqrrttuuuuttssqqppqqttyyzzyyvvttrrppnnnnrrrrrrssssssssppllhhhhlloossxx||||{{xxssrrqqrruuxxxxwwuuttrrqqqqqqrrttvvuuuuuuttttttuuuuuussttssttssssrrrrttwwxxwwssqqqqqqssuussrrppppppqqrrpplljjhhjjoottvvuussssssttssqqrruuxxzzxxttqqnnooqqttssrrssttuussttuuvvttttuuxxxxyywwttssuuyy||~~~~~~~~}}}}~~}}||||||~~}}}}yywwttssuuvvxx||||}}~~~~||{{yyxxxxwwxxyyzz{{~~~~}}{{yyxxxxzz{{||}}~~~~}}||{{}}~~}}||zzxxzzzzyywwwwwwzz{{yyxxwwwwzzzzzz{{{{{{||~~~~||xxvvuuxxyy{{}}~~~~||||{{zzxxwwyy{{||}}~~~~~~~~||||||~~~~~~}}||||}}{{zzyyzz||~~||yyvvww{{~~||zzxxvvwwzz{{||||}}~~}}||||||||{{{{||}}}}{{{{{{||}}~~}}||zzvvttssssrrppooppqqssttttwwyyyywwssppmmkkjjkkmmoopprrrrrroooooonnnnllmmlljjjjjjllnnrruuwwvvxxyy{{||||zzxxuussrrqqppqqssttwwyyzz{{{{||{{xxttqqnnpprrttvv{{~~{{zz{{||}}~~~~~~||{{yyzzzzzzxx{{~~~~~~~~}}}}~~~~~~}}||}}~~}}{{yywwvvwwyyzz{{||}}{{zzzz}}~~}}}}~~}}~~~~}}}}~~}}{{yyxxyy{{||}}~~~~~~}}||{{zzzz~~~~}}||||||||yywwvvvvuuuuvvxx{{||{{||||}}}}}}{{xxuuvvvvvvwwyyzzzz{{zzxxyyzzzz{{yyzz||~~~~}}{{{{||}}~~~~}}}}~~}}~~~~}}~~}}{{zzxxwwvvvvvvwwxxzzzzxxvvvvvvxxzzzzzzzzzzzzyywwssppnnmmnnpprruuxxyyyyyywwuuttwwxxxxwwvvuuttttttssrrqqrrttvvxxyyvvttrrssssrrrrrrppqqttvvxxwwwwxxyyyywwuussrrrrssvvxxxxwwttqqppppppoonnooooqqssuuttssqqppoooopprruuzz}}}}zzwwuussqqqqrrwwyyzzzzzzwwuuttvvvvwwvvwwwwyyyyzzzz{{zzyyxxyy{{~~{{xxwwvvxx{{}}}}yyvvttuuww{{{{{{zzyywwvvuuvvvvvvwwxxyy{{zzzzwwttppoonnoopprrssqqoonnnnqqrrttuuuuttuuwwyy{{}}{{yyuurrppqqsswwyyzzvvvvwwyy||}}{{yyvvuuxxzz~~~~zzuuttsswwyyzzzz{{{{{{{{zzyyzz||}}~~||yyvvzz{{||yyzz}}~~rrhhpp||}}tt{{~~~~ttccRRHHNNTT``rr{{rrllssyyzz{{wwmmffhhrr{{zzxx}}}}~~kkWWOOWWffvv||ssnnjjhhiippxxzzxx{{}}xxooee__ccppzz}}zzxxrrjjbbccqqyyhheejjvv}}iiZZ[[ggxx}}vvhhmmvvttqq}}ɻxxttvv~~uu``TTWW[[ii{{||ttooooppppssxxqqVVLLSS^^lltt~~yyxxssjj[[OOKKTTvvxxbbUUVVWWddppvv}}ffSSDDIIWWkk~~}}||xxxxzz||ppccXXVVhhqqyy}}wwvvrr\\JJPP\\{{jjWWWW[[ddnnttyy}}wwkk[[NNPP]]xxllhhqq~~zzssoo||µzzookksshhVVRRXXbbssyyvvrrqqrrvvvv||pp]]UUaakk||}}||ssdd]]\\jjjj__aakkrrzz||ffRROOYYggzz~~{{xxww}}~~ttdd__eessvvhhaa^^mm||hh^^``eehhppvv||~~qqVVEELLRR]]oozzwwuussxx~~ssaa\\eeuuyymmeeff{{zzssxxpp^^]]ggww||ggXXTT]]llxx~~zzvvooddWWMMSSllvvjjcceeiipptt||ooVVJJOOXXhh||~~yywwssssuuuuxx}}}}ggVVSSbbmm~~{{{{vvhh\\TTYYmmoocc]][[aahhnnttyy||ss\\HH????JJ__pp~~{{{{vvssnnnnqqttzziiYYXXddss||qqdd``hhvvqquuzzzzff[[__ll}}yyxxzz~~bbSSUU``kkzzzzuuuunnbbVVQQZZss~~kk\\VV]]aaeemmxx||yyddRRGGNNZZggxx||~~{{uurrppttvvvv}}ww^^TTYYeettppcc]]eessppssvv{{nnXXRRUUaamm||ssnnkkmmnnrrzziiQQMMSSddqq{{{{wwiiaa]]ggzzyy||xxdd^^ffrr}}{{gg^^hhxxxxjj^^ZZggqqggggnnqqvv||jjYYXX^^jjsszzyy}}tt^^WW__ssrrggccssyy||wwee__eess{{xxxx||ggUUQQ\\kkzz}}zzxxnnaaWWWWiizzmmhhlloorrvv{{||iiUUSS__ggrryyxxxx{{oo__\\ggxx{{jjccaappyynniillnnsswwzz~~ss__RRQQ[[ddnnzz{{yy~~}}vvssmmnnrrqqvv~~aaRRPPZZll}}vvgg]]__qq~~rrllnnwwyy~~ww__QQOOXXbbqq~~yyrrqqlloonnssrr]]NNOOVVeettzzwwuunnddYYNNRRggxxkkjjllppvv{{||ggYYWW__jjzz~~~~rrffeenn||ssggii~~ɽ||zz~~nn]][[``kkxxyywwvvvvuuyyuu^^QQUU^^llzz||oo``WWZZoo{{ssqqttuuyy~~zzddWWVV__hhvv||}}}}{{}}hhZZYYddpp~~yyoo]]UUTTllxxlliioorrssyy||tt^^RRPPYYffrr}}}}||||||kk\\\\ddrrxxgg````zzwwttvvxx}}yybbUUUU[[bbppvv~~yyvvzzttqqnniiiill~~qq[[PPOOWWffxx||{{ooaaSSXXqqvvqqrrvvzz||jj[[WW\\ggtt||zz{{zzyyyyhh\\ZZbboo{{qqbbYY\\uuvvnnkkmmnnrrvvwwzz~~yyllXXOOKKSS\\hhttuuqqrryy~~wwqqmmiiggggnnrr]]OOMMTTaauu||{{ooaaXX__tt}}yyzz~~ssccaahhuu{{}}~~kk\\\\__nn||}}oo__VV]]pp||ttqqttttxx}}||ii]]YYaajjww||xxwwzzgg[[WW]]iizzyynn\\SS\\qq}}ttppppssvv{{xx``PPNNUU^^kkxxyyyyuu~~zzttoommnnxxyyii[[XX``nn~~ttdd]]aa{{{{yyzz||jj[[YY__iixx||uussvvzzggZZUU\\hhyy||vvhh[[NNTTjjvvkkiikkmmrrvvxx}}wwaaNNKKSS\\hhxx~~zzyy||vvoommrr~~yyffZZXX__ll~~ttggbbggø~~ssaa\\__hhuu~~wwrrppuuxxee[[WW__kk~~||oo__VV]]vvyyyy{{qq``YY__llxx}}wwvv||vvffWWVVZZhhxxyywwrrffXXNNTTjjsskkggiikkppqqrrww~~~~tt^^KKCCJJSSccnnwwttvv{{yyppjjjjqq~~uuee\\WW__ll}}{{qqbb[[ccxxzzzz||llXXQQUU``nn||}}vvppoovvssaaVVTT\\ffyy}}wwooaaSSLLSSiiwwnnllrrwwyyzzzz}}iiTTLLPP[[hhww}}{{rrllnnxxssee^^]]fftt~~sshh^^ee{{xxrrxx}}~~}}~~~~jjSSGGKKSSbbrrzzuuuuyyssiieejjuurrhh^^^^eeppuuff__ee{{||}}ttaaTTUU^^mm{{}}rrllppzzzznn``XXVV[[ffrr~~yyssllaaWWLLUUmmxxppppuuwwzzxxzzppVVMMJJWWeevv~~||ooiimmwwuullddddhhttxxllccff||~~xxbbOOPPWWiixx}}ppkkmmww||ppee__ZZ]]hhvvyyqqeeZZRRUUggxxppnnsswwvvxxyy~~vv^^JJIISSaayyuuppuu~~wwoojjggiirr}}ttii__bbpp}}~~zz}}yy__LLHHPPaauuttpprrzzqqmmjjkkss~~~~vvllcceeqq}}zz||}}zzzzzzyy__JJAAIIVVllxx||uurr~~qqff__ddpp{{rree\\RROOQQWWeeqq{{~~wwoojjeeYYWWUUcc{{}}yy||}}||~~iiRRKKOObbuuwwqqxxvvqqmmmmss||ttiiggoo~~~~||eeKK==FFTTggzz~~yyww||nnggmmyy~~ttkkdd``^^ccmm}}xxrrppjj``ZZ``qq{{zz{{{{wwxxxx[[IIJJWWhh}}rrllrr~~zzmmff^^````llxxwwookkff^^WWYYii~~zzyywwvvrrss{{vv\\FFAAJJ``qqrrkkrr}}uukkhhcciiqq}}uussmmjj^^__hh}}zzuuttuurrttzzzzccII==??MM``mmvvuuxxoohhnn||||qqiihhiipp||~~||||xxrriiii~~ƽmm[[SS[[jj||sszzzznnhhffffpp~~vvppppooee\\SS[[qqzzppkkgghhmmvv~~yyll\\FF@@??DDTT``kkxx}}ttggddkkzzxxjjeeccggoo||wwppoorrsshhbbbbmm||ppdd\\__ddpp{{zzttyyxxjjiikkqqyy}}uunnnnlliibb__ddww||||zzllcc````jjttxxuu||xxssooppqqyy}}}}vvnnjjdd__[[XXXXaassvvppnnllmmss{{~~{{rrkk``WWRRRRUU\\jjvv}}~~ssppqquu~~~~zz{{{{zzttmmjjggnn{{}}yyzz}}rrnnkkhhmmxx~~||||~~}}vvttkkggbbccmmww~~yyssnnmmjjkkoouu}}yynnddcceekkvv~~~~||wwwwxx{{yyuuooppooppttxxyyyyyyyyxxttkkiicceehhnnrruuyy{{{{||xxvvrrqqppssyy}}wwuuttyyzzyyyy||~~{{vvvv{{zz{{{{yywwvvxxzz{{}}~~||||wwuuppnnooppuuyyxxrrmmnnoottww{{{{~~}}{{uuuurrssww~~}}~~~~~~~~~~~~}}}}~~}}}}~~~~~~}}{{}}}}}}~~~~zzxxuuuuuuvvzz}}}}{{xxvvuuttttuuvvzz~~~~~~||{{xxuuttssssttvvuuuuttttttssrrqqoorrssvvzz||~~}}}}{{yyyyyyyy{{||~~}}||yyxxxxwwttrrpprrvv{{}}~~||wwwwssttssttttwwxxxxwwvvttrroommllmmppqqttttqqookkiiffddddeeggiijjkkmmnnkkiieeeebbddddggjjnnoonnhheebbbbbbbbaaccccffkkoorrssqqoollkkllmmppttuuwwvvvvuussppoojjjjjjkkoorrssttrrqqmmjjhhiikkqqssyy{{||||{{xxyyxxzz||~~||zzzz{{~~}}uunncc]]YYUUXXZZ\\]][[\\ZZWWUURRRRSSSSXX__ddhhjjkklljjkkkkqqtt||||||||}}}}}}||{{||||}}}}{{||xxttuunnff{{}}ppmmuuvvzzxxxx}}}}}}~~xxttnnvvttkkii``]]VVZZVVSSQQEE9911;;>>GGSSWWbbbb__]]dd__iixxxx||||ssssllrr||||{{{{wwkkbbjjjjmmsskknnnnhhttppppiiiiqqjjqq}}wwwwwwssww~~~~oooo||||}}qqqqmmwwuuuumm__cc[[bbbbkkmmmmii``cc[[YYhhhhqquuqqnnqqqq||wwww||{{{{{{yywwsszzxxxxxxxx{{yyyyzzuuuu||||||||ssaaVV[[[[ccccVVVVLLFFFFIIOOKKKKJJJJMMSSSSKKFFAA==DDIIIIGG::,,,,  $$$$$$''))%%!!((,,44;;CCOOOOYYYY\\\\^^bbhhhh\\SS[[mmxx}}zzzzllϞuu巷ŔԹǿxxqqqqqqqqvvvvnn]]HHAAAAFFYYjjjjaaYYNNKKBBBB;;,,''""))005500     ++++  ##  --99<<66--77====4444AAYYbbZZTTNNHHHHDD@@====HHRR[[SS??????EEKKKKOOSSSSSSSSUUWWYYffssoooolliiiirrxx~~~~zzmmmmmmmmmmyyvvvvvvvvnneeeelluuppkkiiggsszzoooooowwwwww~~||yyssjjeehhvv˾ûľ~~yyxxxx{{}}~~yyvvyyzzuuuuxx{{yyxxttqqiibbeeggjjeeZZLLCCFFHHEE;;772200**'''',,++++''## $$&&**--..))''((..001122..((##$$**11;;DDMMPPLLBB88))##11<<@@;;8844++'''',,1199AAEEBBAAAADDGGLLUUVVWWWWOOJJFFHHOOWW__[[RRKKFFCCBBAA>>==;;;;<<==@@CC@@>>::11--33<<HHKKLLIIHHGGHHHHFFFFAA>>AADDFFQQ]]ggmmjjggYYMMEEEEPPYYbbiikkhhddaa\\XXUUYY__ddiimmqqqqlljjmmqqssuussqqiiccbbjjqqnnccZZTTQQPPQQSSSSMMIIDDEEEEFFIIFFCC@@>>??BBFFKKPPNNJJJJQQTTRRTTWWUUTTTT\\ffqqzz}}ttookkhhhhkkqqyyxxqqoommllqqww}}zzxx~~ý¸~~yy{{}}yywwzz~~||uullggccddccaa__^^]]__aaddffggee``aaccbb__^^^^\\[[\\``ddhhlloonnkkjjiihhkkllllhheebb``]]]][[\\^^]]]]``````__^^\\XXYY``iitt{{}}yyooggccbbbbbbcceeee__ZZWWUUTTRRNNJJAA::::====>>??>>====;;>>BBAA??>>AAGGNNSSRRKKFFDDGGLLRRWWZZ\\__aa``^^\\[[VVRRPPOOPPSSVVZZ[[]]^^]]\\]]^^__ccggffhhmmxx||}}||xxvvttqqrrrrttwwyyxxxxwwxxyyzzyyzz}}~~||yyxx{{~~~~yyttqqppoonnkkgg``[[TTOOMMOOSSWW[[[[YYXXWWXXTTSSSSTTUU\\__bbbbeehhjjmmqqttvvvv{{~~}}||||yyyyvvttqqoolljjkknnqqssssppjjggggmmrrvvzz}}yyuuuuuuvvwwvvuussmmhheeddaa\\VVNNKKIIMMQQTTVVVVVVRROONNMMOOQQXX\\__^^]]ZZVVUUXX[[``aaddffiikkiieeaa^^__bbeeggggffeeeehhjjjjiijjkkkkiijjnnrrvv||~~{{zz}}~~xxttrrttuuvvwwuunniiffgghhkkjjkkiihhhhhhiillnnoommjjhhjjmmsswwyy{{{{{{~~~~yyxx{{~~~~}}yyvvttssrrttvvxxzzxxssnnjjmmppttvvwwxxxxwwvvvvxxvvvvzz}}yyxxwwxxyyzzxxvvttxx||}}||}}~~||wwnnhheeccccddeeddccccddeeggffeeeeeehhiikklloorrxxzzxxvvuuvvvvttttttvvyy||}}}}xxttoojjggkkoottssttvvxxxx||~~~~yyrrmmggbb__````cceeffee``\\[[[[^^__``^^__``aabbcceeggggggggiinnrruuyyzzzzzzzz{{}}||zzuuqqnnoorrvvwwvvuussoollnnttxx||}}wwvvuurrkkggddddddddeeffdd``ZZWWVVYYZZ__ddggggeeeeffffggjjoouuyy{{||}}~~~~||zzyyxxwwwwuurrnnjjiiiijjjjkkjjkkmmqqttxx{{}}}}{{xxuussrrppnnkkhheeggllpprrppnnmmllpprruuuuttssssuuwwyy{{{{{{zz||}}{{~~~~||{{zzxxzz||~~{{uuppmmoorrww{{zzzz||xxssppqqrrssoollkkllooqqrrrrssttttssttvvwwyy{{||uuuuvvxxzz||~~~~~~}}~~yyqqllhhmmqqvv{{zzvvrrppnnmmllnnpprruuwwyyxxxxwwxxxx||~~~~zzxxzz||{{||}}}}}}~~}}zzwwppkkeeeeeeeeccaaaaeekkppqqppooooooppssuuttttssrrssvvyy||zzyywwwwvvvvuuttoonnnnoooonnllllmmmmkkjjkknnrrxx}}}}{{}}xxrrrrttwwxxzzyyxxttmmiibb__\\\\[[[[\\]]aaeeffffeebb````````bbffkkppttwwwwzz||}}{{wwvvxx{{~~zzxxttrrqqqqqqqqnnnnnnqqvvzz||zzwwyy{{~~zzuupplliiffeeeehhhhjjkknnoopprrvvyy||}}~~zzvvssrrqqqqqqttvvxxxxxxyyxxxxuurrssttyy}}||yyuurrqqqqqqrrttvvwwvvvvwwyy{{||}}~~}}~~||zzwwttooiieeddeeffeeeeeegghhjjjjjjiihhffeeggjjmmpprrrrppoopprrssssrrrrssww{{}}}}}}~~~~~~}}}}}}~~||zz{{{{{{{{zzvvuuuuvvwwwwww{{~~}}~~||yyyyzz~~~~~~~~wwkkbb^^aannyy~~~~}}ttppss~~wwnndd[[XX]]jjww~~~~~~{{ssnnppvv}}~~{{rrhhaaaajjtt||}}yyzz}}zzhhZZOONN[[fftt||yyqqxxyyvvww||~~{{yywwmm__OOJJSSiizz~~vvooss~~}}ssjjffffddcchhppssttllccTTFF>>DDUUccrr||}}rrjjjjuu}}vvttrrttuuyy||}}wweeRRGGJJXXjj~~yyuu{{{{uuttttttsswwzz~~||ssaaRRDDBBJJ]]nn{{}}}}{{yyppiiddmmxx{{ttqqqqqquu{{~~ss\\JJ====MM``uu~~yyqqiijjss||{{ssoollhheejjqqyy||{{ssggVVNNLLWWiiyy~~}}}}uunnkkuuzzzzzzssxx||ppbbSSNNZZmm{{zzyyrr__ZZ[[jjyy}}xxll__eerrii^^ffttxxjjlluu~~wwmmkkgg\\ZZaajjoossqqggZZHH@@JJ]]rr~~xx||gg]]]]hh||}}zzjj__RRWWpp~~}}wwttvvttww}}llXXLLTTccqq~~vvttsszzxxuuyy~~xxaaMMJJWWrr||uuyy}}xxssllttpp^^WW]]ll}}~~~~ppUUDDJJXXpp||uulleellxx}}oohhbb[[__ccmmzz{{hhVVBBBBOO__rr}}ttqquuyyuuyykkOOGGNNffuunnoouuyyssooggffiiqq{{||ffQQ@@DDVVkkyyxx~~yyyy~~~~mmWWOOYYqq}}wwllkknnxxww__LL::DDQQiiyy}}~~~~||ttjjiirr~~wwttttxx~~}}ppXXEEEE[[tt||}}vvssppxx||ffPPEEOO``tt~~~~{{ppllllss}}uussww}}jjUUUUmm||xxkkUURR^^ssvvnnnn||uummiinntt}}{{ggSSDDLLgg{{uuqqssyymmVVCCHHVViiyy~~uulliioozzwwkkddddhhnnvv||}}{{nnUU==;;IIbb||~~zz~~yyvvzzvv``NNNN``vvzzmmjjqq||pplljjnnss}}}}jjPP<<>>QQeexx}}zzqqnnrr{{}}qqkkhhiioozzuu``IICCJJ[[qq||zznneeggrruunnhhjjnnvvyyaaJJ::<<OOgguuttnnllooxx||rrjjddaaccllttqqZZKKEERReexxxxuuyywwssvv~~qqUUHHPPbbzzvvvvzzvvnnffbbffooyymmYYHHFFRRhhyywwppxx~~{{}}ooWWJJRRkk||yywwoonnppwwnnWWFFIIYYoo~~yyww||zzpp[[VVcc{{~~wwrrqquu~~tt]]PPRRaauuxxuu}}||xxwwyy}}ggWWTTeezz{{yyyynnXXKKNN__rrzzrrqqwwyyuuuuyyxx``NNPP]]uu~~{{kkWWOOXXeeww~~yyrrllkkpp{{yyrrkkkkrrtt``LLIISSii}}vvpptt{{rrookkjjnnyyss[[NNHHPP__rryyssnnhhjjnnxxwwppkkkkss~~ppbbRRMMRRiixxyyzzxxssrrrrxxxx``NNHHQQ``ww{{uuookkjjqqyy{{nniijjttyyll^^QQFFHHUUffpp{{vvmmpp||wwllkkmmssxxnn]]QQMMOO[[mmwwppllllqq}}ssmmnnwwuuhh````^^ddjjss}}yyuu||~~oohhnnwwyyhh__[[\\__nnxxtttt||}}wwzz~~rriiffhhiinntt}}mmddiiyyrrbb\\^^]]``jj{{zzqqppwwzzwwvv||~~rrllmm||~~dd\\eexxuubbRRMMSS[[````ll~~ooeeggrr}}~~yy~~zzuuyyvvhhiirr~~}}}}~~hh[[bbttyyppccZZTTYY]]__]]bbmm~~uuggaaffppzz||ttxxzzxxssqqyy~~zzxxyyjj\\hh||||oo``VVXX]]ggggiibbggttyynnkkppvv}}ttnnxx||}}zzssnnpp}}uuoorrvvrrttzzll__mmzznnbbSSPPOOWWeellllggddllttppgg__ccjjuu||||jjiiss}}zzxxqqkknnvvuunnoovvyyrrmmlluu{{uuyykkddeeqq}}||xxww{{wwppiikkww~~qqppzzttnnnnvvzzppoowwssqqxx||mmffccllvv~~||{{{{xxppoott}}uuwwttllhhbbhhvv}}yyzzttii``ccoo~~||qqoovv}}rrccaabbhhnnqqrrvvyy||xxssppqqtt{{zzssmmnnww~~zzyyuujj``[[ccpp{{wwoopprr{{wwooffeeiioouuzz{{{{yywwssrrvvzzzzxx}}}}qqiiiirr}}~~yy||{{vvrrppqqssttuuwwyywwxxxxxxzz||~~~~||}}||||yyqqlloozz~~zzzz}}{{rrkkeehhkknnpprrssttqqoooopprrwwyyyyzz~~zzvvww~~}}zzrrllllppzz||vvttxxzz||xxwwuuttqqnnggbb______bbbbccbb``__^^aaeejjnnnnllnnqqvvyyyy{{{{yy||{{uussttxx~~}}zz||}}yyrrmmkkjjjjkknnoonnllhhiijjnnqqqqppoonnppssuuvvxx{{~~zzuussssyy}}}}||zzxxvvvvvvxx{{{{wwyy{{}}||||zzyywwvvssppnnllllmmqquuxxzzxxwwuuvvwwxxyyzz{{||||}}}}}}~~~~~~~~zzyyzz||~~~~||~~||{{yyyyxxzz||}}}}{{xxwwww||}}~~}}{{{{{{||{{{{{{zz{{zzxxyyzz||~~~~||yywwxxyyzz{{||{{zzzzyyyyzzyyxxvvuuuuwwyy||{{xxttqqppppqqssttvvxxxxwwwwwwvvuuttssttww{{}}~~~~}}{{zzxxzz{{{{}}}}{{xxxxzz~~~~}}}}~~~~}}zzxxwwvvvvwwxxzz~~~~||}}~~~~}}}}}}||}}||||zzxxxxyy{{}}~~~~}}||}}~~~~~~||zzyyyy||~~~~}}{{zzzz{{||~~~~{{zzyyyyzz}}}}{{yywwwwwwxxwwvvvvvvvvvvuuttssppooppssttuuttttuuuuwwxxxxxxwwwwvvvvvvwwvvuuuuuuuuuuuuttttttttuuuuvvuuwwyy||}}~~~~~~~~~~~~~~}}||{{yyxxxx{{}}zzwwvvxxyy||~~~~||{{zzyyyyxxyyzz{{||||||||~~~~~~~~}}~~}}}}}}||||{{zzzz{{{{||||||{{yyyywwvvuuuuuuxxyyzz{{{{{{{{yywwssqqqqssttuuttssqqppoooooooopprrrrttwwyyxxwwvvvvwwyy{{~~}}||||}}{{{{||||||{{{{zzzzzz{{zzyyzz||~~~~~~~~||{{||~~~~}}~~~~~~~~~~~~}}||zzyyxxxxxxwwwwwwxxyyyyyyxxwwwwvvwwxxzzzz{{||||}}}}~~~~}}||{{||~~~~}}{{xxyyzzzzzz{{||||}}~~~~}}||{{zzxxxxyyzz{{zz{{zzzzzzzzzzzzzzzz{{}}~~||{{zz{{||||||zzxxwwuussssttvvxxxxzzyy{{{{{{{{zzxxwwwwwwxxxxyyzz{{}}~~~~~~~~~~~~}}}}~~~~||||zzxxzz{{}}}}||{{zzyyyyxxxxwwwwwwxx{{}}~~~~}}{{yy{{}}}}}}~~}}||||~~~~{{zz{{{{||}}}}||||||zzxxvvssqqppqqqqqqqqqqqqrrqqppnnllkkllmmnnoorrssttuuvvxxwwvvvvwwzz{{{{{{zzzzzz{{{{zzzzxxxxwwwwwwxxyyzzzz{{{{{{{{||}}~~}}}}~~}}||||}}~~~~}}||||||||}}~~~~}}||||{{zz{{||}}~~~~}}zzxxxxyyyyzzyyzz{{}}}}{{yyxxyyzz{{||}}}}{{zz{{}}}}}}~~~~{{yyxxwwxxxxxxyyyyzzzzyyyyxxxxwwwwwwwwxxxxwwwwxxwwwwvvvvwwyy{{}}}}~~~~~~}}{{{{{{{{||~~~~~~||||||}}}}~~~~~~~~}}}}||~~~~~~}}||zzyyyyxxxxyy||~~~~~~}}||{{zzyyyy{{~~}}}}}}~~}}~~~~~~~~~~}}}}||~~~~}}||{{{{zzyyxxwwwwwwvvuurrrrppoonnnnnnnnmmmmllkkkkkkkkjjlloopprrqqqqppppppppppppooppoonnnnmmmmmmkkmmnnppqqrrssssrrrrssttww{{||vvvv~~~~||ttrr||ttkkllss""''__aaccШLL++00&&FFnnooffVVBB>>hhʚVVYYEE%%NNaacceewwxxxxkk\\$$**~~ÿiiPPSS``llrrkk{{ǵ[[^^Կvvqqmmeekkwwzz}}qqTT@@&&++99LLccjjllmmnngg__^^XXffzzffOORR[[]]``ffuuvvvvwwiiffPPBBMMqq}}dd^^SSOORRddXX55..HHKK66##))''--OORRUU__aaEE??CCGG55..""++JJNNCCGGUU]]ddrrssmmVVPPCC@@00**44LLeettrrsslltt||ddffnnooppzz˹䊊жɿռĿóĿ¶ŷȺ}}}}}}zzwwwwzz}}jjSSLLEE88<<GGQQ__WWLLOO==221166%%          ##))22""!!,,1166##))''--!!,,JJ]]IIFFDDGGKKFFIIWW``bbuu{{{{||yyppwwzzuuzz~~wwzznnoopptt{{||qqllmmyyyynnooppnnmmllmmeeaacc^^WWPPPPPPUUaappqqjjWWSSPP^^eeffddffgg``[[VVYY__ddjjnnvvxxppkkllggffss½Ŀʿ¾¾Ž}}ww{{{{yyuullaacceegg``]]__``UUTTSSOOIIJJFFEEGGJJIIAA==AA::220022333333--227766..//11))++&&(((($$##$$ ++22//''((&&%%%%%%++,,)),,1166;;8877<<@@GGLLPPUUYY[[^^^^ZZ]]ggjjjjffjjee]]]]ddggiinnvvvvvvrrggggccWWPPTTYYYY``^^SSOOOOOOOOOOII======@@@@@@>>::1111++))--7777,,,,//////------..2211//66::88888888??==9999<<<<@@>>9999::;;@@JJNNKKEECC<<<<EEEEEE@@<<>>EEIIUUMMMMMMJJJJGGLLTTTTTTYY[[]]]]\\^^bbcc``aaeeddccccaacceeggllrrnnnnqqrruuttllllttttrryy~~xxttwwrrssxx{{~~~~~~xxxxxxyyrrnnvvxx}}}}}}}}||||~~{{zz~~yyxxxxyysspp{{||||yyyyyywwuummffccccccmmttttqqjjrr}}}}}}yyyy||||||zzxxrrmmmmmmjjggeedd\\TTQQSSSSSSUUXXTTKK::::55555555;;GGNNQQQQSSSSOOOORRRRVVVVTTTTQQIIFFFFKKQQWWWWZZZZZZUUUUXXOOCCCCJJJJLLSSOOOOOOOOTT\\\\\\``hhhhhhdd__WWTTTTVVccggnnnnkkffaa]]aakknnrrzz||uuuuqqqqvvyy||||~~}}{{yyqqqqqqggddaaZZZZ^^\\TTTTTTTTTTRRUUXXYY\\``aa^^]]bbggcc__aaaaeeffff____ddhhhhhhggggcc]]__bb__``^^ZZZZ[[[[^^aa]]YYXXXX^^ddjjkknnnnnnjjiillkkddaaaahhhhjjkknnllffmmttttttwwyyuunnkkppssrrrrookkmmppssxx{{ttmmkkoouuuuuuppkkffjjmmffaaaaccffnnnnjjbb]]]][[^^ccddbb``aa``eeiiiihhbbbbbbbbcccceeffggbbbbbbbbffkkkkeeeehhmmiieeffhhmmmmmmoovvvvvvvvooooss||{{rrlliikkppxx}}~~}}wwttww||{{{{{{{{{{~~}}wwwwvvrrkkffjjqqqqgg[[RRNNQQ[[\\XXSSYY______``]]]]__]]__ddjjmmii``aaggkkooqqrrssoolljjjjjjiiffffhhllnnnnmmkkeeaaccmmqqqqoonnoorrqqqqpppprruussssssvvzzwwuuuuuussrrvvwwwwuuttzz||{{{{}}~~}}||}}}}zzyyxxxxzzzzuussqqppppttuuwwzz{{xxxxxxyyvvrrnnlljjggffjjssxxzz||yyttssrrqqnnkkiiiillnnnnnnppmmiiggjjlliikknnkkllmmppppnnllmmllmmpprrttttppnnppssuuttvvxxvvuurrssuu{{yymmggffgghhjjffbbddffffhhffeeeellnnppmmggbbbbbbddddffkkoorrrrttttrrppjjffiillnnllhhccccffhhffccbbeeiijjggbb__^^bbeeggjjnnppppkkiikkppnnjjjjmmqqvvwwxxrrrrooooppssvvzz||||||~~{{wwwwxxzz~~}}yyxxwwttssssvvzzyyxx{{~~~~{{wwuussttttttwwyyxxxx{{zzwwuuuuwwyy~~~~}}wwuuwwzzttppmmoouu}}}}{{{{||}}~~||{{~~xxttvvwwvvwwxxvvsswwzzwwww||~~}}}}}}xxuuqqqqrryy~~~~||vvrrppoooooommkkkkhhhhiijjllkkkkmmrruuwwvvttrrppoorruuuurrssssppooqqrrvv{{~~~~~~zzvvssvvuuvvwwyy}}||xxssnnhhiihhhhhhnnrrrrnnkkoossrrqqrrttrrppppppoonnllnnqqvvuuuussppmmoooooolljjiieeddggllqqoonnnnoooooooonnmmkkggccaaddhhffeejjnnppppppkkhhiihhiijjkkllmmnnllmmnnooppqqrrrrrrqqnnnnoonniiggeeffffiillnnllllkkjjhheeaabbccccddffhhggddccddggggiikkjjjjggddbbeeiikkllllnnnnnnlljjllooqquuvvxxzz{{zzyyzzzz{{~~{{wwttuuuuuuqqjjddaaaa``]][[\\]]]]aa````^^__aaddddffhhjjkkkkjjjjffffggjjnnssxx{{zzyyuuqqooooppqqssuurroommoommlllloopprrvvvvuurrooqqoopprrwwxxzzyywwvvuuttrruuzz||}}}}{{yyyyzz}}~~~~{{xxwwzzzzyyyy{{{{wwttssssttttxxxxwwrrqqppqqrrssqqppppoollkkjjeeeehhkkjjjjkkkkkkllmmnnooookkhhiinnssttuuvvwwwwxxwwvvvvvvrrooqqvvxx{{}}}}||||}}~~||{{zzyyxxuuttttvvxx{{||||zzzz}}}}{{yyyyzz{{{{zzyyvvuuttvvvvuuwwyyxxyyzz||zzyyttssrrqqppqqrrssuuttqqpprruuvvwwxx{{yywwwwwwssssttzz||zz}}{{{{~~~~||zz{{}}~~~~~~||{{~~~~}}}}~~}}wwssqqppqquuttttqqoommjjhhggffhhiiiiffffeeffeehhllppqqrrssssssssoollkkjjjjkkmmooqqrrooooppooppqqrruuvvvvssqqoolliihhjjnnrrww{{||yyzz||~~~~~~||~~~~{{zzzz}}}}}}~~}}yyvvxxxxttqqoonnnnnnqqttuuttrrmmiieeffggiiggffcccccceeddccbbccffjjmmkkee``]]]]^^``aabbaabbddiikkkkiihheeddddeeddccbbddiikkllmmppttww{{~~~~~~~~{{yyxxuurrqqqqqqlliieebbbbaa^^\\ZZ^^````aabbbbcc``aaaaeehhggeeccaaaa``bbffiiiijjjjllooppooppooqqrrssttqqoonnmmppqqqqttwwyyyyyyyyzz||}}}}~~~~~~}}{{zzyyxx||||yywwxxxxwwxxwwuuwwzz||~~~~~~~~~~}}wwuuvvssssqqssww{{||{{yyuuuuvvvvwwwwxxvv{{||xxttrrrrttww{{yyxxxxuussqqqqqqqqrrttuussssqqnnooqqssttuuxxxxvvuuxxyywwuuwwyy{{~~{{||||}}{{||~~||}}~~~~}}~~}}zzxxvvvvvvvvyyzzxxwwyy{{wwvvuuuuvvyyzzyywwwwrrmmnnkkkkppnnqqssttttttssttssttttttuuuuvvttrrrrrrttuuuussrrrrvvyyzz}}}}}}}}}}||~~}}xxuussvvvvwwzzyywwwwwwuuww{{~~}}{{zzxxyywwttrrrrttvvyy~~||{{zzyyyyzzyyyyyyzzzzyywwxxyyyyyy~~~~||{{zzyywwxxzz}}}}zzxxyy{{}}{{zzzz}}}}zzyy{{||||}}~~~~~~~~~~||~~zzzz~~}}~~||{{zzyywwuussrrqqqqqqqqrrvv{{~~||zz}}}}||}}~~||zzzzzz~~}}{{{{zzwwww}}||vvppjjcc[[RRLLHHEEEEAA>>==<<99887766443333445588<<@@BBDDGGKKPPWW__iinnqqrruuxxzz{{}}}}~~~~||zz||}}~~~~vvoojjkkllmmnnnnmmkkkkooooqqoommkkooqqww{{yywwuussuuwwwwwwvvttvvxxzz{{xxuuuuttttttttrrppmmllllmmjjiiggffddddggjjnnttxx||»{{ssllddZZSSMMKKHHDDBBBB==::999999<<>>??@@>>@@BBCCCCDDHHNNRRVVZZ\\__ddhhhhiinnttuuxxyyttooppppppppoollnnrruuxxzzuurruuxx{{}}~~}}~~~~uuoommmmoooooorrttttttssppqqqqppiijjppuuvvwwyyyywwuuww||xx{{~~}}}}yyxxzz||}}{{zzvvvvttvv}}~~xxssppmmkkjjjjqqmmkkiiggiiggggllkkkkkkjjggiigggghhhhhhiikknnqqssww||{{}}{{qqdd[[ZZ^^^^ZZTTLLLLNNQQJJFFCCEEIINNNNGGAA@@NNVVTTTTTT^^ggllllhhggjjrrssssssttuuttttttzz||||~~{{xxzzuussssqqqqqquuoommmmmmnnnnjjiihhccccccddcchhhhllookkiikkkkiikkmmllllhhffmmmmmmmmqqssssnnqqvvuuvvzzwwsswwwwyyvvnnkkiiiikkmmkkeehheeggmmppppwwwwzzzznnkkddaaYYUUUUUUNNFFFFFFHHHHCC????CCEEGGHHLLMMRRVVYY\\bbiioottvvvvrrpprruuttssssqqssssrrqqqqrrooffffllttwwyyuuuuwwttvv~~xxvvvv{{||||{{yywwttwwssqqttttrrrrssssttyyzzyyzz~~||xxttzz~~~~~~}}wwuuuuxxttssqqqqjjggiikkoovvvvrrqqrrppttzzzzttppssrrqqppppqqww}}zzzz~~||||||yyuullcc``````[[VVVVTTOOHHFFFFFFEECCBBFFFFIIHHNNTTXX__ccllllggggiiiiiioolljjjjnnttxxxxyyyyxx{{~~xxttppqqsswwmmiilllluuwwuuuuyyyywwwwttppiiooxxxx{{{{wwuuuuyyyy~~}}}}}}}}||~~||~~~~zzssqqqquu||{{{{vvvvoojjjjhhccYYOOOOOOMMFFJJOOWWWWUUUUUU[[aaddiiiijjkknnrruuuuuuvvxxxx{{{{}}}}}}xxssrrssxxyywwwwuussuuvvzz{{}}}}||||{{{{yyxxyyxxwwvvyy||yyzz{{{{zzzzwwttww{{zzww||||yyyyxxssqqqqssssssrrppppqqqqqqsswwyyxx||xxxxuuttttuuqqkkllqqttuuwwzz{{}}wwqqqqmmee``WWRRRRRRPPKKKKJJJJLLOOMMLLNNNNNNRRTTYYYY]]]]``ccffiillppoooooossrrmmmmmmnnrrwwwwxxzz}}}}{{yyvvttttttssttqqqqqqqqppppssttttssqqppssrrqqqqpppprrssvvvvww{{{{{{{{~~{{yyyywwttrrttttuuww{{}}¿||zzssiibb]]ZZVVRRMMMMNNLLMMLLLLNNQQVV\\aaccddffiikklloooossvvzz{{{{xxvvttrrmmlllllljjiihhhhhhllnnppttyy}}}}}}||{{{{||~~~~}}}}||{{yyvvvvvvvvttssrrttwwyy{{zzyyxxwwttssssssssttuuttttrrqqmmlljjjjhhggffeeddddddggiillmmoooooonnnnmmmmmmmmllkkllllnnoooonnmmqqssuuvvxxyy}}~~xxsskkee``ZZUUSSOOLLJJJJJJJJIIIIIIIILLOORRUUYY\\__bbeeiikkllkkjjkkmmoorrrrrroooorrttttttttttttuuuuvvwwzz}}||xxuurroommlljjggeeddccddffgghheebbccbbbbbbaa__^^__bbbbeeeeffgghhiikkllmmllkkkkkkllllmmooqqrrssssttrrnnkkkkkkllllllllllnnppqqrrssuuyy||yyttppjjgg``]]WWTTQQOONNMMLLIIHHIIKKNNQQSSSSUUWW[[]]````bbeehhkkllllkkjjiiiihhiiiiiiiiiiiijjjjjjkkmmooppssvvxxzz{{}}~~}}{{yyyyyyyyxxwwuuttrrppppoonnnnooppppppoonnkkiieeddddeeffhhffddddddddeehhjjmmnnnnoonnlljjiijjjjjjhhiikkllmmoopprrttwwzz||~~wwssnnjjeebb__\\WWPPKKGGCCBBBBDDDDEEFFGGHHJJLLNNQQUUZZ``eegghhiiiiiihhhhjjkkmmooqqssuuvvuuuuuuxx{{~~~~}}}}~~~~~~}}zzyyxxwwvvssppkkhhgggghhhhggeecc``^^\\[[[[ZZXXXXXXYYXXWWVVUUUUVVXXYYZZ\\__aaccccddddccddddeehhllmmooooppqqqqqqqqrrqqppoommkkiiggffeeeeffiillooqqttww{{~~||xxttppkkffbb]]YYUURRNNLLIIGGFFFFGGIIKKMMNNPPRRUUWW\\^^``ccddeeffhhjjiiiijjkkmmlljjhhffddddddffiiiijjjjllmmnnppssvvzz||}}zzxxwwwwwwvvuuuuwwxxyyzzzz{{{{zzyywwwwuussqqoonnllkkkkllllooqqrrppoonnmmmmmmnnoooooopprruuwwxxzz{{{{yywwvvuussssrrqqqqrrttvvxxyy{{||~~{{vvqqllhhcc__ZZVVRROOMMLLIIHHGGGGGGHHIILLOOSSVVYY[[^^``cceeiikknnppqqrrttuuvvwwwwvvttssssssuuttwwwwxxyyzz{{||||||{{||{{}}}}~~||yyttqqlljjiiiihhggffeeccbbcceeggggffeeddddddddeeffgghhhhggffggffhhhhiijjmmooqqooppoooommkkiijjllnnppqqqqqqrrrrppoonnnnpprrssuuvvvvxx{{~~||yyvvssqqookkggbb^^ZZVVQQMMIIFFEEEEDDDDCCDDFFIILLNNPPRRSSTTVVVVVVXXXXZZ[[\\\\]]]]^^``aabbddeeeeeeeeccccddffhhiijjkkmmppqqssrrssttuuwwzz}}~~||{{zzxxxxwwuuttrrqqoollkkkkllmmmmmmmmmmoonnnnkkiiiijjkkllllllmmoopprrssttssssqqqqqqrrrrrrqqppoorrssuuttttttvvxx}}}}yyrrnniiee``]]YYWWUUSSQQOONNNNNNPPQQSSTTVVWWXXZZ[[]]__aaccggjjmmoorruuvvwwxxxxyyyy{{}}~~}}}}~~||{{{{xxvvuuttttrrppoommlljjiiiihhggggffeeddcccceeeeffgggggggghhhhiijjjjmmmmnnnnnnnnnnnnooqqssrrrrppnnllkkjjkkllmmmmmmnnooooooppqqvvzz~~||xxssppkkggbb``^^\\XXUUQQOOLLLLKKKKJJIIJJIIJJLLNNOOPPQQQQTTVVXXYYZZZZ[[]]``bbaaaaccddffffhhiijjiiiiiillmmppooqqqqttuuvvxxyy{{}}~~{{yywwvvuuttrrppnnnnlllllllljjjjiiiiggiihhhhhhhhiiiijjjjjjjjkkmmnnppppppooooppppppooppssrrqqqqrrrrttssuuwwxxyy{{}}~~{{vvrrnnjjhhddbb__]][[YYWWWWVVVVUUUUUUUUWWXX[[__cceeiinnoorrssuuwwzzzz}}}}~~~~||ww||{{xxrrttwwvvuuqqqqqqttyyoommmmkkooppppqqllhhddee__ZZVVWWWWWWWWRRNNMMIIFFCC@@AAFFHHHHHHLLLLMMMMNNMMMMMMKKHHJJJJJJJJNNLLLLLLMMOOIIJJJJFFGGBBBBCCKKNNKKLLQQPPDDBB>>;;55001111337744222255<<//66FF<<??CC==??FFMMIILLPP??]]MMQQ//88CC@@AA@@@@@@@@44MMTT^^aaRRZZ\\iiffggqqttyyuutt~~ŏssllĶיö}}lliijjppwwffeeVVPP99>>SS[[YYZZPP==;;;;;;,,(())      (($$%%%%##//((""88GGCCDDDD@@AA@@@@@@HHIIKKWWoorriidd__``eeddddllttrrsszzvvmmrr||vvyy¿úxxxxsskkuurr}}zzxxvvssnnmmxxyyvvyyttpptt~~||}}Ͽǿɿþ¿ttwwmmkkppoorrnnccffee__UUWWTTOOUUSSNNUUHHGGGG>>==333388777777774455--,,110000--..--++//..''))$$))..0055446688::<<::99;;@@FFGGFFHHBBCCOOHH??AA@@CCEEDDFFFFFFKKEE>>@@??88@@>>==CC::==<<<<AA9966116633//22//77::2222....00334477//""&&55::::////22224444<<BB<<<<>>::<<==>>EEEEGGGGBB<<CCHHHHPPHHHHOOKKPPSSMMMMLLFFKKKKKKTTWWOOTTTTLLLLLLQQZZ\\WWWWTTRRTTPPTTWWUURRWWWWWW[[[[YYUUUUYYUUWWXXXX^^^^\\\\UUWWWWVVYY]][[````eekkkkffffiiggnnnnllttttrruuuuttqqrrww||{{xxyyqqqqqqqquuuurrrrttppuuuuooqqqqppjjllmmqqooiiqqjjjjmmjjhhkkllllttttttvvrrrrxx}}zzxx{{{{~~~~||||}}{{wwrrrrnnmmrrmmmmqqoonnnnqqppmmmmllmmmmllmmmmjjkkiihheeccbbddffddggbbZZ__[[[[YYWWWWSSNNNNSSRRNNMMIIGGIIEEEEEEDDDDBBCCDDDDCCAA????CCGGCCHHHHEEEEJJHHLLLLMMMMMMRRSSSSMMMMQQOOTTVVVV[[aaaaaaaa````bbaaggggggggiijjjjhhffjjjjhhjjllllnnnnllpprrrrrrnnoouuqqssuuuurrsssssssssssswwttssyyyyyyyyttttyy~~{{||||~~}}||||yyyy||~~}}}}yy||}}~~~~zz{{||{{zzuussssttuuuuxxxxww||||~~~~~~~~}}}}zz}}}}||}}||||||yywwuurrppssssppnnppoooollllllkkgghhhhffffiiggggjjkklllliiiiiikkiikkllnnooooqqrrmmoooooooooooommmmmmooqqqqppnnjjmmppppqqppqqqqssppmmllnnnnnnnnookkkkooppppnnlllliikkjjjjllllggddeeggiiiigggghhiikkhheeeebbcceeggggddccddffffcceebb``ddjjjjjjffjjjjnnppmmooooqquuttuuwwyyzz||||~~}}||||~~~~~~~~~~||||}}}}||||~~zzzz{{||||{{zzyyzzxxxxxxxxwwwwwwxxyyzzzzzzzz{{~~~~}}}}||yyyyyywwwwttrrrrppppoooollllnnnnllmmnnppppmmkkkkmmmmjjjjjjiihhiihhhhkkkkhhjjkkmmnnnnnnoooooooooopprrssttttxxyy{{zzzzxxzz{{||||{{{{{{{{}}}}}}||||{{}}}}||yy{{{{yyyy{{zzxxwwvvwwvvvvttssqqppqqppooqqrrssssrrrrrruuttttwwyyyyxxvvvvuuxxxxxxwwwwwwyyxxxxxxzzxxwwxxxxwwssrrssssssppqqqqpppprroooooooonnmmkkkkkkkklliiiikkkkkkkklllloopppppppppprrssppoopppprrttttrrssttttvvvvvvvvxxxxxxyyyyxxxxwwxxzzzz{{{{{{||zzyyzzzzzzxxxxxxxxyyzzzzxxwwxxvvvvvvttttttuuuuttttssqqppppqqqqqqppppqqppqqrrttttssssqqrrrrqqrrqqqqqqrrttttssttttvvxx{{{{{{{{}}}}}}{{{{||yyzzyyxxxxxxwwwwwwwwwwuuuuuuvvvvuussooqqqquuuuvvvvvvvvwwxxxxvvxxzz{{~~~~~~}}}}}}}}~~~~}}}}}}||||||{{zzzzzz||||{{yyyyyy||||||zzyyvvyyyyzzzzyyyyyyyyzzzz{{zz||||}}}}}}{{{{{{{{xxxxxxxxxxxxxxxxxxxxvvttqqppnnmmkkkkkkiihhhhhhiikkkkkkmmmmmmllllkkkkjjllllllllooooooooooppppqqppppppppqqoooooooonnnnnnnnnnnnmmoonnnnnnoooonnnnllllllnnmmmmnnmmnnnnoonnoonnnnnnppppooppqqqqttttttuuvvvvwwwwyyyyzzzzzz}}~~~~~~||{{{{{{zzyyxxvvvvuuuuuuuuttttttttuuvvuuttttttttttuuuuvvwwwwyyyyzzzz||||}}}}||||||~~~~}}}}||||}}||||~~~~}}}}}}}}}}}}}}~~~~~~{{{{||||}}||||{{{{zzyyxxxxwwuuvvwwwwxxxxyyzzzzzz{{zz||||||||||||}}}}~~}}}}}}||||||||||zzyyvvvvuuuuuuuuvvvvuuuuuuuussvvuuuuuuvvvvvvvvvvwwyyyyzz||||}}}}~~~~~~}}}}~~~~}}zzzzzzzz{{||||||}}~~~~~~}}{{{{{{{{{{yyxxxxxxxxxxxxxxvvvvssuuttuuuussttttuuuuuuuuuuuuttuuttttssttttttttuuvvwwwwyyyyzzzz{{{{||}}}}zzzzyyzzzzyyyyzzyyyyxxwwuuuussttttuuttrrqqqqppppppppppppoooooooooonnnnnnnnooooppppooooqqrrrrrrssssuuuuvvwwwwwwxxyyyy{{{{||}}}}}}||}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}||||}}}}}}||||||||||||}}}}||{{{{||||}}}}~~}}~~~~~~~~~~~~~~}}}}||{{{{{{||||}}}}}}||}}~~~~~~}}}}~~}}}}{{yyyyyyyyyyzzzz{{{{{{~~~~~~~~||}}}}~~~~~~~~~~~~}}}}||yyvvvvttuuvvyy{{||||||{{{{{{zzzzwwwwwwyyyyzzzzzz{{zz{{{{{{{{}}}}}}}}}}||||||~~~~~~~~~~~~~~}}}}||}}}}~~}}}}||||||}}}}||zzzzzz{{{{{{{{{{{{{{||}}}}}}~~~~~~~~~~}}~~}}}}}}}}~~~~~~}}||||}}||}}~~~~~~~~}}~~~~~~~~~~~~~~~~~~~~~~||{{{{zz{{{{{{zzzzzzzzyyxxvvvvvvvvwwxxyyyyzzzz{{zzzzzzzzzzzzzzzzxxxxwwvvvvuuuuvvwwwwwwwwwwvvuuuuvvvvuuuuttttuuuuttuuuuvvvvxxyyyyyyzzzz{{{{{{{{}}~~~~}}||||~~~~~~zzzzxxuuttttssssrrppppppppqqppssssqqppnnmmoooonnmmnnmmppvvvvyyzzzzzz}}}}PP""""EEeennnnvv}}}}rrmmiiCC))))rrೳjjoossvvyyyy;;;;LLxxxx``kkXXzzFFWWWW\\11uuMM9999ZZwwPP88--7777eeeeee@@((CCddZZllddyyĻ׾­ɼTTTTddssQQQQ55555555GGMMQQMMEE>>55CCCC??77..%%%%))  ## %%??????))AA:: 2222,,II]]TTDDSSeeeeee||||vvvvvvvvvvvvhh}}jj__||׸yyOOOO>>hhhhxxxxEETTbbbbwwbbOO7777++[[rr)).. ((\\zzaaXX22EEtt==AArrUUXX||¾ѷѢ迿ƜjjbbllOOZZ999933%%"" $$EE""22  ))     226633   ??CC""""MM::HHCC>>eeRRKKOO;;ZZLLPPzz{{QQ;;??vviiCCSS{{zzeellYYRRUU}}]]FFwwxx;;??11FFkkllmmAA11ZZmmnnoo||gg//44[[mmssssgghh{{vvwwggmmnnooxxxxyyգ䞞bbddJJyynn}}qqrrtt}}XXOOGGAAVVYYww;;??ttuubbuuFF<<ZZgg__NNbbFFvvwwQQ__aa>>77xxxxAA((bb{{{{00LLxxxxkkyyiippqq^^iijjVVrruuHHYYbbŮţ~~ddeeqq{{Ϣzznnooqqrr\\^^hh{{zzáķ֫헗Ɉػccvv{{{{oopp{{ppqqaakkzzaacceehhiiwwhhyyzzzzuu``ooYYpp]]__JJaauuhhvvwwwwggjjrrzz\\rreeggyyaannooUUppxxrrttllmm}}ccTTffggiiUUNNbbyyzzUUXXzzggXXjjvvQQTTllmmTTWW||}}iiXX::\\gg``MM11,,1166::RRUUXXddYY__PPBBddeeUUXXZZVVMMuuuukkppjjkkiirrzzjjaattuummvvaaccKKqqkkYYkkllTTbbTThh^^GG??IIMMmmGG&&AAOOccVVQQZZ@@;;PPLL5599EEbbMMWWMM%%**>>BB""((7733((..33222277HH99 &&MMPPeeoo66%%QQCC==**00>>SS]]0055eegg::LLuuvvvv[[^^vvccddaaPPXXooppVVXXccssZZ\\vvqqyyss||ssttxxxx||{{{{jj~~~~ÿʞ˶ժץDZλֱĿ㼼֑đlluuwwii~~~~iiWWZZaammee\\rr__==YY\\TTzzhhYY[[ddffmm}}nnooppZZ\\^^aaEEHHppiiGG``~~uuPPSSllwwwwyySSVVXXQQ88UUgg[[]]JJ@@VVhhMMQQuuvv[[]]``GGSSVVLLTT\\uuoo;;,,1166;;??CCGGAAEEAA88<<ff[[::>>UU??,,LLPPiiBB((<<33,,22--22??((%%2277<<@@DDCCGGQQ??CCGGJJHHLL``SSLLOOGGDD]]II99ffZZ\\__aallddeeggiiyy||vvjjkkllzzuussvv~~wwvvww~~hh˾ʱߴй˗Ƥkkllllmmqq~~~~jjYY[[^^ffVVNNLLOORR``[[GGKKVVKK//>>KKNNQQNN5599FFIIggiiUUQQTTWW>>BBgg^^FFiiaa88<<YYgg^^``bb99==AAQQTTVVbbTT<<@@RRii__AAEEee^^AANNZZssuuuullvv{{{{~~mmooppuubbkkllmmwwbb]]kkllmmff``zz]]``~~hhiiXXJJNNkktt``NNRR__vvYY[[mmmm::^^``{{uuggoo||||||}}uuuuPPllyyzzoozzttuuKKOO}}}}zz{{zzyy}}yyss~~zz̿ůϯttuuwwxxyyddyyzzUUWW||aacczzjjssmmzzoo__ppqqaaccpp]]==uuww]]__vvddTTnn}}kkwwssTTVVYYmmnnaa66JJww__aaccSSUUuuuuggZZiieeHH``kkllmm||||||uutt||ssyyssjjkklljjoo]]__llnnsslljj^^``ffzzwwrrssoott{{eeggttuullrr~~bbddzz~~uunnhhpp{{wwjjww~~ooyyxx}}yy~~zzzzzz~~nnoojj\\qqZZll||ffrrrr[[eessnnjjuukkllhhTT]]vvvvwwww__ZZ\\mmZZ\\^^``\\^^``bbhhff``rrssffLLXXddNNJJMMQQNN22,,DDHH<<22JJMMFFJJ88==;;??HH??77??FF3388SS]]SSPPNNHHPPZZ__YYYY``llmmwwppjjzzppllnnuu}}xxssttuuuujjkkbbddzzuummvvnnooss]]ffnnzzuu__ZZ\\YY``bbddffaaiibbUUSSQQXX^^MMPPjjWWYYllhhaa[[ddVV>>BBUUQQ<<VVXX[[XXQQXXqqkk^^yyyyssttooppuuzzpphh}}yyllmmttuuuunnoo}}~~tt}}}}||ppwwxxzznn``iippqqhheeggeecc____cckkaaccoommkk``ZZ]]\\[[]]TTWW``SSMMXX[[]]bbaahhll]]SS[[llmmzzzznnooiijj~~ppjjkkttnn{{qqrrss{{{{{{yyyy||||}}}}zzllvv~~||mmnnppqqqqnnss~~vvvvļȰnnvv}}}}}}yyvvwwwwjjccppuurrffZZ``iikkcc``ddffffnniillyynnoo~~]]__aaccdd__aaiijjkkmmgg^^XXZZUUPPXX\\RRUU__WWTT\\^^bbbbVVOOVV]]XXPPJJUUgg__\\WWRR^^^^SSVVUU[[rr]]LLaacc``jjwwttoohh__SSVVXXffddZZ\\^^cchheeff``ppzznn]]__ffqqvvwwqqeeggiimmffcceennttnnssttppffhhqqxxxxyyyymmssxx{{||ppuuuuppqq||yyiijjbbhh}}}}xxnnkk||ccddyyqqjjll``LLOOXX[[llqqnnll``SSVVaaffee^^eeppqqwwzzllrr}}zzzzuuxxyyuuvvŸ~~||wwooxx}}}}oopphhjjuuyyzzzzxxhhddkkggeeffaaVVllssiijjggeeffeeff^^ZZ\\^^ZZXXbbff``]]WWYY^^ddmmrrhhiikkVVYYhhppqqhhnn{{{{rrssyynnkklleettttjjkkuuvvrruuuuvvwwuuuuqqrruuppddffyyyyuuqqrrllppttppzzttttuuppvv}}||yyyyqqoozz||{{ttyyuupp~~zzxx||}}rruuttuuwwwwuummqqnnggkkddkkuucc^^hhiillrrppssrrssssvvrrnnoossllkkqqoossvvtt||rriikknnmmvvoollmmww~~ww{{||wwuuoorroojjddjjllggddccddkkggddccffeeccggffddffcc^^MMJJQQOOPPPPHHJJLLII::99BB@@==AA@@==@@KKOOQQNNOOJJKKKKIIJJQQRRRRRRCCFFUUVVZZddbbVVYYUU\\gg``bbhhggggbb__mmoojjkkyyyyyyxxkknnwwuuuuww~~||~~}}wwppwwyy~~vvxxzzyy}}zzkkjjyyzz{{{{}}xxyy~~}}{{||zzpplljjppssjjtt}}{{{{uuooxx}}~~uu||}}ppsszzxx||mmssrrvvyyxx||xxeejj}}wwyyxxssyy||{{~~}}}}yy||~~}}wwyy||{{}}ttnn}}wwnnpp{{yyzzvvzz{{pprruunnmmxxttrruuttxxoonnvvttnneeggppnnllffiijjjjtt}}rrrriieennrrssssuu{{~~{{ssvvzzqqss}}zz{{~~~~}}||wwrr{{}}llppzzssppyyii\\nnwwyy||~~~~wwuuwwwwrrssxxrrnnoooovvzzwwyy{{zz~~xx}}xx}}{{ttyy~~}}ssppssrrjjoorrqqjjyyuujjttoopprrrrppkklljjttrrllkkkkcc````jjuuggjjiiggrriikkjj[[__vvppddmmvvjjmmttrrvvuuuuppiippww{{zzzzzzzzvvmmrr{{vvwwoottvv||zz}}||~~}}}}ssoommkkllmmmmccffkk____jjuu{{vvww}}ttvv~~zzuuttrr||||}}{{ww||~~vvyy||~~zzqqwwssppggbbddffjjZZ\\jj{{rrkklltt}}{{ttkk{{{{ss{{uuvvyy||qqoo||uuvv~~{{||||xxyyyytt{{||||{{wwllff^^]]__\\QQCC<<77++005522++**''!!''##%% ))##))88<<@@>>BBDDCCEEDDJJOOUU__\\KKNN^^UU\\__aacc^^ffjjllmmppttmm{{bbNNyyqqiirrzz{{rrbbxxΨķ{{yynncciimmnnee^^XXTTYY[[PPHHLLKKNNUUNNIIFF::**//4499KKJJ4400--$$**$$!!    $$** !!$$##..,, &&++119977--%%++00..11++33CCDDAA==77<<55--227799CCXXZZ]]UUKKNNQQTTQQMMTTWWVV__ee^^``ggkkrrqqgghhjjkkuuuummiillppssqqmmrrssmmnnooiimmnnhhjjmmlluuzzttuuzz}}}}}}~~||oo]]__aa^^``[[VV\\^^TTOONNKKNNWW````[[TTOOMMRRSSSSYYPPOONNQQZZ\\ZZSSTTRRWWYYNNLLKKNNUU[[ZZZZSSJJMMPPSS^^``^^``]]XX__ggiieekkrrtt{{}}ÿÿþĿ~~||qqkkeegghh\\YYWWNNJJAA>>88668833))**##     ##""(())((--**,,669911..338899>>@@DDBBGGKKIIJJOOPPTTRROOPPQQRRWW]]YYVVWWVVYY[[\\XXZZ]]UUUUXXXX\\aaYYVVSSQQTTWW[[YYTTSSPPSSZZ]]``__^^XXPPSSVVXX]]aaggiiddggppggeeggffggee____ccffhheeccddaa``bbggiiff__ddeeggiijjkkkklloorruurruuzzyyzz~~{{xx||}}}}||zzzzyyssttvvwwssnnkknnsszz{{wwzz{{vvzz}}xxvv}}}}}}}}}}~~xxuurrmmmmnnuuuuqqssqqqqmmffddhhhhhhddddbbbb\\UUYY^^^^ffnnee__iippppuuwwwwyyyy||{{}}}}~~~~~~vvvvttttuuxxxxssqqssnnffccaa\\``bbVVSSSSOOGGGGIIGGEEEE??::77777799==9911''''))))227700,,..//222299;;44445577????<<@@@@@@;;AAGGGGGGJJEEGGGGCCGGKKJJJJIILLLLLLOOOOUUZZXX``````bbddddffggkkkkoooonnnnmmrrvvyyyyyy}}wwzz{{wwqqqqssppmmmmffffjjjjaaaaaa\\ZZZZWWWWWWTTQQQQQQLLOORRRRSSQQQQPPQQOONNQQLLHHHHEEFFIIIINNIIGGJJIIKKPPPPQQXXXXVVVVTTQQRR[[[[VVVVZZTTTTYYVVVVYY\\\\\\VV]]]][[^^]]]]``]]]]VVVVXXZZ\\\\^^\\\\bbYYYYaaaaaa]]ZZZZ\\\\\\XXUUVVYYZZXX^^^^XXUUUUWW\\__ccaaXXXX[[[[``bb``````__eeeeaaaaccccccccddddbb__``bbeegghhllmmiiggkklliimmttppppuuuuxxxxxxxxxxwwxx{{{{zzyy{{~~||||||yy{{{{vvuusswwwwwwuusspprrxxxxssttppllllqqqqttoommllpprrsszzzz{{yy||xxxxxxxxvvxxxxxx{{xxqqssxxxxxxuuvvvvvv||}}yyuuwwwwttuu{{{{||||||}}xxzz}}||{{}}}}}}ttttyy~~~~~~~~~~}}}}}}xx{{{{~~wwmmmmmmkkkkkkiieebb\\\\\\\\\\\\ZZZZYYSSSSYYYYTTRRRRTTWWUURRNNMMNNQQTTRRNNNNNNQQRRTTPPOOJJKKKKLLMMQQRRNNNNUUWWYYYYXXXXYY````````YY]]ddddbbddddffffffffkkttwwwwyyuuuuxx{{{{zzzzyyww||||||||||||||||{{~~{{zzzzzzzz{{{{uuqqkkiijjssppggddddddbbbbeeddddhhmmjjffbbbbbbggkkhh````bbbbbbeeddeeeeaaaaddbbddffiihhhheehhiiiikkppoooottttttssssnnllppwwwwuuyy||zzwwxxxx||{{{{yyuuzz||||||||yy{{~~~~~~}}||xxssoonnnnqqmmffffffffhhhheeggddccffffiilllldd____aaaaaaccaaaaccbbbbccccaaaaccccccgghhhhhhddaaaaddggjjjjggggiijjllqqqqrrppssssttttttqqttyyyyzzzzwwww{{~~}}~~}}}}}}~~~~yy{{xxxxxxxx||zzww{{{{yy{{}}}}zzxx}}}}||yyyyzz||||||}}}}}}}}||vvvvzz||zz~~~~~~||{{{{zzuuoooooohhhhnnllhhhh__]]]]]][[[[\\\\\\\\ZZ\\^^[[VVVVWWZZWWWWVVVVXX[[\\\\ZZ\\``__``aaccee``ddggddffjjiikkooqqpprrxxxxxxzzzz}}~~~~~~}}||}}~~~~}}yyyyzzyyuuuussoooojjggggggggggggff````bb````aa______ZZWWWWWWYYXXXXXXTTTTTTTTVVVV\\VVRRUU\\XXTTUUYYWWWWZZVVUUUUVVVVVVYY\\__``ddhhkkkkkkmmlljjjjjjiihhjjppnnnnrrttyy{{{{wwxx~~{{{{~~~~~~||zzyyqqiillppppqqnnddddddddaaaaaa__[[YYYYYYXXXXWWVVYYVVSSYYYYYY\\[[XXVVVVZZ[[]]]]ZZYYYYYYYYYY[[[[__^^__dd__[[\\]]^^bbcchheeeeggjjmmppppuuxxxxxxxxzzzz}}zzxx}}{{{{{{xxssssssssuuuuppppqqppoooooojjjjjjeeggkklliijjnnnnnnqqqqooppoonnpprrrrrruurrppttwwssssuuxxxxzzzzzzwwxxyyxxxxzz||~~}}}}}}||~~½||||{{wwsspppppprrrrppnnnnllffhhkkkkhhhheeddhhlllljjjjiiffggiillkkkkeeccggjjjjjjhhhhgggghhkkkkmmmmlliijjllnnqqrrmmmmmmmmmmoooorrrrqqqqrruuuuxxxxwwvvvvyyzz{{}}~~||}}~~~~~~||||||}}}}||}}}}~~~~{{{{wwwwyyyyuuwwyyxxzz{{||zzwwxxxx}}}}zzvvssttwwxxyyyyyyyywwwwvvvvyyuuuuvvvvvv||||~~~~||yyyyttnnmmkkkkkkffbb__]]]]]]ZZZZYYZZVVRRSSRRRRRRRRRRPPMMKKKKKKMMMMNNMMNNLLMMRRVVVVTTSSVVWWWWVVTTSSUUUUUUWW]]]]]]``bbeeffeejjhhhhjjjjiillllmmooqquuttssrrmmmmqqqqssssssrrssttttuuttrrqqppllmmmmllkkiijjkklllllliihhhhjjmmkkjjggffccaaaaeeeeeeccddbb__bb__^^aa````__aa__bbbb^^__aaaa````eebbbbggffffjjjjjjjjjjnnnnmmttttttttttwwwwvvwwyyyyyy||zzyy}}~~xxxxzzxxxxxxzzuuuuuuwwwwwwwwxxsswwwwwwxxxx||}}vvvv~~~~~~~~{{{{{{{{}}}}}}~~~~~~}}}}yy}}~~vvyy}}~~||||zzttrrpppppprrrrppoooorrwwwwwwwwuuvvxxxxyyzz}}||||uuuuyyyy||||{{{{zzxxwwyy~~}}zzvvrrrrrrrrrruuuuppppmmqqrrssttttttqqqqrrqqttssrrrruuyyyyvvyyxxxxxx{{zz{{zzzz||~~~~~~}}yyyyyywwwwzz}}zzzzyyyy{{{{{{~~~~~~~~~~}}}}}}}}{{~~~~}}zzyy{{{{{{||||yyyywwyyyy{{}}yywwyyyyyyyyvvuuvvuuuuuuuussssuuttttuuxx||}}}}zz||{{yywwwwwwwwwwxxxxxxxxxxzzzzyyyyxxvvssssssoooommmmlljjiiiiiikklljjjjkklllllliihhhhffcccc^^^^]]]]^^bbccbb\\YYWWWWXXXXUUUUVVVVUUVVXXXX[[__[[\\^^^^^^^^^^``ddffffddddiimmooppssqqqqssssssyy||||zzzzzz||}}~~{{xxssssssoooollffffffddddbb__]]]]]]XXYYYYWWWWVVSSWWZZZZWWVVUUVVYYYYYYZZYYYYYYYYZZ]]]]````____^^________aaddddccccgghhhhiijjjjmmqqttssttwwwwyy||}}}}wwuuuurrmmllkkiiffddddffeeeeaa__]]]]\\[[ZZVVVVWWWWXXWWWWVVVVVVUURRRRPPPPPPPPOONNNNNNMMMMNNNNLLJJKKNNNNMMMMMMOOSSTTXXXX\\]]__ddffffhhhhhhjjmmmmppppsswwwwwwwwvvttttxxwwttttnnnnnnpprrrrrrppppqqqquuwwwwwwttrrrrssttttvvxxyy||||~~||||||||}}}}}}}}~~~~}}}}zzzzzzyyttrrnnmmmmmmkkiiggggddccccccccccccaa__]]ZZZZ\\\\ZZ]]]]]]^^aa``aaaa^^^^``^^^^^^______]]\\[[____````__``bbbbddddffffddeeffjjmmooooooppttyyyy||||||||||||{{xxwwvvqqqqoooommlljjhhddbb______]][[[[[[WWWWUUUUUUSSSSSSTTUUTTTTSSQQQQNNMMLLJJLLLLLLKKKKNNPPSSVVVVWWWWXXZZYYYYYY\\aaaa______ccddiikkkkkkkkkkkkppttttttssssttyyyy{{yy{{zzzz{{{{{{{{yyyywwzz{{||wwwwxxzzuurrlljjhhhhiiiiffdd``__[[^^^^^^\\YYVVVVVVVVVVVVVVUUUUWWUUUUTTTTSSSSSSTTTTTTRRRRRRSSWWWWWWXX]]]]]]]]]]__bbbbbbddddffhhkkkkllllpprruuvvyyzz}}~~~~~~||yyxxvvqqmmkkjjggggggddcc____````__^^^^]][[YYUUUUUUSSPPQQSSTTTTUUSSTTVVWWYYYYVVWWWWWWVVVVUUWWWWYYYY[[[[\\\\[[ZZ[[^^``````bbccccddggjjkkmmmmmmmmmmlljjjjllmmnnoonnjjjjkkllrruuuuuuttuuuuuuvvvvvvwwwwxxxxyyyyyyyyyyyyzz{{}}}}{{{{~~~~}}{{yyvvrrrrooookkkkhhffeeeeddaa__\\YYYYXXVVUUSSSSSSTTRRRRRRRRQQPPQQPPRRRRRRRRTTUUUUVVWWWWXXXXZZZZ\\]]aaaaccccffffiiiijjjjllppppppssttuuuuwwxxzzzzzz||}}~~~~~~~~~~}}||||~~{{{{{{}}~~~~zz{{{{}}~~||zzyywwwwwwuuttssppppppnnmmkkhhggffaa]]ZZZZZZZZYYXXWWUUVVWWWWWWUUTTSSSSSSRRPPOOOOQQOOOOMMLLKKMMNNQQQQSSSSSSUUUUXXYYZZ[[[[[[\\^^____``aabbbbbbcccceeggkkmmooooppppssttuuxxxxzzzzyywwvvyyzz||||}}}}~~~~~~||~~~~}}}}}}||{{zzzzzzxxyyyyyyyywwwwwwwwwwwwxxvvxxvvwwwwyyyyzzzz{{||||||}}}}~~}}zzyywwvvuuvvuussrrppppnnkkjjjjjjjjiiggeeddccccbb``^^\\ZZZZZZWWVVUUUUUUUUTTTTSSUUUUUUUUUUVVXXWWXXXXYYYYYY\\__]]]]]]bbbbbbbbbbccggggggggggffggiikkllllllnnpprrrrrrssttttvvvvvvttttwwxxzzzzyyyyyyzz{{{{{{||~~~~~~~~~~~~~~{{||}}~~~~~~}}~~zzxxwwuuuuvvttppppnnkkkkggggggcccccc``[[[[ZZZZXXWWXXXXTTTTTTTTTTQQOOPPPPRRRRUURRQQQQRRVV[[ZZWWVVVV[[^^[[[[[[____cc````ddddbbhhkknnnnoooooossssrroooossttvvzzzzyyttrruuuuzzyyyyzz{{~~}}{{xxxx||||{{yyyyyyxxzzyyzzzzvvxx||}}{{zzvvttppqqxxvvttuuuuuuxx||||||{{zz}}~~~~~~~~~~zzzzzz}}||vvvvvvoooollllqqssvvrrlllliiiiee____ddeehhbb````````__]]]]aa]]UUWWZZZZXXVVTTZZ__\\SSLLLLWW]]]]]]]]]]]]ZZZZ``bbbbiiiieeddaaddiikkkkgghhiiqqvvttttxxxxvvuuuuuu||{{~~~~~~||~~~~~~zz~~{{}}zzzz{{||{{||~~||~~}}}}||||||~~||{{{{{{wwttqqssvvuuuuqqqqssqqnnmmmmoorrmmiikkkkjjllllhhhhjjkkppookkggkknnoommiihhffcceeiinnnnnnnnnnppoonnoommlljjhhjjllllllppppoolljjppsswwttmmmmmmmmppttwwqqqqqqssuuuurrqqoollmmrrppooooqqoooooooonnnnmmoooolliikkmmmmkkookkkkmmmmjjjjiijjmmppppmmkkkkmmqqqqqqqqpprrpppprrssuuqqoooossuuwwttrrqqssttwwvvyy{{{{yyxxxx||zzxx||~~}}~~||yyyyyyzz{{wwsspprrxxxxxxuuqqssrrrruurrnnffrrvvffffffjjnnggggggllhhhhkkjjnnffddqqmmmmttggookknnzzzzwwwwyyyy}}xxxxssxxxx~~{{vvxx~~~~{{ooxxttxxss||wwww{{xxzzxxrrrrttmmeellZZaammmmmmmmiiffyyllxxxxeekk\\ii}}}}llvvssssll]]]]]]YYRRXXaa\\UU[[ddggggnnnn__kkee\\ii]]SSee______ddllZZii}}llff\\\\\\ccffccaaccgg``bbpppphhhhddqqqqcckk``YYYYYYffiibb__ZZPPPPHHEECCCCMMMMMM<<<<--(($$**22229999))2222++++!!##33CCCCHH````JJWWWW333333 ++55 11>>IIgggg____RRRRmmuummmmggrrrrrrrr}}}}}}yywwwwwwxx~~zzůƼwwwwwwwwrrrrllqq||||ssppUU77%%%%%%99EEEE@@77((--115555%%%%##   """" ""****&&&&((--5588????DDDDJJWWSSOOKKUU``]]ccnnnnbbTTTT\\\\UUUU__eeeeee]]__ffdd]]XXRRLLSS]]jj^^MMMMMM@@00 !! 11CC>>99BBFFPPddddddiinnrrnnnnwwuurrvvgg[[[[[[[[[[iimmeeeekkkkkk{{vv~~ʜvvvvvvWW222222VVvvʿý¿ò¸·׻VVGG,, VVyyĹ~~xxxxttttttmmmmvvxxqqxxvvhhhhllll||yyyyyyttqqii__\\__hhkkppppttvvqqnnrrqqsszzzz~~~~}}}}~~zznniimmmmjjyyzzzzkkkkNNNNffffffffGG))00##//**AAAAAAZZiibbPP``HHHHOO[[wwwwwwbbNN88>>&& (((((($$3333!!   ,,88==9999HHMMMMIIFFFFFFFFLLPPPPMMMMNNEEEENNLLUU^^ddaappuuuu~~~~ttttyyqqeeeeMM\\~~~~hhMMEEEE11==BB%% %%1111DDDDTTttvv~~~~rr\\\\VVFFFFNNRRRROOOOYYYYaamm}}}}xxyyyyyyqqffffbbbbeekkcccceerrvvrrooooooqqĺƹ׻NNRR--++DD66;;ppqqrr}}jjUUQQTTQQTTNNQQLLLLXX[[XXii{{rryyvvyyttmmqqkkiivvrreessiiNNQQTTWWYYwwggqqrrllRR55CCooppqq^^``bbLLddpphhiikkllssyy~~ww\\KKOORRUUcc``gg¾yyyyyy}}ttZZee__GGKKUU22 8855UUPPSSUUddqqrrddffggaa\\^^[[SSII,,%%$$))//440055DDKKSSVVVVYYbbffhhkkrrssllXXSSOORR``bbhhjjddXXWW==,,1166::88OOcceeķɹԷddnnooppmm66%%++AATTeehh^^VVOOkkrrddSSJJbb¾Ǽ¾jjkkll3377<<@@RRooppqq]]__KK%%++00""''--2200AATT\\QQMMIIGGUUXXTT\\ooppbbVVPPEEDD<<@@AA7722//))$$  <<aa||wwrrjjWWLLPPXXdd]]XXSSGG<<<<LLhhxxyyOORRaaMM<<@@$$@@//!!''--2277VVssxxrrxxqqff\\[[]]``bbRRBB::>>PP\\bbjjff__aacceeqq||}}rrssttzzxxxxkkZZgg__BBFF@@**//BBYYǩ֯~~iijjlleennooeekkzzÿ͹}}{{}}vvVV4499==AAee||uuvv||rrww½llmm__TTWWYYeeMM8866''88``bbddzzwwssttxxyyyyooffkkyyyy}}qqAA3388<<NNǫyy}}ĵqqFFIIMMPP]]__rrí¸PPSSVVYYhhͿ||}}}}}}ssttuu``[[^^``bbyyyyssyyuuvvvviimmmmjjllYYRRLL////<<AAAAKKWW[[XXdd]]]]ll~~~~ttppggUU>>>>>>>>>>GGCCFFWWWWWWWWbbbbffqqtt}}llllll^^EE66CCCCCCffffffxx}}vvvvyyyy~~nn||ppRRGGGG,,##AAAA99NNTTTTYYccccqqssoooollbbbbbbggdd``bb]]ccggppppjjjj]]]]ggɹccBBLL]]UUUUUUJJJJXXhhYYggssZZZZiibb\\bb]]]]]]]]]]KKQQVV[[RRKKNNEEEEEEGG====@@BBIINNNNGGGGRR\\ccttee22222222VVVVVVoowwww}}hh\\\\ee]]MMTTNNddyy||oooollllww{{uuwwttttxx~~XXXXbbYYúvvȺxxll~~}}iiccnnnn||ttttnnNNNNNN====YYaaii}}~~yy~~oott{{xxrrrr``ZZUUUUQQIIFFBBBBHHSSZZggkkyyyyjjaaQQddddZZUUQQ>> **BBPP]]]]XXNNNN]]]]ee^^QQJJ<<<<??IICCFF??6666((((,,44;;AALLLLLLLLSS[[VVVVZZUUQQII44&&&&&&++==HHMMddrrxx~~}}yyooeeeeeeee``ggggrr~~uuuu}}ooVVmmKK++HHHHPPWWWWWWWW``hhwwzz}}wwww||||̷ļ||[[PPPPPPHHOOOODDNNNNNNYY\\hhdddd____hhvv||uumm``PPKKOOKKOOOOFF<<3388''--7777<<GGRRKKWWnnnnnnhhEE99999999WWjjrrɫzzoooooooovvooXX__rrrr||ooii{{ssllllllvvvvvv}}wwffffkktt{{kkkkkkkkkkttȱ{{{{{{ttzzzzvvvvqqaaWW````ccccRRLLQQ__hhhhhhttttZZPPPPHH3399JJPPbbggYYssppwwwwllllqq||zzssww````````TTTTTTTTXXXX^^nnnniiiiiippgg^^TT??88888822777733::::KKKKKKOO[[XXDDDDPPUUll}}^^MMPP``kkllnnkkUUOOJJ??IIMMJJDDHHSSVV\\ccllrrsseeGG@@DDHHKKjjwwffIIVVzzffyyzzllmmnnuuuuɷ~~~~yytt{{˽ttvv__SSVVYYGGPPYYQQ::GGZZGG>>==66;;TTdd``ssaacc[[]]ggttqq[[TT7722&&++**..33EEYY``kkllmmbbddJJ1166;;nn}}~~~~~~~~~~~~~~~~mmyyxxxxhhaaUUXXZZSSccXX[[jjllxxhhoogg``mmhh~~wwvvppnnttuukkoowwwwzzwwii}}xxxxŵþ¾ǿ}}zzttzzoouummnnvvzzllrrnnYYTTBB::>>BBFF]]llmmoottqqyyzzuu~~ssttlleegg{{yyrrffsspp{{{{||{{vviiRREEBBEE2277//99>>99EEEE]]XX[[XXLLSSZZnnzzmmnnooiicceeggOORRMMDD66@@MMPPOOOOXXPP\\bbkkqqaaII&&,,1166LLXXaacc__aaccqqssoouu~~xxppnn{{||nnooppvvrr{{zzjjLLFFAAEEAA88HHLLOOVVQQWWTTWW^^eellvv||yyyyzzkkrrsstt||yy~~]]__aacc{{{{||hhrrssllnnuukkXXCCcc]]__nniiwwwwxxxxyyxxnnooccttuuzz~~~~~~kkyyzzoohhZZjjqq}}ttuuuuqqrrssmmeeggffnn}}xx~~~~zzuuvvzz{{iizzzznnzzwwPPSSVVNNQQ\\WWLL\\cceessttkkoopplliijjqq}}yyqqrrzz{{{{ww||||uuuuppyyzznnXXCCGGQQeezzwwXXBBFFJJMM``TTJJBB<<DDHHDDOOcceegg__aajjssssttwwqqpplleell}}rriiaaSSBB@@DDHH\\ZZ\\jjhh``bbaallssjjkkVVYYccQQZZwwwwxxxxyy}}ccMMPPSSmm||vvffbbqq^^``hhddoollmmnn||||||uuuuvvppqqrrjj~~~~wwxxxxoottqqTTLLOO[[}}}}~~qq}}\\jj``YY[[^^``IIFFIIRRUUXXccppxxiiyyuurrss{{rrppssiiccuuuussVVccooppqqrrss\\WWSSbb}}^^TTWWYYmmooppWWBB[[ccee{{vvwwwwllttrrssttttuuvv}}}}}}}}yyzztt]]__qqssmmaa]]ZZNNQQLLPPII<<FFNNRRLLZZ``__aaccqqrrww{{zzuuvvzz{{xx{{~~~~xxjjkkggii^^``eemmnnmm}}iijjkkhhvvoobb[[^^YY[[ccqq||||wwzz{{uukk^^WWEEOORRUUSSHHLLHHEEFF[[^^``bbddmmuu{{vvwwoottttooppqqkkppzzuusstt}}}}{{ooppuuuuµwwYYRR:://BBFFJJHH>>99AALLRRPPSSSSPPZZZZddooxxoovvww~~ttuuxxyywwwwqqffkkiijjllmmiihhddbb^^SSQQTTeexx}}\\JJDD@@DDNNWWTTMMQQSSVV\\^^TTVVNNKKWWYYll~~wwxx~~~~||~~}}uurrsstttt||||}}{{wwrreeggddffggyyww__ZZ]]YY\\YYSSRRUU[[]]ddhhiiiiffffddggoo{{xx{{yyvvuujjkk||xxuuddQQNNQQYYWWQQFFEEMMPPSSSSPPSSRRQQ[[]]\\ddss}}~~~~~~~~||||~~~~uuooppyyuurrllnnllbbccbbaa]]__nnkkhhffeeiiwwxxxx||}}ssddeebbdd__MMIIMMKKSS^^``__^^]]bbccmmqqrrxx~~zz~~zzzzqqwwzz}}yyvv}}}}ssttwwxxvv{{{{}}}}{{||}}{{zz{{{{}}}}||||~~~~~~yy{{yyyyqqqqqqqqkkaaeeggggggeeggiiddbbccaaaa``bbbbbb^^[[____aacceejjeeggjjhhmmrrlluuuupprrvvzz~~||||||}}wwwwuuqqnnffffhhjjeeeeaadd\\WWYY[[[[[[[[]]]]]]bbggcckkkkddddggkkkkkkkkmmmmmmllqqxxxxzzzzzzuuuummkkkkggggdddd^^\\]]\\\\``bb\\ZZ]]]]\\[[XXUU\\\\\\__iiiiiioooooommiillooppssqquu{{}}||||xxrrrroodd[[WWWWWWRRTTYY__[[ZZWWWWRRJJJJOOOOKKIIIIGGCCCCBBAAEEFFFFLLMMOORRXX``ggkkkkmmnnnnww}}}}}}}}||~~}}zzzzzzvvpprrrrjjbbVVRRRRLLLLLLGGGGGGGGKKQQRRTTTTYY]]]]^^bbffffggjjjjff^^^^ccjjjjllppyy||||qqmmmmmmkkkkiibbbbbbcceeeejjmmiiiimmmmppppppvvttuutthhqquuuu~~{{{{}}}}}}ww{{{{uuuuppppttnnnnssrrooee^^aaaaaaffffffcc````ddddhheeeeeeeeccggoommoovvyy{{xxttuu}}yyyyyyuuppmmssssssnnqqqqqqkk]]]]]]VVVVYYYYVVRRPPSSUUUURRRRYY\\XX[[[[``aaeeffhhoohhhhmmttwwvvyy{{~~~~~~}}yyuuwwwwssvvrriibb__ddddbbbb__ee``^^aaZZcceecceeccccccggoooorrrrttpprryy{{{{zz}}||yyssiiccffffhhdd]]]]ZZXXXXSSTTTTRRUUWWVVVVXX]]dddd[[[[]]]]__aakkkkkkkkkkmmooqqnnssuu}}}}||rrrrrrrriiffddddddggiiee]]]]]]__\\XXXXXXWWVVTTTTRRRRTTXX]]______eeiiiiiikkkkkknnnnnnnnnnssxx~~||{{{{qqqqttookkgghhggaa________ccdddd^^XXXX]]bbdddddd``__\\ZZbbbbbbhhiikkjjffiioorrssww{{{{vvxx{{yyxxnnnnqqttttrrmmiibb``ZZZZ__\\XXXXYYWWUUZZaaccgggghhffffbbeeiikkjjiidd^^^^aahhjjffffppppppssyyzzwwppggddddaa]]__bbbbeecc__[[WWWW[[[[^^ZZZZ\\XX^^eecccc__aacc__ZZ]]``eehhggeehhccjjnnqqvvww||~~xxssrrrrlloorrmmiiiihhggaaaaaaddddddeedd``____ccccffddcc]]]]]]__ddddaaeeeebbddddhhssssssssxxxx||~~||||~~{{xxsssspphhjjmmssoogggg__YYUUUUUUUURRPPPPUUUUUU^^^^^^^^^^^^YY\\^^aaiiiiiiiiggffjjjjjjggggiioouuuu}}}}zzzzzzyyyyxx}}vvrrppllggdd______``]]YY[[``bbccccjjhhhhffddggiiiikkqqoommmmffnnssssssvvvvyy}}||||wwwwssnnlloonniiddaa^^YYWWWWTTQQQQQQPPOOTTVVSSTTUUYYRRRRTTTTTTYY\\ccffffddhhnnpppprrttrryy||||~~uussssssssmmhhaaZZUUUUUUWWWWRRRRSSUUZZbbbbbbeeeeccccccccffjjjjlllliiffiiiihhiikkkkmmkkppssww}}}}zzzzxxuuvvuuqqnniidd^^^^]]YYWWQQQQQQQQRRRRVVTTUUZZ]]^^\\ZZ__bbddhhkkiiddddjjkklljjiiiimmmmooppppttwwzz}}}}~~yyyyvvssrrrroooooollkkkkdd````^^^^\\YYVVSSTTQQSSTTWWXX[[ZZ^^^^____cchhnnnnqqqqqqqqppppssqqqqqqqqssrrppttzz||||||||{{qqlliiiiiimmmmmmffbb[[[[[[[[\\[[ZZ[[ZZ\\]]aaccddddddbb^^ZZ^^aaeeffhhiiffeeeeggllkkiieeeeiimmoottttvvvvzz||~~{{}}||yyyyyy||||yyyyqqnniiggccccccccccaa__aa``__aaccbb]]]]^^^^aaaaeehhllkkjjjjhhccffggjjjjggkknnttzzzzzz}}~~||xxxxxxttrrkkggccccccddcccc``^^YY[[[[[[[[XXXXXXZZ[[XXWWWWWWXX[[]]\\VV[[\\^^aaddeeeeiinnrrttxx||~~||xxxxttqqooooqqnnnnmmkkffddbbbb]]\\ZZZZWWTTRROOOOLLMMNNPPQQOOOOPPPPSSXXYY]]\\__ddffiiooqqssttuuxx{{{{~~vvvvqqqqqqppnnllff]]]]ZZXXTTTTTTTTRROONNNNOOMMIIIIGGGGDDFFFFKKMMOOSSVVYYXXYY\\bbhhjjmmmmmmmmmmqqttuuyy~~zzuunniibb]]]]ZZZZZZZZXXVVTTSSPPSSTTSSSSQQPPPPPPRRQQQQQQQQQQSSSSTTUUYY]]aaccccccggkkssssuuww||¾zzuussqqqqnnqqookkffaa``\\WWTTQQQQPPLLJJJJJJHHHHIIIIHHIIIILLOOOOPPSSXXXXXXWWUUUUWWYY[[^^^^^^__ddkkkkllnnsszz~~~~zzvvppkkhhhhffffbb``]]YYWWRRMMKKIIHHEEGGEEDDEEEEEEAA99DDDDDD??<<88889999??CCHHKKIIHHFFMMUU````````eeqquuuu||ÿzzzzxx||||yyqqqqhh^^^^[[````XXVVVVVVTTRRPPUUOOIIHHIIJJNNNNNNTT``ddddaa^^ccookkkknnyyȿ||||||xxxxttjjffffff^^RRKKKKHHHHOOQQOOJJBB==??AAGGJJ@@99<<99CCJJAAAALLPPPPPPRRYYddddaacccc[[[[ffuuuuyyyyyy||~~wwzzyyooii^^aaaaaaZZMMMMTTTTXXOOBBBBJJSSYYWWRREEEEQQQQTTbbbb^^ZZ]]cchhkkjjqqqqsszzvvvvvvyyyy¹}}||ssnniiiioopplljjcc^^YYYYWWTTWWXXOOOOLLNNQQQQMMKKPP[[WWPPVVQQSS``ddddMM}}UUUUjjDDDDrrrr xx߲oo餤zzzzzz܍4444LL{{{{ߞddddddddWW5555PPHH99,,44``LLLLLL!! 9999++33bbbbGGGG<<WWWWBBBBBB****CCbbPP////////KKmmmmmmvv||||ZZUUhhhhhhhhuu~~]]RRRRddTT8800))66BBBBGGTToooooooovvpp``BB88JJ,,,,]]]]qqttmm77OOOOòáxx^^MMMMTTTTTTXXaamm__NNNNIIIIBB>>)) 22HHHH66!!--"" !!$$!!!!))))))))))444411..**..44++++::HHZZJJ77==LLZZJJ''''22222299GGGG77AANNNN@@3333@@,,0066------##  %%%%%%....77>>00$$$$88DDJJNNNNVVkkkkkkffQQQQQQ[[__ggoowwýzzzz{{ppkkbb^^aaaaYYYYVVPPPPUULLIINNNNHH>>>>@@PP__VVAA;;AAFFFFJJVVggWWHHQQ]]kkkk``YYYYddddjjuu{{||uuwwŲŻŭuullllllffhhff\\WWaaaaYYMMQQ[[aaggSS4444======NNDD????GGQQWWWWKKSSVVPPXX^^``^^``cc\\KK\\llllttſ||||ppeekkkk^^^^iiiiiiiinnnnjjaaJJ9999@@FFWW\\\\\\\\OOKKKKNNFF99==9933<<FFFFAACC>>66//--#### &&00!!##''''))..11//99AAGGMMJJFFJJMMJJCCGGWWffffjj____\\\\ZZZZZZZZRREE==++''''**$$ ((33..22::00&&))33CCCCKKSSSSMMJJRRYY[[bbddddXXTT[[XXXX````YYUU^^YYDDDDKK^^^^TTTTOOOO[[ccllcc]]^^iivvĽë}}ooqqoommoozzvv__SSUUXX[[YYYYRRNNPP__ppzzllqqttwwuussqqttvvlldd^^``bb__VVVVccoohhccRRQQTTXXXXYYddggkkrrrr~~zzbbRRGGEEHHHHIIDD;;22..7788::7733//55DDUUffffffkkooiimmttww~~}}~~}}{{llhheecceeqqxxwwssŷvvppqqwwww{{¼ggQQLLLLZZWWPPKKHHFFCC>>772233AAEEFFNNXXllpp[[SSbbiicc__nnpphhjj]]WW\\XXHH44??HHQQJJFFCC==8866""''332222--$$$$3333++11??JJJJQQZZ``ggmm{{xxuuxxzzvvxxyyxxuurrooxxuuhhKK::..**553333>>BB99++%%((..::EEFFJJQQUUbbnnrruuxx{{vv~~ppkkqqvvzz{{||~~vvppkkhhnndd]]hhmmqqttttmmppqqoo}}Ŀuuwwzz~~xxssllUUCCBBBBVVgguu||{{||}}zzrrooqqhhTTYY__PPKKRRbb^^\\ccjjppee\\QQ@@CCSS]]iivvyyvv}}mmXXKKRRXXll||sskk__UUYYNNNN\\jjww{{zz~~xxiillooff__\\ddlloopprrppddTTTT\\UU]]kkzz}}wwrrhhffkkxxvvii__OO<<??CCMMZZeess~~}}||zzllaa]]VVRRFFOOXXIIDDMMVV]]``^^KK==AABB??HH[[____ffiiiioo||||}}}}ssoojjVVFF55((,,<<GGDD;;5511,,%%))..::CCKKQQOOUUaajjooyywwnnqqvv{{qqiicckknnggmmssttssoojjff^^YYSSXX``__[[iiuuaa[[__SSJJkkllmmyyvvoonnxxttbbffiillyyǻԾ~~^^VVLLCCFFPPYY[[NNCC<<7755AAGGRR__bb^^ddggppuuxx{{vv}}zznnaaddjjkksszz{{yynnkkYYPPccjjjjiiddUUXX__eehhppllbbpp{{}}xxjjbb__]]ccggZZKK??EEFFLLXXSSZZmmuuttww}}yyvvttkkiijjggeekk^^SSeedd^^kkvvvvzz}}uueeggrroossaaTTQQ[[llrrllYYOOGGHHQQPPUUYYddmmqqllttww}}{{rrjj}}qqjj__WWYY[[]]TTQQMMWWSSBB550044227700//3388CCBBCC8811<<JJNNFFVV]]bbggggggggkkeeccuu~~ssppbbBB<<99FFVVdd]]LL@@66==??EETTbbmmrrhhnnttuu}}zz{{ssnnooppooiiggffffccYY]]ZZXXbb]]^^ccggnnoommhhbb]]eellrr~~ĹĽ}}ttmm||wwmmeeiiqq||~~zzkkffjjhh``ddVVEELLYY__ZZ``eeXXSSZZNNKKNNccjjppyyyyyyuu~~yyvv~~ssZZKKNNQQXX^^dd^^MMGGDDBBAALLUU``jjmmsswwvvkkkkssnnjjjj__aacckkxx~~qqiikkuuyymmZZ``rrzz~~Ƴsseevv{{uu}}yyuuzzrrrrssssttuurraaMM55++((11@@EE==44&&''..22::<<BBGGDDMMRRVV[[aacc^^[[XX__ccwwyyjj^^__aacceeggbbbb``__ddddbb``]]bb``eellddccyyuussqqoonnrr~~wwddccZZggrrzznn^^RRHHJJTTaaeeiiqqrrvv~~{{{{uuppoollWW9955==EEMMSSKKEE::..&&##**,,004411--33==@@MMVVSSJJMMPPTTUUWWYYSSTTNNIIBBGGLLKKKKEEBB7755<<>>998866..2244<<LL]]ffhhccYY\\__nnhhiippmmnn{{||~~vvggiilljjxx{{yyhh__\\[[ggbbccddbb``__mmppvv||}}}}}}{{}}~~uuvvppqq||vvwwiijjkkmmuu}}zzvviijjlljjttuullggssnnoozzqqwwxx{{uuttuuuuqqyyttuussqqooeeccUUWWLLSSVVYY[[[[SSPPSSVVYYSSbb\\QQ``TTWWUUXXddccbbddbbkkvvttwwppggnnmmwwppiijjQQddffggcc``ffWWZZaaggaaffppllwwww}}~~vv~~zz}}}}zzmmee[[aaccddnnttddeeaacceeccaa__aaVVTTWWYY__aacc^^````jjssyywwxxzzzzxxuuwwww~~~~zz}}zzxxttuuggSSUURRUUXXVVUUJJMMPPSSVVYYQQOOTTPPYY\\__ccffoorrsszzzzyy~~ooppzzsszzrrjjkkeeggwwwwppxxuuvvyyyyyyvvttttxxvvwwttttuu}}wwttuuuuooppeeccaa``VVAAEEII??CCGGFF888833++&&++''%%//4499<<@@HHLLNNNNJJJJNNQQ]]ccggiimmppmmmmuuvvxxyyyyzz{{}}~~wwqquussttuuzz{{wwwwttnnoorrnnmmppqqqqqqxxttzz||{{eeggbb^^``bbhh^^ZZ\\YYYY]]^^WWWWWWYY\\^^hhjjmmnnllppww}}ppqqhhjjkkppqqddaa^^YY\\^^[[VVPPSSUUTTUURRQQTTTTNNQQNNTTWW[[^^^^bbccbb``ddhhggeecccccceejjqqttyy{{xxvv~~||xxxx{{||||zzzz~~{{ttyyzzzzvvwwuunnoovvjjddffggcc[[ZZ]]XXZZ\\__\\__aaaacc____aa\\ZZVVWWWWXX^^^^^^^^XXXXYYWWRRRRRRRRNNRRSSQQWWWWWW[[^^aaaagggggg\\``cc]]]]]][[]]``eeeennqqtt{{}}}}~~yyuuxx}}zzxxzz||zz||{{yyqqttyyyyyyyy~~}}~~~~{{{{{{{{{{{{{{{{vvvvssssqqqqooookkjjjjjjkknnnniijjjjddffddddbbaaZZZZ\\ZZXX[[]]__ccaa````cccc\\\\\\ZZYY]]]]XX[[____ccddcc____aacc``eecceeffffddddjjqqssssvvxxuuuuuuwwqqsszzzz}}||zzzz~~}}}}wwuussssuuuuuuvvwwwwwwxxxxttppoooooolljjjjjjggffggiimmmmiiiieeaaaa^^^^``bbffffeeaaddeecccceejjhhgggghheeffffeeccffkkuuuuuuuuuuuuuuuuwwuuuussrrmmppuuuuzz~~}}}}~~{{wwxxxx~~{{xxxxxxxxxxwwwwwwxxxxwwyyyy}}~~~~||||||{{yy||{{}}~~||yyyyzz}}~~zzzzzzxxxxwwwwvvuuqqrrrrssssuuttppnnllhheeffjjkkppookkiijjllllmmllggcc^^^^``aabbgghhjjkknnppppppppppooooppqqqqttvvttssttxx||}}}}}}{{||{{||||||~~~~xxuussssnnhhhhhhjjmmoooonnnnkkggeeeeeeeeddddbbbbbbffhhhheeeeeeddccbbaabbbbaa]]]]]]``bbbbddddddggggeeaaaaaa]]^^``bbddddhhjjiijjllkkllooqqpppprruuuuyy{{{{||~~xxvvttqqqqnniiiiffffffggggeeeeee``__]]\\\\____ZZZZZZZZWWWWYYXX[[[[]]ZZVVVVTTSSPPKKKKLLLLLLOOOOOOOOOONNNNNNLLHHHHIIJJJJLLPPTTSSVV[[__bbbbccffgggghhjjjjlllloorrttuu{{{{{{~~}}}}}}||}}~~}}yyuuqqmmmmmmmmmmkkhhhhdd````^^ZZYYVVSSQQQQPPPPPPPPQQQQPPPPPPRRPPQQPPPPPPPPMMMMJJLLMMNNOOQQQQSSSSSSSSTTPPNNLLLLLLLLIIHHHHJJJJIIJJKKJJJJLLNNNNOORRSSSSUUVVXXZZ\\\\``cchhkkllnnooqqttssssvv||~~||zzzzyyyyyywwttrrppppppppnnmmllkkkkhhffffccccccaa____``bbbb``]]]]]]]]]]]]]]YYYYYYXXWWWWWWXXXXWWWWVVUUUUTTVVTTQQRRRRTTTTTTSSTTSSSSSSRRRRTTUUTTSSSSUUYY[[[[\\^^^^^^__``bbccddbbddddddeeffjjjjnnooppppppsswwwwxxyy{{{{}}||||zz||~~~~~~~~}}zzzzzzyywwttttttttsspprrppppllmmjjiiiiiiiihhddbb__\\WWWWVVRROOOOOOQQQQQQRRSSPPQQQQQQOOPPQQQQRRRRQQOOQQSSSSTTTTVVUUXXVVVVXX\\^^]]\\\\^^cceejjjjjjggffeeccbbbbaacccceehhhhggggggffccddeehhffggggffeeeeeehhjjooqqqqqqqqqqttvvwwxxzz||}}~~}}||||||yyyyzz||{{{{yyyywwttpplljjhhddddddeeddddccddddddddgghhffeeccbb``]]\\]]____\\[[]]``bbaa``]]\\ZZYYVVVVUUXXWWYYZZYYXXWWZZ]]^^__[[XXUURRTTVVVVXXZZ]]__``bbddgghhggffeeddccccddffhhkkkknnrrwwzz{{{{||zzxxvvuuxx||}}zzyyzzzzyyzz{{{{{{yywwvvttqqllkkiihhffeebbddddffffffddbb``__\\[[YYWWVVTTUUWWYYYYUURRPPPPPPNNLLLLKKIIHHHHIIJJKKMMSSWWYYZZXXWWWWYYYYXXVVVVWWYY[[^^bbffiillmmmmllllmmmmooqqqqqqrrssuuwwwwwwvvxxyyzzyyxxxxxxxxwwvvuuvvwwxx||~~||xxuurrookkiiggeecc``]][[\\^^____\\ZZYYXXWWUUTTTTSSPPOOPPQQSSSSTTUUUUUUVVUUVVXXXXXXZZ[[]]]]]]]]]]\\\\\\^^____``bbccddbbccddeegggghhiijjjjhhhhhhjjmmoopprrrruuwwxxxxyy{{||xxwwttssrrqqppppppnnlljjiiffddddccaa^^\\YYWWUUTTRRQQQQPPPPNNMMKKJJIIFFFFGGHHFFCCAA@@AABBAAAAAADDEEEEGGKKNNOOPPNNNNOOPPQQSSUUWWXX[[^^``aaccffiikkllmmnnnnmmllllllnnppppppqqrrssuuxx{{||{{zzyyxxyyzz}}{{yyvvssppookkhhggggeeddddccccddccaa``^^\\YYUURRQQRRQQOONNMMNNPPOOOOMMNNMMLLLLIIHHJJKKMMOOPPOOOOQQRRSSSSSSTTRRRRRRQQQQRRVVYYXXZZ\\^^aacchhiihhaa^^aacchhiijjkknnqqrrrrssuuttqqppoorrqqssuuvvwwwwxxzz}}~~~~}}zzwwvvttppmmjjiiiiiiggffeeddccbb__]][[YYXXWWWWXXWWVVUUUUUUTTSSRRRRPPOONNLLKKKKKKLLMMOONNOOOOPPQQPPOONNNNMMMMMMNNOOQQSSUUWWZZ[[\\[[[[[[]]\\\\]]``aabbccffjjkkkknnrruuttssssuuwwxxxxyyzz||zz{{||~~~~}}~~{{xxvvuuttssrrqqqqoolljjggffddaa]]ZZYYYYYYWWUUUUUUUUSSQQOOOOMMLLIIIIIIJJHHGGGGEEDDDDDDEEEEGGJJKKLLMMNNOOOOPPRRSSUUXXWWVVZZ__bbccccffhhkkjjjjjjkkllllkkkkllllmmnnpprrttttttttttttttttuuuuvvwwwwyyzz}}}}~~}}}}||}}}}}}}}}}}}}}||yywwttppmmjjjjiihhggggeeccbbcc``^^[[XXUUTTSSRRQQPPPPPPQQRRQQRRSSTTTTUUSSQQQQSSUURRRRVVVVYYXXZZ[[[[[[\\[[ZZ\\[[[[\\^^``bbeeddccddffhhiiiiiiiiiijjkkllmmkkkkllppqqqqqqrrttvvttttttuuvvwwuuvvwwzz}}~~~~~~}}{{zzyyxxxxyyzzxxyyyyyyyy{{||||}}~~}}||{{||}}}}~~||yyxxvvssrrqqppoonnnnmmllkkjjjjggeeddccccccaa``]]]][[^^]]^^______[[XXVVVVVVUURRNNLLMMOOPPNNMMMMJJJJJJKKLLMMMMMMMMMMMMMMNNPPRRUUVVWWXXYY\\]]\\\\]]^^``aacceeeeeeeeeeffjjkkllkklljjkkiiiijjjjjjjjjjjjllllmmqqppppqqqqqqrrqquuttssuuxx{{}}}}}}~~}}{{wwttqqppnnllkkiihhddddeeeedd``ZZVVVVSSUUUURRSSNNQQQQOONNLLMMPPPPMMPPQQQQRRPPOONNKKLLNNNNQQOORRQQRRUUTTTTUUSSSSRRRRTTSSVVXXXX[[[[\\^^\\\\^^``ddgghhhhiijjkknnppttuuvvxxxx}}}}}}}}}}~~~~~~{{~~wwssxxttuuvvllnn||eeffnnjjkklleeggrraaccee]]hhZZSSVVUUPPSSSSTTWWMMIISSPPSSUUSSRRJJQQMMBBJJNNQQFFIIMMMMSS``RRUUSSNN``GGJJVVXXhhcceebb``WWjjkk^^iijjllgg]]llnnrrjjkk~~ggoo}}}}jjkk{{vvvv||iiwwxx~~ķÿuupp||hhjjee]]hhffQQTTCC55::005599&&++))!!      00))..##))330011FFJJ11??CCOO``[[^^``bb[[@@TTvvhh]]HHVVbb[[^^ffnnoobbRRooyyyyzz||Ρyyʲأʽżļss]]WWLLCCRR^^aaZZVVKK??CC::33''##((**//++%%      $$ %%!! ((--''""##))##,,++ 1166CCOOOO;;88==;;??CCGGNNQQTTccaaSSVVaakkmmggccjjkkmmww{{{{rrmmxx{{{{zzzzwwvvyy}}zz~~||||zzxxookkllqqtt||xxqqpphheekknnhhppsskkgg__ddeebb``ddnnoozzzzssoojjmmkkllwwż||||zzuuqqookkmmoolllliiffddbb]]SSVVPPPPPPWWSSLLIIIIFFCCDD::33666633,,**((&&&&&&&&'' !!########""""$$**11----440000779999<<99==AA<<==HHPPIIFFFFAACCIIOOPPLLRRRRMMRRVVXX````^^^^bbddjjjjllrrttssssuuww{{||||yyyyyy{{{{yyyyyywwqqooooookkkkkkcc__hhhhhhff__]]WWUUUUXXUUUUVVTTVV[[VVVVWWWW\\XXYY[[YY__aaaa\\UUUUWWWWZZVVVVVVXX^^``^^]]]]VVZZ``^^^^[[WWWW^^^^^^^^^^YYXXYY\\[[\\__ZZZZ^^^^ddffffeeeeggggllsssssskkkkoommttww~~~~vv~~||~~zz||ƺ·ǿĿÿyyyyyyww{{wwppppssppppvvvvmmjjoorriigggg``WWZZ________^^VVXXXXZZUUPPTTRRPPNNUUWWQQOOLLKKGGGGJJGGFFIIIICCAA@@CC@@AAGGCCCC??EEEE<<??DD==99AAAA<<<<AA;;;;;;>>BB<<>>>>>>>>>>9977::<<<<==BBCCHHEEGGKKEECC@@GGGGGGGGGGGG@@CCCCCCGGIIOOOOJJJJJJNNPPWWUUSSQQQQTTZZ``bb\\ZZ[[__aajjmmmmhhhhjjnnppww{{{{{{}}~~~~ý¾~~||xxxxzzwwwwvvwwrrpprrrrqqttttssppnnmmlljjoooollkkkkjjkkjjjjjjiiddddgghhjjjjiiggiikkhhkkoooommooqqqqnnnnoottvvyyxxxxwwwwwwvvvvwwwwyy{{{{{{yyzzyyuuttoorruuxxyyyywwttqqqqssssssssttpppprrqqnnmmjjiikkgghheeffjjeeeeeeddaa^^cc____cccccc^^^^\\\\]]]]``__]]``ggggiiiiiiddddffmmpppprrrrrrwwxxzzzz~~}}wwttoonnmmhhiiiieeeeee__ZZWWTTTTTTTTSSMMLLLLJJHHHHFFFFFFGGHHHHHHGGFFEEEEGGEEHHHHFFEEFFFFHHLLNNOORRSSVVUUUUUUTTUUYYXXZZ]]^^^^^^__bbeeffhhiikkjjjjkkkkkknnmmmmmmnnppqqttvvvvvvxxvvwwxx{{{{{{||~~~~~~~~}}}}zzzzzz||||}}||yyyyxxzzyyxxvvvvttssrrssrrooooqqnnppooppoooopprrqqppooooooqqqqqqssuussssssssrruuuuwwvvssqqqqppppoooooooonnnnooppppnnmmmmllllllkkjjllllllmmmmjjggeeffggjjiihhgggggghhhhhheeccaaaa``aaaaaa``__]][[[[ZZYYYYXXXXXXWWUUVVVVVVVVWWWWWWWWWWXXZZYYZZZZ\\]]]]^^^^^^__bbeeeeffffffggjjjjmmppttsswwzz}}}}~~}}}}{{yyuuvvssoommkkffeeeeeeeeddeeaabb^^^^[[\\[[[[YYYYXXWWUUWWWWWWUUWWWWVVVVWWUUSSSSQQQQQQRRSSSSSSTTTTWWYYXXYYXXWWWWWWXX[[[[[[\\\\\\^^^^____aaccddccddccbbeebbcceeddddddeeggffbbbbbbaaccbbbbbbbbaa````aaaaaabbbbccddffggggffddddddbbbbbbcceeffeeeeeeddddddeeggggffffffeegghhjjjjkkmmmmmmmmooqqqquuvv||}}~~~~}}zzzzxxyyyyyyyy{{{{{{{{||||{{zzzzwwxxwwxxyyyyyyyywwwwwwzzzzzzzzyyyyzz{{zzwwzzyy{{zz||}}~~||||||}}~~~~~~}}}}{{zzyyzzyyyyyyyyyywwvvvvuurrrrrrrrqqrrrrrrrrssttvvwwwwttrrrrttssttttssssssuuwwwwwwxxxxyyzz{{zzwwvvuuuuxxzzzz{{{{}}~~~~||yyyyzz{{{{{{xxvvuurrssssrrrrrrrrrrrrrrqqppoonnmmmmkkhhiihhhhhhhhffffddeeffggggiihhddeeeeccbbbbccbbcceeeeeeeeddeeeeffffffffggggffeeddddggggggiijjjjiiffggggggggggggggggggffhhhhjjhhhhhhiiiiiiggeeeedd````aaaaccccccccaaaaaaaaccddddbb``````ccaaaa__^^\\^^aaaabbaa^^^^]]``__``]]__^^____aabbccccccccffffggggggiiiikknnnnqqqqttttwwxxyyyy{{{{~~~~||xxxxvvuuttqqqqooooooqqssssrrnnnnlllllllllljjiiiihhiiiiiiiijjkkjjiihhhhhhhhhhggggeeeeddddddddddeeffffgghhiijjjjiiiihhhhiikknnooppooooooooqqrrssuuuuuussssssssrrssssppppppqqqqqqppppppnnooppppoopppprrrrqqqqoonnnnppppppnnnnnnnnnnmmmmmmnnooppqqrrssuuxxvvvvvvwwwwxxyyyy{{{{zzzz{{||||||~~||||{{{{yyyyxxvvssrrrrppoommllllmmoonnooooppppppoonnllmmmmmmmmllllllllmmmmnnooppqqqqqqqqppqqnnnnnnnnmmoorrrrrrttttttttttrrrrqqqqoooommnnpppprrrrrrrrssssssttttssssssssssssssssssqqppoollhhhheeccccbb``______``bbbbddddddddffeeffffffeeddddffggjjllnnnnoooooorrrrssssuuuuttssssssuuwwyy||~~||xxuuttssrrqqqqooppooppmmmmlljjkkkkkkhhhhggffeeddeebbbbaaaaaaaabbbbbbbbddffhhhhhhhhddeehhffffffee``bb__YYVVUUUURRWWWWTTUUVVVVWWZZZZ[[\\``````bbbbccddeeeehhhhjjjjkkkkkkkklljjkkkkhhggggggggeeeebbcccceeggiiiihhhhllllllllllllllllllkkkkjjllmmnnoooooooorrttvvyyyyzzxxxxxx{{{{yyyyyyyy{{{{||zzzz||{{||}}||~~}}{{{{{{yyyyyyyy{{~~{{{{{{{{{{yyyyyyyywwwwwwwwttttttttttttssssvvvvvvvvxxxxyyzzzz||||}}}}}}zz||~~}}{{yyyyttqqrrrrrrrrwwsspprrqqppqqssttqqssqqrrppppppqqrrooqqssssttvvwwxxxxyyzzwwyyyyzzyy{{yyyyzz||||||}}}}}}~~||}}}}}}}}zzzzxxyyxxwwxxxxttrrrrssssttuuqqllmmnnoottuussqqmmnnnnppqqttssuuvvyy~~||yywwxxttppoollhhjjaa\\^^ZZ]]______ZZ[[]]__eekkmmppqqqqssttvvzzxxyyuuttttqqppttqqssrrqqrrrrssvvwwxxwwuuppnnjjggccbb]]__\\\\]]\\]]^^``bbccaaccddggiihhffggiijjkkllkkhhiiffgghhiihhffcccceeffggkkllllhhccggjjhhffeeddbbddbbbbbbccddeehhjjjjkkllnnppttuuuuvvwwwwxxzz}}}}~~}}~~}}~~xxttppssttnncc``bbddiiggiijjllqqssww~~ttҰvvwwwwxxֱȍOO??TTttuu||²ff::>>ttwweeoowwww{{ggiiaaYYddsstt{{ttuu||||jjkkllnnuu||||eegggg__rrppqqccTTRRUUSSDDGGPPSS44,,&&++CCGGJJGGWWYYMMPP[[]]YYVV``pp~~[[]]__llmmnnoo~~||jjffqqzzbbddffggiiooppqquu||||||zzwwxxvvjjss~~llnnjjccYYJJMMQQaa[[KKIILLOORRYYUUQQLLMMTTaallppvvttiibbddyy||}}uu}}{{xx~~yyjjaaccrrrriijjllaacchhiikkqqrrmmllgghh__SSVVXXFFJJSSaammnnww{{||yyrr||{{llnn||}}ttuuxxzzyyyytt}}ss\\^^``UUFFDDHHGGFF@@==..,,88<<@@MMHHEELLOOJJKK[[aaggrrvvyyrr}}ttuuyy{{||||zz{{||}}Ǿ}}wwvvssqqjjgg``XXTTII==00%%""   !!!!,,&&,,66DDLLEEIIEEJJAAGGUUZZUUXX__VVeeqq||zz||yytt{{yy{{zzxxuurryywwyy||zz}}tt{{xxssuuwwvvzz~~yyvvttssuunniiccYYVVVVTTJJHHLLNNZZ^^ddeeddbbddqq||ʽ~~wwzzxxvvttwwooiimmqqppoonnnnrryyxxzz||xxuuwwvvrrmmppjjee__[[VVUUTTQQOORRPPJJGGNNQQNNRRWWRRRRUU\\[[[[[[ccdd^^bbaa\\YYTTQQOOQQQQMMOOPPQQUURRGG??>>88554400--''))))&&..00//00;;==@@CC>>==DDKKNNQQSSVVXX\\eecceejjqqrr{{||zz~~}}yyzzttrrssppoolljjiijjkkmmoommqqttsskkee``__``aa__\\WW[[ccffjjkknnww}}||~~||yyww~~{{rriicc[[YYXXQQKKCC====>>@@@@AA??;;9999771111++%% !!!!$$((22;;??FFLLTT]]iimmqqttww||}}{{{{zzxxxxwwppmmnnppnnllkkqqvvttrrvv}}}}~~{{uummffdd\\UUMMEEDDAA>>667733337799::55==DDHHJJKKLLIISSYY]]eellaaYYXXXXXXYYZZYYYYYYXX[[``llmmss{{}}yyxxttppff^^``bbhhffllmmqqppppnnuu{{yywwqqoopppprrnnlliiiinnww}}uullffccZZTTHH==;;::==887766223322::??EEBBAACCGGLLHHEE;;551166<<99==;;<<??EEEEBBHHIIKKMMRRNNIIHHKKMMPP^^jjssvvzzzz{{||||qqkkqqttssnnhh__^^aa]]ZZXX``gghheebbaa[[ZZWWVVVVVVZZ^^``__ddeeffhhnnww~~||{{}}yyvv~~{{yywwnniidd``YYUU[[UUTTPPTTPPMMSSRRSSUU__``````aaddiijjjjllssyyzz~~ÿ¿zzvvttqqkkcc^^__aa\\YYYYXXPPMMKKKKEEBBAA==::77--##!!""##--..003366::BBHHMMSSYYZZ``ggllllmmnnnnnnssuuvvsswwzz||}}~~~~||||}}{{yywwvvvvttqqmmllkkllnnqqrrttyy||}}}}~~||vvqqiieecc``^^XXTTTTWWWWUUSSRRRRVV]]cchhmmrrttww~~º||{{uummbbaabbbbccffggddbb``cceebb__ZZ]]__bbeeggeeffffeeggkkhhee``]]YYUUSSNNFFAAEEIIGGHHKKNNQQOOOOSSUUYYYY\\^^aa``____]]\\``````aacc^^WWRROOIIEECC??;;;;==??>>======AAIIOOSSTTWW[[bbffiijjoossww||ttmmjjiiiicc__]]]]\\^^ccffhhjjllnnnnrrzz||}}ÿ~~yyzzvvuuvvvvwwttssnnmmmmmmoolljjeecc``\\VVTTTTOOHH@@99662200,,**(())))----//115577;;@@FFKKOOSSZZ__jjppvvyy||zzyyttppmmkkiiiijjkkooqqrrooppuuwwyy~~||yyvvuuuupplliiggbb^^ZZSSUUSSRRLLMMMMHHFFDDDDBBIIPPOOQQUUYYZZ``eehhjjoouuww{{||~~~~}}}}¹}}wwuuqqmmhhdd^^XXSSMMLLIIFFAA??@@BBDDEEEEDDCCEEGGJJMMMMIIFFDDDDGGHHKKLLMMMMOOQQSSRRRROONNMMMMMMNNOOPPNNMMMMSSYY^^^^^^__ccggffddaa__^^````__bbbb``^^aaaabb__________\\ZZYY\\__]]__bbccccffjjkknnppqqtt{{{{yyvvvvssssnnlljjkklliiggffbbddbbaabbbbbbaa__``bbbbbb]]ZZYYZZ[[]]bbddeeddeejjppuuzz||{{~~¼~~wwttqqjjee__[[VVQQKKFFBB@@<<33,,''##"" !!%%&&((++))++..113366<<>>AAGGNNSSWW[[\\``ddhhhhllllmmmmmmppssuuvv{{}}||zzvvssrrqqpprruuvvvvvvuuuuuuttssttttssttwwyy||~~~~{{zzyy||zzxxwwttssuuuuuuttuuvvxx{{||zzzz{{xxssqqoonnnnooppnnoollllkkmmppooookkiiiihheeaa^^]]\\[[]]``____]]__]]aaeeggffcceeffggffjjmmqqxx}}||zzxxvvrrnnkkiiiiffcc__]][[YYWWVVUUUUTTTTRROOLLIIGGBB??==>>>>==<<>>@@CCGGGGCC@@@@AAAABBEEGGIIGGJJMMOORRVVYY__ddiikkllkkjjkknnqqqqttvvyy{{||~~{{xxvvttssssrrssssqqoollkkjjiillmmkkjjmmooppppooppppttxx||zz||}}||||~~}}}}||}}}}zzwwuuttqqmmiijjhhgggghhjjkkllkkkkkkjjhhggiikkllhheeggiilljjkkmmnnnnnnrruuwwxxzz||||zzxxuurrppnnmmjjggddaa``^^__^^^^[[XXWWUUTTSSRRNNLLHHGGGGGGHHGGFFIIFFEECCEEHHMMNNPPPPQQUUTTUUWWXX[[]]``bb````aaaacceeggiiggggffffffeeddbbddeeffffgghhiieeaa__^^\\\\]]^^^^^^ZZXXWWYYYYYYVVXX[[]]ZZXXTTQQOOOOQQTTVVVVTTTTRRTTUUWWXXZZ\\^^__``____^^aaeegghhllppttvvxxzz}}}}}}}}}}zzzzzzyyxxwwttttrrpplllllllllllllljjjjllmmmmqqqqppppooqqoopppprrttuuxxyy~~zzvvttoooonnnnkkjjiiiijjllkkjjjjkkllllllnnmmmmmmmmnnqqttwwwwwwvvuuttuuuuuuuuwwttrroooommllkkjjjjjjmmmmllkkjjjjhhhhffeeaa^^YYWWTTQQOONNMMMMKKLLMMOONNMMKKGGEEEEDDDD@@@@????>>AACCGGJJKKRRTTXX\\]]]]ZZ\\\\^^^^aaddddiiiinnnnssttttvvvvzzwwxxvvvvttww}}}}}}zzzzyywwuuuuuuttqqppnnmmmmqqssuuuuuuyyyyyyyy{{~~~~}}xxwwuuuuvvuuvvvvxx}}~~}}}}{{}}||||yyvvrrttttttqqqqqqqqnnnnnnnnooppppnnllmmllmmllkkllhhff````\\UUUUOOIIAAAAAA==;;77::::::::88;;;;<<<<>>>>;;::::>>>>DDKKMMMMPPXXXX____bbbbbbffeeeeeeggeecceebbddccffeeeeeeddcceeiikkssyy~~~~~~~~zzzz}}}}yyrr||ssbbbbbb^^ZZaaZZOORRUUMMMMBB>>;;,,,,$$ $$$$&&&&******2222222288<<GGKKTTTTQQaa[[WWWWZZZZTTZZddggggppnnaaiimmppssss}}jj㥥Ͼ⿿ͳٮƨ٬ʾzzuullllhhhhkkqqjj__bb\\ddvvjjddddmmuuxxuuiiPPPPPPWWjjoooobbUUGG999966//!!$$!! $$ &&**,,666666;;FFQQNN::::::??DDIIUUUUKKBBGGQQNNDDJJ]]jjdd____VVZZWWTTTTOOQQ__rrxxccWWLLGGGGCCCCCCFFFFCCPPLLHHUUUU]]``ffffooxx}}~~nnnniieeeehhhhhhff________iizzzz{{vvrrppffWWRRQQWW\\eemmqq||yyzz~~wwddUUIIDD@@//!!  $$--66??LLRRcciiooiieehhmmqqkkllqquuzzƼuuooggjjmmmmhhddffffiioouuyyvvyy{{~~}}}}vvwwzz}}rrjjggeeggddaa]][[]]__bbeeffhhiioottwwzzzzzzvvrrnnff``[[QQDD==8822**##%%11;;??DDJJRRVVYY````aabb]]^^ZZWWRRQQMMOOQQTTWW]]bbcchhmmnnrruuuummggbb]]SSKKII>>6600**    ""$$''**++--1166<<BBIIJJBBCCKKUU^^__^^^^bbeeiihhhhhhhhhhggffeehhiicc[[PPHHBBAA>>44&&##,,4499AAGGPP\\eeggiinnssvv{{zzxxvvww{{~~}}{{~~{{uunnkknnpphhccddffhhppwwzz||uujj\\RRKKFFJJIIFFDDKKRRZZiissyyÿoo^^QQOOLLKKDD>><<;;DDRRYYXX]]``gguuwwrrllhhggddggbb]]UUNNJJGGFFFFGGJJNNRRYY``ddccccffjjnnkkgg``^^\\[[ZZUUQQNNKKJJRRYY[[aaddhhqqyyzz{{~~~~xxuull``WWGG66..++'' %%66EEFFRR]]``ffppttnnookkmmmmkkddZZRRSSWW[[]]__^^__aajjqqqqoonnmmmmrroohh``[[WWSSRRPPIIDDCCHHNNSSYYUUSSRR__ffiikkffccddiippvvrrrr||xxssuuvvwwxxqqllppqqrrsskkeeaaWWNNJJBB66..$$  ((44??KKUUccqqyy{{qqooiigghhkkiiiikknnrrvvuurrllbbUUOOEE9900%%  !!44EETTaakkttww||~~zzwwooqqqqiiccaabbhhnnuu~~||rrssttvvuuxx}}ü~~zzvvsszz}}yymmcc\\HH88,, %%33??RR]]eeqqwwxx||zzooffaaaa\\[[]]^^cciippvv{{~~uullddYYXXWWXXYYZZ__ccggrr{{~~~~yyuussqqpppphh__aa``aaoovvooyyƿ{{nnccSSDDEEFFHHNNTTYYgguuyyqqmmgghhffaa^^eeqqyyttkkddZZSSJJ??776677@@BBFFGGKKQQYY``]][[ZZSSOOPPKK??<<;;==CCMMUU]]eesswwzzzzyy{{}}ſttggXXGG::::>>BBPPWW__kk~~ŽssccUUKK@@CCJJJJNN^^ddmm{{rriikkee``]][[__eekkppxx~~}}wwrroosswwxx{{}}øtt__WWEE--!!!!  &&338899CCIICC??<<88..))((####%%++33::@@KKSS[[ccggffhhiiee``\\VVRRPPPPQQTTTTVV[[aahhrr||||xxoonnookkffggnntt½ɹ||hhXXPPJJ??AAIILLLLUU^^ccmmxxwwssvv{{xxttqqff[[YYYYPPRRWWUUXXccmmuu||yyuuqqmmgggghhnnrrww}}~~{{xxrrooss{{¾||yy}}}}ppjj^^KKPPOOHHOOUUVVWWkkvvyy{{{{{{ssjj``YYWWXXUUWW]]aajjuuyymmbbZZVVNNHHAA<<??JJQQYYaaiillxxxxmmeeYYJJBB>>:://4455--77AAIIMMUU\\\\ddllnnhhiiiieeaa__``ZZZZaaddkkss~~ĿĿ~~vvhhbbffbbaaaaeeggkkqquuvvvvxxttqqttnniiffccbbaaggeeccggtt||~~xxxxyy{{~~{{wwuuuuyy{{}}Ļ~~uuoonnkkhhiiiiffeejjjjffaa__^^ZZ^^YYTTPPJJIIIIJJJJIIEEFFLLNNRRRRQQNNLLNNLLMMIIFFEEDDDDBBBB??==????DDEEEEGGHHPPVVXXZZZZYY\\__``^^]]VVWWZZ[[__^^aaddhhww{{ttnniijjgghhnnkkllooxxtt}}}}wwuussrrrrnnkkbb__bbeeddddggddjjppnnttqqqqqqqqvvttrrpplljjjjjjffddddeeffhhhhlliikkoorrxxxxwwwwwwxxuuttssmmnnppjjjjmmttttxxwwqqiijjdd[[``]]^^``bbiiiimmppssssxxxxvvwwqqqqrrrrssoottvvzz~~xxyyrrssnnjjnnnnrrvvzz{{||zz}}||{{uuttssmmiicc\\WWUUSSRROOJJKKLLOOUUXX]]``__ffggjjkkggdd\\VVQQJJCC>>8833//0022..//00112266;;<<AA@@DDEEFFHHHHHHDDBBBBEEHHKKKKIIPPVV[[aaaaffiillvvzz~~yyvvxxttssuussssrrmmoonnmmnnkkggjjjjjjiikknnssssuuxxuu||||xxppmmkkee__XXSSPPJJGGEEDDBB??<<;;;;<<9999999955334455333355555544556688;;>>AABBFFGGLLQQUUWWXXYY[[]]^^``aa````__^^``cceeggiikknnqquuvvyy~~~~~~}}}}~~yyuuttqqppmmiieeccaabb``^^\\[[YYXXWWZZ[[\\^^__``aacceehhjjkkllkkkkllmmooppqqqqqqrruuwwyy{{~~~~}}}}~~}}yyxxwwvvttuuttttvvxxyy||||~~}}||{{yyyyxxvvuuuurrrrqqqqqqppnnllhheeeedd``^^XXVVPPPPPPPPOONNKKJJKKMMNNOONNOOLLKKIIIIHHIIHHGGEEDDBBAAAAAADDEEGGHHHHMMNNRRTTUUWWYYYY^^aaccggiijjnnmmppttttttrrqqrruuxxyyzz{{{{{{~~~~~~~~~~~~||{{xxuuvvxxzzzzzzvvvvttuuxxzz}}~~~~zzuuqqqqqqppmmllggccbb[[[[]]]]]]YYWWRRRRPPRRRRTTSSRRRRQQSSXX[[__``bbcceeddgghhmmoopppprruuwwxx{{~~~~{{xxttqqqqppnnhhaa^^]]]]]]]]ZZZZXXVVUUUUWW\\\\\\[[WWWWXX[[^^__``aaaacceeggjjllooppuuvvyyzz||{{{{{{yywwvvvvttttssuuuuwwwwxxwwvvuuuuuuwwwwwwwwxxxx{{}}~~}}~~yyzzzzqqeeeeee__ZZSSSSMMHHHHHHBBDDMMAAAAGGBBBBDDDDDDCCHHEEEEIIIIDDGGQQTTTT[[[[]]ccccffoorrrrrr||||yyzzuuoooonnllkkkkjjeebb]]WWTTRRPPKKKKGG@@@@<<<<<<<<<<<<;;<<66669999<<<<<<>>99<<<<EEEEJJMMMMPPPPRRXX[[aaaaaaddffhhjjkkqqqqqqssttxxzz}}~~~~~~{{wwwwppmmiikkiiiiiiiiiibbbbdddddd````__^^__aaaaccbbbbeellllnnrrttvvyy||{{}}||xxuuxxwwwwuuuuyyzz~~}}||{{{{~~~~~~}}~~||||}}vvvvvvvvvvvvssqqqqllggggggdd__cc^^[[ZZ]]ZZXX]]ZZZZTTTTWWUU^^^^^^^^aaaaaaggggllqqqqqquuxxuuxxvvzzzz}}}}{{||~~~~~~~~||||zzzz{{{{}}}}||wwwwqqqqffffjj``kkaaddbbbbbbZZaa[[````````ZZbb``bbbbjjgggglljjmmmmssssuuzz||}}}}~~}}~~yywwwwwwxxuuwwqqssqqqqqqnnoojjjjhhhhffccdd__ccccffggjjnnppttyyyy||zz~~}}}}}}}}wwttqqggjjbbbb````\\SSVVGGLLLLEEHH????3377444444118800<<<<<<BB::<<<<<<@@@@==AACCCCGGLLIILLPPPPSSVVYYXXWWWWVVUUWW[[TT]]ZZZZZZZZ\\YY]][[]]]][[__YY]]]]````aacc^^aaccccccccdd__]]^^[[[[ZZ]]^^^^ddddffhhppppss||||||~~~~{{xx~~ss}}wwuuuussvvssyyyyyyvv{{}}}}}}}}ż}}ssvvxxvvxxvvuuoooommkkoojjjjhhhhddddkkkknnppwwzzzzzzzz~~{{~~~~xxxxrrgg____\\\\\\\\``]]^^YY\\\\RRVVSSSSNNNNNNLLLLRRWW[[[[^^^^bbbbbbggggkkkknnppllrrrrvvwwyyyy{{zzuuxxuuttvvvvvvvvuuttssrrrrrroooollhhhhffaaaa__]]]]YYYY[[XXZZZZYY\\WWZZWWWWYY[[__^^cccchhiijjoooossrrvvxx{{vvvvxx~~~~~~qqllyyuuuurrmmeeeecc``ffYYYYYYRRRROOWWWWUUOORRQQFFRRRRRRRRMMMMMMSSSSSSPPPPTTZZeeeeeeeeeeccggmmjjjjggddiiiinnssppqqttrruuxxqqyyttrrttrrrrppnnnnnnmmssuussvvrrrrrrppllookkiikkkknnjjkkssppnnyyyyyy||||{{{{wwuuvv~~~~||yywwyy~~}}yyuuss}}~~{{xxqqnnffccbb^^^^ccaa^^dd]]\\____bb^^__aacc__ggffggssoottyyyyzzzz{{{{~~||~~}}||{{zzvvvvttqqrrqqpprrqqssuuwwyy~~~~~~{{xxvviidd__\\[[ZZZZVVUUWWUUTTUUWWUU\\ZZZZZZWWUUUUUUYY]]__aaccddeeffiillooppppoonnnnqqsswwwwxxxxvvttppnnoonnmmllhheeccbbccccddddddbbaa________]]YYWWVVVVTTUUWWUUWWYY[[]]^^__aaaaeegghhhhhhiikkmmoorrvvxx{{{{||}}}}zzzzwwvvttrroommkkjjiiggeebb__\\WWSSQQOOMMMMNNOOOOQQRRSSWWXXYYZZZZYYYYYYXXZZ[[^^__``aaaaaaeeiimmppssuuvvxxzz||~~}}xxwwssrrppnnllkkiihhffggiimmppoonnmmllllooqqssttttssrrrrttzzyyuupplliieecc__^^[[XXVVVVVVWWVVVVSSQQQQQQQQSSSSTTSSUUTTWWYY]]aaeehhkkmmppqqssuuwwyy||||{{{{{{~~~~~~~~}}zzyyxxwwwwwwwwxxyy{{}}~~{{ttqqlliiggffdd``]]ZZXXUUUUUUUUUUSSQQNNNNKKNNQQPPPPNNLLJJJJNNQQTTWWZZZZ]]__bbeehhkknnqqppppooppqqrrvvwwxxxxyy{{~~{{zzvvttrrqqqqoommllllllllnnooppppppooooppppooppoonnooooqqssuuvvvvvvxxzz{{}}~~}}~~}}zzwwwwvvyy{{zzxxttookkeeaa^^]]]]\\WWSSOOLLKKLLOONNMMNNMMMMMMPPRRVVWWXXTTSSRRRRTTXX\\``ddffffhhjjmmqquuxxyyyy{{}}~~}}yyttnnllhhffddbbccccccaa````aabbeeeeggggffggffeeggjjmmllnnnnssttwwzz||}}}}zzvvmmhhee``__]][[WWTTRRPPOOOOQQSSUUUUSSRRSSTTVVXXXXXXYYXXVVUUWWZZ\\^^__aacceeiikkoorrttwwxxxxyyzz{{}}~~~~}}}}||{{{{{{yyxxzz||}}||yyxxvvttvvwwttqqllhhddaa^^[[ZZWWUUSSQQOOPPSSVVWWVVVVVVVVTTUUUUUUVVUUWWSSUUVVVVXXZZ\\^^__aabbddggllmmmmnnooppppooooooooppnnnnnnnnooqqssttttttttttttssrrqqppnnmmkkkkiiiiiiggffffgghhiikkllkkkkkkkkjjiiiihhiihhjjjjllnnooqqttvvzz||~~}}||{{yywwttuuttssppllhhddbb__\\[[ZZYYXXTTRRPPSSTTVVWWYY[[[[\\\\]]__bbbbbbbbaa``aabbddddiijjmmpprrttwwzz}}~~~~||yyvvuuqqqqoonnmmmmooooqqssuuvvwwyyzz}}{{vvrrnnllkkkknnmmkkiieeccbbccffiijjhhggffffggllooooppppnnllmmnnrrttuuwwvvuuttttvvwwxxzzzzzz{{zz}}~~||{{{{{{||||||{{zzyyzz{{{{yyzzxxxxvvuuuuuuuuvvuuuuttwwxx{{||{{xxssssrrrroojjggddccbbbb``````]][[YYWWVVWWYYZZ[[]]\\[[[[\\^^aabbcccccccccccceeeeggggffeeffhhkkmmooqqqqqqrrssuuvvwwvvuussrrqqppppppooooppoonnooppqqrrrrppoommkkjjjjiiiihhffeeeeddffggiikkmmnnpppprrttuuvvwwwwwwxxxxyy{{}}||yyuuppqqppmmllggdd__^^^^^^^^^^]][[ZZZZ\\__``ccbbaaaa``bbcciiiillllmmmmmmpprrxxxx{{~~}}}}zzxxwwvvvvssssmmjjhhhhiiiijjiijjjjkknnppttvvzzzz||||~~~~}}}}{{zzzzvvvvttqqmmjjffddcccc``aa]]^^]]____aaddeehhhhgghhhhhhkkmmmmmmjjjjkklloossssssvvuuvvzz{{~~{{{{{{{{||||{{yyyyyyyy}}~~~~~~~~||xxxxvvvvwwzz{{{{{{{{yy{{{{}}}}||{{yyuussoojjggffccbb``__^^[[YYZZYYYYYYZZZZYY[[[[]]aa``ccccaa``aaaaeegghhkkkkkkoooouuwwyyyyzzzzzzzz}}}}~~}}||wwvvvvssssrrqqoommkkjjkkjjiikkkkkkhhffeebbccccaa^^__\\``__``cccceeggiimmooqqrrttuuzzzz}}}}}}}}}}}}{{yyyyvvssooiihhiikknnqqiiiiiiiimmkkmmmmnnnnmmmmiippppttvvttttppvvvvxx||{{}}wwyyyy{{}}{{{{{{wwxxzz~~zzxxvvvvsssswwvv||||||yyvv{{{{xx||||oooooorrmmooffaaffaacc^^RR``dd``VVVV^^YYddaaaaooaaeebbhhqqllqqqqvvnn~~uuuuuuzzzzzzzzzzzzzzzzqqqqqq{{xxtt}}mmmmvvyyggggllvvrrssggnnhhhhuuuuqqqqqqyyrrppppppyyyy~~rrvv~~~~||{{yyyy}}}}{{~~{{~~yy~~wwoottttyyyyyyoolluurrpprrqqppxxjj__eeppzzrrllppllzzuummwwrr{{xxvvzz}}jjiibbcchh``ZZVV__YYTTTTVVXXWW\\\\ZZXX[[jjggeellrrssggjjnnqqmmddhhoorrllmmjjYY\\__YY]]]]eebb``dddd\\TTXXSSCC>>552200,,))00..%%**&&$$$$!!  "")),,;;II@@GGHHOOPPRReeffggllTT!!33||``PPpp}}{{zzyyjjqq՜ȼݺ}}||~~}}~~{{rrhhZZKKCCAAJJ]]jj[[OOFF??;;22&& %%++++++88((%%$$%%$$ ''++&&00**++==CCII>>66112277::77664411--**44>>,, !!##  **2244//((''..557799>>BBNNccooaaNNGGIIRRTTQQPPTTTTUUbbbbSSWWccjjppnnmmmmhhoo{{vvmmkkppuuyyzzssooxxvvssyywwxx}}{{ww~~~~{{zzzzuuttsspphhffmmnnkkppuuppmmmmkkoonniijjmmssssttttssxxyy{{ww||{{yyzzvvsszzuuvvxxuussqq||~~{{ſºxxrrkkjjggeeffgghh``^^\\[[``cc]]]]\\XXWWXXTTSSOOLLQQOONNNNHHJJKKIIFFDDCC==??@@==@@@@??8899>><<>>BB>>99664444776611--2277<<??<<55444455888877887766772200//""!!""%%((,,33::??DDDDCCGGMMQQUUQQNNMMJJFFDDAA@@==44//,,..4488;;AAFFHHHHHHOOSSSSTTNNHHCCAAAA::44,,((''""''((((''##)),,11;;7744888899;;AAGGBB@@??<<BBFFHHIIIIMMMMOOWW\\ZZZZbb\\``ddYYVVWW\\aa``]][[ZZ__ddddiijjiihhmmqqqqttvvuurrppssttuuvvqqnnmmiieecchhdd``aa]]\\\\``eeffllkkkkuu~~||xxxxxx{{}}}}wwooeebb______aaaaaaaaddddffeeeeffffffhhjjjjgglliiiiqqqqqqqqqq||||~~~~~~½ùžzznnnnddddhheeeeeeee``hhrriiiiiiaacc____]]]]]]XX[[WWVV\\\\^^``ddkkpprrppkkkkhhjjeeee``XXUUWWWWWWWWVVYY[[__ffkknnnnqqsssssssslliiiiiieegghhbbffjjjjppttwwpprrnnjjjjddYYUURRRRLLLLLLPPUUZZZZ__hhqqttvvyyyyyyzz||xxssnnffffffffffffiimmuu~~||||ssppmm````hhhhkkttyywwwwwwwwrrmmqqwwssssssyy}}zzttkkhhkkmmuuxxxxttnnppttrrvvnnff^^\\\\^^iiii[[__ccjjss{{{{ttvvzzzz{{ooooooffffffffbbaakkkkrruurruuyy}}}}zzppmmmmmmoommdd____cceelllllllljjppttttrriibb[[XXVVOOKKFF??AADDLLQQ[[cceellrruu{{zzzzrrppkkgggg^^[[UURRRRRRVVYY[[``cchhnnppwwwwuurrrrnncc``YYLLLLLLFF<<<<<<<<@@OOOOJJJJGGGGGGLLNN@@@@6666::DDMMMMOOTTRR^^ffmmttttwwttwwwwpprrrrmmggggjjgghhllmmrrvvxxyy~~~~{{uuwwyyxxqqoooonnkkqqttttzz~~vvssmmkkoooooollllllllrrvvxxzzzz{{zz}}}}||zzttppllggggddbbbbbb[[]]bb``ddggggggeeiieeiimmmmssssssrrootttt}}}}~~zz{{||}}wwrrttnnxxttrrrrooss}}}}||{{yy~~}}{{{{uuzz}}||||ttttttxx{{yy{{{{vvuuqqnnllppnnnnnnjjllkkkkppppmmllllppooqqnnggggcceeaaaaZZJJOOOOKKSSHHHH????IIFFKKDD@@@@@@JJJJMMMMKKRRTT]]]]````YYcccccceeccccWW[[____eebbbbbbbbhhhhllhhffggggkkjjppnniiiikkppppvvttssvvvv{{||||}}}}{{wwxxxxttrrnnmmmmppvvxx||~~zzzzwwwwvvttssoossppooqqqqqqqqnnooqqqqpppplljjhhdd\\TTRRLLFFKKDD??EEGGEEEEKKAA::::::====GG@@;;BBDDIINNQQPPRRVVSSVV\\\\ZZ\\^^\\]]aa]]]]]]]]]]\\aa]]XX[[ZZ\\``^^__[[^^bbbbeeeehhiikkmmmmooqqqqwwuuxxxxyy}}vvvv{{}}{{{{rrvvzzww||uuuuuuzzssssssssssvvyyrrppssssyy~~{{~~||ssssvvssxxzzrr}}}}ww{{wwggbbbb]]]]]]ZZXXXXVVYY]]``\\RRRRRROOWWWWUUSSSSSSVVZZ^^``aa[[[[^^^^ddeeeeffffmmmmkkoommllssqqooooeeeeeeeellllllqqpprr{{{{{{xxxxwwuuyyzz||{{{{tteeee\\\\ggggggdd]]]]WWZZ__UUUUUUPPPPPPRRTTTTXXZZZZ____]]``[[``iiffhhhhhhnnnnppwwwwww{{ttrrvvvvvvssoossooppttttyyyy||||~~~~{{{{||~~}}}}}}zzvvvvwwqqqqqqllooqquu{{||||}}ww{{{{xxxxxxxxvvssttnnnnppppuuuurrrrnntt||||}}}}}}}}~~~~wwrrppjjeeeeddddaaaaaabbddeeffhheehheeffggffddffggiikkiiiimmoouuuuuuuuxxwwwwwwzzzz{{zz}}~~~~||~~}}||||||}}~~}}~~{{zzvvoolljjhhhhhhffhhhhhhllkklloommnnkkiillhhjjjjjjooooppssrrttvvvv{{}}||~~~~}}zzyyxxvvvvttssssooooiiggeeccbbbbaa__\\]]^^__``bbbb__^^[[[[[[[[]]]]\\^^\\\\``ccjjjjjjjjllmmqqqquuwwyyzz{{}}~~||xxuuuuuuttppoooooooonnkkmmmmmmllllnnnnppqqrruuttssvvuuxx{{{{~~||||xxwwuuttuuvvuussnnmmhhhhhhhhggff``]][[[[[[[[ZZZZWWWWWWXXYY]]^^____``````aaccddgggghhhhhhiillmmrrrrrruuuuwwyy{{{{{{||||||{{{{zzzzzzzzzzzzxxyyzz||}}}}||{{zzzzxxvvssssppqqnnmmmmmmmmppppppooooppppppppppppqqrrrrrrrrssssuuwwwwwwwwwwyyzzzz||~~~~||||xxvvrrttttttttqqqqoooooonnppnnlljjffddddccccbbbbbbaa````aabbbbbbbb``aaaabbffffkkkkllmmppppuuuuxxxxxxzz{{~~~~}}zzzzyyzzxxwwssrrnnmmiiggggffeeddbbbbbbbbbbbbbbddbbbbbbcceeffggggiikklloopppprrssuuxxxxyyzz||}}||yywwzz{{||||{{zzzzxxyyzzyyuussppoonnnnqqrrxxzzzzzzzz}}{{xxwwwwwwyyzz{{||||||}}~~||yyttuuqqrrttvvwwzzzzzz}}~~~~}}}}zzyywwvvuuuuttqqqqookkcchhii]]__aacchhiieebbhhffggffbb``aabbbbggggnnoorrwwvvzz{{~~||~~~~{{||||yyzzzzzzyyxxppqqllggggcc__aa]]__aaZZWWWWWWYYVVXXRRKKQQRRPPSSTTWW[[ZZ]]]]\\cceeggffffhhppllmmppppuuwwrrttuuwwttrrss{{{{yyttzz}}uu{{zz~~}}}}}}||{{~~xxyy||wwzzzz{{yyxxxxuuyy}}xxvvttttoozzwwrruuvvyy}}}}~~~~~~}}~~yyvvwwttllffjjlleeddddffggiieeffhhddcc__\\``hhjjggggmmssppllppoowwxxvv{{}}~~~~~~~~yyssttuuqqppqqmmjjnnppoommnnqqppppmmmmmmssttyy{{zzxx}}}}vv~~}}}}{{yyvv{{ssttzzttttuuzzwwuuvvuuuuyyyyvvwwvv||||}}}}wwxxxxrrssppoollnniiiijjhhjjbbddcceeffbbbbggiikkllmmnnoonnrruuvvww}}}}||zzxxzzzzxxtt||wwuuvvwwwwyy{{~~}}||yyvvuuwwxxwwrrqqrroommmmhhggllddccaa\\``bbbbiiffeeccddeellllmmnnssxxwwxxvvyy~~}}~~}}{{~~}}zzzz~~{{{{{{{{||xxxxuuuuvvttrrttuuttqqvvssmmnnooppqqppmmnnmmjjnnhhiijjjjkkkkllhhhhffggiikkiihhffggkkmmrrooqqvvwwvvwwyyzzwwyyuuuuwwttuuuuwwxx{{zzuuzzwwppqqkkmmnneeggffeedd``^^__^^WWVVYYTTVVSSTTXXXXXXXXXXZZZZ[[^^``__``ccggiippqqrruuxxzz}}}}~~||||~~~~~~~~~~~~yy{{zzuuvvrrqqoonnppkkgggghheeddhhffkkjjmmllqqrrttuuuuyy{{}}{{xxttqqmmjjhhhhee``]]]]ZZUUUUTTRROOIIEECCAA@@<<@@BB==<<;;99883322223333446688<<AAEEIIHHJJNNPPSSVVYY``ffkkkklloossxx}}{{{{{{zz{{zzyyxxxxrrppoonnmmmmjjeehhkklliillppqqvvvvuuttuuzz||{{¾}}||~~}}yyuuuuuussmmkkhhddbb\\VVRROOLLGGEEAA@@@@==773300..--**))))&&"" !!####%%))..11336699==??FFJJNNTTYY\\bbddfflloovvyy{{~~~~}}||}}}}||{{zzzzzzyywwvvvvwwuuttrrrrttuuuuvvttssssoopprrrrssnnppqqnnkkiijjlljjggffeeggiigglloorrppooqqssssuuwwxx~~}}~~ÿ~~{{vvqqmmjjhhdd\\\\]]XXTTOOJJGGDDCC>><<<<99553300..,,,,((&&%%%%!!!!##$$''''))++**++++//11335599::>>@@AAGGMMMMRRXXZZ]]__bbhhkknnoorrwwzzzzzz}}||||{{zz}}~~zzwwyyzzxxxxxxssrrllgggggghhiiffhhcc____ZZZZ]][[ZZXXWWYYXXVVXXUUWWVVQQSSOOLLNNNNQQTTUUWWXXVVYYXXYYZZYYXX\\__bb``bbiijjoorrssuuxx{{~~||zzxxoommkkjjee__ZZVVNNIIEEBB@@<<774411..))&&%%""!!$$'',,11229999<<??EEIIMMQQUUYY]]``ccffllnnqqqqvvvvxxzz~~||zzwwssoonniiiiggccccddccccbbaa____``^^]]\\YYZZYYXX[[\\\\````__ccbbcceeddjjjjmmppooppvvyyzz||}}||vvoojjddbb__\\XXTTRRPPKKHHCC>>9966333300--..++,,,,****)))))),,,,,,--114477::<<>>@@AACCHHKKNNRRUU[[\\aaeehhkkooppuuwwyyzzzz||||xxssqqmmiiffaa\\ZZYYWWWWWWVVRRPPOOLLKKJJGGHHHHGGEECCBBFFGGLLJJJJJJLLMMOORRVVXX[[^^]]``ccffjjkkllnnppqqrrssxx}}¾||wwqqnniieedd``]]ZZTTRRMMHHCC??<<994400--))(())''''## !!""$$&&''((++--2244557799;;??CCHHKKMMRRTTUUZZ]]``ccffhhllmmqqrrttyy||{{wwttppnnmmjjhhiiggddbb``^^^^ZZZZYYXXWWVVWWXXYYZZZZ[[\\[[\\^^``bbddggjjmmooppqqttvvxxzz}}ſ}}vvrrkkdd^^YYTTPPJJEEAA==;;::88664411..,,''((%%&&''(())))&&&&''))++,,--..11556699;;@@EEJJJJKKMMNNRRUUXX\\^^aaeeggkkmmoottvvyy{{}}}}}}~~~~yyssrrkkjjhhffddaa__]]YYSSOOLLIIGGDDBB@@AABBAACCDDEEFFFFGGIIGGMMPPQQTTWWZZ\\]]]]aaaaddggiillooppttwwzz~~¿zzyyuuppllff__ZZTTQQLLFF??::44//++((((''$$""!!$$))..005577::??@@EEIIKKPPRRUUYY]]aaeeiikkmmpprruuwwyyzz{{~~}}zzxxssqqlliiggeeaa^^\\YYWWWWTTTTTTSSSSTTRRRRTTVVWW\\]]aaccbbeeffggiijjkkkkmmnnrrrrvvyy{{}}~~Ŀzzuuppllffaa\\UUPPNNJJGGEE@@>>;;88776666665555665555556644665555556655::::<<??CCDDFFHHJJNNQQRRVVYY\\__``ddggiikkllooppqqqqrrssvvwwyyzz{{}}}}yyttppnnkkiihhddbb^^YYWWSSQQPPLLJJEEBBAA@@@@BB??====<<<<<<==BBFFIIMMNNNNQQQQTTWWXXYYZZ[[]]^^aaeehhllpppprrssuuxx{{~~}}xxssoojjdd^^YYSSOOLLEEAA>>;;775533..,,**(())(())**((''((&&%%%%######$$%%&&((**,,..22557799<<>>??BBDDGGJJMMPPRRSSVVWWZZ]]^^^^__aacceehhiijjllmmoopprrttsswwyy{{||~~~~}}||yyxxssppnnjjhhff``]][[XXXXVVUUUUSSSSSSTTTTUUXXZZ\\^^__``bbddeegghhiillnnoorrssww{{||wwqqkkff]]WWUUOOOOOOKKIIDD??==;;<<<<;;;;997755442222110000////0011335577<<??AACCCCCCFFGGJJMMNNOOPPQQTTVVZZ\\__^^aa__aaaabbddggiijjiijjkkkkkkllllnnmmllllkkmmoooossttssttuuvvwwxxyyyyzz||}}}}~~}}yyvvssppmmjjggeeccddffdd__WWQQLLLLMMFFBB<<99777777442266556677776688;;@@@@AADDEEFFHHGGGGHHIIKKLLNNPPSSWW]]aaddgghhkknnppqqrrssuuwwyyzz{{{{}}~~~~}}}}xxuussssuuttttvvuuppllggiieeggffbbggiikkoommoorrnnjjnnbbddlliippuullqqmmddiiff]]cc\\XX^^[[^^bb__bbbbZZ]]]]]]ccccjjoonnppqqnnrrvvww{{yy{{{{zz}}pplliittqq||wwllvvyyxxxx||uuggkkiiddkkhhnnttvvvvuurrttxxrrssww{{zzppttxxxxzzzzffppyyxxwwii^^VV^^UUggnnttyyww{{pplliiqqxxuuxxzzxxzzppoohhcc__\\ZZbbff\\^^SSLLMMQQSSQQOOOOTTZZ]]bbaa``ggff__ggeehhjjppuuttqqnnssqqvvyyww||ttmmhhvv{{qqmmffllddnntt++jjȆQQ&&44ssÉpp\\LLooƵii~~~~||00GG{{ppggddDDDD\\HH++77^^}}?? CC~~ppddvv{{ssmmhhss{{rrPPFF??bb~~}}jj}}xxOO//==JJ``rrwwPPYYzz}}kkjj{{yyXX66++rr{{ppvvnn\\NN{{zzss||~~zzeecciiHHGGkkss^^ggnnttxxnn||ffll\\<<FFyynnuummffaazz{{YY]]aaeepplluuoo\\XXjjmmjjrrxxvvpprrbbii}}uuZZEENN^^mmmmhhiijjYYMMCC==88HH[[QQBBMM]]YY@@NNddmm\\NNXXaa]]VVVVRR33''9933!!33BBPPkktthh^^{{yyoohhbb^^UUOOOOTT>>""EEII\\__GGLL66%%**rr``$$ddrrUUPPMMhh~~nnvvff````OOBBJJAA--JJbbiiooiinnsswwzzWWTTuuaa``}}jjwwwwxx՝||{{ӻѸ̴ξ||zzxxwwffKK>>5555CC2200CCKKZZYYLLBB;;??//((!!99==AA55$$!!00    ++""%%88QQFFGGIISSNNKKCCMMMMJJZZVVDD??EEOOWWYYUUWWhhqqllwwpp^^PPMM]]kk^^CCEE@@==QQHH33??QQJJSSUU--!!22LLccuukkddeeffmmss||ttmmuuppbbXX]]kkvvjjLL55??HHPPIIXX__``ffkksswwddddrrwwllvv~~}}||zz{{ttttssmm}}óssnniiaappeeggllVVYY[[kk}}vvwwll}}vv\\TTNNQQbbdd``bbddrrssppttllnnooxx{{rroolljjkkuussvvzzmm^^nnqqrrxx{{jjkkmmiikkο¾ttttʸŬppYY\\KKOOCC%%55::PPSS22!!QQTTffhh]]SSLLOORRUUJJNNAA1100&&4499==AA((  $$**//44&& &&55::>>;;--2277;;;;??@@==**!!$$****%%++001166//11//$$%%++,,55995522..33??HHSSOOXX[[bbdd[[]]__aaffhhVVJJMMPPSS[[aa__ZZZZYYffyyyy}}}}vv__aaMMJJAA;;RROORRccXXAA33((&&33\\wwxxxxyyyyrrsshh__ffhheennlljjnniiZZQQDD995566::BBQQZZffoollhhZZ]]__\\VVQQ^^ooppxxkkaa\\[[^^VVRRPPZZ__aaffkkooffdd[[UUWW__nnxx||||ii^^[[XX__iikkllvvȸnnppqqwwwwxx||||ssaaOOXXppyy{{jjgghhjjzz·yyffnnddjj}}yyuuvvvvttttxx||uullmmgghhjjkkss||wwxxzzqqffccddjjsszz{{{{||||eeOORRNNQQTTNNMMLLEE11$$GG^^hhjjkkffhhii]]``eeddkkqqiijjnnoottggXXQQ::>>BBFFIIMMPPNNZZ``eejjffggooppqqiippzzzz}}ttuuvveeffccaaccddllmmooppkkaaccee^^``bb``gg]]__aaVV\\bbddffggkkuu~~~~||||uuuuvveeRRUUccZZjj~~wwttuu{{{{{{~~uuccddqqrr||||}}yyjjZZWWUU\\ffggllXXJJFFCCSSeeuu||kkggmmrr~~uuhh^^``eeggVVLLOOMMHHKKKKXXffooppZZ\\WWSSbboozzzzvvwwwwrr{{{{uuvvssllmmoonnoopprrmmffcc``^^]]bb``bbaa[[NNCC>>JJQQWWggeeffhhll||||}}mmcc``bbllxx{{yyyysszz||xxnnlleeZZ\\mmuuZZJJ<<**//::??``vvxxxxyyuu~~~~~~||xxmmkkbbUUaaccaaqqrrrriidd^^^^``bbddjjuuyyyyrriimmzz~~wwee__UUGGJJ[[jjrrzzŴllbbxxxxwwddff]]rr}}~~~~{{ttiikkrryyŶ||}}yyyyvv]]VVYY[[ddxx~~~~}}{{ssiinnxxssggmmqqiijjggffhhddgg``eessppqqyy||wwzzzz{{~~zztt}}vv}}}}rroojjhhbbffggaaXXSSKKCCGGQQVVcckkmmppqqttzz~~~~zzssppqquuvvrrwwwwxxwwzz~~||qqnnllhhbbYYffnnXXIIDDAAKK``llvvsssswwffhhoott~~{{wwxxzzqqttppmmlliiiipplljjkkcc]]__ggkkrrppoottnnhhkkmm{{yyzzzztttt~~~~{{{{{{wwkkhhbb]]JJFFCCGGUUaacceecc^^aaeemm||}}}}wwwwxxxxyyyyyyrrnnooxxzz[[]]__aauuvvvvwwllNNGG88<<WWggnnppllmmjjddffeenn}}ttuuvvvv{{~~xxkkllmmrr}}wwuuhhddff``__aaeeggiillddffccbbdd[[hhpptt}}}}yyzz{{yyrriijjiiccee\\eejjllrreeaa[[]]mmwwzzzzzz{{kkllmm``hhjjvvvv||qqooyy~~xxxx{{zz||zzqqmmnn~~~~xxyy||xxuuppqqmmnn}}yyiiooxxnn{{qq{{{{ww~~ttppqqrr||zz}}}}||uuvvvvww||xxuu||wwooeeffhhoo{{ppiijjkkyyvvssiicceeWWYYaaggxxttttqq^^``\\__aaooxx}}wwqqggoopp~~xxnnooppqq||yyyysswwwwtttt||||ww{{{{}}xxxxuu}}}}||||yyuuqqmmqquuxxvvjjsszzzzkkcc\\SSOORRZZ__hhkk^^UUSSRRTT[[mmiiffkkbbWWYYXXZZeeiikk\\^^ffbbiirroojjnnrrnnmmjj``bb``__aa]]]]ffggiimmeeffhhbbmmffqqoobbiibbhhllhhqqddooppjjnniippooeettqqnnlljjiimmrryy}}}}xxyyzziiuuvvrrzzqqqqggllppoorroossxxrrssmmrruuttyyzz~~~~}}yy~~zzxxppsstt{{}}{{{{uussvvuuqqnnooppnnwwxxzzyyttrriinnuuuu}}}}}}}}qqmmnnoosswwxxssttkkllvvvvyyqqkkwwmm~~gg||ssmm{{vv}}{{{{{{||||||||ttxx||yyrrxxyyuuvvvv}}}}{{ppuuuuzz{{ww}}uuvvwwsskkqqrrssyyssvvxxzz{{zzqqrrhhyyzzzz}}}}}}~~~~{{{{{{zzxxwwppllhhjjqqrrzz{{{{{{zzyyzzzzuuzzyy~~}}wwppmmkkooppssrrssrrppvvmmqqrrkkqqrryyyy{{zzxxxxqquuuuvv}}~~~~zzwwttqqmmkkoovv||zzssssyy{{~~}}yyzz||yyyy}}~~~~{{||}}||{{wwwwssssssppkknnttxxwwttqqrrttuuvvwwssyyuuvvvvqqqquuxx}}~~~~~~{{zzxxxxxxuuvvttppkknnoottuuuuqqrrvvvvuuvvyy{{yyzzvvoolliikkllmmqqrrssvvwwwwzz||xxwwxxyy||yy}}~~||zzzzzzyyzz||||||||wwvvttvvuuuuyy||zzyywwwwppmmppssuuwwssoollnnooppmmmmnnnnnnoottwwwwvvttuuvvwwxxttssssrrrrttxxxxxxyy~~wwssrrqqoommnnqqttvvyyzz{{{{xxttvvwwyyyyyyxxwwuussrruuxxzz{{~~}}||||||}}}}}}~~~~zz{{zz{{~~{{||||vvzz{{||~~}}~~~~||||~~~~wwrrnnkkiiggkknnqqssvvyy{{wwrrlljjiiggiillkknnmmkkddccddffffkkoorrttppmmnnnnllkkmmmmkkllqqvvyy{{}}||||}}||zzxxyyzzzz{{}}}}yyyyzzzz~~~~||}}||||ttssssuuuuzz}}}}~~zzvvvvssqqnnoopprruuttrrrrkkhhggllqqqqoooonnmmllkkggeeffiiffeeeeffffmmssww}}{{}}wwkkbb[[YY]]ffmmxxttggccbbjjqqzz{{rrhhaabbccaa__ccmmvv{{~~{{xxuuuuyyzz{{zz||~~~~ooeehhxx}}~~}}~~xxllhhiirrzzzzppkknnppooqqssuunnhhddccllssrrooff__XXTT\\bbqq}}{{||{{uuttxx{{}}~~yyuuvvwwyy{{yyoonnqqxx~~||zz{{~~||vvnniiffjjss}}uubbTTIIKKTTbbnnttvvrrssssppmmkkkkooww||~~xxssppooooqqxx{{}}yysstt}}yywwuuqqnnoovv}}~~}}}}~~}}yyttmmiijjjjoottzz~~||~~{{zz}}xxnnjjmmpptt||ppff\\RRJJFFFFGGIIKKJJIIGGAA;;7711**$$&&--66>>;;::66//**&&##**88DDOOQQPPNNOOTTXXZZ^^iirryy{{xxttssuuxxzz}}{{yyvvuuyy~~~~}}wwqqlliinnppppttyyɾ~~zzxxyy~~uuiiaaddhhqqyy}}zzsslliiffddeeeegghhffdd^^``bbddggeeddaaaabbhhnnuuzz~~~~vvppssyy}}||{{||zzttqqmmllss{{Ķzzuuqqooppqqttuuttppff``\\WWTTRRQQUUUURRPPOORRTTWWVVVVZZ^^ZZSSKKEEDDHHMMIIGGIIKKHHFFEEKKQQVVUUKKEE@@AAGGKKRR^^ggnnjjggdd]]QQIIAA??BBIIQQXX\\]]]]\\ZZZZZZ[[\\``ddffffiikkppuuttoolliikkooxx{{uuttwwuuqqrrxx~~{{zzwwzz~~zzttoohhggggjjllppqqoommqqssooiidd``bbeennppnnmmkkppzz~~yyppjjkktt{{{{wwssqqoojjggffggkkmmqqxx~~||vvhhccccddoo{{vvoojjpp}}||yyzz~~||sshh``VVOONNSSXX]]\\YYRRMMHHDD==;;??DDNNVVUUTTTTXX^^ccffgghhooww}}{{ttqqxx~~}}{{yyzzwwvvww}}}}zzzzzz{{||yyqqrr{{||ssjjcc]]__jjssxxuuii``YYTTNNGG@@@@DDHHLLNNMMIIBB::552244==LLWWXXWWVVOOJJDDDDMM\\hhsszzwwqqmmqqyy||||uurrrrttwwxxssnnjjggeeffkkooww{{{{{{||}}{{yyxxwwwwvvuussooiiee````hhyy||zzwwrrnnnnrrvvyyxxyy{{~~||}}~~}}||uuiiffkktt~~~~{{xxqqkknnvv}}{{uuookkooyy~~~~vvppmmiieeddggjjqquuwwxx}}{{yyxxuuuuwwyyyyttjjdd``````__]][[\\^^______cciiooppkkdd]]XXTTSSYYbbqq~~~~}}||{{~~}}||{{}}zzww{{vvmmeeddggqq}}zzttqqqqrryy||qqiibb]][[\\^^^^\\UUQQKKDD>>99886688<<BBGGMMNNQQUU[[``ccffmmuu~~}}vvxxzzssuuvv||}}rrmmnntt}}~~wwssnnffaabbggkkookkee__VVMMGGFFMMYYddllllii``YYVVWW\\cckkww}}~~{{vvrrqqssuuyy}}yyppgg``\\__cckksszz}}~~{{xxqqqqppoonnppww}}}}yyooee\\XXVVYY^^eemmssssoollmmooppoommlllljjiiggffgggghhhhiikknnuuzzzzvvrrqquuyy~~rriieeffmmxx}}vvqqiibbddjjrr{{zzssllffeelluuxxvv||wwooiiffddhhllrrww||~~yyuuqqnnlliiggffeeaa[[WWXXZZZZXXUURRQQQQUU[[bbiilliibb\\UUUUVVYY\\__eejjhhffooww}}}}qqjjqq||Ѿ~~{{}}~~wwww~~ssnnuu{{~~||{{yyvvppllllppuu{{~~ttkkddaabbbbddffggff\\SSII@@::77;;DDLLTT\\aaffhhjjkkmmoooonnppssvvvvww||||xxww||||}}~~}}~~}}{{{{xx||mmqqnnrr{{yyqqkkgg]]YYVV]]ddllmm__TTLLOOQQZZZZZZXXZZ[[ZZTTTTWW]]bbgghhmmoovv||uupphhffzzttrrqqpppprr}}~~mm``XXUUYY]]ffqq{{{{zzxxwwvvpppprrssxx{{||xxuuoolliillllllhheeffggmmooqqssoorrppmmhhbb``eeiikkjjiinnppqqnnllnnppwwzzssmmiihhtt~~yymmddggjjvv{{uuooiigghhnnttww||yyttppmmmmppvv||{{{{ssuuyy||||ssiibb__^^__ddllxxyytttt}}vvrrmmffggddggddaa``^^eeeeff__ZZXXXX]]bbddbbaabbccaa[[XXWWXXTTQQVVZZddtt{{zzvvllppppeeccbbllxx~~xx||~~vv{{~~ppkkoorruuppllmmnnuuvvqqrrjjjjkknnsswwwwyyxxvvmmggeeeebb``aa^^^^\\NNMMMMNNHHBB>>@@RRaammllkkdd__cc__ddmmuuzz||~~{{||~~||}}zz||zz{{{{{{ppllttvvlldd[[UUYY[[aaeeffaaXXTTRRRRQQIIDDCCHHIIHHFFIILLQQ\\bbcc__ZZ[[]]iippssuuwwyyttmmjjnnppyyooccYY__]]XX[[ggvv||{{zzvvtt{{wwxxyypphhcc\\^^ccccddeemmtt||||yyqqffgggghhiiaaddggiippvvttnnbb[[bbddnnvvvvwwnnmmww~~ppjjeeqq{{nnccZZ]]ddkkttxxvvuuooggcchhlliiiikkwwwwmmeennzz}}vvyyyyttff\\YY``sswwssppss{{||wwyyppjjoottkkee``````hhppkkkkcc]]YYVV\\[[XXZZYY]]jjllnnppbb\\SSRRUUYYcclliimmjjccjjhhnnssddsszzwwttrrppoooorrttrrvvzzxxww}}vvwwyyttppmmyyttmmvvpptt~~}}ttllllvvssppnngg__OOAA8899;;;;FFYY^^hhrryyrrccccRRJJOOTTjj||{{xx}}||ttqqssuuzzzzxxrrxx~~wwjjppuuzz~~yy}}||||}}||ooppmmffiihhVVTTXX\\______ZZVVTTJJEEIIMMNNQQNNDDDDKKUU[[\\ffffhhrrppuu||}}}}{{vvjjeehhrr}}||qqiicceeggiimmoo~~}}ttrrxx{{zzssmmiijjll{{||wwssooppqqqqqqoommnnllmmnnjjooww}}~~zzvvwwqqffggrrssllrrmmaacceeffhhiipplleebbVVXXcchhpp}}~~~~~~vvnnccTTVVYY[[jjvvxxxxyyww}}||||ttxx||uuaaVVYY[[]]llttxxvvyywwoommjj__]][[TTNNIILLMMVVccllppqqrrllgg^^YYXXZZZZZZ^^YY[[bbiijjggffiillppuuppii]][[ZZYYjjttuuvv^^hhjjkkffhhrrss~~~~ZZ\\^^``}}ss}}{{ZZNNQQ__vvww^^YYTT2277<<66LLPPDDUU]]UU@@DD\\^^PPJJ^^ffll\\YYeeVVccddrrvvxxxxkkQQTTWWaaccee{{jjttiipphhrrjj{{uuvv{{vvllnnww}}ɲÿ½yyyyzzkkll~~~~qqbbiisshhff}}ggUUXXPPSS@@==HH\\hhiiggaayyzzttpp{{{{ggbbuu{{{{bbmm}}vvnn``bbpp__IIbbppffXXVVTT::>>BB4499// !!""$$0055//4499AA::BB22==ZZFFJJMMaa^^JJMMPPYY[[UUWWeemmZZ\\ddOO>><<@@II2277KKNNQQ77<<QQLLOORR**QQnnooFF==AAYYSSUUXXTTQQ))..33EEIILLOOJJMMJJSSVVbbqq~~ppqqvvoojjffyyyyzz˰}}yyuuyy}}zzooffVV@@//''2277JJMMEEHH66,,2211&&"""",,!!"""" ((""  $$ && ##))77<<HH77<<00HHFF::>>>>FF88MMKK``]]QQ??<<FFOOaaccxxllhh__aa__RRUUXXssttuuuuvvqqmmaaVVddLLbbvv~~~~kkmm^^``gglljjqqwwqqvvvvwwttyyzzzz{{wwooppxx{{wwjjaaccaa\\TTKKCCNN__SSVVddiivv~~~~~~yyyy~~~~xxyyttww||vvqqjjss{{}}||rrllmmqqttnnjjii^^WWUUTTddffdd\\GGJJ::;;AAJJ[[iicc__llww||||kkhhgg]]eellss||xxvvuuiikkmmoottvvww{{~~uuuu}}Ž{{yy~~~~||~~}}ssddeeff\\bbggllmmkkiinnvv||yyqqhhccdd]]YYVV[[ffff]]YYRRKKAADDDD;;44....99;;BBMMMMNNPPKKCC::00''''''&&  %%114433..++**++**//77??BBEEIIGGHHJJNNMMNNFFAA::99>>>>BBIIPPNNMMOOMMSSOOOOHHDDCCEEMMLLOOGGEEHHPP__ccaaYYRRTTMMHHJJHHKKXXTTRRPPIICC==0011--))++..@@JJSS\\``ffiioomm\\[[ZZZZWWXXZZ\\iinnii^^UUNNJJSS[[mmrrnnee^^^^ddgguu||kk``XXRR[[RRVVPPMMNNJJUURROOKK>>;;))''&&''11::RRaannqqiibb^^ZZ__ffkkrrvvzzzzwwttppnnggdd\\VV\\[[^^ffmmvv}}wwttaammooppyyggvvqqeekkiiggggkkooww¿õzzuuyy~~ssvvffYYddggoo{{wwppssyy{{}}uuoooogg``mmww{{yywwnnjjxxxxyy~~wwqqmmoojjhhkkqqssnnjjeeccmmnnlljjlliiddaa[[WW]]bbggnnmmggjjddSSJJ<<22::<<HHNNJJNNQQSSRRUURRQQZZ__``______ddiiddcc``]]\\KKCC>>??JJWW\\``ddjjppvvzzzzzz{{xx}}||zzxxppmmbb``XXQQMMJJIINNSSPPBB66//))--DDWWhhvvxxqqkkrrqqssuu~~wwmmoozztt||yymmdd]]WWWWeeyy~~uuttttuu}}ttqqggmmrr}}}}sseeOOAAHHUUjjssggppvv||rrvvoovv||nniizz||{{~~ggkknnppttoonnkkkk^^PPIIHH^^qqssttppmmssyy~~||}}ssjjiiddmmllkkrroolljjffdd]][[aaeeppmmccffeeqq{{ssddRRDDEELLddccii\\RRFF11;;22EEUUIIWWNNTTZZZZhhyyssccggvvxx{{zzttoollffmmiiZZNNYYbbpp||yynnqqssttuuuummbbWWWWXXhhqqxxzzssookkhhiillwwmm]]^^TT\\ccYY[[]]ccppuuxxsstt{{vvgg``iipp~~mmrrmmqqzznnooqqrr||}}~~ww~~²~~||sskkqqrriiccsszzzzzzoo­ww}}~~xxwwzz~~xxhhhhhhiippvv}}zzwwttuussiiTTSSXX]]mmiiffddkkvvxxzzvvvvssvvyywwppaaaabbffjjnnssxx||uurrqq~~~~{{rrjjttxxnnggaallppxxxxkkllmmnnuuqqnnkkggddccbbjjrrnniijjoo}}vvppppqqllhhmmmmllbb[[aaffddiikkmmppyy}}yyzz||||xxuuyy||xxllkkffpp~~vvooXXFFJJNNhhwwvvuuoouuyy||vvggeell||{{uuzzuueeggnnttyy}}ttii]]TTNNSSRRLLRRXXbboommiieeccpp{{ooee^^NNZZddmm~~ttwwzz}}yyrrllppwwzz}}}}wwssrrssssyy}}||zzwwppggaa^^^^eekkppkkggddcchhkknnhhUUKKVVZZhhssqqookkppssttzzxx~~vvyy{{||~~{{yyyyyyrrmmvvzzvvssssooppoonnmmmmppjjllqqxx{{||zz{{}}yy||}}||yyrrllkkqq}}{{yy~~yyqqzzvvhhccoo||ssoo{{||vvuu{{xxmm]]^^__nnzz||vvssxx~~wwppjj\\GGEEEEWWllttzzxxzzttyy}}wwnnkkmmtt||~~nnffWW^^oozzzzvvyyeeeekkkkppppppppppmmkkmmuu}}{{mmggggcc__ffllxxvvvvoollqqvvvvvvxxxxvvvv~~wwuujjddrrrrrr}}yyqqqqqqssuuuujjbb______aaddhhhhaaWWWWWW\\ccmmtttt~~yytttt||uurrjjqqooooooffccUULLLLHHHHTTMMMMUUZZ]]SSIIOO^^nn||||mmhh````ggmmrrttnnjjccUUPPPPddwwuuhhddddjjppkkggjjjjookkaaaahhzzzzzzuuhhhhkkuuxxxxxxmmmmjjee``ZZccccccYYMMMMMMVVccggssyyyy||||~~~~kkkkkkvvuukkoooooolluuuurrzzvvllllww}}uuuurrrrrrllnnllrrttvvyyyytt~~{{xxvvqqttttuuzzzzvv}}}}wwwwwwkkYYSSSSSS__ccffkkqquuuuuuww~~llll\\RR__gguuyyyyoo``VVVVRRKKaaaa[[ggggggggkkuuyy{{{{nnnnnnuuuuppkkkkkkoo~~}}}}{{{{}}}}||||}}zzzz}}}}wwwwttmmbbeeeennxxxxzzuuqqssww{{~~qqccllpp~~~~zzssddddddhhrrzzxxuuzz}}}}}}||yyvvsssszz}}}}zzsszzxxxxvvvvvvooooddaaaaffkk``]]``]]bbrrmmrrvvqqqqqqqqnnyyyyyyyyrrrrhhhhmmkkkkwwwwvv{{vvvvzzwwzzwwwwyyyyyy||}}wwyyvvssvvyyzz}}}}||||{{}}zz{{}}xx}}vvll__kkkkqq||||mmmmmmmmmmmmmmffhhllsssswwxxllllhhhhhhnnnnnnnnnnggeejjlloovv||uuuuwwuuuuxxvv~~yy||||{{vvppbb]]]]]]llqqqqqqjjmmjjjjoozzzz~~||~~zzzzmmbbggllppsswwnnxxoollddYY``jjmmxxxxooyysscccc^^UUYY]]bbeeaa__VVXX[[]]YY^^^^``lljjkkoouuxxxxyyssllkkuuuu||{{||wwtt||||||wwttrriiggffeeggllhhaacceeffppssttssuu}}rrjjcc^^ffzzwwdd``VV^^eennzz~~~~llmmcc``bbggppqqrrnnooggnnttttuuqqsskkffmmqq{{{{~~||qqrrsssswwxx{{jjllhh~~~~vvqqmmnnoo{{xx{{yywwxxnnrryy{{ooppqq||||||||||}}||}}~~~~||{{}}yyzzzzzz}}ttuulljjnnffjjnnhhttuuxxyyyyzzzz{{{{vvrruullsszzxxttnnmmaacceeggeemmttmmppqqllggppttww{{ppqqoommnnqqrrssttkkggccbbbbddnnrrxxxxwwwwvvttnnkkhhjjkkqqqqrrttvvttqqoojjmmrrssyyxxwwoommllffYY\\bbhhxxxxmmnniimmvvwwxxttffWWdd}}vvqqEEHH<<NN^^vvyyƱmm%%UUkkll{{İXX==[[uu}}yylltt~~GGJJnn||ffhhiixxvvhhrrwwggNNQQ[[^^TTQQTTVVMMWWJJ4488==AAEEIIGGKKJJ@@3333RRUUXXZZcceeMMPPSSUURRUUXX^^ttuuYYAAEEHHRR[[]]__jjvvwwwwrrnn||}}hh[[jjllmm||~~~~~~{{qq{{ÿ||ttxxzzzztt{{uusstt}}}}||||||qq||{{ssbb^^UUSSVVEEHHQQOO@@DDHH>>BBIIMMVVNNQQII88DDMMKKXXZZMMUUSSOOUURROOUU^^``bb]]ZZTTQQOOLLUUWWMMUUmmnnuuwwoohh__]]ZZaajjnnqquuvvqqmmqq{{xxyy~~~~~~||wwkkffhhiikkwwxx~~~~{{qqggjjmmffttyyyyuunndd__aammxx~~rrrrrrggggggsssspprrrrppnn``[[__ddddgg^^XX[[[[iirrrrrrrryykkkkkkggggggwwwwwwwwkkrrxxxxjjjj{{uu}}ppvvwwwwww}}}}}}{{qqqqffffiiaaXXOOJJEEGGTTPPLLWWWWQQLLLLVVOOLLJJEEEEGGGGHHJJPPTTRRTTUUNNNNRRTTXXWWWWWWTTTTWW]]]]RRRRRR[[iivv~~||uuuu{{ww}}mmhhddddgggguuuummffYYaaaa^^^^``bbZZdddd\\\\\\ffffhhkk^^^^VVYY``bbttttttoobbbbbbeeqqttwwwwuuss{{||||}}~~{{zzww{{wwrrrruuoooommiimmoovv{{ttqqqqvvrrffbbbb[[[[[[WWLLLLLLLLLLNNPPPPOOCC;;;;44::::8888::::::AAMMMMVVVVNNNNUUOOOOQQSS\\bbeeggaaaabbeekkhheeggiinnuuww{{||zzzz{{xxxxxxxxzzuuuuuurrkkkkkkiikkiiiiiiiikkeeeeiiiiddccaaaahhkkmmkkkknnuuwwyy{{{{{{||~~yywwrrrrttwwww{{}}yyyy}}~~yyyyyy}}}}~~}}ttqqttqqoolliijjllmmlllliibb]]VVSSRRUUXXWWTTPPMMOOSSSSUUTTWWZZ\\\\]]]]__^^``]]XX]]bbddff____ccddddccaaffoooooooouu{{xxxx~~||||zzuupplllllllljjllrrqqmmiikkhhddbbbbaaffggffdddd__\\]]^^^^ddffmmmmjjeeeebbaaaaddggjjkkppttttttssvvzz~~{{ttttvvww{{xx}}{{xxppjjeeeeeejjooookkoooorrrruuyyzz||}}~~~~~~||zzuussssssssrrppoollnnnnooppppppmmmmkkeeee``````__``____``YYSSUUZZZZZZZZ\\__aa]]\\\\ccggqquuxx}}}}}}uuuuuuuuuuwwxxxxwwssqqooooqqkkeecc``^^^^^^^^^^bb``bbbbbbccddaa^^cclloooottwwwwwwxx{{{{yy}}||wwyy~~~~xxvvttssssssssvvvvttnnjjdd____ccggoottwwwwssqqqqttzz||zzyyzzyyvvuuvvwwyyyy~~~~~~~~~~}}{{}}~~{{zzttyy{{yy||{{||||{{yy{{}}zzssoommooooqqqqttwwuuttssuuuussnnlliijjppuuuuuuuuxxxxzz||||yy{{{{~~~~~~~~~~~~zzrrrrppttttooqqqqttttvvvvttooggggggggeebb``ccccbbeeeeffffggffiiqqqqlljjjjooppttttnnnnppssvv}}||||xxxxvvwwwwwwrrnnnnnnppssqqlliijjjjjjffeebbddggiiiiffeeddddbbbbggeeeeeeddbbcchhnnqqppmmkkggjjjjkkoossrrnnssyyyy{{~~zzwwwwxxwwyyyyzz}}}}||{{xxwwuuvvzzzzzz{{}}}}}}~~yyuuoollnnqqqqssqqnnoolljjjjkknnppmmllkkiieeeeggiillgggggggglloossrroollllkkjjjjffbb\\XXXX\\bbbbbbbb``____^^^^__bbbbddffggkkpprrqqoonnkkjjiimmmmmmoossssttttrrrrrrrrrrpppprruuxxzzzzyyyyuunnnnppxxzz||||yyvvwwwwwwww}}zz}}zzxxxxxxttttttttttwwvvrrvvxxyyvvssssvvxx||||zzyyxxvvqqnnnnqqvvvvyyxxxxxxuupprrxx||}}}}}}}}||||||||yyttppkkdddd``__]]YYWWVVQQQQPPPPOOOOPPQQLLHHDDBBBBCCFFIIPPSSTTRRQQRRTTVVTTSSPPNNPPSSUUXXZZ\\\\\\__bbcchhllooppqqooppqqqqppooppuuyy~~||zzyy||yywwrrqqnnllggddddccddddggggddaa[[XXYYZZWWUURRWW\\``aabbhhllkkjjeegghhrrxxzzwwuuttqqqqssxx~~{{zz||}}yyssppkkiiooqqmmjjeeaaeedd\\YYZZYYUURRSSTTSSRRQQLLIIGGAAAAEELLLLMMKKKKOOTTTTUUWWUUUUVVVVZZ^^bbhhiigghhggkkmmllllllkknnuu{{zzxxwwssppqqssrrrroorrttppmmffddbbbb\\XXUUUUXX\\__]]]]]]]]^^aaddiillkklljjllnnppooqquuzz{{xxzz||}}~~||zzwwwwvvvvttrrqqoonnmmjjhhffeeaa__^^``ffjjjjiijjkkmmllkkjjjjkkjjjjmmsswwxxvvttrrttuuvv{{}}zzzzzzzzzzzzyy{{~~{{wwttrrvv{{~~}}{{{{zzuurrqqssuussrrrrrrqqppoorrssoommllkkhhgghhiihhjjllmmnnoooopppprrttttssttttvvwwyyxxzz{{}}xxuussssssssoommllkkggffeedd``]]YYVVSSRRQQUUXX\\^^^^[[XXYYZZ]]__``aaaabbddhhiiggeeeeggggffhhiikkjjjjhheeddffiillppssuuwwzzzzyy||~~~~}}||}}~~}}zzvvssuuyy}}~~||||||zz{{{{{{||}}}}||zzyyxxxxzz||||{{~~}}||}}~~~~||||~~~~~~~~~~}}}}~~zzvvuuttuuuuuuvvuuttttttvvxxvvrrssttssssppqqppqqrrrrppppnnjjkkkkllmmlllliihhiillllkkiiddcceecceeeecceeffggeeddffddffffggeeggggiiiiiiiimmppqqlljjcceeddffeeggjjnnpprrssqqmmmmnnrrsswwzz~~~~||yywwuuuuttuuttrrrrrroonnmmllmmiiiieecccc]]ZZRROOMMPPUUVVYYXXTTTTWWTTOOMMLLOONNPPSSSSQQQQLLHHGGJJNNRRXX]]__[[YYVVSSVVTTWWWW[[^^^^^^\\]]__[[[[VVVVYY[[]]bbddffhhiiggiinnuuxxyyyyyyzz}}}}zzvv{{zzookkhhffhhiikkjjaabb^^^^bbdddd``__^^]]ddhhiihhggbbbbddmmss{{yyqqrrppoorrtt~~~~~~xxyyvvvv||||vvwwxx||xxuuyy||rr~~yymmnnppzzwwxxxxkkppqqooppyy~~||nnaacc]]ffwwxxttmmccXX^^``bbggddXXQQPPPPYY^^``eeXXZZSSJJQQMMNNSSVVYYUUSSWWZZaa^^]]__``eejjkkoorrssxxttyy||{{xxxxyyvvxx}}vvvvttwwzz{{yy}}}}~~ss{{ppiirrzzzzuuqqmmffZZXXOOHHKKYYRR@@==AA??>>BB11""(($$ !!''((..--22%%%%''@@QQTTGG//++@@bbddffRR;;77QQvvccmm~~̠̥㶶pp׳bbddffgg¾~~~~§µttooqqqqppee__\\YY^^WWMMEEIITT]]eeeeYYTTDD0022;;LL__lleeTTGG>>773344++$$       ))""))(())++..22::??<<KKMM==7788??MMVVTTPP@@55,,??OOFFGGNN[[eejjffgghhffmmssggkkyy||zzxxzzyyoobbXX??77QQ\\\\SSMMOORRVViittppuussjjrrttvvzzssqqooggmmoodd``ffff\\WW__ccffjjooqqppyyzz~~yyjjdd]]WWRREE''''AAGGCCAA<<GGUUZZaaqq~~uuddaa__eeiiaa\\UUCC99335599??@@@@33**,,??SS]]aahhnnww}}~~yy{{ǽ»Ŀxxqqmmjjhhhhee[[XXRRRRYYaaggddWWPPQQRRVVVVJJFFNNLLKK[[^^jjyy~~zzttppvvssvvxxoooorrxxuuvvnnee``YYVVOONNQQSSWWZZ\\bbhhllmmiiXXFF==2222:://((  !!));;KK\\bb____``__XXYY\\__ZZIIAA44**$$((--%% %% ((1199;;5599??LLTTXXWWRRNNMMSSSSFFBB??::6655//++..00//--,,,,,,**''$$##((0099<<<<>>==::5577--00DDFFNN]]ffmmzzyyllbbllyyssooooiiddOO>>==BBKKXXccllkkXXVV``iizz~~rrllqqppggeeccccffccaaggkknn{{ww{{ttjjaaYY``ccaa``YYRRLLIIOOWW\\__XXWWVVFFEEYYRRMMJJHH>>::AAKKXXnn}}~~~~xxii``]]\\llxx~~||vvzzøĺnnee^^bbvvŬľwwqqllllxxxxmmmmddbbgg^^aaggjjqqxx~~yyii``\\ggjjppnnii^^WW````[[]]YY]]]]ZZccccXXbbbbZZZZOO99++%%%%449999@@@@FFQQQQTT^^[[[[cceeiivvzzzzzztt]]LLEEEEEEJJJJJJJJQQUUZZbbbbbbffhhkkllppppwwyyuuuuuuoooommmmmmppuuppmmqqxxttppllee]]__aaccmmffXXOOGGNN__iiss~~~~xx||||rrrrrrkkssqqqqffcciiffkkZZ@@OOOOVVaaaa\\XXUU__ppvv||||~~wwssppppuuzzzzxxzz}}||{{ii^^TTPPPPPPVVbbbbbbppxxttqqnnhheeaammqqnn{{{{ttjjdd__XXQQQQNNIIHHQQbbbbbbbb^^OOSS\\__mmuuxxllhhkkbb____XXVVVVIIIIMMYY``gggg__ZZNNFFBBIIOOQQ]]eeiirrrrpptt||||||~~~~~~~~iiiixxxxxxxxxxttttttgg[[[[OOZZddssxxbbUUNN333333339999CCHHPPXXiittttkkcccc]]]]]]ddhhbbaaXXIIDD@@@@@@7744CCCCLLXXTTQQZZ\\XXXXXXTT\\jjoooooooo__ddiiaaddddddggllrrppffppppkkwwww~~{{xxddkkww}}vvss{{{{yy~~~~~~ttllllllhhcc^^WWTT]]iiqquuzzhhhhrrmmuurr{{pppp{{xx½uuppyy{{jjjjddjjuuuuuuUUUUUU^^rr~~~~zzzzzzzzzzxxss``````ttttzzyy~~ssssss^^DDDDRRXXddxxff[[QQHHXXbbjjffXX]]UURRUURRWWWWWWWWJJ333333333388<<DDKKQQQQTT``UUUUUUMMYYddnnxxuuuullaahhhhhhllnnggggccXX__ii}}}}}}}}~~nnxxxx{{pppp\\KKKKKKSSjjrrrrWWEE]]llrrzzsssscc^^^^RRVVVVVVQQSSaaaaaaaaSSKKKKKKQQYYffffbbbbYYJJYYggkkssvvppnnnnnnhhiiii^^VVVVVVbbttttxxuu~~~~~~gg__mmyyyyyy~~~~~~{{{{wwmmrr}}}}}}zzoorr||}}}}ssxx||yyooooooss~~ww}}{{ggXXDDDDIISSdddd````\\\\VV[[VVff{{uuzzppllggggxxmmwwwwssvvssssnnrruuqqvvttzzuurrnnhhpprrzzxx}}ww||}}}}llttzzzz~~ttttxxxxxxxxzzzzzzzzuuppss||||yywwwwyy~~~~wwuuzz~~{{wwvv||}}}}{{~~~~||uuuuuuttssssnnmmmmmmhhiillppmmkkiiiijjooookklliiiijjjjggffhhggggiihhiillmmlljjmmnnqqttzzzzvvvvvvww||||~~||}}}}||xxttwwvvyyyyttyyyyyyyyyyxxyyzz{{~~}}}}yyyywwuuuuxxyyxxwwvvqqqqqqqqrrrrssssqqpplllliiggffhhhhhhhhhhhhkkllmmlloorrttvvyy{{{{{{}}~~~~{{zzuuttrrppooppppssssssrrrrqqssttttssssppoonnnnoorrrruuttxxxxvvwwzzzz{{zz||~~zzwwqqoojjhhggggjjjjhhhhhhggggffiikkkkkkjjjjjjjjkknnnnnnlllljjjjjjkkkkhhggggggjjllqqttyyzz}}}}{{yyyyzz||||}}}}}}||||{{zzyyyy{{||yyyyyyzz{{~~~~~~||||zzzzzz||}}||yywwwwuuuuuuttrrqqqqqqqqqqoopppprrrrrrqqrrrrttuuvvuuuuvvxxxx{{{{{{zzyyxxwwuurrnnnnllmmmmooooppqqqqppppppsswwxxxxxxwwwwvvxxvvyyzz}}yywwxxyyzzzzyyzz}}~~||||yyyyyyzzzzzzzz||{{{{xxxxxxwwvvuurrttttttrrttuuvvuuuuttttvvxxzz||||}}}}||||{{yyyyyyxxxxwwwwwwwwwwwwwwwwvvvvvvvvttssssssttww{{||~~zzyyssttssssttuurrqqooqqssuuvvwwyyyy}}~~~~~~~~~~~~~~zzzzzz{{xxwwxxvvvvttttrrssrrrrssppoollkkkkkkjjjjjjkkllmmnnqqppooppmmnnnnlllliijjiihhiikkjjnnooppoollllmmoorrwwyy{{~~~~~~~~~~}}||zz{{yyzz{{{{{{zzxxvvvvyyzzzzyywwwwwwvvvvuuuussssrrrrqqppmmmmmmooppqqppoooommllmmnnooqqrrppoonnmmllmmmmnnoollkkhhiikkkklljjkkllmmlljjiiggddddddeeffggeeccaaaaccddddddeeddeeffhhkkllmmmmmmmmnnnnnnooooppqqrrrrqqqqqqppooppqqssttuuuuuuttttssttttuuuuuuww{{}}||||zzxxuuttssssttssssrrqqppppoommmmllmmmmnnllllmmnnppqqppmmlllljjllmmqqrrvvvvvvvvwwwwxxyyyyyyyyzz{{||~~~~{{zzyyyy}}~~~~}}}}{{{{{{{{||}}}}}}}}}}}}}}}}||||{{{{||~~~~~~~~||||||||}}yyyy{{zz||uuuu{{{{vvsszzuuttrrxxxxyywwwwppjjrriiggqqmm\\^^mmnnooppii``bbiihheeoouuvvzz~~vv||uuvv||{{||}}||vvrrssqqrrssvvxxpp__aa}}}}~~llmmnnooddffaaccmmiissoonncchhjjnnuussttddffxx~~~~~~{{yy}}ddeeggppmmnnoohhqqyyyyyyrraaccWW22ffhhvvnn||||YY88MM^^xxoo^^XXZZjj}}}}xxyynnrrssffcceexxyyww||}}uurr||}}||uuiippxxyy~~~~~~wwll}}}}}}~~~~wwuuzz{{xxxx}}rr||ttwwxx}}}}}}}}{{{{{{ww||zz}}}}~~yy~~~~rr||}}yyyy~~||{{zzqqttrrrrrrttuummmmddddffmmmmooooffff^^UUWWZZXXTTNNNNOORRPPNNRRQQVVSSRRXXXXbb____ddddbbddddddggggffeeaaaaeeffggllllooooppppttqqoorrttssssqqqqssppmmooooooss}}}}xxxxxxtt}}}}vvoooorrzzzz||~~~~~~yy||||}}zz~~~~}}}}}}~~uuuu~~||||~~~~~~~~||zzqqqqvvvvyyqqsshhhhOOOO``XX____NNNN<<<<<<8844;;>>DD::::::0099;;@@<<88DD@@GGKKKKMMMMVVVVVVTTTT\\aammmmjjjjggllssqqqqnnqqzzvvvvvvyyyyyy~~mmrrccccZZ^^hhYYccZZ^^aa^^jjjjjjjjgg``hhkkmmqqllrrrrrrjjjjjjnnyyyyyyvvlluurrrrttvvvvoo}}{{||||uunnnn]]RR\\WWOO^^QQEEAA111111----444444442277**44====AAHHEEBBEEEEGGNNTTXX]]^^\\\\VV[[[[ddjjlllljjeehhkkkkqqwwzzyyyyvvvvxx}}{{{{{{{{nnaaVVVVMMQQXXXXXXXXTTOOKKHHNNNNUUUUUURRLLNNRR\\\\bbbbbb\\^^ZZZZ````ccddggffeekkoooojjrrooiillwwwwzz{{{{}}~~{{uuuuzz}}}}{{{{ttttrrrrsssszzzzzzzzuuuuuuvvvvzzxxwwvvvvxxzzxxzzttdd^^YYPPPPSSSSPPNNIIGGEEEEEEFFDDDDDDEEFFJJLLNNOORRSSOONNMMIINNTT\\^^bbbbbbbbccffiihhiihhgghhlluuuuxxzzxxvvvvyyyy{{~~~~}}}}yyssqqjjee``````bbbb``__\\XXSSQQQQUUXXXXXXXX[[[[\\\\^^__bbeehhiijjjjllllmmllnnpprrqqssvvwwwwvvvvvvzz||||xxvvuuvvvvrroommllllkkkkiiggggdd````aaddccccddddeeeeeebbaa``^^^^[[\\]]__ccgghhiijjllmmoorruuwwyy{{}}xxssrrqqnnqqnnppoooollnnmmlljjffbb__\\[[\\[[ZZZZWWSSNNNNMMOOQQRRTTWWZZ\\\\\\]]``aaffjjmmoooooooooorrttww{{}}~~{{yyuuqqppppmmjjffeeddddddeegghhggeebbaaaaaa``____``__aaddffhhkkmmnnppssuuvvwwwwxxzzxxzz{{~~yyvvssppoojjdd]]WWTTQQPPMMNNMMKKIIGGFFDDBBBBAAAACCCCDDGGIIKKMMOOOOQQSSWWXXZZ[[[[ZZZZ\\aaddhhhhkkkkooppqqrrssuuxx}}||zzyyxxxxwwttttssttttuuttttrrppoonnmmmmpprrrrppmmkkjjjjkkllmmmmmmllllmmppttwwzzzz{{{{}}||zzyyzz}}}}||xxwwwwyy{{}}}}||xxuuqqooooooooooooooqqssuuxxzz{{||||}}zzuuqqjjdd^^WWTTSSRRPPMMHHBB==886699::::9999777755445566776655557788::==??BBEEHHIIKKOOSSVVYY[[[[]]``bbddgghhkkmmnnqqttyy}}||zzxxuuwwxxwwvvrrmmhheebbaaccddddddcceeffhhllooppppooooppttvvwwxxuurrqqoopprrssssttssvvuuuuvvvvttttssssuuxxzz}}}}~~}}zzvvssssssuuttssppmmhheeccffiikkllnnooqqrrxx~~~~||vvrrjjdd__[[UUPPMMGGBB@@??;;;;::::88662200//00114433445588;;>>??CCFFHHKKMMNNSSWWZZ\\ZZXXYYZZ^^ddiillmmnnnnoooopprrttuuuuvvww||}}||yyuuqqllhhddaaaabb``^^\\[[ZZZZ]]____^^^^ZZXXWWXXXXZZ[[]]\\\\]]__bbffggjjllpprrvvyy}}}}zzwwvvppllhhddeebb__^^\\ZZXXWWVVWWUUSSOOMMLLKKIIFFEEEEBBAA@@AA????>>>><<::::99<<AACCDDFFHHIIJJIIHHIIMMOOQQSSUUYY\\^^bbffiimmpprrwwzz}}xxvvssoooonnnnkkhh``ZZVVSSRRQQMMLLIIGGGGHHJJLLOOQQRRSSPPQQTTUUWWXXZZ]]__bbffjjllmmmmoossww{{~~~~}}zzyyxxwwuuttrrqqoooooonnnnmmlljjkkkkllmmnnooqqssuuuuttvvvvvvwwssssttuuqqppffeeee``ccddbb``____]]\\^^\\[[YYUURRNNKKMMLLMMJJJJEEEEDDDDFFJJKKOOPPTTWWYYYY\\^^``aaaaaacceeggjjllnnqqssvvyyzz{{~~{{zzrrqqppnnjjeebbaaaa__]][[WWSSPPOOMMPPLLNNOOPPSSWWZZ[[``aaeeggeeffhhjjmmmmmmnnppssuuzz||}}ÿ~~||uuxxxxxxttrrqqqqppqqqqnnmmlljjiihhhhhhjjffhhffeedd^^]]]]\\[[ZZZZ[[\\\\ZZYYXXUUUUVVYY\\^^^^^^bbaabbccffiiiillnnssvv||}}~~xxyyzzxx{{xxwwssppnnmmkkkkiigghhggffddaa__]]YYVVQQKKLLIIIIJJLLMMOOPPQQRRTTWW[[]]aacceeiimmoossttwwxx{{~~{{yyyywwuussppmmnnhheeddccccddaa\\XXTTRROOOOOOQQSSRRWWXX[[__aacceeggggiikkppttvvzzzz~~}}yyooggaa]]\\[[YYTTNNKKEEDDCCDDCCDDEECCBBAAAABBCCDDFFEEEEGGHHMMMMMMNNNNRRUUVVZZ[[bbddeeffggeeeeeeffhhkkkkmmoossuuuuzz||||||zzwwuuqqppqqpprroooooooommooooqqqqqqqqlliiddccaaaabbbbddeeiiiimmnnrrrrrrsssswwyy~~~~||wwqqqqqqqqssssssrrrrooqqnnoooommmmiihhhhhheegggghhhhffiihhkkpprrttwwwwwwzzzz~~~~~~||xxssoollggcc``\\YYVVQQMMHHCCBB::::::::>>>>>>>>>>>>BBBBBBBBBBBBEEFFKKKKMMPPPPPPPPQQUUXX[[``bbddiiiinnnnssvvxx{{}}~~~~~~}}||||wwssssssppppppmmiiffffeecceeddffffeeggggkknnssuuvvvvssttttuuwwxx{{{{{{||||}}~~}}}}~~~~~~zzyywwttttssvvwwwwyyyyvvuuuuttttuuqqnnmmffff____ccccddddddddjjmmqqyyyy~~{{~~vvttooggggccaa__]]\\XXRROOOOLLLLOOJJEEAA99999966665555557799;;>>@@DDGGHHHHLLQQQQQQYY[[^^^^^^^^``ggkkkkqquuwwwwwwzz||wwwwwwwwwwrrrrqqmmlljjjjhheeddddhhhhhhhhiijjggeeeehhmmppttttttrrssyy{{}}zzyyyywwssssttttttuuuuwwvvyy||zz{{{{zzttttxxxx~~}}~~zzwwuuppooppmmggiillhhbbbbeeZZZZkkkkkkkkggnnbbeeeelliiddkkggjjjjggppmmmmrrppttttrrrrppffffvvvvvvvv~~~~~~tt||}}}}}}}}wwwwwwiiiieellzziieeee]]]]ZZ\\aahhppiiXXJJPP[[VVZZSSSSSS??FFRRGGLLLL\\eePPPPPPPPZZ^^^^^^UUUUdd__ZZVVVV]]ZZbbddhhnnnnnnxxuuoottjjppuuuuwwwwqqqq}}}}vv||vvttuuuuggkknnmmmmjjmmmmaahhffjjffbbaaiigg__aa``bbjjffiiqqrrrrrrrrllzz~~vv^^dd[[ddoollmmhhaacc[[]]]]XXWWWWWWQQTTXXKKNNNNJJDD::<<LLMMMMMMIIGG>>;;<<..--""%%$$    **!!$$))--44??3366666699==@@>>BBBBEENNLLLLVV]][[\\\\\\hhzzyyvvggqqǿ嫫ɖԥܰzz}}uu||ppddlluuzz{{ffSSIILLWWnnqqiiVV11,,,,MMPPEEHH''%%&&--33++!!       ))**''""(())&& ""//,,--------//88EETTKK44**,,??RRbb^^__JJ==AASSZZYYYYjjkkkkkk``bbbbUUXXLLYYbbgg}}~~mmkklllllllllllliiooxxvvvvyy{{~~||õ}}xxpplljjmmjjkkiiiiiihhllkkggee^^WWXXddeeeeee__WWSSQQ[[ggddiiggWWQQNNSSaaffqqnniijjbbaaaaiiggllkk^^aaeelljjjjppggiibbbbnnoovv~~yyxxllooyy~~rriioott{{~~ttddaa\\bboouussppnnnnlljjssuuuukk^^aarr{{nnmmmmwwþwwyyxx{{vvrrnnccXX[[ZZdddd__TTSSIILLYYVVVVLL5511))++22001100##&&%%&&..,,--((""!! $$&&''''&& ##))**44++..((##,,''((4411++,,442277BB@@55558877>>IIOO::99::00@@HHIILL77<<5577EEKKIIFFGG>>33BB>>CCBB<<99--00;;??AAAAAA<<==??GGEEJJIIIINNQQZZXXYY[[[[cciillnnwwttuurrww~~}}ggmmddffqqddllffYYjj]]]]``YYQQMMHH::99==4433336688,,//55''**3311**))%% ""**(())..6644777777>>//@@@@99GG<<BBMMGG]]PPSSSSSSSSSSZZRRTTSSJJRRSS]]eeccoossrrrrrrwwrrzz~~||zzuudduuZZZZffXXffPPVVccJJ^^________cc[[]]__aaaaeennnniirrrrpp{{xxؽЧĸƾɾŴttiiooss]]ooOONNVV??KKHH??88--33))%%&&&&&&//--&&99445599<<BBAAJJHHDDSSOOYY^^aammjjkkwwttuu}}ssvvssrrppoossrrrrqqnnjjnncc__``__bbZZ^^]]YYddhhnnlluuppmmyyvvtt}}ssxx{{jjzzvvssll``ssVV]]ppRRaaWWMMZZHHQQOOHHDDHHDD22>>;;<<<<<<LLHHDDQQNNOOWWUU__\\bbcc^^jjnnppsszzuuzzyyssuuttyyppllvvnnrrzzuu}}ww{{zzrr{{{{{{}}zzvvyyvvwwrroopphhjjdd__dd^^________\\ccnnppppwwuuvv}}zzqqjjqqmmssddcckkbbeeiiccXXhh\\NN\\OORRRRUU^^__\\ccffeeqqrrrrrrrrwwzz{{||}}xx||rr}}{{eexxmmppjjUUaa^^YYZZUUNNPPOOFF@@BBAAEEFFQQVVNNVV``ZZjjkkkkooqq}}~~~~vv}}{{hhrrZZ``__EELLJJ776666,,&&)) ""..(()),,1100..6666;;??CCJJHHMMVVTTWWYY]]``\\__^^ZZccaabb__\\bb__WW__ZZTTWW\\[[WW\\bbaaffqqrrvv{{}}ssttqq{{ppkkqqqqccggff]]ggaalliihhssppqqzz}}||Ƶ~~vv{{zzuuyyzzxxxx}}~~}}sseettaaccjj]]__UUMMPPAAEEII>>::>>88005533,,..33554444559999HHHHKKIIOORRLLYYYYXX]][[aaeeggooppqq{{||~~~~||}}xxtt~~wwrrppooppiimmppoojjkkppiimmssmmmmnnuuwwss~~~~{{}}wwddppqqaarreegghh``ffhh__^^kk__]]ffWWZZaaccppnnlluuiiss~~xx||¾xxssssttllqqnnbb``eePPLLOOEECCGGFFFFBB??CC??AAII==AAEE????<<@@>>==AA>>BBJJEEDDEEAAGGKKLLHHJJEEBBFFDDSSJJ@@PPHHHHKKAAII==AAII::DDHHAAEEMMPPPPVV]]bbbbggnniinnrrooqqzzuussttppqqggUUjjUUQQ``RRUUSSNNUUQQWWWWSSGGOORRBBRRJJCCKKNNQQTTQQTTWWUUeebbddffddiiggkkssrrssttvv{{}}ɴxxyy||rrssyywwnnuu||oopp||vvvvyyzzvvttrrrrhhTTddGGKK``BBPPBBEEII::IIHH9999BB44//88,,,,2222778877>>77??PPKKRRUUXXZZZZeeiijjllvvwwuuxxxxyyyyww~~~~{{||yyzzqqooppssvvqquuttppzzȽ}}yyyyooccll\\SSQQOORRJJJJJJCCDDMMIILLOOMMPPJJSSYYTTWWUUVVYYXX[[]]XX``bbggiiiigg__aaccaaaa^^PPSSVVLLOOOOLLGGHHRRIIHHLLLLFFLLWWQQYY]]aaeejjmmssrrzzwwwwxx``ppqqllmmWWhhcc__ll^^WWZZXXNNQQTTJJJJJJMMKKLLOOPPNNUU\\[[````bb``bbllhhiikkffmmssqqxxyy{{{{~~~~yymmoossjjoorrhhiijjllmmggmmjjjjqqttpptt~~{{~~¾~~~~~~~~ddffggIIVVXXKKOO??CC88<<EE::55::77&&,,11##$$%%**((--//11..::????CCBBFFGGGGOOKKNNQQRRZZXXZZddaaggkkrrttqqvvttnnqqrruuiijjttiiffmmddff^^kkiibbnniihhiivvssppooxxyysssszzkkuuzzwwnnrrsscckkgg``bbcchhggiijjooooxxyy{{||ٵĿxxyyyyzzzzwwwwxxvv}}zzyy{{{{||||||||ww~~~~yy~~~~||||||}}wwrrww||rrooss]]ggiidd``]]cc]]XXddZZYY^^``]]__ccee``ffmmiillqqrrssppttqqppllssggVViiHHKKYYHHLL??CCGG??IICC??CCFF88==AA66;;88@@==<<@@BB>>NNQQMMVVVVYYWWYYffaaccggddhhppiiqqppllwwttuuuuttttooppttrriinnllddnnmmcceeffkkbbmmnncceemmoopp}}}}}}xx||}}}}~~xxyyooppqqrrssss||||yyuuaaccpp]]__PPSSVVAALLBB::::>>11''--&&$$**,,//&&++00..33;;77>>77??CC>>OONNQQWWTT\\eeccllmmlluussxxyyxxxxrryy}}uuxxyyuuwwxxzzuuttyyppttxxxxrrww{{||}}}}wwxxxxttuurrllkkvvggiioo``bbddiikkiijjllmmrrzz{{}}ÿñ}}}}jjxxggiijjllqqkkllppggnnuullppnnppqqnnrrssttuuzzzz~~~~}}yyyyoottwwkkllqqhhjjnnllggggmmhh``kkjjbbffrrmmttyyzzzzzzwwwwxx\\yyrrrrss]]ttbb^^ee^^WWZZ\\JJMMWWNNVVXX__aacckkiihhyyyyzz||xxzzppqqvvggiirrddffggiittoossssllrr||ww||||{{~~}}llmmggii\\^^``MMccZZHHKKNN>><<@@;;3377??@@AA@@GG<<EEVVMMSSPPVVQQOO``]]``bbgghhmmuuxxyyyy||}}||xxuu||||~~~~{{}}uuwwppwwllmmss__ZZiiTTWW``RRUUSSaagg__ffhhcceeooppvvuuuuzzzz}}}}~~ooppmmnnoo``kkhhffoocc]]__LLOOYYIIMMPPJJQQTTTTTTYYYYZZZZ^^``]]eeaaeemmssqqvvwwvvyyyy||||qqvv~~~~zzuu||qqwwxxttmmnnddbbggWWeegg__iikkllddkkmmggeemmllhhuuvvsszzyyyywwxxvvwwzz~~~~~~zz}}||}}zzxxwwuuttppqqrrppooppqqqqrrppqqrroonnnnlliiiihhjjggiijjkkppqqrrrrssttssrrppwwzzyyyy}}}}}}}}}}yyxxwwwwuuttssssrrrrooppqqrrrrssqqooppqqqqrrssrrrrssrrqqssttvvwwttssooppqqppqqrrqqrroonnmmmmmmmmiijjhheeddeebbccddddddccaacceegghhiimmnnllpprrttwwwwxxyyzz{{{{}}||}}~~~~{{{{{{yyvvxxwwwwxx}}||||{{{{zzyy{{{{{{||}}||yy||}}~~~~||}}||yyyyyywwxxxxwwxxwwwwuuuuvvvvuuwwwwwwwwxx{{||||||~~~~~~~~||||||}}}}}}}}||||||||}}~~~~~~~~~~~~~~~~~~||yyyyyyyyzz{{{{||}}}}}}}}||||{{||}}~~~~~~}}~~||||||{{zzzzzz||||}}||}}{{{{yyxxxxwwssttpprrrrqqppqqoooommllllmmllmmmmnnnnooppssssttwwxxyy{{}}||}}}}||}}}}~~}}||{{zzzzzz{{||||}}}}}}}}||{{yyxxyyyyzzyyyyxxxxxxyyyyyyxxxxvvvvvvwwwwwwyy{{{{||||||}}}}~~~~}}}}||zzyyyyxxwwvvvvuussssqqrrqqppoooollmmkkjjjjiiiiiijjjjiijjkkllmmooppssttvvwwwwwwwwxxxxyyzz{{}}||||~~~~~~~~~~~~}}~~~~~~~~~~}}}}}}||}}}}~~{{||||||zzzzxxwwwwxxyyyy{{{{||||}}}}~~}}~~~~~~}}~~}}}}}}~~~~~~~~~~~~~~~~~~~~}}~~~~~~||||yyyyxxwwvvuurrrrqqqqqqoommmmllooooooooqqqqssssttuuwwxxyyyy||}}~~~~~~~~}}~~~~}}}}||||||||||}}}}}}~~~~~~~~~~~~~~~~}}{{yyyyyyyyzzzz{{{{{{{{}}}}}}~~~~~~||||||yyyyxxwwwwwwvvuuttttssssssssssttuuvvvvwwwwxxzzzzzz||{{}}}}~~~~}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}||||zz{{zzzzzzzz{{||||||||||zzzzyyxxwwwwuuuuttttttttttttttssssssuuuuuuvvvvxxyy{{{{{{{{||||||}}~~~~~~||||||||}}~~~~||||zzzzxxxxxxxxxxwwuuvvuuvvvvvvvvvvwwyyzz{{||}}~~~~~~~~}}}}}}||||zzyyyyyyxxwwwwwwwwwwyyzz{{{{{{{{||||~~~~}}~~||}}{{{{yyyyxxxxuuuuuuuuvvvvwwxxxxxxxxzzzz{{||}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}||||zzzzwwuuuuttttttssssssssssrrqqrrqqpppppppprrssssvvwwxxyyyy{{{{{{{{||}}~~~~~~~~~~~~~~}}}}}}}}||zzzzyyyyyyzzzz{{{{{{zzzzzzzzxxxxxxxxxxyyyyyyyyyyyyxxwwxxxxxxyyyyzzzzyyyyyyzzzz}}||~~~~~~~~~~~~~~~~~~~~~~~~||||||{{{{{{zzzzzz{{}}||}}}}}}||||||||{{||}}~~~~~~~~~~~~~~~~}}}}~~~~~~~~~~~~~~}}}}}}}}||}}}}}}~~~~~~~~}}~~}}}}}}}}||{{yyyyvvvvuussqqqqnnnnnnnnnnnnmmmmkkkkmmnnnnpppprrssuuvvxxzzzz||}}~~~~~~~~~~~~}}}}}}}}||||||~~}}}}{{{{{{zzzzzzyyyywwyyxxxxxxxxxxyyyyzz{{||}}~~~~}}}}||||||zzzzyyxxwwwwwwwwwwwwwwwwvvwwvvwwvvwwwwwwwwxxxxyyzzzzyyzzyyzzzzzz{{{{{{{{{{{{{{{{zz{{{{{{{{{{{{||||}}{{||||zzzzzzzz{{zzzzzzzzzz||||~~}}}}}}||}}}}}}}}~~~~~~~~~~~~~~~~~~||||zzzzzzzzzz{{{{{{zzzzyyyyyyzzzzzzyyyyxxxxxxxxxxyyzzzz{{{{{{||||~~~~~~~~||||zzzzxxxxwwwwwwwwwwwwwwvvvvuuuuuuvvwwwwxxxxyyyyyy{{{{}}}}~~~~~~~~~~~~}}||||||||||||}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~}}||{{{{{{{{{{{{{{{{||}}~~~~}}~~~~~~~~}}}}}}||||{{{{zzzzyyyywwwwvvuuuuuuttttttttttttttttttttttuuttuuttuuuuuuwwxxxxyyyyyyyyzzzz{{||||||||||||}}~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~}}~~~~~~~~~~}}}}||}}||||||{{{{{{}}}}||}}}}}}}}}}||}}}}}}~~}}}}}}~~~~}}~~||{{||zzzz{{zzzz{{{{zz||{{{{{{zz{{}}}}~~~~~~}}||||{{{{zzzzyyxx{{yyzzyyyy||||||{{{{wwwwssssttrrppqqnnppmmoollnnjjllnnkkmmookkmmjjllhhkkmmiikkmmoollnnppmmnnpprrooqqrrttqqssttrrssttrrssuussttuussttuuvvuuvvttuussttuussuuvvwwxxxx{{zz||||xx{{sseessvv||pp``mmiiddxxllcchhffyy[[jjllnnYYiiuu^^nn__vvxxrrmmzz``llppXXttvvXXkkoommvvrrnnssBBsswwӀXXqqrriinnttfftt``yyJJhhoovvUUiiggffMMssTTffttLLsswwlluullQQrrhhYYuuooZZttvvhhddxxggeeff]]eeqqssuu[[rrttMMqqYY``wwaa__bbhhxxffkkNN^^qq[[vveejjmmWW99]]kkrryyrrGG))JJssccrrOO΀[[рhhVVKKss^^nnmmvvmmuuoobbssiiuubb**kkooaaggjjccttNNqqrrTTuuffmmoorr[[uuww88TT]]ccWWjj\\DDll))ee44iimm__qqrruuTTBBBBHHWW[[qq11QQUU--88llVVaaqqXXvvdd``==OO\\vvgg΀gg[[}}||JJϮcchh||{{†PPyyppzzpp||rr||LLppttAANNssjj00IImmQQmmffMMLLqqdd88JJkkww^^ddccssRRNNhhppOO^^ww~~||HHpphhYYqqkkggSSDD@@kkSSyy||{{BBiivvttuuuuSSuuxxPPggӔzz~~}}~~zzeevvBBxx~~||kknnvvqqVVuumm??wwllwwppzzxxww||llPP޺yy55Ć::||nn댌jjYY//ccƭpp}}\\ЯzzPP}}DDgg<<GG``Ƴaaī,, ##GGↆ22xxלmm||33111111@@kkrrpp>>44""^^>>||ll]]>>FF LL##ddTTllPP55KKaa77 MMbbllssVVDD^^BB22,,nntt^^rrVVqqjjoonnnnjjooYYNN||nnhhjj||xx,,WWcctt~~~~лuucc``TTPPCCFFnndd[[ƒ~~NN99ppccffeepp==aattoo``vvӻŧļxx˯׾llss}}[[FFnnZZhhuu[[bb``ff``TT__jjFF55EEAA&&NNbb003366++!!--QQ++552233))   ((FF## ..##""CC11##FF!!33//==FFUUGGFFNNSSiiLLLL@@YY{{ssiiVVnnyy||PP__qqˣzzƿ籱QQuuΠęਨְĶ~~nnaaJJggnn``ccbbYY::))--,,5533QQJJ<<11  !!         ((>>00%%..JJ99,,FF@@;;<<7744==TTEE22>>NNDD[[ggNNAAJJggVV44HHMMLLLLSS__VVSSTTBBGGOOUUSSFFbbss``DDKKSSZZ``^^^^NNRRZZllggcc__WWii}}ppWWffjjppmmkkzz}}vvzzyyԽ̸ŷ~~ppttyyxx{{zz{{qqhhjjzzpprrrrssxxnnqqnnnnzzrrlliiiizzhhhhrreeeeoorrpppprrrrwwqqffqq~~ttbbbbllvvvvss}}oottwwjjjjjjppssssjjoozzzzzzzzwwssssppppxx||ǿĺʿ||qqqquuuuuuvvhh\\__YYCCJJJJJJJJ<<88??<<99++""""!!$$$$$$ %% !!%%""''''%%0033**//666688..<<DD==993366EEEEIIII??KKGG==========??AADDDD????GG<<9999AAAA==HHHHAAAAAAFF@@@@AACC<<@@BB==>>==@@BBBB>>5511....88222255==@@--------7777////////,,4466&&&&++CCCCCCCC8888FFJJJJMMPPUUSSYY]]OOYYggkkvvvvvvvvlleeeepppppp``LLLLLLHHCCCCGGGGAAAA==333366;;;;777700$$,,,,""##7777,,##''''..441144??1155====::::KKWWWWSS[[__\\bb\\ZZZZbbeemmmmiiqq{{ppppppuummuunnnnnnnntt~~~~vvvvrruujjjjmmpp||ŽֺǸ||wwwwxx{{xxggmmrrrrzzssvvggbbbb[[[[^^iibbeeeeTTOO????GGVVVV[[[[MMFFFFLLLLNNNNNNPPPPSSMMMMKKRRZZ\\ZZRRRRVVVV__\\UUYYeeee^^ddjj``ccffhh]]]]````ccggggbbddnnrrrrrrrrkkkkkkllww~~yyyyyyeeqqvvnn``ffllvvpppppp__ddddddkkooll^^ZZZZZZ``ttttttttoossoossvv||ttkkkkkktttt}}tt~~zz~~rrjj\\UUaakkppppeeWWGG88<<@@RRRRRRRRFFFF????GGJJYYYYTTXXTTNNNNSS]]]]ggmmjjooxxss}}ppppppyyyyooooeeeeeeppzzzzuuaaaaZZSS]]hhppvvmmhhhh``bb``ffssssssssppppuuuu}}}}}}||||||}}wwjjeeeeiimmxxxxaaXXQQQQQQQQVVZZVVKKKKBB@@@@DD@@BBBBBBAA88EEEEEELLLLSSVVTTPPGGJJOOOOSSHHHHUUUUUUUUOOOOTTTT``\\``YYPPMMHHLLHHUU^^^^WWTTVVVVbbbbkkccppkkhh||uuoodd[[ccss~~ffffmmmmss~~~~gg``RRRRRRaannrrrrXXXXOOOO^^jjppppkk[[VVIIMMWWaajjqqjj^^bb[[aatttt~~zzzzvv}}zz}}{{lllllleeyyyyyykkeeOOOOOOddkkwwqqZZZZFFLLLLddddddXXRRRRIIYYYYbbffiicc]]bb\\jjjjnnvvsslljjqqqqzz||zzzzzziiddddllpp}}}}vvllccTTTT]]aammsssskkiiddddqqqq~~~~~~~~wwoo}}ppllllggggggooddaaXXPPII999999HHHHXXSSJJCC449955??BBEE;;;;00''5555====DDDDIILLPPNNLLLLLLUUUU``]]TTaaeeiiiiccPPVVVVpppppppp^^^^UU]]]]aaqqqqqq````\\hhkkuu{{{{ttnnzz{{ww{{uukk}}}}}}~~ppppppppppppuuuuyymmgggg[[[[gggggg\\XXRRRRZZZZhhmmqqqqnnnnkkrrrrvvxxpppprryyuu{{jjjjoooo~~~~~~ssii]]VVYY\\ddffdd__]]WWWWaaddiillnnhh]]VVVV[[^^ccccaaaacckkkknnwwwwrrrrbbbbbbbbffffffcccc\\\\hhhhoooorrwwuujjggjjooyy||||~~ttxxqq||uurrzzrrkkaaooooss{{{{uummhhmmkkww{{{{zzzzzzzz³}}}}vv||||xx{{{{wwzz||wwzzuuxxssooooggggjjllhhffddffnnnnqqhheeee``mmuu^^^^^^^^iiiinnnnqqnnhh\\\\\\\\ppppjjSSSSAAAATTTTdddddd]]HHHHHHBBBBTTTTYYQQEEAA>>AAAAQQ\\aaaaYYYYOORRUUUUcccchhppppppmmooxxxxxx||}}xxtttt{{}}oooo{{xxxx||{{{{zzzzzzwwuuuuuukkttttppppggggbbQQQQWWWW``ddYYKK??7711====@@CC6666####(($$,,88;;;;33&&&&&&&&2222??????????<<::FFFFPPSSVVcccc________iiffss{{yyyyyyzzzzzzzzzzmmmmppppppppppppkkhhiihhoooooossssssppoommnnkkoouu{{jjjjjjjjjjjjnnbb[[OOKKHHAAJJOOQQQQFF;;880077::<<<<222222<<<<777722::==DDDDGGGGJJNNVVVVTTTTZZggttxxtthhddaaddqqzzvvvvvvyyyyyysszz}}yyyyqq}}yyssss~~Ͻºuullllllllllnniiiigg____ZZZZ^^aacc]]SSLLOORRTTWWYYUUWWTTVVVVXX__ffhhffccYYYY__bbggnnggddbbXX[[[[jjnnnnnnnnnnnnnnffhhmmmmrroowwwwwwssttppxx{{{{~~~~zzwwvvkkkkffrroolliiiibbddffiinnkkqqqqttppnniiiiqqooxxssuuuuooooyyyy||uuuummmmxxttwwuuzzjjjjoooooooorrllllllllllqqzzwwwwww{{{{||||~~~~zzwwwwjjrrrruuuuuuwwwwwwvvttoorr||||||qqqqffbbkkqqqquusseeee``XX__XX\\aa__eeUUOOJJJJJJJJMMDDII7777777777;;;;BBBB==FF88<<EEHHRROOLLEEGGMMYYMMPP^^^^hhnnqqqqqqww{{{{~~{{xxxxvvssxx}}qqqqqqqqqq||||ssuuuuuuqqqqnnxxxx{{{{}}}}}}~~||mmhhqquurr||jjZZKKKKGGUUUURRNNEEBB88AA>>>>CCAADDJJGGEEKKGGNNLLVVSSFFNNUU^^ccookkoollnnnnnn}}}}}}}}}}~~zzssww{{~~xxvv}}}}ssppxxllhhZZRRCCCCGGKKKKKKHH66////////3333////$$''!!))//55BBBBBB>>>>44AADDHHTTQQQQKKKKOOTT__ccccccccaa^^iiooffffddddffaalllllllllluuuuuuww{{xx{{vvvvvvzzssssiiVVbbbbbbpphhhheeSSSSSSWW````ggdd^^WW[[]]ffoojjqqiiiiiieeqqqqqqqqqqqqttoooo||||||uulliiaahhppxx||zzllqq{{{{{{wwwwwwuuyyyyyy{{||zzzzuuuurrkkrr{{{{{{wwoommddllnnrrrrmmiibbhhggmmiiiiuuuuxxuuuuppkkiikkkkmmmmiikkllnnjjiicc^^ffppssssnnhhffiinnooxxxxuussyyȿµyyrrrrmmmmvvvvrr__SSSSNNNNNNUURRUUOOCCGGDDYYYYYYeeUUUUYYYYddmmss}}zzttyy{{~~~~uuuuttttkkkkrrrrttqqkkiiggooqqyywwnnnnggddnnttjjjjxxxx}}}}}}mmmm````\\YYmm__ff``VVVVFFPPPP[[[[[[MMDDHHHHRRXX]]____\\ggccccmmss{{{{žƿ{{{{ttnnnnnnee]]]]IIIIDD>>>>::::::111144++5522//99003311..00//3388<<DDAA77@@HHJJLLPPPPRRVVUUXXYY__hh^^jjjjjjvvvvyyvvqqqqqquuuuxxxxxxyy}}vvrrnneeaaUUOORRMMZZNN::>>..33==<<8800 &&,,++55116677449988==<<AALLOONNGGGGHHNNbbddkklleegghhmmqqww||||wwwwyy}}¹uuqqee__aacc__aa^^``]]\\XXRROOOOUUWW\\WWRRPPQQaacceeccaacceeddffbbeeggcceeccffhhjjjjkkffZZaa[[ddppqqrrllkk``bbnnyyzzzzuu{{ttzzffhhiiaacc]]\\XXRRHHKKKKRRTTGGKKEEHH@@DDBBFFIIKKNNOOMMLLJJOOQQOORRQQLLPPSS]][[YY[[\\^^__aabbaacc__hhcceeggddkkffqqrrppssttyy{{þƺ~~}}{{wwttuuqqrrqqhhjjeeffeeeeffbb\\[[]]``eeggddffeeffeeddhhllppuuxxttqqnnrrzzzzvvyy||yy||||yyssoorrllssttnnqqccZZ\\ZZddccddccUUXX__aaggbbcc``bbllkkhhcccchhhhiiffggbbddhhiiffhh__aajjkkllffffbb[[]]]]]]WWYYZZOORRUUPPSSYY[[]]RRUUTTWW__\\^^````^^ddaahhppqqrrttvvvvqq||||||}}zzooeeggccbbbb``bb\\VVKKNNQQTTWWVVQQEEDDCCGGKKQQTTJJMMPPWW\\ddeeccffhhppooppqqtt{{}}~~zzyyyy}}}}}}rrssttrrppllrrkkoovvssoommooppqqssttppnnssxxyyzz{{xxtt}}ttuu}}}}ppvvnnhhii^^hhffhhllZZ\\XXUUXXZZXXLLKKNNNNTT\\\\ZZVV\\cckkrrkknnppqq{{ÿxxxxyyuurreeccee``eeddZZXXMMPPPPOOOOEEIIEEHHLLLLKKEEFFGGKKPPLLMMIILLRRVVYY[[ZZ[[]]__bbddffgghhhhmmppnnppppooqqttxxwwttssllmmnnrryy}}~~~~{{}}{{wwqqxxjjaacc]]ffhhaaYYLLOORRUUXXTTFF>>BBBBFFMMPPPPSSQQTTWWYYYYQQTTZZ\\^^aabbaaddjjnnooppqqxx||~~}}}}ʿ~~wwkkeehhjjrrttllbb]]ddnnssxxkkffbb__hhhhkkmmiirrmmmmqqkkssssssssqqnniiiijjoooojjjjddggoorrppiiffff^^eeeeggllhhhhjjkkpprrvvxx{{||~~~~yyllllaaddaaWW]]UU\\ZZPPJJAAAACCCCGGFF==@@==DDKKOOOOJJKKFFLLLLLLQQRRWW\\^^bbeeeekkkkoonnjjnnppuuyy||zz}}zzzzvvvv||Ǿ||||{{{{{{vvyyyyxxxx~~~~||||||xx{{wwqqqqssssvv||~~~~yyyy}}}}{{~~nnnncccccc____SSVVVVVVVVTTPPLLEEGGGGHHHHBBHHHHLLPPSSQQHHNNKKKKSSSSUUUUUU[[\\dddd]]____aaddddddggkkjjmmqqmmllmmmmhhddllllllvvppssuuxx}}~~~~~~{{~~zz~~}}}}ttooookkkk__VVSSHHHHKKNNNNLLCC==@@DDDDHHCCCCCCCCHHHHMMNNKKQQMMKKPPSSZZ____bbeeeehhllooqqppppmmjjmmssqqtttttttt||||wwllpppplluuppkkkkkkrrrrrruuqqss{{{{~~||||}}uuuuxxuuuuiiiiffiinnjjee\\XX[[^^eebbbbaaeeiimmppmmiinnmmrrvvvv~~wwmmppiirrgg]]WWWW[[YY[[VVPPLLLLIIIIJJNNNNEEEE??DDDDKKMMQQQQQQPPNNQQSSYYYYYYYYYYYY\\____^^^^^^^^bbcchhhhhhee______aabbbbffiihhkkmmmmrrrrttoorrwwyy}}xxxxxx}}~~~~wwwwnnppwwqqll^^^^ggggvvvvjjjjdddd^^^^^^WW[[]]eeeeeehhggppppppxxoorrrrrrttww{{||{{þ¿}}yy{{yyzzzz||vvrrmmjjmmnnuussssqqqqqqqqqqnnjjffddbbeeffffffggddgglliihhffffffffee__VV[[jjookkkkggggppppppnnjjjjjjppxxyynnnnww||||xxvvmmmmzzzzzzssssssllwwwwee______llllaaUUQQXXaaaaaaTTOOOOSSYYXXZZTTUU``]]^^[[\\\\WW^^YYYY\\ZZaaffkkiibbddeeooppppppffllwwyy||{{{{vvuu}}~~vv~~ppyyjjzz~~kkjjwwnnpppppp{{rr__dd||vvqqffhhwwffjjppeepp}}``__nnjjqqjjbb__\\hheeffXXOO]]``\\]]]][[YYXXXXSSYYZZUUIILLPPSSRROOMMKKTTRRXXVVOOUUTTZZZZTTRRRR[[bb``WWKKRReeggmm``cckk}}ssggss||zzppcc||~~tt~~~~~~mmzzuuww~~~~eezzuuvv~~uu~~cc[[qqkkwwff]][[\\oodd[[XXYYYYFFWWRRJJUUFFXXXXIIZZNNQQVVLLOONNLLMMMMMMOOSSRRTTOOPPYYWWJJUU^^\\ccYYTTYYffhhVVUUUUffqqnn__ccjj{{``^^uuookkqqppllqqzz~~kkppddllss~~oo||{{uu~~xxyy||||{{yy~~yyϷƒ—}}~~ffkk}}mm\\ccjjXXUU}}YYnnTTZZiiOOccEETTPPWWVV>>SSGGccTT__VVNNPPOOggIIXXZZOOQQQQQQUUWWSSaa^^[[ccggXX``nnaaddccddyy^^ddzznnqqeerrssggYYnnppzzwwxxxxffjjww{{nnwwSS\\ll||xxqqddppss~~{{||qqbbyyzzgg||sswwvvxxuupp||nnqqyyvvyynnss{{zz}}||ӆppzzѦuueeFF^^nnzzffPPgg~~JJ{{oodd??RRvvmmoo``WWeelljjbb>>llkkNNUU[[ZZMMyyRRCCssggRRWWCCbbrrCC]]==gg(({{LL@@NNGGIIHHuujjZZ^^]]^^VVddRRjjkkNNrrPPbbrrxxkkNNccyyssttttbbjjzznnxxWWzzoo[[VV}}bbzzttvvhhrruuiizzkkxx~~qqqqxxttzzyyrrxxzzuu}}ww}}ss||©Ģ||Ètt{{†KKsswwUUWWllrrwwjj@@VV~~__ggeeuuVVEEyyWW__]]zzMMcc??QQ~~RRNNOO[[MMAATT__@@LLSS**oouu^^ddQQee||]]ee__OOiiggUU``nn{{ZZppjjvvsstt]]ii]]::FFWWzzRReeuuqq~~rruu}}||TT{{ppssyy||WWYYjjffggffqqooaallOOvvllooXXccww{{{{vvxx˨~~ɸwwss⃃zzݧҝѷ͐סÍѭssЗ~~ɳeeaazzttĒll^^ݽWWpprr[[ooddrroo||}}XXhhmmxx[[ppggzzOOddyygg``RRxxnnqqHHllRRss88oo~~``hhMM^^ZZ[[ssmmooJJIIppff^^``__QQTTAAllGG--}}ccRR JJ;;PP++&&AA]]))oo00<< PP--&&``""SS&&"" CC22 KK$$ FF++HH++33[[99BBUUDD 99PPJJcc44SS @@))&&//44XXظttη䑑ݼhhvv蔔wwј''𽽍пkk϶ܶ蓓ѥmmظhhgg@@羾NNІȖɶʀՉީݕժ𿿲Ǿ~~{{rrppoowwqqWWbb``MMddFFMMllZZhh!!33//00AA==>>PPAA88::[[??FF mm==33XX WWOOBB//((**))%%66'' EE77 TTEEII DD::&&KK66++99EEss$$88EE!!VVII@@88::SS66==;;MMCCAARRDDaaZZ--HHOOAADD99NNIIRR~~ssggjjGGZZhh\\ggddkkiixx``ttooppyyXX~~}}̠jjŗ}}vvvvvvvv~~ff\\\\}}uuww^^ddVVYY}}tt``eevvYY``ee^^eeccllWWiiddQQhhbbGGNNssvvvvvvvvllwwll``cc^^~~~~VV~~}}oovvmmuu^^~~}}¼zzzzrryyuu}}}}kkkkpp||uukkhhhhccrrrr______ddllll__WWWWZZccccccTTTT]]]]ZZZZNNNNWWUUUURRPPKKQQ]]MMIIEEEEEE>>GGDDBBFFAABBAA>>CCDDDD<<??FF@@@@>>@@==??CC;;>>FFFFFFJJRRGGNNNNFF::::DDDDDDGGGG??FFOOBBBB>>00888855;;CCAA4444;;;;>>AA????KKKKDDDDFFNNUUdddd__SSSS``hhrriiffmmkkiiiippvvppkkpppptt}}zzrrrrnnttqqllttttttiimmiiggqqeelliiii^^XXccccccccccaa]]__[[YYZZ^^\\WWTTTTTTUUYYVVOOEEBBBBBBIILLII@@==::&&,, ))   ##&&//22((111111@@@@DDIIIILLRRRRWWWWSSXXXXTTYYYYYYbbhhbbggaaaaddggnnccjjnnnnppppppvvwwzzxxssssyy~~}}xxxxxx}}}}yy{{{{uuhhllllllrrxxzzzz~~zzĺww{{{{{{zzpppphhjjqqmm__ZZUUUUYYYYYYYY\\iiiiaaZZTTQQSSZZZZZZ]]YY^^^^``ffbb^^^^^^^^bbiibbffppppppssxxvvrrwwwwssvv}}}}~~~~xx||rrrrrrrrrrttssjjmmjjeehhiippffcccceellff````bbbbaaaaYY\\\\^^``\\\\^^^^TTTT[[[[]]]]WWWW\\\\__ZZ[[bbYY\\^^^^hhhheeeennkknnrrppppppqqttttzz||||||||vvssppppnnjjcc````bb``UUYYVVVVVVQQQQMMJJJJGGGGGGGGIIIIGGKKKKMMMMFFFFKKIIIINNPPPPKKNNVVSSVVZZ____````aaggggiikkmmoommssssssssyy~~||zzttttttqqkkjjjjgghhaa]]XXXXXXTTNNNNNNKKIICC;;@@@@>><<99999955557722////////((((((((%%&&,,,,**))))--**------116666550044669999;;>>@@AA@@BBHHHHCCCCFFGGJJKKMMNNQQUUTTUUZZZZ[[[[]]aadd````bbcccchhhhiilliikknnnnrrssuuyyxxzz||}}}}}}û}}||{{yyxxuussssvvssrrooiikkjjjjoolljjiiggffffggjjkkgghhlllllliiiijjhhiijjkkkknnuussssxxxxxx{{vvww{{~~~~zz||~~~~~~~~}}}}}}~~||||}}||{{yy{{{{~~||}}zzxxyy~~~~~~||zzwwvvuussppnnkkffaaee``````\\VVXXXXWWSSSSTTTTRRRROOPPQQKKKKKKLLKKHHIIDDDDGGIIIIIIIIIIMMKKGGMMIIHHHHHHHHHHGGGGHHHHIIKKHHJJMMPPNNOOPPQQQQQQRRTTTTXXXXXXYYYYYY^^aaaaddffggccbbbbaaddhhccccffggggeeffffffhhggggeeccffeebb____``aaddhhcceeeeffhhjjiiiijjnnnnooqquuuuvvvvwwzz||{{{{||||xxwwqqpppplljjeeeeaa^^[[YYVVTTTTRRSSUURRQQPPPPRRTTTTTTRRSSPPTTUUUUUUWW[[[[____\\]]^^ccccccccddddddffhhhhhhddddffffddddddddhhmmllllllkkkkllmmppppppppttqqttttttzzxxzzzzzz{{{{{{}}}}}}{{xxuussqqoorrlljjeedddd__^^^^^^]]VVVVVVVVQQQQQQOONNMMLLKKKKHHFFEEDDDDDDEEEECCDDCCBBDDDDFFFFHHJJIIJJJJMMNNNNPPNNRRRRVVXXYY[[[[]]]]``````bbbbbbddggeeddddhhhheeeeddggffffffaaddffggjjjjhhhhggggeegghhffffhhiikkjjjjhhiijjkkkklloopprrqqqqqqqqrruuuurrssttssttttuuttssvvvvxxxxxxxx{{zzzz||||||||}}~~zzyywwuuvvssmmmmhhhhhhhhhheebbbb````]]]]\\^^^^[[ZZYYYYYYXXZZ[[XXUUSSUUVVVVVVTTRRSSTTRRRRPPOOOOOOMMMMMMKKJJJJHHJJLLNNJJKKMMMMKKKKLLLLMMOOPPSSQQQQOORRWWYYYYYYYY^^^^____bbccddddeeiijjjjffffhhnnppnnnnooppppppppppqqqqrrrrrrssttuuwwxxxxxxxxyywwwwyyzz||}}}}}}}}zzwwttttrrqqoolliihhggbb``]]]]WWVVVVVVUUSSQQOOPPRRRRPPPPPPQQQQRRSSSSSSTTTTUUUUWWWWWWWWXXYY\\\\\\]]^^^^[[ZZ]]^^aaaabbbbbbeeggggjjmmmmllmmmmnnqqqqqqqqvvxxxx||||||||~~~~~~}}zz||~~||zz{{||}}}}yyyyzzzzzzxxxxxxvvwwvvvvyyyy{{{{~~~~}}zzyyuuuuppppmmkkmmllhheebbbb____[[[[[[[[\\YYYYWWUUXXXXYYWWVVSSSSSSVVXXYYZZ[[[[\\YYYYZZYYZZ[[\\\\\\^^^^____bbbbbbccaaaaaaaaaabbccbbbbbbeeffgggggghhiiiiiihhjjkkmmoooonnooqqssssttttwwwwwwyy{{zz{{{{||||}}||zzzz~~~~}}}}{{{{||~~~~}}yywwwwttttvvttppppppnnkkhhggeebbccaa]]\\\\[[[[ZZXXWWWWWWVVUUTTQQQQPPPPPPPPQQQQPPQQQQOONNNNNNPPPPQQRRSSSSSSUUUUVVUUTTVVUUUUTTTTSSSSVVUUSSSSRRUUUUVVSSSSSSTTTTSSSSTTPPVVVVVV]][[[[[[\\______YY____UU__ee``oooosswwww}}}}}}ttttrrrrrrkkhhjjvvvvssssookkkkhhkkmmvvvv}}uuxxuuww~~wwxxvvvvwwttuusswwttvvvvuuvvrrqqmmnnppppqqqqttttvvyyzz{{xxxxvvvvvvttttrrttxxyywwvvwwxxyy||{{||wwyyyywwuussssvvssssttssxxzzxxxxwwssssssuuttrrrrssvv||||{{~~yyyyyyttxxzz{{zz~~}}}}||||~~~~{{yyxxwwvvttuurrqquuxx}}~~~~~~{{||{{||||||}}{{wwrrppsswwyy{{{{{{~~~~}}||||~~||||}}~~~~||||yy{{zzzzyyyyyyxxxx{{{{vvvvxxyyyy{{{{yyyyyyyywwxxxxxxxxwwxxwwyyzz||||zz||xxuuvvvvwwttpprrppqqlljjmmwwuuuuqqppssuuyyqqiirruuvvwwwwyyzzxxssiijjcc??CCGGtthhuu˔jjDD66;;[[jj~~ǧttXX@@DDgg}}``bbll\\^^||ddeevvssjj\\PPSSaacceeff]]RRLLLL5588EEII??IILL-- ++88<<443333<<AA22&&++CCMMKKJJQQTTSS??::>>__rrss}}wwmmnnooppqqrrttffhhqqrrnniippzzyyuurrvv~~}}xx}}}}zzwwxxqqrrzzssttuuccXX[[]]hhllmm}}ɼ˿~~xxssttkkee\\^^``MMAA>>BBFFNNRR<<00&&,,1111''$$!!))11++0011665500,,,,>>NNAA77<<88CCJJNNNNHHGGJJRRUUTTUUNNNNNNQQ]]ccZZ__aaccjjgghhbb\\WW\\kkhheeuuvvwwwwnnookk\\dduuuuvvwwuuvvvv}}qqrr~~nnoobbWWiixx||ooppookkhhaa__aauuvvll^^``rrsstt||kk\\^^nnzziiTT^^ZZLL^^mmrraaLLVVeeggrrssXXQQ\\ffoocceegg^^ffoossss}}ppmmcc[[rrssttttuuzz{{uuqqrr}}~~~~~~||vvssyyиӻʸ˰{{ww~~~~}}ppbbmmnn``^^QQOORRUUQQ<<@@4488JJAA@@6666;;5599--""((2266;;22""((..99>><<--2277EEDDAAAA99==AAHHQQTTWWYYZZ[[ggbbcchhiissttppmmjjcc``ppqqvvwwwwxxssyyqqrrjjllmmnn{{ww||}}}}{{zz||yyzzxxxx}}yywwkkll||ssmmnnuuzznnooiiqq}}~~vvssjjzzvvssww~~{{qqrr||}}||˶¾xxww~~vvoohhYYFFPP__ffccXXSSBBFFOOGGKKAA**&&++1155::((..3388<<@@HH77..3388<<IIEEEEBBFFIITT]]PPSSAAEEddffwwqq__[[]]mm{{{{uuii``hh{{||ppiiqq{{||xxxx}}xxyy~~~~||ww}}}}ppqqzzzz~~~~nnjjkkyyzzss}}~~llssooppqquu}}{{sstt}}wwppqqyy||||}}||zzyyuuvv~~~~xxxx~~ÿĿ¾¾llmmnnuuuumm[[QQTT\\^^TTHH::999999::88<<;;8888<<??<<55..&&''--//116611--++22AAEECC??>>FFLLSSTTPPLLGGMMRRUUVVZZ__ccjjmmnnoosswwppqqzzvv{{{{||||xxyy{{ii^^``bbmmrrssmmiieegghhhhhhllmmoohhddffeeggiiiieeeebbddkkrrxxzzvvppssxx}}}}ſyyssiijjkkmmnnhhddaaaaaa\\YY[[````[[TTPPPPLLJJDDAAEEHHQQTTXXWWQQQQKKOOXX[[__VVQQTTVVYYeejjaa\\aaccll{{||xxhheeffddiiqqooffeeaa^^ffjjjjccbb``^^eehhddbb__\\UUXX]]aaccaabb[[[[]]aaeeggjjnnrrqqqqrrssssssssssssuuzz~~||}}~~}}zz}}||ww||}}vvnnmmmmkkkkllnnnnmmmmiiffppxx¾º~~wwssppgg``\\\\WWOODD::334433--$$ ##""''0066>>AADDGGKKLLPPYY]][[[[__aaaaeeffhhlluuzzzzvvyy||||||~~yyrrppoonnoorroohhbb^^[[[[YYWWWWXX\\]]XXUUOORRWW\\^^ZZWWWWXX``hhnnlliigghhiippvv~~}}||||{{{{~~||¿ƾ||ssqquuvvrrnnff``[[WWWWYYZZZZVVTTTTLLFF??@@====GGCC<<7788CCEEBBEEGGIIKKNNSSWWYYWWXXSSRRTTXX]]ddhhhhhhggkkllllqqqqqqnnff``\\XXUUSSZZ]]UUOONNNNTTZZ[[ZZZZVVOOLLPPUU[[``aa__]]YY\\^^]]__ffllnnnnnnqqttyy}}}}yyvvww||~~||{{uuuuuuxxzzwwuussmmmmllppqqmmhhcc``ddffkkppqqqqqquuxxxx}}ttlleeggjjee]]UUNNOOQQVV[[]]aa__bbeehhmmooppppppssssrrvvww»xxddXXOO====66--'' ""&&))////66::==HHNNSSSSNNJJFFHHKKHHJJIIFFJJFFLLQQRRUUQQOORRPPMMHHDDHHJJHHHHFFKKQQVV[[aahhqqvvyy~~rrccRRNNPPRRGG@@::>>BBHHOOUUZZ__bbaabbdd__YYYYZZYYSSXX``ggoozz~~||||~~vvppppqqqqggbbff]]aaeeccbb__iirrzz||~~ðûùvvttqqnn__SSRRRRRRNNKKIIEE@@??@@HHEEDDJJMMNNOOSSXX__aa^^ffmmssppnnllmmpprrooww~~zzvvrrjjeeWWHHGG;;55<<7700,,**7722//;;>>>>BBFFCCDDIIMMOOQQUUUUOOWW^^aaddffllkknnnnppxx}}~~}}zzyyttqqyy||vvooccYYYYZZSSSSTTSSFFFFLLIIGGDDBBIIIIAA9988CCFF@@GGNNOORR]]bbaabbkkssyy}}wwrr~~wwxxnn``aaXXNNQQHHAA99--99CCFFJJNNMMZZddjjoollppvv}}yyzz}}ttppjjaaOO@@99++&&&&!! ""11441100113355AAFF??99AAEEIINNMMRRXX^^__]]aabb[[ccffeeeebbeeffccbbaaeeee____ddcc``^^ddffkkoouuttsswwrr||wwzzzzzzzzqqdd^^[[TTLL<<22//2299;;66::??CCKKRRTTWWZZaa``]][[UURR[[__ccgghhffiilluuyy||~~yyzzzzzzwwppqqqqrrttuuuuttssppssvvxx{{||||zzuu~~vvyyǾ~~ssjjffhhddYYWW[[]]]]^^XX]]aaeeiiccaa``cclloommggcciinnrrttuuxx{{{{zz}}}}||}}}}zz}}yyttuuttssqqoottxx{{{{uuttyywwwwyyzzxxuuzz~~zzyyttrrooeeeebbaacccc``aaggllnnmmmmqqssuuwwrrssttuuttoommoossuuwwttxx~~{{xxttrrmmiijjjjjjiiggccbbaa__````ddaa__^^]][[ZZTTLLMMSSQQUUXXSSOOQQYY``WWVV[[[[__ggddeeffggmmrrwwwwoott}}{{zzuummlliiffddcc``eeeeggjjjjhhggiirrvvwwwwxxvvuussvvyy||~~~~~~}}}}}}||}}||||{{||{{wwttqqoollllllllkkggddhhkkffbb__^^]]\\bb\\\\\\ZZYYYYUUZZ\\__ggffjjssrrqquuyy||~~zzvvvvqqqqkkiikkjjiihheeggffeejjrryy||{{{{||~~}}||}}~~||||}}zzuuqqqqnnoouuwwuuvvssppmmmmllppmmmmppppttttqqssssnnnnrrzz||{{{{wwrrttnnqqooiijjjjffkkllnnttzz~~{{zz||}}}}zz{{{{||}}}}~~}}xxyyyyyyvvwwssooppqqppssppllmmmmuussssssssssxx}}||||||{{{{}}yy~~~~}}~~{{yyxxxxvvqqqqlliihhhhhhhhiijjjjhhllkkmmqqssuuuuppttssttuuttpprrppqqqqoossuuwwzzzz{{||||||}}xxvv||{{yy{{vvvvvvsszzyyyy~~}}~~||zzyy||}}||zz||{{zzyyxxssttttnnjjiiggeeee]]bb^^]]aa``ffiijjllppoossrrqqttooppppqqqqwwwwwwyyxx{{}}}}||}}}}}}}}}}}}}}}}~~~~||~~||{{xxyy{{zzyy{{zz||{{yyyyrrssssoollmmhhccffeeggkkjjkkkkmmoooooossuuuuzzzzyy{{~~~~zzwwttvvuuttrrrrrrmmffcc__\\]][[[[YYXX[[XXTTQQUUTTXXWWWWUUUUUUUUTTSSTTTTWW\\__bbddhhggkkjjllllnnppsssswwvvww||{{{{{{zz||{{{{zzvvuuuuvvvvvvvvwwwwzz}}}}}}zz||~~{{zzttxxwwjjuukkbbddYYYYTTPP``aa]]jj__UU__ddccrrnn^^llddffiibbaaaahhffeebbVVYYeemmuusscc]]^^bbeeaa__hh``YY[[VVNNUUOODD::55,,(())'',,**$$%%##'',,    &&$$""((22,,--00//7711,,118899BBEEBBPPUUTTQQUUeePP++44jj~~yyRR\\oottjjmmllsskkXX]]mmsshh__ZZTTGGKK__ZZaa__[[WW\\eeccVVYYuuuu>>aa~~wwxxOO55FF}}qqXX^^]]ᴴƾ{{qq~~oommnnmm\\QQSSSSWWVVYY^^XXLLJJKKKKDD44338877""'',,++++''((!!++((!!""""((!! ))1155&&((002211''##$$..77006666;;AA::HHHH@@88))229999CCKKSSHH==PPWWWWWW[[pp~~~~~~yyyyyyyyyyvv{{||||{{yyvvvvvvnn__[[[[____UUXXUUJJCC99????======>>==>>99<<@@>>@@::<<>>>>>>==AAHHFFKKJJQQTTTTaaffffbbbbhhhhmmmmmmjjjjjjlleeeeggkkssssvvvvxx{{{{xxxxxxyyzzttttttttttzz~~{{xx}}~~~~xx{{Ľzzttrrllffff^^^^ZZTTTTSSKKEEGGGGEEDD====776611))))))''%%%%""""  ##((++**--336633333388::==>>>>==AACCGGHHHHIIIIMMFFFFHHLLNNQQTTTTSSNNOOVVYY]]XXTTLLLLVV\\\\ZZ^^ZZWWZZ^^``aaccaaaaccccbbcceeffeedd``[[^^aabbcccc``__``\\aa^^[[ZZYYWWRRTTTTUUYYQQQQQQQQQQQQVVYYUUOOOOVVVVVVVVWWWWXX\\\\[[__bbbbaaddeeffhhiillqqqqmmmmmmrrttmmqqvvyyzz}}}}}}xxttttssppmmjjffffffffggggee````\\[[[[[[__\\WWWWXXZZVVUUUUUUUUYYXXWWZZ\\YYZZ^^]]]]bb__bbccggffeeffllxxttttttttttvv||||||~~zz}}}}yywwrrssssssuurrppkkkkkkkkggffggbbbbbb``^^WWYYYY[[[[VVUUSSRROOLLPPNNKKKKHHFFDDBBAA>>??>>==??<<99;;<<====??::;;99::;;;;;;;;<<??@@AAAAEECCCCDDFFEEFFHHJJJJJJNNOOPPPPPPSSTTWWVVTTTTRRTTWWWWYYYYZZWWUUUUWWXX\\[[ZZZZ__``ddddeeeeggiijjllmmqquuttwwvv{{}}vvxxwwuuvvnnppll``________\\ZZ[[UUOORRJJSSOODDGGCCDDDD<<@@9988==6699885522::8866771166111122)),,++++++//2222;;66777722??00776600??3366<<77;;AA@@DDEEBBGGDDDDDDDDCC==EECCGGCCAAJJGGMMMMMMQQMMNNRRQQRRQQSSWWVVUUWW]]^^^^^^iiffggmmkkssoonnppttzzrrzzzz{{~~}}zzïľʾ̲ȷпй¹vv~~zz{{wwggkkttmmggiiuuffccddddaabbbbTTgg^^SS]][[__UUZZYYWWbbUUXXNNcc^^IIiiQQHH^^SSVVZZCC]]QQNNhhBB^^WWYYXXLLeeDDUUQQeeNNYYii>>qqLL``[[]]llEEppffhhhh``bb\\mmddbbccjjhhhhkkjjlloobbttbbff~~__vvppqqtt{{uuww{{}}~~rr}}||uu}}||}}nn}}yyxxwwhhzz~~}}vvxx~~{{{{zzzzoo}}~~yyqqoo}}ssxx}}}}||``{{hhccwwEE]]kkxxuuuuuu@@}}QQiiccFF``QQrrFFQQNNFFXXFFJJCCEENNLL====XXHH;;FF((aaBB;;JJ""WWJJMMBB]]oo::99SSAAoo>>JJGGQQ__!!\\NNQQ@@EEDDOOaa..JJCCii__11==::``KKFFGGGGVV88WWOO88TTMMOOOOTTEEUU__>>ppKKjjbbRRggbbppaaooggqqXX^^ww<<vvzzyyTTffppxx||zzuuqqNjssxxwwuupp{{wwzzDŽƊ¨ʳ̘¶֙Ƚ먨ñͪիԯŚllbbuuqqtt\\yyiiuuUUnn77ooHHRRssJJFF{{??xxDDFFnnLL__PPKK==rree++LLddPPHHaa;;NNllPPDD??ttUU==``JJgg@@ooMM--~~99vv??MMiibbWW,,;;gg\\__pp<<tt??dd[[]]eeDD__``ggXXbbjjhhddeebbxxss``wwqqii||kktt{{qqllwwzzsssskkyy~~xx{{{{yynnooUUqqzzeezzZZoozzwwpp~~qqhhGGcc||ss{{??qquullvv{{bbpp[[yy{{ttllrr~~mmee__jjppvvsshh~~zzmmrrff33mmIIaayyNN__}}hhccddFFeeHHFFUUjjeeffffFFNNoo\\aa__XXLLIIppYYSSUU88jj]]aaUU::mm66]]__++iiKKEERRZZXXGGKKJJppggSS9966ppbbTT88??ppssWW99@@ppDDzz``{{II??jjqqOO,,iiiiii]]TTLLNNRR<<\\ffccVVffbbmmXX]]\\ppkkbb66ww}}{{mm$$ssxxIIUUii33ss||LLhhuu}}~~{{mmvvyyiiyy}}jj^^yyzzzzggoo߄~~xxnn謬ʂҾ³vvkknnvv{{@@iiii==Ϊvv}}aaYYkkRRff[[<<WW``}}eeOOnnffhhCC}}QQ\\}}55\\RRww__WWee**??mmbb&&SS^^mmYY33uukkWWssFFDDbbhhgg\\__gg]]__kkFFrr77oo^^bbOOtt\\||]]yyrr11ttcc{{QQ||qqLLZZyybbuu}}eeaakk]]zzssuu||ttffsszz||wwpphh{{mmwwoohh~~nn}}llZZffhhUUttlleevvrrssbb^^uucckkllnn||tt~~||}}wwwwuu֦vvƦŸttttCCLLLL[[{{ppTTTTccppppgg@@YYddnnnnFFSSSSSSxxmmDD]]GGZZZZSSZZMM<<FFffff\\JJJJYY__eePPJJPPFFSSll[[TTaaJJXXkk__ddWWkkeeSSmm\\\\VVbbxxqq````jj``````gggggg\\\\eeuugg^^jjmm||ssjjbbbbeehhuuqq^^^^sszznnyyttttttmmyyvvoouuhhpp}}}}llssyysssswwttzzzzuuzzzz||iiiiww}}tttt{{}}}}~~zzzznnnnwwggvv}}||}}vv~~oo{{{{xxxxuuxx||wwwwuuuu}}yyyymmmmvvttvv{{nnnnvv}}vvyyvvvvvvrrmmiinnrrvvzzuuxxvv~~zzzz}}}}~~{{{{}}}}}}||~~~~{{{{{{{{~~yyxx{{{{{{{{~~~~~~||}}~~uuxx~~{{}}}}||{{{{{{~~~~~~}}}}}}}}{{xxwwyy||vvvv}}}}}}||}}zz~~xx{{{{~~zzzz||~~~~~~yy||}}||~~zzwwuuuuttqqrrwwxxzzzzzz||~~{{{{wwyyyyyyyyvvyyvvxx}}}}}}}}}}}}}}{{~~~~~~||{{tt{{tttt||rruu}}{{{{~~zz||wwwwwwwwuu~~zz}}}}}}||{{{{{{}}zzzzzzxxyyyywwuuppnnqqnnkkffddggffffffffee``bb__``]]]]]]__``ddccddjjjjffee^^bbddiiiiiihhffmmmmiijjllqqssssvv||xx~~~~vvvvssssuuuuuuuuxxyyxxvvvvqqttttttxxwwzz||zzyyttqqqqppppppppttttssttttrrnnkklliiiijjqqqqmmqqrrrrppooppooqqrruurrssqqppppqqrrppqqvvyyyy{{||||~~~~||||zz{{}}xxwwwwxx||~~}}~~~~}}{{{{||~~~~}}}}||~~~~~~{{zz||||{{}}~~zzzzzz{{yyyyyyyyww||}}}}}}zzxxwwxxzzwwxxzzzz{{}}}}zzzzyy||||||||{{}}}}vvyyzzzzzzyyyyzz~~||}}yy~~xxyyyyzz{{{{}}}}{{{{}}~~~~~~}}~~~~{{||zzzzxxyywwuuzz{{{{||}}{{||}}}}}}~~~~~~~~~~||}}}}~~~~~~~~~~}}zzzzyyyyzzzz{{{{{{||zzyyzz||}}}}~~}}}}~~~~~~~~~~~~~~yyyyuuttuuqqttssqqppooppnnlljjllnnrrqqqqppssqqttvvuuvvyy{{}}||||||||||||yy{{||~~zzwwwwwwvvttuuwwwwvvttrrqqrrooooppppnnoonnllkkmmmmiillnnmmnnooqqqqssssttuuyyzzxx}}}}}}~~}}}}{{{{yyyyxxyyxxzz||{{{{||{{}}}}~~zzwwzz{{vvqqmmmmhhiiiiddaabbbbaa````__``aa````ddbb]]__[[TTTTTTPPSSRRQQWWZZ]]__ccggjjppssttuuttwwttuuvvssooqqqqssttttvv||}}}}}}||xxxxrroonnmmppjjiillllnnqqoonnooppqqssppnnnnoonnllmmkklljjkkllnnttxxzz~~||xxttoonnllffcccc````ffeeffkkppxxyy}}}}||||||}}}}uummkkeeddff``ZZZZ\\\\\\__\\bbjjllmmqqqqssttvvxxxx||}}}}}}||}}~~~~{{||||||{{||uuttuuuuyyyy||}}~~}}~~}}~~wwww{{{{{{||zzwwssssjjccbbTTWWYYTTSSLLOOWWZZ\\^^bbmmnnrrppmmnnllmmrrqqssuuvvzzyy}}~~{{yyuuwwzz{{{{ssqquuqqrriiggffaabbddaaccccddffhhmmnnqqssssqqqqnnookkjjjjkkooppmmnnppvvzz{{||}}{{{{~~~~yyuuqqmmdd\\RRNNNNQQTTTTWWYY__cccceeeekkjjggeebbccffjjnnrrvv}}~~zzxxxxyyvvwwww{{||wwvvttssqqqqoollmmoooorrttyy||}}~~~~~~~~||}}ttbb^^VVSSZZaa__aaccggkkppqqllqqrroooooooolluu}}}}||||~~xxooee``[[[[ggkkmmllkkllhhjjjjkknnrryyzzzz{{||wwvvwwzz~~}}}}||||~~zzzzzz{{zzyyyy}}zzssttuuqqtt{{{{uuttttppqquussppjjiiffbbjjnnooxxyy~~}}}}wwwwxxqqiiWWMM>>BBPP[[iiggbbddaacc__bbddffkkmmjjlloouu{{xxxxyyyy||~~{{{{yywwxxwwnnff__aaccmmuuvvxx||{{wwqqppjjkkppqquuwwxx||xxvvrrmmnntt||xxttrrppkkmmlliiggiijjhhkkpprryy}}}}wwrrvvww{{zz}}zz{{ppjjhhdd^^XXUUGGEENNQQ\\bbZZYYKKOORRLLWWYYbbjjmmuuvvwwww{{||uunnoonnuuww}}zzttoonnffggiihhggddffddiipprrssoojjddccggjjttttuuvvxxzzzzxx}}~~zz~~xx||xxuuxxwwrrrrvvvvvvzzuuvvxx||{{}}yyzz||vvppll^^UUXX__eejjoommiijjiiggoorryyyyyyxxzz~~~~||{{xxzz~~}}}}xxzz||||wwwwyyzztt~~xx}}uu{{{{yy}}qqhh\\[[]]\\ggffcc``]]__hhoovvxxyyxxwwssss||}}sssswwyy||}}||}}yy~~}}||~~yyppyyuuxx}}yyppmmoojjkkooggii__SSVVIILLTTKKUURRRRRRQQXXWWYY]]ccffffkkiinnwwxxyyyyvvttttttyy||zzwwzzvvvvwwxxrrqqkkllmmppvvvvwwwwppqqoommssvvxxyyyyxxwwwwuuwwqquuwwmmrrssmmttrruu}}wwuurrffggiibbdd__ggiihhiikknnooqqkkllooppqqrrss||||||~~~~zzzzxxyyxxrrnnffhhddcc``SSUUXXZZYYSSVVYY[[bbiijjhhhhffhheejjsstt~~~~~~~~~~{{ssyy||zz||||{{{{||~~}}zzwwppssttssssttssuuwwuupppprrooppttttuurrwwwwyyzzuuttttttqqpprrppxxzzyy}}xxxxyyxxyyrrxxxxyy||{{~~||xxyywwllff__^^``ddddeeggiijjjjlleeggmmoorrxxrr}}}}yyzzzz~~}}yyqqrrssjjii^^\\^^``__\\^^``bbffaaggbbffiiggqqooppzz{{}}~~~~~~~~}}{{{{||{{~~~~~~||~~~~}}zzyyzzzzzzzzzz{{{{{{zz{{}}yyzzttuussnnllmmoossttuuwwyyww{{zzzzyyzz}}}}~~}}zzzzwwrrqquuuuttmmggbb]]^^^^__bbddhhiikkhhffggeeggffggnnssxx||zzxxxx||||~~}}}}yyyyvvuuttssttqqqqppnnkkkkjjkkllmmppnnoommiiffhhddeeeeddggjjllppllllmmiijjkkjjoonnssttuu||xxzzzzxx||{{{{}}||||wwyyyyyyzzyyxxvvqqrrkkeecccceeeeffffffddjjkkkkoohhiicceehhjjmmssttttuuwwuussttuuvvvvyyyyzz~~||yywwwwxx||}}~~}}zzyyyyzzzzxxyy{{~~~~||zzyyyy{{}}~~~~}}~~~~~~~~~~~~~~~~~~~~~~}}}}~~}}zzzzxxyyxxxxxxxxyyxxzzyyyyyyyyxxxxxxwwwwwwuuttttssssppooooppqqqqqqqqppqqrrqqttttttttuuvvvvvvwwwwyy{{||~~~~}}{{{{}}||||||||}}}}}}}}}}||{{yyyyyyyyyyyy{{{{~~{{{{{{}}}}}}||||||zzzzzzzzyyyyxxwwvvuuuuuuuuuuuussrrssqqqqppnnnnnnppppppppooooooqqqqqqrrrrrrrrrrppppppnnnnmmppppppppooooooppoooonnmmmmmmmmllllmmmmnnmmkkkkkklllljjkkjjiikkmmllmmllmmnnnnnnnnppqqttttvvxxxxyyzz{{{{~~~~~~~~}}}}}}}}~~}}||}}}}}}||{{zzxxvvvvvvvvvvwwwwzzzz||}}}}~~||}}}}~~}}}}||yyyyyywwyyyyvvww{{{{{{yyyyyyzz}}~~~~}}}}~~~~||||}}||||||{{{{zzzzwwzzxxyyxxzz{{zzzzzzzz||zzzzzzzzzz~~~~~~}}||{{yyyyxxwwuuuuuuuuvvssqqkkkkqqqqqqqqooooooppnnnnoorrrrqqppppmmkkrrvvnnppjjttqqkkppnnrrnnuuuujjqqkkqqsssswwww||ssmmppppppppppsswwuuyysssszzxxrrrrppxxxxss{{yyyy~~sssszznn||||vv{{{{{{||vvtttttttt||||oo{{{{wwzzttttppppppvvvvookkkk{{vvqqqqqqggdddddddddd````\\aa``]]XXUUQQNNFF??EEEECCCC????@@<<6666//%% $$//,,//44;;5533??CC??99??IIIIDDKKPPVV``TTTTZZZZ__bbnnnnvvyyyybbù»ĸ￿ʾȴ뻻ͭɾſpp``VVRRRRYYoooohh\\QQLLDDDD==------)),,336666((((##''..""$$00 %%%% ****%%**......((""++44,,,,22550055BBBB22....1188;;@@CCCC3333>>>>::66==OOUUPPPPPPLLLLBBBBBBDDQQjj{{{{ffZZZZZZ____bblloolluuuussssqqxxzzzzzzzzyyxxzz}}~~yyvvppppppee\\XX[[hhppppffSSSSSSXX]]]]]]]]]]UUPPIIMMZZQQQQQQTTWWWWWWSSQQNNOOWWWW^^eeaaaa\\XXaaggjjjjjjooss||½zzqqqqhheeeeeeeehhlllldd^^YYSSSSUUUUQQQQUUTTOOLLGGBBCCCCCCBBFFDDCCAA>>>>>>==>>??CC<<<<<<998855556699==88>>>>;;99885544115544445544335544..,,,,,,((((,,--00....++**&&$$%%''''"" !!!!!! %%++//..######))..3333--//0055;;??CC??>>==::<<??BBGGMMVVZZWWTTWWWWUUSSQQPPVV^^hhmmpppphhcc``YYYY[[bbiimmqqoollllhhee\\YYYY[[ffjjmmppppnnee^^\\\\\\__eefffflliiff______________dddd^^XXUUUUUUTTZZ]]]]YYYYYYUURRRRRRRRSSVVWWTTSSNNLLMMLLMMMMOOTTWWZZYYWWWWWWUUUUVVYY^^__aaaaaaaaccccbbbbaaaaddhhmmqqssssssvvvvwwxxxx{{~~}}zzzzyywwuuuuttssrrssttssssqqqqppoonnjjkkkkllllllkkjjiijjjjkkllnnjjjjiiiiiillmmnnlllljjnnnnqqqqqqrrqqooooqqppkkkkkkkkmmnnmmnnlllllllljjiiggffggggffggddddaabbbbbbbbffeeddddddaa``^^^^^^aa__]]]]]]]]]]^^[[[[ZZXXZZZZZZXXZZZZZZXXYYWWXXXXVVVVVVYYWWUUYYYYVVVVVVVVUUUUUUUUYYUUUUUUWWXXZZ\\]]]]^^__bbaaffiijjllmmnnqqttuuzzzz||}}{{yyyyxxuuuuuuttrrrrmmkkkkiiiiiihhggffeeffggddddaaeeeeffggffeebb``______\\``aabbaacccccccceeggggggffcceeeejjjjjjiihhffiijjjjllllooppoooommllmmppppssqqqqoommmmmmmmmmllkkjjiiiijjkkjjmmoommnnnnnnnnooooooppppnnnnmmiiiiiiggggffffhhffbbbbccddccbb^^^^WWYYYYYYWWWWUUUUTTRRPPOOLLMMNNNNLLJJIIJJIIIIEEEECCBBCCEEHHGGFFHHHHIILLNNNNNNPPPPPPRRPPQQQQTTYY^^______aaccddeehhhhkkqqttttttttwwww||||}}}}}}}}}}~~}}{{{{{{{{{{yywwyyzzyyxxxxvvttttttuuuuttrrppnnnnnnpppppppppprrrrnnoooooonnnnoonnkkkkkkkkjjhhgghhhhhhhhhhggffccbb``````aa__]]]]^^^^^^__^^__bb__bbbbbb^^^^``bbaaaabbddddhhhhkkmmnnmmmmnnrrssttrrrrssttxxxxzzzzzz{{{{}}}}}}{{{{yyxxuuuuttuuuuuuttqqppppooqqnnnnlllljjjjiikkkkjjhhjjlljjjjhhhhiihhhhffddddbbbbbbbbbbbbccaaccccccccaa^^__^^^^\\ZZZZZZZZXXXXXXVVYYXXXXWWXXWWXXWWYYYYYYXXXXYYZZ[[\\\\^^^^^^``bbddffffggjjllllnnoorrrrvvvvyyzzzzzz~~~~~~||zz{{||||||{{yyzzzz{{{{{{{{||}}~~~~~~~~}}}}}}}}}}}}~~~~~~~~~~}}}}zzzzzzzzzzzzwwwwxxxxwwvvvvvvuuuuttttttttttssrrqqoooommnnoooonnnnnnllllkkjjkkiihhggggeeffeeggggggddeeddeeddffhhhhhhhhhhhhhhiijjjjkkllllmmooqqrrssssttuuuuuuvvwwwwyy{{{{{{||}}}}~~||{{zzzzyyzzzzzzzzyyyyzzzzzzyyyyyyyyxxxxvvwwwwvvvvvvvvuussssrrqqqqqqppppoonnllkkjjjjhhffddddddccbbaa^^^^^^^^\\\\[[[[[[[[[[[[YYZZZZZZ[[ZZZZZZ[[[[\\\\__````bbeehhggggggggggiikklllloonnrrrrrrrrttssuuvvwwxxyyyyzz{{{{||||}}~~~~~~~~~~~~~~}}}}}}~~~~}}}}||zzzzzzyywwvvvvwwvvvvttttvvuuuuuuttuuuuuuuuttttuuuuuuuuuuttssssuuuuvvvvvvyyyyyyxxyyzzzz}}}}}}}}}}~~~~~~}}~~}}}}||{{{{{{zzzzzzzzzzzzzzyyzzzzzzzzzzzzzzxxzz{{||}}}}}}~~~~~~~~~~~~zz{{xxzzzzzzzzzzzzxxxxxxxxwwvvvvwwuussttrrssttuussuussttrrssttrrssqqrrppqqoopprrooqqnnppqqsspprrssttvvttxxvvwwxxvvzzvvzzzz}}}}~~||~~}}}}}}~~~~~~~~{{~~}}||~~||~~}}}}~~}}}}}}||||||||||||||zzzzyyyy||{{{{xxzz{{yyzzwwuuvvwwuuyyttuussqqrrppqqsspprrooqqnnppmmoo\\ggvvwwppjjllnnppmmooqqnnooqqwwttrrwwttoojjllzz{{||yyvv}}vvwwzzttttuuvvzzvvwwzzvvzzxxrrvv{{xxrrxxxxppuu{{ooqqnnuuvvjjrrssiirrttZZffkkddqqrrmmooqqjjkkmmii^^__vvwwppqqffZZssjjllnnxxffppkkggppqqVVrrZZuu@@KKqqssaavvwwXXee__vvVV^^__XXaaeennoouujjsswwoouuppxxyyzzrrvvoottyyddeennppllxxuuggYYhhvvmmrrqqddyyuuVVmmyypp{{ggiiccttiizzqqppqqttllllggyywwWWoo{{ppvvqqxxoowwffuunnwwuullmmhhzz{{jjccbbiiXXggvvpp\\uuddllnn]]uummwwxxyy__TTaaSSqq]]ooyyttZZKKqqrrlleeqqmmnnffooKKLLrrMMssZZiioojjnnuu{{||iiWWjjllssmmvvffppssttxxhhii^^llqqhhkktt\\vvnn``ffxxkkUUrrhhffhhkk\\]]wwqqyyqqwwvv{{||yynniivvvv[[PPPPPPPP5555<<//AAQQ++++DD----@@@@1111OOOO>>>>""..::::009999%%++EE44%%::@@@@OOJJ**BBMMMMMM==aaaaLLLLLLTTGGXXXXbbooPP[[QQHHii__MMMMjjYYaavvcchhhhvvnnnnggXXXXvvkkyyyyss}}}}}}rr{{{{vv{{ž±{{jjuukk]]LLVVVVFFPP::::@@55!!------22&&&&66666666++>>>>''''----------11----==33..????6666663399AACCEECCLLLL@@PPKKKKOOOOUUXXZZXXVVVV^^VVTT\\UUSS]]jjbbffffcceeeecc\\bb]]^^iiffii``eejjhhjjffhhhhccnnuurrffffvvvvvvzzzzssyyqqqqvvvvvvzzss||||vv~~wwwwww||}}zzzzttqqqqxxxxvvoorrrrzzwwww{{xxttttqqjjqqwwppmmjj\\\\aaPPKKTTTTMM@@@@CC==HHRRRRXXIIIINNRRYYYYdd||||ttttttɹ̺~~~~iiiiWWWWWWJJJJMMMMSSVVCCCCCC22((##"",,''''## ''++....9999>>//444444CCCCGGNNNNNNIIPPLLFFFFIIOOPPXXXX^^ggaaaa]]VVTTTT\\ffllooeebbggggVVPPVVVV____[[[[[[ff\\eewwkkkkzzzzvvyyyyyy~~}}{{uuuuooeeeeeeeeeecccc\\WW__aaYY[[ddbbppppcczzzzzzuuuuuumm{{~~~~ttkkhhhhmmpprrttqqssttttvvxxyy~~µŽ¿Ǿ{{``LLLLLL==####111111111111,,,,99==KKTTHHVVbbbbbbhhUUIIII>>5555==GGSSVVVVKKDD77,,CCCCCCWWWWaaaaaaeeiioodd``lliiiinnnn~~~~wwssgg__QQbbggggwwwwwweeeeoossww}}Ʊzzzzrrrrff``QQQQaaXX\\ddggggQQQQ````llwwww||xxffffssvv||ppllee__QQQQeeRRcccc__kkkkrriilluu~~ttww||ͽ~~ooTTTT>>****$$$$::33--88888888888855::88::>>JJRRRRff``TTDD??%%$$++11 ****33EE??44000000DDDDDDJJJJeeeeeeVVVVPPKKKKTTTTTTcchhllhhhhhhhhmm__________bbhhjjjjxxhhhhhhhhhhmm{{ȸjjTT]]LLLLaaaassss||ssssssppķssssyyyyyy}}kkkkqqvvuu}}ĶwwkkZZ77CCNNNNNN]]VVPPaa\\NNWW^^TTQQVVOO^^^^ggggYYTTHHAA4444&&--??DDDDHHDDAAMMMMGG;;;;AAPP^^ZZ]]]]``kkkkTTKKSSSSSS^^^^ccoooooorrjjhhaaeeeeeebb``__bb__YY]]iiaahhhhVVbbmmww{{}}~~||hhVVAA;;;;@@@@QQ[[IIYYbbooii``````ffffbbffffppzzttttllvvxxuu{{xxxxzzzz||ɾԽyyyy``IIII==,,;;DDLLWWWW\\__SSPPII====PPPPPPjjjj[[[[UU;;;;;;-- %%%%((552299EE::::44)),,AAOO\\\\\\\\\\\\XXXXXXXX]]QQQQTTXX````iinnee\\QQKKVVaaddiiggggYYKKKKRRVVhhhhhhhhhhhhll}}}}zzzzzzxxpp||||``WW??77>>DDYYYY__sszz~~ttttttbbbbbbkksszzyyvvvv}}yy~~γƽ{{mmTTTTZZBBXXllllqqcccccc\\YYYY^^[[[[hhhhppzzkkffaaII00"""",,HHHH@@@@@@@@@@@@IIAADDDDDDLLZZrrrrrrrraaaaTTHHEERR]]ggmmkkkkffjjjjgggg]]``dd^^iibbMMccccWWbbbbQQQQ^^kkccwwvv||||||wwooqqmmmmrrwwvvrrzz����������������������SDL-2.540/test/data/silence.wav���������������������������������������������������������������������000444��000765��000024�� 2317612�11760240073� 16532� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������RIFF �WAVEfmt �����"V��X�����fact���g�dataP �i�: �d4�Uh�U�w����z��fO�2�r��*�g�b5?#T)�h�y9DHFB��C�,�a�X#0&ct0^ '���u�D��d�]�`N�*|�[Y�;k�P�c�f�UQ�C]�P�qO�H|�qe�^�����07����3�L�v�������'�����`�Y��k�y��`�i�F�M�0�`�k�V�[�l�H��L����.�4�t��P�_6�P"�Z� �Es�_���7�,�0��0�I��-:��g�]� ���d�q������3�A �(V*f<9����|�jl�P��)�i�W�<�44�.�X�W1�2 �� �?�DO�W��������� �� ��Gj���+�]�B$�S�I$�d �K�PT�O�(�l�X��H@��� �����?�@�� �i�f�<�2�eG�O�f��8��M�Q�H�V� �`�h�� �i����d �V�O�m��(c�l��,R�k��3�DD��*n�L�<�F�#�a�m�"C��F�r�*h�(���z�����L�9��`����ps�KV�0L�$h�?@�O�-f�GL�,u�S.�Q�3����&�S�@}�nh�`(���� �]�]m�ld�d�����$~��&�6���`�xa�x��J�js��3�>@�j`�����H�z�D�|i� �W��=K�X�D�V�1&�e6�wO�B��f�|��4���.�!�����`�X�'�l �wh�@�`�x�� ��d�X�|�{�|�C�:��8�&�<��|D�va �,�i�]�����D�`�J�=�l�[�N�!�[�|� o���v|J�6�,�(�v��O�'�=x�`��-@�H�B�Z���HO��w�x�[�q|�.�0V� J� ��!�-�`�G�E� �O� gej*� �L�~�Ga�(C� ,�8��6��(�<�6� R�'<�x�J��]�(��)�\�:P�/�p�m`�@u�Uf�HV�94�U�:&� @�*3� W�Cx�d:�&G�7J�<L�>� � �(�,�*:�9#�$+�.(�,G�P��a�kl�zW�eQ�ac�tE�W+�:L�`5�Gu�`�u5�PO�h\�v�"�:�& �(.�S �0��(��*Y�=�l#�U�DG�x@�nx�r�o�������p����� �_�D|Tp /G882�}@>&�t�P+�uE� �l+�x3�f�(�c�Mi����v�O�h��j��1����������a��?�6��$d�V�X�C�T �w�H����h�@�Q�e�"�M�T�0�Y�B�r�+�?�lU@m&(<<��oK� �e�G�K� � �0�7�����B�&�� ��a�i�S��<�`� ��<�l�<�"�!� �n� L��4x�@�,�V��W�>�T�i� �`�U�*l��G�75�i�v� -�r�!T�^�(�*����pR[G�9�F��@�v�2�w`� F�r�,p�06��O�{��N\���gc�2:�o�@h�8�j�R����w�X4� 9��h�=$�L� �x�l�`�o:�p�LY�74� �wU4kW5`E �N�1$�t�U�b�s����V�A2��������(����<�8O�L�}2�1�x�qP�NF�@�������Y�Z(�*���<�:J�J�\�]M�PD�LD�K0�<�*�4 ��� =�K� (�8c�v�, � �,r���~�`�qp�$�4��"�"���(�.!�:|�4%�A�. �<�l�l�z���l��O�pn�V�|8�Xl�3�\�~��3�]"�M)�P�A3�]I�vV�~3�X=�jS�|)�S&�U��,G�wV��J<�j^�Q�H�y�t�T�Y��P�J&�Z�7 �D �=C�w�T�Q,�j4,$�<�X�Xv���S�,�o6�z:$:�U �O)1 �Jw�T'�W�M�d ��KV�I�|�z�(�pT��P�Jc�f�^���0�|\�P� �q�q��M �q�j�\,�t&�r �W$�qB��`c�<�Y� �s�s;��V�D��gK1 �a$�y�d���V���x�"�y�+�<M!8.�uK.17@8��g0�L�l�1�O7F �H*Q��d]G �ta�L�I�3�#�,�'X<;*4Z.�6�M�$�<�Y��q���t �~K�]�"���qS���9��~�w �O�3��L�\�0�\4� �"���W�l���|�l�P�c�c�a�0�3� �8�7��ze82PM�q1�,@ M=�/� �o#�@]�d�~��K�0�^�r����@�l��?�|���[�H�$��:�~DpA&yP4"1pz0v@Km�Y��,�lm�)z�85�B��[��)�� �����h�\�h�� �L�7�*��&�\a} bCz:=`���2��y��f�V�`�G�f�t��!�@��-��pF� �8���:�=�Y�`�#�U4Cx8D�@�9�\ud�X��U�<� ���Y�Y�2�t� ��L�F��f��#�&��yEK@pe��5�y{m>j u]\@S|�r���(������pwSbb`|��i����6��p�� ��$�]���ltbD�C� �c� �L�c� ��)�#�T� �$�b��l��6�r��Q���@� �z�$�d���8�p� �@�<�#��G��.� ����<�6� �Lxppe`WQRt&*&X 4A5d9tzbjm�j��@�W� ��C��v��y��b�Z��E�w)� �X�� ���L��L�� ��M|o��*��=��K�8��S�S� �v�+�L��o�&��J�c���:�~p���0���2�j� �vB��`��l0� ��y���w5��Z4�.� �G� �=����m.]S� �!�%�t�i�,�(�0�\��B���3�G��^���C�v�0��^��f��y�L� �)�m.@FeeKgl�����D��||>�s ��@���:���`��3�,�,��^�L���,�"�ax<||>4�@���L��X�j�3��P����}��O�0�i�)�3�2��<���`PB i1['�3���3�����l �0�3���|�K������6��H��P��U��l�6��a�<� �$�l�8�&��a�,��R�Y�(�T�"�$��m:}�� � � ��e�M�"�v�?��S��\�^�5�}�I��x��yj[)P"{q7 *�wJy~O'�N$vKRt~��U�v�H�\�0��c�h�<�\�3�(�J��l�=�L� �v�N�I� � �`�5�-���*��!�K�#��l�h�:����a9v�O��|�]�6���a�:� �c]:�d�<�#��kKgCtob>S*v �t�O�M�(� �c�C��\���v�P�(���.��.���8���)� ��0� �.� ��t�"���\�8�K�#�$����4��p�E�[�2�\�6�8��@��0� ��E�!�c�@����t�oPeD|j ��L�+�4���l�(����l�u�U�������l�L�`�?� ��pmN�+�������|[�5��\�:�2��O�-�t�S�m�K��(���������p��V�9�\�?� �)� �3��@�#�bz`x��`�E���#���v�Y�<��������=� �x�V�~N�6�u�p�T�x�\� �z�G�4�p�U��y�S�9�7��4��B�$�_�?�3�� �,��_�C�������� � �8������8��0��l~aD����E�+��x���n�Q��n��f�B�,�6��h8�����(qWwa3���C�&�^�@�0���~|q �x�\�+�����D�.� �M�2�<�&�v�Z���L�0���T�8�k�Q�6��Q�:�3����(������}t��)�� �����:�&���H�0� �Y�F�#��lv`qwt�6�%�!�������W�;�+���<�#��x�~�c��p���W�B�:�!���%� ����|�d�����8� �X�F���'H4,B4J7<,R<H2SDTD|��L�<�\�H� � �J�8� ��$��0������@�,�@�.�{�h�u�[��|�K�6��p�a�H�@�.��t�Q�<����p�Q�>���owdtp?�+�+����3�&�� �������"��|0��rbjYn`6�&��t���D�2���l�]�^�L� �<�/�|p`"��O�@�W�H�2��(��2�#�O�<�� �C�3�?�.�i�\�3�#�(��0�� �(����/����O�A�3�!���WK~p5�(���W�K�.�"�D�:�Q�I�G�:�.�#� ������ �����;�,�������$���� ��,� ���`�S�����&����*��Q�C�"��G�?�� �V�G�����T�H�F�<�3�)���#��^�T� ��T�K�X�L�.�&�@�:�� �F�9�:�2�O�@�Y�Q�6�+�)$|��� �&����+�"�2�&�[Q(����H�C�?�6�0�$�,�"�0�)��y�������$��3�,���zvpF@� �$��������6�.���8�0�$��������J�<�,� �8�,��{�0�&���,�� ��� �0�$����xmc�\�f�`�r�e�u�k�y�k��������������t�����a�X�l�c� �� ��ldPIgdtj���vo2�'�� ���.�&�����0�&�Q�G�3�)�9�.���@�2�K�B�!��Y�L�*�� ���+� �@�4� �����I�@�������� � ��5�+��� ����� �#����&��.�!�8�,�2�(���#��D�<�B�:�3�,�o��0�%�E�:�C�<�C�=�0�(� �������� �a�X�~�r�� �8�+���� �L�C�6�-� �������� �<8kh���&� � �� ���$��Y�S�O�D�r�i���r�h�[�V�I�C�����<�8���X�S�G�D�`�\�|�t�T�L�T�M�Q�M� ��pmNHxljd+�&� �����6�4�8�3�L�D��|�~�x���������c�Y�G�@�&�#�m�h���������$��je ��2�,�4�,������� �� ����(�#�`�\�V�T�8�3�D�>� ��� ����"��?�:� ��7�0�9�4�V�K�a�X�D�<���<�8���3�(�S�L�d�\�V�P�Q�H�?�8�&��#����&�"� � �&����P�H�=�;�,�%�8�1�O�F�|�t�\�V���T�O���X�V�#�#���<�6� �� ��3�0���5�0� ��tq � �~} ��������� �������B�<� � �-�*���<�6�� �3�/�X�V�=�6�I�D�Y�\��� � �?�=�/�.�W�V�f�c���Q�L��x�(�#�9�6�Y�Q���fb|x}zv�n�3�-�������l�d�h�f�)�#�D�@���Q�O�E�@�v�p�0�)�G�B�&��7�/� ����x�p�3�.�����xwx|DGWWHERT)�)�6�8�K�M�l�i�k�h�u�p�L�M�9�:�O�K�<�<�6�5���� �O�M�@�@�"�!�Y�X�[�\�Q�Q�&�(�����&�&���"�#� ��a�c��#� � �8�<�`�`�D�C���a�`�������0�3� �$�8�8����34gj#�'� �#�<�<���&�%� �!�'�(�V�X���j�i���&�&�9�8�N�L�� �[�Y�����D�?�(�"�#� �3�0�L�D�6�3�@�?�Y�U�3�-���+�&� �� � ���$� �����6�4�� ������ �UWsq98tq����c�d�0�0�����������C�D���S�T�����s�r�,�-�c�\�D�D�o�i��~���:�6���4�6�~48z{st����+�*� ��(�&���6�:���c�`���m�i�3�.�W�V�� ���� �9�:�J�I�$�$�jm4700Z`|~',�� �� � �-�*�2�0�������������������� ��0�,���������V�S�S�Q��~�.�&�@�<�0�3�6�3�L�K�s�p�#� �0�,����$�$�� �/�+� � �0�,��������*�(���@�>�[�Y�~�|���j�f�������^�X�G�B�FEHKLM<<STHF��P�O�:�<�����������,�0�������[�W�I�H���Q�Q�1�0����U�P� � �HGJK:8����O�P���;�9�,�*�l�j�D�C�i�h�8�7�4�3� � �K�J� ��@�=�~�|�<�3�6�4��� ��$�#�;�8�pt��L�K�#�"�Y�T�����I�H�x�p�������`�_�����������������@�<��� �� �� � ��� � ���hi\\����� � � ��l�i�c�c�`�a�4�6���#�#�4�1�$�$��� � �c�`�*�&�����`�`�.�0�3�1���I�I�����d�d�������F�G� �����Q�T���T�V� � �D�B����� �� ��� ���v||Z[��uw~~����~��9�8�r�r��z�����K�K���gk^b\b|~  >Fot_�`�����c�c�@�D�(�)�� �&�)���(�-�c�f�^�`�����f�h���L�O�.�0�6�<����.�3���s�x�K�N���)�(�l�p�H�K�2�3� ��"�$���0�3�r�t���x�|�W�Y���D�@�d�c�c�c�F�I� � �;�<���i�m�S�T�u�v���T�V�M�K�Y�V�� �G�L�x�v�� �8�<�L�O�5�7�G�E�<�?���.�6���0�4� �� ����1�3�(�*� � ���qq79%'``sq VU����$�'���s�s���I�F���|�|���r�p�����k�l���[�^�.�.�\�]�D�D�*�(�6�4���������� �L�K�.�0���&�#�-�+�\�\�0�0���7�3�W�U�|�z�_�]�r�n���Y�Y���L�G�3�0�ttswMO CC]\fd`\]U2�*�������7�2�I�G�����n�l�H�E�8�3�^�\�(�&�l�j������~���p�o�\�W� ��lj`` ��������� ���D�=�u�l�����P�I���S�Q�T�S�T�X�����]�\����� �&�$�9�9���,*gmlpmmjp��!�$�����:�7�u�u�x�x���L�K�>�9�G�B����� � �7�4�9�:�����0�3� � �7�6�D�D���U�X��������8�:�t�y�!� � � �LLywtvX�X�z�y�t�t���v�v�C�C�Y�\�3�3�\�[�i�i������ � � ��� �������������&�(�0�0���8�:���M�K�`�^�5�3�'�(�����f�f�p�p�5�5�S�Q�7�3���i�l����������hl�������� � ���Q�S�D�C��� � �B�?�9�6� �����J�I�r�m�c�]�v�r����|���+�*�Q�O�6�5�l�h�����e�\���������p�p���� �B�B�G�G�*�,�b�`���0�.�~��9�6�I�D�-�+�@�<�6�4�����8�2��|���X�T�0�0���$�#�]�^�������������.�(� ��X�U�+�(���� �����6�5���H�L�&�$�\Zsqdh77XW74<;=< ��U�S���z�x�K�L�(�(�V�V�:�6�t�n�v�s�y�v�����,(����m�n�W�S���<�8�0�/���� �sttuWW !DDjj]W{ �� � ���O�L�7�2�.�0�O�O�<�@�=�;���l�l�z�y�f�c� � � ��� �pujmDF�hj @F PP����8�9�_�`�1�6���I�I�G�G���x�y��|�4�6�?�=�f�f�?�;�<�8�|~pt&�&�"���� � ���0�0���s�o�����������3�3���&� �uv;�<�������L�M�eg#�!�G�F���S�T�)�*�I�H���\�[���<�:�,�)�D�@�x�p�d�`���p�j�y�v�\�W�3�2� ����`�]�����*($ D> MHSP~zMF~6�4�&�&�A?Z[``cb&� �:�8���4�,�$��O�J�5�3�W�V�n�l�������B�<�)�&�5�.���������e�\�����3�-�}�x�P�L���������r�m�*�&�\�[�$�#� � �s�r�0�0�:�:�� �G�F���4�4���2�0�����3�0� � ���zlj||pm`^.�,�T�V��� ��L�H�0�.���V�T�J�L�O�P�v�v���`�]�h�f������� � �V�S���NMporthjstXZPO]]qs8: ��L�M�=�?�&�$�)�,�� ������2�4�]�^���C�D�:�=�F�G���G�D���?�<�V�Y��������#�#� �� ��I�G� � �H�D�6�8�M�L�F�G�[�[�O�K�Q�Q��� � �O�Q�p�u�I�I��#���<�<�L�S������ �+�2�� � � �\�^�f�f���.�0������� ��L�L�*�0�Y�Y�L�P�0�3�9�:�*�,�wzw}HM<>0�,�������2�2���*�)�����#�$�����.�0�0�3�2�0���r�r�H�E�^�[���������0�+�u�n� ��J�C���@�<�f�`�����n�p�r�o�$� �ywOO �� ��������zos@@MLtxvx� ���,�+�ml-0aaq�m�S�L�3�0�F�E���,�+�Q�O���l�k�,�*�������L�K�i�i�+�(�"� �3�0�)�*����`�X�� ���������?�:�O�Q���� �(�%�.�,�.�,�&� ��� ��� � ��E�A�%�"���)�#���D�B�ZWH�H�m�l�d�a�`�Y�:�4�M�G�:�8�<�:�C�?�I�D�[�V�8�0� � �8�8�C�<�v�t�r�q���T�P�J�G�����5�1���������+�&�I�E�����mj87tt'�%�deY�T�"��P�I�<�;�<�:�g�d� ��5�.�B�:�O�L�� �$� � ��c�^�������)�&���3�,�C�@�l�f������|�&�&�c�c�&�"�����/�*���z�|���d�a�����(�(�S�S�3�0�$�$�����!����3�2�]cdhKL`_JL"'~����Y�X�B�?�&�&���T�U�<�<�~�|�@�D� � �h�f�s�n�\�\����}���������<�<�B�C�c�a� ��l�i�&�#� � �����#�&�t�x�\�`�i�l�������+�(�RQ]`|$� �����l�k�@�@���^�`�l�j��������������������������� ��}~CGjmjjYZ!"DD|7=ps#�"�����������8�;�D�D�I�H���]�`���j�h�0�0���������a�b�Q�P���5�6�����!� �� � � ���������?�@�I�J�a�c�2�5�����#� ���=�<�8�0�0�.�V�T����x�x� � �����Y�X�<�8�#�%���:�;�{z>A`]MSgg$�$� ��,�,�J�K���+�(�0�0� ��3�4�p�p�� �S�T�X�V�$� ����G�B����� ��4�0�Y�T���DAHM��O�O�f�c���O�Q�<�<���j�h���c�`�h�f�X�P�"����������<�6���}ywBAjoss#�"�,�(��y�����z�v�p�l�\�T�K�F�d�^�t�p�K�D�7�5���2�3� ��G�D�����5�5�`�d�s�w�I�G�#�$�@�@���%�#� ��G�D�9�9���G�D�4�5�����&�&���Q�M�O�K�P�J�5�0�.�(�jgieljmjd`|xegV�S�c�a� � ���-�.�S�T�������w�t�<�:�^�Y�z�u�~�y�l�h�������������4�3���+�(�/�0�K�K�����y�t�4�3�������mlQT/�.���!� �RR � �P�S�j�j�u�t�G�H�R�U�W�V���"�� ��#�&�(�'�0�0�S�O���V�W� � ����� � �O�M���D�@��� ��,�'�Q�O�!� ���J�H�0�*���i�e�3�0�llcbZXSP����c�`�G�D�U�O�l�f�0�+�L�D�Q�L�3�0�%� �+�(�,�'�f�c�|�|�4�3�6�4�(�(� � ���(�&�6�8�p�p�i�i�S�Q�D�D����uz� ���?�<�G�C�=�:�$�$���� �����5�4�|�{���@�A�&�&����������W�T�� ����������� � ���m�k�O�I��|�4�4�0�6�H�I�3�3���P�L�*�)���/�2���`dvu�� � �D�B�����������l�n���V�X�$�$�����*�0�E�D�;�8�D�F�D�D�K�G�H�F�P�O�|�x� ��Z]di|������wx|}lj ��/�,�I�L�����k�h�D�@�`�]�i�d�8�3�<�8�6�3���������������x�y�L�I���0�+�(�$���TR^Xcd&�%�3�0� � �3�0�b`��?�?���\�^���8�7�.�/�C�C�%�$���}|Z[|~&�"�u�u�[�V�#�#�� �)�,��������<�:�L�L� ��0�0�0�0�����|x|-1y~P�O�:�9��� � �(�&�w�u������� � �����4�3�"�$�B�@�����'�)�\]HJ77SWTSegjmmm&�#�D�C�����R�P�� �8�3�=�?�#�#�H�I� ��<�@�� �@�@�(�,���4�3�A�B� � ����� ��11,�(�)�,�7�8�f�f�i�k������ �"�(�04TS%'jl*,0�1��� ��+�-�0�.�%�#�Q�P�)�(���W�T�p�s�|�z�D�C�G�B�������>�8�F�?�H�D���a�]�<�8�^�\�������M�I�)�(�~�|�n�k�;�<�c�c� �$��� ����<�<���DGKJCA}+�*�<�=�<�<�� �3�0�s�s�����������������v�u��~��������� � �]�^�o�m��|�I�L���������A�C���S�O�������9�<�f�d�@�@���P�S�v�x�Q�V�������f�f� �#�ciJM@H~~��@�@�&�$� � �(�+�Q�Q�0�0�D�B�D�B���l�l���t�m�,�-� �$�� �O�Q���[�[���$�(�H�I� ��im��01:<� �������%�$�'�(�����`�]���3�2�d�c�T�T�l�l�G�D�-�,�f�f�<�<�����@�<�8�8������� �� � ���� ���������vzll,//3#� �C�B�B�D�#�#�`�^�W�U�p�p�����������^�\�Q�L�4�0� �#�3�0�������%�#�5�4�s�p���P�K� � �UT[XtrKHll}~I�J����������4�3�J�M�B�D�<�@�C�G���6�6��� � �Q�P�h�c�:�8�x�x�m�p�K�M���x�z�]�\�S�V�� �B�E�� �� ���,�,�M�M�p�s�0�-�S�S�S�S�������a�^�����6�6����������D�F�7�7�.�.�V�S�(�'�� � � ��~���v�t�^�_���1�2�\�X����� ��?�<�T�V�u�t�h�h� ��3�8�3�3�^�]�p�p�?�@���5�8�[�Y�9�8�%�%�,�-����������������� � �gjda``ln �����������?�?�� �K�L�O�L�d�c�H�G���B�=�$�(�E�C� ������@�@�B�C�<�<���V�U������Q�L�f�h�� �h�h�� � � �"� �����������`dGK'*)�(�� �jm||8:=< ����3�3�����v�s�6�8��� �����|�|�������|�|�o�m��������)�,�C�D�2�4�2�6�J�L���2�3���9�4�f�f�P�O�2�0�W�T�,�(�"����}��sx{ � ���������4�3�+�*�7�5�(�(� � �]�\����"�!��� ��@�D� � ���F�D���z�|�S�V�(�,�?�@�U�S�&�$�@�B�,�3���$�*�!�%�:�<���0�0�������� ��#�&�2�0�O�O���x�y�<�=�V�T������wvjg@@0�0���2�3���$�$���&�'�Q�O�$�#�uu����L�P�6�4�?�<�Y�V�������0�)�1�2�deqt������$�&�-�.����r�s� ��M�Q�����D�F����������Z]9�7�-�*� � �������b`0�0�-�)�����D�<� ������� ��I�G�~�|�,�,�4�8������������0�,���;�6��� ����x�u�:�9�9�9�7�8�8�4� ��8�4�#�!�����<�<�W�U�mo � ���������4�2�F�C�����\�X�l�l���k�e���H�A�B�B�2�0� ��`],/FG)'ji``~'*�� ������H�H�l�i�D�C�O�O�i�k�i�l�`�a� � ���&�(�#�������� � ���&�(���3�0� ��O�M���������y�z�=�;���6�6�P�P���O�P� � ��� ����$�#�����������V�R��� � ����xx#�&�<�=�l�l�������|~lk��3�1����(�&�]`ut���(�+�z�|�Q�T�����\�\���*�.�� �ji|��O�K�����f�h�M�M�M�O�J�M�h�h� � �*�,�����)�,�X�U�.�-�������-�,��������������6�5���y|w{MMgk� �)�+�`�d�(�+�V�V�^�`�^�`�u�u�`�`���d�h���z��<�<�Y�Y�R�R�y�x����� ����-�2�(�*�%�,� � � ����������gmKP������(�+�4�8�i�k�S�P����� � � � �?�:� ��T�T��� � �0�0����� � �@�?�J�I�d�c�3�3�&�&���0�0�F�@����3�3�M�L���_�\�Y�X���������d�a�$�"���#�#�(�&�� � ��$�#�|}zei}��� ���3�4�)�,�)�)�-�-�(� �4�0� ����&��"��!��+�&�(�&�3�,��������z�O�I�I�L�������T�T� ��C�C���&�&�S�P����� � �h�h���$�$�,�0�&�%�4�1�#� �8�<�3�4���������@�B�*�,����a�_���V�S�S�P���(�$�4�4���dd 99XZNOC�B�����@�C�H�K�����i�h�<�<�qtc�^�P�J�s�n� ���y�`�Y�9�4���TU����2�6� ��F�@�9�4���8�6�6�5�)�&�v�v�D�D�����`�`���?�B�m�n� ��WZ{y-�0� ��`�W�#������3�4�"� ���0�,�����)�(�������&�&�!��6�:�&�#�%�$���L�L� ��,�.����� � �qwJKdeZYXZPMb`���3�4�(�'�����"� �[�\�����s�u�b�d���~�� ��./oj�� � �<�<�@�@� �����?�;���&����� � � �8�2���������\�\�u�t�u�u�,�,� � �;�<�l�h�u�o�O�I��������(�$�����,�,�����#�(���=�:�~�~�l�i���\�[�V�S�?�<� ��0�+�� �=�;� ��� ���~};A)(@@OP:<jidg�� � �V�X�L�I���8�9�B�F����������L�M������� � �8�8�����-�,��� ��)�,�3�3��}���������l�n�����#�$����� � ���x�z�.�0�K�O�� �4�8� �$�� ��������!�������� �suGJpssp ����M�Q�R�Q�Q�V���������z~de)�&�`�^� � �9�<�����5�4�0�4�r�v�e�h�\�]�Y�[���c�e�����$�,�s�r�7�@�T�X�E�G���@�?�$�(�#�&�|~qugmux6�:�<�<�w�z�x�|�f�h������ �� �c�g�� �+�0���#�$�� �D�D���z�z�s�t�f�c�,�+�����q�p�+�+�"�$�Y�V�+�)� � �@�:�x�u�����f�f�G�E���6�1�l�k�<�?�&�(���0�3� ��ge|x?@|zqqWX1449@�@�?�:�k�i�Q�Q�Q�T������|�f�a�����v�s�+�)�0�-� � ���������y�v�>�<�}U�X���8�<�NT$(%%@D;�=���5�8�|2�2�W�U�?�<�|�p� � �&� �M�J�u�p�����OOYYwy������`dH�H� @�@�G�L�H�L� � �p�l�V�Q�����w�u�D�D�#�$���c�`�������9�6������`�^� � �0�0�W�V���� �"���Y] � �#�&�����x�z�.�0�&�(���$�(��� ����s�r���\�\�~xw|{��?�:�H�D�pu#�#�v�s���(�&�������?�=�������r�p���3�4����y ��"�"�l�h�I�H� � � � �� �����U\MSytw`b�� ����T�T�G�J�8�<�,�4�$�,�&�,���� �����E�E��#�2�3�.�2�D�G�H�I�9�8�C�G�[�a�|�|���0�6�U�Z���`�`���[�]���Y�\��� � �#� �,�&�����(�)�������<�@���� �QW\`psz|x|����#�#�8�7���������>�9�L�G�\�Y�I�J�:�8�d�`� �� ��ghZWHG<<��`�`�n�m�������e�a�9�7�$�%�@�<� � �P�K�U�R������� ����V�U�]\KDZTb`RP ��C�@���^�Y�������t�p� � � ��������BG$�$�MGso8:WZZ[hg��2�.���e�`�V�T���@�=�P�J��� � �S�S�t�s�x�u�������T�Q�����~`�^�S�U�<�@�������!� �3�0� � �����m�l����� � �3�.�;�6� � �#�#�r�t�.�*�?�<�V�W����� ���"�#�I�L� � ���(�&�8�6������|�|�|���$�&�l�m�!�#�C�F�dgjoDKvz��@�=�m�r�dk�������\�\�m�n�<�<� �����L�J� � �Q�O����}�S�O�Z�V�����'�#�7�4�9�9�,�(����,�,�C�@�3�0�^�`��� ������"� �@�9�����~|]]o�p�tydi� �z�z�������2�0� �$���%'K�K�B�B�.�/���c�`�G�F��� ��edyw����4�0���m�j����mp ��0�.�P�P�f�d�,�*�6�6���������+�+�6�7�Y�\�����)�+�<�?�� �i�d�%� ���+�,�#����������f�f�)�(�������\`jh2�0�����,�.�,�.����$Q�Q�����5�3� � �����h�i�T�V������������ � �i�k��������quMSy~ee0�0�#� � 88>>ml|yD@LHON ������������Y�Y�,�,�+�,�^�]�a�]������� � ���6�8�,�0���Y�Y���<�C�l�l�Q�O�$�"�#� ���Y�Z�/�.�d�f�&�&���#�&�vv||� �����8�3�����3�0�8�6�(�$�J�H�3�-� � �&�$�6�4���V�S�|�x�q�l�s�m�[�U�3�3���Q�P�#�!�S�P�3�,�������3�/���Y�S���v�p�<�8�Y�V� ���� ����w|im@DKP]`TXHO\�^�d�h�E�K�^�_���+�,�[�Y�$�!�����I�D�xz@�?���� �c�b�H�E�[�\� � ���\�\�'�"�C�>�[�Y�c�`�q�n�T�P�-�0��������7�9�S�S�i�m��� ���� �����@�D�0�2�]�^�<�<� �� �� � �����T�T�@�=�~{{qt�� ���� � �����~����O�Q�L�M���_�`� �!�F�H� ��E�G���(�)�����\�`�X�Y�<�:� �"�89u�x�����#�&�z~MS 4;.4ad~�� ��,�1�� �0�4�W�]�H�K�p�s�8�8�V�T�:�<���V�\�2�4�?D��dhwy������3�5�h�l�B�E�a�e�@�C�3�6�8�?�������p�p�q�s�c�c�t�y��������z~450�4�� ���uwHF~~2�3�]�`�������@�B�[�\� ����| � �T�Q���3�3�L�M���G�H�stH�D� ��wt��������:�:����w�s����O�K�����a�Y� � ���(�&�����+�.�,�.�v�x���:�<���p�m�+�*�f�c�0�0� � ��� � � ��������G�G�F�H�#� �8�7���4�3�D�B�8�4���0�,���P�P�@�@�p�l�\�X�WWqv������������(�&���0�3�����$�*�������`�a�.�-� � �����"� �gh � � � ���#�#���(�)�v�v� � �*�+�"�&�B�C� ������qt�������0�0�8�:�<�?�I�L���c�h�a�a�S�W�����&�,�� �O�S�h�c�#�%�B�B�����~~ptHGggpmTS`\� �D�D���L�K�����+(  ������s�m�h�d�����#� �J�E�D�D�� �#��I�I�����}{0�5� ��L�M�[�Y�@�C���PQ � �M�O�&�&�Y�X�#� �p�l�U�N���K�H�o�l�#� ���F�@�D�?��� ��0�0�����@�?�C�C�0�0�0�-���n�o�C�@�$�&�(�(�V�T�����*,^�^�z�~��� ��S�U�F�H�����P�O�L�L�u�r�v�x�������K�I���wy1287ej(�+�_�X�|�|�z�v�l�i�#� �V�S�}|����(�&�F�D�V�T���ts&�"��� � ��� ������2�0�3�0� � ������#�#���X�Y��#�r�x�=�B���\�^���L�P���@>pqvyq�p����� � �����tv-�(�%��0�,�m�i�;�6�:�:�� ���0�/�O�I�J�I�]�W���j�f�e�`�f�a�`�[�Q�I�Y�Q�jh{l�f�|�v�j�f�#�!�~~\W�������~�S�P�o�l�^�]������� ��h�c�(�(�wy ��M�M�uy$( � � � �+�+�H�H�����u�x���t�t���=<�� ������L�M�|��#�#���o�p� �#�����l�k�Y�\���d�f�M�I� � ����� jmFJtw[�[�4�4���0�,�]�[���.�.��� ��B�?�ml8�:�����ACY�V���x�p����|�\�V�\�\�,�.������8�:���2�0�2�/�8�4���-�0���8�2���r�u���������� � �����abLR,0��3�3�<�=�J�K���������<�=�r�t�&�&�5�<�f�l�d�h�z�|�M�T�^�`� � � ��B�D�����dg),DH � ���z�~�����/�0�����3�5�<�?�L�M���?�@���<�<�-�1���x|13|xgdPOwq|�x�������������7�9�f�c���K�L�P�N� � �r�n�D�C�G�@���P�O����������L�I�\�`�������}zde��6�3���F�D�`�Y����6�0���3�0���a�^���tt��*�'�sq:�5�T�N�S�O���^�^�#� �B�@� ����Z�X���@�<�� �� ����@�=�K�E�l�i�T�S�s�t�e�`�&�"�����4�0�(�#�0�0�������01xz�� ���� ��"����3�3������u�p�<�;�x�x�p�s���@�?��|���9�6�=�7���P�N��� ����#�����"������i�h�Q�K�9�6���#�����(� �"����O�I�����3�,���xwtq~|gd��G�G��� � ��������$�%�������p�l�������DD9�3�� ���F�?�*�&�s�l�]�Y�|�u�i�b�\�S�@�<�l�k���3�/�%�$�� ���|�u�u�n����x�L�?�m�c�)�&�u�s�Z[~|~zz~~������� �U�T�F�D�:�6�������+�(�(�#�,�&�D�@�F�?��� ����� �:�8�t�p�ws�������������� � � ���-�,���?�8��� ������|�t�#��#�� ��(�#���<�8�h�f� ��:�9� � ���W�Q�o�h�0�(� ��>9GD�]\��0�,���r�s���"��2�0�&�"���)�(�e`db�� ����db}~ih����Q�O�Q�K�{�v�������������H�F�l�n�O�Q�3�.������������<�6���f�^���m�k�(�)���&�&�#�#�(�$���pqGK�����������~�)�(�T�T�v�y��� ��� � �$�\�`���������0�/�e�e�~�~�O�K�H�F�� ���C�C���3�/�9�6��� � �,�&������ � �.�,� ��H�D���8�5�$�"�������O�P���(�&���abttHHH�B�$�"��� ��3�0� yx,�,�� ���?�=�TXH�I�3�4�+�.�C�D����"�#�"�!�,�.�F�D�&�$�6�4�M�L���� �$� �#�#�I�J�+�*�MNpqlq��6�4�p�p�����`�^�&�#� � �),��eaKG���� ����T�S�c�^���i�h�<�:�#�#�m�i�2�.�]\��i�a�]�^�[�Z���Q�L���D�H�E�@�f�c���:�8���,0 #�&�P�O�����]�\�|�x�@�B�P�N�v�v�����|�|�u�t���B�D�d�a�P�L�����o�r���+�*�o�p������������aa��=�7�?�B�p�l� �� � �i�j� � �� �4�4�� �J�L�"�#�B�E��#���*�*� � ���$�+�� �:�@�V�\�J�K�@�D����V�Y� ��3�8�3�6�� �lt@@� �M�O����� � ���5�2���� �TXS�Q�� �����������O�S�h�f���h�m�`�f�T�U�h�h�L�I� � ���,�0�cb/4 ��ddtw����HMvw��^�\���l�m�a�]�M�L�D�<�W�Y�� ���D�H�V�X���I�L���5�4�4�;�29�,0hp����G�K�|�~� � �]`0�0�����Y�\�'�(�#�#�B�C�=�C�f�f�d�d���!�$��$���U�W�\�]�#�(�����K�O�?�B���<�<� ����9�6���F�D�MN����;�<�n�k�=�?�V�V�\�Y�^�\�+�,�I�L���.,}|,,����F�?�:�4�� �� �L�I��������(�)�)�'�����s�s���R�Q�~}pqtvde�� ��F�B�c�c����(�&�B�A�0�0���|�y�n�o�3�3�G�H�E�C�����mp � �� �h�h�c�a�T�P�c�]�Q�K�G�H���t} ��Y�\�� �/�6�<�=�1�2���J�J���p�l�����I�G�l�l�c�a����� �� � ���0�.�M�M�(�,�8�6�������<�6�.�,�� �tx}��"�"�S�S�&�*�����������������F�F���a�`�����C�D���|�{�x�v�D�E�]�]������ �����T�X�,�0���)�,����������� �`�`� �$�������T�V�G�K���x�x����� � �$�$�HK_]D�E�����gk&�"�.�0�Y�Y���qqrt����lm������/�3�����z�~�h�d�O�P�7�<�@�G�`�b� � ���@�C�6:KPY]de<=����P�O���.�,�#�%�'�+���2�2�.�0�J�L�$�#�����P�P���������V�U�0�2�PSKTbell����HL � �wzZa��0�0����|��c�c���������M�M�`�a� �!���p�n�i�i�`�a���#�$�}{GNHNPP@�@�����f�e�}|������� ���f�f�`�_�<�@�O�M�f�h�]�^���0�3���B�?� � �T�S��� � � ��hgGGTTxztsxz��@�?�;�:�<�8�P�L�X�U�����������3,����S�M�}yw`]ts6�4� � �>@~swsq�� ����+�*����� � �e�f�@�@�<�=�o�m�l�d����z�K�I���@�@���`�X�V�S�����������������(�(�$� �B�B�L�K�G�D�h�h�T�S���L�K�"�(������(�.��#��� ��� � � ���0�3�B�D�c�b�i�h�j�k���(�(� � �0�0������ �U�Y� � ���~~01DGDD24 ����H�D�S�O�S�O�=�=�f�c�W�V���9�6���O�M� � ��� ��Y�[�)�(���)�)�B�@���u�r���mm|{HD:�7�C�B�����d�`�������HED>��������p�j�@�;�r�p��~�#��$��,�%����|�U�R���X�S�,�+� � ���Q�P���������p�m���������5�:���:�<�||-�'�l�g�u�p����x�G�H�^�`�9�6�k�h�T�Q� � �7�5� �#�����moTWoq������&�$�d�d��~�������������3�3�I�K��� � �)�(� �$�"�#���$�#�L�M�6�6�@�?�(�.�����h�h���k�g�0�.�3�3�4�2���������tu6�3���-�)���zy � �D�I�k�k�S�U�s�v�F�D�����I�I�P�P�0�/���^�Y���?�<���I�H���W�U�:�6�� � � ��������0�,�^�Y�81XTjj���T�V���p�n�+�,�M�L�P�O�6�3�U�O�7�4�0�.�������l�p�W�T�(�$�6�5���C�D�#�"�ge��!� �� �,�&�U�Q�a�\����o�i�����v�q�@�?�O�M�yp� �WS� �8�4�{x����5�3�w�u�������S�T�d�e�$�%� � � � �*�(� �$�*�0�����j�f�;�6�u�s�2�0�,�+�9�8�--X�X�6�8���l�i�� ���n�l�$�$�a�f�l�p�)�,�0�6�(�*���H�I� � ���#�"� � �$"dg� �&�'� � �����O�O�K�J�����<�=���u�z���?�@�\�Z� � �,18�8�:�;�&�#�8�6���0�+���T�S�J�J�B�@�#�!���^�\�a�\�(�*�������L�L�#��GHjigg����������+�+�a�]�����f�a�T�O��� ��F�@�4�2���������5�4�h�h�0�0�s�p���-�,�7�6�=;WU'*WWf�`�#�"�����ZZ|<<~~,�,�#�#�y|{�y������e�f� �!�z�~���:�7���X�X�u�t�]�[�D�D�^�Y���*�)�X�W�?�<�5�2�~77tyhljjln����4�8�Y�\���,�.�� �U�T�l�l�t�v�v�x�P�V�K�L�s�p�]�[���$�#�&�(� �!� � ���G�F�4�4�\�]�� �<�;�D�@�*�,�H�J��� �#�qp>@f�f�=�B��� ������.�.�Y�Y�s�p�����������p�u�H�G�<�<�&�&� �#�>�?� � �OS swtuP�V�8�7���p�t�S�Y���+�-�:�9�a�`�a�a�X�]�9�<�0�0�,�.� �� � ���)�+���������.�0�#�(�$�(�����(�(�������������D�D���������,�,�t�u���K�O�D�E� ����~� �u}HMmtdgW\]a op 8<� �e�h�G�H���=D������L�I�������������� �O�O� �!�#�$���z�z�"�#�9�9�J�G�6�5�s�u�#�"�����"� ��������� � �#�&�T�U�wu��&�(�1�5�GH *,YW+-<�8��� � ���f�d���s�v�l�m�l�l���!�%�x�z�f�k���������&�$� ��S�Q�5�0�ed$�#����� � �s�p�v�v��!�h�f�c�`���*�$�c�]�����m�i�`�\�8�3�,�*�OK � �/�-���sq���� � ����� � �3�,�(�$�,�-�I�F� ����*�&�(�%�\�\�7�4����y�@�9���l�o�����G�I�p�p�|�|�W�V�4�2�E�G�,�,�p�p�K�J����� �������� � �I�H�� ���#��D�=�V�T����|�����������T�R�\�X���]�\�l�i�$�"�0�/�����V�O���Y�V���"�"�0�-�$�%� � �I�L�TX � �Q�T� �"�c�d�H�L�� �:�<�B�<�������p�l�-�*�������spQT �������� ��������lo:�<�����s�r�G�C���@�;�<�;�a�[�;�:�����0�,�"��#� �&�$���|�v�n�k�@�@�.�0� � ���?�<�k�g�h�d�X�Y�r�m�)�)�T�V�:�;�0�.�;�:����� ������(�(�65:�9�3�3� � ���4�4�����(�$�tvpslm6�5�#�"�V�X�2�2�l�j�n�k�D�A�W�V�&�(�������"� �Y�U� ��� �SO������$�#�;�:�<�:�f�c�0�0���I�L�:�7�#�"�(�'�}~ � ���#�&���rt� � �$�Q�R���(�(�����h�l�x�|�s�s�h�h�L�K�M�L�`g)�.�����j�p�� �xxedvv��PS � ���������c�a���Q�Q�`�a��� ��L�L�]�]�0�2�x�v� ��(�&�� ���� �-�3�P�T�+�*�0�3�o�o�F�H�����W�S� � �Y�[�*�%�<�8�����c�c���p�r�;�=�4�4�3�8�&�#���8�4�**LPH�E� � �S�Q������������������ipY�T���&�$� � �� ����������� ������� � � �x�x�j�j�$�&�D�B�)�+�C�@�h�h�\�]�&�.�)�,�<�8�*�+�=�<�������L�K�B�A�7�9���������W\��LR<?\`�� � ���,�0�a�d�L�M�O�M��� � � � �Y�X���W�V�������o�n�}yyOM`]|www ef��J�L�<�<�G�G�r�p�k�l�"� ���\�[� ��� �e�`� ��|F�C�T�S�.�*�*�(�0�.�M�I�5�-�f�^�I�B�8�4��� ��vs(�$���<�?���$� �����&�"�&�'���|� �� �� �tq)+pkKHD�@�m�l�=�:�j�f�U�T�i�d�I�A�.�+����.�+���%�"�O�M�U�S�X�X������� �1�-�B�@�.�3����*�)�&�&�\�\�`�c�0�.� �#�I�K�Q�T�F�D�:�9�?�;�)�(����� �� �$� � � ����"� ������������:�6���@�@�$�$�6�6�B�@����*�(�������&�$�G�E�J�E�fdZPmi+�(�"�!���d�c�r�m�Q�O�l�l�|���� � �� �X�X�f�i�O�Q�r�p�����0�/�Y�\�`�^�B�?�O�Q�H�E���� ���������!�$�#�#�K�K�,�.�Y�[� � �\�[�X�[�+�-�4�4��"���������i�f�V�T�`�[���x�p�G�D���wt]�\� � ����� ����M�H����� ��<�:���c�a�����4�1� �#�0�.�� �(�,�L�K�6�8�=�?���$�$�$�$�UWF�G�&�&��� � �e�e�<�B���"� �,�&�������,�(���i�`�����c�^��� � �4�0�$�#�����k�i�_`\`WXkp|}p�n�#� ������|�=�<���B�?�S�Q���l�m���'�(�����Y�W�&�(�`�^� � �c�c�`\edxw`eNR � ���i�h� ��`�^�����P�P�(00�0�$�%�L�L�r�s�DF������T�T�Q�O�`�^�X�W�3�.�@�?���p�o�c�c���\�`������!�,�,���#� �����s�t�a�c�,�+�|�|�������+�,�T�S�&�'�V�W�u�u���\dRY"$����� ��.�0�L�O���"�#�ls=�:�c�d�8�:�0�.���4�0�9�8�\�X�c�`�A�?�������������?�<���0�0��|���~��[�[�`�d���-�.�����7�4�|�|�M�T������� ���<�;�����D�C�p�m�+�)� � �D�C���w���WU@�B������ �J�M�Y�`�6�=�FKjr=�=�l�l�K�O��������������������uvs�r�s�t���USnwADqt�� ��V�T�v�s�k�i�f�a�����������`�]�Q�O�,�*�@�<���V�Q���<�<� � �0�0�::gmlp+�+� � �M�M�M�L�S�S�i�h��z�F�E�~�|�`�a� �$�b�a�������|�x�@�<�RPtp`]*.Y[<A-.74��<<(�(���E�E���\�\���&�(�����V�W�X�\�����B�?�1�.���`�^�����i�h�.�,� � �4�0���������I�I�z�y�H�D�G�B� � �C�D�5�5�ghC�B� � � � �NO"� �jnijXUtqPU@B��O�Q�,�3����� ��&�&�T�S���S�T� ��`�c�J�K���@�A�F�G���0�2���S�S�������M�K��� � � ����f�\�E�@���U�N�����U�L�� �I�E�1�(�K�G�&��<�8�B�;� ��d`]\>7gg*�#�qmZ�T�!��C�?�J�F�3�0�0�(�z�z�:�6�^�\�������F�?�� ���n�f���G�E�:�4�<�8�<�6���2�*���� �����:�3������ �;8V�Q�PQvtO�G�T�P�M�K�����X�U��x���S�L�����a�Z�9�8�<�<�?�?� � �4/cZXSHDml94 PL � ��������^�Y�\�X���l�h�l�f�i�c��|� � �!��i�h���z{��� � �&�$�A�=�p�n�=�;� s�n���+�#�I�G�x�p�Q�H�,�(�Y�V�(�(� � �,�)�� ���]�Z�S�Q� ��G�F����� ��]W}y84��yvpgzw ��zs`[`]=:&� �T�R�����k�m�X�W�c�c�`�`���d�`�z�x���|�|�%�(���=�<�@�C�.�0�4�3�������||3�0�{{^�^���4�2����� � �;�8�����p�l����v�s����� ������l�l���<�<� � �[�Y�D�F�x�v�@�<�"�&���u�v�T�W���#�(�T�T�H�H���(�+�&�&�mq��_�c�����ij}<�8�L�D���������}~y~T�S� � �r�p���9�4�z�x� ��xt8�6�T�L�<�8���d�`��|����=�;�\�\���3�0� � �a�\�J�I�Q�M���G�C�[�Y�i�i� � � ��� �@�@�� ���� �������&�*��� � �����M�Q���6�6�J�M�M�U�`�e���C�C���u�z�+�.�RULP"'� ����������*�2�:�<�*�.���� ������$�v�|� ��M�L�A�G�5�8�-�0�0�2�&�&�� �W]hlptO�O�[�\�6�:�I�L�p�o�*�.�Y�U� ��:�<�c�c�+�)���f�h�a�c�W�X�r�v�������B�F��� � ���|�|�]d~fj� ���PX!�#�:�<�B�@�B�=�J�I�s�s�,�0�6�8�`�c�B�C�m�o�|��c�a�y�t�~��:�?�r�t���������XXSS44EF89�+�(� � �f�f�0�0�=�?�o�n�Q�Q�x�x�3�3���5�6���$�&�K�K� � �gj~mm#�&�FHM�K� ��c�c�m�m�a�c�s�p���h�i�x�z�?�@����� � �V�X�a`cbKMbeZ]il ����k�l�T�Y�Y�[���c�i�u�y� � �+�,�dg[�Y�,�,���D�G�U�\�L�M�v�x�p�r���.�0���� ������`�`�=�<�V�W�(�)�>D%,D�G�L�L�Y�X�����I�O�2�8���5�8�J�H�����?�?���jjB�@�� �� �2�2�Y�V�G�C�8�6�L�L� � �U�P�5�0���UR� �)�(�F�H�@�@�� �E�H���X�\����� � �&�$�Q�Q���G�D�4�2�����;�:�<�?���������c�h�M�O�U�T�f�h�2�6�x�y���,�,�adDD6�6�0�2�!�(�.�,�<�?�`�d�:�?� � �� ���,�0���@<� ��� � �������US:<��2�0�F�I���8�:�D�H�<�<�]�[���f�f���I�K�k�h�r�p�J�I��#�(�+� � �� �qp�� ������0�0�)�(���.�+� � ���c�^�I�G�Q�N�-�+�����y!� �@�D�����u�z�<�B�2�4�?�D�s�t�c�i�����D�D�F�I�p�s�E�I�Y�]�6�7�5�4���� �����%�(�@�C�����\�]�5�8����8�6�ps��.�,�� �v�u�`�\�B�C�D�E�z�|���qq&�(���w�x�o�l�Z�\���������c�f�?�C�V�Y�����`�c��� ��z~jjll"�$�U�V�*�.�,�-�����0�6�Y^� ���G�J�:�@�m�k�����#�$�|�}�������8�:���X];�=�]g*,%(gjgo��'�,�� ���n�l�p�l�?�@���?�<���|�{�(�+�>�@�I�L�����v�|�`�`���Z�]��� � �����a`�� �$� �&����������8�6���W�^���,�/�jm����<�D�!�+�p�t���"�#�=�<���0�0�D�G�Y�\���O�O�����Q�V���x�u�l�k���������$"��\�^�<�?�$�(�$�'�a�c� � � ��v�x�0�4�\�\�G�I���������F�F�W�[���� � ��\�^�G�L�.�0���z��(�(�e�f���$�(��� �����HM OOW`�������<>s�p�I�D�3�5�,�,�)�,�$�&�\�\�P�O�~�|�L�K�F�@�\�Y�\�W�$�#�`�]�)�(�������beAC<@vz ��| ��� �r�s�B�D�\�`�6�8�l�n�@�D�)�(�8�<� � �&�+�����(�(�����14CD�2779twvw������P�Q�5�9�� �� ��"�`�e�Y�\� �&�qxTZx~W\!�#� ��,�-�����3�4���=�=� ��0�.�,�(�����@�C�<@XZ�����(�(�TT �!���h�d�i�l�:�8�]�]�������������k�m�2�3�����?�9�����"��p�i���u�l�@�<�����������adddDG.4~����Y�Z�&�(�<�C�G�H�����c�d���l�l�#�!�l�l���I�L�@�=�����)�*�Q�T�n�p�������O�M�h�i�r�r���r�n�����|�|�(�'�#�#���+�,� � �S�S�9�7�<�<�G�M���ba|}��@�?� � ��������,�.�(�&���������f�a�U�T�\�^���������Z�V�&�(�����G�D�D�C�wweh � � � �@BVX]Z����&�#���&�(�`a ��S�S�����mp!�#������-�0�H�G�z�z�8�6�i�h���h�h�,�.�<�>���(�&�*�)�(�)����(�,�dg���� � �a�a����$��$�V�V�I�G�i�k�\�\�"����D�F�����2�3�$�$�*�+�\�^�������.�/���D�C�&�&�����|�w�:�:�6�4�����,�*�zz������$�"�2�-�!� �.�0�T�V�dhB�B�Z]L�L����5�8�(�)�M�M�,�+�Y�Y�6�:�r�r�h�h�F�H�l�r�V�Y�����`�c�8�=���� �*�.�?�=�l�o�xx|},�(������G�H�<�?�$�$�[�\�Y�[���6�4�&�$�F�G�v�t�j�k�@�:������� � �ssKM��c�f�:�5�$��J�G�.�.�&�&� ��?�@� � �0�-�@>��~lopq *.0dg� ���:�@�:�9�Y�[�S�X���p�n���h�i�m�m���D�D�6�5���6�4��� � �� �� �)�(�_`���������(�$�=�:���xw)�%����P�L�,�,�?�@� � � � �U�U�W�T�M�L�(�$�)�#� ��:�9�X�V���k�d���W�X�z�x�<�8���� ���.�-�`cvx��������3�3�P�O�]�`�����D�@�?�<�O�L� ��\�^�1�5�gj;�;�V�Y�F�H�P�M���D�D�H�H�v�t�k�l�6�5�:�9�$�#�+�$���(�&���(�(���t�s�8�4�24~~gg~gi � �3�6���O�O�2�3�t�t�O�O�"�#�MPMP44WZvxtt����<�9�h�d�$� �T�O�^�Y�c�a����������*�,�����)�(���dd47SPc_tv��2�0�D�B�C�@�;�<�B�<�V�T�D�B���(�&��5�4�:�5������������=�<�� �Y�X�8�8�:�5����� � �+�(�-�)�#� �Y�V� �� � �8�5��� � ����������� ��!��Q�O�K�I�K�L�c�a�x�x�p�l���4�4�G�C�����<�9�AGdd���� �������P�S� � ���jh-�*�Q�L�L�D�P�O���\�T��|����|���]�\�|�z�a�`�����������tx � ���d�c� �"�K�I�,�+�:�6�:�8�Y�T���� �����<�=���`dadce=�<� � �B�@�F�G�jlqq8�:�6�7�!�#�j�f�� ��� � �����C�E�� �����qroq5�4�3�3�@�<�.�,� � �c`}'(l�i�#�#������� �~QO|zL�G�(�$���O�K�:�8�U�V�v�u�@�C�?�<�� ���)�&�.�.�a�\������|�������� � �3�5� ������M�Q�O�Q��� � ���M�P����|���t�r����������� � �~jl���������� �� ��� �� �B�<�� �<�6���������`�^�n�l�����x�s���S�Q�i�h�� �(�#��������*�*�|}���� ���� � �����=�<�+�(�i�f�������z�w������ �&�"�0�+�#� ���!� �=�<�����Y�T�� �6�7�c�`���<�:���$�!�����n�m�$�(���+�(�:�4�ddGD`\1,40TPts� �L�L�$�$�h�f��������� �������������:�<�z�x�#� �@�@�c�]�T�T�5�0�UW8:��)�,�*,TZ������ ��B�B�F�@���0�.�X�[�%�(�@�C� ��tpddtw+�&�2�.���<�;�����Y�Y�4: $97>=@<mm}x������ � �3�6�i�c�K�M�F�C�Y�S����������0�,�S�Q���C�@�)�&��~���W�V�&�(�N�M�[�W�p�l�L�I�����P�O�(�$� � �4�8�"�#���)�+� ��H�I�a�`�O�I�����``sq<�?�����.�0� ��^�^�W�X�������|�|�!�#�[�[�6�5�[�V�0�0�����,�)� � �Y�[�K�L�3�0�0�6�:�9�leomyyg�c�������u�p�@�<�#�"���|�z�������������V�V�S�S�G�G�����K�I� � ������+�&� �"�D�H�$�!�,�*�`�]� ��E�E�U�S�@�=�8�4�,�)�]�]���E�B��������(�&�a�^�G�B�n�o�@�@� ��(�(�"� ���?�=�(�(�J�I�:�?�D�C���{|'* UT>9PO��4�2�p�p�#� �C�F� �#���P�O� � �``����-�,���@�=�S�P�����H�B�#��L�K�[�\���������*�*���/�/���(�+�0�+�~$�$�����G�I�K�L�@�?����������H�C�8�6�0�2�@�@���X�T�8�2�����\�`�L�I�Q�O�D�E�\�]�~}quYWz!��|zI�H���O�O�T�U�0�.���������M�H�z| hi?�=�(�&�0�.�� �@�6� ��|�t�z�t�x�v�k�i�'�&��~�,�)�� �4�2���&�&�?�?���,�(���$�&�5�3� � ���K�I�4�3�0�4�S�T�c�f�]�Z�!�#���������pp��qp]Y.�/�Y�Y���.�,� ����]`ssD@:;vt~������ � ���`�a�������k�k���s�r���=�<�G�H�2�2� � ���� �.�.���G�C���8�0���G�@���h�i�c�\�G�D���)�)�����=�;� � �P�O�L�K�p�s�\�Y�@�C�?�?�����z��������m�j�)�-���S�T�u�u�0�.���|�~�T�T���V�W����� ��(�$�@@\�W�� ���]�V�}yy��[�Z�����o�m�"�$������ �~DHSSW\*�+���������#�#�Y�T���h�h�I�J�G�G��� � �H�G�=�?�0�.���6�5� ��UVp�p� �#�,�0�|�y����]�^�,�.�0�0�L�H� ��x�p�\�Y�V�P�p�m���n�m�Y�W�z�z���F�B�8�3�<�:�����0�,�tpTUdf::xzUW��@�<���0�,�?�@�� �0�0���X�V����� � ����M�L�Z�[�@�B���e�i�^�`����� �#�������&�&�S�T����� � � � ���2�0�P�P���@�?�#� �)�(��������� � �i�i�9�<�X�\�t�t���^�]�B�B�&�(�7�6��������� � �`�c�����Z[~}#����mj\]||���|~d�`�3�0�&�(�|�z�Y�X�\�\���L�I�D�G� ��"� �xwwtVW KO����M�O���|y0�,�������G�B�z�u�E�C�����������5�2���3�0��� � ���X�Y���RW\`:?jmtx'mq��!� � ��r�p���W�W�����������p�t���@�>�A�B�]�^���#�(���K�L�5�4�H�K� � �����JP14WX(,\["�$� � �\�`�,�-� ��C�E�'�)�T�T�V�Y�����x�z���(�,�|��4�8�^�c�#�#� �"���w~8�:�����$�(�������G�D���v�v���r�s�<�;�0�3���0�6�D�C�%�(���&�&�� ����������U�W�,�,�� �0�0�������^�\�i�h���K�G���0�0���Q�Q�[�Y���?�?��� �� � ���{|yw���=�9�3�2�hg~POOPC�D������� ���������#� �������UX � �� � � ���6�8�o�i���� �U�R�ad89����c�c�T�T�(�)���@�=�.�,�h�e�8�6� � �����O�M�=�?�Y�X�8�5�����,�0���� � �����c�\���Q�T�,�&���0�.�B�B�V�O��������zJJuuda jesrJH3�7���3�.������C�<�^�\�i�d��� ��#�"�,�)� � �;�<�E�C�3�3�,�0�"�"�H�H�0�2���W[ l�l�#�"�����]�a�^�`���O�M�T�M�0�,�O�P�loE�C�I�K� �����0�0���D�D�c�c�i�n�!�#�������8�9�Y�U���� �����*-"�#�7�9� ���������i�f�-�0�\�Y�<�<�����&�*�"�#���� �� �@�C�#�&���.1 � ���%' � ��#�S�X���C�@�^�Y���(�(� � �S�U�L�N�T�S�����`�^�B�B���n�i���`�Y�M�O�x�z�^�]��!�D�B�D�D�D�@�N�K�`�[���#�#�!����wuqs��������3�0�,�*�#�#�U�S�0�2�����(�,�����`�]�}}``[\3�0�����I�D�l�k�x�v�������*�,���0�7�8�<���� �T�Q���P�P��� ��3�,�h�f�t�s�(�*�G�G�:�<�b`��� ��� ��x�t��|���G�C�����:�9���3�2�����7�5�f�c�L�G�9�7�n�l�&�&�[�Y���]]][��7�4�3�3�t�s���|�u���\�[��z�[�Y�^�X���p�p���3�5�f�e�\�X�������lj ��bebdtw��xvu�r�����C�@�'�&�#�%�S�P� ��.�.�����c�`�1�3�~�|�d�c�@�?� �� ��ACR�S�G�G���-�,� ��������|�x�|�z�c�`�Q�O�>�8�5�5�Y�U���)�#����"����0�1�r�s���]�[�B�=�)�(�#� �� � � �� �`�`�@�<�0�+�Y�V�A�@�F�D�(�&�K�H���������:�9�6�3���H�D�,�*�"� �]�`� � �  0�3�����#�!�V�X�08Y]28TXPS-0wwqq��`�^�����0�.�)�)�@�@�Q�P�,�/�,�*���0�0�&�$�~H�H�����.�(�=�>���f�d�F�C�$�"�G�D� � �S�L�:�7���I�D�z�u�\�Y�������"�!�,�+�`�`�i�c���U�O�,�(���� �(�&�L�L�C�C���Q�O�����p�p�,�(� � �=�<� � ���mjllD@PSSS5�0�$�"�L�H��� � � � �c�c�(�&�u�s�`�a�S�Q�<�?�\�\�:�<�@�C�0�.�������s�x�Y�c�X�\����� � �� �����}~}}}}|���~������S�S������������������+�'�`�\�9�9�0�2�+�.�B�C�V�X�?�@��&���[YLPhj����~��g�h�f�i�f�h���h�l�6�<�v�u�l�o�����~����������?�D�_�f�9�<�3�;�2�:����� �tv����]c���� �%�3�5�I�O�����y8�<���6�<�U�Y���D�F� ������3�3�<�9�'�)�:�:�� �� ��"�V�Y�� �� ���� �>@dd �$�8�:�Q�L�.�*�E�F�B�D�����qtPT>CDH�� � �+�)� � �c�d�3�3�\�[�<�D�X�Y�L�L������%���@�B�\�\�/�0�V�[���G�L�t�z� �&�����2�6�� ���$�$�W�Q�4�.���X�V�9�:�8�5�O�L���L�P�f�k�P�P�|��6�8���~ZW`]����`�`�X�[�h�h����������� � �����S�P��}�0�3�G�D�)�.��!�4�5�4:\�`�D�D�O�O�����=�B�(�*�+�0�6�7�� �������7�8�������eh � �� �,�0�`�a�u�x�T�V� � �+�.���2�3���)�+�:�:�����?�?�����0�3� ����L�L�V�Y� � �A�B�|�x�<�;�0�.�|v,*w�s�$�#�����@�:� ��V�P�$� �(�(��� ���~����� �@�9���"�$�����)�.���l�l���F�I�i�h���&�#�����.�+�l�k���!�"��� � ����UW�� ����[�]�T�Y�c�e�����h�i�2�5�aec�h�6�9�� ���������� � ��� ��0�,�G�F���9�:�49����XZ � �l�i������~���������l�m�V�S�������4�2���0�.�&�(�x|(�,�7�8���������S�U�����6�:�[`NS ��txQTK�I�����\�\�� �4�8� � �[X ��.�*�9<��B�@���x�x���h�a�_�\���p�m�6�2� ����)�)�����p�p�5�2���4�3� ������l�m�)�(�@�?�]]$� ���z�x���xy�� � ���������T�T�`�a�#�(�� ���{z����&�&�)�+���JJ��������|�|�����|}��z�v�^�X�r�p�j�f�.�,�`�]���� �� C�@�0�.�$� ��������(�#����� ��8�4�#��f�c�,�(� ��G�@���(� �#� �%� �(�(�?�;�a][�Y���������������)�(� ��4�-�2�/� ��`�X�5�1�0�*� ��L�I���zzjj�~�����fi����������������8�8�������C�=�Y�U�� �������Q�L�jlMM|x$�#�`�\�H�D�I�E���4�3�l�h�*�)�F�D����� � �S�V�,�0����� �:�:� � ���[�[�����4�+�G�B�6�5���(�(�D�D�<�:�Y�Z�2�2�y�z���0�0�:�9�K�K�d�^�����n�m�Y�[�u�s�����R�P�3�3�<�:�(�(�>�<� � �4�0� �"�I�F�����joBG�� � � ����h�f�D�A�P�O�Q�L�),;�:�����0�0�����(�*�Q�S�� � ��su��%�"���3�4�zz��x�v�@�C���v�u�����������������D�@�z�x����� � ���������Q�O�:�;�����������3�2�^�`�p�r���Q�W�T�T�����@�C�<�<�D�E���$�&�����|~y~����.�/� ��`a �#� ��&�*�&�&�,�+�l�n�J�L�\�\�;�9�d�i���\�Y���S�T�������� ���+�(�sx78}��G�C�L�L�K�O�������������u�t���U�W�Y�V�)�$�h�e�888:NT��?�=����"���8�<� � �*�)�� �H�I�c�`�8�5�<�@���wwY]}|`]d`A�?���������D�H�x�v����x�]�Y�����#�#�8�;���� �<�B�����@BttYX�� ��:�;�$�(���0�3�`�`�h�l�I�L�L�O�`�e�2�4�wzRV`g������S�V�L�L�<�?�C�D�-�.��������_[�����G�H���g�h�L�K��"�����[�`���v�x�u�x��}�?�<��� ��h�d�G�C�v�v�h�f�r�p����������wyHKb`z|WZB�C�����`�a�v�t�I�K�����������?�=�0�0�;�<�������x~joSWfjxz#�#� � �\�]�� ���c�`���?�>���(�,�� � ��������L�M�G�H�#�'� ��������F�F� � �����XWSUX]gi ��lmT�P�\�\�c�`�����������G�C�� ���3�3�9�8�S�T���"�#�^�\�$� �p�l�~�x���)�(�������8�5�� � � � ��Q�Q�,�0�`�c�a�`� �������&�.�wz\`@Blmpp ��2�0���n�r�!�%�&�'� � �U�X�^�`�� �%�&�+�-�C�C� � �S�T�?�@�3�4�� �ghPS�����+�,� � �p�r�/�2�������h�d�K�H������oqwx8�<�����^�[�X�T�������d�f�Q�T�����{}B�?�� �0�)���� � ��� ��|~|}dj<@qoz6�4�@�=�E�C�\�V�b�`�f�f�<�8�����v�u�Q�Q�U�V�h�c�����+�+�WWPS TWll|~]`xz8�4� |�� ��������� ����� � �� �3�8�-�,�I�I�h�k�����f�k�@�B���v�t���s�u�ed~����?�?�����P�O����%�)�u�x� �(� �$�8�;�9�<���O�L�t�v�@�D�^�`�i�l�����B�C�P�Q� � ��#���$�#��v�����t�t�z�v���F�C�W�S�+�,�H�D���<�:�]]8�3�� ���������V�U�C�=� ��I�H�Y�Y�c�a�������:�6�����|\�`�(�+�A�C�8�9�-�/�9�:�,�,�0�0�����#�*��� � �n�p�Y�[�;�@�e�f�-�0�������H�K�����:�<�.�2�����deVT�� � �����|����5�5�S�Q�c�a�p�n�0�.�<�:�X�V���0�-�(�(�� �jhwx!�&�Q�T���+�(�SSjeTSehzwF�B�^�^�|�x���K�L���9�:�&�(���.�-�6�4�$�#���D�@� ��J�G�����)�(�@�;�M�I��� � �C�@�,�&���^�\�������l�k�|�}������}�<�?�F�I�V�\�$�(���� ���jsSP\`�����OP'* � �����x�z���V�]������T�P�.�0������ �G�I�#� �W�V�D�G�V�Q�4�0�c�a�|�s�3�+���� ���9�4� � �x�x�8�:�H�G���jg[Woj|�� ����M�L�D�C�0�0�<�<���4�2�^�^�a�d�?�@�L�R�M�L�����������a�a�����#�$� � ���������������0�/�������+�)�S�Q���0�.�0�6�4�4�+�0�L�G�����yx��� �=�?�:�<�\�\�C�D�J�G�0�.�?�?�;�7�C�C�����,�+�J�L�������w�s�)�)�?�=�9�8���<�;�M�L������l�i�R�U�A�@�L�Q�S�U�M�P���`�a�����"�%�4�3�?�:�O�L�C�B���*�+�L�L�#�&���vx[\==eg���� ��/�0�n�l�y�y� ��$�#�gj��ywgd)'�� � �� �0�,�o�i��������������|�p�h���a�`�8�5�(�,��� � �����8�<���(�,�� � � �l�l���~����L�L���z�z���w~[]|������ ����U�Q�����u�r�6�3���mo����0�0��� � �5�0�K�L�I�G�S�S�D�G���!�#�K�L���ll��,�,�������(�+�>�@�0�3�\�\�(�*�&�)�O�P� �!�z�|�^�\�,�+�8�7�w�x�f�h�s�v�@�@�"�$�.�0����� �\�^�z�z�S�P��������:�8���,�+�� ���@�@���?�@�v�s�`�^�I�I�`�_�2�3�3�.�(�%�PSHK@D>Abd<>srPR~3�3�a�d�[�Y�`�b�V�T����9�:����������#�&�C�D�I�L�D�C������!�"�!� �*�*�&�%�f�f�� ���n�p� � �0�.� ��8�8�|�y���=�B�l�n���a�a�3�3�jl>@14~[]z~ � �$�&�.�.�f�h�,�-�u�p���C�G�H�H���*�.���,�.��"���2�2���(�,� ��*�(���������2�0��$� � �zsxWW����� ���#� �$����o�p����|���f�c�`�]�q�l�����5�/� � �ll"��� ������ ��"������=�9�I�H�`�\����5�-�M�I�=�:�@�<���)�$�K�G���G�@�>�:�M�G�&��� �0�,�B�<�v�w�5�0�E�C�D�C�a�\���p�p���L�J�<�<�����lmXX98������� ������F�D�I�D�G�C�:�8�5�0�P�M��������r�p�����������I�H�<�<� � �L�P���8�:���;�@�.�0�Y�^�������������� ��"�'����o�p�H�I��� � �����3�6�5�:� �'���6�7���� �{��� �� ���� ������a�f�&�,�?�@�D�F�(�+� ��� �<�:����������2�9���l�k� � �F�L�hlvytxDF��� ���������� �@�G�K�Q�����������7�8�)�)� �������jm(�(������Y�S�@�<�Q�L�?�:����� ��������$�"���#�#� ������������mlDDWU��/�,�9�6�[�V�� �3�4�e�f�:�9�e�a� � ���6�8�� �����<�;�5�4�\�`���8�6�a�c�0�.� �$���� �����0�,�~]`��L�O�M�P�5�:�C�C����?�@� � �G�I�V�Y�Q�V�<�?�z�z�4�7����� ����,�3�.�0���"�)�or � ���go8�9���<�=� � � � �������*�+�Y�\�����I�I�8�<�v�v���ag� �qu �#���� � � �H�J�,�.�|��&�+���������������S�S�(�(�r�s���`�`����� � �� �rryyTSPPxtH�C�� �(�(���;�:�M�K� �!�#�!�9�<�d�f���W�V���m�n���p�p�[�^�\�Z�f�h�9�:�P�Q�j�k���h�i�7�:���]\����G�H�.�.���x�v���K�G�V�P�&� ������:�8�f�h�������M�M�(�(�eg%(CC�������o�i�]�Y�K�K���O�O�4�4�,�0�W�V�������#��@�@�p�o�5�6�O�O�8�;�����B�C�����0�0�d�j�� �D�D�������z}�� � �J�L�[�^���J�M���ooZ]����� ����������\�[�G�B�$� ���=�?�<�;�8�4�h�f�s�r�&�#�l�l� � ���IKmp������ ��������;�<�O�L��� �"� �� � �?�@�I�L�h�i�d�c�<�:�����YX6�:�+�0�e�d���|�}�W�X�=�B�-1@CgjWUCD(�(���&�)�� �=�B�(�+�B�@�}��c�`� � ���3�2������ ���� � ���"�$�0�2���#�$�s�p�����d�a�r�p�@�<������(�#���]�]��� � �&�&�(�(��� ����Y�Y�����@G�� � � � �ptzyLM][KK`\6�0�����<�9�s�p�G�B�������r�o�������D�C�<�5�G�B������2�4���r�q� ��<�9�+�(�,�.�T�Q���pp ����jl��@�?�h�h�P�L�.�,�L�I�\�[�@�=���G�G�� ���+�+�:�9�y{��df����V�U���l�j�0�.�}�|����� �"�<;ghFD� ���h�c�l�h�V�Q� ��U�S�,�&� ����0�-�����(�&���1�,����� �� ��yv��A�<�%���� ����"� �Q�I�<�4�&�"�$����8�6���B�:�_�Z� �� ��G�D�<�<�.�/�1�.� �$���4�5��� ��� ���,�(�S�Q���L�J�;�6�O�J�G�A�P�K�0�.�;�6�5�2�(�&������� � ��� � �\`����VY@�<���.�.�a�`�u�s�l�h�f�`�r�k�%� �&�"�������:�:�c�c�0�.��������� � �p�l�v�r�8�6�[�V�l�f�L�H�s�l���f�`�Q�L�B�?��� ��D�<�����xz9:..tqpmcbPPsqwv ��+�(��(�#���&������� �4�/�(�&�@�;���i�f���X�W�(�%�)�)���0�.�-�,� � �|~tz|di\`wwAH3�5���G�B� ����<�6�T�O� ������������<�=�3�8�|�|�:�<���4�6���a�^�5�3�m�l�Y�X�<�:�y�t�g�e�0�,�l�k�$�#�,�,�i�i�l�i�<�<�^�_�-�,�*�$�+�%�Q�Q�V�V�2�0�#�!�3�.�!��N�I����������||qmqptp]]fd��0�+�<�9���~|0�.�.�0��� ������ � �����C�@�&�#�����|�v�D�@�|�x�����������f�f�8�<�#�&�G�L�� ��\�[�#�#�������������� �``HKZ]KM����<�<�S�Q�n�m�"�#�@�B�^�`�������?�@� � �P�Q�U�Y�����������������J�I�����L�K���P�P�-�+�P�L��}���G�C�?�:�)�&�� ���P�Q�V�S��� � � � ������noMMtw������ �� ����"�"�0�1������*�(�x�u�j�h�p�o���;�8�v�s�G�D�v�v� ��K�G�B�B�V�U�G�D�� �|z � �(�&�3�3�������Q�Q�a�\�1�0�x�u�#� �l�h�3�0�T�O�c�_�l�l�#�%�-�-�� �JMX\OO||,.PShg``TU(�(� � �&�%�@�@�V�V�c�`�,�.�G�F�(�*�=�8�B�B�C�@���� � ���3�4������ ��� � �`aMNXXGG��������$�&����@�@���������s�p�0�0�`�c�v�t�h�c�<�9�G�C�\�X� �� � �������RTpsC�@�h�d�@�<�9�:�,�)�E�F�����D�B���G�G�(�'���`�^� ��,.]^&(����@�@���� �.�2�-�,�D�F� � �� ���O�S�\�\�����,�.��$�(�����(�+�7�:�*�,�s�u������ � ���,�.�!�!�&�+���,�.�@�D�t�u�����������������B�E�F�K� �������� ��W]jqxz^`+�,���'�&�i�p�@�D�|��I�K�(�*�+�.���D�F�(�,�h�e�z�u�i�i� ����/�.�����x~UW`d � �=�@���������o�l�(�(����������������z�����B�:� ��H�G����TS'$PPSURQ��7�9���� �� �c�c���I�Q�#�$�C?||@�@�p�u���-�0�&�)�i�k�`�`�����L�M�� �0�.�<�B��� ����w~djgl7�:�[�\�;�?���,�0�2�2���� ��4�3�0�0����������?�@���#�#���5�7�����r�t���;�9���,�0�����8�7�������.�,�gk/�0�D�H�L�I�Y�Y������ ���,�,��� ��FHxv����P�K������$�&�a�\�:�7�r�p�Q�O�l�i���I�G�)�&�����@�@�)�)�-�.�m�m�&�)�[�V�@�<�� �i�i�����"�8�:���pp#�#�����O�N���� � � �� �&�$��!�p�s�C�D�O�T������!�%���c�a�����@�D�!�#���3�3�(�(�`�Y�K�F�a` � �UU��&�&�P�K�\�[���x�t�:�8�\�Y� ���������x�y���F�H�s�u� � �l�l���B�>���(�*�<�=�6�6�v|6�3�4<|pp��=�E������ �Y�]�T�V�������F�H�]�c�\�a�/�3�3�;�T�V�(�,�� ��� � �@�@�D�D�0�0�+�.�8�;���B�C�����,�,�+�(����� � �|�y���� �� ���dd � ���+�+�sq � �5�3�x�x�1�0�k�h�����X�T�&�$�(�&������� �#�����'�#�$� ������3�/��|�@�@�a�]�\�[���S�K�T�O� ��O�H�6�4�yvS�M�;�6��� ����R�L�8�5�%� �Y�T��� �����(�$�[�V�S�S�DD��Q�Q�"�$�8�8���������O�O� ����HH ��;�<���|�z�x�x�@�@�� ���"�$�0�4���>�B�h�l���3�8� � �3�4�s�r���p�o�y�u�Q�L�`�\�������|�x�K�O��� �#���W�V�� �,�,�*�&�� �,�+���5�4����&�"�����O�L�=�8���6�3���8�6�f�h�$�&�!�!���$�(���=�B����������D�B���������H�D�{�|�U�T�S�S�l�l�#�&�=�<�{�~�4�4�L�K�@�?�6�6��� ����$�"�)�$�������c�`���V�T�4�2�i�d�n�l��� ��I�D�}JOW�X��� �� � ���|�y�$�$���l�h������.�.���G�I�T�V�B�@�=�:� � �=�8�.�0�(�&���t�q�2�.�c�\�=�9�O�K�\�]���0�8���l�p�*�,�Q�V�Q�Q���C�@�y�|�.�.�-�,���w|0�5� �$�D�D� ��� � ���� �!�M�M�O�P�*�+�L�L�U�X�Y�\�$�(�T�Q���I�H�����#�$���wy��[]GKhjquty"� �@�@���������� ��\�Y�Y�T�B�B�S�O�|�x�=�<���2�+�����E�D�C�D�c�c�6�4�B�?�3�3� � � �#���<�<�#� �6�4�<�=���0�0���e�c�/�3� ��l�i� �� ������ ��9�6�4�0���=�9�ZXDC]\`]yx,�,���0�+����[�W��� � �-�,�8�6��� ����C�D�%�#���3�4�#�"�V�T�����ml,�,�B�D�����T�S�l�l���s�r�����Q�R�V�Y�C�D��� � ���=�@�(�)���uv � ����� � �$�(�!�#���:�<���m�p��� ����Q�Q�]�]�I�G�2�0�G�J�0�0��#� � �� �������@DFHtuvv �$�+�,�?�C�Q�T�`�a�m�r��� ������V�Y�V�X���Z�X�m�l�6�6�\�Z�O�S� ����x}Z]tux|\]PX � ����� ��L�O�%�#���:�<����2�4�Y�]�0�7� �#�&�,� � ���0�*�c�^��~�����|��3�0�&� ���V�V�c�a�`�`���f�j���p�p�(�(�qtqtA@zxPUWZa`|~}}|y������� ���[�Y�L�O�(�(� � �z}�� ��A�C�F�K�K�Q�\�`�p�u�`�e�l�p�p�p�l�n���k�l�`�`� � ���h�f�������n�l�3�0�T�S���D�B���� �,�/�B�D���C�E�$�#�/�0���M�O�����m�k�s�r�Y�U���@@uq|pjG�B�*�"� ����G�C���p�k���i�k���/�0�y�v�����&�#���;�5�D�C�x�v���O�L�r�p���pmtz� �����:�<� � �`�\�aakl !���������������� � � �U�T���.�+�9�8�����z�s�����f�`�n�f�����.�+�����DFO�J�-�0�.�,������ �����B�@�:�8�,�&���ps]bw|lomt*,����u�v���_�`�?�@�H�I�4�6�"�"�!�&�)�&����`�c���x�|�u�x�m�l�O�P�0�5�l�i���]�]�,�0����k�j����� JPV�T�[�T�H�D�X�S�a�a�$�&�� �.�0����� � �������<�<�<�?�D�E�p�l�5�5���9�9�B�B���J�D�,�)���-�,�5�2������������ �ssbeHM`a��l�l�,�0�.�.�7�5�h�i��!�7�:�4�5�0�5�����9�7�)�+�6�8�&�-� ������z|il`bSSOSpqv|W\bh�� ��0�0�y�y� � �i�k�p�p���~��~��m�m�<�?�P�R� ��\�`�� � � ��� � � �"���K�I�h�f�~�|�p�l�x�t���<�;�K�K�2�0�q�r�(�(���<�<�^�^�/�0�#�$�0�-�.2KLqtd`��D�D�h�h���z�z���I�E����� ��6�4�+�)� � �3�2��� �$�\�Z�]�\�0�3�����7�0�<�5��6�3�+�,�M�L���\�Y��� ��P�P��� ��(�(� ��S�O�?�;�����&�(�E�@�0�0�����dg��Y�V��� ��,�'���������p�p���r�p��z� �"�E�E� ����,�,���8�:�F�K�(�(�G�E�~~PT@@KJ��$�)����� �&�� �6�<��� �$�|��z~PW������6�5�K�I�l�k�����L�K���T�V�w�u�_�_�~��T�V���\�\������ �P�Q�`�\���f�f�I�K�-�.���XX/0`def�� � ����8�4�i�k�O�M�H�L�������4�5�Y�V�V�V�9�9�X�V�X�Y�(�,�!�&�$':@qvv�x�w�u�������������}��i�l�<�=� ������ � �_�^���`a]`gl ko9�<� ��i�h��� � �7�7� � � ��L�H�r�v�H�G�)�+�C�B� � �V�V������� � ���D�D�M�K�'�(����#�� ����c�a�f�c���2�.�a�\� ����H�D�������deC�@��� � �����3�3��� ��8�7�i�f�8�6�3�.�)�$� � ���W�S�,�%���d�a�G�D�Q�Q���L�I� � � � �Z�Z�|~;9~��GJ;;vv������K�L���������������^�\�H�I����� ��\�[�z�x�������N�P�[�Y�����0�.�����$�%� � � � �8�3����� � �����%�&�0�3�&�&��'+bdP�P���� �S�S� � �J�G�8�:�-�(�E�F�L�L���H�H�Y�[���3�3�#�"���I�G�?�<������� � �=�=� �� � �����f�i���zz� �W�Y�3�4�I�I�P�O�4�5�+�&�����\�a�8�:���&�&�<�=�Z�^�#�&���s�s�\�\�\�Z���������,�2���chz|47$&rpUX!% a`Q�L� ��f�b�,�*���c�a�6�3�6�3���O�Q�O�S�l�p�I�H�G�G���:�;�K�H�������mjch �� � �����n�i�z�x�y�x�O�M�7�8�<�?�|�~� ������zz��<�9�V�V�e�c�e�h� �!����+�+�����W�\���c�e� � �"�#�#�$�,�,�F�G�Q�O�S�T�O�L�Q�L������� ��� �"�#����� ��� �)�)���,�,���tt\]���������|}oqTTPOTT<==>4/x�x�(�&�~�~�D�@�|�z�x�t������|�x�p�:�3�@�:�E�=� ��y�x�O�L���9�6���� ��������%� ����\�Z�-�+�x�r���������?�@�O�L�(�)�`^12XW���� ������M�O�8�8�E�F���T�Q�M�L�5�3�����M�M�\�X��|���O�L�2�/�8�5���dd0�,���*�-�dg��&� ����������k�l�\�^�$� ���I�E�~�{�Z�T�S�O�0�/�c�^�3�2�2�4������� ��$�&�����0�.�����a�^��z� �����8�0�y�s�=�6�`�X���� ��!�"���|u]�\�� ������ � ���oq9;xx����� �UZ\`\a ��Y�V� � �3�0�V�T�c�f�|�{��|�����4�6���k�h�V�V�n�p�,�)�����@�@���C�B���� �5�0��������WU � � � �(�$�� ���Z�[�*�,�;�8�8�6�ddMOpr;�8� � ���L�I���(�&���!�"�@�@���C�=� ��&�#�B�<�#� ���@�@�0�.�������������������(�$�J�F� � �6�6��������}���5�1�Y�T�,�,�������|z�����M�J�0�0�@�<�Y�Y�3�6�������<�=�=�:���r�r�r�p�������l�n�K�M�@�B�I�E�Z]zy}}��#������wt0�+�6�7���x�|�l�l�4�3���*�)�V�V�\�\�O�K�4�4�8�6�<:SS]`uwzxwml���!�$�%�������=�=�^�]�C�D�s�p���0�0�$(��D�D���Y�X� ��@�C���g�h�#�"�[�Y���(�)�V�V�t�u� � ���*�+� � ���������&�&� � � � �gj��4�4�?�<�~����|~���t�p�V�V���`�`���������/�2���+�(�:�:�&�$��� � ����-�*�� � ��&�#�Q�S����Y�Y�o�l��� ��9�9�������F�C� ��S�S�)�$���,�)�?�<�u�p�����.�-�.�,���J�F���h�m�� ���@�@�Y�Z���� � �$���,�,�������#�#�~PO������m�o���W�X�A�@�U�W�������st ��G�D� � ���:�<�~TU����(�%�0�3���� �&�&���� � � � �����S�T�e�f���,�0�0�,� ��%�&�(�(�����D�D�������������n�l�l�p���L�L�z�x�f�c���D�@�D�H���r�p�+�,�-�(���|x! 46DF`]eaqptoXUmlfgDG��&�$�!� ���/�/�d�c�m�n�a�_�����\�Y�P�M�!�$�H�B���.�-���X�Y�|�|�a�d�D�J���D�G�e�f�B�D�3�4�s�v�S�Q�|�z�q�r�H�H� � �&�!����pqPPWXbemmXXX[vz � �[�\�Y�\�������t�v� ��&�)� � �?A $ ,/34C>\�\� ��.�3�� � �#�g�h�7�8�0�3�Y�Y�����������D�B�#� �&�#�� ���r�r���� �8�<���V�W����.�3����� ��#�0�2�]�b�T�W���)�.�� �U�V���.�-�������5�<�$�(� ���� � ���;�<�Q�U�6�:��� ���� � �c�`���<�:���W�V�t�r�����|�|�P�P���:�?���O�K���������F�F�ee��<�=�� � � ���(�(���K�L�s�p�n�i��|�O�Q���H�I�@�@���9�D� �(������wxjl``)*[`TWmp:�8�I�F�;�:�������6�6�6�3�(�&�G�B�������Q�P��|�x�v�c�`���5�5�I�H�����O�P� ���� � �TXHLSU]d"������o�t�����C�I�����\\������D�@�� � � �P�P���� �Y�W�0�,���-�*�04``{xD�D� �$�V�V������������ �k�e�E�D�������C�?�3�-���.�2�:�<�F�F���V�S���j�h�<�9�n�k�f�`�#�"��� ��Q�Q�8�4�Q�O� ��|��,�.�7�6�c�e�w�z�L�I�Y�Z� ��K�L���c�a���*�,�L�M���<<FDMMpp`dz{\\������:�:�L�G�|�z�[�V�f�^�3�0�����c�^�L�L����!�Y�T���?�>�6�3�<�@�,�(���V�P�L�H�Y�W�� �B�C���*�)���D�C�c�c�����������K�G�����<�=�:�:�D�B�+�'�c�a�]`|~������ � � �� �%���@�<�� �0�-�o�l��|�h�c�4�5�<�:�I�I�r�n�S�Q�8�:�K�J���������������<�:� ��"�� � ��� � �����F�D���B�<�4�-�V�S�U�Q������4�5�<�<�?�?� ����������^�\���@�E�����M�H�)�(�(�&�?�:������|�����I�L�\�`�P�O�F�G�@�@�3�2�v�t�x�v�.�.�������� �78 �!�����.�0�v�x���m�h���(�$��x�"��<�;�!��F�D�5�0�B�<���|�v���|�x�L�J���vzpj{y����D�A�|�{�3�0��� ����3�,�X�S�6�2�L�I� � �"� �����&�!�M�L�,�.�����pq���� � � ��\�Y�h�h�x�u�x�u�0�,���|�x�����5�8���t�r������ ���``<;44|wO�L���qo``ttTU��6�5�����0�1�R�Q�<�@�(�&�&�*�.�2�+�,���tvtq#�&�i�j�P�L�Y�V�S�U�3�3���z�y�p�p�������G�C�������������j�h��� {} � �L�L�3�2�L�K�3�3�`c<�;�.�,�V�P����|�W�T���4�-�����&�#�(�#��� dbLK]`@�@�V�[�0�3�(�*�D�F� ��G�L���W�U�3�4�?�?�,�.� � �,�-�������#�!�h�i�l�k�B�@�Q�P�#�"�\WB�@� ����4�3�3�3�G�D�� � �!�h�h���h�h��������HO@Dhldgpv��)�,�5�5���l�h�����$�(�@�C���@�@� �#�d�h�Q�T�t�t���,�,���|~PM hhoq~\�Y�(�+�����>�C�^�c�p�r�3�4���P�T���Y�]�0�2�������������<�;�I�L����������� � ��� � ���H�I�����+�*�5�4��� ��(�$� � ����|�s�s�L�P���Y�V���4�8�S�V� �#�������5�4� � �����������&�&���� �@�<�-�-�p�p���ddqn������z�z�dg~~����US}}mp��&�$������K�H�� ���T�X�s�s���`�\�0�,���|����s�s�?�@�Y�Y�3�0�D�?�M�M�+�+������G�I� � �<�8�#�$���<�<�$�#�#� �O�M�C�?�������8�6�L�L�[�[������ �#�%�;@| � �����}���4�2�� �wt������D�C�����������������8�3�h�d�%�$�� �{{NH*),,@?|yqq|~&�#���P�O�M�M�O�H�8�9�����U�T�3�0��~���)�*�^�\�`�]�(�&� �������6�3�7�4���0�0�������x�w�W�Z�,�+�d�d�p�p�s�s�@�@�S�P�c�]�>�?�������]�]���*�(�i�h���,�$�Y�W� ��2�3�]]MPD@qpcd���+�(�V�T�L�O�7�3� �$���������c�f�6�8�A�D�cd������ ��@�<� ��2�.�����?�<�4�4�|����5�6�@�>�9�9���l�l�d�f���������������Y�V���3�2�K�J�a�`��� ��ZW84dd]\CBtpJD#� ���)�"�<�5�O�I�:�2���K�C�T�O���p�n���������d�c�m�l�/�-���`]��#�"� �����v�r�t�s�<�<�<�8������ �yu,�(�#� �4�0���!�� � �(�%�9�6�<�;�k�k�����6�4�i�h� ��Y�V�+�(���!� � � �����,�)�;�8�@�@�����;�=�w�x�k�l�C�D�B�C� ����� ����$�&�i�i� � � ������3�3������ejggoo � ���Q�S�B�?���|�z���M�M�d�d���lo��9�8�$�!���W�Y�������������������&�(�0�0�$�&���#�$�uw � ���0�/���������#�%�wyMO`aPSGJbd�� ��&�)����6�6�C�I�X�\�B�G�p�r�������������s�t���`�a�2�4�v�x���i�k�`�c���WXhjwugg=>``��<�<�(�,�)�+���c�d���<�>���]�]�������a�`��� � �Q�Q�H�E�}�|�"� �&�#�6�4�8�6�!� � � ���O�L�B�@�~�|�:�9�Y�S�������� �����������"�$���s�s�I�K�0�0���op���&�(�8�8�svSUgezx`bgj��������&�$� ����.�*�T�Q��� ��L�I�8�6� � �T�P�$�&�+�,�,�0�������3�0�0�1�s�r�c�c�?�=�:�<���(�+�1�0�B�B�$�&���&�$�� �ppz����0�.�%�(���)�(���P�L�m�p�8�8���+�(�2�0�H�E�O�N�?�@�Y�Y�ZX� �dd������Y�W�X�T�L�I�}�z�v�p�P�O�L�L�F�F�`�^�f�f�s�r�.�,�T�Q�b�^�<�:�\�\�h�i�Q�O�*�(��� ��(�)��� � �� �������� ���}}� �8�6�:�8��� � �?�8�����6�3�?�?�l�g�e�`�X�Q�^�Y�@�:�i�f�@�<�L�K�t�t�������Y�U�r�u���0�/�0�.� �#�����5�5�������dg� �'�$��� � �3�0�mmWXqtdl~]`0�0�+�&�����6�4���h�d�6�3�-�(���E�C�[�[�#�#�o�m�/�.�$�#�E�@�B�<�Y�Q�^�W�s�l�|�y�)�*����<�;���%�%���T�V�J�H�Y�X�<�=�6�5�9�<���� �u�u�Y�T�<�?�5�7� � �<�<�+�,���W�S�3�3�H�E�����p�k�l�k�������4�0�2�4�]`\\jm[\��(�#�(�#�P�Q�k�i�]�]���0�0�,�-��� � ��������� ��+�-���,�+���psgfde�������� � � � �G�H�x�u�d�`�����������.�0�(�,���H�J�����T�U�W�Q�>�<�<�<� � �5�5��� �"���:�;���(�&���+�+�u�x�U�V������~ggjj��xxHH`dLPvu����0�(�T�O���c�]�0�/���u�u�i�f�f�c�L�F� �� ��S�J�&�#� � �Y�S�|�s�=�:�� �;�?�������������� � �����<�@�Y�^�u�x�^�[�:�@�������]�a�0�,� � � � ��"� ����3�6�)�,�� �����]`utqtqtWT�����v�u�8�7�(�+���&�&�������3�.�z�u�v�s�l�f�\�X�4�3���d�^�|�z�t�p�4�6�4�4�e�e� � �H�I�8�:�������I�I�I�G�$" ��eh`bX\dh���� � �3�5�� ������������ �n�q� � ���~��x�s���8�6���?�<����"��� � �|������m�r���-�-����ejqt%�)���3�3�������?�<�<�<���jj]`3�8�S�U�K�K�V�Y���\�\���Y�\�V�W�x�x�V�S���@�@�9�9� ��x�v�]�\���^�`�+�+�,�&���|y�� ����n�l� �"����,�/�f�f���||wz/.�������k�c���i�f�H�D�.�+�u�v���@�B�x�z�r�n�`�\�n�i�r�h�i�h�u�u�^�\�M�J��� ��X�T�G�D��� � �**ZX#�#���(�(�C�B���z�x���<�?���g�i���I�I�� �.�,�0�0�C�H�=�:�� �&�#�zyZXHF|{MM]\<�<���0�,�z�x�T�P�����0�-�� �,�&�,�,�2�,�%�&�u�n�;�4�t�m�S�L�+�$�|�x�V�K�,�&� ��T�O�f�^�Y�T���� ���D�@�c_d`FAPKke|��zz� �p�l�0�0�W�V�,�)�t�t�E�D�H�I�O�Q�h�h�8�<�.�.���_�^�?�@�$�&������|MHz|��`�\�����������c�c�<�;�v�s�I�F�?�=���"� �O�I�F�C�5�3�U�Q�<�4�%�$�� �uv)�(�I�M� ��?�@���B�B�������\�\�D�D�<�?�&�$�&�(�����F�E�U�T���POvxzxopTW\\|~gj����,�,�5�4�@�C�<�@���S�T� � ���%�&�9�5�)�(���u�z�l�l���8�6����������A�>�\�Z�G�F�� ��� �#������M�L� ����L�L�J�G�L�K�a�`���M�P�#�#�X�X�����$�#�deloO�M�r�p�����e�d�:�6�3�,�M�L�5�2�[�[�0�.�T�S�^�`���:�8�:�9���v�t�������c�a�V�X�;�?� � �2�3���<�<�C�C�/�/�8�<���6�6���`aw}|������� �}�|�Y�Y�T�T�E�E�T�T�h�l����� � �����������)�)�)�.�$�(�+�0�.�/� � ���� ���3�0�Q�S�H�G�l�i�O�O������� ��wxpstt~~lpqw������ ��Y�V�Y�X���svXW��#�&�i�i�3�0���������@�<�������������8�6�M�L�~}jg\Z��)�(�?�<���� � ���,�&�(�$�3�(�W�M� ����8�6�I�D�������O�O��������P�O�2�0����� � � mpWW��I�G�:�<�f�h�8�5��~�Q�P�E�D�c�e�D�D�F�J� � �#�'�T�Q�����V�S���?�8�.�,�S�S�(�&���������� �P�P�`�\�"�!�I�M� � �������������;�8� ��3�3�(�#�0�+�����/�.�f�e�(�)�K�L�����T�M�%�(�V�U� ����#�#�X�W���8�4�L�L�p�l���0�2�"�!�����c�c�G�F�]�`�3�3�� ��� ���������������[�\�,�.�� �C�@���@�?������DFbbY\z~G�G� ��i�a������� � �C�D����:�4�\�S�=�<�I�C�#� ������}~���� � �K�J�6�3���u�r�B�?����������,)ZX�����T�Q�� ���pmzy~���(� �"����,� ���M�D�p�h�0�(�~||{zy$# �"���C�:�|�w�5�6�h�g�,�+���� � �����Z�V�s�r�x�v�i�h�T�T�c�e�� �����(�,�?�B���3�0� ��}}6�5�5�7�8�;�� ���� �������zyxwpq)->Djl%*ag$�#�0�3�<�<�(�%�"�#�I�K�Y�\�<�?�k�l�V�Y���#�#� � �� �0�*�-�)���,�)���$�#� � � � �0�,������ �T�U�2�3���&�(�����3�6�5�3�d�a� � ���"�!���������L�K�.�-�\\SO44 � �(�(���-�-�I�I�f�i�+�0�)�0�l�p�S�Y�������h�h�?�D�x�z�r�s���O�S�6�6� � � ����� �����3�4�0�0�<�<�<�?���-�,�������(�(�L�G�t�u�<�8�P�L��������FF�� � ���(� �0�/���8�8� � ����� � � � �,�(�h�c�f�d�����a�^���K�D�+�,�#�"���I�D�4�3���|�|���������.�0�����3�4�X�]�l�p� � �D�F�&�&�)�%�:�8�#�$�,�,�h�h�8�:�%�!�G�B������� ��strvSXFH ��L�G�������B�?�T�S�3�3�r�p�����+�(����L�K�G�G�8�8�I�D���>�<�n�p�]�`���h�d�<�6�p�l�M�L����y�|�z��|���G�@�(�)�� ���V�U���@�@�O�O�(�&�0�0�>�?�[�X���9�<���X�Z�����c�c�x�x�f�i�O�O�`�^�?�@�pv[YWZ~@D&�)���@�?�5�3�����ed���#�!���@�B�W�U�������� �D�H����GG ��h�f�� �� �,�+�st,�)�3�2�*�(�����,�+�I�I�����p�p���Y�\�.�-��� � �$�#�G�D�c�a�u�u�<�<�E�F���Y�\���)�+���i�l�]�]�Y�W�6�6�G�E� ����+�*� �#�h�k�\�\�[�\�s�z�D�G�S�V�-�0�#�"�,�.�����?�A��� ����~34GKdhORwxjjHMmpjj� ������[�\�[�\���m�p�C�E���"�&�M�T�L�O���`�b�p�r�<�?�"�$�����@�>���������4�4�!� � ��<�?�<�<�V�V�����)�(�8�6� � �5�4�������^�X�V�T�L�K���,�*���C�?�`�W�G�C��~�1�0�)�&�STQP:<=>/0z|#� �-�*���� � �(�(�����h�f�i�k���`�c�`�^�������k�m� � ������ � � �� �/�3�� ��#�� �W\P�R�:�?� �#������<�8�@�@�&�'���[�]�6�8����������@�?�l�h�n�h�������J�I���v�|���:�:�n�p���� �)�2�*�0�d�f���E�H�3�5�(�(�������(�&�]�a�����3�,�Y�[�E�G�0�.� � �8�6�TU��0�2� �&���L�M���\�\�G�D�y�x�G�J�@�E�f�d�%�(� �!�A@YV~xx|���0�/�_�[�����s�p�[�X� � ���C�D�C�?�)�#�U�T�����S�S�l�l�Q�P�?�@�4�0�=�:�D�C�?�@�D�D�h�i�)�&�!�#�<�7�� � � ���S�U�4�7����,�.���T�V�������"�"���ghtywz#� � � ���wzxutv,-ZWyz��0�5�@�A�D�@�(�&�� ��� � �L�P���D�J�p�m�x�|�?�B���m�p�Y�X�R�S�T�Q�I�I�����M�M�llKMvylmuv|�!�'�)�L�I�i�n�d�f����3�4� � �(�(�������.�+� � �0�.�<�=�8�8���T�Y�*�0�]�^�:�<�ADTXt�t���,�0�W�W���Y�\�V�W�p�n���s�u���V�Y�,�.������������������K�L����&�*������6�?�x~+�+�����#� �p�l�K�G���P�S� �$�<�@�`�]� � ���G�G�����;�<��� �����C�C�3�3���5�:�!�$�H�I�0�0�4�5�����z � �s�x�V�X�p�q���� �� ��� � �#�&�4�6�#�#�0�.�(�,���O�O�0�3�"�"��� ��D�D�Q�N�$�&�,�,�����%'lmu|��B�H�u�x�L�P�c�e�O�Q�]�`� ��Z�]�_�`�Y�\�|����f�k�^�`���y~]eX[� �3�5�O�Q�1�2�M�P�[�[�5�6�=�@�����:�:�0�0�l�l�UX��9�8���#�&���.�-��� �!�h�l���|������I�L�>�C� ����s�p�|�|���G�G�T�V�=�9�����&�(�$�#���������������$� ��� ����<�5�,�&� ��������xx���������G�J�L�Q��� � �� ������z|U�X�.�+�,�*���<�:� ��"� ��� ��!��S�Q�n�i�����������|�z���-�,�I�K�C�@�!� �8�8������qvY^@C|{TSig|w����+�,�^�\���\�\�`�\�7�<� � �6�8��� � ���I�D�+�.�z}jm@F:4JJoo� �� �(�"�=�=��� � �:�;�Q�Q�������T�S���~gd���� ����D�B�X�X���p�r�c�c�r�r�2�0�2�3�c�b�o�n�^�`�f�f���c�e���8�8�`�b�$�&�|�|�X�X���|����p�k�4�0�����SU � � ����#�����������#�!�O�I�����]bqsvy ��@�?� � �� �}}ABDH~����p�p�D�D���R�T����?�C�4�9�s�s�S�V���c�^�)�)�9�<�B�<�P�P��� � �:�?�@�@�(�(�2�0���S�S���a�`� � �O�O�?�:�0�+���O�J�A�?�k�c�U�I�2�,�(�#�$�"�&�#���sv,�&�����G�C�H�I�ih��US�����#� ��� ��Q�O�V�T�����k�l�>�<�T�Q��� � �c�c�I�K�H�I�*�&���t�t�� �(�&�A�B�=�<�J�L�����vxrqqw|{��L�L���V�T�?�<�v�t�T�T�"����0�2�4�6�<�<�O�M�C�@�����x�u�x�t�T�S�x�x�Y�Y�v�t�T�S���l�m� � �� ��������HO <@dh��5�6���B�D���l�i�J�K���4�3� � �\�Y�!�"�$�$� ��jmy|,�/�p�n��� ��l�i�<�:���D�@�f�d���R�T�K�M�H�H�@�B�F�I���n�r�\�]�������|zSP ���x��|�B�?� � �)�(���������L�J�@�B�d�c���3�0���jpxvww<@��,�(�B�@�C�D�&�#���l�j�@�?�=�<�?�<�G�H�\�Y�B�=�3�3� ������"�#�0�0�j�h�O�Q�-�1�K�P�C�G�@�B� ����� �� �*�,�G�G�I�P���r�v�D�C�P�P�����f�d�H�J�.-\[z|`bx{<�@�����C�?�\�]�c�\�?�=���\�\�F�D�&�(�{zT�O�*�&�a�a���`�`���� �������O�K�&�&�P�O���J�J�\�X�v�s�e�c�8�8�l�l�K�M������ �/�.�|�x�M�M���u�t�ssKLVZGFggXZ����F�J���+�,�)�+�����$�"�?�<�����v�v�V�W�������������d�`�m�s�l�l�B�D���a�d�����������`�\�;�?� � �����<�:���*�,�Z`9=�NS��gg<= � �����!�"�0�.�Z�]�5�:��������AFpu��.�,�3�0�V�T�0�.�I�I�U�S�Y�Y�K�J�J�F� ��u�p�W�Q� ��z�p�S�N�Y�S���+�'�sw<�<�������E�F�,�,�?�@�<�:������ �������0�3� � �9�6������� � �?�?�5�4� ���"�X�Y���P�P�z�|�$�%�J�G�S�Q�� ��#�MM&�&�� ����������pptuFDts�� � �\�^�9�:�n�p�f�`�p�p�6�6�$�&������&�(���"�"�;�6�h�f�3�0������������ � ���&�%�~~������������F�G�S�R���8�<�6�6�C�B�-�,��� ��� ���,�&�`�`�P�T�&�(�k�n�rssqXUU�S�.�,� ��������zx����������B�<�5�3�r�o���������c�c�Q�O�Q�O�8�3�����"����<�4�h�a�:�8�!��ywWW:8D@[VKN-/OOKK�������V�V�����������S�O�O�P�V�T� � �����#�$�5�4�$�#���8�:�4�0���������������� ���"�%�� ��� � �������������8�<�n�r�*�+���z{����������bdG�G�H�D�\�V���l�f��z�Y�W�i�f�S�K��� ��I�G�O�L�h�h�)�(�"� �i�h�om41:8eaMKspd`���� ��P�O���������x|��&�#�8�0�8�4�&�#�8�4�M�K�X�P�0�&�x�o���Y�P�w�p�������k�i���=�8�,�(�����8�5�#� ���n�m�����b�^�h�c�p�l������z�D�B�����)�&�('ml:�5�^�Q���)�'�<�:�`�\�\�S���{�u���.�(�O�L�0�-���� �~}f`he� � � �+�+���)�&�����l�f���B�@�`�\��}�|�|�C�=�a�^��� ����)�$�������� �#���&�#�(� �~�}���`�c�%�&�z�x�$�&���0�0� � �prT�Q�&�(����"� ���5�4�5�2�n�k�&�(��� � �@�@�K�I�+�,�V�Z�3�6�(�&�0�0�:�8�wt����^�[���O�P�D�E�������������[T������L�L�����`�c�H�I� � �)�+�0�0�3�3�I�I�i�c�.�*�J�D���������G�G���6�3�O�L���� ��� � ������ �����(�)�� �K�L���Q�P�GH5�3���� ����4�3� � �0�+���-�0�@�?�&�$�+�#�\�W�������llMUWZ�����Z�[�x�|� ��/�0����� �=�<�2�-�V�Y�\�`�c�c�0�0����� � � ������-�(�� �F�@�Y�V�������$�!� �� � �:�7�jj||����z�x��� � �B�?�K�L� ����R�R�f�f�T�[�+�,�f�h�n�p�������ooOKVUge����#��<�<�zzz|���&�+��� �&�p�s�m�r�;�B�]�`�������5�:�� �]�^�J�L�x�w�����B�B� �&�� �2�8�(�+���2�5�������� ��� � �0�2�/�0� �� � �6�:�����3�0�6�5�K�P�������$�#���J�O�jjX\qt|}Q�P�V�\�O�O�k�j�������I�H���p�r�k�h�~��L�L�E�I�k�p���X�Y�I�L�� �$�)�<�?�e�f���O�Q�#�&�����FG�JHWW������h�h�\�`�#�$�?�<�A�D�����$�(�Q�S�(�)� �"�4�8���$�&�||xtgg2�0�|�z�-�-�L�M�9�<�i�j� � �(�(�,�+�4�6�<�<�S�S�I�I���i�k�"� ���8�8���,�2�*�,�&�(�&�#������� � �*�,� � �#�$�"�&��������������L�I�0�2���-�)�L�D���DD�� � ���0�0�Q�Q�m�o���\�U�����������������q�p����� � �fjOJmk``<�<�:�9�?�<����`�\�F�B�?�;�$�!�4�0� � �7�3�e�c���-�&����S�N�$�"�Y�Y�0�0�x| ��0�,�p�i�d�c�@�;�.�'�(�#�+�"� ��0�)�[�V�*�"��|�������|�x�������+�)�������� ����|}TU��$�$�+�,�8�8��������*�-�]�^���3�1�/�0�H�G���pppoWY������p�n�$�%�`�c�2�.�����`�^���v|����������U�T�&�&���������p�o�� ���$�&�<�=�r�s���+�,�D�@�|�|�T�T�x�u� � �����W�[�\�c�������� ��� � �yy������V�S�YWF�D�m�m�����@�@�H�I�,�*���������"�.�2���� �%�#���O�N�S�O�D�@�������O�Q�I�I�p�s�`�_�n�l�c�f�K�O�@�C�����v�x�4�6���c�i�����y��y�x�f�h�����f�l�?�B�h�l��"���� ���� �����Y\��� �����������D�C�W�X�� ���3�3�<�?�[�^�U�S�5�3�(�+�����4�2������ � ���(�*�&�(�0�0�p�p�%�!�����?�7�tt><=<*'K�D�i�h�i�f�|�v���4�2�����6�3�=�9�������,�)�6�2�&�#���h�f���k�i�����@�?��� � ����jl����������pm��� ����� �5�0�y�p�>�9�M�I�h�c�~�x�V�O�a�\�m�i�j�h�����S�S�.�)������F�@�m�f�s�k�?�8�t�k�� �,�&�V�Q�Y�X�&�$�*�)�C�B�<�<�3�0�d�d�#�$�&� � ��l�i�#� �.�+�2�0��� ����3�4�K�I�������U�V�����4�4�&�(�� ���igy|>>��;�8��� � ���C�D���*�(�� ���������������(�(�Y�V�L�I���W�V�~�����O�O�.�(���6�0�B�=���pmttqsJH��D�C�������m�n�d�f�����������`�f������5�0�T�T�U�U���p�l�f�c�����f�f�v�x�3�3�ptolWW,,<<��V�V�8�8�0�0�B�B�a�`�)�(�� � � �����������G�F�0�,�M�K�G�B�0�/�����;�:�@�D�������� �L�O�8�5���f�f�M�M�NN|jd��|�|�������L�M� ��@�C�Z^����� ��:�8�[�Y�?�?���zz����2�0�`�]�x�x�������a�^�.�,� ��a�^�B�<�z�v�t�p�����;�<�����D�D�=�?� � � �$����<�8������� �� �������~qp~}��|z$����� �:�3���<�8���R�L����@�?�x�p�|�t���K�G��� � �lm���L�H���,�&�?�@�x�|�6�:�l�n���� ��� � � �������X�Y�tw�������"���r�u���9�6���<�@� � �F�I�&�(���;�<�<�@�����]�`���,�.�����������$�&�P�U� �$�:�@���@�?�#�&�9�?�$�(�^�c���(�-�4�:�?�@�G�I�#�&���t�z�����c�h�u�x�#�&�SU �� � ���� �|������� ������@�B�&�'�f�i�M�O���U�T�0�/� � ���vqabeg~|gjtt � ��������� ����������(�(�<�9���U�V� ��?�<�����8�4�� �������)�*��������� � �&�#�H�D�/�+�(�&�D�B�Q�O�S�L���U�T�Q�Q�f�f���\�\�9�:�#��%�#� ��zzFD74qp ����� �8�8�&�!�p�m�c�c�i�d�T�O�!��-�)���,�,�(�*�(�*���D�C�)�(���P�L�&�&�G�D�������.�/�M�H�@�?�TT77|| � ��"���� �@G77��@�E���_�c�X�\�� �~��R�V���k�i���?�B�B�@����� �$�&�&���6�4�O�K�6�3�6�0��|��� � �3�0�&�(�!�#�(�(�wy��f�c�����{|rqjjst� ���F�H�D�D�&�&�i�i�������������k�m���S�V�v�s�@�C�Y�\���9�9�� �?�@���,�0�rzmr0�0� � �������l�k�������������|�|���������L�I� �$���� �ehZZ`bWS~:�?�,�-���o�j���:�4�P�O�@�C�j�l���O�T�\�`�5�6�(�(���h�j���`�]�y�z�GGml>="!YW@> � �SX"�!���������2�0������!� �#���� �������#�'�(�*�2���"�&�h�i�����9�<�����P�Q�,�-�8�:�%�$�,�,�,�,�O�L�`�a�����s�u�|�x�<�?�9�8�D�D�+�+� � �����������z|jlijtt@>����B�>�=�<�R�P�6�4�C�D���J�L�U�\�Q�Y�x�z�h�i���l�j�� ���`d}qy$�(�0�3�#�'�0�4���h�h�e�a��������� �"���:�<���6�:� ��9�=�e�d�l�m�W�V�u�x�����p�s�A�F�J�O� �#�c�d�0�8��� �(�qoPTT�O�L�J��~����~�p�m�]�Y�$�$�������wwqs� ���!��|�z�c�`�j�f���0�0�.�.�| �&�jp��#�(��&�����I�O�B�F�<:dbLJc`� �\] �!���������P�Q�[�]���|�z�J�J�l�j� � ���x�y�9�=�B�@�(�&� ������� �ijglLS;AXZz}������*�,�7�6�a�c�3�4�W�[�����X�[�L�L�N�P���K�O�;�<�4�5�!�$�����������6�9���� � � ���dg��\�\�#�&���@�B�D�E���� � � �#�!���H�I���� ���)�,��� � �}y~��������6�6��������� �#�$�#� � �,�-���0�0�P�S�6�5�x�z����� ��#�"�:�6�����*�)�� �����,�&�&�(�<�8�.�)�[�W�Y�V���3�,���X�V�������� ���@�@�*�+�c�`�c�c�h�f�H�E�u�u�S�R�s�r�l�i�4�4�D�C����?�B�� �&�#�������:>dlqw����� ���|���I�K���j�h���4�:�V�W�4�7�tu� �?�@�� �p�t�&�(�T�V��� � �,�0�@�@�{�}�Y�`�R�U�3�5�i�k���!�"��� � �-�/�.�*�(�(�}�� ����� �� � � �������7�9�k�j�2�6� ����� �#�� �;�=�\�^�+�+���XZMQtt3�2� �� ��� � � �48X[��� � ��?�@� � �@�D�H�H���B�A�<�=����� � �6�6�����������,�+�9�6�,�0�G�K�����z�z� �#�0�0�� �� �V�U�6�5�M�O�F�C�l�i�E�@���`�^�� �!�"�����~��������K�L� ��E�H�������(�+�(�,���/�0�*�)�(�+� � �����|}�� � �:�;����� � �?�@�Y�Y�f�e�a�a�{�z��� � ���(�+�<�:�#�&�W�V�L�H�<�=�� �����D�C�.�*�"�"� � �4�2�������!�"�:�<�Q�S�K�I�M�L�� �����?�=�"�!�<�6�,�*�%�#�"��T�Q���^�\�� �����3�5�`d��� ��� � �MP|XX[Y%�#� � � � �#� �(�$�b�c���U�U�D�D�Q�P�(�&���SU����K�L�[�[�#�!��������� �%�4�4�� � �!�:�?�x����c�h� ��&��9�<���n�n�����������@�C�c�h�(�,���B�@�$�'�0�/�����@�C���Y`jp��`dGH� �����=�@�#�(������ �H�L�(�0�0�6���v�x������������� �&��"���p�r�@�D�p�s�W�\������������ �\�^�h�l�� �0�.�&�(�Y`]b49KNvw��-�.���)�+�H�H�c�a�������h�h�a�^�������������S�O� � ��� � �(�)� ����EJ�����!�#�a�`�@�D�P�P�#�!�(�$�#�"�&�%����G�G���3�3� ������lm[`HM37[]yy���!� ��$�(�5�8� �#�I�P�O�S���Z�Y�G�G�M�M���������r�t�����c�b�U�Q�@�<���� �,�,�~6�4�����m�l���:�6�&�&�,�&���L�L���,�+����<�=�����ll`` � �<�<�x�w���h�i�Y�X���(�(�Y�\�B�G�� �J�K�I�I�T�S�I�L���8�<���� � � �������!�$�������5�4������#�������� �|08 lpuxoqjm��8�9�W�\�\�`���#�$�`�^��� ��<�<�#������x�z�(�(�&�&���%� �O�M�@�<�2�6���L�L�4�2�� ���UU``adop��8�3�E�B�$�$�Z�W�G�D�U�S�2�3���<<������B�D�8�<�I�L�8�:�G�G�lo��$�&� � �<�<���J�H�B�B� � ���#� �.�.� � �\�Y�������q�s�h�h���<�<�z�v� � �#�#����� � ���X�[�(�.�0�0�?�B�S�U���5�6�ztwX]ptoj��h�f���p�p���B�B�8�4�I�G�[�W�V�V������\�^�$�&�����G�E�L�O�Y�Y���T�P�4�4�,�+���O�N�xx ��<�=�q�s�S�P�c�c�T�S�����Q�L�,�.�I�J�e�c��~�Q�Q�������&�$�R�O�M�P�=�<�C�E� ������#�#� ����V�U���4�5�Y�V����9�8���E�H������ �� �(�&�R�O�3�0�pokj]bw{����@�<�����|�������%�%�3�3��� ��,�)���O�K�h�j�^�^�,�(���E�G� ���������gczt)�#�0�.��� � � � ���Z�Y���3�0�4�4�+�+���7�2�0�,�4�4�T�Q�!�!�<�6�����!�� ��0�.���� ���&�%�����vz� ��� � � � �G�D�� ��� � �-�/���2�0�t�q�4�5�\�^�$�#�9�<�V�T�+�&���$�(�f�c�:�8�c�^�(�#�.�)�)�(�P�M� ��=�<�����*�(��������<�<���;�=����� � �;�=�� ���ts��|~ � ������(�(� ��8�6�d�`�3�2�h�c�G�F�����a�`�D�@�[�W���<�8�"�"���.�2�M�L�� �&�$�����qv��� �*�0�&�(�#�$��� � �MPpq|zooH�K���&�(����� � �3�2���oogdmmdb������������v�x� �$���������X�\�Y�Y�I�H�p�l�����d�d���T�T�H�L�����c�a�3�6�%�$� ��������8�:�ej$�#�2�2�pq��L�L�V�V���h�i�T�V�����(�)�"�#� �����!���h�j�]�a�x�|�?�C�9�<�lp������5�4���^�\�@�8�l�l�6�7�"�!��������qvZ]CH07U_W[ � �#�#�0/��� ���z�v�D�C�2�.���$�&���� � �)�$���U�S�0�.�=�9�0�0�7�0���u�p�C�@�������|�y�~����6�9�������#�,�<�C���B�C���S�S���h�h�:�;�0�-�H�G��������@�@�(�(�.�2�4�4�t�p�J�F�9�8� �(�I�I���|�~� ��8�9�(�$�� ���$�&� ����2�3�7�4�� ���&�&�F�I�f�f�T�Y�@�@����9�:�L�M�����������!�$������������������� �9�8���H�E�$�#�s�l������� � �F�I� � � ��?�?��� � �� ���*�*���>�@�,�+�^�`�&�)�`�c�������`�a�-�0�!�#�D�D�� �(�,�D�C����������� �8�:��� �"�I�D�H�I� � �(�(���<�8�,�,���� � � ��5�6�3�3�'�#������� � �����)�.�-�.�3�6�&�&�������I�J�,�+�#�$�.�0� � �#�$� � ���(�(���� ����!�$�$� �$�4�7���y{������&�(������G�E�&�(�\�Y�������vx��T�S�����������������������������z�v�a�^�(�(�vv��� �/2����!�$�Y�\�n�l�?�?�f�i�k�h�X�V�8�9���deyyvu��$�'�0�3�,�.���u�r�@�<�f�h����v�����q�m�|�x�`�`����Y�Z�,�,��!���c�]�#� ���f�c�a�`�������{�x�0�*���&�#���@�B�����v�s���� �&�&�poS[0�3�C�F�=�@�r�r���(�(�\�Y���I�J�Y�W�K�E����������� ��0�0�L�L�� �<<wz$&jlpt6�2���P�O�0�0���~*�)�B�<�#��T�S���� ������\�V�`�V�G�@� � �tt($pqxtz{<�:���� �&�(�8�9�<�8��~�������L�D������`�^�L�D���U�P�4�2�Z]� �=�?�2�1�2�0�� �h�i���`�`����� ��x�v�����FLHKCG"LMWZxw\�^�C�I�m�r�3�5� � �E�I���7�4�� �����M�M���� ���� �\�[�&�*�OT����� ��� �#�<�<�h�i����� �#������.�,�z�u�f�f�v�x�b�a�&�(� � �F�I�0�,� � � ��sqjgB�<�4�3����� ��0�3�����8�8�'�&�S�Q�]�\���7�8�T�Q�4�0�|z4�5�(�+��� �#�<�:�&�&�|}yw��F�B�C�=�z�q�X�S�y�s���i�f�l�f�2�.���.�.�"�&�,�+���=�?������z�s�C�=���@;������%�&�T�O�f�d�@�@�5�4�&�#���?�;�#�"�O�M���.�,�����9�4������0�/���qo a]ljij��=<����^�X� ����`�Y�&� �,�+�X�V�"� � � �,�&�=�:�(�$�B�B�����DD\\&�(�D�B�����t�r�ml����F�H�������p�v�������#�$���*�)� � �:�<���O�P�� �"�$� � �6�:�,�.�����(�,��������$�$� �#�L�M���}~PM`b�������v�v�)�)� ������&�(�6�7�3�5���~�y�z�y�T�S�r�p�O�L���6�8�������DJ`]hj20MK�� � �v�p�l�j�I�F�`�Y�P�O���1�2�,�+���B�B�������"�#�����!�%�\�[�,�)�K�F�#�"�#�#�@�@�����������������z�|�W�V�����c�f�l�i�`�`�d�d� �$�Y�]� ����*�&�T�V�xv]]dh=A>>���0�+� � ��� �� ��Q�O�U�U���]�a��� ����� ������������� � � � � � �"�&�&�#���D�F���L�P�?�<���I�K�J�H�;�8�:�6�P�L��� ��2�0�=�<�2�/��� �#���� �(�(�(�&�+�+�!�������Q�K�r�k���\�]�?�@�9�8�%�"�9�:���L�I���h�f�<�<�q�l���x�x�����T�Q� ��4�3�.�+�mm\Zml��0�5��� � �`eNSKLzz ��P�S���\�]�����0�4�:�>�t�p� ��������� �����G�D�L�K�:�8�*�&�����ur���&�#�(�*�?�@�l�m�0�3�����p�l�B�C��� � ���0�0�� ���'�&���bd_bwylp&�(�L�P�0�/�E�D�a�`�T�T�������|�|���������l�f�c�a�o�o�.�/�<�<�������$�(�� �pw���� � �<�<�����1�3� � �<�:�[�`������������ ���i�k�D�C��"�c�f����\\ww|z�������� �������H�I� ��;�<�T�T�T�S�Q�U�D�D�L�I�4�4�,�,�M�I���"������4�0���O�I�.�0�8�6�����3�3�����V�R�X�V���e`<<[]jhej\]mlabsqyw����(�(�m�l�`�Y�|�z�������������D�D�r�u�����J�F������� � �c�c���"�$�#�#���6�8�I�O�o�s�q�s���I�J�qx=<TT~WXa`ps��jj''| ��������*�+����� � �4�6�"�#����� ��l�t�[�^� �#������� ��3�4�D�F�G�G�su48lmvy��O�P�<�>�i�i�7�<�����J�M���p�p�������3�4�6�6���O�P�&�(�Y�Z�|��@�>��� � �&�&�c�c�?�@�(�(�4�0�y�u�l�m�`�^���x�u�/�,�v�x�3�7�*�(�O�P�P�L�"�"�.�/���^�`�����C�<�`bf�`�!��L�G�k�h�F�D�W�W�<�:��� � �V�S�4�6�L�L�H�@�,�*�r�m�0�,�Q�P�v�x�\�Y�h�f���#��@�:�4�3�_�Y�d�a���������P�M�I�C�`�[�`�\����� � �+�,�vvgl"����*�,���4�4�� �|}����&�(���������`] ��"�"������ � �T�R��� � �WUI�I�������<�<���~|qs,�,���C�B��� ����������OR�����m�i���U�W�F�D�_�\�@�@�~�z�6�4���C�?�<�9���Y�V�T�S�w�x� � �?�<�B�D�����i�i�J�I�K�I�l�l���i�j�:�:�<>��H�@���+�%�i�h���<�:��� � �����(�(�}~z"�&�O�M�������e�i�#�#�3�3���g�e�@�@�-�(�L�O�O�S�4�3�p�p�^�]���������p�m�$�#���Y�W�\�^�X�W�8�8� � ���� �h�c�#�$��� � �<<ppegopUTKM||}|������� � � ���������%�(�K�J�Y�Y�l�j�������|�x� ����&�(�D�G�0�3���H�F�����������D�@�<�8���?�:�,�(�� �$���������N�M�������5�4�:�9� ����e�`�m�f�+�#�s�m��� ��W�U�'�&�K�I�5�7�G�G�B�?�6�7� ��mn � ���8�0�s�r���*�&�T�M�9�:�����^�\�o�l�<�8���� �vtM�K�0�.�����.�*�<�8� ����&�#�@�>�p�o�!� ������|�dh`` � ���&�&������ �DD<�8�Q�L� � �H�D����z�������������%�&�=�:�Q�P�K�P�+�,�������)�(�''�������z:�6����F�@�&�#����� ��stPS'$�����0�.�� �� �;�<�p�h���%$� ���7�6���,�-�)�,�h�f�O�P����&�#�(�(�i�e���f�`�I�G���|�z�I�G�l�j�v�u�T�V�"�&�J�J����b` � �<�=�P�L�(�$���?�<�mr��=�:���(�(�&�&���"� �,�0�����]�]�y�z�4�7�T�U�C�B�B�?�A�<���V�T�(�$�@@jgqq2�0�I�J�$�$�&�&� ���|�.�.� �!�������8�6�B�C�����J�E������ �0�+���������tt ����G�C�B�=��~���D�F�)�,� ����������� �5�5�"� �E�H�G�B�&�(�C�C���������� �2�3�D�D���0�.�S�T���UWgj[]}bgQUw|9<RXU[00ttX�Y�^�^�`�`���������:�<�D�D�Y�X���� �|�z���k�k���o�n�D�D����+�0���%�#���F�D�:�:�8�:�a�^�2�3���0�0�0�0�D�D���(�(�quv|<@<D@D�������0�6���3�6���B�H�:�6�?�?���|�x����������2�0�������Q�K�f�_���Q�M�]�V��������|�x�v�Y�V�12XVY�`�����I�H� ��\_@DHKLK<:gh#�$�� �`�\�m�i���������C�?�T�T�� �(�(�� �@�<�O�L��� � � � �$��j�d�������i�h���T�Q�������}�|�9�9�e�f� � �l�f�&�*�H�H�)�+�����8�8�� �~| ����,�*� ��K�H�C�=�&�"�,�*���7�0���1�,�H�D���� ��&� ���� ���Y�V�:�4�W�O��� ����K�F� � �����3�,�ssWTGJ]`MP��N�K�/�+���L�L�0�,�#�$�?�=�Y�\���vw����L�G�:= � ���<�<�C�C�|�|�l�i�5�8�l�l�7�8�l�i�0�0�`�[�b�a�MT sq� � �� �$�,�0�O�S�O�Q�G�L�+�,�[�\�!� �����=�<�*,�� � �`�`�`�^�\�[���vw28iq|)�/�@�D�`�`�p�t�U�V�� �l�p���7�8�0�,�H�G�&�(������ �#�&�P�Q���Y�V�D�C�@�?�P�S�����m�l�*�*�D�G���|����n�p�=�<���C�C�L�L���4�6���<�7�S�Q�#�#� ����(�!��������� �� ���� � �-�-��� � �|�y� ���� �$���������������+�+��� � �s�u�)�+���� �ZZ;Cmo��� ���f�d�&�'�-�.�Y�\�|�x�~�|�����a�`�r�t��� ����0�1�$�(���UYGGGHBDFF%(������~-�2�����D�B�C�A�|�|�������������#�#�UW����O�R�,�+�v�t�f�c�^�`�����������������/�3�)�,� ��#�!�&�&�G�J�?�@�����^�`��� � �hg?@DHWZ<DMP07KO]bwx�����h�f�V�Y�,�,�l�m�#�#�)�,����� � � �$�V�V�`�c�Y�\��c�h�C�D�8�?�+�0��� � ����#��"�8�<�����9@@B � ����� � ����������L�P��� ���"� ��i�j�&�$� � ������ ���6�8���:�6�-�0�����?�@�@�?�I�M�X�V�f�f�7�5����k�l���������!� �H�F�D�E�9�6���� �V�V���x�x�s�r���f�e�C�G�^�]�h�f���5�6�����@�<�V�T�S�Q�#� �*�+�M�J�,�(���\�W�,�&���]]24tq}~&�$�=�8�,�"�p�p��������O�O���5�8�;�<�)�&�0�-�(�%���&�#�@�@���zy<�?�� ������ �K�J�9�8�=�<�#�#������2�0����� ��;�8� � ���(�#���f�a�0�-���gftp����"��mlz����Y�Q�!��� �?�8�3�)�f�`�D�>�J�L�6�8�,�,�V�W�������v�v�Y�Y�L�K�s�p�4�.�P�K�D�B�)�$�L�L�B�@�+�*�lh~y����::@�?�6�5���,�+���D�F���c�b�I�K�H�G�u�s�D�B�7�:�L�H��� ��#�"�T�T�&�$��� � �� � � ������6�8��� �$�*�&�8�6�.�2� � ���~����������r�o�����a�`�m�m���h�h�Q�Q�I�P�$�#�����W�T���#�"���jl`bDK llMQ����<�?�D�G�=�<�U�S�.�-����L�L�1�,�4�0�utX[HJ � �<�<��"�"�#���� � ���4�4�3�4�t�v�l�l�0�,���a�f�:�6���P�Q����k�k����� � �P�T�#�$�8�:�F�C�Z�X�@�@�B�@�*�,����!�"��� ��<�9�`�^�����}G�G�4�5�d�^�����s�r�S�S�:�8�eez~������(�*�����I�K���6�:�8�<�?�G�%�)����� � �lp��� ���|{,.@A39z������&�-��� ��� � �&�I�K�h�f�������x�~���3,���������� ��S�W�K�K������������������ �� ��6�7�z��O�T�=�D�Y�c�� �`d|bg$)vzlp,�-�3�2�4�2�������tx����a�`�Q�T�o�r�?�@�5�9�?�<�#�$���3�4����� � ���� �F�J�P�P�U�V�� ��� � ���Q�O�r�v�=�?�����[�`���u�r�p�u�2�0�6�6����DG ii$�!�[�Y�)�(�� �y}KO~�������� � �-�,�h�f�_�`�G�I�r�p���c�e�^�]�n�p�P�O�7�:�7�8�v�u���a�Z�0�*�%�#�:�6�6�4�� � � ��� �����$� �$� �&�$�4�3�����8�8� ����A�;�#��9�3�&�$��������#�"�,�-�C�G������+�.�@�G�?�?�`�]�|�|� �#���i�i�����#�%� �"�a�^�����3�5�F�L�p�t�L�L�(�)��|���p�i�eg��0�0���� �������(�*���l�p�0�0�0�0���0�5�����^�`���&�&����� ����#�%���� �0�2�(�&�c�`�2�2�h�f���k�l�@�<�C�B�+�.�pqZ] � �ux��:�:�`�^���p�p�������������z�x�Y�S�����y{03�Z[���%�&�f�i��� �#���:�<�+�.�3�0�!�"� �$���X\������:�8�I�H�b�`�K�K�#�&� � �(�$�;�:����� � ���S�O��� � � ��)�*�#� �W�V�G�H�t�t���=�B�$�%�xv(�%�;�<�<�<�\�\��� ��4�6�6�3�@�=�@�<�������r�u���G�F�u�u�.�3�Y�\� �#���D�G�"�&�:�?�+�,�+�2�V�]���� �=�?� ��� �� �5�6�.�-�y�y�x�x�Y�Y���]�\�����$�'�uwho~x|qt?�B�7�<�(�#�d�c�L�L�<�?�0�0�,�,�l�l�<�@���:�<�j�l�������qv�������9�5�����=�<�T�V���2�3�4�4��������� ���[�Y�������<�<�:�?�9�:�������0�0�L�M��� � ���$�$�k�m��� ����� ����)0'1PSa`c�a� �$� ��G�G���l�h� � ���� �4�0�)�&�f�d�@�<�*�+�|�|�$�&�������$� �tx��-�)�D�C�������Y�T�5�6�� ���C�=���J�D�c�a�������YW� �/�)�=�<���8�8�,0xzjl&�$�&�&�����r�r�<�<�b�`�?�<�W�W���[�V���`�`�����&�#� � �����=�=�SWlpWW��<�<�������8�6�[�Y�e�`���v�t�����p�l�G�L�"� �[�W�L�J�^�\�h�f�`�]�,�'�5�3���`c>Bej ����G�F��|����������z�5�.�4�3�4�3�5�4�5�3�<�<�����"� �&�%�}bdNO48YZloss"� ���@�?�����^�\�l�h�������f�f�d�e�� ��� ���"�3�6�?�<������� � �z~xyOTel� �2�3�@�B����4�5��������&�#�!��0�2�~�x�D�?�7�4�2�0�~�z�3�0�&�"�#�#�<�<������ ���H�G�Q�L���h�i�"� �����������c�\�L�G��� � �|~RU\[--sq ><yw58txY�X�`�^�P�M��� ��0�+�(�&�#� �"����� � �@�?�5�3�"������ � �WXTUz}5�0���L�L�(�#�I�F�*�,���[�Y�<�9�����@�<�c�`�.�2�L�O� � �����+�+�:�:�-�,�0�2��� � �~}]]��5�6�O�K�G�G�D�@�,�)��� � �D�@���f�c���^�`�����������0�.�)�$�m�i���:�6�8�9�A�=�������������`�`�#�"����mnUTMK����4�2�i�i�I�L�M�L�D�E�3�3�-�,��� � �&�+���� ����������.�0�F�K�.�2�.�2������� ��� ���@�G�0�0�i�f�J�K���$�$�,�,�8�8� � �p�r�<�<�-�1�"� �������8�7�,�,�0�-�/�.� ��xu~��n�l�N�K�D�A�T�T� ��#�&�:�6�/�+� � �6�6�<�<� �� �$� ��� ���|}w|��3�2��� ��B�<�h�e�^�X�L�E�`�[�� �J�D� � ���&�!���~4�3�I�G�@�?�a�]�B�:���$�#���� �:�:�H�F�+�(�\�V� � ���D�?���������� � �M�O� � �zq`]*�(�F�B�A�>�8�8�^�Y�9�6�����4�2�5�0���&�$�g�j�`�`�v�t���8�8� � ���������qtz|��#�$�� �,�(�u�t���8�7�C�F�p�p�@�@�3�2�� � � �P�P�:�=�?�@�d�e�Y�\�\�_� �"���&�)� ������edhjJM��.�.�&�*���]�]�T�V�[�^�"�&�0�0���L�K�D�I�p�p���������m�i����}�v�v�����y�y�e�c�)�+�pqzw`_!"\\ $'tt���)�#������ ��X�V�D�G�j�l�2�6�� ����"�$��!�������@�D�o�p�O�O�P�O�=�<�Y�X���5�7���� � ��)�(�*�-� �#�"��0�0�0�,�f�c�������?�?��$�\�^�]�]� � �<�9�4�2�i�h�[�\�<�;�h�h�0�-�dd|}(�"���^�\�?�@�?�<�Q�P��� �� ��������V�V���?�@�+�&�\�`�0�0���:�8�[�\��� � �����������P�T���(�-�h�i�f�h���+�/�<�@�P�O�h�l���������T�T�����H�K�k�k�A�F�#�(�� �H�J�$�&�`�a�)�,� � �-�0�x�x� � �WXMPloXXmm"%0�.� ��$�$�4�4�I�K�<�9�p�s�V�V�T�S���3�4���I�G���$�&�H�K�-�0�v�x�F�H�tq?�=� �!�Q�X�J�K���������n�m�A�B�'�$���F�E�&�(�-�/�`�b�������b�f�f�h�I�L� � ���5�6�,�.�������"�&�&�(�J�Q�6�8�mt� ������� ��m�l�v�v��z�3�1�x�z�D�C�+�)�y|��Y�W���,�)�� �� �����wuHIf`����i�i�����Q�L���?�=�����m�l�J�N�l�i���H�K�h�j�h�h�0�4�c�f�.�0���� ���������}y����������m�n�r�u�� �*�(� � ���mm47������� � ��� �� �W�V�6�7�f�c�Q�Q�Y�T�������*�,�:�<�4�6�8�<���K�J���0�.���T�P���7�3���@�<���3�3�� ���x�|�8�:�����2�3�&�&�M�I�0�0�8�8�5�5�:�8���� � �l�i�M�J�������@�<���1�-�p�h�I�@�<�6�8�1�@�@�HFZ],)*,HM10ml � �����*�&���&�&���Y�Y���X�T�Y�[�?�=���4�4�:�6���^�\�t�q�l�i�G�F�����;�:���Y�Y�F�I�_�`�E�H�B�B��� � �6�6�������� ����� �9�;�7�8�3�3�J�H���[�V�&�&�(�(���H�F���?�?�6�7�2�0�.�,�����������$� ���������ljWTVXt|���hes�m�O�G���?:��������,�0�e�d�I�C�/�.�Y�X�&�&���c�]���������d�c�Y�V� � ��� � �7�5���"�#�v�r���?�A���5�4�j�i�\�^�p�t�,�+�����lq8�8�L�P�ddwyZWvsHI||XT����J�G� ����z�x�O�K�k�i���Q�S���6�8�C�D�&�+�)�,�c�d�����%�&� � �DHy~ ����@�?���0�5�����f�k���L�I���074<w|.2 ��NPpt������4�6�����������O�O�l�j�\�Y�������c�c�����y�x�������r�p���.�-���9�8�9�:�8�4����� � �;�8���&�(� ����(�&�-�(�����,�)�X�W�]�X�P�R���W�X�g�f�4�2�v�z�,�,�h�i�������ddw|������ �"�B�G���k�i�<�=���Q�T�:�?�<�<�c�f�6�=���:�<�������P�P�;�8�f�c�+�,�}~mpmm~ts����~V�V�������"�&���p�s�>�=�c�e�+�*� � �����#�(�� �� ������ �2�.�h�h�O�L�����B�:�����QW?�>�5�5�T�S���`�`���z�z������~��}����)�*������������� �@�D��� �!�:�@�B�G�3�:���<�>�[�]�ur|}ww**WX0.1�.�T�P�����s�p�0�+�5�0���V�O�)�'�^�a�0�0�������-�)�d�a�gj��}yz*. �� �#�� ���(�(�0�,�������i�k�=�@�K�Q���D�G�&�)�Q�O�P�U�.�0�?�C�T�W� ����(�*�i�k�S�T���f�f�8�8���h�h�D�C�L�H���4�3�PT8�4�<�:�|}����� �C�E�jlx}���� � �@D������Q�P����,�)� �� � �J�I�����������z�x�����0�0�0�3���-�3�B�D�U�W� ���!�����ml�������@�>�|�x���<�=�`�`�������i�h���#� �������~|� ��� ��@�B���9�=�����O�Q�� �;�@�c�c���������z������F�H���� �!������ � �STZTljGJDFy{xx � ������� �$�$�����J�H�4�4�P�O�J�O���\�`�&�(� ������"�!���S�T�O�O�������&�&� �#� ������ � ������������� � ���������:�<�<�B�����*�)�#�"�C�B�6�6�� �p�m�c�a������@�G�"�$�2�4�{xwmshl����#�#� �"� ��0�.�a�\�$�&�F�E�������x�r�,�.�PP \Z����h�f��|���������<�@�ghHO��3�5� ��G�G�t�v�X�Y�f�i�����f�d���x�x�8�<�STzx\]wyy|'( ,,`d �"�Y�Y�i�i���|�z�����}�|����|�����F�?�&�#�����@�@�]`/.��2�2�\�a�����2�0���!� �����,�0�7�5� � �G�F�7�6�J�I�!�#���G�G�(�)�����N�P�M�P�9�:�C�C�R�S�<�6�v�s���V�P��������?�@���Q�P�����nqhj��,�2�^�`�h�f�c�c�f�f�Y�V�?�8� � ���<�<�B�@�T�P�c�c�*�(���� �����SU(�,�+�,�G�F���������3�,�r�o�>�:� �"�/�.���O�Q�F�G�������������|�|���3�3���V�T��������� � ���,�+� � �����6�2�b�`�JFSLxv� �|�z�����8�9�"�$�6�6�� �V�U� ����C�C�"� �&�&�����4�4���Y�U�g�c�P�P�8�6�<�9�R�S�p�n���C�?�����$�#�:�9�BDSPjdmlMK������"� �������7�0� � � � �������p�n�%�&�@�<�[�Y�l�f�5�0� � �;�5�������� �G�C������������������(�)�(�(����� �� � ������� � ��� ����yy-�,� ��:�6�"� �f�d�����������c�c���x�v�@�C�E�C�����<�<���0�4�T�R�k�d���~xzL�G�D�C�\�Y�vt$�$��� �$�'�#�(�"�V�V�M�L���\�]�V�U�Y�T���:�:���S�P�U�S� ����?�9�qp��Z�^�}�|�C�D�<�:�:�;�9�:�+�*�s�t���� � �!�kidg ��� ���� �����M�L�K�D�s�p�P�K�O�M�������|�|��~�x�v�)�#�R�S���n�i���G�F�p�i�5�3�st\�\�w�v�~�~���������h�c���z�x�t�p�����+�(�E�F�P�Q�@�C�D�I�#�$�#�!�dfjmgeGHdeZ] ����?�@�#�$���N�R�m�p�^�`�G�K�?�B�V�X�8�=���� � � ���-�0�����:�7�7�;�4�9�`�`�8�<�?�D�c�h�*�0�`d��� �&�)�8�9� �"�"�&�V�\�� ���0�5�L�O�� � �!�<�@�� � ��Y�\�-�0���!� ���L�M�[�^�?�B�sv����#��a`��V�Q��� � � � ��!� � �"�#���i�l� ��8�;�*�.�I�M�3�5� ��� �������lqqsy}����3�6�(�(�3�5�3�8��������� ��$�,���.�0�,�.�� ���^�c�\�\�c�f���H�E�������"�#�pp����]`O�N�� �5�4�+�)�5�3� ��O�O�3�4�� � ������jjhj� ���4�4�0�3�?�=�.�3�,�,�6�5�0�.�s�t�:�8�#�!�������V�R�X�S�������p�n�`�\�|�|�|�z�P�L�9�4�h�g�`�\�m�l�����z�v�x�y�L�I�v�v�S�Q�|�|�����M�L�^�[�T�Q�8�5�� �"� �Q�M�8�6� ��a`TT~}llloHH]]$$��-�,�T�V�.�.����#�^�_������������� �"�� ��#����������.�.���� � ����5�5�~[X������������ ��P�L���}~W[AC0�-�&�#���f�a�D�?�5�0���j�i�T�Q�i�c�� �&�#���.�.���\�^�@�<���<�:���0�,�S�P�\�U�A�@�B�A�6�6�jl`b~*/xzPS������V�X�`�\�^�`�:�9� � �G�I���$'mm]`MOZ[HK � �V�W� � � ���� � ���O�T�B�?� �$�h�h�,�,����I�K�������{�x�^�Y�e�a��������8�9�Q�P�?�=�����C�D�@�C�=�:�j�f�9�8�U�T� ��7�8�6�4�@�?���+�.� � �D�D�G�D���+�+����$�&� ��`�a�,�0���0�.�L�Q�(�,�U�V��!�@�@����� �5�9�H�I� � ���@�@�%�$�L�H�<�=�c�h�5�8�]�\����`a57��8�8�I�D�X�X�C�B�&�&�a�`�+�)����� � � � �ee���0�0��� ��e�a� � �� �WZ0�0�����3�0� � �(�,�Q�U�t�x���I�G�@�=�X�S�c�c�w�u�B�@�4�0�s�p� ����*�(�D�C�K�I� � �����(�(�����twdh��� �OTux���� � �0�2�� �$�$�G�@���?�:��������� � �Q�P�V�V�,�*������0�.�I�H�`�[���0�0�C�@�D�F��� � ���(�)�S�Q�8�8����XX��"����g�f���m�m�Y�Y�8�8�2�2�L�M�P�S�a�c���~���������5�9���48OS��8�;�"�"�.�.�L�M���������@�D�L�H�����������M�O�����p�l�P�O�����\�[���0�-�<�<� ��~~tt��(�$�|~MJdj8�8�(�&�2�5�#� �us�� � � �!���K�I���@�@�P�S�|�|���:�;���X�X�����!�$�2�2�����3�6� ������ ��I�G�O�R�=�@�P�Q�`�^��!����v{|vw�� � ���8�:�2�5�"�)�� �(�(� ��"�&���llUX7�:������W�T�+�,�?�=�9�8����@�F������ �*�,�)�,���h�h�F�M�l�p�:�<�� �#�(���+�2�f�k�a�f�U�[���i�l�������]�a�`�a�N�O�p�p�o�p�f�i�D�C�V�U�>�@�#�$�M�O���<�A��&� �#�+�0�"�&�� �3�3���~~NUDKtvjj4�3�@�B�X�V���O�I�s�r���e�f�s�x�|�|��������� � ����� � �,�+���O�O�+�,�a�a�]�_������~�.�-����8�4���(�)�W�T���=�9�<�8�f�d�8�:�����X�T�H�G�K�M�(�+�Q�T�@�<�O�I�O�O�!� �=�>�&�&�� �B�@�L�L�����@�B�l�m� � � � �@�C�,�2�P�S���l�l���T�T�`�c�o�p�;�8�p�l���{~}~!�$���f�g�S�T�s�s�M�L� � �����P�O���n�m�K�K�4�3�l�k�.�/�������� �(�)�&�&���||k�h�9�6���#�#�����$�%�.�,� � �������� �#�!�3�.�T�P� ����!� �8�:����� ��swPUmo\]�����(�(�|�x�����l�f�x�q���m�m���X�Y�y�z����� � ����������p�p�x{joX`Q�Q���4�8�XS����,�)�<�?�2�2��������<�?���&�)�����rvtxqvB�B�0�.���3�5�X�[���v�u�!�"���>�=������������� �  ��<�=�U�W�� ���V�[�J�O�n�p�� �J�L�����D�D�@�?� ��9�8�8�7�(�(�@�C�$�#�� �',9@JOlp{|��3�3� � �U�X� .�(�"� �S�L�\�^�$�#�4�<�������ddgi �� ���� ��:�8�=�;���6�9���?�?�Q�S�^�]�����!�V�W�L�I���I�F�6�5�^�[�(�,�5�4�uv#�!�6�6�#�"���`�`���Y�[�0�3�U�V�qs��������|}����~|��le��4�3�3�2���)�(���:�9�!�"�|�|�$�"����� � �') d]a`����M�L�V�V�������Y�X�I�D�#������f�`�|�x�H�D�x�p�&� �pp��� �r�p�*�(�#�#���^�\���r�p�,�-�K�G�� �3�3�|�{�l�k�Q�L���c�d�m�l�`�^�3�3���[`�������� �#���|{]]xt~~k�f�c�`���e�c�d�f�t�v�l�l�����d�b�t�s�2�,� ��#��)�*�8�4�H�J�]d���$�"�H�D� � ���c�a�2�3�6�;�!�#� � �6�3�� �0�.�����oq:<ddhhUT��� � ���������6�5�$�"�[�Y�G�D���������D�@������ �������� � �0�.�S�Q�0�,�<�:���"� �n�l�0�0�0�4�K�G� �"�#�$�$�#������|~@�@�"� �\�]�����:�8���U�V� � ��~�3�3���S�Q�^�\�J�M���L�O�p�s�@�?����~�=�=�]�Z�,�(�<�8�C�D���2�-� � ���+�+�r�p���l�i�����y�u�\�[�a�`�]�\�l�m���/�3�c�`�S�V�B�F�<�=�� �s�p�#�%���D�H���+�+�~~W]pp(�(��������� ����=�?�#�"�C�C�9�9�����.�+�h�f�0�4�,�-�,�0�8�6�Y_����V�X���l�k���X�]�����G�I�:�8�O�L�Z�X� � �3�4���5�5���������mo`dL�M����s�m�)�)� ��+�.�P�P�� ���6�6�I�I�S�T���� �$�$�-�)�(�(�]�]���`�a�m�l�j�j�:�:�Q�T�8�<���<�=�����������#�!�,�+���v�v�f�d���������l�j�r�t�R�O��� � �������2�2���(�&���y}<<[Z � ���,�.�����!�"������ � ���<�@�hl��@�<�(�#�\�Y�?�;�.�(�H�F�������|�}�m�m�m�m�,�.�T�V�W�W�#�(���8�9�F�D�<�<�&�%�I�E���TW]`pp44 ��+�+���.�.������ �P�P�@�=�0�*�?�8�����vx.�*� � ���RR`^��.�+�l�k���S�Q�d�`���l�j�\�Y�T�Q�U�P�r�n���J�G�u�s�������n�h�C�C�?�<�*(D>``''je~tq{z��tq`�[���C�?���j�i�� �O�P�8�<� ��}zTSLM@�9�� � �!�(�#�J�K�/�0���������d�i������@�D�-�0�� �O�Q�}I�H�8�4�0�0�������������.�*�.�*�S�O�]�W�����+�(��� � ���i�f������)�(�V�U�����������6�3�gd� �����M�L�jj "} ��o�m�W�Y�>�<�m�i���S�O�F�D���\`���� ������*�'�#� ����� � �#�!�<�<�[�V�+�)�\�\�i�f�p�m�9�6�;�4�K�F�*�&����� �����(�#�}|%�#�����3�3�*�(� � ���3�5�O�O�2�2�~} ��,�&�W�T�������z�z�(�(�@�B�4�3�T�R�D�D�<�@�5�4���&�&�z|p�p�E�D�`�\���� �!�#�W�Y�2�0�W�P�V�P�O�O�p�p� � �V�T���O�M���������)�&�3�0�h�h�r�r�l�l��|�B�@�(�$�M�O�O�L�9�8�s�p��� �"�S�T���#�#� � �P�Q�� �M�S�X�Y�Y�[�Q�S�Y�Y���a�h�r�u�t�z�^�^���������������lm��&�&�8�8����� � �*�)���(�$�t�u�Y�Y�2�2�k�h�p�p�)�,�:�9�@�C����3�8���OP}~/�0�������Y�W�������=�<�����������������L�K�3�2�� �@Avv*',.ml�� � �S�P���9�<�L�Q�����|�~�?�@�4�9�C�D���8�:�`�e���<�@���B�D�L�J�Q�R�.�0�9�9�<�8���r�p� ��<�8�)�&���z~dglo���3�-�(�%�&�&�Y�W�6�6�S�S��� � � ����H�I�4�2���~���� � �J�I�:�4�$�#�����x�t�5�6�3�3�p�j�+�&� � �!��4�0�!� �����+�)�O�L� � �:�6�� ����6�3������������O�K�@�@�&�$�YT3�.������0�+�)�$�p�h�Y�P�p�k�������������m�i�4�0� ��0�,���,�+�~zz���g�`�(�%�(�$�<�8���.�,� � �,�*���������Y�\� �#�2�3�k�m�K�L�;�:���@�?�s�s�"�#�� �������������I�G���I�G� ����P�J�:�4�4�,�}]]|ya`gd21z�����#�#�+�(�^�\���f�b���������J�L�4�4�&�"�h�c�I�E� � �#�"�qm(�(�<�:�2�2�E�C�����r�s�$������<�9�I�H�� ���xyXZTP "DD'(GGyz��^�X�p�k�\�\�)�&� �"�� �W�[�t�s�?�B�W�\���� �`�^�6�6�� ���X�X� � ��� ��TY��<�=�,�3�F�F�4�6����������ae47]dz|*�+�H�J�"�$��&�S�W�p�v���������L�M�T�V�2�0�����������3�6� ��~����&�(������ �TWux|| ��������;�;�D�@� � ����� ��"�$������� � �4�8�V�W�5�4�&�"�#�"�M�L�s�r�z�x�:�;�(�(�&�(� � � � �ce&�(� � �9�9���� �*�+�������8�3�$� �Z\��$�$� ����+�,�c�a���k�j�N�L�G�I�(�,���� ���]`"�$�6�6�r�p�l�i���4�3��������� � �������)�,���������o�m��� ��!���� � �����<�7�0�)�C�@� ��8�8�0�0���3�0�C�B�n�l�(�&�P�M��� � �Y�\�� � � �M�L�=�<�8�:�&�#�5�3� � �9�7�_dUU����4�:�:�B�8�7�]�\����������x�~���x�v�f�k�S�Y�<�>���hdtr��d�a�8�5� ����0�2���?�B�!� �P�Q�H�G�D�F� � ������,�+�I�I�l�m��������� � ���������}�� � �R�Q�W�Y�p�r���l�n���i�o��� ��6�3�,�*�Q�R�J�F�p�r�n�k�(�$� ��Q�K�6�0���#�#���0�*�:�7�*�&�!��@�?�T�Q�V�R�S�O�Q�O�V�Q�z|PPll2�/���8�8�C�F�9�8���)�*����|�T�V���O�R�(�'�$�&�,�0�`�d�����0�4�Q�T���x�|���n�n�$� �I�I�L�J�I�L� � �.�3�c�a���v�x�^�a���%�)��� � �4�5�.�2�������7�<�n�r��������=�D�� ���I�H� � �4�6� � �,�.�� ��#���� � � �#� ����"�(�\�]�3�4�S�T�C�K�,�0�����dj&�(�(�,���Z�Y�9�@�9�:�3�1�������<>w|tyy}ddZ[ � �4�4�#�*���� �����)�+� � �u�u�j�p���H�L�v�x�U�V��!�����������U�S�?�B� � ���lq������(�$�pt'*47 EGMP TXxy � �������P�L���������x�x�����t�r�G�C�<�:�)�(�e�d���;�8�<�<��������J�J�,�+����#�9�6���?�<�t�p� � ��� � ���L�L�yy``<<LLqp��T�M�����x�r������� � �X�V������������SO}Z�V�������`�^�������9�:�V�U�E�D�����.�0�������&�+�CDKQhmoq��������=�A�d�`���L�J�"� �������vv|}~� ���E�@�v�t�}��� ��Y�X�@�<���p�p���x�v�#�%�@�>���w�x�S�S�pqTXll��omD�C�G�C�4�3���qp� ���6�7���&�%���@�=���``}#�#� � �����c�f�D�C���S�T�����01��tx��&�(�$�(� ��+�0�O�P����� ����� �,�0�\�`�C�C�Q�V�d�f�x�{�V�X�|�~�#�$���u�y�T�S���8�:�� ���$�+�0�2�c�f�l�p�2�4���X�\�I�L�<�@�!�)���4�6�T�W�?�C�"�$�(�+�\�]�^�a�4�6�6�:�C�C�+�*�j�f�V�[�\�^���-�+� ��c�`� � �3�6�� ���V�Y���k�l�@�E�U�Y�<�D�$�(����� � �x�s�k�i�(�)�\�]�0�3�;�:���� ��� � ��`�^���`�]�����|�y�������� ���������t�v���?�B�L�Q����� � �G�I�|�x�������)�+�&�!�O�O���� ��@@ "��\�`���� �p�s�#�&�G�L�`�c�8�?�S�W�/�2���+�+����i�k�I�I� � �� �$�$����� ���������� � ��������� � ���&%!� �G�G�1�0�0�,���8�7�^�`���T�W�.�.�:�9�X�[�^�c�\�\�����������GD����f�d�S�S�G�G�0�.�D�?�]�[���������������5�8�J�M�L�M�����&�&�� �#�#���(�-�=�:�@�<�3�2� � �������5�5�����T]DFjoTX � �Z�\�����D�@���D�F�y�|�D�D��y�l�h�K�J�D�B�I�C���4�6�*�)�����#�"� ��2�/�V�Y� � �� ���������x|zxV�Y���Q�S�&�&�v�y�I�L����� � � � �U[Y`GL(�*����F�H�3�6�����������"�+�����p�s�K�P�+�+�0�4� �#�y�z�p�p���5�5����� 'PX)0PUosdi`cwz� ���2�0�B�?� ������S�V���wxJJ|~?�@�2�0���:�8�Q�O�4�9�<�<�B�F�:�<�a�d���4�5�?�<�,�+�� ��������W�S����"��(�&�<�8��l�e�J�D�� �&� �5�2���� �``nj>>8:\Z � �� �G�I�2�2�Y�W�H�G�G�I�i�l�Q�Q�/�3�0�3���|�� ��_^xw?�9�c�a�����v�x�U�U�p�l��� � �(�(�I�G�$�#��� � �8:MQ@�@���l�k�`�c�:�=�������<�<�?�@�,�+�����~| � �:�:�4�0�J�L���W�X� � �������@�>�@�B�z|`]>@DGcd��k�f���������L�O���Q�S�0�3�� ����L�N�K�N�5�7���~~����(�&�����������(�*���K�I�i�i���� �&�+�D�F�:�8�O�P���&�+�c�h�P�Q� �� � ���oomp���#��������� �$� ��,�0�|��{��c�h�@�D�3�4�<�<���$�!�Q�O���!�#�O�P�����XZPTNUgdSWll� ���I�L�3�7�<�<�O�R�l�n�|�|�����)�(�X�S�����������@�@���"� �C�D���i�f�����$��e�c� ����2�2�6�5�M�I���H�I�2�6�c�h�|+�)���x�v� � �?�?������Q�X�`�i���������&�,�s�t�e�h���q�p�������X�Y�L�P�Y�[�������I�J�X�X���S�U�vzqwDE $����&�*�@�@������ �@�@�6�6�S�R�4�4�O�L�G�E�3�3�e�c�h�h���V�X�c�f�Y�\�lo.�(���(�&�-�(�"�&�k�l�u�v�S�V�M�J���v�u���������������G�I�S�T�h�i� �"�:�9������*�*���#� ��� � �������,�0�;�<� ��&�&�5�5�0�0�.�0�f�i�y�{�S�V�(�)���#�$� � ���4�7�F�I���!�!�F�H�L�L� ��c`FD} ���� � �O�L�������V�V���3�6�G�C�C�C�'�&�[�\���>�?�=�;�=�<����dg|~xx�������$� �����,�,�"� �i�f�3�.�5�6��� � �W�Q�`�]�a�\���8�6�?�9�H�D���geWY����O�N������� ��)�&�$�!�(�+�I�H�*�+�P�P�����(�*�8�3�}zgdvvedpprt34hl<>[�]�`doq~~� �V�T���8�:�!�#�,�(�"�$�F�C�U�T�t�m���`�`���^�`�2�4���@�?�D�@�{�x��������������A�=�V�S���WUZ[PPIF2�0���I�F�#��f�a�t�l�2�.�+�(�mpjg ��+�(�� ���)�'�4�0�:�9�U�Q�����V�V�J�G���K�G�I�G� ������ ��:�4�dh6�5�O�O���1�.�T�X�[�W�h�f�$�$����������4�3�����|����*�*�3�/�����,�,�0�0���l�i�O�I�a�`�*�&���M�M�ssqqxu~G�G�Q�K�T�Q�q�o��� � �f�a�~�z���C�H��� ��0�3��WWGJ(-advw^�Y�?�@���������� ���l�p�V�U���z�x�k�i���t�v�����f�`�B�@�0�0� � �3�.������ � � �� �� ���k�l���O�N�(�(���0�2�n�l���C�C�W�S�V�V�+�*�+�&������ � �lo,-ll|y � �&�#���""ln|zP�L�K�G�D�C�D�C���\�\�n�l�� �����H�J�^�\�����������a�e�V�T� � �%�&�����G�G�@�@�m�p�����us&�&� ��@�?�����@�@���x�|�)�,�z�|�6�7�G�L���O�P�Y�V�&�$�� �-�+�� �z|��������L�H�&�%���d�f�"��`�`�S�T�5�3�(�(�]�]������� � ���:�8�$�&�C�B�,�,���H�G�4�6���<�<�<�<�� �D�M� � ���������:�<��������8�6�L�L� ��f�f�W�V���G�E�,�&�|�x���,�*�2�0�����:�;� ��^�c�HG�����3�3������ �6�3�DDZ`mp � �)�&�� �<�<���^�\���i�i�+�,�F�B�3�4�G�C�W�T���������B�@�K�G�PO} �� ��@�B����0�/���i�k�R�S�4�3���c�c�s�t���6�0�����3�4�)�(�O�H�8�8�� �a�^�y�v�����#�&�����,�,�����.�-���W�V�~�z�l�i�0�,�<�>�l�k�L�I� ����"� �2�2���<�9�RN]]��������h�i�������������)�'�p�l�6�9�����;�8����� ����<�6�*�(�c�`�M�J�x�s���T�T�4�2�(�#�M�L�]�T�2-I�H� � �� � ��7�6�\�\�#�#���������zz|���0/pthm99�� ��� � � �a�`�#�(�j�i�(�,���/�0�&�#�����.�,�)�+�.�-���z�z��� � �2�5�� �" @@f�c�h�f�!� �V�V�������i�k��� ��:=4�3� ��0�3�3�4��� � � �"�tw��|~$(ts~~����0�/���C�@� � �"�#�� � � �Q�T�c�a�^�a�����z�z�]�a�8�<�O�M�9�;�Q�S�I�G�C�=�����O�M�(�)���r�r���SMzu$ GDpq���3�,�D�?�2�-�����Q�O�G�C�4�6�6�4�����H�H�����(�&���#�%��#�B�H�6�2�'�$�#�(�Q�U�H�I� � �G�D�8�8� � �Q�L�46O�O�ji��[`cjptqqGD)(qsmpTSMO,�(� � �<�;�O�O�c�a�s�u�@�@�v�s�2�4�`�`�8�6�G�H�T�S���O�S� � � ������K�L�|�z�0�0� ��"�&�L�K�"�"�L�J�\�\�J�J�����n�p�r�t���#�(�#�&���������jmmr>><>>>PP/-PO8<z|��h�e�2�6�D�G�$�#���P�O�z�x�f�e�i�f�n�l�v�s�p�p�������O�P�@�@�!�"���G�J�p�s�G�K���� �� �!����~9�>�(�(�&�(�z��x�|�2�4�:�?�3�4�&�(�#�(�%�(���5�6�����������8�<���l�k�m�p���1�4��� ����O�N���3�0�B�A���om��Q�O���@�8�p�p�����9�5���Y�Z�h�d�Q�P�=�<���� �����pp`]xv][tvWX��3�3�S�P�,�-���4�6�0�0� � �:�8�Y�X�h�c�c�`�c�\�i�h�D�G�Y�V�h�f�l�k�6�5�B�F���<�@�\�Y�<�@�0�,�C�C���� �E�I��$�� �,�0�f�f�� �^�`�:�<�D�B� ��&�#�^�\�L�K�����n�m�P�L�U�W��� � �������D�C�A�D�� �������0�.���v�t���"����B�?� � �� �|z\]b_CD��+�+�X�T�P�M�����?�9�g�f�`�`�����z�u�����c�`�d�a���O�O�������8�6����� �!�#�$���m�l�l�k�k�h�m�o�����V�R�?�=�c�c�B�@�O�L�0�,�u�s���D�@�P�P� � � ��^�[� � �#�"� ��C�C���9�7�*�$�c�a� � �m�l�(�#���D�C�6�3�C�B�%�$�#�#�4�6� � �p�p���Z�X�F�D�(�&�ddWXz}yy.�2�=�;�f�e�[�Z�]�\�a�c���p�l��|�v�s�[�W���qs����JMadjj� � ����)�2�0�2�=�@�?�@�=�B�O�S�(�*�~��(�$�����r�r�4�3� �&�X�]���� � �&�,�3�#�!� 'w|dj��^aCB � ���(�%�����I�E�w�u�O�J�;�<�C�@� � �\�\�,�,�<�=�"�"�(�*���G�H���|�x�1�2��� �$�=GDJ.4W]7: ������T�Y� �#��� ����(�$�����L�M�������8�4�(�$���6�6�%�#���� ���&�(�j�k���$�&�I�I�c�`�|�v�5�/�\�\�,�+� ��|}��<�9�Y�X�L�I�?�<�yxhg?=��� ������}������ ��M�K�L�L�0�(���?�<���"��,�,�`�V�0�,�u�o�`�^�O�L��{�a�]�@�9�P�M�M�L�� ���,�&�*�&�� �.�$�?�8���T�O���|z><|y]`42*�&�m�l�h�f�B�C�i�h�l�l�O�N��|���3�.� � �D�@��� �"�\�Y�K�G� �� � ���L�L�B�A�6�4�<�=������G�E� � �!� �&�$�lj���J�G��x�J�D�c�^�e�d� ��6�0�"�� ����}dg`]$� ���Q�O�!� ��� ������G�C� � ��� � �����,�(� � ������� �#� �<�8�&�&�:�6���9�5���D�E�6�6�� �T�Q�����`�]�����Y�Z�S�S���;�:�|�}���<�?�G�H�7�7�r�m��~�p�l���(�&������� � �#�!�������\Y���<�7����� ��������&�"�&�#�T�I�G�<�Y�S�S�M�M�I�`�`�K�I�G�@����x�O�L�����lh�� � �&�&��� � �����@�C�� �3�4���|~�������������<�:��� � �&�*���6�3�9�:�(�&�,�-�J�J�L�Q�������(�*�a�d���`�c�?�@���)�+�?�C� � �#�$�����,�/�@�C�)�,�3�6�(�,�l�q�6�=� ��W�_�#�(�%�(�?�@�C�H�X�^�0�3�� ����������������(�,������ �3�0���L�O�&�*���a�c�x�v� �#��������������\�^�@�@�x�v�e�f��}�]�\�^�^�S�Y�M�O�����0�/�A�<���3�0�8�:�=�=�S�T�)�*�2�5�=�?�"�(�!�&� � �G�F� ��� �O�L�<�8� � �4�3�8�:�<�9������������T�R���9�4�����-�,�.�-�<�:���L�F�K�F�8�8�$� ������������ � �H�I�����+�+�K�H�mjpt<@~.�+� � �`�[� � �4�2�� �#� �<�?�8�8������d�^�#�!������M�I�0�.�0�0�><MKHH44sp jn ��(�$�(�*�X�T�&�$�������f�h�*�)��� ��<�;�<�;�&�)���C�C����&�)�*�,�#�$�"�"�V�V�T�S�H�C�?�?�5�3�����ojx|]]��� ���<�<�4�7� ������wrQTy~y~(�)��� � �� �7�<�O�P� ��SW��� �� �@�C���f�f���\�]� � ���3�5�d�f���`�_�O�P�j�i� �!� � �"� �0�0�2�0�c�a���lh}|hd�� ����(�$�|�v�*�(�<�3�h�c�|�x�6�2�`�d�,�(�����+�)�&�#�(�&�%�#�X�V�������x|��5�8�C�A�fd������z{������\�\��� ��$�$�������7�6� � ���3�4���� � �� �F�@���� �z|ppNK ����8�6���I�@�,�$�&� �tmSNFFljJ�C����OUxxMPmp??mhmjM�I�2�.�:�:�=�@�����|�x�F�F�M�L�c�`�0�0���g�c���O�M�z�x���f�d�[�W�J�H�d�c���� �)�(��������&�*�����������yx@�C�� ���&�&� � ���w|`` � �������#�������*�(�� ���5�3�V�T���i�i� ��:�6�����T�V������ � �G�I��� ����zv � �G�D�`�a�r�p�G�H�X�Y���d�f�c�a�����`�\�������?�@�@�B��������T�T������������ �.�0�&�(�,�*���V�U�#� �����X�U�;�<�U�T�@�@�p�o�b�^�3�3�����~� �2�.�6�5�,�)�Y�Y�����"�$���G�G�#����3�3��� ����\�\�I�E�t�q���M�H�M�G�� ���+�+�Y�\�����!�"�#�'�������z�z����|�s�r�,�&�7�6�"�$�V�Q�����S�O�D�<���O�M�8�4�O�H�X�Q����i�`� ����]�Y���&�&�M�H�C�F���T�U� ��,�,���B�B�)�)�����xyyx ��� ���-�(� � ���$� �O�L���h�h�^�^���������r�t���^�\���������c�h� �#�eg��������I�I�W�T�T�P�#�!�������)�(� �"�2�7����� ��� �0�,� � ��� ��(�&����� � �,�,���� �����B�<�������~~y{xU�U�� �I�G�v�s�����������U�S��z�T�V�L�I�f�f��� � �po <@"$ln��������$�$�,�*�����.�+�,�.�f�g�#�#�� ���4�4�I�I�8�;�����"� �������0�,�O�I�D�C�?�<�G�B���� �.�)�@�:�������d�`���Q�L���<�8�<�9���WXcd plC�@���C�B�B�?�<�:�8�4����"�<�<���l�r�]�_�A�E�h�f�&�(�5�:�� � � � �O�K�V�Y�v{����WXw~�������%�)� � �� ���QP�� ����(�+������ �"�#������ ����v|����)�.�X�\�^�`�����������,�0�� �H�O�#�(�5�9�S�[�� �*�,���MR{~|��������G�F�"�&�l�k�0�6�&�*���I�L���^�^�<�<�h�f� ����lq14� ���X�Y�t�r���[�[�&�(�x�r�l�m�5�7���� �|�����Y�Y�`�c�4�6�G�L�Q�Y������ � �������@�@� � �Q�S��� ��pm�� ��=�:����$�#�I�G�)�,�@�=�3�,�� �����ddej46������\�Z���0�0� � �@�>�`�]�������k�h�i�f�c�]���h�c�?�7�$� �4�0�*�'�(�#�M�L�T�Q�$���� ��jiwuxpl~|vq~gd`\����&�"�����,�+� � ���&�#�L�C����z�s�X�S�����~�|�.�,���I�D�����5�0� � �C�B�0�-�J�G�T�O�e�c� �� � �/�)�@�9�)�#� � �����P�H�%� �=�9�J�E�7�:�6�0�&� �� �� �~~ *1>@�gdmm��� �f�d�I�G�Q�O�����I�C�<�:�4�2��� � � ����������`�`�5�0�$�#�E�B�4�4�:�6�~�|�D�G�P�L�8�6����}|MI��������� �����`�_�C�D�5�4�p�k�����Y�Y�I�H�+�,��������+�(�#� �@�@��� ��p�h�O�L�P�K� � ���P�K�B�=� ������O�G����?�8�(�#�t�r�.�,�� �r�p��������}�^�\���������������q�r�(�(�xz#�#�6�6���K�L�c�g�M�I�� �����yt����[�X�I�H�`�Y��|�5�4���,�(�������?�:�K�I�M�O��� ��������*�"��� ��`�[�H�G�b�`�S�T� ����8�9�l�f�G�G�k�j�l�l�C�F� ��'�(�| � �G�E�����PS|ydd$$���� ��<�8�V�W�?�;�,�(��|�I�J���S�O�l�i���l�f� ��h�`�,�)�?�=�&�#�&�&�����+�(�a�\���i�h���`�V���&� �L�K���h�d���v�t���&�%�)�*�qs@Bqw@�=������h�d�`�^�3�2���jj..uv ��G�D�Q�O�������� � �}�x�u�u�|�|�m�m���p�r�\�\�3�0�W�V�L�K���yx.�)�c�e�� �9�6�,�+�aa��<�;����`�`�(�$�u�t� ��B�B�'�&�$�&���� ���)�#������|�����e�a�|�v� � �.�,�B�?�H�B�+�)�4�0�D�@�poIJ[\��c�c�L�M���?�<�6�8�Y�V�2�0��������,�+�||��Q�O�Y�\������ �����MK��GE����?�<�Q�L���M�O�Y�[�0�2�����@�@�<�9���.0rwagps����+�,���ptwxlm����T�T�d�c�L�K���z�~�.�.�F�G�C�C�����p�t�����q�m�(�(�^�\���� �-�)� � �&�#�8�5�zzywed|y]]$�(�D�F�����������E�E�be17k�m��� � �*�(�,�+���k�h�T�S�(�(�IJN�O�T�Q�"�"�x|6�8�Q�P�d�a���z�v����C�B� ����K�K�l�j�$� � � �;�8���`b6�<�=�C�z�z�����<�?�l�p���5�7���)�,���)�+�#�(�UZD�G�qoDDTTPO(�&�������(�%�i�k�?�@�r�s�U�T� �!�����KG������3�3��"�6�5���I�G�}J�M�O�O� ��3�8�p�p�� �V�\�l�i�&�(���B�C�@�D�j�k�z�z�C�D�)�)� ����<�;�����#�$�\�\�������U�S�s�x�����)�(�m�l�(�,�jl.�3����� � � � ���������S�T� ��D�E������"�&�(�(���,�,���K�K�s�x�L�O�p�m�.�1�<�<���;�:� � �9�<�-�3�?�@���XXV�U�� ���p�o�6�8�I�F����� � �3�3�2�6�Q�T��!������� ��!� �����[�Y���X�U� � �E�D�x�x�5�:��� �!�#�"�����8�;���(�)�f�c�������������8�8�|a`JJTXtx@@sq �#�q�t�o�v��"���&�(� ��P�V��� ����l�p���������6�:�1�2�B�D�B�B�`�^�f�f�����F�H�*�,�o�n���v�x���#�(���������@�I�y| ����@�C�� �x�z���o�m�K�O�O�Q��� ��B�@�I�K�[�\�l�n���K�I�T�T�I�L�7�8�� �\]epSXuz��?�C�M�Q�@�@�k�l���<�<���@�B�� �����X�Y��������� � ����,�)�����lp9?�-3$7: SW������B�B������� � ������#�,�0���[�`�� ���?�E�T�V�g�g�O�P�O�Q��"�.�2�K�O�d�c�X�\�c�f�&�+�J�L�@�D���$�&�0�6���B�F�L�Q�$�&���j�h� � ���*�4�����#�&�tt� �%�$� �� �������`�\�:�:�\�Y���P�O���Q�T�����ejpt>CqvG�J�y|wxNTdg`�]�&�&�,�+�� �Z]����:�<�C�D�� ���+�*�yx���� ��=�<�m�l�3�0�**WT���EH&)87JHhlGG��zlr � �G�E�(�.�{�z���x�~�|����f�h�����|�u���H�A���� � ���W�T�z�t���,�,�L�L���B�C���\�^���Q�U��� ��u�v�����4�6�8�<�)�)���T�T����z|DA&�&�@�<� � �}X]W\~69tw� ���&�"�5�3��� � �����n�h�d�d���8�7���6�3�0�0�A�B���X�X�� �8�7�����������J�F�(�(�x�x�i�i���k�l�c�c���~��8�<���yz||ei��st��/�/�x�x�n�p���v�v�D�@�@�<�L�H�0�+�<�8�a�^�0�/�1�2�����&�#�8�9�9�;�xt~~lh��[�Y�F�D�?�<�8�:�� �(�'���"�"�E�F���kl������&�'���F�D�`�c�6�8�����N�P�l�o�(�,�{�|�Y�]�(�+�`�c���]�]�gi{|����dgG�G�� �,�,�3�3�^�d�S�T�X�Y�#�"�-�,�1�3����(�0���[�`�������a�c�� ���:�8�����U�U�f�c�Q�Q�0�0�����������c�c�v�v�c�a�������]�_���~������"�#���,�(�[�\�p�p���C�B���\�\�2�5�9�<�B�@�0�3�����I�L���c�a�8�:�)�,�<�?����� ��P�T�,�,��� �� ������� �^�]�\�]�r�s�U�W�G�E���#�&���Q�L�A�B�&�#�����,�.���#�'��� ����]�`����"��� ���$�7�6��� � ���|~oo������ggmp}|@�?�S�P��|���Z�U�k�f���P�K�G�D�\�\�t�p���Y�Y�u�s���^�X�Z�V�T�S�4�0�@�B�� �#�#�Q�Q���|}��� �|xsp+/geed2�-�0�0����������������O�L�#� ��� � �������?�<�Z�Y��~�c�c�a�\����i�d� ��[�[���� ����0�)�O�K�$�#� �� �� � �K�G����������+�&�l�h�;�6�5�/���L�F���G�G�0�,�C�@�(�(�&�&����H�C�� ��������r�p�?�?�\�X�����$�"�0�,� ��#�!���� ���C�?�8�5�p�p�T�S� ��&�$�� �-�,�O�O�S�S�J�I�q�u�z�y�<�9�"� �bdUXwt[ZPTUP��� �������8�8���;�7�M�I�`�\�D�B�!�#��� � ������^�[�"� �&�"�"� ����\�Y� ��Q�N���u�o�c�c�9�8����� ��J�I�T�P��|�\�W�u�p�k�f�M�H�x�v�#� ���$"���� �#�������L�P�|}��;�<�f�h�3�4�����4�4�>�:�L�K�T�Q�^�`�#�"���|����U�S� ��6�5����>�?� � �������j�l�V�U�c�a�3�6���:�:�]�`�$�%���@�@�� �?�C�Y�W�UUpr��������$�"�+�*�d�c������|�c�a�����G�J�k�i�|�|�=�B���:�;�����||��� �,�)���������M�L�,�*���B�<� � ���� ����HGxs � ���� �7�9� � �8�9���(�+�<�@�4�7�l�l���f�f���l�p���Q�T�x�|�����������������S�X���l�l�0�0���� �UX2�2�X]07jr_`dd}~hp����������� ���x�Z�V�6�5���~z0�3���L�L���:�:�L�I�����$�$�i�i�x�r�?�8��|�9�4� � �F�G�<�<�c�`�g�c�6�4��������� � � � �@�@���8�9��� �� � ���8�4�� �r�r�:�7����� � � �� ��7�5�6�1�#��H�B�,�#�.�(�+�'�o�f�s�p���{�t�J�J�2�.�\�Y�P�I�*�(�I�F�����$�#��������@�:���`�X�e�b���|,�(�+�*�� �nhghtp��k�i���9�6�+�$����������(�&�l�h�,�(�� �#�#���f�g������z�i�h�,�+�+�,�������|�v�J�E���X�S�`�`� ��@�<�p�p�@�D�db$ KM � ���m�i�B�C�'( XY�� � �(�(����� � �;�:�a�`�N�L�����H�J�4�2�jp&�(�F�H�xw��H�I�����!��� �gg||eewv � ���L�J�op4�0�������������u�u�k�f�L�L��y�����T�T�$�!���QSQ�P�(�$�2�0��� �� ������O�Q�*�2�l�r���n�p�u�x�S�S�\�]�� �,�,���������GK~{~y|@F� �G�G�*�.�Z�Y�Y�Y�����Q�Q�@�C�E�G�`�`�w|edhh0�/�f�i�|z������@�<�$�#�0�.�V�Q�Y�V���������0�0� � �|�|�L�O�/�4�v~PXx|49oqr�l�6�0���`�Y�P�O���i�f�6�4���|�z���K�G����� � �����o�i���h�d�z�|�`�^�������!� �9:hl��z}qsOM /18�3�+�&�l�h�;�9������������� ����������� � ���Y�Y�� �s�v�`�f� � �9�=� � ���>�D�t�x�5�9���T�V�6�6�,�,��������������x�v���� �c�c��� � � � �KT+�+�"�"�?�?�7�5����� � ������� � ���2�/�40�����O�Q�0�-��� ���� � �������V�V�������r�r�h�g�K�L�6�4��� � �������mnAD � �� ���W�X���Y�Y�`�`�G�F�B�C� ��+�,�����=�?�0�.��� �� � �^�]���U�T�0�.���@�C�M�Q�j�k�����K�J� �"���`bC@������}��(�&�+�)���@�?�h�f�[�T�I�I���Y�X�L�L�!�$���X�Y�5�:�u�u�����������S�S�D�D�?�B���3�2�2�0�l�h�Q�O���$� �h�h� ��4�,�_\MMgdyw��mp��"� �mm����`�`��|�G�D�6�5�h�h�]�\�&�#�`�`�T�O�#� �z�v�Q�O�@�;���\�^��� � ��� ��*�,�4�4�0�0�0�2���E�I�v�s�T�T���)�)�� �*�(���,�+�pt]`efwyot`�^�D�I���+�+�T�Q�����W�[���;�8�D�C���m�l�y�|���)�*�:�:���<=@�@�/�.�]�Y�����������=�A�G�L�Q�V�ej0�4���O�L����� � ���q�k���[�[�t�t�"�"���������N�P�s�w�U�V�%�&�gj&�&�G�E�\�X�����|�x�S�P�I�K�|�|�.�*�(�$�;�8�F�C���n�h��|�\�Z�I�I��� � �jk��:�<�9�<��� � �vt���a�^�c�c�G�G������ �5�:�I�H�F�D�8�6�&�'�f�h���]�]�E�G�:�8���,�(�G�K���F�F�0�0�#� �(�,�<�8���G�C�B�B������ �h�i�����J�O����� �� � �D�E�:�:�V�T���"�!�H�E�L�J�x�v�B�@�3�0� �$�����%�%�������opNQ!� �m�p�G�J�L�O�p�q���������������1�6��� � �����`�Y�2�0�MNwv77ee 48}����,�0�� �9�8���=�?�(�(�}igOLpj� �2�,�6�5�U�O�������4�0�D�G�C�E���I�H�����4�8���S�R�� �h�d���h�d�+�(�+�+�������CA � ���p�p�`�[�(�&���:�5�Q�P���k�h�S�N���~�v���44jhXXdd~ROc�`�(�"���S�M�+�&�G�E� � � � ���������t�s�}�� ����D�@�3�2�����[�T�#� �)�(�z�y�<�:���9�<�P�P�O�P�r�t�'�(���>�=�c�c�0�0���n�p�� �ZWolMKx|(+ww~,�,���_�`�X�X�2�0�n�p�����l�e�K�G�!��|�����~�I�J�s�t�?�<������&�#���� ���""���� � �<�:�S�V�K�I�S�O�@�?���<�;�� �<�:�(�*�D�C������hi.�+� � �|z������3�5�� ��#�;�>�V�Y�s�t�\�W���9�7���#�#�o�m���<�8�����,�*�����H�L�[�[���?�;�����$�#�<�=�GKGH.0po~lo.�.�`�]�p�p�;�?�:�<���4�6� �� TUyt��������� � ���~�~�a�^�X�U�� ��� � �8�4�8�6�\�Y�X�U�\�X����z�I�I���Y�V�;�:�,�,���V�T�� ��������jj���^�]�����ghpqtxW[ad3�5�����T�T����� ����K�M���4�8�:�9�,�,���9�6�"�������8�6��� ��H�F�&�&�����r�r���n�i���c�b�.�,���x�y�� ���� �h�h���b�`�|�x�������:�5�<�<�P�P�o�m�@�B�*�(�]`�������� � ������B�B�f�c�Q�P�i�k�U�V���������y�|�d�d�P�Q�P�L�?�:�`�^���r�p������dc�� � �������� �&�#�<�<�C�G�L�P�8�:�h�l�6�<�@�B�h�i� � �)�)�r�s�&�+�������V�U�]�[������������jh?<Z\���G�D�G�I�C�D�:�<� � ���l�l�O�M����4�8�� �� �4�6���)�*���WU_]��]Z?�@��|�����������v�y�������"� �I�J�6�8�)�&�l�l�0�0�0�3�8�9��� �� �� � �8�6�S�Q�@�@�.�.�1�4���&�(�O�L�\�\�-�0��!���@�D���� � ��t|pxip~vxvx��4�6�G�J�(�.�h�j�h�h�D�H�������f�l�.�3�� � � ����@�I�p�x�� �C�F����&����$�(�������Y�X�� ����������� ��c�c�`�c�D�G�2�8���&�(�������\�Y�d�a�%�$����TW$)HHge-/X[,�(�h�f���P�O�B�C�������16@@Y`~V�Y�-�2�.�2�K�P������ � � �?�@�H�G�B�?�$�!�@�?�G�H�5�4���� � � �!�!�E�C�`�`�:�:�����jj'/BFJH0�0���������Y�Y���p�s�\�`�z�z�]�`�<�?�Y�[���D�@�0�.� ��?�B�~�|�f�f���^�Y�s�r�"�"�8�8�$�"�&�)�!�%�#�$� � ������ ��lm�����<�<� � � �&�)�+�H�L�f�f���v�z�r�r��}�"� �uu`a����wz\\ $�� � �#�$���P�P�l�n�X�T�\�]�y�|�@�?����� � ������������������a�]�z�t���Y�Y�`�\�"� �}{@>$ ED"#<<SShg������#�!��� � ��� � ���.�1�� ���,�,�&�$�����I�J�wzy|��V�V�=�9�f�f�����h�f�6�3�O�T�\�]�I�L���|�{�����l�k�I�J��������J�P�[�]�P�S�I�L�a�c�q�p�I�L�<�<���|}��K�I�� �/�+�����&�(�5�8�?�@�� �O�Q�(�*�0�3� � �� �0�0�.�,�!��6�2���c�`�|�|�"�"�"�$�z�z��� � �$�&��������� � �� ���� �9�9�c�`�-�,���H�G�������(�(�J�L� �!���6�3�(�(�<�<�<�<���)�,�����M�Q�� �P�I�T�S�"�"���"�"�n�l�N�M�l�p�W�X�W�S�6�3�b�a� ������&�&�� ���������X�U� � � � � ����S�V�j�f���u�r�tqPLD�@�l�i�yz$'LKNO0�0�)�%� ������0�.��|�/,MH��S�M�~�y���S�O�� �"����������J�F�8�8�[�[�D�D�y�z�I�J� � �OTfg$�&����� ��c�\�t�o���S�O������mlM�I� ��`�\�S�L�C�@�P�M�4�0�l�m�������� ���������plWX � ���S�Q�u�p�^�\���!��>�8�����~�x�������4�2�4�2�k�h�(�&�$�(���ppXW��<�<�E�D�<�8�b]d]mi[ZHHMKZ[st"~|����Q�O�9�6���h�c���x�t�V�S�[�U�������G�C�h�`�l�l�����������mh��������Y�T���}�y�@�<���Y�V���0�,� ��M�G�0�/�|�u�h�`�y�x�tyvt~||dd"$&* a`����M�O���g�g���D�F�����[�]�H�I�G�F�������V�T��� ������d`sq�� � ���8�8�(�&�5�3�?�<�.�,�@�<�����S�T�8�3�#�$�����`�`�0�0�C�C�F�D�:�:�u�p�S�L� � �<<��!� �)�+���lj� ���!�&�(�,�-�0�0�6�i�i���'�(��� �$� � �(�*��#�~STHM}��^�`�+�&�[�W�7�6�i�f�P�U�B�B�/�0�I�D�D�D���������7�5�#�"�L�I�c�`�s�r�3�0�D�F�� �#�(�P�M������+�+�F�D�7�:�!�!�� �5�7�$�#��� � �(�&���,�(� � � ��/�5���� �@�?� ���~�D�B�S�Q�?�<�O�M�(�%�D�B�#��C�@�+�)���PJ%"}zjcz|UT(�$�O�M���dd~tvpu``zwS�S�5�8�I�J�����������O�J�L�M�?�<�M�O�d�c�7�;�����I�J�(�(�,�(�����<�6�)� �/�)�=�:� ��@�<�X�T�(� �������(� �`�V�`�Y�Q�O�x�s�����GDGAOKwt�� � �!�$�qs25PO������6�4�C�?�t�o��|���X�V���������������(�$�5�/���adTS � ���Y�W�}�z����� � �.�&����� �����tm��ywda|z|~uw������V�Y���l�l�[�\�������D�?�0�,�9�8�C�B�;�;�D�B�<�:���������������D�D��������� � �+�*� � �+�,�^�a�7:f�c��� � �qtag^�`���C�@�:�9�~`�^� � �gckg����ZY|#�$�8�5�TPZX����� �����I�E�������������3�,�� � ��:�6������!�#�#�$�������3�-�]�Y�*�(�c�`�6�3�� �,�/�h�f�������(�(�0�.� ����� �����HF\b�� � �����P�O�<�:�0�0�c�d�2�5�,�,�����0�3�����:�6�%�"�|y��F�D�3�0�@�<�(�)� � ������ �B�@��������<�;���<�9�<�9�.�+�G�F�"�"�B�@�,�.�`�a�$�*�B�D�psz~mq]`������(�(�D�D�R�P�H�D���D�D�����G�@�0�.�#�$�@�D�<�=���.�0�6�5�C�A���T�V�$�&� � �&�&���:�<�J�K� � �#�$�@�@���HHvsd`PRUW � ���+�*�=�:���c�c�G�G�I�H�c�c����������|�}���r�u�<>z| ���� � �f�h�&�%�M�L�x�v�D�C�K�L�8�9�����h�h���@�@�hj��-�,��� ��)�*�c�d�<�8���F�C�|�x���Y�\�\�\�������^�_�6�6���$�%�z�x�\�\�x�r�t�p�U�Q�<�;���I�G�}}ps��o�m���<�9���}�}���0�0�0�4�U�Z���T�U�D�G�M�O� � �>�@�$�#�@�D�K�O� � � � �jlz~MP(ZapsLKlo���%�&�!�$�M�N�I�H�����&�(�v�t�a�`���/�0�X�Z� � �� �6�<���6�8�T�\�������(�+�,�0�+�0�,�.�&�*�r�x�������v�x�$�&�Z`Y�^���0�0�h�i������Y�]�dg<> � �C�B�����V�T�>�<�5�6�(�(�qs''V[��pmGD]att8�8�����0�0�X�V�8�8���f�f�f�f�M�L�x�x�!�#�Z]TUHKKM��2�2�&�)� ��)�)���0�3�H�L�,�-�C�D�2�,�!� �D�@�� �<�<�4�3���?�<�����MM.2%,����!�$���Y�[�C�H�f�d�c�`�.�3�L�Q� ��?�B���P�P�h�k�T�Q�k�l���<�@����6�9���O�O�7�8�D�C�t�u�e�f�v�|���l�l�a�`�:�<�� �3�5�\]{|ptZb8<WZ}osL�L���V�S���������p�q�0�,���%�&���C�D� � �����C�D��!�����K�M�����r�r�x�|�T�W��� �� ����Z`:�?����~�����!� �L�L�W�Y�\�Y�H�C�p�p�B�C� � �)�)���loUVdgVXy|]],3ee��|�z�(�#�k�h�#��G�D�&�&�����o�p����� � �D�B�� ���-�*�i�e�#� �p�l�]�V����x�S�S���3�2�G�D�P�P�0�0�*�)�6�7����� � ������ �3�2�� �������� �� ���Y�Y�B�@�����v�v���?�9���I�I�(�&�� �C�B��� � ���,�.�����������<�C�|������ ����&�&�:�9�@�<�h�c�u�n�&�!�A�D�B�D���,�.�0�3�.�2�6�8�7�6�5�5�V�Y�����O�L�� �-�,� �������]�\�����pngg\]��0�.� ������3�5�������� �4�2�9�>�|��C�D�����04!�$���>�@� � �&�&�8�<�,�,���-2y�|�(�)�L�D� � �����l�h�?�<�n�i�P�L�4�4�]\^�]� �����|�� �����\�X�����Q�Q�D�E�3�5���������������� �#����MOHL����(�)�F�I���������T�V�@�@�|�|���������l�p���z�|� �������)�(�)�.�� �ps��}��v�u�`�\� � �&�(���T�O� ��)�$�������>�?��� � ���G�D�,-13JMf�a���{�|���=�<���8�9���������������<�<�I�G�|zxy �� � ���| � �S�S�#�&�?�B�+�0�B�D�wxRPUW,,SP ��.�*�<�9�V�V� ����K�K�� �k�f����� � �!������I�D���� ��M�L� ��Q�S�@�B�(�(�����US\]GA<@gjUY~}=�=�?�<���~[a���4�0������� ������� � ���[X<�5�� �2�0�$�$�`�a�Z�X�:�8�t�p�tt}~mo*('$`aNKghGK���� � �3�3�&�$��� �� ����������� �I�I�V�T�Y�U�����0�0��� � �fe<Aln<;^bY\jl@�@�=�=�V�]�0�4���?�@������ � �P�P���� �� � � � �{~v}vwtxcgz~\�a�(�%�8�:�;�:�c�e��� ��+�)�A�@�h�c�L�N� � ��� � �����xx#� �� ���PP$�&�h�h�(�&� � � 12x|dg��� �0�0�0�0�wzZ``d ����4�4���6�3�0�.�K�L�,�0�9�:���s�p���z�y�;�;�n�r�f�f���x�y��� �$�%&?�@�����ps����(�(�U�Q�l�l�=�@�lq0�2�|�|�%�&�S�T��� ��FDPSp�p�`�`�5�4� � ���0�0����mvG�E���V�Y�����0�0�tz� ���S�O�;�9�L�Q�CEpvO�O�L�S������"�UZHJ0�6���   M�M�D�G���V�V� � �3�3���� � � �FJqw� ��� ������@�?�7�5�������������^�c�p�s�|�|�`�`�"�#�f�h�|�|�C�A�*�+��� � ���0�0�8�8�9�=�� � � �����5�6�|��������O�V���J�P�5�8�9�<�U�]�=�@� �#�����6�;�������l�m�6�:���Y�[�4�5�� ���5�6�� �w�|�����c�a�y�|� ��0�3�������b�d�3�0�=�<�:�8�����@�C�f�d���v�v�������������#�&�0�6�����������L�J�i�k� � �9�7���9�<�m�i�o�m�x�v�v�s���r�o�m�k�|�|�9�;���G�H�C�B���v�p�[�\�(�(�C�A�� ���0�0�����p�n���?�?�,�+��� � ���� �%��8�5�a�\�C�D�+�(�G�D�� � ��+�)�����*�,����:�:�����tx� �4�2�<�C�)�-�\�\�`�a�Y�]���x�z���������T�X�7�<�@�?�d�c�(�+�S�V�����GJ7>>D$(dewz(�(� ������"�#�X�Y�����G�I���������x�z�P�R�n�s��� ����0�,�.�/� ��qrX]!� � ��<�=�8�:�>�>�#�$�����"� �W�X�d�c�(�*���@�B�� �`�b�L�L�,�,���(�(�(�(�5�5� � �(�%�^�Y����������� ��� �dh$$|zmlR�N�P�Q�<�<�T�T� ������\] �"�p�n���"�$� ��6�6�=�=�x�z�h�g�x�|�����yztva�^���(�(���6�3� � �P�N�V�Y�����\[��<�7������� �8�4�Q�O� ��$� ���O�L�k�h�� �0�.�(�"�������jlJNNM@@DD%%<<jhpmddwu������c�c�;�=�6�8���M�O�@�C���0�2� � � ��x�y�=�C�^�`�X�X�3�4�^�`�`gPToo]\|xA�<� ������~]`LN~|}``p�n�c�e���X�V�o�l�V�T�X�Y�8�6� � �����8�6�x�r�z�{�.�0�H�K�c�f�JK@�<�Y�X�?�:�70>>��d�c�l�l���%�&���r�i�,�(���vt��� � �``11ED"%77||CD ����I�E�.�-�c�`�������u�x���ee|y����/�,�� �vq � �s�n�S�O�����l�h���(�"���^�]�����d�c���`�\�8�8�������`�`� ��rrop\]ZX � �?�8��D�@���� ����!� �4�4���,�,�om��<�7�x�u���s�r�n�p�����������J�G���<�;�S�S�8�8���~�|���@�@�6�6�0�.�B�D��� ��D�C�����~�|�n�p�y�x�wxGHDCgeW[yy`bpj� �@�>�&�$�������G�I�X�\�d�h���T�W�\�]�&�"�6�7�k�h���*�*� � �*�-�+�)� ��B�@�B�@�������C�C�v�p�\�X�����7�5���X�Q�i�c�=�8���>�?�Y�[�p�p�0�.� � �������`�a�(�(� ��!�"�hiqpgj.-����i�i���J�K�V�Y�=�<�������p�o���������P�T�,�.�V�Y���} !deHHUUqt��/�+�x�u�G�D�|�z�6�7� �#�p�n��~�K�I���������^�]�j�i���z�|�c�c���M�G�;�6���KJqvL�I�� �L�J�(�(�0�0�C�@���B�?�,�+�<�6�����C�D�����ZZsu\�\��������� � �P�O�k�i�p�l�F�A���D�C�,�.�8�7�"� �������v�x���6�6�M�Q�$�#������5�5��|�n�l�7�6�~~����� � � �����"� � ���Q�P�X�V�o�i���`�Y���D�=�7�:�x�w�E�E�}�|�B�B�[�Y�G�F�Q�O���7�9�}ed������D�E��� ��.�(�X�[� � ���X�W� ��6�3�3�/�����t�v�0�0��� � ��� ����!� �,�+�"!ZY.1 FFGF`bqsee~|B�C�C�@���6�6�$�%�����T�T����� ����<G$op`�^���+�+�����I�J�������c�c�3�4���mljg}~TXz~HL ��h�e�3,;�<�,�*�(�&�������O�O�F�D���*�*�V�T���@�@�gjXXAEGFU�O�"��xx9�8�����I�G�@�B�����<�>�z|djCFY\ 48rtbgwz�� ��v�z�*�-�.�0���������)�)�,�)�t�r�z�v�(�%���<�7�K�L�@�C���T�V�]Z�� ����&� � � �m�h��� ����|�x�O�I�^�]���&�&�5�0�C�C�����f�a�#� �������Y�S����� ���gh � �N�I�G�C���9�7�F�D�Q�L�C�<�0�,�w�r�u�s���������������p�l�,�(���TT/,��Q�L�U�S�g�d�4�0�T�L�!�� ��(��B�9������3�/�i�d�9�3�4�0���4�.���yx��x�r��  �����z� ��s�p���d�c�3�0�a�`�<�:� � �44OM``\Z�� � �����(� ���������qlG@G@Y�W�_W3�0� � ���3�3���d�f�`�]��� ��T�U����� � �� ���������6�6� ����Y�U����,�(���������)�&���4�2�Q�O�Y�Y�� ����� � ������ � ���@�@�l�j�Y�V�xx~MK-0mpX]|}Z�[�4�3����O�H�]�\���D�C�)�&���=�<�9�4�9�8�p�n�?�;�$�"�.�0��� � �&�&� � �0�0���6�4���)�(���7< � ���� �^�^�\�Y�����~������l�l�,�,�@�<�`�`�<�?� ����2�0�[�Y�x�|�e�f�j�i������������$�$� ��`�^���<�<��� � �X�X�@�<� ��e�c�J�K�6�9�M�O�O�O�=�=������Q�S���� �:�9��|�V�V�r�t�,�,�� ����|~-�.�$�#�O�L�@�<��� ������� �$�,�0�L�O�C�D���� �����-�0�T�Y�S�S�c�f� �$��� ����2�6�f�a�\�Y�Y�W�N�L�3�0�y�x�����i�i�S�S�=�?�^�\�*�*� �"���l�n� � �,�+��� � �~|{xw`a����� �ghzzxxU�V�I�D�m�i���j�f�����8�5�p�p�"� ��� � ���ww��������`�`�� �����&�&�<�=��� ��#�(�������6�:����� ���p�t�@�C�L�O���4�4��� � �-�.�!�#�����&�"���s�s�����P�K�p�j�oq_\i�h�;�<�3�0�:�9��,�,� ��=@tx��tt&�(���r�s�.1 ��(�(�0�0�C�D�C�D�&�(�5�6�� �,�1�Y�Y������� � �f�f�\�`�?�<�������x�z���)�,���������ntC�F����H�L�&�)� ��������7�:���qw � ������4�3�$�%�,�(���s�x�$�"�.�3������O�N�S�T� ����@�=�6�6�-�/�#�%�C�D�� � ����&�%�I�I�H�K�/�1�<�=�C�D��� � �D�C�(�'� � �!� ���h�h�\�Y���D�C�,�)�����+�0�&�(���9�1���� �Y�[���f�c� ��*�(���u�v� � ���0�1�x�x�r�o���������jgtvml��������3�2�h�h�� � � �������s�r�p�l���V�[�.�.�R�T�%�&��� ������<�<�?�<�e�f�!�&�&�(���#�$�(�*���C�C�����0�0� � �6�3���:�7���H�K�6�8�POJKqt���������0�*�X�X�f�h�U�T�`�`�O�O�r�p���D�G���0�0�^�`�h�h�c�f�`�\����� ��`�b�!�!�(�)� �!���*�+�0�0�V�W�(�+�D�F���I�M�/�3�� �d�e�k�l�Y�Y�S�T�)�(�y�|���&�(�E�G�<�<�?�@�������4�5�"�&�T�W�I�L� ��p�p���x�x���K�K�,�.�x�x�(�.�����S�Q�Q�S�h�e��|�F�C�r�m���C�D�5�6�S�P� ��<�@�� ��������� �7�5��� � �L�M������+�)����@�A� � �<�8�6�5�?�=�B�@�����(�&�����,�(�!��@�@� � �om,�(� ��V�Y���������Y�Z�|�z������������B�C�B�?�+�(�!��J�D�H�F�������#��2�0���|�x�?�<�x�v���C�B���Y�Z�I�H���t�r�M�N���������@�<�:�;�0�.� ��G�D�C�D�����;=yzX]rqputt`c~HD38 ��(�#�G�F���j�f�S�Q�l�i�k�n�����d�e�@�B���|�z�@�?���G�G�3�0�&�*�����,�,�5�8�*�,�*�)�Q�S�:�<�,�,���G�D���w�x���|�|����� � �� �ywX�Y��� � ������8�4� ����l�h� ��_�^�Q�M�c�^�@�:�#�#�#�"�<�9�3�3�+�(���D�<�,�$�\�T�]�V���c�\�x�r���o�m�G�D�bd������][xt<7���~{����L�I�]�Y� � � � ���(�&�� �$%2�0� ����������c�a�����p�i���8�5�d�[�,�(�%�!���G�D�o�m�[�U� � �`�\�@�<�|�x�0�/���)�-�� �C�<���4�3���`a���� � ��d�c� ��XXHH[`%'UXl�h�M�H�r�p�����l�m�o�k�(�&�"�#���xy&�#�/�,���i�i� � ��������Y�T�K�F� � �dehj��� �G�J�+�+�(�,�����I�H�������_�c���@�:���P�H� ��@�=�T�S���ml@?OP99\U� ���� � �9�7������i�d�����t�l�W�[�������������HJKM78ZU����� � ���/�/����@�:�������[�T�2�+��|�����o�l� ����K�H� ��������K�H�;�:�,�*�=�9���*�,���GH78RTspyx<�=�T�T�� ��� � ���0�3� ������������PNW�Y�1�2���~��I�H�,�,�D�G�+�0�����f�i�8�8� ��6�:� �$�W�[�&�"�<�>�Q�R�;�=�2�4�6�8�{�|�h�j�����F�J�~�|��� �&�p�u�K�L�P�Q���(�(�<�>� � �8�8�G�G������� ��A@`]}|b`%($$HGgg � �����2�5�����u�x��z�����s�s�X�V�c�`�l�k�4�6���<�:�<�:�0�.�����!&+*ddXXI�J�?�@�������H�G�`�a���@�=���R�Q�|�y���������|�|�������ec~jhmm ,�,�#�!�<�?�����������������0�2� �"�?�:�D�@����|�<�<���=�<�a�`�`�a�I�L�����v�v�B�C�Y�V���o�p�c�`�F�@�f�`�(�&���i�f����� ��"� �*�&�Q�O�V�V�����K�F����� ���������3�5�j�l�(�(���Q�P���*�,����"� �$���de����� �������\�`�D�F���H�K��������������]�]��������a�\�G�D�C�D���mocdd`��������c�a���^�^�3�5�l�f�\�V�P�L�x�t�0�.�sy{')MS�����!�=�B�3�4�7�8�9�<�8�9�6�8���>�?���(�+���"� ���,�0�N�L���5�3�������w|eh��� �D�K���y�|�l�m�D�D��"�����I�K� �$�z}GLhjKM'*dd`dHKhj�� � � � �6�:� �#�����G�E� � �I�F�0�0�L�M�6�8�,�/�9�8�N�O� �"�6�5�#�#�V�Y�GH79tvPM � �ljx|HK;87244jgPO#��Y�X���0�0�������C�D��������a�^�����F�D������� � �BFilrs/4&�"�Q�Q�`�d�l�r�L�O�(�&���:�?�A�F�?�C�,�+� ��}|HK,0����I�L�� � � ���C�@�e�e�l�i�S�Y���Q�Q� � ���z�x�`�`�����6�5�&�$�������|}BAzyy}Q�S������ �?�@������r�s�������T�T�Y�]�^�\���(�(�����<A� � � �\�Y���I�I�B�@���5�8�,�.�k�m�������X�\� �%�����#�$�����$�� � ����� � �(�&���1�2�B�D�&�)�S�X�X�[���ihpq�����vw��;�:�)�(���\�^���Q�T�3�5�&�(�p�r�2�6���3�6�-�,�����&�(�7�;�������=�=�� ���#�(���2�4�S�W�D�J�&�(����������:�=�5�8�v�s�L�G�����m�m�p�r�C�B���f�f�&�&���KO��� �eh~,-����[�[�����D�D���������`�a�������O�Q���3�8���C�F�-�4�*�5�|�������������K�L� � ���z�z�Y�`�c�i�m�u�.�5�G�L�� � � �����F�J�-�1��"���S�Y�=�?�^�c���\�a�(�)�(�2�0�8����,�.�D�I���B�E�h�f���<�C�� � �#�<�@��� ��� �t|��)�4�4�8���*�/��%�J�M�A�E�s�t�;�B�>�@���N�Q�:�@�@�F�8�<�@�D�c�f�P�R� � � � �UXjo@GY�X�F�D�`�`�6�8�h�h���r�r���� �����S�S�8�9�a�f�}�|�����-�3����� � �#�#���Q�L�����M�O�� �&�$�S�U�i�d�B�<� � ����� � �(� �� �z�w� ��h�e���8�8�1�*�&�&���c�c����������?�C� ������lsI�K�~|��(�-���spzwtu[Y9: ,,ttgeTT������������.�4�V�Y�3�5�� �����L�M�O�P�[�]��� �#���������`�c�a�c�5�3�@�<�$��Q�O���#�!���^�[���������C�D�a�^�m�l���9�4���-�0� � ���<�6��� ��C�<�=�<���������������������tt��"�#�#�&�������2�3�����������@�@���L�I�H�K�*�,���X�W�L�J�P�Q����-�0�8�<�OShe$� ��������� � �(�(�������@�<� � �s�v�� ���F�D� �!�<�<�8�8�XW<�9� ������?�<�#�!�C�B�����WWMPy{.�0�p�m���]�[���|y��dd;:jm_\``0.PLWU$�� ���� � ���)�)�O�K�n�k���`�`�#�(�����8�8�URpm ��b\lg"����&�#�����`�W������|�9�6� � �qp&*$!<>PO[X?�<�����+�(�z�x� � �O�O�B�?�P�S�M�O�s�u�i�j�T�S�L�J�.�,���2�6�U[ � �/�3�jpPPmm �� � �ttqt@�D�RT=�@��� � �8�6���(�(�+�+�7�7� � �.�.� �"�`�`���������v�s�8�8���L�G�h�d�,�+���<�<�#�!�]�]�@�A�=�<�*�(�H�F�2�0�i�i���D�C�c�c�ihz}OQRS:�7�'�)���� �p�n�����k�h�5�5�6�4�}�z�����������������j�k��|���$�&�f�c�[�]�5�5�a�\�&�#�1�2���\�X� ��RO����x�p�J�E�,�+�$� �#� �W�T� ����� �C�C���-�)�����@�@�O�Q�!�&�\�`�$�)�� ���T�P�p�m�@�@�f�g�r�r�&�(�-�,� �"���� �-�0���6�3� � �2�0�SU� �`�a�f�j�h�c�v�t�]�[�����P�L�@�<�+�+�0�0���[�\�G�G�H�H�O�L� � �M�L�A�@���0�.���Q�O� ��� ���f�h�d�a���,�&�h�c�r�p�h�a���\�Y�y�s�������D�@�2�,���(�$� ��p�j�V�Q�$� � � �+�,�� ��� ��W�T�"��pm xz ��� ��� ����� � �#�"������1�5�lq0�5�0�/���ehO�I�<�:�k�h�����������^�^���<�<�v�v���� ���0�3�4�6���h�j����� � �0�-�G�G�Q�Q�������8�4�dc�� ���� � �*�&��� ����V�T�G�?�:�3�L�H�&�&�l�h�y�w�&�$�� �e�a�����D�B�K�L���������V�T���L�G�T�O� ����G�@���� �C�=�SKdd41@>JH.0MS��M�I�;�9� ������0�+���C�;�I�A���D�:� ��� �@�=� ��S�S����!��5�4�����H�D�-�,�f�`�@�9�G�@�B�=�`�^�d�a�������|�����l�l���Y�Y� � �� �yv ��roxx$�&�U�T�e�c���������G�G� � �(�+�:�:���sq��wv)�&�3�3�#�#���ecNMghjjtt+�*�����6�3�I�H�������^�]�����]�\�T�S�h�f���Q�V���qxttsqgl9�5�� �3�4�~$�&�,�0�8�8�[�[�d�k�H�I�Y�\�f�e�"� �5�6� � ���x�v�$�#��� � ���t||*�(���h�`�-�(���� �����<�<� � �n�o�L�L� � �u�p�]�`�[�Y�&�%�� ���heFH~|UW��"�!�6�3�~����Y�]�n�j� � ���l�l�,�-� ������ ����i�h�B�<�]�Y��z������� � �HF����&�$�9�8���l�l�x�y�O�L� � ����������5�6�$DKSX@�@�0�0�����adWXPSz~��G�I�+�.�B�E�E�C�.�,�3�/�UW-�.�����$�(� ��S�S���%�)�D�D����� � �3�6���ba-�-� ��&�)�l�p�<�?�3�5� � �*�(���#�(�,�0�����M�T���:�:�M�O�� � ��0�0� � �������(�(���,�,���P�O�$�&�F�C�)�-�XT`b&�'���(�#�&�&�S�S��� � �T�J�������0�.�,�,�_�\���x�s�$�%����������QR������t�p���=�:�u�p�����f�c�v�x�t�v�H�D�O�L���4�6���\�_�<�@�i�l�c�f�h�k�"�*�� �I�J�������Y�Y�B�?�H�D�\�X���M�L�������*�-���Q�O�V�V����{�C�D�������PRMMAD``]a ������$�&�Y�Y�,�.�S�S�g�f�������6�8���7�:� � �� �"�!� � ��������:�<���������?�@�e�f�?�@���� � �����"� �+�(�<�?���<�<�H�I�h�i���������������������#$  ��q�r�+�.�����UZvyjl\`qr`d��;�;�J�H�0�0�K�O�H�G�`�a���<�<�����z�v���v�r�~��c�c�T�O���P�M�P�Q���qq^]DG � ��� �!���P�M���;�<�d�f�k�o�&�(��������������� � ��������0�4� � � �!�6�:�I�L�������i�m�� �,�0�<�?�)�,� � �� ���D�E�+�*�6�8���=�B�#�&�y{70xzom(�*�&�(�K�L�\�`�8�:��� �!�flVZ� �ILc�c�&�&�@�?�S�U�"�(������� �&�&�Q�S�<�=��!�����STh�h�X�W���<�9�L�J�"�&�8�:�`�`�� �p�p�"�#�O�M�����������4�3���&�(�Q�P���GDXTfb��$��� �����,�-���0�.���!����}~lopo|w{~ $$'��zw��?�@���$� �6�2�0�.�0�/�G�D�a�d�����%�#����PQw~ NM~{|| ��G�G���+�*�M�L���������`�\�����+�0�)�,�����1�0�p�r�Y�^���t�u������� � �nm����zy48���� HMDI-1� �!�$�I�I�N�S�!�&�1�6�"�*�� �,�4�p�p�2�5�����������FHEJwz0�2�"� ���D�G�2�4���������s�p�<�8���jl � �K�J�x�x�n�l�\�[�V�S�����5�6� ������� �^�`���6�;�.�/������ �4�0���C�C� ��y~��Y�Y�l�n�W�T�+�)�l�l���W�\�|��~�|�0�3�m�o�a�d�Y�Y�8�:� � �c�e�"�#�S�Q�� ����(�(�2�4�� �Y�[�U�S�`�`���s�r���H�D�:�:�L�M�,�0� �"�3�6� � �d�f� � ���w�u�8�:���,�)�,�(���#�&�����f�h����� � �L�P� � �����W�W�D�B���@�?�L�I�-�)�2�0�,�)�ljst��0�0���\�\�+�*�h�h�������46d`}K�G���������������R�Q�h�h�,�,�p�m��������<�6���rtGH&�%�.�0���a�f�@�C���c�d�����������d�h���a�c�*�.�Y�\�� �U�V�&�(�����O�P�F�G�� �����+�(���(�)�I�I�� �egip����<�:�pttt������ � ���!�#�1�0���L�J�������h�i�T�S�V�T���*�)������ �����M�O�]�_���I�I���.�0�i�h�9�8�m�l�������?�<�������(�(���S�Q�+�.�W�X���t�u��� � ������!����,�1�������!�"���x�u�������D�D��������$�(��� � ����� ��D�D�,�0���Y�[�@�B�����&�$�\�\�Q�O�x�u�.�.���rt}}~!�#�D�@�3�0�����"�"���������J�I�%�&������������(�(�0�2�B�F�8�<�h�h�8�;�H�L�V�T��� ��F�E��� ��3�6�&�(�*�0�4�8�@�D�^�`�����9�8�D�F���,�,�6�6�*�(���ljyx� �+�(���4�8�#�$�!��$� �� �� �� ��2�.� � �tpyx������D�F�\�[�h�c�P�M�G�D�8�5� � �#�#���dh� � � �#�(���h�i�E�B�V�[�>AMK[[d�d� �"�����X�U�`�^�a�e� �!���!�&�(�+����������P�K�p�m�c�e��� � �I�L�C�G�<�?����6�5� � �`�]� �!�:�9� ��44}zwxILst47<7edpq~ �� ����&�&�������@�D���.�,�B�C�����O�W���|�}�4�8�p�n�a�c����� ������v�x� � ���T�S�L�J���*�,�� �w|ps`]&�#�!� �vyrutz0�5���� �����(�(������� �������msag��H�O���"�&�M�O�a�d�J�J�Q�P�p�v�s�v�I�O�#� ���'�(�<�>�G�F����&�&�s�s�,�.�\�Y�*�#���<�:�'�.�<�?� �#��� � �����(�$�@�B�����I�E�)�&���4�0�&�$�S�R���\\Q�S� � �&�$�&�$�����Q�L� ��f�a�+�)�����n�m�� ����*&b]PN.)���<�6� ��<�7�\�Y� � �I�B�f�_�v�s���s�p�s�p���2�3�f�h�#�"�H�D����� � � ������&�&������ ��"�!�@�@�6�6������� ��[�X�e�f�c�d�u�s���6�9�f�h�(�(�?�?������ ���r�s���\�`�h�h�:�8���P�P�S�R� � �3�2���#�#���?�:�`�`�i�l�D�B���?�<�m�k�|�|���k�f�=�?�,�+�*,!� �����E�C���$�#�@�D�$�(�� �'�)� � �����?�?�`�]���������y�u�]�`�y�z�9�;�\�^�����Z�]��� ��D�C�%�$�8�4�*�&�(�+�K�I�/�,���\�]�wy� �8�6�������O�M�6�9�����h�i���a�c�4�6���!�!���� �7�:�#�&���<�8�� �����E�D� ��`�^�?�@�x�v�@�@�3�0���(�&���E�E�����9�9�2�0�F�F�*�,�\�Y�#����u�v�O�Q�4�3�<�9�����<�<��� ��I�K���D�C�p�o�P�T�����?�?�0�+�?�<���u�p�P�Q�J�G�0�3�D�D�f�h� � �ljrtz}��}}��ll:�:�+�(� � �c�a�f�c�H�I�>�@�V�U�F�G�<�@�||LM49��m�m�s�s�H�K�6�:�������=�:���x�y�:�<�:�<�`�`�#�$�I�K���#�#�0�3�����\�[�O�J�~``Z\>@@H<@~��� �(�'�����p�p�v�x�p�p�G�I�S�R�����`�\�\�[� ��~~��+�,�B�B�\]��,�+�����#�!�?�@�2�6�F�G�B�@�E�E�]�X�\�Y�eenp��6�8�8�8���r�t���Y�\�&�&�����tq������ ��5�6�;�8�3�1�D�F�a�c�8�8�����-�/� ��E�I�z�z�\�X�~������4�:�����,�+�.�3���P�Q�(�&�L�L���~$�#�c�`�P�O�4�3�.�*�$��|�z�&� �x�v�3�3�������5�6������������������)�+���\[``��8�6�(�(�`�]���D�B�&�$�G�D�� �3�4���M�H�X�V�����0�,� ��������7�6�)�)�M�O�a�b���n�p����� ����������&�(���P�P�geWWC@#�!�"�!�`�^�i�g�0�,���&�#���b�`�G�@�[�W���%�$�(�)���M�L�O�O�G�C� � �4�4�������z|37dgehwu�����E�@� ��L�D�Y�O�G�?�O�L�r�p����#�"���c�a���K�I�:�6�D�@�$������6�1�(�&�O�L�L�J�6�4�@�?�a�]���(�#��� ����� ���k�c�wy��P�O�B�@��� � �B�@�6�4��������� �!�������� �yv#�"�+�-�����x�v�i�c���N�L���?�>�#�!�[�]�8�6�~�z�������r�r�9�5��T�L��� � ���[\||����9�:�� �� �T�U�s�t�����)�(� � �� ������3�2�,�(�4�-�r�m�M�J�?�?�|��S�O�0�0�S�O���X�Q�K�F���*�%� �����?�=�=�=�r�t�|�|�L�K�]�X�L�I���o�m�i�d�l�h�6�,�v�t�����yzmm`a+�&�c�a�j�i�`�a�)�&���&� �t�n���P�P�� �,�(� ���� ��^�Y� ����L�K�6�5��|�����L�G�������w�u�������B�<�������O�L�0�.�%�$�J�I�(�+���:�:���~}|eg@? � ��� ��V�Q� ����(�+��������y�`�\���:�6�O�I� ��i�e�Y�V�0�,�������O�M���@�<�3�3���;�=�:�;�d�d�%�*� � ��� � �(�,�-�,�-�-���&�$��� ��Y�T� � �2�3�RS �!�<�<����7;z|`d&�(�������@�@���\�V�^�`�f�f�]�]�S�T�u�v�S�S�O�Q�g�h�.�3�0�0�(�&�3�4�k�h�q�l���������yw��@�D����I�L�l�p�����i�s�<�B�O�S���#�&���l�o���v�u�@�@���c�a�K�O�� ���ilqz wz-2dgsvn�m�����|{~ � �~pv� ���������G�L�#�(�T�V�D�F�D�D�����3�:�.�3���W]5�4�S�[� ��L�O���?�D���V�\���������X�\���x�z�D�I�����bgjo #47 ln��� �� �J�E�\�]�����s�x�t�u�9�9�m�k�H�I�7�6��� � �||����lo� ���� ����hl0�5� ����8�<�(�0�5�8�-�3�����)�)���������]b������O�R�V�S�����g�f�������=�<�������6�4�;�<�$�$�#�%�X�\���D�D�K�L�$�)�� �,�0�m�p�t�x�S�V�+�3���ajjj����lq�������� ��� � �&�(�O�L���L�M�I�M�,�,�����������S�Q���������h�f�,�0�k�l�l�h�p�l����z�������e�a� ��B�B�W�S�$�!�c�`�\�\���t�r�����|�|�V�[�3�6��� � �Y�]��� � ��� �K�K�����,�,�������\\xx"� �@�@���J�J� � � ����(�,�.�0�KO[Ztw`c8�4�D�@�?�@� ��������&�#�L�O�5�5�8�8�`�a���G�E�H�I�������@�<�:�8�� ����� ��"� �5�3�,�)�����6�8���������r�o�d�`�0�0�(�%�,�&����#� � ��-�.� � ������,�%�� � ��7�3� ��8�3�.�*����������5�/�V�T�o�k�������3�4�basttw�� � �c�c�<�:�6�6�(�'�,�,������� � �E�C�������|x���;�3��{���������������������h�e�p�p�8�2�������������C�D���,�+�f�a�T�Q�`�c�����^�^�r�s���^�Y���)�&�)�(�� � � ���������9�:�&�(�*�-� � �����)�(�L�J�������� �.�0�"�"� � ���3�0�T�T�u�r�l�i�.�+��� � ���L�I�� �����\�\�p�r�]�[�f�f�H�E�z�v� � ���� �������2�4�)�+�0�0�(�$�5�3�<�?�(�(�n�r��������!� � � �~pp��r�m�p�l���r�l��~�l�l�y�y���f�d���i�h�� �`]SUpqdb~������� �� ���(�(�$�&�4�5���/�.� � �D�B� � �*�)�wtmoRT���������� � �J�I�.�-�y�|�5�9�*�(�������x�u�e�c�����A�@��� �"�0�0�������mpx|������ ��qq'%zu[Zgj0�,�6�2���u�u���6�8�<�<���#� ���I�I�L�O�0�.�F�H�#�'�#�#�������������6�6��� ���� � �X]������}~}�� ��C�@�����������������C�@����� ����O�M�����$�&���;�:�^�`�|�z���6�:�3�4�E�L�I�L�3�6�o�p�&�&����� ������lpdgqmUWHGPUgg<@JN""oommzxZYzzrsPS��@�C�K�L�P�Q�o�m�l�k�Q�O�r�m�� �>�@�H�G�,�,�<�<�.�-� ����0�)� ���������� � �?�=�h�g�����r�r���V�Y���6�9�&�(�(�+� �$��������,�)�F�B��� � �8�8��!����� � �!�#�����#���qt � � ��&�#���3�1�(�&�)�(���.�,��z�h�h���Y�Y�0�0���������� �������#� � ��8�8�k�m�`�c��|�����X�[���@�D���9�:�3�8�*�)�F�H�|������#�(�7�:���#�#�(�(���G�G�k�l�]�\�$�&� ��}egST79TXinmmgj�������#� ���D�D���������P�Q�`�`�D�G�f�c�Q�Q�O�J�����8�<�S�T� � �@�C�+�,�����(�$�$�$�g�c���X�U�C�?� ��� �uvPQ��3�2���D�B���]�X�C�=�\�S�7�5�+�(�����&�#�0�.���������������������V�P����� ����<�8�T�S���m�g���V�Q� � �������Q�P�*�(�&�$��� ���������������O�O�$�(�:�7����O�O�3�4�� �NM<;6�8���0�0�M�L�3�4�|�y�=�B�u�u�#� �O�O�O�K�0�,�������������� �!�����<�<�<�=�J�I�E�E���8�8�m�i���~~I�H�C�B�Y�\�\�`�f�d���������h�h�}��R�V�&�)�� � � �U�U�Y�\�j�h�(�(�D�@� � �(�(�)�&�,�-�������@�D�J�L�8�=��� ��� �&�,� ��!�&�@�D� �#���������$*}y|~|����:�8�M�K�;�8�(�'�H�D�z�v�x�z�t�s�.�4�3�4�T�S�5�2�+�+�� � � �D�I���?�<��~�u�z�p�n���6�8�P�Q�3�-�������P�I�8�3�Y�U�'�!�������(�(�3�3���|z��"�$�0�/�?�<�������D�@�4�3�6�6������� ������ ����8�9�I�H�`�c�r�n�l�k�[�Y�*�*�_�a���UX~ � �2�0�Q�L�`�]�0�,�f�d�r�s���`�`�����a�f�I�K�&�&� � ��������)�-�� �S�S�0�0�E�G�c�h� � ���*�&�,�*�O�K�J�G�U�S���f�f�Y�T�!� �� � ����]]''$$JM��������� ���������������8�3���wt2�0������ ������O�M�'�'���+�)� � � ����K�M���"�&���/�3�����)�(���O�O�0�0�D�E�v�u�����9�:�S�Q����������wz]dtx�������,�+�<�8���@�=�&�&�O�M���D�D�C�D�!�$����c]wu��p�i�<�=�"�#� � �������#�$�'�#�c�c�J�F�e�e�%�(�h�c�0�0� � ���� ���������-�,�E�D�����E�H�P�S�a�`�3�4�k�i�f�c�I�I�Q�P�U�U�@�<����0�,���0�.���)�+�v�u�Q�P���������\\wwXU � ���5�3�ectpqlgd� �0�2�������������,�+�8�7���0�3�l�i�E�D���|�x�I�H�1�-�����6�4�V�T�4�3� ��������4�4�����8�3���(�$�@�@�������2�3�D�D���0�0��� � �_�]�a�[�2�,�S�Q�-�&������ ��� � ���� � � �� � ���������2�.�K�H�|�x�`�\�^�^�c�`�H�H��� ��(�(�,�(���� ���=�:�!����@�:�5�0�+�%�#����!�$�I�I�)�(�-�0�;�=���8�6�����)�(� � ���$'IJY]�� �#�� �@�E����#�� �0�0�O�O�� �G�E��!�Q�O���D�D�M�M�����<�<������?�>���*�(�p�l�W�V� � ���*�,��� �����c�c�(�#�������<�@�����}baZ`gg��"�"�L�M�)�-�B�D�� ���������O�S�����8�:�#� �� �v�u�]�\�,�(�5�8�<�<�0�0���,�+�z�|���0�3�i�d�%�#���u�u���<�C�1�3�3�4�0�.�)�)�6�2�Q�Q�� ������ � �&�+�jp��y|.1*.nrTX-�.�6�:��� � �C�E�B�C���Y�Y�?�@�L�M��� � �����V�U�c�d�h�l���~��v�|�����g�c�6�8�� �ijWUgehlhf���� � �L�Q�&�(���s�p���Q�Q�����l�i�O�M�Y�X���5�5�C�I�h�i�I�J�\�Y�������� � �tw � �����k�k�9�:�c�d���T�S�8�6�G�F���4�4�������v~gl����.�2�:�:�e�h�4�6���p�p�\�]�P�T�P�U�(�*�7:jljlDFzztz(�*�C�D���$�&�"�!� �����r�v��%�s�w��$�l�s�|��D�F��!�C�I�ty*�+�� �����F�I�n�p�/�0�P�Q�+�0�+�6� ������� ������Q�Q�M�O�Q�R�d�f�������y�y���v�v�`�c�6�:������� � ���#�$�qt��!� �L�O�Q�Q�������p�p�L�L�+�(�"� ��� � ���?�?�����<�6�����jpLS ��<�?��"�P�L�<�<�����f�e�u�r���f�e�f�e�F�C�0�0�I�D�C�=�&�&�H�G��������������� � �P�S�����D�D�,�0�c�f���8�9� �$�L�P��!�F�D�&�(�/�,����$�#�7�3�j�l�[�[�����A�@�9�7�����@�@�]�`�����\�`�l�n�D�C�`�[�B�?���T�V�C�D���xzpt#��C�<���|�|�����|�z�n�j�n�l�Q�Q�#� �h�c�5�1���i�h�h�h�&�(�]�\�3�0�Q�P�"�!�����|}mt/.qqtq0�*���4�0�`�\�H�D�|�w�*�&���v�o�������������i�e�`�\�*�)�����{|Z`SX ������9�4�D�D�'�(�������(�$��� � ���5�4�$�$�3�3�H�G�����2�2�(�(�[�Y�&�$�������y�v�C�@�^�Y�h�c�d�c�L�I���(�&�,�,����� ��<�B� ��u}dm~��$�$�)�,�8�:�4�6�6�6���������@�B���2�,�eh����h�i���a�^�G�D�H�H�V�Q�����T�V�&�&�|�x�<�<�:�8�:�<���&�(�|}~��I�K�Y�[�D�C�m�l� � �������� ��l�i�K�H���,�'���Y�Y�L�L�H�K�Y�X�f�h�L�M�Q�O�!�"�8�7�XW''^att������8�:�h�i�L�K�D�G�=�?�,�.�C�D�%�&���-�0�#�#�� �,�0� � �������������]�W�:�5�#�!�<�;�O�P�[�Y�9�<�6�8�������4�3�6�6�P�O�-�/�c�`�H�E�P�O���@�C�I�I�T�V�D�D�I�L��|�c�`�0�)�������vwJLjg:433NS`g����"�"���� �"�"�&�$�]�`�B�:���� � � ��ojjgmm��G�G�6�6�`�`�L�L�S�S��"� �����<�?�O�P� � �i�j�0�0�0�3�O�M�G�F� ��d�h�#�$�@�@���K�P�ag]`]`74DGdc[\y|��#��3�0�.�,�^�X�@�<�L�G������ �2�3�5�3�V�S�S�T���@�@�u�p�I�I�u�u�f�f�"�$�8�;�a�c�I�I�V�V�9�:�|��V�Y�f�h�Y�a� ���������� �$��� �� �������0�6�6�:���k�r�Y�\�e�k���]�a�a�f�$�(�.�2�6�9�3�3�c�h�(�,� � �OPSVFH\aSU xx`[TU ����U�Q�(�*�� �?�D�����L�M�S�V� �$�f�h���3�0���M�L�����(�(�����9�6�G�G� � ��� ������� �� � ���+�)�� � �"���"� �������&�&�4�3�K�L�$� ���i�k���0�2�������h�h�h�f�\�Y�&� �����������6�5�7�2���������\�[�V�S�Y�[�D�F�'�)���8�6�?�=�i�h�;�7�6�5���,�(� ������(�-�@�D�����k�f�&�$�d�`���G�C����� ��K�K�M�O� � �������X�T�@�@�I�J�� �� �)�+��� � ��� � �����@�@���(�*�j�h�����TZlp+�.� � �;�C�q�v�S�U�3�<�$�(���a�c�(�(�S�S�Q�T�$�*����� � �h�a�0�2�� ���|�y�6�0�r�l�d�a�����(�(�+�0�E�E�x�w���OP8�4�4�0���p�p�8�7�(�+�h�k�,�.�v�v�r�p� � �������C�B�����,�+�$�$�S�M�6�0�(�&�O�U�B�B�����aeuwMM����$�&�6�9�?�<�Q�T�P�O�&�&���3�/�<�9�)�&�Q�Q�D�@�c�a�J�G�� �}O�K���}�z���D�B�����h�f���-�)�O�K�/�(���O�M� �� �� � ���8�3��� �����k�j���,�*�-�*�,�0�N�M�\�X�I�I�`�^�"�!�����]�Y�H�G�3�0�������:�9�3�2� � �{x~}y|sv3�.�a�\���������S�Q�a�^�\�[�B�@����z�`�\�#� �?�B�����**44YW~]]����)�&���(�(�,�*�,�+�0�.�?�?�F�G���:�:�]�^�d�c�*�+���O�P�[�Y�I�H���#� ���d�h�Y�\�`�c�?�?�B�C�0�2�,�,���$�!�+�)�s�v���������<�<�L�P�8�=� ���� � �,�(���3�3�D�D�O�O���<�@�@�;�<�8�(�&�5�5�<�=��� ��zzHHbb����������������S�P�3�9���C�H�a�`� �$�X�U���0�0�3�3�?�@�?�<�U�Q�<�@�-�.�:�8�g�c�0�*���G�D�,�)�� �.�,�� �J�G�0�-�?�@�0�-�����i�h�T�U�pwty4�7�D�C�D�D������`[� �2�/���������������� � ���6�7��� ��]�]�<�:�4�4���K�L� � ���� �/�0��� � �������#��!������#�#���[]}| ��f�h�$�$�����l�n�|�~�M�O�i�l�������c�d�[�]�&�+���������`�c�������� ��~�0�,�P�O�o�p�k�h�x�u��z���=�<������ �twtqz|jl��� �����:�8���� � ���,�(�1�.�Z�X�,�+�`�`�[�\�������x�x�B�C�l�l�,�/�5�8�(�,�"�#���.�0�+�)�,�+�`�^�l�h�a�]� � � � �T�T�3�4���_�\�c�d�������(�+���-�.��� � �&�(�� �����?�@�(�$�$�$�6�2�� �?�<�#�$�D�D���0�0�:�8�i�h�O�K���C�@�!�"�D�D�i�d�.�*�&�&���<�:���������V�S�#� �6�5�K�J�6�7���=�?�(�+����������� ����Q�O�`�\���8�8�U�S�G�E�d�h�(�(�����#�#�H�F�C�C�Q�L�(�$�V�S�:�:� � �(�*�����V�V�K�G� ��0�(���mj!� �`�`��� ��"��xxGF|WT���H�H�3�3�&�&�&�#�>�@���(�#�� �������(�&�(�(���I�M�K�L�I�H���V�W���$�(�6�7�+�*���C�D�B�@���� �I�I�I�H�L�K�<�<�*�(�I�H�*�-���2�5�� �+�,���pmdi���^�]�$�#�wz��6�8����(�,�,�,�d�e���x|��I�I� ��d�`�<�:�*�*�$�"�8�6�J�K�������������,�0�<�@��� �"�~| ���� � �&�#�"�%�2�2���0�+�@�<�4�6���V�V�������*�(����L�G�$��l�h���2�3�b�]�t�t�p�o���|�x�(�$�qq���XUa`XXojDApp+�*�-�)�:�8�c�\�i�e�t�x�`�\�Y�V�S�S�-�*�K�D�O�S�8�6�Q�O�����&�$�&�&�����=�C�WUgh��=�?�4�3�6�3�&�$�J�I�l�m�?�>�i�i�(�(������?�<�|�z�%�"�T�U�`�\�d�c�x�u�\�Y���������L�J� ����������}xw������6�:���&�&�8�:���������"�!�e�h�z�|�"�$�����&�"���@�?�)�&�u�p�6�4� ��\�Y�#��H�D�(�&�P�L�Y�S�R�P�2�4�������~YXADqvMMwy``@AHKty~��Y�Y�k�i�����s�t�����0�2�-�0���(�(�h�h� � �u�v���I�D�S�T�8�4������$�#�$� �h�f�P�L�|�|�D�D���p�o�I�L�B�@�9�9� � �� ����� � � � �0�3�� ��� ����|z~}b`�����8�8��������.�,�+�*�\�Y�v�u���L�K�]�]�,�+�����0�,�Y�Y���f�`�,�.�����S�Q�9�8�-�2�'�+���3�3� � �&�)�"� ���(�,�8�8������5�8�M�O� �� ��mq�� � ��� ����'�%�L�L�4�4�d�d�,�*���/�/���n�m�[�Y�#�#� � �~SUxwDGz��#�&�;�=���7�8�3�4���3�2�����m�p�s�r�T�V�0�0���joJR'-NQ<=yw~� ����� ������0�0�@�?�?�@�d�`��� ���0�,�^�\�~�|�h�l�C�B���v�|�c�e�A�C�C�@�\�X�U�S�o�o� � � ��OU7�7�V�V���h�k�W�T�(�,�E�G�����&�,���3�:�(�.�A�G�|�|���8�<�I�L�@�C�V�U�+�,���mpZ]wz~~g�c���`�c�,�*�������m�p���>�?�8�6���e�c�o�l�����������x�x�����f�j�z�|�4�8�P�W�� �qvy|��� ���O�P�:�6���Q�T�H�D� � ���z{TZSWpw����A�B�@�@�Q�Q�|�|�d�f���x�v�����m�l�I�M�5�8�&�(�U�V�I�H�(�+�[�`�V�\�2�5�9�:�=�C�������`c� �,�0� � � ��(�(�K�P�,�,����5�5���8�<� � �#�#����{}������$�$�GIqp=�<� ��\�^�F�G�^�^�r�p�w�v�`�c�E�D�Q�O�\�\���#�#��� � �(�+�c�c�����m�l�0�5�(�,�������.�/� � � ��������r�r�B�@���.�.�(�)�1�2�r�o�B�@�,�+���#�$�8�:����� SX����(�,���?�<�:�:� � ����� � �%�&�����$�$�L�Q�S�Q�� ��� �#����� � ����\�Y���D�D�V�S�Y�X�� �����������O�M�5�3�(�&�� �*�)� � �hjjha`gg�� � ��� ��K�L�(�&�����5�3�V�S�s�p�G�J�h�d� �#�O�I�L�L�,�.����;�8�c�\����z�<�8�f�f�2�0�Q�P���-�,��� � � ����Y�T�(�(�$�#�,�)�^bTTPOpppo]\������$� �(�&�C�=�*�-�������������s�s�6�6�|�x��|�C�<�e�f�,�*�K�L�����~��0�3�W�V�;�:���s�r�6�5�D�D�9�9�k�k�m�p�����=�=� � �����,�2�M�S�����������S�S�c�a�/�,�`�\���i�h�<�<�;�8�Y�U�`�^�`�\������ ��<�;� ��������TTJL?Csvhh � �����L�J���D�G�X�Y�<�<�\�\�s�s�'�%�t�r�p�m���h�j�V�X�|�|���V�O�r�p�T�U�[�Y� ��I�D� ��������|yoqy| �"�����"� �����h�d�<�7�f�c�H�@�P�H�/�&�p�i�� �4�1��|�Y�W�y�p����������y�r�t�s�i�d�j�h�C�?�K�M�U�Q�`�\�2�2�q�r�5�6���T�V�4�3������ ���dewy����0�.�h�c��|�������)�(�*�+�2�2� � �����L�I�?�@����� ��B�B�D�D�D�G�,�(�4�0���^�X���������1�0���8�<���4�4�.�,�(�(�C�A���)�+�������@�D�S�T�(�)�������������,�(� � �L�L�.�2�����$�$�����3�4�+�+�����sstqaall ��9�8�O�L�Y�U�<�<���<�:���B�B�!� �pwcjRW��������c�f�Q�Q�~�~���u�r�����������x�x�a�`�D�G������� � ��� � �� ���� ��I�G���:�5�k�h���`�\�0�.�3�0�*�)�&�(�����&�!�� �� �TU==�NOLGig|tq������ ��H�=�Y�V�X�T�����������,�.�,�,��� � �I�D�x�v�Y�[�Y�X��$�]�[�����W�Y�@�C���� ���5�7�|��&�&�&�(��� �����������������;7JM:=Z[ ��.�,�.�'�6�0���c�_�x�u�(�'�����u�m�$�"�x�v�<�?�O�L�V�Y�A�D� �#�f�h�����!� �looq23mm-1jj*�&�0�0�0�4�������k�l�]�\�.�0� �#� �%���ommlcbkj����5�4�����s�l�3�6�;�8�3�2�������0�,� � � ��=�<�@�=�9�8� � ���D�A�S�L�8�0�3�3�S�O�I�D�\�X�8�5�=�<�Q�P�;�8���� �m�m�m�p�i�k�@�?���]_ge``>A~gg�����������|w|~��(�&�O�L�l�c�#��� ���Y�V�o�m�����������\�[���c�[� � �F�@� � �)�$�<�6� ��0�)�T�O�X�V��� � �}|__~~� ���8�3�k�h�Q�O�y�v�j�h���Y�T�0�0�i�e�V�Q�<�8�^�Y�@�?�a�\�XWD�D���W�U�� �p�l�C�B�=�:���pmipsn|z4�0�llz|��K�I�Q�T�?�@���o�p�\`\\KN #<�8�I�I�p�r�������d�d� ����@�D���x�x���H�K����������%�"� � �H�C���S�Q��� � �2�0�:�7� � ���������a�]��|�C�D�s�o���U�S�h�f�.�)���,�*�a�\���D�=�@�?�� �� �0�.����W�Y�0�2���7�9�/�.�4�6�D�H���p�r�k�p���Y�\�S�W�"�$�������\�]�,�.�@�<�%� ���:�5�� �+�)���Z�`���8�9����� � ���$�(�T�Q�X�Y�G�K�P�S�I�G����I�I�����3�1�0�3�Y�Z� �&�����`�c�[�^���+�.�5�:�P�T�x�|� �$�.�4�4�8�?�D�P�Y�9�?�A�I����������!���3�;�Y�`�������2�6�7�9���\�a� �$��!���.�0������ �=�G�8�9�@�C�� � �����������������!� ���S�T�0�3�U�X�V�T�O�L�������s�x�*�,�8�7��|��� ������]�a�I�M�V�[�s�v�K�T������H�L�l�l�y�|�x������y�|�&�,�c�c�#�&�:�<�hlwz|��ttjl0�.���G�F�������������>�<�?�<������ ���`a������T�T� ����<�9�f�f�\�\�O�M�B�B���0�2�4�3���_�_�L�J���������,�*�VW��6�7�0�4�|z88yy�����,�0����� � �0�4� � �"�$�H�K�h�l�?�C���,�2�=�@�3�3�Q�U� � ���[�Y�V�T�[�\�D�I�9�?�f�f�� �xw8<�34gj0�3�Y�\�� �s�s�wy ������� �������<�?� � �����6�8�+�(�0�.�6�6�D�B�B�=���&�(���<�?��� � ��������?�<����3�2�,�*�ml � �"� �#� ����� � ���C�@�����&�)�����#�"���wz���G�J� ����8�=�������~C�C�?�@�dh����0�0�&�#�,�,�(�+� �!���&�&� � �������Y�[�� ���������h�i�@�D�vzyy���Q�P�?�<�wt*�&�<�8�G�B�����cgjo||��V�U�f�d�5�3���yx][@@`a � ���&�$�@�?����Q�M�3�3�Y�\�v�w���������@�?�H�I�a�f�����������)�*�����9�<�M�K���@�D���(�+���F�G���I�L�$�"�P�L�e�f�Y�U�������<�<�a�`�-�0�~X[~|��m�n�Q�Q�V�T�P�S��� � ��������� � ���$�#�&�)�+�-� ������<�<�6�4���������r�r���G�D�+�)�,�+�&�$�#�&�z�z�0�0�a�`�<�:�,�0��� �"�8�:�PSSU+�,�!�"���n�p�&�&�I�G�P�L���[�X� ��|�u�x�t�����F�C�p�i�:�<�����9�3� � �� �����8�6�M�P�&�$�!�#�:�8�Y�W�#�!�5�8�c�c�z�y�H�K� ��������wxomagC�@���M�O�I�F�0�3�G�E���������E�B���c�a�h�h���Q�P� � �����3�1�0�.�Y�U���H�G�r�m���3�4�J�J���W�S�M�J���������H�F�T�Q���$�!����� � � � �$�#� � �$�!�����������O�L� ��� ��� � �J�L�����������0�0�T�R�U�S�;�6�B�=�L�D�S�O�f�`�plmj����@�<� ������G�B�� ���&�&���J�I�^�`�����L�O�� � ����,�)�7�9���T�T�P�O�0�+��� � � � �$�#�"����44QT��X�Y�v�v�a�`�Y�\�����|�y�|�y�D�@�0�0�3�6� �"���+�-�� �y�|� ��vyJM3�0�(�(��#��"���%�)���t�r���C�H�6�8�4�5�0�,� � �cg��h�h���L�L�wzz|?�@�[�\�0�3���d�a�=�<�tvmq��Y�Y���G�D���*�)�P�P� � �O�L��� � �[�V�6�8�H�F��� ������V�W�����,�2���,�.�����a�`�%�&�bh89KO � �������J�K� ��M�I� ��a�c�[�Z�7�6�������+�&�0�,�0�*�� �!� �z}� �����(�,�$�(�?�B�� � � �[�Y�c�h�B�E�a�`�����0�0�h�i�<�=�H�M���������HD'(mpjm������������]\� ���� �&�$� � �0�3� �� � ���|��������m�k�5�8�|�}�S�S�T�Q�<�<�(�'�Zd()bbsp|y��WT��� �#��)�$��������P�Q�6�5�����1�0�����5�3�����0�3�4�4�p�k�f�f�x�v�\�^�&�&�UUss��&�&�D�F�?�=���|�z�G�D���������47��������;�?�c�c����<�<�Y�Y�L�L�� �S�M�e�c�$�(�8�8�p�p�<�@�I�L�=?3�6����� � �� �+�(� � ���ej��������X�V�"�#�=�?�J�J�����(�)�;�<�f�h�|�z�8�:���������2�8�8�:�+�,�4�7���������:�=� �"�n�n���u�s�����)�+���a�^���e�e�G�G���������:�@�=�=�����E�H�:�<�V�X�@�D�D�J���B�D�qt����&�#�2�0�G�E���?@��f�g�:�?�P�S�@�C�#�)� � �����|�v�  ~�x���l�h���h�f�omO�N�k�f�%$#� � � �������,�(�K�E� � �L�H���|�x�-�-�Y�Y�a�a�����J�G���l�k�Q�N�����h�j���n�q�t�v�� ���h�i�z��-1��8�9�����c�d���S�P���A�B�C�=�e�`�c�^�S�N�V�P� � � ��gjPMUTmp��D�D���P�O���\�V���6�4�C�@�\�[�;�=�V�S�<�?�?�?� ����P�U�3�6��!�t�p�V�V�r�p�[�]�i�i�B�@�h�n�`�c�x�x�9�9�����I�I�� �?�@�L�I�^�Y�#�"�|~~}� �~~ �� � �,�,�����������<�9�C�>�5�0�]�^�5�6���6�3�`�]�V�U�V�X�L�I���n�l� � ���0�4�ag)*dgqtD�H�� � ���� ��@�D�<�@�7�9�&�(�u�u�G�D�@�B�������T�V�?�<���;�<�"�"�$�"�������������c�c���|��������D�G�@�C�B�D�� � � �8�6�.�.�@�<�@�C�*�(�L�M�0�,�������\�Y�E�E�T�Y�e�f���%�$� � �'�$�����mq ����''PSZY14mo��&�#�������G�D�9�8�K�H�p�l��������� � ������]�Y�v�r�0�-��� � �j�h�6�5�����G�@�3�,�$�#�(�#�:�5�M�I�*�(�D�@�<�9�*�&���������,�(�C�@�����}qt]c{��D�D���5�3�,�+�$�"�QW����������&�#�4�4� ��v�s���!� �(�&�����$�&� ��8�2���,�*� ��1�0� �%�&�&� ��pp������)�&� � �L�J���a`"� ���@�A�����m�m������� � �������f�f� ���� � ���$$_dpq��X\gjjn*,|��z|k�i����z���H�J�6�4������4�2�l�l�k�l�L�M���+�&�Q�J�&�#�TU`]��� �0�,�F�D���D�B������+�+�|�{���-�0��� � �3�0���,�-�D�C� ��27PT}�� � ���������|�|�W�V�X�T�_�[����� �� � �f�a�[�[�p�p�����7�6�\�^�+�*���`dK�I���G�H�Q�Q���D�G�6�8�qvzzPROM;9� ���2�3�� �3�/�v�t�]�X�r�p���V�S�-�.�"�!�8�7���jl ��R�O���n�i�a�`�I�G�0�0�� ���������i�f�p�l��|�������������G�C�P�K�����`�`�C�E� �"���(�(���I�H�OO>9gg 52,(,"nhbdST,+``������H�L�� ���4�0�C�C�H�H�������0�0�S�Q�u�t���#�"�5�2����������U�Q�}�z�W�V���\�[� ��(�(���-�*�f�f�|�z���#�#���h�f�����x�z�O�M�@�@� �#�|����c�f�I�K�!�#���k�n�s�v���Q�Q���u}<D~|]_DFH�H���#�"�<�7� ��e�e�C�D�X�Y�V�Y�-�.�#�$�Y�[�\�a���V�U�:�:�%�(�M�Q���:�?���4�<���)�+�����s�s�.�0�"�+�k�p�E�H� �$������k�o��� �#�� ��� � �J�M�E�F���8�5���v�p�p�r�D�I�(�(�� �:�<�4�4�p�v�d�f�L�N�<�<�`�a�Y�Y���p�s�q�o�[�Y�x�v�d�c�&�&�v�s�Y�[�N�L����������<�:�H�G�&�$�qt $yz|}47pumj������|�~�|�~�5�6�'�&� �"�|�|���u�u�����K�L�������f�g�� � ����)�.� � �,�,�(�)�x�x�V�T�#�$�3�9�M�P�����:�8�%�%�x�u������� � �G�G������4�3���z�x�T�O�?�:� ��� �H�F�b^qqws>=��H�F�)�+�"�#�����hlwtvw|~hh��(�&�*�(�HHM�L�����6�3�?�@���������������<�<�2�.�����a�a���� ��������$�&�����P�T�� ���������������}jm@D::mm,�0� � �B�B���� � �3�6�)�)�� �0�0�,�,�������wx � � � �<�5�������7�2�2�0�E�D�8�<������������+�&���E�H�a�`� � �����]�`���L�M�h�h�*�+�C�C�E�C�v�u�G�C�4�3�����-�+�)�&�<�8�|�z�i�f���|�~���������H�G���*�)�*�.�<�<�v�x�Y�X�/�+�� ��� � � ��"� �pv��$�#���@�C�������*�)���9�:�!�&�z�z� �$�D�G�#�&���Y�`�V�Y�c�h���l�r�`�e���}hpdgqss�s�������G�H���@�;�9�9�|�x���������s�x�&�(�L�I�.. � �pm**mk@�<����� ��@�?�*�*���D�L�x�z�<�<�I�K�:�<�G�J�`�\�0�0�����O�L����� � �  9<eejkD�G�q�l���l�j�h�h�T�V�#�$�@�<�S�O�N�L�x�u�����l�o�p�l�l�i�3�2�X]E�D���������f�i���6�<��#��#���psov��d�f�I�I���i�h�f�i�u�s�S�T�h�f�����G�H�� ����.�.�#�#���(�'���|�|�O�O�+�&�I�G�����������l�m� ��sx<=:@X\mpxxst"�!�"�&�W�T�`�`�3�0��� �"�4�2�#�$�|z<=5:%�$�*�+�V�U�a�a�+�%����#�"�$� �5�5�<�8���y~ � ���O�I�� �3�5�Q�O�2�.�f�c�� �M�I���8�8�p�r�,�.�@�@�+�*�����,�.� � �L�F������6�5���<�<���Q�L����������+�&���+�,�H�H�������!����?�9����$�#�� � �������0�,�Y�S�k�h�4�0���������B�C� �$�e�h���7�6�L�K�Q�P���|�|�\�Z� ��(*TP��;�:�0�0�$�&���������������8�2� ��x�v�tt������ � �3�0�6�0�,�(���u�t�v�t�Q�M�l�f�Q�P���8�5�G�D�M�L�T�Q�����N�M�M�M�� �@�<�J�H�������k�e�(�(�c�`���3�+���s�p�V�P� �� � �e�e���$�"�Y�Y�������]�Y�h�h�� ���~~\�\�����)�&�m�k��~�� �.�,�I�I�C�C�#�#�L�D�B�?�;�8�P�O�\�Y�����J�G���P�O�B�@�'�$�8�5���yvst� �M�E� ������ �������P�T�3�3���������hh]]"$V�V�6�8�����i�k�SSh�l�L�M�!�#���lmtt@�@�qq������ol0�-�����UTWWpt����hjx{jm����,�,�J�O�?�B�/�0�:�8�$�(�?Gx|#�&�6�9���� ���C�E�������l�m�)�,�7�6�h�l� � �������rt��Y�T�]�Y�q�n� � ����� � ���V�[��gh�ux|{����k�h�Y�V� � ��� ��da��k�f�?�?�&�$�\�X�(�#�X�X�������W�U�B�@�n�m�p�l���sq ��� �]\|}B�?�:=�������� � �����B�C���D�G�����t�t�����p�n���ZXMSUW��tpI�H���&�#��� � �}~��H�F�$�&�I�O�P�T�����C�G�� �p�m�B�B���������I�F� ��������3�3���#�(�  h�h�O�L�r�t�(�,�(�-�� �V�]�G�G�������������k�f�������@�=��}�n�l�����<<xv���J�J���<�?�e�e���w�t�n�p�I�J���o�m�`�`�h�k�Q�U�i�p�c�d�&�!� � �����w|}{josx����V�S�U�W�k�n���\�[�k�h�&�(�(�(�5�6�R�O�I�J�6�8�7�:���;�7�o�o�?�?�� �-�+�L�L�2�4�`�`�P�S�v{9�:�2�8�������;�<�&�+�V�V�� �Q�Q�(�,������������ ����� � ���P�S�<�>�����HH��*�&�����<�>���0�4�D�B�|��d�f�x�|���5�9�lu��v|~Y�\�������`�a�p�p���G�G�P�O���I�L�����&�&�*�)�5�5�(�(���.�3�p�p�|�|���u�v���P�L� � ������� ����edyz��u�s�����������|�z�4�8�`�`�@�B���G�J���#�"�I�G���Y�]�\�^�@�@���z|8:28 79$'|}WW��8�:�*�,������&�(�Q�O�&�&�&�#� ����<�?�F�I� � � ����h�f�,�.�\�^�5�6�r�s���c�c�<�;���H�D���uw6�8�n�l�0�.�B�E�<�@�3�5�t�x�����x�y�T�T�3�2�,�.�oqY\YYdiuxmo����$�(�2�6�J�J��� � � ����~tqhh`Z � ���0�,���(�&�@�<������:�;���G�D���f�d���,�(�D�>������"�!�!�����c�`�Y�W�/�)�N�L�|llmj� � ��� ��&�"���<�9�*�#�l�h� ��<�<�&�(�"�!�D�B�����������@�C�6�2�������������������a�`�t�s�� �O�O� ��ZXTTqqNR`]YYWZpq,0ppdg������O�I���?�;�������n�i�2�0��������L�L�I�I��� ��"�������� � ���I�F� � �I�D�@�@�=�9���� �I�I���(�#���� � �G�C�Q�N� � �\�Y���xsljhgSU772411=;:4 � �h�b� ��C�@�!� ����|�:�6�h�c�'�#���7�8�T�O�4�2�(�#�ut|wvs��0�3�+�0�G�L�r�s���?�<� ��� �;�4���Q�O�y�s�)�$�~z�������.�+���(�!�@�B�������8�4�����(�(���(�(����|�r�n�l�i�F�G�V�V�V�V�4�6�c�a���&�&�>�=�����L�S���<@ $'KM14jgGK ��u�x�(�(�}�z�m�p���l�i�?�=���`�a�F�H���'�(�)�)� � �#� �=�8��� ����eaMM$*@@��S�S� � �U�T�l�h���������������6�4�v�v�V�T�$�#���"��S�T��� ������Y�S�V�Q�T�O�����7�2� ��������G�B���|�z�����p�p�������s�p�0�.�rsHH ,0||"�"�,�+��� � �U�U�������(�(�����h�l�D�G�c�`�Y�\����� �� ������3�3�����,�(���+�(������� �����Z�V���^�Y�,�+�h�c�Y�V�����u�r�=�<�5�3���t�m�T�Q������������t�v�@�?�H�I�l�n�D�E�`�`�:�<�#�!�<�=�%�+� ��,�,� � �s�t���9�;�?�C� ��L�O�[�Y�G�G�����s�s�����t�p�x�t���i�i�� �@�?�'�(��� ��m�l�E�G� � ���8�3�]�Y�� �#�#�2�6�6�5�����X�V���0�.���������jl ����-�.�`�`�\�^�D�B��� � �$� �,�(�*�(�W�W�G�G�����eglmJ�H�c�`�@�@�l�p�U�T�\�Y�,�)�U�T�B�@�]�Y�c�_�8�3�T�P���9�8���6�6�f�`�8�6�Q�O�Y�X����~~A�<���<�<���|�x�1�0���9�8�\�X�/�(��� ��G�D�.�,�D�@�O�O�f�c���� �}~~|KK]]wv@@eeKDpm]Z����`�`� ����d�_�@�<�?�?�x�v�j�f���:�8�<�<�� �#� �\�\�pp��p�i�k�d�5�0�mqpp� ������3�2����&�)�V�V�?�@�<�>���&�(�#�&�D�D���@�<�0�,�jlUX��,�(�+�&���gj#�"�H�A�l�f�*�$� �� ������(�&���O�O�V�Y�+�,������ ���$�&�D�I�?�A�c�c�`�\�[�Y�Q�M�������0�3�?�@���n�s����I�M� �$�p�r�0�7�O�P�@�@�H�I�� �mm~~,�,���pt)�(�C�?���?�@�����L�M�����"�!�,�,�3�5�)�)�B�B��� ��kmS�Q�)�+�7�5�Y�U�|�y���C�D���c�d� ���������8�:�����#� �<>}~@C||��-�2��� �#� ��X�Y���h�h���?�?���p�p�G�E�]�]������������I�G�"��J�I�L�Q�/1dg`dsmxv����H�D�G�H�:�<�����c�a�+�+� � �����z|ad~}G�F�T�T�h�f�M�N�`�c�e�f�\�`�@�B�s�r�D�@���4�3�����c�a�h�f�L�M���4�0� � �9�7�8�:���3�0�F�F�f�d���x�u�]�[�����~||}|y| � �0�0����� � � � ��<�@���� ���������*�)�� �T�U���a�b�<�<���?�@�p�q�I�F�Y�U�����C�D�O�O�\�\�H�K���:�;�����B�=�<�<�4�2�.�-�lqWW9�7�"� ����� � �����E�E�V�V�Y�X���h�i���E�F�t�u�7�8�|��O�L��������� �� � �~i�i�:�:� ���������z�@�<�:�8�s�s�|�z�&�(���-�+����(� �%� �-�(�)�&�@�C� ��dett ����u�v�}����7�9�L�K������!�~LM� �T�T�@�B� ��;�5�3�3�~�z�����������������n�p����z�u�r�H�I� ��?�<�n�j�,�,���<�8�9�6�'�"�V�T�%�%�������� �F�E�7�7� � �Y�V���� �(�(�(�&�3�6�S�T��� � �$�+�����C�@������c�c�?�<�g�f�z�y�L�L���������I�L�H�D�������q�r�)�)�3�5�����"� ����� � � �"�$�$�vxo�p� �"���8�=���6�:�v|TX����� � �� �� �;�@�����<�?�+�0�0�8�Y�]�i�p�agjpHM��K�O�k�r�K�J�p�t���M�Q�6�8�I�L�W�]�-�5�&�-�]�c� � �2�5����� �(�,�S�V���3�6�� �0�5���(�+�@�E�<�B�M�T�.�6���+�.��"����+�.� � �����F�J�KK9AK�L�I�G���������O�O�,�0�2�3� ����4�5�0�5�;�;����� � �+�+�����&�(� � �)�)�����zzSS}}��dbwx ��#� ����������xzlmMM==��@�<�k�i�K�M� ��C�C�D�C� � �d�c�@�@�@�?�Q�S�����P�Q�ts*�+�������� �D�@���+�$�������p�u� � �\�X�[�[�M�L�"�"�:�9�p�p�D�B�����(�$�P�N�a�`���.�,�FD<@ST|~af}���ddL�J�G�K�L�L�\�a�T�X�����C�B�y�z�@�E�r�p�$�&������������ � �$� ��<�B�4�8�&�(����v�x�x�v���v�u���"� � ������qq\]�� � �K�L�������h�h�+�(�0�0� � ���#�!�6�3���I�H�)�*���S�U�v�x���`�a�����Y�Y���P�M�0�2�FMwzsx;<ejZ]\`4�3���0�4����I�H���,�)�{�z�������  �� ������S�Q�?�:���U�U�������O�P�I�I���qt13dgPP&�(�#�"�^�]�|�~�����������?�@�U�V�I�L�2�3�����8�6���|{`dihTXRR��0�3���F�D�]�_� ������[�W���?�?���I�D�+�&�8�4�5�5�"�"� ��0�,�&��o�l�C�C�D�@�V�[�9�8�����qpY^kl � ���������6�3��������|�x�@�@�'�&�����z�v�9�:�n�k�*�(�p�n�|�x�d�c�����|�v�8�3�� �5�4�@�<�vs&�&�������Q�Q�� ���������@�:�p�p�C�=�)�'� ��0�/�I�G���Y�V�$�%�(�(�#�$�������''gj[[tu pjlj}}ol ����M�G���������������G�D�"��L�K�.�.�@�@���f�h�^�c�����&�$�,�*�z�z�����V�P�<�<�T�S�(�(������ �������0�5�9�3���j�h�V�T�����0�,�������P�Q�W�V�����jp��� ���6�7�\�Y�f�d�B�C���=�B�O�S�v�x�T�T�a�a��� � �`�^�I�I�������H�E������ � � � ���``dd)�(���5�4�I�B�0�,�4�0�(�&� ����8�6�8�5������������� ��\�\�w�x�f�f��z�� �H�F�Y�U� ����\�Y�T�S�����L�M� � �+�#� � �u�r�0�/�����E�I�TSOJ2074@�B���?�?���z�x������ �����B�C������=�;� �� �������� � �Y�X�M�N�0�3�[�X�l�l�.�.���������������pp��� �������� ����$� �������a�^���b�f�x�x�v�x�U�T� � �G�I�`�^�`�a���c�a�f�g�z{=�:���p�p�(�(���/�,���X�Y� � �wy}JHXY,1/2vwFH`_��$�%������pn|x� � � ����T�Q���� � �0�/�tv+�(�#�"������������f�d�!�#�<�<�`�`�����a�`�3�0�6�3� �� � �DB70pt\W��������`�f�v�x�Z�Y�r�n�W�T�B�C�V�W�#�#� � �yzyzHD0/99][>@xwywP�O�n�k�����������@�@�V�T�5�0� ��S�O�"�&�g�f�C�@������?�<�����:�8�D�@�`�\�s�n�8�3�0�,������ � ��I�C�I�D�� �3�.������������ �8�8�SW44st``jl����d`ut~0�2�!�!� � ���MM � �x�y�������,�+�Y�S���7�6�L�J�D�D���Q�P�C�F�5�6�f�h�3�3����$�{~������jp|����9�=�L�O���u�r��� ������T�W�U�S�F�D�?�B�������C�C�?�?�&�(�ttG�F�:�:���f�i�S�S� � �� ��� � ����� �!������������� �#���y�|�L�M�������������D�?�ttvtjmHFqsoo22]]UU � �p�p�h�m�B�C�(�(� �"�� �7�8�X�X�~}loLMaddhps � �<�;���(�,�h�k�p�r�f�b�j�i�$�$�Y�T�������������������������x�t�r�m�����u�s�#�"�}|pt,�-����������� � ���*�(��x�2�0���,�(�ttL�I�2�0�����B�=�p�i�v�u�G�D�������� ���#�"������ ����#�#���)�(���a�`�0�1�)�(�=�@�p�p�p�l�u�u�W�T�i�f�p�o�W�V�6�6��������llHKUW&'DD[Zwvji��C�<�@�;���������������[�\�B�E�h�l�������f�l�T�U�Y�X�����6�8�����c�`�S�T� ��go� �&�)�%�(�~~� �wz|})�,��� ��c�c�C�B�#�$�)�+�h�i�M�K���u�s�C�<�\�\�f�f�M�K���I�G�Y�V�?�8�s�p�v�p�����o�n�<�<�5�3������� �$�E�F�a�e���,�0� ��4�0�@<�����+�,���-�,���� �����$�"������\�[�X�Y�O�L�G�C�����<@jgjm��F�D�J�M�;�7�j�o�<�9�\�[�-�$�DD���!����N�I�J�P�J�E�Y�[�C�@� ��������3�5�c�`���X\ ����� ���8�9�����M�M�(�/�L�O�P�V�S�V�O�P�(�&�FA!MP�� � � � �������l�p���.�+�����<�:�������� � �?�<�� �������Y�W�F�J�����lmvyy~#�#�� ��� ����n�l���?�?�c�d�@�<�F�C�E�D�`�^�0�,�S�T�����/�3���0�0�p�p� �#�@�@� � �2�/����������� ���|R[<>07GO3404=@STad7�6�D�F�h�f�~����#�#� ��(�(����G�D�"�#�0�.�0�2�� ���"� �2�,�f�c���x�v�<�<� ��������O�T�-�*�mq � �(�(�s�v����������������G�G�C�B�|�~�.�.� � �6�3�� �Q�P�+�&�T�O� ��0�.�1�-� � �����|.�0�`�^���l�l�l�p�3�6�;�:�<�8���`�a�s�p�V�P�"��4�2����:�;���� �2�4�&�(� � � � ���^�`�K�M���{~wz�� ����"�$���+�0�Y�^�`�`�l�r�x�w���|��vxz|QW6�8�#�&���������#�"�<�:�&�#�0�+�=�7�\�Y�����������?�@� � �<�<�u�s�K�L������'�+�^�]�&�&�$� �Y�U�6�4� ��<�<���������7�8�G�G�Y�W�:�;�2�-�0�0�#�"�svJPyzf�f� �� ����]�]�T�T�8�6�G�C�F�D�9�6�@�<���A�<�O�O�~~Q�O���V�R�h�h�T�T���]�\�'�#�yxhl��gj6�6�@�E�����M�Q���G�G�"�#���.�*�������\�[�^�\� ��i�h�h�h�����e�e�p�s�,�,���s�p���*�+��������0�5�����l�h��|�5�2�G�G�|�|�O�P�bdaa����]�\��~���������c�c�]�]�}�|���G�H�txpt\`u|`b04 � �� �=�:�f�d�F�C���:�8�����^�\�|�v�P�O���(�(�D�D�PS`]|}rvC�E�X�V���8�6�����s�s���}�x���<�<�����<�?��~�v�v�����������C�G�*�/�����5�;�ejZ]X`lstz @D jl��)�'���(�+�'�&�r�s���+�)����� � � � ���/�/�����^�`���� �`�c�8�<� ������6�8�|������1�4���K�O�����x�|�,�)�;�=�hhDJ5�6� � � � ��� ��x�v�<�8�8�6����~���m�m�\�\�n�k���r�m�0�,�c�c�G�C�:�8�O�L�f�c�H�D�L�K� � �ON-0st{}��[\ln*�,���G�G���p�p�0�0�:�:�I�K�#� � � ��� � �0�5���]�Y�\�]������������ �=�?�]�`���V�X�@�B�2�6�L�Q�8�8�B�B�(�*���U�U���(�(�Y�Y�TZ[b��9�:� �#������|~c�e�9�9�+�+�� � ����.�,�X�[�t�v�k�l�3�3�fhSU�� � �.�-�C�G�����������@�?�:�<�0�0���<�:���3�2�$�#���L�K�T�T���$� �>�@�?�B�:?GG>A:>������7�4�p�k���|�|�[�[�������a�c�I�L���L�O�������\�X� � �I�H�F�E� � �~~FD����=;TRei0�0�8�8�K�H�����f�h�t�r���������gfxx>@]`wy(�*���3�9���|�z�f�c���|�v�������m�p�d�f� � �� �l�m�B�B�J�G��~�m�k�j�h�S�T�������m�o�2�3� � ����� ������ }|WX_\yy������^�^�O�K����{�����h�k�\�]��� ��hm.�.�5�0��"�"�"� ��$�(� �����/�0�-�,�t�s�����k�i�=�;�G�G�;�:��������� �"�'�"�c�c�?�@�<�?�/�,���4�6���I�H�<�8���&�&��� � � ��I�H�;�8�S�Q�l�k�#�(���c�e�V�Y�v�y�.�3�����2�3� � ���H�H� �$�� �c�f�������C�I�4�9�g�i�=�B�Q�S�:�<�6�6���(�(�jjZZqsdda]`^.�,�`�\�\�Y�&�%��� �$�?�@�+�,�;�<�6�8�������e�e�?�C���O�U���0�5�@�D�l�o�(�0�������&�&����������(�(�`�`�C�@�k�f���(�$�9�6���$�$��� � �[�Y�2�2����� � ���(�(�`�^�X�Y�L�O� ��m�n�O�S�S�S�L�L��~�=�?� � ���(�(�u�x�0�0���x�p���x�x�������q�l�.�,�� ���3�2�\�Y�L�H�h�c���G�A�y|t��"��3�,�wt@=JHTP[[B�B�0�+�<�6�k�h�f�d�c�`���t�s�u�t�\�X�i�n�B�B�"�"���OSkl|~������(�+�M�M�N�Q�+�,�\�`�7�8�`�`�H�G���8�?���2�0���3�:�� � ��|~,�,���� �X�[�Q�Q�Y�V�Y�Y�]�]�,�,�}bdx~��������������I�H�$�!�O�O� � �������� ��� � �#�(�&�(�8�:�?�?� � � �"�2�2���~|Z]11PMdd41HG|z��,�&� � �����F�C�+�(�6�4�|�v���X�Y�$� ������� � �G�G�.�+�z�x�z�|�2�3� ��OSMP<<qu������)�*����!�$��������� �!���������[�\�M�Q�0�4���L�K�f�f���PP"JKeejm``<�6�#�"������&�)���V�X���j�e�s�p�L�I�=�?�����V�Q�[\ll``wty{+�+�� �������3�2�#�#�L�M�E�E�t�v�M�P�"�"�T�Q�#� � �� � �*�,�S�O���h�c�`�]�P�Q�m�l����G�D�� � � �������������_�`������ �ssZX��|~��Q�S�Y�\�l�p�� �]�^� � ����0�+�5�5�������������9�8������&�%�Q�P�]�\�m�i�|�x�\�Y�*�,����� ��3�6� � ���L�O�O�O�������L�G�Q�R�#�&�h�h�P�P�.�-�,�+���t�o�*�*�~ � ���������c�a�@�B�^�c���`�c���a�f�(�+������O�L�|rp(�$�C�B���p�k�� �(�&�������� �l�j�X�X�(�+���y�v�������������,�-��� ��O�Q�@�@�lp}}@AMM������"��(�&�����$� �$�%�3�3�u�u���^�\�O�O���^�`�0�/�jm|�����,�+�W�V�$�'�z�y�!� �Y�Y�d�h���� �d�f�t�r���]�`���z���� � � ��� �.�2�D�E�&�&�~DL  x|pv����-�0��#��$���P�S�,�0���H�I���,�.�-�0�X�W�(�(��� � �����Y�Y���0�3�!�&��� ��+�,�,�*�F�H�$�(� �� ������������������ �tx&(``#� �[�Y�f�h���!� �)�)�I�H���\�`���O�S����������2�/�����<�?���0�1�x�|�����5�5���}����J�K�$�(�� �h�h���3�9�M�I�8�7� � �<�8� ��%� �xu|,�(���I�D�C�C�Q�Q�%�$����C�<�����#� �����Y�S�U�S�(�+�S�P��� � �`d��l�l�,�*� � �O�O�B�?�`�^�U�U�s�t�i�h�\�X���m�l�.�,�V�W����������;�9�r�p���!�#���WU������F�E�L�M���2�4�����^�a�(�!�Y�U�\�\�*�*�D�G���4�5�8�8�"�$���B�C�v�v�,�*�r�r�p�l�L�L�v�s���8�0�3�0�8�4� ��OQ��� � �����D�C�4�0���,�(�I�G�U�V�p�n�}�z�?�?�$�(�lpspghV�S�)�(�,�.�D�B�)�&������� � � � �+�+� ��\�Y�p�n�������O�Q�#�#�(�(�����X�Y�"�$�D�G�T�V�f�f�%�&�.�.�Y�S�^dxu:<��J�L� ����������������Q�O�i�m���K�I�l�i�[�V�|�z�����Q�T�� �VS<9wtttU�S�����0�,�f�d�S�V�z�x�$�#�����.�+��� ���� ��I�G����V�R���U�T�����������3�0�,�,�JH`]*,,(dgde`d������8�8�)�+�D�C���D�@�;�6���(�#���z�r�x�s�<�:�#� �M�I��|���&�!�$�$�!� �G�E�<�:�l�l� ��o�i�6�3�2�*�>�<�����npzzli7�6�T�L�(�$����� � �B�@�:�8�@�=�������mj������,�,�<�?�S�S��� ����z�|� � �M�O�K�L�����������v�t�(�(�U�T�\�\�^�]�K�M�$�"� ��+�+�������5�6�B�@�F�C�!� �B�@�9�8�5�2���mpuw����wx47 ��6�0�2�/����������������F�F���� ��-�,�Z�[�� � �"�D�H�[�]�Y�Y�k�k�)�,��� � �� ���sw&�$�,�,���� �� �����.�0�3�4�h�h�|�y�T�V�c�f� �#����� � ���m�l���Y�W�G�I�s�s�"�"���mo]`de08��$�#�� �I�F�Y�V�K�K�a�^�6�4�V�Y�����>�?�����������\�`�����|�}�%�&�|~plZZqs\`5�7� ��8�:�8�8�8�8� ����� �C�=�k�l�������=�?�&�(�����\�V�������������[�]�W�Y�`�a� �$�"�"�p�m���0�/�+�*�tqb``baey~GJ� � � �URb`||���� ��B�@������� ��8�6�*�+�\�\�^�\�&�(�|�|�`�`�t�r�U�T�Y�Y�������Y�Z���4�:���&�,� ����SQ����!�#�V�U�(�'�[�\�����������T�T�J�I���Q�L���F�B�2�.�T�T���`�^�@�<�4�4�oqtv@DaePPdaed||jl������ ��$�#���L�O�#�&���4�3���-�,�]�Y�`�`�t�t�S�P�I�F�������H�G���-�0�i�l������WXjj'+X]1747--88��������O�L� � �S�P������ ���(�(���,�+� ���� � �E�C���0�+�0�0���}�x���r�s�|�z���O�L�M�M� � ���L�G�1�5�\�\�D�D�c�]�4�2�I�G���B�C�=�8�9�:�0�4�.�.�����-�.���el(�(�z�z�@�?�9�?���������� � ��!� � ��������$�"�|�|�<�@�<�?������ �@�C�L�N�d�h�����|z��v|z}�����Y�^�������4�5�5�:�3�8�������|��T�Y�� ���6�8�@�@�(�)���d�e�0�2� �#�R�T���D�G�:�<�:�:�r�s�k�m�G�I���@�C�G�J�#�&�����}!$-.]d\`������8�<�|�~�V�T�*�-�@�B�T�S�]�`�f�i���L�K�� �&�"����mrjo��kl � �i�k������� ��������E�D�x�u�8�9� ������u�s�f�b���X�W�_�\�f�b�l�h� ��{�x�?�@�G�F���������x�t���c�d������� � �Y�[�����2�4���0�*�2�0�9�<���o�o�;�;�O�Q�O�M�D�@���G�C��� � �*�,����� �����������,�.��������� � ����3�6�h�f�m�i�^�^�4�8�C�@���C�C� � �U�Y�v�z�\�^���m�l�5�9��� ������<�<�L�M������� �������� �� ��3�2�@�@����� � �P�L� � �.�(�0�0� ������`Z�������9�8�W�W� � ���&�(�G�C�.�,�f�c�u�p���~|qq � �������&�&�G�?�&�&�*�)�xyf�c����#� �)�*�3�0�[�Y�x�v�H�H�<�=�!� �T�Q���<�<�p�o�����eh��������I�H�����������������#� �%�!�DD�� ��@�<�i�c�A�<�\�V�]�V�I�C� ��� ���J�K�������,�*���vtF�F�����������n�p�`�[���)�&�l�f�H�H���@@\U0�/�p�m�:8UU3�4�Y�Y�Q�Q���� �D�F�������������������k�h���l�i�`�^�$�$�(�,���lhPM4-a�\���(�#�H�G�X�V�*�&�4�4�l�l���G�F�8�:�j�h���?�@�(�/�<�=�TTtwqv��<�?� � �l�l����,�)�������Q�O�:�6���������5�1�l�l���������@�=�3�3���,�,���������#�#�L�L�� �,�+�&�&�@�B���@�B�I�J���:�<�,0~� �O�N�T�O�������C�B�6�8�L�M���U�Q�!�&�i�l�(�+���/�3� �%� �!��������0�/���8;UXSWZ[ts ������ ������K�L�P�P�~��D�@�@�?�Q�P�����\�[�i�i���\�`�������&�(�3�4�C�?�/�0�4�4�mr������ � �C�G��� ��,�-�_�^�?�<�4�2�8�6�����UShe]\ddRTOO%$>@[Xts��<�8�`�Y�^�[�T�W�I�L�������� � � �����||.�/���<�7� �����v�r�d�a�X�X���T�W�3�4�`�`�<�<�9�:�3�4�@�@���������<�=�a�`�����SU�� � � � �S�S���2�8������� ��������������$'�� ��}~|� � ����`�_�>�@�z�~�����0�0���&�&�B�C�(�(���������|�|�%�&�+�+�Q�T�,�0�,�.���.�0�U�U���:�<���$�(� �&�k�l�<�:�������0�3���D�G� � ���Y�[�0�.�B�B�=�C� �"�L�K�� �)�)� � ���}{3�3������24�����?�<�3�,�?�?� �!�|�|���I�I�,�,���� �M�L�\�[�6�4�H�I�u�r�#�� � ��������}�%�#���%�'������T�W�`�`�!�&�p�r�T�U�E�G�+�,� � �tt~SSMM ��T�T�Q�Q�2�0������9�8�D�C�)�(�^�\�6�3�~�|���p�l�I�G�����\�X�,�%�$��|z|z&�#�5�3�?�<��������C�@��������F�B���0�,�O�K�h�f���D�B���"�$���`�a�H�G�����#�"�$�"�;�<��� ��� �8�4���a�]���_�_�T�T�)�&�� �@�<� ������Q�U�I�F���`�`�n�l�=�;�� �'�&�S�Q�d�i�������pslilh('������(�&������������,�+�� �C�?�\�V�����1�3�����77stss ��6�3�|�z� ����L�L�v�t�������������p�m�+�)�� �M�L�5�3�6�2�?�8�<�4���B�B�_�\�P�O�6�:���h�h�������F�C�7�<��� ����W�T�����:�;�L�Q�p�s�+�0��� ����+�0�?�?����qs��WZ����#�#�=�?�4�0�H�H����� � �����"� �L�J�S�S�������� � �*�)���V�T�<�@�jm����|��8�<� ��#�#�x�y�L�H�3�3�0�0�c�]�B�@�(�&���6�5�W�V�C�@�L�J�Y�X�r�r�|��*�*�Y�[���?�<�x�t���r�t�T�S��� � �0�0�p�s����*�,�K�J�u�x�����@D ��#�"� � ������G�H� ��� � �� � �(�#�,�0�)�)�G�C�c�b�|�x�U�W�O�O�s�s�� �G�I�2�0�&�(���>�@� ��k�i�m�i�?�?�+�*�u�x�W�W�&�(�e�c� ��=�=������������suqt����� �V�X���,�.� � ����� � �������V�U�� ���'�+�)�)�Y�X�K�L������ �� � �r�p���\�[�(�(�r�t�c�e�^�`�"�$�� �2�0�@�B���p�m�U�R�]�\������gg������ �� ��f�c�&�#�G�D�� �P�T�Y�X�f�e� ���� ����������(�&�<�<�Y�X�C�@� ��� �mkjj � �O�P���������t�v���)�,�>�@�Y�[�x�v�I�K�6�;���9�4�3�0���2�0�����������@�?� � �?�;�@�<� ����:�6�`�`�����}{[\ GG[Zxx��I�D�l�i��� �� ��#��$� �9�4� ��6�6�,�$��� ����� ���!����Y�U�l�f���D�C���s�l��~� ��X�T�%� ����S�P�<�9�0�,�^�[�y�y�~��z�y�U�P�G�G�0�,������&�#���a�`�O�O�%�%�������^�^�(�&���� � �2�3�9�:�$�#�Q�P���H�G�O�J�#�"�2�/�|�y���,�(�<�5� �� ��W�T�L�I�����3�.�&� �F�@���O�K�$� �2�0�.�*�T�P���rp � ���3�4�������zx',z~cenr��6�6� � �6�3���:�6�D�@�)�#�&�&�Z�Y�8�8�[�X���������-�+�C�?�������,�(�3�/�f�d���)�(�\�V�@�@�<�<�� �.�+���������Y�T�^�[�]�Y���S�M���;�4�[�[�\�W�<�9�ljsq{wtq4�0�8�2�I�@�,�+�C�<�)�(�� �\\yq40#���� ����� �`a � �<�8�)�#�+�'���4�8�dc � ���5�5���3�.�7�4���E�F�����!����zzNMH�I�Q�S���m�n�#�#������� � �$�&�c�e���v�|�3�8���6�7�*�/�2�0�5�4���� �&�+�5�6�R�R�V�Y�0�0���r�r�X�W�v�y���W�\� �$�q�o�jl����4�0� ���� � ���]�\�����(�$�m�i�k�f�����5�6�6�2�0�.�0�1�:�4�F�@�zw-�*���'�&�I�J���xv(�&�������5�3���)�(�X�T�0�0�����4�2�$�&�(�$���4�2��� �� � �hjjmPS8�8�B�?�0�+���������0�)� ��(�(���|�z�|�|�x�x�s�p�����`�c�E�C�����[�`�O�O�2�4�HJ)'JG]\ ��`�[�&� �D�C�K�B�<�6���3�0�P�L���O�K�s�o�:�8� � ��� ��,�*�����������,�(�L�L�������]�`�M�N� ��.�.�|�z������� ��@�B�$�'��� ������&�(�e�d�^�`�J�K�:�?�[�\�.�0�S�V�l�l�&�*�;�@�]�`�#�'��� � � � �]az{}}��i�h�d�f�<�@�C�B� � �I�H���0�-�6�4�0�.�������������i�i�P�P�L�L�O�L�\�[�F�G�)�(�+�.���� �-�-���5�0� ��@�=�\�[�3�0�;�<�T�Q�0�0�����`c<�<�H�B���������B�B�<�<�^�]�Y�Y�#�'�0�2�(�*�� �gg��$�%���J�H�B�<� ��o�l�<�9���H�C� �� ��<�9�?�<�]�[�4�4����������� ����=�:�+�'�?�:�&�&�dbvt3�.���"�%���;�<�.�,�i�i�%�"� ��@�@�,�,���:�6�3�,�&�%���������s�o�O�L�/�,�6�3���K�E�8�5�=�<���2�,�c�Y�9�3�4�/�W�P�.�-�&��������x|+�&���%�$�;�8�H�@��|�B�<�`�W���0�)�"� ����6�3�:�8� ����U�W���n�l�D�B���8�8�L�K���������w}�������z}<@jmX]��m�k�?�:������z�`�`�I�I�h�e�P�L�sp � �k�e�om ��w|46cd@D}v���� ��,�,�c�c�*�,�l�l�(�$�^�\�`�`�:�=�@�<�$�"�c�d�\�\�,�0�����l�l�������]�]�5�4���"� ���C�@�������xzqqZ`TU���0�-�����0�0�|�|������Y�W�(�+����#�"�V�X�#�#�l�p� ��|�|�����*�)�\�\�UWtvgjpmwxl�j�S�Q�<�=����!�h�i�����0�.�����c�d���X�Z�^�a�p�m�$�&�����$�$�����(�)��������0�-�0�,���������*�(�0�+�� �?�;�O�K�0�)�T�Q���� �?�8���p�h�l�h�� ����������JJMJWT`]ejPP[]������[�Y� � �������w�t�p�p���B�F�rv����x{#�$�� �#�"���B�@�L�O�I�H�?�A���i�i�|��f�i���i�h�������������e�i�����GH:<� �� �D�@���h�c� ��H�I� � �G�I�[�\�i�h�<�@�����txJI\]ut��[�\�x�z���H�G�\�]���5�3�z�|���;�<�P�O�S�S�z�s�0�0�I�I�i�f�����m�i�C�C���+�(�(�&�betwpt�� � � ����#�$�?�@� � �� � � �0�0�D�G���,�.�O�J��}�������������f�f�(�(� � � � �qtB�D� ��� ���Y�`�}��8�<�u�s�S�S���w{8<RT� ��� �"�� �� �3�6�$�%���@�@�J�J�h�l� � �P�O�Q�S�"�&�P�M�l�j�H�J���O�M�����p�l�"� �2�.�x�x�p�p�f�i���D�D������� � �D�@���3�3����S�S�p�p�����8�8�@�=�K�I�0�+�&�(������� � �������pmhiD@eeWWTShiGH� � ��������6�8�� �&�(�� �O�O�f�f����� � ���+�*� � �&�$�H�L�Y�`�#�#���+�0�+�.�����I�L���?�=� � ��� �"�~������������Y�Y�t�v�#�%� ������0�.�0�-�p�l�h�i�z�z�@�B��#�?�@�`�\�[�V�2�.�K�C�P�K�3�1�D�B���2�.�� � ���� ��j�h�k�d�T�L�T�S���-�,�8�6�4�2�#� ��������� ��:�6���TQ2�/����*�(�$� �o�l�"�"�$�!�G�@�:�?���H�G�L�M�:�:�*�+�F�C���(�&�W�Q�r�r���`�\�,�-�����Y�X���������Y�Y�k�f� � ��������������� �!�tzPSxxUXGKv|sq������K�I�A�B�5�4�� ��������D�@���H�G���Q�T���� ����������� � ����,�0�E�G�I�M������ ���� �(�2�6�����"����&�!���I�H�8�6�)�*�\�[�@�D�� �F�D�����(�+�rm��8�;�T�U���������&�'�����?�@����#�$�<�@���� � ������ � �Q�Q�D�C�)�%�<�<�����/�,���@�@�0�.�Z�Y�F�C�����J�L�)�,�\�Y�Q�T�4�5�p�p�����`�^�����pm6�4�5�3���8�:�=�=�#� �D�@�3�3�Y�\�����D�=���L�E�W�O���V�Q�t�l�������� �&�(�� �rtgjbcml uv`]mh��MO]]@�=�s�r���x�t�F�C�l�f�F�D�l�k���*�&�*�*�������,�*�4�4�j�h�A�?�D�@�4�0�<�:�$�$�,�-�E�H�������������Q�Q�I�H�}""\`z~������k�l�,�,� �%���i�l�|�|�\�\�r�t�,�,�Y�]�@�<���S�T� � ��� � � � �(�*���� �� �HI��,�,�����f�c�f�a� ��������D�D���`�b�l�m�0�4��������&�"�����||]]01DGFAPSqs}~K�G�<�6�F�C���3�.���V�V�Q�P�k�h���C�@���� �Y�T�����p�p���c�`���L�H�]�[�S�S� ��H�F�^�X�|�z�X�U���\�[�&�&�4�5�K�I�\�Y�h�f� ��/�&�i�e�*�(��� � �#�#�H�K�B�B�\�W�?�<�$�"�c�a�l�h�3�0���=>|gj"�"���H�F� � �����H�D���s�n�<�9� � �����C�C�<�<�?�<��z�L�G���.�.� � �xzz~(�$�,�*���������6�4�*�*��������� � ��� ����$�$�&� �������B�B���8�4�<�<�#��i�l�1�0���&�%�����@�?���p�l�5�5�(�(�+�&���� � � � ����������Q�Q�0�3�-�3�@�D�#�)���� � �z~opppGK %pt���s�t�n�i�G�@�I�I�������(�(� ��+�(�D�?� ��I�C�(�#�B�?���2�0��� �!���F�I��}�Q�O���h�e�<�9�c�c���0�,�^�[�C�B�D�D� � �?�?�9�8�*�)���f�f�K�L� �"� � ���D�G�)�*���r�u�8�8�0�3����������O�P�P�V�D�G�*�.���� ���������G�K���2�4���&�&�����h�h���H�G�4�6�6�:�?�B�U�Y���[�\�r�s�[�[�6�9�L�P�9�8� �� � ����}Z`|} ������������dd � �"�"� � �8�9�v�x�������(�+�m�r���a�c��� � �*�+�F�E�v�z�c�h�b�a�� ������������ ��� � �� � ���� � � � � ���#�"����� � �"� �<�;�l�j�)�&�K�I���g�f���O�P�+�,�0�3���u}jq<D}GG �� � ���� � �#�������� �#�G�J�&�)�vw:�:�K�O���o�o�����v�x�8�9�����$�"�V�V�[�Y���3�2�������&�"���deLO:>HK07ZaAGMU<@bdUUCH>?SUhmP�Q�W�\�Y�W�i�h�����P�P�p�q�:�:���*�)�'�$�������&�)���6�4�^�\�@�@�?�@�@�?�8�7�F�H������`�h� � �+�*�I�D���]�^� ��j�f� � �<�;�(� ���4�0�C�=���Y�X� �"���UTBDdh �#�3�0� � ���~��:�>�(�*��� ��tw��,�,�K�M�������.�+���l�j�������6�2�M�N�@�<�,�/�K�I�������<�6���F�C�2�6�|�|�D�D�@�C�3�3� � �+�(�8�8�I�G�$�#�$�"�%�&�&�)�����H�F���,�.������ ����h�c���:�:�%�$�L�L���������)�.�����,�0�Y�^�L�K���x�r�m�l�&� �:�:�����O�O���^�Y��qp� �2�.�?�8� ��G�F�L�L�T�R�����|�v���`�c�)�(����������X�Y�x�w�����������&�$���M�K� ����~~:844*)GJNR(�$���r�u���Y�[�@�=�v�x�|�x�@�C�@�B�-�0�mp$�&���O�L� �#�:�9���V�S�s�t�0�.�M�Q���������+�,�� �X�Y�����?�?����� c�c���?�D�.�-�T�S�?�<�2�0�po``99ghlm4489GHvv~~�������3�0�4�1�O�L�)�'�[�T�c�a���T�O���L�K�6�5�L�H�������@�?�0�)�G�F�����I�C�B�<���<�?���(�+����� � ���9�:������� �8�:�3�0�ml ����0�,�<�<�G�D��� � �����h�c�,�-�\�[������ �?�C�����(�&��� wp&�!� ��@@����(�,���6�6�|�|�.�,�r�v���)�(�C�G�&�$�$�#���@�?�W�V�:�<�p�r���l�p�k�l���?�<���4�3�Q�O�0�0�� �����+�,�8�6� � ��}�� �'�(�@�@����@�@���O�M�V�X����"���3�6�:�<�,�-������������ � �8�:�P�S��� ���� � � � � ������ ��(�&���gdto14�����V�S�Q�S���y|:<y}27pquyL�L�C�D�0�2�T�T�`�^�c�`�l�k����!�!�&�7�8���;�<�?�<�L�M�;�9��� �!����������\�\�"����$�%�� �&�&�+�,���*�)�^�a�:�:���B�C�E�D�x�t���V�V�|�y�@�@� � �D�B�&�$�������giLMbhDG]`((@A42UW��� �\\#�"�M�L�L�O���z�z���t�s���$�#����� ��������ef��+�.�����/�.������ � ��G�D�@�:�&� �}|�� � �����#�#� �#� ��f�a�U�S�)�,�I�G�����G�G���6�6�}���c�`����D�@�0�-�`�Y���u�u���x�x�m�h���H�E�V�V�B�C�G�H�G�E� � �+�)���LMPO~{yw����]`4�2�3�/�x�t�.�,�F�F�����t�l���������������|�v�}�z�S�P�]�W�mjtvijmp ������$�#���.�,� ��6�6����#�#�G�I���:�<���������-�-���f�c�������8�7�8�9���8�6�D�D�H�I�O�L��������� � �0�,�S�T�@�@�P�Q�`�c�X�X�.�)�6�3� � �L�I� ����<�<�!��(�"� �� ��������� ���8�5�UTqp`_ZYWT� �0�*�0�.�d�c�z�z�]�^�����l�n�e�`�4�3�(�$���3�-�6�0�J�M�9�<�8�9�2�0� � ���Y�Y�@�=�Q�Q�Y�V� ��&�%�����@�@���G�E�.�,���`�^��|�l�n�����0�/�f�e�I�J� ��\�]��� �"�"� �V�Q�yy'�&�&�&�.�4�"�$�z�|�?�@�4�<�UTL�L� � ���B�?�T�T�k�k�&�$�0�0�<�;�~�|�O�L�+�)�WYx|qtCGjl���� ����)�(� ����5�8�Y�Y�?�?����� ��$�)� ����&�+��������� ��D�K���J�N���\�[�Q�P�[�Y� � ����+�0� �� �$� �$�3�8�V�T���H�G���B�C�V�[����������(�(� � �������� � �9�<����� � � � ����� ��� ����D�D�T�P�L�K�q�p�V�U���������������5�3�������� ��� ���e�a�l�j�*�(�c�c��~���F�D�p�o�@�?������ �AH`d����5�6� � �C�G���I�K��� ��� �(�*���XZ��X�X����� �#� �$� ��� � �"���������uxz{����&�&�J�H�P�O�C�?�Q�V��� �#���� ���a�`�H�H�,�0���`�^���8�?���P�O�ge����<�8�|��|�|�^�\�I�L�b�c����������[�\���������|}|~5�9�� ��"�adz~ � � � ��� � �3�6�#�"�x�v�D�D���������V�V�(�&�S�P�G�I������������Q�Q���,�+���v�w�������f�h�B�C�����bdeeSU~H�K�ehrtpp*�0�Y�\�<�=�&�(���P�S�V�Y�|�z���<�?�k�l� � �6�;�1�3�!�#�� ���<�B�^�`�|��B�C�Z�^�8�:�`�c�3�8���^�^�e�c�n�p�s�u�V�X�-�.���IJdd"`]rw����&�%�9�9� ��I�D�;�4�r�o�H�C�p�l�7�4�f�a�+�*���[�X���6�1� �����&�#���0�2�0�3�x�x�[�^�����������v�t�c�`�G�D�@�8�\�S���5�3�V�T�`�a�G�H������``5.$ ddjg[[lj������ �� � �<�<� � �0�1�c�\�������������:�6� ��D�B���*�'�+�(� ��4�2�a�^�V�N�?�8���#��Q�M�@�<�J�C���N�I�D�D�O�O�4�4���,�(�uwjh�������� ����&�&�d�`�� �v�p���;�7�&�(�<�9��}�a�c�Y�V��� � �����D�B�p�k�#� �OS����� � � �`�d�#�#�������?�:�U�S�P�O���G�F�(�&�� �4�0��� ��`�^�,�0�6�5�9�9� ����"�(�qt~}I�H�/�/� �!�w|DGov|tzf�f���������?�:�@�B�� � ����)�$�`�\�}�}���<�;�W�V�l�i�p�o�������c�c�:�8�������"�#���h�h�L�L�$�&�f�h�������,�+� � �(�(���C�<�U�U�)�,� �$�*�0���+�3�Y�a�����E�F�#�$�+�,�l�p�S�V� �$���� �� � � �E�G���$�&�O�Q�z�|�L�K�T�S�@�F�O�Q������� ����I�G���6�0���4�3�+�+�� �,�,�`�a���=�<�4�1� ����� ���.�/�K�I�@�<�[�\�H�D�������)�*�c�f�`�`�����ptMQgiUYgj|xw+�&� ��J�G�L�G�T�S�k�h���C�?������ �-�,���L�I�H�E�����o�m�*�+���B�A�?�<�.�.����� � ��� ��������&�(���������lo���#���4�5�~zzw}����(�&�:�8�)�&�����3�,���!����:�8�D�@�@�?�����%�&�:>H�G�L�N�G�D�4�6�����*�)���D?uswu|z� ���� ���:�<�4�3�Q�S�?�@��� ��x�v�����PPz~��G�G����#� ��� � �7�6�6�5�v�x�\�^�S�S����� ��?�?�C�C�+�-���������#�#� � �"�!�"�!�#�#�:�7�[�T�3�2� ��U�T� ��)�*�����������\�V�0�,�D�C�c�^�:�9�!����6�3����TT`]MOMPKSWZ3�5� ��� �C�D�@�@�c�c���J�K�B�A�J�L�G�I�;�<�������L�P�|��,�0���l�k�&�$��� � �,�,�~~zw������ � �&�#�$� �:�8���.�,��� � �7�8���<�8�]�`�����wx � �����*�+�L�M�� ���-�0������8�<���@�?�k�j���0�0� �� ��m�l���@�<�4�4�$�)���dgpm � ���G�E���T�S� � �djJPJMY\gd � �`�a���Y�Y�a�^���z��-�3�,�.�h�h����+�+�H�F� ����H�K�U�V�������L�P�����@�@�6�8�#�#�I�D�;�9�O�N� � �#� �S�S�#��$�#�:�5���T�S�&�%�I�H�������� � � ��pp0�0�(�&��� � �8�7�V�T�*�,�<�@�0�2���i�m�p�r���S�Q�����G�D���O�Q����"�(�3�4�ddej`e���a�g�,�.�+�+�L�J���t�u���O�S�f�i�G�G�:�;������ �D�B�SXAA����F�@�h�c�B�;�#� � ����g�f�Q�T�'�&���������������c�]�x�v�L�H�`�^�>�8�r�m���!��9�2�U�Q�M�L�;�<���7�8�f�d�U�R�J�H�,�+�T�P��(�%�0�0�%$PP`c|}0�0������ �� � ���������Q�L��� � �� ��� ��:�8���|�~���O�L�����X�V�%�$��� � �Y�X�����e�d�qt��3�0�������"�&�a�`�%�#�|�y�@�B���]�Z���#�&� � �(�*�.�-�<�:�-�.�5�8� ����:�@�����I�M�@�D�[�^�Q�V���P�O�'�&�����fgow������J�J�7�9�h�h�����|�z�O�O�P�Q�<�;�V�V�D�D�����wt|7<jl-3gl� ���.�,���������������@�<�8�/�����<�<� ��LHx�p�2�.�Y�T�(�(���.�)��� ��w�u���LLlp��,�0�i�j�� �wx<>''jhY�X�2�4���;�?�I�I�5�8���0�3�)�,�����Y�`�p�v�@�B�O�P���47��������Q�I�-�+�]�\�2�0�����=�<�����(�&�8�6� � � � �� ���5�6�?�=���������(�(�P�O�W�X�����djB�B�V�V�?�@�� ���� �����������*�,�Q�T�v�z�B�D�a�e��� ��M�L�*�)�a�c�?�?�BDCI@B,�,���:�7���tx��A�E�x�|�]�^�c�`�U�V�D�D�����&�"�L�J�]�^��� � � � � � �����(�)�H�G� � �H�K���d�i�� �@�D�D�D�\�Y�,�(���������9�4������������� � �||����������D�D���O�L�O�H����mp\Z���� � ���y �� �� ��(�#���G�D�+�)��� ��!� �I�D�6�.�� �<�6�8�3�������=�9�����|����0�.�G�B�<�8�<�8���:�6���#�$�0�1����+�(���Q�Q�B�D�V�Y�]�a���m�p���F�G�5�6�����������%� �D�B�����0�3�B�B����������V�Y�� � � � � �,�+�?�>�<�=�<�<�;�<�+�+���tw|}qmOT����������.�0���\�`�h�i�(�+� � ���������P�U�����3�9�2�8�`�h������0�2�����qt%�#�(�$�������0�/�)�/�C�E� ��$�!�L�L������ �� � �,�0�,�+�|�|�E�H���=�<�(�#���T�V�Y�Y�8�8�Y�Y�I�I� ��6�4�D�@�\�X�.�0�S�S��� ������<�:� � �� ���3�4�<�<���f�^�d�a�u�t�|�x�G�D�y�v�G�D�D�D�C�B�L�M�I�K���������� ��������������M�K���L�K�@�@���"� � �"���p�n�X�Y�� ���K�L�#�#�z�z�c�a�p�p��~�i�n�S�S��� �#���W�S�|�|�f�h�^�]�P�L�E�@�9�9�)�(�}zddlhww$"`]0�.�h�f�O�L�s�p�v�x���u�v�;�?�L�N� ��#�#�`�^���I�I�0�4������� � �������������?�@�R�R�t�p�����<�<�Q�P�����0�*���GJu�p�e�h���opDF��S[6�6�����z�z���������<�B��� ��]`Y]$�%�0�2����0�3�O�O���h�e�Y�X�p�l�v�v�B�=�)�(�������4�4���6�@�<�C�0�3�������HG��{_]]Z0,.�.�.�,�����?�A�.�(�����~~dd����D�@�-�.�����d�c�H�I�|�x�z�z�9�9�6�6�����c�d��#�l�m�����]�\���L�I�Q�Q�1�0�#�#�������@�?��� � ��� � �,�0���f�f�9�4�� �I�K�3�0�� �����1�0�$�����:�0���@�9�(�$���z�y�I�H� ��!��<�9�J�E�����T�S���(�$���P�O�z�x�@�D� ����FK07HF<>)-illpL�O�� ����� � �����I�H�����W�W�o�l�Q�O�M�L� ����������c�`�H�D�M�I������� � �#�&�&�&�����J�I���ZZ � �B�D�d�g�Q�T�V�[�?�@�h�m�(�+�v�v���O�L�8�7�|�y�O�O��"���x|��]�`�M�L�(�(�p�o�� �&�*���X�Y������� � ���������%�&�6�6�`�]�l�l�\�V���E�C�z�x�������,�/�#�"���|�|�6�8�'�(�#�&��$�&�(�� �y|sx � �RX ��X�V�����C�C�@�?�s�r�v�x�&�&�0�0�3�3�#� � ����(�)� � ���B�@�6�5�3�1�������x�x�f�i�>�=�<�<�,�,�9�8� � �im��<�8�����po � �@�B�PP��"�!���I�L�x�x�:�?�@�@�,�,���]�\���`�^�T�Q���{|TR��� ��%�$���X�V�h�i���������������0�4���9�6�v�v�8�6�*�(�*�,�(�+���"�(���� �������������� ������f�c�\�`�� �����a�e�<�B����"�P�T�����7�6�,�.�(�*�p�l������0�0�?�@���\�a�F�H�U�V�������6�<�G�G�����xw�������� �m�p���j�i�+�*� ����ll� ��� � �l�l���K�M�-�6������ ��!�0�6�l�r�Q�T�\�\�����P�S���7�6� � ������t�u�<�@���K�I�V�Y���Q�Q�l�l� ����������������7�7� ��}�|���?�?�,�*�D�C�G�G�B�C�:�:���X�V�S�Q���[�`�V�S� ��S�O���`�^�h�k�,�,���a�^��� � ���$� �8�2�\�U� �� ��� �)�#�@�8�#� �8�2�Q�K�q�l���S�M���O�J�=�7�=�8�� �0�)���97 jf��� �J�I�<�;�/�0�!�"�L�I�K�F�7�3�0�3����������� �2�3�k�k���@�?�:�8�B�<�@�<�� �8�3�&����� �DCwxDAa`4�0�C�=�&�#���Q�Q�<�8�M�J�5�3�@�:�<�6�S�L�C�@�<�8�E�@�7�3�+�"�tp=8ge�� � �"�!���@�:�"��?�<�&�&�h�f�s�r���y�x�\�[�G�B�r�r�6�2�;�4�(� � ��=�8�O�G�c�]�8�3�K�D�����0�-�4�.�}~zy � �������`bwx,.FHVY=@0�0�#�&���z}^d&�(���<�?���|�z���`�[���c�c�&�#�(�#�������``mm6�4�����&�#����S�S�����������8�<���� ������ ���������� � ���&�(� � ���F�D���I�G�<�?����|��������~�@�@�D�G�w|rxahDH���� � �� �;�<�� �6�6���qw��,�.��� �#�o�p���D�E�,�*�#�$�����s�r�����G�G���4�6�����8�<��"�|��&�(�� �.�6���^�^�&�*�����,�-�p�s�D�E�`�c�����X�]�U�Y���SW � �MP�!���5�6�4�3�B�B���wz��$�-�.�0���#�$�.�0�x�z���C�D�|�|������� � �2�3�$�&���c�h�9�=�O�O���E�I�%�(�� ���s�t�V�X�u�y���l�r�f�h�c�h�H�M�^�a���C�I�� � ����"�!���svu~bd<Ade~uy`h � �c�c� ����d�d�Y�Y�T�V���/�2���=�?���M�O�K�I�#�&����Z�\�e�f�������3�4�=�<�$�$�@�?���(�(�� �"�(�������������2�5�������"�!�������� � ��� � �����|~]`lo���@�<�����w�u�y�r�V�W���� �9�7�=�<���n�k�s�s���o�l�L�K�� �� � � � � ���V�V�Y�[��-�0�M�Q�X�Y����.�3�� �wz9:������V�W�i�h�T�T�3�0�3�4�#�#� � �?�B���'�(���������<�9�#� �Q�M�����T�U���� ���\�V�c�a� � ���������������������<�8�5�4�|z}}*),0UUTW�����4�0���� �2�0��������`�]�_�]�8�2� �#�D�B�J�L�I�I�<�;�M�I�k�h�P�N���8�8�4�4�������fd ��"� �&�$�<�8���n�m���(�$�$��#�!���| ����� ��� � �����,�*� ������ ��������� �I�I�U�Q�f�a�k�f�C�B�h�c�h�`�8�8�Q�L�g�d�0�.�V�T�@�9�:�:������ �'�&�;�8�+�%�~�z�c�a�5�5�}�}�+�.�)�(�����Q�P�+�,���9�9�v�u�����������|�x�`�`�K�L�P�S��� � �JL! 'WWMP:�8�h�c�p�j�3�0�%� �F�D�(�&�c�`�]�`�h�f�8�6�t�s�8�6�F�H� � �����2�0�0�+�8�9�plz|^`"%89@<d`zw����$�'�5�3���c�a�f�c�k�g�3�2�����L�K�F�B�� ����������Q�M�Y�V���V�V�r�p�O�M������� � �� �'�(�����/2jl��]]vxqr]a`` � �8�:�?�@�J�L���c�d���������O�O�������T�X�-�2�D�D�c�f�� ���@�B�ejX_KRC�G�ljf�c�S�S�X�U�C�@���s�p����~�m�h�@�@���� ���NM[Zbd470�2�8�7����������#����m�i�������f�^�u�p�v�u�0�,�C�@���?�<�s�n���X�T�J�G�f�b�������B�@�������5�0�:�9�%�"�"����6�3� � ���$�&���.�2���C�D���I�D�B�C�,�*��� � �y{����twUXqp>=$$tx��� ���@�<�5�/� ��4�2�=�8�C�?�O�P�r�p�4�3�I�G�+�.�#�%�0�0�v�u�r�s�P�O�D�C�h�f�@�A�� �$�"���#�$�c�a�V�V���\�`�f�h���y�|�D�A�G�E�b`oodblj�� ��B�;�gc��J�E�J�G�^�^�M�M�\�a� � ���$�#�H�J���`\&�$�7�8� � �`�`�s�s�������IL����V�S�G�D�K�K� � �!�$�,�0���<�9���������qq~ � �hj``I�G���3�0�� �,�(�� ���T�T�����9�8�@�<�-�+�$�#�����������u�t�l�h�,�(��� � �H�E�3�,�����3�3�N�M� ��]Y������@�@���p�o���������������h�i�� �WY��POhdsw� �(�(���(�&���r�n�,�)�8�5�����,�*�G�I�+�,�.�0�(�$�3�2�J�E���\�Q�d�\���������u�n���W�U�v�s���$�!�dd?@ � ��������|�<�<���&� �L�H�8�4� �� ��7�4�`�\�Q�Q���Q�M���a�`�-�,���ie/,~ wtB�<�\�[���������Q�P�x{�� ��c�`�8�3�&�#�����"� ���2�,���M�L�����������������l�h�p�l�|�x�z�z���_�`�@�<�����8�7� ��(�&� ��(�&���``��mj��Q�M�8�4�*�$�6�2���<�>������pmTQ74]`��P�T�v�t�h�c�x�x� � �D�C�3�1�,�)�G�D� ��3�4�-�,�t�p�@�?��|�m�p��|�z�|�,�2���h�j�2�0�� � � �%�&���S�T�)�(���O�S������ � � �L�I�<�9���������#�(�P�L�(�&�wub`{ve` ��7�<���\�`�C�C�#� �������msggjpx|tx � �O�Q�5�8�*�+�H�D�8�=�����7�9��� � ��� ����� ���O�M�K�F�h�f�-�0���3�4���:�;�&�(���&�&�2�2�3�3�K�E� �� � �ss � �C�D�,�0���T�T�:�:� ��)�*�p�s�#�&�?�?�0�,���� � � �T�S�3�/���f�c� ��=�<�(�)����`]� �$�"�0�2������ �ZXAA|tuzx� �!�!�����c�a��� � ���V�P�,�*�v�v���h�d�V�T�z�{���\�`�Q�P�:�8�s�v�r�r�c�c���[�\�L�I�8�6�01BBgjMOB@*�%�.�)�:�8�,�)�Q�Q���L�I�a�a�L�G���Y�V�W�V�|�x�a�[�9�7�r�s�]�`���y�v�+�)�@D",*eb �����,�+�.�,�3�,������ ��-�/�0�,�P�O�����F�C�<�<�a�\���?�@���D�@���<�<������� � ����������V�U�|�|� � �3�6�� ���������Y�[���������~�y�&�(����� ��a�]�X�M���:�8�H�G�X�S�:�6�|~��������)�)� ����hh**DD2�0���0�.� ����.�*�S�S�[�W�������E�@��|�I�G�T�O�r�o�������|�u�6�4�p�j���"�����0�0�&�(������"�"�.�,�~�|�#�#��������!�"�����6�5�D�@�:�:�T�X�����P�M�7�4�?�?�������lj��.�,�� �����/�.�:�5�13jhsw � �%�%�<�:�<�:���)�,����S�S�&�&�6�8���P�P�����������{|����.�(�����u�o�O�I�h�e�Q�S�J�C�.�+�L�J�:�5�B�A�G�@�6�3��� � ����3�4�V�V�]�`�"�#�.�.�+�(�<�6�L�O�=�?���V�T���ss��������dhlp,,WU||[�[�V�X�\�\�|�z�I�D�$�!���:�:���?�@�����$�%�������\�Y�����P�O� � �f�c���n�h�����������,�+������������9�8���������#��&�$����I�E�D�C���������(�'�O�P�L�M�7�:�F�I�~PS��c�`�e�f�h�e�@�C�)�)�������*�+�� ����� � �i�k�� �a�c�Q�V����� � � �����0�3�\�\���~}*�,�� �%�'���3�4�0�0�,�,�� �������,�0���M�O�5�:�6�5�T�Q�[�Y�x�|���8�6�� ����� � ������7�2���~��v�s�l�k� ��<�?�� �)�$�&�"���MO��;�9�D�@�2�.�\�Q�F�B�|�z�����,�*�`�]�3�*�(� �V�Q� ����(�(�:�4�:�7� ����ji~ztp|x�������� ����� �C�?� ��3�0�[�T�h�f�U�U��� � �*�+�?�E�~TY<@� ��L�Q� � �D�F�\�\� � �+�,�0�0�,�.���+�(�����#�)�%�#�[�[� ��0�.���gg����� �� � � ��������2�6� ����������������&�&�� �"�"�F�G�s�v������ � � � �jl`d)�+���0�3�\�\�[�Y�l�f�O�K�F�C�p�m�� ���h�f�~�}�u�r�O�K�W�S�8�7�,�(������TUqp������D�A���(�&�S�V�<�?�Q�S�\�\�H�H� ��l�i���:�8�<�D�(�0�����]aG�H�HM4�3�����U�S�S�L�i�h���c�`���Q�S��� � �MQyx|{��6�6�f�a�|�v�0�&�p�l��� � �������f�e�c�d�#�&�I�F��� ��������8�7���E�D�D�H�G�C�����k�i�Q�R�D�C�����G�D�@�?���Y�V�a�`�[�[�Q�L�O�K�l�k���<�=�%�&�op�� � ����C�C���#�#���C�B�~�v�(�#���.�.�������ed � �ggfipo|����� ����+�(�<�=�|����|�|�`�a���|�z���k�h�T�Q�u�r�������8�7�@�B�`�^�A�B��� � �<�<�$� ���F�H�:�8���a�]�B�@�F�D�P�L�E�C�&�&���D�A���0�.�\�[����1�2�POli=9qo01MKUQ pp��h�d�`�Y��y�����]�W�����p�l�[�W�h�c�H�D�^�\���?�:�x�u��� � �\�X�`�\���I�G�0�,�����hg��3�3�3�0� � �G�K���� �I�I��� ��"$����I�G�\�`���8�<��!� � �v�v��� � �*�+�_d����%�&���L�Q�G�G�K�L�T�S�{�x�]`\aggkmI�I���M�O���������J�I���(�/�4�2�*�*�%�(� � �!� �����#�&�;�<�`�c�O�P�$�$�����*�(�V�T�����D�?���"��T�V�<�6�h�f�@�<�4�0�&�"���Q�L�E�G�_�a�W�V�6�6�2�0�9�8�\�Y�Q�O�X�Y��� ��(�$�����@�=�`�^���L�L���,�*�<�8�<�<�� �K�F���#��+�+����� � �v�u���O�N���J�J�� �B�@�)�&���\�[����~�O�K� ����01����#� � ��I�J� � ���l�l�*�,�/�.�3�.�S�O���8�3�D�B�J�J�0�-�p�p�f�a�6�8�TT~| ����RPlhwu(�'�h�c�<�7���D�C�p�n�d�c�K�H�v�s�<�6�z�y�I�J�*�(�X�T�&�$�*�(����(�&���OPpp������0�0�c�\�c�`���������m�i���T�T�G�G�� ���usPTJJ SRPO����F�@�J�I�^�\�n�p���L�M���p�l�S�O�y�v���O�M�E�D�5�8���v�x�8�9���!�#�0�2���� �i�l�=�C�6�:�l�p�i�n�T�S��������=�<���0�,�8�4���� ���� � �3�6�7�4�`�]���Y�[�,�0� ����`�^�p�p�&�&���)�)�zw=@���� � ������;�:� ��E�B���L�K�i�h�����<�B�@�?����@�<��� �� ����<�:��~�����`�\�>�=�����lh���\�V�:�8���/�+�G�F�������#�$� ��K�L�$�$�B�D����z|Q�Q����������I�J�����$�&�C�B���`�a�)�+�� ���eimrwxdj<;(�+����1�0�`�d���T�R������ �hi]�Z�,�0�0�2�<�=���#�&�Q�O� � �}#�$�����#� �H�H�T�U�B�D�J�L���t�x�I�K���e�f�����f�j� ��������*�)���h�k�z��0�2�����I�E���+�&���&�&�x�x�4�:���.�2� � ���]�\�0�0���:�=�l�r�(�/����"���@�D�����*�*���9�:�<�=�5�6�������v�v�(�(���� �����~<>`d�� � ���:�<�R�S������� � �3�2���H�G�\�\�Q�Q�x�v���?�@�� ��� � ����� � �(�$�G�H�%�(�����"�$�<�9����B�G�r�r���V�Z�P�Q���MQ`b<@@BH�H�G�J�V�W�l�k�G�D�W�S� ��"��V�O�<�5�l�i�L�L�Y�[� ����D�H� ����� �"�%�f�i�� �P�Q�<�=�Q�Q�?�B�"�!� � �+�&�B�D�=�C� � �11TU+�,���� ���*�/���)�,�����pp��������� �3�3���&�&�?�<�+�+������ ���@�<�c�c�r�s�@�<���=�9�?�?�?�?�=�<�0�2���-�,�=�?�6�:�?�A�MRsvqr����������.�,�#�$���T�S�?�<�� ����� ��W�Y�6�9���"� �����(�"� ����:�9�:�6�4�5���3�3�(�(���3�3�D�B� � �P�T�,�,�`�`�M�M������ ���"�$�,�)�T�P���������@�C�+�0���������0�2� � ��#�����+�0� �&��� ������Q�Q�9�:�j�m�E�H�U�Y�B�D�<�=�E�H����~��#��(�&���B�@�"����n�i�x�z�]�]�"�#�]�]�X�Y�P�O�|�|�G�K�`�c�.�3�os�����0�4�ej � �O�O�$�$�G�G�.�0� �"���0�0�H�I�5�6� ��0�.�0�-�t�x���@�D�l�u�X�Y�6�8�h�h�����@�B�#�+������� �%�D�D����#������Y�V����� � ��������&�)�:�@�e�f� ��S�W�i�j���(,pthl<@os���@�B�c�e�8�;�������]�`����i�l�6�:�K�Q�Q�W�����S�V���B�B�0�0�����^�`�� �$�(�`cjmtzv~GM<C��������e�h�������������r�s���|c�c�������lp��V�^�+�0�\�_�V�X�X�V���������D�H�H�I�H�J�D�E� � �jm|deFM(*]`:<x|�� ��!�#�(�&�p�p�3�4���0�2�I�H�*�)�-�,���f�h�����p�o�������K�I�.�+���jmopL�M�M�P�[�]���I�L�<�<�0�,��� �� � ���G�H�U�Q�r�r�5�4�7�4�gh+�*�����$�'�qv� �3�3���8�;�����@A��� ��#��� �� �(�T�W�'�(�S�U�q�s�����f�e���,�,�.�,�E�D�+�+��� �"�ag69���������#�(� � �3�3���4�6�+�,�������c�c�^�]�V�Y���G�I�)�)�9�<�<�<�J�L�XZ,�,� ��������������2�4�c�f�i�h�c�c�f�c�&�(���5�8�"�#��� ��� �?�<�pm{wOK`]pl_]��� ��� � �D�@���:�8�� � ��/�.���U�Y� � �9�8�X�W�@�D��� � �I�H�k�d�3�4���T�Q�D�G����� � �(�+�3�0���@�<�*�(� ��1�-� ����� � �k�i�6�5�<�8�����p�l���WT)&�~y���� ����P�O�|z����\�Z���=�9���l�l�C�D�H�C�����e�c���6�3�s�q���`�]���c�c�|�y���������<�=�'�(�\�\���@�?��� � �$�%�������`�\�M�P�F�G��� ����2�0���?�@�p�s�����\�]� �#�������q�u�U�T���im���d`jgssdead��� �Y�V���87� �8�6�V�U�T�V���<�@�����4�5�� �mp,�+���j�l�D�B�K�K�Q�O���H�I�y�|�l�p�[�^�I�L�#�&�5�7���D�C���������?�<���#�(�����2�3���jlupwu&�&�������� �����C�@���\�Y���[�Y�"�$�V�T�6�5����� ��\[RR����N�K� ��\�Y���(�+�,�,�i�d�&�&� ���� ��2�.�<�<�>�@��}�x�u�`�`�������3�8���#�!�� �DC@@|daMN "&'148:wy\�Y�`�^�<�9��}��z�����m�h�X�Q�I�F�����Y�V�m�i�8�3�����@Dpr`ejly|0�+�tqww#�#�0�.�V�V���$�&������� � ���i�h�2�3���|�|�p�p�TU����\\����+�.���T�S���W\a`0.}|[�U�(�#�]X �$�S�L��� ��7�0� ��@�<� � �t�r�(�&�/�,�X�X�����?�@�tv,�,���<�@�6�9��}�@�@�S�S�d�f���U[0�/� � ����� � ������� �eilqo�s�������T�W�p�p�H�I�8�6�������SUptXXjl\�Y�$�"�0�0���������?�<�l�m�a�^�*�+�����5�2�P�O�M�J�=�<���i�f���H�E�#� �#�!�<�<�0�.�o�n���|�|�T�S�f�i�'�(�~��gh02jh`]��4�8�jl�!�����B�@�u�u���P�O�`�^�� �n�m�#�&���~�z���t�p�T�S� ��I�J�pv��F�I�2�4�C�D�6�5�U�[�&�(� � ������ �!�(�c�`�L�L�D�A�p�l� � �� �+�.�L�P�;�<�S�S�s�r���D�C�T�O��|�I�G� ��5�8���B�@�W�X���f�d�\�Y�;�6�Y�U���<�?���%�&���9�:�(�(�jlmp��?�@�D�K�Y�\���C�@�&�&�S�T�u�s�|�{�`�`���bg|dh����E�H���3�3�X�T�������sqttpqf�k�C�C�^�^�G�@�Y�V���x�|�t�w�X�Y����|���Z�Y���G�C�|�y�� � ���|u6�/� � �3�0�"��,�,�'�)�^�]� � ���F�D�\�Y�@�8�V�P�T�Q� � ��������;�8�X�T��KJ��,�)�������������L�K�$�#� ��0�,�2�3�`dsu}}ZZ������~0�-���`�Z� ����C�@�,�-�=�9�s�p�x�s�n�n�����g�c�^�\�=�?�B�A�E�G�@�<�����|�x���4�3��|�l�l�2�3���(�+�5�4� ��4�0���txUXGH��� ����� �� ��C�D�H�I�H�F�����op����8�?�Y�[�p�p�+�,�Q�O�*�-�X�X�6�8���G�L�� �p�p�i�n���B�A�T�T�6�4�i�j�X�X�(�)���������g�l�O�P�r�s���O�L���x�s���q�s� � �"��z|z|���#�� ���U�W�`�c�&�(���h�j�?�@�c�]���������������������x�x�]�\�3�3�����B�@�~npjm$$AEKO9=WXDGeg~z}il|����� �� � � ��3�5����KO\^��0�0�8�8�#�#�U�Y� � �F�E�u�x�����d�f���4�.�����A�G� ��|�x���r�p�����k�f���U�T�`�`���� �f�h�27twX\KM*/vw��baee D�C�w|>@|wt����orF�G����G�E���0�1���z�|�O�O�$�#���x�v�������������?�=�S�R�V�X� � �D�C�I�G���(�(���V�T�������c�d�c�c���~� � ��[�X�8�6���D�C�|>7��.�,�/�/���-�-���0�.�)�&�O�J�,�(�X�P���U�S���5�3�K�G�V�Q�ywkhvz\�\� ��?�:�Y�V�st�������� � �&�&�M�O�����*�,�5�9�0�0� � �8�3�����7�9�]�^������������� ��6�:�B�<�]�[�P�Q�&�&�D�E�����/�3�Y�]� �"���*�&�5�6�O�S�B�C�5�3�B�@�0�0�����!�$���D�F�.�0�.�0�G�D�N�L�Q�L�+�$��� � �������liyz����$�!�Q�S�<�9�6�9�:�7�������c�c�B�@�C�C�����5�3������� ��#�#�XZ��)�)�t�r����9�3�<�7�H�E�� �]�Y�I�I�h�c�`�\��� ��8�9�L�H��� ��G�C�a�]�j�f���Y�W�c�f�]�\�h�h�������Q�Q�&�&�/�(�������opos8<><W[tuvt����3�-�p�p�����������  ����D�A������������������ggTWNM00xw��K�J� � �������1�.�5�3�V�U���� � � �I�G��� � ���X�W������|�������S�P�d�^�f�e�8�5�U�S�k�i�x�r�@�<�Y�Y�x�r�l�m�s�m�������.�)�qu[`/1``~zy����`dMLpm��k�c�0�.�)�#�������S�P�O�I���c�f�� �����������0�3�D�C�2�,�� �)�)� � �0�1�k�l� � �t�v�������=�B���O�Q���������D�H�*�(�<�<���yxgd������S�O�a�Z������ggmp � �ts����%�"�������O�O� � �����:�<�c�e�����I�K�<�@�K�J���#�#�o�l���u�r�$�(�����~]almhgRRqr84EDgg)�+���#�'����� � ��7�0� ����G�C�X�V�V�V�3�5�b�c�����ZX����,�(�z�v�i�c�p�l���v�s�,�(� � � � �A�@�.�-�@�?�T�M�h�c���������|�v���x~����T�S�����x�|�V�Y�����"��o�r���Y�[�S�Q�����'�&�@@01oo�')ln�����mmjp���mp����]d=�?�M�K�p�m�����)�)�.�+� ����E�D���?�<�a�_�Q�O��z�(�'�����L�E�������������s�r�u�r���@�A�0�.�f�c��|�������W�T�<�8�0�0�I�G���=?\`wsde)*GE�� � �jdoq������+�,�C�@�4�3���O�O�H�G�S�Q�����M�K�������k�l���Q�T� � ����� �#�ik77 &LM78gg����+�(���3�9���2�3�*�*�4�6�"� � ���!�������C�@�Q�Q�~��K�H�(�&�"�!��� � �)�)���y�y����n�p�"�#�.�.���v�v�M�L���TSSO4488 "\ZOP)�*�JJde}� �,�)�=�:�C�@�V�V���S�Q�6�6�Y�[�n�p������� ����OS_aruGHgmah����M�P�����u�u�Q�Q�T�Q�<�=�������T�U�I�I���*�(������3�0�� ��� � �:�:� � �3�5�(�(�(�(�0�0���|�|�i�f�h�k� � �&�(�}~8�5�B�@�V�P�l�j�0�0���a�^���@�D�F�C�(�&���`�^�\�]���&�)�0�,�3�4���.�-�f�f�)�&���O�L���s�p���?�@�3�4�#�#� � ����#�#� �#�&�%�J�I�{~ �#�K�M�6�7�G�H�d�a�X�S���.�.�3�3�G�@�x�u�t�p�s�o�v�p�B�@�V�R��������� � �"�"� �� �� � �����&�&�� �(�&���(�$�?�?�,�-�����i�h�����V�Y�\�`���TXW]tx� �3�0�#�$�f�d�)�(� � �*�(�D�@���U�U���� � � �� �,�,� ��%�&���r�p�2�6�������jpD�C� � � ����&�$���v�u�>�:�G�G�f�f�I�C�S�R�;�:���2�2�\]]`��U�Y�����`dT�U� � ���i�f������� � �R�S�#�#�W�S�h�i� ��>�?�]�\�8�8���#�&���K�I�z}��wy|�|�����8�5����JKgg,�-���0�2�����^�]�t�o�#�"�6�2� � �<�<�Y�Z�C�C�����k�l�C�D���m�p�:�8�|�x���� �� �!��C�;�?�;�� � ��#�!����|�x�v�v�s�6�:�0�.��|�=�<�d�c�hg1*}x����T�V�,�+�ljM�M� � ���`�]�G�D�x�t�`�]�t�r���,�)�<�3��|�#��� �S�P�0�0�Y�V�i�h�e�`�`�^���&�"��������$� �=�9�``���4�4�v�s�v�v���v�v�l�m���C�C� � �$�#�����6�0�c�`�'�#�4�0�!��~~4�0�,�.�(�%�<�8� ��OShj,.|~y|����(�(�=�=���(�+�i�m���r�p� ��V�S�<�<�*�(�=�9����� ��e�e�G�D�4�4�����\�[�������4�8���������\�Y�3�5�5�6�@7xqdaSPUUyvG�D�M�K�@�;�g�c�7�4�0�,�������,�(�n�h�����z�u�:�6���F�C�a�`�.�(�� �3�0�:�8�3�5���z}SYv}pwTX|B�D�`�f�����`�]�`�`�;�;�(�(�T�T���3�7�$�'�O�U�o�p�Q�S�#�&�� �(�+�� ���U�U�Y�\�\�^�P�O�����,�/�#�&�6�9�6�8��� � ���6�6�� �:�B������ �(�&�Q�S�u�u�X�W�x�t�i�l�������2�1���9�<���������������K�J�L�J����������5�4�E�@�a�\�j�g�P�L�c�_�p�k�������v�r�P�P�ll�� � �������G�K�5�5���9�9�-�,� ��pt�����c�\�&� � ��<�4�G�@�,�%���?�<���\�V�<�8�<�6�<�8�:�8�L�M�3�3�X�\�,�+�IM4501egXZ~���*�(�)�)�x�v� �!���D�D���������� �2�4�K�M�I�I�?�?�(�&�����f�h�Y�[�#�"���2�4�),�����,�/���� �� �� ���a�`�\�Y�7�3���gdvpSR``4�,�m�i���6�0�S�T�������� ���<�7�&�!�f�a� � �C�C�K�I�T�S�e�f�d�c���0�/�S�S�%�(�6�;�:�8�[�W�����CCddRPMOmp#�"�������+�0���(�+�'�+�8�;�&�(�0�,�&�#�`�`�S�T���a�d�[�[�|�|�@�@�p�l�V�W� � �hmT�T�M�Q���z�{���������[�[� ��]�Y�������V�V�O�P�G�D�<�:�I�B� � �X�U�� �"�$�7�6���ag��a�`���������������l�f�$�!��� � �� �%�$���wx}~hg �� ��E�C�&�%��� ����S�Q�S�S�^�^�����a�`�2�3�������dg �%�&�$������� �$�D�B�MMSQZRD�:���#��-�&�"� �B�>�5�4�$�$���2�0� � �]�\�H�G�L�G���7�4�T�Q�p�k�r�o�O�I�(�(�<�9�L�J�����x�x����|�"��[�V�Y�V�)�)� � �9�8�#� �hhylpPTgiww|zr�r�6�5�6�0�8�6�Y�P�(�$���\�X�6�2�)�&�#�$�����5�1�������+�)�G�G�����G�D�;�;���n�r�.�0�O�Q�4�8�D�C��#�<�B� � �]]|?�<� ��;�9�����l�h�H�F�V�V���������"�!���6�6�`�\�T�V���jlss{|����[�\���0�3�[�]�������<�@� � � � ���|�z�f�j�������I�H� � �?�8�2�4�����}�x�n�p�p�j��z���v�s�L�M�`�[��������~��Z�W�7�6�}�z������� � �@�?�+�*�%�"�<�9�@�=�9; � �����k�k�f�c�6�5�J�J�\�]� �����|���^�\���<�<���]�Y�78tv����$'��+�,���#�&� � ����[\jl��&�&�(�(� ����T�Q�^�`���o�l�@�=�o�p�C�B�<�<�,�)���gh��,-��+�.�k�l�C�>���m�m�{�|�;�<�B�@�u�u�s�u���T�O�<�9�K�I�J�F�,�$�}|"10pp3�4���C�G�� ��� ��K�G�M�P�S�Q�x�x�3�2���������0�0� ��@�=� �� � ���(�(�����J�E�6�.�����|�z���?�<�>�:���]�Y�����9�8�D�F�R�S�Y�Q�``qp-�+���@�>�&�#�p�p�Y�Y�������������`�c�4�8�����������Y�X�������v�x�O�O�2�3��������$�&����)�)���ls3�6�WW���� � �����4�6�*�,�6�6� � �O�O���+�'���@�>�P�O�@�@�Q�L�<�9� � ���<�=�|��<�>�J�L�j�i� � �v�v�2�8�`�a�|�|�I�L�4�6�v�y�������T�S�dg"'KM_aux``DC?�=���s�s���4�6���)�*� ��(�,�<�D�|%*&gj9=`e��������G�D�G�I�W�Y�P�Q�L�L�c�d�M�M�wy~~tywzz~moMNmpij\Y}~5�6�&�#���v�z���sp��?@����LF��������O�T�� �#� �k�f�����0�-� �!�D�F�� ���3�2�����3�3�[�^�����k�n�+�*���<�<�I�P� � �a�d�<�D���.�5�:�<�X]po_c.0$�#�,�/� � �.�0���\�]����� ���� ���E�C� ��D�J�L�M����8�<� � �O�O�T�W�O�S���?�@�$�(�B�C���f�l�:�@� ������������jl���� � �O�Q�c�f�+�3�V�V�F�D�<�<���S�U�H�I�S�T���L�J�ehHMuw(�&�QS����E�D�.�3� ��;�@���+�,�)�.�Y�\�����0�5�������3�5�C�D�����TX}qx���D�F���X�\�h�p�<�@�V�X�p�v�E�I�����x�|�i�k�I�L�L�P������������V�Y�`�f�e�h���E�I���-�0�'�(�������@Gtq_a4�5�`�c�c�f�@�C� �!�������������3�4���L�O�p�p�R�T�+�+���!�#������ �vw]`��.�,�,�,�5�5�4�6�RT��Y�[�8�9�l�m���|�z�K�M���c�`�C�<�i�h���=�?��|�p�p��������������� ���pt����D�E�X�Y�F�D�4�6�(�&�����3�0�a�^�h�e����|�����Q�Q���(�$���$�!���� ���/�,�����L�G�� � ��po0�.�D�F�-�.�Q�S� � ��� ����o�k�W�W�"�%���:�8� ������7�3���������]]FGgh��#�$�N�L�c�d�������`�^���I�H�:�3���?�@�a�d�D�D�\�^�c�d���z�|���N�L�i�h�H�F�)�(�o�r�L�L�z�x�������#� �m�m���r�t�c�c�<�:�4�6���X�X����,�0��� ��l�i�G�B�2�0��� �����~~`^KLXZ~~|srzz���"�(� �"� �R�N�m�i�:�8�]�\�\�W�k�f�8�8�^�Y�$�"�J�G���JI��[�Y�Y�Y�����@�=�B�?�\�W�������(�(���8�4�����`�`�������x�u�;�:�pvWW����#�!�tt����&�#���`�`� ����E�B� ��%�!�8�9�� ���`d*�)�lo���������� ��� � ���D�D���3�2�D�H�P�O�������������`�d���|�|���%�)� � �����G�G�<�=�]�^����4�1�����4�3� � �,�(�+�)�$�&� � �B�@�i�j�;�:�Y�[�L�K�<�7�I�G�c�c���[�Y���i�l�@D12!%gh������D�?�*�)���^�[� � �C�?� � �*�(�G�D���������3�0� ��� �<�;�� � � �����mt�� ��� �f�f�*�*�*�+�O�P����!�#����� � ���X�T�k�h�c�`�4�0�S�M�� � � �I�L�I�G�W�V�����z|:9 ./<< zzsu��C�B�0�-���8�5�����������p�n�=�?�V�Q�s�s������������������~�.�0�c�e�������I�E�x�x���^�\���:�9�v�x�����������Y�T�b�d���������������r�t�E�H���qu`d!&������-�.���������,�,�������0�4�x�z���� �� �����*�-�����G�K� � �@�@�3�3�C�F�6�8�� �� ���6�8�5�7����������"� ���W�U�[�]�<�<�\�Y���l�k�V�Q���\�V���h�i�^�^�?�;�,�+�3�4� � �I�F�����)�*�qq~��0�0���M�M�������\�\�Q�Q����� � ���\�Z�S�M�A�?���jl\XjjQMRQEF[WMQ`�`�J�H������,�)�����������r�o�#�!�<�:�� �����0�/������tw� ���@�@�&�$�C�D�T�S�7�7�x�x�����4�3�=�?�"�&�:�;�I�I�#� �:�<�� �����4�8�I�G�&�)�����Q�U�.�2���"�(�uzpv\`xx��0�0�����D�B��~���T�Q�f�c�?�?�\�Y�,�,�f�c�;�5�;�:�,�,�SS��`�`�i�i���$�*�(�&���G�E�D�D�����$�$�����8�9����� �$�"�f�c�V�V��|�������t�s�/�,�� �B�<��� ��������@�C�+�+�� �gg��9�8�P�L�L�J���9�9���W�Y������E�G�+�.�p�p�V�V�G�L�L�O�#�"�O�T� �� �!������<�:��� ��� ����*�#�� ����|�v�&�$�h�c�� � � �7�3�(�&���������L�H�H�E���h�f�f�c���������I�G�c�`�$�$������� � �xyopRV``z||z~mlG�C�����8�:�V�U��"�]�\���^�`�l�k�C�B����� ��@�@�qswz~|\Zlplm��"�!�)�(���� � �v�t���l�i�|�|�@�B�����m�l���L�P�D�F�I�I��� � �=�@�������I�F�^]� �*�%�G�B�&�"�����.�'�,�&�'�"�����5�2�S�P�.�,�\�Y���/�,���!�$���X�X�.�.�����h�h�����H�G�[�]�<�<��� � ���ppCDst&�&�����XZ������d�h�(�*�\�\�����������|��@�?�O�Q�.�1���]�]�r�x�O�Q� �$�x�x�����bd��14 � � � �f�c�V�T���h�i�H�I��~�P�Q�|��C�C�+�*�-�2�.�3�6�:�RT")�����6�6���������������������DG������9�7������ � �`b����� �z�t�K�I���`�[���0�4���,�,���Q�S�h�a�s�r���a�]���:�8�&�&�-�,�I�D�6�5�&�(���I�I�l�l�)�*�� �C�C�S�S�h�f�+�(��� � �.�0�����E�F�������B�D���ty�������������*�,�� �� �KK� �����^�\�22 ���� � ���� ��z�u���B�?�<�8�+�*�o�f�N�H�`�\� ��&� ���&%\Z&�(�.�,��������`�b���v�s���0�+�G�F�G�E���0�0� �� � �������4�0� � � � � �� � �L�M�p�s���z�y�U�T�A�C�@�C�|�|�Y�]�L�O�����h�l�B�@�]�^� ��GD������ ��y{ed ��nl � �O�O�4�/�I�B�8�4�����3�5�p�n�d�a�\�V���op������$�$���Y�W�^�\�(�(�$�#� � �����s�p�W�X�������Y�W���L�L��� � ���P�L�-�-�u�u�����,�0�3�4�S�S��� � �Q�T���<�;�<�:���-�0�� �P�P�0�0�e�g�]�`�� � �#�WX7�:���T�Q�����F�C�U�P�����ilY�Y�� �|�������� � ��� � �0�2�#�!��� � �� �e�a�z�s�� ���+�*�H�D�srxt����.�)�� ��G�B���ur��?�<�9�5�L�H�@�9�(�#�$� �K�H�&�#�6�4�9�8�T�S�txQUMO |zUUNK����3�4� ��0�2�M�L�������C�D���y�z�� �8�9� ��������,�0���?�=�0�.�<�;���k�m��� ��3�3�0�2�����'�"�������C�F�u�u��|�0�*�����b�\� �����0�/���3�,���<�:�� �3�2���9�8�`c������� ��?�B�r�r�F�D���T�T�t�t���3�2�B�D�"�$�T�V���Q�S�G�H�O�Q���p�v�-�.�h�i�zx@HTUdhmsvxbe����c�c�k�k�d�`��|�c�e������~�l�h���c�`�v�s�r�p�C�@�|�|�7�9���(�#������ �<�<�I�I�i�j�,�3� � �r�l�|�x�Y�V���V�S�S�P�O�O�}����/�0���}|~AA&�#���� �jlzx����,�,�C�D�&�#�� �����(�&�.�*�������KPX\~DF.�,�8�:�����i�f���i�h�z�|�3�5�k�l�x�u�S�T�c�`�������� ��)�(�,�0� �#���}~`b��3�4�������@�B�������U�U���0�4�����=�?�D�D����#� � �����O�L�5�5�`�[�r�r�J�I�%�$�5�3�,�,�� �mm JLwv � �����f�c�u�v�p�s�4�7�K�M�8�9�$�$�6�7�&�&�3�2�y�|�x�u�q�n�X�X� � �8�8��� � ���`�`�]�`���h�i�8�<�x�x���Q�O���S�Q�D�E��|�\�[�h�f�D�G�t�t�O�M�HKWY[]`ddhJKpt8�6� ��&�&�����7�6�|�|���n�l���� �0�0�4�7�E�B�p�o�s�u�0�0�i�f� ����lj����d�`�(�(�5�3�K�I����� ��P�Q���� � � ��� � ���+�0������ �L�J����� � �h�g� � �H�H�z�x� � ���������&�#� ��������x{yy� �$�#�����X�\�v�v�`�a�%�&���������v�s�l�l�,�*��"�S�X���(�)���3�5�,�,�0�.��� ������D�F�#� �;�5�)�(���|�~�=�@�^�^���D�H���6�6� � ���02� �� �(�&���f�f���� �$�$�M�L�h�f���QU/4D�D�`�a����T�L�G�D�� �HKRQ� �,�(�<�5�������� ����o�o�a�`�4�3� ��O�K�DD����H�I�D�D���� �������� ���?�C�"� �L�K�����C�B����0�0�����0�2�"� ���������%�&� � � �� ��-�3�u�z���y�|���o�n�O�S�#�#����"�&�L�Q�{jmB�H�?�C�u�x���f�i�x�z�f�l�0�3�;�<���geO�Q� ��swmqIMmqdeH�D�����C�B�#�&���3�6���� �� �(�&�������L�H�:�:�*�)�S�P�\�X�^�\�,�,�^�]���h�h�Q�V�@�C���0�3�����<�:���mmjl�"�^�^�3�.�X�W�������0�+�f�`���*�(�H�B�#� �(�$�2�,�-�,�L�L�(�(�=�<�)�+�����\a3�4���dgxw��wx����F�C�C�D���O�Q���u�z�5�7�[�\�a�c�@�@�z�|�c�c�`�`���U�T�%�&�wx� �~}~zwpq~|HD � �� �(�,�C�D�a�c�T�S�X�W�6�8�;�8���v�v�����z�|�Y�Z�k�i�tp^`{{~~mjX[]\h�e�U�T�v�r�O�L�k�j�,�.�@�B�����8�2�� �!�!���Q�P�����C�@�Q�Q���v�v�����=�>���� �8�8���������������������G�G���c�f�.�,�X�U���ejQStp$=>Z`wvOOtv����� � � �0�-�K�L�`�^�������������������������������`�\�B�@� ����D�D�L�I���:�6���0�)�������]\OMzy~D@10OQ|~@@G�G�>�@�����Y�V�u�v���V�V�|�z�C�C�V�Y�:�6�z�x�B�=���������������2�3�?�B� ��UW$'����@�@�W�Y���'�+�hmCDgg~������8�8���P�O���������>�:�3�3�e�h�U�X�s�s�s�p�� �;�?�{�|��������G�O�����ej��78eevqwt$�"�@�@�P�P�� �q�r�� �I�I�=�?�\�[�a�f�r�s�� ����"������"�"�$�$�H�D�h�c�������<�<�l�i�;�=���<�<������������ � � �zyjj88tq��0�0�5�4�li��3�6�L�J�<�:� ��@�<���I�D�c�`�W�U�F�G�V�V���|�z���2�0�����n�m�P�O�W�Y�������$�"���spjlQ�N�@�?�6�2�Q�S�D�E�y�z�(�#�]�\���P�L�����f�`��|�c�a�(�&�����@�;���tq||lm�(� � ����pj��i�h�Y�Y�f�f�h�f�o�k�����������z�z���� �&�'������\�\���,�*�V�V���� � � �2�5�����[�Y�$�&�<�<�p�p�|�|�@�?�G�F�D�G�����v�s���%�(���NMgh~3�2���W�V�78||��$�%�5�0�#� ���6�6�0�,� � �?�@�x�u� � �����gj��;�7���������(�&���]�]�"�&� � �hl+�,�,�,�D�D�"�!�V�X�?�@���n�r���4�3����� � � ��q�r�P�P�0�0�i�i� � �����RU|~MM(�)�L�L���Y�V�U�S�����������j�h�p�p�����|�z���������@�A���� �!���,�,���������CGjnqq\bdg[`ej@GGM~xx� � ������� �����=�@�)�(�E�G�Y�X�h�g����}���c�d�F�G�H�H�)�'�������������B�C���r�p�B�D�������*�*�#�&�*�+�)�+�(�*�5�:���4�2�GHKJ@<lo� ������\�Y�I�J�T�T�(�&��� ����`�\�\�X�������jl��U�Q�@�@���*-��(�&�p�o�y�v�P�M���\�[�s�r�@�?�E�D������|��� ��,�)���@�?������� � �zz��<�6���!� �TW���6�8�=�<�?�?�������^�c�$�&������ �B�?���^�c�B�C����<�<��� ��v�w���c�c���~�|���\�Y�8�6�� �"� �������c�]�3�0�����#�#�#� �#�$�H�L�O�T� ��W�T���,�,���A�E� � �P�T�l�l� ����o�r�\�\�D�H�����O�Q�I�H��� � �����������,�-�0�5�9�>� � �z}�� � ���c�d���4�;���0�2�3�3�&�#�G�G���� �qsz|MIa`$�&����� � �P�O������~�����������h�f�<�<�������� � � � �� �3�.���0�0���������)�,�J�L���%�(���J�J�Q�O�{|XZ7<<<HK���:�6�8�4�����������c�`�8�7�������m�l�@�@�e�h�<�<�p�o�zy^a����?�=� � �������"�!�4�0�����B�B�RQ���� � �(�&�u�u�6�6�w�s���Y�V�����d�c���3�.�C�B�4�3���L�L�Y�W���� � � �� � �L�K�(�&����L�I���8�4���p�l�r�m��� ����<�<�m�j�L�G�(�#���C�?�gfmpbdWT��#�#����������)�%�������i�e�0�)�?�8�7�7�T�P�� �Y�V�=�8�=�9�h�`�`�Y�.�+� ��>73�,���*�#��� � � ��`�]����V�S�����=�<�0�0�L�I�V�S� � �B�<�7�5���*�(�����O�Q�2�0�Q�P�����p�j�`�]������� ������� �� ��)�&���8�7���� ���G�F�B�B�\�Y�^�a�E�G���������"�%���STb`SM����� � � � �S�P���d�b�����\�`��|�P�L�~�|��� ��+�$��� � ����#� �������I�I�3�3�8�7���E�C�7�8�T�S�2�2�D�D�`�`�0�0� ����xz��0�5���0�2�hhw}MMbbOQ������c�e� � � ���� � ����� � �\�X�?�C� � �>�C� � �T�U�@�@� ��6�7� � �\�X���|�z��� ����+�&��������������F�C�,�+�G�I�� �3�4� � �l�l�����+�)�������[�^�x{oqHJHJCD��T�P�T�P�1�.�4�3�-�,� � �����(�&�:�@���8�5�I�G� �$�t�s�/�4�z�|�Y�Y�u�v���Y�Z���^�`�f�f�k�h���Y�V����=<ehPSSXHKCDz|~}������-�)�F�E�����=�;�B�B�<�<�=�9�d�c�!� �5�3�>�?�9�:������ ��� � �&�&�� �^�`�`astC�>�.�.�u�t�P�O�d�c���v�s���o�p�����_�]�o�r�Y�Y�Q�V�3�4�����H�H���jp$�$�(�+�c�b�L�O���s�t�G�D������t|tvG�H�+�,�`�b���V�T���sx@@xvz|��@�C�!� �M�L�S�T���O�L�������s�s�H�H���s�r�|�|���6�9���5�3���*�.�C�D�����X�S���I�D�Q�Q�@�=�$�"�J�E�`�c�� ���zz~��2�,���� �6�5�$�"�?�<�������F�B�c�^���r�o�����D�F�0�0� � �a`qv����� �6�3�E�B�=�?�p�l�h�i�r�t�^�`�)�(�$�$���#� �l�l�]�\�i�h�s�r�m�n�p�l�L�J���dd@>/0?>LH127:2�0�-�,�����)�&� �!������� � �,�,�G�G�L�O��$� � �0�3�#�$�������V�X�L�L�l�o�?�?�I�I�C�D� ��`b��vx����!�#�������PWr�p�S�T�|�~�o�q�8�8�z�y�=�<�UZ~4�8��� � �0�0�I�J�H�I���G�I������� ��L�M����������3�7� �"�K�Q��� � �U�V�-�0�8�=�L�M�,�3�\�]�&�&�� �ae34������@�D�l�p�Y�Z�c�`���V�W�@�C�@�<�0�,�@�@���L�M���J�M�d�c��������� ���� � �����|�y�����������k�i�>�A�/�,��� � ���� �������wtgetucepl�� ��)�(���O�L�m�m�X�X�L�L�5�3�,�.�v�x�6�:�8�6�$�$�)�(�.�0�3�4�k�k��� � ���y~x}�� �� ��h�f�G�D���$�&�p�u� �#�~������i�d� ����tw��im[�a�����������p�n�c�c�@�@�� �4�4�5�8���@�C�<�<�gfnq~.1S�O�&�#� � �`�`�����4�3�A@���� � �#� �G�I������ �?�C����"�0�4�lj),��� �Y�W���c�c��� ��7�8� ��5�5�����0�2�2�3�*�+���[�Y�2�2�)�0�i�k���.�0�Z�\�G�F�d�b�<�:�k�j�(�&���I�I������}�� ���:�:�~�x�.�0�Q�S�����'�&���E�E�a�c�G�G���#�%��z�����|��|�~���p�r�P�Q�(�0�����3�5���&�(���"� �&�&�3�5���c�d���8�9�3�6���4�4���l�o���D�G�.�1�:�B��� ��� �@�@�8�:� �$� � � ����@�@���x�v�����)�)�'�&�������L�I�%�'��������� ���8�7�������������wz� ��� � �~��!��T�P�i�h�U�P�����~��v�s�|�|�@�A�)�)�����������8�;�L�M�&�#�����Z\ � �8�8�3�3�;�7��� � ����������������<�9� � �.�+�&�#� � ��������"����#�����s�s� ��&�"���������������.�0�5�3�����l�h�I�C� � ���� �2�3�����(�$���$�#�9�4���:�6������� ���� �� ����tq))ppMP��������8�5� � �&�)��������� � ���(�(�D�C�b�`�M�L� ��.�0�<�<�lj����V�U�H�I�7�9��� �!������� � �� �����O�O� ��|�|��~���^�`� �"�]`ydeopvuu{mm��G�B�}��i�k���s�v�\�^��� � ����� � ������#�$�*�+�I�K�C�D����������� �h�f�D�C���Q�Q�N�K�0�0��#� � ��� ��� � � �� �S�S�/�0�E�C�S�T�+�)�!� �������&�$�&�#� � �&�%���#� �i�i�O�L� � ������� � ��C�B�Y�X�� � � ���6�2�`a78\]����6�6���� �<�=�P�O�P�Q�s�r���S�Q���i�f�&�(���� � � �����?�=�-�,����(�(� ��V�V�6�6�c�`�� ���.�0���(�(���������,�+�� �/�/�0�3�M�J���Y�V�������Y�X�� ���0�0���� � � ���� ���0�0�I�I� � �cgde/49=spOPTWOO����� ���:�<������ ��E�@���,�+�I�F���0�,�����`�`�I�L�\�X�J�G� ��I�J� ��2�.�.�.�h�l���a�i�� �<�B�1�6�9�=�|�~�4�8�F�G�<�?�0�0�deW\@@=�:�Q�M�  ������H�F���D�D� ������� � �:�<�\�]�|�|�$�#���������^�^�n�l���������`�`��� �"�@B``G�C�o�p�����������&�*�i�i���W�W�8�:�����#�#������ �� � �,�,�� � � � � ���,�0���� ��C�=�u�n�d�_�������������u�p�<�;�S�Q�P�R�+�+�,�(�� �2�.���4�4���`d�����(�$�,�,�,�+�~yzgmjj44��"�#�S�T�&�(�V�X�� �B�D�� �i�l�#�!�(�(���0�.�������I�I�l�i� ��������)�,� ��X�V�"�&� ��4�3�B�D�D�C���\�\�~��������S�V�<�8�����`�`���@�@���^�Y��.�2�``RVz��~;�6���5�0�3�0�X�U�����$� ���� �)�&�|�x�a�`�������;�9�)�.�9�9�������J�J���P�O���0�3�#�!�� ���$�+���������������@�C�V�Y�6�8���������@�C���=�:�)�(�2�4�C�D�����@�D�5�:�O�T� ��?�D� � ���0�0� �!�$�$�ms'=A %WX� ���� �6�5�0�3�O�O�X�[�����������f�e�|�y�~����&�&� � �������0�/�����c``]'" jkGFddZX85wtFGUT9�9�?�=�����+�&���&�&�8�6� � ���pq3�3�<�9�<�?�i�k�]�`�D�C�G�D�|�z�t�p�z�z���������v�u�E�G�]�]�W�Y���>�B��� �$���������#�&���6�8�f�d�T�U�(�(�Y�U�0�0���(�(�.�,�6�3���z~14<?DDrx���M�R�C�C���\�`�U�X�"�"���(�,���0�3���<�C�3�6�)�,�F�F�^�_�5�:���<�;�3�5�V�V��� ������&�(�e�f� � �� �������|�|�,�.�� �7�:������������3�4�����Z]0�.����������� � �'�)�6�5�\�]������������� � ����� ��3�5���a�`�W�Z�3�6�8�9�~~&�)��#������O�P�mh����J�D�<�<�V�V� ��C�;�F�B�S�P���P�L�f�d�H�D�`�Y���<�;����<�5�F�@�E�B� ��C�G�����L�M�3�0�������v�u�o�l�O�K�/�,�x�v�&�"�,�-�@�C���x�y���/�-���J�G�����01wz+/:�4�omKGzz%�"�<�=�B�G�0�0�d�f�+�)�����2�3���(�&�f�c�L�I�Y�T���]�[�6�7�����G�H�<�=�p�p���O�O�<�?�����%�&�|{2�.�z�x�]`.,PHMK����[�[���,�(�\�\�+�+�����(�%�������$� �����!�$�n�n���|�z�[�\�0�0�.�,�C@ � �&�&���&�&����� � �?�9���A�<�����C�=�ZX)�(�Q�P�#��&�&�+�-���4�4�F�D� �����xyMPRWzw9�4� ��P�O�7�0���C�B�� �����0�)�u�s�s�o�{�t���s�j���P�I�<�9�\�[����z���t�o�(�#� ��0�,�f�f�d�a���h�b�_�[�L�J������ ������$�!�E�C����� �K�E�����urgexsd] b` � �lp��� ����@�D�����������7�7�q�u���������������O�P�������ab��@�=���������8�4�.�*���i�l���b�c�5�5�)�*�� �����O�L���?�:�,�,� ��6�0�W[uw � ����������� ������?�@�,�+���Q�S�V�T�,�,������� �~~� �plW\��6�4�������V�V�������� � �#� �0�/�0�+���a�\�p�n� � �"�#�D�D�O�N�0�,� � �� �PM����mp�������������������� � �E�G�@�@������ �0�+�@�;�]�X�#�&�]�Y���(�&�,�)�3�/�C�D�U�W��� ������L�J� �� ��W�S�B�D�K�L�,�/�����ad`cggLG}|��}�y�D�@��� �!�8�:�������XW������?�@���LK>= ���� �� � �@�<���� � � � � � �����������&�(�4�3�� ���9�8���h�j�X�V�����K�I�c�`�"�#�I�L�����2�5�h�i�\�`�p�s�f�h���x|����=�?�`�]�0�6�U�Y�3�0�}~����&�#�k�h�:�8���4�3� � ���I�H�,�)�����4�3�<�8���n�n�V�Q�s�t�4�6�\\@@02MN������C�@�����)�*�v�x���4�5���L�M���O�O�D�F���m�m�"�!� ������"�&�3�0�(�)���_�a���c�h�Q�Q�����RRrq% 7472 C< 74vt}}3�5���X�W�U�Q���@�<� ������F�F� ����<�<�����p�p�����x�x���U�U������xw}z@<:4{xKJ��\�Y� � ���c�a�]�\�x�x���x�r�C�B������� � ���0�/���0�,���wx � �db>@om���i�f�L�F�3�0�Z�V�� �����E�D�V�X�`�`�\�^�.�.���c�c�������F�D�������w�v�m�i�`�]�v�r���0�.�H�E�p�m�a�`���&�#�a�`�WXhgljx|zu3�4���������qr}����Y�T�3�0�/�+� ����#��&�&�?�=���6�6�,�/�i�i�k�f�W�T���m�p�d�c�K�F�D�I�6�6�eb--ml� �,�,�S�O�Z�W�x�v���K�G�������K�J�B�B�$�$�G�H�.�/�����@�:�\�V�<�9�P�H�C�:�j�h�0�,����WXcd,1SQ,�,���0�0��"�����I�I�D�D�����T�V���#�(���\�a�#�&�K�L���,�,�� �����"� �Q�P� �������3�4�Q�V�L�P���V�V�&�)�;�<�P�T���f�i�P�L�W[��� �D�A�.�,�(�(����|�S�T���^�]�p�p�l�l�Y�]�q�r�v�x������� � �|z}24ffY\��;�7�Y�V���`�^�l�p��������|�p�i���h�i�,�+�X�U�&�$� ��~.1QP>@������vy � �&�!�����?�@�<�=�8�9� � �|~ � �����|�h�e�+�(�?�:�2�0�3�0�h�d�9�8�I�G�Q�P�6�9�)�.�c�d�V�X�!�"�#�$�Q�T�,�-�3�3�4�4���V�S���6�3���M�P�#�"�f�i�+�3�D�E���X�Y�T�S�6�<�� ���I�L���gl� ������?�?�?�B������de �#���J�O�#�*�j�j���h�f�r�q����^�`�3�3�3�3�H�I�U�V�(�)�o�q�8�9�.�,�P�K�l�l�&�&�� � � � ��� �������op"� � ����#�$���.�0�� �� �����P�L��� ��� �S�P�O�I���c�`�+�(�6�4�p�n�L�K�`�\�f�f�S�O�B�B�C�@�R�R������|��x�n�l���F�A�#� �"� ������n�l�Q�S�?�<�\�W�(�(���qqZX������6�6�x�v�V�X�I�J� ��ed� �zx����I�G���� � ���!� �O�O���2�4�� �47/�1�)�+�<�B����� �\�^�<�=�T�Q�������8�3� ��� �L�K�`ctt��Z]8�6�0�.���i�h�]�[�,�)�]` � �#�$�8�:�� � � ���#�$�.�+�� �t�r���T�Q�F�G�C�>� ����8�6�78,�+�#������������ � ���?�=�5�4�U�U�>�?�f�e���L�L�*�)���:�7��� � �(�$�<�8����T�N�L�D�p�l�T�O�c�^�(�&�(�$�hg��&� ���0�0�@�?�<�8�S�S�p�r�|PM_]}(�!�#�� ����X�S�p�i�|�y�U�S���*�#�>�<�H�G� ����#��@�7�+�$���?�:�L�L�C�D�����c�a���~jllq$*zx��6�6� � �n�p���Q�P�T�P�Y�\�S�U�\�^�����p�l�<�<�Y�\�l�r�S�V�U�X���V�Y�\�^�@�?� � �x{[`|~ig5�4�c�c�����5�3�L�L���8�9�&�#� �"�i�k���]�^�l�l���(�.�� ���]`�����[avw``CD~WZad\�`���������f�i���d�d���<�?�����E�D��|�^�]���������(�$�wtpq79ddcgGHC�B�������������`�`�$�#�C�C�)�,�0�.�� �gd� ���M�L���#�"�@�<�9�7�C�D�� �5�5������������������&�$� � ����#�� ��������&�(�� ����� � ���� ����dg�����2�2�&�(�����PS89XT[W~@�<�1�0�����T�P�q�s�<�8������ � ���#�"�<�=�^�]������� ������x�v�3�0�K�G� ��W�U���I�G�5�6�&�+� �$�(�,�$�#�z~\Z����M�O�Y�[�r�v�����}�z� �� ��0�,�������(�(�5�5���<�<�^�Y�)�)�$� ���L�K�2�0��������@�C���$�#�M�H� ������+�+�������ptXW@@qv\]hm~~,�)� � �<�?�T�U�����|�|����������� � ���1�+���,�,�Y�X���W\oq,�.�`�c�G�K�����h�h�~�� ����t�s� ���� � �S�S�#�&�M�L�B�B�@�@�b`|oqtu ��)�$����� � �@�=�*�(�`�]�&�"�����������o�l�����@�D�@�E�0�0�8�9���B�A�/�0�l�l�2�3�����I�G�������H�J� �"���,�.�����G�I�$�%�D�F���,�*�U�U�S�W���������v�t�,�,�+�)�� ���I�F�0�*�B�=�����ZX~���� �"�����I�H� � �4�8�T�X�2�4�g�k�h�f���C�B�Y�Y�Y�X�&�(����������� ��� � ��������,�3��������� ���� � �6�7�L�H� ������0�+�5�3�����3�5�\�`�M�L�,�-���?�<�������.�-�9�:���]\ee\]|��� �wvD�>�u�r���@�<���8�6�I�G������ � ��}|�� ��&�&�2�0���3�.�H�E�s�m�&�#�����x�v���J�G�e�f��� � �|~ww~~��llpmMJ,�$�� ���� �� � �#� �����^�`�����i�f�K�L�4�2������pp� �<�<���A�@���d�e�i�d�7�4��� � �����������f�h���Y�[�\�\�9�;�d�d�:�<�������.�2�c�d�?�?�,�/�`�`�#� �+�(���[[������ ����T�V���s�r���(�$�� ���L�L�-�,������ �+�)�G�I�n�l�d�c���3�5�����O�M�r�r�=�@�t�y�t�y���V�Y�S�Q�����x�y���0�0� � �0�2� � �&�,�� ���v�r���G�A����<�=�D�<�(�'�� � �"�OT$�(�.�0���f�j�mmdd(�(�����i�l�@�<�,�+�0�.�+�,���S�S�D�D���)�$�e�`�V�V�h�f���|~}|qvFH{joPT@>jlspop�������������� � �mj`]UU � �W�S�.�(�@�<�����D�?�S�M���4�0�('�� �!���(�)�I�I���#&9?]`@E$�$�0�0�M�M�0�0�D�=� � �$�#�dg��t�s�k�k���M�L�������� �U]������$�"� � �;�6�G�@�����K�H��|���������~�z�(�&���=�:�����������?�<�V�T���,�,�&�"�;�8���l�n���L�L�����c�c� � �F�F�.�,�@�C��!�|�|�d�d�����u�x�O�Q���k�l������!�#�B�C�de����@�?�3�0�]�\���s�s�Y�[���B�@���{��<�=�:�<�$�&���5�9�s�x�<�B�f�d�?�@���&�(�0�4�� �<�<�@�C����������u�v��"�3�5�8�7���� � � �?�?���(�(�h�h�C�F� � �#�(�����MP�� ��$�&�|�|���T�S�;�<�������������:�:�]�`�c�i�u�x�7�8���+�0��������gl yv|jpwyG�G� � �0�2� � �Q�T�#� �������hmoq�� ���������L�K�<�=�}��7�5�<�:���Y�\�(�,�L�P���� �ee&%giKK������c�c�#�����)�+�pt$(Y�[�l�m�� �4�4����D�B���9�:� �� ��,�+� � ���=�?�� �Q�Q�����`�a����� � ���L�O�"�"�(�,�Y�^�� �S�S���pttv9>~����(�+���<�@�J�Q�*�.� � �C�D���������.�,�?�?�H�L�6�:�T�W�i�h�������}����������s�v�����r�v���z�z���@�B�;�;�~z 24)(OK���� ������DF� �� � �"� ��P�M�@�?�Y�S�0�+�C�E�(�&�$�!�m�k� ��$�$�����u�s�K�I��|�"�#�y~losy|}��������y�x�\�]�����������������9�<�o�p�<�@��� � ���)�,�XY|z|ll&�(�<�<�J�O�+�-�@�@�,�-�Q�S�j�i�i�c���r�l�=�:�#��B�?����M�I� � �;�5�s�j�\�V���Q�O� ��� ������ ��������#�&�@�A�6�5�S�S��� � �c�`���l�l���l�p���(�0�5�:�~�|�W�T�i�e�I�E�yx}��bc��%� �ST|{dgmnxwws<>��� ������/�0��� � �����<�<���������K�J���xzed��(�)�F�G���T�S��� � �~]bLKRS \]"$:9tquqdbEKEGllQTbdpt/�4�T�V�H�H�*�*�\�`�@�B�}��x�x�f�h���2�3� ��z�y�-�+�&�&�����&�&��� � �W�V�|�x�v�v�G�I�Y�]���om ����<�:�8�7�3�0���8�0���0�+���e�^�^�\�V�T�3�2�.�.�,�,��������3�0���� � � � �������������n�n���\�`�������������x�s� � �I�E�8�9�����<�=��� �� � �*�(�\�Y���������;�=�h�g���L�I����������� � �3�.�lj+�,�`a8:6�6�s�l���&�&�I�H�4�3�+�(�,�)�&�#�� �������f�c��� ����&�(���� � �)�+�����|�|�������V�Q��|�d�c���c�a�e�f����~�������(�(� � �)�*�X�Y�@�B�#�(�~TY ty ��6�2�S�Q��� ��@�=�"� �lojn��������tu``x|TUST$$qstwttdh����!�(�`�c�7�:�8�8���$�)� �"�l�i�,�0���� � � �&�(�:�:��� �!���&�&���(�+�5�6�t�u�����[Z,.ljjj``QR~K�K���<�:�x�u�+�+�x�x�,�(����|�5�4�e�f�����i�h���:�:���u�p� � � � �twtxAE8:`]13~,�&�L�J�C�C�B�@���[�[�^�^�������x�t���<�?�O�Q���3�2� � �D�D�ac�� � �&�&�,�/�0�0�� �0�4�<�@�[�[���B�?�J�I�`�\�K�I���Q�M�C�@�\�X�h�f�|�|�`�`�:�9�V�U�*�(� � � � ���8�8��!�O�L���+�)�X�X�V�S� � �<�8�� �� �����|48>@�������WUM�J�K�G�V�T�(�&�W�Y�,�-�!� �0�+�T�S�@�@�t�v�8�:�f�f�$�#�2�5���"$fdwxHG��"�$�k�h�B�B�@�@�4�2�z�y�P�P�C�@��y�z�v���S�Q� ��!� �������p�k�c�a�<�;� � ���[`K�I�+�/�M�M�D�E�p�n�6�3�]�\�,�0���T�S�������P�K���� �0�+�9�9�3�.�%�#�|MPxxst������,�)�8�6�B�@�Q�L�N�J�V�Q���V�V���T�W���z�z���O�M�z�t�V�T�u�r�Y�S�8�0�=�:�;�7�#����+�(�`�\��x�6�4�L�L�K�J���"�"���;874}wXUZZ���/�0�4�8�>@da,)<8wwppmjPNp�l�����L�H�7�8��~���k�k�����p�n�� �z~:�@�h�i���V�V�.�.�<�<���<�<�I�G�<�<�\�\�W�V�~*1l�m�4�9���lp~w�v�U�T�:@3�8�V�[���hl&�,�����n�p�l�r�����,�4����A�D�� ���v�x�0�4�|�z�D�D�&�&� �$���Y�X����� � �S�T���&�(�m�o�B�A�I�I���#�&�i�h���Q�Q�&�(����� ��hdB@� ��� ��o�r���[�Y�v�z��� � ���S�V���������������������u�u�l�k�h�i���2�,�)�(���4�0�`]��lp`b72��|�|���t�r�z�w�=�<�#��n�l�D�@�6�3�"� �:�9�$�$� � ���sp��� �(�#�A�=�\�[�:�:�6�5�B�@�@�<�8�5�`�]� � �k�l�a�`�u�l�L�I��|�T�P�0�0������RTOQ��'�(�jmz}[`����� ��D�D�O�J���h�c�� ���@�C�pjF�C�� �<�@�a�`�6�7�����v�u�o�n�P�M�J�F�Y�W�D�>���4�.�l�h���f�_���RMjh|} �"�i�k�E�H�E�D�2�0� � ��������� ��$�$�O�O�9�9�������y|}}� �D�D��������� � ���=�D�3�4�B�B���F�D�����B�D�2�0�h�h�,�*���B�C�9�6�L�O�?�;�I�C�Q�Q�V�T�P�O�E�@���)�&�����~��<�>� ����@@hh(�&�[�X�� � �� � �(�'�.�2�i�h���H�D�H�D�X�X���������������<�;�y�x� ��3�0�9�8�v�r�h�f�����pl8�6�@�A�L�J�<�<�8�<� � ���,�-�@�D���x{0�0�`dx}KM]dtt����9�:�p�p���m�p�m�m�0�0�$�(�(�.�B�@���8�8�K�M���]�]�Y�X�`�a�M�Q���zw!�#�����%�$�&�&���+�+� � ���0�-�8�7�O�P�V�Y�����%�)�|~|~����,*osy~[\� � � ����'�&�D�C�u�s�P�L����"��0�0���(�&�D�D�����D�E�.�0� ��T�S������ �3�3�]�^�e�f�h�h�p�p���8�5�(*gj����2�3�� ���``NNWW<:��3�0���wv��v�x�T�T�I�G�����<�@�.(��vputSU����� ���G�F�����U�S�S�J���G�D�S�J�v�u��|�7�7���P�M�;�8�k�l�s�p�3�-�Q�Q�dgm�l�bd� ���eb10GDXWD�C�F�D���<�:�(�*�������D�D�����L�K�9�=�Y�V�4�2�N�O�C�F�m�l�o�l�O�K�x�u�X�S�+�(�o�l����� ����qtuw PS+�+� �� ��&�(�r�p�p�l�|�x�v�v�6�6�=�C��|�J�I� � �0�.���D�D�G�H�2�0�,�,�|�z��|�x�p�z�x�H�C�V�S�5�1�6�4�#�#������xzrtdd � ���3�5�6�3�*�.���j�h� ����:�6�%�#���p�l�S�L����,�*�`�^�\�Y�c�a�D�B� ����\�[���#�$���Q�T�@�@�����4�6� ��y|���FG 11dawxSX"']Z� �`�[�)�&�?�?�h�i�F�I�������s�p�V�U�U�T�#�&���wxtqefxyqt��]`twuxbd��a�`�����D�D�����"�"�&�$�0�2���<�@�`�c�a�d� �$���<�6�����3�.���`�\�T�Q����B�@�,�*����m�k���@�@���9�7����������� � ������ � ���6�;� � �� �� �h�l�-�-���F�F�4�0�m�j���?�=�k�h�X�U�M�K�&�*�(�-�� ��� � �)�)� ��I�E�V�R��� �� � �R�V�#� �A�@�D�D���ed3�.�������x�x�8�8�"�$�@�@�c�c���|�x�����p�o���p�m�=�?�<�<�S�T�5�8�2�2���3�3�lp ��>�C� ����(�0�c�d���>�?�v�x���������h�i�X�Z��|�$�"�,�0�v�x�m�p���$�&���D�C�,�&�<�8� � � ��/�.�S�Q�&�&� ��<�8�L�I�x�x���p�m���l�l�x�y���d�c���n�n�E�J�p�s�|����(�(� � ��� � � ��D�F���]�c�����C�I�[�a�\�c�%�+�Z`|�|���%$qqwv��E�D�(�+���C�C�3�7���G�G���C�G�I�I�|qs0�7���8�5���nlZ�]�gi��z�z�`�`�� �$�&�M�L�@@DDMMOS4�2� � ���ST � � � �#�&�M�O�X�W�f�f�y�s�|�|�v�v�������n�l�����G�G�������3�0�6�6� $ $',7<adKJ�� � ��� � � � �6�:�I�I�@�D�?�9�������� �C�G�0�0�ij*�+�*�+�0�3���O�Q� � � � �lmS�S������ � �DC>=vw&�$� � �����0�0���W�Y���+�*�Y�Y���a�`�5�2���"����Q�J���0�.�yxf�d���DA3/vt��5�3�Y�W�:�6���^�\�?�<�O�O�T�T���v�r��������� ����� ����������� �3�3�4�0�<�=����������� ��.�0�l�j���8�9�f�f�:�<�����O�L���W�T�������K�L��� ��@�<�0�0�k�i�:�9�B�?�L�M�z�x���s�t�p�m�k�h�<�6� � �H�J�Q�P�]�[�m�h�\�V�2�3�#�!������� ��:�:�����:�5�x�p�V�O�,�*�i�h������� � �� ���VUxzF�C���*�%�3�,�K�D���J�D�������s�l��|���#� �<�?�HK9:dd('wwvvdeUSGH��wx~{������U�T�r�k���0�,�z�z�\�\����� � ����|~wpMJUTLFto�����+�&���3�)�T�O�����[�Y�L�L�0�-�jg�������� � �(�(���V�U�0�0�G�C�������<�9�2�0�ps��*�(��� � �T�Q�G�G�F�G�J�J�C�D��#���D�D���tv � �L�J����y�?�=�|�x�T�Q���t�r���9�4�,�*�Q�O�X�Q�~��*�,�<�<�I�J���&�(��#���3�4�#�&�d�f�����t�p�����6�5�?�<� � ���C�D�����!� ���� � �� ��$� �����������`�a�z�{�i�k�����|�|�������.�,� ��(�(�F�E���Q�O�&�(�L�G���M�M� �#�?�@�����<�?���30����B�@���?�B�<�C�c�`�U�V�Y�Y�P�Q�0�0�TU��on``47ST@D47cePP<>AA~OMad������s�t�`�c�z~��(�)���#�#�ZXY�Y�%�#�D�B�H�D�/�3�����`�^�.�,�|�z�E�@�H�C�D�B��� ������!�"�$�&����|�ZZqq<>DCml04uvHNz}GH~~V�[�I�G�����|�~�,�0�����)�,�W�[�z�y��� � ���0�/�,�(���M�M���@F��,�-��� � ���b�c�� ���������||}w|TT������+�,���3�.�,�(�������@�?�f�h�X�\�`�c���B�C���F�D�O�N���+�*� ��=�;�~�� ��]�^�O�L�7�9�H�I�}}������\\��S�S�B�B���� �`�c����� ��������-�0�6�8�2�3�������M�P�t�v�0�0�+�.����� �mmrvuwADqw'�*�7�6�c�c�_�]� ����6�8�.�.�� � ����?�;� ��B�@�M�M�`�`�b�`�����,�0�B�B�����J�I�#�"���}~ �#�<�?�*�*����� � �=�<�,�,� � �!�$�����!�"�N�L���Q�P���*�.�!�#�8�=�=�=���]�^���mm �� ��"�#�~�z�?�=�Q�P�5�3�����yywy�����V�W���HGp�p���`�\�$�#�|�y�]�[���`�c���I�I�V�V�������z�}�c�h��}�&�(����7�6�#�&�`�^�����,�0���� ������������y�x�m�l�i�i�x�y��� � �C�G���MKXXee � �"�$�G�G�4�6�l�i�P�M�I�D�/�+�� �K�M��� � � ��wwMP��L�L�|�|�����@�D���G�D�9�7� � �&�&�&�&�0�.�5�8�Q�Q�����@�@���p�o�K�G�y�u�'�&�4�2�� � � �X\����D�@�Y�\�4�0�I�C���� ���$�"���(�%�z�x�u�p�9�5�!����(�%���]�]�<�<�C�?���dgxt�����)�*�8�8���*�+���B�C�"��V�T�l�l���Y�V�z�y�[�Y����I�E�{&�)�����8�8�]�\��� ���}�'�$�����?�<�����<�?�Y�W�����=�<���F�G�� �<�:�Q�T�4�4���r�o�`�]�?�7����|���W�U�>�?�|�|���e�g�J�I�����or qw 'AG]b&�,�M�S����������3�2�0�0�E�C���0�.�)�(�O�L�~��)�,�0�3�,�,�B�?�����WXKK � �`�\�E�G�a�`����� � �H�G�8�6�,�,��� � ���@�E���G�I�������������L�P�x�}�8�=�P�V���"�!� � �� ������(�+�J�O���D�G���� �����������"�#�+�0���H�I���V�W�jp �� ��8�6��������������� �� �����c�c� ��&�'�'�)�/�3�I�L�O�T���#�#�(�+�a`����h�h��� � ���C�?���/�*�&�%�(�(�-�+�P�S�t�r�����)�#�]�\�f�c�3�,�8�5�W�S� � �i�i� � ���G�J�/�,� ���� � �&�+� � ���H�J��� � �~elMR������������;�8�[�]�|�x��}�`�\�����9�6�:�2��� ��#�"�0�,����|�C�@�X�Q� � �� �����B�@�v�t�v�v�������`d,�,� � �����������-�2�pmOM,�*�6�4�H�G�+�)�� ���$�"� �� � �����&�#�0�0���������+�)�,�+���2�3�2�/���7�5�?�9���������K�G�F�H�C�B�����~[YqsSU@D<;<:twz|�� � ���ww� �:�8�0�,���O�L�p�n�$�#� ��s�s�Y�W���d�f�����#�(���k�j���c�c�2�7�����F�D�� �����#�"������$�$���ZU���DD������z�x�3�1������������loeh��/�.���n�r���O�S����G�D���2�3�����E�F�n�n�T�S�����p�p�0�4�\�c�Y�\�$�"�� �J�O�����&�+�#�(� �����5�7�O�Q�p�r�a�c�����p�p���&�(�3�4��� ��4�4� � � bd������.�0�����i�k�� ��� � ����|y��6�<�CF����8�3� � �J�H�r�r���0�.������� � �� � � �4�0�AG � �.�+������ �?�@�#�!�-�,�Y�W�c�`���u�r�]�\��� ��T�Q�?�<�<�?�<�:�H�G�\�V���f�c�u�s�V�W�I�L�f�d�*�)�� �HH*/21)'77PMYXfhmp`dhk ��J�L�6�8�3�3�X�X���������������e�c�G�C�=�?���L�K������������ttgl)�,�� �3�0�?�@�G�D�u�s���I�I���M�L�7�7���#��O�O���o�l�d�\� ���� ��@�B�d�a���jpej � ���������������L�O���.�0�P�L���L�O�F�H�L�O�wyi�i�`�]���E�C�n�k� � �}}?<����0�2�TU]b\`VY~����G�E�T�Q�S�M�c�f�(�%�A�B�� �����������,�,�<�@�����2�8���<�A���7�6���f�e�����6�7�|�x�s�t�C�G�Y�[�E�D�O�O�h�d�G�D�,�.�&�%���6�;� ��� �����||.2RT|MQ..XX3�.�����D�C�3�2�,�-�n�n�D�D�:�8�Q�O�c�^�&�(�;�:�8�:�J�J�%�$���$�"�V�V�|�|�p�o�3�8��������V�W��#�������O�H�S�L�x�x����}�o�l�a�c���`�b��� ��PP�9�9�`a"�(� � �����``����D�D���M�N�����[�Y�� ���,�)�v�s��������������� ������hmz~}} ��@�B�$�$�����`�c�i�h�`�`�+�+�5�6�l�l�\`#�#�X]KK<>zxssV�V�\�^�]�[�/�3�x�x�����&�(���7�9�2�2�~�|�������������+�)�� �|�z�$�$�~�|�z�|��� � �W�Y���������l�k�x�u�&�(���TXgjtwZ[������ ��d�a�]�\�2�-�:�2�`�^�)�)���n�l�O�O�s�u� � �<�<�"����� � � �|~PP<:��� �5�1���\�X�C�:�� �?�=�W�M��� ��� � ��+�"�yyzwWSxt{z�������� ��"� ���0�,�:�<������� ��\�]�F�G���(�*�%�#�x�z�o�l����������� � �I�J�`�\���"� ���*�(� � ���msfj�����������,�,�jg��T�O�&�$�I�I� ��(�(�����}&�)�5�3���i�l�l�m���m�m�8�9���C�>�P�O������Z�\���k�r�\�a�;�@���Q�P�?�C�V�U�(�(���mp����9�:�4�8�)�+�����8�8�O�Q�8�<���!� �]`� �I�K���f�e�P�O�P�P���6�:�]�^�D�B� ���� � �� �~,�(�]�Y�/�0�t�u�Y�W�Y�U�`�`�T�S�^�^���i�i�(�*�����a�c�O�O���P�P�&�(�0�8�T�O���m�m���%�&���6�7���MOqsmnMNrs � ���H�G���+�,�*�,�d�f�L�L�����a�f�s�t�\�^�����8�8�4�4�����8�8�<�=�O�N�2�0�� �)�*������}fo�� ���� � ���8�<�$�%�*�*�<�@�f�k�<�=���6�8����� � ��� � �|~&�&�,�-�D�G�~��n�p�s�r�y�|�\�`�x�|���5�8�(�(���3�/�S�O�w�r�E�D�c�a�I�F���,�(� ����� �������?�;�&� ���@�;�`�`�y�v�����i�n�$�&� � �?�?�)�(���� �]^-1GN&.DG`_l�k�������)�)�6�6�-�0� � �`�`�C�?���a�c���D�@�������S�L���,�&�����W�W�ED��D�B���dd����� ��\�U�����f�\�<�6�+�(��� ��1�2� � ��� �������:�6���� ��\�]������� ����jltv�� ������� ���������� ��JHDD���(�&����.�+�6�5�&�&�O�P�b�_�[�X�Q�S�K�D�Q�M�����M�O���~vxKPyz-�-�B�?������J�K���+�0����%�$���||uq� �!� �O�O�k�l��������0�4�����������,�2�8�=�<�<�`�a���Q�T�������G�D�B�B�*�+�WX<>[]����7�5�.�+�����h�f�a�^�W�X���e�c�S�O�f�c�*�#�l�g�.�-� �"�\�[�9�7�!� � � �}?�;�����,�&�#��{t|| ?�<� � �HJUU��a�\���N�L���p�p�k�f���6�2���[�W�J�G�(�&�m�m���.�,�D�G�@�?�8�:�i�i����� � ���V�U� � �8�8�!�#���8�9�4�6�G�@� FG~|Z\��U�S�L�Q�� �z�x���V�Y�?�@�Q�U�4�4�O�O�D�H���9�:�7�6�h�f�S�S�)�*�$�)�(�*���n�p�����c�^�x�s�8�3�~��U�T����:�:���<�B�+�)���%�(�����&� �?�<���p�m�I�G���|�|�I�E����������o�l�l�d�Y�V�p�j�X�V�Y�S��|�P�L�,�%�.�)���"��f�a��|���Y�V�egO�J�X�S�� ���D�@�C�?�ijhj$�'�f�c�����r�s�k�e�H�@�����<�8�<�:�GE_�]���(�$�Y�T���� ���%� ���D�A� � �(�"�4�3���daed2�(� ����0�(� ������)�$�����tp`[`YpmS�Q�������?�:� �"�3�0�,�0�`�a�c�`�x�v�d�a�y�y�����������degjNOhill����ilgiy|#�&�k�n�<�D�Q�Q�z����(�(�L�I�3�0�,�&���.�3�)�+���x�u����������jt ����GH\but`h ,1wzrw���� � �2�2�`�f� � ���5�8��� � ���������\�\���r�r�s�v�����@�C�+�.�#�(�#�+���~��p�p�?�A�L�L�I�L� �$�@�C�(�*�|~B�C�<�?�*�,�0�2���V�[�6�:�H�K�#�(�O�M�)�&�D�G�-�/�N�P�$�*�L�M�p�p����������������(�&�����|��<�<�������(�+�<�;���}gj0�1���"�&���+�,�D�E�����>�9�(�)����� � �������1�-�<�:�U�Y�8�8�+�,�������yxy}hj������41'�(���1�2���t�s�(�)�O�P�5�4�2�2�>@vwD�A�����\�[��� � �U�S�"%���Q�U�5�8�f�f�t�t��� ��<�<������� dcd�f�����.1`aO�L�(�(�V�X� � �H�J�� �������Y[� ��������4�3���3�6����$� � �#�%�!�#�2�0���'�(�������k�k�D�G�H�I�K�K�3�5�0�0� � ��� �#�6�8�MPQP]\ms!$z}[]STdatqtrll88 � �2�0�p�o�i�k� �"�G�C�(�)�8�6�?�@��� � � ��0�)�+�*�D�E�P�L�k�k� � �"� �Q�Q��|�H�E���������\�Y���,�-�T�Q� � � � �#�"�(�)���,�+�`dtw �� �� � �H�G�i�h�Y�[�����$�#���x�t���������@�<�0�-�P�M�@�@�8�6� ����X�T�r�p�x�v���p�o�)�(�-�+�J�I�?�?�l�f���5�0�z�x���z�z�L�J�x�|�Y�X���I�G�,,hj8�4�y�t���mqij~ ��(�)�O�P�����C�=�O�L���<�<�<�<���H�@���`�`�T�V�  V�T�Y�Y�O�L�<�<�J�L� �&�@�B�0�3�L�N����,�)���_�]�I�G�}�z���4�4����|�z�� �Q�O�l�l���3.   ������G�C�W�X�a�c�$�$�G�F�-�.�ZZz}/1`�\�)�,���� � ���������9�3�@�@�:�:�U�S���]�Y�TSljigJJ��l�p�)�+�r�r�6�6�D�C�)�(�������p�s�,�/�@�?��� � �8�8�&�+�Y�Y���������� ���� � � �87��!�&�?�@�$�&�tyzgf@@LNMQ.�0� � �4�0�+�)�:�<���:�:�l�l�m�m�]�`�?�@���c�c�J�L������}78egdhjl`eom$$ED\],-qs|~xy"� �T�S���Y�X�(�%�$�#���|�|�Q�P��|����������� ��� �H�@�C�@�<�<�;�<�2�0� � �DDJKpoTT7�8�����3�0�X�[���������j�k���U�Q�0�2�� �D�E� � ���c^xvtp~��x�t�P�S���Q�S�I�D�,�+� �"���2�2�?�<�F�E�=�?���!�#� � � � �������,-�� ��U�S� ����]�Y�.�+�����c�`�=�9�c�c���3�3�`�^�a�\���G�F�X�V�����(�&�?�=� ����8�2�y}0�/�������8�3�"��L�I�r�r�����&��s�t���G�D�����@�:��|�E�E�������L�H�3�2���DHRT��Q�L�?�=� ts]_xx���v�s�!����E�?���:�8�y�u�=�<�C�B�\�Y���T�S�8�8� ����������E�E�K�I���7<e�c�;�:�F�G�6�7�8�8���$|\`&�(�w| � �����J�I�i�l�o�p���(�,�P�V�Q�T�D�F�X�Y���vx��O�Q�}~LK��|JM138:!$~|����f�e�����?�?�L�I�s�p�?�C�4�6�����hg(*PW�kl~utah� �8�<���(�+�e�i�7�9�<�?�i�k�m�p�����x�|������������� �"���������0�,�M�L�`�`�����L�J��� �� � �:�<�0�0���dked>DagLO "��� �`�a�@�=�0�0�f�d�]�^��~���S�V�f�k�9�8�����������O�T�G�L�7�9������� �H�J�#�&�F�L�0�8� ��2�8���`d``jqS�T�]�_�,�0�����3�5�$�"�V�S�S�T�0�0�7�6���G�H�S�S�T�P�����"�&�9�<���M�K�]�_�|�z�#�$�L�I���l�k�u�u���@�A�����s�s���Y�W���`�Y�����`�Y�r�l�p�l�.�0���``GD � �?�<�@�@� � ��� � ���,�/�������d�d�a�a�F�F�k�h�B�;�#�$�)�(�� �#� ���,04�8��� �&�z�z�B�@�����l�l�O�N���(�(�@�C� ��z�y�9�7�f�d���h�c���6�3�O�G�2�0�� �&�#�9�:�T�P�#�#�� �:�:�(�,�cd5�5�s�p�v�v�)�&���h�d�$�#�,�)�4�6���Y�X�3�4� ������3�9���`dK�L���eg8:jmpvdgWXPPLM � ���T�T�,�,��� �#���lq��PW GM� �@�D�6�7�����f�c�)�-�����(�,�G�K��� �#�+�,���U�U�&�(�Y�U�v�v�@�@�������B�B���0�0�p�p���d�`��������"�c�d�U�W��#����#�=�<� �#�wyPSyzPSii]]�������������:�:���,�*�p�l���~�}�r�u��� ��8�:��� �� � �{|NPX�Y���������C�F�Q�S�^�`���s�r�Q�Q�������d�c�Q�Q�:�8�������djtv|{6�9�&�+�v�v���K�K�|��[�^� ����������(�,�f�e�|�v�,�(�J�I�3�7�:�;���2�5��������L�J�(�*�S�R�c�d�P�L����������P�P�����8�6�Q�M�&�%��zz������ � �0�+�(�$�Y�X�M�H�9�;���c�c�s�s�����|�y�������9�<�i�d�m�l���@�?���"�&�����T�P�#�&�x�|�2�3� �� � �T�T�!�"�]�]���� �jj � �� �����F�B�'�"�?�>�&�$�/�.�M�J�X�V���@�<���(�*�<�<� �� �#�h�i�6�4�6�4�+�,�����?�:�yx�������yy��T�T� �#�C�B�����&�#�8�7�f�a�^�\���$���� ��C�@�\�Y�u�s�����S�P���:�:���?�=�9�:�l�l���J�K�B�C���#� �� ����������� � ���D�C�[[MObdqspq� �n�p�=�=�n�n�0�3�&�&�04|V�O�oq?�@�����&�(�>�:�0�.���:�9�`�^�G�E�h�d�8�;�� �,�+�|z ��0�0�H�G�u�p�]�V�C�<�;�6������U�Q��y�X�S�c�]�B�=�l�h� ��t�s���<�6�� �0�.�$�&�jl"�"�O�L�c�a�������D�B�h�h�)�,�&�&�yy\_ ��GBDAut��Q�L�&�&�?�@�v�t�B�C�l�j�V�T�^�\�o�p�������j�f���W�[����� ����O�Q���B�?�����0�.���\Z3�6� � �+�+�M�K�f�a�h�d���Y�V�4�0�S�P�I�F�6�8�a�a�a�d�|��U�V�T�V�@�>� � ���� �� ������@�>�G�E�]�\�c�a�l�l�h�e�(�*�8�4�������|�s�p�6�5�'�#�DFq�s�D�B�a�`������������� ���D�?�� ���/0t�s�0�,���`�Y�D�G�:�=�����#�&�$�&� ��������Q�L�`�V�:�8�|�x������z�J�K�(�&����� �ddTU��#�"�\�Y�3�1�4�8�z�|�3�0�:�:���?�:�� �X�Y�� � ��?�;����||ZWc�`�6�4�5�3�4�.�L�E�t�r�i�f�`�_�|�u���O�I�\�S�s�l�_�V�a�Z�1�+�k�h�l�f�0�)�Y�V�����Y�V�@�9���/0w} � ������+�-�T�T��}���$� �#� �����L�F���l�l����~�s�l�3�3��� � �U�W�����.�)�c�`�B�>�^�Y����=Bnp~}%� �`�\�5�2� � �����������,�0�"�&�����B�C�<�=�@�@�(�&�G�D�.�0�����$�"�������D�D� ��I�L���a`����\�\�p�l�2�0�(�(���6�4� � �$�!�����YUtullSS������O�L���z�v���,�&�� �ik}yvyot47��� � �C�C�V�Y�@�?���\�_�k�l���������|�{�x�x�v�v�F�G�����l�l�[�[���<�<�k�l�@�?�<�=�3�3�?�?�gg,�(���0�2� ��)�0�I�H�6�6�c�^�@�@� � �a�`�F�I���Z[dg(�(�:�<�.�0�hjJ�L���6�3�I�J�������� �4�9�(�(�9�=�C�D�V�V�)�,� � �W�V�H�B�`�c���Q�O�Q�S�8�<�I�I�l�l�J�H�T�V����5�6�V�X�8�7�N�L�_�\� ����� � �����*�,���;�C�;�=���\\(�(���� � � � �(�$���M�N�r�k�@�;� � �\�`���\�\�`�c�(�&�T�S�e�e�l�l�t�v�"�$�|�z�L�K���h�h�s�s�y�|�?�@���s�r�D�D���.�2� �!��� ��C�C�� �(�.�� �tyGK`djo� ���(�+�� �=�@�m�m� ��T�V�[�`�����&�(�Y]X]uv������O�Q�&�$����"�5�5�u�u�L�M�������c�c���<�=�wy`f  GHdd!�#�� ���� �&�(�6�7�3�7�����K�L�[�]�q�v�&�&�"�&��� � �0�0���i�k�c�f�\�a�z�x�@�C� ��4�5�����dh]`��&�,���0�4�D�C�=�?�,�-�&�*�vt����r�v�^�c�a�f�:�;�@�C�����7�:�����:�<� � ���� �������� �������W�Z�����0�,�y�v���3�5�@�C�����#�&� �#�����i�e�p�l�#� �~zml#�"� ��F�@���g�d������������}� ����������p�j����,�,�O�L� � �%�&�6�2�����s�o�I�C�����!��i�b�+�&�$��(�%���H�D�������>�=�����b`Q�O� ������-�.�W[��������U�S�U�S�?�6� � �<�6�2�0�(�(�8�6�L�I�c�c�(�&�<�7�D�@�.�,�L�K� � ���������Y�V�$��.�*�G�C�d�`���8�1���!��%������~ � �i�f� � �x�v���tyxx������2�.�+�+�����L�I�`�`�T�P���]` � � � �z�x�o�k������� ��PP||<�8�l�l�L�O���8�7�D�E�m�p�?�@�@�@�]�`�EH2�/���7�6�^�a�0�.�����������B�C�k�h���h�i� ��)�(� � �|��21����{x`�`����� �� � �(�&�`�\�3�4� ��RRglKP��g�f�)�*�6�6� �!�#�#�����<<��7�8�����~����9�;�D�G��������Y�X�2�5�#�$�B�B�#�&�`�`���X�Y�$�&���O�O��"�.�0����3�8�&�)�?�@�G�E�H�K������<�:���!�!���W�T�6�5���+�&���J�I�3�3� � �#� ��� � �B�B�H�O�3�5�+�,�6�8�v�u�5�7���&�$������ �,�.�������I�H��� � �(�&�����2�0�o�m�2�.�\�[� � �����+�(�T�P� ��t�s�c�`�����V�T�c�a�3�3�(�%���GD����� �jj����������>�<�������o�l���������S�O���������h�h� ����tw� �]�Y�[�V�P�Q���+�,�����c�`�)�(�K�L�7�:���n�m�|�|���]�]�� ����jh`[%!.001a`hgpmvr������Y�X� � �0�.�?�<���*�&�|{lj~vs ����P�O�U�N�|�|�������������L�L�#�$���)�)�^�\� ��m�p����� � �d�c�D�C�&�&�tq���������=�=���������9�<�H�I�$�"�����4�.�@�=� � �l�i�TUEG?�<�Q�L�p�l�)�&�����0�0���H�D�.�+� �!�i�h�C�B�����t�n�~�|���<�?�L�G�b�`�]�\�y�x�X�Y�(�,�������0�+�@�:�����������������x�u�D�H���@�@�"�#�����)�(�H�?�+�+�3�3�lpwwuvZ\%&ad����$�(������� � ���/�0�&�(���� �#�!�����}����\�[�p�s�?�A�&�,�2�6�C�D�@�E����\�`�9�9�H�I�O�Q�������#�%���&�)�\�X�v�v�4�2�6�4����xzej*�(���`dX[bcS�O�H�D�5�3� ���� �� ����l�d�� �M�F�E�C�� �<�6�p�k�i�e����� ����44so@>gj(�"���P�O���4�3�M�P�(�(����� ��WZ#�!�,�*���pojh��������a�^�c�d�L�O���U�S�l�l�a�\�7�3�c�^�_�Y�0�)�} ������_�Y���:�8�RQ48xy>>��D�D�U�S�����4�4���TX����� ��� ��V�T�#�!�O�K�m�j� ��]`ggbb�������f�e�f�c� ��M�K�m�l���P�Q�,�,�6�4�����-�0�+�+�5�4�<�@�D�I�d�e���|�|�����������`�^�s�t�$�&�fjdgPY����,�+�J�K�OP`�_�U�T�\�\�����|�x�������e�c�=�=���� ���Y�`������ �gj04y~ �������\�`�p�x���F�H� �#�D�I�?�C�`�h�������C�I�Y�^�"�&�%�(�������$(SXDG� �9�9�4�6�`�b���,�.���� �>�?�����h�h�\�`���W�Z�S�Q�7�4�C�B���f�c�L�E�`�X�K�G�9�6���I�E�z�v�*�%�c�c���������x�w���h�d�:�2�DG&�'� � �,�*�]`dgw|$$`a|���y{~|u�w���������U�S�F�D�������J�M�?�@�G�K�X�Y���^�[�0�0�#� �����6�4�`�`�-�,�,�+�n�n���a�`�&�#�����D�B�G�D�(�#�mm`b}v�u�.�*�D�B�V�S����� � �N�L�(�'�N�M�h�h���V�Q���D�=�p�n�l�l�@�<�.�+���x�v�I�H�h�c�%�#��"�@�B�#�$�~�~�M�L�2�4�#�'���opST����:�;�(�$��������!�[�X�,�,�ji<�@���|pvP�O�9�9���|�y�6�5�>�;������ �l�p���l�l�#�$�6�4�H�G�v�v�y�v���Q�S�����G�D� ��6�5�,�(���?�:�L�G�� �H�G� � �S�U���z~ $����x~9<����,�2�&�,� � �����n�n�v�u�z�x���^�]�����wwWZ\a[\@Btv8;[Z ((~}S�O�� �����������8�9���*�(���u�s�D�D�@�<���{�x�6�4� ��jj���0�,�0�0�Q�L���������c�`�<�8���,�,�(�+���D�D���6�5�����*�.�]�\�&�#�c�a�G�B� ��� �S�S�X�S�6�6���������[�\�.�3�X�^�p�u�)�(������������������������x| � �9�<�#�$�.0��)�(�@�@�M�I���,�-�v�v�`�c�i�l�����i�f������� �� ����<�<�`�a�n�p���L�Q�D�D�����������8�9�,�.���2�5�0�5�����G�C���NSrqQT/.`\pqB�B������2�0��������� ��P�O�P�S�v�v�@�=�5�5���� ���� ��&'SSll/0TT~}sr@Dzz#�$�`�`��|�&�*�O�M�<�:�����(�&�G�E� ��(�$�|�z���p�p� �� � �� �(�&�����"�#�����!� ���������$�(�� �KM77@�?�X�V�i�i���po� �4�6� � �I�L�V�W���������������� � �����,�&�yz]d��?�?������ �/�0�)�,���I�L�po��Q�M���@�?� �"�)�.�<�?��#� � ���@�D�,�0�*�+�/�0�f�d�\�^�h�i�v�v���c�h�<�@���O�O�n�o� � �������f�h���G�I�^�_�(�.�$�&�(�(�Y�\� �$���O�N�E�E�d�c�hlddkpdh\XvyusF�@�i�i�z�x���(�(���Y�V�-�,�:�7�^�c�����+�,�v�x�*�(�"�$�D�G�y�|�`�b���Y�Y�G�E�����������#�"�(�$�L�H�<�<�����f�i���c�i�F�F��� ���� ��%�&�M�L�,�*�����|�|���L�L���G�K�6�:�T�V�b�]�p�t�@�?�k�k�����v�v���C�A�2�3�k�j�k�l�i�i����� � �pp � ����#�!�D�B���Y�U���8�7� � �)�(����D�@�M�M�)�(�S�Q�+�&���H�G�(�(�����G�F�"�$�G�J�"�!�����G�M����� � �\�\� � ��� � �~UY=�=�����#�$�V�V�����.�/�6�8� � ������ � � � ���x�z��� �$���(�#���W�Y�������������$�#�����9�:�@@H�E�z�y���S�Q� � �������XTpp&%������`�]���S�U������������l�r�0�2�:�:�$�#�� �y~����e�a�*�(�T�T�3�4�������G�G�2�0�,�,�����L�M�6�5�Z]hjPQ��6�?��#�������� �Y�\�)�+�i�h�x�y�s�t�?�C�F�L���������G�I�X�U�MMot ;�?�������feon}h�l�3�4�`�f���]�\�����s�o�.�%�������+�)�l�j� ��V�V�_�]� � �}}44x|yz44B�@�k�h�!� ���u�p�9�6�jlJ�I��� � �{{G�D�� ��������0�0� � ���M�I�W�S�$� �V�P�Y�V�o�m���p�l�:�:�3�3�T�S�5�9�����^�^�0�0���TT��3�0�X�V�i�d�)�&�;�6�,�(�r�m�M�L�\Xdd|~damn`dPWqtBG! bgHMyy� �.�0�)�,���b�a�6�:�@�D� ������]�\�<�=�*�,�3�2������ ����|�u� i�f�<�8���W�T�t�p�\�V�x�v�T�V���c�f���@�?��|�����f�`�v�s�jit�n���Q�O�m�k�&�#�0�3�0�0�``0�.� � ���@�B�.�,�  �� � �&�#������8�6�f�f�����B�@� ��8�3�8�8�����Q�Q�T�O�(�&�Y�Y�&�&���\�[�4�0���~~HJ � ���0�4�f�g�0�0�$�&�2�4�c�e�� �$�(�.�2� � �T�T���$�$�\�`�k�l�f�f���m�l���c�e�O�S�!��,�,� ��0�.���(�(�������`a$&��deUVsvgi��p�o�v�v���$�+�^�]���2�0��|�7�6�+�(�(�$� ������tqY\� �������78������%�#�����C�D�ol11 ����K�O�����,�(���^�\���<�:���L�I�%� �S�L�F�D�$� �3�1���l�k���@�:�,�-��� � ��� � �� �<�<���;�<�^�]�9�5�O�O���@�<� � �����P�O�u�t����VU44!"|z ��R�P�!� �I�G�����k�k�8�6�r�l���4�/� ��Y�X�k�g���`�^�������'�)�F�B�� � � �I�M�8�:����k�i�������)�,�3�6���6�4�8�;�G�D�l�l�I�F�x�v�`�\�?�9�����p�l���?�<�c�c�&�&�%�(�����v�w�� �&�&���(�)� � �&�&�}|utCDdj~D�G���^�]�����D�@� � �����%�$�&�)�$�(�#�$�����8�<�z�z�<�?�����0�2�����������f�h�������\�V�n�p�`�`�T�T�&�$�0�0�#�!�9�8�����Z\trxt��� �[�\�������qt`bz}� �� ���l�h� ��x�s���� � �]�`�P�N�|�|�����<�<�Y�Y�|�x�c�c�����X�V��� � ���ee]\CC.0&�(�(�$�.�(����� �.-��}u�u���+�.� � �4�3�a�\�Q�K�� �T�O�<�<�B�=�}0,"#*&D�<�=�4���|t``KJsq ��� �#� �?�<�`�`���V�S���Y�Y�����c�`�h�c�|�|�:�8���S�P� � ��������� ��~����O�Q�?�B�s�s�����������"�#�l�p�s�s�&�)�#�!�B�@�.�-��� � ���*�,��� ���� � �mm\\ed6�.�D�A�����t�u�h�f�����j�h�,�+�.�+� ��v�t�����f�b� � �D�B� ]]vsPPon����4�4���G�H�F�H� ��#�#���P�Q�\�Y���Q�O�f�`��}�\�W�l�k�L�L�v�x�I�K�5�3���PO/110SS#�"�=�:�d�f�t�r�l�m�r�r�l�j���F�G�� ���P�P���\�Y�abwx``jez|� �82��,�(�xtc�^�Q�M��(�"�!� � ��8�8�M�I���;�5���"��+�(�(�"���<�6�`�Y��� ��h�c���0�+���B�>���0.|}]`���^�`� �#�O�Q���3�3�Y�\��� � �0�4�d�c���V�Z�sy,�.���(�)�c�c�$� �&�"�������,'��[]P�O�����M�H�RQywHKjoxy(*������L�L�9�<��� � �G�H�-�.���z�|�����C�D�����x|����<�=�.�0�cj:�:�O�P�d�c��� � �O�P�����D�G������&�(��|�;�=���gh8�1���;�8�|�z�.�-�L�L����������|�`�Y�3�0�9�8�#�!���������4�4�^�`���<�>�����c�c�W�\������������� ���)�*� �$������������ ����_]stvu{x ��� �pti�h���f�k���h�g�S�S�P�P�:�6�0�0�`�a�O�Q�D�G���,�0�r�q�a�c�^�b���N�S�C�C�,�0���9>��W�V�'�(���X�Y�u�s�c�a���V�T�2�1�`]��z|��������dj���G�G� ������K�H�j�l�6�6�r�o���������|�~�a�d� �� � �@�@�wwI�K�@�?���E�D���WSpm� ������� � �B�B�B�C���[�^�`�c�i�m�:�<�V�Y�V�X�U�V�]�\�6�9�����=�E� ��17 �� �#� �� � ���5�.�v�t�t�v�x�x�\�`�����V�U���(�&����� � �z�|� � ���2�4���� �����~�� � ���B�B�4�0�(�$�c�^�V�S�2�-�����ilTW{|a`XYZWgh�� ��l�l���"� �����������7�3���d�`�V�S�����c�]�@�B�G�H�F�D�������`�`���&�,���;�=� � �5�6�3�4�=�<� ��#�#����Y�V�,�(�c�`�vyad|~~'*SUopae � ��� ��C�F�l�l���x�v�C�F�P�O�c�c� �#�,�-�@�D�����Y�[��� � ��� ����� �r�l�,�$�y�v�l�h�� �|�x�5�0� ��`�c���� ���wz\aFK~� ��� � �� �\�X�.�0�����`�c���c�f�:�<�����r�p�(�(�/�0�;�<�.�,���T�U�f�h�<�@�V�V�S�S���y�x�O�L�N�R�][ zy~}PS0*&�&�8�3�D�>��� � �����T�U�L�H�f�c��������|���c�d�����7�5�f�c�I�H�C�D���C�C���]\jl23{|xz � �0�0�z�z���h�h���&�(�����^�]�]�\���c�]����|�m�k�@�@�7�8�D�B�� �M�J�$'UT;:9948JHGDuvll]]/�,�����9�;�S�T�l�h�C�D��� ��)�&���Y�X�r�s�������r�s���� ��� e`|�z�I�K� ��P�S�27��\�]�V�W�s�u�����4�4���v�s�p�p�����������L�L�(�+���[�V�<�<�xw�('|\]~zw9: � �p�n���!� �U�T�T�V�[�]�p�r�4�4���$�#�S�Q�jgZTjg,�-���x|����HLp�p�2�2���2�/���������.2F�J�0�0��� �'�.�,�=�<�G�I�0�0�x�{�:�<�X�Y�������v�t�_�Y�W�T���O�G�X�S�p�p�4�0�����4;<@<@\Z�����������������9�7�u�v�S�T�^�`�x�v�����8�8�5�4�_�`�K�L���#��^�]�� �� �#����I�L�wz��2�2�,�0�.�0�s�u���`�`�z�|�:�5�����������`�]�L�G���(�#�������������(�$��|���>�=�(�#�&�$�S�P�]`wvzz*,@B&�&� ������9�3�DD(�(��� ����8�7���:�:�<�:�n�n�0�2�;�=���P�N�C�?�����<�@������ � ��3�5�f�j�p�m�Q�S�(�+�\`8A ������6�8�l�l�<�:�D�F�L�L�l�n�`�`�L�L���2�6� ��3�0�����h�h���T�S�������������5�3�C�C��� �!�~I�I�4�4�8�4���D�@���)�+�,�)�%�&�J�L�$�"���$�$�� �x�m����9�3�~xTS>:=9TO4�5� ��� � � �G�D�D�B����6�:�� � ��?�@�d�a�������Y�\���)�*�E�G�� �Y�Y�D�B�a�`�����+�*���&':=4�4�M�P���7�4�V�U������ ����/�+�O�I�E�@� ��``p�f�����L�D��� ��O�K�"� �������� � �X�X�n�h�C�=���I�G�z|imljD�D�����39AG(�+�(�#�?�<�����M�L�S�Q���l�l���5�8���<�B�%�%�����9�6�B�@�"� �TM��O�L�^�^���[�Y�T�U�O�L�e�c�|��������I�I�0�,�+�+�?�B� � �L�O�DD��:�8�%�(�0�3�����x{3�4�B�B���X�Y�c�c�I�M�@�D��� �%�f�k�K�L� � �c�`�tuDFmma`MOHD<<&�)���V�V�x�u�z�x�#�!�����f�f� � �$�#�"�� � �� �����<�<�F�D� � �+�,���gd ��F�G�D�?���7�4�?�6���f�`�<�<�$�#�.�0� � �qq0�0�0�0�p�p�����{����3�5�� ���n�l�K�G���h�c�C�?�#�"�?�<�l�o�?�C� � ���� �-�,� ����� �uv��C�E� � ������ � �ut|~���T�T�������Y�V�)�(�`�W���i�f�������a�`���I�@�@�=���a�]�5�3� � �����6�6�$� �)�(�4�0�O�L�s�p�@�:�i�c�3�,�/�*�M�H� ������#�!���4�4�-�(�\�V�G�G�.�/�`�c�yyj�i�z�|�k�l�������lm49AGae@F=D5< db$&oq+�(�B�@�4�5�Y�V�k�f�F�@�;�<�L�H���� �,�#�5�4�,�)�=�<���3�3�$�"�=�@�3�0�$� ���Y�V������7�5� �"�����'�$�)�,�Q�P���Q�P������� ���f�d�?�@�.�1�P�Q�K�K���G�E�|�|���|{QO+�&����/�)�a�`�a�_����� ����S�S�K�I�2�6�������qqspE�B�#�#� � ����� �(�(�!�"���8�4�:�7�D�E����,�)� � ���Q�Q�:�<���<�@�� �� ���}�}������J�H���}�|�������,�+�ggNP� �3�:�����P�T��!��� ��I�L������~�K�L���=�?���Y�[���$�)�L�P�d�c�\�Z�Y�Y�&�(�+�(�^�\���#� � � �tw2�/������� � �p�p���?�:�;�4� ��&� �!� �)�#�� �j�d����jhvv���$�)�&�&�2�6�0�,�P�O���l�h�#�$�3�4�!�"���|�~�)�,���d�d������&�(��$�$�)�*�3�L�S�P�U�0�6����#�����Q�Q�8�:�X�[�B�D�@BHNl�n�.�0�������sv� � �#�MUuydh���~� � �f�f�����$�&�������y�|���������S�W� ��<�:���(�+� 6�:�c�c�6�5���su,3��$�&�0�4�{�|���������K�O�����+�+���wwlo]b@=$�$�����T�P�&�%�(�#�w�p�&�%�"��]�[��������� � �:�<�����&�(���JKeg7:$)OPoq11G�C���| � �xtxsxs}|�|�s�p���z�|�������C�F� � �������,�,�F�D���8�3�:�5�]�V�L�F�:�7�&� �K�G�Q�L�%� �6�2���$� �����D�?�0�*���<�6�$� �Y�S�WUDGed*'^\��� ��T�P�&�(�p�r�`�^�2�0�2�3�,�*� � �����������&�#�����B�B�r�o���������s�s�����mo  $nl#�&�BB��+�+�0�.���$�&����� � �4�6������ � �6�8�Q�P���n�q�~��� �3�6�U�V�5�<�#�&�,�-�D�E�����"�#�����,�,�:�8���f�f����|�����M�K�e�f�8�7���S�P��|�l�l�u�r�Q�P�4�2�K�I�O�K���<�<�,�+���_[royvlh4/�DA KF����0�2�O�J�&�&�O�M� �"�*�*�9�9�O�Q���"� ���O�L�?�8��������z�p�n��� �� � �<�9�~ ��� �?�?���3�0�����($����������l�f�p�p� ����� � ��^`ml)�*� � �������u�w�)�,�L�I�C�?�i�i�<�<���P�S�#�%�NSagI�J�0�0���PS^]!� �.�0� � � � � �� � ���#�"� � �a�a�����c�c�k�n�@�B� �� ��0�2� � �8�8�(�$�|�z�Y�V�����D�C�,�,���S�P�k�d�F�@�4�-�1�0���]�[�����V�V���������DD |~\`��"�$�Y�Y�i�f�8�6�B�D�uz������`�`�i�f�H�D�&�$�������+�0� � � ��� �DG\`SW\\mk�����G�G�p�s�M�Q�U�V�P�S�p�p�v�v�����������I�M�\�a�� �� �����0�2�%�)���n�r�������O�O�S�U�^�^�������O�P�"�"� � �3�8�6�6�0�.�#�#�I�G�����bdJMX�\�,�0�<�9�|�|���m�r�p�t�X�`����� �$�����jm � �X].�0���(�$������p�m�K�L�����0�2� � �8�:�L�N�l�l�c�c�<�C�2�4�V�[�����o�p�0�4�3�6���l�p�U�V�V�[�B�C�b�d�6�<�e�h�9�?�&�,�� �������|�&�O�T���7�<���?�C�S�X�l�p�V�Y��� � �:�:�3�6�� ���lp<@ !PS8;Z`|}|�y�D�C�������������M�L���T�V�r�p�H�H���?�=�V�S��� � ���G�G�3�4�J�L�#�%�������������������S�U���� �5�:� � �HJqu]``bjm|yO�P�6�6���&�)���2�1���_�`���1�0�,�-�p�p�L�P�V�W�����<�?���w| � � � ���������� �0�-�\�a�"�&� ��$�$������� � �B�<�^�]�7�:�� �&�&��"�@�A�"�$�Q�Q���L�I�� �����joX]jl� �(�&���\�Y��� �!�M�M�'�)�3�3���@�@�i�h�c�c�����v�s�����0�.�X�X� � ���D�B�/�,�hm78GH��HIrrhl+�+�M�O�dg �"�X�X�,�*�\�]�^�`�|�|�:�:�S�Q�������� ��U�Q�X�V���5�1� ����+�-�+�.�G�J�B�H�P�T�-�2�8�<�`�d�c�f�.�3� �!�z�~�\�^� ����vxZ`w|`h&�)����$�*���$�&�i�l� ��=DQUqr����.�0�D�B�4�8�:�<�������t�r�C�?�L�L�H�G�$�"�0�3��������� � � � �������,�+���*�,���<�;� ����l�p�P�T�`�a�������i�l�k�l�]�\�&�#���~~��TQwx]X@C,*}|�� ��?�<�,�)�S�Q�x�x���"�$�?�B�d�f���c�f�p�t�� ��� � ���@�B� � ��"�����-�)���\�]�n�r���\�`�L�L� �$���}+�)�Q�Q�O�L�F�D���Q�T�6�6�P�P�U�Y�0�0���������]`hj~eg � ��� � �d�c���2�0���� ���-�,�b�^�S�Q���7�8�h�f�I�L�����??����h�h�,�0�D�B�`�]� ��.�,�G�E���� � KR}||yst|~\\����K�G�� �%�$� � �8�8�?�?���j�j�o�i�c�`�K�J������� � ���������� �\�\���,�,�0�,�!��0�/���5�3��� ��<�6����V�Q���(�$����������8�4�f�f�I�I������(�$�s�o���^�V�9�0�`�\�'�#�@�=�������5�1�MSZZ � ���%� �mg@@ � ���m�k�����l�g�a�a�D�A�]�W� � �`�^�`b(,L�I�?�<���L�L�99=>KM������SW8�6�I�D���2�0��� ����:�9�(�&�A�<���[V��gdP�I�� �s�p�������UTA?�����8�6�"� ���|�#� ���K�K�3�2���N�H�$�"�,�&���h�f�I�G�O�M�AD?�8�������� �`]sq@?������������������(�0�����&�$�L�G�i�f�f�c��|���O�O�<�9�8�6�����jj|zml� � �#�������������f�d�~|T�P�(�$�K�I���V�S�� �tsH�C�<�:���)�&�,�(�E�H� � �d`|{z@@@�D���h�k�`�`�����N�M�X�X�*�(�)�(�k�l���K�J�(�%�PP%'8;DDED+�&�g�d�B�<�s�p�,�(�p�l���@�<� ��l�l�)�*�v�p���������I�L�M�O�n�k�G�F�-�,�ml0�0�u�t�p�l���������������I�G�+�,��� ������`�[�F�B�4�2�r�p�P�L�6�3�?>�!!ll����S�O�(�$���h�c�"�#�����������<�8�������@�?�Q�I�\�Y�$����$�#�@�@�^�\�p�p����~�m�k�<�<� ����0�0�^�^�W�T�(�&���X�S�(�,�,�,���(�"�(�(�6�0�X�V���\�Y�.�+�� ��� � �������<�;�6�9���3�4�L�M�*�,���I�E�j�i�8�8���.�)� � ���3�0�"�#���&�#� ����8�<�3�2����)�&���������vx�� � ���>�9���B�:�����#�"���b`~||w41���(�(�������L�J�������f�c�v�s�P�O�����X�U�����u�r�����E�G�� �=�?���,�0� � �||V�X�q�p�I�K�]�^�=�;�:�:� � ������e�c�2�1�<�<���<�<�99xx�����+�)���?�;�;�3�J�G�;�8������R�O�K�H�T�T�������h�d���������y�y�����Q�O�5�5�/�.�L�L�o�r�������,�-���wx\�`�x�z���m�l���6�:�#�&���p�u�<�D������r�p�D�B�ov��=�?�K�I� � �G�J� �� ��0�.���dg � �����^�^�f�h�o�p�W[ST2�2�8�8�O�Q�(�+���@�D�S�V�Q�T�,�,�)�0�����V�X�6�6�X�V�����D�C�WWzy����,�(� ������?�?�m�l�v�s�vy,3#�#���\�[�C�D�@�@�j�k�^�Y�����S�P� ��[�[���a�c�w|(�(�db&�&�\]y|O�O���f�h���+�.�� �5�2�#�"�"�#������ge`dml]`@Dim,-84ll*�*�]�[�1�0�u�u�����a�d���������� � � �6�8�S�V�c�f�Y�Y�<�@�@�?�� � � �)�(�O�Q�"� �� �G�C�]�Z�B�=�f�a���v�s�4�.�+�+���� �������-�.�� �� ���9�:���@�E�#�&�G�M��"�(�+�<�A� ����9�6�@�?�����&�&�0�3��������� � �$�#�<�>��� �� ��&�,�vw � �G�I���~,�)� � ���#�+���0�3�&�*�&�(���+�+�@�B�[�[�r�u�]�a�h�l�C�D�4�4���B�@���&�$���������#�"�p�l�ptT�Q���V�T�i�i�k�p�����l�l�����l�m���������|�|�h�m�I�I�� �$�#�����C�D�8�6���ts|~;9ddYZ�������� �&� �x�u�$�!�@�<�Y�Y�mm0�3�����"�"� � ���\�^�zzhlzy�#�P�Q�?�?�Y�\� ��3�2�0�3�,�,�����'�(�<�<�_�c�6�6�O�T�L�L�i�l�����G�F�:�;�;�<� �$�p�l�J�I�������3�1�B�B���E�E�����I�K�"�#�:�:�QSGGtt � ���4�4�,�(�0�.������1�,�#����?�<�<�9�����(�(�� �I�E�O�K�h�e����� ��mjgjmoMM��-�.�O�O�B�C�$�$�%�(�\�Y�,�*�V�Y���q�p�|�z�����}�|�0�,�ehUX$(_a0�3������������M�O�T�\���S�W�p�t�l�p���l�i���S�V� ��+�(� ��wzKP;@qw+�+�a�`���6�5� � �0�.���H�@�T�S������}�~��2�/�0�0��������� � �xDKTU����� ������.�*�,�,�5�5���|�x�^�]�L�J�����g�f�����V�T�f�e� � ���`�[�#�$�,�*���?�=���?�<�4�.�O�L���`�^�B�<�6�3����� ��s�s�C�A�S�T�Q�O���������(�)���@�E�,�.���&�&�]dU]jo � �@�<���c�a�a�`�����,�-������ ���V�Y�<�B���� ����� �(�0�O�S�@�G�0�6���i�k�K�M�J�I�"� � � ���Y�Z�\�\�n�l�6�8�� �G�G�6�7���H�K�6�8�]�`�=�:�"� �����6�4���� � �����V�S�<�<�!�!� ����)�+�6�:�P�Q����0�2�����S�S�l�k�Q�S����%�&����� � ���?�=�~/012(+dj zz}�� ��f�a����� � ���:�<� � � � �����.�)����$�$����)�&�D�C���B�A�,�-�n�o� ��)�+�K�H�[�\�-�0��� � ����9�:�7�B�s�s�%�(�P�O���� ���5�6� � �� � MOXZW�T�������r�o� ��J�F���h�d�Y�Y�/�,� ��5�0������97wv|wE�@�|�x����������� ������s�r�0�,�h�f���<�?��� � �2�3���~xwq77TSba��@�9�B�B�H�L���B�?�� ���#� �&�&�L�I�u�t�x�v�������|�u� � � � �(�#�K�F�`�V�X�S�&�(����������c�\���$� �"�"�3�0�#�$�.�+�M�O�O�N�3�5�H�K�=�@�7�6�������� �@�B���9�8� ����$$~GDDDddPPge��� ���F�G�Q�O�Q�V�`�`�zz��+�(�����)�#�)� ������������� �6�3�S�M��}���S�O�O�I�x�r�B�=�6�3���@�A�8�9�&�#�4�0�������}��(�#�*�+� � �&�&�pp$'mq�������� ��"�#���E�F���&�"�������$�&��� ����0�0�0�0���I�G���V�V�^�[���0�-�#�#� � ���&�$�� � � � ����0�4�3�4�W�U� � �}~ � �'�#�~���&�(���I�L�6�=�0�5���B�G�`�c�<�@�W�Y���5�5����j�k�\�^�f�i�c�`�I�L�����#�#�<�=���S�S� �#�?�=� �!���������"�$�.�.�l�k�,�-�Y�\�.�3�D�A�y�z�!�&�O�Q��� � � � ���KJZ]44,2** )'wrmj��z�w�\�^�B�C�S�R�M�L�������l�l���B�D�p�t�G�J� � �-�.�(�(�L�F�3�3�I�I���T�T�6�5�_ech~}`c����v�v�[�X�&�(���;�<�*�-�z�x���O�S�D�E�0�0�� �K�Q���G�K��������� � �H�I�ppSWpmjj][tuf�f���������&�&�v�v�9�5�$�$�<�9�S�P�R�P�)�(�`�\�V�U�%�$�������� �B�<��������� � ��~{ � ����DGL�J�:�6�K�K�������8�5�F�D�,�+�a�c�S�T�0�3�I�L� � �F�C�f�e�L�G�3�0�I�K�C�?�&�$�/�0�:�8�k�h�D�C�8�<�[�\�S�O�zz:;0�2�&�$�Y�W� �#���"�#�8�8�3�4�M�T�����c�h�P�Q�K�I�<�<�e�c���c�f�n�p�t�r�jjwxZ[pq\aPU}~NO}|qoxw|,�,�� ���������G�G�?�<���V�Y���#�'�������!�%�� �a�a���6�8���&�&� ��jm��N�L�8�8�L�L�������� ����`�^�:�7�T�L�f�e�8�1��|�l�f�6�3�Q�M�i�d�r�l�����6�6�G�G���� ��� � �!� ���$� ���/�+�2�3���B�@�3�-�� ���ztl����-�.�,�(�m�h�L�I�#�#�B�?���~�|�W�O�(�!���&�$��� � �W�Y�p�o�!�"���jjTODCttXZ|{����������������������e�d�m�k�����N�Q���F�C���,�,���P�Q�3�3���,�*�f�f�B�@���#�&����� � �v�v�,�0�P�O�C�C���v�x��!�����y~_axw7�6���452�/�<�@���l�l�L�P�M�S���$�(�"�$���}vzz|BGgl`d),|����U�Q���V�S�!� �#� ����4�2����� �����#��@�=�A�8�� �� � � ����������h�f�����}�|�w�x���`�[�s�r�|�|���6�2�������V�T��� � �r�p�H�F�)�(�;�8�?�@���-�0�+�,�������I�H�/�-�X\SW||PO��� ����������B�C�i�g�o�i��~�?�8�(�"�)�&� 79 z|0�,�+�+�|�|���z�z�r�s�h�h�]�\�5�5�����jlU�S�(�(�,�0���D�E�3�6�8�9�M�O�-�.���.�2�������8�9�:�;� ��C�C�[�\�M�O�l�m� � ���������:�<���`�a�ZZDJrt9<DH0�.��#�5�=� �#�����f�h�v�{���� ���(�$�*,]]admmqqad,�*�&�$�j�l�8�:�T�T�t�t�����l�n�������W�W�<�@�p�m���]]mp<�=� ����:�?�M�T�x�v�����������`�c�k�m�`�f�S�W�������p�u�@�?� �#���gm:@QUtx�����4�5�u�p���L�O�u�w��|���k�n�d�i�K�O�`�a�h�f�5�6���V�V�9�:�\�\�B�@�i�h�?�@���up^b`cbj $lo��x�y�"�"�`�]�W�T� � �H�K�3�2�?�<���~���� ��B�E�Q�Y�G�K�.�.�`�`�9�<�'�(�L�O�,�(�<�:�?�:�h�d�0�+���-�&���X�V�|�z���v�s�������-�,�f�f�������u�u�r�p�~��p�r���� ������~=�@�UZ����D�I���^�d�����H�D���t�t�z�v�S�R���|�|�������G�G�0�0�o�l�0�3�����Q�O�C�@�B�B�������`�Y���"������ � ���������I�J�h�c�6�6�3�0�����C�D� �$�X�Y��� �"����� � �� � � �a�`����:�?�]�\�3�3�#��z�v�G�G�S�Q�/�3�C�I� � �&�&�����}waapj��� �&�"�������� ��7�5��� ��mq��V�W�@�?�?�<�D�F���T�N�f�g�|�|�6�6�n�m�<�=�� �D�C���u�u�]�[���c�f�L�I��|����������������~or]e`b[]0�0�.�,���V�V���� ������������ �jmdc�� ��(�(�K�I���v�v���0�/�?�<�<�<� ��%�$�� �k�f���Y�X�_�`�Y�Y�b�a�f�h�.�,�4�4�f�c�K�K�1�.�0�,��� ����(�&�:�?�@�:�P�M�L�K���x�|�Y�Y�<�<����������#�&� ��]�\�m�l���|��J�P�4�8�jl6;otMPxzgjMQefdgwz�"� �#� ��V�V� ����&�'�-�/�D�C������;�;� ��0�.�������0�0���}}mmL�K�8�6�I�F�S�P�Y�S��� � �U�T�S�P�������/�0�:�8�����������v�v�3�4�7�8�C�@������� �3�8���n�p�+�,�$�'�����5�8�<�=�m�l�0�2�O�M�2�0�9�<�$�$�0�0�T�Q���@�?���PPE�B�`dhgWT^]wt,+� �����F�G�����B�>�[�V�P�L���<;��r�n�|�x�� ����� � � ���� �#�;�:�Q�Q�c�a���x�y�� �������f�f����� �!�?�=�s�p�(�&���W�W�������x�x�yx������1�2�4:Y]9�8���0�3�MPFG@�@�@�?�\�\���[]ov,�2�`�`��������!�.�2�)�0�����&�)���d�b�n�s�����l�l�\�`���S�V�y�x�6�8���)�+���,�+�<�:�&�$������|�|�����O�Q�K�J�`�^�����4�;� � �SU�� ����KM`d ����������������g�f�,�+�[�\�����4�2�F�D�|�~�`�^�c�c���!��/1 8>NT-0W[ml��44eeXXdg����[`��,�(�P�O�0�0�����I�G���U�V������z�x�����;�6�[�[�L�G�\�X�p�o� ��&�$�����\�T�L�D�� ���,�.�(*GDli,�,�&�$�K�G�� �����b�d�d�g�.�2�A�B�[�`������� ����99��,�,� �����f�c�������#�#����<�<�*�,�J�L�0�,���D�D���3�3�_` �"�2�0�l�l�Q�M�I�G�E�D�L�I�@�?�z�}�����-�)���|�z�@�=���E�G�6�8�%�#�&�)�~�}�k�o���}�x�G�C�\�\�@�=����������<�?�L�O�������z|H�G� � �D�E�D�G�S�V�p�p������� � �<�<�,�,���%�$�/�+�6�7�@�E�(�,�F�E���+�4���S�T���,�+�L�I�����+�&���$�����#� �;�5���<�<�.�0�6�6�,�0�X�X�U�S� � �oottB�@�3�8���(�(���S�Q� ��E�D�"�#�D�@�+�)���f�c�k�h���v�v�i�i�r�p��� ������`�d�����@�<���[�V�%�!�P�P�Y�T�!� �^�_�[�`�Z�\�6�4�B�=�MPOP*,T�T�� �����6�6���C�@������ ���#� ����*�)�)�&� ��2�3�T�S� � �<�9�|z���� �� � ����3�1�#�$�#�&�]�\�,�(�<�8�#� �ls4<GK<@C�@����#�!�<�:���#�(�K�G�8�9�V�W�C�D�?�?�� ���L�O����� � ������ � ����T�X���L�L���c�`���^�]�v�v���b�`�C�B���c�c�&�"�D�B�.�-�I�H�0�,� � ���N�P�(�(� ��lm����EM~ �� � �*�.��� �$���M�L�� �$�%���)�,�[�[�������������������:�?�a�`�+�+�%�&�O�P������ �d�h�s�x���������� ���oqx{p�p�`�a�8�6�<�9�x�v��|�D�?�d�c��� � �,�*�,�.�`�\�:�<��� � �x~�����8�6�@�D�(�(�B�?�L�H������,�,�����P�P���(�,�O�P�s�x�p�p�,�,���@�?�=�=���0�3������������� ��``XX9�:�\�^�O�Q�&�,���`�`�t�r�UUjlqsxz0�6�8�=���C�C�<�<�����#� �zzA�C� ��?�D�� �����7�9�.�0�`�c���������~��1�2� � �wx���� ����� �6�4�3�0�� �.�/� � �=�?���|����|�� �����������C�D� �$����������� � �6�5��� �$���T�U�����q�t�:�8�$�#���>�A�S�S�h�f�:�4�=�:���d�d�#�&���|~&�*�����������"����� ���� �P�P�lq���!�p�u�5�3�,�0�W�Z������3�7���ae~&�$���*�*�W�V���B�C�D�D�c�^�h�e�8�9�� �\^qt}|��&�$�.�0���"�$����\�[����������������z�z�&�(�� ������?�=���Q�U���,�2���d�c�L�P�1�3��~�?�@�X�V�Z�\�� �O�Q���9�8�.�.�jm\`<:tsT�O�7�6� � � � ������z�v�(�&�����T�Q�`�`���H�H�|�s���r�t���������c�f�\�X�8�8�z~77:�;�����L�K�q�m��� � �$�&�,�/���F�G�J�J�*�(�gj"99TZ#� �$�%�Y�Y�0�.� �%�K�I�B�C�@�@���x�t�C�D�D�J����4�9�K�Q�.�2���yz � �4�:�d�e�����M�O�,�,�����I�Q�#�"�y~UQ!� �"� ���f�c�|�x�}�y�?�:�n�e�c�f�Q�P�:�<� � �H�C���������|��s�u�,�-���f�f�`�\�l�i�v�p�B�@���&�(�c�`�s�s�,�,�������]�[�P�Q�)�,�8�:�E�I�V�Y�h�l���r�r�+�*�4�6�oq][dbUUGFurdasrd`hjgl�� � �+�/�)�(���ccyy|}VTtt��6�4�i�i�C�@�z�z�������l�n���������k�h�I�G���-�,�8�8� � � � �c�`�� �=�:���I�I�L�L�(�(�O�O�k�l���n�o�\�]���h�c�<�<�1�3�,�.�=�@�� � � �TXPPee/�+�<�<�?�@�F�@�8�6�!�� � �3�0� ����&�(����� � �����,�.�� �C�D�����D�G�Q�U���g�k�����pqsyZ`PS4�8���j�j�C�D�D�B�<�:�d�c�d�c���l�h���(�*�k�i�t�s���� �5�4�6�2���@�<� � �I�H� � �<�<� � �:�;�s�p�l�k���4�3�jn����jhdb``<�?�����[�^��� � �3�4�3�4�����`�^�$� �p�o�]�Y�����.�+�����3�,�O�L�Y�U�L�E�c�`�@�;�����f�]��������r�n�$� �"� �i�f�%�&���DDxx��0�.�&�"� ��@�:�� ����� �&�3�8�"�$� �"�"c`WWLH<�<�Y�Y�a�^�+�)�J�H�9�:���(�#�C�@� ����4�7�;�9�H�D�������f�`�L�I���������8�6�^�\�.�,��� � ����O�S� � �~lp}D�@�p�p�j�h�k�k�3�5�f�a� ����edMMxxad����@�E�|��������x�r�����P�O��|�k�f�L�H���Y�V�?�=�M�K���V�V�[�\�U�V�h�f������ �L�O���4�.�4�4���L�G���������UUZX$^]��.�-�@�?�|�x�8�6�Y�Y�� � � ���<�<������]�[�F�F� � ����$�#�PQ��&�#�6�8�O�O�J�M���}�}�z�z�Y�Y�x�x���^�`���h�k�!�#�F�I���`�]�0�/� ����.�+��� �� � �vt��1�-���8�:�M�L�M�J�� ���g�d��������&�$�������#�"�������!� �����]�Y�rpUP&&UTll � �����F�F�����h�c�� �<�8�V�V�<�<�&�$�<�:�9�3�a�^�S�O�C�>�l�f�)�,�����t�v�O�K�T�U���]�\�D�C�+�(���"� �#�!�pp``GHONejmlz~��2�+�B�=���\�[�;�>���/�,� � ���6�0���3�-���vt.�-�giUWT�V�I�I���P�N�l�l�O�S�� ���h�h���8�5�\�Y���<�@�c�]�� �2�3����� ��I�L�s�o�<�<�.�2�@�@��}�)�#�����2�.�����K�I�\�Y�n�k�0�/�8�<�@�@���)�)� �������� ��U�Q�4�3�Q�L�~|wvrldcB�A�J�G��~�{�x���V�Q�g�c�=�<�5�3��� � �������y���*�#�����#� �����S�O������b�]�_�Z�9�3�d�e���� �vz���\]jm���� � ��@�?�?�=�� ��� ����������� � ��������� ���� � �,�0� �$� � �P�U� � �<�?�V�T�=�@�i�h�c�f�O�O�B�I�� �~@�@���0�0���������������������� �?�D�x�|�z�|�����K�P�0�4�������������#�#�`�c�K�H� � �&�(��� � ����$�@�D���&�&�������� ��#�)�H�M�3�8�����������O�T�.�0�U�T�������V�T�G�G�$�(�&�*�4�8��� �� �#� ��]`vs00������� �M�I� � �������Y�\�4�6�Y�V�����Y�W�@�?�P�L�*�*� ��K�K�z�x� � �3�2�0�.�,�(�������6�4�c�c���z�v���`�a���Q�Q���!� ���7�6�����-�+�V�U�(�(�� �������(�(������������8�:�f�f�W�V���c�`�I�I�\�Y�L�J� � �B�D�+�-�����"�#���x| � �����@DMOlott� �`e(�,�`�^���d�f�����h�m�@�B�9�@�5�9�f�f�T�Q�i�f�,�+�.�.�)�(���jlzy|}~!�"����������O�K�8�3����|�����@�=�?�B�+�)�F�D�K�I�@�;�����H�C�:�5���Q�O�r�l���3�)������ �G�D���������4�0�6�3�?�:� �� ����� ��3�0�S�Q�mp�#�� ���&�(� ��+�.���&�#���@�?���t�v��z�v�t�� �����]�Y�c�a�1�.�Q�P�������p�n���\�W� � �.�.�P�L�:�8�n�l�����d�b� ��|�z�/�.�7�8�hl`](�&�?�<���tp%� �,�$�`�\�:�6�X�Q�4�2���$� ���>�<�7�5�@�?�(�&�����+�&�<�<�}} � �ddxv)�&�� ������� ��X�Z�x�u�h�b��� � ���� ��Q�L�<�8�1�.�0�0�8�9����� ��8�6�,�(�J�I�|w��W�P������G�@�� �O�H�-�(�,�$�/�,���4�0���l�l�(�)�4�2�<�<�!��X�X���6�5�F�D�8�:�����,�0�c�a�\�W�C�@�������� � ��������bg:9 ��-�(��� �#�V�T�������d�h���\�[���\�Y�h�k���t�o�}�y�7�6���*�)�0�,� ��!��C�@�#�$�(�)�D�G�� �`�^�~�}�����"�!�~]_{x�v�p�r����|�]�U�C�@�qp~XXyx+�)���$�!�(�+���������,�,�,�)�L�I� � �{�z�Q�Q�z�v�h�d�[�V�#� �������=�9�Q�O�K�I���M�G�(�!� � ���5�0�� �f�^���)�&���h�c�:�3�P�K�������0�+�}}��,�*�64yv}wGJ89`�^�+�(�� �������O�K�B�?�T�Q���)�#�`�`�\�X�0�.���p�r���|�|�p�n�����,�0��� � ������� � � � �<�9�S�T�������m�m������ �us � �,,gg�� � ���;�8����������&�#���������0�,�(�"�$� �������$�&�2�3�i�i�(�(�4�0���� �����=�=���MT��L�O���4�9�I�L�[�\�o�l�D�D�;�8�x�x�%� �%�!���'*jlOM��D�@�f�c�c�`�:�9�@�C�+�,���������Q�P�m�l�8�3�_�]�<�9�p�t�.�0�~�}�����opMN47��D�C� � ���K�K�������soL�J�4�0�e�^� � �`�\�0�-�T�T�c�`�I�D�)�&�+�)������+�-�����+�,�����,�0�&�&�D�D�h�f�4�.�D�C�C�@� �� ��&�#�0�.� � ������ � �"�%�� �,�/�3�6�����?�@�`�c���c�^���;�8�h�f�v�p���I�L�;�<�)�,� �������9�:�H�I���������L�M�����h�e�|�z�x�u�x�|���$�*�J�H�������3�3�DD>=hdlh ��j�h�$�!��� � �7�5����SUK�O�!� �� �5�9�)�,�&�&�*�,���.�0����� �� ����� �P�M�x�w�������\�Y�6�4�O�L�!�"� � �����wx����@�@�4�4���G�D�0�0� � ���9�7�I�H�����f�f�#�(�I�G���Y�Y�Y�\�J�J���0�1�&�(�������,�,�T�S�3�2���<�<�Y�Y�<�9�D�G�f�c���������(�'� � �t�p�+�+�sp&� �L�K�4�3�O�O�9�9���<�?�-�,�J�E�,�.��� � �=�8�����Y�Y����C�@���K�D�(� �� � ��� �����G�C� ��������X]l�h���������+�,��� ��t�m�)�-� ��.�0�D�C�`�]�.�1�`�\��v���W�S�5�8� �#����"�&���,�0�.�0������� � �����(�*�(�,�@�C���v�v�8�8���&�(���B�D������C�B�f�i�����i�d�3�3�/0STOT����Q�S�Y�[���-�3�^�a���#�$�� �$�#�<�<�ad?:edTX� �����y�{���������������������z�|���C�C�#� �Q�P� � �*�&�0�,���0�0���� �7< � ���� � � � ���$�$� �!����FHNPDHw|����T�V�=�<���m�p�C�G�,�,����&�*� �&�C�C���<�A�z�~�h�i���:�<�C�C��� ��z����G�I�;�:�K�P�x�}�,�)����� �"���������������(�!�3�4�����$� � � �������������&�&�=�?�X�\���#�#���*�,���(�*� �#�h�i�(�(�]�]�l�m�j�l�]�`���3�3������� � ���#�"�����HIx~lpqtzgggj����3�3�:�9��� � � �$�� ���&�+� � �5�:�������<�@���4�;�������+�+� ��� �� ��� ��5�5�d�f�f�f�S�T�\�^�L�M� ��dh"�&���8�:�V�W�@�@�m�k�o�r�����,�,�G�F�~yI�K�(�*�.�3��������� � �������� �=�A�N�P�(�,�v�v�������X�V��!���7�=��������pp��*�.�#�*��������?�@� �#�.�4�ST ��(�(���l�k�����[�\��� � �vy|~[]vw � �+�)�0�.�3�6�������� �����������Q�Q�B�?�E�E���� � � �&�)���8�:���<�@�-�2�$�&�����C�C� ��JKy|| ����:�<�&�(�zx|���V�X�k�i�^�\���������^�]���L�M�O�Q�?�@�8�:�0�6�|}OS`e|~JMpoC�@�@�:�(�(�-�0�&�)���@�A���� �(�)�0�.���������4�5�#�(�����@�D�d�h�T�Y�6�7�����<�=�D�B��� � �6�9�@�<� ��K�O�<�?�:�=���l�p�H�H� ��������T�S���3�4�O�M�(�(�W[|~diOSge �� ����.�0�������n�o�I�H�U�T�6�8�\�\�x�u�H�H�`�`�X�Z�T�T�m�l�]�`�h�e���t�s�u�x�B�C�O�M�`�c�(�(�!�#�&�&�c�d�� �@�?����������������i�f����!�V�S�<�<���,�-�����ml~49`b48jl$'lj� �@�=�c�]�,�%������ ����}��|�|�j�k�2�.�:�7� � �� � �� ��4�3�6�4�I�G���5�2���0�3�h�c�(�%�|�z���$�$�&�"���::~�sxtydjqtbb � �[�\�S�T�������?�C�I�H�O�Q�n�m�^�`�c�h�`�a�u�w�����,�,�0�3�Y�\���d�d���B�@� � �G�H�:�<�"�$������MPgm������,�0�"�#�~�|�X�Y�W�U�o�i�@�@�|�v����� ��� �(�0� ��������������L�L�0�2�f�c����������� �#���T�Y�$�&�O�O�H�G�������� �`�]�y�v�X�Y�������w}~� �]btz���,�+�������K�O�"�(�M�M������ �M�L�J�F���������������V�W�C�@�p�t�������e�i���A�D�4�3�(�*�@�@���x�|�x�x�\�]�:�9�)�*����&�&��� � ���������� �� ���� �����J�K���Q�Q���������� � �������<�<�E�G�&�$�I�J�����������L�P�r�r�O�M�D�C���x�v�d�`���6�4�.�,�Y�V�c�\�F�=�w�p�O�L�E�C� � �#�"�UWz}UX����k�i� �"�#�"�Q�L���v�s����}���G�F�������QS ���� � �!��S�L�X�V���`�c�Y�V�j�h�������G�D���3�3�k�g� �� � �� �jjIJ<@����O�O�C�@�����f�d�`�]�����������  ������Y�Z�� ���m�p�@�F�D�E�I�I���8�:�� ��#� ������!� �"$IIKK��07<>RWx|]`|| ������|�w���h�i���/�2� ������O�L�@�B�:�:�%�#� � �I�G���������������7�:������!�Q�S�H�I�I�L�s�t�G�I�2�3��������3�4���}�z�0�0��������� �"�)�&���&�(�����K�I�\�\���c�c�<�>�5�9�����/�3�����uw� � � �+�)�����.�,�4�3�:�;�Q�R�?�<�c�`�����D�@�����&�#�(�+�9;[[XXbdVXy|pq(�(���s�r�8�5�� ���e�`�|�|�m�l�k�o�x�x�X�V�t�m�D�@���6�:��� �#��� �� ������T�V�.�0�B�@����� � ���P�L�+�)�C�D�!��@�B��� ��=�?�t�s�e�a�P�O�"� �����6�6�+�,�~dj� �"�$��� � �<�<�4�3�<�<�]�^�M�P�8�8�p�t�a�`�k�m�H�O�l�m�/�-���?�D�����DG~us����G�G� � �l�k����p�l�`�\�t�p���S�P�h�h�@�B���^�`�5�6� � �HMgjRW������#�$���� ��� ��%�#�����I�I�2�.�c�`�]�Z� � �I�H�`d���<�@�����]�^� ��2�2�����dl�� ����,�*� � ���=�C���0�3�I�L�P�S�o�r�v�{�"�"�l�n�f�h�f�g�|�z�a�f�8�:���wy||ttqr7�:�n�l�f�f�����M�L�\�`�(�(�l�i�,�)���x�u��|�������������K�I�&�#�V�T�~|KPlp/4����<�8�3�0�?�9�G�F���ptxx���� ��=�<�(�(�Y�Y���G�D�O�L����=�<�f�f���\�`�y�|�}��&�&�� ���(�,�����6�5�@�?�4�0���zwMK87YWDD[Yb`a`� ���D�B�m�k�(�%�V�T�]�\�:�8�-�+�,�+�+�(�D�C���.�,���P�S�� �8�9�c�c� � �������p�m�]�\� ��XX� �$�(�;�:�l�l�<�B������������ �d�h���C�D�p�p�6�4�(�(�����%�#� � �6�2�� �������}xjh( wt~gd��h�e���������Y�W�4�0���d�a���O�I�#�#�"� � ������������ � �*�,�������(�&�=�<���� �)�&��� �����}|�� � �Q�O�W�S�6�8�O�K�B�@�`�`�\�\�.�.�Y�Y�\�\���Q�O�~�}�w�r�:�;�J�H�U�W�����b�a�e�c���?�@�[�Z���.�0�����Q�O�*�+���X�V�����6�8�����=�?������xzpp������E�D�H�D�����v�v�����\�Y�D�B�$� �C�;��� � �P�M���&�#���~z � �3�2����� � ���� �������G�G���0�3���� � � � ����"�#�"� �$�#�0�0��� � �,�,����0�,�(�$�#�"���G�C�#� �V�S�:�:�(�&�h�l�-�-�m�n���:�=��� � �����stZZZWQ�Q����������4�4�� �#��wr2�0���D�F�p�r�(�*�K�L�D�D����wusv��8�7� � �T�Q�"�#������ �,�)�)�+�CF8�6�SUgjje � ���Y�Y���=�8�h�d�S�P������$� �5�3�[�X�O�J�&� �����6�4���.�1�~(�+�Y[qsD�C�gg �#�����V�U�����������7�7� � �#�!�8�:�Y�Y�^�a�����`�[�i�g��� ��(�#�����,�(����� � �l�i�/�0�3�5���0�2�hl����S�U�,�,�0�2�� �,�,� ����jl��R�M����� � ���e�`�������4�2�(�(��� � ���)�)���G�I�7�4�^�\�5�0�3�3�<�8�G�C�K�I�8�8���L�M���������[�[�n�l�@�D�� ������������� � �,�.�d�h���8�9�����vt ��<�:�������+�)���4�5����� �#�J�H�j�h�����i�i�v�v�x�x�����P�Q�2�4�����)�(�����vxddOT��� �&���HMpo"����5�6� � �4�3�����+�(����#����,�(�����)�(�^�`�P�T���l�l�:�:����� � �����0�.�@�@�L�L�0�0����� � ��� � �p�p�;�8�z�y�����8;;>UY[]llvzHH��M�L���#�&�c�`�I�D����~�|�x�������\�\�&�(�<�=�C�G�Y�S�Y�X�����L�M�� �&�'�6�:�G�H�4�7�\�[�&� �%�#����<�6� ��������&�(�\]������� �� �;�B�W�[�I�L�#�$�B�F��������i�p�G�O�����s�v�S�V���tx � �.�.�����z�|����xxI�I��� � ���#�$�V�V�%�&����#�$�d�c���&�$�������`�`���!�"��������� � ��� ��H�D���O�M�K�D� � �c�d�D�D�j�k�r�p�M�M�P�O�m�l�G�D�Q�P� � �#� ���~}Z\::p�l�������l�k�^�[�U�O�`�[�B�<�"������p�n���������,�&������<�8�&� ��������x�w�[�X�����$� ���Q�I�O�J�&�&���]](�!�� � �����z�J�G�k�i�����,�,���(�"����� �~uw � ���<�=�8�4�|�z�8�8��� �"�3�4�\�[�6�6�L�P�V�W�!�#�������$�(�� �V�Y� � �+�*�)�(�x�u�p�s�\�[�a�a���������p�i�O�R�*�*��"� � ��� �����������8�5�0�,���8�9�������X�[�<�B��� �#�dd0�,����Y�Y�V�V���������\�V�0�0��������T�Q���0�.������*�+�H�I�%� �^�Y�W�T�4�0�H�E�f�d�C�@�Y�U�����&�"����� ��}tp ��"� � � ���=�<��� � �(�&����:�9������� ���� � �-�+���6�6�?�?�����C�G�(�(�}lp:�7�����Y�^�Y�Y�4�3��� � �� �h�h����������� �� � �������L�K�����m�n�n�i�}�|�<�:� ��0�0� ��|LPmm��0�0���|�|�� ����� � � ��~}��j�l�]�^�G�D�h�h�9�9�L�M����������0�0���jj||zxtvF�G�P�P�(�(�8�;�����0�+�d�`�I�F��������(�&�B�?�k�m�;�<�t�r�<�<�K�O�K�K�a�d�f�k�y�~�+�-�k�m�0�2�.�0�$�)�puvy �����������)�+�T�T�:�<�u�r���|�~�a�b���`�`�+�$�4�1�v�l�#�#�������`�]�v�t�f�f�TZ��#�$�� ���"��,�.�L�L�Q�T�5�6�s�v�G�J�P�T�� �� �\�[�`�`�����%�&�����Y�S�~�z�?�B�����V�V�"�'���������-�.��� ��5�3�5�8�"�$�K�M� � ���_�`�$�*�#�&�0�0�+�0�D�D�B�F�O�S�!��V�V�[�W�h�g�T�O�`�^���������`�`�A@$�%� ��� ��������V�O�5�0�rq~~X\������ �:�:�����vz"�&�OS��������D�B�}�|�\�`�\�Y���X�U�C�D�(�)�5�8�.�0�C�G�h�k�\�^�r�s������J�J���?�:�ss����W�Y�i�l�<�<�3�0�1�0�`�`�D�D�t�p�O�O�=�<�Q�S���4�0���0�2�D�B�8�9�sq$$``PPDC"(;<'*Y\`�`�8�7���c�^�\�U�w�s�c�`�D�C�A�9�����D�D�(�$�P�M�l�m�����I�D���M�I�m�i�V�V�Y�U�0�-���Y�T�a�\�B�<�T�L�;�4�<�6���� � ����%�"�z~\[vtad��� � � ��� � �����(�#�+�&���k�c���$��Q�G�b�]�tuB�?� � ���acFFyz6�6�����Y�Y�T�Q���v�x�~�|�����6�9�3�7�����"�!�x�v���n�l�������|�z�����%�$�^�[�(�)�PNGGlj~~~]`i�i� ���!���M�L�Y�V�0�2�L�L���Y�Y� �#� ����$�"�-�,�Y�Y�S�Q�&�&�����<=�������������0�0���������h�i�s�x�<�@�fdKL$%``69llPSLP@B .�-���������;�<�� �����3�4��!�C�C�L�P���2�.�u�s�u�u�����u�p�c�^�����/�0�0�.�$� �c�b���������S�Q�G�D������������?�<��� � ����&�)�6�8�2�3�G�D�%�(�����I�F� �������� � �����=�=���8�4��������*�)���� ���+�.�p�p�K�L�.�3�Y�Y���o�k���@�=�C�A�T�Q���I�L���P�T�(�0�D�L�� ���*�)�,�2���5�4������.4 � ���� � ���8�5���9�8�����v�|�v�|�\�d�)�,�&�)�&�(�(�*� ����2�8�G�G�� ���<�<�(�*����8�:���$�$���jlPQXY��|}��UZ��#�"�1�4�@�@���0�0�t�p�~�z�������a�]�m�l�������T�T�|��C�C�\�[�����W�T��� � �G�D�Z�X�F�D�i�f���6�7�d�e����� � �31<B]]/2jj+�*� � ����~}��V�W�0�2�?�<� � �tu)�%�jhpp\`������L�K�c�e�y�x�����r�n�<�7�A�?���0�+�(�"���������4�3�X\,�+�Y�U�����~�z�B�<�)� �������(�$���.�-�����*�'�/�,���LK�� ��qnY�S�i�f�=�<���0�.�6�6���3�3�=�<���;�:�!� �?�@�.�,�P�O�78vw@BO�P��� ��&�&�3�0�)�(�F�G���Y�[�I�J�l�l�W�Z�8�<�5�4�G�F���+�'�|yMM~zzws6�3�C�:�|�z� � �3�0�[�Y�H�D� ��(�#�5�-���������h�c���i�`�]�V�r�i���\�Y��� �� ����"� �$�%�T�P��� ��<�;�|y� ���<�6�H�C���.�,�0�,�`�[�C�=�^�W�M�E�?�<�&�&���5�4�/�+�B�@� ���� � �$�&�� �,�(�3�/�+�*�����?�?�����8�4�&�"�B�?���#�#�3�/�Q�I�G�E�3�,�4�3� ��*�)����� � ����������� �� �$�6�8�J�L�r�s���z�r�t�p���i�k�G�@� � ���l�f�G�G�d`}|yxzz=�;�-�*��� ����������� ������0�0�)�"�#�"�?�<���$�"�Z�\�6�8�������I�G�f�d�`�`�twyzttORx~�� � �2�2�@�@�9�9�D�C�6�5�x�{�����6�7�8�7�>�<���&�&� � �2�0��� �$�Y�Y� � �p�i����l�i�f�d�8�4�������y�s�������`�\�����v�p�n�l�Q�M�+�,�\�[���� �`�`�D�C���f�h���l�k���k�h���wt&�'� � �2�6� � �T�S���F�C�`�\�(�&�`�]�"��5�8�K�I�:�6�S�U�p�p�`�^�:�:�0�.�^�\�X�V�������0�2��� �� � �+�)��|�9�6�o�l�@�A�����`�X�`�]�K�F�X�S�P�L�:�8�z�v��y����������DF#�$�0�,�&�"�|�z�4�0����&�&���jo,�-�!� �L�M�(�(���2�0���9�8�s�v�P�P�����M�O�������|�z�� �������� � �����<�6�W�V�rl ��������(�$�������&�"�O�K���0�.�sq^�X�� ����� � �����||`�a�� �M�O��� � �+�+�ag`dSQ ````7�:�K�L�0�2� � �����K�M�� � ��S�T���v�x���X�\�L�O�h�i���0�0�&�)�� �<�@�4�5���}DCIMsw8�8� � �������� �� � �Y�X�/�3�8�9���\�]���Y�V�oq|0�.�������c�]���0�)�$�������� � �ebL�L�����"�$�����������h�f�� �X�[�&�)���HMGH,/]ZAC*,9=io ��"�$�3�4�8�:���)�,� � �� ���FHPUT[KPptyzpqWZ78,,wx~~swpp|}��2�6�c�f�����wy��������qy$XZ<A]ebj7<7: ,0).*.~��)�,�<�9�6�9�S�W�C�C�%�$�������ru����,�-���`aghop}RSyw><z|����5�8�����[]gews8�,�H�F�G�D����� ����sqml@@����(�)�W�R������������``qy � � � ���q�s���0�.���:�:�����8�:�Y�W�(�(�P�N�"� � � �������B�D�?�<�d�f�,�-�?�=�&�&�v�v���������^�^�|�|�!�"�#�#�?�A��� � � ����<�6�'�!�B�<����� �l�e�J�D�#�$�2�4�&�(�4�,�~|0�-������Y�X�#��?�8�?�<���W�X�b�^���m�m�@�>�y�z�����������[�Y�@�@�$�)�� ���h�h�O�P��}�����\�[�(�)�����;�:�O�L�|�|������������� ��]�\�?�:�T�V�&�#�d�e�0�0�r�t���|�x�S�R�V�R�8�5�������utzx � �\�X�3�-�3�3�s�s�8�;�X�]�D�@�(�&�� �]�c�S�V�^�^���\�b�h�l�#�#� � �0�,�I�I�z�x�X�Y��y���J�J�'�#�����:�9�@�?�p�o�W�W���B�B�d�f�|�v�x�v���s�r�l�l�|�|��z�f�a�Q�M�S�O���F�D�v�s�,�/���������s�p����� ��e�b�<�<�L�I�K�I�p�k�Y�V�<�:���G�H�H�L���u�s�S�S�x�x�H�H����� �#�a�`�:�8�D�B���c�c�k�l�X�V�d�d�i�k�U�V���B�D�� ���������)�(�*�(���9�0�l�l�4�5� � � � �8�6�dd ������������,�.�H�H� � �T�V�h�l�Y�V�0�.�(�$�����3�1�������������f�d�g�f����|�-�,�Y�\���d�a���(�)����� ��Q�S���G�G�8�<�����s�s�i�i�O�Q��#� ��PS������I�M�����������f�j�0�4�S�T�0�0�}{$�(� � ���2�.�)�&�$�$���)�(�<�:�I�I�8�6�|�y�H�F�C�@�3�0���,�(�p�l�8�4����� ����\[H�E���DGHK"� �$�#���l�f���I�K���G�I�������~��&� �*�(���dgxy&�,�mmW[vzst|/�0���?�E�+�,�������l�l�.�0�quwzxz77((XXOKpsXU9=ad$� � � �i�f�|�v�����J�O�?�>�[`xy~qtZUrr~rqUWtqdgM�Q�Y�Y���\�[� � �E�C�����|��������\bSX]a@D[`qw*�0������+�+�qpegad|{ � �3�0�� � � �|}�� ��5�2���������#�(�)�+������ � �8�8� � �����<�=�V�W�k�m��� � � � ���H�H� ��$�!� �� ��#����}SU JMWTtvUU8:,*le��?�<�i�h�*�+�L�O�����x�t��|�T�R�$� �i�h�^�[�|�z� � �-�,�<�8���omC>b`��� �2�1������� � �$� �^�Y�&�#� � �>@#� �PXD�D�&�&�S�S�f�f�6�8���0�3���$�#���|�|�?�?�0�/��!�6�0�F�C�����P�O�k�h���y�|�@�D�����G�G����O�P�2�3�,�(��������G�I�0�3�&�)�`�d�*�(���C�@� ��6�6���4�0�pq>C� � �� � � � �D�C�2�4� �#���3�5�B�<���:�5� ������������~�|�n�h�[�U�V�P���`�`���� ���J�I�k�l�<�8�9�4�O�D�U�S�:�=�������a�^� ����wt`a,�+�&�$� ��(�(�(�#�K�I�s�t���*�(�T�R�E�E�`�\�(�$�V�S� � �w�w���G�G�����B�B�,�&�� �%� �������D�C�����%�&�3�2�l�l�<�<�|�|�c�a�y�x���*�,���K�H�3�4���0�4�4�6���������`�^�����&�#�������5�5���C�@���4�3�;�8�(�&�����������C�@�7�6���9�7�c�b� � ����� � �����<�9�o�l��� ��(�#� � ����/�/�@�@���=�?�U�T� � � ��*�&�����&�,�/�0�-�+���4�0�\�^�f�d�S�P�O�L�z�x�p�o�8�3�z�z���&�%�:�8���1�3�1�0�|�|���=�@�s�u�"�(��������@�H�z��#�$�W�W�m�r�Y�^�u�x���M�P�Q�S�6�<�B�D�l�n�r�t�v�z�T�V�s�r�� ���jlebO�O�~po\^����B�@�J�K�<�=�5�3�4�5���0�0�:�<�*�0�I�K���"�"�T�T�z�v�F�D�+�0�8�6�C�C���+�,�� �����||xWT[XddI�D� � �3�0��� ����3�2������������V�T�0�0�%�#���V�T�*�&� ��$�&�@�B�<�;���<�=�������xz �� �"�(�(���P�L� � �0�,�C�B�:�:�5�2�Q�R�!�#���&�)�"�&������� ����tz �#��� � ��� ����c�c���:�:�������� �2�3�#�(�7�4�01,�+�0�2�3�4����� ��� � �.�,���)�&�� �f�c�!�!�3�2���,-ijz|0�+�G�H�4�0���@�?�:�:�F�E�$� � � ���UW$(<8#� � �� �"���I�D�6�3���d�`���(�(� � �� ���&�+��������� �#���~y|rw 9<X] "'FGHMmt� ������H�G���^�`���������������0�4���������8�6�S�S��� � � �!�?�<�i�h�����,�,����� � �(�(�_�`�D�?�h�f��~�K�K��}�V�V� � �@�C���� �c�c� � �`] � ������3�(�0�)���3�/�z�u�����c�c�0�+��������������(�"�X�T�Y�X�B�<�!� �D�>���;�6�<�8��� ������-�)�k�h�h�c�?�8�)�(�������Y�Y�H�D�(�&�H�E�U�O�K�I�Q�J�o�l�,�(�O�L�J�D�,�&�+�!�O�I�f�^�|�x�h�`��|�Q�I�"� �@�<�h�c�D�@�J�D�|�v�����@�=��� ��xw ����������5�5�+�)�,�,���L�J�?�<�&�*�I�I�0�3�����(�,�#�$� �!���(�(�)�,�5�6� �#�@�A���C�D���W�T�x�t�h�f�������v�s���3�6�4�6�����^�]�����,�(��������� �� � ��� � ���3�4���*�0�(�-��� �����0�0�����H�P�W�V���w�y�|�x�����h�h�T�Q�6�6���h�a�&�$�Y�\�'�$�c�e�:�=� � �D�L�z�z�I�H�����D�B�<�<�%�"�C�B�l�l����� � �)�(������������ �MM>=~}|st)�$���,�,�����M�J�����3�4���)�)�)�,� � � � �u�t���M�I�T�T�`�^�C�B���X�X� � ���� ���(�,�R�U���������3�5�(�,���� ���0�4�.�0�)�)�o�t�h�k�\�\�H�K�C�J�'�,���optu.0����;�<�I�I� ��KQ���������L�J�M�M�D�C�O�L�j�f��|���������C�@�l�l�n�o�����������C�D�� �@�B� � �(�)�lrRWTW\`|C�B�$�$� ���������� ��5�2� � �#� �?�<�p�n�0�,���C�<���� � ���||{ppwt|PUopggzzee����0�1�D�C�2�2�C�B�x�x�����,�,�L�G�`�`������� � ����\�c�8�9�\�]�:�<���*�)�#�#�DJtx��&�&����0�0���������rwdgJKXZ4<nqOTx|~rwgj@�B�`�^���� � �����~��� � ��c�`�Q�P���� �|TX�� ��%�#���V�P�0�,�%�&���z�|�V�O�����X�V�<�8�gh.�0������!�F�L�����=�@�X�\�.�0�����(�)���������zgq����[�]���Q�Q�*�'�i�h�T�S���\�Z�������������`�a�f�i������mvip\`JR�������� � ����� �������������D�C���Y�]���5�4�c�b�&�&�,�+�V�V�H�G�I�L�������,0IILO������l�n�L�L�=�<�3�5�3�4�� �*1WTlhmo<�<���=<TYz}�� � ���� �J�H��� � �����7�6�m�o�����������������������5�4�B�F�,�-�8�<�3�4���6�6�C�E���8�:��� � ���(�(�O�Q�p�q���F�E�2�3�Y�Y�0�.�����d�a�z�x�]]z}����o�l�S�V���x�u�����v�r�P�I�8�7�c�c�\�\�l�h�`�]�`�[�`�\�=�?�8�3�(�&�<�<�m�i�V�T������������$�%�8�8�[�\�Q�O������,�,���I�G���t�t�`�`�G�K�C�D���$�#���0�0�<�<�ux������?�<������������ �������#�#�� �c�`�l�g�r�p���T�P�M�K�S�S���B�?�(�)�f�f��x�V�S���n�p�W�V�8�7�9�8�@�;�$� ���z�x����x�J�D�.�(�=�;�0*|y � ���U�Q�c�^���T�P�c�a�q�p�9�9�c�d���l�l����� � �:�6�I�B�8�8��� � �������[�Y�h�d�Y�Y�H�J�7�9�4�3���]�X�����sr~~&� �����$� �=�:�<�6�`�^�V�V�f�i�P�O�Q�Q�,�/�����tq<�9���/�3���T�V�q�r�:�7�f�c� � ��� � �����`](�$� ����B�D�� �e�i�S�O���P�R�<�8�?�:�����O�I�C�<�?�8���oopj>=/,��plPQTP((lg97@<gd�����B�<�M�L�����Z�Y�X�V�.�+� � �)�&� ��������6�6���8�9�x�x�B�B���:�<� � ���B�@��� � �=�<���5�3�6�3� � �����@�@�������`d $WX``EI,*04fh<<\]4624qpqp|{��"��������g�g�e�e�+�&�����)�,�G�F�0�2���#�!�,�)���2�0�xwde � ����,�(���0�-���p�k�|�y���p�n�<�<�W�T�*�-�!� �"�#�����;�;���(�(� � �c�c�������������ddPN#�#� � ���"�$�V�V���:�6���#�'�0�2�4�5�D�F�h�g�W�W����� � ���mt��#� ���|~� �� �W�T�P�T�� ���0�4�df����<�<�L�O�l�l�3�6�<�?�9�<�D�I�~����1�3���\�`�T�W�Q�T����������qulemq��@�?�.�2�\�Y�I�D�C�?� ��+�+�� � � �E�D�$� ���� �(�&� � �������&�#� ��!��������� � �)�$�Z�U���S�P�Q�J�[�V���������\�\�e�b�h�i�3�-�8�6�p�l�� �� � � �4�2�llyw��B�D���=�8�/�,�O�L�Q�K������� � ����������?�@���������J�K�������c�^����|���P�L�\�X�B�A�3�0�Y�V����� ��������wt����D�B� ��&�!� ����s�v�c�`�c�b�i�m�\�X���;�:�Q�N�����z�v�h�c�|�z����0�,�f�a�\�Y�D�F�4�4�3�0� �� � ���U�W���@�B�J�I�G�G� �#�u�s���V�T�:�8�I�I�c�`�W�X�0�,�6�3�-�,�<�;���0�2� � �vtbgjo``B�@�k�h�L�M�������4�3�p�n�2�.�G�J�k�i�[�Y�y�v��~�������������3�6�����PO��u�w�pq��� �:�8�P�Q�h�i���a�c�2�.������� � �����`�^�T�V� �&�<�<���\�Z�|w��@�@�\�\�R�S�D�C�����|44VU���$����$��� �� � ��lmDHPS`�`��� � ���� ���@�D�#�&�@�B���D�D�KH ��Y�]�6�5�u�u���P�Q����� � �ptz}����=�<�;�7�������.�,�<> � �����SVda~|gh\Z��)�&�6�4�D�?���i�i������"����ab� �����(�&�H�D�T�P�9�6���O�K���+�(�8�8� � � � �T�U�����vu|wb`om8:tppo � �������X�S�L�I� � ���������0�)�Y�T���,�*�L�E�`�`�+�+�@�<�|�z�C�@� ��I�G�*�'�7�4�"� �ZZ���KJtp,�,���stWP~#� �]�Y�0�+�&�%�l�j� ��2�3�B�B���"��]�Z��� ��<�7�K�I�?�=��������#� �K�H� � �� ���W�T��� �� � � � �������x�t��|�3�0�E�?�3�)�E�<���S�O�M�G��~�h�c�@�@���������P�Q�u�u�\�Y�/�0�i�i�4�5�S�Q�����V�W�����wy ��� �xyOT"$77JPG�E���z�z�����������D�D�+�(���(�%�t�r�4�2�������&�$�"��L�L�'�&�(�&�0�0�� � � �Q�S�7�5�����W�X�O�L�4�6���)�*�V�Y�s�u� � ���n�s�������x�x�k�i���4�6��� �"� � �"��� �a�Y�O�G���=�4�$� �%� ��� ����$"ee����l�n�)�)�s�p�G�G���M�J�� �g�f�c�e���������������.�0�����x�y�k�l�L�L�7�5���S�P� ��������wvEG����?�?�����=�<�I�G�����c�d���`�\�Y�[�\�]���Q�Q���l�h�Y�[�+�)���6�8���&�$�7�3�u�r�S�Q�:�8� � ���� �6�2�v�r�Q�K�6�3�1�0�<�:�����X�[�����y�|���`�d���-�1�%�$�p�p�������8�;�TX~}��^�Y��� � �������Y�S�`�^�?�?�r�n���:�8�)�*�4�0��"�L�I���� ��a�\�@�?�F�C���V�T�)�,���V�V�M�I�p�p�D�A�(�&���0�2���������ggQ�Q���?�>���2�/�^�\�m�k�\�\�s�o�� �$�%�����x�|�f�f�S�V�7�6� ��~mp ������0�0�D�@� �!�v�p���S�T�:�8�B�D�G�G���0�0�]�`�.�,������ � �A�:�H�F�f�c�,�,�x�u�\�]�L�L���� �U�U�(�&�dejjhiqq]`~��7�9�����<�8�6�4�:�:�(�(�p�m�f�f�����v�x�t�p�|�t�������s�t�~����3�3��� ��|y�b]ZU 42tp`^MM �� *,$'TW3�4���������?�<�`�_�x�t��~�������������������4�7� ��G�I���2�3�Z[&)WX$%=>PShl]\uxGFDH�� ��� �,�,���/�,�,�,�^�^�p�n�������xKMz|hl,�0���,�,����� ��oqX\[`qw ����Y�\�O�O�������C�H���!�#�djX]SUdgjm44abSX*�,�&�(������.�0�(�(�5�3���S�S����� �0�5�Y�Y�������0�2�ddlqsw=@{}-5hm{|US��N�L�#�$���h�f�@�D�l�i�������0�2�5�8���0�6�]�a�h�i���ce��xwt|��WZPSw{Q�T���L�O���P�O�K�L� ����:�=���6�2�h�f���uyh�f���x�z�:�8�G�E�_�`�[�]�^�d�����Y�[�`�c�JK� �� �t�s�K�H�y~14HK<@34<@14� �#�$�$�"�����������b�c�9�6�����@�@�Y�Y�� �]�Y�8�:�=�<�4�3�0�2�l�i�~��\�[�N�O�]�^���8�:�� �P�O�0�3�2�-���0�,�D�C�5�3���$� ��� � ���;�8�W�T�U�Y���0�.� ��:�;�$�&�T�X�� �#�(�M�O�c�^�,�,�"�!� ��������G�F�D�B����� ��I�H� � �]�^���-�2���(�&�(�,� � ���J�I�E�I� � �:�:� ��)�,���]�`�@�D�A�@�(�%�:�7�:�8�a�`�(�)�(�)�������l�h���]�]�I�L�S�T�^�]�@�D�F�G�,�,�yz:�5� ������� �(�&�����������x�y���� �|~bh=�?���B�C�O�M� � �:�7�I�I�� �6�5�?�<���������������0�2�����u�u�<�9���������G�I�Y�W�(�)�.�.���������6�6�7�5�+�+�{{����.�.�U�V�����c�f�z�|���m�i�x�p���`�\�0�0�n�n���D�C���P�T���\�\�&�(�������0�/���"� �5�8�<�:�@�C�r�q�<�?�@�E�$�$������� � �����.�.�����[�\���������G�H�<�=�`�`� � �,�(�M�D�p�j�����xqJG|y ��U�Q�B�B�0�+��������� ��P�P���a�c�V�[�2�6�B�E���+�*�� �����/�.�9�:� ��6�?���:�<�0�4�<�A�@�B�#�(� � �O�S�\�Y�K�P�l�t���h�h���T�Y���s�u�O�Q�,�-���*�(���]�[�U�X�����tt�jjvt����K�K������(�(�7�8�#�$� � ����� �� ���$�&�����H�I����� �#���)�(�yz������i�l�t�x���I�L���E�I�=�@� � �U�S� � ����87PTMPSUFGSW,2�� ��(�)�@�<�������,�,�L�L�<�@�8�6�"� �M�O�K�G� � �0�-�����4�4� � �|���*�.�f�f���hmTZBJll|$�#�>�<���y�x�l�k�l�h�P�K�'�#�\�]�;�<�L�L�����[�Y�UW|xz��� �v}[\lp3�4���2�6������ ��X]w{{GK"�(� �����!�?�@�Q�O���W�Z�����m�r�\�Y�@�C�z�v���n�k�����������?�@�ijSUpphltt����*�)��!�SW;<77;4<9^`NKUS]\ ge2�3�&�&���3�3���k�k�������������O�L�I�I�� �0�0�:�<������\�^�B�D������ �����h�i�c�f�Y�U�^�^�i�i�N�P� �!�:�9���!�"�?�<�!� �B�@�|~TXtx�� � ����� ������ � � �D�C�0�.���������D�?��|�����������c�`�S�U�p�p���"�"���7�3�OS\`+�(����� � ��� ��-�)�D�=�s�k�&�!����zx'% � �C�<�� � ��<�7���W�S���4�4� � �� �� � ��d�[�����IA������(�&�5�0�h�c� ��x�v�^�[�k�h�<�8�-�*�S�P���������f�f�l�i�c�`����� ��@�9�z�x�3�-�B�<���c�`���i�c�4�6�<�>�)�(��� �����D�@� �#�DA(� � �� ��)�%���I�E�5�6�"�!�6�6�u�t�I�K���������|�v���f�c�i�h��|�z�x�������S�P���8�6�� �~|0�0�&�#�6�4�D�?� ��p�l���v�v�.�.�`�`���|�{�V�V�`�`���C�C�=�<�I�J� ��Y�V�4�3�5�3�WW��Q�M�S�Q�.�*����>�:�������&� �`�V�C�@�D�D�l�i���a�]�G�H���\�\�I�H���0�+�T�V�|[X�����)�&�<�8���������3�0���&�%�p�j�x�v�f�h�i�k�T�T�L�O�u�x������� ��W�V�3�0�c�c���5�5���d�a�$�!� �� ��h�e�6�6�"� � � �6�8�0�3���G�G�@�C��������� � �\�]�,�'�������,�,�B�@� � ���\X(�#���:�7�s�t�*�.�Y�X���������� �����������4�0��� � ���&� �e�]�p�i���l�h�]�Y�)�(����� � � ��3�0�T�S���#�&���,�,����� ��0�-��� � �$�&�K�L�3�0��� � ���{}T\SUeg,*@>hg&�$�0�.� � �����@�?�a�\���z�z�����<�;���&�&������ �}|cchj`d||`[XWPM ��� �6�9�\�Y�}}gltx���TU������3�2� ��Q�Q�u�s�������5�6� � ��� � �8�8�I�O�R�Q�� ���������a�b�/�0��� ��tmTP�d`41~z~}ss~|��3�0�[�\�]�c�� �.�.�0�3��~�T�S�.�-�f�h�,�0���� �� ���su���"� �3�0�P�Q�U�U�_�`�Y�Y�#�#������ ��tx!�!���#�&�/�,�&�$� � �[]H�I�4�0� � ������ ���*�.�<�<�<�:���D�?�@�?�!�"���� �����3�4�� ���8�8� � �������@�C��������� �L�P���i�o�0�-��� ��V�Y�4�6�K�M�&�+��"�����TW:>JM��� �lm;�<�,�.�+�,�������=�<���+�'�`�^���o�k�r�p�������������T�S��� � �<�<�:�8�i�k�h�k�����������)�,�=�?�������?�>�wzrsAA/0xxWZy|��M�I�X�[�����J�L�8�9�0�0���h�k���������\�`���\�_�� ����,�.� ��2�3�� �tx(�)�9�8�V�V���FD����������W�X�i�h���@�<�f�c�f�c�\�]�T�S���s�u�O�P�� �� �G�L�V�V� ��0�2�z�|�2�7�8�?���4�3������!�<�?�����F�H�]�b���+�0����������!�����M�M���`�c����� � ������C�G�Q�Y�L�M�g�h�"� � ��*�-���B�?� ��H�G�I�I���E�H�+�+� � �3�,�����$�#��� � �������&�&�(�(�������=�C�����/�3�\�]���J�M�4�:�����l�o�����,�,���~������Y�T�P�K�Q�O���|�~�?�B�D�E�swpu\bswjl#�%�O�P�|�z�(�(�@�?�s�s� ��K�J� � �D�B�<�@���������tt68��#�$����� ������0�.�&�&�����+�(�5�5�8�6� � �^�]�m�l�I�D�<�9�<�<���������� ��V�V�y�u�3�3���M�P�(�#�2�0�0�0����3�3���6�5�"�(�����(�+�,�3���5�1� ��#�� ��$&ij-�1�?�=�����!�#���������"�3�6���I�I�c�e� ��Q�T�OPrs���on��?�B�� �K�O�D�H�#�)�:�<���h�h�G�D�H�G� � ������yzmp��2�2� � �� �����#����6�4�P�N���a�^�k�f�0�.�]app��� �1�0�(�&�&�(�����)�$�mm?Dggvwgd|{$�#�y�y�<�:�H�G�+�(�� �)�(�z��������opD�<���1�.�e�c�s�l�x�s�l�k�&�#���D�@�3�4�c�a�"�$�I�K�����moGJ~~QP������,�,���DF��� ��&�)�,�.��� �� � ����,�0�+�*�(�#�<�:�@�=�.�/�&�&���O�Q�+�,����� �!�����24||mj ����� ����<�?�� �0�2�\`lo{~]]14DG9:`b��j�f�O�O�I�H� � �,�+�i�a�Y�O�Y�S�\�[�P�M�8�3�i�f���4�2�+�+���$�"�G�C���L�L�:�:�j�m�L�I�D�E���!��D�@� ��$�#�(�(�Q�P���.�0�V�V���������=�B�����2�3���*�(�O�L�}�|�r�p�����6�2��� � �6�5�������0�0���<�<�������� �ijT�S���������T�Q�&�)���E�F�Q�P�p�p�V�V�O�M�+�,���6�8�D�B��� � �]]}|JKXZ���#� �%�%�<�8�4�5�� ��� � �W�Y�L�Q�i�l�S�S�P�P�����c�c�����*�&�G�J�P�O� ����� �p�p���L�M�G�L� � �����0�0�� � � �� �����M�N� � �,�0�d�h���,�,���� ���(�,�(�*�D�C�0�0�������jjkjC�?�0�,�^�Z�������������u�v�*�,�7�4�3�4�&�$�4�2���,�+�� ���k�l�z�|�d�f�����z�|�8�7��� � ���0�0� �"�+�*���<�?�6�8�V�Y�^�`�|��r�o�p�p�`�`�F�E�&�&������ � �������(�,�� �6�9�"�#�c�f�K�M�c�c�S�Q�XZ8<pq��8�6�G�G�h�d�S�P�h�l�[�]�h�e�����x�v�x�v�&�(�C�D�?�<� �#�S�V�� ���(�(�� �T�S�>�:�x�v�p�l�@�?�|~eeml8�6�9�:�`�`�� �����d�d� � ���������"��|�v�u�n��� ��|�|�������G�J�3�0�������:�;���GK4744loSQ20wt<;]aPPXW#��P�K�B�<���x�u�������&�#�����"� ���<�<�p�p�`�`�������[�^�^�`�2�4�=�:���f�f�e�`���c�c�������`]qsmlz{� �6�2�0�0��� ��~}(�#�M�F��y�x�v�����S�Q�0�4�.�0�����9�6�P�I�|�u���m�i�V�Q�T�O�J�C� �� ��#�$�@�=�!��]�\�v�r�i�d�B�<�����vxFJ\]G�E���S�Q�J�M�S�Y���ab$)a`||��lp>D��#�#�V�Y� � � ����H�L�l�l�Y�Y�L�L�2�3�%�"� ��"(gh � �����K�K�� �D�D���=�<�l�h�?�;�T�S�9<WTqp� � � ���v�x� � � ����,�2�� ���+�+�:�7�=�@�`�a�]�^���v�u���4�6�*�,����~x|H�H�(�(�D�C�.�-�F�F�3�6�� ���ei ������@D>A D@bg:�<��%���4�6�� ���d�c�R�U�Y�^�+�,�cj����� �� ����c�c�J�K���Y�\�C�D�Q�V�0�4�W�Y�v�z�,�0����� ����y{��������!� �[�\���I�H�\�`�`�a�i�m�Z�[�,�.�{�|�d�h�l�m�|��n�s���i�l�c�f�����0�.�+�(�B�<� � �0�0�;�8�����������&�(�@�@� � ���R�Q�8�6�)�$�,�4�� ����������SX<>olpp$$ ������ �"�I�L�<�;�K�K�8�=�I�K�0�3�a�a�3�7���~J�S�:�?���?�C�.�0�`�c��~�]�Y�]�`�f�f�0�0���(�+�0�,�v�u���}��\�X� ��MQ-�)�p�m�����C�@�G�D�=�:�.�,�;�8�|~��8�3�,�+���� �0�1�Q�S�m�i���~�y�������&�(�3�3�~c�^�����l�l� � ���qt�� ����0�,� � ��� � �I�J� � �c�f�3�4���S�P�Y�T�<�;�:�5�h�e�.�+������� ��H�D� ������D�D���"�#��� � �C�B�*�+��� � �������!��&�(�`�]�:�;����� ��W�V�F�D�(�)�~����n�l�X�W�H�L�l�i���$�&� ��(�&���,�0�}hi ����`�Z�;�8���� �4�3� ��� ����� � �� �������wx$�$�� �������*�)�@�@�$�&���"�&�0�2�B�C���P�K�<�@�G�H�����S�T��� � ��������ji��p�n�<�:�&�+�H�K���� �<�B�����a�d�'�(�=�?���V�T�[�`�9�<��"�DDDH#!<=FGbb����8�8�=�<�`�a���(�*���u�v�������`�`�8�:�!�#�'�&�)�*�$�$� � �lj����``wwGH$�&�b�f�i�l�n�n���n�s��~�����������=�9�T�P���ssDDdeX[� �6�4���� �mqb]��\�Z� � �@�@� � ���a�f�?�B���a�f�|�|�h�l�D�E���H�G���������� �xzgf|zW�Y�f�h�d�f�O�M�r�t�p�r��� �����(�'��� ��wzPW `]$"[Z|}���� � � � ���n�l�D�@�P�L�M�M�l�n�^�\�t�p� ��}|tsX�V�/�0�6�5�`�^������ �M�L�@�=���.�*�)�+�����m�h�����0�0�0�0�3�0�|~]_"$ijbg`a4�5�S�Q�V�Q�P�O�����������Q�J�G�A�?�9�����2�3��������� ��!�%� � �&�&�<�=��� ��M�Q� �!�9�6�l�m�DDQTX[ghKOyy),!� �������0�0�T�T�I�I�+�)� � ���I�J� � �����������m�i���r�o�����p�o���a�c�p�p�7�7���a�a�?�C�x�|�L�L� � �q�o�Q�P�����m�o���6�9���*�(������ ')  � � � �@�C�$�&�D�C�� �������3�0� � �\�\�d�h�����9�8���d�f�,�0�&�(� ����$�"�D�C���\�Z�����������"����������O�L�(�$���� � � �����*�)���[�Y�m�f�Q�P��{�;�<�z�z�6�3�����9�9� ��,�,��� �� � �(�&�,�/�z�v���@�?�&�$�4�0��~� � ���:�8�G�D�\�^�0�-�0�2�����h�i���������0�.�4�0�����&�#�+�(�&�(���G�G� � �����������f�h�E�D�0�3�W�Y� ��K�I�^�^�����p�n�m�n�5�6�e�d��|�^�`�z�|�`�`�v�x���+�,�~����0�3�"�"������ �*�'�#� �*�(�5�2������(�(�� ����4�6��� �#���;�<�������c�e�V�W�"�"��������Y�[�qt8�8������K�K�&�&�� �� � � � ��,�(�Y�Y���(*MQ~��7�9�������W�Q�����y�u���o�k���<�=�i�h���`�[�&�#�����L�K�L�I�O�L�(�(�����0�(���|�w�P�O�x�u�4�3� ��~WV78')jn/144~~9=jj�� � �|}i�i� ��8�9�+�&�-�,�;�6�r�k�c�_�L�L���C�@�tq������ �M�O�<�8���)�&�� ���"�!�U�P�X�Q��� �����������z�x�p�l� �� � ��� � � ��$�!�������?�7�����P�I�@�<�Q�G�B�8�]�W�� �^�Y����omXU���� � �����} 2/WU ��x�u�G�F�d�c���5�3���#�"�p�l�\�V�3�0�/�0�[]`]sp��jgmmtpJHYW`�Z�2�2���~�x���n�l�L�O�Q�M�&�&�V�Y�8�:�%�&� � �����������3�4�8�8�V�S�2�,�����#�"�c�^��|�X�U�L�K�#�#�����W�V���.�,���ZXgcwtyzmm�� ��yw~zTWlm����� � �t�u���,�,�"� �#�#� � �/�)���0�,�f�g�������@�?���"������3�0�8�6����&� �4�0�@�9���.�(�[�Y���^�\�d�^�T�Q�f�a� � �,�,����0�.������ �����������0�/�6�7���.�,�=�8�s�s�����s�t�x�t���A�@�d�h�X�\���� ���&�!��� ��F�B�j�g�&�$���#�&�4�4�c�`�����3�2�.�,�[�_���=�7�)�(�I�E�e�c�0�.�+�)���������������� �������(�*�@�@�d�`�<�8���E�H���X�\�w�x�x�z�z��=�@�4�3�������poeejhbctt KHZZonGDpq@�<�$�!�(�&�>�?�C�@�+�*�(�(�� �����������������|�|��|�J�F�L�M� ��<�=�������� � ��������@�?���9�:�c�`�r�o�"� �\�T�8�2�`�\�3�+� � �c�c�@�=�i�h�D�@�V�V�.�,��� � �<�:�����:�7��x�:�3�x�q����}�����l�k�^�Y�8�6���`bzmqel+�+�c�c�j�l�6�6�.�0����� ��<�9�5�6�9�8�L�L�8�8�6�7�@�@���M�P�Q�U�� ���0�2�.�.���P�P�O�O�3�8���y�|�����M�T�i�h�"�&�%�(�������E�E�,�+�|����&�)� � �V�Y�5�6�������������s�x�L�L�$�(�-�0���������������x�|�X�Y�H�H����� � ������� ��� �)�'�.�+��� ��|oqWYjkwxqmlmHJ��^�`�C�@�������z�r�m�i�s�m�#������ � � � �<�:�x�w�M�I��������^`~}��.�,�c�`�4�0�m�o�L�Q���$�(�6�5�C�B�0�0�P�P� ����������de-�%�)�&�U�P�#� �J�G�� ���7�3�(�&� � �5�3�e�d�$�$�~~!�$�G�C�$�#�T�S�l�k���Y�V�w�s����<�:���5�8�������:�@�� �#�%�"�$���$�#���"�&�������������� � �E�G�#�#�"�#����\�[�9�:�,�3�n�p�����k�i�d�a�!�&�;�=�L�M���f�i�<�C�u�|�X�\�-0gjy}L�J����Y�X�s�s� � � ��� �8�8�6�:�0�4�7�6��� � � � �RT��$�#��������KKOOOS � �f�f�j�k� ����,�2� �"�d�c�$�$�"�"�=�=�W�X�:�<�4�7���:�9�,�+�+�,�������c�f���L�L���J�I�f�d�Q�Q�����m�j�c�e���#����� �S�Q�8�2���(�$������@�:� ��P�L�������P�S���2�0���;�<�&�$���%�#�WUDG[_DCUVggl�l�����.�0�"�!��� � ���6�4�<�;� � ��������O�I�,�*�:�4�������~{���� ���"�#� �"�6�3�0�0�4�4�����^�Y���`�\�m�l�d�`��|������mt2�0�C�@�E�@�@�<��������+�(�p�p�W�V�h�i�,�+�xw~ � �8�6�9�@�L�O�����i�c�m�l�e�g�����(�'�,�,�����&�'�<�<�P�Q�B�C�������"�$�.�,�0�.���]`swQUeeZ\@@gfhg��(�#���c�`�<�=�� �F�C���������t�s�������v�v�E�G�`�^�|�y�,�(�i�h�����Y�\���jq.�0�#�%�����HH(�(�������4�4�����KNL�O�$�(���H�J�5�7�5�4�w�z�l�p�"�%����)�(�5�6���|�|�3�4�l�l�5�6���������������5�6���&�)�*�.�� � � ��������Q�Q� � ���=�:�=�<���L�L�G�H���(�*���?�<������ �� ���?�@���3�4�0�5�k�i�D�B���{y ��~8�8�������D�C�3�3�<�<�D�D�8�5���+�,�7�:���B�D�0�0�����I�L���&�)���,�,�,�+��� ��&�$�3�3�d�d�V�T�a�^�3�0�� �ge~58y�v�A@3�0���:�:�D�C�����r�s�H�G���n�l�:�=�!�$����34wyKL��~~<@||:�;�(�+�2�0��|�s�q�.�0�Q�S�2�3�����x�u�U�V���3�3�$�#���D�E�L�P�0�0�(�)� ��h�f������� � � ����$�(���� � � ���*�,�~9@9< ��������������X�Y�G�@�����D�G�&�&�H�F�G�I�$�%�I�J�@�B���s�w�P�M�\�[���� �CF����@�@���IHOS��MPSTpm����$�$�@�<�C�C��� � ���(�$�C�?�c�^�G�@� ������k�h���`�]���)�+�p�n�Q�L�0�,�2�0�6�0�=�;�����&�&�x�x���T�T�<�:� � �� �.�,�����1447`_``wvTUPSpp)�(���"�#�����@�?���� � ���� ����(�$���8�9���p�p���x�u�X�V���N�P�n�p�|�|���*�*�U�S���p�p�0�3�8�:���AD����]`~}jlmp�����c�a���Y�V�:�8�$�#�J�M�&�+�� �� �z|����������:�6�D�C������r�p�l�k�T�X���������d�c���\�`�Z]��0�3���wv|| � � � �@�@���G�B�@�B�|�|�(�(�C�@�@�;�&�"�a�^���D�D�?�<�����~��:�8�8�8�)�(�4�3�:�8�B�D�8�4�(�$��� ��<�9�� �D�F�O�O�M�L���@�F�����y�|�|�|����|�j�k���M�P�Q�T�F�H�@A��JP '$::-*GH@�=�e�e�<�@���������|�|�4�3�|�~�p�m���s�p�`�c���r�u�I�H�U�X�z|"� �4�7���di4�3�Q�Q�F�G�I�G�s�r� � �����&�%���(�+�@�C�l�m���������lkgd��F�J���S�U�T�U�B�B�@�B�<�<�� �,�1�D�G�L�L�7�:�P�O� ������������0�,�a�_���4�0���`�^�.�+�r�p�a�`�����Y�Y�)�&���@�@���������-�&�x�u�����P�O� ����mo~ie||mp`azw@<*�(��������`�\����������|�,�,�`�[�G�G���2�1���,�,�6�3� �"�]�[� � ���.�,�]`������ � ������ ���,�)���y�x�,�.�)�*�(�$�PQDG^]|~ps<�9�,�,� � �!�$�<�?�X�W�G�H�.�3�f�f�4�6�������D�F�S�S�������l�l�&�$�����5:5�5�����p�o�\�Y�F�E�\�U� ��i�h�D�@�8�6�����6�2�����:�8�S�U� � �������op� �dg\`utqom�p� � �#�&�� �e�e�B�@�S�S�0�,���/�-�$�#�W�U�,�,���/�*���G�I���GG������p�p������� � ���#�"�f�c�V�V�� ��� � �&�(�+�+�5�4���������C�G�f�f�@�<�$�$�8�8� � �@�@�3�5���}~����6�3� � �u�v�v�w�s�s�-�,�'�%��� ��.�,���������(�&�9�8�D�@�8�2� �������O�K���mjWX]XTN}DE9<Z]�� � ���� ��)�.�R�P�)�(���$� �W�Y�������6�7�0�0��~���M�K�� �.�-��������u�p���F�D���� �I�G�Y�\�w�z�|�y�;�?�Y�a�]�a�c�d�� �0�.�9�9�<�=������������y{mlmt"�&�� ������ �"�� �?�=�=�@�r�p���L�I�c�c���s�r�������i�m�%�)���� �����Q�Q�!� �G�D�C�D�,�*���/�.���2�6�jmjj}������ � �����2�4�b�c�z�|�W�W���U�S���,�(�R�P�������p�p���V�V� ����}eh����O�O�O�O�Y�Y���J�D���=�<�������hjywTZH�D���J�F���a�d�I�L�C�C�z�|�Q�S�7�7�L�L�����!�#�� �,�-�"�#�^�`�O�P�6�<�$�'�� �Z\��� ���[�`�����k�n�c�f�D�H���S�U�3�3�����?�<�������)�0�w|���� ���U�T�/�0�9�;�B�D���� � � ���8�6���L�P�P�Q���^�a���D�?�f�d�T�P�4�3�����dg~ � ���llbg��D�D�D�D�D�E�\�\����� ����7�8�.�.�@D����6�;�l�q�O�S�S�\�n�r�����<�@�0�8������� ����� ��S�U�]�^���I�M����"����tzjlCH5�6� ��,�-�\�Y�0�3�jg � ���7�:�i�f�m�o�h�h�H�J�����8�:� �"� �����������"���� � � �I�H�0�2�I�L�#�(���������`�a�P�T�/�0�����K�Q�MMwxB�C��|�8�9�E�D���"��P�L�O�J�#� �M�H�������l�i������� � �mmlm"'WW]`@C}^�\�C�E�����|�|�<�?�P�O�� ���u�x�`�a�@�?���c�`�dd^�\�C�D�@�@�L�K�u�u�c�`�(�$�h�h�r�p�������|�x�����0�0�O�P��#�TW$,]`� �C�C�p�p�����O�Q���5�8�^�`�l�n�:�?�.�2�����3�4���Q�Q�a�c�G�B���e�c�v�t�� �����jgspqqww��(�+�������&�%�����(�+�m�r�������������������'�(�Q�O�bf3�5�8�9�-�0�X�W� ��G�K� ��+�,�P�S�#�#�0�2�]`� ���������ps����JL99DMV�[�h�j�b�b�B�B�k�d�y�t�����Z�\���$� � � �e�e�(�$���W�X� ��H�G�&�$���3�4�+�(�+�.�L�N���k�f�f�d�p�p�S�T�]�`�y�z�3�3�5�0� � �*�*�I�J���6�2�;�8�Q�M�B�?���st|}lpFGty;�=�������&�,���L�M�0�0�[�Y� ��B�?���3�0� �!�;�:�����.�*���S�M�'�$�V�U�E�C���������2�0� � �T�P���8�8�Q�Q�@�C�K�L���4�<� �#�TXZZ`b���������t�v�������p�r�O�M� ����$�$�������z�z�O�M�-�*���+�(������ ���� � �� �C�D�]�\�I�J�@�E�Y�\����� �#�����#� �L�J�� �2�6���� �� �������&�&�����>�<�|�w�@�?�����3�2����� � ��������� � �� �8�3���h�f�X�X�&�!�<�:���$�%�f�`�,�&�~�x����|�z�x���I�H�N�L�"���I�?���k�e�+�&���#�"���]�T�x�t�P�M�{�u���|�x��|�f�a�� �(�&����� � �;�:���(�+�\�\�����"(:9FGp�l�&�$�����^�V�����Y�U�?�5�e�^�*�&��� ��0�,�jeZ\gf0�0�� ���P�Q�&�&�,�,�������������`�`���U�Z�@�?�a�c�0�.�,�(�Q�P�7�7�S�T�3�3���)�&�i�h�j�f�z�x�{�y�|�z�S�Q�<�:���*�(�$�#�r�l�%�#� � �ss\_HMpq||psH�G�)�&�z�|���|z||||���� �����������f�h�M�P���v�x�X�Z�6�8�B�C������ ���m�o�5�:�Q�Q�P�O���C�D�L�P�����il_b~$$.�,�]�]� � ���������Y�V�^�[�������B�D���(�$�mj��S�M���J�E�P�J���+�$����0�)� ����(�$���M�K�]�\���H�D���(�#�� �S�P�n�k�C�B�D�D�V�U�������?�<���qtDDMOx{|xmowz9�:���������������������pt����.�.���"�!�\�]�[�\���F�H���.�,� � �k�l�C�C�Y�[�S�T�5�5���Q�J���|�t�B�B�c�`�&�!�@�<������� ����zytqigjh ��C�@�G�D��� � �utCCw{mj|}pq � �@�D�S�S�V�S�5�8�Q�S�$�%�B�A�4�3���J�J�=�?���#�#���k�l� � �� ���� � � �C�?�\�\�h�j�N�P� � �����M�N�������������O�N�������&�(���F�H�J�K�l�f�V�S��������(�(�D�D�i�h�|�|�$�"�su?�@�(�(�c�a�0�0�8�8�c�a���������@�?�Y�W� � �����<�<�\�\�+�,�=�@�� �� �8@vy?D7<DFot��#�'�����+�,�����h�i�^�a�B�D������&�+�� ������V�V�z�z�^�^�h�i���G�G���C�?�i�f�C�B�7�6���<�@���f�e���$�$�=�B�/�0��� � ���,�.�*�,������|OQ~$�'�6�8� � ���,�2�m�m���0�2�l�m�f�i����� � ����� ��"�#���@�D� � �(�+�������� �"�������ijyy"� � � ���c�`�� �������&�"�zy��,�,�L�Q�0�3� ��\�[� ��� ���D�C�C�<�����]�Y��x�f�c�M�I�`�Z� � �����&� �"��@�<���n�m���k�h�8�8� �������~1,($`[o�h�������J�D�p�l��x�5�/�Q�K�ljxz|{ � ���=�A�����������>�>�*�+�J�I�J�H��}�������l�m���P�S�U�V�8�:�\�_�S�U� � � � �� � � �� �����9�8�&�&����6�2���������(�#�7�:�`b?�@�0�0�����i�h���<�<�5�5�#�$�f�e���M�O�v�u�I�G��|�c�^�]�\� � � � � � ����� � ����&�)�-�,� ������ ������� ���(�(�^�^�c�c���u�t���h�i������ ���8�<� ��v�u������}�'�%���,�,�+�,�G�L���,�,���<>TTPP[[vx� �?�:�s�l���^�[���0�2� ��0�4�F�G�I�G�$� ���� �����L�L�����W[vzll��������)�(�l�i�a�^�$�#�<�8���4�3�E�G�d�c�s�r�m�l�c�d���a�f�4�9��� � �#�$�&�(� ��,�,�V�W�,�2���0�8���1�3���?�:�m�n�t�t�G�G���O�P�z{jm--vt������*�(� �#�k�k���[�]�x�z���������?�D�4�2� �� � �X]#�(�<�:�f�a�;�2�h�c�a�a�\�Y�Q�O�W�X�E�D�a�\�<�8�c�`���������`�^�toml~|HHd`,(8422KLz&�$�-�+���Q�P�G�D�����������������|�z�s�p�-�+�\�\�Y�Y�<�9�S�O�6�1���zw������L�L�eg74$�!���� ����h�k�,�(� � � ������"� ���pq��������������H�B�Q�M����u�m�z�u�+�&�:�3���*�!�@�8�3�#�3�#�#��)� ������%����� �8�+���� �#��,�"�v�k�h�Y�T�L�\�T���J�D�$� �<�5�f�]�V�Q������$� �&�&��������������� ���0�(���:�6�)�$�l�c�� �����0�+���@�=�UStqvt���X�S�����������,�-�I�I�������������[�W�*�(�����tt��1�0���@�@� � �$�"�#�$�(�)�O�Q����+�(��� � � � �C�C���0�-�3�6�C�D�H�D�f�c�e�`�y�u���]�`�,�,�Q�S�!� �l�l���z�|�z�|�#�&�<�<�����ott}��$�)� �"�p�t�J�L�H�J�B�E�������;<����*�,�#� ������ �$�#�������I�J�K�L�<�;���m�r�p�u�� �=�B�$�$���T�W�f�l���O�S�x�y�vq&�$��� ���� � �,�2�Y�^�I�K�9�=�z�~�8�8�3�5� � �eewt``� �E�E�F�H�8�:�2�2�,�,�F�G�������?�;���*�&�l�i���� ���'�*���&�&��!���� �;�?�|�|�s�r�<�?�j�h�h�h�`�a�z��M�L� � �������(�*�9�@�`�c�p�x�H�K�s�u�"�(������'�)�#�(�X]D�H�,�0�$�(�D�D�X�Y�]�\�J�M�� � � ����:�:�d�c��� � � � ��!�� �P�P�pvY\WZ=Btv,1��y|����"�W�X�����G�H���%�(������^�^�$� ���� ���k�l�����6�8���#�'������ ��� � �(�(���3�,�D�C�p�p� � ��� � ������*�)�>�:�K�F�M�M�9�8�.�,�Q�N�(�#������ �� �(�)����$�'�T�V�+�-�.�0���H�I�O�Q�<�;�+�&�O�Q�&�&����� � �"�(������ �=�@���4�0�h�f�8�8�`�\�������������C�F� � ���M�P�v�z�gjghot`]��,�,�4�6�����x�x�� ����8�.�D�@�p�k�h�g��|�p�l�I�H�u�u�i�h�S�S���9�:�V�U�� �K�L�3�4���%�(�:�?�����l�h�v�x�z�t���)�&�����n�g���,�+�$� �O�K�&�!������c�`�&�$�,�)�5�6�B�@������� ������Y�V�+�,�v�t�j�h���4�4�~�|�h�h��y�^�\�D�@�c�c�M�K�%�� ��6�0����������&�(�����7�4�"� �r�p�������H�I�S�S��� � �g�f���k�h�s�p�(�$���:�<��}�2�0�3�0�m�k�W�S�i�f�Y�X�;�9���� �~t87~~� ���/�(���E�@�a�Y�Y�Q�a�^�Q�T�9�:� ����� ������I�K�=�?�H�L�p�r���i�l���c�f���l�k���j�l�Q�Q�������x�u�|�x�-�-�������,�(�\�Y�� ���JLqmlo������2�0�/�.�$�"�2�2�4�0�`�c�O�P�S�R�D�D���@�<�Y�W���^�]����� ��'����������$�"�����!��k�g���Y�Y�P�S�i�p�R�U�L�L�����S�T���B�C�W�W��~�0�0�����Z_JP��wtZ]��0�,���$�#�`�\�:�8�W�V�G�G�<�:��� � �(�&�G�G�,�,�\�[� ��f�a� �����&�#�E�E�6�3�<�<�6�6�?�?���l�k�L�L� � ���?�@�L�J�B�B�:�8�B�C���^�a�,�&�S�K�,�,�'�&�f�f�;�<� ��T�T� de\]a`zydj����S�U�S�U�u�y���,�.�<�<�+�)�(�&�c�a���0�3���$�&�������� � �����(*ssl�k�����T�U�p�p���@�C�`�`�?�?� � �c�c��������%� � ��� ��p�o���O�L�p�l�m�m���������&�%�3�4�4�0�\�U�x�u�Y�X�(�+� � �L�J�V�Q�@�;���0�)�Y�X� ����=�<� ��~}XXPSHO`aty~}88TU ��,�+��� �� ��87����<�8����� ��J�I�S�Q� � �5�3�������,�+� ����� ������������ � �����3�4�0�0� � �1�0�)�%�l�k�h�e�D�D� � �D�D�������v{{ycddelp"% "CF%*XX�&�0�0�#�%�(�0�x�x�(�)�����8�9���V�]�QS4<MOqv{~w{x| � ������������"�$�&�(�;�:�9�:�(�)�tuG�I��!� ����0�1�?�<� ��0�5�TTab~TT|8:>@;�?�V�\�*�0�n�u�� �8�=���Q�V�&�*�>�@�0�5���c�d�3�4�P�P�y|,�.�@�C�o�m���� �O�M� � �� �`�c�t�u�0�3�'�,�8�;�cd ��F�D�"�#�vxfjwy������,�(�� �� �lrzqv��)�,�s�u���S�S�� �S�V�.�2�n�l���S�U�:�:�f�h�����?�D�@�D� � �+�+�*�+�&�*�-�4�)�0�r�v�(�2�� ���6�7��"�0�2�#�&������������8�9�v�y�L�S���Q�V���Z�Y�Q�P�X�V�3�6�?�=���?�?�2�0� � ��� � �K�O�P�Q���Z�Y�,�,�?�@�\�[�����v�l�,�$�0�/������1�.���}�|�`�`�X�T������� ���<�8�^�Z�S�P�z�y���%�)�� �D�D�4�6�z�z�8�8�U�S�������,�,�@�B�f�h�L�H�I�I���L�H�I�F�Q�S�a�\�"�!���Y�V������ �!"� �������������J�H���\�a����|�����4�4�B�B�L�I�����C�D���I�G�,�(�-�(���2�2�c�a�����J�J�,,����t�u���I�G�%�!�0�)�E�@�k�h�T�O��� ��<�@�K�L�&�#�O�Q�Q�O���C�C�|�~�����f�f�������Y�Y�P�N�l�h� � �(�&���H�H����� ��C�?���g_����`�\��x�x�u���������k�`����L�C����|���J�D���llfcFD][AD`XKKjl\[wy(�$�D�B�Q�M� � �KH� ���)�$�h�`�(�&�<�:�I�G�����4�4�T�T������+�*�,�)�M�L�8�9�3�2�Q�O�/�.�P�Q���)�&�0�0�M�G�,�(�4�0�2�,�tplgTWCDtw��#�#�f�h�����B�B�|�z�L�L�"�$���M�K�x�t�L�J�\�\�����4�3�a�a�#� ���(�#���d`;@PPOS� � � � �#�C�@�Q�P�"�#�0�.�U�S�(�&���P�Q�����<�<���\�Y���#� �"����(� ���$�"� �� � �db���� �������� ���E�@�t�p�i�i�T�S� � ��y����������|� � �eg==~yx57iky|zyhl{|dd~~~����<99:pmvt� �+�(������� ��mm��C�C�p�n��~���.�3�(�,�� �C�E�SSjotyGLhpDF����(�)�0�/�� �m�o�� �JP<>,.nm����`d����� �e�e�]�]�����I�M�C�B������������mlgg``egig�� �!�{}~��S�P�v�v�|�}�f�d�P�L��� ������6�5�V�V���`�_�U�V�e�f�p�p�I�K�l�l����JK����T�V���l�i���`�\���O�L�� �M�L���.�0��|�d�c�|�|�������5�0� ��>�?�,�,�@�@���K�O�?�D�S�V�ls{~������)�+� � �M�J�9�6�����h�i�����l�p�����7�5�`�a�@�@�M�L�:�<�^�`�"�#�5�3�=�@�f�k�Q�Q�\�]�8�=�u�x�xzmtlo���W�T����z�����@�:�(�'�(�)�C�@�?�?�$�!�p�s�^�a�0�1�0�2�\�[�c�f�h�i���D�G���:�9���������K�F�7�3�<�:����)�*�8�6�<�8�!��]�Y�M�L�p�m�l�h�z�v�����Y�S�c�]�8�4�t�q�V�U��z���n�m�����~|SKD>44KGD�C���J�E�*�&�*�(�$� �V�P���u�r�����t�p�~�z���D�B�������(�(�0�0�@�<��|�1�/� � �@�;�O�O�������F�?�� �6�5�L�G�D�@���������c�`�o�l���d�a�`�]�c�`�v�u�T�Q� � �*�)���.�.� � ���>�:���|�x���Q�R�L�K���D�B�#�"�� �-�(���,�+�,�*�����3�-���||RW;>wv]]O�K�9�8������ �*�&�f�f�P�O�D�D�|�z�������i�k�r�u�-�.�3�2�����\�^�e�e�r�p��� ��&�)�����:�<���/�2����wvjlwv`�Y�������*�*�?�<�,�*���?�?�L�N�]�Y�z�u�h�f�����S�R�]�^�X�V����� ������#�(���6�8�j�m�$�&�V�V�=�<�)�+�u�x�*�0���� �����.�.����qtjj����mseh)�.�� �1�3��������,�0� � ���V�Q�y�x�~��6�:� �!���D�D���������+�-�����������h�k���v�v���ddtv��<�8���� ���*�,���������]_``ljjj����P�Q�3�0���Q�L�Y�S�����,�)�f�c���]_ ddDDmqSW"� �u�r�K�L�%�%�����S�Q��� � �� ���zy[]��B�@���B�@�TUMP||����������Y�U�u�m�����������KJQTPRvwxw ��>�:�;�4�S�L�L�I�����M�L�b]6�2�n�k� � �))��0�0�f�e�����Q�S�T�V�&�)�#� ���p�p�D�C�T�T�V�X�D�E�x�|�O�O�\�\�<�:�|�}�O�K�����0�.���3�4�tq;<|{��� �K�H���:�:�������w�u�S�Q�F�D�O�P�(�%�I�L�|�� �"���p�p�0�3�6�<�#�)�� �gjlr8<~PSGH!K�J�Q�T�x�z�u�t�z�y���S�Q���y�z�r�s���������m�r���J�O�%�&�(�)�h�l�^�f�3�5�i�i�x�|�Q�V�H�M�c�h�:�B�@�D������ ��%�(�:�=�O�P����G�H���C�@�|�|�O�Q���m�p�=�@�\�^�|�|�<�<�O�O�,�-� ��[�a� ������|wtll29`b;@89����&�$���&�&�������� ���������5�6�I�G�|�~�R�Q���o�m�u�r�B�<�#�$�k�i�.�.���$�#�"�#�(�+�� ���x�|���������k�l�R�O�,�(���&�"���M�K�<�=�G�I�Y�^�T�Y�c�e����"���6�9���0�0�O�O���l�o�v�x���G�G��������� �� ��llpm}QS$�$�&�&� ��RW ��G�G�\�c� �!�6�:�����Q�Q�c�c�v�t�n�p�s�s�����r�p���@�@�<�<�����4�5�E�F�������6�5�+�.�&�&�6�8���J�M��������U�V������� ����G�I�z�z�u�x� � ���������1�3�s�s�#�!�]�\�|�|�H�D�^�\�����x�s���������6�8�3�0�c�`�:�:���^�`�Q�Q�:�=�$�(�(�+�0�.�������� ���5�6������&�&�� ���������7�3�H�F�����M�M���eeWZgk0�0� � �4�2�f�c�=�9�r�r�V�W�f�f�^�[�S�O� ����S�O�������pt9�8�P�O�������H�G�k�l���������mn��#$ |z~i�h�����3�3� ��8�7���$�$�|~����� ���0�*�����\�^�.�.�$�&�p�p�C�D�p�p�6�7�?�:���(�)���4�3���r�p���l�l���X�X�� ���(�*�,�+�������&�)������ �5�4�z}@�D���4�8���V�X�����=�>���� � �$�"��� � �� � ��5�2�I�F�Q�P�(�(���]`~}jj��<�:�|�x�a`~���������� �9�9� � �� � � �-�,�0�.�������d�h�/�0�0�4��������� �!���/�0���\�[��� � �0�.�`�`�L�G������ lp7<@D9�<�����GH42))���������TUTNz10LL UT��0�-�}JMlm7: **238<HH44GMpp,/de37,0 �MP"ea��us@7:. |s�ym rpa_tsWTFG������&�(�z~798?LMdgx{8=7<�pwS[w/6mvYdSWO�L�qm=6JH ^\TT��U�W�u�v���$jpUZ7<{~gk]bW\QS89st(/zzJGPSjjps OU#lmQPFGwx ��|�|�|�x����� :82,b\HFQL:4+'*& ZU43��  ��a�c���HJttlj����8�6���U�Q���hj,,37<@SW7=TW`]]`~|WW32omXUZWZ]��K�L���������]\qosp  )%����_�^�;�8���I�I�������V�S�`�^�����0�,�� � ������<<ro������������45QPIG����������������������������@9kflf�0-IG@> lh��������65 ������ �#�,�+�po UWWXlp&(?A'+=<HH-0TQ01 ),@=jjWSBD����+�*�����c�\�p�l�b�]�"� �����Y�T�<�8���// ��vw~:<LQ$(``holmge@Fz|SUWY\`!� �Q�L�����94��( ����`]��LG30ED`Y�|HG������*�.�� �0�0�tuddRP$">@HH `dY\w} 32 qqjc��:�:���������32pl f`IG���|�����z�u�����������E�F����� ��MN89vx|gg~yzdd@�@���p�m�����������p�i�NJ:�2� ��3�0�eeKJ 34" GDjgUUDC��6�2�F�H� �� � �qpSU9�3��� ������(�)�:�3�(�#�mo[^),WY�����$�#�G�C���G�I�� �!�!�)�#�\�Y�x�u�f�d��x�k�f�O�M�I�E���c�a�\�Y�����������~�~�v�v�C�D�Y�V�6�5�\�]�c�`�D�D�����xz��@GOPDF11@ADD0�+�Q�K����� �����$� �G�C���B�A�4�4�����5�3�[�\���zzgj{xABon9�:������������@�>�s�m�\�W���0�.�$�!�(�)�c�`�M�L�c�c�V�S�[�Y� � ���T�Q�Q�P�9�9���8�6� ��#�%�G�D�@�D�c�h�O�S�����,�&�^�[�l�k�X�X�,�0�hl@G !PP &&$( "LL �#�I�I�|�x�������������88.-DD��������������������|�|�K�P�c�d�h�e�:�8�������V�Y�)�$�8�8�����8�8�&�$�� �D�C�O�L�@�@�� ���!� �gi � �<�=�D�C�� �&�!�l�f�j�i�T�Q�8�7�$�#�?�C� ��b�c� ����3�3�c�f�f�h�K�O�>�>�L�K�v�y���������Y�W���T�S���pu�� � �V�V�)�&�� �8�7�&�(��� ���� ������ � ���(�)�;�:�L�K�#�&�#�$���� �C�D� � �����+�(�&�&�����,�(�@�C�8�5�,�+�����$�&�&�)���(�%�]�[�k�h�(�(�&�&�*�$�d�a���"� �so`]��� ������������6�6�+�&�2�0���c�`�|�|�������D�@�3�0��� � � � ��� �������� ��B�?�<�8�� �^�Y���]�V�H�F��� ����(�&�w�u�\�^�c�d�K�H���l�h�|�x�����|�|�s�r���l�j�)�#� � ��� � ���``00Z`7:qt`d|zPS|����[�X�0�3�pp<�:������"� ��}y� �&�#�#�#�������*�+���(�*�������4�2�S�S�G�G�$�&�8�8�z�|�l�h���L�I�}��\�`��� ��,�,�5�1���.�,�`�`�������dd)�(��������<�<���D�@�po6�8��� � �]�\�,�0� � � � �����L�O�f�h�jmb�e�v|,�,�O�O�V�U�T�S���L�G�� ���:�8�h�g�3�2�����jmqtqp 25 GGgdpj+�.���f�f�g�k���������V�V�:�<� �������/�-�e�h���(�'�~MNKH_ZGL8>RX��?�?�%�+�0�0�MS��&�$�R�P����� � �lldall:�8�����o�q�Q�T�i�k�M�M�H�K�.�.�V�V���m�o�0�,�k�i�6�7�,�*���C�?�ddz|zx�����C�@��� ��S�U�I�J������� �������$� �,�)�v�t�V�U�����k�c�L�H�I�D� � �WTur����tm� �3�3� � ���D�@�`�^����� ���$�#�%�$�.�/�<�:�:�:�������C�?� ��`�V�4�2��x�������C�D���������5�6�� �0�0�TXddX[���8�6�y�x�#�"�S�Q�W�[�c�d�s�s�|�|���+�,�+�,���)�(�5�9�L�L�@�=� ������C�C�H�H�$� �� �B�D���B�?�6�:�`�c�S�V�f�h���L�O�t�u�V�Y�p�r�u�t�H�F�8�8�<�<�E�D�c�e�o�q�<�@�C�?��� ��,�(�������������i�b�,�$�@�<� ��z|&�$����������edFHHJ`^()ggKL� � � �d�a�\�a�v�x���f�c���Y�V�L�O���0�0�8�4�&�)���*�*� ��� �����mj+�$�l�f� ��m�j��x�v�s�o�l���t�p�v�t�a�Z�y�u�������f�f�x�x� ��F�B���B�D�D�F�=�<���|�|�u�v��~�����u�u�q�n�?�<�s�t�S�T� ��$�(�8�<�%�(��� � �&�&�f�i���M�O�+�+�D�C�B�?�,�+� ��,�+�������&�&���#�#���������������[�V�p�j�����|�|�f�c���B�C�8�6�I�E�}tw������;�<�v�y�0�6�u�v�@�E�������7�:�E�D�I�G�P�Q��� � ���������z��I�J�pt4�0�J�I�#�&�x�z������||(�&�f�f�p�p�D�F���O�Q���&�&��#���$�$�+�+�(�*�����0�1���"� �D�D�szx|`ejmmq��(�&�Z�\�O�L���q�p�@�<�I�I��� ����U[<�<�L�J� � �������}TS����������0�9�����L�P�0�3�3�3�Y�[���d�f�8�9���k�l�qqlp]`F�G�"�%�c�c�lp6�9� �!������� � �H�J�e�d���T�X� ������&�(�� �4�7�Y�]�\�\����� � ��� ����jp\`gl ejtz��C�D�� �.�2��������S�W�M�M�0�3�[�^�8�7�5�4�����V�U�t�p�L�H�(�&���*,��0�4�����������������K�J����������P�S���txPY8=:<12ag/4GK SU&%dj$�(� ����;�@�5�4�n�r�����o�p�������� �C�G�0�3�����hp ��V�Z��� ��E�I���>�C� �"�a�a�C�@�I�G�G�I�M�L�&�*� ��p�p�?�@�=�@�2�3�����~}@>��� ���4�0�gl��� �.�0�6�0�l�j������ ���0�0� � �Y�Y�&�&�U�T�a�^������� ����D�F���B�?���PWz��YX � ���������[�[���3�5�0�3�l�m�� � � ���y��S�V�y�y���������� �\�`�Q�S�f�k���o�r�p�r�������<�<�c�f�P�O���f�h�����*�0�-�-�)�,�OTKQKNSW����� ���p�l���,�0���6�4�F�C�E�E�:�<�����+�,�f�j�(�(� �!�[�Z�������%�(� � �W�Y�;�?�`�^�c�f�l�m�:�;���+�)� ��<�:�V�U���(�/�'�)�&�(�&�)��������G�I� ��P�T�v�u�V�[�i�i�y�z�@�D���������������o�n�?�B� �#�������8�6� � �u�x�� ���,�.���Q�O�:�8�Y�Y�7�5�$�&����� � � � �f�c�<�<�f�k�2�0� � �W�Y���*�&�3�3���wzKJ ����������E�G� � �����y|0�0�9�:� �#�$�$�6�4�\�W�m�i�2�.�(�&�����+�)�J�I�4�0�D�C������ �� � � � �������S�R�s�l���y�x���j�c�,�)�����������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/test-mpeg.mpg�������������������������������������������������������������������000444��000765��000024�� 2544004�11760240073� 17000� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��1%��� % ����!�+=%��`1�7��� �xA!���q� �encoded by TMPGEnc b12j����@������#@&@2(kM\eP>]=I)�?'N`eaDz?KX CzR;^ra |X4MY;%ߋ($Nu@e�jtςU�3R0gaNAb*9үv9šyyeK@؀��(3.D2ϸd'}quhyNCF Og[>A$.C@pn[s㽘ݻwn;į+=kuxD^NiYw5F/!u!H mboKd$!;%vvs% _AY_6#_��aa$7R$@�01kJ@�g}-=)�2P1IG,!vڳ@4iY'wt0P w� >~M@D I a ?㸭0�._b5aږ0HA_<.'� �b�KAj{h&�< X/SY9) vgkd7Z$q'_2 A40`j2W'nY3㮰ōG܍;ϯS � MBB &iO6äRs}:m}Ͼ;oo0qD wA+}ؕ](<܂ht0k a 6-.;J:�!Bxڀ�;/@7 1?<-_qtS<V}Pp#_O㔀;zBjB-Χ'0`;)alvxM,2B@p7&Qɡ')(/EIHmX ;<OEpqEaNfmP 7g#{ 1%BSXw1bffc66JD4R/RDbw ֔]{P(dP^3z9Vq?ݛ' &Aeo!ܿ?+In�vQ+#~3lä}9-�;;+ 4JQi\s?suVto[6rakewh s> U-d ,!S1L[* |c{&�<!P Q,.2`1`w3RY(r? ׫�r؄Z1*Qhij޴5d<$Z0[†m_H!6�>s’_̣MxrɁ1!l}Ʌ�ܙ~ťYN>:&d}g0?@d-ŧ0n*C�L_{-,;Z�./~ym{۹cN�bQ/#F}!ޛRtv?U+Y Őhi18 J {, >w>@ �vX p`i ;Xn n I0R]ٸ*쿾# LyEE{.Q\�vZ~xQ+ X�e1j>Q&ZWE�UT (V!_)qe_o�d;? pݯ� UfWY&S8IEO GۊpMu~�4ERԍǺ~ ЃK=؂@BrK`?WŻ'Ҁ##NM@YCR{2FzM l0 �e�5)QyneK@_ !b%ڀ �@R7RC NK֜cU> ��!�VI%��`1�b�9WueqV$j !fbG|q gxT (`hX߄z%/p痣W�5+@ P :�_pTH%~:0s^0i4hM̀/&tL,XΦ�ġ7�dۆ?4^g~cޜ`כ!XRSpR˩&X5_-0{PߟTNvnz i}|f'[/ aЃS�GqhN_y?ˉav)3?9C Ie;m^i�!~_ԾrfzLŝ[$`f7*8MH n6Aޔ B%a x //)%%76t:`)a&Ó~`3 7CZJu@NhVẐs$$#> OpԽM�_9\р;`Na)(Q̺ᡀ;K B0RKg$e:NEv70h _[Z�$ÝWDf%ܑfd�`&ria _'�nW@�Xj <Fv_1}-Q\('uzu|.! eos�~~c}nn7 s29.,u 󙄟 KI6H×;72ل;]�(4ɹ'5QAL/TnXArL/o]ޜL o~'DR�,0� t� 3Jl:"�Dfܛ#4"h$&m~4 d�w J"bw+�Ii ^^AhM98�a@A1,�EAĒhh�DF�t4GE�X@# QB="/b.R"d.Qi/;zFԈ+L.R"�������k4SA*c9Xʄ36 !XtXp3QQ} 9A`37#UazKIڼYY; ]ӭs7aJH]%gNX\DQDϟ�RCrV�2 tFo Պ= ԑ1|K,@?p瘭DO?>K!8hJ]}¿#kD1PK铝@n4aQ?Nt`%6ӎ6)Q7e9IyGDfd`%4Z`k=@?4}+Ƽ}fbȷ[ԲMHMWp;H8rq(/=gPMc[xp+#|؜Ӫ8`4kHN|oLc9D߅gȐT@�0{7tsb ZH"n+hM1; }`Ho&D I/$05y1Ќ0bҜO7/I/f)9rw?(hE䤤$[1~l$}o_~Ez9&dp48Ok1E t|ƳnOn"2I@VI=URHQ�@u`DDo£p$#cZxa7-=%XOa7wbLbT.D=>STGUIS3m :;' .؍�q8)88(>65Ȟ 6ϭGMJﷴ�+à'pv.DHp4Fo( %czr+XŨ-q CnG Ð@G[47€!Fl(A��!�W%��@ !�7H�"3)"J$H(;aƝ Y3٬]hZƋfΜ)*0lkϚ־kZϚϚϖű>kZk_>k_>kk |*j[5|}]Z �iVAU Zֽk`NZz%l.zSx= @qNcT@L֙&k2g"QѲ"k{8AK7ӛea6cgNٌ*piuI [8Bic #��H�33MHJH a9!!(9#eѴqX CөHVBk_ !f nb[4ketKdY[8U \ �fJ"RMq@Pj̦fp9l5-l%B i l?#n?)89G-qJuqr-KM `¡P4l$Y I D;Te"A!WH)3%Q#j! -ZWx22,Grj1U9>ZH�V"(I$I$0Auمڍ fynaezFߑvG#e~7cj7u MUc`ֹv O~:/}kZ1Ȅ1<ǰ|9vfĂ9֥&QZE 5Z٭kZֵkZpW|ִkZkmjwrk[k5G  ]ĕ*sD)$�CbA)Mh٬]aTB*vn Z,1KR$%!g!OZskkmk׾k@H�e3$$I$ =[efie eqYyZv_uz+E)"59urkkVL/ [%(ssŰTʜh֌jS`sJ(Q 5XHFHУk^ֵkZC YYΚз$%LN $4\׌4B"irױILxLڕA뺮sh浵ft{g*kݶ_g5<!e;bamx(;dzho ?5nZRѻvj0 kXҕc,��H�f3IQ$I$ee[i}eƛqF 9~_nd 1Z44EZDM6#F6Sg)i~54sZH3r۟IlRJm<"Y&B"X-R+fRe՗u,!kf֊\~x\Rf2R7ԅcmmkv9@pC V!Qvg*)hBJk+-Xq,z}Vִc:KkatU@H�U3hR$$aiiim^qA P2I Kf ZS'jF;FY8A#΄bOtNܶagz煚2Rd&5 9J]BЄklF[$mIͽr\ѭImUdlAc4KY)[&ůYGI9%=Eƶ V!ECm<ƹkJ":@*5JsQ[s\h<|BmMz9."HђH&c18rTظ��H�U3lJ$IDP]uyem]i\qitn:ȉ+ckrԴ賃§S%]T8@ k]9=F59mս QmIrZgAZQkQ%YAf. YQZ cp)ִDakUX4[ZlSSTנ V3xAMsLlZr!cxC=<>*~X:]5+mja\Ѓ1+ks c|+TZ<MZƶ0cH�U3M��!�c%��`!�3PET{*t/95&e~>̞qK8SnH}֧R莾 X3ƫak%%3~c/2I$/V e IFNKw#vbI($5֐N*4~O n+k懽$����_��C}.$iîloce+p$ `0iDO �ޮYA`K8. |aO"@U}nYYĿ;gmDgtWΖU묓kMgO]nҖQ_rur\}E>9e������;/}aTHQp4Xr ⏕uq(4dr�* ޮ7_a'ՙe,' 8 `3UQ*^6啜I4.Ļ[in\쯝-ګY'%zΞݫgIE|uq嗿8x������ܨ\7cm>g0>"Yćn Id[|H>hOþ ArYZ�SۇtYm88q> :{|ϝyן gBpw;DgP񢫊:­DTt�{d0𔰓&OG`p�;I2ǜ5g:ݬFazʼ#G39^ cVQb^ Ǒ㨉2=DK{�+<aa|;q,nycA/˲Jѻ(x]^t햨z+D 2-c0 )��_ HDn/)be'#׎N�8dMna|w�yh79D?Ϙ#p;ΰXCmq+sK:P?:Nն 6sy9E7D;9b#F},jmtSjFFLD"L-%l8-s�bT%,.T9g�^TD5XbҌ-0q2R1pjd縎w}&V#Vj<2**C" `(Dk \0x!cg8:?,]v2I|ARv�u_1s:"Ien Q3X5[r8]ȒD]z h[,4|LJG؂ON :}qV8;xZNc#]-p"i|8|9#7(-1`> zH֞Xp9oRUV88[]'}*i`݃㎉FF}�E9Gd瞨 34O8}UX^#7 DCo)ݔO\aDru}8%3W'X*4W@h%JVh{J%�����JX���_�� !p@>טp@H=B�e ysB->�٭#L8cNՔfz_T[[Fus=yc}N1 \ǯ<$/({lGݙij)*Pqkc:ucqhn<:ȇ0i-ucYm(9j{;7yu:nm}Fs:^w^dr ;Qxҟv$1Hu B~!�]| � gÏy$Q8jëV)K9Վc#u'ߘX# spÖ>_ŋ=Ƹ媸KIL=NՕSn3O+%h KJh$0VIY,L¹eטΦF,w,.'9[i;>w:W��!�o%��`1�G�۲21 ?8q3qP B ۺa-_3({ O}s|@;."JUzdaGHцJf3vwy%Aˎrx�gXQKonƲ?`SEVaؓ!o|00f)9Vy=_[�#qwB&pP $S > ps><((-P#"7G(A tk(˜z<E^zDu #^uQ6S|z.^ŀƈ , 'xJ'+ƞA\ W Dp'נ)\Ag Y>$^m<֧ ?(P~/|ĴJ~<�qǸ fg>>]â)_8�p�4^@2^c9nZ e{t췰,!nBDF_hjnAcD؁8Qѵd_- W!Y8Yqm* sW(fN~�=Du} ,���������#@\�rBvG NKFG{0o)~2㪣`9\.!'{T#2H"t@. //(w^�N b3"1\0(" Q4hD @|khTeE59/GHp"A  "|AI Vw@W  �0_H)4�aA�\)Rh�/J]r�9,r X]u�/A$�0.pH$@!uhr .@`H/$UBBƓ 0I}SRq�$$ A.@ ^ {P ;�wI+ |OO.Jӆ!v"Q:LJnKkoM~J_koi{vco&&e�W=)+�xӚGIGp{$Dsn�Д^Wޤa+, @/gJG{aWtx+�\ԭ`!>ʪJZI1(*ԕޗHa7;\կa}y`n &#kdR1ujS%-jV,0 vju% x3|'Xoo]i@TGk@f1@PV/g}̼fo{ג�xXo(ax`3%}3jZ7 ~czj&%�$ԛRtnZ.`Wv7@:@&6MD:C:L! D}P,2FΝ Uu/U G?YY%V:�vPj!`T1 I1.#dTKRmɥt/_ u�k}qۋpէ Hf"AΛ(IduXKp-pp%{ؼM)㾴ذjF� grٍ<;!ITV=Ҹ坋Okb.@09F7CB I\u ]|ˆnmm M136␃_T{#ѻ݅|ŗ6N+ԟ<,�bC ( yw�nD:,%rPa4n`εb?y26mދV%7@]hV= 36><Tv x@y @'k.�׀(/' #x]tPMⵣXr^ I_#^9%iOIā@Ԇ(zĮ\Vd:d{^Uxj:{/:x봰 WuP�{0?���!�}%��`1��I 5H/!S78z o+c,*"Cu$6){T_>�.�p�wģo)�A$7`[%05 &� b5Ѳ\45rC?gmTM _8v�N�L%>�9!@8O0{BR~c^H2<e@%?]yzS_!�\^U$$ז:Pb!�Ⱦg�4wX�3�> ޢ] @A`Qm(Y�PɿZX/p|ʨQvӇ- @a4 ,W{o! V2AZSXci^ �X0 dfs&y� !ƷJ3^@�/Մ0oHx Df00fW9YlK䏵R%֒beD€L.KF > IȺ �~*CKJׄG �eeOk 0u,@:DUp 13|*M5v_F۞mƃSiRHt4J$"bwߥy �K8$ H7 @`>pI(A&H 2N/t= J<P /-H-x~$ @1,PI pK&``KH~ÂPny`H k�&1XfRF7DA� @e Z6 %j��lV-G? J[ &(Lӑ+#{` Xzx#} ZJ$,Pi%RP �2(䀜 K10��fa0o?HHieAD +n*a: !`°lͫ�ܰ@oM� &l:= �: Xth�������?�_Ptɠ!̫c:_?BFɥDB} o:)q>Iis@tZY?D7in O(ȢvqVK{FiͿ CDHmæ:mL5.Ѕ..Ca:@E+T.e7zG;D352WaqMQYT\wvIi2ZPZ(~� (|Q t̾纊Ah,.Ѕ&:W( ( IhqxhQn#`$�9Z1N3BfЎL&ha,a J h� @E �`b‹J2p�תTJ"ESQL@cd8�Y+CE\/-'r<X'FPG &r`x/O2@b`v`BV펢- J\0c OP):]&X܈움 �~:�V�5Eq̃ Dk_ 2DJ"IuDD3PW=tjC$0sեN3*(%ƒЃVDi4�$~ `K6Zm}H*ZٵU꣡D܌P=O@;& )AJOkLҐsD@v+f#o)c C⭩2Nt=y!zuF]K$Zy Ԅ3₨%eIyuta.T{D [eJ4c#ZL:Q> tztQcMAR 2I;I90�(+ZN##az�11 bl%I >[,I26ܤp ~7#H&P†dV;&9�+&;Gѥ0'=({OvE��!�-%��`!�׷*emYtRw~UȤEEdfd{ϳ1ز DԍOKDP3Dy5>s} F2OO"`BB�����_��JX������U WizvNƳnugQ:'xR+3 k^gS�^ʯ*9*e* 9ïW cnWNzoSъLUQkU,cu^wˆ@5&"ޯ <LGsв0Î8Y֯hE5  !zVyw^"z}hpk5ׯ20,x|tvgxE<susEׇ3|@{7 #1❏: O:fO2H1Tu3|8<9GW5idN_ d8\O_#'ZouX������?``&@'&I ;/N�o'w=p2S?.>"I'ySw V_j&Vcm8h<5�Ю n = _\2i_ &I{SVXGf S lR' 0 �ϰ 6H$~�X' K@Kq00 Mj @�`7gJ/(S�!$/`� C1A/�0 14rP@Z�W+= �K"It1�Geᥘ@vMX$ (< I �]` g hJ t+ )!x;N�?�(P|g�-�˜$ @ x$w7.NX%at� $@P(\vqhWP>d*Q�7rzMHw R O`@zz6QC *Ġ'2`L C jtJ9 Ҷ: �i7Bv &xha`T !%tP)I_|w;h<A $O/$0a`سv!9oIae,d>U,DܫlHlfՅ+IҚ" ~zBFqކJ$ LAV#yJ^^ڈz;*J Kf8D;0Ewq?f O04!@}Xh�Q;!<@=U$t"1dݴ95Ak5l >BI<LRICṢba{&S_C1[a%2|p2�5".ě` 6, 1�%@o`|J2@,M.rh4ZRVD��2UAǒW1|.Y֞" 8ai)?QRKu;Z~_De1ŶOmv9)<VQoC(Dld ׵)ͺ  >s}` PPm+T�V J92]pm)c{ig\ݺ>W :N1-)N7p o?Go}JJ(iI}YUʍe( �A.瀘1D`&LAxk<G�4�ȆLN!8W #N VZ�vL-XIch@X!�yr{@`702LI �NzqK(l{�<O&L41%!w,B zɭ!oAE1:i &S>�~Li4Dx(Ϋ2tjRb_%%d Gka 6��!�X%��@ !�$IHavYZiYq֞}uyhQcAk b_w$TB1汔7U]p\์c`Jߵ{X-+[kif/FF_:Z` -(TQ).]OZ1>@!G9.TVR- *޻ =)ʚWkRs@ASKJB5SZֺj:RbM}6Xchþ9e QLk*k>VP0 !H�U3h$I$EU]Vaaim_quމ`qBW񴊯9֙r5k83cIX!cTiI5HkxӘbN~I$ d.k_ �)jo"DJs[KqS׶Zu"ʌ D sjRu[k<tֱiahFJYSӾ2[jRk`6VkZWOu6ecZ%Jm UpH�U3H$IH+QQ%ieY]Via[ainS\E5]OIԱ4ͨjhS"h p9Z!Qi-\3(4hk^ǀՔnFjV()6/!R%AiuLYjL0k`& Ѕh:EJU"k9=j7p֔\CL(frΔ] ڎSs)w^2mc-jjL9+HJz׃9F%r1ӡi�H�U3I$$YY%]eif]eewXiF];į1C׈Tı|L;\]Uy󪊂QUh& )Bp׋.ҵ{XBqe1Dעm$ zÂŭ|h.rԥFmLv/%j.4 Z6k·^#>z=]l5@-l^vNta`!cO5G6iE~N%_Yd֥ uUmTw*æ#m"fѝ{ #VѺ$Jdk!Kj[9H�E3,DIHQET]U]f]vevXu*Rb/X(;BWR8Kx{rt9Hx57V)֯L)ƬsGԧ Iq8|YZPSZ։RsZ3ze4c庀rc,*&sNB+uٱJѼ*\Ww?f'gNaUC8WN3=w`k\sjvCB#_6z cQF\R1k7&80kCPm<RNIul$qF6JtbR@H�E3h$IHQ%UMvQ5UefXeic&-xU<(2H׃8U@k_>g]gPtE3i V1jQiō&Q(Khi i%XE\]emT4#!PX9ޥwk&k6Ic6/7fbθY):r֌X^ l$`vup625*H2dkԄ4Xַ3؈{v@}Im5|4%Jak67�H�U3HI$I$FTS9DQRE]UU&mWefieVVmFew93uKm QAka٭XO tԧnX;܄tf&RI ݢ K_v+^0𲭔u1jE}v I#nm^%mHٔeFU0&`vAk0�sN:mVd؃T*]۸Uyխk[īcTш+JT8kmJxVWj A{PwUJ{kf.a��H�D3MDIH��!�%��`!�5gM\ �0;{$:nK~lBN:"ih\(�)۹֤d 0ցP&#=!�dP*”!K(�nL nP tX qj%d~K簺 A(-bi0/oW d=0 anXk_20g5:$u`S흭 \|3�5 ,FԽ>Ł98 hX a< 7CZP*P ~5@LL&*O1i�tx)@ N \jN2 l>=/0m.eRPb,l|{ʲ1"No@$XX Q`d'aHH;.cA)G x_k.��� ��;Z2ǭw9e?v>(Oh5.CO( ( /W!\+֡tPD]1j7SĢT#kJ=<J]!kR AG3]Qz6^N "6z$KKdOע^p/٧/CCIPDyO; ?˨ + ۉΔ#֭Eq >&ꂟ yO_[znCSCRӫzo �p0'}:EUPXY "fѡm)ʕDAqJa6R@ imS>}6ۏ"-E ɲk" j( `L ^04 {]ex#JJqejmMK)&'.[Y k-Xl5a-?QZ G>�<GD,hB+eRe^[=>KA64> Ktr+=1gU4ެ*FG,`Uv3Mһٮ) HFNTyՍjo[ 8=ްmQ,.nCJruʠℭBVT ]" ���_ ��[[4ZbL 6wr(4 <2EBoHbODOc/Hn4 ީ5DoDIk\7ӗR#0yxbWjִQ=�'n.K t4~Vh*qģB٨j3 8_*|(Qt3lIUUf&Qs] *ʣ' շDZQ<lȾڊ.Ce8]e|#V֓/Բl5a 1x3ET,>/QH.Z^-IԤʽ .Yܛ8,F͍R(\]3c rէ[9k),S˗A4߮v? 9QV7\YP6 C0U3\DQj .���W���J?sInf4Z/֏KQ(z`秢 ڞ⤴-aE?ˣֽdIJtCHa} a@d&N(B)ϑgM1ɨA\�~<4%-g�0y;X`w.ϋ.M`.Bx=�� JN ۤoj$cL9ֳ(F+k& o%+DbXvPPaJez ˨KdIc1%tMEt~U+YF)@%SBjKhMmΚ7BP` KCJġ:pt2=/!7&iK-ѕ!SDӝeD"`;(E`:J{%,ڐsIː3Z@`QgawC *֓(N8a6|bk-/bMN7ML !h/k pԚgdCQGb!;=&dw)gգ~+Wi~!��!�%��`!�dW$G}ut'$ Okj(5U(eJ'&o;kQy <ɰ qΏv (g8!g Vh%|dĜ8Vh-Jg}kyz &E- UG b2~�QZҚ% {˫&NJ]"(l.Wa(ZB 0@SD,.&�XwH]>V mo8~{F_|dH^ Jb,\zM@�����jX�����%X>1)KyB`T4a1#2x WN{MuyBDܗ?XtY`©n%#! d@F!g$F|0T@^NtvG>c;; ,v ݕ:X# N& *İY>6ڭ@@7B&\uי ݔ fBkhg2pD6J07=H p}8\W=aڔfWA~ ;^T1wqw%W^@rPØѷ_XyE[qpV|M`YŅkVub4_=mB0u@9hy`9*e|)aUë^׍75ƶwxptW +Gž4U|G 61dm(2C Np>hPfrpטk2io47OR]qzHA>o?ھj������? <\*nuC|$JՏU @2�(,hnAIYν T(cFTƷ?v< &C $rw$ !¼B dR0K@0�a&�`ƯY9;: `ʃ &4h<z�^^79�| @Z䥦gY-A30=,vnfcD0HE';urLJ@&,kL a@7!/(JNI�!I%$TQ+5h�SD�!�ZP):�42HT|dyoʂ^bM8wɀ!,3 HN:C,Eɩ:4j>O ДB,O{15LF`Y]֜lˢ)aNrj($. j&{ZmR8͉N@+ 0QD[v**.m!he?zRV^*w5y]XL)O |Ja,i "AFW ۉikX7uղiA7Jʭ,,i? %e{<~zIIfC|B{ɖwsm2qOtc>_av7Z ׏Hb� O].�).% ;ȤÅ-c�D0!Zpo_m�p0L߫;`ID2gd!&0v=8s3RA"QlwEGgB:T $⒒Kdob߸u*L)]'=Jt6wե⓻ +|ԡ''ZQ3`kۻw cJ- ueQaƟ>ZX @Do?pH\A|G@1+3lt#=C_g(P IhAy4($-|&WmMW >ӝ.yA2JK*hLg>mzTk2eOe4@訚L隈]ޓ5Rwdm/j5J?XXZ(u@[4BJCvFl3#֏ /UG?��!�ٻ%��`!�6}aCl#�` G� �q2ZB=Y`ɆdBCPx \3L(+@[ 7QJTP7єﴄ`!1).$&Ees �' )!DRP$2U%<=D;pεe`>薃M;nsN�9l$wz>�׏�kR@ L�% N=ާtmG\\ֶn %ieno[S"|_f`,Oe6�d�dŀ@�lB ��/%X{2 QȄ�|,/"�����C( Sŀ<LHTm�f~ts0>({/@{hbJA/t^BL(p<`i91 A xM %[H@BX"n@ʺ ^;CaYy�~X [Ins;0iЍT.82bS.%MWP4E k&Cȳ,nE6os\ ׁ(?J+> llvg2:&4[Y"tq,Ȟb 9sPY}-\p.}DӁd2V^sTq@IX>N* p5p_1&kiD6N}YҾA_!{AdO4,$gW?wmdB5rfNMyU!fhPQ@*#DҠj]`P],l*zڂV{x͜PWUw_sO=°Z�ÜL}T�ir(n'!;zS8~Sˡ<=jl /ʢ``. J`G,c5kH5pwNtL;@�����k7Y* %Q8*HA w3>v 3w%ob(!C %E`Xw6D]] Q *;ACac/m;7y d f.82s.%5^B(eT5^A܋<PdSf很*%iTkVˮɕqIRE,Y]1A?9\r2euQLd E!@H"ZT*Q=fvIpcP_y.ռAf4,0c3~RMrE;W*j) *QTtkWX2+Y٪U8 [Jv||Α 8uT+0 .oD'j*1RUdt+4ΥQ@0hA}] ωr`Ʈ:N`�����B|&KUҝ7Bcj7HzYeQ%V%;7 ESIՙZE |c[W=p+xt`[7ʗJP% 0D7$L*T]_gwD3'UU E x>.ʹf$X AeTʰ6զ><b(=O:Z~m 㮷m%5kw~ Q {9gmiJGp3-q?h0PRoVG%'OkE9t o7 %δ-pȏ)lrYoY=zIOYh-XW2>L=VI 1as^EI-jKVΕcm\:sHYQ])^VV;+;(]o+pA,pב Jt#$vOӍ^lT o6L3(y[Q$@#4& &\dZ0`ia{^Ny344cCC��!�ǀ%��`!�ij VQ ! [/fY5&Ze~t fN:�y7Q"OK-:eYhɭ okM%[sW*/QA7r}jvPK~jU}jLRm %AV;$r�E`knsXS)ӍWVY@���_��RX�����4tJ$ u^bؾrK-|3w OKvN2K9LGiE_f7+}>&l ÕK磋 %#p02( fP\V%V-aԧԑbw^c|H`0da+ti{o^`ccU bj 1yŗd ~1hؒqri߁= z&�GsV2BVZVm;ZK79zRN _7(Pp݅ЇbeMEzU|+ޝ'cݫ??p?hש (Y#:”38#mzT/۲Й"o iPh|"\K_Ӎ%oyC1$ALCAjQNn۲k7?@ϓIvV(KP~.se_gWZ?]y - u>h}xI'Bk=q- ݹ;N-*<|?j7wq#V3q0A=Ğ"au7rARt_:o<@揯0\,y?ďqՌ~!)#?l?D<|>UϏ^x>2:.a..>_+:N]�]D7 <ӥ58 du{W=|wT=98,p㲏7�3ng,^|jno#˕ `��� ������{ I Y5Igy@I;�XDM@g0h`P�7kQx@q, >9? @4 eE�� �0h�@�{ٵphĺOvI!I4� 9`U;pF dJ��D> Ahimd�p�pMoɌ;!bL$N/!8pRB]UE�7 =\(%$oᭋXx5@`0�D k�2�m1+ L KDhX b�51a*YE0`C: 9;H$A48 xaaӀf9\N&#@�PvI&h�}b& 3!/A 喐'٫@bSN9Ma7 /uGpғF w&҄ {߀? 'Ykݑ.45�ZCpU 1JVjYFR*Wy`1;*?�� uRx{�@.,*9D` qvW'f2C Jx&2!]^� �sWP5;*� �ҷ5A*tg�:Q�{U`Fߨ&h[h�4 {�s40 `�Y7`L_@ahh޸y=9?PN O ǥ;㳟 jKOyL%ՓH``?!�-ťH/:b�$2hhad"Ӿ^8I4�N_<4#b8q@ 5l?13Mv0vn7|�@=�HRP*'R5X A�P)�& + ON>P7Ap P+LX CX*�=�l;,` gpO^:! ��!�/Հ%��`x�`Sl-z׀=HΔ  �< I t[yF1 ڴ"@b0 ( `>[d I+̫'uDϰfbp*A_>"<|Δk>W^M.vRXndt0 cyY#@`B,o:0Ha<n!#?@ �)bs�b�04.E~ܟfѱ'ܚB,��b r`GnV$k�� !,X_pdqC�2 !�M YcI ~ �di ?)!p4ui!Mn�Ig䷨�l�!I0/o ?X~r=0A%B၈ZRa;Z�\pk 6bu$  :CSb 7 Rz84.([8O/>rvo``�`*a7٨X�h�bYƍI`$_uEf�FL$H^�ɀ�$~W@AL0�) $uh�ZI�Dd�&`D'H T>~bseժ Ϧ!O JOfqI-! BKz/ Q\�h&=}8$8HU�z(`)!1�*_m} @ @EO��2{J-,3#tix`NؘIdmq0�|� @_??uPx( & 9w/-?mk0@<yѸk,hoWxP T%Y@v�BAܴ(Jb�,vB/`".�Eю�Z�0NC !�:&�d[ ܛ@>zE�y W�lwC@ �jpK&yi8Vl+k � 4K, )3@WY� �3Ԕ� 23_<4)00ǡ0�!.z�׼}e_l e `78n%ӶM/3v�$"Ĭ%()Dz1OuH`�˹Xf3s1&n,n"S&�Dp vY 1!%`ˆ~d%@ ĀNEp` g�04&Ha L-gk��Y =I4O �2�h�4wuA+Xz2nJ10S>Y J@u �4% Hy(·R �ˊ� \J/C!vl$Pnɜ?HX_`<hXadhLW_  @щ Be% [ܾ�Dzy�20|1?e״=/{$.��ŌJЕ}2vI448f޼2GOڀb -zF~0e�XM8i�NB壝RN},.�Ǖo �b㮨X �? A[ ז^W�8U Ec�N:e xx,M,| җ-F#O?T4X۬b8;X�5ְne%cZ_;*T�=dn+ZvQ4%%"�2�^ fVM7{ h^�,@nV!a$�(�jP >(z  ܯH `*Q{2h+ SW~$8x)"h /u'nWt:֣q  0^+_X5�pu)һM{ � P#˖EjiERiM![eYHE��!�%��`!� 7G䵾GkH�'@�DM�� .M!k 0�0�~ a 4VHV#=4(L/2JGþ`�;84 �q`O@ y@, @��:@0&j3#JJXN&lN\�I@&ZTb˳͎ʾ >I@&I0A'�q�6( h~>�Hh�Z A\�� p @ CadHKs?$R91*o^ '܄ 0>OBo+I�A ~H X"7&P 5�phI&hE)� E@T�ܰ'������apO ݍz%~_>h0 Fdв4C!He0H*Maz�׀ ɎBߙaDѿpB 00I@[S{n%ٓŔO}9K ܔ.MЈJ.uvl p~/.n+zakqzu,BeCCy6]nı,ɨ31ʗaԊU V,jU_'4>Rx >(^}ZV ̍|E >otM%&R ,.5ãCԡ?#z|[=M{gKMd˫DXc8h}0www@;րFhsH2GLo݊Pi'ye4ba@9$  Gn@^R�Q+V^ب릇f^y[uܣ=JQC,fHm%-:-.]1.eHPAޕ܍GC茳Xä#2GDF.䴥5Emb:EKxc>\H؏ܭ*\317id(ӷǓZO:޶6Hjsq0_j­W Y-'${`����_��2aFDEFvt%(i/&޽:*Dqˆ.qv$%<;Ua.Ea=/LIS!WbYMiK?.ƢoQD}mPO B̳DE7s)x2mkg@6FuQ,e[ySfPucφ`4z%%C.rvO;7PMeIJ4K~>PSJ6܍YW dFT%;YB[zɪ:"|4nOTi XUQ0ah*6-'$F���W���?>ݦuN6WeϐMGӴLA 1)%n#K0M�竊(o(딩MQRK@blCA,0:1cHHHNs&\IuM`2G=/*G@iQڛpd08u4 >Tj"Ep"(HT*`}С3 9ELkϞ7H-)&qWB=h'`?H*tA'x %ɀ:f{ ?{A2*ԪTD <רcbTH{z%_*\rυx w >I,8a1.1qEq*X )b:$*& a|40 ?)ӊJxT=Pp`x1kLGJP~l*&:>{&L�fC#4[ȟ>qD4+f #oG/DJp.(@o p#Z67PGxbMĢQE_X$ cЁ N2_Ud{9ZJ/ebǤgz�g8 UhA0$bCR7m��!�%��`!� }7271} !s�?<aE!(+,� bM_{܅ bm@bK$@V:FS[z*�BP#'�b34x0QzrnU3(�z!`av*�GO KNYX4 ERKNO;%qt4`bp ӂgtcXE۩tB|CŻh-!Pk8 PZ]$O2KM%V n.ދx5"imWbav|j9z!8a 䔞-x|BI FfL(s ܝ=zp @t$Я !(Ix,:!Q['s!Z@N7`5f  `J@ hBP#x00`HC8nh�8"Es28{Ad'(&xԠ�g+t-IQ8~݄ʈO>V>2bnj*�F'Q䐋�`[Y3"R*ȒZUHpz:?;$!8jxgl{(X`) Xa/% ϼ΄_@|%/p\ZF9 @2@^-ZP)1(<pKQP* C"7�Rbmкh.Ԋy d?u-dmK2^=LBR<uʰHlx Ia%?sk������2X����� .sXUmBX,`O1!ܖ~WBbKЍ`"InJHƒt)`J߹Os8�J+35 %+BBpnínA1(R�xHv97pXe,,=/ҞIlWg[�{ K OgEptü(̏?咺3a;W v^gHуI\jgGxG_ї!S^b'Ώ ŴO�S=9יd,!DZg$a|�4ނ!3 u.-N Bb " jrU^iŴ_00Ύ4X+ĨNXttzRc4LS\+Ø]9Ϛղup w_ank^`rK-6'8^9u:K\V=<w1yx;1ݩv3M$i^{�@AĈu w7sc09潇׋ On-RL Rg o^I/PQ$.e~UBpY˛.v_Uyk? <9Շhk�TN����� ?`sI܁@ J擽q06) �[E H8E,hr-" AcX4Hcױ & zN$9@(jK�<�}Šo�PC8$~lBm�&LX/,-_ HAbqP]VMqa`TtgI+0h04 C[0ɀ1 "o&ᤄ# xT�\$ !L&IN�)PFH\w�CQ5׶pn p ;p }t$b]AtIRaj~4 [8)!B!nsNOclb@Etr\/`3~, 1 \B104!ט$2`�99ؠd(I '��!�%��@ !�嚎jc54HQUMEQ4YeSUF]UVZdkFєV.u(R)Lg�@1t.wgq[ YkJ-oyj-M a�" 10m=jPN�M$HqO{qkc$ L>S_=֐TuNsL" Zs9"̌Zƹ떶wf[\g6G@k\իڳV5!5MZvk7Z[rЅqӓ7\F-Y|bV@H�D3I$HJD۪k9%SADUETUUS]eYaWdE4mh4p#4¨p595}=IFtw\)+[Uub ̄<]Z(vM~Kg]>@ⶬl]r R3[^ƥ!hIC)N\t՚wj2 iՔ˴9vWϠ?n}^c$N)DEuI:^įV/b^m`6C |# wSies]WV0υLH�U3h$J$j*<]4YuUaVYaa[i\qR|_vlḪ\20Ha8U=sn4q.oZוMrgIzn> a6ecڗ^u 86d٬|am-L<0 mPŨdy6XAJ9T ƈ;fA)L:TɦŶku\lom S8w*2a<IE E6jcU:lW&%c]/Qٶi5U^ʩjĂ!F56YMH�U3M"I$I$MUeYQuVefiai"M'D0ZGx459fu$w54E8aِArrը$fVX lZ^5Ay:<A0:`RJ4jWE5!= uuF�|6rv,axO?kάf` W(,3\ Zt)RTOs8P6KZd A9$vҴklUʚ7R5\ ؜��H�U3HQD($Uae]amvhH5GVV]ZqeDJhR^)s5FշBkC %62#8EdQ|&-X]B,ɮ$*tj06T=*8D.׷kY(K["CJζr܄`f\Mį͑tmO+ $Mks1jV[ejh5N`QSF ANKfsFVE7U;R^lsB,H�f#$I$I$� E#HEeQYTTMuYW]vaauXk ؚp#ZAkXִ2ԍ=&SZs^̉YauӸ%25n2wL7avsNVƒ K5Qi|#ZJ| ETAFOZ4sŮ#qTҡM#ZJAk\[+浶kZֹJHJ.1 9BFR8ĄS[$eȅK|GMmkaيx\b!D58l+-M8�H�f3HI(I$ 0IDUUIaaeeVWuf~*̀llRЁ#X5AmT8['v {O81UoF;Q#n7]T1(SZrSJٵ]5Z]T MZbZ!qZƶk_2DԦ22X!r޹ߝrlHotGQjtF&]T ko^Iԡ8AUm[kvj3.{ii[X3RU8@DYi˄RKTҡDS$e=gJUmZYH�v3(Q$I b0��!�%��`!� ]Gge8f]ʻ ccʣ ��I$ׇ% 'o鹿2&M� |DsXnu3IJRvoi@m+1 y%t %�YEEV јeTC �Ki>@a09@Nj΀Nbh>#4?J !`թ@{J-pC�r1Hl/,:Dpnn^^k |1/`A R�.%b "oA])(4H "B /&�4_ r`k�Ĕxj;=Q�ІRLF� yx@(0iG69'+\6z-" &B8C6�h* 9+$jKbC,J5.KX^CqPL'ӧP = qI,3ڽ6չ1%-8NB^pK.dF% DK< W 3Vu0\� /pBkT@%g((� I$cS(X- �&+0|R7GW&d7c?.C!�4 ۱A$n�T-|MBKr>qd@WLm4b@X0 I i|ShPh(M#!qrď�v;{4m2<}v �ņIlX J$%8?L1&0~y$Γ.x>gV-P5ng aN�5c�Ƞ !�Q70O %P61i�jS�`Aje�b; E�(1 o`G�#J@kJqD0jK A�/�0�MIa<+4Mťm}�=[440LpauiD Itz7ĴE4C 5�!1SȐG6/XY%h$GpqݿR:�\|Hvd1&ԙ>d3k`0uj(aE=!`i( #�0? !MXeyx%`& ţRM(@@}8r)eN==.C,LrtBŔ�bCRK1yȅP90= II^t} e lEAPoBQ 0�ZQCJ(!p u{yG$NW2 i4|\@ & ?UMxnEE3*TdJm kJ QerYJ%K@# t�(iVޑ> Jp474~eڃ:?&^HHfu kK/[ffWɂK6TEH�����2BC5ѝnYHwΐHvc{-1HA!`zRcR 60vpHDG +[s- A,W$>g}G3&N@B^?r;IcyK`DIprj#d];]T`LD2UP>`=T!(<JV*0asВdy7fA]VKq7afC0T$!X *2NXIK)*6�cMUk-xPJДwq3kz5¡&aY3BpۚF!XТ ADД8-|+NؒzUUA퐀z2E$ḯp 5t#tO*QĿJ2�����BB[5 (諼WZ]BO,n5j,\;X1Be!��!�2!%��`1� 9� (,me{bjYσ3='J#:hR Ss==ET`"e- b+5hU6DMեS2 AИF|.NT&xGN%QYB',&% }W}'/յvt&SX*jd8K]nɜm`Bjr0$5,>}=OU[H9pWA17DҮ5K �����*HO]gX)˪#s5U1%p$m9y#Ax cç$Qc}{rm㸉J F#u:9"<CM( 7bMfr/À6�:XѬ!.k-0tGlKXJj߾^�(ćp9D`2�BJ8]\@8,h(y!Ѕ u350JK%(݌K��Fs>˱BHqd7Y:`#}m䜂BB#XzM@ � +.Fc0Xq}l% CMom{eZЅr-%T^- (Js .Q3RxNH ,s`50SuBo* <oR>]2@ODgc=q+ ܏vse>- umlhK\?2&B@prg�fE vkd`G%OFIa!#3`HYCpF6�.n i% Y-~ r,"jCN? 1pef_3fdz#}.>8Tdċ+lfN8,b$( %~ 2爽9ww?TDL亙!tj- 9'Y2d aId''z}{K'K���_��BX�����  `2|K%8H偓YuCנ'^;?0H㣻� ’nÜ=H)}rX‰N-u2w@r %DS݉ϒ@z/aEeRK<8y� =_`YAГ+,,"� ?^W=㚽ܟZ:T,@)>l[5|$rIF9e0&ҬE>Z/"`Bp%{uuiD0XFZ;/Mx}ypHo ^ B@4X[[ c[Fmsy)o^;PvS3Wǻ!/1/o^ O6ڼ!PޑVu.sFQ+Y/F ϹVQΗP^ y#'3=Ȏpu,]ok cָ )#( p%μ05FY ^`+ G'Vq09qS9.?~g8-ȐwYÙ"Bts|owx;*JqiI5}ðq|;?^c(S aU 曮#wסxa:' _5uP=(->'eml']YYyU~kЃטq1lQ 4 s5W1x+i?AWWqq.'8@׸DVcg#.ca+_\o )Rj:w8_q;|v3hy8 Ȱ�GI�7�����PjPa;j!}9\Pfk޷t>枈mCpq_g9/-7O(gAglϻg63Q%( D,ЄKX*Зէ6Ң ��!�]-%��`!� PfϷo746CgJ膶qd8Nό\>ywk_A#;ͯ & xw CJ|!|7'98ִ kYE1%l}*FryD5*mȗySDžR'qtB@j�$$T~LܑLWOx"/CRJnQ 3�!-p<�b805x2Lpɉ=S�<ݐ- Fe,1vĆPA'6ILY )CmLu,Q FqB$^E<=Wg`7%?:%SC'4wء=tq?O% s\F hM*01`Q%jf9͐Qlo-@f)ɡшiC/ J+-Y MI%ǀĄL#P?N! QG�hfSH�tѶ#s?2c\vQtD3ҋ6, @NPH뜠 ٞٸ-)9α{*NC٬#ǓσδAa^3r1.BbP{%$ {�TEQ#-aP >s41n"#e%'FvAA-{0, /wkGp Je�oY|{j >5�2&� !7_?UXE^2a:œR 'J;|"�@=!lxVðTĢe~o{ZnaDLS8d  7�K,؝,qtXVʰ$ Q@if4uhdY=>">r,Mn)vSyFI=P'| d%aEqcdDJ*J^Zf;Ϲ'Ykugʴ߾ePf%%#pvUtl{Ү'}������28/g]asxmmD{BDS•ϩ4&k*/knxl �( m|y@ fuyX9wU6mW|y/TT4@a4Ǧ*GA ,{;KbD4𐶪$We|r0Zꐡ#T$"qڠ‡�!@/�R^Eu)K9: Up#@���_��28/g]f>,[Q dБpsg>9lmknr<|y_@y:oX**6-GHr&mZܮx_h$i-GL&:UԎXvN8i!mTI a65A!BG`.iIDA$�BԂhp`@ W+ȮE)tg Ay*ndy(���W��I|3p.�@.p*im,gu>ʮHH.Fᦈi-apXG&�)XhOH@:&G݁ {Zl%uR8u!"<BN$$+5У^z"2wD41BIeF,NW' 6&ޛرtDC<,"^?2JPDW0!DJ A.Zfp;I7) @K(VRBb~AH0rCagD:=1 Y/>p3ۉJ"<k '߇:ԉ̝7hd\a@A<]#0 GK4fh_6rfGC! K;]@Bc7bhLYIt$2hݑa&U#0hlD;oT>_'&f[Pj_f>͒u$#}/lG0,th)\t`7(U|srqb  �?qQ>S-_ & Vyhu_��!�9%��@ !� I=$SQEY6eVYVQd]P:lĒ8n*j[ ]Å,si1 i=Mi*zi YB=\䣮h*4dpB3.+HڴV,"Ζ sk@1=M3 6!f2>B̌H%nr-Sі j f{ ی9͞RDuJ\J8NIv܁m@bUK>jml5m,i8ɯ-OZdT5@@,r&[E2�H�e3mI$I$@Q5Q5aeUfY%916,FPl6QTWI}7!|YPڥMs`+a'2+-61u% ZV嶴9˚Jءԑ@ɉ!VFzsv.@b!jk u 6j; yכf|Fb:0sץmM[%Dh�jNcQicp]f`6m3kmcZ1k^)JY'ukַ)K[V^4Л[shͪ[ָZ@��H�d3)QDI$ -EEU4YVauau.j !Ƶ7@礚W6BIR0m z9=],''[k6eM"M HF19VL" ɇJόrR쮂+n`9zN1sgbVPHl7"]ˆ6k[}AMc-*УD 9!Uat]54<v&il9|LgUw2N?ϩjb�mj-CBJD^^ XcT�H�T3II($bM$UQIdTeUm[]Q]i]|H-*9]ۧ_MㅒkviGl59\ٜBG[akX IB$wQ)gij@ML7 =cQ[�H:%|Sg F&,W9/e{T<2K\yZ[ez)`vA!25"6-|J+&oGϜ Ukf'' P׹rlMmC\kX"!3(tR^`�H�T3I$I$Zʢ81#<,9TNPHQM$k * wjkB [3!Rmsp+9/p@K[n5k[6k^qiUcZֵ3VL:9Uh̕5J@R1c6c2V-]MWZֲ2j\aRhAkZ)V0- !EWAYGNiAW86´!56HʤTijL8mKmDQo[=_*kZD ��H�D3H$$nꪢ<NDO4MHEI5y+Z}Ȓ񻦘Xl$?h mY0>fc}VxHbDֶ"#`WE0ܽzmN%iFr%n_ĴFD"t7Dٻ{p߾q! 6jT7n(pԩֽk\uK7P%:q$m>zVKNwo\kwfVn?A"ZRV9^#ib)Vhc}@dݘLߺZ@H�D3I"$I$hMAQHA#=QTSY%SQY4ITR!zp-"V`"lMgsT; !U([QI٫MJpIҋm7jYZ$]3&婏T!mYѷլ<Bٰd%ޕD%HI ݏcQ-'ځkJ6K"-;RZJ60p !V؜h;̴~֑yCBIJK]sz9Y'*ꕀH�U3H$ID @DO=��!�G%��`!� QFU+$�a[xz& 0h�h3oڀL Joݍj"#(?�@X{e+?xg WF #ކ[ V: GH0)q9|.v <|致X "9ēΈG+B y1:%cs$HȆ8O55QDD!ૢ+6.w̝€QiYi/7_efQYԧF_$�����2X����� m] 8H- )LVD$6&<yKWTV fh_ѕЁ j¼"Fr{ZJGgIP<Ipj 4X\V�0K|0b@y!}y1h_6jq06C$RF*@=Ďhm�3&G I$:R!0;2iЌ.ۯgĈj3qn{<�rЎ#Emk=$Z<3:Dt(i;X::YMTm Bי㰪eI@`Rw {NfW(!`ߑdIЄ9CW8<t1#;#Qs졩 )#RY'm,Z�IE B: qri̓"AooJ8N8pl�?p^Uy6,Z? 1B$}xH|Œ;zr< 7g3~; 5י^}Üͷ^|aRXA)liٜn51_pDxtwa,PiWWWňf3œ>#|8Ҍv8G:R["WN3(/t@#62lk94՟^! WE*3zaƿƀo�_sH3eqqǶ3ߞe [Քi]N,|Uy3aCB/|lv:hQaя<b^�NAӜ(*7Ùw6x}z�70**Ov,p6=v'â{FxU{B4tf<8 #<`]GAuS(*<ոu,k81�ׂ�!1CCYuOW‚`G`ohXX|EB���%������-ۺ�- �5�; 4qH,f0 CpĝC G﵂Lts�4�Р I(]!n�^M�rf+v ߩ3AE!Hp AE!Hp }/;��Rh;wB@$o@ C A4 C A4E @) 4h�@$o(cA�{$�f @>^* !h=~  %!FM�#8!�DM X /h 4A$80MT�L4@$L� @>^* !h<A( Hp`} &?Z Nl 1�B�&C���$L� @>^* !h5, Hp`}`H@`ɠ@y�b$oࠃA$80M ł"PI�AJ #@&y@b$oA$80M "$80M+HH�L`@ "H&<A !h5< !h5v>�`�&C��0A8!�DM��!�S%��`=@Cp� 6mRWXB"]���j� A 3 p�7S5gU1a?(ׇqEHȒ%"2T58BUY*@ 8rqF:<$]�T @d CLJ3YGI,YEJG?}μ�P� (ah;jE #Uj� +-`nJЁ4LQ 7J0}C,���PWbLI]} Rr#]C'f8Ϛ~' e2R Ld$q!|bG) 11p\s/LG[j$ ZxZ8u@G�ŷijV}(pD Qy` �&`6&jL WQw( p�ʩ(EFGl{ �rkpgc>jn$08�PB007,k"0 AыFv�=� TY?l P �2@9d6PJxf0>fn �x�|ܖvP ^g' nee{���RB\bPIJ&� �bC5`a! f% ^0Àxu7|)�1�5 +%'0�` �eIO|:& Kߠ3C�W�>?m�*�XX�v!w:\ O�˟>S�:x \ˊ4 e~68ꠁP�'/�{�Ax#$�j�'�&�hXjqYcH@ ` 8j6(b^w�HA @LM�?,n6s4`;�C�ZC�$!$6vx( ~J~Jl|OPFy�J%7g1 6XxP �f�: @�_( dh`5F�8v¯a @AThh.QaR ag[J�  ;(0`�N: Tr405{4�`` E�jW� BJ@7iCPPf �u;3tp/$b@0,ZR0c7ӿ_s@vSd/㳶Wp�.�@X�rfO 0WĤ!9?p`�|p`0B�|V3ɟ$a�)�0�p"Q�jBA R�`S`a@ @0R@vٳXH@ C�B0nO/~EeoKZ�j�`ϱ]8~z$3x:A Ot�,{4 ' b 4hMF ;�AsJ?/BH- @'�vLJ"F'_f %Qx�e �T 0| R b:30G@YdR8S:M(jp;`> � v@WiHBC?0 ֬ 0�1!� �?30dRJAvz0�^M�^���:&$�0' 4[tX,Y)fg:\ (v 9]cހ @;�pxa@WX %5EpY%j8:d-DETߣ31I 4n0(!K2Vk.Ѕs8 o�'bR =@,% V5.nlbh0 Ȟ` [2@11":`��!� _%��`B@ � ~9hQb�fP!dm\11pܔݻ~ |X DonfZ,JF׳!}$䫖�` pZ,no%\B:[/O, j2?NK�a$T` HdkS'u3sC? [jPn ()#mN7:)0#rFwۘwW62@:G/qm,x2)5D�je^C 󵤆QH!0^�i aIA9^qe !&bЁ<(@S�JFa�J, 5 x 7bujC OBĀ#!C(1:<N{C&б@'Hj7l :*dbFv'y?['Y~LfqaCPko(Sk8EP51A9l1kˠJC&_\' R�P�e$;!%ỷuiT�܅RI /g��UFO1ց8b+̘5;}4%KA/��Rr=a>$.:8&-,KSECx R&>(C$_J�/%�gԺTeb�v�19i)dunn?ʼp P߬_0HGcl!�x3~`ڴ)-!7p7?]ttSQT� +L۳:Dwe6!JYF֠;v)qz ᡩ78?\ҀNMskxopRn|�cFfYʘqXQ�(�.@P*’Pc?ۿ�p(PS�l` ARΕ bY4ἕB lu`�0 ѺRkT@6&HnJPnqu@3&` 4NI[.0�fLa 쎃!ր1&#!=%Ԭ49:�X3j^JGMܔ$ﻳ, A45#mǸ"H Xa@)N {8+ӷms8uDނ`D_5! /d9l�BA{ef;(΄|�Mšcs{k/q\lp<lyq qk_$sE]/YX an:Z7XKI<7bђ5{E|{z+'/n$]@/1/^A%aُhQ@w#t7Rdag)# ܏)]ml̢w>*Bg/w3`Čew_9z)0k;ngacG y>�.ϗP �tQ 8b6F|ccya ;+$�hNC9u�r`bɩOZIN)gO\K�lV!o gX}@}2$ gv� dc> Tp �36 Wr[| 4H-6<TC5fԞI4ނaxXj:=:�E@#4 bv۷uFmH|#jB N؊[q_t�B@'lZ _- cG<�1 FJz9U� g,<^my$ Xi2@`_/ _K m@_yr /m׻v BD�0j�xC'TI%!9}^8 !%K,ݸbYFvC0uʤ?&HĤjwPŊZ:Turi"ZG}n [NM�a BzF'7D{H��!� 4m%��@ !� EIU5Y%TU5QjUʅ$l _ni _6_RʼW4:see5-tGvd )1ǃ'L?Aib6,{ϓ `ǵ*k) ÄJAm%E%q|  䁧$tctZRaY؃jծY6} 2`!Po{1åѼ]!k\H viI;b많T{[$:֭iXoHߺ!(|fڄƵZ�H�U3,$I$ @E9UQUQeUR5R4tZw1tٶi=[殌y]ƢآkmjAEcxHwa2JVVm)Ңs4ZфPMdfX Q�ϡ@STRj7U4`Щ,ZvԷj/H&ck4J "c>ȁmhV6Sq,�WsTֈT5 ɤ@G8j5Hu]cB@Maj0mW[f>ga1J NF��H�U3($I$JjS1@DUDTEd]T]dITYEU9&,CٗʚՅtք-bs g?r -:Ͱ]H%Z̊ċ,�Mkg妖a渄5Ѥ[h7Y !DaM6+kZa[9o,#\U\jJkJ1]5[_kNR7P1\ NsB>bƲV9Rf& Z4h1jٍuYV#k[v[)9blmB <?7mNd4H�U3I"$I$j QE#=$<EURE$M4TMɛ&]'5(c!E5/9=߱i]\rl"qXkEk浭#!!T 6&͌cD\1Zzѽ(PH5r1yAlzfթkxoFm֑mܿ5ME!`Ai7<xy|nvj֍,"1vA!$?a1R;fk/2iIOm(-5RMpqm^nؔ��H�U3H$$jK@HLE4SM4VM5]SRHth<|:Jk#b ꖡ%ȖPDeBmjj{$L q&U2鮢BĬi9y98B=J3* ];[ e+U:0c(eb6D jȂ"AfOZJm.sӚ3\3 ֵ.dOgERv44V$RUZƅy:.Q)b5lj5d+VOٙH�U3HDI$M@PEMDEA5iu]EYu,Fo3r&Z*MdH_W1)6OvH8*eYNQ=\@TdQ% "_9'n\kW4MX/i6B#i S Q&K& 6R:pXq|$4{W6eZLR)rdO v7*dFnJ֗8{94RW m+^Ϧ!l՞<صT Qaܹl'm#5q�H�U3I$$I$KEEA5I4UEUfUYNJ\1A=F9ɶB^0WQstӄ IDvgl\BmۅTW8j0k_j!rs*il%X7l'Mf=+hT=漢vGRCvlKcj9ߛ](HեJB֋I?mSiE02mH)VTBb>h !;Zl$ijE$a:h5k9]+$k^mȠ�H�E3I$(%ERA#IQdUU��!� _y%��`1� #w� 'W> @ 'sR悐Vdm}k_n}[Qu"MSt":'M!ޱ�:AI*̶b5ȤL( a������2PG00X HڜQ* eJuSۈ=UӀA'թTOxUG@[j1@V x_"VXh $x\\~jjjS,G 2 9{¢liWU#]Awu28ZQDĀ 7SKRe $zD1fEH\EBU\UJrNp||Ga Np|VHںoMQٮLar$I.cd"T3P-ECT?qU3h;H=)4p|,9Qʘ;A�:EL+mM(0?O`aG bu1aAbP\` :+@Lt*+�|*@@E1 "uSäK`pNHjv@wGS-p} ."dwqvY<_0z@r,8}9Q @up,~;e7<OULSwD K / A)g;pIjr mPI-mt Kadzc@1 Nək|<`Um#L ə(&$f!PӇ�K 0i wl~(= xnCAel'w3 ZٌZm,9dAq�ꂂG*@tBȲLuB▽`HS:!‰xxm6C6 #p,q>O 1(FiS� >3cWyNSFex09zp8x_n7ssVuL"e8wlZǪ(w9.Ỵ⅘#QI'!ǭ<ƀwbBAe `>YH%uXTG]؍mK`hS%2_O DK:("::d`Puq"e #�otVM£V|Y����_��*X������ 0^R%:N0q u4@p�8}7yԁ N@x#�ګĜ[m.i@>W?2s* -Z*BD/iQŀԁ:q>טh8;V<(x3|,1M6vv# �G=N;uRx>ex wQ 5;SnW80݂;t =J@ـWV 8VuN�.=4PSy�b5]z@~f  T�>�|+€Fih ~�g@_aU9@GAW!o. ыc9pB(C.cE T:sMUy); |@h'E_|͏?/03FGzjO|DEqxDAq;׉M&Q<؟@jhg!¼Jax%GQ<v^9>= "'kU}_{׉<6MuJăͳ.����� f#$Xϳ|g[}x;0AJQ=͘(OSXŒ^7ϥ)U[x,̀iyP�8�o �6#PJ�Ul^>+JPj@$A/-jS`?muLZ�P+H{m+ۙt,<nhgE��!� %��`!� :L 'u1U'((�d|"ߤREÆHœi: OjzA%}"(p2^e]JWmEU �daGX}Ҫ O=Tt_SZGY"ȊZa5]鮠Wte!_J`7 <MrHqj5E)ykb |f B'ꠁdTEPY`?PPga<;@f` $Nj0_4_zQu*ByHFFIZC@WZlVD�v"MQpXY891F psFM 7LJnC߬p XZQ=p 2)k!oh2qapJT�= W(B?ا~uer1!AN_S("@ƐVy%rE41=N�}>UY[S?BP"[# n8�o%%F8c\$f :!ŏ &(b3Bd )P:ſ7*nxi<0xk( Фђ/'e\0� D6xȠ<=gI&;` $|aĮEi-n ) |99 h$s}68Of`Vn9)kl!S=W#j|r+V QPuL2 ⅀օ'; � Ee  8`[Ƒe�p|ӻՀ�]Q!MKelO1ֱ IrE F!BF)ӿlPsqu 0V#ۚ>!XnIJjCXI# <ROn gD50 4~3d$}㸺e«W'x1|?9X؁Z5UP8`Hy|�����#|Je[k^iKa[>`|).}���_�� mn`` f; bz,.`.=<^_}>8J|f@ON{M U/p Wsɻ&.)\+*ޯws<o OO>;]W �67m`uw8U`_Z濂 9 hN � zX P:8Gp様9dՇ(5Кx@{1_>"84,yhR= # 4'K�qǍDa]=Dh XXNq+|���W�� OAxdžJJw21$`B[`<y2y>:]7~6A^1q5@럁bӜ hrӅҵꆃZU^ 纁UkhUل�&$ 9Ĥ3Ҡ�w/ 1Qh W$(idɸgRcP$5YeRZskqG ڀX|}*:X vcSKbĎ'*?#hQ$4.-j?9Uw65Toeu `爐OrOjڪiaᢋbrxxh#4mLi?ATnpęP.yf 4,Obt?V?:c(zr<*\l+7~s:>~Fu26 A1lN<*~>CȕÈ��!� %��`!� 78>ꨥG-^7u@Fw�",1Ӏ~]Lxp&",O8/gzwxW o^z"€}S�0C̖2Qw.2b9=܏䁆8U>sķ8NwT)#+}XM91Ge( W=gK[1 U4`y}Leh"l3c P!|9줯T T(,H�wS&ldM�bM4Qϰz#B 0veB ŏ1`(D3İ@(uyL5lcFB@𴅫x0omXPAļ 4 7`.^rwa{#f/'o G `rr8擣#qA}LPH1/y8@feu`?``9jvepLR�_U@jYDhD)1B67b JO# q8L%;<P* |$}4^ Zr`q8Hja _Y JNҌM& P쨷61O;ι%;݈v+q>7xuL pݜuvPghRX 30̢s#'{+38,'PD4̦3b(B:il _hE˭�����*X����� @�1WNͪX(u }G@h^*>: Y*yj/m.ԧ9`3ۻ*>7swaݾXc~f-Çu*^sj�^\-r8^aSXu^סKejS?RPHPyQm|>ruO['Ug XwZq n �(Ǯc(G{88"FƁ=c=G<fZ:g sʼn�zWcY˜*Բt(D\U~P�W�^T�b5~28��?DHW #^opP1ʛ\ ;��@`;� 3c�mǐǞ4Kw'>O3`W ĜhqKb)1cܞf=GQ<v^8/}c8O˱yux?8_1uJ2J ����� ыvg8jOD~7�R;�XQRv|:gSUc$g[cv"Vci٣T(}.Y3ȢcR8ۀ9Bb~,XTDIZpFd,ͽ;b2g -%~v1( +-vF_W鬠[J$`Ʌ ݲS;8ϗ-'36ܐs\MrBvoJcG9TR3@dsH87K2o Oj^ Đ TP @VqK�ԽU}UkP9� hPTN2~.ک+ELxX XDQuhq\g#0qU⇁@vkgfRp"-=Eu5nfa1UC8'@ SKvIB!COut>/;ur((\Kε8uT( <;tm@}B)@5 0^]3 jcaG%psv'8|9c,.ی~ q9iknaJP}~uL bdcp���!� %��@ !� u]e]`F _ @O Vd)VeNlWjݾSo ˎzYNzHmŁ$r9XbphS˨ &RFQtM2S>xzt Ϣ!ZkerI#K! ߵMqc\lTnXAVm@9OѠ4CC9lHC$G8Ć3 8$΄+M5?~bi!l!fXַVk\sH�U3I$J$I$ꩪHA$NE#<OIYDMDUFV]6ϋ& /5N5-kTE{^]Sk8Zֵ{mu" ZTVi\:$i{h/ֵǍn:ѣ&;۷ON]G:/ Qٳk浭#ZZ]q9K[g%,*@D'.U?p5Mk洵3R/I)sK*BDx xzvZV""Yf)AJڔ"Fl7n]Ѱ>zhYqc�H�f3HI$I$*b,9PE$QU4IYVUE3Z] a-c!"DP5j4H浭lLW6awkSyHF;k/j&b$ dJa9%v(  oQqV]r!o<NV.YĎ[Arl( 5@ckIrVݪp+:daQ򘍺6-j$4ZfsޏYisu�>kTЌ6Z6VH�f3)$I$Q$J<ԒITQ5]EMQ#Q21Z4slٞ)w HhZD?9%d1I_j;uX#e`SV#TJ8=G v1Ei/8X֛΄Ynj #eZDsAΩd+#^kbTt_Mȏ TI0!.emiLV|!n5έVIf;sYW:RֹuJеm=vl 7fP�H�f3H$I$@I$Y5S]UQ%Y]FUL$UgοR%[xU(hGdB+"ꦈzM=Ս<6IiR8:4O Qm˚ֵl+D! cm5&#Zchh]8r٬R6xPƺlֹLuuz d>P&Fdj浕4S"+ 歶r kjgq jmTYnk%86NgWVҕuk+VkO8 6Ck^Fk\4��H�V3II$I$窚M$TI%RQUuWQYuecn'2`FJTd_Oa'6"N6蛏[[25J\pq׶34/G�i:rwVS}d+#ač5�TZ\mP򠽶T8m^xDV  Hp0�smjTIBNT'\O{)Mmm$ a=kJR^Y`Y}Fg.?kYeU24IuhkpH2ǜm"`�H�U3II(I%*jꚙLMTIdU%MueVYvU]YVUV lޥ 9MΫGVI 9# 0Y0͚`= #!K.I~3 eK]owPf1ce%6)5 4PhU]x ; mX5ʂ֕ZG-RBv j1@`6K^#\Hpc%[iJ)j[V,iF0>;okXmSU`#AڶQj='`ѽmb>mjPa3T \T.bH�U3E"R$$jb 8ME4PQ%IUY6e5T��!� %��`!� LJp*`|O/n,v+:΢;P6E<Cafs}C=Q;Zªs;j?E O*̓~p꩞>rHtl C(af;Tڠwa:w0',|„@Ou#}=,ņ3Fyx{/,AuL2;ېp  'H �<\0FV]),3%��5I'v3'&@}IqVKj Ťu�O6vM( +/ŸS=+: LJ 8INb,م~e|4c@2Yy=Hvu?f@> U@P9P'K4xi܌'Jۇ)LSa<<d@ a}a=W`roNU}99t| @8I&P(Q3d)NG{��0 NB!KB BK<$Zy\0�ZX¹H;�ha,7R3 Nq#Ʃ(?%+Ŗ CNja59&$5BOtkٍ5(^<=,LWʇ}VQbǹ=YV,lAS�����#|/'˹%Qr|ki˓̼ >_x08~j3kx]x�����|'Og<eGU'9__OO`cT+htO]DP_i.O5wt._'L.�wY|�> �?�_I]�u4_`�p� �:�?fr8H\P7)4rǬds?퀅@ ܒ"_#W'Z[-<k뿗 X�Xl>`4"pt<\: tex+ V Bt|ia6@%-S 65@4~Hmw����� *og DDr NJ3�$jty?T{x.f�eQ}w h0Nq:͋08P01ˀA3vX#v&$n,/*Isr9�{aFKtRR{9Y;f?PszU&b@?=fLCc $/3HqQ8J<Sox -P)+E5LO5tz`#DtL_-�.L&;pBٜ'a2<:MjǪ:*RU@CjVu]=T*AKq>! eP+�`9Ff(sʨ9!Y "Y�("y0W2Bd.# T.e$@.ODus1#Uu_C[QD'<'@4OLTG1|l`H0J){ljN�-&sfApxu1,x#/9:sUL4:�NGc*s'25e .jUeuSt9=T*[1K`Q~8Xv؃S0uV"1 4#p {6;1tZ:P*f?`$ /�c%�t%qtL[!UbsʑƄ30s@S4b!g?sİDΒ]8nn{C`cT  B&L^XsDĔZ;��!� 6%��`!� $_|JY1wuzu_9 !~-r6iEӑH$Bó TнP < 'J#jbi`~'Dž29<F6eb5x8-cG'Hc*.s(ѩ@jx(4!$`g 2J^T~YD(/qF=|@р6!�Yd9" Ӧ$"̡$0=eOņ|,3ļ˩K'"Ip{;10}P A)FsÛٽCW<<``(=r!92x՞G#i<ω9NEQbx@5nGQ >Eer4E8>:FqÈ G" Z_8r/lj���_��*X����� 9WT}ysu|-]zί Wëǖ1^Ju x06  <p ` j ^�xt>ڽg :s=y"u`|+l,ǁ# Xh~hWnıN;&Q.=HX\ͫSg Ngߨ"s YA9nq:p _ Vyf:C½י-XuXB(n48^awQ8SCͰnf#8N#f./EW"W^\jO7_ j0€Y'Mk�{_�`Š`7�Wd }9/$ - ,@׉`3zĨ<X>q5 *k6Q+ֺĥ 2*Q.IFƒ#���-������ @`  �̆ I;!}+�̒_/pd& U3@)(L(E�� CK@o/d!>cw;!\J5,0RudA�{`&Pd�{`&_siA#�@A$o`C A4C 4ȴ ��� A!�DM h /p 4 A$80MFLHL`@ "I0 ł"PI�A1@~TC3{=0A"!FM �"H&A( Hp`@AE&u�|Y5YqpZ2L4 HA71`~TC3x P /h 4H@``@y�b$oࠃA$80M ł"PI�A@d  M���$L� @>A$80M "PI�Ad4�B`&C��0A8!�DM p /p A4C A4r&$�0d0 p<@'D  H�?@ P$@}@�d PP`C �3DՉ*B �⧓8e[08kaӟ~7׳cfH`C <0*y(فN!ܘD>ʀ ɻTPP1n^ami�R1Y; M�Ԡ(Q,,F��?8�&(0B�0N@ CIB-!b_1|E!(t$QGˀ,B@LB>!P@0�T�RQd<La5v��!� aŀ%��`TL � P�ĘP ,X2�5O Ԁڀ;�T�;HBB,ZՀ60 }ۉ�̫�,Jä{]!&U`b7f &HQJ0EH`.8AM@GPL &76(%9e�Qa�3E �2�UO&G,zwpO�,\ <*KϳE~m d8@ea SnscE8 2@`Sv$(�b1OHԧ.7aZ@�L%d 3H @b?ն[��`P9d ġYB,&�f-YY7T�<�xXb <BU /1 |şw7&>�eox` dXc$$F$iyY7�r��$œ qxυ| �v~9Kk V�: C9Ea$8R0UTZCJBNw:U �>u5Wr�y@,2Ш`nP%(T�}(`[Nb}¼\/;$a7вɠ�%)LB7L+@BH@ @�0 W }0b5)�+�. h(4 A,39Ge�  @tM@K�#ͷC.C�d0 H`a)Q³%)_3/޶HMw"_s<BX#;8~\nxf�פ Hd(XCb1v&%ճ�m?/l���bL&*X!|#�)XC|�D�"�N^( B,7SдI@&` � @@1(�؇ɟ$|XoŸc�6$7pԓ@3&@m-ߟTJ& %v} @�t*;&W,1oq`�p J� ݉aICXH� �nL+9` m^��222&-�a2!�+(P �n_VV5�b�4@R+5_ �`{t q>X qoTu�dLX`( 8|O b boV4]�1& @s�hMH'`'|'�4&p]@C&0B(B/nOg�2 enb,M�d` P * Q6/ O (jQl�<:� qo`be+nt�bC@*!�m˿T��4hg lŤZ?XYxG|㵠�UA0��(:�~4` bAi� eGc>x� B� `�*P AI $bCKdF_`d!??l?PXI3fퟱ: OBs')C�} @�/ o۾í�:! !|X -�) Brn՜u ~cX7oo­` P:+ni"n9@:>�N`2�0$ :A_|.%OC?B�0KFKc/O"_W �V@b3tr) KQٚXAKꀁ @XͯP@!�^Pi G�T= *<>CpR }X��ixn |䄹:Bh��!� р%��@ !� \]eRHTQKRCMFd$4mͦIK6h[XVŭ<;T$^db5 "(ܶAhF }1+Y숢õFnHZJѬ~QI!k$IM$jGe>kWfD؉zXT7DN5¦*s[a+`ŅvJAN3j]DSaq ?yg6j9kl3La}-śpVUH�T3I$I$ϣK4ESQ4QuMEUQT 1aq#G VzHw!?[ %QkVXivͯ݋5Me&.=:МP $&*إ֮HMbRx:+ h[A!,lF9C$r=Z>SXBYD)- +hD)YՆAӎsZe]׳HB@aIS3ՠ(k\D-_Z}IatYW9<ɭ(mLX+1 H�E3I$$T4IAdQAeX]TEvU]4D<藥P"DCŋ?3UX|%L L%kM+n8umI7vkRWw9)%m_9bt-\RC=еUgObeǾ k$бJے(*fZCGvk[xV 4JK਄V7]%kjg,n<ʿk䶳֩|tqF Z�ib&A֕lڣe[ ա(BkQH55A,mxk5H�T3)$$I%*ꢪ<IMDVMEYU]e]u [ 4MC.FbBJL!f 8,-Rv ZǴk"wʃ=qu&_y~5m6M0{WϕwbpFRRJ}*ZXN0ɬBυl1N$� 7E [~b'h[k&JpjJWɡv2JY5TeٽzÈas浮#yJZ|Y@ֵ:im|#]8ֵ͠.�H�U3I(I$LDMEYUaUaiej2bE)*đHRrj$85e$RIT k2ģf 1tװ )r"ƇUU!<]T hq-wxUTeٟ:Y"Il,z,d z%JbUk7=6/%փY 9k^'3wTˎL6$YZ!Z8ָ$,#PYg}TFI`[b6i$v< c�`�H�U3DI$I$@U�N(<9DTS9]SWIdW9sdMiANUBm=93Zޝ{7 Sl4 =6HbKԤDk#ؑH-wP.j^0 Ϣr><4L  s%)@Шmibе9͙qI* %еT7fM":I+V(6IK C挖kmflnչZjWjֵkZ�JR.lֵ%1 5F!L#Z%M9i=cR`C=tZļH�f3HI$I$!a cAOAIA4QY$Qze[++t&* x=o Ϙk+La4 dYCk֑i ٥5(N5+b�m- P h69ٰkYMTK� igٕW:1e[<fK"\E 5cG4-#qza9[Vjk Q0dو[Őkb8 SYyZ*fC([z! ˾1} 5Ra*H�f3dI$I$k@PHQIA4M%]4MOD'��!� ݀%��`�ja%d( `j(`v%0>0!zQEb[U�  H A@�|Y5d$q>Imt 0h- 1&(<×@bL�1nX~�kbfGdq@�;�~`'&�NDo IhNs@ �#`(FeekdKOH �� /:+ 1(X߾ΐ뇀:0ѱ}(AiO{e@ d)01 pŒ8�.\$ėZwO ̨!!>s28�/�I&; ݷA1 =ĆT]P@*&�@ bـ[,k��’QX ;q2��CK(PA!`�_RL&qa�XṶI ԡщ˼h n�%B)D~@�1+YXIq @~ ۩9T  - O;t{g̥l! gny4j�RekX��h*Y@0 $|>WC-m)/b~%;&OpϹ?д$jg�|M(a4nYx5ӎ5S0710 = d +%%_s{@+Ʌv!`4 ~7�Ѻī�#QY7;HY15:@،vuݸ7><,a05p۹3tR&ɥ`Q1� P 8%@� w7Jqi%7V+  5�PaEr$'%=h8k�\Z JzS{y@ Ɂ2V(l쪏Ԡ҆ƎfPgy2! �gK61/hi-( m}F%ܝ͛c,�)&ro,|cwc�XQ mĞ` 7p̧`?�h޶p=;HDXilݐr$2RA ulEi8Sg 8=n#lwe ՙg+@ ݏuQs@ �P�0 !2P W~%qlm�4�@@:f&\ @�J!!25E�jM8jF2xJo] @ Eti+֟~#9W�~Pi CPM/Z:V9 T 5 sƾmz@2Ix`',4Rfۡ=m` WlR�!&KF#Q^N#3�D +oo>j 6B?,nCwk5@@� o&g[ k� xJ~3�?tky0 1(nA׆�V�`B�_FؚA{nⓏ>@@:0$p܂ew?fhPd/ 4H ��~CJ0{ BCw1]=X3@ p/\? G j�a)*KtvZCKH ?"HR&%a+=W<6RM۲?{kNBGuHI,^oA׀=�DR yǮj Fcgq2�Xid I\%*.9 pAA#%. 6Zwa3n5W,@f$.)( @Vdr`b]�Ȇ{nh ib9v\>|Džr50&|H~7q#�'�NQC:1>r,q4'#gS�P�!@``i04 M)8#;1&3��!� %��`!�T%U�$�`��`V !OK6A6cɀmN$u�`h`rm 3riIBr'n~ceT8haE'㐞AΛ3BfY\ ߷l8P`�1!' 76J>ByF’t� Xŷ>no"ݕR{ !�L&+6S{ 0(%O(gϺh�PaZm䐀X3 4Ԇfv'_m96)cy`&a) d7/`$H`ၩ۝n"Jk[�Ud>0nX &υp �J݊do{XKx_\` ᅍ۷ fdF4᳻.&1x5$j-W3'}?D"%?<R1AXKV ᤤ;{H%}ߨIHN?` 0Pf&d=Yfif{I۞e#s.}"/BA7|X*`Xܔri!>~}RtICd ّʹbl������hC{/ί}>Y{ws8_˹)!y@LVI#! 9s1t[ Ag}o05 Hw0axL8 <Gx$cŐ)<$X_,9] $OƉr����_��k¶z|Ǔ[{}{Wtww=wbһwjnw~.wwp\ow�?3 'EXq&,π n_e`ԁ!ߓ_WA2 7@W@7O:©`~;Njw@ '8pt�o0zx((}TP "U ] �?<$X_,9] $OƉr���W�� ud77n%?u73(? ��ws0"* 4Ta` cҀh@P�l<[ @.8mgS�]�N,8vb<*'T80.!"j` (\J/h @�a`$d qp8 �POt<[c; TlGXRҪJ?`3x 0_0@=q!Ua@!$�} P77'Tʴ_ՒHHMs=@p.yP [ȫq=dlϐ@/uIgBbZ-Z�ަF�p8o[0 x{ $S#tb^D/䀼E%@[,2P,G�ZF3NS3d'2JY;0 2(O8M$2a>. Xp wu#L(@n97 ћ g�BKnꚧ�pu ua.Ow0W;}(q3�kis[gc@ic'8Pmp Xc>?f={a裇qtɲO�ƴp1�_ݰP@>WPaY:z{#O031�(yšAupPC@X�x0 @�e�` haaoR5,:�=RYL (L&0@ e<�` T G -<t��!� %��`!�uyX�ph` {lr!?aMz�h@Q,J BR~3B#�@;ڋ8P@F'¹5# =!L7dƒg`pt<V#L L�E=nd/u#,iafC7ݖ߹ӟ; _j|"uG�OWS(È2<N&"gG2LJzӚFjDA@?t:#TKY?9Q2?j`AGqV# Ji?흦'v9C|O$}Oj9x!7XsDHGAcG\@xX�cɏF5[a OHnN'I1rԫW TNu 6$DxzG :r;rc8cWuu.Z Հ30|戊  & & fFa5?F�_\p������"X����� 1�kk^_Wx@(?m\Nx"?媯$x : �0 : _^@uW/~{6]xԶo7{ Ҝ0̘۬> �9?c\.@r=Z�r-qJ:b}vQ*x, @ m:L`f`k](3tי͘mXP�がF9 q֥Y3 S+Y�^e V�vGXr|=Uꃍ ǀ+@lbǞ8dA l�<+eGn 4pa"Vs(p\Mmy aD�}xXpxUy9G>;8K\<ql)2Yo^Ɠ/J s񃖵W(�y�w !t*Zgl`t} @U�C.m הPkUs^X�kƈvką -W xTkŀIQ3qu�6k4MM_J#%.����� NhB�np�MzJZGy .f@00 ?a;h:uiP0ܛxꁵ*Pt|4`-0><na#OSr7Ao Uhkug@ sf<HOm"0UP^ |@By&ђ@)2{qKHU�.yj5S<tI<mlkK5gzEZ9\ �߹�S!>�q[ˆu1 �>j"J9`\H ֍ S7?US`j8{Hy8ULl~J`o#xP jbw7%RH/rtp0tq/b=`D3\?bV(z"FQy<E 8aS5�s%Xx30Z�:~ 'IcV;b;v輽`7SWÀ::ITÜ�bcAӶ{04|ޏt �Tw@6h@d_R< OIxb A> UoxuuQgTV�K �:pM�<WqI) ` Xk�2ؐ:`ungEL8<Ӊjd~)�{P]d{}kI  c˛8ׇꩊ #P $y~pH;$k?U@5#��!� 9%��@ !� #zRnk|,`不UKJ\ѩy93 DԚifcfA(zF@t3aFF*3 dc-vm{k1g4z,6 Hţ`MseW_lVV> i#[eYQg Bd5bĭj%2RM]of-;VK O B6k!F lF_igMsp=괭 n:bpm ֹu&H�V3eJ$I$*5EU$SY$QEDIeQuU4lړlRP16Q_,mT9ߖL?`·?l{߸8%MU J}೸kH\lyB4!eO!OG6erصJN<|g"檒[2-.!h^A[+)D"֖#Xǭ6/3G!++W,V5 -+>[|P8p51An6aR@H�V3,I$$<QA4TMDITITUUYYVhkw9 j1 q! QSUh8M RYaek)O Zi`.0Że#!͖m#N1R-%eӎ9tLpV+k+Ml[q[ ]#b },# ؗ6J0cI[839x)L[%K-ȻRr6324)L8eu'NFZY4"nۼ,[8vR�H�V3h$I$* 8M$I%UTUE]eUaAgr2bH02m֜. [fN`ׄ{54koHJRr\xmVE5%bqUGZL;HHO UBB*#Hs o xZ!Xc+,c0 әs4le@s8mu0B\`5pqz8^1V:Xq,Q Sz0crәFN B)έ1rmO-K S9-pp�H�U3)"HI$MAMQuIeUuWUVeUVdA[^ֳH¹PmV!"Ḭk:r>F&:P-,9֯d{@tKB)gyL_(iII/M lSR1#]Pflj5*ei,F_B?ע|26͚[DIPwJvkH"s@ĸNQIUuM`Z֥ZC-5Zc+t\ҙLHHgΧ9e-̍z6n7s-(��H�U3E"R$J$iMDĐMItU%YU]d]eS)e6o7&25͝Y(լ$d+SsKJ85&Izl 8ϘCraTjPݫظIU,5K H;ᖙ S !m͵ fVBg*TkZ.$P9Plj5i3BHVLGb55vеIl{=KY&I, ^cB,ߩ&k93мvZMcrj\rUe-aaRmf\־H�U3HIDI$)壍DēAQ%YDYevUUUuݿCWl,[l*ՠF"9>LFb6f|v1|M)! Ea#T<<uu7 U6T0H`5!uOX-,E*Qfy 3w~ _&|5fDhC"w6Mnk"Rw1L/Y +ct.*$#clIpǁ3۾uƓhv6kސup/5z{6LhUYnsn@t4RH�TCi"I$I$DI5M$IVQDAeYd3<J$Ύk��!� d%��`!�XQ`Ъ*xJU@@DXtTbbt'oDjc= P  BPbxbE7K?ia|߈g_*�dPa@MW!|Ve:7 �p@Q�j#*VF_/�\4�P*Zvvw}� 0W$q� I,W1j'~S�@�DX ` x@q ,0=�0 4 Qh=kc=U V)k$Xqq>꾦ŎT�1ر��~Nk0@>�, Å07P3Joqsw�X.~!pqQT!$b+ +6Kssg:Ifc_:lXu;:ԛK$wfW9yXp9n#rSն3A؟uU07@4g`p `x3 *//8 LIP�>"4ȄXQ'[([ T [#Q`,7,]qL}s+C.a+h#N�����|K|%VJ[ծSYERv^/xe^#_-FwO}$ouvx����� ӟ�@If! 5ܮgm$�mC]߫|:%Lҗ>?wmr.u}+Yu;OoT;OZw?_{]Ww񵀴�ywPS[0k#Ds03'q. ] ݴ>{, oa?ED:P� 0�/27Ip'GT8xxEe8oX0��Ѱ `phAVCO8 \_dk%JTU_G@����� N� ƃ :6+a68uF8Kj.Tmr-)ֹ'ԳAU.\p4SZ!]otb=P%RUPN*ۇT̀?\4Gp`45qb%Msmt.x掩 e*1ڧPiqTʇ*ZU0.nce�Ǵ}Aj jYZw L ,T`fH ?<jS!8�i�>�2d(?2#�<�'@F=Apj�p#*aR C51\ Wvg.y>êcZ@6]L�r0u0�~`'F> f _ SbH: 3YL8Q�Ta{b(�eXxC6>J [ OPL|$ƸxykfPa<d,nl!_<.A[@XzL:H ؍XwGl<[#e:$O=lzBZꘝгN0y-k qw0|s T nwu^qyv;_Ka죡1ݻu+v5FqR|#6K7ūOY߇@-<u1Y۹v;eFaNabXՖ0AΡ+Q(ssÕP!0hiefJP<kp<!7�0?L- SEN/3z 3hꩄ!< gJY4H"s�4�y+;:( OyqP=(@��!� %��`!�'NzZ5!9nƓ @3�e( 4Ͳ2(;�D"i[JBrt9@|*tߧ`8~x+ Eۇ?f �2ɉͶ@ J%g=xcP&I-!0Prxޏb^%W|[gcOGI'㖣\?qJ +'v|SǙFfm&G<zrqgI<sg\( n)¤L8@vSS>=ac?8-q{u|l0{#jƱP,,�a@h`F@+0YQeǮCug(06|?')Pf @Sߣ$_gX %T^L&B,M9[J:>Ї?f8?5@Wt�78JP<Zi-"5az]A,Ԯ�=ȍ0Ԉ MU,-rQeuZ#eVSJ�Ϭ���_��"X����� > 7?H y>>7;7и�nbW�|?. '\�=׬>CT}}PX *3׃w_ɓaW�Cx:�0�:h|4�W�O`�jWЫ5x�`D k� #^ P  `hW0u~�8@NEx\ 0^5@k �=a'//:3�<68�rCkfhc@9�@ �vGj*vJܞx;Oǁfm7Bٶ1{9rl߰Xvs/wZv;V0Ô="cB> <ߛ{fXzq| R ju|+_y-|+ۜ}Ų^"L+|/Վ9k繕gQǎku4r•qsI۳f8?eo^bQc|=mws ט3m/i bN{G8tsvMy(o̱߽)gF;8S|ὗ՟KF3F݄1b>+Am8@%gBÇqϟys?q;}�وO~rL?p]JwcqȖ %9 X����� C6ň 4΀F8 '⫑^~ʅkM4JCEP> _]f\Q`R}Q<5 xXh�!*se_{p.pC>%)B$ҪyO p] 1,Q>9T3ţy nj 4Eu@k'G(MmF#U {+ ^Yi`II5uL*{{I͏T {<԰ _@my�8KE4dX< |�>�>. p;k0tp C=Pmt<uSRi-( 2v>|$[x `)�DFf<:">+0 X(P06 !L�<0DN m;�' S`: ƴ,}n?2 �q��P:1ȏU!ãaTN?CP�6êaL5R` �8C�nm.c:SDr8��!� )%��`!�me7ڦ d6hXJY>`xbKΔ4;Q=0#VlaOZŷlpjg:򃂏Z<Wr@0+k%8. @'} uLO:m'taԨZ]8tj`{C4z0�:UUxZL0aE8n `2r+3 Ť[&4/V� 6cO0�:W&AWkc|F]LF̸)8.Z*b ZT F6Pze-8_�W@:@idPaE|$f;,!qyFAw= LG(Ue0+#3So,[ E ) ɻ�H4?@rX �HѤjr1)qh}89?*FC�Y)8tC&i-y!/_OVi5 di. j!��7a59衃al@dA<fu$031�#D gl@0 {�p1T \<Аq<I:`BI001&9ubx 3!0q'D P.*0ērKܠ2፶G峋4n 6XnP #s?LO6VOlՃ9wU)N!#CQbIKáUπk8 "ڈ]lUGwTDd-l"lue20) U�����|Ov'Y{s/~rk&R,e[#ইeaҦG���_�� l>> OW.Sp]pj~<MW|XuA.G S[ID.ʺyUs 8AwFພҗJw8�7:yKG"uIoO/lhfuS<|}3�` h;˶o)Ro=7?{.yy>,c@�<@Cr}܄1T@< N@5pb埀B`��T(>x!qDbMn�Od2xp{]W|뿕,DZ}tPM���W�� &,U_H }ֹKMuU{Q*6:~y-)vPeْzK@Q͈DY, `9JF.I`xF#qGXp#ʀ_axVZRƞ>~;at' zi s#2V8V08fc D, 50BTԭL^ܵ[C{_9`HQximj׽C >t�}0 j^Do5PHp)xu0{ �>vOxcCQ3ʮuL/=63;0x7#BD@M#Y$y8~<�j@?UE4SPrt"u8c,8,N�[(�{{&NP،)l62T�=[:z<,S�tg_0I./8 >� p! NrS_Cu�yT7F� @*= p˘.Q֕1 vC @eT B!_xp1,P B)"r$pVpf7bhcA$˓/@15�%�Y`M 8LǀzDbx'1Ia<�w T0 �`�.+� rFvxƟ"҆0��!� 7%��@ !�][UM)|4u<JK'F1БH;,&STЉS\5J)!I!e!ZÛM.jcW;WYw/Ek\ ґG%CNT&c֥s_cHJ2=lLa!N\d3**HCѱ19GUsi5\72 g<W$rA˳Z rc>ḽZKA+[4 @H�U3d$$MI5RM$UUUQ5Mu]Vf9Oйl95* 4>SjEjhCk(˅$hcuhPˠv0kbr#HkUDxAAXVikj]@~|/<S)mJ-דN<l׭JQ!1#Dᄈ|lK̄ӵMrt9J9ٲ i'VSI략7$jR5F%Y9E>Ix{V{R'O]l!ԑUmS67&A1h3Z1tUIjP�H�D3i"$$n=EEQTQEYU]e]Up3rjBB{0zpm[bHW/1muo6#ST7s RΨ@OܵRɋuWRG^6C֪IBBTcEht<FpabƵNS!;–:ϗ>E5* TN%%k[E~ֱl#jc0tSKvXkff2KBtj8NNl`F޼n8\�s\��H�V3I"I$I$+ 8=4O@A4HQ#M4z- GmSΝ5kZB5t ֑=mM,)H9JkaJk2O54 %qQKZ}kUNJk5R�TJ1!A�:TZsͥt!*aBүchOsr.\>u9˔5Te4_\S%i,+$+T%+5"id]nqo6.KN9I^)smԭ+-)n^-l US&Zd0�H�U3I$IDI$ꩺ 9EATI4EUQY4M46>ww~DTҒSaVM7}q  V!cϵQKֺ=BҴTH%ʘ$s K$9&u+X֠T- d7-l czN)Q͆hҩ*DV)цRXo]?h6u�kZn{_T p2B-]*[lZExXf9P9NiR_t!kjZ:!L\wd>q٭ciRff|*ɋkا@H�D3m"$ =PM%A4PQ$UU]fTU6EZ2G4ؙj&. ae ]ODn4.S " Lm_\H#D.P6^,73TBL8S`dudX!))XKhJXKJjk ml5˦񭳝B˪`9\e(m֌W,w9P3tJ6 Af2.zz9i Mj1غf;cw).̫IE-Eִ5�H�U3eQDI$↤-$ATUSQtQXY5]DeuԷ<xJ OhձDcB: ,#]jS[|6&mvF)+ɊjZ"Ffa A̋,)ul |�IąĶCR4=r\(5m4Tj}jsR],*+-Wf) \Υw;vp8ƪ>ɐ,%sNej>u)RxhZ'9 5`EڴZE_"nZ��H�U3IQDQ$KEI5WQe]aYe/ DQ"-kHݝ4*��!�C%��`!��g`Bpwlu8zpd*y8cPкp7)@�sPl =P߬�e9$.$:}�<!5P[},8U2v�ziduGj' �h5>(Z0xp�t@YT 8{N@2jKA0!'!8)RJQ"7P#j\2%J\> a8-L@ @NZ�nCOJ�x@f_B>� S1K f[bHxiy I[T �h2Lt(}$CPZ[WòA@ *4-Yg$쇈d2j 3GJŇ!HGH=KPHKh^H&�D_u9tJegdBAI @U�Q{LjD ‰qdy$S}(#wGt-=V ՜y)e1"޴PH@P0�ހ~@?>D@5 5%@yu3=en}DP nPpY~ J4>^)nzzyz̃Sli0By穁 <�u{�m Q@QVG@[8\hԒ>wZl������"X����� }~Uu:_�,_0]yP�}^ :>z>c�`�꼙xY7{;X=�׃uW^5Pa|x |}xi*\ G׊w8aip.\<A: 02(U{NpX d ?� xvWUxX H ǐ+Mc b}yt8Z @� �U�?:>F^B_D `1�.:06x0�ocׄ3D;�  �$ $&̜8|AF_uWyp;�w`#uߘ8{#ׁU<"9e$Ru=NE{.9[8?(+ mc#Q0_6n szF5v;)VqUmS}|ew<u3<>[caМXQPP[Fz>(5fڹl~^u}n(_le{ 1v7e 0jàυ󟺜U()sV繫cn4<z܈lUNȫ3;,Gv|g/@WqG}SS,z1-]̆F7LJ^^b!h\('kF37Sά\}^;u-Sz›ZDW>�D���G������ (HNJ d0v  `0 A�@Xa4BJ'� 1){� C�tX�tJn1<p2=�)�.,*N߾n 0K r70) Ƃ 0" !�TA(7@!M�pVO  IHI]45%R^9931H^ A@T v@W p�HQ! h$ @�*8 |�#^�gݛrcx�d�ҋ(9h=gXk0~ZV 1 ?9R&2,�{qIo^�!�!  @[>` K{�@!�"C�k0@ (P)̀3]@�Xx8� R@tW&`†dR-��!�;O%��`  y: e�+6 ߠR@1M sw` ڀ/h$A"6@TaMw/ /,� I H ؂YMA j( }\pq 6p@�5&r `4d߸#�%�E,A&O5ETsm0 V|iCL�nA$80M "PI�A`h Q`~�f,0x0,vv *@&L�;j/8�X$PM /`A4�hg?J��"�Atr7C��w>E,A&p@ ԰I}�L~�xM"r4x�(P4&�|P�"; C&8,3 j2~!L�@$$r! ^R\^ZM`Ln b4 _PE ae(܋x 403�@*&|bSwa<ΐ@ @i[r6J܂�$ ` vE0 &(�w#H!hrP"j��cxgei !XaL<0c9v> wRЂ8� !xR+-\2C6 c ^*r 0>!BPӰ` �4&0Hef堾eCHAh-ǟa=t@#7i[:@ތ(ߡ$� H@ &eRha-8!K|{L�ȆaIO`R@& &: K)ܒ@@��ol_^Ͳs$43~   P 6-,ߏ2`PdC�G -AnB@2HB QzHL>P�7:NLWK[~:�hu�ÀR43dP*Zѵ$9tỵbRҿj K�Ii/~ x4jg�rV /~7񏝛-ec{Nҟ{Q�#1H'ݼCZtf//W_P�5 ܓ} 1J;ԶO%c;w8k�;O#ay>b@tM |,,]W&#M(~L� -%̠TtX!8 i\ºD}0 `WV1@;!(O�0h-#Myu�X ®Yw�:�)!�'!N}~�5Ԕ #g+\oa1(|Q1Ar#%iKHo-;URU~KKsG�:R*UeQxE~ۏ@F{1CO #N @T4Cw|$r A-?�R)хKۥÇ@&}vcWPfZPЀ=�HɌdҳ3%w8IHOFWݎNw@tX"}p&7J;\*j9C?j�: Z:>/U]^@& vǵ O`?bNt}ƣ_Gpkqd.R&1 n3Y(43t-l'Pv BCF0<7cPndȟᄟ�І� %aّѓKBB ߓP~4NgkeojB(2;s8)d{c`gb26h`h}APL)e��!�f]%��`1�@U�G<Kܯ'en`1 R=MLz`dT*C(&A+z gހԛ<@0%ĠL_oa*&\CI,?N"�!&(ڲѱ\u K !kHCU眚>M@#R-pb$7$�j@am2 !t-u^BLو֬p ɼID r;GY O�Rt <2$6͕�C&63dP;'r}rf $0Ǻ7ht8Ba[5/?Oer5' |y"aWL8V%_DP F<@I{�M1�xX s¸jPwE}X �FE{Ǥ0BߟҀ0�}yŎ|Pĝ?B_Y%%לg ,4 C e%6 qm5 ~a43a`6^յA3 tS]XJ \TLǓ ¤&ҵmd)!<U?0WU/�? e�?~w�T\w%~RYo]d\ĭ!9][mIKU؂hi5ӂͽ h`q$X &B q1)&!!,_PnBl'(�.ߒ+9xH(nR~s뼺 l,VVCkk8R 0 `hb6K`X8/U�y]Q1>Yu ߦ8a(j ,Cw!(v2{XJK۠IA70"}3�0pJJnz7_ ~{^clp(1*5@`@OӲP6!C&A0FU ⯼lf)q}v�Ӌ*WyPt?tbE>Iq'~\�tY70}H2QVͯA/Ƀ|ةJ&%=[弾ώ;� x3|ך7(5x/.T/[p` /~l !)yxD$?q)Ih8MIEg>M9wG:$4k*6dRixIld0'nDC~~IRXֽ 1a' ;/mDc(bLNRzd: BxϏWQ:�˼V0 Iz) Q[ߛ&LIhź� P-:7Zc�ԇB K}IO)0@:(aI8t0 T�M_Rѱ:HN� ZR41ƒ7 5'*؆`v s��`�@7=)GkR&3c*ODP,KHj+XG �8K;eՎ23w6 =  ŤaԍФ Hߓ98 �R ^nګ 7pG  )-X43~� |Ĝ�0boܾ| R]?ެR;m~ׂNN ?h$v�PO@ xC6~LN ?h$0X OuA/H ������?�8& � Ă$ /�0 �NZ`y@bqnGG5) E,AA�\%H14@hB�iE1`&�DVE!($ {({; +m}Dăp <;�mƖdZ`@D,FE(Pt)άO@`Y e7;l\i K!�f26|L-F��!�i%��`!�u/T]7VoVii A݉"=�cb9T/? }�_>J<Y(�GV IDBB'^#v.Õ�aW]]5㌂i$e*^))-P PQ:cI5v 8ؕ9täݡ"?Ǿ�w6ꈬ񤍮I`xDl}GDG8(uD]]ɻ"˓&.Gs&ѐ0Ư2:lUDf1,쌳EQ+HfZthDLqtE{"Q"¤R_Uu<XkEd+ [ [e/vNJh7ѯ~ȧSUQ 3i1|/B(e?Y%CBxv @5 ꈚ`j ']Y0k`#!yCDV"'X #tEE.Y!I"4>舎^-OB { 35<=H UU�jQMWj^ ѓ 4#Z!9.4e,^�BJؾ@�d�@ %B,bx_C~̔}@ AXbCwݛuUˤDDi. +.@7uZ7J;2;]$q����_��BX������X,5WA8R?~8;;w 1?myN5Du9,؊P^u><Q :}eQnZπ]؍5xȄf@Uw 4]S;7;5xV#8y80pW }[Gqn,€W!\BVC;WY'OB6Nj֯v�t'G&VO"<<="# =au(ZO8S2OT;z C(\vg̛jЪ~  HT(QUt<勺л>> lSdZk c9ჯCZBUUxNC枽Q0r9~ WI??G> rڌ"^?u(*ywcMø{8u^cg0)ry:<g(?t̬|U亯aP jAht^Ge…]{㋈1|q^4D).8Y<<h:"MPt:O"̵|BԷᦀ`;U/*o�����?�@npB(ex �2X$@� y'?^;}g>ۆ0W 0A�`EH14@Hb!� �4�hW͜ݿ[ p�N�3�۳ HwnˌXo4( �8_H h�B�ZhBQ��X, ߟ\ &3>|(R~ˠ’^Fhg� l4~uHH *`@(ᡁn .HaI&x%S&@H]Y!H[gLّ:ICtC,_ҲPIA�xiB�I,�a{" x�c`" sT)7@~�~  �EH$�0@@LA; #̀`LI;@\P"(%D;({mYK�v5 Xa C9�(H'?Q@\L/t==W,�FnRw'ޜ�3HI?ôDž858 r JY3�a[btO}1,ҀVlf1_AMj�+LXGQ\i1!=\C;֣w>J/DiEfm$3wG!cDHd_а��!�u%��@ !�p7T"t]^8e)JFaqeCjQ,fhp UͪXch�Yvˣ" H B ,U) ƼD˪fVشB3O9rZԭ& {֮m _7 K"zV$V L4$Hݚ76$Q9^[5rTrHGA$γ@H�U3EI$%QX'F0d eOED=C=uYU\aUMumumUQJyB0h* [RF"kN,i0̭+]m3Y #bñx"]'h:D"ֺPe).KJa;И2BW8ʇ &kT1ԜCR3sV`W[0ctBk͇0rMn*, }v%,k6Li)U摩Μd R%[gkZbR%uD^a|)/kjƵ̟Nk5ZLH�f3H$I$ 54SI$MDIDM4RY%9Mjjl%JZ6 qZq@h^ }5j"RDza_ _>sZ9Rڥ7Cof= 0X3ka'#d wi:Y]jֆYyEMQjb6$BsJ[Yk5f�IkSR=PREߪZWM{w-kIrRes9EPF5جub16#IU6cnkHS?-Fk[5\UV & paf1(H�e3H$I$Y<LMEDIFeUQG0"B{'̓,i I[Thx|s h6dJӗ]nj\c)QPbkkZ)y@l*} ZJiDlnjM}=o( .l0}f;mؤZݰzZ|,EsQA*\lCUjB2ڠGcQ-ֲsàW^kXZ5s *mekR[\ԵѾR.,۴$հH�U3m"I$I$K<NIQ4A5TId]eaFZJWCI-B^Yю\Z5kdЁMm7J|JBMfjW\e`֑iBSbJmVdmXvuyQ-IF#Ejd{^9R0y1[1l֪l< A2sP)QE@Mז9mfq2`V|4[\l^%g%3!SZ4\7ZBcZ i@H�U3I"IHI$)E$SQQ%RYUYuaV]V2(ZUӼu H%Mu-\ s֑m5$ mbX4I I[ >uɍKe43K2T]r5P X[*_Z\>GT&K#||9lom1εnucBj)UR%RkWZ6Nk`BlH!{ُ@ 4�E-j׶FlٸT|MbBH�U3E"DID*9E$MDQ4QUYY]֕P >-7l2qd{r%gӥe5m#kkB \&XJkf2'rk!#W7W۫ RZ6Q=uNؐiV>6Q]ur?'NrtF˘ڶj]WKy|' kbBg0u&U+6yXdT#N(.]V8ikVcc'ޕrFOgqn[vK_La[Qu L6Ků}K9WH�D3HJ$I$?0?�@13=2@K="LP5DR9CSX=% ATA5QEd]?W��!�灀%��`!�Wŵ*UVδKv͓+EL'"Ŗ^+ .b@#EBdI(\8+ s69y_:Ay|�S2 eOa u" [Fp;+)&WbO9!^ˑѶnDeِTyC: .` n _F' @M %`Q>@a'Yѹ>@bJ6 )a<6 hx ^7#|見 INPıNBEŐbJ> u0X+J-~k'P8A Q8ϵ;iXv'4b פҖII#ohʸ+#xg:ڣE^Pfn9Qx x9N.苅f]2th1#!n˙IThndE�>G&9A% !RhKE!X2y8{FK>\S*Bj"V&ijuxhaE [>(^d]RN椻1=n([wb!>̰MBv,lE=5؄@*7DT28?ᤕ||E�`1`"�U` Bdݱ*#\JHoQ)% �oK-ā䑼CλnPilPU#D�w}Ze^ol�����3I4Y벻q㠼O Y9p, l8@{0}lz٦#)a}CURܶLĬJ/ ,tCJ80Q',b0/=;ԑ,jR<|}$ L &|] ˠ?;g.`idA-_l6C5!F\i,φhȅ<$ rLi+\A f^���_��;\|}ȄV+</d1\? 'Ad{g:'R1f}8٦#)a}CURܶLJ/ <,uSG4yf匕 9fIcR%,jg@Y3V]9u[K"ŧ] oERai4cId%.|6KFD- 1"ekO\z _ֻ2���W��W%pz'(x߰QxuqS9W"z6l}<¸x85=\tHj`-& {YDU�&@!^ T{󓈒 � |hurxpTH F�f4DeX#Uw݆ZXieu)۰V%'S^i*.emkvXcZUƒA9>qG4gi+iwG"ݟWa{I-)&Iz`y}m'GAd&K 'IVXo8%ݫ=^�  dxBÈswS�G3EI y|x@S/|V}FdsxIfF˝zyoi)\ޛT3] BYTxOB�>y:# kAwN㈵t&Vj?`5:A[7'4RUqCU}.QGwRUgz"7D"$ c?LxqI]ЖYB0i)M婎v`Zy :uVtXDQC3|aݽ6uǼDRs[??A_*4OvSOBcVCb(}p eDQF**cQ9G]\#/ɵhkD E~uO(aҭ.�����JX�����< Az~r=G)@RKYnu:ٹ8^` Pl߭JxȤ 5��!�%��`1�E�@#8v}W<tB ucPP zJ6QUP{ K.5#rtaKYX Cq@nexI⏃q|'<ƉSGjØdǘOS(* q^ae8{+)p_#Wvu.ac'N7hx,L6ٰjZ?@|.x e' _z\^6zƒęBg bD_G`##fpdr?M8U|K0 Dzu>@5 b|" @<9 � +Ôl5r9^`b]y;q�Wה#_́\_Yb1|y�@toz`5;9[; ^ap{[e&eyhpqA#)b ©fGPaE4vkm}#&AI&@ʛ󠕀�����\#^Y˾bԵ㳎:ԡMc}wPŬ.ٲ@z>eX9@adA3AゔG(>GX/;Mh@L.h,tqOr^3KNYYc%GYDEi ͥ><]Z\yc7Y�5^ְ=ŷ|N@�1HǪiIi\`z8H]\a9XPR@vNv<:i7C*1dWEY�#:ʫm }$\TEgƲ9Х$Pf,TcXv*$1N*ɠ!J;:Iﲤ�,| G{;έB'p`KG@ـ~lOs4�o8: %@s}5 B€՛;} p#|;t`]$D#qKC&p}рayu>!`-eu _P<eN�cYWO~Wco'GDFǞ #CȃLqk=Il$dC!RwP� S(x]INR*e"n}Yf0k6k8}K25"#>@Bpo�n- 4�ʈ䑣<'Kޣ9X et\mDdDe-"\Qi8\F)rA]B%c(#&ɭ_B\�9rmg# 6[]]lP\<xQ4\EhxE:KndUxa0hk8 kx7�F;�X5kވ]!p�����;/z?xn ʹ{ԯē󧰦.%T#n %1%ҵn#_J}w`>ex>"s:n_r(7];nu+x v�����+b~}GWޏ.9_l៣>)u_6*͞G8D.Dme_ ?:[ ̾>qq&7͈[˱ŀ}7uof~*rG_"{#~yG:usi b2UzIx v�����PpHƾzl@G V:b7:rO/3><TaDc,XGt l|tTǀmW?Y :{`5 䳞(p虓o ٛϖprH9߀Џz;  g�>ad;�>"��!�=%��`!�*Bp$=/~tDg?u[UU)L;"t{V](n_Vup -F:C˜Գ@hٍsF~V}$UС^Wuwfg cMe~h ,l"` i DKP@:𽡀8N' vL5 k$#8bi_$7%pWUK8\5 u;N$a_jת8Uڅڄ!f1A "DJ@ru=N>8/^fx3:v<+BG:7#$ b,Pmv"с#n}b',>>D�,<AP`aKiiGxa_G(<wSh><~$ZV2Q:DWwg+,wpHFQ/Gklmх(8M5ZrT? h#2ml&TiN Tx�}S+ TpU*AO'[@ sZ <jb(J%Ƈ<HxWw򳙕P :gw}T|K?"!DqN<xSecKO�CE c<M,uR8swOpBQf�|;^<`X@rb x7DQ3Zxt֖,˩7] %G;^2uF㣭*oo2Lu%���_��JX�����q^x #^Lb4@8 ffy\: Κ <>ˎ'BWX#rk^l @9,]y4x[J0X0~W@jG6gW♙‚F5 \!dj f89DbyB<q=ׄ 3ND`O@XhA0 A>O<\6MXJi8Bzu*c]Cxaf_â ya;<82|&âxTAd�>clO2: /\9@Dh^6(QvpacYB&3#F\  _^@]3 Fq>"Kp".>N$:0å+h\b ׌�kr,�y�xp(&8�;xgvd$x|k~ϓ�̰;٫�09,"1:W'PT7ك;���`������(hHa$FE` 0_$�0@� n �!k,R8~M `A@�h_dCS '2APDnB&h�d�P`jwNF=Ҽfv�2 Bs8n.cu.Y4`@W �� M;�VpCN k8u �v|aC-9!.ܤ�bM~[X�` ]`'�Ćx'>|x}0-�rɡƒ8@" M4 /%I SB�$hJպם?:+6~@ CCwq& قNO0I &Dl�|A$$` }L0` 0rhr bhg�5`M X"HP A4q4�0zB� ɣ 0 ؂X"HH A4�f,MVI]L#~ Jj~̀A>VPX󠆞 � A|"A �^AKϺa'^݈c&_�I,�a@A�xi��!�h%��@ !�!gkᵪUִmt.X֑2: kZ6]2#4N9> T؄kJyB HF(P 3u멦<vRrID41'9B)kir7m3'mC-AHֶ1ԈX k[aJkZh]bB%La3U),˛y%se*Չ tI-kHLۻҒ73c@04U{ VVk@H�E3I"$I(<84O@EE4o X}A4ɉHرa!T'ܵLFt/uEug( m)%Vvxf} |Kܧuvjh*BWI)n#^ȌUϗWAJ(SԤMugB!9Izք#[ kcW3*wϠ=[QbM T@`9pAZ6[Sį^&hN-he85k Bo kE:Lo(*LrpMkt<5(��H�U3)$$z <Ԑ8Q8QAPM#E%I!;z[[D`~=rjwv+S -'҉Υo8#IS#`UaJjhn{\01Asح>+He'z2 x܄/c.;Rm,d}-mw`.+[ Fk=*u"JֵU-uHA>~w]gI[VW*O]%9[SVo&LS祵52*%HVR`hrء6ovnfHH�T3H$J(ꪤ @@@EIDTE$Jm.Ptֲf%OڢF"gJ -SLɠ mc"B: 1gF:jEP �JڈxusPXS־\ڭmUM6S[_ZoZ MVr5jTR1s%$;$b$q{V q7bg6LfPQjegEШq:eJGJ֦[孴کm%YR^mA)k^I kvוĸ?��H�T3I$$IHꪪLQ949$EDTa5MԜ5LoЈkFG:MHR]FқQ)X >V� kZ浵\Nb[fAvTT\Zb6`w!�<QkTeʬ.7As&D*X8a<>lcHF٤U*P$*qQV#sU [[QDcf֝(>tk Xoa-^.{[.ktk/j~}mԲ M9SeLڂ软uY~L9H�U3D$I$HLDNISI5M5RQ%T07'KRiִy ))KaLg֒mq1C` XqWWW`QJiY5mS9UnBnk[j9Vj$h:7ŧ4HږR c=P+U#!!g:mҩ5l0ArK[&ykB0c XVkHكk⮭XZgjUfvl‹5s@<Z(5]k^MHǛL1jR=sٰH�U3H$I(˪(8D8IETQI$CHY_tkXkXZ0hJF$ci3dLd#79dR } z@kltiDl<A)T8J'\9IAXO$㵫10bbQI;rT!MYڴq.|Jf!IMwmsw-j;W'j>7`5EjM@I{۸r3,l5(:)riSnUH�f3D$I$DEAM4UY%QU]DaU-Krq؍avBl FpÁA��!�%��`B�<!/`7�a} 8Ն(]<+?_�I,�a@A�xiB0$ �_.�3j] 7@ 0&> !� w&>�/�dC&s5a E<[Ġ``J0gv#eT@1�|Q! @φ(<0 'v,Q3L !$/)Xp8(�4_zOzh,$07o®0H-WG\�>~5Z[85!'?zwvW! ͟`'8$cЇsECI @5П[bHY9 ;?Y'#ZKV&�LIJ@®�B@--?'~(|1�f%6B1~$5tz@ ـ2�bIeX5@t�ZY]r:;ltw@kG$CI?A p �b7և=qx̭IkEpRqMa!*B�?rkBXY(x ojɨ !$nw)Xa'^f-? CwL?oRlW>QNZ?o8u�LT�ǰk-:pxv8ju�-OO,3S>f/Xi�(J�/}&x ]o+hi �dV_ٶdvw@50f&' Q0H†( ,ta }g#e!.ht{� �Kގ{'*I051�S_ G�@LCzJNtEG><*И^)�>( !4,pw FVEP@ :᜘MfJR9Ѱ &oہOlQir9$}\/!@vʀF -</GlwYFmԁ A07[Y{BzIl.WάP5~$TV:1H&$1 B6}&  šg4#(43@�c�'rI@�Ćr ‰d&apPA&AIOGuc :�nBIᅓ5'%$W\o@[,;Ծ4V BUy0!F;g2�d}w F'*?ZCLnyaPg,  \ /oi(w,DݷvHay[/$ H`T�pXN($n�LCp�0" d7iqU 32Vv̯eCB{@0 feP &BJ nO?aߵn!i0Z Q?Z8aY=> ɼZ1+Ѿ`\u]Ŗ[Ou <B`KzB9?籐EVvܚI%$A�'4?( e[*Òd. D$phgW"ג~GJ<0 Y�Z*� n>"{� KI/>`><>�&f#I.h 0$sIcw8 h(0=ʏ�jll%\ \ $PLQ@5<wӾwsζOP;cҔ,T o]Ny43)AƧȸU� ۖTc~6xx3476 K5U`' &MCI3x7 ܵc2�ae�gV-9:EoZ� ��!�%��`!�qRb~'"h$$m/`.1W�lg9QwC9C6@7NNX= ��n&3_o $PkcԮ cd !BY>P(1$ 1~|9#VB)ήkbf/'[}\!oܓˬC ta\ XǠڏcpD�Ȱ&PX�2!0W/!iN^yvY-<Oq>ʒ;gIGd;>[ɪ_6XpzL&ߓ롯wƟz P )Z<o}0᧒8C^IۯnF�۱vhqWy3Yy=Վg{ӓ@tlј59i�^1�0N/S5( эͲhx#@ $ҍܤes<@!&7rW$-?7㈶`!,U.;Hif ()~)(�\�ذ|N'w\5Оt*+wZOd� MOE1íX32ח�bLݙ]b/VM 0%U`~JBriCIk|?bH0[+vs<MgʱB!CBklX%$jYcpĎ>�QQ,י)(Aa4@=�*Guثy$�ЂДa:�jdK堽䏾l'G3K|p9WGLp�ء\`U K:Cj@4�NM�79IH`E*s0q%�r�XJ c 0ad̟+XWOk0|KuD4rWW m�xBH �:J(K Vfw�xC@'7hAA7:>0w\fb0 : �RsG OB0N>F9j4<lZ^u�S^L{^l?l>Yr',1;m r;{̓@4,7YR\3oݛ&ě>XHj>"�\(�؎P_sί3\U'/mTL&&q> 1/ٗQ̠$iH$zn$`D.5-}@'Z@�wRY7C72xh :&@wgc8 e�p�J&ZsWf~ �L+]1( ��JINvʼ"6۹�dL^ G>!p BҢRj i� !,/ �"!,/.% ` `5@= x`)8nS)8p-;Ud0&"II ah/d1^`@8�iİxiN `sfun` @B ?h%0 2%$ <6g�14PA3�pb ?h%'������+|F+λ>\ X"E]qwu5%6t.d^M* :c「|6s,5>UͭzE!zWZzS����_��#^u.ι_{|wegu܉vWƗ/_^ ˕6}׽ YEߺ`oNҬc#sEbF6-Uk|%b~0u>mk2( XB3.:qJ=}���W��S͸_į <^o#LhF2@cvٍTDF3~pư@3۟DZ`>q>XPM�왂k2_( ��!�̀%��`!�U#"Y [ BXhPS,!xF߬M2` eַ,+ā |@5W-q_/QhJ*s�t=?,pp<O<|IAט#h8$o  ?pQHDh< zA>Aè\>jt|~:_ }A|*)"+h<ua/-,"441r%aG(I>!29㢃R֪AFM#zi?:$rbێ֮Kw(V1>yG@ !CY.FK:ȗBO`96='Db18v�ꄀ\0. UqTtf"+/@.W9@v=9* .B@=HqUUp܆GX�[O@hFΐx7".jNvx}my1DOP‰&#n3D]�Un\BC$ (%%ⲡB4A3C*' "(WO~w?vf7ScD;.c(Yax{p>f%� =dSpz|`a*$MX> (۞8Dאiv(}=CQH8������:X����� 7ڻ)m'y0vcR~V;>P ,3_>N^ 5SWF;#Ďc,3g^ #[j}V�Ny۰y:G1_νk sNBɋe^D.^x\gיon8 C PX1`>`p&,'~{cY\ه zcXAѠn*'xL{y "O;LGP7B|<X"+Z�O̠vGUM^D0'.0?4DkGK=~㧯 xA{2z?N@f!} kuyˀy}Bk:2:NK'G]| �g^܀^"'Wχm,<*oQ<`XZ)GW�zO4ˍ^K8^Bz0 uz1⼰8b?;z!Ƙ*h8q�*+�! �wXW &ow>R ay? xqB0?'ƒzh� 8H;W:˛^ ?Jd3J<*%ׂ ltT ,�����t :l'Rx0˷0@FوIcJ¼,)b |x<QN`[~&iQ#~ ܲPn0M0I& /~L� uYH�Pd4)�r�Po .AUJh:>p\3tX--%<>Dv@>9㏖.,,,8?^dlZxв)|)a~0B$F'˜!(DB#8 #AEGrE N@ j_뉅I<q ?O"oRXDW3Xtx21#a%7ycX]Wm `+bt(V5i%3VU?dXLj , M@FQ#qbC HԁLIx @aePa�I,oO̒c۝|D 5DAL;EM<Q40ţL�1a<|v�,RH8|8}��!�ۀ%��@ !�җf=2yhiWs \a{k^E=kǔzMcXkO.[P|~%k\FȨI2neaaѴT$VHG\G8kT' �x5+MsXW RUj%ג24-kIB kZZlq sֆI,֨ZV ki66Ȯ,e<vs4lH�e3($I(,IHHQau]5Y5anjbɒ[ ̽1Rc{RֵIehy$BYQZR$Ml* 3'lI W,PBhHյr.WFtxiUf#6+s̾.B%|RZ((HvkVS"h!\52v橔jH5]`*ҕCk]HB HL$i ghI{OG\VKH�U3I$$I$ꫪj ,A4A4UEaUXUWUi-gɜ8Oa,a{Q 8DTe2{n6[JKUP q7>:jİBɸh�z Xcr5ϛd7KV_$`#Ikec)55} LgA$ͬ Έ1w^z򚶵k\:'SÄ)$i>QȉY7/R<3ӴVAWQ-VP:tl-w<_]:TΕ15|k^iխ H�U3i2$I$ HIA5]fafaVli#f`u7sb .<BL\5_.Zm +_0Y'p(TVhڤٵ9$gԌ~WԫBmƙ̅#^B Ӵ9|[RaDW;TcZEbTL.InkEPMUI%޷O\E]-!CmH6ҫ7+ AWj~2Y{r[7)8q`حqMгF1�T zP~(0j$a KH�U3DI$I$�;<=%M#@ՏMSMTXMdXUtetU&YdYa<fKc@˚BJV,[4MTmؖU9zռJӛAlxP #P%OvIJ9s9#:6kZЉ#J=d9[AsZֵkZ6Od"Zn֑[X-UN0H#J9$l7t<g4u –в֌չDkZ:*%F;=t\\1ZŹTVI3X9JuVk@H�e3H$I$H<PAU%P]ERa4MU]5M 58x~K$N%kZ!E[RL.fS\ڱkI[CHv"�k9&M8^kmyX̤)JI%$N)|Ak05潷lتHFrֹ,S#4iƒ8Ff̟׮;q ƹx+kEZŇu:mkA*VsiǯcVԝw:D#4mj/v%iD;kWSړhl4H�f3$$J$ꮪ,AtM$]EUDE4IuII4 I_PhֵRzDM-aAvkXv,GVG5n1adʮYi&yhr.A!5ZDp 1\ ~dbήeHvBlp򀛫YOnfkŵ}252qkdf ThOISn#bބ}<'4!i`)s~+!LF1O]^ֹjƥ]f&`RLKZRkZ6c�H�U5,R$I$ @MI%YUu]5UuTQpJNS{]Gkb2+B{KZ KW��!�?%��`!�IeèTbj @G$Tv^>*\8 Oˢ'{j�ނЄeE%cl)v_�(l퇀4搗)aT}o!?a35%'byəsxP}ą (#)Ӧ@<BB°ä*N )fu=,"B] _̲?#Ǟ*78s<\0 6NkWRuı7>}o\ZjQӊOF? C gWk kZaZC1Nn:P]9:\:Esd�ex k2C|}\o~ʢ)zDY?/)#svO<Y0 bR1a.DqWD@:: Oջ}š�ZR,]-WHE #Jl>ߚ  "@[c 2JNytQc"72c�u@ز) ugOR|M}]}m+f+m}Լ|'w*mXG%ˀ�����2E._cl(|uSϤ:Pt<t!ˏSλP[oaqoWθO%_Ҭqh|[O%R:ĆРKLyOO"\r}c�����"eV>]cKX !ʕn.(2=g 1I\T戮w۹iȵ߽o 0滋Mu{z[m3Q[qh~U=Ou9V]6pEει׶"^bs9R>˱�����-x|Rb- X ,揮bD]p` nr/�ѡW;~DP7䧍% k"oD=6?j?p@3 tP A4GOR$ h%@2�! )rALP<�X�rYhdv?]=B]9,]eVxĎ@_<Ծء${$g q73(�>�01O0v~$gŧ2{KX hqƙ1qgqlD5 I '?88wu.~hvP-#8VXG%G E`/tЂ$01Gi0҅vG"Gx�NP``#QaGf> Kqga11H)N^fRu hp9Ā:'hDp}?C9p %)$A  汋8^͜/1 &A)~ۿXހ>JF~ <JI@aYāҋ=CQ<'P� JK?,WVclP "bEAT0&vB@!8iBXC9UTL(OQgsr@"7s;{ۘqLP' �VOF!G-\ӎNRbQJD&(E_ }Q*ULJx6cQ pX%tI6XU҄,.IĐRУ� u$c9יu9lxN;�v`>`7�<(tP �0,4 8Տ-^e6#1,6Yà;BGS0 $9hmD5=ue>"9$i_xpZo0#uDWNpOαb^=cGp"Pa\`}CӼc8ɕtE/ ]nn(\ǟA1ߛ,On��!�j%��`!�CAb>YS> ?3iBK x2�϶hwQ.s|~[DJ&'mX$E>0 βkPt:2VH >ef o@Y*uǪ6´Vˌ���_��BX����� ?x[3'B_Ͷa ' =YpD."?J.uy]y(y 4|K 88.�9<y…4:8GՖ{ ߰ kxJ `pEG"Q" 45?x,.Ynp2.r$ZбW^b懨qnnxc'ixsT(Ӈ@w^8^w\y:|?<_"ϾWWﻋ$C^RE,Ƭ8(4w^`P<)bp P fY$*1c1f �4Wl╍'aYhQp<>{OQà7"AA%6'9^!؁f9PXhtEWFf0P\<y>pQBO׼^da" #9_hxV�P ;^e#>  g +=Ysv#1k WQ5>#Rv71�D"?47�Nk^XpAOC"�#((;q=? ^"X�����Qjwag ] Ņ N�x>`c뮣DDq@ER>;Zo� Z(-) DJVC] r`D,A`�@�PM$� �M( @�dy04ºzJcP�\L(O"8�\2Et |(Yˏ5[ myM�JIƅN]y(TV+9Zc>]ځK@� Kl0TyՋPߙˆ3c (IdY(` H4CH,y>ٕ OӐ`�P^H %�`MZQ.Az��/cC2f&O9fH26Wrw;:͢[Ϲ }<a>>{4z~\<|5kw Eg@, H.K$r �vM0ŞN ہ‘ ċDf1W�>G` un"Ӹ Us ܱjf@f&^Y% <>�!(AhG>?Z'W@;!18` NPϺCPKq(8 �Br �4!5%xߘiHOwJЭ{�U֟]"�>ENt:~07j~Bb3R]cn }}v<D"7\ ��4&pCd,Y}G^O7H^210>|OԀ8&dO@V-;+b۵U~�ɼo{(z>NA, D: gN_4_>{As^8U�5Mt䑢.J, 7'߅�t(Ŕ7 @ӆ'-Ҁ>&15$lZG#/j"?Os1p]kDlChx17I/)='p4+wBF:iv&%~ U� @v?gFzi3 j�^?|h )U :G˓BX>}d @2Fc->x-BZ]o�����2(f\% 'C:|��!�%��`!�_?HK, YjrYh4dͯ:<2]s){voB}���_��"gTu?3(P0 &"|_?Wf>0XF; |:Cú|^GqzZ<}N_:c_֞㵟:9D_j72O۵ex8!v>�����pBh GI"lɶE .2X| *5L::s.�FxT|8�ud0Xfxs7;+PjiFπ=YKPχq|G@DA O_*h `܉PȤv4!UyUh���h������ ' @� 0pGϫ�}A$$` z@ lr/FBp@� !�0N3�Jn愠�a/@@)_@I &DlA�|A$( }M%X ?P@Hh&ق �44h�d%7b 4�Z�膌0 n]}\�9,B`{C"VUp`1Hi@S 0@@@(["5�/ P�Ć�%H ւ`"A$( wyF��,} 4 sC 1�b�ܙd€tp,æ�diI58y)WAE&HP A4VMh-ܯНݾuP$ MpL4F5@\DI &j�|pM?L` �t eo 4hi�|IpM "A$, })7.@:27@:`&C��@@1_h$Ab4@d$I 8&erH$ MA0!FM a ѥ#8 c&6P`8hф4񇀠7~?/{^��=�p�4BY[g+�|� j ̜;0z}�@ I\7;j@@�(A 8i`a=�;r��� `ҀN3?pDd � !d,@ (4�zH yI@fW}C7Ĥܖwt�Z/s|8ނ!.wI8/BXcS/֔cBeN�0aħ$gW%j�v�ЁCfO~%�Q` @@ %b _@}0SB~O, Jz7: *� pEJb oA?@=�` " ͐ i`<l'@` � tL!~0 @N�~M &a^ h w~"�M�J2x~ �ĭlcHE:v9gdh3@1`MJ`*EC0?.P @0 -Xj{c] 2@tB&�9& #쮞nZ0�%< =9{;ZMasM! ZC2p+@`5�?�P_�˔mn ~+C@wq`+:C7Sm+�I�3 8�f58 2A9%Y�*9�f�~XdbT]3y@K�[h5@s4 C�6��! !'bi4n v-98۷K69` Qd* PZ0i\|`mj nqp�0fk>��!� %��@ !�*xZ-z\v6ɬ"I̫kZ1a/f%з0+Mlfj R6!PhHpָ9Kַvm*6j1Mps$l= Y5da!dMF4Iдz8(#NU vʫa>1Ymt[#F) vmG`Dhf-k&MZZgmV@��H�V3)"$I$j* DQ$I%YVefVYE]UPǀp GRF,`Bz1R UƋjfV(q[E8Thfڴx�+6pŎ EHX:TEDNH%FJp]%r Ŭdկ%w>.wA4T`JScmyYPUbfٱX:bmW!$FE.`b!$NNjZ՝0aDLhSXp@du @ IZJmH�U3M$I j$ԍQ#=UaeWUMuUeE#% 6٬lҭm]-Q dT$#.^K6ҮgVq,4€rN0sa9QeĶG}_3{꽄j!YIjh XХ( nlɪRJBX0@%ں0KV;C2XjTq{[Lp|XmȪ0{m=$a /dd\1ՃS3R5d XFA@��H�U3I$$I$镓MDMItUe]EeueUYTdLǽ}DAkcXJИ@\CSHLs *v] X9%,ͅO2Y+$HdEXkҕi^,aď\5kZ.t:'uMHx'ҕl ǭlƑZ`^ptF!u,sf{]VVDILD!@*gy#_CcB1-`6Ue 驯 @H"dY9 5 S$k"mŀH�E3MH$ @OEQETMUQD0B$+#C$D[\Sʉ7Yͱ3,s*5o3a) [a* vVtILbAQ6$ޱ3lґ5q^*`g UG]%+Fl;9v.z%]jnrvf&8(NƴR(kH$h6ZLnlM@HU8@ } [ǸxqdqJй8%6LJH�T3L$I$:LEA%R9Q5A4I5QYUUR[D#?N'f͈6~(=jr@$U:o |&7Uj`oZג|HHq\Ja,]Jˣ_?ffm|As[-H}P#\5kn=f@opmAJcuaYh{]45vRw6..%1bָ fRz:&ȈOhBU<:Z^2֩|֊W[NԽREJ��H�U3D$$ꮩ<Ԓ@M%M%QdQea7qVf rB6d#Iˤ#ʔ㖨!"Y! J,r)BuF9]FO:T.e+zĂkl m\9a_5jM&)٩Y|4kZV>ĹXbN%BdDiN둩KGi!#_"PXw0S]Ճ Tbf;ǶkJ�iT5Ь!k\kZ4CR ]F2&ig"쥹{mrå;Z怍H�U3HDI$M<PHU5UUXUu]u>qp݈ӫQ;Ur6ڲëEcVbd*1a-1mLw܄��!�%��`g�Oe( Rk#p xX�^ŖsBYO�ff%v @ p;  /[7S I4x@@ �xP0T@`BpҾnRs "4T0 K &ԧ b�=�;XJ9;א��ۓ7F(!(v8@b^�D ҂@@ 2+ 3 3�r`jJ4A$ߥ Jg@  �P�Y3蘂z1d�H�Xp @1��gb(P0!�hr@F~WQLl(e2f$/aJ\5?wYԹ4 `'28S� ,İfT W0� 0&R FIaf%l=CB�V� &H I X8> �:�fiIN^:@(WGb7+dC-{/&^�O$1 Kv� ŀ\B[?3:{p �VHn&�,:~ w�"n[6e�: 7d:AX[%W@b e�; @�P�zB (3^N;u\  �Pf@(L�@ :I @*J1aMmn:�L@Ar/svx]�Jt l~u$΀\!ii�԰fOm!7\p MN;BXF;<Qb }@:i70cIFl�P b!%` ! 6[@�h^G1d+[0뤚ܾ$eG�0�r�!(d!dѓff @1�Z�䇒^ѹ(1(;(8x0(�p4p�^0;!`� P^A7`7O0ޮmbb&oՓ.@;�fL� wHat$#7~u!� �#\� %םW�@�19%wsp Np @b0ӲKc d�v:G�2XQ)!J�4 �`+rj[?A1 I;=0 /%Y)8w�@)/܏ypԩ*a�.�:8͘Hy�@bµr/!&�%Iso>1Hg&RIsk�3Ba%23s �`cך&#mQ˦ +g(p`++ 1o<RJ?ף a1m`(P€o/|pL+$.!s ԰('s((7#_bY0)`nd~&<P 4GU B85Ī&> + '܁$ot@ H\` cI ( 0$ ^&e'av@7K&sQ}|O�5%w�ZSdg`9Q @�J��g2\tc׶�%% ΏJ9]_�� C��f rxh�e$! d4AL,4 [z=dܮ(lP(aߡ;n@`:�̠J(4P�VL �tMHI0 W@ �f�$(J%@j0Qv-.XD (KL-=X(r L=2jdĕF`8}E@Q'`�v9En3p��!�'%��`1�.U�`#9P~@rF}g`Pgq뿥< �aA6A[mc / ؼo~_C~��d |@+ɈVJ:st= 'tr{_3աPD7rP~c� ?3{ϐ n 1;V�4j0]E8QG6T0V%wݹX,-JQ}\He`[3.@PdwӕDr`В$ʠ*eX}%n9^ e`C9İӺ|(}Ei7Ҍ'8u*?�b��� X` %' ]n@ �@RC:HA fFQ Y06 ͗w?h5.O�@1 -�PPXQ{a&�@�j`3r &eR{廡%'/|m@0JH݃P^M0@p 6)04#'qn.Y`1&?r~-+6J0i ~=d*%hY'Ҏv1ji֪(k<?ѭ�,J_O[QR1BVv6!s B haXIm@4v'>`*B q߷']hRVfk:bXO+s{Ҕ$we}}r 0#lp߰W܏t`!11}{Z} BJ!mTiEha{ ý ' |b- g 3s[?o4Xorb ,!FH' �AߓPd"P̔|-y2wwJK Itn.�!t0cKoYvXj!tJ?$bOݎ-0%U!f'Tif�=<\5#8jGU*üôHҰ"}\{�n@LjZ>WB@ �n�*å�hh@BX Rj&� X_iNqgAT.`sґ>Bb�xZI?aH^p (SJf(!0dlyɘu`(XIhC~T}@ƒ 3܏s@t4(xRj�nF 0+'uEP �"":�\Z\$C G �� .% /#`&�DG�@<�\:A)_pG�@<4<�0 �xhx�ap}A�#~�G �� .% s*)$!("K�$�7rh Ӈl>L y L�.�pV"0�Ť�ؠ%o}Aм�0 xhx�aq)�6 Z i�M�� + �)ţ`>   ��7Pp�N� NO¤�TL�@H�������\bF'3˧ghLR�X0 (ye c�CSТ,~7 v:fLbIArCpԱ7?.pqHr,cuŤ0 5X07q!</|?Tb\<@к}I%Ma˲\}d*UZB|*co|H#@5g,+dD4(|u I}z;Be[&.Ӂ�X\c_K CF/$bǣaEm| �ܡxF] \nt'e{!5��!�B3%��`!�u:>}cQɆsVHHBH[lb5J|xuV X)'¢lIbyۛ3Vqtw Z=$)$v9S=xAcp$0i8IH6`t 2(ƒC uSCÇAR@T ҒRH]J/:? >IDB)(0b1il} Oݳ  yc>0h MAv׆8`#N (ߓaTDEGliQB J~@dt8/MQ : �6�~`` ɤ'AAX;^ FJ@ &�$��dd�p tQ4@ He`8 ?5!�<`%L Q#8!w, K9c[wdZ aВw#zM_ RFW/A\;J",$Gp+{4]`�N�КA@o Jq~ �@x W${r9|�S�`!nk`>k7UQ !{UrWlmvW*:ЀuJab|>\c :. 8'<S"P_i 09h(K7p5N? p bCrхq0܆C!gu'i/]nN�_;ܟvv)Q 8P\xUGG[>OUDM:gcP ȑcϗV!~ R1;ϐ.A (,k@}qtJZab^Gaoa~ٴ$m;:{X0i �����_��2X������ 6 ߽? O|<�6o K0rNlUǭ9S<G 38tk>nO0DeR߹(ɟ(j?֡JvY| >$$-w89{|7^3|@ˌ+WΝAU[i:8 Imq:,AW!偧 J'h*/'uBVi;sM>a~4FA798y0x6'GαxtKe炢}yK�ܝ8P,e ľ=^ P ㎪6�G- 8:)GK |p@>:{'u/aqc[ s vWjnEYAԡfT"c}y`x؍6ãH,a"v pJ4=oGec0ɧ"PF4PVeF<Y>"8|%g+ 06�Ã#@tY:"y�s7toP $dOf) p.y@@NWZ"H__@D'WS>:oyFUWцς�����ت6gF #  ēO?fJx͆8 !@&\ � 0&P4%T@PaD,�� HxM!RIc$3>%10_Jʉ1JGwu:|3D3&CwO@3'!?avVD2=04 &TF)H077[4=H:8p4dIy` l HX)!dѴC{L.ƌ|X87uu0 e]jz#+씒F9G�-�t�&dlM$. @0XD0 ؖ.@Bi&#$ Ry7ct:LA�@1 bB!1hHW]0PM%��!�m?%��@ !�4cJZv aiMk`jSXIVD^NR Tׂ֪Dĉu*UO#j t5dUC'3e:%fХj\8dCeG/]\M[O, r;k\5%)_)!Uںn(\k0uO?X,"%b55YH�T3HDI$QSO8HU5TՔ=CZX59X֙Mua%ۮ n@e{(Uw)riH[n@i9S@Q m"uoz4"j Z uQwh<Pj QNlٻƦ DUX6fVjvUJi&+Kv Fߵ I%$%׆^[RsTJԶfkHTk浭kZֵmV |ֵkHFL"/zV,B e*S[WDM̕(%Dr�H�V3H$I$*$I8R19#EIMEEDR� %ϟ5y9YԩmwNHٰZ%|m<z$Ic&Yg:5lq בʻvIֶ<6J_I,>y4^sZ`fsb!fA|vضs`Td&eY^ۃiWTDY4[5)+ B JdYkZN]]1+7:4-KY,B%Zf&OIaZ⹌�H�f3(R$$!QAE$TIDIEQUY`CjoB!tnn޶ InWL烥# Nk ۷.~4 K2KtEIaՍkNr k6J%vhd(Euֵ)qwi m +ZWr,Z4O53/nUenyISZnn[�m"!\j{sT,eUԚXb*VJ#c7vKRLl5quT+VZ% hĄs9&06 �ZCHC��H�e3ER$IDJESE$EVQTaEQe49J++滛k[w$9%ϑ[lN!(SZq'�9F9F܁k\ @B*eօLjБ-v9fg/%&EMlҍMUk6)r&e.؅MKi ZcԸ[:]hBxl420-#Yr##!U9Kw69-S`sGH>JAΑl祑ozwRB1ntU0�H�U3h$$=EE%MUUUYf]z嵬`tHW%9iЈTD/ji,MRڶѲ4IcuXֵ+p${x0saZ%J- Pv` jEQQKk4yb!)1*hC1<ņKQ~uX|Bֈ dB̄9Ú%K ce%zR!Ja4P$1ui;CG.I1 8H.4AᡆyZ"%H�D3m"I$HjA=DT]DTQ5YuWUUFd44DeMrkk g1ﭔE6Q!gѼs9J5%W1{Z.Q 2cTg4jMPɆc\2B5EZF,5s47YڗSR c-qWa ׽8epBkPB6uxs)$:,Zί]5{Z8s]XtxeVheBfED[-][FE&m85/SwWb rH�U3HQ$I(ʯ -AQQDSEuIU%TYva&iEj9k6)ZG`6([);Wjeme* _au᠄R��!�K%��`!�EźQx}@�\`T0�MA, !`65Nϼ �cN�.XOC:?\&rJ�`Ҋ&q)/5z?F 0CP.G�,:@>Px��LBQ FqtLR\ 4fww @aD3, tealyVk xsQbZr.oe>rGn�|BhcS'71Cwl0!ٻvp"%' /R}/v �`i,  ,w|IiĔt``��`:(( $HL�$(^}':KG)Xڡ9"r ^x:k*!Ƚ9z"91Kq$D6ٰx փT| RH׬P%WGy4�Wy1%' v}� p ` 'AhJfu09 %qsЁ`y�J)Ҁ`҅sڅXp2 I@:)قtYA �fP`f P5$h"id07Q 6JF (xuQw�ޝ%è~c td!Ʌ;E61 zl�p>0\YdĞ a|1B!w*u`txHC'`4,1 ]H{p]^ROۇP40vB "eڽN8)k$j8| V( �uQCO={pB6uJT0}j.kXOAX\b|5Cq8.t\RHa6(0I .UT&Y@O%�KʠؤĦ@ 4:Qv5,B &!9U-~ 꺥BAq|Z1&bAF iaƆ#gb w{/oS$ g ԅ`cJخ7lX,dύLE7{7'\wAɀQ$ C#\Om�����+a!~Ken) pur&!C4. Ҽi1 |dl5Z"vf[DlHCUfCMIINm++06h'K�iZ{nOLFR޶F\DֽI[E>O?N;W(2Si:fL*YrB\~}]%,���_��3!~Ken) pur&!C4. Ҽi1 |dl5Z"vf[DlHCUfCMIINm++06h'K�iZ{nOLFR޶F\DֽI[E>O?N;W(2Si:fL*YrB\~}]%,���W���Zz!҂9Ȼ @:>#e[s<�v|,Pa(#?R&[`;9Ic>j J`4 AܾĄ P!m$z!#P�1(SuP Czr>Aϔ]B爸SKc0lU @p?E�,noXea򅼹 U"*8,a|v`wKp<@Qn�.s~@݅;�g@ �5�:-%dIk��TB!-}y''Fv?!U�ss/v~ Ѭu# V2KY ?Y>C<M&ҺID fH$oУ8Qqbu`kg+Uz Im��!�Y%��`!�%~6U),Pr "C@%| ?-VH , z6x$i `  Ҕ!O[@# Qv8.F\C"  ,.M۳e]6>oO\F#fid1 HC)rHfdJ#CsXC|L &WǓZL rv/1;8j1_  fIBY\?v q %*B/KƑ Qf!_}jaE|ͻw; <wU+ʻlx:)g770SI1_q_v_`rsD_X|"# [p �'n~j/:`e�@�AQ Ih FB?_+=ŭ΂&'~< u@$Q * ,MS#DO` >DabO$YXuP F56$Fl"bYHJx|Tw`!2Hl3hnsҟF.TO#V7�І_5qU�5]ei8봽|lgQ'#E8fw$- TK{$xRO0<|:NOq6Ww-e?\w$ Cmn*n[γmwckv4?5R"�����BX����� 3>\Uc8H>Jw0X W:3ƍY1{  ×^eŨXrKa1_%s nُ !݂?eF å/טvB]$n<-Gc`79 AÃ^8idxJ|=*|#7X#?CWK�hٮڄ-=ys?x~x'1kĀ~Dl^�͈s#^graʟW^[~)ŝ̃ݟe3,Hz@F߯J׈byܣW�>W<żA8[WN7(+p|!:kg>Xdz�Wb Q^fΠ u)MS,v"_)c>`t8P#XnϯfB_`_f�?xcf~ L`t 2\zݱo�QqPQ^c1{q(.{f#�p_8*?uG)*x*#'r<"x�YM^ G8@AUNws׵.2`ǁAJ<x z $rq2 F:4 itt8puGW>Tu c �0<G G`yI=QA�t# (">O~ K����� &pn O{@!9wJÌ`fL 8u\|UQ NGkwnmaI-$b{?`$bF$HX€\ywSs#܎>LR.]U΃@@,;·[luWh x^1%`@}Us3�'4*� ɀ1!^DnI nAdeX`Ibi{q#ـ2mAqkS17a�xmbEN~lMS?(f-叢# IH0Gswk,Kw؂,xWiA3BQCō@,Aݮ,BCf 6K&؟p�N'e,:&n* 4*:XbrMXzt"p> 4*#Xnk |WSv3PP~ Р`r%g98LHg֊*P��!�e%��`!�e^_-l<b�4 pQ<^/8d4XC)t�Ț瞏Î'](gbJ4.$Nu$zk?vK^kٚKFd]l JovJxq("�ʷNtm3t$W8�jKTR _,(;|h$xgreha@`.?UJn16 g0gaXBgzXua%؋eٔE Z eA i우j0hP'ʀ\5f@i 8P&Ԟ7$�8�D$baA0�P2[ RB%rxE]w}Rjɀ3N�t7tQ$SHMG *:]tElU<DVdO ?bu|.KvK ;+$'tAMyP5N;`0 >ٷ']nvsA 8 w�t@;OFgoBi1=p`WL%IMDE@,Yd,ۢh( |JHv]/V% DTA!ؓ.or航;chsK*?:FCdlz]pFX;dPX0}2wސ]A �����2aL6Hv8]7E=to WuܼCS!%:nBƓka!RpR=WG>4X%Xh|2[ 6l[N `56 %JnԩTs2)6$'bJzzB6$$̎{grM&ș'$7d6OMw7]0A{pB@�����2aL6Hv8]7E=to WuܼCS-PRL$ZCvl$*ZNvjT \4P(IXuM꼟+feLM[ ny=,VӇa n MR*ŮMt b}ؒЍ %3#&};ܓd2I&I&Mę6pq&0][ bi8Z �����Wo>_" :fP9hqpyEK2'_v԰C`H(P๨FۏDaGe K7[*K'D&,kT}ݕx?}FYC[-eqc艿"q]"y.fi⟨nAk8P}>Itވ\}ڷ 7fļxysT? l.n4?TГ9:UɇqyI$j8ա[ _0P H2NFٳuDT\cw? usſ$p0_5AqC;3�!sn{# ^8y8ȗTN Y=u/>}ʈDF8DE1)�TvBChkxNY%M[�4"& xb37ė9GqH _0tg'X2/aI8ܹDHt /9> '؇aQPS/o%?PQ:‚D6×+dlpT}S%(IK$9tf>>pgwg9Xe JY6@Q+tD8 ~Q-ly8%w*΢&٥$ x{s/]T(V�ڈ"8ad6yh#mi8.uQ�1K(B>NHہY' * {y5\5 "KL;+R���_��:X����� 2Pчϓ3x\1'A4jJǘ>Čk0O$ozq$ c ˯1=jGX^[vY€��!�q%��`1��G7>ƍn(v_q8jY;IOμ40nPJioJ Hv?b!=_1&*7Wg9iI j>gp8`ΆINX�~ׁ g^bV4)#RX'1 û/P �2myJA%@.@z>#la;tysJޒ^f<}#}%)LЂQy QOp?3'}BFJ6JSPS י "$te,%#ye096S ȲrndBa\~=X洠4wpx:F'qp2R0a@.P׺ ƛSA!x�C_5^bR¦;CPw0=B<X7O-vs�f0pj<V;\j9,qy:V1b5}yBQSgr7־󇯩4sꜝY69Wv"J-No 7xIT;-?DQ�8>1ט;6qm^bFhxpGuǀq"T8> TL9la*X�< p ׂ"Ah#^,( W#Dp"64s|axuz3(s?G\a⼷`-n|_sר'؇p~$RWȍ( سhB 'W-gI>DBwp #^05@"8ÖpsB'Y8A#.^AQAzy=w^as00v<TQUˆ£{ܡ>>1^#�7OvqWFn[utg<A^c`G1ͶÂ#1V:^C0θq:A<kF\fW F7)ưxS(b���������@�`y7� CK,p/x/A$�&D Z�d�0*L%3 Br/`1� z  �~ '&6!g, ��r�`X!lzrQ]! `00H$ $m�@Ph#%%}}t�cqj�55 ̯Qx!<�v`$W H /4BN @/&�tM/W+un$}@%8R A ~5 b�0%%v>-@4^DI 8&i�|pM˛�F:272hh:㠃�`łH9 @8@X$PM6nA H@0"d!x�a E,A&p@ 0"{ T@@12@tYA!%"`I�� 0м�0�`" !�TA$&  (0Zr!|KCҋǡ(HWz �j gΤ fD-r݇I�F�'"I\�_>OHI!bvNg( nQc P$ wϕͽhb e�M;!AXkphJL16Fi~ @0^ۏ 3lf0 ЕVbQIP\( R^I]ψ@(�Ĥ3<q)X~P ѐY1;~& @2!l/o'ɀPxWGrR<:ҷ2E*J_؋v`��� p(nYP_ N �` I@1!$$QbМ Wy0252@.,010np @ ��!�D%��@ !�';ְѥiEX-=c뵖ֵcMVEsT֑(+KM5[.Ԩ1Օ)V c1sbԪ% sdfeu:9)+hh9ꋢV=mjAH_8ڗ1TF#nă`ܬJVFi#k6 @XiNNMy[V$A=uo*+XvEp�H�U3L%ID*<E$I%QTMfUQEU i8A.1j5m)PA]}]hRNdaL-o^lk-abʛg^j8J!j3kpFVm6/DָೳEZ>i[FҢ޹QCcZ[.\EҺhf_ .b=j'8'9ZֶIs7 sp{\õ$W5k[bŏͬ0Dg!+5ܴ5Tk65t)mWIZXcթH bk-[d �H�T3hH$@94SEDMU]FYEaQ, 3)Y6V#9 d;2Rktͭ~uQ{3òht^ϘmU eEGaNԊ/wdd}Hc! Hd!Nj̤ٵ{];ԺڭNHakR@Z75z;5{խd0S]\֘jm=CqgjCHAFLк;dVܨ"HՐgi`pH!Is@H�U3LDI( -5DREDETMdU%WZ3GvqB tm.:R,eڵ~Z4kZ{-P..jTNpZ- PsRkc<a :hiqک);\6U(K*>=\CAcuBd5[2Z֪jl=zVpb\&1Y4jtr9f Fu8nʚJ65J tVmj&nk兩m9#}Z+k\)՚ҹ#@H�U3h$Hn HOMM%UdQFUuY{9{WVЗfMk@ybF"Ev6죽)hUn5~V_2U)t3pr^L`ꍘm䖳\ mg xrڳ#lnX!-yF'HvZ#UkhZ7BBP$67`ٌevdL~9mSjKG՞6ҽv5H1a5MCY]S&6-a"8hLr 1 mLcH�E3h$HꮫKEQADATM5Ue]UW]drҦN.[P^Y5#nUClOgfswr XI$KD6za|#D!C ᯺�.25Ӳ͛{1"FdN"iWuLfSk7ZD XlB͇8T6JYaœ&7"j'JNڮZڵԢv%Ŷ%H͒sXӾlkYa_ATܻk)6O7s]cWW�H�U3HJ$I$Nϊ- HQ8MLAI4EDSA$ATJm}j4`־)]!3%́!Joc927F/5֠ - IMVEֶvks^ežsb聡 kX79`UbR:܄+!#a#mԢiv\ĭ5#PRm[+\~6FTr6f(寡ƵsWuV+(jC]mTDUֶ֫vsg19U2(}.21Xth��H�E3mID$:# =3<5NDQQTE$QEDQڬa`j!\8i-["+ֹpX`ݔ!mꅍ&.Cݍ]ras��!�o%��`�d2 + g]fΡ7R =RZs3؀<,A %C }EftWm$}꒴wJ0>�'!7Rqע� &|VN±,5fRhuC}au@! @Q77BQД'o 2nl[(�^�ZC�JH&I &lV99vHe7|"_ ̩<(hiq%77Aot'0!ᅍ nK&e9~д^n%;� a®I0_Byl�pP,`0 q(7|iX9Y^;8nGeN)at/6:@*®a&qd*u2ZR6~W�ha^tsV�ХpC{O<ZJ(^I&C !$6/\i!9;̰̚PPBPi47 ǣ)k`?_/6%ٝ\qռ*A[i?s@!�p�1@E!LnJO0m R1\P -$aNRB~ǣ:@΄xѻ7s̆�/N AXav`x! ΐDF==�3,^-w0J�` DB`7-!=fWnve�B`8hQ3}-<]�@MR�v)# \ k4kC$8 _` SK?GC'۶]  �' 吓g�tIf۵Ra` @'Hw@|1=`,M3}t@v.ٶJIW#ݱ XgZh(#p WB(gt&< ׇv+Z_H0$�%p�P᜚L< KrI�`M!87 Ϭ`Q9I#e $$E3|I9֤V8c uQ qP>zS[@v�@;HY+q8JydN'hXb~ބ'Rz @@Q/~S>z !ecayE /wFz IhCd,bb7(N)f� :> XR[$;|ְ �4!@0V, jw% k .f 3} w�v�F0Q/� @ݏ-Axklvy3%ԔQ�/�. � @�i, @193wIWm|}}@��.�` @'O�? BHݲz te `kP?jΦOjCS%�bB: Xv5�0,j6l^bKP}whdXvc{LwJEAiy5=C:D֘R}XO%yehOy,wNd$uqh+bU!�JByxrBM`T % 5, !<^ 29rRw3k@`ƖB&29G͝TΔ'te {E$.G:BAEi;l<}v؟w8+w&K�t\C &�i Y_糔ٖxPm'S�ť!_~ A?^n<;'D@+tjR?KyМrޣ %ٍNq�@U%Pĥ+ᅡWĖw]tn8A+UXH1,$JR [Vn|cPυ5ƺxj}ia~ z 1/(^< >.Rs-Ȁ[n |?/��!�%��@ !�Wii *#c_oe54lJcUlzMz5m-PT}@ r9NVLάIH]k%N�V3Y*x8@,F6`۾qX4̤a  i ]NB;#\TW0phPvg:eEeKqhl,E&pl<{*R=kR* GAH�E3lIHI$#N@DQ4SETUDQeUZΡS񌺴"ffK]aN^u,Q=hA2:չ%+dO`BC.U674[-,�\5Bͭ*YWu&p-֭qGcWk/*oCq# kSR,]ԫk4e5kgJZ.BյmVgԅ)# 24:ĵŶ:xQ"%MpYH-Dc1YHYa..*=Y tZ|,H�U3E$$$ꪪjMQMTI$QuWQf]e{I-vR\h)HGVj8o6] Z4_Bpؕ|#9ISŒdJFB8NnU>'(m@:Jm6aLEo6�RZHVv,^&֯�v:wk_aM=IZ(Z&6u.Z S k]cPĵŪDYv۾lpȃZ)UZ6jKdjN -@#Nycq%(-\ Jѱ|ZH[H�U3M"I$$ꫪL=$SIDY6]VWeUK7U5V i4B-i;x1|XlHґW'V _w]) [*vڀ)ty0>m޽5ŬcRRrKXH<}@n( /壂Q,BVqb1ln`Gq&˭*�VSY[v(lQs0߱ ZB5 I*܅Lp-ɣ:bDg;֥.5}LF/u)[CkD*mp�H�E3I(I$YC -ADI]4auUuYUiVSavtJ񗍮frR=ɇJ5`9J%Y[ްvX)EΜ" LELk2$eted5];Nʵ6*1!MF[GٴgCl!6t*?+m "90[mH$Z}HY-z:#Py ^i=:E#p,a ,ZֹWc#AsIuj@ÚR! AFZw(��H�V3E$$I$:<ӏ9D EM%RUDQTMeAWNO2܆?uzj]1׏ٳa)FJ&B4$0#|5+f5έG˱2bZSRKWI fYqaBSLæΌFaUB-- ]!k[,>O>8>k$SŠb@W!-a)Eo|a C5҈NĚkh6c*9H�f3hJ$I$<5SI$QuUIeSUuI$Zѷ%F mqq`s)%jd'Qbւ ]9]_1i\Yl&v-kf#J| uTٶl1uBdׄkmaV I4Da1ͻ)QB)m{ a5ҭr&Ҧ.*Ǧq$>K(R JԘixX!ȣc6G~#`*Kkr-|.5Qv2+@H�e3I"R$I$I8EEMeQER]ESy bY!m48 a|:i.Z0\Ƽ(șeM]*k֖eJ YXǾa��!�%��`!�_tC J҇iI>rBp \i6ï,f @8[J�}OlH$�1`h R[9DsZ\p`zTNˬoaW,PӀw�PV'/(+�<öbyv?Թ_S�^%@jɤ2N ,VGi1 Xf@ &'CBlZ'.ڣ�.,?!rAw(c J7BHۡ7q}TRz3>^}(biߙ)0אWg&D͑w%:]'5H 5^P`dv³I ,!Iؔi4J:@@Ÿ1,0zy*II ; E|C*LL $=aVp<؟�v+h0?OOks#N"T 7e+Y /-<O_`@|(0+ Ny4Jz`шߥ[.?I^-X0 pB!�֮C�)_jcTª=�:7) Y|yoɥ̂eleAr+ (� ,ς !bHLn*'3Y18U](,Wxh4P DR�@�+4 fX`Ui>B y@-�t-ƣy^@ w% mן*&�H� ?@Vp !%yш"�0 h}AHC&F-Si@B3M @ F7Ahp�Bb@~JC1:%"15.Y`;,W  ` ZG�Pq}`҆$0 �O,*¤�$@T��o�U GQ3�PKH}ANOI:r y4<�0T h% �0&�\OFکu)V7E>������"dbI<gUbCR^=(C*9c@cWg3As j<lx/fb=uiNgW.Mz`8~yY (z v1H @` zPs <|>2! m]ф!wԞ<NH]>8<r؟b_DNB IFg/d#|p�<xrNǀЋ_ȉMIyٰO+ODt^_C25P I3$a#n2˾->OlB]r2χ����_��*d:T%U\ͤt~nd^hJ6{Wg3S GdC?WPkY<fMOק`8~yY (z `8G U>fVd!shFxΓ<tJ&s%ױ=`�s<IFg7/?v\FGÔtN?Ϗ s̚3F̡']̍T#5RfLQTnE;22ϋ{| `9O\���W�� ,AR3@lq<7Bn%hhU=�i0RQw#.uV=sad .^d8'ڄ $~@"\:ټ &P�VDؘop{*8*F{qNw%n&WY�$N6Ng}qV~Sk=p ;c;DM�|}?SҶR�&= oZ9G>@NMH 3O8a4n4���!�Fˀ%��`!�U @;QH 21hoRW w:_͢$|g~88;�C AEP �4 C%'�/)$ � t(3Ą2ڰ$(d$7Bo]~b5o+㗮mbS膐#Ok1_460^s h rSdji=8)( 4*'`H.Dl: 5Bb0ηn?dF �CȯDxp hjDVb*W ((؜OӔTX$$Cr9_p u0a 0!0'@u@@pAmێNZT9"0_-|p;"^z!Y7 �7ix8|F @mX Oc׸�~lzZXـT x�ˆW8>UƯu50�{C &;{8gB`@.X.R= !qC�/rˆfdt" ̐^n:DJ1N JM �HX�8fp 5-,(ՐnAf,`Q+v>֤ݷbv(ڈ022"`).e^e]x�> "PjH@v0D#x}|j,Ӭ i]ƆY$FjevI:܊������*X����� ,_4؏*Wj_ b-ϭ8` f :Hs4N̵y߲M)A=f#0myeR`;o%ypsTi+ Np>9,4Vat3 ߍ<|>^ȒoDÅrh@p_#W nXn ;d($8w~0nRXco};,@#\�eyc@Fe~a֕ u|h qx(J}f}O ah Yw= %ƻ� 9:C|=0:B2#ByI�t$aW �:J~Hl&\p8Uy 4'$S ai`|  �RHAϓZ8G V�Wl I,$bB2o|^PJg߫FyљX1k, YTԧ'טx}ƛXጁ]Ɲ!o3ni!G3-x93d2dI09ţI87uyPst ~ =~9{fA?p<zK�# >?K4Nuyxд`3:RB6}%;9Ѷn-p) S7d$v1!`~"`09=z×?Lnr4)dAsk'z8 t p�y^`k,|k(RuLb9ati:A8avcu;ȱlݨW<|nQW܍8n:`qf1#2Œ0 >Kݔ@6qkb %{u79b1\9`5fvk8Tz|8h~Nj1GϕΖ E_#̮ɻ!.V�rh"m%dti1s)y#+�7Hh�w" ��sa炔sA`47v@{Ι׈BZ'-pK<p=u9AL>s0\i9G^2q?��!�q׀%��`1��7p!�2�<e�-r\l*^ # Y>ÃE'0״ !>x+#PrDto} jD{CȰdX:������NPTZO*`z!oǰ@BbK�4Iڞ؃y !Ҍhxw8AǞO]<ڍe0'O^"(]$-)6{j zmv IBfZ(ws` zMpeH 5x<$�w 4 0>t�EBGB8jr7Odo~ݟ^�7!I 6?1)?Jc$Q_doւc[$%Nˆ]PI�Hɘ�R=& Z0Ǻ �D4I�$?8pa cIa;_FVC1Iwj? : + J}ICiT� IJ`h>|s @q!#tzYa节_XyHJ"b}[ ;b h4 tD맟c$!9=øKA$8v?~iĮ�˺ �,n8r{]-pAl"ƔMpAdm'Z#`À6k �olߤAN=ùdUZ݉ևt*aa bG=(I (9;^h 4`Yü7VBMA8TVYoWHa@g䀔Wb#-'!Gsjon$dDDWӯJOКOu$<R\ }x a[96$i\B@3qlڻXxF�rLp)'$wFϮ`s7HtĿvZ oPi % H/&DSDMKKp5.@}/ ",p,F)IV3p`,"S5kDNwA/9`R$a F6OG}b �>oGw(t+u"�Xgs!ouK[~\4s"ۀ)!> Iy١. (lؤ5нx�qМx*p.f\m,6Z)(W\>?6 G(`6@ihWۅȥDkӿ[98I댥 2�����36mcs.$D{F>ډDr}/}ݘ )%E\Q#1Ь}X{`j%{f�vb �hN 36?㏘g;^W7Du} �x 6#?tm;Gl'_gVmF`Zԍ~:;Gr<O6IX$ QDt.T/:8דIT#CT.[:ם^:;�����36mcs.$D{F>ډDr}/}ݜ̤m?rlGBamxR%و1:+q$>cﱜH'y\Ch2Ǩ�e'h،ѴrLl} N9Z9v Ak@OGhāGiщ56Ηe G|B*pHu*{{8'ZGx�����LYlsIĜ9=Bj/0yDC]rt8 (˰f�#& |W,}ZDpqj9, j6^ Ys6I)&={<jF~F ; 1݀9zL;pFx jwYul<R Јn]MH-;iF==cW`ha08w lpB+4f2@yXWnNMu $N 6`u$��!�%��@ !�HǶ_6 ]5QaoR jݯZQ[wEw{`SԫOҋIe:B5z5UN^5D&1*q8j9;U. ](*h֕\pPHPF0ʶABbLGk:kZ O;Ҥu` �H�e3I"I$I$8E4I$TEUDI4]uIV)B-ikS$r\Nɢ۵M mE6sGD!9>Fg-DqC,kR}k:QF62cpm2sFM[mV9eP-܋H%CJQb"$vjNlӰ \Xk"h&͔fvkJa'-#PYl¯#UZJ Pbq{uݳ EmZ��H�U3hIHI$) -ANMI$UEaVUYRӣnBB0+HD%l'Ilf&mG*P[d+!L!)Ģ֭!!{!n z a,q+q^o kjsͯ\Vdp=ѩ*]gC-lދXSPYV%XBIP!a z 5Nr6]pFFG,6?~BI5G%SI*۹.\%kml,MU510k`r pnhZѶTV <]!!]k\āJU+H�T3HI$I$ �J,N@)SPKT,PXLErU EdTYA5IDN![4cT&|%k*kvØ&ݿ} BֵʳR1Ud"{\`b܏A*('mmҢB&AM9McF 26ֲֹkZֵd֒k5cZպ2SPylR5 &n4akkatc[=BTYf/ckxfTAG0H�T3)$I%"<44<A=$QU$-YLB^i/?!Z`ɖlP֕!3f:kRl ~\0R.0k_$9DX ڐj*,1SKuQEm̭JY+ݭm\[ Lyn!sNZ$1G[yvlX14l8ܵ.aj@)nSBzg#k[Pb6Y4�I!5!3&P/b5N"f>j˴ڀH�T3H$$<ԎH<O=EIDD!YZCzkgRt:*_s0H_=sVԹ&s*(ꞥ|-cXqM#I>BGIֶ6kY*j >rFn]B6Э+aLB6 vj;c5niTuI3=c5i@j4Ӧ5 ZkB4SMNҵgC#GO '-bo)sƻCֺi޺(c]kZ/j vP֛[Vs@H�U3H$$ 8R99A$SEdQ5eH0:%{ku,lbN: sNYU9w[. Z(UխkYVLjklrԿ- -~Cb70Yv#Ͳ;MzaĽmWS 5kX顬YN#Lm \RC:DkB sFsK:ؙTEC jat6lá T`Y%- nVʒNmx QfOh6j:KTX{5DDpb�H�D3M$D$8OHN==$M$Q$QEHGeWTPvsXt HN^N{Ƈ iGzsft,k.aʱ ,9Jjh��!�%��`!�1؋- 7[f)a#+'f4>)qKbBGN'�C N=P D0a5b&s@ �|?biFW%㏾^P�a0A($0Qׯ!:�Ł@( QGJrrۜ! Fk�X�0 kgJC�Y\Br[| \z� @4�LE$04 ݻ>!lukqO+%yϢ w6B�:Z|Bko<(�\:<wY?H931j>]/9_ =`<ٳu £% UZ@̟,$ "6|+�X6:G*$D:) h.UP  n$ (e0Oy艂"ap *Ё\@L 5QWq(rVD8嫊*dx ֆKb/78wZڷ#[a#͒7k[_dXy@���_��:X����� �HP0U0OBjBpG_;apUy %cI쑝rwv9IO*Wu%u7UyWYCR)1 ;!�HNh[b5VRBP፹F9y| l1a8a$klO0'/&i-Ey@"]0x@p_z˧cx@j'tJGĔJFxCnDa<tX1vI(Bc܀-xK1Ty>^D`<~m|i7r+ _Gkslx' :7^_<BapPP>UzUY S! 5M;wW K #G@^&@xǻt&^8>ݏgp�}]y4i8_"L9ٙnwPx"g^a<Ý9ew8XvQʬ':ԣ&=nefec8Tt!Հz8 ga3=܈Z�4ys)PaF!eL |:]ynH�؜k& <|Ws NA0QqcRb 5X1@n <C? x�:qvKV q(u<;0 D^s t(\p>}y)� j�ˀ؞DZATp"x=#^8\;m^ Glޢ�q8>5FDaK<@.Xy  P1=<-Pwe�����NvȞ:v0|[38>"s<{DAD0n5OK0z2goDN3Voj?Kh@;J>_{p& T6 qdB GW X�yn?8?ljDh;pϰ3d3H:y-8 <PEI2Y�fU~7쵎#-^d O=c;2\~#.h((sXjđb$ � քDpu$F Pe{KE.ІMji)%(A+v”4�@#r~ c3�LBJCC2@`C�aیZîbQa,5<H&�~B<hL/8 R?#/:>pQ�4 \H4F[��!�%��`!�xE# v]j@;rbBG#Pw>@4<Op 4;@B\.G#=\ΉۀtwAZU_H=A)ui%�@� '&],شJFz@X�+?ґn|  B 3פ@;�ay 3וt6ǰ%^P �0�F()�QO+]%?ua(IA HkN~3lPA8T ,}+ 8N@T.a/$ uI%&QwB6fhz@.vawgO<q}ã}}#I?8 EE.t}QG5HX׎|;V' sm�b[/o x#]&Dfa,*rP'{>%VUJnYx*]@4ՠX8,>i6 ?U ?JWjS ;? w!) `PDTHe#\nF%8idEb d&}|M l"˗a6:,hb|Zq7ڞm�����+yvɳ62j9,g%m anNk9>j'Y("XI}e)ުUcXb,|}S{rZx4V[9o{"Ғ@#UP]\(;B}CdߺYib X wFKlHm~K.j9,���_��#{<;E~H|",\QfG kYكM}&`ˢ.PƄ G3ӚOڌH掀eb ];u Y("X"O#VVgq5"Uư9s)a%W{eK?F.ȴ#$Hȗ pn_i ƲwS~zp$'.RDž>nm) cOeG%���W�� 04g= ZNnsÄE�p靪fKHJ dd␰> ɼh b3!!-l5!�J@C4 Z4$1oE9:FIb̳9+nYL3F cvsic|?F,IWΣ럷$ͮlgPRxT9.ڦ�N;Y%i.4G Ij'ͺ÷oKBEZR/*3|>+WRԒ@x4-l&+^ w?v? $c,�iIA>ˠČH:I\ۣgѐH=3La. #Ίi*H]9?: vm,Lpq21c  ;l @ǑЯ {_A怾Y1/pjH8G$"1G>@qL0*{lOļ*qDN<4Tpy@@o]LNх8X>Hц%+[Ht~Q@Ϳ4cc*yk�_�υB`|ȑ%J—,8]ȴF\Rлe,! G'uEL8. u1/1Q L*uJu3a|9��T: ݆�]~^t4$z:@1yp/'Z<IE:;>�lxXRhԯC �LWb xW Xp�hBe2?W$WW4?UC%{(覬tB3'R?9WpI|><σI5 O#= -��!� %��`!�d@)$ΉO`–qƁ_`r`o|;"%x4G=?J|'UB7ϐUk'9 Ph3RTh\=CF> R:IA Zm] 9C;㭌,Q='|{'ʪkS;q\r~gK "҅8(U;r^N+/a_+m#qqX/U 1.?ŵ`x & rt @A#Z\ )KI{W3/^ .PvaFTCgIX.|X19TZQf[gP^0%�㺠(>>$;u�`9PU-Nu1CBDWm6*/(\|q> e6l�),�ܢ$e])g=`@ wv͖7?n*/ǁ~h\Y$h$­%|w�����JX�����~D q!V@?aG 8`CNQ#B`q>y=o y܏y\,?QF��9��u #p<z i0fD0 tn|_@,5>kCŀ€Y^NaBf =, {9Uc( �|4*�W ҅`Y8}z@ 'FaDž,+'W8s`�Q�h8F"ؠB݅0u'DZ$ Ȁp:8e*|;*x 0xѝk4`%��������� $_r$ t�'`C;H7zX4( $ 4~�!h T\0A�|iB5cA$�0""a 1/Nb8 `$ B NPճK뜘@BYC~&#p`6Gl7/Hf< AX H K'1 `w@&,' ($1ǯc!zXv؋P P2WϿ@�$Mj30W @ /4BN Ҁ wPGcͳM Blz � wwx{� ӂ"A$, @A�E&HX 4Lڂ @ A&FM /4BN 0@1_h$Ao A�@(`�6�&M�� @2_h$Ah@$nA`'0o�3dfOЀ}� @&!pN"w3� �DX& �nI9%�'�@4_h$�Aj@p �7@&!C\b8 bV֐͎<6!�>�F�.@ �%hiHID&۲ڀ(L-(I5Џ2 X�@CCPA�|Jŀ#9`@@=mWSŴ,B_n4fM} 7캇�1� �5PԆS)�W:ycY�C 0 y ECOb nsqzT$Xn)3} `i+:<}E Q% 71P1mF�Ȥƍ۩ Xp*m!үJ{EKnކR@T �bђRF~ww\RRj_$7^s޼`; (C I1&%g#� :rg VxZ|?��!�I%��@ !�!Xh[Qhn5ṿk -:rWE܀r: qiwjF)+Rs*nxԵuFSm6LAE kZJ HDaìԩ؝{M5Ҽ+־kZ+ZAN deLo6H�E3L$IHy<PHATMM%SQUUeVNi:Ǒ9/QN1ru$mejkhkW{DPl]kB&V.JtN׽A+h^f]/+%t]g kX[iU5o퐸0SFlHj=l@؎YcAӕY7Ut1 5a 'jXᐚD7Uf3Vڌ1$Svma7S`݉r|r\'a{F56^dh7yffVkjH�V3(J$I$(=C5$UEDUEuITAtҫCI;U=mՌlgAo[B8ZF%{ҧQ7JֽMLXhHVm ޙK!ؐѣCRTʴ2❱IFD#\֕Wt�v bK9cdbPSvxց6T!h"sVH% :4T0ֶvR5cK^UMkg;V;[Q+kwֵ)X9yҲCD#_5m6oBGtsVqmXAq��H�E3DDI$" @9P=#A5Y4EQt]EY!JKMM@R\mSG �Ϊ6Ux*}Y&)d9t87`&կJ@`bAjnJ5٬MTj6DP U59ЭkL}Dj[>r"fƵ-"i4dqV~sQvW Z 6Q5T+$vÆ`x}[k^b5~ѹpQ`TNbBn  qh֯|Zm0^*smFj�H�U3I$$I$ DDQ%S]U%ItQdTl} S[Wx!UV*=BAUKp sQ> &[Z1+SQIn4xɲCޅ[X=P5eP>!q5BEaBX`Xg1UMMkX5"[H]CQqڒy'a֧U2X�#-Tm%Q g J"ݹnMSk٬#XIbrd5/F4\ִH�e3E(I$$ 13=A5M%Y5VMdUe]6 {ײF=z2)B!sn0WT<-6Yޕ>|Zl,ٵlF Zג+a#Z6͙Ak*% P"E]J`Ⱦj-u[3b6TVc*<klF)OY#tַ0L)`~vjBhb>|hͭH0ı'Kjg8E.:6j9(ThMcH�U3I$$$# HAA4U%SY5]UUN=\^;Wbnb2XV.9udt݋k1*ζo}ù] k7/uGE˗^ e/*R?]a Aە2DM 3RͯjLrX4 ,]}`k$kcP |}0xoajʇ .HLtZ9.6Nc"Kr\FG5#W_[qR@#]Vks"7 L'gB D:�H�U3DI(I$cJ,R9$93LIDMtUQUUUaTV"3JT1T2KLDl:ڭ2!m4{Q" TF֝UQGXj��!�t#%��`_<@wɄ K^`ԣZ]e?{� � ;G_&v(& 7�9+$ B(4  Q-yb1Y  )!脄A?tv*%" +X \ i4�{0��17|0 �5lHJ@K8i0{@?�@1u�,(\VO I@d0/H0 ґ%q]w<�` BF!  &!9m;ۂ�@0�d�` C,dgYhof+npچ�hM,^@F;'؆Y+%mؖM+d�%�@M(5@.�\@O': &edd(p@4 8,C '-y[5blgcoӳqU��R�g Oaxם p dσP%3`P�hI ,gA+#õ,M);|F& -%!~��2A-vC(KN3:xV�@+�o@!&$ �EM+%ݒ4; �/'�ЛtZIAnhNw`@� 1 RM  J /qbI)Jej c X0 Ĺ` vP p�Qy݉hl1(rv0cs@ Rx+%b~<J6a/nKnR_ܠ߹Ty?!Pz�К7 �8 0) t�W8!@GF:ߋ=6?{ �P6f7 sE8o-4)�0_ñR$ERP;È-?/00.^4v 3gJ1ng=zfS|~JKja:zVPM pRBQ|~^T3I ՁqYi'n|�P� �(~^(##t+?>� (@-�@Xa-x͙%}�3a/w04:G( 9&4}(B%L &ie#!!ܿ\, �Ґ~᝱{�݀ߣ} ?^h,p &׹e.9IE�5�}` J p,;p ef�$!*1؛*D"cjAR_Qp RJ-${�/�~`T� Ĥ@@aEdd#)wuALH(dAIJa4M�ٌM` �0Ds4ٲsW}ux &!g~M+ XWP02&0 BHX WZO^2`z5~�|Mw �R1;>B@'-䔀%$�+�>!?ڃ0G�t N@jn_z`@ @b�&/7M8Cnaw'mwn* ( <hah�k(BihbzpՒF^@K70 O�x %="f а t -~nf &tܐs+TQ{�C|oe8 @t_@@dۑ-$Qx߭iVֲK2u-Q�:!WpX@~Hon?qjj*@1>J @N7A2RDВAe'׀\L%ļ$~8w$%g��!�/%��`c?jw~�$��貋 ٽA�'���QnDJ^ W a � W-yxw\Dƒ 9/'v0I4( U�r� `tY7C�=Ld,N77`@>�DLH�zL�ϧ- Qﳍf_28:AW&۲vg꽀�|�X�DC0 R (jv6˗l{luErO^U @  @ ` t`PO,ņ/�nIHnK̳@ ���@�p(p�ˀÁ\Z: )8 AK>sC} * p礛Ɩ_={G M(^G2qX�Vbn8MxnKvwʲ2u,(9;�8>=w8@- `a{{HD,P(MKW<jq95d#PaHL5u &0 ː D☖5gBJCҌ)3QUsU8Z1ֱaY9-:@vsI�:ŖC6IK?`!GxH@T !<-^tfMc0nd J )%eyB7vfwd:&N!۞YM#r4¯p !I $`bIS6۪ʀ y M( 0%_Fp�3BIHGvk/!IIՌ700,C'<cen*Rn%+*bMA0  /ܴ:)7 �*Pah^MCYb{Iw`�XQ̯@0 Hi1!Ḑh{ * 5? BYrN`T@ KrX 85d?v'_i2)[u>0~Ad wmV~])ű@M$r3aҟ|g#X? S&<E~o>W�xYokd <ⵁ)#OAӆ>j}^4<°%� "W@x(1®1U?}Ú~ |1K L Q2R**:QŅe�H]�,@bo:|fkH-0 @1A7� d"vha3<"Xj� Ol,@'KI@!o-X1߿Y"F',/݉Wc(Q|Hr [gs $#aMmKmM zd4Nr�0� k0u+L!p၎9q@\!! I)JVtUE�(`4hoF_k�hpա+YK^咍ɛH'w*^vn�l��;&IRPZR^NyVW8̆\R1{1xb.\p0<Pnn<V |zպ&@ʩ9T.kVHR'fEBKTF%t#:~ZɛV &&fB72ϴ J>ZN)y`ɥL1؀(tT<9 d5ͳ%5kR&VYU� 6 @zf FT;ӕH{B˴tXsk3+3�0iJ=ALԲ-FԈA}"/kHa5._-"A[CWB:J6a .e `W)S:` ;i� 5G�e#APC @�5hx(q) �$KH}�hx�a@A4�\:L` i��!�;%��`!�V:PfԢwhݮm#������qa[6B'{zR* %0KU2H}tΝO[&JϨ%t" IKl1å!)OS :VOtu# 1QFn,Uw_mZ2v)&�S[K(j %f6٠.nL8+0Bкg_2d}v ~Uȓ]9ڔԶϘf'����_��q'Ӊ^z[{썯{*x:�밪|@L0]2 nU#/p0ޜ;6_n�L"s($ ]"&L3 sHaE'b%rPGR0D4fͿ5/� ~DujؤLOm.ࡨ,/ kZfC iU0PB B뚗D?_`:W& ]VK{"NtOjSR>a=^>n׼���W��� teNjhDۘ4`ӕHN=e ؓ)MyQ<P9>0@?cWK̀ wnO)U1ُ4#o < (I=ݪ�.cx9m0.BS<͵Ly:0x7$NXФ?SdG(TXbla<{(2ҳjAD;S=gT(ǙږݎMQI?T=C]"íKB |drp@2EoP@ <�`#ouwQta+PjU ]̮FU{?" �{)d-ہ 'ǴYaK""]�b'7)>F*2݂߇Iy@:}Lr֠bZ!_P ~v@/E[:N"�su eq*b7T4QcC93 >�` k (eI@A�Lp{B�{v#"JgS>H%u@ JS/(7m1�5 !z}S�u. s? or'#DQ%F:ΏZa9"@d OC%ab3t3u5PL./avwB�ey=-CR*4-&'0\5S$bG�p;l[$�kİ;sq0U,1.y/`7I�BF퀚y^Dž'#,(}cA;`P 2I&?HFX\B(✋S8{X*C#gO^F@,* @/<QZBHg%:wnp!S D"Ra1(,ZqLrdrY)Ij�3M'@ %L?_&wGS(p/ECN7NjS�GwH9r;b$!@>?(ZD:Lp87Y=g#@kcցKOt_ⵇCyq8,QzOH,y{Xx_BB4@2W@2YcLeO,o2RMS[J7CꞭT-RJ,fN19UڥU*,*b)aU;/{]{0!*0.d %κ6�������2X����� àcH(+ qXg 5..Džƀs^�pN�c 03 Q9v ?��!�I%��@ !�!M V20xg`l7SoZִ4]11v#5!# ڶ5l&ԁ\ak1$̙m`SkRɌt8<4GSBm tZyȅfDׄmu۸p#HֹRխ!�H�e3H(I$<@ԐI4QTM$Y4>;A,J]lc4m y]?ekue%bn@p aБS)J[ZU6X~>LeL$16S,VHl2lYYg:qa+;UkԏFxFTF?jTsH^l`*-AmyU풦vpB58kʐsF٤*⻋S0";qjK{4]im_4٩Zƴ<P�H�e3HHI$jbJ=C=I4RA4EIH蟛 Z OULy �Zsr2F6ԍaM3V%ޅ_$ֳAc-#V1(2<)kl>$"CnaJ/"݋[՚ӓ ؚ믭h\ Yg_]~f׫Zr6$\<lJe{D  4RnU5P7^b֖;-!Q|rk.G Mm[5qFK׳T}*sZ+5 x51,?^S`FH�e3d(I$@II4A5]eMuUQt Rke-gPfIqjƛjjX3bNK=b*D1JjU0 ֱ4\z!at,Dmq¢Pcr pl"f IB~r/r{QJWI�k'~ &^|.kźKca$c!%s_ m^%ip>xxcrJlslճƿ&:BT3M^ҵVEd ;h3LZJWHF̴.aH�U3i"I$Q$EAE4EEaEIuU4TD.$uنdfT֥dmҕ36 ʫf<fUFc! nI8pM,tCN\'XpǴ UYT#wcl,4%lؑa\+qZ16976QfCF\Q LGEQ|#ɼZvY6Z̵ֶ̼`ԃR֑HU XئZ=֡ "[|; ٷQbR�H�e3I"IDI$IEPEQ$TIdITMTUegI[pn[k�h,2C9^B 9vR5Q؏TR5[@ LGE `gUvaS_@v)�BM>.�64ZG5dzzCg$ M!D+COJ EkbʸV9ZNl TIYI<_1 jF s޴1rAk`6W}2M|K5k,D��H�U3HI$$e`I0A#Q4UUQuUIuSm]5Hie#JjjZml�ji:D>ys]Y9̭ݙ,4iխIY=XYTZ xo5N " 5ۖiBezN* HKMYʼn˖#BֵL ib9V@lgA¶Iy ^KHUyg-[&:jZx䜃 ɄUTg3SVda*ϒgGcҖdp"H�U3I"ID$ ꢋ4AA4E%PE]DY$M4[N!qpԮZo/k\Q{&:ԎҐ0B53Ht5*7NH6מw;i0s9rҎ/*fY#R> R��!� U%��`1�e�zm(ûݺ$:J08)ca+`ogq|kw<PY 9:U)l[ÙG(3YDk0aDQߡ(AԷ-( D]yƞD_~qW. P7w?ϰ]E|D4uj<zPxwcv9LwlMA0Q4=s)[|} !t} @k�>W_@AʇEלNP ߡy cx�`o`^Xپ =|}U _�@DH?׼<Duz7'gq�~t,(㇬�o8|_`/V`Z4 Ąc YX0/Bx6F~ |G' {E <HA gىCHt$nR^*"ޯhBby?h>|ݗ* G jM$6@(*P<M����� Nv�[Au2|30_3v<[.07@GB!D|r㰱0�| $2ŷ֣O `Ltz>̱>S 4<xtu@N'wX�zNَQǬ`qƨ�q%K4twzd3 J6K(i8>B>A$?ǨQ0δ:/!u ªe4v(ccl3d3/@.5ƍΣOp| (OBsV-1BF; _?Rn38EbtHB.<�؝ϑÎ '8*e�s>bq( n &-k9~ۊ9 䄱)&A !PveFǙԬ2(ZP7e2M0Hpb,(#J\Ef$9:gT38ӄrq\oC:x"0Q@?u4PH$<L 9�p 0�ڽ@�%%6Z؏e �vC1�b6 '�B  )wGgؠҀ57 '~1@`~O`&�p,4ĩ\5\VX ݖW̔)({n H ,LKRS$ s$L� @b#=(St~Kdb^de|~G6El@pX:!bjs>ƝSh _j"|N1+޾u{]UV0/ŚGs($�8vEQ8*H 7sB:�`n6NjZ]WTݾ'OC*L@ ɸb8JvɀS'7XR%p#^� 0 @e6N` R8Nd$I &t'c`Ć-s::Σn!{3uu�/4!=%=)KZ&� 2-(ĮI|'L&J dgBOfA.@3Оq<:-�٬E.7�OɈ,o DbBB$�BV#aLd#78x[V@3�w9Gp�?�L"V&0C�ĭN]44%8X dp1A(МDI ?$ %'!@PMLOO /v##݄f'@""p 2Ut39c6O~"ش 2̓ġc7•O X!ʩ+T3�bf35[%|LI43%in3�J0=Xo&�Ys;X?%}hN c ��!�Ka%��`!�T�XkgCPwv!$-/HPa |! KI I ;gű 6$}x:Sq @vQ0�|Ļ ev ,hjIhPH  \̓r}> W ȕUZN L(ԕ1ɜ � \y3镚1eҴf JT1-�j[gwF#j2N8Q u6"ekFY�����3yg' <̎K!r{E!#o)f<7mG!L8*UqLS3 0Jt b:[m!Uxr߾F*ƳFk1=r+jr7 7LX�����+yg' <̎K!rR )=7H S8p$AKüIb1�Z,`k#LZ Kt2\-9T¤i { QFm`BaDPL2GM+վn5 ۇ4uV5R3Y2+jr7 7LX������xB lq;C` j=g�͍o p2�€i:&c,8J��70 `F32K"@דcN٤Jb;+�xA+E%`9_4ђ �j"²ő+v�H k@PwCfrs@/ob�u 02¢%y8*E U BklUoí>kY`(Ou 9 H` zF , !;�3,yBU2à(a<sAqBTq ,U Q ]0d<{@Sߎ�?TǀoV#Q7<mLwv7¹*�mc,FB \3l=VlOГ�B($M h@y`tsB[R�C�C,r}1H?q�lZ\h͌ OP?QE #&!"k -@Td2o g{TagN%X&2�@icRzvqG#%3rLJgt3bI1 H L3);�q=$#mhhJ;NHCs4�w�d0o$# t cLJ->8rYӺZd3ssqP x�U2yL°�r2+kgX;/-Dp X UTNs o<v z}ˆFc0!,�1Zh */|PG2 +%&I=ar|tt=ga$O�V=\"1v`])'ӫ@; d.DH�!8DV:`ëu!a{N BYi 븳* !NuAR|v�ljmJTG���_��*X����� 1}00˓�Fd|�>:Հ �<kf~:G?�lNb<DA,a<A03�<`r?qG5f#9014p4D#x0,LTPyu7x1 73��{@W| VYYC10N;LԲ=ybwfwf}/u;7cx#7R׻ SǞF/G ~��!�vo%��`1�!M�!7�{_c̉#?5p6׆id FU}@2ʑ�q^? @.҅W �o_@9M^dGGACG㰖t|fo,D|,0 ?B^}Xcj`6ϔ &<@ Þ4̞lx h=DoBo*F5H''0,u<&zY}x>6seMZSMz ;۹n1>;(Å<ױ9R %Cȳx%`������ uFS8��;Peq_Y0 <R)`.x�Aj7ʲKxko o0 �uf}}P9p0h<,-x?PO|c 1s�K/A&œg9Ď"KǀztuLp`~j>C(J�p W0,18G6;w n$1+. ?s<(`Wq"WR> �#" J#]@񬳆9{7=Ȼ=�=iL)<19A' uhS4h㺸CVmcLc0gnaL@䟈evaTO e~)׀RLa\W )>=B޶<׾Ab '�ag(E< �}AN7oW@U>wJq/è Z7!@``#Vi:pr}Tѿ_Xrzq-qo8t9π4<PßuPbPV�hp ĬM0</q,JinTSG4%#cңEj:�3#OC[oն͔VU0t<K|;N<w J{/̳u{; TMpK,ȗ`5FFq>6|Џ:sJBҴg`@:5<8ˀu 'ƀ!wpЉc+AOay9xfRwαC7b8*n Ab!#&F] >Tp4�8pD2@ہn`H㡊G9auc�` 4dJ~ -`H4g7< 0?5~o73 )~-Qy1d g~M)WQuv&VGM;c'tKᮮJhi7(@(ك9vC�L> �|�&RZ�b &%9 q/L)ͅ` 71o:1!+CiǷ%o >&-c5P141'�vA>Ғɣ_ALRRwUX_o OcJ ܝ^;ŽL @i# ݮj�t?a{r%Xq �a !-A}pMA5e4GC Q 0)E Dj0gLlýp"#39;R=ؔr@9a62xߍJ6D`)ҌI:zMqՠp<h*cKPGbB: XD‰,̬Fң速8#\ɘ5m|!Np銔e b1>Fh|ɤw-ꠄhhɁ6E�p>@~KH I0wN؍U*±i\ռg�����*^^Zx;9mAwt#WzlpXG?VJj ' 18ؤϤ�G *R(TvY߾g��!�{%��@ !�\/Ji wjERгzHZVSmZ$p&$}6SZWT]uUm5Y!$:6 vYmZ[yElc`B6#a[It*lir5cHyIA=Mfi@H�U3ID$4EIDTEQ%U%Y5@;'9F {ԷA:XK[s)'-=VC@Y*5Ϲ`Lΐ}։ъ3Wt'LDU-yLf9fIѻ#{ruNn ޽o5 sA[M(T5ֆ $Q(6Z뿓YPv Z~5qױ[OMZUХ;F156x-<&#@H�E3l$I$i^ӌ0UHM%SQD]EaUQTmF -[r= H,QdBqFQ;wdhۮV[ڥP%jWQo&eB\X\8ǯ4NlR5kVRÅl4/&ۘڄ߯d+lJYZ¡PM/4M !r*jfeڝ \5SBt3sƆծPyZG]e;y"rE`Gz6allZ[I]+i )(��H�U3l(I$IOIME5M4QUTS&w#%i1niB")m4R\Ņ)A! 9Fr׶:` HJ7Re]|:֔n6Vl-J73 +,׎ US*~RYb]I�^=S@Uyq݂MܝS+~Ie5a"[1jrz9^'^ҵ*!bk� cp2XXkHke<^ф52KRTkZсH�U3(HI$ERARM$I%TQ5]EZrۗk9kv2>nZ1Sw-msubf 2j$3EYBOZZtdB <1Hy.*.ЖP6%9KIjJeڻlml5^93uwTԍdN 1`/Ay7ut6يl'=Nfa EF][QF\m`/:N[2B Er$Mbլ#p)k@H�e#DIDI$2<҆@P9CADSITMfY5]XQveVQ|C2iQ:..hyöpXXad|ȖXVCY%J\kcZl)C!'-GkZ¼ֵkH#.sL5*9 F. tp&XZ֚4fW$.9RPv[h[iVN,^6!塏FYNsf5c.ߣrG59؍mZ7RsDdjM'd3GbH�f3DR$I$JA4Q$PQ%Y]EMEQeGլqW07bvl b fr]ьL؎Y\me0Y#XƷ ~Njv ݭk^KI3m؄m6Eb8iY+WX$#mmiJ#-Š9XObhSg;+vl'; jmQ eуicWA\blkon%+PTPV&_Dak]4QMK`͚19�H�f3DR$ID*qDSU%RI4Q5QEYU]fViW@EqBZ%N<sJZsc\MLVe|٭| ^*fdAWN+4qU9fV~6̄ ��!�̇%��`!�!5]"s}SHJRX7 ``1mC[���_��"^^Z+/xݞōk kpsPѧ볏yWwBK=ޘ";2pXƨ<JJbA(vKk䩉@+Qxꋰ6 4l�xO*R&VEqOp<wEDW:G>Ҵm"I|tնQHX7 ``1m*>셻~[\���W�� !PW2\ �"6 uTl ?616@qG`eFRڸP<ѡNp;z^O2` �m/;�ʠwzMsmW*[\] P7ht�77mYn `3&j�WaÉU_ebp@i\�:>&~xPXO`{�DS05Tu@ T_~̮,b{n#W*X0^uQ<M̹hp c)Gq$B`"AǑM5@<P)V#學a qB]9LcaǷ5TǎD @& @caׂ:p8@# �oCqURG03qYM �Q[�uUfC942A%Qpϰ0=uA€<8𮹓 _a_~rl͆qi؋㇬sZXf18/PD(10(P~.N խ@T ņ |(a.Y]9d{h ɤ$8 (3^Ilї r5;tX` �ˣwG #��N4c�P3>YN?6BgI-`,}ljꙤ CWdwV<z!d(n�v/$MO O >8(@5SOP9€Ȅgjo#ch_^`"8Ue 0�PaH�zu8|3]YLkgUaRLD� & H DV r&$¸F<vD/ IBq!Wk+81ړX%bb6\.&fGo>p0/u+sFJ,Ӹm1 N,n �i‰f.H3g& ۏC $4I62h"E0V `�&~JμN.)Fɫ|A?KG3&t|$̰Bfri5+�vq H#ܖV/v[� z0#wݥ(`0|ErՕu~|" eռ `1 XRn+RpOe5jK�����2X����� t߀3_.gW:|}=x81â �5x2*8 �*gQ4,P�ڽKM�SGQ?|:�D;�|`�D^aG yVr;8 +iN|~d`7_3 .Uz'[Nq;�cyC+5Lx �d i2#X5ځa &#ױuO~ +< E}=y`p^o[Wh3Wh�y�:@]~^5�^T +My}qÃ,Tx@/ yZ n.H^fYqDy^4E2z*�j:RǑȑ ʙU\Wes;W+nƛ(p&2Z$^��!�%��`1�!٥�!W.\tiʯ SL҅^`&w0dPyp"b:+Wp4iGP<K#o>]xG׋2$NDO0ͯ߈5Uji��������� $_r$ t�I!h-1+V_[7,z@0q`4,L  @�¢`7`  0"|AI * 0C&nK(r$!ԟΜ` 4!^LI0BR|X̳:b` e?2\<&԰!-'/Hv< M  ICw@&Hpgmruk�5IZ ܜ!|; p a CQ`!82j�|pM�ZXH=y8W7h !U! |=� Y|7t x |i�|pM "A$, }7M�'�@( eo � @#@& AĚ !`'X  /4BN 9s$6X�0 �Eo �44hdh�|IpMA w0h-0 1!0 CQ|*�N&Z$(|x0 �EohF &hg�| pM�x�V�%��M/'�1)7OZC6;{`d]T�b�\#r`P(CCJBPBde!.H` �tL,$G@"`q#Pǔx@dd-`%zPauulo�si�̛7~&gn� c� �d@M&aH�|'{ PM >>Ss 51&bq[J@`o)}E,Ђ/AP&BBCK @ N w+P~�vM( G%bAK8}` āoc*Zp˾h�'!ҏqx;PB |snw!)(/$p2W? 4: W fPM�^| CHa0%2 NI}#wcM�RD vI1,P)�LAo:��7F< PPz8|PW�; V-y #T?` @%4 0NJmJo +X \�^�C MuvQ!(> X j:K9dA�hX�zLY`S9ɽ�d0)ܬ8y$�x@`B0R2%5 ;Y5,sP��!�0& A,R3KK> �   @@�9  !58tQ@6@NH! @t�2 FN|v<=� �tM� $oԌd~48h@ �1@�*� T HD (4a00!Hť`:@4 @�H ImD-E<u7`6`6gFuz 0�f%v{p*�д쎒bpnl}{��@U ; !i}>+/~*� V @aX ^PţD#n Ğ4߳�T` @5F䔌R<V�&�(vHϻ|:Q{h@ 5�P�N P`Q%v ̝0 i @5!�^I�e$W��!�"%��`E!;rZ X0V)I}`,35o �pC@j!b@-�bP /g>ֳ �9H��ǧ(w!~YvBIE]#Sye0{�8/g#+p�:O�GvJ%~0D ְi�а �w잇]X0c:6֜%^Fq!`3cJ(nBoS\B@]%^�i �Ϭk-Np0UHaKa~f If]:�'|+Q@&!'Z[OΥ}W@/!`2V(j/~ ,|b30?tU /�jCl^#7m�RR/|�7P Vyhgu?|#ބR׉0cA;I^ PPJ gSdbZϾ?#$=b͌| �Ed &mb6]ec̺� 01!&h7IGtu0?р-)?d'NPPnruedpuOB\=EA|0LI7 o_rۧ珘5r� ))H ؽxvHGﻸ?^h,pwa5r!=%3LC(h( ! 9<ZXgfpQ�2� c[RRو*/�jX*Mԑ0�@�68h Y4D2h B@f+#3f|R+ @ 0$hoFؐZـ8,�  ` I0C၃JvRseQg|qs/`rCT )$Һ7w׏4cO2x *�fp�^& &(5�a~$=͐נMPj@W8to8sN  ` Is $8 Pߊu3 "AQe&] (7Ӿ<Zf� @CGJ0 8U"1U]9m0�fv�*BK&OJ6'@P*tsY|< 1�T�ɠ | 0h{dc!%! 29 ߛTJOY9dj�s RSq �X9\Z#YAB�m�,㚯NJL�rNt_ b~)@{pTp pjB2~9@cePpĂ f% _7"|_4z71Li�0� زR7Ip�/ 3ph ;Ʋ>׮@RC{RZ׸I J1<uRqL!Qe?W2‹GN<^p� 8;cL=yQ` 0H`f A1(JƶPf (8&ɈK�1K'` )G^�A a5lyk0ݖ5܉)GC @@xh( v,Vၭ9c@z�IHr}$Ba1!I;ؽ{3�p�d8iARP^s}`` �4 �tLoJ  N9Ӑe,mueG={W@z�00 0 3`ƌNR`@ ؘ�^Nqʼa_ӟ9L 93ȾODx`iE_b-�e/ vc,0SQ`iP&{0b2xffZqyGQW$MA#~iƀ9Cq}AJsO&nP�[!(LI0o +Ɣyԝ< ��!�M%��@ !�! G&d[<(v^ͨCaG5HkYW}CU)JRDiu%ָkk[xjmg4TAmvX5#sJTZpP&5 <bi+Zu\׵Ή 6JeIi["ICXJ5s\ H�d3mJ$I$ꪪ )A5M4Y5QEYu_ bd{RL f&rcSyzπ1(Ӓ5A_j0tʋU}Zm+Ti^5l\Xc,GB$TPR5"K$ HEeFe)e4m<Qps bY[6skEFvƷ\Rf5uENGncKY)Q@TB Ű=F i5Eh0*snc)o֫"*=iUYmZ��H�U3lR$I$DM%QDUUTQuUb7B22*6FPoWwNkO>9ƴ$® l hlB3-#[2hgKGq˂؍cU(%vlFX-kfDivմ_˶khSZ֍NBXJUtDmkX Yr=kK*scN7;9l`0Z~ȇ;Un9=K4%N w)c`u(�Z7YD a *l T D[YZe&ν$k2nH�E3m"J$I$# <9Q5VMe]eUuei=RƱ31  eXF eCZtдaժSxrĠ$j-δV0Kv lܷ6Zrtu #an֫Qݯ58-#m-KiZYuɥ �`.mwBXQsAjI,mR0AՄ!ҋ46HRJ8rlesH\BK@�H�D3l$I$*Q=fUTY5U]uYU̜Ӄ*`iI_W!K❪Z +uJ5|х!^tKZOJjWRZ*be܄mY%6z!kkp1dtoEi�5jWH|ѢhuG%D1bX$ňޥ ゙ Uf - aKeTq*k4孯d&A*|5n塑:?mrl!]5f湣S@H�E3H$$AQDM5U]eT]]m'6 FU,am6!K^I1&!Sѷ3䵬iRI,bXҩmrg:KE _uE-RkM& *(k`؈HR'([k2ښq{f^`-d^Bd\sI5!]3dtI:v^."Zdo,%-dq! 6uJ9cB1-DDoX1ihQKѮ�H�U3I"ID$꺪@ME$Q%TmuTU]fia)dԩdu]JsKM#_X.Wj`1d~Z)mٓ3`  V։RհZ^jIJ(5 rԢ"IWY#JRKh=[v:"_ ٍNYx) N<*Nc ,BLiwwβ|5Ъ);_GmG @lTlѺ``k^؍SluGk8֨ܩK Sc'8$4~%T'@bCk[ ��H�U3I"$$A=ERM5QVWavYmXWeMbH)NTԊksc .t)־U uss'XiC 2!lZkmľ`I0͌kEzKU[ >1Vƚ��!�x%��`!�!YPF�vHYKa;'@0a1H=>2̖.逜? -܁`T5?J>ǭy< q^Lfzȶ,ٸQR~} � & Ie�4͟[l)0oP1?Y;lD -d䅍A+Ot�f Q5~?TM 'o Ć00`/iyRH||ec.0[ g5 <:�eX!X{6 n A&( ;RS %my {,_G8Q@v1ϰ~n@@? ؀@V(E~?RF6ϔox2`T;p`6٧]/k`_ Wp y'5 IG6,^*NM3uo9N 3d[aŪ/6G(>CJFвa-= fb_K M{{>% V~Ywewb}alKLNGnG{(``v ~ HW=bvf =Gو 6 ܡCw#^f`+ĚPӾ%aX1xW06{'N @�1 (nNP �458̅ސdfk0ODR }� 1Qiy 8\.{01_q�0&Y+mFBzx@tL!R]=F}n�~`*-ҏbP.<1ÿQ/2ڽQ` �M!3<2!t wBrI]GYvcn,lHۍwqu!!>BA@9JY` 9 K6JEr<�`,e HbЁj-AmRQLii>LP 7gFRSYpg&gJC܍xbAI͐ӀguVMJTSF@]F& Js'o:Bگ#i-F�;@Ae  DkH`h JP3o�j�Rf>а`q_ PB@yvbX 8"C_~@ N+PP{M$R;%*U !/ 8gdݾ;RG.$ Fu̯:n: "{E�ti-"R%�b2.%)�0 `@�P|> &r&`=ӆ ( h}` a\>OV�HHK �@KC@0(r�9[L�BZ.5 M� :F_ mVfFb%ˤ;I�!Cvs=( `6 Z i�hL@ O%ä@K@>&4@t( hEREyͤ}������#y96Ree9{.S8buah4,o  O,﫣c@Dt|\} 9ݤY'LpQ8K޴yc~dp 롈Tb,>6\O�R-X*=ǀ+~.at3#t|$0 iFUL"WU$o {eW����_��#y96Ree|_�>,:E6 ICo6�"OhY҄`򯆧K7;r0nZ!ᝈrƘ:zF2~4;II:*AkF DSΩlb,UrqJaQ-X*=s8 A27BOMat_(:Nˬҡ4^,g7릘* BiV0^]V"}��!�ǀ%��`1�#�!٧t7=<.eW���W���zT\`!�ʣj;PUTYƓt՛�ȕ_PHQՖ;9`2^6>PNOUn7> �P[P Gl�==kG SzX]#@df]}|N H2�eEH3D+�yX�VPo#<َ8GϜ0h~"@L 30^PJ 0Hv `@^8U013 f@D< B u@U0�{8<AV(M0 4 J]xpd88X |8P|E4)Bb,x2؊�r$_=Bd#<h4"|D@q} 2"TZDyN#<HT!瓄r, 0'�mU11`5dPΪz�t4Ri bآw�յY ǎpEQ(A@fL1/F~ޜ^,Sw�`O5810|՗�jnғN-lLn, PBK~q+:U#$jY|Q1 78?F' !7I]`_'!.qa%0\! r;UJAccی�mb@cӄ0c\UU3A5B]؟3CF=ڡ=RtC{Oa+2Z pQKFDL-$|IRpP̧Xy*`c3aplVQ.�CU`p %c /&VpBb ,')+'Oiv n+� }bF/\FYg 3Tfd0h9[ i0+#玨C5 jќ������2X����� �[GSp h0kl:<�mja@{FPe=qưk^dχ򏳅&0IQ(WX||/ .?n\?bKS91x xbIy*26몗O�Uy;=)=g2 �Pw:e^dmJ0v{jRf<9`5q)qýv0R,0Ô>X[�Gf W; QeѾ:5@xkro ~fx } }}|}`טlk8p o =z_^:X0aN(4W=nds?q 'r7++8�5">Q)gaP `k:1֠:G'aߞ"8�>�zӱy:iSV 3 .xa|*'6O),2}�g܃AM^c�q9>R}phA#gw^bh9@=(еDFZ@?lxPy(CO:s%-~o}w,������ G 1KSsahœsC?Y̦[zy <[8@`n!X|xyN <_`:Gp<u�:;K7ny;@ H}]_Uk2u˨�wU0g'HV枳<p_�tL@;jdOp1]z47Xr7x[mS'\(dvXJXJGGpۑfrq3Gr p~;HU,: ^ gTUTUR:r5'2tG?|?0 jH x8��!�Ӏ%��`!�#7e\ 뀅Vհ|WZvlR fg<�nN%k@-�6@$d bBި�d?Ax]>|UJ&04 ?t &�a ;1!t`01 IHZ{Zi,cN j�'�@M,E|:Ɂ~,yRNg'DS׀{�"�W@xuWT!6{S jjǬ�bq)૨d?H'4UPFXTƓf@J ^N'N7+@#*�`̨�s#A*:*`� @`Oiur0WN=ġ8j_ K ¾Q}}?~O#o+% *c@;yJ\L#m=R PŬa'ϔH 5 pGRHՀKM<T d!JH}. \wƆ\w B*C+H!bh!drNNoYP' E�1AI&Qgo,!?w>؆7ob&'ԗG#� �jbo A0Fd38ܰ�Y5z6iIp͐9qT�JF[$0ù8'=1J P %T8I^8nA}$1NţvaP a8Y8?,K74Að뇴$U,p > f# UDc&<C<"D4qMz|8(1?O#@P¢` *84Dɥ(zu f_�z(BK~#Z8 xHfN7F@-|w&Pn Pg(?#9@p܄n'рi ̄`L( a @'/�xw/$3 T0J@PqZ�F\:Qշp7Vߒp}(!^C\wK`@S\݉UӱdDPg ;"g=.(ng$1#Dy\j&t�H*CC <Aы-/JS#�&9,H3}#k*1K(Wd}w r R'و@;@f @lO@T\ ?Zm~R[yFHS@S�3�Xųq+  8whW#UEA)=x)H_!sE� S C4Ue PҤp�����+|y/x(klH?1XhuO6YgJ7eoq؁V;~8w5b#3G1t߲:][T[,�����|y/x((\GǍ|$uH=12U1�݉-d꿘QEc]\KVÂG(>6{w&G๗WD@UvlU8t nkFA` g_?㳼;nkzh(prߝ&aD| | %�闿= ~ @.����� ަ,ӀBN#a@Bap�|y}P0X5��|E0piza 䎪\P8� 0�>2j])R $<'�#fDq5Q9]aளD^JY]߭H<'F'P4um/�ֺ]^�=Re6'!]@>W*֩V QƅjҪ�@m`pOaU@-i% |��!�%��@ !�!w w:Q5k{! 8Ѕ Bn~ 5Z(hqS\5g/Ek{׺Xj;T#<ЙlԽ@;6j6|j [ֲ`ݚ52U1m"Xs` #!.02H�U3I"I$HAOMETUUYY]]H6;G ͳFHb=Eh!"!vy (=c&;A-3#sVF'bw:i-)),s`}YtR{'! IJxˣTUp12H' .^)E'ܶ k_a)Wkxn;ICkT&mpM[,=-2ztY Ƶq<`4'5!TZԕ8ĞZv%jkl?P9k@H�DCmI(ID5UVQ5YUYiYqiN%u]JͰ\Ue] s9;A�؈GEDSh>(N#5eQ 7W-5<k&9-TKT *MDkM\]gJyVF:ݚx֩ErBW*'Oyp\3dL6@e]bۄIrV:xZ$ Jeؘ*t42�cBֆCo 'ѩ lq+N"CwBmitH�DCiQDJ$/8QTQTYuemviXm8FPFhڮ.ZLʄD/2aR :U0BU"eGC5V}+k-L{ZAU6S)b[uB @W2E8'*jе/()4H%8b9E;#xtW HqQԦGEqNT )^)1v )j%r+[5�k[5$|Ë 6H�D3i"DJDj<PMEU%VmeUYtQ-rz"h?ʔoW0A-g*:amCWVDC|{D$Ϛ$$K:KPB{3p2iQ_/m[f@؜ĄzϡbZനRwY8=[ZTiZnb5Y*q(u6İ$dT-%LࡊC^[5Mn#RV-PO#\ XDnXkۑ|C<AABiM( |֦F\��H�E3mR$I$꺪=I5UI4YV]v[aXiG".ĥW.ln f)UhqȋjΘ$Bh/3eZ& e1& MRUamSZFv}J&Ah& Vd oU*|½uF~V|oT4nsY_-RPLI*Y.pt7 T/istmGScl+\th?!c_k^^-|Vݥ-)`W:].Ab.ZH�E3I"RDD=I%U5UUevTjtm$lJWW+ J!U$:/lZJ>sp$0PUlbd'u暋DЬ�˃*sv\a4 Զ`dB%+~aVl*VⵕX0Mtֶ ֈ>h j !PAlS浻¨z=f4lVWAu}2f#K+8wɏF ra�D9^f:h# &dyY) v3p�H�E3m"IHI$ꢪ@QeMeUeUYaeau`$TK[܇|W5Pka6!g]Fx{V\ɕ%ma,?dѰA.:g{iX5j|" Kpl[ꨄTe5la :3$m ��!�!$%��`!�#}C85Up4S~9&$Yq9E! *=@*Q�tP�Vz*n`X3(p�.7,/PB}|¨x#X 4EE9>a`B0{#R *pT6.ժ<4Y)3V8 J)`Y"l5$,h~jt#ŏ$rh!aAA=LCHc\#R $$obɉ+;1gT'ut<* ,K8&�R77Gdi4 �Ppaݰ�l7܁<gnx Zt+ﻯqÇ<'ـptOF=(Q�sXZ`⍌#B|D?EN>"�o_ 'ƛN`a0 T G&Y,4PW1�&6jY1JRs  1`;ta-j@1 AƁcV4.bWY2T<_b=e#.K�"a0xZPi*HA�&hqCr$adpFO$ǟfF?3#cY>�6{x(*P:Y3 ЊY9?Y`\ |Ѹ'sU݌^0@4 պu~bg&7r>SZӱ@&�qI+ @a=S P!G,s:(+`F8S?VUP(E9& Pxޭ5?6XB9mf@0enNt"2mT0B`Ўp9 Br@hb1C˵&�XnvLĖBq-*rA)IKy>NG7[:MS8���_��*X����� uyb8�T�7,>^< tO5WX@5 ``;0y,+nU0w#FG兙HO:y8 ySw8~=h,Va ~]\Tƀ )Ô|<^da̡jY!Kb.\g iTuuWQ1} <Rl 4sי5{[:}nsuy%N)k]_ VԸݟ}`󋽷ngiw1ׄ<q=Y|Jj,O0wvevpQq|(<KtCי()bW3a6~0D739w]V)Drzp-=zzO#}.ȑn'5>]_ }|E@^x��oU}Oux]׬�k<u}G}s7� 5R0;,ˆsBUy͌dh₧Xp(y8A@h׍c"T`p Т<3Œ'jR" @HQ>@,Xq8v*Kc 'P�puS`"@0T.XcāBUyPa2UL������ Mku@x"@/EDg>� D@ǀ{`k1P]U7>$�~eE F?`��p` '5>�ŀp*)$@|@-L7[ysaR+ȡknY9,%k-n>|<LXx8g5xP1@B(ez u!F,$wđ.Fـ @*LT< X6 Ũ9JǓ䬈v G椕l)}WoϖYZQFBcSշX5e��!�!O%��`!�#g|q.'>v:o-Ő 9W4g[{:y bQDP!/RGcih֐ K`NL[!z#�vwǥ@�vLT:�0l4!�nn ~m9n--Y@pDH6p %�8 4m5B8:MPt{bw,u?.C,aUPx2i'DZx^mnE�BH T$@t>&�T"ǺN�,.LH�C2eW�i{9H)bR? Pq4gI# (�0]؀?)`ܯsiL;AEa4[!=2~k%.f Hf^m�,ݾ 3a/1XG Rga$P~@O0b 1dQ{sqCr!5['/I c?�1E`17@a d �ÀAi(6 @kAu{ *�3 \0am�W,� p@cB?' v`ad"dJqݻ1ШvpC�nQdbk'3,T1{s:}P`\<q0S�~:IKsL /H%"#-#? ᥏HԛE @~$ v}៛'Hr 0 sŔvHM$ ²@ fΟ' 1V!8�q>XO"XjK\B%}Z]} ph))1rW{t2b ĎTOEAkdHťg wr74{>GP �L>h]0 XR\!0؏^vŒI?(t�~RMHz7{>!WBAXZWb{j# :6}Oxq2 J |XJx03 ÆiS�4f4stI39Y;@Q�P=ML�p.F3SArUV?MXo2# }H JEn H%l $:KKNd`D.w INb ĎQC@FBBQ,�����3y'{{{1f�?gp:h &`~[Cz 'v+~'"{:j#+λ /x\N|E^Y8G=bZQr���_��y'{{{"|/'c39:[娎cGn �z@>` @J>Tpb".G>,` .& p q\,q14:iO|/2u?k�5wY|}?^Sj=edW哄',%>,���W�� m@uT| P3�ڡ�-xAT=j @5@ =a2pi�7�u@(?z >yq3�C� 3L7jq�GO3Πbj8~F(I`2". BȠt8D(\�<#Z�u Ǒ@6pPQ` CƨPʺMZ0|cf\FoPr5`*�UJdS@4:P tU.,SBCm壍X\[ۨ4ǘ @DWӟ�x@ H@5՚k_O@rVd�?ei�k]AD£T ��!�!{%��`!�% Ux A @FU/\ix"*#|g}v(aNX'vIB4(^+"T̷ ̄JA\/@*K �(^||d|lXcuL<\#?R2v>&�X4ha1ԧ -{ 4(5*Z O! (1xa4%"Id(`us,!KH(`aIl?n-I<fqsq, P�u^>qkJX :UnbEpcjʧn2SC:ҙfIGކ +08vB\�R oDz0�A> : y!q,]hCTC#aI|�`ȅ[}b Ʊ)/2-]8>$,aTvy% C @;Co|ycρ CK%?ߋ<Q48hM@v0e?)J$tRPǫ;YaUBlA:X7Qhv_q%6(LϻЏ0bY0 ; @G%K@ՂFG u!M"cn5TD ƇϪ9<1C҃ЉLÀM#js,x'70Lo&m܎!y +F0gWNԌ v:Jڦp�����*X����� ?t(x1ʚo׎(\*^)B80x^(:�0 �0DA1׀"y�ux.`3[%@l;�Ҕ+0�eKcWfu  T)~.scpVXW+|(r9m^ab7sxLdpvusൺ0y';R!ɱl+]Ȯ?-8߅lEimX Ly8=yv`z£Yg$Ŝㅚ/Fv�ఠ!^b"(;+3ߋ7պr,E_<ȕ9f_#~S?4WbcsW׮|8Cy�@'�k WUWt@2H1_`rAͯt~98`ߓ<9Ř,ӈY-cq8,Wj¿_5# *cTQ7"Q!�iu<u` 0Wc_`^' b<8@b8Qrb%yfP5(+Ň şcOxqX:kP$ԳG0XLJNh[]x<?(dj!6 Uyjbx]ʯW0��������� $_r$ t�$ wq%d W/lL(8 v�XZ#�}ɼA �V@�a M�] PC 2f䲋K');(fu$Μ` �4!?&raEf>GV3?3 !,I<&԰0/Hf< M42� $%U�^� �c(ή#;Z @b#rpLE|1 p mɠ~AE&HX 4`h| #<{˻3�/ A Ĕ%^@4�d� wKǀǁ Ț !`'X /4BN ؿi @1�@X&Y 44hlh�|IpM "A$, }ː �f �MA!FM  /4BN ��!�!%��@ !�#oScUթͤ⋙nKmˢS'Kd mgti(U;d+eDPZWMKRBɂOF\f[ֱmr7ЬB5K5t"mqJi1|kZֵH�V3MIDI$NAUEeETYVZUejd%ĶVݓh ؍iK$\ܴEJB1|KW9l|SDGl#R@EkUH1T}vτIխc2Ҵ_Ê( &А jADSbF v{ڷ]o4ՆMH ucA))T踽oCZ2R]{٭ѴA J7vi;[6^7A$5Jrke.Ӻo]v:bdH$utvmHQ��H�U3hQDI$c @MTSQERUfWeqwq"=^%j4RFm+rwXBӫiHC7xI $-vZGjy?1 NkC<ٍ e:+\lZr5eHHԍ=RrYS*kEO%wuBBi .Q5q+l%kZvY%>r]=-=OZ֥G"u6hyM-*<K DHu+cSZ:C#x;ڻJ5k��H�U4IIDI$꫚8EDMTMFUuaY`RC=ҍ@+)/mk5l^YYUV.R^c! b6fvi˘SZMI :ω As@yy`FcfҖt4l9uCԏZefla{5l4IAjDpaF6P%֩HQlQm<qDyY q%VSZ"EIdիkTkܒ[ VSnd4"H�V3MQ$I$몣 4OM%I4Y6YiiuNa:rVtR58 lr!D0&lr4TʰhV>P>mv,-マ~d ѥLjZDHQv$΃e\aCX<+rcmHG9Alد%B?F{ִڨ@qi8TFA*1YVzin5 Bmj(_-.S.!�NJX183 )pHB93.қ#MnTdzkTh*!,�H�U3LIHI$}) <U%UdM$MFaX]XeZ]wVdBtba4fܭkOJ J[![!)e6ǣܻMjx?BSZBJQ,V1܆kmYu&|d+ Y3ݸ^ćlUjQ8vpctԉq>uE 'G$ѩb,_N.eJ/ 3 XcX-El DЪ_>Nuha6rZK[bKk#ETG)l,H=k@H�V3I"IHI$<E%RM&aVavmf<9*LP* 9dr"h؁k[YdEMc)LjC2F! _i|qP$e-#J<-ou#*X9aUImq׶xX3޵(4hrF!?rVbevWe؈4LRtxrfpDT-6!ˋ9`ÏDѦYf[[en$RzR+m5ZJjdT !J/3CѪit�H�V3HJ(I$jK<M5MtUVaXm[i4 VE@Ԫ* כYDLQkW[UYsV܆&ft F6]zg=YgaՈҾn-6k|feLխiƾpBǙTn*k ��!�!%��`H P?n\�N �2&p !Vu�d�h, nZp>;H�",f#@&0i4$@䠃>Mh-H@`1@ �Lid~G J#?ZC6;nh C�Q �%i4$' uG@;�X ]?C(W�V�n!5†<�f,np J#K ۩{eQWpn4fM} 3z�h�10�P!IR�*!y[k N I�&!;% [? w �x $,Xn+ f yYlxX 'f}GLAPR$ )o7P�$ ܔ|ZRm@Bb@u!Nx`�^P@hbR/v;P B |Hb ל. D,Mp2RyI<{{�3`00 �?&e?0 jq5kO |t C,0xcC2 NItHcp@2!@brxO&v(& 7� `llCA)"Ppe, s&2DPB wɤ0 )!000?tuu,䀁v V$ �=ى L� V& B @u @@H4= �v#�zLY`Q#s{ 5&�P ,~p�0�^4�P@iEdd[qo?.���$"cP(|`(̔g; A�`` 4IeP(ZxW )X3 f^9 �ȚY@g #}_}` %t햬Ni7.i4 @L&D0Ҋ(QaAco a,@ԣ0r:RN|}Bi�T/&c Op@`''1a3�2�d"7 &raVP-@&0(PP6Ig'$`P2N7sÐ( @t@ P ,(q6�? 7 #`d0bP @cO!PZ]IY!/sY3mX4/�:&Ѝҁxnm@`4k@R� ` @b~mܙÎ~1>gI(> j{-c:a^ +G3q7s@4&@|b|@`0Mg}#bWF3i\ME`KB6eq7x2@cɤ2nnaA<9MybK/Z1H�z~`VtG =[�vaKa3$߂Pj` N]ʤڏ� �t׸CRѳNX@v�T8+58l9f;sr|�iO;+T/6R:vߌQ(~e �(@ܘ4ᤎĈ 0RsG^ ބ$1q0..3~I?i^@ �IO->IY'p;��:+ LA3oB6lt�a�CM7IGt89@P�~LW+'.pZ9VN0f'p#Qz(1|0LI7 __tOXCevw4}�r�41)H |3/`Wl^M lNKt,k$v=Wy`P%wD':=G&y _i1,$l-,�/X>Tq 2� 9=cHR� V�zg` QzSmBX��!�!+%��`*MËI�@0@@4bH bnl~)�NRHD!Vۧ=i�xX�$#@LaN|(X )ٲ[j? ?1@pCT M+`^?i v+yӁP0~a4݅<:Y31y>C(VjRG3�dz8pH �vYBur%IP (OG#` &pZQdhaAjQw�rIT$ $X`kP_<5K\PtX.!CNni%%]l �0rtBy)tqRz`K, �Nlkoڡ�>Fa8�RLB@t 45{S�( tt�#qX\,03u%N�S;_%@c�T@,3_!: ]F~ @j�S[Xjr;( sy]Lm�bM,o)= (-îaP+K nXz&ǥ"ɨ`'VǛOJ,[:K0\m;v8;cL ɼyi_T~ L &% n57 g�`;�td%�N%ǿCCu@ Xba@n^~ -)-C�B3!$M A Oܢ+?˱pxƒR Ĥ 8{@.&�fg-|ی|;x�ft�B&E_ b-}}6hrO3@?�|�8  " `_B.71Sw�L��P`(Q/'|XiY fq׋+pPsg}Ҟ-CBXŷ# @Aտ)xN]Ƹo0/P#>˾}b}�n$ 0fG[�W�1WAܱaM3~�۰0>nw!mxo%#}RMScrg-C"(@gp?F#^X @,V.N|=dDrN!'|)"] xXbsU}K,4d~y` B&'$b[yШ-?L/QAf1<!lqǷ% d?^-�41/!г[D#pq uf@e�HE++IQmD._%AV"�wM%%|.GЏ^r1;N Cankhcya7gY|a6 Q5,g۷1e m,�}ᄭNC: dq:$7 /d2~SUv(4BuD,RͪݏJMמH:[D/un&#wÔ*6Z/ƨq<N5 Gy 5~ n'm-{ ((�JI Q~L`tPꓐ�rP"P ܴ5@ 0 |�ffd G4 HV{x؝* s"q>�!u䄥r%#&0&[HYDiLu( O/o2Ͼ0Q43N]�: B7(1Dqh5a %^iFۓͿaŸPR 7NB~Z(�@MQiy 8]@h CIiR |U�Ȇ[dDra05= 'B13d}n@/%2vR"PXa4}c��!�#'9%��`!�%Pnh�B(0n @$%BBw@ē{M}6p<ˡ-! �+'!5=(SZ�ǵ9 @Bav$R�yH`c.}$QF PS KJN� 7qnh4R1E&R)f=0/aeԌ5Ӗt y&7H9U!0#n)<G9Ǩ G]D` F&`''c!Q[oWF:ip+:C( T PB qaC_YkmΟ$3I^n)u( +ZC0 ;/QKaqZ]0 H@^otWoz�  FLg FF# 6( j�\d0Z>4!?ON �`Xh>-633^n-7( J oGBMa@ �4ŒIo؝y@( i?@@d - �Pa!idXyL-":5<5"[`h3t�H@K@>� �#$=(�S� �ZG�z@Q'�@K@>(�4@T 3Qu(Z%b{Hs������*[W/x*^Y- qL{~,+,gPY[R& 19@R;U{ 1z|g@O"^i-C:=~wue����_��[MW\C<8_NX}4퇀F3c�y �HS/( ,`wkЎ^Op<$=~RY�D>2os'vl/0�D^_D0FZhPyq@AQO|J›)OW„]� 4%}XTLOβx:A/�`HW�qPa߹Y{���W�� p'� a�N0(SPó[Qejfg##<̶N} =F',)f `Lqc0\piyge=jАvQۉ:_ W`2 'H;y?M�9^8/Ⴀ&!8OCv_s$Ⱦe;n=|1B'иS`r AzAJ_[� E~{srP '50428P�i OV4) *sLp�UF 6$>wuoHhC0E@l()sUDB  �G # $!3S\�U01%rBv<p ̱`B%!8s?pѠv~>sM^�@lq  8*Ǹy:'� "GX]LA-Q=܌G NIŚhp0(k G> q3wnxYaǬ 'ʄ|qN+T#3=pH^"zb# \rbF (sa̷3�[8Z':۰#<<X=b⹤�"Dy@j,1F($|E}'*# qӹ;wNS+Kx$ ~WS(<E爐U�si]AT@ +԰8t>]B# VgМl_% Ɯ넙(��!�#RE%��`!�%F (Kbu ' !$5:DWb҇&@!J[EJ0>Cq)'$"qr?ܒ4 , !p4UXGAXЩ@}P]4b8`F[jƐ F ]GĔD<jF@#|WN701<Ƭߔxv4*m>ZT(XR4w|GT)G0g `Y$>$8PfGY=  )| S;Ѽ?/GZ0"JDB8NW^<%iD+.UeM6e@P`xyLc 7ɔ|A�4r||9ĭub8������2X����� 1_�q�}4��n k�nl8Ʌy�ͿW�s:и 5իaLzglNn`o68exGr�Gj221b(S<?cL`9xw 1jX4sǜ9csGJl#e;^[ ,yEB @k?9_*�W_�`0!u恹ȵ G�oAП > L$*NDQdSGpU'n A)߅aQoS(pXv'=Wl,Eטh)x޷Ю <[k'MRٱC3 "0k^( ~Aŏ, .5^cQP,uxh OR<*P&<(uFÌ R>?)Ԡ3j9^d#3yY?0xx9`wW8l��>|>XW;AL!c~ }����� n 1<0�p`h8 @<�q9�;6�`B8ܖKa`<p7PP|åRU!6򰪙 3XX[T˅Aj 51�l(zg,N0S{0@m5J4w IP?c㌩9iݏ"|,xOcL3\@�L:`<r;D԰ qA@gD"Č5<Vm#ЮANs+NԵ0`pKƑqX N}(ډuuY7S�|`h+- ((_U瓻a >w@ P:.Q`D8|�:U); 5�G@@%z &1zF-I ?>6멀`(GΤx7>b�$BK9XC`<8AƟxrpݟ 3 7ʙDu-fЮ� > [S hՏ#@p�Ps@D*05Tz"�y1u{�u�xP7�}�ʦ4$,pxe[]@�><]d]L? [b@'{@NJ!�jg2s9\?3WO1%;-;;+j_p|GexZ�HV^Osy)xV#D2a0԰ijJҌ|Vϩ;!مWw_P 1 0 `58Ү ?E�ZZS00 񄑩Xts0.<  .�nbo &I0A ,4ed~ lR2N;|t0jYJ �b&bG� �Q h`J+vWRj>-g%}48 ��!�#}Q%��@ !�% ջ169ʳ:晖UG( 7XtiIJNz]wҰ|DmlWa9k f mոm6 tӄ̛G~Vk9Ot[e _ھo\/Qv��H�U4IK(I$4AEUDYFamhWmv>0zjndJ ؖnʙhVMjX q-jԺ-d/ R<%V9U$my1{JMHZ6Y[H2"fխSm%f w��hMiz=TE[-M5s)AQt)tF]bAQnpP[[Z {G5,ͶSlGlY)j>~-q`ث[6 H�UDe"I(I$ 0RQQDQeamD 1"#^Ji$pvq&nkᲘV\[R5kX+\j]<0Ԕ$ș~Dbhw9UR>}q!v9zpd sbEgjV!DIߣrYr=UaEa jд}+Z-LYZMJƮ(EjtRjvUZ jZl? Fiօ5 +CA^23 lmIْxB7X\�H�ESi"I(I$0MIUQuqYim,F-<hS5bVt24fϣWJt`�4lBȥT| Qs1P-Mr#iYRSY۲,*#1,!PFB )Pғ.u7 91[Ej3]QCRXY9APTGQ Ms"%JRfW1]pı1LpuC#HXZ̫RVLzK[ 9""ʕ.ʗoVѡ ƵH�U3I$R%I$0E%Q]VmqY2Иo}`FMp^Au @@]MC6}Vc(' I^ ƳW>*0U1Z٤~5Z@G 'PJFi1ͺ_0"Omb>OR-\c|cJGQ[J[X sͭYqb9ؑHmkI}Md n-quPrm{1{TDiYaW;AH�e3IQ$I$(A%SI$UUui\mZnW+1I9l1inF/a!mvkF 4e2 I u5lWHY mժdKHFU]bNR"#H4!*3T:/"M`g�ZMqsPi@h:M0H5!A : *BB^լݘ֑ 3jNڵ{KY %ktcVkVmOzޔtcVNjJc_EJjL첎H�UCE"R$I$j 4AQUUWai֝i\ql+`hԮ5 dQjW$)3hfR׼gW&U*YymV5uS8]Wͣ3ck!S-ӛ !,mX-k'2ixSJ26h AtvkmQ rQA-QVwښVSkc Y]LNcZڳ--[v2j[&xk^b@n9J!b@d`d�ք-+r* JH:i#vp�H�U3EDI$*0=I%MFUemm\uIJ6d2Rm"pɏBUO4,Tz =m,م1T"Z-?UX&=bSgPT |-Z٭)Dj_+]6a-bAY聬礑q.SJ*0��!�#_%��`!�%E9 gcX 1*ωYIA4?|DF[|A?_sBØgΏqBla^Ϝ0o'~a>|i4,u,D4n&2%`܁~<yTr 985Ќ DX8&F-lDh! ["A+ .v2$``D@#`NCYHŕA0Hq >b��'#!)KAHA GR+b* [@ҏdpsꮮ?sŶrr ΟX`0GlY/+t'R14*~@(n*πtM+jHE#oA}`O1m$?a1`=D?@bYm %.; oS P ٫QvBΓ45;_+_"x;衁О�1@RO9.|ט%kGS, ~ @Z \OɆ$Zzx�͉P1+yL<Sἤ JqgƟ!gR2x5Н t! _`߅�����2^\//x <S2:}3_s4'�v `q3T(<tXE�Y[+Yeq;@4~V}\�����^\//{"}E|?ܧ)=t N=g4y8ŰK!@OؐhSwu 4\by:2[0]ߐ �s Y˗hLL1pP_D ͸S7blcBP$#㏻<�xuAs tވ 7ux�}v ~ 8"_k-vh/|`����� c0AF"e�box6>H 4(j0 IZRcgx9 0^{ Yavi(Lu#5*�@YPX�`ri0(VjF_npV 덩gAI5ń>[_�zGu*9*9sC&7r@܉ۊi>Q<Y7 7!ǎm|=]<O"<8sTcr;a,X9�}c �0UZ@iP`"U�v�= <�ځE>U4i&G:�@ʊ�Π4YMRw\Gqy@ձqp zW ic18BC <@UrŀuW)%䕲nD?YLOѶ@ p50P C ođ)o@L-c?04rG~0!Pj�pDp;: (~ M(lЭQ{}]}B8xAg? j5AÌ<.]C<xxv1 ČDGCxM*|2$rZ@U`,#,AXAA@vunf#�2Cy r3%gC7g̼ mQ̒+I;vъGJ_�qa)_a$1 q||[~2ZHaeZ-盟_`G<2Π >4cfPV? Opa?'RB@a<htGaT)pQrpYPqUA ,t$<SsN $)%% .L~d @Ә~SajؔwAHHs-َt ~)6{֦If%K̀]Q0y)4` Qؾ 0Qr11la9%|D��!�#k%��`!�'#T00 8햜b~ fBOۘ48G wh'XjAaz  XG � #/ AVD Dfk%`~`>3¯킀g>W<A] v؝ ���_��*X����� jgUdx}y a�(E}zp]GW٠u�-f^0 k �ИH  W܁2"Np@dR,n0�c+ۭb :30?"OTyaDe@^ar2şc^;sfls{oa` oӸ9޼wAf-Y>fQy*'xUyƒjZ0㕅L'9g(^m:klHW<abT9G)+vuohv؂; Yv݃b=3F"cי[?v")b\Ӊ<P�_w)4ӈw1쮮 z2b~ R[_׬L2q=4o` @5fCR~s|ހ;]zBt?^ ?r|Z�\j _x`��B+ W Mƀ?"@4&h-Xzـ\[GP $p Ė>GR8BeȎ?)ŀ](.ux>yUu`roZ����� �T�2s9xdL ' JH1℘|8pʶT.*Tlcq5u�$ؕǀ}P`eg�= �aC"`=R' ˃P3/'/sn&H#�np`iMSN *9�Ya ]|ڀu0kl׎co8N8WcsΜ]sTuf ? @AՎ!a(Tqje+ ɠ8[Z<@'4+-KD5 0`zՎ?(ێ bH-jÕfwpgY>�3pyO8sbr{fE]LsG0v][ 7nQ?ǑgC@v @B55 8=Ax@�\Ő,]EH@T(n'eD78$qj=au4BrGq_ A/>/�*tq?R80E$U xEUtlN:Pj | @`:`; "͗081A4MBbp3T/kZ a'!,Irm~/؊?7�IrP N I.O'�Tg1A 4 K`=i=IrC10 k\Ӯ`` ᡤĒHr45':ܰ)HoÕf\xCJyiIA qNLHb$! K0 d|R ,sna`a$[bT18Ӕ4Eb ی`,$L<ѠTɥܰ,Ñt4#I79p ہᦌ׀y�2X3@,ӝd Չbd~:]A;tN.U�8&#\үT bi0XA$4` #|9P|!7P s}@|kgސvpp10p$  yVnh!@qKDe}u�~B1s�NO2d#u/1<Sc@D��!�#w%��`!�'iU`7 3 erǰyk0aB=aˣrr?#kB@3]d8O'D#ҁHhDO +,)U Id2dJ "`O;6�͵ �=A '`nC r~ !Y45oLVn/> ASɸĢޞS~ޮm-^d]Жl1'pG-Nizْ|-4Yk;fbP 0ˬHhɳ|"9*rܠ%d  Vp\_H_"<t1l^wqO.ot|r3�����*^{{j{ȷ{/|첽^SMY:$,轾blN\ 5/|_{"A믁H\+~�$:���_��^{[j{�>ye@#©e.zC>Y)ֻ<Mf@nq`nu5N[y v�Ƚ(*#aM <7Œ` 3vf4ܙ `.`wȢͳ:e+:I_ 0P� IsTq9܏wy)^�\-}}eݴo<zb'ÉOO ]ֈ^`���W�� �X_xh4Ǹ �6�|2�)n+y}D_�P8!,UQKAj`ADPxeMQN 7/,04<GqmLYKg=abb(x8�qOS0 E`c[945a |y1I㫀Πlb4vᣄP{y7I޴*.ޤJh>� iX  vZe,:JpĺVbl( (~IdBt$ : ԷSEuWN:}!U@<Bs|/0[98skWcD,宄=P�K�` !03x o(X".Pԍp�FTȐ X�hgG¶79f0*,�D-1epҒ>n=aq\5SDf/Տ= \#p2QHon-#@sŶB'3 W,j4B `ϾgR% qrsUB\|9:Q#˛nc#. :F%ѪxР9sazS@YQ`OSH�ȋ|=*%rQCAш Zer}Yk@$(? T s=?qpɿ}Y{(X�ʢM Hi‡5b]i!g֪ϰKѸk)ؒ3 RA'Sʪ yQ39}JI,1G@[$B;�d S9[ @gj Hߒ$܈& bqj]n %X%K%[b)8�Q΅II0Ruqvf+ t! ;P*� *�}B�$@jy@�ڍ aMlVVb[9!7�Mj5 [fd %L~G(uÀ҄�����*X����� @6+:v\Im|6xPu`vxq G@B x��!�%)%��@ !�%Aׁ^2#k9-n`8c?4#Mhvt)X[UJvUd}8)kZhlI."'r MkF؛2G0d7ɫk2){^O{zAִ0�H�d3E$HI$*0<REdUeim]wc]9G*c\jN}AxpAx) -s63el/@hHY hca~-2:+Qvs"RMgÛDPD4 uuzR$G4 uI>C cԍZw}a Ńe%X()�T.lC[naBWyJr5&nCB]izo klX-kbu2IgWAΚ8��H�e3IJDI$M9L8Q%Y5aaq,&%:P(.v%f̝CJ>Hg?1/ۢf ;-ِu3155s Z6ց^ r*]{m!TNmmTMMRU'D(EUWwD˪Xg5[a;X-4ӟpT=D%9sfc ẍGHUsefbڙ ҫh7NdXT& U/T]S7[ak@!,0�H�v3(JDI$+<PA4AUYeq}v1:W�tjFVԅ62r{p:aTp*<Ak`20 `&;mܥ+Lm`5F4 ƮjXa4٪l-CR QUetlK:Ă\ۺki:+,SDaM=jٶi}MLi64U,`)m)Obrod Sk :ftlME7m?5kJRbB4\52[Z%peޭ[5WkkjUH�v3$I(I$.0QII%iu]yz6EMG:_S7DCišB1h'UZjksT;'6kbȋ@]l\+fVF_4ll2Lm] ejLmdVag9 [d65HJ6[n \)i2C}#e+TL 5x5 PңEkMU)5V`EP\*YAHƑesۚ(VJVC>QkԍS�H�f3E"IDI$ 0PATATQf]\e]};VH}I9b]B;NFe|ִ҈.vl7. ^ܭ#.R8U乶~ԻDܡ25wvMN,aMkZS]e)JѱrM*• pJpBʗGSRXs'8)g՚,ksn7iF6I_Xe(ں|k٭iC飨i<SzMNTkWذ<Bh��H�v3I"JDI$4QDOQM5W]aria&jW )FtbsJdR +j9m�1=mˆ˛4K5fDٚFpW#73g|[ RR UW;lʚC,j?9܅eF߉#,۶M]<z.zV65Wg)34|(Haa!c8haksaDmֹkJa~]:o BmZ5dI (uq535MUiH�w3)"I(I$0‘=$SIEUuiZq]㒃}Q+b& 5S,X3U9=i}=Pu*\@sl"迤0FKkLhqZZMe`LTO1B baRjFZ"KQAX%��!�%T%��`1�)%e�'^A^::'Fj…�|<X K?2J*)\`jX'GHTߚ|Hx1/�܊,@g"4+r0 L*7'O='4τQxO2_�f5}ãLrԾ-a煽-;9k ^e5|44�DǎYscטzߏ-qflYmۺYBϺY=H$9^d;?e{yOzN|uwvvTV9G-w2(~_WcGsòQx~wW9N_:r0竨|8Ts^nxY$x;~Y<9>XX >[xѢ >ۜrC1X{ǏX"ܟĨ8?pøg[~ 4f"`(!sgo/}�u\(||I�'TdAo�a �6>@`W02]^EWȟa`M\���ǀ������ �$_r$ t�I!hIL@%r+/2zX4`È�<EejA$h �2I& .P!3rYE1nu`�hC�~1$‹@37o:&BYOl{ I<&԰no|@ TI&h`h d�"&H KIC4��P:ѿ98z0wP P2%1 p mɠ~AE&HX 4`h`#9>tݠ TQ 1O^@4�d� t1*A�E&HX 4 J Mh-.\zmAh �t eo � @#@& AĚ !`'X  /4BN 9spH`@2hh; Ђ"A$, N f�P!�Ao�dL19JOf�%��^Y@W->@�M �hӜM /4C�B � �0aKG0 J#?ZC6;ɷ0 B`xC?"ـ( I!(!2Sd% �` ]:P3�8}  7KsP=@4+K ۫^gh!I;I�̛7~&gn� c"�d@M&aH� y[Y�C@ 8@ E)a*W|>H`1!bq[`T] -6?a1"_%6R ]A` !&�jJG݊}ցB@pT4c@`a)%(w+'+^a^ '�`vRCcذQ( nJOBF|{�!W 3(o0 ڜMμ\S:M�9(3 OtݿV8.�) ~w&v(5&�-�t�cb IqvJ8}Qd"W�Q5�ey "P.a C@tRC aAP$tKA�-ɅH { &�51H ;(C�xZؐ_B �@t @@HĚL Hb�= Y`:HS{  �5 (p�.�^4 42 bţq.S:K1�1�ԄL`*Dޔ`��!�%%��`(Xi3%g^wm`�P$44`P#PCޒYH@̽sj4yG؆jB ,oοg˟@5�� &� ``QA,59/쭿8T KH*ɩF` I:�d){}F@p ɘHXp@`쁡=& �� y5$sߜ*o,� $(PfWo2>⮒jxfd��z2 S~sÐ� ( ra Q{%'|クb�8 7 'mG0@ C�bZx @J0Bw͎k48ܐ$=I)C=E2 bhf/~xnV?�Ġ0Xuv�@$�lt5 Oͻ8|b=1 섒CF󯲙G^@үae3Wj(g�:!! {40bS:p E `έw ωoV-㸛@1i07eÔ�S$ h RC�zZ_%IfCPUA.7{—�dF3$ߖWw�:Hkn}�@ �h,5+!h#ˁ`'�CRK/~cugG<a?t5J5!/dr@ JQ>� @`  ;q"='>Q|ГJ) pLKt +v@Lg O-j+>E0U�d &mb6̬y@09$91xwH�^^F�? ??IL~<<vpCZ~{D?Y=p#~R < /<OǞm �p܄7`j )?@/%rHp#ހOHt,F:BBuɋϽ&#Z6+fPXn0l�(�7!PqE|<� @6&pcd4@ NPtYABX*MËI�@0@@bQd(M&$"1Xnc)�NRHAB9 !ŷOfz�� HNA& :HEs4악{.;8~b;_́� -\WY`wW _NP n� @a!J Pjʾ^>3I +^5A_#ԙ2 o@P (iBur%IP AxFv.L ៉HXbP Ao �Rhj�L*_$_k罨1KP҉"h` -|@҈iRۊ*��*tBy)!yC8 =0bwQ9c87 ĝq�0gB B8j2wT.03-;7?`,03u%@+ N8uG/ >_m߬,?T +X IcgkF-(N4gٲ0wWi7X ^WSz�K!�K2R#1s@\XHOm^;gMF?3>"�J,_$0Q4-nͻpq3\` Xo�Q  0H`f A1(J=ٽ8 � :!ɈH2qdO U� Xba@n^Z )%c\H u �@ I&ns'nQmc$ ɀ'Ʌ$'L&^wABq09h(7#g^� 3�:�tHD0�ckYt :��!�%%��`!�'#Q�0$ 3@,>{� q7F(]��&�b j?�` ��;Ewņl YON|/Ső500`\Ĭj�-R^h/q1crYCcuB?�1eĵ~-H`1zS;# Id#zKPvш]O4@.HXx|O듆!pGz@G`;pI]�oG�:7')PjvgK%:o^Nj뀜.zEﺹ[~Dp5Y<fBTSe![b{-Xb]7z]�7‹ 1XÎ@:- Bxj2mY 0|�σ@^ṌB7q`]aSDzI'�;A,$([, CwFngA pfr?0vmE�Ĵs]_oȚr,@6WZD141:YV$rBX |wB2nh RR01}gAhu=Hn_cjPh62HGy;ZP{E_Eҽ vDX(b*8Yjr8'%�WCL&|j@7�;Byp%{_| A, =%`n&nfsla:n:h{K�w"b%x tkfK ip? _l%UW$9|�Q'Oey(o"mj3&ؠ8fX~5 b [Vn1�tBJ C%l?XiܲߩaotU=Ec[vT\BCXv!3w̆."HA3r2i: nX z`153mV5+)aGHaE%ћ[@|KFuNb=/ gu~>(%2B��;!J,i59~ۊ[&$>PG$wp K9~{1w@@ɽ& !Q륢2P?k@hry|rR5ڒ ^�D!6؜m �PZeI!%V #Ѽr3uJ/ӑ_A=/7�5o3bNu BI[%M\?(DP)f=6_1% JR0`0RbQD/Ƨo03gqa_r3:6S/uG}ZBvg#[Np z%+ VOrk;|gI�RlI"N !@Ά&Rjɥf֢EӋ 8T�Z3?L¥zIvJTe ûZC0 lᝒ/S/ǭj9t1!�R7c̯7T:z ^�@@VX WF# 6( jߏ��d_«IL\dyA:7P] 0P{�.`a) !0ޜtv� A5 7&F-Sm;H-'H` � &#QEfB y@0!7JS~pFGל jxib[jg@Vل*�@K@>� �#$=(�/ ?IX H}"`Bt:<-xX^ @�@1älP7Qu(Z%m#χ������*^^^;|W+Eȭ~Ņݢl# &jRuDEww-@$ v}.[y";}Yn`����_��^^^j_{Ϙrz.���!�%շ%��@ !�'5‚cYw94.A7 NJ+ԡ<)ѵok`WE\Z֑$eF_mr&lK5g9j"ݢJУ"u2dX[YBvuZP��H�v3IR$I$h)0‘=AdYVie֛eiHJ] :d`MԴ₄6RkjF\1\:d2DmamZvjEkM$}fLlӱCc {. rJRۢPBf␔nf=}IсFLjO㪯*zRMJ(֒j8V;L+tkUi9u([jl0d1ͩhg?vBV̮%al l)?&h1ԦeahִH�w3-I(I$0DE%Yum[u[j$ǰ;.جq *7,hk1Hb7<$f#b[+FRPpq}* " csVӖ;{Yv) 2 s)F xn7RH# nЛ 0$:FePDNl-S[U<،DV֜Ч[\z5#+,iA6mkXDsg y\Ci6> aTT$M[ -iÌk�H�v3EI$I$b,PAEUYVimn {p(eiqh+HedempI sWAؤ5NYXkf֟4sX8jq$k CH:x܉RXQcYN+-sJ+dBd8S\sPDkPӏf S^DkJpv8նkIe -QuRɴTz#l؍7,%.RԂܠma TyFi)+`AD;P��H�f3HQHI$,Q=$M$]XaviiZ5-Z[%亐bRB!.Iw-%J 2QN/�i-3RCEPÉdH u6$MD_w`:9c%ʄ ˆ: b<{\e]lЪ6홳hF-mzUmYxU{kHY]>NT6 aڍ0mV;OZ9>*Xc2%I$%3F7,sȡnvCB5p[VP��H�e4lJDI$Ɪ0=I5]eYmכm5yQc+ubUpyl(F7PY0kE$1bAx%klkꞖd^iE)h<Q9g^R͋i%S4YmDhײeU , *5 :i1}Sorsi[Q2Cx Z*yՆFe%6 g%fv!RqBXK cyBl͐cYX\׾U61ko͹Z��H�f3HQ$I$0M#EDYuqZen馔Ѫ"kZ7!Qvce$`6ϽB)ZYc FZϖB*1k-ve$t1"1Bֶ ْ1Uڒ%*h*=ͣVrPms?ӢYPXA[Bzb@t(=6R(Q\HSBr*Sg/WE"] 0F);. sFZ"Žr׵H5/8)SVAQ)~ub_ץuD[Nմ��H�g3,I$I$0P=IdYUi]qjY7,#+GhQ3a"njd*YKN4M ֬݉U)kX)gk;ObRg֋Vfdk2YBkkKeUʍd9C҅m : .,yHȺe5֚VR��!�'�À%��`1�)k�)%gzF,Qƅa 0U_m_А;w"5T0FR({Xnc `L wx Q Yj!ymq "`<!\DW Ȓ\ ~O1P!‑'g_n`���W�� p[ 0!aӳ¤8)-XKr~UL>v=^|z 8Iv { `9q`3$e_΢A=4؁F(]L^*d| V #{S#O<~< PIͽ9d�;l%b�k|v'c@-"!ra0EWQCO=8 fof�Gxv1 qv`sR( Gų1;o(h븰=T\娟`<<aOX?mwQ9L]k4%XXQ>bVHNvQ<<hÛuAܞ !rXxycH o' CP&#@#G�Ͻ09[,F4O+#-q!'穃UCO~~ٱ�%gJbԳqP,?[ `0@ K 'JB,G�i.`F2juO= ,�t`"`2P1`@\A,0P{8ΰ,ӑDQ5,Qhq̓7h~e^p5S6cCDǏ?0 J=Cr/'_5c \2`CpÏT@�sDw0]L�@O�$ dB$?9.; hEa`]{><ƈ�899az/xH�ʨ 8Nik?yS[pp# G�UŋSOHr{#@աc5L9g ungg€}>HAUD@ x71=L" |EVHp'(ZG3Y=($U`F�\ GQ2�{�}Qr~Iڨ\tWS"q']7mi Rw}c$D ?PK}:ԽŀUg9K<(@\"A9a~i'xa°(u]D7ܞ!R?~@u!n=Q�8*G.�"cK#8X[ '!΀>a\px|<b !!�<M^sxQ"|#~ת "|Ȯz>Z@v3~ݙlx%cm89Mar.C?^4'&ANzJ쓸3CŚzI]xQ<h"n uuN�U9_ @h?_!GmxED ?# p������2X����� ^.`d U@!^'t�Z 0�T( k�[q u}�G@h}^�`No �7@#8h f`�y__M4g�H�@ɾW$@ "00_ pv�qlL WazǝJ8� 5�{}gW'py|aǬ:'C-xja*_<,ypWb4`s-wp Ϲ= >1`ys Z –qƟAF>cGc9f8Y$YAoCP��!�'+р%��`1�)�)k<!d9u+ 0Ǟ]x%u  ۅCyxpwyl'ǚr�q uyr8�HM n 4Gs߮J~$AC_DcDH -N74pル厔a�w^eszƏ*AM8[%.?Cs~ :����� .w mdp81E0 "@ltzD`Q@.>).2:S_G [~6^ @Ych�>Kx<8/jaFJ@4c623iu2fj܂4, _jD,7-`p @ :S\xX0`p@h�qu2^Rʁ4E4(T"ڄ&n<Ac c&5VҺwn(J,p4B`i`UqPo9�A0T�9T2%Bwx�橄Hz,2U`yi$Ԛ$~pr8 9qBfQa;[/SR׀V"nPJ1NP�D3wAbj$<S.�X�Ti'nUxU q 'ꩄh?A{]jv]x +/ 5! <#NXK�U�/`�x̖$hO5 K5@my#Wo"aS ZO߬�a'ǶCo 2^[l!jO�񼌨fI!#XM4<?m/FiU3~<dglD=|EQi())-(3hL#)o(- JF CRP !45�iE>�nDLI 09DI3Z:4IXШJS69JWAd(5(j } GSrY\oɄ?! Oc CTL|)0(q ,o0c>ߌIH"eMns|-r6 ʘ9rP}{D㏂K)y#@UK G@.?l �2a4 Rq+ q^B4tX_'HbIY'2TW3 ;HKu A�ãk2HIل lĀ:XG-ޠH ga#̒Y%,rsHF,YQ;P0x F]F+ @m4T5*FΞfh]ё?# �vŒIDP!|ђ[ӊXӆ 0_& $š(tv12vl y=£nsӀyu; !6�I0H|p�;9?PpKJϹ5pI1  #D( d8L!fϸ*Ц-h0J�8©2q7Gr8a`+(Z ֲA#͜YNLo[gK,4�c2)cЎD�����"^> /xY{^{W+@/yfҷ,QbnLwW�~@Ŭ}xY  b^�HX0q!<-.|w˖�����^>^�Ƚ/|^b\:5(yсxAoaπjt/z>g[UfwJQE1 ɸ8 ˀdD/ D?]]9 2�5w_\xw"b 1qk?ċE^a{`"4x'E>-j�>[rq= >#��!�'V݀%��`1�)U�)'FH>e����� . ` UL4j �2�MAZ` h7sڠbx�rGNusp:}uCiJUꅏ�;�`Tq:XX �:p (so�:"ʩ/iNnF/ 7Gc>8V�?*t :k'G"m8~YՀY}F"LQ(;� dMX0# QE+`4`EC<!@,0+'n Yr\ӂb ώ300&t3 G%A1BDnc3)Ng> IfSw}u~V}%ycH=q0u-n=SFd3W*,̱�JZS3:$o$i3+($<)O T,;+pBYwSap9hj ̥G#ŸI Nx}{\;ݔsiHA"Gh�%=Ah@oU@<_̯@ڑ,z C; T a_XCsL fl6Q@@FPUX'#BUUP O "w/T�?'֯`Jc`jDlG<. #eB _. P-^ip}FgQ |7-E@F,c18T{^Bs1vRq�sLxpV�uS>'?XnNux?2Paxj7YedZpdpujdjFO;@·9;%P TaPvAlqZ|?T&z 2�qB^^8uB"B(=VKg� PŘ[9Ӫ Y4/,bJ9DiǞJâu% J7J#e쵻#GXNif d[wb%L@bv܌slEKOR-llc4HÖ*Z[Ǟ b%Ek38ȕP*Ȫ.n~0gKjobȤRT6l$Xک@>? Y`HҀul*['>FQȏǠ_a@$YI8T@8`-tݔPT‰Åg~ߺ pb#Љ7O2q*BCaQΡvc�9}AP<ǁژXQD (qCCj 'DЏEHhv\'-C 8nró t$< h%�0Ol,�5ciT���_��2X����� `;_`^tDynl2�? �`h ,Gs 2-�e׍ Fׅ5P�j6Wl�n z�iȰ2oz `^ <�m#8 ��o72+@f4�1Gx��WU~�u_Do852`�#2R_F"b(@,Zσ(> @;^``p^1P 3ZLB!iu7_@r@OM7 0剛Ŝ=7I zpZȞV=qUx!*H.$.u|& ́o@����� 0ekU��Yu�ڄGT`\sGq,q3v_\�!S �1Ȧ`X���!�'%��@ !�)4eK*T t Jksk `SBvZFAOtH4oWE a b,_в{4YbZ*lhT5kT{q&+fUGNlnɵk@H�v3%"I$I$,EM%YV]mr\pU\Ji9T/Q#`-s -oQD-QEvZt*$KDaZM#Ӟl[ jsj݌@PEYV`?$e#1UC15ܚhEDZ,HͻWU1\X̡SC1z Ti+5cZօ$UEU l$5̈́Dk�%e1Էnj/ R!g9H�g3LI(I$ʹ M9MeF]]Z}sJ}q6VPr<~H۫CS.^ٴ4l3̙6w$dh8cjˍP 1L׾b[6`%\fXɃi 1O4[geC-P<�=BCاkvmfTHXmVMe}1Th,a#-I!#pS[b+n|g GJ֫RFnU@k:3V�H�g3HIH $*$=SEDUF\awjں%9"`D)Lr)G K;Z!pw]NO#.=w5^PJd& m])3PQ2$RwUٶ%J;4Y3r0AS`YS_\A0t>%M&/ t"q@lߥ4u@,?YA(Y>rb9ګ Qؚ$WZLjOeFDSHQ$e-�H�g3mI$I $,IdRMUY]iYcfPK&֋IRٲ ?18r.Œ$blh̅b' {Hʔp</Z8Yk[+ aAMT6cBvf (CF.ŚTFml:*Z*Y0%tmCm`]YB${'kO\mcb}9.lOW5VFdqOcjjZJz\KT}Murm-H�g3MI$I�44L=Y4eT]\]^2wA9UAdn,2au0)sWU&*nj%I#]U͇᭯&A iqG]3aFBSXӱZDو7)SNKCHvl%|3 pZ~xvѪ+w ],kXMZ:<- -B~"̹~^jRkƃ?`h0br[l2$H-5)NAp5ή.d`+qJ$\��H�g3I$*4L8ADYdqYY]Cup + Ȫy$ScM>`6<)+Mb݋HCD" %iHnEޅ2t^3 dʳHװrkEl`KUce37__OJ79Fr|l zbdJVwծ5 6L^v:.[>@hsds^>MȲ{5+j%mf՟]i_!-N2w4Hޕ��H�f3hIHI�, @TMUDUiu*=�qL3FF|Xcr\Te"2i^HJ9w#2۹`vsĐXHY' zC,Ri\y9I~Gr\F!ifZ3}x8Ax:ԓ_3Bq5Ԗ<U)ee��!�'%��`!�+P3̈yr= *>tp3�j$9(�oL"4Yh 9�rsJ�{OU8|[|NEog@�w�(�`U,DiKr1uUYX�=L`F? 4*b|w ?&XަG'"o8/s `1iq) LJWT,esccϰ"E0(XQXHTS1 LcȠxz'� @vx.2y\Q!َ~})dqQ]Âd':+)emFJ�u�}a(oF0y\o3 v@ˀ;38~:K 0<:|i}LZ /er/(兌 ox \>OG]T竀I0L R?\S#X; s̀_C pRC�5ae|Kt ݉IGx<cVIx �0Ia 9*#'$NHl3p#$oc!!Nnho<IJѺ<cR)7`D%%! /u0A^|S( `ԩ ĶNO"If<ATw=ۏe$9Hϛݦ`<O'X#CqpuS S9n+@ d 9G )u7!dfϸ$}հ ;``'Z0�cAY5)(sa8v`8A]L3)B"NbϏW'G\ 5 u౎o`p4V`X^.Ai1�LӺ0R*NO*ԄqDk@Qi$!C  8@HT?�:DDY]9+!yX̃oN<HTk凘/F{#WBSB8G6g@*brRyY_ 4D[N8t}Lnp#' *b@,,ip0_q̎0!$J}pPЎ0xrSA0*` Y?$ $0փc~YHu N yTZFxqHH �RMJ@/TĐ!rI 0kZڱ4)O Xå }�#ҌRQӔ_([ �g5M_GwZ ؝[2FhAݞ4dXJ-m,F>X!eh3 @Bf (ԆK)Fc_Z aUbq+:�aD�lS1rJ oo%#(ΟZ %n2P3� JzFP%792�yfMt_\I|�dаR�3a%NiB&J~d�XS/a0&�CF/rp>M tu.ʏ1@di 2^;,U%3݄ (w7NOOKK%`D!bO%~=`5d̬G!ILAu$AxBCr-W0Ҟ×7>!Q!+ 'C?CAdG�����*^\J(^ŻW=j}^f?�0I}.[ p͝Qn���_��^\J(Cݽ!ܿeX@}w}X@20��0 X]s? �gYwww}매.��!�'%��`1�+�+>Bۋ m`KÆ�;Fq ,x!tCW`~l9f7<p@__w6 8Qgƺ<+�owq4p.[G]yk|)Wj?-���W�� P1P5�>�$jh(n �`r 9:SmQ7BEȰ4�`�vmBpoP2Ǒ@ к2|P;I8�85_jFTkJ�(DܨT 07T`>�ZG=L'zywYS 3` {uќ8,�uLS8�A8>�Ȏm6Pcf9`vz*/}4x*qq,0ƀ`U7FOL<P�|8S0wp`?=�u <<8jcY_W9@qipxuL$po@xJB]MSgwDj۲Cga0D @�4!0:ea aGS$Py: Z4 P2m _WFX* p "aH(*p 8AGQG>s5F> B񪮦[-$((,UǜP2�4 `_ybL0 3pv̵4K 9iȀB#TA$p ,-7՞j<L.nҧ[^Ķ?e?<US:A5;=1q @YԮQeʍ(Ep*- _@`bik7'%sFYռsվP;&sm a2@! wg</iaAF<GʖbΩ$Z`$(y䧣A�[*3F#8`>,Dl Vcv8TpۥO=l''s(gXFsCQyC@H8FEI]`y\YO,ڠQu�%c8HӔ8q::J_P#%1e'j9nr',bFdÇKsyT&X 1\ѠcX0:Zv Lχ}C j,̳'f < Mxf� ^ !$d7;J�G %TH TO ]oR!uY:ǀu6�j�����"X����� W�}p3׊#W}y.m|m<0qp8_ 7�}^L@c ), W@̯ ^HjPp7x8�04h�`m>rv�ԁ^f(;s#ÝK4/lgy^"D<`?1o`>w'ǻ29^Lr!YA�=17|501�ׂwRs8�Oqc*<~1Eh$KSƁ5-0ܳ+(r5x0RϬ(8bM#ٖϽy?!*q)vG:E!nWͷaB8_{_Glvc}y~zΣ QҖ-(rĭ8\0_|?Φ}:ϜO գG\9,V5J:=l *pLJ ͈ǞDusQl?|~O_ݰzm1\=S��!�)%��`1�+E�+aǰy87,F>_t�y_@{ a>� @d�P�ڽP0c}M /,��������� $_r$ t�$ wlald:~F͇פ:`@$$o݀�<� *.�J�/x$�0�R X �0C&o(rfC?V�`0 _&$Qxc!) o/L!,{ I<&԰0/Hf< M42@ $%U�b� r8J3oD�߸Ӏ؊E�(/9rS>@ A�ɠ;HÃ+ Ț !`'[`WR?6r}@U!!|$.(ph�ȄHH /;gW 0 /4BN @@1_h$Aot@A�@H`d#&d wAE&HX 4 D@Mh-N?.@P@2hh; "A$, N f�W h-@ '!0 CQd08@!0r+>A�@(`0A�уI9%�%@4_h$�Aj@x 3�L` K&Ў�F!w0 N`xI pHG(f�4R' uG@;�Xae$B?3�8}5†<쌐(,{+ҀhY,3n{e1RX!,Ɛ IA\wfvP0 @vLidjF ~'mdz @B��'�VjI�&!R|*n~�|9 7ك R[;&a3K f @ѣvOe87@Hɸ04�\Knp$ ,u�21 % CÔ¼'�`9H-*7yfRYEВɅK+'\��v�f7@#9<N`0*` d$7{nls �Ć ;G; @x� ܠ Cq8!d"W_ɥכ>E+ ]`RC 000J׾u MP@p@+ bA {10 C͐ E@P@X IA�h�D%!C�1e#ƹNr}"�0 T$2ZzF|Ew�\�00`Ҋ-/G;T]Ιn`P0 @B`*Dޔ`(Xi3%g9ݷ>�^��%�\(q!oII ,?`́{0"iegQUh ]!-aBοfP @. �v�d 00IRCR1߫ &6}fKBpV%^BǒB{�4d +}L@�,HCHn Oen2o,� s@ ̣|@+#WI5< ff��z2 S sö_� *Ʉ0(YEq{h � po&C:F'mGW/  Ta' O8&PZwoY d'|@f|rI<jR3܀ޢ bf/X 1( Y׿@n]@<�r�m܅`vBIE]#Sye2 *~%ڣ�ay�hM%g?N�1� E���!�).%��@ !�)啀Kq$U\!f╿qHE5Fo_m坁`EF|ᰋ>j,v5FhFǃZvdkUUuَQF>+jV���H�f3m"QH: 4 EY5UV]gcL^o#) v-N%\LB TgR3`X|Tl[Vuk+x+=g8FYAHj^-f 3Y3mԥgqnz4bu` ISATXB4 6BKQ*Om9V:y^9+ږkePuk[fC%ZiLV!] <-LБ $-ȫSI59**2@�H�f3m2J$$*P4-DIeM]e]qeՠ[0MK*%Vt1pڔGS[%z 1Sb[b$EUNsN Hm1 S%7E.4 Yf]iS3Gq SV[*T֞YjfIrk ~EaFÉ*jЯKYK?iU: Jޏ#ݩ}8̖fjFB+FL$=o(Zs*Xprګ4��H�e3mI(j@-SUEVUUag\qn{~;>E`sfyP]M)@ҳ[c4BT:|.5qɻ[k�lvfkZm-0qa9,a%FIƙvē kB;?QYrk`כ8+1\:L۵(}Y mSֻ7cT}ħ|wtXc1~\6ICH4غS2.Yjq+k i.s@�H�V3I2JH$@ 4EUUYe]wuj1'a៻Mfѫ8-;JJ}sKBڼBF4,k%/bxeK)KkVKj'ͼ5E4`J42Ttv$zٔ\V/C˩(̊fՔڿi6]f.`U)ҫ|#N ^ZVIROu ;;^ed! ;ۤU H5ƲHZ>Eܨ#m\8˒{ afEkO6�H�V4hI($*O4N9#YeWQavm[ii;06v6sJ4l%aBIӅ]-X["L/E0M=ZTԶ]$2(OaFWeA޷XCۨ} rE0J]lܺIHdk5ΕeJ)*aIYS-|SZӦm[j\ҌEn:zѡ]'-/shh%=֠hW/wd~V\J ۉ@\jYX4S+lΏjJ$|.k\նj�H�f3lJ$I$054WUYi}\mqHq%D哒4B R@gI(p8K^Ŗm@.K CFXծZ r190ᒁYjkF]LLnxaeySfRn̻(]}2LUJfF{ɏEhT^HͤZx>MoFEׅ.7h krF˲g@gVٸ :#l]Q" Zy# BjFk-3d�H�g3m2IHAD 0IueUTUui:%)B YK w+ gckjmk48]͢/H{:x5H֭@4ڛ ߰dy].0�ᴅFe=(2K.'о׮1I-5R$iƦ}ĕ-Aj{��!�)Y)%��` `{J|O~.o%a7X3wB/xr!_0z@K�ln0V'GoFvaKamFo(f5:�CXq-o΢�ai-t5KC;|ǟRXhNQH%5?CgnK1:<_!t~&SNJU  {#ݷ�HIJ?;:�v�5Ng=wt|$ҐQa�a%;w4@(`| %<F%+>l=dx:a &L1doٕ2�5�F�$pg& o$Fu ]l'gslQyNJ9UJ1P%aE2yEW/}~<nvQ`;ѬPb_>1+y  H5J b2B°h!/f!Wtp"�3QƶY}?0ɀT0)deq1X� ѫ!d(SJYEp KIqi#`Ԁ1�$�hhdB(3SBw�@!Xho+lH-i@OZ@�v��Pԓ Ep†'rg|$g@P@0[4 n !nc< `x ?�Q7aAʾ\8f??$nl פMPj@W&p W@PH �vYBȖ'CP? OG#`p&B8xjGpX@0(ޏK `bM!$xs?^O 1҉ ҀVQh#Zu�B$8^oSEIC,,sK)9sj$�円N�RL@::7NG߾Q�0 0۳z Y `fJ �w:K<w)0PF)@RKt?{bDR@sX[%#>| 7μ6P@to)-R/sɀ!(7 (ݖ1uvœKzR(j1aEc0�J,q$˞aEl#=�tSk`π|3�b`=ٽ8 �`D2b' oK'e/^�E6"8%宐RFqTT�z�h $C795gv0@.�\BO�~PbJBq)$7te``&&rPnGBp쑟o} 2�@� "a 5�)? :#vzG�:�F�b�w�@F#~jr  @4 P 5�,tPa/'|Xj2v< Y_ӟ9TUEJx& (`jMYX7A{/v>5?N4= !F@ļQ`61`-/3bb3 }ܿx`YmI1 3% ~l8TbJ6Ԕmh^ȏW'N6Ss*˩zT '/-r pjv% y_iiQg+drq1#Yl+2` N#-|#;؊&r1 kATbzPvcb@Nq>.Cm� bJyI04f؃XT6bL3~3wٹ-e�¿u0sX@(B&啋ԘuVHXĚ;'e;a:膀 J%lSi7NCpHFSc򝫀iw��!�)5%��`!�+eY = a]a߄]C,ewJTB'  ZBwuTp#1 |q>{g&+\ OĿ7NHԀb`n n=,iHÀp �,WH=z@19?TrfBl-UC:|yT+� z @Ce(JςY#<jBo+|ߋI &}B:Cf<]n+6"|0fV.h\6/u-=F[z@@b=jO! 3*〘4$fͲ͖I/쓌vPraJ38ϭ ;GA_Owrw 0_ߺÿ=s-ݯӓ��;(4:О[p{8!jRL~0ųƵٍ@0l?RJCR7h/0J'G�_~@mI^cڃ@&؜m%!J@�d Rz7C*NgFBJ)Gaxae]DlMO$Icy@* HG M\?A\?2HaYi9d%"FZpĤSE,(ASٿFsۑ^p͉HHU) #Ry5dr`m<o'TgCWv)|yct$0҈XYZŖq&O,̖FZ=|*/I7|#R`bPiXwk@f|pa;%^+Hֵ`)|w2(n: #Woz|GɩY`sH#@&p�Ԥ-[ �d�y?zRƖDd`D$ Z|�0&pYY=t?9_` @4i`d7 K}ģlui�`%(P1$+aHIHF1/7lNkR`6)fx{4R5<5"smx7J0>J0P7 �#$?xȆ�.0g|x� ��dL^ N@Q'@`%o}� sK Ɩ@K@>9Qu(Z%bw>������"YX^YTwxYxEn^^{" fo;"_:k,����_��Yx\-~;7ww !t勵p^g6<�9d~W}w^ w;q .fD@Bz@`_<>R] k.r"�spsq ;1dp e]L?v Y,gc[@2:5@t(p#1Bot]^69wWU`"p�`,yxX�s2$w^@/[\`���W�� pYjkQ94{Xp'xk})@MJ9qgyFe9؂O?Vu:S3p'n$F_\_Slǹau[>׷S 8dq<:<xs'8#G�;lSjxhu35lIf �2c;w"NǜCOL:X 8LЫ %@jfZ֥bGw<s8([9܈܋٨D[zp7u& 5{P8̀}U12X��!�)A%��`!�+8,(D"ԕu� Q#K.4Kŏ'��؁D.�Ӂ`z!pqDajDaW,`^]P5f Y;ǁ62LΩ8F�fz|0�PqAژ(M#Lr(PS " x=dŜ$(GX��V@/.Pp1>aÇ d9n?!`#3=q4G^"<<pOe UԻ'=$Ga9b^ӈ<"m[T)s<)zNP#ʪ"@4Q�^Ui*r/RPdpY}1�@(ɀ:"( ̓#T\f1D҅9OK'b+-KۙeÖ*1xZkpx'[P:r$=>;ULw<`<}[ /?vY2K=x@>͙a,'q9⳿W|pH4 )I.{ŨDHZu҆hZ�L,<qs /rt/,B9sœ9n.FHFH% AyL=j2L4=F'Z)@p!B8Z鍪qb$Ik'/P(U؊Fu7X2tu,P[ +$I QѭOT8 k5}cT͌4*Y9ۓP =,z{?|r%HjD5x'R$q4�f!`_v<y$wrD=apЊDSkSWM8k&,Y <H$xg������2X����� 1K& 4�x@b :�o7X`k �:>e~^La�4@6Lp1bybqٙۻ|h=ܢx�Wp<V)<]8b :#=^W0x0S08@y@ט0q05AP 7?i~xq\[~n==:?-ܝG$S8Xy.`_`>鼠=�@'=U|x+i<x? 0 ]zZGH 1�}  _b�b, _ U\ `5N 3׃@2$q:pSeʯ@z<k89@,8[Ǩ`t= ]^\N�~J \z%)ǘX8*d(v@8AFgUP8+�y x[ �4 zs@;6Qƀ"yq8PWQsbV=]Ӭz'<NiqBV;{-":@@=z r'<y<Ʋ̪Ɠ����� 6?¥l8€ۜtG81DuLX�t!gK<N�LjP10u@fNkNn8YS,ۥ>0 �98|�t`c@|G 0�F1J}*&X x Ћ|w{sT"đEtT,@hհ<g`B=8>Ł�ꡋ#4 THx*J@:ƏyU%,\>$&W/rA`@BTM;3N>@ j,`hxt@~\n<<vr6#Q�^ 2[�̊>rx���!�)O%��@ !�+HL̡hQWB4I2ҍ%BmY#1UkQ}'#/ahB3Zs{:*_\H9uG 5m'{+H�w3mI$H~ 8ETUEVYeYvZ]r#qęL`5,-)|i:b*î&-T#.aϥyU$lRQM>xzɹuR=\+v/5ap}B6YبEΤ ؊40!G2e*Lb{\I,ug+:8<D-KXˡ)TNBAHBW>'mhHrcBv-_ta#\FNVSCުV( ݌(浍cjLH�f3m"IHL <ď5e]VWYVmZbR謶@#iBF sfRИ&0ݢcYixzb7Stb_ aTY.f2Uh&RT(LYUԵTqWjȔkiԎ^rd:EE c4Tp7*r)6 W[aĔ?t:Zscfy~y:^klΩ8zBȦV\U\5ЋsId[rLzY dwb@j ¼洬N*cElX֑qհH�f3m"IHH#NH<Y5afVUfUuLȃjJS5FGJԅ5v0aB:jE8B.W!NB?ybsZ5U%qWi{cr%$̊r@1X6 ~˝nnʔTS|t|5S(uA7LesZYak %?l8F͖`$&T ʵˬ]:r^kVr[a/Z}JzhFŕ]" f�Bz0NTq`7>LByuI݆�H�f3m"JLHO<9Eafee]i"i][Ȉs{+kTͯBuiL\/WD4hɃXq99չ4ŽhZAQHN5ݍ M:\&J(/ďKS.6lA |ИE vtڑG5ꕹ\$jK'M92Xn,.oh263I MH"Q /M\QjQd#0-DZ Uhh[TFMj5iT*cE!T.P PB0ښ�H�f3"H@H9#M8aU]iivk2̑) R+44Jc8 [d*lk{ծMsUȹJlBQbýNlȬkSU5"ʓ5給?5Hf`4uDl?m[Bx' M@A CUF!ص*V$miREָi&}Z,؈E̹fVIBZ|\+;jWq{'F)p@z }u}m9]3H�f3m"H$K4Yu]ueiiۍW\v ڕ> uMpI#D9SNS_] M7:;W:DFNU 4n#t`47ZzSف֔ri-O+�P/Vt֏.-AFjzP089�msҪj6s&*_x8TUU)2SE+6aNB{L.ic|TQS -Y%I 8cJUJ%\ld-h0ZդH�v3m"H$⫪0MMa]guORq\*ܺ~4X_RB1`]Կoc HQJ{,|\84ωb#a;2nޕE1JGMTЋZu7!#PHRgMɖ@KpDL*Su֕ ᗬVRk��!�+[%��`!�-)_r8 xJT�?#ϸ�OÛ^A0P `�Kyly(.'ڌ�X A�xn/gkܗP: u-YvOn,`)Ǹx}Lt%$<-l�:穉+4 $]qT$ֱ#@pKzxPU$9J ;1!J ++/ ?R D:< GW)!0hЅ P~5$EDŽ< _0(�{(-%ؼRP#$oTcxQ "/sN�fРxꂃ p|}xtPE`^e>UQǟv]UJ%fߒ>xWY�vps#_|;+t�2J,_nnIoqg7@DH˺C]Y wu 9Q445 yq8<ߜzL0J8[h)A�F\GACv(P{V|5{HRƇD{#@Qoo_DlXGԔ~��3pj@1BH CP~ ǫ< Ʌ?�РϿJK� L+ �-/m6l><N.�)KǶC_%\a)� {Qe Ɔ6!d6q!F?>9(FΏ»pIJ$[p۾Byǡ pHqpX\ p]D%wgقY;Qz|=8(F@ކ)H�����+z-/\ub'*uM�p=a~W nEw����� pb. e&"󿉙< '@Pwn @v{O�lozTPp a'@3C]X`/Dv8�qf�}b ej;h|˿ǃ0 n*k\ `!P�kp0t @6Gg nzkFNf>@,q8F<Af�G`,uX +˻5}Og; eʿ\eJ󅹄H8q �_RcCj# ث0:i*@<I��}* [0� fpc_uNQv#͖%r7n~ZQ|j spXNߋ$<  7.Y{ G<<V"O"q�Zx�Zà]c È*#O%_ S# Wu q#;<����� ȏj(A3 8ZP1s8D�]�ԁl-ǀUQ3>`@DGi3P|ba 9LpB5?':q 4}{d!0o8 LtqDP ܳ΀?:^>_+OQ=xVCGe8-(Gqw<⏨Ng/>a9㓚_?p�jvc*Y@!Xf@Xs lj*MԐ u;XOu@�" 7P`Ց 0��ڷuPbz�ۈ�v?� Z n�@F�7"ǟPP8F>p c|."j 18GnbK��!�+0g%��`!�-oU0s G.@&pި> `ʪ/a'LI b"Ws8bPJ ~Ya'`q3G7Br9,!$-/lH|F>e.q`Ok�k1yDx>'@`>\\)u!tij`˫N3z}#�AɈ&0,r?_΀aP )G,`ǚn$ߊ6/CUAVƺprv#Tv:A@k`ژ( NOk]@]X xKY,%Ҹs`XTP<~ΟZw ZJVoC-I 8ų\hep 8m풶9dH , YAގ7"$ch g,�pwe|w nwX ~u1Y< 8ڀ@R?}�֨hV"iÈ|`D"MR4Dbk q&-E v f__.nOaU|=~P€9x;GW|ᥥa*, hA'J@Y( ABip���_��"X����� @}}ǂ:gG׉}�:& _t�:�pn3Ga09Qp5z8P|OY_8y8Y8s(XD9ĬGalE׽x7�p"�zp~�( |G@3^dQuQX<sepQכ)x|0ùy=[1|zG0xW~e~un _v <-dיf71~'uxBYZ:5"|̡a渃\0)n WqlǚGvl(,U,)`5;c+p@ۀ^CYNl~S;v͔Ӿ0)Z;btG7g^a@yJ[++v?agOo^f3Υ9M|dz69oֵ|},̧[ioۙ>1 u}_7YjcY‡gt~֯( `WvsYǽ^ߊ`f=y!uOx yy c 9Y^xTO _ 2|Ȑ0�  ~ } ��v�Ң9�:`7ꯑ<,PX\����� ꧝U2xx/7Nj=8 @3C�aqCuo}P0 e^ٚcϨ8�\d.lg�phP�6%@<y$<O`CSٌW87S_,ű=]A8�8V'`r _̱qnn>C(X^NPD/ZũPxT1\@8�1�Dn'T!@%~G0$a2Y@|R3 q:8@qUa!Gn؏τ ۈp#yT 1L+aܒ'@ qh̡gY\<2nn�fo s{c^BV% VVZwaOz 6aGitF%y9Dꩉab$-0x�X뚼:Z>?TA`@ :CoP#00�5 `r\T�m^Dxp ]V3ژG4|08 `bB r"'&@.0D8t8p.�Ր@Q9 -Fn ��!�+[u%��`!�- $co!u@rK06<>P Ȑ=L8Ƽƹ$חS,݄I]=Ÿـ7#Sgy1U �_E�bbb@tCQ1wr0Y1 5 gX]e(ДOw,6/fSIB1-YMүƒ:6a9;,2 O;Jo8JYCK@_0�qTDj0 ,cG|ڂ6P0КT]@ u`2|/qZ=C@U`enHrOcA-ztCtHĢGKyxZW J31<8KcHUB 0BwA)n/)BrzrJ)K;C3͙F#XUEV,䁄NH㕥UB%>A˒a}5]d8FQ>bC- ,5?*(JHi,C2Rw|!!݀e<xQ,BKN @vrN|!)º_TQdnbaGZO(G(0 |KRWޮleG冷G!^RYTjPROqܧ%Bm $�0߀V3o D"Bi_݉�8Rj j![?#%( ;._^SǬZD�5�{=PIq8ϏA{0dJ1O݌qsγy}CvI+,nE ׿CC|1 Ú�����"^]vV[E{{^ q"b/~W`rsxpO. n^su;W*_y h{�R���_��_R]C^ee!zUݪ?�p&SsY]K" ׮-wp;D? A!xVr@e>X !owmj<�y|.ˢ%ppac',Sy:a8F󀍆/_@<<4>�g"upyn'sP23Ղg\���W�� .\u\`eC@ l\|�6 /`?UA@/j�90�4CZ�6q'T _B8"^0̗�hy2H Bkx%KP *`F[�@a.`aTŃk=�|Np4Ƭ1VpXxG@`zLp �;�(pe\4j`� �|A-,(vEyc�<,6m W0D3J(O?8B:Oh� =CcۅAgtGQvm.l*|;<;>a#k8{0[,O=; {vy^ό|XykJF?esf'|k XqI'߸JeAyY[ջgp/p Qq"#௘|ݟpC`ƄQ̐v#`:#^F�:(*`nC 08O�C@/5�:*y # *8X�mǁ%_j'�m�d]A�`jF#KP�z5^�0�q,Лtn94ЫpmB\Ǐv8Fx2�N<}ݹQe5)X28`0�?ZtQCKF`IF}��!�+%��@ !�-GqTl -뒴j=2I4r+^+ƿms溊dO70y\`]>P%t'V-1qw*UW�H�f3i4Ih$5PYFYeq_u|=V(}P#;ؒuiɜ]lw.̔}Z #fInZy6"k`qZ"ݨ1tTm;Xr4 a ֫^V]Y`W ZKU窚{VwߡZuPkPkhcd\W1!"' 5iDѓd;6QI\Aa+ѩ[cLI#Im"AXق<psSKb34+ " `Vv~k@H�g3mQH$@PEVevmVi\^7Q-|E+N$Y:IEkl >V|r3bfPGz^mMDݮ^_@hĖk#Uʈ=Q iaѹ+ �^ۤ;Ug&N+s•׮Ģy6,Ls79uP;}^mJ谮78+H5٤QhJJlC6ΉgB*fbCRmd^R"?(WhMe5�H�f3lH$DYViuu`y]>sW\Ze>2v]fw< a6Dī5;lz뀝d8 +G CHUDڕ)ޔ٭T/ch1SE҄d5uh>O{eNhtn,!-qM}2WLIV\$d>5fQ4lbQJIk$WH-MA#6Ufֺ*BQBH棴Jͭj>p nʗn��H�g3mQH%*HQ]VaXY[FhYx+儩]X6>R " Tɫh93 j-ȩ(N/SjӛJy.ju^7-P 4(YK]Kl*ݱږ{)\8TŲ $wiBE,i@(=CDf6X5�Z(xMr*c rki[-hUjV,PS c ST&]*Vڜ@IFTZKF W S&n Tz7;��H�g3mH$M8Yv]Yc~8~ᩕ'Ba *F雔ي>[L:Jѣ3. )+G!+Qj5n}\ ML[MQKMhoBȷi S˝'yOuElB@kKC8m/fRƮDVKEťYBS> B[׮@«՚ gn "h@nHֹqN-Nq.FgjFDl{|@RSjϯɘֲcfLݫhQnŝtH�f3m"h$=NDmYue֢(JL~^ :r8LM`al/ࣷhZuC`0zO ꦦ sH#i mqTkt)S#kk0r!OkӂJH1WzsY1?=l*?͢RaLAeS7a<~΋ESֵ[-K)>:# (:kK̓pvMi<-z՞5K4GaH�f3mH<]fYuՁϚ7CCT<IkWWZD!eLCħ$j (L~w#vp`i2zᶓmR齴,բڦt)[ YVjM0܊͞J]2$eBJftGfEuaXc[g+g:"ds#*{r^9&dq9��!�+%��`!�-iTg qY%!IS 7l߱g�DqΪJ�nPxOS#…QT\@?\`."YA\"4I�>~4(Zks YBI:F,f| 8nObJ_e(U((,B5DuEy,>jg~#sΕK`SaD䠌.W<pN5 {qG�1w@@ǚ0@ 7%ƔJ2qkU!ϲ$w79!M; tI@ J%T=+ tU5;:3 "0 L.S K p.@?j" ͖Oڋ' `'`+s]\5FJQ[ض_†=D�b8�����*X����� . ڨ`t`W\^hux3h 04�pPi6X$:P ?sK} 00׈*t 5U `0�@ P}x8j�r|�<ר�^b~ǯ)ʥ{q! )GpDž`1[¦15fט=bGvSo[y]mγ2,;0OuvYH fϟ`Xmz;&=ߟCVVZgߍ:?{m֡fWA )r;qͺN,<q;0t;I>>]m'nO1ǹ/G 珏XSN Sm3 u(-#Ѕ_`| �z_ =#@j\ 5׮`Q?A�m7|lZ`.98I>^$o%� }*��������� $_r$ t�İI!hJ-#ͅ7,`"�@A7�@Bp�¢p~MX�·,)Rh�D`(a ,NOa1�X  ᅓ / d%8>A/b` e?2]cmKo/Hv< M  ĠĽp!�1`9e8_wX P[rpLA1 p a CQ $}aPMh-*GglWWvf�^TB1% Ë ! 4\W 8 /4BN P@1Mh-k 1�@X&Y �44hph�|IpM т"A$, }i`@2hh; Ђ� !`'Z$(A�y72!�Ao�dbr3�5Fuf�'��^Y@W-@wX||0 �EoMvrJ4J3hI &�< �@+�j�M/'p�ħz&@3?C?"ـ(CI!(!7NݐX$~: &ZMt#� @t >[ yA̐#`%zP 7,S}cB%sВw`v}9캇�1�b` � CK&SR�*!_+ld(N0 px�&!=N%b? ^|ubBņ` 07[;&1h,v@L$$4C;f&�h��!�+ܛ%��`qm d10쏏Cp@ ad;~HRy�`:�Ę1 +~/00 0,$0[9H-,07^p؀YD2Qe w0h`@�C 1B�BKZ@#^XM�g9_GWF!T�/ LjrC{] pb] 1�äewO P)�LFX�0 d+ZAGiŔ<Y40TA� : BC``bJN+O'{_J@`nLH `�!�(;G�vĄ X jBK �!�hXJIsXI5ud�/�H` `14ËA' 8]��/�К iEd -/Q8Uo7.����$0(B&�BI(39@A�|�8 M ?JxRCK)X3nsj4yC@5!JJB[,|e�Ԁ9�4( QaAemڰ@,�ZXa&gKhYЧQ\<3`&%,^0,�Xqk[d�7�~9SQݾ+#7Ig'�L@ k:7?i@b�5�Hz C|m&�z�'@`ɄΑs7/@vN_!PrNfͶا) I)C=|@Z59+RCA))NJ�6�ȇO%bWm'>'FS*{$;`D�xC Ǿa_# 7>`0 E `έqJ6 QX7a} +0~ͱ{B( < H h�<7/*؜)\z*=0t@a{V#e.[]wG<pޏ`T3›˳�4p Db$5 DcuyXB L4NƣP/ {#7m&|,@R'2]Pv=RH[:"ބ5 ,3`t䱉N 4(HGP(/姖g1Ysd10�0Y"b mَ<ˠ� MY7 @7IY]9s�Nр2?^؎OG? ,3%cB .jO` B =n/ ``kl5k@.,',0Tos9u䮎q;9N JϷp)0PV{#h֢%�fM&!`[� B:_߷FC@W�b�z�Hi44 $2v4f»݀)�L rbK,f</Z�0H` �"tt$�je|>^rGn q4[pqL_8fw<'}<b@@8 AxAh /W[}̡'p [À@J D�<*9z9@O07R;<j<eà1(Bsk @&�nK&^wN~e84@1!J`&RPGn NK753h !(BOJCu' NT ,Ƹͪ>Xhn$ﺀ$*3c;^8>GC0۳y�xӳ03u%N�S;_K_�1ne1f,n:c@RK13�U%'~Z'f)oj~kC �;&#)}|"��!�-%��`!�/BEL9A�g!=ۻ,c=z Kґ]dc0+G 0��;8'\d$%9Oevwԧzakʆy=GÆ`ƶPo{@!� :!ə.pN1,|D4@ X`*B+#@n^ZR NnrE%ccTS�z�h $C9ҍ- �.&/&�o& I0y;wFn| �313r>N|m�4� � "iC |1Oĵ,Fhr<-^xE�d�x(?tJh1{@ � 1!PBACFZǝţYχT8FzR"k$K4qYX7Rмh/wvecƠ~UG0E�OIwOIbN ʰ,%7#C %2ٛLmëj3s3/jH==)8ݶ K svueZp;KT@*ZNY狻<I )T{m0C-?6 /Q90_&'?trt};�`P m `^1k2h Vt!pv0`P ҆qcLe.�!BsW:&K|6 +fs϶ g9-jsȋX|0"bWp(B&啋 ʡd0 JHb@xV{Q4�dߔ3g|{N6Y 7BN! KYOُ9%HNFB@B?W$at}}P' |%) }񞣸%ל<'hxroCR>_8X,D�E妱/pR>| y`р?Oq1Db'פ1xp!a4^fo^ @cO\3egrC9<|{ !j�{ħ=G!xԅb b/ԄR'.PjK/Oϱ HJ$3#9�ߏP & 8OFRP�j3FA笜OMq�@JٶV;RzM^>琷 B3�5 AJe910c73vL�@ h/$=܏ `T7^&wtz6m�Ԅ#nhR35ޣ*Kၘ%(@�_6" %{Q`_bprh I`B�G%ɯѶB@bh9iWM4/;x� 'raNp2_fj+/3@h C3n#7'iNtFsFia8-!Ul&�3&Y#1 ܍tCVL)*"k001`\{*O+ OvzBy8RC ^M(ijJ!afmj(Ieb*ISK-r?%$ K7|GoγLJ,;ߧkPWd:~0ǭjItBexF{BjRޣ#;CH  5�*yRb�21x|0@P NY58 a#\ H ?�lQ)5~8j=n�LKo�Cd;H-А2MqHX2b rQL=9Iأg �tO H[j`!Wb}�AGFI79'?è�S�X?d�Șм@ Oä@K@>&0),/.&b}r6\Q;K+G۟�������2^[^2oqo9��!�-2%��@ !�-%hxG0מ>7ӯ\`1H83PcDw"˖A ld}!Oa-@O?[iH�f3mH�<OYefUeqXZ&+A\WOu:�I*7ra&k; gnbo G.eJ5+pb\%i9֠tTʯL&oz  +^s$Jn[cFiNDq-1lA#*#Z$ *k-� 5P/\ЧR#!i{M[\'k& CQs+ewOfMۉSXK]4 vpp"`��H�f3m"RH*8Yv]VeEi}mčk]Bׂ*$4qģo BۧA G"6M$*qH?]5u ѳis h5NkijḀRIFɻ?rDږqH 8nr1I#IdXs@nK⹔^&i M(wUƸT']g#꒡C NUJ`kbuJzLw A^'ʆJiBۙ7 SM$?�H�f3m"IHA모A MYavVu݁!a)1euňG!i֚6vsiIilƶkW9EhL Tz<@-jůOiXYsX%3M]#شą`E z;kA]\ZksTҗ-bJnV&"%ɩ[ڵ=!J7 SqcjZTXEJ{XS i1r5@+͉ńkH4m`zz՝+7kHƞ;Tf<W&hfKEMhbYxYPҪׇѶ@��H�f3mH!*A=eqYu^': !jI_F3D+bUDEx�/x^`I~!γ)C׶J|Ff6tTd5.`׆I$ wM؈SXx\(wmRm=Q$zlkd=9zl)Am}uX3s]Sn V'm<|K_R/qA'%rWR~%U.DTVP[$ ú%۩Z\e]̙%*�o]ÈRk��H�ECm6H&[ENI&ivUvi&MJ5L_Fa:ӴrAܔarJ+nOT[J(ByJOjɦC-&]{L%K/R q(S OU.*Q$&U`R%)^ΝMRѕ�C^nKA_&6'e^lBzI{וH0n9G|Ur !FGidM`Y#LUfCIZQTO^I`L+ H�U3mQDA%*jJM13Y]uaۂH#fږ%eBe%\t=Vu0ŕ�Bѻu]tJc7/2ؑLR!Z6(YJ#MY-7V)*Z3 D1!PUh]4\i -KnR*=)pɤW#枡#(+eBC[Cֺ̕rc\55YkGԫD9fGŪHlR5 Ðͅ)UXj!��H�U4hI$I$QTTH 9Q]UU]GVqwmM\YTuŴG3)V BXgU9V:7M3u 1 s >SRe`:WэOIV~[h)qU\u)[58o [efSXvl$.\$\.Oc敼['Q>slիMtԵx. 5s 3-*L��!�-]%��`!�/Y^JA8Y[l.����_��^[^_ϸf[څqvu+`-žK ]p�D�E$�n. ُG0SG>(oU㟉Öua`nXva8%d=kQ 18|@2-zEf"dz8UY{���W�� t'C?U睱0'cHrm2 a+�9;s;` (|s=Ղ.y8qA"C_v�ަ /#>g~~Gj[_}bT>CzULiuN *8]LSw?~Ǟ|:gø bt!1afWm8(9;�̾&Ätx =@mC;.@zחACln )`u7uH(d ]0juzT��S�:A҇'F p^3�B?@T!@FAU # �.P`9qGf` (@2F�tkj:�P2"( ""A=@(NR:8ÔE`!@,'<:^r8uN>"pp u櫎bgjb P q Y|_pwGq�5@,#LXPMqƇC�qlX'&g `b%s 9>p"P!�DiUC5\;(]Qb1>7l8'8}Z>DWXr{Fw;"BUedQ¢"c(H qdp"TIεwt$z|cH>8 �;#<,:acc LryyX;7(8 c`X)Q>hRȃ+筫=L0:y lٌ 69,aК�?z0S�7Ǐw^ 擠撁|vdR�XO̯w^# R Y '>du8qQQbHT�uU!PR(X$ �:@>¢$D[�X: �"$@`aG:*cݘis,n g=(c!+c~^%.08G",IŬ`3Ufppp*pOp3�@j&F ?r䤦�[FO�g������2X����� 1ңeWjb p;^>#O1<4�_uxr��Cl  uPc?ofQ爌Yd_'Fy~9׶P 0BI@��w*�Qh`'W薯*9�jX| ?p.M^($\^. _�e_�i:z9 Gq <>uxD78*tO CGRŭ:uyq 'G0p"L9uQj:X/e8qم?YmC�|q@ ٗ=̖-/9`NYX)N?1B aУ0[9p3enzLJj0yPq+>eNp qK 6S2hxt~–`c4 ҅u(r.ۇPu" 'W*]0~m=y~#Q^#V",S3x;} ��!�-̀%��`1�/�/wg,����� 8 e�ҠbX �p@zF|ld�md@3qk χPƑ-|i@�T �irBr:=wgYXbH� p;?:iya;QpavqG�rA TT>Ux`ʩfg @4L`s<N͉&�:HuX/hT�?B`�<x|. x�} %::X '*hvv�`PP]hEP` T,@�UL� -pc)ut:,5TG9Z4 = V@�wVH  l)^IcH"Kn87m[9 y.pbB3�b}>O Q^qP{X xBZeS:Y+TJNHgn8pYe_,^136:ω|Of��5�xie�J(JRahYGb X J:g VzRs!011I]@@ɤ2``�؆Yx$Qd‰L̷�(H֩FP `$s1{z0JIy <H=#<= S(0W <=k<7.( ij8X?|xvqpwsYli /=a)*1)勨(1KP `ul8;`Bj�wTyp;~K�0 ~#H45b "`J@I@3` | s,F u& Slyxi=�c °Tq 'N/(}π0]AC\!];4<D]t_uAAgås G^�dh 3'1d�ܾ)|7*8 2|(3ԝwO6x�u_ҖPJ@+)}l1?!W@1�;&P 䆖Rì` !t RqC<L|<'u2~hQ9k#7⹂9$gN K3 @r g�����*^{]z/y^EA6^Ku-KW^uK�����^{]z/y\Cxތ4[yw;s/A`p�|=~m Y.��uwA8 *9Nny  PN[H "8P 8T<&g蚵eFc ؝Ωr����� ^u1q><�qS�[ ?*:jPd]�m GƀC`U@`` @.@qж�؋> 8Cx/� $q0f#PX5Rǃ L9j[s[;5=t{�t:cf�(hsMvq^3cN-JZ؉|wұ8;qlE=P3aK0+"aC-a @MM 21J8:BØK>;8|iaZ1zzW# _�bLǹOS!1N<9lxlMqXs2 ~nR8-a>6竺.0Q:_FR櫛/SNSp>A?~s|Bԡg>`WZ”a%c1; [770Nï;~~v/ϕG:9ަ =|X* Qö��!�-ـ%��`!�15݅sȖp60gp5B(WX5Xh ?4�lJ*p p�X 5 4HБ5,}d�X �tAUʯ.� t5b+XncAs'6 CA fU<Ek q@ąq�h}A蚠0$LI/-[%l .'_e呍>� ` lo0FHs85A@j*a@* ( L�Y ؼ @>ˬ _ 2a/ǀ.wꘌVp]BGN>3ZTccf@Jb7J6S`ٙ03� T)gZzaz## zC7ׅu=k16!KKcp\Ngj47r%Z7seig$�QKP8vt8K497P;ߕ'hqzp\ 5FoQ|i:1O8V0̮BBӏiYÀYXA> @xvyq'=WTD T8>S0}d9ebq�,ՔdRWA~8���_��*X����� �:Cʁ>PUGך ^>�6"F_@v4�u# hZ`^,2נp;�|=`v�ח0?rk\ #{^. e׆m� b0?lX | @^`hk^bjV͏_'K`݃,A8(X_rpG0i9_KvYZ_4x=ãsSһF,[~c1ߜr-`�vjlÌc_7sX,�uJ8NFۿī|>cMݝyknʮ^f[D `�yB@7 &�o 2~o_apʛˀ*ok^6 �� z龁@B�k?{A _~ P1�k@kb84t nt'X.o@��� ������ Al <7@`A4r8JÀ0�ϑ�j t`ɡvF@�@X&Y@`L(��'`C9�H<%H8;D?a4��(ݐ[ !�jrr2?R@6-4@�%Isʫ&8!ɡ,& ]� ّ0T�E.h� `#:{qW*S+XdX 2 {z�Pp`A4PA�,!/@9 @X`�`�0 C(0/gU 0!;n,E|�TB !�TA"7`X$�A. �B8!#qY9�7-{82%-ߛ`E h$0 ^~!A4,�o@ HIBԖt$BN"Z() @vH�vC A4%�=!Hh {ђ6Pѫ `�I 0Ϸr `aA Z\`/uesl[!_qJXu� 0E,4pGH7ܲŐ} 3p �,ί ɥXA@PfH /zA�|K%rjP`-?zp]94CJ`��!�-%��`P 9d|u� PPHB�NR?p>SO�̚8�1 sW �faI %ЄtRZs;�x R�� ƌf; <jC 3ذ;~  h��78Xi @T�t�R�%d5=09 H{ x^f}܏5ۀ Ep @vᡩ |8FZ9\n �}'?f%#-Ě�ab@Qґ:]`!^N5A ^N: �0@:&Nq�d!xpa/{膕9I�%u /Q @bX� TF  1!-$0evmy @XߐOn} *@nTR4b �%(�$jID`Hf,g|%K(-�MԐU r>׹� bRー IP€�lX�R@Z) eb{F&3# [Y�bZ{%{�jb`ɉ(dנuҒ7- 48.09os۸p0 TN}̒1(JRPIM~&d'(& ,1{,a*�`� S@`VJ>J0 Bj:]Qӊb`.HF1b@6- rɥ-!&d�!bs I~?yC0 T4[#srLa~/T^%! l̄/M/pvN&|;O&#K礲B۝MCY]F�ae &'+*ބ0 @3� FH� 0&$r-%9G&@1�;&:Y\ __&p AЀġ% vmb?:$cTxϝא%J,05'-n�vH Y43JP(eCHn:7&�Бo#RYH øߜ݀e%�P2P^�bp RVN{ ̂AR]uY`7R*02 $kPi =^~(�) &̓c/G{]`;`71(BB7M$��4, &6ѐT@!& R>ŕEpB偏`��2KHii4$f ؋q31Y8cbcw0`P�v! t:g�䐀"ITXfF p(f瀘d0\1(u��RGn,xEhLN#z ؋Rx4K){<]߄uO.01CZӃJ^>/_PbӃp\} 4Pw(ܭ9 ch^gf|pϣi'Τ q@ �3!�=�@-N((<wnh�S*C,3Vtv% ;&@ @2+ ܢnGle@B�hQL2j2y}af(vN?I;|\@j? P`a3#m5*TPvK=Tbɉ)!%"p >8(7Hġ* ; 2 l0y<9rK `e9�^�$0A7}Cn=~ߟ0b%f{.%?/풂yq 0&bbt�<(B HǛ C�G��!�/ %��@ !�/U֑kֵkZc_y:B5klskZֶ u9v=eb9!JT 1Զ@�H�f3HI$I$;4A4@=3MDE355MD'bQrB-BkT*EinU#h̄kVcAh%n-)6Zmr|" խֵcֱ- 5Yqխi!5TJgm+wĄ )EUgYkLjkZװ[Ze,|79WAG>|%kHִyV5!t5|}cFfbTB]3ir1Cma]U5s)cK$-U JHP7IH�e3HJ$IDa8 QM$9#M5QVյkL"jRJ~Λf;< T4B mT6`Y ֲiSШ1qZ}ƴgfjYtC׌9ІƩTMb$5aҭS@Jؤ;iI@k)M &Aes|.#SDÍ6ynl#G"p2-VzVEmK5>9-+q �_U̓$mr8uj4H &�H�U3IID$* 4Q4IRE%RA4aU]V[)pq.!Wns/fET8[@T\a#`"_=i!҆@\DKUᦩ0%`![ Dđjjeɏ)FLe ?qZѲ+|&TA=D\KRTcJ{Um+XJ\? *EXknj۔U9kP2cIc2ҤJB(bST$$W5k+5͛96gC!HR|Y,@H�U3h$Dn 8I4Q$U4QE]e %6mq$ !ZҝA k!McۘTću�ZԖ\(׫ZV;(dU3kZޓW)HZw.nVLbme$sRlꑕ1{`ZmLc*g+합IN,΀ܿ )ߪc΋aYSo Z(ڛm`cHۊGiƦ\tMg *mS PǾ0[6]AJöJ;Z�H�U3L$I$jJ<=$IDM5QYfVYU^pv"Ό :7C[8 `ņSP5Pdf@c!N,d0$*ͳ"B/db,AXoHf7Fko(Vk|ڼF<t5:sͻʶRk^Rv@m(/iͤBlY-)>"6ŭU-rr-ښ.3g5 z8L#U$A"=cddJ:RМ:%TSrV:ԗ#MD S#!iٮl�H�U3lI$I$_X8QEUU%Y5TYVaUYaV!:eL#1NXeƾt61&6EvkԓOW)wb 4,R]i=g:1ke0KVѶ>pj}9 ԹGSHGEP9hi 55kNnlV!c\dqdXږI l+[77nCRUZ'sKf:!i"!yK֎TPHIai+MȳH♣Y-E2*[ԓ%%iHFkqH�U3i%I$=#=MM$QEYdIDĩrrSVkm&5̴bmMᚚR}F0\*^NWG0TZnn9|A)J!�iJja%Nh^ u l--O+ֹLӢḨ7 ԍX3YgMkPr~<ZX՛Zd09NԨ_kD&nlޥUvR[Vm��!�/4%��`C-``FbU H!>��xRrCK@M�#&PR}D@ 18 4Q' g 0[Z:aVa02?5S /\i+B�$A]I4 ߟeg}]L|M t 25Q]IgW {x)!;bğh~3, d#Vsp lW '' S}F$L!'&u"\_O<ȓ FPt )]K� v/Ć~ ~F,h${5qrP}a�0*nH%Ɉ+)|^vW:Ȭx#q'K-9z`�= d<%@NY.A1BJN& r}W'� ;HbrWkM@c|1ݛT:!q!hJP!� 1 tnǣfv_fܼ7[`�)HK/>7߿9;چmΩ T5� &r }<K�~H%xf:�@LlT % )i3kD lXi@g9a߲~of �еt'}@SQw8 ��>){X:(0t & I$(:ter%MG+mo0ĠUI1]Wcy�w>@��x O!K g?#'ٚ܄Bw:\@p@lf-aB4(32 +�GZl*)37 +'5_5%}ݟ0Fۨs]M );c�g>"XS+us,7?ي,Jve-Y񵫁ڗ�hJŠ6 I{>ݯL0Vۿ�C%ע>"Tޜ ;71ӟ?vb:CK+m0]P&CCCDz;8D�ħ! clߌ1U>F~Y:@&!bHW�MC֗γ׍� �Zn?a�hdK/ơ=Z:3sn3e\C&c~QARq<@cY-fJC|�� K,0YD$Hѱ ۨ-)e<(I+ ۳ݏ7`EXaEbQcF: �jM<tfጠ?k�j &e[s}ԧwHGo{�r 16}Eh ^Zc-a AAtw^vcʰdl-[6.Ի(ttW )h`VͿ=Fiy7-Å]P @tp('BPovat�LA0 jtv}B=4R#ن_ H ?-뀜a ZCAE #!9}wI,/do1OWYfJ0y%|{uZV$tzē;NTޤPZR72Ϸ�YeoD0}XЂ^x@TKN sg+mg#])JyG| �4fOUlJ/$nc.ԥyebk Ҁ&=JVp`(b]0�€hOIe6cUlJKͶ6ĒY{?eC㍛oFkӾ[ [\S*bcXQ /͈�dLa2RzӑVڨ AS>6?NjxFdqfVU[xc+@1̅ez!)|sI7 Ckl/ItP@ ,{P��!�/` %��`1�1�1[M% [`Wsj2^ԴjC2w۵�|}o{P@NLN5gຐbZvI 5Mm?ݖ/T(f+ Y .6@Hl:Cx.<>RP<.`⅀uq1t?}⅀u�⅀uq:Cx�TPaBE bh\ p&؍r)&ào}` ]�ldɤ6xd '. �$j95~BP3GGA9-HmW =w G&q �P/?ђ{RS@������YTL[K$EYqf&.8LިI1g)(OX.FGt$.ꞵTh(0hq"D S@U]B3903HU`zl�<4@U@q4\ �?CިH=vdCw0u.F:*@t$089mzX� ͫ!.n(@j6X84Z QP |G4`H0ArB@'UԊ>V$qfAbH@A睤 "<ӏ@P] �0V�L<ˡ%U2B= ܑ#1Jx?sO xP9bβ<Dm "W�@$f" AA$U4y@ �C@@ d*aeӀx+L'7FN`̌+)a%4#6KY,2�Z I&0T�=!p�k#F<~ 86XLSd�mjÞW:Lt|T 2T|@�⡦z b x|yC K,T͐HPUÚHwQ~QIԡN aL|����_��:X������ #V>83#!b$+�ZYCn; S~u9<2GsMD  <~IRFa\VØA"?Y.Qe]5{kU~=x~ 2"O�zŀ9iNx1*buxkOcұ酳jxWeZܝ*[T1<r2+ʯ 8 ֭԰RcO`.,9ޫ�`CA yg 0=cr0;ێag 7࣎1 k̅,�qY`O<�ap�FXJ#$VGs#g~1y> i`!U#Ї(ҫ4To�,;0�zyF'C@Z| (~ØPc `+@ʅYGa0�ט!w8YÈ2S} )�\S@4b6;/�xDK3{_WH�C\e0Wqdc,(N,^v0F}; 4,ɖڼ�Px{I>6Ab~"A2}�s�����QʼT#>'U"چo]xRjl9h@G|$$-T#{iq1zJou¢qpiI82Q1&z?f�Bh F!loCI;/p;c׎ 4�E')$>␞Gd`-!g/]LH'I�$ |dhOQbyFBS͘U�/q\j B8j >dd7` Ka`*ע,��!�/%��`!�1E4) �bH7#fBzkwU�9!M,0o4<%wVX)9)roݛd|jLBC:>򉹷q;Ph fG>zdNTrhzD�(,!Fc�V8@3q_ժ1SUb*�ckA& P �4i J!( tm�n�Xg#r+'7�`baHID܎ٲc-:�4I&�Т5}A7dqԬVC&CZy!;|{[ЎH QU >Ϝ�?p=F� -ճ1rp#U0DѼ1_$kOgftfhc!57}H ulP8aSiL -Km蘏uTѹHCTT(i $ȀnJ I#.�0xϋI$,@@HHBXjPI'V �I CW�<';.~%1bl��7yEtB܉m m � |V40G,P#sl.,#$O7 "1I}nbp @ggGP쟠* ɨW_?Ə"aKYOQdef֔ڍz~g.DԆק8ITI `t[4d@T-|* PY> p�����3kDwTsI![,^s-꿍 : Fu�Gh.HԜ, Ƀ ?5.#[G<:l � &-OI8tʡ}X{���_��#k $q'Md/xY{{x�J0_3,BY�#@Tq ?4NUBrSE3pā@$?HNc4ÂLwPj2P t)'>ݸP} @ @0OI47F C/PWX{���W��o[G.d8$(yӄTM'ϣj Ի; XuLl4? ="G4Ӆͽ96>P c &�6 4/ 1I"zh]^z,4<%?*}f#X,PJF7k3*B@b%/uh>`I) t�whBh:#d{k"\lV~AwDc8Ԡ;P}=T(|tj(G9ԩ@N(1Nbu$.: PR$.4?!7 .I(' lf:4�yU?�1 Bc~X7S'8@.c@u� e!x$$TR 0>{} ջuv=͖@?b*h`ŏc @U �4�:."=s$s\A9 ,U u2� sUXLF=npAp.8 ��gbU?@  9P,E0*�E IP%<?=D 7uP8p=xpVA @@FhQ↎<`N% 1L (8@[�hP tC Lgr8|c8> ƅpS c8|O;r6�\C�Zq pPܔMA_wl^ Rv,;u@B@n#e8ߘA¼�|0$ J&H$@#C!2֑Ca3#seg� J%$�q,Yȁ �ras2jsbvXnu<x|��!�/%%��@ !�1[lT-EںrBuw}\ @QCd[<1esֵIUCXR׊W��H�T3lQ)I$ꪪDY4UI4IDYeIYo;$ZJX`0,|86sk\HV~b 7yHlUjֱ#"W][`RT)m9 K%SEexUFDYIqζIV5.J. 4ۨ5vjIh̃4#cq6S"TY\7nknY@ #lٰt]GvX!)raT*@5D=`R%$3tAI[%+@H�U3HR$I$0<LE4MdUWEEIU]x TGܷ RU}a|Eȗ54&Z3Iqםa#5SQA]JXYkX:Tbř|J>+k4STՕ1ry'JfΠGNJR}i>cE7kmhˌ Ubjb6kmW4)R rJH6kma|Nb42s|(Btaugj zմk0��H�f3HR$I$J@MQ4QeWUeYDer)-q VɵPŔyd4/&$P̓ZIYGX ZҹKv#ZqfWFbkֈYUfM]Uݾr)g6K^[%xZcVS-?h)YZWĮ9LaVA$-zJRjbYkX$SD@rϚ5ƶvRֵ])8$Ju6mCX5Q\ U۵U -qVm6L'd{:uW6ԭٲ-H�U3MJ%I$s @QETUTQeUuY]v-g)x"EƊxZx%eS2kͨ Ī&ӊw>^a6mh6msͦJ#vWk)YR1md&8Ls*֓ʆ5l.9<mMĤNR>sFs}F4J!Ө=h,b2<&q-5m0k`A =HZ Htc\UMB\sZj 6*u)[dNroY��H�D3I$HIH*@ @Ӎ@AE%Y%QM%ۚ_ѯ_>|n[ϚݶivYˑ XpֵYǹh LޚlYz-\$R䐛<9vlݵM 0 I rHT5F}sT5lSRIIIHẄ́g7UJhلەJղ ӈFXZ5*z*!5*kf7cYQ*ኚsrYwqQ5czJU QaXǛhi*X/XďvٶTjH�E3IDIDk 8ӏ==EMQQE.$T~ƱHE-ֵYyMekAkV7mڳW@n%W4j)f&6FZ%0(l\hiqlI_kZZ\@ ´Js >m bseV/L "\:@:v~V%2jCk\kfݐkv8;rj7]r,KEIk[\kZNfZcd6[Yh4RB*£Hk"Vk_9DkVk@H�E3i"IDJD 8IQ%Q5UVUEYeRTaWklVZ5TH&VrKRZkq2 9kV"[2,(N⦱ii j/i-!/-MjNkZ%Xo]vl5SuP`ꙸ5W d InXi.!FK0摌kljletsohqʴ9A��!�/1%��`!�1uj4~ Rv Yc b4`wZ@`ѨaR`9 Ib P3DaD䤣^^ +'ef9�6� � �BSr)1FFAU0oxM,_'OR ,�9^\p�����:X����� >c.9GU8R�z-I^bgn=+08k̭>)9Cja G8^c@ C3$Zu;؁)񦲄۬7�q8 0! y=ltX A�ϛXrUƊ,DU:uyQ fθ+S7uFTGď T'� .VD"DQ²-u )k0W0Yq-Èn:S@: טF`fGŝ<y?PS`lُ|OWn XYp�/_|D c + @0ÏA0D=P )jsDݏA=J:ã~F?M7k(\@=~8 �j`baA -A@tr&y|ǜY'(DW(c8{@(� XP| uy൘],Ï,09H瀱p;g�^\O" ^`s!˖8H#h;g<p$r,AZ:$ &TD1j6>'9AdPPpzH�lD(<\2";+'GW @0Tm`�����3ǧ<IGޟE'L6(\<:̐TZ- CVxHy4 IV,dY"Y'*`M( dj(X?b�" d!.lo~� `T5) V# j$�<jJN7uRo/ԣ (HU2,#l݅S'<L&BPD:AW!oOcYQWKzRx˔xF؊�6y�P L]m~f`KS ud6acGyb,d s4$a>HtB0:(I:nU֫Pl`5UX 0 b} n1x3#(FODF O0Sn0$a1 Ҟ:ўBƶ8|O}T#1ՙT8Ajc֪[)n"`a-=A@jx`B3「R�mgS:FSKPb ;'1}BP3(io!(uU0#7:Gde*~5BްVUjB ʩjad2iiYCAbbwODdI m j͹WppDe:|HRC 眨7#v�0Yb�B,DRǿmf LAܠ<$ؘW:KA7灏Q+ cjc+glX8_! 䄕aaބ(7l.~$<<)UpP02h.&t7J $ԇ!WNz`Pr %�+>BHɣC�onڗVP‹ !> sk֥q0CCwL'\�~LGZ?%)Xf?,O3|D2_"CB  U)ݰyٱ}/a3k.9Eӱ,NU\uhqʫOhJ��!�1 ?%��`!�3E6H#J:d"$k�����3kb?8y6HV`gߕ^C~o f$~"fD,EV#(m!s X9*gˈ7%9hX}NDmҹ%g;!@vM Qi|yU>q2Y K}nx�����+kDoǔqqG!&#}Wh 9iMy6/vb9ՐH_TGE? fDoQ©ƋQh0O0fq'I4Vg G޹= PUqiF 4hGzs ;u4cW3䳚O>^W˧c@T71i|y vƸGʁb\p׾{[�����GRhBZ狛`̱ލDUP\O2U_<5=vs՘UK>LPц]aEH "}aqn1+#:N1!zP� ht_9Ǔ7�Cx 6%q/qՉT@(z`;#J(nz8.q <YMkqF؊00�THPr{b4񊀯huh \SD7B6TsO�\gP5r@j$CC$yr *zf<:B3!G`5,.n#mL~b|�J׸؉Ҁ_N ;|2\XY|sUF/6ﰱQ$0J'怨 9XtFЌ?i >0IB^xU ΏAIKv?;ͅxTxJwJ)n#Q 7|fÈMm <ðUKx|�9!DZU`'h {S2` 1h2�1H`b1Y^RB!5�5!8I%+�<!TR[CS p 1#0(&@T7~Lșp . 3$bR{3-b<^AD#+Gj!Hhaiإ~S.3a@�L0o�3)h1IQ’2( |Jf5c̐4Ry/`7gd#A6o܍ 9qQ.�rIX eܡA!0@:� } Жs C4pxUyaGLW+'7ϝ*e]'X꘷ ~\R0%ϗ'kp.RlK _CaGD?iS9ɿ ZF�Z2v3 5!KJmmgSxҦTc/0%XL*jݮhI4%Rؓ֋%Sx0IiQ 2_.���_��BX�����#W`w!pt-L8&p<"<TDSX*lz/ә* +Aq޻6lskG^p1�eş yP #O:gPw#y^scLTz6p/88^`OP; f>a1.y-fE<<M`? '�y��' Wp�O<3\טpǭc4(a{()ř2Yq d+D@3D(PB+яq?`1S}_aQǚ4➾ȵf �{ EטNP >xPxASs:0g)Q;Yp6|!_mxKNB��!�17K%��`1�5g�3+ʯ<W$Q ."9^a9@h|qG>4!:"JJ09!  >ט^b9;=G nx\)|>aq@ #΢x HSLr,/Bg 4N<<@c]}sX��� ������ *<� M8@�MI!hHAz*㿽 A&�D C:$1@x KC:@<!MC K0bPK) @v@:�TmCKɀ {rC~~L tU$xK0x,�at0�bv 2 Q 2NV=<Z=k!<%0(̢__4~ M9x j0ǁTH)4�azD�? &l(e'8ς " 4Ħ4勩0 q5 X�(|@�]Abl!0Jpu X#e]GAP"AI E,AI ݓ@� t#�}@3&LA=| "|AI@EH$ /r�}�k�8AjO�14!%'8GUkv8@CӆbIbms /~8ǘ(ur |p@" 0(4gOZ/]pY_,0}�owlMA=jE�w�c 2@BBB:F~3t9 � @�@IRLf�0cc(2~c_F @uK@ o&ĆrF`!T~x±aN {az"k}xp w&�ood @Ԭ�`Զ{>:{$&HݙI/cͲod9^ܢh A{0 FǝkЄp @@�/zz{1� ;9d Ie7/aXͱ|55#!>0o;sаR;lc�@0 (nnxtZ�FDЃH\0n6"rQ%u'9 4!𑡂ӟd�x 4xy@|Lϟ 0 ruͲԸ@t'ovJ�?1࠴}zRh ɨ,w:}egJ~c&\4RUa`ϰ[Y`�ͿfشS]>PiCP|5 <> ) ^Cu>q)w?# r&N<+Ðlҁi<LJB Ԙ#�F̕Ww-,ٙFsCjݻngÌz)�e<9g!8, @ㅈע,h1� @*�L+Оî1[ ~O2GدF8ovfc}LNNCB BPoG0 H_1I ^vW]`~7vԥpZw. �4¯*B�18'' ӶBVg3b砄LWvUYi픥4%&X ^< Pier2G1];xs87:^l2f (� tX{!jy}OU" epdoQE{L咺2r�6qk�pL+1CP?87Cq$}̾II�V0H@ -?<Sg@ &0tI[Ԃ) s4 6$P@�@ѶJ;vljh[)! od: 4-n  DXsY�pV8o<,?uӟ|F Ϙp?-| NB*��!�1bW%��@ !�3 \Y2^!Qer*&sJ@Z#NΦoG#@H�U3MQ$I$*$<MSU&UQe]uQz͒7ZfWQĕk 82ki&e[K<L<"ckbb T&žU< g۳ ֈ$<Rn 6rB-mK&^,^qAŴg3y\1 Sx30 az-tI_kW{ 5 ͠.o5ɱA^sQ^ɺ"<c GЋ<1kqEBMUQd4IR[wZj ��H�E3m"I$J(<QUeMe]eY6ew[֠̆֋3\ 3PCxTdR֦" DI0, 3ۥf]\-ѵe[ZH5"FZф#a6=i,5mք[YcF!Გ*6qCZBh.)0_QjBRڴIToh~ .k!6ֵvk$Wg .nZ19V#ƛ$Uzc(03I܁8 ѭH�U3I$I$U+BJ$I<N9SAdEVSQeaUYUYY5dՖ8f|3 ap.x[ɞަ;D\vy|DnW6 qޜ+q%W5Y#ק9R)a1He1r⌋u%)r55aMv^HvSr"nRB msFNuez O[=K xc-ZJSj渤^m]rXA w9T؇)-bM;Uw9�H�f3II$I$<EDQ%E4]5]EiUYEZֲa)uN hҙWKs%{n0fhXu= ]ZUGkNдOcD9!U]km}RQ4@$!p ,[VΔl6LkHH]nsfXG ʺkTYͳ^iq%^Nu8흘qYP1#!x@AK3 Z '"KD!}SCe$DJUiw"hz\8N;VJlLec* _vnZ8<#fUk�H�f3HI(I$jj 8IDQDQ5QtUfYm$j_hA(tHY@ȊihYh3ugN)$LG5,kemU'( U=PKZ[PXvu]+V-5ہR U]xFnKI>.mFjv8Rz#k}1)S>`YGjfpeX0"}HiJa-5~# LIf%cg'}+t4\J+ �H�U3HJLI$89DTQQ%Ue]֗I#KfٖXZb2ZbͫV}6 !W$!g4nj8˔Wljk%B*{-0@b raJZP6_@NlEq`2^;fRΕ1]B -0c~gù*i!Tشrlo ,BlZG,1FF I2M dnver-}WSd> A4s%G"JN. )P"��H�U3HIH$@PQ%Q4QFVUuYam)k"|62$X6g(D (lbySj嬳j.L^tupp2x=6SmM@e{ tR.LFRp$9vRѭLvu=v[?dsRkhk/H r4;ݜ\:?fE A òkͬƩE1O5oq"rQ k��!�1e%��`F95?;8@B<iEtqb=~@@1&�jCKR wP߃ןfWafs*LC�Hqa`M( �bJN)N9zXoHa}=hab*O QE-~N^Nw P+ɛ %+5^wW>ņtp«�LWaT8*Vvn3%9#o`�4f +`�0h;?j`XhOaN�ӟ^P�TPb:2 O n+'|nlJX7 CYJG6@fF2�&�|P )YJ�hBu$Z�3<fΌ`�4>Ii!'XL;m`bCO-ik΀k�pFzJ!캓Y4KSO7+yi0�*�na'tk#rۑ=WG׎ C-0ITW&([9*ꛁɡCt98F8Q!� FJ8hAŗօ7|3fQ<$07K~^b%n\l]:4p@@CY'I\ke\(F|�0%!gBVmsXyXUIbҌ*POY�K!�ĘY/BI-HNY9+<̠(IIۓ"5<u6TuuqVЎV7[9Ғn)gsj)׿9 I {RzIP! K31cKJ`.il62C/�39Y|4! v8u/!)8o1G u GoekT-�g; ~�-A� 9et'" ߙz9H ‘ϖ wv o$(:~ݹ&㷴 N/vUKC -P@` �;'_񥖒'¶ Ξ7p6�k`6OP-o. {#8a5NC*+p߾2*`YW@g૒IG]̅ۗ Zڴ"Xޅ$=H#B{;jz ;ڀL_)V|y5);ބBJ/?oB&2,@IyQ t;':KN^Ͱ=hW0jSH›gaO-g>@�`LFi4 IwgYn kʀjCP 3 H�p ا= ۍͱ[Ѳ堲n*`,qQ/ sQϯ@X ԖRa!/c�s FGCoN흮)=)G;~7qI}>Q⮠`P00QHH}#[`;+ӆ}a;n:�`Q( 1OGn;NW4_Iclv8yteXr�A,st;u\am2hꀢ8b݉&Bw3fߞ!r!JÅ]Pbaew oݶ]@�L MIt~zHB>?iMN+Hņ)fugZCbPz:7!YH23!krB,3g8iL.1ہQSqK|{{^|ID4^`-eBfMVw=)a);7[-`ϟuh j0gZWC$4kwN|w؏R@�OXC6VkY4XiI�fGxH+  S,$VάmL11W�dQ ot=c6;��!�1q%��`!�3҇k4Vv )JSîXH KT>wFS[ 26| �;o FNoa 7f6f;kIlイ%9-9ٛW4'KT1YywN6l2bڥ"n:T'@ nC z J4Y:@'RVd+�u#_[KS!;\M�ș|i`;+AҀFz; oPj F|@Vs)]a.mo}2V7 Gr TP,Iá�,�,H@>.� ]ɤ ä7 .<<;Mo}P ]�ܪCa7:,}PNyzI'@ �4= b#J:/O>4�������;eծq\$HuM{I׼;󷌿ꯙ7Wo.o#|0 0Wo+(npu>(ȅy(qB=C@)onOG^j{����_��+eծq\om]?X}[ÿ;pˈG3_KFSfvYkRs%(n8 4(;?޳$(jꍿBR3; ∾^ BC|C΄ KBT1g>ާ#סG0C 7_jB#{Q8p4UuE!3{uj}$/>u[x���W��2ΐҫڙizُq8ʩ .(3B_%cM0\ٕ2<.JŅEV`0#;8pWysM 5uIS|犌 b_T%1, Xi9,w]qq>/䈃 |xr'ABj#$`jEg 'p�z}_ędrtE�T N0yÞ@! c#8;Lц5 81`G#ذ#wcaobTn>-'Jӂ~'prpX1AP7'� V<x1�S14!xl.Y ~f r Eŀ لv:��,&d(S?=4(O4TE=(3g=c[6s׀yݨƛS>G9?}CTkca$}kr?ݎг9'Q?�e% cdxE]]x煬/ $,Ed�T�: - QOX�lp�rx 5b$"V�1VOpd>ȇX� uD""D #w e-CAed0|}o "Ρ"�g !jzEs9> Pp$3UTQe;�}-bJ~x JPr%@@0&5 ^|$t1=]^0 /rא ```ɄyDRVO\JVv|r?¯QАY~p ' �X:[#sSNJD,4tK%gmš�YEffeՅ�(��T5< ҋےAU(۾sJ Kn1AȔ~*Ct l{+NS(>0&�lnV1ς�|jI҄|d5v-d�4r  gcty%>E1R;BCq;-qC�`:PR~`=}`݇5 8qK8p@Dh?T%W!!��!�1}%��`!�5]xcǍ BVKEM�̿a;(>!B_C%_4�wu&'@ SW1h&oJC{|{{0ۈg־C*G-c`Jh b|p~D,(mTP9?âŁ? �t�rL!!XjOvX0A1Z �1�TzRmv8hfXnmR`JSè:[_oﱖnFմ:z\ƍJK<躘xRk+쐳c$m@������JX�����Ls{v^aǐwWfOW5&#OGbz� ̔'q?0wv_8!syX9g3 9gannoJ�Q釫s�{ Oz3d&3pUz.d{ж0… ԯƀayT!O5"?i߁J�,><x \|�7ט°OҌ` K5p{pȤxӅ# xY_Wgo [4a�shWl>qr#Ɗ8B"$6%]<Ѿ;�x@pk-NJӼM?Sׁ+HQyc;xLiЉ~}�#zjo킄@hQR�bX�y pFk_`W"OL{ۇٔ"֠^Ct7ex]o�8;˯2BW`pтmu�����Gd2PI[/AX0ޟ0 Q~vsLzJ9E_){ \0倲_:,PA}=ì=u :8{F~"XgpUގ-*TŅD`t0iCPv)4K6L A% @·e2P iD pZ9^܆QDӏZ IjQUv'Џ/qx�DV��Ivl>zH%ԡ's`^8˘)�؃`r|r\q@�,n?0mw$sȵ #) +hZUEQe8>za>x>8x $/=`PPЂ4>a%A' B8P*VLsDQ.#GUHY⎚ P}Q�K":0`Hbr½ש2K88\ja ws�`9B3K�АVTmL'pUNeLF'fGøP kC:Eo:98Âp$MT#@5Z%V.y[ShlQ 0_J1�y3g~D( _R04 7Ia !~٧-͌3z�? &/`2Xn/�vV)? ^ wr=�M9c�b� fJF % @:\bPϸwpY {ayR�e� ɡ@o/�Ζ$Wg<`OT e3gzwo/R:NOkq08& 3lHCeXM�2!N 4o7v| I; &�tC (^d#h�C�lY0:@')x >HԖ_np9S#a*(%a�od KܬlR>K8+S� ~N# u< w8D`PK%lX@��!�3%��@ !�3kV#1EcX(vAMh@1F]JbB hhZ@jZD+ڠ�H�U3HID(h<PQ%UTaeXYa^F G.7aS 3cwh_V']gz!5oz}_Xcs3b\k's[CXZԍ$ڪH<}ڶ]|ִe3",Wy*$CwkYbYf 4(Ov;[e׷ g Y͵krɪ}Toas,ū5 (jt3U#ᚹ@OzsY*F[PОkINoH@��H�U3$I$I$ HLNTՐ`=ELMPĘIViVAF]tIVMXkؖ-)WVޭ=w,beUt-i6UqF2m)Wd;AkNA>6ū7-T̑(.-=bb)3kZֵjKkZֵkBKXks&aYkTFk)Jؔ]XBJkZE-y ǵ+|QEJi5R0B�)X^s|4~]5ԥlӭc��H�U3I$I$:;4A=DTMQA4UQ&9sLQ>x6jֵdFzLwAPUu 赍&5u4 g0#{(n�@RV5 DKXV[c<�뭯1]3Wf-KSkNOcnLnHBcޔC;jBl5 5�M AAH{%4vkZ5sR MGɫ"ekjMdD495H�U3HHI$ꚪ,Ӑ89TIYDMTU D6M^D) SK5T!ͬ(djsHW#fÌQ'Wn6kM]3\$n#sqnX-#ͳl'B&j4E vB+l9lVƆHn91$"NHg5kTF0N{_[61b)Uִ|ۮhd ؄<~*5alVۭr @=0/|ZDk(h䦪A@H�U3H,I$<EQ4UEMeUecl) XBƱD5.r*[zl0fBHIYR%uWiZ˫FPYUBJ C5^+`6P@o4*r0:6VQ5:^%lhIuA;1hEuNVT>d5%@ZsGj5+#v\5Da9J]^ oȜlC:LN 8A j21!kEЅ$5/6\WF Qִ��H�U3H$I$*DE%RE$Q%QeWUeVUL h A:ӜdKn]qBRb{j ][:[}-I[f|/eNhb#9#sM@3np]+X(;b (涵Er u9mpکSkTP;�З8#ŭ[JZ6%ǚTˌxB5-k+MrbވȶTaje6zz_f6r2)xW+5vmڤ��H�U3($I$HAIUY5VYuafev A稣Z\siȵJKǰjԔf[NsJy1uW*Xxk*e0"YpvQm%PKS=vmIsFF̚"[mXX!)<nDZ؊&ֱ"Аg|qY@6ѭkT ss�"nXF#Zո!9Vs--a}iHG6. ��!�39%��`!�5_'1 0^nsz %o&!J(cXbh&�hVp9g# Tf, >C!F#N� `&!Bgrry 6@ jN`[w<B&s6I/Pq]8MLE6|xv`;- l҇g˜>�Q@PpInzCz 8DJ>5ϙKXG&>_ �ܔC0 #L.� baNˮ(�C)p6!jBHHjYP$3hʗPpčAs,VNeMҠ�����3yrp#cO&Sb{^{ƿ;]V/u�@_vAHΪgILG& n{q7MxPix ޗT v:riH%X}}hOA߽/k/o-_/x�����#yrrl1Yݕ4M331Kwɡ 2U/w-rd”. UOo~~$)k%c؁@|@bRF79Cp#4t`ԖBt (jhXapp(Է"@T4)JNy}]xgMI}94$ݾN4zX. F׎0Rb22UsByKe�����Ӫ2j K^qR'{a0N. `$>h [ ¥N; [7$'J^bX Ď;70}}c"q{p`"iϗ>?)gN(2œ(pp(GzG ?�}NLۊ5tl7qk?Q;u*8LhHS�ބf]V @'H%.\{dZdĄ'(,T^/,NNp�ҡ9Ri({K�||�>04b%k<Gえ PH cb4v<>qǞx|r`<*  {ozPh{/KM>5q/cq/:,UUD{ֺy# fGs$ V[PAÇC?-`?2<]N2Rۇ}L~>:Id?768:P<f:<Ib,*9R廵,uXCP%-# .b';4vV͸S8,?yn?ΥdQ]RGq?GcBɇXՑ�p"h}iUFdh!u LaJ71o\z>* sZa!T.Bp*bJ&҃v4x!; 41!Hx6(n60!e84 3 p "OLB2:�x$\Y῱-\X7۔Zyr|u(]L8(E?Q&Iὀlt `JbtVGaE-R:RxDs=1&r%!8Hs NYp*@nVG^NA׺�x>@MC;dj8S"~}5dXQ ASc �̘�d"gnu9lE�BQo$s @@����_��BX�����׬Myc ]{@=�]^4G:Pb5y(\z^DӞ,sGj\,(:ŇO[:>eNX8=xmyDhl��!�3d%��`1�7�5Y`@T>aH? ;XWPTY˜‡D<^c Z]4=BkWuAk?;aNj>au{7g}� ~ �t&$x y@́,e W#glc3KY@DQA}�y8upu=}+Ey^cT�$ 'WK1=гH�͟9^`wq+ʉe(X27R4th 0S�;G�WNt,.Y>Fvx6O^Ǔa$ag�>@:K�����{MzI23y6.%'e=B]UǀBPY b0j9S &0zNm~FnjGNA {]$90}.FJN\'%T0a07lyWOd5E=Q KX�>I8"B_p#�AR*& {I,ec̨  ,TF43 AII~TD�4� xb@bL (bJGNN}򗸛̓�"@CGMz'/+l,[Jw]Rg`jF ;,*j,]LC3%ƑȑV8_F7�к >aɈ&gXbø C@P`0/dtݶoRU!!MAE7^Rm GB N%973$ohLBC:>6&c(F ^4X>�au;OP20v2/a0n‚˕VXjg]P:�8 LF�8A�L� @:�l�?ņnoVgSyp�=/@e;ma?gw[�`�ZRQ7#l;p �5 !R` 4( FY 37K2R_XBQ4t+WbDԗ;|{[#2^Dj -x}@ ԁ[p>XO;?#jpEt5t$xA=Pn #3W<ږ^`yFqY UULeL ?`UWsڢM<@F]~!0VN&0D3xH)&Wb` I +ܰv~(KI 4 ]-c;sZ& &�X΍cv|/^ɥC}%d%~(h Q1o F/lǿמشmzZKN n~y D PRg!'@T6J> In'$ nJ`<q|02Y)Fd$hbF'2E2<C1iCIe Vy̘ÙLS �ktR8!BctO(Cvu2z5@p.,#M( Fy\8 [μH�?:EHS p �cy01?QR>VE�WV6QhD$$|edV�����3e8;G4M^p S!m/8 {@[,oB3F~ЏZ]|à|FU-J{sW|`���_��#eqqG?￸:K gC_Ns`>i<HH{8NE@?�e�zR@ `iI1c8 a4fJRd xVY/ט)C1E;q B2y4 605K?]O/S95W3! ѳ~nBIP�14FU��!�3%��`1�7`�7"T2z SK"ճi{^{.X���W��' K{0he*6BG]U2es?#RƠ<X Pm�Pw':R0#GI֡3Õ H泘T-/a0fR4@Yj=ïFjOä0i=d,3Bw=J\x Kw OݷSJ~R9l0�"GlB4A$ ~xy(h}a8hj;}B#:NaQA1d,Q@"cJNыXNA}Vi�VlT&HMgqD ? [3 9<<Kpq#i]PPIzz>E�w Z:נڀotZ "yГ.zq>@ 55pQ`7&䧁8NÎXx ^ @Rup0cE>Ч=b�BΩη# br8t,,M*0 rx|A4 ?n0h2C�0c(U u|C)Zc? ,|TQ':2`?ŽGp�� 6$&8P".�8N>2Ƕ<愉u'@]UA �B(y<|>q z3$uh7Xb�gS,IX<yÞo(G9U1+e+9!vU0:J;bsPk:8Y >>SBI<5knf]�y@,Ν^�MQ<Fsa129LJ�v*` tM/L!%'Д#s.APTEaƎ?j nna&?=~xa+?Ǹs̝!!&!D�ĆsBg OXGE" $ѣR Zt͓0�;/Wh]CJNϏ۾ TbC\I(vN'K1cYͰCot@:T0q�w�J9o&q렔|yUQy 8; �#lO>YgQ>X,`̔찺Y3c͠N>@ ,�����BX�����*oW�6I}P y#6�?O.<�靄M8|N|>W^$ sOpY3mdyXMC<_dZ6_eG<̟1¹L%N0g;e +5+ט/fp<x"^7pO0ٖqgu|%iYaP-,~0(:PxSpf0P Э8d 1�7;@ `smy Mruܞ5_7�O, _@v8-GJw4eYn8(.'[(IeX,8LI=")`5\�=B>QXט( Ђ'9K#5Q9< *VW)0<٫4pZ+`E68yǪ1GUyjdQO @/�t98#(@ , `k F#B <@��� #������7 p`H9 @P d�" vj`r&B!@A{3E @w`I�Ѐ$}t@$$ s@�,A' * !U�.�lP h &3u#8u�0�;/*JLyQ> ۠p:*�"K奇D���!�3%��@ !�5o1еȌv5)BL).-<Si Զ�H�U3HDI(<HQICI5IdM5Y%SSǹlD!h^jjƵڦ0S0ʃ((rma %I:^̪2k@K5ho;1NRsdP듦?RbDg!Rшզ2⴨!^[ȅBSBwԛrֶs06}kٍ9'9{65F#BpASg6/ִ!55SmZRQIVkmjzw+^j}ۣwiH�U3i$I(ꮪ(=$E%RQ5UeQTO lRJֵ0n<9a'U,X-f-[N{ 4P~ݓ/sTPBxO:#$תZŹ+T(4I\w݈v ΖC!R]A^'EZfzM5N,}GF-8!}bk˦[FrYQɌ8`\n-Zuy%+R*VuֹME9jJ,mVVIe4Rn`Msa̓H�E3D(I$jLj <ӒA4ATM]5ad]5UU o`3VkZ7M\6ҺjHai2aj&ըiur5\3nIa*mB[sq?SޠDQFF'a! jf+u5 3$XZ&YeY#Xf?|Z7{aТ>ԪvpqbطZ3Nrj](E΃ ^5$8w,Yuӈ-Mל0X/)ZH�U3H$IDﮪ,=ESQXUeXUYZ~+0" 5V_Δ UcX׃)HUDY*>\k o:5OQ H4 nF6Us {Smȧ<W!*ZUZU(]+ؑZsF5BªN]dQ3/RwB'Gm'wk/ֶ{_<V!w%kT*Fk@�Em'z9Kkؕ3jU}(Zr2az6��H�U#i$I$DPMU5UYv]Y'~޺BʢEo8dhjHú Ⅲk(:dJڴJ8�jWY{-[Gksٰ+ ZJj^a,s.$`å$)2V6jܔԜl5)C:Bg’CA4SQX-nHFjHNs5-kejcMZ_;rV?hTH@$;#6=mѮpZse!fsЩIrmfͣp֩kR��H�T#HI$I$uE DO14H-E4AdEdWQei]MUit"vkj9bEaa[9 yUq5PB[b]B.SH_}DbdTǽM+([5 .J9Z),kFkZ)Ĵن($qk*.Zk\ AƗqZ 0JbǺ F:btRdOWgp�!HܼQDjf([m]~Q#-@H�e3HIDI$*=#<5$AI$ETM$Qrp^帋4" N;|OY'+\n\D6 jV-T @`u麯YQ4f q-U9$["J(09BlJ& rֵH6ٶWYYTfa%l53۰J -(l5i(#VnS8 �m%='BiLmI8$& ]F*ru��!�3ɀ%��`ϥ�~X p0fN` <%1?@̂x[H f�&(@14@@�PY1Obh&�0�0 ziH F9=+:(�\�E pGA$0TXy �0�)�p&,/)M�A׈$zYA/8P b�N_r& �`Wn$ h@B�Pa= @ct�D�6? $A$4�a :_H h�/U/& q1}IJ� t'w4R`ƷkҀḣl#K+a/~�ǘur . V�Aš8݇ XYYGfoW>PPnu;�";1% 1&!/3~"�� �J,:?Gi+(ƘH�^(rhPX`iht#|A7d$725H؇L1nxG4)M&!/e3䁎πvRIPZ@ot?f3 Kr?UPcZ6K9ix @kg_4!=�r0�ܥ_^RδNp*@& I/#!?z{',4P@vZCK/öm�cvҔOlpꒀ' ΜZqawtEv,1 -{hyhq9(YYGj`0�Ng%�(-t1%$/{��.C P ϟ A7=N�!M+;{PgN#>M)zM7I5 \iq ]E4�@yoUj7J36�  3lSw#DMC҂`ay@vSz07_4U,!�KR$*T`oNl4g&t--& Яdg|Bٛeb�rMos6-<Ԝ>LW?+RP HM�$ p vB !"i Koq ;x O%}9fb=Vkؼ=KZ|>�!�q5GƤ5yck�񻰶QW%]MHNQ5X|/Z@NbWR:p=A!00b;]Yi-KX `/zPfϛҥ;{(fPY/;<69:~MF] @3H_8;Ӿ:�a !�8&%:�# @{YCuubRt�V0�@/F?Ҁ.Qd}Rg ͛M6�q0 +l<:|ųd|'Y7߽O h`.>F0Q:7>gG?u+OFϓ֯2y)6<@rQOe;jzߜvDI|iEt9K`TqK ;OTZPԧ>`4H%[qa`H`iD (}r㟤}P흾?,EKᐂlW΄Do+d zGگ;�g ) ; C0frp#],iThj 1aW Fvk!@WZBS6c%Ns0 @aE6BKO/P2W : ! IaX_^1[#mՠ&2�`j�ry@N jYy�b�q_r# �&d ONk4Cy@ wKhA7w|aa;H7(��!�5Հ%��`!�7xg�0 7y%W^N_6Gf̀xU7TWۉ['nwWrhg7L3άp !�bםF;Ii?kЂZ Aٔo9(3 .rI=jJeT.+v�dp*bjɅ$.5vj;mC9W@14IɨQ27sI&jJ28Zy0 ;I7 X߹1$2]gyurQɁ :F ?`jPR~ߵy 9:#ħN'$0G |qc� u�Jy/8E%FҀ.To-(]=c4Rь^2n)9]0ģt/j~](aU?`.WeՓ̽l-90A@6BqB%#! : 7 )mU+fDtml[?ӀYVPL v&�60nG JRs~[ꘀhp ﹆l8}2�t&= &iǡű*7)_Ȕ>%!0Qn&UΪ:(š;6&rƒqoM +?N̥SO�`Y)QQAK;vP  ?�џНTRQ@5i f9 ϖwO&teaD{�RKg Ov{VXF-k2M!D~I�̰+]v۹¯"rihCos >Z>q7}eݶP}2XhoG??UɈ(PWe]Ҳ_oNnݠ!4ѱ Iuӹ+8ː{$nݟ90 #%݅z(Td̂Ҏo](40e=o3[r>W G﷽p})mo6X-j[l͹f N 6͗7 2C}ZCPL76ܰ<Ub͙Ʊ.0)~ ! l-0 @[Zg$dY !V(@�ذ33 Bo� ݛqMW7-?fn~ovb$W([/U>e''mqqu!%(ߡĺ¬}߇N 141Ưss:6F?!o*L6klN�İĖ0?gNnvv~>r`xb`T1@ ;5YD"rsO ͵@S_睇[ ߶s%Vqb)}q7zP@?�dMIFNow�$ dmg%Sӗ;luKpTqJl'S+#6Qxnl. +'A.Mt3Qf*Xoe( 2s#aIGԴ<zC2wY P e㹗]�;X=E༽T�rKa=ޗ}o3DfPJ.mPdž#ܪCCbzM} . ]Ǥ6'�d 4áꁄGLJv4M@Vr }K]`;?dwGUp~E`QJK*D4y̐yEC0������CyˊpF>'"A+EOx~f^mwSLr©q'n:X:ag( d<Eok/̽|{����_��3{yˊpϞn+D'c�sy<戃=Mq}0J;g3T5a@Bl.PFWqI-Hӄ=lnl��!�5;%��`1�7�7I<   pk/̽|{���W��w#nwWw.qqӬ @2b[W#ϣj5P0ԙ8@j[Uﮰ5շU8se/{nƥ5Yd dlFPf  D€^ED:1#'SŨ2"POǞ`>¼q�`W4y/@wܝ�3b+s+ `9Y[@PC�: K :<JAű~{x?/X#D IAWsmV�s FOB*Eu9��y�mW�yv��/fz��4>Vܜuau0YFG1f^Z?3՜S PdU�g[UAdAs~.u,�q+K.`*� �^ DS`D~Q>`ˆr&P0<ChJP|/*|ZiMψX@׈ d%΄j<Y�|<. j °j}j ({;υД%tST/2 xXGf6qQP>xh,T�qS0gn8@Q,.l A 01 ?)xN|Χ#,/<-Ph l!ĥz5rÅӇ'(YL6ܰ9}� '0@iI 0$%ݎǶQS�oFq+kW#TV VPhpO�*Tjױ�oKʬ.&#Ls������BX�����&DI*ji/WQD ; & #qu  L'F^@h:My^ apQ}z�xqn:vƒ?s,^07AFq߅vl\ǚ�W{p �> 8 0$kׄ,� #�M P 8F â0rHuyQO$t(�)dH<@^gm(,C<^` 9p\\%  PP^.l@&hx65V<@ט8s!K#FwG we0q cÎ4Y, x1ejAx;uVA 1^#C"N Xx\<�<#W3�ׂˆp ̉?㈶8Kˀ\� N`@1Agv<*�<di(Y+[ PT8]:V<<pŘp  [.'ëX#qw=\hVרDu EX,b^`c|�h2`lx @8xgb-_DJYiьa8R8++sD{ ��� &������#F�B� Q�c#1`0ǽ/J2Q%}yӥ"�jV �䣧?B0(:�IyXZS٩Hg{�>I e *x "~pII[~OVtr�4!'L&/5Ac(]5@_fp$) rI}z`'!xgQ`piQ׬P1'_(ݒ HHg|f^| '�HY;* GWuHe!;0�<Y @#ɩ}b� ��!�5f%��@ !�7 Ef}v\85c }ȤND;.r)��H�e3)"DI$*ꛢH<IA4MuMTQ4MgNƮRڦG]ݷUz8:7em 0lX5.¥\[TTdV0JPu5T’<iM{jPId$KJk~8Tb-<A _۠탕UmR\aջ,tH6bXl%N$*Ii Ē c5T1Q$aVniSWkD֩kSt%nWu#@H�d3M$$I$L< DUR]FYEVMVV+Uem䧈1e-S<f!*u+oWY/d@i=4qdjm?e<3 kP,/K)0Sr6oD"X:]z 쵬3֙dYȸmcl,^-cw&V *Nj]λcH4,ֻ*f,b)G=M]CmhX'eҕM}(Q),5Żfb  ~~U1[Zt�H�e2L$I$**H@Y%TY6iFV]VMG4!=g lL>"',j4Z,A-YƩ ,as\V:yo&Jש-B*ŕot1sZ9ͺ򊂇c[>Iq5kH8L0D;Uf*{ˎp%Njmag{kh=xֵxj,+fu T7)mw1)x\,٬%)n)"Ex9$6Pkմ��H�e3LI$IDKD=$QUT]VaUebBqXDu$-etU-ͷr%$uΒ棧Y^+ʹ,$a e0*VFܩPT&7o5c5SNReSXQSTz9&R%y[Vf` {[#v]ԫ,fbXE6;H]8_բeqYzl55L)f2SZe@g��H�e3(Q$I$𮺹G!HQQTAE]EUaU]UaVmgaR65I 5mk`2$$2G;]1m`03^'%`,Qsfo�÷:9)FV:8n@'1ЈW s`Ik:sZ9baR5Ra!~ʦu'S[͖pщMcUmq\NvTp: xw .c׵{45p*_!AG,$#H1sLʛ.)hb0k6J朐H�e3I$I$ AREDRI$MTYEQ5UQ6QQ N.5l:amIEல5ife~ș^ y!0m#U|!<=�)skwl"%V2Y;ȩxo5-xH8:Ȁ)mZ,nMњZi$z=u)9nkś:/){J$On�Z5ճc9"x iZNʱ1 ͹rT4��H�f3h$I$ꮪ QADU%M4aeUu\,5 J0$3om9ٟXR$9prB֎)C:%.@nnbNpbAhݯ/qgRH፳1mߌ!- L*)SP]d(hrȍNB5kZ�"FB3ׅJU[+ی4yzZ-%m]guڮkDֽY͑dD廀uk��!�5%��`~)#>ؼzМ/TM,!$/֔sR=H�F�bj{(,Xp:od 8*X �w`3@!3#|-Ub.VSxbE@Q9z 4=̟̍F_6C�f�(K%+:@{`:`  M�]*XG GAǩ[J:ri  b wz�}r&r/`C;0Fl�nMA�<(zB�wҼMBOUΔ䎲 .G_׼ɠ; ec\C%]s�4&k/ɒC2R[n}V^j~B�@z%Qc�Ra@Sm1�31((`rU5I0ѐ�t8NcGK&0҈y8b:풇@o6`Mrw¬$f7nm3@ru)Doy?;Дvk^ e97RvA1LM/[~iϵz�LA]'w8@JG<{ivuEPPR}֖,q�ݒ oJC90 s�EԞP # 1ZQҔ ۠uɤ4PKalU@!KCAaQn@vYe ai׌�@d_JPy=bLHf|i0L10ݳa9̤d-ț@HjVٻP(Xh y0v= : gO�ìd Rp :7J�e=��@[/+l7!p%roM%if~ P MImݺ6u&LFAcч=扠`Hf:{w !RzS@?nf (l& S؃YiCҜ!'p�hCaǺ]XXὀxN]^V"z1ElW&bPU �0E-sIڧ 8^JIry<0 g| o)x!]d}S5(1@T3Xb, Ahn+:0L�jS ?͗}4|4 Cn^0[W u߁?uZGH NF6Bsׯ�:9 (6G}q8gwk%u)Rz``HFs �=H!YG14+ނj�ؘA dp^8@'?%C��`Bd~/|WپEr֭ooFІKC:�8k۲}h`܆_G' TqI<J}γd!n+(c|.�rnsQoҺbfA;䗰P^ 7J!!)i t+kOs .( %u.R~Ƌ^`! P 7YX1%Y~>!vH1d&vqhro2pa SumϾ�夠 �2i0 :q zC_*00Rc� I)߯o �tM偔Sn7Z5;\߶Xha+#} BWk�:͒pbNu @0H$Czݔɣ-g /w>܀^ Q{@Ο39po":7@!|4WxWN`o+0|3={чY@Q$;]E@&2C_w'�hLO/@R1HIЄvw߾1 Srii-+3��!�5 %��`1�9KW�9 %[$˪EЕf>a0ײ͹{L&%MǷ՜ n05?y4]ķqK$ $4~$Rp]$ ;$>ׯ~8ic~RrP;{mz@0 IJ�[bS{y` HEst;ש-%?Υg{/!m:mNU&'lU{ҩB7ll]UbjR~J 6؟sBvچaϗkx`-V׽v 9aJ{fa~.S :ܴ<*  c9P&Su~K�c ^:ڒhz��~ݹ0c,a4Nnj˱8hSu@A{6^tb.2A Fgsw>/�Z) ) 9<>ʈd€bL-|s0 {T R{:r�0@䙵K!`K(ۛqRf�~А� ԥ,嶩N|t�N)_a[rν� @vcnj{W˓T겓K+%8?,hU%w/7];\rvBHUJfvW|X, � $gOgêӳ`Fw NlСa\N'S+/w`u f} 7Ā:|~"Ԡ8A,3nW5b 6tpG4wLZ0j-xtuxtB>WX\:,|j@�@# ` Ўzp�ak�h;r/+0cI'� /+HC`2o+$p T�0&J@ 10@cC@# RC;C84@ l:w|kHm'�dm_b>tߪ@I D W v>y8Y.&s|?/?I67OH�WHþbAz$bY7JwGW fx������"{5L8><h`k4?vfnu pX]s0(Y(=f�?Vl|nCQht4zW))fi |?P40\&�YBV`8�#Պ\CV4VsN5tt@Hu 1C1kk j 5$੄tռ�=} P,㈔&z!GH 2 HM R10WK1;dl5(� T OF{4oPE± 4e�ɉ1)\M!hZpoc[�l#sBP61)(!# ABd+@>BgӜ$Uk? PZ6EhKZ:(X 3�V`ӆ2/2c�Y;S=4X!2SK-ڈ.ݝ8NZ^>BRڈAT ͞aG:M֨N>X~#`b `5֯DZ.q|.L7'3٩ DZ(p. >&`j ga'UnD.@Rj�ThQsn9G�Pȫ#g����_��BX������ ა�-tv'--[%(Flܾ/Єsh\yϜ}y1!Hw d!qGWa$q}%P/H@1[,bT%:. %?8aFJ`HFbZtw()Ĭ/7"J/\ !K,bCtO\7^��!�5%��`1�9�9KYc0K֑Ysㆌp倌@KJAdbYo5 lK壠/%8d4kl%AB0-T,XG0Y)> wWvtי;�G؃|I;2 o?K/:gc۩\b,lN~@v=O|Np a۪ 7u=>X-j=$9ݢ'r¾ W`?qҫ̌n(ςOgv-ΌzqS#oaB7Fҁf5c'Nl;d$$s#d'B`%0B6Ok/ԇVN 4{x}(9=MB`t8{v�,嚦'X}z' (8ߨ>o1XQc[uvըq0{ZY+-9NcubG5[O<nj +1X!ڽVXU܏0= VXkZ[0Try^`<ws/cQQ9~_S9'ְB?0W5ynY(Lx=2@BY�;"_ݲ @3lG�ڛ,b-# Y⇮9Bۓ0�pqcq>o0Y]a3 c ;BEҏ0z�},f@<űF9>mD)M,W>>aU=�u\x<8 2ApqCtm|s2xY: ��)w&.'@?P51ѱWRk{'`p ̄Jh.\"OWD{H0,< #}"']D3P�F"�����2ُ[MˑhU2'@2@0;�ބrׅ_"͚�D3-bƙ-Z&uz~lpz?kKd34P{q@2@ҋu?8UʻP75,^bNub >�wЙ9ï4Z-h{~$pb8g&ad[` �U:ӛ ,\ ;z`!`2G."jrЌwigG[dTX1ГSnr_?r%N= й˔݃7> Za) @ & <fǑ>3o�g`NA^7WS#h$ h01e?V؟@5P/-D߳ ?&o]ycJlMH@k|n>!vnz$jq B�rHZ�4!MزhB6Yj4B M2XP@PP~D}c=rh4:zAa!8ƀ<QIk�\خ/~ Ci0=3 @ 3SΓVIj ~X-�]u?@BL-Lᅆ)P(QDߑbyaDRG`M*ݶN;.i3v󤘀N{o))+=k'zyf8]ɅvNn-͇;Au U ~Ѵ|R@lwPO gC N}* z<u_6Ȃg^%:v2:mH``X!c e8, @`2Q:JhIDJ ,vIBC=l<D:n}CJ*2#/+_Y>V'Т̢UYD̮3 �����C{jdFjN~:Lu³g)iN%ۚO; D.M=B.̕{hר'��!�7!%��@ !�7u!mmialhvn@H�U3hQHI$*J<QdQ$I%]Vaeif> tqmGWV-5Nڥb510W$ԦўWRv0T VJ,"ɠdpǎIH5TVĥH=(Kn!l"y͠ua QINӄ(J7Mʕ^ְH<pkHE c I9N"]kHGW)M6F۶)ZpC %5KkYi� <ԃ+®)VבCd "ke" {dJ MRJBH�U3I)"I$DM5RQ5U6W]a]]>P3Y689U5>*/`G$BCP6(6i3M-hóO(GiQB4D|,K sF.0:HoU֛.ѻU[s/4b]NtsWxA!҅Cuʖ%(` v-Sٵm݄9n5j=7a &ũ\5Mi:>NWUؽrjZuJ`"˚7 3*i׮(Kę~kw[H�U3i"DI$@IEYeY5YYaYM6ԙ9Hd!,7e]&(Y{XmST,ʞՎQt&ǩpi`8C*mdEm295Uԋk<}7:Vd6n^\{^d"1klWBSZecwXƓu:t*-* #ko6T^s筊BЩeMK;CΨ]|`֭0% T0ma (��H�U3h$I$rI<QIA3ESPԑ=T=$Q6U4,4_]5kZֵk[6Roz4ZֵZ5Y2`ls: cA2E)b+0kM ~I[eqJi#[g4+a�mrkI1c=z(EWcZvʒU t !B͝FPBXTVP@n[kMjTRBJ̢u.jaggY59bn"XiPZMX뵅Y<>-\H�U3HJ$$J@EODAEDUTItNjyu|%akfjhDb` ɿ*UUfdWJx0\֪dWŻ5)j)M+Tֲid..fm5[Rʴg #JSұ!V8; jZbkKҥ1#Z vd[ ri$zmŝz;YhEܿ֡m kc6ʬi!ʘƶ ٿ];`NVFs5\��H�U3hR%I$1PIDEDA4QtQTQeWQ׌j-uUgPFJqKs괠!.:-PIuo(=6p5qlM 3*̵U.7h%K-aP\M;@j"-J_b/b`n#V5YF)kZ'a#^c�! miusrC\#װ-jf1 j"Ym&UKV6]IFjpkɥ [ǹۮug;ش@H�U3h$IDAS=$U$M%SQ5UFUYukaF86kDT&nWiv]BjͨD l ֞V)ILM.%vKCs{8RF1AcsZŐ̦sJ捈6"Y%V.ےD5M\l$*]U+o{Z4dDs}Fkb9աJ5G,8sk͇1��!�7>/%��`!�9z7bu؏j]Fz_uД:~f<DSáʹU˙yq1YBS&@H4|b7:[J* >yKR2-jUarj[^���_��C{jdFjN~:Ku³g)iN%ۚO; D.M=B.̕{hר'buGkPr35`v#1%V ?nm28aSge&7k?"6Jb?D=:VKiEAG:{Z&R%\.S1"]-Ww>K^���W��"_ctŒ>e^Wqi#,(ے~/E2<èKx-" "Wj`X `fYO̞(]&&M &gÀdCA؝`DMdaH Hinf>Ctv3OW�;a0I&lM@tz@ven5o!w.:4N}v.|W5$Mȴ%#uW $�j\�- p*+H_sTҳ[cXī%i٠*bv0Ԗ'8ga9b%tSw8{wɹ-�O& IIB>[$?ayvmX}%CFG킈,�L|,l MWx1̲t:~u{>_>}c'^3z 'g'@:I4 W%tfI ~DQ6VL$s|^X'EDЃ b`̂rN#s} Kb_~Gp*P Yc1l͏$gi'r.'!-1<TRPg&0@d ug.euz<yI{=�Iʜk$'A83pukYM S �a`6!|<!Y5{QhDp]DwJ>n!N&%,0'FtH62KM:Ar# i o#,&aAϡ'v5.eRF\qlSp% ;لP CGh>a]̱Fx> ghw1jElg:@CVُ^aRJ[yȤsü <Au ?1I_q]_qm6<Si$|cn%Q+l.ۥ3z\Dh^V6j&KCx1"\gqmȜ<PۚI`I=%FR轡bwx�����ZX����� g 8.c'K[ٿ:8c0;:8ir͕͗₹Q^cr F퇬JNA8õ_^` 1J\ENWy=cGKWI-:"qN>7יHb7~Yj5{\v7߅A./9̗s~33v^ SrFxFK�olPAAFߙ61B%qEy'8p|9h{ ]֫Q=C` x:>   ;FExD^bTh8)ZPBaܱ >[+ס{wQ狳/ ]:X*^`E6~hF=ƇeIC̯B>,@Yfo>Xq)jF'h8\N"l#iPvpu(⹂Gt8k 2pP5@n�(>l/�s;@vW,,Y2XX,.ȓ6y1:QûC*>��!�7i;%��`1�;G�9 08BCV_EY\F=z1Lۑyʳ,�aUG@8^OtAQ@XKP0<>:Z0 ޾`vtVD׸|Z'0CWs:�q�):ZePz"-x9~<-Us4$@w<uTӵz@X\Dg[`#^jn͆.ixf�����*2[I~}A7˰ 8"~pI,P= _HjBߊ:&#J!'M,o9Ni_�vD?<XHAҟh7�$z�)MBQ{:;~c}SFFy]% 4%I�\RJ) Q} [\gj &'ddl+k ]M}06(%(` );)L*L>GIOqB CHe 7q(>6%PJ^$ ~l@{V;:hC-#7~w*!Jy}jO?3uZ>Q�á,y0�PLIk2yPC�;�;�hCt-o{İRM a=c H@d;̐_[B:<q'L45џp $E(7|SH"S-9; J A~+ub/ d2�<>q ZS>4op`CH9NL!|*r%r2MSHt_G|,%M}¬k b<aܞi;?WffCG J9۰lOqO<Y׵]-dqq=9zQO<GO`Cʈ[�B,Q&P=). QE)H$|{$O$a6a {nHm(\Ob $j;< V}SꐂL.CyڈQ}p;X} OcfJr!?fH%ڝh;Ҋ#y"k3\e26K0-l|^,e(u~0Hy1|a@Kf*zd]H@_ uj^>g'$ ˮb�fJ ׈,v:F3w}pBigyYYyg"@�����C~gߑq .SĶ_%3ǻ! }8&cw\K> )!3 J(8ۤT^CI`%{'vi?'.u ^gZKc<{#Am(4h-۩bYh($t9&I,0tGIfƑ(KR GuM>.Ǵ&Sb!ݐ=g*.p(/ g. uًB*2!Q<ϑscɼw�����K~gߑq .S_%ǻ! ʲȹ2σCQ1_&qH^bwavE9:u ^jq1KƌݸF善,PClrބ1|E%yA wPal{Bm6"C{.-Q2h99zX"M`])!r"6<ʋwx�����*{LNDGozptDygNtv]Ȑ8YaQP:O"5GjfH0㨌xS� ї8:0;ZONJ:db�}�@X T%b*#UNE;@1@a\V��!�7G%��`!�;5�d*'~Fd-�.rwP$欎-DHV/[~߯kXw</B]q͜u Cরu/\.#|D ƃ# a1d�4קu0ۖd?jOnEs?j[N0�9Gx/V&jDcf TK0ӺyLGZq= IJRF)!_`=Ǡ}x%$2r�rXb7oXk|\LJ*n-b-.j"mhŎ2_Y5V�?7dzDTP -^C)&zPBBp߱yIہ| 91i!!;}/XgXAKx$;9&Dw 4Dm7F{Sc#}>W~m>88v&+\0m _og#|ݏo׎aT,yDWam5ѹy|ꀍt%XT͠g1KNYI =Ug:o1g8*spfI͐*Ж۾؟߶q2  hK%53;ևq���_��JX����� i`Hg�$;0Ai䤀,@ѷaEE1<%(G73Ӹ|30@ ^bK+N߄Gc~g+B$kPrNQXݝgp$꿒⒠k!s<P| ݲCxVu_lVj,v{̖a;b,||)$J]Cyx!NpuS8 l햣%忞qg;.}63?%'2L.vlDz4=;9F3j% mbB+n<WKՎ�ڼDď7 ^-Ӕi1uW|€3qygqTVX=f9¾ W7 vCJ1naK%эw-;z1Q瘺DZaG^aㄟ6cO {3ct"uy85cD\J[4;ט8Wdu~D;W ^bsV=9]xIÏ8 V=AJa~-ߊw2|Er疣O?}[9G34TXto@U aƉj'FD;P❡j ;t"j�iP~Yw*1<]ne.<GXGa+9JY8q#uA{l<)̂3W`W"P z78+ApPuz2s@jf�= D å@_{A@v#g>UXC(adc]yJYƮBPLU|DZBaB# �m�=WQ-'ةśv.�Jj|ERz q<`qf"q#�Ϣ y#pƪQBU悔y2 52><Gˈ @iA4>ZfiG&s,X::j#MI˯:8*ySDp?Dx�ڿY`4#k��� .������+B�dbxax� ѹ ,YH-(?bĞXL& /#9x TSy�A�`)< �0�`Y 5< �_M !rQe�0&X7}S5?mcaHd ASĐ/j~d!xu(Q0��!�7U%��@ !�91@ֱqMskX��H�U3hQ%ID E#ISU%ITIuXYVazɎ`gZ6ˇ)Q̦J GP t<3a1ȃJЁz=S^a|kPFDSFl!SZJr#Xc[m`Jcufkg - kw+VhTX-8" -Gzmj_z6e1˘mKZ0Ӵֈjڰᖱ*!F9]HֱJ&6UQu&7 ~F\56+cvPH�E3HI$ID,UITUM%Ie]TUYVWQuUWXQSbGjh6ktw62fApHV 4NjʫTa1m5ͲƱ/AcjPFjB[&1.¬ͤk[k5ZB"ڴQuY-mg 8*Xlr|Ӡck<)!k'9fO#~ PU#-^VqZaL+䵜ɵ/ n1%&N nVE|9mÜsP<��H�E3IDI(?0AQIQ5Y5TY%TMDQvv2hRǺYq%CЉ:*uyցjIKK׵l *޵u 1JkE2 RkYF̴SK5#I |4fʹc'hjTnZiJp-T3IԥYm:@M+5,\KL9珘ʚaps'gMrc6l֍"R&a]5!31кS5kuH�U3i"IHI$j @I$M%IV]E]ERUV "UzeL+ֱꉔY`1s=RֆUu\nN&\҃6iEb1M8khjc\CPWI Z: 2 L'YJ meֲCD`*hkXhԭB!#*Ecc;Km9QFh#Zּ0өt;ji[&f-W5fĝi.4d`kMʈMaBWH�U3M"Q$I$ j@P9UQ#MTUE]d]5RYK,3kQykVb9.&A 5*RFįu%BѡH-bu8kV+$,Z1D1Mm֍J{81kb"\ꐏkִh.$7ƶ`Mj-y7 TOҳfk>lJrUPUa>PlRkGVk[YkZ-PBmhե+bTcȍ-U+%k*#٭nM& Fdpx)5H�U3I"R$ID뫪*$DEERME]Uif]fW5.T-J%ӱ*QĒ[ 6FJ"7T \]]| ڵ\V }UD"ӴC5h9n%nͪKG#Nta6騒 -k^ *Lh9!$"䆭N|%7ڜ}Tkp,!iM2EVUMԦ jDN6{Eǧ-\G ~Ask6$H,ֽkaMH�U3IQ$I(5Q=TQe]VaavHé 1Ĕ JjN$ N:Ki[Xƽa{q:IdAa;Z3Wq)-sa>QA6m! k Z4(s` zP֑C^eHgUMrBkk)k_$hk㜪٭Rjp4* k5mVkV+n\u[eZETU]OBV3ZF8ZY{l ��!�7a%��`''۟!<uP.^0N|_�$ �Rq@:&$cP㞴0E蚟.%$}Op?rGnN;r@tB @C는`Bz HAoH gbpL^yj{2�Jvu'u9̰ 9@/j=bO 3̼x`dsckT0)\2�1{xUSIAd7;Ѷ(X:+ ]�N�CK(h�I70־`5�=-vԔsPPb> "_r$ pX$4ƫ_@hr C78ӂ؆:>C&X!Y7*?C&3﹝zp( ~!104рvPf!' gD^ n&&S8�79#>29^PP7%8ng�aAzs6F1k볤:a J?ZI6gJ¯PjP;~}oTdmM8*vq# 1!nA #f^Z;X1+Ύ;; ݯV�%LHϰf ξOɅDK`*ZCL0W�hnؖ(� |k+~�4i {[n=K7';VL %|πݐ59888P#@Rw &@PeA�h+d13e*X�V`+ƁN}:XMZ�$� 7~;%@u#g|'Xof7\ #Cu+!θᥠ5r,;\3�̘�czeGK9=p;`'�蚍w�hyDMK@fPH&#�ąɥ|Z7rCOy F/uSm~l He dd;�~MI5, )mx�MͻwK);-LjP4(߆)=|*.bf:e`` fٺrCP_ %FOmFGd/4ӲPsCaen{BF7,+FB3z\7^QYEg< {ɤե?_e[g~2mۣ \1a(gt#Ɣ�ИV`*RJONoKÛU; !t}ֵ�Y垮}ua漝I ŤR:<V[?nsW|XfZ )G,u%' }IQ9�,�- d?7�tґ *w^[ym%�e/ d0a @*MQ_AZ27p@`��$Xn䲹,>BS}HE,쑪vy` 4I/_&�0�x>�b$ (`bܓUq0ﮮ=bܐɸ c{6aڬ͊gieSD 0/rxO1�[Y rw3+ Y0�%x̀D?LbX@NW, b0X:4&!bVS(*$cm{?"_3![@\VVכ�p E$91K@emLkt3l.[ja\*PR{l�/XbBT1&y|{=6 #̎J-#�Ԣcq=W<wĴr>mW7,%5�&! KpF}i5$2Z{45Jſ+ !K喞��!�9m%��`!�;|StM!RM}zYRS�4Y 1tМ/=�hV�r /Rxkڂh PJ|XfKtoܗw6wDKH�3 , mO&HۆQTZ!Zw)lyEC!r +ǡƞj�97ln~ d;$g뜦H7u=I Rh @4 %!%۪�hL$czy۝ �RIJT'v؋Q1 !%M�/!BA0|1n.x@ndhfQ/},S_ Cv4B1"bP{({CJJ_X� X#դ4Ev6IAbRHf^Lo 0% !4$3XooWEM!~`@�k@W !VV:A�0T6NGj�6I0%g30(X /7Ga"(WGo;u�;�tQfrQіt6?N5ԞAv=j�, 4..bAhNνv�<HE@BJB+쫋XC( $'ORWۉV�$L%faWB El;Zvt�` @(f&�fg%WW h(1/f{ɳȭg轠;�f߯`K%%E {\|E �i)-) WG@b HgO",hJR@aɁe7M#M:_F΍tbq)ƾ @0][~��39du}ҁG'^կ'(d8JB�R� Nlƕ`unr't�ȤG?q| B/[sHv_w=�;-BJXk@ T5/|ۉ <H�Ԙrz;dv~qĘė)9'Hc�u1mh&@gɿaCfVºQS]3&�d. Kvf~l0s-ͮqYsg\UTY`IDZ'�jp*9@ 5�0 VBv-@&&~KtCRuE _8$}2(5$r'B-,`:�GݛJ^h`o IB]` E�faQ0WO $=4BRJgt%J=Np� R5)$Z6'`@*�|JH -V.BR=}`A"� !1'0�~�HS4 ̢yjHߨ` '��A$�ɾ[ P w@KCE��> �<hX �d<440P6�.�h:�(2 &� /=H% v �Șpм@%kI6;.rh!n\Ch~0 T$p *� �4&Ł_0~%^b-I-#p``&�ACVfJ�ip)!1Qz@p PCNZ2swrWoJ ]rPVN #~K������#{]tM�<#:覿|"]L1􁿢7צ9"DSEk<5nx %FƑӝeY5B.x).XOw 6L:@V(ͺvsvKaVQƏg-vg) FۿV 1OO2ӑg@޲7kHnZ:"no~;1a-d[Eg1uٿZ*Hz&kߊux����!�9@y%��`1�;7�;��_��#{tM*"y7"š�k=�C?:"7�խ"K 5ZՏ<0FxezTV�5u{T2aֽzФbI=.HQí(V�f9Tooљ[Gl9.�CGG< I|~̲P[eYk7ؐ!f=e E�ۿVa(q;\fDduiȳ LpNoY`٤pjpmXw Ň�?}[i8p=Y][7Ux,L:):׿���W��)v֖~a.[wStq/%xcP1[s?gl;II%WR3#O|e/}wi� @Sfw's^aGO1pap>?aax?ZS=*ߜd&9ϤC9Τi'xa͓c@?E8|{;. i.$ӝ,`>y86rO+Xو|B#Y9f3~g6[! r@˦&e #W{Ѝr>0Yv8츲q 8w EבG*# ñǻylxe`_ҀȔpqP}P]Zs\&WFDUp �KX ]GJX4<>(03Hs9뒌73-.`I(:5<qa0�b ~z^qc)GA|"%?:JMG"Gx* M~h+<y=(jj O# @l8{3"a?: <,I$tM!M+h8\RR ܟCrm0XCJC%X I)հq;^`GP8d]%( RBBxYvz" !*s*D> D…Gx#><<�+%<h#Pﹲ8'e"j\L,OZ!!k%xpY4F_tDOp × _@`$wQuXaEލFg "ǀ �9'�+_fmt/g[ dI(;[3O@uxƘhv'=uuuPᆈL HD7W0T-tUADETݲG:鱃ŇǶ'ljWD6sBH56tX ,!lDX*u#F.~#tDvgCŀ| (:]v@Q_%&@bm?8R$NP|r�PKs/:Z6������:X����� .x?ti[S8qV<C)d?V|n"ɳ, r(t{=R=ksm8-far>^ӄg]= vg7;c8]lD𢡊`uyq -Dzo?<76sgl(rَcs{DD`,Ey܀xNyyV cO~=gFaiW7cku:ט2K tgI1ϳ?󻜥#NF9 {r O1(ZF%Y80@m&|G;= K:C0 RX3 Hxy9oeݚ҄FŨI%(|Ị#N!;pvs~"ɿ+c80 ~2_93>g g'c�ǓiBbzNh6(+y��!�9k%��@ !�;3բ:9לlD�H�e#HI$I$?$e=9cESQOeEeDUMvRUIMsMvIͥ[C J]ǡK53=,seCC2NZ V +X+tc%Zu#-P*<EխcbZֵpSk1U<Ea[9K܏OՅM‰͒s7HD°;O0TR:m!h)!Zضj!!(c0JԚ5,ƶs!ٙr-jiF`[m4s4��H�V3I"Q$I$ꒊ<MQI4PMtUuUUUYuYf ܆O hI{ VEl=ZС ED <7~/ETkMM#XR%i*XJOD驶�Vaw! EW+S[Ljv-k.ƝPbR\O;X?,?HCkƭdءFG4UHqڦ#Zi Cls>MYSAvk(IRi=jWQEotO+W-mv5kḽRޥ9lsbV4$kFڭH�V3I"J$I$ꪮJ%DQI%RIDUuVMVat ܯgT2lVnu$Ε:@z']MJ×rL٣`bPhti$| UVDG! (e_ת6XSdIsUYTf DGV3}"YkF8SV- q"n ŘH1b6L,ȜZ5#pʴ\{8<*>V]5hSs]+KFnfե @ZfϚ9l״��H�U3MDI$ )9$SMU$UYE^,Aκ4WL QjVݹҘܬ()K* i4^+)A[;ۛO9ʅdƿnp! V-]MTk$kT7^"mv!6 Tg0 5a[0gi0ЂZ/Qz!'")́v*ѓZ:s3W5MA4hrՓh)`QtԼ'iJ6`w=r<!6H�U3MIHI$ʪ@Q5XU&]EMuYWUa7ge3Z|՗gU8iY6dtf7$BrXۧ5Kn{d,FĶn6Kt-D"ą*v;͕1"L+B[&E"A[fZ氧c[7E!]!ShZjb|4*kn ZmS&fWH iϪ j^. z(F1ʭĬcE:5Ξ%&aFr!k6H�U3I2E"I$z8I]%M6aiaR7ٕSpl֍Ԕq6r<>k<idN#V!d* `đSN7阧Iɹ-;qSRdQi_"Bùj@m[B#eM$Cu*#~֗YQkIm:kNV k8ׁe2~iH˫t!hmV*[킩D[estLVZW[zFS]IqZ0Dʄٍj&*>c;!pVe�H�U3I"IHI$:r)=E$QUYV]YeZ]^1Δ/k>jklejA״ژ ϙ89;`3N$"Salƍ@(P1`k~%(VյIk;I O6j!`_Y)vs6|mDLxcHժscZ-ψ_W{T!P<kZ1ns@qWK%sJRĵ3e4Ejv@m<'HjєeTF'9rܲ#J9YR��!�9%��`1�=7�;9k€xyvGyV8K0F&[x۲L9n㻜gn1KYݳX^c 2yJÌ'cÿQcr,a`x/^g5`4w8~?dV:ώ<?cXƯ)Avf+Q~u s˯0g϶v<RQM9gnd?;r~q'̳`yxZט< <m/^"nR՜R"ڼ,R(rΘ{f*[Gq@jVaW-Cu 0xSq<F b!g9fI:pDž+ds`ak.PU4 pǬC?נhzP8"، y5Aʛ #S4F2sU +N܃(nY£D1g|aqD G>/.�6ā fƋz�9�qƚ>#ۅ"z�9@3: `�����|axy5 yeGDÀ8'5�^_?`<` geo76'0;|4AJPtK ň'˶УFήd7w]h@ Jy6Dkv5ya^gd.g`sLJXǿ8[cs1{�bHtE@ ^OXE p�È?Q""ГE׏ a�8%Ltp҃LJH%p1XâQ7FZ4 ZT5)8FP$}Ihh]#I-`T,:q׊<yTaE!B�}50zQJ \h{P`aIWS:@> $N@X<<R b%q;&`ECDPՌRXi>f(tC,Z0 '~ /a$& w8/N7&"SW/(4�{dx8vwDO^^Hd0ToFXRr Wg;YQEH@&b8gbeVE̺"xЎ _ %?N|0vYOgmQ4ބH3>}cQ]q GE^ מX"?1WQ=q*SsDK=*!Qsv%"I$cXߗ}Y@TEXyxiRڗ3wYp NeW0/IL(#N~n.] 9$'«><| i7qDkTE߸E$Kf�����3kB:?_7�y=o4nbG ¨GV f${;e7UèWGAR`rB#i[?H|0^;muN7iCvHj>-+ըuD֖jܓzuY7:֖+Z|s�����+ϡyH_<Xu�G+qyu ®GV o>ͮTFwVO?]_bHo QI&$|@*b?Лi[?H|0^;mDuN7u}IH1h6菽vKwJ?ujd|&굥$ߴ]VEι&֟*�����KƑο?8YҎ6v S~p8WlY[_\5g/Œ\ i& BA0/8Yft",:Ʌ}^$'9wFz[C��!�9%��`!�=N(#s0#*c,I)NOIgQB=f{�*`S/bv(=2W%&$9>U]#j H,xh~JZ?²�ܲ0`GXkN!P oo㭥:g3Z2EsjY&KJ"WvVu|0 8.Q?Y`b7q;;gg(;N6�ESCÞTm R$bb!@438K,p>:t ̸Affge!fNŒ?>_JѲŀH!`^8 s'ҐraI-<05l0A b@- rB Gdįj|3 x$QA%YfV(Wnc4J(2qs|8/ >xne iB^bܟX18| #Fr =:/x5O(}*6c�kXb|)~ecEfy#A&o(3D,M)(:GmaaJ=-E`?դPӐQgQ` h& Pvl"R;;k ҋA,.c1K|T%艜:ʹ^huvD*adasc^'У*ԣJ;G�5(4 )<Z>;* F!q01%c=\@-@~~{ ج5`&u$I Wvwt+us,>nj!r1 >�p4hƒ9>m=7lB'.)m/ID@k@v(ׄf~c#�?"W}Ho(YJ7xg<Su`�1a !2Q:x7 Y}M׻QRh�_[2~?,^ç"{Z]m8x] J˜IRz],<|htl޺&e{Z C8t+A#\|daVt˲\hQ<2P���_��BX����� %)ln1 cdOpn'יpDZ`8 }wǞNaƽ;0^aKnm GQ6=y㿣XݝJ)v''W $;1A?Oza$Ay 3$O$!q!8pB(?$nulA''JIf+؜9.Ots,:RpBǫ p~Ơbxъ^ y&qϡ 3-ȇ;dOn!|wU8="}yd阍s#;$eh�@21Nq 0GWběYdb Ջ[s?0+}^d b<uyΰ|Qp|Yfyqs׃ίP0܈7ٖŊ1ͅ;=O.*9l~1Ǯay<6؜o8$W3ƨ/1�~ =-BGlyi*=Ĩ?>??PͲ۾la#}_0snZՇb=j`^crX{v* }PXϕ:+lYuP�R29 "OW!P HRl @/>x. Sט"ew~dv;>9*zj(�2`/pxSFXgΡn@8 g#ÌרI|<H`PtAO||wD@Y^bcٌ(8j>#ZX {8ΰg;r rtq ��!�9쭀%��`1�='�=}+Scb|P AaP&>M'�tp"}xB™P}C}�m1\p #}$~Z�����`kV#z:x),] cM [1ՄuuŤ[KQGb<R%Bׅ… P;s%uWr4,^| ju8`w^p|4Yƀ'+:Fx$?a<Ak:O9#Z0<v(i*:*%�!naT36/4K) TMY,1$< ˢ*4%X.Xz\(!# V 6eTQٔ|K\d5#}!9 5G�NP*@j�8 З/8tGI4>үВ(I5u )@?++,?OoJ< T 7-iQ<u1zpAEtd0S@P~5?RTX~@:- T a p.04Dk4Nh:gOB^HP~+6a; X&6wסS0 <HuC=؏T�s /H8>ym 0zapK"&{w̬h^4V3EG#W>1! EM(lI 8p&פਯFdӻHb4Q XG8<Yh&?O81d $A-D0+QEd9v`�QͯDvFn=-؟x�  ľi2[g}mf"m IfC &3\^}c/ Zfq]LB $k0A0MGduҀRĥ/e�hɁl?VW GI@r>1aT�t/9îy0 %<GIވ!<ʀL_!{MMR 9{Xd#7CYqX43w\hgzͺ}PDiV}_sgiѵmf(C&"bR=?05p`BQ3rH>BA48;{Wm@Tbdkr$j ,f7v5(Ģk� s?u|(: ߝ'rFJō(1'XRrvi($v! RWN%4>Ji%*`H675bhL6(3}B[6enMʲI-q�����3{\GT5CbS Q}R߳a sZ1k2^%1T3g XrhI~&0= n >D-qe�Z$@i!)Hd6WS,4MjRFh޷s] 0.> (acyV3Q(9JJ;Hvd)h\wjD< Rֶ%A0TÑ���_��3{\GT5CbS Q}R߳a sZ1k2^%1T3!|0rk~&0= n >D-qe�Z$@i!)Hd6WS,4MjRFh޷s] 0.> (acyV3Q(9JBw5C%wW HB瓻P!uHbt%].I[h TuRs *paȋE���W���Tc �ugO|?"нm)II Of*uAJz\(B>(\) ~<ڠ( FDI݋s7ܞAwQ㔟#ְ�'@6_xs9y��!�;%��`!�=ۗ#pZ?q;n)x#!F0QîvyaqT$D',�67 #SP@l+? Hq:4�2% b!Of9;_➄#6x\}t%SN p2"JV|ds<tr:3_%B1\M& B9hY'~ 2!�~MHތ% :&:x{bJaEr,H�6HBa@>-9\v $|ބ&|i�G\BYpr{6aaq^71t1|$D*�-d3WC6#L҂ԧ ޞ*t a }J@@Z|0Z� aaQ,Hqdސu$'e�r\%!ĮG]  K@+1B` (C&0�fI3@}" "=:jovuyM_?B@SÌe̤xxW�P�5&� @>.A!V0> ��!JaŁcz !vx�6+⒑-!)c?\!a4u׬죨s4~0;9�,+v aܖ;xf%z"oGI7j*fm�웉[ t{P҆$@K%g1Zq UNDVxДNGU2 a 7䟖*T6nw4Q`ECTxa MJ:K^d0X3cV&�܇B�k/,}+3;(4qk~TEvb ;(uQzbmwBWY}w8SIW( 0Uf Rt8M[FTD\w!p RA:>Ka5VvjNq`% y$dPlS=m�����JX����� 7(o7EBF0`@#[-/c麟NcaBo61~w|e1* _O9ܐ%g7:;t18}L 5(SN^X / ly+h@5h8jvo,4HBi-Ԁp8Bh=]J<6'"~FS+Ef\{}jPyU)hJā8݂@o�|[.{Gnc2Ə^NfAO3/ 8Uw7i=c/EM 0Fݾ_ۏ# y#*Xg.YW>b3,.Y!,h$F͒1]c8Fp_ͅ^ë'C@?9$OHJz6~$6(3Huf-&:`>>=B.O6�7  �Y�9y]mK?.YeਊȕS(Gf`, j0T19t33fvp<DSׅ9|f«ỴGm"n<$8qy[(|U�h{(W#D0- ,uxP bq?ÿ[4A=r|bp; lmgb?ÄPTa< ApLp;Q-yJtOcǞ dׄ!+ "\.@u&t"67K$x�h + hX::h"o>\.adhxu�'yDNhsyh|f".(P'.Ʈ6ET��� H������!�;Bŀ%��@ !�;{AV@H�e3E"IHQ$j:K%#EQI$Y4M]%QEQJ=fc$K-+ a5<Ƨs-z&CWL)y>P4jְp Z j@(>-z]J:,4 +4t褛W <1?|ʬA1 VtD6-ZLcE<uɺВd\) {"*Qͩ(qSeWAgzEmJk6UΫ-HIu-o3�hQ4;VmeQ"y־k0��H�T3IKLI$ꪦ 9AMDEReuVUc|tj.H6LJZ2=)T!E.ĸzB+&%5J($ T2! *NJ4KL6ockZ)L$ n#8Sk<dk8mkDZֵk9!$e#2փ dIg59mjaY$ !-h5s5{\B_&!KoP? ٭y)v*F}3B4Fsl5tK7*ST c]75kH�U3HIHI$R5E4VIDTMDMUXmu]_5t% dd:#~ l$[ɭ4H8Ah\RWE=n5 2;\$e7ݦokKS9sZ6z3dB݇:Ng Jٍc-H-;.m_yT!t_Xʹ4EzFKؽʫS=.۷SL.$-fVDVF^;݊-uQm!eBͭ'pIL "s_#l⓾`뙲Gj$��H�U3IHI$ꪚ DRU4aUMU]esBUG$alϥ4%;U:Kk%ƉI\3mrֈSQ{i{Fg/Ж=6$^(պ Lͽ]8ԗ @s6- |U*c_i*vcz2Ti>8|tֵ$ =k5Au6!fٌ{=mj Hpܷ-rA&z�H+=c_4vZ%cյ*^N>|ջ6Զ$W˺5& H�U2(I$I$tEQDSI4NLIEL YQ39cWXRmdZe9hTi)N.ѵipsqImgZCٮVB8e6Pc.>2'VWUM;jֺi{>sT_eEgJK53+5G)cu,ai5 u0Wf(?PUHJY־kZֵkZֵH}klֵk];}Zҵj#Z٬߂"L-x=J9H�f3(I$I$h b<PEOI9EDIVItU5XQvQVph%)X@%H_s\1 MиCx#-g70mk\QFN@G6kFKZi-Z.}[߳-r+NKYNZG%H Us]fkY˟nQrRTAJ1֒DZiTOȦ؃RkAUkZB6 #Z-q0smeUxRZV=Սtt2Z k[&kTJ.U#? B `�H�e3I"QDI$I$I$=SMQEUegKy,sŨexV=oVWZ| Kw4 '^+SWlk澅թQH -~ַ&=9H9ssX6Pb IIV5Ej;j'*05fikD9ƛc6@-fjMcNgiJb!zH#5^g}1Z`D.iTz@5Ӊ7 0$Q5A٦V8?t֔p3UWPU@��!�;mӀ%��`��#I` NBCKG9041`rjF #k1ak Q0 ~BJ>}֎eܕ~04�0rq`7+p k�2OlK4�a{0 (8B\'/ dfT C?/ Ӹ0J�-�(�$f�`HGcaAEMcs] F(@0 879!$  W G ^�:-K!7~TP KA -^'#;2PrpBHI4@tY](�y~Wd^eK�܄ߍp:)�3~ߘ,X�C` |ÛpB @CA}^Y_J~ʒ]�<`# , `Pa:)abhf~Î^xJJָ5"1Oh %$>�fOF $ SPO-OP{3~x5)HO<:Pp0,CJۂ(o<^ET5Z�!& &Ĕ0W45%g�w"Byˁ�}A$$` �A�"_@I &_xMu� Hc �0zB$*;p Ԝzd)8MbB�:&agsZ{X~R:JHq*�EjYeYBh0%4@6&SbjPa>&7>!G^(�5;: 0+ ς �& J\cljkpPe�qiIv$]ŀ4�bN'ՀҖ�i{%; vܒ $ބ#3.'BZ0Һ_q]1B>K` 14 5iZp`0! bz ҆Ok&$j7㯨pRj@A>'�t2ޔ}'>_:NI!h~ nqO؈ J&os@p߉y#_4),7V�`M/r%'HbJ,;Z T8ĶK[Puk*47I3Ի�bB&|~�� A[3{4`Nz �O]=Fٓ6Q0H3`&‮K?su�j?6/G!yHwK+;w"hb@&n'(?2M/m?#]ɥ$h}IH}BY@Ն%|�I( - Jք1"Y(uMBI[e�4 T  Id%�8=J[i1 `D,)Aa_c3=`D2`1P{ Hӟ. -!&#K &Rmw% : J3si0EV) k9+E6GԼ@=Hb{nwj (3^X}J4MxjL)#M*>Et &w5lgd0 @BCHxY9 V8k2^T!YO)P,!πIs �\r�5�*Ah@mcwUQ7t3;nY00ZrXY4[}7+H#R[!i-�t M|~3yKK֡� 3w$&T'߽G �҃ 9vkhx(!p(Q) s;|mӿrQ_C-"nQga J\Ӭ� & JQw>p ޖ)>Cΰ@:8 @oЁ9|�j�5<B &7hnΕ?�<C0�Gr��!�;߀%��` N!!?߽ +lF[( IcK-CB y@_#gVÄ\PI>C[b5dwͿ �S$45h�P݊&l^C(7 0`%+�@tBv^lqRs/ZtNWb}!?*%_C>\go^hia ۧ�k% r5ԞH}7!)[1Y_8�Xc/4}@@C%mh} Sc?(<E�N?{�1)^rRp;]Ed_,B!C(oA] P @t+1;U!lw}<iG|rfhClQ� h#~J+Aj{8&C-w߯memR|�:�fϤv a莄]X f[{^ (` ,ʾv=V؝!a&;kuZԿd8M.Wp �vd$YDR~F|@He6&^9ۯ>>�tZ@N'/sȐBKuκ�vWN|}�“$~`ߣq5IAe'`:S}1N�r8`<t@BLT<nyf!V;mXf,Cx"Elk_(0% i`;IH+~깼܅Ő@;+ }yZʥJϾ |~πvQiH@j[EI!}׾0F&P)9[nkϝbf~`ӿB\㸏{05̼oHw! K ~+/o`W]K)K`8P R3�P_�2=\E_�]I0H(4bf &5u痶ĔfRb~�loH,A[?fRͶ͛lvӤz iԾ :pҲb-@@`7l<MV +؃z2d^ћ>T525I8 +\-,ֆ�\L�0`uKUE5�a?%e� `rVO9.{ܮФd+Q+<=!b {ݐtg꼫[PJJOU}[vba ߜ9ׯ:M;n#[ :5/@N7FA&Мv_tޤXCj0n{ Gœr7~PݗuJ$0"yuGpA3 Fz jBIXQ[@?&_܎1Vd3Ԟl �Ďv@M)I_(aj{2kj� D1ُ~=W| 5"4DίTyq가 b~!jgT_�5[ u KX)m)g @B` T@�tLmGvQ>H`7 -y9|FօL(oRwwPq 5$ƒzp%ld2sf ;,7sm &ݱמ!gDZ֐ I tzruG@5�@`nД` /(A/K~cH`�Vɪ ю;RC:ߨP ?hX��L�LTP w@KCI ,oWGCX� p #@�0P8 �d`M��4Aܚ� tL$r YPLB3g:HJm!рj�@ �o&1(BQ>��!�;%��`!�?!I@2�xAeh%00PԒ?y� `?�aB�轳�C:d@?�-L& �829A)JJP`:4Rh%������#uF8N*z'o#xQ>0�B5OfKz)J2RxT�<6Kc}茫$L#U<Fa=? (| |,:N3#2:}5 wo\{ׇPTGi>C8b4U l'Jz'ah7# 8l@BIi~^1*k{im͇ס{CQQ͓ςeZ | 4qFiK9>o'MpU۸J^KЌ-NzF{<.$^sODvmK#"PM.ι_kGv����_��3~u}|>θ}ynF'HwB%)C2bHubG LG{Ŏ>JXl⣒@cb|H v}B(sx\͖[V2gT_|a?$bΔ-팊GU]ShͯBKV5rX'E(JtJ%!<ڥtUT\Y]OrHq%W!]r?̏������2p��� J������  Kπ/&HX 4Rdph-��bc� )obB�Z$ op@8�y  0@2 ΐ ɸNF x$�j ׯ!Z{\p {`h A$PM�OO`&߉(&�55g8!rB`Mh-H`S^IN5f ǥ,H1 } t�'A'0Ao I�x$Ai A$( {b;1;&!Є4,|�AH0߈p�PO`&ߍ`@0_h$Ac xI 8& 8XL >X* x"<!7@t�PO`&߆�@3_h$Af  @8&@p$�AlX5D3=f< X"<`* @=�q  F< C3y B< C3{`ba9(l@ K&ǿ;y `"�<b&R@B�iPI&h5EA�,_R$ h8 `�`D,B�&_L� �:vǞ`�@pc!@�>@<�nY(�bݜ�H3Sk1@v�LpCA$$xz@`(HB)`x"<b&Z�\ 1C4 I 9`\evA$( wH`0SW\,D ݔ�H0x @O`&x K -dJe2�&~#?m  H_."&^ܮNSBH0,)`a4_nP  @B~G白!K(3>>@Pp%a`P Ѿ拰@\OK "r {@$Vqd (�xfl9` BQ"WE`T4XJ(F'^E= (e`U(:} @bHmhh@'԰L10 ҍ1$0bCt0� IMLm 1r[5̹@1� D ])��!�;%��@ !�=5�H�e3(JD$RK@SELM5Q]EIU]UaI,NGiWge.`L`HmdRڅV ct|a sswI{_ԇ=s65:;٪ShYK* er52"״JQG9Fq)f5 -h ܐi3;[Z5wiɬ HZDƿ!,ֽiBzMjR,"kbZ8"9UNTT!!v}e|坣M^k),2:l|6q�H�e3)Q$I$&ڪJAHQEd1TMESYUQuY6!!_ŭ1D5J2;a)K3ՠnpͣ( ,s9jex0cJ-8%-޶ԩdd%J5ܖֺPR f /ikJMZ#c4Kxl 254,�!KR5/׭͚|AmPoL4MkUNUC`ac-.ȐN/x"ֲi&jKxaڙ ֩-MH�U3iQ%I(몫KEEDSAdQQY6VQXUӂXl 1d_Q5E޺Il#I8jFٌ!%ʼKä-ee+KjJAPÛlmWODG׳iacgbXh=lWƷ!dlnPjAXF)9E )ɺdVnœ:Ե&1t[4 ?6sVE7(m.|¥%Btul]yUQPEӍ!JH}A mi.UJhH�U3M"R$I$*@A5QADETMdIX!g<P}+bjB(r#f&`GeYcLִq܃aYbkW{%ޑy#܈bf8e@Z4Bj6pN)!mmVsB zH1!#=Вz%2ĨO#P .l4:\6zl {+%5Qfɭ yEdtTS4FQk\2IUUh{C`pjrdaΚcUiH�U3H$I$@=5R=4EeQ5Y<tOʻu*rle8;`ARj k]%'3 ԛzt!kt֣أSL^a. 46XO+%9qR96V)ks1yJaZ mN6 ^v5i{,^ Y,ƴ䛌g 2m͖ZFF-K(Jdy-\RM625`OrSNke1zjs ֩TXzȖmmn8��H�U3H%I($9=UY5]eUaTeU;tr;&="ZͭҊH`x HBi)kPF;$6hT5!;XAQZCtVA8>$R=.BJPj*դU-KRI7+ S͍FWwؑ 6/ꐷV&Rv f>.dMh$>VkkfMx!lk>kT@j2U-$Ȧ*7ٕ�H�U3H$I$/ˊJ 4P5P9$=$QRU$ETM%]TY spksk s<FHEґ\lBRa[Ūn4|(>Rxra;8؆[-}" 4S:k-vkbƹoa{DHԻ7.cZ=9|4o6ӓBgֹ6ZW2uh˅"Ve`ёm}-[ stb6j5`#J@ll"6S'MF*.Z[۳kD��H�f3��!�=%��`' =Ān3{0 �dB, �$ϋ@f}׺@G�A#L+!{(Yǵ8IjLHQYe4 Ic}9 0f@}AT 7BҨ Jķ JyF+J:@`߳OӯiC_󳉹0&ļ`�9&�̝p .q&]eSC: 0HN})Pj^0o9u0b A`9%u@N^n}xhAx 0W m ; m PQ6&bH0G#  JtCM8 b(h/#U�DݽP Sh o &]<�tLB <M@PO/@L63tZ˃D!PT6ۆV�ę~PʘPi1Α0GeK��d"Ć`!@]Pg[Q1^,U33q]ؙϟ^8 !`Dj�0 �,JHC+`E5)"̀@@X &~-+p /@X041Ϸ33(!`v*�bxߠ �5+0�_p`:HIB -"�~ L�7!�J&b@D.@&�tTL,JΑ &� !� Hc:qj2Y 24ie�Y屝$1sP@7�P, '~؄Xh qO/ϰ� N�aaH@:O /. �� A :QZM�4�4()c@*t)0`2�d0C f$ O\�=$>0²} @uVA^8 a `bH\u9"`gR &C9\d`Xվ 5`"SaP³0]i3]^fc0#ONh�bEa&&d}*1r`hRfzcDfE>kBḙG䄱ܒo&̻8I 0wƨۯ(]ʼ�b+3��,�/d@tL&̗@:q4,n(*"D40 ݒ8' $Jb1 ;. �Ӑ0 l+y`I(Ђ{#,'xHp *bO%;3;:@0 *`0صB-H3q�T�NP�4%�$*Z>`(Rn -Ylv` C@cCNM&!?tw%w� HI&ւ~RqOX 2�E ?ܖ{;^�`tjП;l� J ɝyHW;N �n�ID�첉EQwQgn;-0:,M&!#z {�l8i0UX B+&Ĕ� ,1 :I(_@;rnנ Ezdk4a jM& 0/h0hX�tM!Q$,8hM&{"cz0a{DB/H5RwP]!ob.AQ%< XɄ2R62Sd$yP+ɀ1||F&!'_Bɏwj Ihb7s@3 ,|) XP+R.Q^ �va5;,p�.1@a X^-3-Br @Lak!tB@:@penrb &��!�=E%��`1�?�?<؀@@n‘aRM:*1 M\+y+<E v[gV@-e-vP �I TnirPtj�(SV)z06�-BDKX@`5̯!a=4"0x�m%\0(LISӀo  HP �Ϲ$az (J6]Rt@pZ hWh, @L_Ĥ7V_ۘϥ0,zȒle�p@BtbI@O?  7ٹۈh`ewqK`1 ,rPLR8Xbn p'�Дܗesr_X�9O>/'|+dZP1hI!v]ig[}FˮmTyP K0ClYtM98wr 4SV2{ް*@@r>ƙa8܎vC=C|P@j�"&M�n`&GpXV�~BЛpA3�*QP $A"P/Z@ {8P&$�'@/Me$#�""(A4.[�~4BQ�V�RQ3^j` $� @Cu A�O@ .�pI(A. Jc�@;瀄0 4$P&A�f�$ M�&�U�|�I�j<$;  P p` �hǤ"�) @B!w�sh$@5&$` <@�0/h]$A(%%$A.- I�(x$�`/h] <|`M0 $ 9` p�!�CBﺐ@<�` 'M4OHA4M*\�`�@%%�+�vH������� ST[P[7@9#xӶ|x!2`LN}Hnob}} *ـԅXrx ޟA W>Q�2Dž˃�"-uypA~S=Kv'1xX@rGNNI&& )&O0FB`85�* �4ı }H%8%;F�d2Fn�8Ż9cWJ\ߘHnB< '� TncSnmm2$)"`7myh6!|J"@0Ln AA) 3Q6�O{l>O k%j@Qiyʼn٤iGOqlWJxFo;4V;a`<R{uHpo1W!~JgSdetNt1rw3 BvO}RQdF m*$yt!# \ Sql12 UgcA>LW٠,5* i@ p#쑆IA.&|: RII~4SgR[-BNcR@x X 8c ȶ\X#OTѣe6;@_vC0[&|@9:ǝy '!7m23.9BgA4 y|Ml!0?4QGHO!8xdja]I%9d%"?=h79fXYr\_S8 cd .`5tTVe,Y19,y#XdZ0A6��!�=p%��`!�?X' igy<>$�m# I)9~ o>\Z82-dov&`N:34MF+iS/uDe{E c(qQ_A&XtTSI""MS:&E S1r]LCPeI(g^/XiK"M1(n)ThHhG(Lnb" ibI2d]L"D?Zg"EPm&G?&_<uLTʕXyJ.k^lNi~����_��"X������ s WX�7^L*Qr>Ux`1וXs׊ �[$>'W"kdx_c *:ΎUys_oAx06@�ה�7<tmx:o }M?jP`��@9p6o 7ׂ::tLu׌* WZgWi~4pYϫַ6 ޕllsAgߪ:myWu[שteh OgV'^fiOט<[5=ykQuL}yx3r Mj)Tds3h^dq9.nu0V9 Aט٥n5|gAW*^w:z1j<?T>}/S)Ħ]kęr!N�:^W+Jhi5㣣>H栲u*׉R@KJhm>2[Xv׎/NK@ĂㅅV������ S.ۇA : + 4 VPϓjIz3hSsFJpI^vJVJ0LKH}Ny@� FT͔|G]6!(Ĥ.g&ZGax< *Q7䤖0 dҀpʧ&`h 3@ qh cbQ01-o9V"*e4U\`08}E $Y} +Pc[6%|BI 00)�$�.Iac lIhr<QE㤪bHE(@'eJ6A>\nTmĥ.)V]%ſ%Vj1 4|-^1[,+3QY7id2_Tlaff_J]s̹d^y9QFuZkځժ]d{3|: o^^(|)_&f>-OkH*C@N*Ȁxh"ucP0UZ6EC�|aĠރFt:VqЌ�Mp!L2 mBa<DN =Q![AݹWE1|)˃ ]o9nJH;:�jLA+Xȇ|Ɲ� [8W?n*]6d_s,*4SZ ?*ސ={BBBU_wyóR[oU2^nM{asd\B,7.maH%us^gڃv/aW.PRoL7sX̓�$ΔddY "H\8Fg Jex(i_AWI3P�3Xx�aD-�����.W?z"~¯ ]ښ쿿{URtU ̵L}ieeo$B:kc)xȌ5n}!īDɤe:1Uȴ98x}��!�=+%��@ !�?`I$I$暢 AE$IDQ$Q5UQhLWzMٓ68-e4ʝ6"mz|n j1+55Ub86Õu)b MZU7bąXTka ^.Gxo*@!֒p "d +A0JLVkXozT\dPAǵdT1-M]m4EUŕܚV1d(8qnk)jXEԁ+6)kIFB+Wpg|r\5cH�H�U3LI$IDN2E4NA4I3I4UTEuWQee7V5"CXj-YUe+X70Nr e2Ka&-5QFI^du <:` vɉF#Ъ)SZa`6 3?_E);jL#]1$.sqF5~+b<[Bi̢ XvmŏE2VjHkA0 e7ZUKT(6{JkUW5E-µf<qjsxi(vL��H�U3%"$IDګ" 4Ï5Q4@UEAU(|z4i魣fMgem%mɊ͚JփR'ܭS᝚d(liBW NņM 0JZeTcjrRfmTv!0#bTBCd1kUg_1Ҝ#BA_;URU>zԅ)qeH`9QLJʒlkeu_i!5Va!64{YEm0knLDP$bX!p6�H�U3E$ID8ӎ=@E=$E$NCkU5!@-ҝ0wfPa 6w[Zg`U&s%MͥoYܵ#`54-tzJl@ {@TUX%P4[.~wU<RRGsLu}T%^i2gVڰj1-֥μ6UJGSҔ e%suFb[ĤTui9k)*ֺM'Ue̸}YJC c !SUM#Rͦ4��H�U3H$ID桒9E4P@A%M4SQDIFUUNz'C0iHC$:^"+ub:d#U6tbvպ[M GYZ#(Z"W!`BkEA%< '5ԙEM2HNlՑemVHksRXmRmItmIkD .mL*MSdnEkԹoScl<N^t_b!mPw9">nc(͛uċkXmavCm7P2WVU%)f>2p�H�U3-"I$DnK$=DRMLREDS]%UEwl7T޾TgZґ)lsyRֹ$z3LC+Jƌ+f qD7 M eUQYsGCuDPa6-*mc %NDΚK! &k)Sv RPR*(,h:b#U|gmVAkZYn.*v\{skVͽD k洔L5C9m6/CYj)Div)([e�H�U3hHIDڪi,EUQQIta4WAVW5%cNT&!XF2?pq*<CNs3 wdP<H:N%6CҴekTU_GD•T$+ XBA.j MАP@Z1]F1�RV!kZXOn4I 5EԝU[1cWORR`hga&%qlU ﺁSlwr`IX;{ oUMlTDyѹcN�H�U3D$ID��!�=7%��`!�?L)*L,(<6¾*���_��*?ާ=gW 6!vΉwmu_U}iRc)V2G$}3!!v ބ3.$q}/˻{cݫ9U1bU";k2ZOHTã]l}{.eEAH1Xm&YY^|OC_���W�� *�6bl@,,�W @$gJ4f@Osљ'ulDCesU]UGcQd0P R0�j253 @bKxTIT(a(jFa!Ohh y,L&0"uqucDΖ2�7oG !{Xun%ݨg.wnMɲrCW2j$QWO? ?{{y5]MwSPq JJ)<Yh�d�~G|NZD]Maxqb^"1 <q;_Y;ّϿ<x���O ks""9. O m){ϹrK9WnM]F V,!7"䄅ԄUA(# ǷϪbQ؋v?WxHGsPvو{&6vǍ:ؑ˓xn~bz2\=ɯ53vR}z?&,eؒ!'黫P=[[ agu ŇND^:((h.܉c|D_d`q첲:hH^[ҶH%aas*�����X����� 𦎄^x1ëU y> #af :πb)RW`Qiw:0Cs@|#@NZK2#j}�?kǛ^c3e)B uz6UgHW֯^dS/=y'L-ӪAl:^f(T[sW4{ cy|8:}yRlʏ�6%z77ʯξX^cz>yBcyyO+n>dhƻ7<>=ۏlFl;mw[ ޼aJXep�affnI3cߓ[#Y sEvτט5mDNS<N橉uubpv^<|;0{Al^` ??jĖe+KQǸW?'Xr _\/U_0iogW;�ak׉1K1r. ˪>}O^!oux4gt<N7B"gf0C=gv0p�\�w^aǛl+3pK$A_ywX{POa ?6`I$:uw;ỵ8CٕղݘxƇ7=B(xw 8}x!z'Ao(.2������ -LFx`, ]P 8`.eȔ!-V'!<4M&dHx 3 ^-!-lDL&|dY_<Ԏs0S$!fU0sO@;@n *B&$@P%'] CdEi}~F>р"!@i:C:b>U77|ha^]KMRVJ=]1k}.Mۮv ܻIʗwm_xIjX_{A|c{Fq=/H몘>!nH! 4+t;DΈ4BalK(7-&eکI5.1)%sG);'��!�=C%��`!�AjƅGPD^ XDn# @qF'V7* ߩL)NoWo2"FaitK+0:YݧԺABی*H5ZyL'q#tDh8�9JV3ĸp>/O؃[-zsH61O4 - �p$#wfs\؁S d4;Rw/we" MvKc{A<1W5I+밗<i*C-TH3ısiqMţc%w!CX!/OzrUoV]iR0}ܻ9<ֈ43_dw.nﰇ26kD B B @�-ahs֞4 Uv@rҌdB&�lH&PE$odrSB=vL_������~W>r.osemn؉r\dDesHOY!)k#2Dnd9@QƉoc,TC̰; ~VyόɃ}B_2Sx6yK�����~W>r.op)VoM.|OKH',G"z̝~ XCsݮH(i_G{'۲#͌ROq!=a77)L6v'zu k|"rBC_^;q{)<KA<[����� /?FIhP퍙a+k8k_Xa<-98T1-׀M>:oP>1-l#fH3oLJWwn @hK n~ N<o7=! u.\UZ{ۣ?h2s4wvCVvp3KrlWWTުb hBR\|D0#֒YI&^o{_+yԛ!HmS%Dҹ b\4s7|G:0`h7)+Q'"anE,�=Z>t0-en!n-GR1jCrPâlg",+JIjkT{1D wW# J3:?ĎkqjwD&)g8\y }E ƨS4n2'{�^Q~*RXo:cOƊښZ.J+U*9b޵@1}G])I +-kmeR* 6zs\�m'�c>Q[a}FouB$UUa]L0m He}0xQn'(tWȆYf Q$J@\/.{ȶQ>\���_��"X����� :ë� ?Ṙo^0|W|><YL0^FLluy +Ww_טq=<{ëZͬtSW0vv{]y:WC�ΥUyax"N^+^?4fi1KNTxzNq0휃*ou7xu9̳rjwi'c9 'lY|AKuz�-qg^֣�6]x>izY޼ ڵy|Wrs+} 7Qx ~Vrٸ1ýy)#aS98=u3×)Lğ H92;T4qLD,�cp8ѧ1.NcYmKZ|O7^`F2q،x9aõ-(Y9}Ъ��!�?Q%��`1�C%�A9.{ ϙ ^ŏXTGh}y_k:׺t&\>O6])-u1 GӮV"7\+lau`_99>'N1;"�>X8灃 ^Bd `5F ��� c������  @+Mh$R`ZQH &^D8҂ �h"8`* & 0 T8I &j�|A$( {P^V+@d>_-4 �A&N@/ '0Ao X I 8&ӂp c3 h%]&\M�ǂ 8I0A8�x!M"5Zx4Bb X<A$( zՂ % Ӏ(8I!o"�C4`Z Cp$�A"@y4BN N_j@ A$7"�C4p т"A$, D� xnh->p*Mj@ A$7XpD$h-ppI &De�{&^T`P�b$ o"�j ?M2 vI �A& ؔ�F >#/P�dɤ1iK3ghpE�x T}(� PI k0,� x$A%r�Ih$A/T�Ő%j @ �(8IZA�ö $h- H &N@y4BN �Eҋ}@(�A&Ƞ@<�pD$h-4f~$\;&@0*J]mqjCLmpz�X�_,BK`(p)@ <;(TɈ O*ϱYgzhq$J% J$꘰ 2u`I`u j; {6�0{h` %(ԠԀP YNh~�5ɡ;A'f6 2Wj7RQh.� ^Q\ F/y(OshI1H=VM$wl}'Ieǩ,1(�4�Ȣe�Z^<P�[B`!(тBJShM* 1Ho^�lP ]& L!3ن@4IDҷ.ӷX0?) ͜FpS.�d� �$b7å,XUP Ct+P5weh 241%XC %HT  %}@Ds `\ !$E 0w@B�pLNRYb`p�`RFu`0e%LO(t%>^(eJŔМ9{M�x2WP .C:@bJY<t.X5w3�̧l`DaH)m�(d}:�~n`%g-"5eUSNv,gD#T!R>Bk(Xnr f@] �H�V� P A5ЀtsД}yA)q` ,�Ėд`>eYEXgJ>(W)$σrw|0@1�h) ` 5�@``k~H �$' &48^n!�a0 ``�z#��!�?G]%��@ !�A啨Yj0=DDԎA3E$SIDQDMU}MJк9Pw)!jQ M&5rƪWUT5Sx7VeVMz^{.Y9 kab4+ZVJłgt4AV\YJCn'XTSa-$Gku["6ĻMwG5!3L:uQDWзI ZŊ<>ax;dhE2-kr`T(lsU"H�V3H$I$&r9AOA4QEDMdMIi׶|BJl*/cܸ7 .K &fܩ-›QW#ҞBL-2hSZa(u+}b(h|Ԇb"a͟xcjԔ-<Dմ_5-jL١ns0#'uT.tEkݱ:, &TmS餲&6c/([2첝3t-fS-l-hF cTKdmֵa`�H�f3(I(ID=A$RE4MUQdAU|%GlXDkjU,MR436@$R;ojC*U]lVdȽKG0XU1T(1\(rRkTֱIG \׭(Z*h6w-_ o-v9jV[n4k= Fc9DmFVaBsrRDpJ׵Ы|TvZ&9bVAm8ba&iZִhIHf敫i6 kASN2ͥ`%]�H�f3I$$AD =LI4AUIuHTؕ=}cv'{Z~._0U[~<Zf䱐|UT>k:$9C?{(]Qׁ, l=;T1b)f&}!Mu*Ů}wr=kFIܟhU9YGD!I͆f<s ϡ=]Jc= nV /u|-c@ꛄn]iNBhUV0$n!r7��H�U3I"$DJ(OE$I4E$]DIUG$7ԪH%!A7p5HԷ,E ^�XcgO6;Rگc"Q _紐kj#P6-rjAm&隂sG7[vs5RiӽF-<)`j [i4kեm> eh(NEv5\h5'zB(bwlT2 m%UCmakTȁF-k<$`5vf&kOH�E3H)I$hAPERQFMFVEUQIVV]Q -}rƪ7dfQc)]%eUaCǭ6"*QRQbS0 ۑ)1˭J@ͰUq9otײ-8#ڵ<Zψ;0T.FMFJ.i {<ic5 4|+V5Sk\ұ"3-wzn2 cHF1  ~#Frֱ JګxERPfڦ5.UlS"S}UY{ZV[@H�E3DR$I$�8@ԍA"TEcSL)%QQI]M `B--RMMJx"v$ތ,g1TNlEx5TdUֲmMYj&55hk5oDsg3) z6(&1J}&Y+fиӖ.5mlٱ'9ш)dWOֵcZ֝HvhyTcJx H=J*ΠmkZFZ cjiZ^+ f-iv)~s\֩lH�U3I%ID*��!�?ri%��`rp!�hz�l�ąM[�R7IsZ�ĄxF(Ho}5 e� 5� Ɂ0BR0�!�0j:2wı� H@H&;% y5�,�hyeLYJO(\e`ya2/vMJp#`̔wRؘ1&�J)"_ܟ}T�  ��� >†V?f:�h0+)| h�hjHHQ �ƤP� @/�V!b!?�LW9�'�̰@vrҧ1h̹X 8>@QhX/ҔyPL)e!mz@@L $Y� 7Oe0 >rIkUH alNpp @@_!RF߽(1d(f �tr JV dʽd)WvTm�lcMN!p(3r@ L^نmPāBnI,;[J^$ұh]ɄB;?PPDI1�7 )$�%-fk� �B 'v @tp&e=Z@17p  GHW@@2�PX@8Vh705s@�3-P%oѷ=Bt Ʉk��T�􄓒 WZ��9 �hi`$7093waݠQ Do�9��a.�aR3ڈ@ @1( f9 d{(`bFq a؆�%�p�`a d r2v}Z@.�0Nb3Rp �A30 JA nj��J�a@ 0a+ 5 R<!aRzp}  2�= 0_##0K* a VCI8f%X9,ۣ'n !a?XeeڀtRL Aʐa7z`:N^4CE]vYNzA.7R�I&3G] (')𧹀l>L /:6p}�NLF?YuY]�`B+sHD,d =ـLrhc3'7|/uV�7*,1/~>k܍j2ЕAL bd !(N�$RYDLY+wۚ6r4dLKvۊs[ b̖o ev1λI0ëI#gJ,@bBzx ivf,* &Ov:ҽ0 �Mqu`�tM%Nx$o%^yD3&ڐCK0 �hC�7x (bMA t_0qB   J10a`(~�y\:CD,�1@ 8q�\ؚS(h)<$~]fB! 0(7_j 9n(7|w6<wX@uEcqM.C1/& օb UpDŽ =�0 Zwp)94V~eA1�Vh*H[֐LځP),{�5%6^e­@IObQ4p!(ؾ{W�\�dނgV{H�0vt/�КMjzI #fL07/jp@I�Mr3M8 '0AKd""~($h-`���!�?w%��`!�A! 1ae04A�xD CBB@M�Pny 0@3�tP @NP&\JI�V�@aLCI '&)�H'��A&� PI@&zHI�`DUp!Pл @L FM d< FM 0P�E�p/aw@ P t` P w$ 8@@� }A)�xh* ?;I EP�#"hK$@�4`M�D��� A�'4;@:�dpI(A& 0A P& OhxpH�V��G~ `s3M :p @raT0#Z E�A%  @wG������� ؘY_r\.n9I.ny2nP6}®kä.IUR\(#ǡ*艹+:Hx _2hF'<z# P<ǒi,"_SiX%7lz%Ƹ)e|`I0{!5R>E3m }eػbwsm4DAwO ;<"9A"7 F)ʻԈ͙ND o�nt1;N8ݑ (fV̴".8v\DV<7Fā۳-ݮdC_뿜>鑞D,dwwox7o i2e1*渚M0zzwo0>Wpy&GїJG*>r-u1 Rޚ6]׈4ؗ2CfH7ᇮGqABn(^yܰ? YUSVAu>����_��8w`}wY *⯞un*?.#;]5W[X/S8]@HP&*w6sKdDt˻ss/s{#zP|}4bpHٔdB�]@a(qywwP%$>Vo9flTAȇcPńi Fb8'fAa}v1mR#nĢwc6A~޾zyw&︧-�]eU=lSN=���W�� G� yjf*q6c C+@3YLfzis`9+m/FXGf @6>m!L 50|%e3.  s; !BB=4Dx1?}7cgON fzf1p�ںv=¹ cWp �ɁwdːO(\_4}3͸@#)g`H}8~ %skϼO}z3n *H5fpH ]%Pc} /Zg0ш*@c2o6hQ04QY5#e :c^8+/v49ͺ0Q?+=�TKD[Q`� @Z-%Rh<R䟬gG WL+#Uē'ԧ}D*gr+_+i~2s.BU!tHM3 $ӃĤII$ȉ;&&% 7A[�bCI :&b,9/'KYE@ݤgNKI(gE=n`Mq`",A|xJ Z!q`gN8=Wy�a8-.)zE 3dJ%77g'l~Tb0Q_gR|x?$)kTPNą)Af_4X�,746p&K!g(gY<��!�?ȃ%��`!�C<:- 2mu#KHo�'ġQHd?UP+3Q¿BOPjm+]ˏ3"k1PڞIѶ(K%@x -6Sdh s€�7x&; ???PG@vub?7d/O~zÀQ<Omƞ+( 5I 7(@\x Sv`*� B1@&nꤣQV(@4L{/XD0I>u  eC˺6uA-髞}S#:O!QBm*6 '{ ُq,eYA1 zm~B\˓)D,-am48z~B'9^Ǿ5?x;2|*uZյ[f<n(;! {R>DLDfuRM ~L% 29h�ɝh%:N.$[W18[r8UG)hQdG@.*$p|l ;L ϫz |^�W�������"X����� tW�:gÅW80rŇ9U@.u_+םB89^`ׯ}z9 �>5|@^'�ׇ^<: GM>^xX6�p@:�)�(*�qOǹgW7_@ҼDX�h<,HW>Iӣe0ѷLo3Gni?WW 1X@e?ilj0DǪcڼ@5-7UP ׍0,WŅ\p}W:#וb}zjn:P0׋c�c^W^AX������� Z |�S%?N[Z1]Hؖi@aa%E hA$>^6>^TrPEY;~,eFA4|{0؁$M�bVthq=mzPY ccG@�/�rL&@o8ĠV7DhvL擼f DB 0.>y-NvG]OӥDB lZv;YճŮNa3ZTZK\[2 [ѫ�dIQ~dU>0 WH ㌲p .^y ?['ӾNZcX2*!<i:�9& �nR4q|;c䔄(5=gˤyyAJcBp �vbh4ţYE^psr+?_>U- tDfE, L@)! ql01 !Am�x@'&�Ǎ8 D�#J%*YhҒY%P s,0tnO{h܏cdCYvi1*1=&B2V/�(l�*�&B JJ?Bp` (i01by> �Ġ1386rHB^\΀f)m7]La7 H "L ( d2aa8N$wP( v;ܜ�V +RPmD'ݸ�d N%ehJN#ǎ` @S)bQ�iԗf¶f94rQ@(-C #cL\xO`%Xj1;�7�lA/2XO\��!�?%��@ !�A<<DA9$EDQIiR)kYpbA5 ZR,3SbHMb_2!0Sq9 ,`VІf K`xZ'ӳCĻ6|nWL wI ZI6ezxjfʹŽ-EXwRr3BQ9Ӆ*BBjG͵k5)dlAT^VZ ) VVrі"iӮ#]9:N^rR׸v5Ӿ}e&:B-_ٖ#Z,mH�U3I$ID-P8N5HYIOvA&#JF{HK4-&nj:曗N֖usZ5st>\~ȵWkH}Z)5o!Qdc&SO5LeVn]]"#iY%=~IR7]x,S!Yټ9<$x =a'\vMh3a9B[ TR4:Z \ڴgX6vB'^^] "Q.IJ*#(A86lMaDt֩m6eHt-tn$��H�U3)"$I$뫷899AdYa$I4J e-vMcH=T5p<AZlsZf$8ZيrSJDJI{Mʣk4$)uN(XXAe+9`X^YKEņ)KFݪ֭|U(yG5i|CSnF$qBժȐ%bkO'6}7A[[7X# ֔Cf&0!Boږj8/\Pֺ%9d DXZlk@H�U3($IHK=9@E$SED]DQW-`emoS)C|π9k^juZ)GFN'vm3~us c5#7a&1MJ]Y.Jlrݛ $l(=TO~ke*nX!ELV4kU-ֵpjÊCl 7gf!u@rZ;>Q\SO ʧE${\{i T-H1R5k;A+ִvײ]xs ,A_$v[:Vѥ H�U3H$IH*A=4<ADTMYZS-a#vjy9R_3NKȄGdR%lWa2$mW5+js6)mYX SZZ Wk\_gG"֨pkXI2BJɵVk_g<#f^Ͳх#B-5i 8|nvV.)`Q#z_8AdVh<}pkP!>-Y\0]uDFpjͤV$)8 H>kN0WͰJ=)3`0Q-ѳ�H�U3H(ID꫺뢊8H9MEEE$IQ23sP񖩩J}k6UcqkYi>mbma7CIVg Ëy*~u?n+Jjji-8w`֓5|4噑Ulr B-ְ^)Dp();U{[-|AR!mMov<˵lmT1ё"Dtqm}O;비خ#NKW[}x5f Hն 5|n)>kTk@H�U3H$IDjJDO9<VEDO=$I5I4؞8i*e6R(Cnb (sٵAsDͺZƁhHg"qM>l 0a̤XP/A9Z[GQF*OqxB{mSnw4P+ju*G<IR,2MRf-.)="SlD7HZեgv9j'tفfmG8نz}WCU6[ jٞw\ >V,V;Jq ڕj�H�U3H$DުK8A��!�A%��`!�CGt/(@B \W7Ƨ>dbL-y<$n(SMFb?Ws<l,bB-21lS &`uK> g9^ C< a,{~&8*7pR 0 3j ]I(Qǭ|MhrM}'pv"?KnAaJg* o�)#* ^(T< J%:3‰DPaE?@gd?Hq.�|'K<) xQHac bLjc<C=>ӗVu0˿O l"=^NьBș1S�PnZ$,]@Uq},w!f@z tIDGEf0A|!L`@Uxҷ+F*:- N Au`�}29+.=>eC u.q=&aPcx4#`! }hu,۱>6G%cCY1]̘}vyv/ygS#fW<|WW6)FDX T :c4(A|=O6cRaL �,l50G6�ϓ@LKQE `0H7�,B >â}ZX3 (B&fU u,pa#t"}#h.ԩ~Ѝ/ؑeN?$��.6) P�04("`a#FI cx������}U+aݳfˊ}9Km/m/wP^ `w:XǻU\vғՑl5H5:}I|J{|W2!2O{ F *Jcw"3[~kO( (Q k$(?k{T_R6@)D|Hb_qbu\ks_Hѫ$]3gr  b|4#9rXyv00~YGiSܨ˺HWgwK\){dwyPH=Y^i�����}U+aݳfˊ}9Km/m/wP^膞OUȇF.LmOp=:]QȆCL]D8n26Xc 6$‚uEZlO=ņ9 9݃1*kP@.ξB?FFFe" qq7~}8)*=d6kM`����� T/k#xgqڅL CͷR薁9c0\Pu?Oj1ځgK"0<6NՆ9 *!/&RJ$~[F^{:Q#�8F@&??Ɍ <EfG 2uCV维2pt!1!Ѳ $EIU8S(=pԕ>vd #3`6Njjkz7J<':$~IjXÖkyS΂i(iK_{gvLPhh̔C xL(5= RX%W6!*LΒ -�\)G)JHJ' @@fY^]yK~Z�g|L ME5ۘ^d/aPA )h�$�dLA7|R01)A|%1 8hc3k d'tOGb065_U('a0`6+勸J$8@륵� �f0Ty%|RŲ1ʊICpJ2Q\YF�ZL9̤;D f��!�AI%��`!�Cɗ!%{(4LIJ` <%aXg: ZB 4)Č4y H|_cF0 ٳ`4( ^7ńr~5_҈e% bx^`&!w=Cэy ŘH`ccBh4i&bP`GJks8wA$Ґǫ+vO"hf  I%CN/fCdt7�keRGu.Q N"~"5R  r/Rnp";(^da:&o:ϤR#WobI;D)Q)J'VEv6v{cR>9)s=ټSVw{Ƀ>.XtM/>^]Ci9,fYA H !!o8U!<<KH->o% qQ"XzII O&pc���_��"X����� ^*+9 ey0e"׀W2Te|Nʇxu|@kU㫏*:Dhr>o}�6o;^hkH23@t0UW:>|u]{�](`NFeWv�zFל�8\xT>8ʇ9Кksou9Ӝm6>oZyrVw ܿ^bqq}nNBӾ0!^b"sC�鳹X~I ?�=Ǐư�o vu2ױb2^8_ά؝lHh̡ق[fz—^t~S]x+F{^>u?^y3_JfRo6m:.imyZï<nw b ܞn.z.x  6{m,xPsG9 ,x2:[yy0�Y} Keol.ι7]ySv@rV]mL^FG׭6 6YeW26qZu-VP,:B6>FAK������ J_JOY@>^lxbW,~i>/N蕷;޵Q`c>(Oax:w鉡/e@iy10 lIe$04qp@;NjCh a@+ĤPC=WqCd"II4�!0 JRJ/Is̍ZڱJ70>[sNO||^I_ ^|l^wMn>`#Mc?CxcF@5Wi3Qӛ}(>d`7nI~I,ȘA||J�ÁS@ RK(h:Ba5}�$0@!, vKJ5 RiAtJPR3JUH`;�1%vG037< #d 1� �;0hIE;90i I%$-+!�'0!rAg,9I<@'|L J (8�[ F^mi0?϶Nbf\hA@9 <;cy:K~�^ Q@K)b| p ` jP-Y0@PQH)zC+_,$x@X8<EWtgnq?ޗ�dä�ì*р2=.MRv`ŠdHῥCy �0�vS�H-,8"~a >8.@\h`a4PiH-& -%rYI|n` Ѝ `.bƎ\O0/% O=:gsI,p8c;cYpB%~: 3`2MG@sdOPY1;'�B(��!�At%��`!�E8>/RIM;7E$1 Xč@М\<i�dPc4!&& ͍mPԖFpЀ1aN+ �f�g,Jq'x'{4 (  LGKI'&6F 잒i`9JUbL 4;+ֻc"i1 Z]G޷9" b)E<=� KAÀj( o"(b~q2TmHuL;g\R8ǐi N<s>4AnX !!tG; gCHHm F=Pl٫1E=֌Mx.F Tv r:<>CA(85A4SkT%0y0E.\^c%_&_Jveѷc@H2i*<T6^A7A1aooԓT ߳?l$(ǣ�����~+>:x_kekZXDtmY.1#&C;vqpNW?R^H$X ̫,=~Cn|]&?4R ׎)73*Ȏ[!oΩ c*\2G&<3ٖ Ǜ[#Dg{݉ /)!RT _1 9u4|S#/3[���_��owr\;\ G`Y5f-:TQN$tbm9ߜpgM?]K Kx`A`œ]֧)-e;r#:ҵ#\Fd Ųx6ߝM|pcR<1/zaٗ=zA1Wr#Dn!"<c*JkurhG(_h'OA</(f���W�� ^`2nK9Ɋ#BL ^>u6uT tT 7)pkFN:_a11Ce <>S t|l%#Z t?UcBYh\ NP}l$L, RىIǀsk3lg.BɵڴvbulOok6{I}.)ȶ}ٞn{6`@r%)hFIJJIE@4$P (C( J-=e ?a t9q`bpcS1dH@;CC:+s J @]bDRBbZQ]9D/WM"o!8I4 0ُhߜT(kՖiFg 00uY6F�C)+Pp̉hߝG8O<)*+bl-+1c/0!-;aao8*zB&j *N4vE4|.،^W3"b5Hyb�͘ @�- nȓ rqRf羈ԐSql۱+B2<'Ț+r%_aY:S[\,b#c!Q�a`rHKar]Z:8#7A h"^bQlŸ*t>' =}#?1{[$ ;~iSاMEU.9R"oe,eyR6G5]$CG.\X,䖛3]Ik&6]*njt=Q0azOOa:%ckxŒrWB+ 2_qn4p{q {KFu@̀>D@!&p$ tkX�޺7���!�AÀ%��@ !�CtE<AAEdQE[% fJnct|ɭrq`z񭻱Ķ9M;^3fG 6!F.p@ѮJmOK&ISmc=eWU߷pj<$>~mn\Xml4 Bpiva`9VI-gX=>ШcF­gv>e:^u*Tol<# .U_K`JHr�H�U3I"$IDI8Q@=E4M4SItM9q|Hν쥐QMe279һt)Y,7EM$2PB KJ=S>X:0c="n!c;74%YJVFL=bxcZFIϵd[bHeSId7exi`FČkU+&9aj"n1U܈ck ^1UhmdC1 wYR q$SB&`ݭWekV .nzIB5!\l5\ �H�U3)$%I$8@ASA#I5=UY&b%mZ%e8pcmhi % 33qD: TEc%%˛4d t35ͭJ]V%@0R #R#.hh%q /4bvbŏ]bpDQDmӷ*X5ƭ^rkyٳ*r\W$MdjߟZJcb*"9WDqS^;V l&1QpQp`v@۔. qPUoYcmSH��H�U3)"$I$[I9IT=ODH94]3UM$RtrTH9nQ[5|W+T&6kY[ mXڶ4qfֱ㼣:>3MUqGJ Zk5S&Igzz4A2*][DtJ9MF;):Y] ыm6dmln[yhGJs򈽗A!#-X4{bntR GʼTT-b-|5-FfkZՌkI6��H�V3)"%I$뫺19HAA3=ESEDY7W$8vHFzw9[*|(;;57}ci ZI3e3{//:E"l) +ijMVKTwA2R&/umS3s= *L"Q̅vmµ顐u]md@tغ5@KZƵ.lDkƥ{n,w*5LKm+|&RS[ p)-U-cmVH�U3-$$Q$ꪪ =@<ISQTI$3EK`I VK\g10[EiXqUɔO5loE̵G(V^L# ɜhMH6k\m#6-*U%(j:Ϫ!*=8P2v[J ԥ+H֞jf)i.j5+T`_00׋\lzXbGWl!V%-jZ4RԤdNK6.`4M#9=]Q_%HU$-iCPB5i#Zm`�H�U3I$Q(꺢09ESIIDAI4J 9WUޱ6V[ usj$.RMfeD8XsYg7&6l7G`a$#۞ k^%4n,U45C ̄5kdp3!-(ǦRkam]7?>ƑSHmR a`3>u9-@6uJmsH4ZBZ[Mu]Y *@KMi/o~@z Iwmvٳ=91hkQc�H�U3I$QH꺣 0AQE$I4I��!�Aπ%��`!�Em����"X����� jw_t>|: k^@"@ꎪl.�x}{:UzAP35גuru擅QU�R_9�׈x !uE3 BB8X6"*Ҿ^dx:f{iUL"򔣌Lט=C+Ǝ|ua>%.<rﯬެWn5ī؝3yj8%ƼƳXLl<?3=LǰpU㙰JG VT/ȵxa$ALP_b˜ܦu dkox S^8vymyzU= hٲy?<Mđ(D~1|pp}3anwuCx$s |Főp~|]yk r(c#l$)D~DI8S,x]L/ aŞ^eb#1üA�a Q[|<F?kWv%Kf09[TOyv[,@P=0`Is4(=ëy5B|vʷ41N}n%fG֍24ݴ#&:ϯ1cqGj:^c継t^ŲlbB4@u-[c7=cGK\0t'7|��� l������ � Ԃp"A$, @AE&HP 4B+!>PA�/Pp� A7"�C4 Ԃp"HP 4V<A$( z~ϥ@,D�^$ o E$h-AE h$x Vn<2h$�A/Vam10I ҀD�t T}M/A'0Aoɂ @ /4BN ,�'�j ! 1K 0 R㥁�AH1 }E$h-AM aMY (3�[ A�B$ p��B ? ~K@ / h- 4BN -�T�b$ �I [ @//1&`h,g�j ! ;Kp qIY.�nQ{/`j�(8I!op@;�t(A'0Ao @" !�TA#�'h$A/N7@ �!P` Cߊ"�C4 0@) ! ;H@h$�AoLC jz P 8I A9�l!M* fL$^MP#�`-`h H0�쇘5k�57|W ��$ o@@�dI4P`&_0xUxT04>qDf{a2w@K,7xRXHhha4:PؘLSӑOB:]BI[g5T0uen)4�ęӤٻ*,4٫0lX (@5+IK!@x@ v$0 w� tTPt n}8 waӀ/ߴH`'dW�PJn?�Pҷ{�PP #J0 3\ 4(VFSF �`4 *!k(R�= bgR&/ޠ٫@NBA)PL I7;N),e+ݠ@;I[(XΆV>bܴ ^� vL+&p cG;@ R?Ζf7_C@a'S>?R變��!�Aۀ%��` $\jy� �hO!>%' }U #�3�|(BLd ,0�La0� d�j\bP@}�A^UZ}%u0 @vJݳ@Ndt|qr�<` @hh@rE;n(_x@(n& &,R+oRp( !;!b ! ,cY:�6,Bz98X� �!�>$> J]ᄮ_Nu*� &rX 6�e4?o*@p\01 q-8^p U�;�,�00hq(΂f$:T �TFY|l�D`vZRآjnq_fN<q@+&윿<P y{Z��( A]Z[9k ]*Heb \�EMF!!'/n*�4� 50 %as4�=>V(�DE�0!lv*HAeZؚrgjh9{#XI50dL{vLCd43?2h7U XN0ۼH?>nm�P�/`�LC~7hMaX`2LNICQ $�2@L@5@;#nbY]\LTŁ@@p @/i 8!,n磋t�;�l`bkјu0we��4�V5�`j~Q7dɀ2.�>�xL)!H/7Cz7Kl��@@,aٿbQn(!�vɅ4Brw¾{�0��t 3\;n97��!�p45$CL"# T�ԓ@NҀvMI"nt!# 'v`X` �02 ) _>\�40@!,a 2NFv:d @*�x�44\Ct_sԤI �!&IaŸ!ѹXWկH h&CN/{  @v�Rh v_Iar1f9�brhp BMtY{dd;LB1Z¯P8/K0Ŷ=&�\B�dLRqd4,ֽ ; C@ �tB/o<d0CGgg8Y�br7 8=4& Y@u+{�L�zM?(YM4B mL(m-̖O)Ժ֪!f!sm{RLKH0�pF6@B TP - J>C5 U n�L )%15N q`� P4� Y`:!'- Gw+s�`L&b�vL C|#[ !B/JWW�PҀnG_-|3es@2�� )8?@�),tCm��1 bP}n;f\@@�41 0 ATť�{> @0�!&QS㟇^ �/! &}.iYT$z@L/%'8GC}d�H`hX C@Nj[s߸�9@;%@~40̝ցφ �!@4 (~LHhϕ* " A0 4b:RM&^`U�%1 2hhA Kד�@ yD QeRL-�=G {�� *h҄K('Zpa ` �m� 0CYh��!�C %��`!�EihjC@bta.`�a7�(B%#!C5݊45 &Uyw2HFКJ`[%62<KL]P1O%H h�4$gQ؉r@2�n�l�%vCJ;Y\QgB`(TRD`8 vL_;$ ѥ@ad $1+@w <K$"!w3wk RvۆmXM3VǠz. ri& v3u�'�|�b�@ /�T`&8μA0 0H@N�Nrh%r7)([t5�@0eX4''C6ŋPNNW{�$ IyȀ l+چ�kTy-k!b@payn 4!/z �BY4ӾC z %ڐɜ3h }#z4RCjL>0!IGҀ*� BPZKF?:W@�@cM+VP 'g)1s`0nW|mpA '0PBSCk0δ >14 H07:Դ =\1#Qy1 &YL0{�^R�h^.q C6!Ic;Rj:=&5I0Jd-e&>M*d(6eAoh;)@r�?@s7b0 HE phI&hE0 6V(I&hE| �( z`�|w�8h?K!-Q�;hƤ@aT�orbMO` 0M `<4@H� x$`P/h]!0�0�&�ÚC��q A"�\:8�~B% PI@&JMԘ .PH�5_л XTP q\�I@&Z@ �,PH0E �e` A'� 8h !* ?84M4< $� @p xBoФ@$C4��/M&%�&�I 5_0* "}�?aX b�@ך "�@�0Eߠ@ $*B4I h 0E�~4R�E�@ `v"P������ fLm]ʅ7|@}qBa\O=]Umrf^7 ?ߡlm Gn zFLm4?uv=#&ap nS� 90P!Zɭq "AA*Kg.xX KYK@Ƀ s]77-]r(LL5˗*>1~x>W.)ϕp{2m~H\tW(p'?w*#S 廹Rw",S $raʰt#61Uqb˴8;CYq.TK����_��//=Cz0s맞.3P/w}WZqvDw\bws6OwCT#7vL {6~;鑓J0۸q 7)ĀqabέZ ]8wYEWVЅWp r{]DD!.&2粒sR|&>9WqxOk?1[⥃0AVrx:xbq��!�CK%��@ !�E%uD=tI5DgXU5!2{҂림 RsUV~Z/:(ҳyJGJd�N7dwb.H#XMZN0fsTFZ_ dkj(e~`1T3*ň5YlAkPi"=ljߴtT-[nf8D,{[:kv&jEuGUO66b_+f6p܀€"&.>@H�e3I"$Q$꺪HDOAEDE%QTYEQsR?CJĉJIB%Z3h|"R4W8T=U4y٪X^^HT%kqv/Oy$RAsFk̚nZ;dClɱL ,W%yT89&n[hWa {bWڄsu#mTfR%sl4j$3 A];k769f88`I.CqLYýH�U3I$Q$xI8PEQIeA4A4QI4RMdܢ5H9r6ml5 9CCuZ|0Nkm6˶Ӕ#M#~_Z6z2{iUs8zSլ$а\Wd-zHcY25CwL䵡f6-)z^_rcF"ofJU Y]o5PkZ12M5-!JvcZZQĉ*pUgW8jT>]Z$ulܵk@H�U3HHI$h*0ÎEIA3A4RARE$W%HlnB5=hZ)qنaS]KE`Z^F 04ZqdpDRBj</Γ֍;1fYk* UvezI^c_ kHFt;5KDVH]5& k-^iLtĎ+%!|ֶEM[ޅ%L6Jl,ֽ%|i5eB-0[ai�;UO =`F)F&v@(=ck%{Xڪ@H�E3L(I("0 EE#N8QENHOu"`-ֲi6}kE@jh4t[=-f:wiUBY�IЀ/yEYH-BX{șkjY\)mZ { Sp$X\LMTBZiEj9FAt Vc ٣eT%ϒ4 q)gLx:-|S9|ֵlӵSi hzjVD٪7&D2kEag#anSoyXh5TcceRH�U3LHI(4 DP<Q<SI$RII#$5MV>S269_tG6͵ᤒ<;q׵^!7ʼn r$qmK~-Fc˱x΋XSd إD%su]5f)e!IV0б+IK*~B7r)52'xPfQ\X U 0T,~C _4H[20˫9f"F-]d+_:$k[;HR衧umB媄W`H�U3I(I(<OEE4PMSE4REDQR\ׄ烜jB! mh&gLWˏad{ƫ.j&Һ#%a #^Cj;q:CHeV96=s5wpzx1AY#[ [,֠$ӵfZ/⦵kfb(m^i>KZ5! ʭk5&@ZōU$+P#V8SlF) WBі6mdh pf+gj}`(rQ2I4��H�T3L$I$UIҒ8A$AD@HS-%��!�Cw%��`1�G�Ei!Cwׇ\"4W}dS[���W�� S q2 #8|H* : g2\% �jTiZ0R`9VS h5%bX< я;DL7(�mnb4C/lp"NM]L 8ygIY:6!k$fAfY*kJjW`^>0R40TƐb)v6_,w5E F 9uYz æ�8J?Jv4Ld!},{uZ*+=&h1 &~7!n8|Xfq@&:@bX @ �5+&X$m>8?!{mوX�ԍ`*@LHi3qAU%`K[(tRI?p$X�ă8$d %sD%!rr�=ٮ̋x  & B ;�ׁr�tp %〲6@lM%RJ 8bBƳ20K@,(buf-2�~� �b@�b`Q,Wt|PCx�rRxa{qGDžQIAe GܤnI>C+|jtIM0'8x@T?d'&qF!c`I"`M,C+RyEJ}H#2!M&RK-<ҿYG*B)p`,\aIe`yOgkâ]9Iap m>i 0 0]CqPf Ăc*s>qkW\ g07pd 0LLyb@l,1 9F`Od 8K(l?@%3<1 $<X}(�DW -9iE ŦA|fA$<M@a10j~Ii/Ĺb5 Ct'_#_éfH;5Wˌy>]pOp%Sɱ!GɰP&$qR(CPTP 5Avs %3 Pǝ7~*c!; ;f"XQ*]{b XbUUUXLiQ ڄ4LۘRrըȘ2!4ݡŒCT)r˥BʪAd갡9q4�9"zSU5UwUof"<ꨂ $21�{TH*_xCF`7#kį6IKAjdUȑ`7H ,XIjPI/3@������"X����� uxT|9^u_z<W.<Q>O^4.'W[_D 5>b9^}=xWW <5^H0x@�| 0|�^Xl:}Fu毁]y@`טHn(xÀ;2lw"n´z'p9K…�[hpkr.ȳNqNEx6vי}|8[5;-r^b SX';pڹ0 ^e#+j=8Am,8wb0 W̶IcX[ e,\"ۏ cϖ^cf9{l;is>e"�_<R#7u}D<}(|,j:ʩO.EU,}]xt>>o]vmyr tm@3|Ț_Mֺųե`l$dëDog^[ 3U6jx8u*>jQU~UxZ{^0]xJUs[ׁOhͩ˹޼ϪK^f%}C��!�C %��`1�GX�Gԩ4񳱔_יZiĈ!a^;G]xuzIѬ����� E ?pt1R3kJꡠ2`7 o,TB>B ٳ 3xח%U3-j^?a칅$nzh84[Kl\ Nmw2ߚO#<BnW<+(uhcH4וvϱ_p<d{Ikc /X>n#k:_5 y6M:K'Jy3*Є$#~nmn%=KEݲbdSmv0aCzDrWG CU; L @50ZHiBOm�:&Y ~?J~͊(3||QX!n۷a]:XNc 1 Y L�kCH|70"]N�hCJ|�Є`f/G($5f2 $ G;S^<cb34 4PLKnl� $M� |t�C@ad8_?W䄝΋GBQ| G@ �'A{h # @`�t(|X}淀*�t�94�dLgČtB<�İbhb[$Ͼp�!:@ IP^'nu1&�fCFҲ�vM� g$Fǚ�|p(V O% jR;c̔8_2LəM ,%2t z2�/�?Kv �3,~v�4p1�"oQ(1@j]GnBΕj#>d\uH�RL4͔$oEٌ0['\bzh6 "I>,.Q /2.@ 1%6~ŏnB P oBP~�]Rs}!8=Pkπ0%L‐6N A-PInwAibNL=x p'mhEp*Ydѧp$V1fg�f: 0ckQ䵫8`1(rJFd]lRߖ]�<0i5�'d&JF`!0VXᢱ�8bK&L*@m$ 1n$n0P~v} I4$`zI!}li8tIԛB 3Z-O%Jx<Kf0.~PzN}e::Q,47qg+nNLHuph0ie�Z8D /bQ$IބFl pm#v=&;8Ke j?"p @:�%u^(t<o@c  3 vp0XRO9.=A4P! 4><!O"Lr3>{-DOt�/g:̩( &+!}Dl~Wyxh4u@0;H@Gw=jpuxid'o׭ F+QOPDv!MJC (U/k#&w%YUc.`,H0L(IJ`P (%o'u#2G55JkZy#nq-Eoʨd*I/a�����/KV\Lԯu('y~JG]nY-?|nBcO/ R^7>CfW^1S_m/Ӡ?�j0Xd!YY`#Er :gO3`!pH3݂9`*>!űH#o! & ۀ�������!�C%��`1�GW�GX /KV^Ln^6]ZO?wWGc$1! Όi8''[܍5Ð8\˸P\bUD6^CfW^1S)^b"&&# +쵆Bι]P5QB4W ݏásڽf{$ C1/KL˅"E]AiYU9k!8& Oo`����� ^4|h%*O,׭H\yum6qPc}2TQ:]2քxZcguA¾GAJ7BɘF(G}ZwKݘ`K>�؛f b,ѷKsMki9c|#jDj̸U0 ADBTVrjrI &pB,(I($c2Pa[0-P\eT$$@|l­�%p6"}ɹ`%`fCCe}H(K;#9BpRz�aI/}3(؞w'D (`+xa@)/(Í^DC��;qGA$(Q 0 |б_9\σr=BQZ<;/]QFv1I G-�nR{uʻϱC ؃XA>ÑAQd!(gݾ0;F$tBHq\&dq4<Ht_[RJ&[N[(bI|q"XEe#+҅’T7f(~o ĎR>DR+MBiaAEラͶ:Xa&k @Uw?T~4:M@'q[<t;byہs@7X�ԁ ?@0$RD?ISĀ$`e%NA{`�FqXQ?J<u%Madzl*Mzo BH+Ǚ3Ñ0vD @-cD4LAiƄAe3�{Ϗp9SK&%bInP]K{ dT47ܻd簄Jݜw*y]Ck2>M=*`|>e+4+SJ{QmKn:o`%*���_��"X����� *ꎯ|޳^R<tu}_��uyyא{t*o,: #�<(NB@灏'㇬tqaʖpL朳cV9B+g@{FjP^`X{̱Cԓèrv}+狏7°uo:Ϙae`:WXS{ڼ.W<},:]z^V4ug;v9o?iPG:=lixWw0}N[̰<dl)Yh�W3 SF;~hsÙwc5+q37wQR4n<>_vYٿc�X09ǞmQ1?hi7h|ݍYzY&~T,|Φ+‡2Hz. �b~q>L�a �t������ $ ;@fc�GֵEIlxiBFp>]UoZI(alΈi٢i-(j4[{( XW@ oC6N&GAi(I\} F�]p-t1-IU!ϾK[<>] Ot12ָw Ls;.R8kg lc7��!�C'%��@ !�E֥UITEdXB!44RZ@ա׌-kq8iB8ebkk4Uz"9[[nC`v,U5IXfdd(*uⵓmH!2ƶ Ե͹ppȵX9ҬߤШ˖Xh")$A(OִDz\lEkZֵcF.D־v$1Ե֧%ZsրH�U3I$ID =5P<PH=YDPEI񜋺ߵ _E~ |B-uFךDtꔌ׿RԗkSmhSRZi0M5ִp{@kc&kS4išh&fY ٭#浭|w6eҨM ki? &2*K8JmX (ThraBZSHCh)UPUv󶍝hfbJҽm3[T+#fm0.Uw>mԴIP' hX`$$km.hH�f3II$I$8EOEIOM4E$DH4UJn㩔1W ߑ.qa %SD3& jJ%Tΰʭ T5m{8Y~͜.s"uYk]GURhDݧ+Ah #Ka`@4. RN!5ŶPXLK6t[N+F噣~G0-[ 2 mKdW7O{6-Tl0K ;4#!Osm}e?LƺesT(��H�e3(I%"I$* @@IEDAQQVMtETS:+1㩓H+އ6a6l%936mXܧ)#LE8zg6m&嬟Ye+&r1ݑ}UIk#-*mv|Dt"uZ)L!kRnts+VF )J!R5Em6QF>n|7sa4v6 i.4뒳G Yu[[v h^+epU%͛XUEeX: k-f9;Y �H�e3H$I$ޢDARI4RE%TUUY%kVRjaۈٜfk'csYQ5cb?#VD1$,QH dgiTqmZ*I$n6lMg"(4m`Li*Wc(DE)ֽ ,bm b8#ˊW~*ݭ#20n b*[%gz03mM ն#Rj͙Lmrsk7$r6]HgllJ`UԌ-V��H�U3LI$I$AQI4MY%QY5Y%UAVd,u!LFܙ<hEfUsPvGO3c6e4B j]J/a=kZ[NZ)D)5(.Z 66&$RΕE!BnuL�tnl{](6EÀRZj]2Xk-KWkӴQ -MmCV٬Td1WF6bUQ4 xִ7/+ ҩ=. 3kYE۠�H�U3I$IHJ!8RIdQITTEEUEITQ Z@=U 'r*@տe^)?r Z'#25m>@TA>g*L{J Mٳ: d(!7͓<q̈́VK':󁘁 `>wMaiKb{]ݫ >Zi.L=$n\`ʹ[m !tB0g$Wڙh<c(7jجjVŮZ [&hUٮoH a٤]: lL,6��H�T3I"J( %*=AFE5QY4A5U%MdE*L(P��!�E#3%��`!�GU;iaf9:Hj xd@:&̍&�^$nj2�?<41k 깤(�4'zS}h LC�~_Q p,d4姀 5՚Ԁͭ0P bRr2Zx_ FDY`;,ay<q>�IdXĥ 0v&c6 [QI  ;X M@G q)(B1osP`PAa(ᦩť Qa,{ v97 v�jLNeɨqdx@LE0XbOO�y!yu>}܌MlPOP_�ZPa'0$L`b!@P熚5�^p`a,hic0(y;NO1g3: 1?j�9!�RRFdM堤wI 5&$K@6&�H`?V<$ #-dmc)H`W=b^�+0j\c죷2��BHcWY0giązHBaIpGXv1].I"jBw,@AChs ! ac� gjxyGܝl2͏q5!RKcc1Q?MLDξ�)㵪Nk 2rA케>Ib#F xoyQҶ;+ZJQeN`aaoؤt }w5�ش2[ý 4O+00J&@@Ĵ?e .� bԣ(n�w<q@& r%XbI!<}%s@'- ,Z .�@�: I a! |]:�0�i0@�>h %m,(4bQ!Пι @0Hɀ7& KQiGnBFSov[WPM!9-7$J&%x�j^,L(}|bXna6`P0tCJ_!)ه3:C)Qs ] LTWaedrh=+!әFteDŽ>Q3 GwsvpAdԖY)Zy+ohf\ _cc2>'Il뱈 &!]|EQ 赣$ÏPӍ~�:Jg;_fh8XYACx~L @5^3xc#B` w}@t.&%Cw<.ٌ,WW$ҒI/|9^Ĵ r3%ÍY X@`!anfh9zkf_P(dBgh5֫w2Rc@QPt̹.g^0?sHbOmtC*uI;� }g]�dQo 7bѸ7h)&_<K1+ŧ)sTLPI/c[]%`MI¬":&adk1v"s$v"zht>ھݱ9`ӆmW fZM6Hrl+Kѯ%txSXN-ָ�����#/w(}Dn֞[*EdAq0ˌP6"\_Y)/up]TҪɇG}گpwOB4t}^KD wrwͺAGGaaXR\<u%\ Y_ %U`l8C ! &d™`.>rh?sh���_��/w(}Dn֞[*E$Ao0`M`r;8]>툉T ?.2斚ӞJup]TҔїL<|;zewuiY8b:h)֩ 2A@��!�ENA%��`1�I*�GfG 9=ZBxm-.Su˝ޏ6!aKAr a<rp5e|0UDy 0\4KUsK gDX Aˁ ֟ϊ\a���W�� (2 *D.jJTjUN{>ɯMb/c]}D{ }έlԏ{}}vAFN>!z@`c,g#Յ htn22&Rΰ 59@H1BG0�dn99>͙,oWJ+ HHrT<AFT5,iiG�=))q8ӑ}/ 2w= NUHt(!Tzskǟq jxl $;-@-4b VNFwl|W)Gq,`Ł�3%*R>7;Jr4Sqp�{q(a>Klnca<3:,S1EHghY(n؉%eq<P0�P!y,7fVña`;: jHD1eq|:w{:g oSk+]@)ux!`{#2H 0RŸ|:\ )\xg4;X)<h-Gn$G ?" 4LFvhyN.&1'eۤ `AL4P (�5�!P,efe1.{U55x}$`gYL7g.a?8N<\} XS�(h d.c]ى%Z.ǵR#@ZQU{.C AĖ+S%ŀ �l=W3 SzC2+J9R|}(:* ˕������*X����� @49;_^ v+�;b6WzyxUy1xՖ*lW0 ^fVqw_+ּ1ڼ `Ώo"YK> "r}2.ט˨aN�ڦ0otfkz}\. sOڼ͸ 2?56Ǝά[+£lbe@'ك,:9ί2~ 0D ]p:y>o[4ys6`s֮,N5;e)N7 ;ø+pטe'iݙ `؂,۸Pp^fñ�^v"`$~›XI|=y~ow"Gegu2;LEk1A_p 31O U9 ګ.(L*$c#4B/L#^D;|@h3(vdXP&aJk'ä|`7ڢ} O��� ������  @@1IA$, ( h"A$( zၟ>]l�`�A&^P :_O`&ߑ@,g�5 h%8 Vn_�̚ !@'[֓=Rr`@�-Pp� A7"�C4 @/ !@'X *��5#�AoZ?i@ $PMA6�p!M7�@ ! ;J  "HH4ln$ԭR �A`�j��B ? ~_�n ! ;I 1A$( z~M"p/ �!P` C߈p@I [V !@1X VYHP A4�4&j(8I!oā"�C4 ڀ/h$A"6`RM"`�(��!�EyM%��`E�x 0MA6�phhA'0Ao`@�  ! ;H 0" !�TA/N�|/ Ԁ(8I!o E$h-~@ Kh$\H!@b !^V@'dPh R�$ o\?�B ? ~<h�|A$, h M `' {DkH$' "�6`* b � x�~ ʀ�K%3V WXΒh SaB.\V WY" � )�}3AQ  y+t( 7PYIy;YɅYdAyД;'ɝ))%%vJ2Q8U0�@+�w,"F*[^p2RZMg꘰2u+2riϋ:!$im` �tnzh<� H|t6[ k``6le}LNC~ՀU"3e軀Nu8g{8 T4 5 qHۦ�~I(}^-n1 @.({?P:co!΀!{p)GuX� H%!XZ9,Ae=Q �pY4'!O0FBRk�sh �� Mu�N  ]i,P`2M OO+N�0lõ�2@I7 bY7|f;*�@��8� ԒP@P@(1�ɀy% cЕ7/�-0d0�3!e&�0Qd"ЮGk��@Q {C8nt�x@0P &a5MG {`r�dFb@T@P P)ۥ`nZ�<�j�V:, JU+JzXuP@@ �@H@`;+M �X�R)JBI礴W @jQX@�hobI̔#s3> � i44)b&!Y�<�%,�a N@o%}@*t/H� jTVe@A  P�` 0�Т0Dœ'sZ.�$`1A?�f�V`Y M&XO@YA qBa��� @B(BO) GB0Բ.�4 ĚB @b`l;e݂( W�3$'b",�d��3V@C} I~`D0ZRX6#n}%�;�R Im1U �BMф8O�Z)!�T�Ȱ @RPV,z2OMY(Sͯ8 xąADuh>VBjUz@5$@tUbC/~p9vܺ S^Q]  &?U0Hk1�p}*!�ЄPbY|ÇP4C!Y6*􆐑uy [&�D;(E -$R5kN��8CC8�hK&r b3AQ~|?cCp�00 vbnY,3|+w !QnMo#0 ר�_og@)�VC�n�\Xh10o7:͹�X@�fQXC! !cpsh��hYa !JQ ,`O?8*`0ih+cxe"�(TB&G!w$l��!�EY%��@ !�G@'5=T|p}Pq‘Hc$JWnbP㴯]1bͼ:Z .N}|\5icO5,X+#rI|VwWe]ɔ a !DY0Iԯx_o -KiZʣ.&gM8x֕k=VS^]1J޹VӾ?syksT+Y5ܦf=rǻ^X{+��H�U3I"I$R%A$TI4U%QTIMd׌nm[^)MnvfYPX\ֱ15p1 +RR\J <eɚrwApUuG )NކWf](̌gXsc3z!E^ vS }jJEM*+HR-`EWq+GLE[5/.s #sal,WmkkZl)4;1 zqh=l$ψB#DcAdY&q5ժٵOH�T3I4ID %-QE%IUUEU%MDIWN-ȅ˖ӜUD')VMsUH+n^8|\5tdIY0efJϛXNB׭T&V\&|ѳw NݷMG.1+oA♊ ?]ew7 >ԾpWU fKk\m[6dN 悊eh V4ݭk_r.jsTC!H9I!:gKl6/&GqK쉃WZrp��H�T3HIDJ$EU4Q5YIUIESa654dFZWjo.apTkضc2*ri*5Ն| w|j5lDۭ"4j{j'YF&RϲUcJ+ek2U]TGva`qU8]_ l!HjIֽWLms5ܪ87ZŨ[e%Zͬ3ěƖZ Mv C\<%en`e[TJ5|2=*XB -YS]�H�U3I"R$I$*PIE4QeUUedeFaF+8Bɍ]+ȋgj8dcN MШ)%ɵs_͘0p<<խH@fl'uS6}t+ЩT$PJRPqZ9ʙvHR0ȹ˪8NVru>%7iV+i'e9c0= "0&1J KM\qZ9�lC!X@;@̯֓0ZFziBa%a$ IQ-6[ejH9}LK+ȇ/LkH�U3I$Q$I$N=TIdMVavauQfYE9aAVMtUlB ks^JUƎA@5 b[fPMig*f>:-uT+@[X鬭\E "YN3[\W[ltL`.L[b FL5jUwqA# dHCbu*lV Mr%k o m!92rPvWVMa.ܾc!IwUυIr* 6pk'%2_WpZL͆fqpB7p&:s�j@H�T3HHI(*Q=IMETEEY6iuMU\xJ-[&Lp-*Q":§sanNǝy=kq̤8-uxr4cKy=BJFCV5nS-2&$$Tڟ[)#\D ҹJfil"@Q2[Fa%$ݙ=ٍa Ƿo_B+]\קֻVU&#qNc*Z{Zֵ%b % l2֒Ned-nÚ۶ CSd4RqbͳnVΥ0�H�U3HI$I):=QMeMTMeRYVYRa6VMtՃ'A?2ݓ��!�Eg%��`!!K0(p2WO@Ke8ܟj �ǁBuvFOf|F� 7 bн?/+?/(bg�̅1�C:&�!Fۤ1 V?ځH) �R 4+pٝ�"a0$Q 1D4 4r:w/P�@`0(i HbP77)(u�Z @4#�7kS)no �#L> 1�- 2hV~LնwV7x8 @E0 E�J70  bLTY04䐆7qw�&z PetY�1`Q (ÐJVle��:۔L+0}0جt&V)ad)T2dҷ@@ź b! u zIY]&rͣɅ!DC R &9 C�>Wz�** d�P�vo NŤ3N~HV� Y` q4 3u^E!d �=( Pϔqo�r�P�Ě7h!Z,d��,(zz_lx @MGKߵ1�h @2HOW $ u��hXb@��,JJL⮠ @�Ġ*�>b0hWFP%2�tױEq P@�p�d�|O,7Q9#!_;�HB��%!@ d p^-@pCw@*�lX9 8|Up0* c"�� ��:&?!`;(۠ ! Jm%iKH`o1ن~c5��P蛆RI7}}�`�`&à0НƲxa7;㻎 @$h ᡃwt`[u@@ h�bI$~CFV�xL%XA�� B(Qdx~]DVu쀜Ml5啀Lbnu}t v3VBY+`?ɻB?&?'c0�>LVw�>^ E!K & CxJ\`Ep8ޤ@PuT$2m93TQzv �18@l4 %ni 5hPh LO( Rv ţp:}�.Yef0�x3XbLjėZq@`:. 0*�u)l!wPd$8J>@IdZP �v�vnRrk0 5 PXgSRv5�ИyDhf a3|@@�Șrann+NL�̛ENM,Z 7洄Ľ ɀ@ca0ܴ X'W �D �&r?%v^)ոQA\JnBcWPQ;AF l/NXɩ*ro)ƨm!c0UHBc!t@b؆C5Aڳj?NTKNz% +v=í2`i,58@O7<%&aZ\Cj02T=�`~ J FL)`y�YCHDi(~A1y-%TY_� vas5C}RY1g_8PM;˫@@m_H`kہR`Σ$w5Y}^*�vK^֠ @t94hHD_ m ��!�Es%��`!�IBgPI@&J@MԾXI( $�`!_л @$@$MA%�T�08�~CB�.PI@&ǂxO4WA�H qT4.`d�  @JKHp� �IA�}ɠpM$ A#�@A'MT &"�I �=�h &�$!K�~X<!xy 0A�V�DL r @#O@ ` 0 @B ?h-¤ P@E0$π+�w ; ` @B ?h$1h%Ĥ @E$z/_rhw0�L M �8`1h%Ĥ @`E$ b&`� A'�  88$ A. J( $E&G�������Qݜ]\QbL$XJl܍db;2{z$%�,Qd$ c,FЎqW#qK|F@8wP:WRe޹k%yPO<m0`“һ꤅y h8:QFwl~mBu|g4 \ӄ$gu U[}h:bx ͥzV#aBI񈎃Af7.Ζ)&,P~b#ɬ/Oa1lC>u& ����_��{|}⏎* `UnF2G!v6]uw R\,-K,r\9+1.0}R䅇0FQ߁B�:ב H 󛱜5rcLcְGN 1UlAc |rFʼn26)XHk Xa'":)x: ?uܻ:XܘXACpf&>AűW+6ڀ���W�� S=Ր#Rl�60`? 9y5)G-tx�0HTK]�62ix[`#ib  ShmL<_6tnd7{>r33.Bc!TBFJT *Fdj*.|<Pﻣe 0}:!M..I .zJ4B FtHKJd';NO2n?C픔QK`:X!A>x�4 |z) VR@I={((^ s,̨ ̆2jPWn{M0c!g4 3Ϝ4RMynHn?Fm0?8\@ydv<*`Y =P-&�J$H|Ӣ4? vv{3T> l>UX`Oc#:z7% g1oӈ$H.û"M"D``%vQĀ<LP:MKI�㧥8GG^]#PR)' ݇=LicxlSС]rYR×nb@�g~蚔:-|G\:sdFc##'A? Ex z5S_(0 ~q8}'ev7u-\=qks @k\HI �.~t 4b0Q3?E6!IA_,ۘ5e7hiƹ•#PU!Θq"]A�ASuAEq7#u- Q97ę&<}ne!K{PDxaNv��!�G%%��`!�IvLbCFq ~ X=H/a'Wu4S꾩*+"r5XUuTH:������*X����� 'GWt@(E@[ŸtNYU+ "~N1>zBj|6(K19؝¹9;UzܪvzG([2W}U5xګ܏1O)u:M8/*<8!W,nq-Iq{[}57V<N={~-|޷n+GE|f^<?qC3|<X qI $x]x`~+. GY\My�?9هqٕԥGh~Qγt$QGg gƯ;י/(o{uu9\sG3=xTw1[�mo RJ6d\E6?` 1۳͸~vZ 3eA`Jyu]Wå�ί1gey]UGe(ju4M�8G5p1:ck񡾂]}7�B~����� \&GC-t 䯎VLdǮ{j|'[PjJ\QFAc-Z]:3f'[[{)̒1#G Bgo�+Nc&GΨ % /S!CWR,"++p g`<} E1�r�z&q&�K{8�/@gh mQj%z8 &bzςRWs<c^bJGh Β@vKH8 ./9ul4b06Z$CҩB%H04I}  <ҪؙXt�0 49 1@i <r}HE→7Z cn=Ed6D޴/v鋳E]AKbHC~�<�<& � @nL,<4ͤba0�1g"|y05#F$k,gPL BSL@ FNB%X�Ԛ`pp=1 F-@0*�1�<&^h0PJ8sQÖ&$ۨKkL&�FK9u@ P]�lX" �:�j/3\ ,1;$.ɃIn1"I'q@2)a%IA#f�?)I(x5 lEʋ ,d .d'` Мtp 3|n,PjTj _@�pphL (!NP �N�` _v$ 1f!@�\ߠ 4~u  �Ѭ7!W ZG�5,04\ۖOVG߻^)`�3`ߧe?嘑y88hi\RrS�0ӗ1`]Rڏ` @L~V̡~b+ 8�jC]?¶&6!#c!@b[bB1^�Lߍ/)d8Zwz%=A+ `:�s�XB] �4V5F�@PjpP&%APǎ4(-`] ;P@0*�a(jG�f _(Ԁ0�"Cqiܢ`Do!VN G_:BāWf(N,B6TZ\l7Nx_-:v0vو`.0X9wE��!�GP%��`!�IFY3䳌AFW9WapÃ�EI&- @Bj@OΠpl2sviWf .(Щ@lb"bPC8H'`�!cqksÆEXg@w)+,׊ƙ� $,RFJ y8 'eCr ZQ Z 05?n>!IK$r=Rr\y'V0N'}iGP `PB usv�CyD=yȖ�9H;-w(V 13Ie;cZWg;^ Y=WD0>@SW}y3W %53IC[$Kl&cBj8o�Ǟ(tM/3e >vҮ^]02DʗM#{t r>mY(>CpICQђ€4| 4SD+wjgL++KIGjQ+nZz1u# IHr%JY91mϐU Hb}5�����#~+| qňaqU1F,F2N"%=cK Ana%$}./  it" hA|r8D_m&�^|nC -u+A Tm=VK]SC*E Drtpˑ<"X0[!`a/["J�����#~+| qaqU nbB>0Ie ,#^2 jY�`2Ua1HZ_qWtMb0@h[ZfC1 ZWO$, !66y\M5ݽ<:2R A 9\PQptG @h  #B "tB}@����� Tq^D/Ij.*xVY}Mf7Vea`GeaEW<�|b#XUR H�'H'm�M݁4d6Iy%x|pw.m;Aw@ CC[G 'H`4dmėA%ѿG3(6( WFJ>GqوJ]g@op8G`G;xp"Г�8. [f7�2dnCG3`c𘤄AH,j</1�|'E<adfF`첔,*2 '0u0<Od`$X f: Y&Xnح֘݌&'`9񫭏=(ّƈ]-1"H ?GF�fB�4!R Ae'|z;�\ ~$H ��w &9t}D"b| rh1٣A.(4o&H!D s]'ֹ8>簱:-Ɲˀ9% 5 ~Y1ʜk%ByƑtxJ6~4PܒwTۏnC R[gPNr8b폧:ABOnUiB3yHy Q}!g|JIոtv~1�1&rn5%�FM=|1-U&\1Pd.pw{9O"t|9t[͔B`tS?tqi=O6ІP* x[¡tR4BU[=]?�[۩F\J] :H.BŌM} K]$)xE!tTs:[-@91 Xu3���_��*X�����!�G{%��@ !�I9kVR8/_gr–MIO{s3FڈvD5slH)h)a1"Zm:l7Xbgն+ym-][)HK rx+#+Es W1i[6디puhrֵm*DF&7 BRAX]G"ZG:b9B9vٌujf9{ ڄԳkj-H�U3H$I(@IDViUU%a%MQg \F -*^))  샚ɅRm�Xqn-'i$MtځU9YCWՓ=B іM[FհVM+I>_g.ukl)G4@Ι'$VLc+HeeeS2+m dG=tzV".#Z8t(,Qx cܡ%i2@-2UM2A<"+HUdp̓!?&63f�H�T3L$I$@VM%UVSaVqviTUz2'<٭kF瀘ӽSܺ$O!RZ*q +g[~j <l-\~g9&GPQK+PX֪ks6(gc]Gf-MjZN$ׂ 4KXMQ*yn˘ Z uu4<]t J*S]g6Q(CjlD)ksŭrɴ*5 bfC`L-1BӔv5N>Tu@�H�U3H$IDbQAI$U6EIa4eEgQj^D%sb j^˝paqJj]kfmkC "D D,%u:5hjw6\JoWASh sZEtLd7A*zfMW r&fJD k9-ZKԮblUcuQ7`)ZBLi ULjSSkGu$ )lٯgERqS\ؖҴcMc6o.4m٬J֔��H�U3I"$I(=E$MdQu]UYeR*򃆨$4A;VRIΡsA)FFs[c6UH9kF*h1r@)$"*![KajFMH=mltNQ8<|IX9ɛU| i"spHSl 'ޘgYNt\j j`0j)mVl*>f>X]I#Hܲ I8=#wMHaHkI9>RS~- $Y9)H�T3I"J$HjU=#EQ5Y6UEUR]V櫉L9%! 0kXD>Pؒ]B(CìCˎBm [.;b9P5J˒ p�uH#{4۩MsiҭgF!kSv֑1Z)lr*nzE;SS8ҖYe7/XipSknF<#fY>H bj3juG)eѷ7lVzEkjlxƼ3 llRWٳk*nJ*-BEt*SKEcA��H�T3M"J$I(ꪺMEE4QUUeYUXUaVS<#3j=qukMC[G٫eU:kg7D:e܂k-8rVj`輖uu"F&킿YwNiU|Hqm mrR8?'1 C.W#CjQmA+bATӳu-jZ-k:pZ<E!U>µq%5<f akLrZ 1-%P}*ƓKTػi1ƪq9LڪכYDQ#7H�U3LI$$jA#=%SU%TUeWUaeYAf!n!Ie[l#k7��!�G%��`1�K�KD9�� qX]=wUcmpנW3u]x�O8u*ͼ1ח{h:yWPuy+*Yuy}ƁpBkٝjqs¥cŐU.;?Z`PƒH·Z:z^ "W|ԭ~ 4uJ09|.]S3�aZd'̧ٖ٪zgiu^c̮e1['.x,U} ~73Ulʀ0 +Ł�z-F<Q8Վ=�re~Uzi8S@�[יf>q'Y 83$GΎ5k3 Yb3E<*Y?u`P w�'X4^Vuy꼾}x(O2:Ϫ,^sJ'Ƒk"81YT( Aow:o_]yM7.T^Nz jo^m>'<׸pߚTޞ-\F믧oM ����� &:ek|7̔9g̿ F[ٗDZp7Ϲ=nC.ЖLČLX4䏒iQ5sNI{+WkDĤQ|I(j~s`7!ķ/i%!Xjv}@`J5p�s]lmY bcI a<뱄C�8 %�@� `<?B8�3�0@AaX%| K! qidIVpH9Yx^zL,k%  8^ 6�-`۲s$$ F1,yhCt�a+H@zq<0e3$2 & tš;M} &[Yeh@ ��` @``=,0>NgɉC >|?_;nݛy{. I5fI gL�ĆBFKGh �hXHh!ыM؝%K%Y/lW F( Ǝ6,0 @M2`SWIDD WJ9'+ֆ{BfD#iJ&d#|L &؂yCP~>&oщt$5)[.&@¯sk1f$BkeޒC( �ԢaI@8t_ Wg#f%ǁbI1` B�iIQj^(rK_>�c =w"A"Vs~vOx+/qnOi ?yx@/%!8'9H`z z0v%oX|S��li @90 q]8Z^;O&�h;* gF a4xy �|[I`k8V ҃Fִ)_{srBd(/)*` ln@5@@xxu<`svp&ljaCcrFk@S($C0] 0^XoܦG�GX(#>TM &H(=9R d3ZH4#/1  c).XHz G\m3FJ7 1n1%ǘ!}rЌ7TOh&A AA]zh˻K{R�|G] *4 {Y{}sְ=_?0wH>�jqK Oğ%#m�j0i\0ݠ+Ș{Ah{u�2L.L"M@Dt�hi1g 94g4 ��!�Gѳ%��`!�K[YBw!Ux(FWzQ vp<|T8t[x �t1 LPc . >{Pv<Gҵk5}Ф5Ki4H]\1WlǰHvЇR 6hh,j\JS˛tUJuxJO}M6DH*U$b?y<YlҭVYGXt4CoQ �%|@lᄏ_5�����+ |_9TB`xeA sy&X,9AMLA eW6̟݃0" ЂE*BEq;@{Wgʗmdz`0pe : *5Ep) xx1z'GAH'Aa>bY?K#6X���_�� |_9V"~􅈡b.AX"L,9⦡A eW6̿q`$ȃ` c&Q>~ _ .Q aH}V!@72[Y.)%D ',\)(Wl($1}]'GAHNP0| ¶AÆ V���W�� ]2=ۨ\(WёpUO7-)@,<n揰C&\Z|]~/BF9x#F{ei~yNiɝ3,]L&C@'%.KMتFeE~ Y}[94B a/t րc9dDgF 9 !RBz }K-JoŇFZFrI>Ps N@KKLF$nl@GJR#4<`I M<W9ƒ"|~q>Ae8l>4+#F#!!)ǒ?DlS'|yd܊>n4~p?wtx9b;|nm԰@4'ـ3Ҙs6d>rvcWPs =~%OH,6aH4dhhi%*",;nS/mm'�Ha8 0 1!1 (. s0�w`.`hi5!9#k?Ͷ8"d05iAxD4lUPHc`$uYG1D‰G{/)汢Ȗ0Ud+C8%d\M>==AD~<uI\ (7ŏ9mZa‡ۘ 0?‡!u:Ӓzջ?n%Q%}ǏKmDvad[1_rPlvM!BPv�s/|[>y=ַsI a @NLAXfvrG?+R>NOp!B<: #A>A ]a3cBx{:,T99x8FDaRR4y`ZvFF0bXc…≀' `*CA]sH;*I瓍bNZy :ϥvŪniz[�Uhʁ_[!Q�PPsD5#1%_!H<|-pAcξ6s>Τ][PTVZҊXa)JP._dXHa/B~8vAq�����2X����� S2W7^ttC4N^X�jj((پnWZȲH*Zvv#byGw+ZJ8k$QIz]y�hQט)O( *$q�]+0u]7 }��!�G%��`1�M'�Kx` f6��k7ʽ5~S}Ҽa:H{Qx{|piy氠Y3=-L{ .ǑȑNs(]yTo')rd4j>zdQH|ꈬ=2y/jwqETו{TuױgiZ XxTaN^`{>grs){B#WEP~8:58ϗuRK**W]W&PA]z� H !+�M^̀>`yדaK��� ������ � h"A$( �ApPph% /1\�H0{`@pI [X+��5 `G &Gh  CA$$</TY t吓(  $PMA5�t'M% yHP A4\\=CA$$` z �vBd֎YIFN6)P�Zr@t�q`P 8 `M@0@h $~h-X CA$$` AE h%Ӏ32 A�B$ o`@5�t!M06�X$�A 7`= * px\ T�AH1 ~ M/ '0Aoʂ 0"H@4z�PH@KӔ^.| U!Pp C߈p@pI [/ pA4��`łH9 @XK&^ �jQ0A�F$ �ၠ'M48@X$PM /`C;Г8$ 0İO`&ߟP łH9 @�$ h%d6&>4)p�x 0M@n�pI [<. "zH@4`@a$0I KWĚ7Ԑ@�/�A&Ҁ@:�p!M�.9@1*,{��1&IEuQ d@i47l`1%?PK@ 0b, � @ B�!' (Q 0 @M �$!l77&L3p?+ '$ύGNW|?{� . ` �*8 4  : axyxXx !H`3/!\<M�`� �0Y (/p2Qs$�x@ tI',-# ,3w)҄y@ 0�1 )�'!#0 (5(9e"�vP e5<D܄^JJswɿVPMۡ/axn.� � Vb / w �PԕbPɛ#~  A�\v^gpHX*!H ` �@@�"g NbZ@HV'\ -�fP`$%7�v3%ru@ �?)!:hjm 7�"( RJ~ݰhUgj OGo}e )U`@01RB% �H0!X+X Zr0vHhb3c0 �jVX -3�<�HQD"` CH`', ci!4� NC ` ~߹~(�@*q04 Fٍ+kG>~=V+C�ϔQ@m!k \m�v�$"5�bYcrU]PP / @0&nR0Z( ĬhYz ef,N8vl>�;C%@vr, $r%=�#Y��!�I'ˀ%��@ !�I5⸻ǵtӦIgg/>rHiB%|5ad̨;n,҉>)a-RdQԔi8kIXZSQ !bURTG K\Wc6ڏ(Vjggy$>Q,]m=vKUjIժsKyDA-IT,MG OՕ}5L3kVS٦ss0kB[*zi jSZ�H�T3l$IHj=QUUUYuUme] ʵ{wVl1%ifuy_9c!:SK*4azٵTGr,PT6z1R\RY-T!pޗT5v$dsqVjPĂ)zf<5ŕwf5I":k8Z5e0Drb6DEVMD#y6 ZCOl,!BȳfuYf]n-#S\ڵH�T3L(I$AII%UiEififWmJJȴG\iknt +M~C$mX2@ӎk(M4]f3yr ˳k&\l, XW X?T2l ֱO# 3AUU0j I1{&7&Vݰ(-L7Nj۾Ʊު5bZmAvZNl.ܤka,CG 9{A}1- UIֶٍ0nw]DͰ֑D{Tè3K˴ ۥc$٭AH�T4E4I(I$<SM]WUX]VUYaRe%(F̭g4tn[oM2JW!8"Ԋr>)⍵cƕB5_ ZXuETBĥ5tQCN"DmK<j`V|`NRh\m) ^-N"5.+.Q&~l-1`rEuDK]=VQIUUMjfkXV4nc^t$8U<XUpKZ{qV V')%tЏNź 3~5PM �H�T3%2DHj8IDQeYUMYUlzӬ"3\f+ac%Cn($e=,Fm8ωA L7g7khVKS7e!ǵj:]kdiWSE<3Җ-Ru6[.ju1]y3fR:kP&2B+e{B;\̓+{\֬F g=+--֯4K/%VE2l9 \s[lVK6sRi 5 5 ��H�U3I"$I(HAUVUquef]UUuQB(jWpp`ٵkY/4icR *is%ҡ] J B˃VV^Bp7YsO"7X." HֱjIn7-rP+kbnzD/VkI%)BD&m5[#^c ݸ" "ШE) IKۆ 75 rrAZs]Z9ʷ =a @b#sHېu(alE-�H�U3E"(ID<ETMEUQUefmtUJAu$kjRau5̥*5˨4 \\25JyE6Jlɩ[$9,25ӥ[ /f[ɁZm#*H >׹RzsT֓Z55R5{C%[tVD[Y =6a=`rT5bG cQs\ZT$-P;,/Z$s%D>b(KIr1Pvwy 5H�U3DJ$ID*=M5IeXa5QMi(J %$Iu,2��!�IRـ%��`,@XbJB=�I8PMNO7zm`& " "ae}Pz ; I0R Bsts\~  d5 j;h3 Z>'u}﹝{@*  �Bxb2aA1;׈�P(� 5)Gtt'>>�#@iY�T +ṷ� � =@ 0�t`� OJpaYwU 0 i| F±:RFl;ܰ*I0+C &%! i�j�N�t�@(M"f0ĔBIl'5(F2$ ! d‘ngm@4�;*L!۸ԧ?[W@xHa'Omr@��4 I/(9�C��`ba0Z8 8o~PbSγd�ri %-�HВ قw햻� @l+JxbKJ Nk 0 A= TtBkK�H (7 o𮿞̐& OZ@/ P +/9I;>C72�# @ (DfN5�j�1Da0*MH8EV�@ @ ,¹`@ r ,p,k�K,J{ǿrihO:�3ro &x(펼 D̾I-$]0+q� �vK@}m�jLΎs6 1&�%`NQ\ges:4�0_Ec9d"ZISV& 94Xa 7IB8*P&f�"P@G�JB�\L�f�(P& G-< 0#~#>`>0hZ9,|bA�N i 8'RvNWf� !5HiEbiKLJP?+5(4ĢG~^�%8臱lϙ3I z8�^�f@&(E@*CBBd! 5�;G-Xn�|M3�Rc+s @3J-BB M&w|~'u���h .�+n !$c 2!�e8Ұ"9<`@�@�3 ?CCH_p6�p� ?s=�@'+ (nq XbZ0B[<F0Q K@2RSaf&�<!�C�s!%$f,IXk6Vdafsy,0%,븰Ɋ- CϙAEh�$"PK"N%lJs h�08�LpŠ4%r�S~vݯ4˶�/J�ԆaDV& 2P Nx9@:%[B7B@%,o)�@�\R `@`&g~JW� @�d�4 `Ҿ|%v3` �"n&RWJP4#nI $^B1w- U$A{uՀ줖sL{6]s uq`0zAIe%+ +r�p5VE'{\1̭&Yդgk'{Rj,W; ?: H %4ےENwQEH2dHLZp[؟xXihL�tCx$p2�ŠZB9#==�@ɥ`~{[ g2h&�$1)(ii;G5�~�#�甀2�AxK7'bi��!�I}%��`!�KG380K(B~glΥk �0 FOFvZ� `tr`J>wƽ��1@ oCXE`>pnXHIAn}©�xhAKxG4@�R� f&'t%_^�>�̠ LPq{q@2�א�2h*�P 1hJ>z�`L�Y8JJ<@p @ Rb2d#ꗧp2ydԖZyO0a@SbF9buEVu(~0O~}:0LJa:�3u FkHḫPh @aLM&k!�ǢXM&f:Y3VC3ZrJ (d�tLZ4M@:ei@ZH`!%�Z_,EUIAFY}OR6bF72U?AYӀ)a Xi5vofsxr� {n]ߒ& f $ I:�=b�3 _!Nu@hfdŋa7<ī!E2P@C� tfJRK>[RL&E$'a; > M<e-r]r e3�PޢZ ; )KJ@0k -_` "*tn|%g-9�,�2 w �DE�gu M+r&Ai ),TP w-yN1ՁAEB ) 3]}Vi7`y5}Hچ:ct~V5 B+A\DyX* ĥ k0uv ?: X;hƥ`P�D@` w�!�~CB%�'� @4�pMW,n$OA(�L 08 0Šb �Ԙpa48a (;@􁒆? J�s�@�1�4;  @B ?h,R P A'MA,�D@&9 p@wx '�&~C i@ !. Y R&A HP=\P* �8| M �:`;h%ŤP"�@ x"{@# �:`;h$A$ A.% I( $E&G}A3�pb ?H (ph%ä@"�@z/_rhw @ɠ2&*� I 0A;I@/�0I A �8P+G~XlP '0A0'(`P&^~&@*$@ 5_0*������{"㏱\T"\|P/YqT6Kz`2 , `⦢* Nu &a%X0gwdqhxMQU"`U ]3:kwS9dudx $\4x|A$5,:2Z81ʐ3!` $ܯ A CH-X: 9G,5\Pc -Mdb<ab Ű<DrjpMd^����_��{"㏱\T"\|W/\5"㊧[ OaY`W5PPse3*S8ϣ{%�Cmo`p7گZc]͖̼ #H_Y"R a!e L|<)ї^Q!Tg H&xb xJEn&2Q r> aaņ‡Ymrk$,`-)#'VKk p���W�� )aҕ#e~Gw��!�I%��`!�M.cB(!�NM!p+(I۫bIݏkcY^VYYĽ* OD-rI5 nJ \%8. 8Xu:Vh`pD4 i?;ća>n3ۉì 1F>Gֽ<< QK3.JU ʗRp;&_`B,_)95("<#g<Wm;k 407ck4E`( l`ʋ(i`*u@hiO1&E1#3,a%xx7n̏1 9D\#Haͯ0Rbr bC\nrs`+z~0wbzf 0αq_ 0c cHVa 4?," $5"y̻AO)C=P #�@Z tKIc> QT 3ٳR[ |,h}D, yU֎}?^bwDĆA|5}[jpnxq>,baAVo> 4C�}eZa$ޓERZj!{Q]?.o$P,H̶hE1~B=1]]6I0:%_%0Q7_<  15�ĵuD fR\m᧊Ҕ5 *ͅmj?iU6FVAQTQ2cXs$.!rqj1 , y-=#1ߕÇj:CX֘cO~(Fl.%iWS P Pʗ`]I(iHwk<%`%k ҩ������*X����� 9Z¨ʎ04)av`sۈ~>~%vJjqL}uy-^n2'P,1WEi^lђ>zg13;?q;t{8{bu<XV-S�N,8-Ĉ_9^cnb! \su7(3(p&H8FXZ9Ɖb> .a.W٫>H1fO0^ZFlGxy55!^C=Ρ#C<mzO5y;Fb'PeiK:j+1>6eVnmO޼Ǝ<߸j.VG1הN'بDJl8BEYNrc e$?&" 8(Nn^c~,X_ <JZ?W4#qk7`q!sk#MH`zA`Õj0:Bl)|؟-Ci-_ na< + @ʂO8O1Ěx.PDab~ טD쵚F V#yhV `k,= 4q5'^4ce(KY׽˯c8)'י<1$0i@.fT环MX����� ][No@3`H1% OmyXى8h5!̀*D� P{d(�*�ZL%�f,0 @@x _:Ie @e`dp �4,0Ҁ H"} =33H�1�|MPRI󓇣lK(LHtrNQI ز5#tmmi&,mٛD0__m��1ImV\<Phgߴi}}p9O)cG3æ J#$}}D"diҁDL < HB"n��!�I%��@ !�Ke;EcVAipVmpHZm#N0걈^"5aKZɭR-K쑭B8Z>\[8*U5 ֪(>N'rnFH1: 4 Uc)̓u8Jbܴ6=Zs\eU6kf! bk(5NT"5eRHkASyyW+DkTK�H�T3H$$ꪚAITU5]VYteVyT0zz.Vʵ^ʚVpb [ :|J5#cCص~QߵJm сoG b]AT-]*LMH45DFk,TG4FIf/_6f1#FnWW bWq;օ s J+\)Vo9Dsn8TmaterBhv"CgWY h 9>2Oi3A6 $ANdMh{vmH�U3I$$I$bI$QQ%UMfTa6Me]&BՐ~&H@!7 dVҮr2aH@?!^e4cafe:,Ծ DŽݖmƶkVTSXMrJgs0JYt$9tV[ƺ*^#Ô2f ko t:2ZJTYrsgSďS \9Jش kZ5e-tU)A9sR׵MZ4u:Uh*eN"٦H�T3M2$I$cME$Q%UeYUf]fmUêJ\H Ul)Fm 岚iFK]f͔ƊT5K[]t v=Z֨eٴL\p}-nBGr¶nDirfuWڙ:\UḘaAQr[Ђ(s!RdFHFRPdZ1Oa8Þ5 (EbBkrjSw F*Vܛ:wF>%.c<ׄ kZzVBHWms[P�H�T3I"$%cNEQUYeafUaFVmU<ǮJ,x$rHK-h` ֥*4H5TcC7ml4%Vٜ!-f9zF6իBJFDNƑnX}fʇ  )H9 ́"伔n~30Uz ѦtCj!I9TR~4lqArvꘊ 2irr&SrPR%85H={-# jUsm dH�T3)$J$EIEYY\eY]|ጩ7IQtcWV(bt|WV3dx-r3qjKh8\(QbB� .H)SMp&>m<dYer#tjz5 V`4s]DWva!eE&Ԣa{%ueD|ܶSKۛjM٢)NSVH_I?2+Mm i*Zб2jհb5ڤ-OW]HtZ�H�T3I2I$R$j긪EY5eeYigy6ugYIb~tiTz4ZFkʦ ^l{DC4F̒4n&{jV<k~)J,5) m':;CgvJ&Ƶwˬ4.ֵLeݰ|vC%rkjDDv:ʃ 1cq5EYzW[L mIXEֹEi"Pp813I6|akfÐa~2YOJz]6+5!oz:ÀH�T3I4J$Q$njE4RI4YdYu]UMYT7i;k[IFB9͐յv{U'j��!�I %��`!�MtIպbo݃IB0JIʉx/e30Huh�05]Cx9�@9�jPǃzqS$}K$/ܦ1%Z`�ha pR�lSXN Vآ[/D$ZCS,^{;fBM܋BJ5_g>@`T�4:�P(p?{�% $BP�B` @L( p*a41h$`x �%�|)K&+I�8?Q:An6W%o&uVa'~-Km]mcRa Cے/0,v@l K]XZ |ti M{o0j7G9;=ED>Wp>X@rN�~dIqsnA':|� Glp0 &`Ў2).a*1GSE[lQ+7w~N!�q+8d>]02>407I "�p|sLT�0 4c#S6JR~>FFFljZ.?JAԓ~! Han5!w K"ʔ\?<C�@"!P-&Pa7_58Y耟~uڐ#[q(%t JQCz/2W[Tf  1_JI۱5u0\ؤ'XB.0 +6wcBS|8VyG Ò9g ̭6 we RERXyw07d+K5B5SUs)IF},b"ВS%t@LBHK-<R %~�2P|xu0AdĤ^- /1f>q s|}d:2K JT8!$H:fatlj{854 U$BREbLa1E 72PZ,MɄߠ|my뙹\e2Ša5)f'. }H"A]l YOhlZbbi B-JMG[KujY=f B7B;{U3zc=*+ScV&15%|2S'ݍa.+uv5 SuD&įHJkʓ'OcR~T_Ւ\�����+r6L& /Q]\x<7?]،%.#4G荩¸.@î@T)7P *pUʗpB Cit Ð`^ԡdK2j20�L v =aTh{:{!œ֓"ɺBBIpoP8n8"A*Y(; %MB<A ਨ] <@˅ ۀ�����+r6L& /Q]\x<7?]،%.#4G荩¸.@î@T)7P *pUʗpB Cit Ð`^ԡdK2j20�L v =aTh{:{!œ֓"ɺBBIpoP8n8"A*Y(; %MB<A ਨ] <@˅ ۀ�����O6 7C1tB v@Ȱ3{ 0rr!>G0�>ϝrtVB]<oT>ڳbAa˛L TĂ QivJ쑘<)8-IGRXpU 0W;V} _,|x7vnRGI8��!�K*%��`!�M7;>otę'vD,Mw:È_\Mm臁|o'ľx�E�1 SpYq+ai͛1X 6&tx`Y!I!  %<jl?B&γLq* F ^by\ؘm.ÃQ|!,:|<;%\)|,h 6Vw�ؘ:qU?0ζ0J2Jͽ}C$q| ]83:&<+m&sBie!{u[Co-?b}Wc٠ "U_c-M[{.ˣ >,b/` t9@)0L?<90[JBsN}rxeQҚ=i7q;:GXNO̧g=mrØDȐHPWSrQ_ݹ\L/ݼ(q9؞N0,tL5gq$^uR{uCvo{0)޺f!݌ gǻBN�kaD 7+Lad&˚JwQ3EAWD hң<i@x/gMXiUJyzWqV����_��*X����� 4hqU귎X^b:SK5`,<olxw:r�~<؎:;HG`$7$@HGP%gp;i` myFsFSW[e&ͻm%*xGW:6)ۯ0Ti�81 V#�X/0%GϦY B|Ao^azxV .yσW0)k[�}}<~#(uyRutpaL1KacaNgCQ'P^`Ge%bBt�<+} 8ѧ9(n18ud-MBMs!sK#Wl_�gќw�>e:B{' s"a>d�>; wp b~#H0fќО <^gx*SטZM2�5#�:ڼ;IX%<ft'#ƭ6vlu]2Q }zކט?]i0 mGmoi_W$i!q[. X3{k XNskp.tsa�ewxǑ Җ<мBftz 8p33q_ZÔ`4XDkYq�6l<yZ2 :0^^ֺ ΡB;纈{s^[ ".8jn=X̅jsx[?=ys4=y'(ce|-VBJœ!Drςş:zÉq1eNqNР͘y%S׃:2ezi.=~5{.v3:s |=Q�YDxaS"HP{@wD !^ z@UU|b?XqQuTι_>;~..k:8.Ti^dҌY2YDɍ 0tyRʏZ=xRk%����� T H^UN֙ �2}iNh 7Er3/ŔM H(, @t4DM ǐ" `0R!M+^\�`jMY4tCjٹ;;JIq!7 ` P?t~㼩QLpGQ5sUc橵A{Td%˒(4,cF֫?arÕ*A`NJJsOօw:$İaj��!�KU#%��`!�ON x(|Oh7| tCdtR]VhE0a3ɤܜqrG5fQ �f7<751|D0f!.;O .Km!iv: $T"abz #ncdh06B88)3k�bw?i) /8@H#{/`?Cˆ`=部.pp Z@w3#3{ca'H�n;kqOAJ�$&tXyDzpbQCMy(:!!(x$WBG/ M%|8J@7BϾ_4ef�ۍâj P rq~s3 �8-Ҩ'$@A6(/q[yxEv @W15nDq:7B- ǣđ`Ġi))Ӯ�]! �`^ƒE(>MIuDRY6sц$cwäLLdgȰ@b l=،iLM&: !d-V@ߪ$u2C>vJ-8jUQP=8%Vaȶ:q}E8Rl*8DCQD1BۚJȡ(Dz?P`: L(WҾo`cU! }z78ׂ/ U͚M�kvŐW]!N<+J9_w׊DCcCs2XDqz1N89̋@kOu`zzOt~c>FjC4DKX*D1c(fW$U%,n7a�)TȰb+[HSC79[������+/XhPa gx@s`"s򬂹X AY @/8,cP+TACbh#0bšٿ Q#`lAy?.kY_:+=2,t P%={jM`r\R7" ttul‡-H٬ MXl8"0#O>���_��+/XhX Mex\tF8%y) xwʰBpTJ޻L_l3>5^D8f,);hS ȊZmPER9 '湐m�:9_:+=2,t P%={jM`r\R7" ttul‡-H٬ MXl8"0#O>���W��WQu|u1^PR0X 8 �NSr4lL�w /0|AgZ2I^ң�<FcTfs(8, +X5ǎ{:!t_MX*Ưfawg ˩ፊ/(ZJjG{Ùhܜy`5U�Ēh5 gY!ka(]ufta^i(+@TC/tKn&4%$g9-ۇu]HtuC#Eɔ>&36!T9<2݀<V_0!}|%l8Ġ_xv:|c89JZU0Ӥ+q N0 6#X,bzygc4\*ξ?H'\C,U(.B?ف,|58,y9GwL,vt~aPOsǨ>z"O6$c-iRLΕڈg4Q(G$sE/? 2q &A40\p0>��!�K1%��`!�OG׃;ܕ] +TD`dĺ>}gacyiHv})FIp^8>Z:`*`C!(>" ~_R0x�Շׅ "QLH%(;m?JQ 3kiꈃ?V> ʖ�]9H% AoC* : Bb>[]2GCdD@󥴈P2af "蝦UŽDs` !yP2}Q ^(TL-WHF!ocҰHUO%no �����:X����� l>٬j08N9j2B<I Ji;HPp*rOG; " I%y#4჌KG3w߈$qϑfj;rOIk̒dXTJQ,vs :� bzckauͿtNU{BKY:Bm6yU1:8 f (eoz8g84`UlaK#hp}x p0Jw=wPU0{,+ F>u |x>3B>8 e˻z3iP$Elxʇ {93-g|ue\<a^lRpó'+�\6`qdÇ{5Q^bw@j`xNj]ηհ 5N8+b \$չ�'bp �>1�z&w_+LO,^`X| G6SWc>s>+Wy3PY8]s8* `#[:#Їx<h�Dә7y-piր8h<P TU h8�LJ,2 VDR >^)Fp3`u0Yu$bBqQgo:-`��� ������ � iaM @, !@1K֐tA�AH0{@pI [|+��`0dA A̚ !@'[׀(Y+.`�;( `1 @$�'�$V �=A3�p&0AoƠ,� CA$( ( ܀/h$PMh7#n�DX )PnbҬGhiP$O �:_O`&=^ZRr�7K @4�~@tM){sDr�xS&~fd%?0S\@2�+,Q5*iI-[?8A V?,e0L$‰{S A�ĘK2H| @t� x�ڴx@/A$ܝu�.I3ɋî` @?& Jg`&&&Q7q'7UC�'�İI!h( " 0M3R_|N^  � CߋŁM =b&�'`A4R\Z.a\��H1 ~ 0 @$b ?h%A�(_PI&K�'�I z,LW ր(8I!oĒ@0"~�C4��`H9 @8ܰI!h44t (@p C߉@2�}JpI K0@ 0"{ !�TA#�$ h%ɤ6"9XU\)� A$PM@9�xD$h-�; 5@0(y .Xr4,9E�|�(LR��!�K=%��@ !�MLcl_ʘ/6l¤׶V+9qC*mJZIJbǭ=*>iv6<k K*G!Y-c&l#`O\WlmZ  $ ;ZS֥kۊG\Ư,ENqZ&c`:R\"X<Z6mUṼ Vr7#.P�H�D3IZ$I$ꮣM4E4Y4]WYuQVkq _NEֶƱzǩlOӕZlA[1zƙI#Gu),l>WkZZ=,>+_j4nf*U˵GkHFh�X].SZֱVn]8忈YkFXNK0ϒ:|1"#̀ݢTO ͦׄ5;QS3 ~Ez̭©R5RJrZ]oަ_F!%Jܺ~HNDYH�T3)R$$I$Y%Y4]VieXUZ ئMcS}NwɩBBM\w]t8. .hZnsnM"W%M%-t-Ɉ5B ~ڭllTHp4%%횟$֌+F4=9+n+BaeYoCf9mVZ s8"$ƾM-̮V*XJ KQĵg:kNùt,@S ]FFA3JčkZ�H�E3I2R$I$ⸯI5I5UVM5aiEWeE]fJGc~4"[F-S1}M Fd)sPܾ!0e4ħ]>#mVuhq L浭H;V5jhnX190jѭcSms7 vVmM" @ʳzc(6vt2NBZji)l%2S#|+U8Bv[lDeH}{5Ǣ֕R  Zԃlfh hJc խ(X9k�H�T3M4I$Q$PI4M5XYfYuVa6Ue[u0] |[uYWUE_*Uy<<\V=kwd%K3| +W-ӵ-V͛ZC#JTb-M#Ƕn(T.uj6 sVs`:Ez-؂gZ·䣲v"Mgq +fA^!T"'kmdi|d-R}'Ã"r5j_Ug@v+#H͌Ra M zX؎ʩ%mӌmj�H�T3I4I$R$MYVWauivavT]];!Il(>Fm,WOuyֶ6-w[մaWM]TM*Tgg4mR)#M䵎< "VB<H7{l&*!21lg. jFCzeh'V�\z2vkkvz浥0*y3bQ!Yg1:kTVXYAfԐ].q:QHUﬠLL!; ?$m5$8bfH�T3EI$I$ꦴ9$UI4UV]aFZ]UfmW#kkyk涌s)A9czcAzW 4cXm\>iR lR*QaA푱y+,pSД~zcP oH rڍ-3- J"R=w.6B-&LP>Ϫ:̛k /< ^ACSjkm K7N .ZƴcZnHlBRk l 9Q: 9,6xVhj�H�T3M2J$J$꣐IQ5YuYYMuqf+ 6߭m[Ff푝n鳳je9ix+��!�KI%��`a[{rlA |yQ^�|_^�>R`8lw61[!B�@&2 #6~ 9>nCy/I?fj ՈG߄vWhp*1 ǧ%vd b d́[x3s{0�\Y\Ջ P 'Yw��B-hQ'^p 8,~@1@h,%vqXvC@@.@;)%'v^QZ@�\��KB d%%Qd0h 4vI(.UՀ a; ��tda~@5!Yhώ4* lWc ye:Vi;_tr^Xo1wy{#qvVТ2«%_R?(ziv,� x�Yx-r�'&`:(K Y7j;[6{�UCO@ˣ X@0�Кxh C:Y֝8 `\N=&J%gQ,k8[kdbCk�+nͺϹ vP휋k�njEZ ǣD0WG^gP\I}bs^ @ 2(ێ턬>4$"cL&Y}�4��9�ȘP_~V,^7&H@1 ! l }D3f�MhįRNC RY4 +ed2hi NV[7נּBB((۝!�4IR~g5;?u66�Zaܱ@{@�`i|1#JGBp]% nZzr6Q$K�4!ҎO|s�d"0"V4p Fg^�0~Y  HS�tP@̚� f!�>�QDuߔ8�e /~9? Ehpґ>�3&V‡ '@0�dPdԏa!MB%:/c㮫 JFj(Yk'@4~-Ok`膂iIw ��h0pf/p'RBI\ b�!T3 -P!�>,axhaj-;[f2JJYI݃��IP(=$L(4 &Yf#P(�@ 5 C@(�AvB6q@XȗQ0i �T- [���lh 0>:`�DL(<PXM�r�(JpbL�l&98QHZ .!�e#n>]F"y 哰]H%c(p"&�B"bslu0 z945 >`/XK!�6- kKȵalM�jv3m 8ш= =xx]P .C;%8Wx'!b^Bv׈�J�`tapC !7#߰�@ɼی5_'roR2~ |6֐P��|i ԄaZ^Wr|wϯ8 1s5Cr�t�T[Զ ւs,D;PoFw`a Bꐒ.575FJbaI t- p`΀BBzc1! id,1#w@piAPϽ�j^&hW'y�++垫�ԙ>e>.)`�`)a�> 6~??Ɋk_rVr�: ` !H*M Y<19(WG} wBWo~\' 8f,mݸt-��!�MW%��`!�O'u@ XX`E�*{ bo\`:� Q_@(Ʉ�c` `ԻeD�`r=&̽` ǓKF-ٶטICSg� TjHd6H@L;! ;]K)l�~Pji_L1kz zI3Z@ OC]7�:I٬#T vitް*� Z0h 5<<1CZ`ɨ߾uņW-=;~90uVaϴ&(B-G2QKUoX(i4�oϷaM^P@;P %99Ty\^af6L� 2zpNjk @PY1*%a�@䰏ߧ�o`R-))1 KHOzD>480!ön&r -0do6e&倀o:�#Yim  +VH? .ZC,Kנ@Xa)FW�ƗWi hi7 ’zrG+xV @& �b @{~O@ɤԌ,0*M ԑ쀢Q<Y48 {@&׈LjF2qYZkN* `)tEi v �tV&_]�@ %dw m-ь�7{ɀ�vZIx�_&e,Ph?�cfkarK�(6� Q|KM%bec7SAϤkv9Wxhf ؍g&'=n /{41Vi_/P}@^3&p^hL! +ؓPN@�JpI(A"'@ 8 @N ?h%¥Z�D@ @E&G~ @�vҹ;rT!jT3"a b` h ` M��}H`ߣ �5 He'U P@C#0LA+�H@&8Pg�#@1h%$A.%$%� @�0A�}ɠlL@0O4b� P $ @��"B&`8$A(& A'� q)�N�D�` p=`/4;p@7�i A'�  8 @B ?h%¤7< $@�rhwL P&ShA'M4A,�D@ 8P @#@ O,0I i �ůx$h=)>� ,�80*ER�`M��|Xhy 3ɞ �:PR5�7������#5FC"Hw.gA^ϲwP[ïH1ˆ+MO�g7Xb9p`-=.Tҫų>AO;1RxM3qRLxy`g؝*[\hA AԂlx.@ƸjA~ ck]F57K^W=F1Wσ] @Qb h=5T eɡ:w.UQ5 Hfᗺh3 ˱ eƵFaGOH<.*e lXg,xOf !aZUBt ~(����_��#"5M` &\ϰ ep !?^ c W:e3b2n`rT2� rs 8gA)`5Иqie&炮xMǕ.D-+.A�la< kap c.>#B6FQ^@=RAZzk ��!�M,c%��`1�QW�O C(,um10"\316+j@9mIͱˈh3 ˱ eƵFaGOH<.*e lXg,xOf !aZUBt ~(���W��,t^cn/,>Y\#+r=riY$cNL )\(?MsHHܜƸq9FsW<>J p#Ѥ$ QBdp7EȘ v %rR8#% Z;mO>HNXGdH\U<@[5lNVp#K5\C $%(]e p8A,I8y|ʫQeJ{:7%<*D TZZf&C!V%w3#tA0kPju:D t)`5�r }cr!:%x:)J_d%p,PEv,$ Gf$|? >fԞ3 (Jp%?T@Σ2digd+7;HC�p0 5F`k;BIFp ޭ4T.AY:E8](d|;b40 -Ӯ'+08m'F-|,*{س[w,g.S#Z: bSR][(P hG#Ɯc+D.߆gJ>Wb_͜S ^sĮQ0`(?W8 Q?_*bS! =XY_ dgJhptM!`ܜ~Ayy>,C@`>X~M񚰴,Ie{vHqq:FgqIZqJe!�]1}Deȓl`b@`B&+Bj]r"(l6[5M)UAITSyCvPv:A &+I)Ar[~؉^؝ i$<X@l]j?Y:8%[0avB5QA~wlD0(G*�j~(M {JV1�P1pqՒ{YmQ<;P�u.������*X����� c|`WG'K22}yuv%Ș*0�ט!@oχv9ߑHCc4P;eƏQU+�Dx~{rCÇjl(R;,u0qL;;7Ml,0頎ㄻLv'7z:Tm9Jj8]˗z\{U^`nga9Ͱmzvaƚ@[;!O;m7^2ctta_7י?|勵SUyWы[t;8xΆJQ<2r#$sꆨ_dǁ<g%Ie/7Г0yH@N:<j2Ybw4juN)<PNpADz ׾!9߲_Gv XvR!iC?X}y:|9S=y3g_NAlN2W|e?ƓnEW*ƀ>70'A=y'dgSP)`I#r9s(y?8兇W^e]iX}O<A@^a0zS: g5l;Fsȹj"JGu]#>yrX1=B  _(pS8Px^` "-#xI,*u8JJ4x㲏4:7.pVP kpa,@l B瓔,y"8(;Ϊ; W[gK3 ؐ+C'898x1BB*WP�qD0��!�MWo%��@ !�M"IcZˬ ɖFD"G%0;jTVDhd6EHbM@Ԯ)q+^a{h\~ Vk9 a0_ &bGҷee bKB`V)T^RyUTyNjv6F!dv´ZݰkJ!IlݤDW cYTyn |pU֦#lih/8��H�U3)I$I%94TQUme]euYYeU^II^uY Z 2[.$VؘdeRA~r)#a;nH+Jk\0*k@n\퐵jk]VB[H5x䊱65rV(mc#GoB[٭[v#a5JzGw%P89,kJl<^P T9λ5Y{fK3-H kV6̪wz196#-b5IWs {YqǪG>%mQƑ]YEM��H�D3eI$IDn#MQ5MTme]VVafiveVYpmᕩYƏ$hHWq"4:l7ݶÂk V|%�)$jKE׷0=NPl92LƲUjԌYk d;1kiT =mV2Rm9Ĥ9hPR& $B&k3.֮|db7-<)gy"54>!ZU@�ٚS+ 8]rUkW mYr�*t.56̷2ͫnۊjV@�H�D3IQ$I$.jQIVUu]uYVUU*ehR=8Amr5y yjkDmmxUbv_a>sZMSmvZn2k[:k sqkUakR 4z!idJ#>sd3fe:ex5&@!mF(s̛Ucum%hXvHnT6`F6;\{n0Hzfj)!Vj HiI?$Zָ,ZV֌d@}Hk0m�H�U3$H$I$ �MR9TTEcH=uaDWT1abM=&NYTWLEPw2DKm\ jR:^rE(-kYc6wEzB cL(%5h/jn4lֵk9Z4mHFkZֵMt@Ė\xBVkZk7b#.Er*1-gjSI~-BT LSkHjֵXFܯa!`ZkZrmիkkZ6cZ��H�e3%"R$I$;*!EE$P=TEdATIDIɹ%Ro۱0qSX/ 򍫥r׮iHE. nNԕi+Kc.^=kflަP5۶xen66$t-hk[4!-NN m_Gֵ#浮k[PX:MeFZݤfKSwhy"HҬt!~&8&xAPP0 aֵ l$YZ9\A:,@Z!24pYܴ��H�f3DR$I$j=PIAI4QDQVRbԍsJC[n =4u!l0d G*maPd-F=6ʄޒn]襯(ՙi35K1�pR!kbX7hM# t36։gmםJm&2 'U2{SA] ImilB͙j,Fe>,V3/cVN~Wg9IDqk{Z4q`G 5|GVMk^#f^٩ZH۹KٵH�e3EI$I$IAERIQDUUUeN-l Dd6B ]CKŌV`gݩ&\Ilel��!�M}%��`1�QI�QY+=z_^6ly̜qL'DahD�ZׁHh>8W|E<,\E�u19=yY1:qU8(V 8*K2QDSeMھ-X-DLley*ˀ7'DAq41ZÀN,m0urC>:����� T'� . \2aD,(Raū�f)h`f5D&TR10SL(ln!'Ķ $z(R_He�AJ dMdcc&_n,F@M!o_H7!?u T�Xf7$WVOT}!w7Ձ֫[4 Bh$Kc F {B6ywv:U{oU  ZTښCG�?'def<pG�*Kp92fSNo!ZvB.MSw%A MUUÊiĿ(L`h QМ<{ٌ|gs7ϗQheDԡó - A?CPf?a2$H%i \#* |)vy>buKmvu- %iLi<KO#  _>CXyµW)]+A74;ݩF'=��1 3d1<Zp:mvs雨*q՜Vhh9,{-1)w#Ac/�=Ol90(p&ɸW/fٵp#d4A @ZrB8f0pP4R0񙤀À zK! 45XKP(@.&r9$]X~t � ؀+zLے$q06n5]K⌀vQ434GD 2J4�;iK4͐sVld2c`̈]_5T Q �2(O @Kr5oD`IJ1!Cv1'{ZXbC:?MB0p;!�g)&bKl� ;ō�\iy,ۖk滘kd倀VfJ_qV!誽5\0lJ-!ޤFe V"`b�w\00kdD4h?A^~(LB0}bO*ag )A3U$:JF&C=oB3�D'bʧml%UP{Y br䉓<.; e0>X' Fh է:jo9( @5 !7uKF_t$=I4qe v׭�1+̙JE4!3Hم# rF?^dlʨt�2!#5q�����+'^NF4',>#uBq:FYY5在xC|dw;-z} jp\SLu >Պe9Z@b\j("V ؑަ'ֽ춺2Uwxd +`櫠y5E (; ,`V)Ô>AݮB8}.4#������+'^NF4',>#uB|6qYY5在xC|dw;-z} jp\SLu >Պe9Z@b\j("V ؑސx$ife g!_;.5]٬(8]>A>xYg+PDNU păqh�����϶��!�M%��`!�Qa: %A]#<q(/ <I!aMtC Nd/wFlж@_$TG >G1RIIp5�` ,0AyΛZQHNNt7Q5 A:,axGo%(I]wFW*FMjONC 6ʏo*\nj�ד$]-|Q ,iY!$<4lHQ$$ p*2ϾS,l,ŷOͭ: j5 _p%v wL:f7ܑ}@wDwa(f&ts$cR̻EDr"v` (I33!_bxLŽmx7ozGq{Dtp27ޫR $Cn,ЋO]1 @<X&�1 ;ttlCJ2'�04ME;,4p0|4:j5cWNovI@͚d#,MĜiQA1|B0…40dCn!x$IX_ Jt7 Rw`1;0 �n&̛lFL/KB6&դ5.Oe a1VGS7]A:} BEn3)vHZZs))%, =pu(0'4`*Z!_\LaCr6L)Oq@u|M@on:�JC*|uYܭtas2_b22e<zZ p:0TKI(' G@&&NEU/ * }`w ^µXMʱ],:D7CVE&?n({bRF]_R+2XÀey&Q ryv`ܸg|�4&#vxbVvX>£I%MO!}@0 0`i%L"z_{���_��:X����� 6(1Wzо,` � =uqÀOuc9/wT^bPW l1r5 $0bzHyĊO3%9є 1<9L3.&}u(jOC1 sPz=8[̡j]ߎ(Wb,Mב =�a*b%a~uyc! _U=�I̟Nj;uyu 5ƉU^ RvTW#å^cM^lh",D目 ,ʼn؏u< N_P&9@2N)za XPiQ#0v�\AƓ !3}OOkeE֠D(t`�|:9KL:*ω28xVn�?BG/@������ I9{rc}'Ʉ((�(�M�F= �;]cP` @ZJR$B(4$ ,A0XG#�JzJÂmi&a(&RPb1 B0f_o &E^Pg@"r Xo'mٹ:C@C~R@"J,bIatʵXMN!!wF8间~L K3sD"i/c<3!B_1rHJp53 n#@: ݆Fv+XΓ*~}.Tœ| }ds INB"`@Z#Q4"䔆`& m�ovS2>6&Sw�5O)G;a ճg0btJB>OMXP e/ ļB* &��!�Mؕ%��`!�Qg9_(H0^a5(pC|,u^gXn r4ihbt1.Td`,lp}xC@|l-l{>= ֕O>!hJ #J4FD Z2-w>K*UIM)['`Ο`�? k0#EmFZw|`R� Ka4C1%ZP LJLJ@X^$ 4Xa@S+#w$fA`! D6`N|Ѫ`BS PHcM�쬈hAD , !a#7ynuSa2!!TB2MJP!�n hNGtR ;5& Kb  &d~̽x ;n�h՘h4!GQ 1+c w aXi+jUA$AJBerw)E~#QcZ@.AR� +3} 4O@`Ah̽=t!"L ?`#aA=UVIPYC4dh&pitJ\o2/[T=&gi~L-D40ӭA쯙` �a+Qhuvw @Av # xD29KPt? I<@l-_4Q "Ʌ@n7mǿU]).~&}@rRٳ*`2?v.WAo*O5"~5,:=Vͽ(Q@)O`<zJnaoEX@`'ǏMRb]AƄI & * Q(ai!'g:Dѽ,3l@3)z(D.]^ .1)w`7/X9F㇓ԑEa¤+'Iq`VxBPFtehdpׇ]L'`?oƀHo J O�)TcixP:5�ofg� ɤjK(4v8*Կ/-x`B@, sm+K0q5Ԡ`41t ׭w* ,iGU<�.@i 4h�709R=8>X�����+' xvz#uv>:xlG@< :Zfx>V 8:Yˡ=&kEa<`h$E43Tf+ U.i%mn#et+FPgN8G$H*,)҂'RL>pv} `uMT]с'458P@hkK mX},?L(y20SQ.(#u A tGƋ$NxNIz���_��+' xpg!]pn2Ξ2ÐN;鼫2:Oryv ~d]0f;Fj{)szelH477}eÔӵHU XSN 8}J -$IAMsO2&&lay;'I`h =z<q)(UuKAkzA tGƋ$NxNIz���W���~aj͜5pPf@v{|rGsxnàwP|hH|$!_q0tKU >8g[}/WjjE Tk3=SPu*mI?Mޯ{X* ~WcNЀN5M íX Z m*^ )HMl9 ��!�O%��@ !�OjU:vrڲ* l%W8rJ͕2:x /pZ됓R*Ru8jV WBZ(!q-ŮK(! zUQ-\ +ds`%b1ږKl e(FsTB¡m`5miHi>i4q;JiFEt']MUk`k��H�e3I2I$I$겉0PMMeMTQUYYe]f4zyuFZ@-{?ޣ#k',cTJ k<csz 5TB4sm]Af pMMsr<_-9$6Uhث6yCDZ3eMֶn)*] HD[*{򈤏Daaȇ9MSV%1Ğ"Mc>KZ䙁`jCB%SZ(Y S)PJ4 kVֲ{*[*RBKN Z<@H�V3hI(IDI4MEUUuQeUeUe־!,`>ơdDFU쒒P$#9ij$HŮG 3U7"VZ l3nj{+m6UT)Wٝ qYֵ{ 9-L&B>Вa(R՝Vajލ.U+bamdΦs9{_<SC|Y_g9XZ.Xr6709$˪Sc¢[5FVMFh,-H`!vmLm7t&(8ev0ȜH�U3I"$D곌-UI4TMUITQUMDUU&D]Ze%ZTWcreN,׮c5&njz>"E4aurIY$Ň3#Ye68kY NV[0mlB"EI K.^TF yi,/?d&YȖǷMLCF;[.N}I31!ma5r]}f" ]-i nM6 KMRwkCj壮9U! 2e$qa0bH�U3E"I(Q)c,P=DOEM%RMUUUXMeTϟ뤄Z 54>AQ $^ŕmL (l2[kmR$X&]VL{ $hts8=1iUͻ\[[esB Czl5ծ[Ȼb4l"@%_ZD}STMmB#hHRi,kǭh7mUdݭvs*eOpkU8'j] id-MHP0XK{*ϵ)?qĺGMdLH�U3I"IHIDh 1Q=4M5ITYuUUUUU^-q.Y#d R尬g_% h,76LJ1gCt;&kdjE49{1k-k>Ẑ",zǸjGk^VŭrFt*Ad*f~0ngMa+JQipaٯG1`FIb QfmQ_vԁUF>2N�2ٹk7ld)�ZlI9ۃwQ ڮ6tləM_ kIk@H�e3%"Q$IDK $9#MTETMfUUSYWuVZma۴Ե 9+<k[l{Z1rMm|A)MOVIZk l$Z֚kmCZh6 A5ϳݷ)䲘Yf-ΓJɮL|)a{箷#ы٭k"9,-2_+qI 99[%ikVkY5/\GWS֫Giu|5PT<0l>5$b[[SM0°$ ^sxYʛlk��H�f3%I$ID IURY5UUES]u]Ua$5`"50enI:j8 ͥqgP\ dm)S-%jSn{��!�O.%��`!�QL-lh\"D D']Wk@)/'�W gvۊ,:ހ@X1 _DVGrр$':DK7n_V`G pǻݣ*è$,DQŮ]0}"C&r>8Zخ` IIC[P1$H]XGY1y/ jрߩ7F] P% s¨p<:7ՏO:apul{0S"@vKS)Elʐ& }nWs=J̝Ռa |gv'FkCו�|ZW�e *O ["Fū (;6c�bpB�AHF @�4hc1BXO( #VsRR0*>Smg`<:�вK-r!|.%#bxR>\B$} v!x'A|Ld_loڳ0i(1n[HYx:]dxF[EO !7x 6RY&@:JR\* _Ϛ�P2�;�!ADVL_�f�$c7́ >H: H ~ɑіr 1@`M,Iâ<�����*X����� @j0};up.\[Wynw^f.<vl&pN$1,Zs <a1v5XJ28N  ~PwarH$g1|>In|�4�}ZhA9CȒMbNH7Fli\ �F`1p@p@FX‡+IVW nHIBpA%W'H@I`OAAg:5lixDߌ�CGp+X}(XW5eHXq^eҍ3DY>#Lf`W# lΆ케d d.o,F+N@AHXyt?`rrƠ_}�H^QH&PӀ@:x ̂@y}r1h&*f2 C]S7˯ݓL3Zt3c 3K['!8^F$I0=B7$E%i^gN(E%9;@r6z\,�5RHG8!`qq|: 'G Lwd?:܍=ƕ^cb�3bv#p,P(W*ͥ׼ʏ>Th&@>ipblN>^`F<y?'\oq8^`8{j8܎h m={EʃhDY^b0DY^bAMM=e;hGqxg'יy�7Oz(s;p&<89@p3 {U4@j?8IpPV<+o &`g %'*]ye;z2ySAgw<�lT@\M~^7N @__"} ��� ������P ,%pKs` A@P�`1CQb`j_$}}L0@1@*^ +A<"�1^ &:ԾC1dIC{ܜ>Εn _@� ^ UČk�#8P@*dHMQz6؟j @�Ba: - ,Dad'SFXhb3;N�Ғo� _�� 3~3w>�3�πV6(0QPz c��!�OY%��`�878!$ p A@ C 0 N ýIcJOHD" 0~xU4H+XU �XAW! :` @�6&$4[;`ԫB>��]by(=݀@!@(aa%32�`LA4#nR7;+ �}r&P e& R 4hX::+t#/9^3grpp+ \N!L �T�!�x>yE>i@ /F>#}\B^uT�lY8F�zCv0;r Iˆe0-{�dC΀/`]]s[7�*� `&d҈`P4`j��Oزωuoh@5_$�A�%��Z* ?D‹] 7| ΂"$0 @APE!H`A4=IJ3bcriϝ#؉Y^BG[H^ߵ:!BJ;;0s��Pe#VRV)-�ͮV~ ('}݀PgR ٗ`�4!lĤgnP�#v ̠ͳt#j |��S' `U%6N귀?|j V푻 ݠ%/w`;"ɨ9wP͎@NL-eRXALǤ&ba+t(2a`8l+l &~tfO7�a1)%swl@vKp@4f�K1*?H{3f�\@/,"v�,d�dP{`T7u�腈 ;,MI0�f�ҌºA�;p@H`RƞZIݭ�ޓp =!gװK@.A l9&@"hqz(q6֍{tWde.\ꑃJF^�cgڨKeN)0Ł+ۆ%_`�WZhvZ27b}mr@AJ+}uD# X~(J^'ZvI41q �%mu9�l�𴐊HhĔMQu8�4cb[* 1,D"R'ړSFkA1TR� �YNS쯮 7Ob5da PߓIa0!|"j&�' @0,�`y+Z�.Z� 1N,7'^l�bfHj1B,UGf U� +gbN؏Bj C]+(5Pנ HD")V @�CK6_ C-8T$ZJBQ\+n}CMOWlav$.x;@1[4 ¨2x$+qyN&! eXri`Pb]OfBۇրsWVKh&YPUH'u�?U(ftd!#C_ֿ&j׀fqPD�=҄wo8- Td^ho0] pK . T4BWB �1}0 %8ώO6I: F(>| �vQwѻvcji=jQ 43pVI!.z{^ߵ+Z&{)~p: ?c�L^ ?s(#عjb*HTX(4>@Õ(Qד W 0BrHdԱX7 L W�(+,RIO? @$b\sZ@@C(C,Mϗ+z Kf�BCq^32adR(XC��!�Oǀ%��`1�SzW�S4 deX t}BhjL(1}�@vt1?䔛P �M/Id]1&CcW\P O0,Iw�L^U$b@*`7u&�S 1*a `44ru {~`3$Ju@1 OZV EAjk8bR_qQڣ%ԖLelamEWoAI%.acGDv�i ~AB% O@` V F-??κ q,$ԏ/ֆ+ V(fVpe<e�ؘZF �DRxiL�,z|44 `I4>$ Nl:T@^�ȴAh1a' @PO31ŀLg8$K&˓svpJKBvu hb2R �4! @v`&rcd_Bw^~k!ח&_^;ᡥ�K�xQ+tzB|})90#Ғn(4+Cia狘+*O00ܐ|F=Pa0*ϲ~`wݱ vf`&@cVRIA7S@cO3T~rs{ٓy Pf_)#7Cnbi\04s?M!YʳJ0RDybU'T3e](` ��+ݯJၩ_v@ %Aטw)>�wUh=�̸wrU4!�0/f=9)ujG.A3�`5?s eyZcGxv`1 $jKR6GRQo$̓iI v7�VPM)8{?|2(*pe-aw"`B� Koy0�H^ P�Им@1� �4&�/.=!% v0`r�= "| @�,]pp I&E`W+,)<0_LP&PN��JpI(A/J@�+&Jp�  IA14PDH�*BP ;-�g@� ;@#@�tA0 ɼ D#`&M�� (#`&M�� /;I�TL�S�4 d ! &'F{'8pENO@ xXWõhaD>4d������?�� ,a�r TM�VpI1[\ݍVP}`A�@`R�h IhKOY@0�B s�}7'ܜfnP4ER}=�ؚ~?9)f� |xI _[�t�Ryl`ܭ8 h�0 M$5% gdҒQi&ه-o0(@a4%{I]eHD0 &%,4 ~pt�M� jPwc!k1N>�vi$0>Ç ,0ۚF#fJ9} i�@ /![ZIY8`:HD2hO I^<w+>ntCχ@~&ae!$%"}BT1'rmjI��^FjFo^UO<DGa0n! 918z@I#q2k!ppPc 'b!Fn��;Yz" HdFz%H~ε�x,ݛ_c?��!�OՀ%��@ !�Q`%6 RXl}H4\:Ze [ѱ1mrVBEP1REѬؤrZI=\YÅۛ8gs\DdY [`n&,iԲ Z+֪]P МYr(S[Xc`[m- m[dFg5jmSS�H�T3$I$I$DTQDB S94 Q5S9tT\QEdVadYaFiFVMWi6mq5khk &d¥ְ:eb%L#BUlZfP!eSuX Y;U(O42V%HU5VkܑнzeJbd %009b[v[{bW4wvA[.i޵k浭jƵi::9k_5MsֶmkTپ6eAvmhX „ lqbL��H�U3I"DI$J8O8LOEEAM$GRIv/{c6̈́ Iʄ0ԸJZk9UL[ +Xc>%)T\*S HdX_Ҳ)umqc!*ͻ"F7@TbjmjդR(D*m9a3adSHֵ$)hUoVmMjRZVz%`Jᗺiֵ#Ei_DR8;7rkoԌd@DCzֶi�H�T3I$IDQ)"@@RMM$ITY5XUW%PO@@(@l~B/5~,Ѧr,KY5=Kbl拮Lt5l|lSkAm*0tΦ P:͖FSCb;NTWW՚+(o}DC%IU[)aRA G+ݰ֒C07,,kjcuAF͵U vk[ -R$:cSZ[-RkR^uXDKH�T3M"R$I$DԐEUM$UESY5XQV]VʜB-SC;Sb9DCL@ISt,1**Ԣ2p֪a, SZ {<6-a)ë\ڵeXL,<q]S`M:{Zp;W YZtӴƳfۈؽs=#,[F6]2ό͐4u<ɻlбkf:谺oD#I+Ub< #DC6յypBum&-iİ* W: RAl�H�U3I2I(I$ꪺMIDQ$TU5UYcOfTQ7 8$$KJU2VUJ]!;,@!փ11\5f[@'kmt|jcХ16e(_326Bc~_5ZFWek[\e9kI;[%[\JakX٩v=5AJ;nN\(%pjߊB5%ֵXF9 4aZֹ|Va.D5Tuky$rJ=&@H�U3I2I(I$*ꪢA4EYUEYavafU/j+U-F%b]3l+mIAJ Z=eQ ,70m\5[8[5e6c.*q<k<gD-"V./b]Yeb,}e42zMP5PZEPtxC%mӳx]b9kT oZcKFiGkP,r4konCZfȽ^Z91 l)jCF��H�e3$Q$I$ˉϣP5QA]EtT]daE]fVaEaZd.c*Jpe%`K4sR*{[zwkHCGjEhl-��!�O%��`!�SKw x0az2 Qbi,WZQ}ۏ{Y`1@f1@5( [%ï<Rp]+BEv\f"XOH S t%DV!KH̃p^D`HI7Γ�8}@'J HhNȋDHڞ#|G=}<]3%)'8OU~FTdX>M|yyA?ΠzN>~ 0DZ�VȚ%3ZР`3Hx]8P�ƆaDR~xM^'ν>~oYDp;tמBacI#6Bb"'(A3;/av (M[x2 Rt�?��wOGSH) h�Ԇ2=ۋ($2 ۈJ)`<;Z:0|bR\}AD7썟fv�o190@Q4<g=6`aIb h۷DS#= #~΁9x芆 dqF] @vcҔJsMy|L"zuDV")͢%䗴l7E*9nUf#]hhNۘ����_��BX������\8qO^ <q=X<u�X`4<\�/:',-\'J^`Lf<:@1Wxd)P.y,څ7e(@[eOq?+L V_c;QV21Knvs@93"'n""37#J4ٍ/]z=PFǼ^"6 W#-1 ;A^`Mb x �u=Ʌlj?jV2@8؜nteyOM�o%l)Y% ^a<1i_á~1is> ;FT$J:?DRtz֥#ZXNVk9<Gy #!ٱj \8 2DB##:|uk Wq6-~0߸�'O pt~7k•eB̯'5਍s^` E xyPwG_8pςPQ GJ#.UxF \D<'auy`\ F%������"?;13KNHI�M7H!��RZvBdsk tM&LzvrvC3``IPR̓JtQ 0 I` Ib љ4SScJH#J#6 *~@T!?~_' k)gBS�MBL@X�$ɥQi@;IfٍXSi}eh4L, 3; @4!`0,1 h`�>JYE+uβGVvj!T^Bx4p)<b!QJgH%0C7T%4oWpj7xy| &J! &(d2*�<L�A-0X5�0!Ne H`%%+^W7$$ӿmb 8NBTy?@b7}^V#Ԁ5�G2F(3 }q* N:vG �`CF lF/n?V�0jzп`tdt3f&�8!Bo`[}k@!ncցąQ0` 4n/s�%܆a){DIӌ?1Ɉ!J ,/}qW ! Y!M ]3s҃qvNh$}��!�Q%��`!�S@Mgq%~/p9 /Ғ/tD?f~RlEME.8߯zLCS]Rh@bϸO I4}1׉�$Id*8:NZxz0*Mf^YWDV=r$w|3txT돳�&T#%[eނ`Hϕ|e"?β$DT&MR~}X\X]ciL*^ ueRb[ /6% ]!?Dn*�~زn0J;ק!nwP9IJK=J`j""nJR3({R3l%TA>Ϝjmwba�&сJp3XohmTG@�] }yoo ^vV/Ϛ(%"/@ Q#S-<f}%l !hqp9Ay %aξj <0K$#�y�Џϸ `&\_G��'-$>4 zFyO# xvA@v\�XB&K,;ל!# /t0�"Ī�b�XplcuG%wBSy4f}3M<?M.otl4_,>i(NʽT)dv䑢']DYY;Jak� �0�v!bш{j�:$ amlv{DBa%#�����2@@0I59`K;�%KF*P+A` 3:Nv>A3ҏI=C#@A�Ģ$~7"F. JN|}i7(Cw|j$!g uuo5# BAR}=~OsMrY]*: ׿1 [¡1dݹG (b{YRo.gȵI|dylPG4txHə#yK2E kjAAO#P @p���_��B@;¢� ꄔ8H@β~(@'@U�o"O*iJ4t5ΐ>vz%0)(ȴTbciЪQX�r7^\Kr;szhb{YRᩜ>ߑEuYY<ϑ!^jy$d̑ə"Ħ5>n<B7#v���W��"? ury܁/� l*,0#|v<Y0 J_Ѭ K7g|BbɈF@U0)&'|D��EhXo IPkJu9P.'uDDYI&!owCtP4aXcҷ%}@ H(QB6Z('hɓtM!% n ϐD{5'! xxAH!eJL12]jG(^N}WX &@Ͷ9Db4kwj6@MTzL苁'v ⭨ʢ!ƒJ9o�F<;Ъ}=.e5HOrHjt>q% �j$WKG #|�5("IE"B$Bݣuc{};ODm<9>RT"GX+O"  KVʻC"<�}(#2ڇ4M,pu<E >i*>198; .C *-܇ZkV*Ϯfpes 0]xȄyVj%͹EYDdLsק2|@E#�6XG$��!�Q0%��`!�Sw.aq||*Nk6~$o|F9[cꝈYhCH#$&O$j>"`fx��^5X$51 $pYx�3�GȲɽn{)9*XS'rI:^f9ҝ".) >,@VwDIߑʽ݀`5"Iׯ.{#Vaܡ�ư_m e'Vmm0?H%!|�����BX����� 6cje65ۜCz{#0X᯶v#d1NÅC%߹ۭ [ј<s!HJ]]Ps2�{eHvRp?FN<a t$qfi 5y|ٱ Z5`_Y(Ϝf@| pI| RZPXv+oĬ iF'uHoPRGỳ%%t9$ IeG"F|.@ QVOW9>Dq(#,h%*-b%4>uY'lsY{!+oq{AY{`N1lrh q0ctxۂlzSװII҄r6WeY,I:[^C̷0+mwq4Ra c3a1oC, ƁuelhAB"VIuw4}~{S'cu3q3bsdf~4axo;t h> aw~4NF>9vXb'5MЇv ?,TF6ws8ޱPVrz: {0RAkQ #4úq݉6p'+SkG1<t{8E:z='c}x}ro6 azQc�?c*rWuXzD\yuA|l+Ǹ)e3�Hӛ!s˯1 Wb-xQ>q:'<AX+K?^qs::|?#hW^b 6fWu*r 4q>j6 :p9^ t�7g-q\,}xR7qr}}yQ#x8Xx&=yNvF�@_;O&NE0k������*?$$={Ro&VfX+X$*Hb|3Ҟ7RRmf�? ½`Q(@n.m]VBZ\&IdD|b#��1V!*8\ ia Ԍdz!B{jJqF༨` � $ X4RجH,k% oǽ,`e8ž�,k)uC� A0�\� Pԡ (E ɀ!em>ĕp9`@T4PNo^DCμ? 0A\͘L12;ǙD] ܏R7?DZ#p�uPO\M!y>L[HE�@`_cT�۸@Y(?߹rWu>vnif]Na9Wzqh]dFOpҍ($FϾA?¾bqD 30Bhtd?v}`a0wtNFԶR,4J@f@E.b%ἰc9,Z}?aמW Ok#nO<H:vtE,Dn_TU# r��!�Q\%��@ !�SU @1[2l �ͅ-sHVMq v9dֵjVƶ͛w Z_2փiYwfZ_i-;*Y c04vukXkBͅYr;cH8[d1q]6s+fq)'b=kmtm,ֹΌLlf)_$kl׎H�f3%RDI$IQ%RU5IUVavXaveyc kS[2̱PYzaGw a4D؏m`qD VHFvZ 3T8'V+^EUUZV3ZۦvQklIY+Xz% ̈^<kئ Q֧(e�V~\іSo=~k\3d/*݄zu4laSrXHQFPq/lAd0�{n>j^CTp3`UҀ5�=R1NH�f3H$I$M%DU%]5MUQafVim[IuH5Ye fw_<5לH,6 k\q nrl=[>%'<|L8PhI(ՑɈ. r6S`FZpOZh8k *H6kI\Jq #tHcR58Ʀ>H4.RօR¹I+ʨY~yJU866+Sǁk[Lk]5%PX -UaFkuX¶& �f&KYH�U3hJDI$*讫M#IYVVQfQ]eXmj-$/ =G/)kIu 2h*?k 5 [v"uiP?dx%cNQ()֋~\#OB7S[i2FэFRjS8Ykd5i^$H457# TJ^IEPdd-^giflb;=rKlM傢 ڂk76^8Ik|y7+Zܶ q\Q#U]Y-1Ԭ�H�f3I"I$I$jIESYUQdUYZei\%b+ңY#l-Zf%nHMs mdp\.lDD�N0MHY'9 EZHGma~6xoInίImr*q3bgwh:k]TNh.@͎W:kHxexvw!5JS4dy1QW1-LkZc%Lij\Mi)ZBK`1i|ךi&dϚ q m@H�V3iI$I$%$IEeEefWiqƜlnкZ NrT+ǜ8fN2ch-Z e*XئDN\)-^`ڍUˆHz!kc^))X& $i$Ē)zL)]h9dDTHy*=Nu~hۂkUrV!i#f,SܶvU3ѷ-p`A[ ۣ[;Զ,1v)'ZP8-kZֵcH�U3$$I$$E@ԏIP5IY#T-5A4A%OJdę-ֿk浭kZֵE-qvϚkZXka%]ܤ!9t @*z˚浌W4EkYSAi@NdIg&Sk\jci&5aFUܠVײdMJZ[3ж2K)DmhRAMsb !evO Z9SfIoFĒ`ַQ#X>EmVCIkmݜ2 l��H�U3%$$I$ @SA4U5I%OMDYETQuJh=V,t 6ycflV}T1[^QZ *(֕kͽj8��!�Q%��`!�Ug% ͛($8uz}?o#@5 d@I�8]$zHl0StC*ho-]*mjׂåG�tQBs3 "@m.Oc #kz""2xD en1fS+*ݻY cP�����Kmͻp@>r߭TP  F,; u>uKml9-"B_ ,Ѝ@%0RU]N^YU;n~Uku_GeNۤVħm%S u{/b-‹_+�����Cm͢;ј}PpD@];\<ax />gu>/dTθg|m0sBJ&4%xKhF"ځ6Ja$@o2W`uus4lkN۟UbZ\$_$֝IhJ1% zӯxn\J:�����"e5y! II%`:83'Jq92d :;, ,!d0plq#gApp*�|MN >�dM0@`C@ qr3Xx0h�C'N) 7 >�x�!�ad4C )/r ` } ,3Ʌ,I4'6j.a04Q/‘N1N笮@!?v@2ZjqSk| G7D ]#08�=\)Ӿ1b&5@wQi&cyD J3Oqz⏭DJ@Oʳ!YyPPX-6??^S0UK*;DBχ%!mbD..;\�sDl]VG1Htl-39.DL(eˏI()7p,GC6|DlֵD )>A 2>ã|#D[9x ^5U#m K.8xUW^HʽWj{K'uT43#:d1<`" r seh ؉yX9s["F"=@Mt+[9p>hsZ8&8>6 JБOh x&dKG"Dc{ ^eݨ#xd`+mz`/x^?rV~81N&C65C&]Dr-s08`<| mW=B!HHRuޅ*H|D BaA#^p:jTtL xf i4oTnp'Έ6PL'ޓx'�^r�<1׌hy5cAR ^ww6Xydl0:Ϥry)*!{ʗ���_��JX����� @;Ko7*!&GQI-RaJI[ ~I--T2N(h �(@EBc~1[ ;¥w?8'͗r8zQ[V� 8BG9=Y^`S0q*ܞx~PV�ӫ,ϵ (9'Ǝ̶”~rrP5χ6j^nǜ~ṈX-b# Qnc3StGc'ט*wi N3טd nP'.O)lex4nogaDKTi^v^Jy\u$33uW��!�Q!%��`1�U�UqΡyXFgGY|{W̾?![s0 P[L!<Vq:=#1־@s'<PwaPL`g "טN38MS(tB<8XILD7J uxQ”FrV5x|AR; p8$P8p ΰB̛syY:8C#Ӈי(xQҔߜKe�̇;\qc  4Ъ36scB#`nF`24Qp X|Op/1̱DuL,G5> Gפ]y{tkpy�9-D zux@U̼ 0W"O( t;~k4Ey<J^'Fsc!H">b~.+��� ˀ������#�3vOQNJzTxѺ(O-I? lC^BF7 @2! kٓp\{R�N :) lέ[hS.8I ��\X�'ӰH\?p|B +SuJ ߧ'p` Œ `j`% $$\ѶkA !(FO?ZQh_$f07YO&` L< zX�R&fA(xp Ga0ϔ#hT:@p%#1} $ 8@:�}Rm5$‡vd"{ .@ 7a4*P"N"]$f) Rq7$8@"d2o %$߰#+^<PI &^TA E��̍b2CF02vf_`�E h%�}A$$` ~0 �"HH4l�@MOR"M-84b~ש0Q``5.MI[ @Nl0S|0ï=9ٌ]I@@M&'ؒ5yŽ{�.&XjS7Byf|ŖC(0B6 Pwmkj{I &䠾o ��7F0[ك@BoC &v< �pvd!z<)W(D$#lVKP IA/b ?D3VZ~,2FBR6v�(!CR45̀#[/H@Cy:I[fUI@2oD`T5/ݒ0GR VѤ4/!�?kʀ8˾Q ;w#*�7>hVN&ϩ>~aa%�^PצWݚ-XA�RxB! 9a!%8W._6 �bBct�III\<5rf�L�x`&}\ @2 PHHII/){ĆV05+0~ � h@3-ZR`pRLae3m'|0%耄g&Z,/Y$ԡ,TN�|L9D-)9 $`&!02vïB!bW$1tsL�2u� |u!�cerz~�*xxG&d b!ԩ .PJ̦&YT�5 P&bbz?m>a�r�z�$Ől=OMrJ(#P_hv1;~Ljul> BHTΏЂ9��!�Q-%��`퓝R�443 FsmBܱŎ]]W8D JylE*ӀweXb a - `&! ldcN(AsMB_uu0)t'#w eG@@&$Aى@ C�",gp@�h�214 C$Kz��*\/ҟ?y P3 0'no|0IpD\@A*�L H3b >@%  D"fN⎀+eZ ʍ^6)4qEdt@tye; 8}�3H;.,|w}lYa9FTHXWi @a ~�?skɨ&4bVJ;Ԝp}-1Laվb՝Z/ۆrߠ1<8a>p�uҦ:a4V�~V0x 00 dfP&a?P0kdswJ�q2,BL& ~Pp|rVP"}IKp "a7P@`Puc&@) u%-YbB`̜Zy X-.Նd~I(̀,l=@b`ĞvQ(XbuG BX@ F 3lslA";&A``1,jW>@?o;m�4&~2T61th�<&" }In !v8-uC߬*>4ƷYKAD(Sc Pb Gx aS{PգXRvQ�` 7Nk79V Pcݬ1Ʈ̀q"%=Cy d#w@bOS>6D�%�!0� Abq7׼�jݮxY(醔K(EA%~P 0~wbH7l93 Ua{%7/�?l~D P� G߆'/'|>�>%grw'\ `>}@�XQhA59D,W�` ![@ @cVy!S' +6<o]FT8twjSޞ&hNž@b� UnJ@Ayk0(."c/C&ravZk(QqD E45)P^ps1HA7wjR{yMX ԰�bM/e47,V4P _�fL5�t^l&�`!H)%#C^6.ev၉ImagP7֏�I@7! 5-q^U,�>|[8c /ⰥTN.,�&;JnE�0jxB7O@3�İ1,[6<\ !?R�390?L~ߧ 6�:+o8ѐ3@&OǥR6&%<ud 7G , Ҍ䢂0zx�BœLB#D$5q`7dҒӿ]|qHFCfC1: I)`!~}J ۺoJwxE3<l !_]&~SW*Pr0>HCj[k0 �LHa4s0m ɥ&2:`b*1vBG"q 1]B&fMI7'cMpDPZYBv&!+F߹BKQݚ4xi-84 K-iNee2Yh_ք<ט 3~C^�7+- ]0 (L$Իv\nQQ7- P �Xۆц��!�S9%��@ !�S…ƌyaRҜ֐d+92N\H1eXBO{1m֗Nl+f/+GmR0!Jl3$Q31&pda1H5cll T`́BִmXҨ =Xe&#X"["0kfA{WI[za.l6٭^(��H�E3I$DI$ +ꫣI0=#EIQ4MUQ%TU5TMj6h&\楐'-qzi #FY S~T*1ձֳ>H?! BDFkXQSS=wٹi6ԙ-!z(]!&)uԨpLCrUf`آ#ekB<04g` HLLցZ)o5DHoޛ@&ֵD:auV7m"YkZF N5]sBֵferdgu涭n�H�T3I&$I$ <NAM3ITQ5TUuUcQ% i0гHS0ɒ|ݢٮFٲӶ,kmN3x|}uTP ="fSTZ,uwҡLmknJ"> " 5ҲkJ@v-$ie7u2jZV6ֳʴ ĆV))`!>TEF'O!D-%=CX[N UΚv մʶz"hcܭi]vbi7bZƵk��H�E3I$$I$ ITAPYE]eeEVUe{ĐmR²ҩuV2#vC--(O߸84 `]q#j ;j!#rLUD˪gG0R K<e2jۛ] @*ΒAld0l*]y#ݑDfilA,Pė)5mU[e$6ce|"|0qX׳X22 Rh e[=eשZAEqm٩s2-8*-n\FHck@H�U3%$$I$I JbM,A4L=$NEIUUEUMvYFXQFR8cIa ޸m vQe9YthKR1Pcm*Q(6QGPb5zRՎD|TkRQ\GIJ 85[ZNc)9> cH̤Yp~0?E)mڨ3WYwcG 5kZlV RWdH5M%l3oD $bsgUݬ15M~4CU�H�U3H(I("J IP5#A4M4I%RQuRPlSfL9\N]V#6ٰAm͎OljZ֑Β5lthUvmiCå|#ѵ D"d+jWڶlšm+jRo*kZ5SJ׶ t 3i[iBKk]Haȱ%EzQOZFZF P&SKklef<U]Hk:Uӝ8>0kcIqH�U3H$I$=IEM5U5UQeXU[Ou{h)#8BWkӂ jVQ4!GB޵n"zޥ(2{*tf|0iʽUHk9 ~6<rL)b9lHŤ(!gG'XSV 9HaKexlDlNQi9"6C'꘷SV3PcT ufZn"5SKw1sҧ06z1kfI2\t>mɲkl�H�U3d$I$ASAHAUY%XY5iVaR(U`ݕ 3hLlbQ3DY#v8`M#& Md+s61^;ԳģΪbD��!�S3G%��`!�U{=&B�ܚK -+} l;ei� `S#WFIfL,pꖐ N Q LNu| dczk�lS';1& RZJGp) ^Ю{i_G<c!<쳅tnU|ۋk/?CLX Ih?SLNNJ֍ xM‘qV ? ]~&$Ha3 !ǷYW8ϦC'3 l.V w]G$h<tA)Mp){`$x#R?9I $ @$ħH$v R�18R�q H ^rmZ`�h6 V�j�� I6&#Gi,UGX� >p*-� �>9|bpj6OyTM)�U%LO!�MB/ڂ @ @N ?h$x �2|P&^&�:PR"$. �0� P&N�JI(A/H�8"�`T~N0O@ � 08$ �@E@TH`p™74��a6=@� �?&. �d5 1߁ Ҷ'{F۸O@ xZ\ Ru����� ��#QX!k#芖fe;-@�S%%)wAi+>g@RҊ)Y�sѣ,H 1 oXWt5;s5Oۻ$g_].s{K8}&T5I?}DžX Xj" Wv%ݩPø1U|u^: P1�ڌng|W^ kh1CS ޚ`xJ1ݍjע2'ͻl!3=nm [茚VeOiG0.g=0Q֡5Ӯ}LZc5Wx d 2M췕pIOA~'}����_ ��;f�et3@$g00$9vѡ= }rjZMφl.ۚ@j8x(}DTKkk>Zh1\x=&THH2z?C1S֡pcrcQ%PmO_cץRƵ Nd8o )Q;CSs2"{6mJa :=n;ii K2'PCOP=xpU-BkwTYΦ-1ټ2&Jy~{x���W���"60yNZ5 uBRge8 ΌhhFI(AfL,lHnFXgA4+8:H9DkP(h^1(5إuwq7� p8wh`IIRPTPR�)-�gAK^hb4nbxQ @5<PB@6(ҷ,;��0�;�}bH 4K0bFa"19 偀>{C@da4B){PÖNNb~P� ,nN9R~D^ 14o!?w>V2Ax0L'gj2lE5\0@?v+aX QOml0z`S$̽âՏ\}y{$㮈 OA_pԳ> @_9�Pդ ?0�uC[`7DT>Ph4BοƏ& h �S'eXQ5l I bøgZrLʴ P��!�S^S%��`!�UW.D l<�]d\ �R�CGPt4ZȔEbc}_./0!Q.N#k "P~)#R(h](|(U׍₇~4x�L_njm~%\p`@rjpd Ad}{ '^ IN;(>p |6d>3Y}yrtЂ ˠ"(r)sq(t8"~B9"f͉WI@p) $<�N_/o4 @@&O@1ImP3�ZI@&[@b@ 5H`!/g&pM##h7^[D X0 f1pWBJB'�5:x>�WpTq@ϝkGFhe DV!(\������2X����� FB �;|R_7疒E'%Hю%A $ͯ2e{`Ġ,jF-_`9gKJw@Ĵ&_AFH-(%n}8G='.r@Ιy!!%Ke8 %xg5 )}iQ`<H_,Be3c@#^dXA/ Jy+[۶+%?PܝI K+[H?:J�;?zt,s2]%i_9CPe * Y]YBƘWYnMRK f WŠ졅+5gv(-;vܓy=AmdX,p[Kߒ4ɛ'nW%!)ZP#7^bK gJI@XOHj��I.dZ_,'lPf= B@I )9e+Hя_tCJƁ|+8X^fKņƸO0VӠ8GBC6`(K3NZ1 N~Ph 2qh$(.  sx@yQ, )<! y'sPɴ:j3<#|SQaHsy\Dw);c{+H!f�F=Cef Xsp@,HJ "O!^;3KmϔO%F1sq;6o(HĵeB 725zh@Fih9Dk0:FkH\DR3[<3י |Dp;F|1v'C*99#2je$E}f0ɼ˳eT^?/;g(M^8q> 1Y?�4L,X +P9cڂͳ x2՞8H>Rt<j'{P?}+-`0.Xz�ʼXFW7ppT&A9'>3 P߶F;۵y1,6e8t4<Å _^[@ XCU}L"zd ׁ8k%ׁP@BODe |4pW*F�����*BT3`ζ&ᐞ8>pCx ݆[a舨 �N& W? 1(/P?ⓒK'�I0}I<dR x#ICP$B: �1x1Д @H`'bH ۱5�P#I%!T0kaN|ೠP JA/B!3`x�d3I- ~8R\ [�4=S9,7=Vـ!bCzxN#rr @` &h2h&W_{|pľ��!�S_%��`!�W7';DP6D6ř!:CC =ǻƒԎɘ`W}$Tpx}j8q! G:GFͣQks1xJJct}:N`j菞(�ȿF(?E�fBF|w@ɨJ�>x D'?X @;G;%Q#p],#ѵh/A:I'#}H^<ynZ1>{Gnݙb ԆP5H YDkZ$m̹x\0nN]jHE9:莁j|A퉳#pIZ`[�Ҕ2yxtmt(8>(?<_ 2)=n,*ڡ ]Њ#XujgJ'#l`~ 3u7�=(39gnUiHw89$J+cDޙ4,Ꮞ�wYG`2͛Adb"22 D;%܋2ǁ?Ddtxft|5$|E*x @doÑ׍�bHWtGn9UqcKS`hQJքsQI,O `<}E[% x�Й?'&> Hf & =%'dN]iHԏG �>p+Z?y(gZ��|`M}I?ځ1[4u{FTl&̾ ## �����K9wYX|auxT:mr6Nm`KľQApj#퍉 H èQ(td2ι 9_"}{Є䜸 [05 �[ &bN PS NWr'J-ٻHςq v vU_gFb,%Yw(-oԎew]f*hKn6I2t6jY_+d5nMNИJ65 [\f=�����[3eb[ua#mGQZ?mЗi҄ Þp!i@5&f#Q0t`cl:؟s'$ $: نjb ?&)&Nc= (lxjZ&v�p] hl̽l%Z 1&^Ҽ6VG-J6M[kS& ԃmr m?x�����2=8<";cpK_j| IXbpOńhꁧհBc]''RyLv4l!Z(XZj%XVt$gs^ N�U RIĒXI]+LG '^E8#uhI9+i%:QpiBZi $Ry2 W�P󥎢FDtG>P]p f3M6`^h!�yc% 6P0u/Qܙ:<*ywƀq5ATG#iTF_S|gQy1G9+9UuJS<FRyq2`bj8i X'cERR7`jI_'%Bz@RCb·l T C+UrNDZQFX$N7$πBCDl$֕l,O=*HL>D_xr۪Sӏ4ɋO} b/W8hSp1 xlTQ71'z"kP ?`!܌EyO![aXqabVh.!͌%�_ 8uJ^QV ȫ o`VVtDL&���_��BX����� "9DZ��!�Sm%��@ !�Ush Y1r#XHLRB)fwkaV:02@iSX5R_EFC 9Pk_է`G*":9 <xe#lM {[qqm$1Zɯr5.<KФM{!kEB5i)p1?TUkEMH�E3L%$ AODI%UfWafVab#Pڸ?[%)/aiUN9$XkpDʥ6&qkLr? mŹl -&g%<ؽdxBElڵ{XoڴIr= v2cuW}"s3PZ+iݭz޷mK뫳\^6F!#^Zխ#eg{2[_ £zGs9撹k !ܚi>+z7ckX�H�U3hDI$ EQDQ%aVWeXaxlVZW5O5JT m-vKf8#T7ZrͪK+0 @nopŅ[]58Z鳋8qYd,.ѿ 1RnS3a�׻AiuVt(9tj >ek1{Z!7gV!#X5eZظqN"|XH#k8 E)Fkkmq,1]Z~0!,s V6i[PDx5QB6ֳZ�H�E3H$I$>0HP13]e5u5e6m5AWiESUMĪ  ЃHtԜT<0ܙ`vD\ש;p]Xk]-?L6: k}Ztֵ) ԩIZrhWvsbÜZ)1X�c9RjY֘uJIT2<eI Ōk\4QzJ+B/[Tkt dkPfٰk9k@H�V3d$I$ɪ"a@YIIQ4]5]FaV.@ |c'fƶ)T*̖''!ía= [?�R ֩REQl^3LA9MYͯO<{ \J$oh0P`P" bŌZB2lکQ7=.0ak֩S{[<r5^U+e)HX<ɤk[ s- <.!^#sLeaȗNy9l`tv&\bX\$k@H�U3I$$I$ުJ,9$EQEUUU]fexr.PSD8BTXIZiQ|(خ\qSz'T<c[bF)ݫy! 6 Al/i5j"pARgK_2 ֣qb$W^#S!im `oU*5&J!%&XTR|YZخ8԰b+6ݤ|5SVwUI]Fu,iDcZ7;(ԶƩ D0!s@H�e3LQ$I$IEMUF]v]evXaveJRXXfI MS!ږ>aDĤ Zk[ɳYSBHgf) k:n5uLێU\V5QiLBW"GMQIDEiM%#@re*d2Gg6sڡ{*R-tgb05JYS$͈G,RFAB-.:V:l5ky0dAxF1HKYI #!JMRTm{ۀ�H�U3L$I$颪ŠDQY]ƘaiXuvF2�r6- 9\R8e23bJch7_msp i.�Vي.ZmڱM9��!�Sy%��`1�W'�W1!7)YE&&ZI ,v9HJJ@nHn6 &#I O <I2ZF-0&$?bɩH`ѸaE(`/WrR ,WV(6RK[2�(jO�h; �RL^ F%($S7_wn;c,L &(!!hH�#טE5�Ec Łdw_o'IAXii ۑ# 6A(,Y%|WF$‰e²S`TpH(�at#$b(*a(d50 c͜jCK`MO'H [HCK X 041K|4H44LIY$[r( 7/uؕ4'1ealrϐ<ǬfߌIrҁPQ/'IetI 1p=L@^g?xYﳌʛa!Ҟ :gِ턳L50<-kI9o4i/ }9,fQS $bD@\r 쟔qݏXGc۞+upY41y<p1*apsx!+}?_<rP;jL󳭿9O9_3 qG`*ׄ j[),xq`xa$yt$ptrA)O:a5d"c4<*\^%H^&nXn?8pR5"f#Pq6Nu6YNݢۚ9m^aP͏=]x;Ӹ<TJ3^b;�>2p;u| 58|f]: pe�m^קk -U죇DLe",-X}^܊A؍^f<]xѓי-lbkBB>ŀX._�|:`Ex;6x)ۃ<ypT $H<dxL"+:a:�����2W pubDžD΍φqo{@^> J2K) )rJdAG8i+(%G,#\f Kr| K-)J/P @# ϳDqОi[x5o&mÀ>2ɡ7R ƥğԇ#̼̀ 7+4  hZNy,MJ ZQ'$@ZM rЅ%@<WB?[P8XwgEdKITRxTtHpc$# 1$ H*bH0Wqg8FCπݭ+!!ODw�yi�'&#ߋQ#AP:IѡϩE=rol�B `6Fy>ẃL 4΄r-fPn} +@kD4g>q G%t;?Ӡ0 ?tl'^>VG0\HƍMAG�vq04LA7?q�0�K唄vmzi3lЬ&4a]p\q>^yE4@>'��3:v#!mua: C׿R b tNMuCqV: q�"$Mʢ2BdJ܆/CqϜTb'PbPZbB;ܢ~zdž!)70*Y#KI!х`;)qb-(|(7)9WJC ۣeJO<6kC 5gq(i0i?QcH}4ʠM!nkfyX P��!�U %��`!�WGVD" OJ)?aI0Ӱ-bNa@n0#\&$c>Լ#Tm6dx,KDHXչ'L*FO*&(�����C1G*&bJ.=ux %LJ^%~È E|~HᧀS! ].-uMĚ%Yèj x ן*A_ZL8k";N|]>APTG |>DzU$ܔWۻ:m} s tgkB:zMSYyzWoup���_��C1G*&bJ.=ux %LJ^%~È E|~HᧀS! ].-uMĚ%Yèj x ן*A_ZL8k";N|]>APTG |>DzU$ܔWۻ:m} s tgkB:zMSYyzWoup�����:v> 1p@4͘s8CLh BgEjBp��� ������  @-ǀb !@1Z@�.& P K� pǽ(.<컞� ��! I q q_(2�!�1-9 I <%`?VwLB Px$ ^{aNU 5&!ZvVȠdS5(Σ{_(3�p&@c_&m( �2_!p&޿/@:&0j\nuj@�X ~8Yx ;q�ܲaI,�2. d�"�3Pn +^�<Pg&e/ I[8E'rw@C  I3 }00@$ $ 0�$ n*HGo` @.)xjX@ <0G\4b` Wy2_ e(= /2C7n>�xA@E$A�8$@\7z@2_ e&,�G$ -knI44MLd~XB*pPAP}�. ߔۣL� %a+1V["Ph_c\�%[G4:� N�|L�}�C ^#rV C! ` � @N&�is8?85� o Q7 -�4�gR``4 3IIf˪1 .i@U�Q7?W%?0X FR}�x@2;op(Q  +lJqb,{`D=AY\W CN8M00P hMƆV,0 P|pD� `�:!sa\|�~� �BM� �:W~ B_ ] p� �(�:�@0!%^@7v7�R&�6�v�D0*4WA5%q:' @ @T �`;0*CAWpa0\L)%��Ulٳ5@Fpr1nQcr4BC&rRF%1]`r` JŔ^YH/'>9`� ph`@*R[!k%s+�<� 0h �܂k 0%vT�@f`P4M& :?(1 �&QEd%?ov0�pB 4K%rJp ��!�U5%��` � ĆC7dؖ`@��%�A(�jh@KF(MՂ @/�(5$�Ԗ5)Ḙ_~y EZMSٙ!"�2Iy_FV`=�Тi%%m!-.ҔĀ"=0K #Xܒh!u3 nFF?8=@T%]*ZN�FgQ5"$5O+ ER00<<X. GXl  �1@9$ULp��n^ 1 +|߅|LLQ?C�W/lb8؀aؽ:snP�T]�7 'F8ђ[d�hyB!@� zIe!y\ P >.�}# �f^^nN@ %*xh ]XXG@g(`Ű�$%�; /WM +j>t�\C� &�ԅɠP�P )%P_Aie~?6]Eb �~Cy@T47YDޔY4/i}�4ŀ0�~VI3Y7!KXboo)=X`p&*M1A _Ftlv3^CP43ܠ{ALOub%`` a`Pa\47 u� I'GI � Ŕdq߼�@N`�a` 1 9)(X}V&5c(DV?v|-RC@bB! 7=n"�6! &fFHb߲@ F(=VhH%�(v8uM_ d`P�PhP { IxhH$ͱna- 7ZE`Hoƀwt~9=&q CYe@&Zˀg^ ɪ�sO&/0h!{_ =AzP�77H�6%}206_]ۀTI)Q3bZ<1d4n�L]�+xj_& r>YӰu%�NW#ߢ�Rp @0 Ģg%}3v˲�5�zY, 9 3 yӀ�NM@ f=!b?@ 2��jKBpH1 %'fkKw9ɀieoS$ïM |� L =Hyڸ��>� ĚHA{ Jx]d22kJIY)OV_⯘X ' _KɄa(bS3cF�/@2 ҘZ0k��4A0#H`T I_ fpw�|tt_'67:@2(5#0(L!'QEe)b5 &a(@x�c& wNSh,bAlA3cnlY�-&k�֩WޣRR%�jtI|j&ZE|M�|<nZì�&<uxu<@cwa~q딮'@K N=�0�Wqx}@23��0 $0u�ZXa0ɅM Űj G+IA36_ϰ*( ;i �Wb)nĬR 8� %m܁y<1)Hcqa.+|2!$`@d=HJ| &v>&XIJJP@e8"ߏ Xj�dž d6}b@�졈!o &BG 3bb~3:Xē�t쌜۾vSgS>Rp(Yޢ !&��!�U`%��@ !�W$UfA3Cޤ69"Nũ\{"Hf6(ŬDDRڭdHq5\[P}ĎN-N"t]l? 7;4魱Eh@.,R92P\vlFNf' FL`ʹ Yـtq jh@H�U3h$I$IU5]fqai֚.26&-I`f֮[b/q^ٶgMi+ceNc Zņ-vn:Hnx+Էv6jR5"RZ%Pˢ}mR9k F^ WOiRnsk{YPytR Z׶!ЬƊP., <kT2Rb)䪞iֵi3F,2|g Vq 㗹×JjT��H�U3iI$I$ (YIERQ5UfTUVQTQuTV*E%8$m5kR5kZ- +murX ,֪pksģ]+ w&RIQ! sjMu{VɩNc(Cp%k(f Hnʌ"9Fl2֕4yv,`J|I.hF!1AS)ƯARfW4"<>Ӯq%պkZڵž4ѻ)6 j֩C%u΃:k@H�U3I"$I$⪊ DPPMdIDITQuUUu:is\celsXy ^W.B1a_Ŷu䏜97*R6f]x/iLk5=29.'p%nM A MrwE6xħu sNcQiU:;7.Kb Ӓ%>F.۽Jbj8I]ZnefL $E9˹ko>ҞQaQe_ 9ZGՉg *r<JEcb@H�E3I$J$I$4 @A4ADPM5VQuaeYfr-ln9VlDJoa1uI#l䕥#Z%pֹ*ڶk_ XèAliYEZ O?SؤV\H8|^άcJIUԩ c m1+n2`igbfz 25ǿlđ͜7Tu܇HIw1S)AQ e]{ SEPD:ˎ" tm8+��H�U3HHI$ ,EE4M%efYfeasuDB/Z$rMi;bاKaii Di%ݭQh[I4ʚIi{S/TCskJO&%emY*udR[LkHKXk`xmsMWjUšOU kw^S/k9}ij䄵g2.B F[\4u9ΉfVDj9#!FŸ? )a؆z֋XG&t/o6g#$T��H�D3i"IHR%ASA4MUUVeuqYaw9n)X6ںkK>=CLbDrtT!GtS6ڔb$U1ʁ;՛Z2Dt8a@Ol [xM 1{.$a (BRD!i>Uq-5ae XFM-hD08em ^ÒeX;l<R=c$#'\c_tcY%sڙ:u]P<5þRA4d.Z6 ,H�U3DI$I$U?00AIPQ=CASPQ1E`UӅ5E^Vb̕g6QaF% ;ZKF PjfFFYs6m ꖭbuэSl��!�U%��`1�YhW�Y" B&B ҃ê󖗭�$�49d"%Wcd ɀ H\�1ߗ҆_PuIѝәx}L&`{ d5@ 1!n1[ !k0 /1C@tݒp@bLރ�|SǽV0ԭC,ӆZ5+fH@W6A,ȗ@9HE8$ùt>ޗJM�n�|a$:Z):P VL-bN�ϱ0/`z��+}}> &QSe!%Jddm�虀 (b ۺHeR`L H!}A(an i,:1`` �pV4ਐ1,i� pX Țy8|RJNՀR�ذ�ؚdՌBB @ay a# ֢tT0�``i{$ج؋ C@n{f&Zff1Ψ(0;m% 2P+X t@ -59)~3 9}���TFmHf__ž`C  R'&"gEW-vcm;L0M$�g .u!`'@9HO_eX@a>ߛaM:ԢJ�NLI V(ꞯ]`B䯹RVF0 Nď?M pJw/�^LQTLk@`�ɣ9}wa5@; (7s Z λqۮ@2_J8Sۣ|P PM!Y0$tu7q`g�@IO FآBmO<Pi($ ӊB1xrP&!1�*jpx}@.�~X`9|30|RP`'� BP^tp%R @6I@!  d,3#ⲷwQV !ZFL _0k?sj,@�PRI[�9`gǞU `awO؋u@`S %!H+c�bxjQ /j1]U8p[4l9J}� y w8 AI{#?V;tY>|>2�C}3Ja'^+T^#\xӀ _/b ?J  M)�)~>��� xw~MXp�Ґ0V&1'� "#`&Rɪ�\:A)?}�J~MoI � �4& &Xы=8 ܔ(u|>@��)�̢! Ui۸AP`~LP!AB�qw A찱֠@0Pbߩ�\ � xhh?fCb1p �<|`M*, CJK�:!AH�" W:�EVPw �� .%+<6@(<@ �yaxq}A(7&kFĜ̳ t �а3 j@"4?<<������xE:}U^ji{Q+z+c Bu<f=EbWB' ĿV#hH 6J(C;�j[C y1dWOFc1WB%(q&`9yD @vYEذ-X( up@'ݙCңx/DC)V,(e$nh0�ѐ3Nw[.%��!�U%��`!�Y9w )%B8哣I:B�� �x`lJ(�PbF}o]BEvDPb#g+i2@}⩀ wF&�IX  a| zң4BrKOl4|J& K0�hƨA,;#3lNu0-QXnXi44Q0 p*EL��]/-% d?V‰dԌPjXkĀ.;$w67WEEEHj"B:cZq$0i:'4L4 ; 1G xĮV̲K[ B Ahx.pu $5lFN0 5tEЌP JF J_@p@Z4w6($eb2hQi�ygIAEFxf)40YE21zA0떓 M[oDXB; Yn Հ+#% Ɗ::ы($hGBK ]8tpa�ĵ N: YH)/!?4)ζG$ �Vy<�$?KQ$C7LZC8JIJ0UjX{T��6t@1ŏ �DZI`)Zm 0V$t Vmm7BA �tQ ebZT&'tZ9IH03 #r_#c:I/Id3 7s9V4K R2tg����_��:X������ *ܟ �H!cqoO="u}6.zo Bˀr� 4Ee19b%#4js`;^aCni0D�R'jLNj'IF`W fU^Bi[_@ru WSjuF{qFGrI"k_Qy͂: P,xXPqqiX(xOOUy=y Wiyf8�`t!uM@b!֪7Xr{�J.  <y N9An ' 0QX<|`|nc(؍N8vʅn/q^ae9DQP花Dpk -K[W}UW_:9g0D~ >8cfǘ8Pe x  cހ t'h<D9.+ =19N9`rp4rmkwThwȡp$v\Њa}e*2Ȁ^$&�c!}`̶������ƭ_(=6tL (B1eԺ!��<`tnčt~K=`'�f�(PRCC: Ae_#(G^rf+!bL@ H@WBS Zv� P(B(ygAcR3jqxٺI4lWa/<�j� �;/J�T�4& Bl7:M f,oXX<UFKlYDNFDё`t4H%B�h>?~ؘZl �1I88- "A Pf a{�r`PDB&& :K�?x�tjB@05<5Exr_X$Hha]!' %>%01 $_$aAJXŒơ 4O1%y5BK8t[ZS+e8Cqp boFC {DXtB,N4Zx`rD� �d%edljIzi+c>j~ y'Q`C��!�Uŀ%��`!�Y(ii҉dd/F�tt)*C & r~WkEC@vL!A/+Cpژ]7TMBN-3-!£%Q't8 IDBRJ%%Ϻ-@;,Y4j@%%l ;02g,G9# A 7_-UK *R� pf}`T ;$Ɵ3'9DIР̚j>L`'snpDT%�C1i?7I`"A|c$E6A@]pR2)gT@0s(#Dˆa;Ϋ֠ �2@oc,cz)@NoIIzE}4G ^TET6BRgH*Ph7G̡ \u0c?1xį(P 8η#G1Kɒ앳fQ$G:^ڮp- rwwf}*R?wlu0]rq7>-<.�4iJ&,! c`�nºP0*ێ>Ch1%d`1t HvI0 e �$ �fӘu4j iGVB>JBAjKnkftMRL-bPw{ <TME[�lv $l�����:|h(4 AZ@~?"+sˢ<;FBI<nW$R[!#Z 1Ҵz1L<>Dw'Ak6P зXĨR<Y}NĠ7}$Lz넱O-^H%JB;y=bF E[h9{h|ZHC_7ҵP/ '|V{ rKtєKǙ:D|0 ]Qe;Ɖp<7[ Hs -bź<|YF0%I2K^mv'YWϙo*Fəm*U���_��R|kr"(iS&b|erIJR[!ФhMzs#PoÞp|]P u#bQ!&t|~kB%*#&'P-_'ZR47lwD8*U/ '|uZ&MAi%#'Cc/`UTYCqt-7[ ΜLa&<�s?xq>}- ,γ|귬;T ���W��*t&@lW-EajF(4�N/0 (v-o>%A|0 K(;: �L|{F@J/'+3bWCUQ 6 �ؿԼSJHį] ܰJc<oO3Io2\%'(X3?~I^vm 2 7H bSwu`qª荳S 5hAG ʬ -#{en<Ui@%<ݳ>VG >O~QC<`�Z:10YQE~Iä!$8[ HSi菩lb#Dk/[Eˠ�0&bgxc5Rv[>R. ̘ |aY$XgzIAg3aǘ"}X#҇V#En*S< /5sOE HBMo!z}/._ ] P _?||(`+5V\QH߹>SABH) %aOZo֟h�����BX����� { E'.Ǹ�:9ˇ/uC_5Z>g&mndRVBTt G2"mf-_uYEp#0_ty��!�W р%��@ !�W�,V&#79kZֵkZIQյkZֵkZFoT][5kZֵkZVV{86![!-i7 !$DXāVu{|jZig9STAkZ=rZ)SZ4sL�H�f3)I$I$15PI$PIUCRY%SYTQXaH]]SQٕL!FSUuX&fck\ԱLoL2kakFN]//|ٰc%1kW1\"b㵶kZ֩kl|kZ٭k\elB}5M#BB&^JڌsʦOPȢJsVr4bZRUJnXKa$4cbMq֑<`>5=iksicZKR}fčnZ洄k�H�f3(R$$IE4TU5YEYF]vX嚣t{ojWXS]n}F!vh/ gZ c9)^@(s!)q쏛fњYYZ!&k9B״FdS(-OmqlBK\9S`Rl$6iw"B Xt R= JN jqefYukkX6 zeŏ Y xHby`Vl8=S^eހGMlsX6MH�V3II$I$ %SM4QEWUe]e4-,f;7 WXcs0lkX@9$/)vt>AԱ8=r\hk ֶ^E> ¨CҺ-Œ%NDKViE6pd(.:>(܅@lĖ߸7m wJbkI!\;[,ִҶ~ڠ-C,cڶ 7H30g1SXH6&Ǎ n)AiF1j9 $a`R%KjhH�U3I"$$MQ%UYU]X]e+I<t-0H^ !ilWchkҢƺ$9٣mLSWyW46#8˴\SD66/g-Igi_r umg;pmkYgi1|A+Et0H31Sq5r'9Jx=hwj7ѻ߽(!ءjhSU9 m-Αۖ٤kB}kFאT պ"ClLF6c�H�U3hR$I$ꗢEUEYF]iveq{/_W"oY-ZC2ֵZkT9 kUG-+wc8/bOs{ڬI" :m_LWhwbT&V%1LY]ʕ:@Q?|"_, WkLLMZWw!8ԆkGHsZ*[ہ ծ9!ma`'t%xѓ/ kT1>}&AJ A5\F*[gmۘ8! D1DBMvV{��H�U3m$I$ 1I5U6TUT]gTi6e7qWY&eAmURvkXܶ]ZV#�ZVsԄ"ZbZ՚V @|va]e))TZR5m|Y5kZKZ^(3WdJ5k[:M:aD&$tabZ:ᎄ#̥)m"Bg-uwSZ7>t"v43IG"6qupAX~Of|3Bٔ T]zdѬ�H�T3mI$I$# -4ITA]5Ra$U5RUEUuU<],hUk]lr[GaI?S'Gjc!O[Xo7ݬkXҐsZr@S2ke+cH:oCd��!�W7݀%��`1�[;G�Y=% jyI%0%$fK%JRutbO)=cbK+ h)?'C 7IJV`à �ZzQ 7 HbIrP ԡ�j�nɓ``0GmZ5`~`|1 zϡ 0-R$as?c$j9;5Hq5k)�G<zXf={qf"$ezҵ*uqqڽw^rjv:ׁi($?'KoX^טSd 6/n%7O|IF29E-ݕӣco1O͐r`[o͕'0ū) 5 PPܒ6%ŀ ÙKX�H0[9S+دm`&�gؖƻ70ۍ_AI |w%[-*$K0Q5xÎ1s%4_*9U^27fט<!*y H<8>=D2NJK$j2Jq_ul+3qq9/sۊc='^3rz2,X [�20a30RK<}bLͅ#9cCCqsVaUoR}<Uyf3r hSOXj@0q{=} BU>=zȸP<h T^7a�30qo(xg78N Ȏ'�0*y9= uxט�==|`;W�r@(6#aP>tu�����{C.*`ra �\4Z ͺRf�9 &Ob7'Z,1KF(5*/$=h0 :`ՈJR�t;�LY�4(J1D(Z�f=;?<:B |ZGn_YXtXxX1/@vD�X!K,we@:1&!(GI8 @L�a3d,qB0K!!�w;DS9CTu(B IԤĄ{8P`‰|fCؒ|8AՆRC %r5t�qp#hv0ƍ2#hJU J0 aG�<)g+tލ%rCx bSfO �J0 XKdJ&?.\9`X 8s^a5羁K-׭5W(5aPYgp�$tXFHB31ITH?CHxnae`2a or޳ntv7۳=@JRlSKy*J2.~їބytn% n<:\ [!Z stPDl@C/0c$ÚR1i,lmߏ6 DpPaE'>LF&0&0%LvBQŀKI[PC(*aE"Y,؞Bup\G/Ye%IJV=8U%- MqG [:z�Pܝnh$8�iz>L(0?IRnAa"إ ß*c#@f�v0Y\`F u: 07n[JhBV2ȤdlTMI %ݐ{2*0栛S�NS0ȷ?(mK5._%"̲g�����:HyEqJ⏧@8< ^`ϟRNHjA wEĸL'u&$q[&A:m^ulXR@D ݹ\B-Sքz zD(k5p{lWhUCT.pĸT.2m @@-lq5^��!�Wb%��`!�[#ej#̂LڡoaP5)W[Y�����ByEqK⏧L6'`ϟsCI }n\L~Y#&; kj̇'%plt/{P)E%5KШ\6K@PAcZ l&vT5B˷K\LBgtfpDU<^1.r<.ݪ"P5)W[Y�����*xIx]w?vP `! &1G-` ( >VJYСd{,P�>$b%8q$cBAS@{!&%C>|b`exiD4p'|: (5! nlLj$�78 �U.a-[-!t/G[ϯr=e$5$L!p0RŘ&A-})&$7bg;X]u$9#٘-gPI@`HIba1}W͓ٜs{}ά1~!H5Y:z#AN|YEoRw(y)Ђ[Kn+>JCCV% pG@_PWbi!NAP TW%7%A0M Xdua`6 [�y1 ?EAYC%u3PaL8a- 627݁Iٕ X A##Te^*�z"gK7.;8l�(O+j"ZԳT \Rpc`:H|JNIh%~YW#�M)aM)cRTƚU=`FO>v<^JT-  zՕ!rW=}l�0d*,E $5G -d Qfsrrc�c*<ͺyo;~�"t%↠ j�5I`D%#g=1g%4|1̪ T#%c]/z4͸WJ3v&@.^-̎���_��:XA�>�zE�����z i 87l=jg1+5}yf)^A'H/EFfĖh qƞ)DŽ}8C3(/;f;j"W?cZ[wP<cKdHN0SK$P83-Oqj@Fnjf1"3aj v5^u.C!Wgͺc�n ZDž y.=M^a9yǾ"ul(Q�@>so=J" 8@Gl{R}3 w_ךɎ�]9.1cL(<EyFqN*R�μO+?=T(,YT!LÕ0F(9a!uxŚcFvDUs 6 1UxQnj̄"zWtj[^#c�$`&WN= g<,@  d. g.iU*11QrÃ:3Q>`,I �m_DO5>60]y~l(H\EzÏ W2 <8㥬]|w�H0 "tA>X��� ������  @-ǀb !@1Z `�PJ } vWpǽel_%;l�>IxuIJ&+$q �(퉽`P 3�(,2v-qP Rc =`,`W ̔ _/�+�˜Y` M8P@ ^�웉dCy4s۳'ۉ d P :K&p_#jA�p` q4P(107�@tX$��!�W%��`�b`'3چ! >Pge9^ _��҉!,L,�tFb+4 2@�&(@C@IvObV&r[5.!,4Pa0 �9!JRJJKJSNjP >ppi@�% �p߀ c7)N,$y 7K( S Q]$Z :�V 8h`ic6$04;--Չ�/�x*94j;soL� P0cd3b*` 0L\_H-70P:׀)-S"&!/K%('j/0p k�0�rC&@^Xi3dN(0P(\{@@0&�``bPbfK`.5µ-@NAͺk`1!vjrq�j��(�j��-д%av-x @r 1@jIn^4g@ �h/2PH0xD:M}`� O# �>@G F$N#EX0:8iIF7Z=$:z=jp!A:��?&�كC JA4 '(�`'J9 B-$$n(ƾ/yصd^s 6'�(M ؘZhD SFJ;;lР2f�Ő 73l/ �4bJĦa0ZPCBSP bX )9Iv)\9�U(Kw21 G L @ !qXo6p�;�K &LۖQhv/�nK=!-?nu__y>�U6$aPo.x- ��Abo %JY:ѨK%*̄+$]FSsmrl\`3m~tZ`1/Pel d@VD /`l@ 0'ۋR{؀@B}xu:A' �f^(_@p ZhPJ (lPK& ( a%(t'Y@RC�t ԧ4n]�abxk -, 7|*bXyP`�Ȇ 5z~j,K"] I@*R1ang=pcO&p= A 0ܞWΌ}` q(7& /߸m <&/b1J~AK+!'2/(Чπ�*90 &p(};-O<@ PLB _v@,@HT@XCF/mXλv"hoGg(מB,ЍEdL(3mk � d%"Ԓ2͵%;$kL;]/~q63+*BjRC(jRC[e(X}.XXqn`ׯf( I w¼`t]�Cȗ=t 3H Ȗ3Q;a6}'؀u u}:C u�CaO`I 'K�bCJGfRƻg�$0/X 7/xmY �TC K6[(Hu0FtuG`%=�|B(L /d{)Xi}eO YZe+z �%h&@0n ďle2�,ZI26(ٳ9} X*1H ��!�W%��`!�[F$۬�Р @H1λ00)}m뤄MǺn7#3m6k0j։IZ)\!QC C?4jL-QKl :0\'۾F]h? !xL1Z>It}NYDʾa�{ɣKXfK䣧tt=�5Y7 %#X댖B 9+qU'2@]Z��M u-5g`Nf - ׂg9λ-v=~R@K@ZK&?SdZ] -R'NG�B0�<Ā7!^7] |ۥLl/�ŸZi47m쳸Qp@ I@27+ ̆Ac|7J} @ K)8R3nL ();îdB60rL_[ l+9oЁaϱ V#^ CfKǤ^l:WH Ֆ&�|C�?5W HZ- KVõ0rh͕]xjWf:=FD @W@0L^]F�>?ۋ~_iLԆ|'@C/u4Qra`-P#=66M`PpTۿ-;j6'\M6�x, $i9B &@R1a#u-Yɽ 'PŸ"kqiWϺ_ �t�l�PIRm}(��0!QHFߡ{ٗ|��9%�$6 U<4 +|>uz6_l^`J~3`j~ & $ԗSђ1R0ӷ71@:/;B�t_r+N"� b* AD؉ `P L+5�vM /?G�4`gmЕQv�Y0`7NwMғ�> `z H`7)X.�\ 1V:浤&.˷/ D ^#kt�v~|x*vFxOeX40|'ӶO[@ 0l'AkDpTC+VJ:bB;o)` K&'lÓ/M?*�9>pg7Tv$M@bH\�X%]]iJXN�#3 ,WRHhݿK/5Δ' +OG` yi( YnS�ZCYore9R0t%~Lz{ܝ[SѐlK]Xsv>ABg^X[ِϹġquⷀ@} 4r&@0�u$ M �&�UM$Pf87` �4̲h�K�ɫ�\:R ZɹLI M8'� . h J~Mo߲P�0��'S�\*A)��) �2&�,\Iߏ�|BN/+R�?@# H<{`&ܚ�@# Hh �yax@AR!APC �&4j3`Ɵ ti`�&PC(W������*]{Jr3%4= F,pǵp\ƀ)AJƄ׾gJ%(dm3%f?:HK x��!�W%��@ !�YEm:XW2To~9P[6]U1Lwa +Ck)0ш7L)gkr^Q8]4vaVKSHr/$=Ꙫ[Z6fh�'H75lu+4 Id$ovikZ׸��H�U3i"DI$@ADQDY5T]eiYUƆF|6=Ng|H 0,ZZ2͏Y^\RTMlvtX.2XۭJQ]3[RU "{ >#Hͬ6ӪٴU5gL 4 'E EMX~ֵj).@=t\֮jkZcXU13lTwgJr|}2!Z형Lj RQ'W dkZ@H�U3I"R$I$"I9OA#=dUI$MuQtUe[ :7,X[a]PaMhR&CGڪ-|}]5{Z k#l9u釼`^MZ5+WP7jbqΊ=c':@R^ոqa%Y FZZ4khF.g5$qU\Z0Kl"hI3omS\kYPj Lʰ:k[v)emyD65 [UlAo8YaL5H�e3lQ$I$K A4U4aUiv][f9")\IFjVʯ*eQ,+Nǔ<2B#ȉb k;FbPNTeMV>:mP`Ԩp 0moUVp fT3},5%d lľR4<GBcӳXلz*EvXHZhB&rP6ov( * %6jv6QEAVmAA`FH�U3lI$I$jIET$U=3IDE5]5[Iu]6]M]UyfNB|2bsH;`{+ \ӝiֲMѫ-lbx!v_)mk 9a[Qjέ{t`5Aш rF9&F" ,WP"8pRY,Hi`6ul֡{d+1 WZD9ֽѰ z+ фa1kTֵkZq^E; FjZֵkZ֩IHV蔕SZίˋ-C9f2c�H�U3H$I$8<IA#AdI$ACITItI܈kk٭{ֆk> GN&lƽkm3+U%Ɛpֱͽֱ)l"Fxؖ0z֭IdT(RkYjAJpQH"j5P#M\ֺN͕.Zgk-ڳ#h֝`ֵc2ITЩ1+ͨ&ݭPpYV-tZ|cR2!kktkP\򰀍#Y%(St ]V:5]4ZB5H�U3I"I%R$8EEM%I5UIEnZG/jbbyZb)Riq_Q/H[{"owV.UX t:Xq`6TM0كNy!IdĒp`Re^ ) 5pQn!tsagd㉃^H1M&7TaPMJ>C;jk\fF>\ h+I^71 )NyYfGj7_kHZC wWbDh6_Vs^iH�U3L$$k 8OM$I4YDYYUWQeVQHQE[ړO X>v(VΜf0M4وKZTn,*\OC ^ r\{sI9^#mtڶ٤ ��!�Y%��`!�[w?�,1`x'5xD^qhK?HKws̟,nV</^PCvXf!rx52uxWhN6W"'HH7pFEK`,}?Zd֯PxH.9OD+5 `<<Xݗ z$׼mؔ(=0j͕A ^{Z/x����_��2]{ BI0$?D$0ŏu XcƁ <o�վD@)O(>Oz9g?A#^]��<QMjq"ק\gq%,!]:p}ヨ^RVwh<]jq"ܝBLNKuUi,B3l}<OZ]A'|s,:QR%\š]Gv츓'�wu%2U6VA ^{Z/x���W��t$ H#=G�|0!9f3,x (pԲIRrVl�4h`&M (:|zCp# %0b@rCprlN@@� Y|3 0%@+vP'MI4;!?*]HG@NnBHܰNBGs>FmG4% e�fBD% -s$ *KFsa?jrѰ' ~i&b/ǩ^rj|)Ӊ̔C!y, rC17@HAnH@BW`O9 YD-Fof4DXC�䶗DK@i3퉜& h/q$'Ɉ7HJFi/n[+F|#Rg 5!*̒_6y cPSI"ԨiHAFHJ14p i(qW,#_I-)H`�=QQnꩡOVv<=HJrC8Q>(Z_*HI 8HR~9q (b:bu o\! 4z (PcvrXBÂɘ!K4ACkTD3O>.t,*Jn�p!w:2ϓ8op�01AI`])BCxJ@bdJ J8F#Vzn 8������*X����� Ҷyqjxu9J܌[82<yD<l,Y(Y=1$Rqؒ&tlH~W|G(>-X a)C|ꬔp>7|8~<a#tGqw`J'|N3hH̵?4t0F`>0JO^aJs9w_-(/b[E(4$ij·;nIE䁹!e(crZqa%hB92>YEnQk /p,WIyI\q%䀟K]GJ{WVԎ,J+1#·`�sNa)ڌ 0͘޼ 3Jhi;^1Nw4c/l)B‚.걘}yǁ2,o]+WǀH�wy qh"ƅ+W8J$wsŲCzvB8@x+qf8Q./'�8ŭdn<k&11{2BBDck4g݀_UyQ+mvC9[#?�۠7s}!|ptױ(/-)N o@?yT4;7/-ēNIb)!nPtu倷wSUou)oz((V+<_u|Trq(χNJ1HY��!�Y:)%��`1�]T�]9p5!C ^@=7O $k7;Ŭ-{f:RQ-NrfÄC` <8(j4>QW=j�nZPR,>Fp�@vr y�:?jM_6YU )aW ƬKqk 'w�wǻ�?Q"Z6o�arewaqmN_lD+ ǮcFq}Xh@ l^8 .7� Sc58 "9ztk�-ly2FD=uH,������xD6�AE]@̡?k;L.hw1s>>ar`hуR04 v)$+ wfsx]LP #9P3@!\'9�cHBnLM(Q& LOpG,�a3VH@  ɥ3=_Edg{!hp;ҋ$E�u]ۇODITa.3hH� cPKF�oC-c> r`im_2{I,KS/ҐPhnؘPp|7�L,R93(0�\5 V1Gv `IJ:~ Q@e5z zsp 8` Б2씥LS/N$Qh �B&%B%/@[';?$XHa7Bۯ" "R"0p}'=d$? ÌdԖ%p3RhH𵲤}͑c/m2. $F+0jJ%1Ct7#_eN$JS[\LRù[.ۂ8*:P;thp$ٝK-B߅)!,`�/>ll٥[U^:.Me@ԓ>rtm !,7 $ЇrYf htj[>;PĤ`54CbB�XG@�贖L+K.C:@'Q$ ӽ+JX茡,/+ 934z&l:YMkxe�����:Z$h> (gu@@$'"L#|`Lszz䒊 "V)�9T?O>Ys1i7nj=:dR5rϕB]EDipA/Ňk,zxZ96h<{{p>lhWr|K ifͮ}@2*iazHF엾^XZ{�����JZ%h3 ,Q̨O ~#DX[}z}{A9lbdzr5|ȶB]EDiPN"gs< &U x\5T컟6xB -^D[pS P|<ܶ^u|SN B7d,���W��:p��� ������ ` �ɼZ JDZ@�@Q1,A`t8^1$tI׽t�$0t6r 4c˄ �5`hj@InHJ6=M_�b `A4�&��$f- �!IkC @Zv�ſ@7mMݔn"Z� 00̞B!lDk @3�| Tp(A*/) l5( f0 d�"�D :+ +_]tkb& li9@C��!�Ye7%��`%g$$m@ f^�T??�lV��ff% bS vYaT@�Tv �M # ɿ?唀~EA-Y�: 'M ԺPnSo� RQ\_pHfOH)4�aL` "|$AIw vzb`pĢ66:`  M�Pt/A$�0@7:7�@%$XOH)4�ah h*!g,?`G& .`; $!k= @ ܧ&�hBO9jGx`1�flL(1CKNö @�0+`aX? �$0a@II�RY] bߍj_r}4 8 P Ҍh HmlBnvp]P�"&@@`ۓ{(D c9-Bg|5a�@ @�\,vB\ 0p a@ �<X�˜\@�]p�bRvp'ZM= nj`&�'�m H&>@ h�s )ip@�zXiw�h M/Y>@�OI`@�bB1%:s {at_H@}(n7H�T$ �z2֔e<~ ^C�Lb?Q45 Amy@.ɤM!Snqk�\�ؚ!B 8&f�F�A�&! 3 7#60\p �>-ԬX (4~}p irHO<h&��p��륋wS �1 ;J-qV �L YHd׾_S @5 X,[qy0jK=U"z;٤0# mbKAI/ HH�$`I~@�"PͲi�j�` H@�L�1�#np; 80�S|W-*îX Q1 2rn� �Y#qۧ#W@��;j @7H GN b18$V7 5tjNeI_-*2`& QYV'^¸BxRmo!ai�0em�z��PIAV � x̂{�TD&ܤ^ (40s��Kg�)ǁ q0Mص4<C !7)? "(t3'!%K ]<u.�3& CyZB `R#`gp"1 ;IE% KmXGWXk8L�1%2�t� 7� ;H&Eԇb<m!Y |u` np+qw@:�~yE�P@B�ls +ρ@ �@: nn+ l�E�3 p np(� w) VIH푍▞u �n@ᮭIF1>``�oC2FB>r�Hi7᝷|7nxbhh Sր^Xi 9lXTIK4AZ!?45$ 1ܱT �n�(v]�HI:/gd'/[}TC�RL&f\�u�ߎ@@�7 !;ao,��pOH  ̞9As8(U�! p RP5Fl$;}̨���!ҰTD�h<` ܉t`r .L�@�`MOKb6PV��!�YC%��@ !�[8uC Bfr5ML*g2gں3Yz6ΦWy@P559Flk‚ 먀^K.@U .msd Brk:GGk-:{1ڪm#jϋqmXZ9Z1FڰH�U3I$ID$$HAEIUQfQa׳G]o Io ta 8k+@^p跬T{ TjIEX!Jvc!Wn*ٷh6Ґ+5T\~,X~kGs=c UňJgխh9Dkgb{L+uu5)uNH2vPͷI6ow~N-k]+UJ9eVq*nж$%{Y[WN<-]vN:}06g9H�U3I2J(I$ =M%TYEU]f]aYb1U F9$9-ifb8PԳJ!{Vu\A8_@Ɑt-l[}CBR\vkU*guQ r*GJ_,qSYRn2Vo:Q^O G5jD-rSUrg_m�vRS,&.M"aU5JT N (9U4'9@ٮXn=.{6DٮciFnel=%|ܑ~ƓJrkWeh%xF!�H�U3D(I$TZ{BE3DHU3MTQYvaaaƗl`<{'\*a{ك M Q56ϛݭB =L6wէC*s-mfEb$q:M9ͬ3^Wh\36Y%JZգgՂi:aV%]qg9$i9tho b*&=kMmcXJ&0"",L0UUۙ!Ψ5\l9ec4[Pkn\,&|%(AH�f3HI$I$1@MQEYfevavefafgo -diLD]b# \9GLQ5cKT5Vִ[Z%jű4F$jlSVk0?yX#pL*#~ ϚkqXRv]oۦ vj<$ڭ؊햲UrJRB_=rAM’RBJrNȃ0UQ։tr]a+WkXƩNm ar6ͭY�H�f3hI$I$EQQQESefYeqn7"]1YH2nkZ f6BOFtkHDf01TiWX,|6hB9/y^*3Ak⢖#tH!kVej 2O7C=(lCCH2ݚjcٸ!Fl"ZgӞY[\B"qз>֠XSZք[\=svSh5A6PDOIL%slƹhqL-Y~-|ht,ֵk�H�e3H(I$ -EeUu]fYu]y23lpxw j4,,U#ݛ5@pLnO ,NUFԨ ή|f Kc-o/_ jLmR5J؎Uf6­+YUCX־kTj< ,[{0MSibjbJ(n]A0g]kZ :ȉ9S1+BB1WڅD1-U˪e^ 8P?$gK#h]H�U3LIDI$.DAUUUX]FYefaiZjJzZU9޹ kY ʳ=\Nak|Μd!ru1~[4} :3O]M4 ^^q,+nRC#Z֌oSfW��!�YO%��`AVz`�DhhD HH؆L.P s|I<q 4fO^�z &�0  FS- .8 �� D NLܮߍ }7]8)` P41�:8 A( t3%<U�f߬u\K)s,OX+&;c.PD  0!ܔ(/Մ>�ؘL-:{:! o;!4V{:r+;. \`Xi0 姧p[nsِ`bp'b|$ 8FBY#[u8q ;t63q`@2&K% �\9ÿ́X @10&^~t�3H$3)P�DM?Kc�{}P+gN}mlrA0w8 _� 4@ 4 �Ɋ h+KNӑZ`D0]01x $K%-#[V�B&0_v�bL8P*ɡZHj\M-0(yLg @)0d  pe9Ơ0Rec},I@$59OĴg�P@P�!3'oƗ�`8@TԜnC \@b @MOXQ0$&ŀܘ_š(NweQh GCfe7䒇g|=g3~ e9@� '$ �>(v2�tB!4%cݕkn)<3� mo"ÖOٿ1T+'2 pCQIrvI>�@ �b~u&Y` He(a7 g꡽GT@NM�>hi39h{b0M�"-;| @�58%#@lc:�& �Q@&�̰*1*xb0O!p[ZC[ܐHx}r~I@�� ri)Ro0i )v�J�F*`�#H?OA 7e @5�_dԐ2SXf+oY|] eVPSQx~! *�zßujM}y@RW{! P;,MHaN`#g'� 4Kal$%�7�8xa @DGs5j;*�`Mn?8g5 @2�/,P�R 6)/+$�Y@\QI/ZB-Payq @@�? |hg` hgn@4�jf&q ^�BBLQh ܠ` �:b- 0}ۀ@�ԆW%@_BXv��@I\M B/%Sl :�|� ѓ)2m@8;� h�,r` #:2;MNS�O ! 7zRśl�Ҁtb(&<Ni�4$-P)A�G/0a ߥ#=(V(R )#m;m4B0 @�%`JH|qπdMۓ�vL sw]4�Ԭ�Ę)g@ ]h?IdN�g`ݗ]�j�TpXbKJ0G^3$+mO/dl?b` ;�:&Re1%0]�у@vX` | J'>Ň\�3�~F_,úoƞb.�7e?  �% (3 eQ#9i�~�`p &VZ0H��!�Y]%��` 7�ieNB$%B.�|�F-<AU#]%zXM (!縮9͜cpy-_8y[ g҉]uqhӾN?svA[|WTē s>j KωC�+�̙;;cx�~�rJV��C{@8#"�1&orĭÚ�?, A<P C@lÔe `�0!?S?0osh>k�P�`p,;C??(&�JNN@b` y(ak%n>r`: F|p78!@�;@ %~8^Ҁ[8�Z9p7@ �hnV �//_<|loW-e<U 1C>F AH?g+bRpQՀ$&�\�`` �|5 &�`a!OОXޑ$$kayMmV*΀]�  rai)Fsr"bXa[/6kP K �)e9i bOWCy ߤ-קA , vJJ&r yi$:`_%ΰ �?gn,=XM vܘW!d@9`07J0<Kڀ@�0^rp ΂O$ tC_φlgM"h ; p[΢tɀB%q&ߞ��fye@b'H`Xwه#°�5�b_�9ϳ I)0�o! AMl_>�4� #Ry+l&M` R4l8Md |B&7 J ŠC?_P�&7wp%CL`;-%>�4 Ɔh+,n3 0 �*! *Pj ^ WKu@@M(#(�0 `> �+! l1컘�(�߆ ɻ~甃$wAP�X5&9�r �h{IV#v{;L�R�0;&�P IHo::�;�~�bB!$4@vHnJ\knz k˴ J򵜰gP˽�\5)! UCn!$5P0h bt�eNV;)44��1F,ޱw :G1sv@׹$Snb)ULnM%#��b�lŗT۱@�//�voСP@5$-ܼЂlY`Tb@,7Qc8R145=i΂c_Ti 7pԻO;=y0Ĕ6N'W�0;i(W#\CB8c,HN@t~�zW&^hLI)(JAgc8ωab c (i fQ@ff9 Qw{5'+bP]:`p]�!( p/tA0퉥;p�ӳ"h@�(47>PB'Z0oY)Z ? !H bW!D0+a&aJ@ƒXKhp �0& 6q11W\@  D5+9$}�"�z�47 t䣅lG�0̔+o2\=~X\hOwb$0b 2 �50 P$1d j6!��!�[i%��`1�]ɷ�]i0F l8xn` vB&#rI~Ge!3\@ @aSu=H@;,7|' [Vݤ!JP?`f�hp @ Ӊ!��]ጬk �`;fǥ)R6 ~v �LIؤ"aw `;A0_lXarPnp�2�jBJEL���X@'8@BZ{pXQCu8b1`!8ģ`0A$,z`~߳X{ڐ%իc&@jr1c/( ` Cr 7?]h`| M&y/ž@1œ0 Fؒ m_` ܰ XQ 0AH .P ÈdM/R��@`PpHxw I �d@*Lp L�(^,0 /3C5HJ�>8  A�o A`@6`l$g A . �H=Y1,4@*�HC`2�S�9&9($2l :H0Q@;�s/7A`TۻnPݝl*TX- Ri_ �.�1L�a,p�]BCY']�& |4Dh0- yR�"�ј7 �0�ИV)1%�4�aPI@&z�4P3ʀ+S݀+bPB� ;�B�B0 "`@3�aD`@nC r,l1(fj3?'&�dL@@�0yaw*`%&�'|7 ~Ҁ 2(#AJ4?P!XU �LbI4<�0 �"�7}F;R &, 'vM ̂Ӱ������ D gCz¯$ť;F!q-X�f =L�2.%SϢuqqvX}Uv Ggl8Z{`nB!L=$%*4ZIQP0 7OhM!d@(xc}#tLc>}*UZX �3x-%8`{hY+mA|R �@ӭ:=؏ _J ('u 5L:o shSGns"T rFhRF0L�!B< ţ(kF:¢byXP]Yb]hSǧ)V ȖTH0iȚ 7U@a(+4MpB &p$M*!�ܢћ{Hk OOD%`c#@!%H1geIE�4v4qAyɹ!YC > EL>Gag C&~xF!(Fcc(nh]!xͰ |%A%�+A}cA=fL$�#n K@@3RM8|B%:,4DCWK|CQB! JB0$$(X msn\jքJDɞ/D4x.U"U 3#DP$%y*|Pxw#E$GW[Te%!JoT` Tx"b^o*>6s@큂Y!{Hי(E�&$7J&ҏFpB*nQ D<Bp?y@HUAWZXꪴ3C8E?釀p'`G` r/HԤA hT5F��!�[<u%��@ !�[饅b߆B [ 2RT`ҙzlƭMxb*@L]j@ZŕfCA2iXV&l&RTc4"�VJ ekQd"Q aJkeH�U3HRHI$j(ԐMuUWYUaimܖAhO InLt@kmE4xG]UϤkZ֐ t:>XM.-6n@�|&z}=.ES@FaqB6#U�fڄغGea,ٸ.'܃X=a0_Z} Vم2BВP嶇)T_b˚5"-Zf4l4I bn~ծgfl"O-6OF6kROEjTk\Ƶs@H�D3D$I$?LLRHD=#PQLEE5$U=4A(DxXֿ|浭kZֵY=o`gϫkm!ԗWv{ m� #FkZֵwX.r RXA! VBGtrQ jD5RFTfi]>~XBh8DzQU*)Tֵ\zkopZxoC3Rp;!+i{XvsRHxx4J?YMKkO"Qp�H�T3E$$I$LA=4A3ACDM%Y$U%PwMkV>Y¶mNKZ.MZSr1T%E Vmxӆ[fV{H)N)/q5(z_=BmM1(2Mtjй ɧnrUYNyQLϡ 5 ^O+pR5k%qx}S 5 A*B&ywbTk]T'2rҿ^ԩMm�H�D3I$$j<O=#AMDR]$YTQe"ڥU`~ v܆i̫LyD>{kiFvKoX�%!VZ4αJ>FNS?cN !r苒O>jE]4۱ "lx<BBEyg<˟ ͮ摱"[IaJltnY`-< EUW Œ}i€[ƝV6RYzOv|sTUNKbuXNk_l֨��H�D3h$$L9HEEETUEMu]UuZ9D|m 6J)ubs?:{T)zT~vVjhZ-ӽuo%Kt H{UtIsC[ O|(<Y*SW;Up~EQS~1zm1qƺ4B,# {YL9x ">ڥN" P)l Y[)Vẕh@,RX։BAӻ\ *�H�D3E&DI$>K<PHPRM5]EXUeieWUo)0Heb53+W͍RV�-TC VIM-"+bWɧytN'g0Jv!Ff!mHÀ| \MeTɱdX3[+.T5/TjYY -7rvFftuc}6cHSAvaqk\j8YTt %mWKN֬$\?HYSڛ1~m*Jӝk��H�U3I$$I$LDUIYETUU]e]VOe+6kƩIBz|ۈ 8v *516#%jLjSb&2DꮥFfk{"9]&!ak+ MaE@.So��!�[g%��`!�]*LMD;W�> � G%.=y\}A"2E0=ZNP!�tYc0(a@@*PT�L�B.�خ9zņ4<ﺆAbfix}X lӫx}r)v �}0&F(30`:@w!߸�^fO9Dh0wtnG@đ܂�@`\N�����_��:X������ c1Yb)~`cGpXeB:>oOjH߆@>Rυ8`p,p#1(@P py�_�<:L>Y'spu(\0<sƇz\޼ mPaUW{2>�"92v8S;csFl*#�kxv UcqHn|(,8PBm crG/K^b :jٙ4:p1]`^ X4CG\7�v:?x>`ȊF85k Ƒp4F�> X|Ӄh <_:P}$eJezyEP|N?b7 ^9B3Y<IӋ0�<h>owO����� !nA$r8\(B ։D0?g�FgFH"v~`A?u [f8UC3t<gP0 !U\}ΨceοP(fmmvs./5٢Bd^8 IaDV zJF|М/Mo&sŸ|'Kt}sP9\ŀK!'@d %R2gdĀ{DiD+@y ]a& �XkcrK&qV\AgBو48.ӀJn.T� %@7 #�>D �ib5C&pHA5Yn.(҃47ns,q7,p" dB.CԵSPG=yNu; �оYjV@1)GTBI*=V_ 59e)+AcZ ό0%{JJIu^M6{^xo_B@M1*Yf1 !Q5yi.J<L&`Łf`@8q�LK(M@a�bM!�@dP 9}�o Ct0,"!X/@/!TRBM �|��@[@MHf -(}Gw8؍B"=fD)ʆ*Bi .Q3` SrE$|J14Y%$'?u%3{�Q 4qagц;? Z փʒB eh4�& b1`o ',t}D}io0 `fN`sϢè[s`Єm:haK~QvO lM`U#%؁\ks謗Did4ea|=fR:zD*J�G:=QDPb6pC O*ƣag(Ӯ>؀3:hGiӏ4G`=06ʒׯSZ ˸>*"D[ׄ^g Պѹ24Y.DDL� /�B& \K�`qnaDX4 dؐ5rbUÃϒ>}nF/Շ.�vK( G%rj>oٖ}���!�[%��`!�]'`C�ߛ *6?ĒPMŁ^ep&~cXL�ΒRY+N?DQ(b %(I Ϩ⠔(ܼ!X$d P�!@&rr]dLV:pH@@; %%I>�. 00! 4\MJW5#RI(NĔPqIJ FRC , $#jB�����3x'k<l>O2vFĔuPQkZ&U`cPoT$M:ȡ {q&cRXzם f2]EԵ\DDz;V{k%җ\ڈJ%nsc6!ɰs<e#q,#O-ǔ@ó8 Nmnp���_��3x'k<l0yd+)hdlHGPJ{$ֵMń6 }: f]C;Ll"rgJ]rt8ju ,=k΄3Yv}Z}RRYeiK.DtvR%9CR1VI]$2l6#'QHrq'˖ %afGQskw-k���W��{]s2M[K^Xh$-7{Ȓd!3텟zP +'u|/"‰J̎e j>r^0%"Q÷)& ga Wus.b&S{'Ev&!=#m" (?Iyq !|^B 22K Ĕ� G2z:) }8Ы�,` M7a4b&0[@[#{q\5H:Pu>O6c+OkSSPY] 60}2ݓ\3lo }N<}G@j"XP#Ce2L 2(SCIOUv^Ǜċ^:‚]6AD\ gkK9&VFN鷼 1Ȳ5@ּM@ͥä~"0E]? >N(멟mi/J{|EĀi1 4ڠ䖒QC�L�$�lRR[߯[[^x4d @;f,n1)P>�xC&C_~:Z0JC_ GƆ! W= )7#\f) \jx9og3p(Jb�sq(aD1R@r70eGC@Řed. G:q �G`L{r)ZWz'oD%�P PTp|u������BX�����^egP|~'ʯ'AW*l}zs =xS_` E NTD1Ov5�b=׌#Υwߋ myCp% 2#ׁG<C9,GX4sׁQbuy�uqM*ǽzeKoD5x.Q,Wט>1hƘ,~$9uTNDx{`cãCW*RώU>5 <;1?c$$e,ˎi^^aѫR<ټXohE>u7UypOò-8R^gPڽ�.=:޼$|hU.Arup LJET8XS +>,L׋ %�Ex LD'��!�[%��`1�_�_VY7`u^8>1׈ж2 .-ׄ,_"/L Uy)QpCR86^cw[xB8=neP^N~P1'Y}Ȁ"W5zo0@ʖ �-`������ #WNExC/T5uq9v>Qp$iPF 7R@0F�P i)G^ι+3-7[ z~<<#A�s2<xv<?aTDE KSC8iO<m&^D6#HÉ @yPJ*D& K<P ,Pg[,v*MID@V0#�DIЍ}G=lv<Vh 9&!/$be-yºCuX)8P>Z.00X"^RYbNI].D7&Z qng|y=pj@e,W`bCX4h3l45C\]-k =8&:tnb7N]!ZO˒ޛ' �D# c9YDLj0E<dXl0YZz<۠)awPx&Rs;*R-!Jd䠄cDcG>]<IjX 9N`Kv8.o -�5*P^{>:lٗ49QBUHO60L0OD"h@ JB7_ѣp:.툰XV"ۀΪ",|p>(tG@bJy8(XZ4Uhb8J.h &q|za[}+l>#OhM=hDžJ2o:x +,(ix}<}?ϋ^8\%M<4Zim3p|D\ ϼΰW:\@W%#/.Yv^n_{ni�0fAc\{N8.�$B %$?XQiot�4jO ,i (tS1�:�dB-8%vàP d"01 #44kqAqMKd!8CHY( oh pDA)ooE䲈g*#!1KF "Vt8gaF+-0K@{%at<&ft;JwV@ELCCҔّt@&gK:�-?d2#L,oੈE$ol;{ Q$Sup0X+۴"ϧ3Ͷ""ha 4&$YvGNP@w&iD߉ԠG]#>s4gԬ1o������;x|E×_ewxD7ڥbPzGZ"7U׆'WUmO ȵ^V>/ޢZw;']5NN]ĝϢB&__{Rt|pky^[;J:�����+x`|E×_eg]F ejkX#^.\q~4/V'WUmO Ȣ5X.-}>/ޢZ#}'w+ j_Wu&G_s(I˺χYG.:b5�����:.|iPm2Y`7NXK**�I0x(uA8Q?=5_:%iCϝnz :٩qOHDknAF2ؒ^tsՍH ?㼌 J0f&O@?2Œ0X~;?y*LPmO��!�[觀%��@ !�]B5՚-i)ݮkZ5Da26gs*zMX(4׵+\7:ǚةuta`▏Z֩d"^#0-XtHȠdk09IRYDH�U3I"DI$ =3<9REDI5MEQM9K-+ r5ka}U}%#־RFzѝBzs#ٻF RjIQhClJa%KbXr*A7ٶR6;H:Upg;]֢&8Ї:Mkķ5 -5D">!Bk)%T6j`)C6te"Qkn5)k`5#{Qapnx%Q A/:\S\ݬkT�H�U3I$(I$ LD@M%U%U5S:# z$9b9fYUtetAZT!V61ga\W5+< EijF;J+JsBNjx5n;X6yYЇxezֶ|)$Zcs"yReT%)ZD랫WkSH4MHKSAQf>iT\2P)-KS|,6km#T5΄5؍µë ՖRtkߑֽa k=ڼ!8"B>yFQk`6H�U3)$)I$ʊ4ԏ@IMeUu]%VUeկuUI`b(A>@SVVU`D m'ԣb][GW!I=*VȮ!cFĐ+UOU)scmQqR5psaPڵH:甙J!Vml;[]RflȌQZnT֢M7m[Ik Ȕ7ܥ36l#X3Lڵ+ݮS돴S(eY؏R(̙ߵZяV6#qָH�U3L$I$(AA%UEUaU]Fe]ϐloKAjˈ6Uu΄)M[v Ę;ƌl rk_,m՛v1a%Ϙ)0X;6ڮ3VHA;Xjj$6)) hλ4mZ6m@6&ysk[:a ),5A X͜ECTص B lUh*i>kGVR'\��H�U3HD$EDQQQeYeN_TU!N;jCpD^ TXj-TDsۋf7-Xq,N1g"٪6m3[椴pOZY(ǒ##QtTk)Ml$1tG;j,$Rڭ׵Vl#*P)8 . 6bwV˜i[gRpaչltq״NVT-pIa3.Sm_) Gl,`ڸ\��H�U3HI$I$Eo Ê4M#R=HITY%Y5QIfQXMge%ReIJk9Lة L�@:dօtNr6dbbepWujT-Ȗ5AL%09j>P9K5q%rIg,JDҺh6k_s+FjH$$HֵkZ5MW9+9vʃ[&k^[(kaTMz4ZK0v 5-v9�94! jJ탉hF>Jjґc�H�e3H$I$抪<HN9CEDRIEQTY5�ɶ#DˣXsk=M'EUHmۚ2skeɺ`{UvmDŽcbT\VvmI0:EC|X&V< FLzo1Y��!�]%��`!�_aY_~km~E�IƖ.O0Sp,�Q(4*ICw_w͛kL'.x:#An5zA }SfF_�O4nq\)AWjffe�q #< q[Ik{C0w] >3 Ei>H w|Cq>:F%H"~,y5_#1 n̈́#xÈqlgwl*dS|S:t}2_)tEaaxۚn9Pyxkî&B3 )DEJ b3xjPzB>+>p!iûp!j�:Lu(�Ax �2]jpj?;�nUf#@/\`Ǫ8^6ҭ *p#q>@Ə.'^4h-5}�{wGѐ]�AS�\J72~Ff"Nbdt3n*B0,D-&l&^3q\g|9ȳ.UQ!#8me[e],p|J(F>ta wW<Q,Y#i/NλFewPjKJB:5H% F+!}Au���_��:X����� ]2l=CJf)t!z�= W>g>{\Lh/�1N`r…'"aNF8Ec'>DoxTjб]?`yYŋYx[K0F^U-xA-ẠD6WxPY0ӌ&y\ac%x(:̞:p;0a2 W9Ml.lZǀ8}s o^`!N}5ajJ< `s"{1G ~[r qD[=$b-xda yu6g7|N.7J|my2E< (y p{@?@+.œ9Exs�W|$0cH@GC,@0^&!`sg `xḍNFNbקu)U^ט$N(n0y @>E^Eh\z8p Ȑv0�=80x :D#AI=P�p1B'EV��� ������   �@l);n05*>�$ wL4,3mn�-\&�d)o# :&rK+'J6^1<ǓR -@@ `*| Cv0>햛XpaB k�b,̰:B?M0�a~�`eH &Y@t` NFU ˀ4+�2!z6 U΀ 'A741m_@`p )۷pܰjA�8$z&OV`UP$r�10 ӷ퇁P$ $XD-^c ӕ|PA�$(=` �HHd^Fepar _2= �D0sI ] hy fK !d�nH "lf_0� sK4 �rL@DUBq0@BLAE�5LH5: +}~cχe5D �#$!1$.-17CF{Vr��!�]>%��`G'\Ѥ0ԏ-<x�:(`aXr6'Y-7p5tWD>^ĴQ'ޠ2K�Xain47Md~FAYloRopU\ff  &62Y^A$.M+co1!luFP}E22(_O�wht�oQ]LFBstfw-8#u_EcCFc#K@Ġkd;x"b{.К~Σ10Vc>\tM7ۏ�c:Ui a>1 kVT44gZx``fmzO,ņwK1)+w,'78D5@Pwגd?bl}ҺON �Rhf_b<H+1�44�^Gl36ۧ컜B"1$Rw0+Bi]/y~QjĠ1 ŖnCyp`̥~e.�b:^kbhä(V21y*+ ᡅ'nM/f9p HYJ WP^MC\ L(9\u B Hp �'JJqLİOu&� `(X Vf֤2` $$?|•d`T4CB?Bve|p3V}2@ޒrۛІEI  89ۇ7'J9i[3Vo.ӓ bw=* !ܱXƹ Y5$R?R1}CT�Trx c2G l~Z@&t(탮p(O62ԆWK/m h J 7vY4W^l18d I]=)WF [QywZAyڼ_ݽ<Xˮxt5@'!GY 0&$ #]@7,TC/}[@6n3 j�dL=-�eR9a1i BlXax8R -So ;8tJJ l'l&\VR>_H`1,uBԞt�Ԝ;.�'TS>@^|_+q4G~h� RXhlpd~RӖ'?5˺@ ��^BrA5 \y}ہ�{}Y7�lL�$h($߃{ŀ\CBC�o �' ½K&^_7K#$Mq@:(f}`$?-vԝ�68o 3c$0Lhz @GƏz!/ׇ_A0 2{*褘Z:¯X�Z?pJ Ƿ>wh=|}Ptzv:K{?V8I2-Cq7@v TQ03^F7K d :گwpK5$WZ AyKz{$418+<B�̘Z1-( I%;,Su)I"pѓ=䐈x:g<a <h9iVe{yVUK/l!rs0$>ȍZJRHڦdtPuJцsu*YY,00 9s@4H`1(Io.%9�\_ ܭ8(` ܱA̰2s@cmkВpc\DbOh}(M?,~>A4ÉT:�$45%vA&ѐy}X??î@݆|;=`y7)${5�h wMKޱcC)NN^RW&#x5G^zKs)E~4ϚIeaa{'*t3ބ^]?ْ��!�]ۀ%��@ !�_LAr㉱C%@Sc@sɴg$Mrݬ6#ʵo }.sH8d`c 6n\(#ZɵlVuڗT4۷A.X@�H�f3(J$$@RE$IdIEUQu]vڭ6 dZbAH9R2Xd;Fd>8c!m]J k7M1_\;T&5 aJŚ5E2 ᲊ ec9fu&[?yȊv%Yn$J&}!VbΚ.M"kͯZoyh]5mӵ,IIX+ݱ[[k.jz&PlVձckZe0WU l=6ϚƴTֶH�U3i$I$ꪪJQQ$Q4Ie]u]a$Aj Rpt3:,)ƵXDxNᤕQd8rh(vX6Ӆ(P&/Xs5Sg* 1+H3I5CWZ+vVnlejf)q jssjԶԘNDA16\jjiP\RX豢.:ճ ƶ NA%4;3ZjnDL(vbͩBbĉVrFscj"MU5ҦJ!ƴ��H�V3I$I$EM5TUumX]eB*#ɛ[ҭeEc TR@A`S6Zz#^$ N% :`BַTy瞷2LRWΟAM9!t@8v WnPu5hk. <u*UctBڙxW_9\H ˣEi~RNY]jkY&5--ZLݽfcZPH] DB) kѭh"hَ%v:cl̷ lƬkkJkjhB͵�H�V3hI$I$螪 -$IdIUYiy[eq< +.5KׁKPHV} 6׽5qC3V99ٵ,ڵdߗbȍٖd9RNvdr/&$kW9TQ-\Z k 2ڬyu0R4^5:VegJ\}LEjPZ bCS$ƺ@m90V!\()ŰY#\5YH bijkֶ#NI<ja98W-mm0vT\��H�E3lI$I$ -Qe%YEUWaG]tQefuuaC3 skI=t:`Գ9kZOT"VH kZyՋf6΋N3{=n|Bmk`G5MSZ5V lAPQUs U#Y9%_Zs7N 5z@n#Md`f9K,Đ&WQ5Y]Y9Q]\Vɇ)kmf**w H�U3II%Q$+ꪣ EDOA#A4IEQEQ5YO=vVՕ BVSR,V} ,jU)DPe@+9^ApLBҧFZA01e�@CJ[D dXUՍkV$u<It5RF΃D]&ˁ)X{kXkTSV jit8®m 5W$7'nUX8ꍩ`VuVSHysk$dHj~ٱs6ϒQZ@F)ir1H�D3i"$I%LEEY4I5UUYuWYu ~ j۳qX\%BBH4G͹tg̶0WcMdzV&J\8q[f^!Z)i \EQdܠ].zrέ攄^QuD'v��!�]%��`!�_g=V0�[%)߁#(Ԍ͸ gStP;UbK=1-`f;duìK ve>puh�;nKZxtdX5 $UROOwpQ7셚eJ?R[Y(nJOd0@,A)�_Ai' e N"x@Br?R#2p@^%!΍x`TV;'} x ,�@!TQrV> CFA0H2Ef8]� T02% )͉כ@b�t vF7 T%}2q]D  7Rb1El#66U/+Ʌl !ĚI@0&tmbiHFeRqK/�0‰}uŀB9 �̆Cհ~| oYR8.1N_-o"_<Y|3e` Vt/30PBeV%kz_6ͼģgO~:@(APFp#i|PD^ B -8_ߑtߍW؉yS19[s|0w&?'� #�%St�^f�AJ �*B҆,0nnK� @(0p)J�`BG|W&?/KB@�'�t 6isuD��@lQ+~g_j\LI@TdƒI(D sC@# r� 4 _p ʼu$LB�3b?Q`+ �$0�ae�tI8_ K4?6‰#L@ A!h�U`:Ժ@�"sw9 Q` `�T3R p�������R^o]KU֕5ɵK^^ƷN֫ji^GYy:^aVUn)::����_��:^o]KU֕5ɵ֫$ktjV֕uT'YVNXjUNV\_os)���W��Uc@ШC*]ۮvd}E3&l\t"1x@\/)dB -]-}O�>Wo*Ky!ޟ gC8."Ks>tӔ,V@a�=$ W1, o +tf_IVCsO8\8Uʻ2{$ ]׆, P ?ovqvq95|>�q8*(<UF+ ;^8 'Q߉cuq㣇ژ:= ab ېą׉Q:.rO[^E<?"IKH[rV,<wb "K�UY\P Z}t@"[@#^xqMacAqT>xcOpwW|D}@@G$#sk��:x�<@9rN$u"^ava,]3rE �5pAMsט^cdءRq�7㨇n8>[8v�Y&#PgPނXx0tCJ̵ ʺê13xgY N1{:?:e�o(L+Hn<8D]D#IʗN������2X����� >:cm`SǸ^+^Ffxayo/K <xeW=8~֦RX(q�w1S` ) ��!�]%��`1�a�aoڌsW(T,e0%��σ0�uy- KkȎFG8(çcD pi\W\}.'4@pGTcD%vFv.˺3M9<l̫yDj<�νCAAuUyr}NA8gG*u2>æI*Zn^`nlD|JyX>@ܱ8v1_#4q8TGg<ΈP#[5̯{OU1d%k(i\r5^`>M&SydJ@9DUJ "z!e$wP wc�85ߐ(C�m\߀IG<�€Jp?ȴ l=D( 5 ,ǂq Bp0tO" =@rׁ�)|IDA8bHr4_^<r=y� ~s 8qNYp5, "Nip Ahs�FaUAb0X€X(A qpQǬGV 18еK"Evp q-͘""\Hx^b29`2 ,[/Yg"1E QJ9ROHzB������PU̾ cGIaxD08t8}b|Q,*8v �v^,(~tRs xic2¡$0Iy:dtD;~4*eOz"*"'a6ɩ!{Ǹ9D/l3"+''ԃ<R6,+Yc #j?5 9;ro ,�Kq (~q%?Yfc M(S �b*ɜPvV%>Tt=�3 {FOlk'G^Kn<mR:s0FDivѕqT}'%?MT\t W07jA h.}ݍ[[GxF%;;iUXqiFu$ 6y~M@B�pVH$ <�.(k<q:H8*݄ Z:S로:&m$�3''-p$7$FP !+q LqEڎ!tB!9նpi@,78ph$`VFw9߅;obp0GtC|E0i÷:'('/rޮȰ0�Y x ɿ @.@�#) ;t*:2%46 [.WB~j>πkؒE,4%:8JYm \O�����;yO+9W'JZYCFlj'iUyRFUuԜIm鬒?ۥw+j]~ʿY'S9_+ćp�����+yO+9W'JZQCT.vDfɶRy6W%/okzUũ>ۜҀd/[ҹV]n|ǀs~~_?3˟½-L- 8���W��"p x=r'<^Tv0pJ$|(ik�P�Ktu `/k@'nU%h���� ������X �/h$�A(7@ !�;K @  Q93Ʀ`@1�\q@%'.8 A�1� C r�HM ۀ/h$A/H@0�a@`(Ĝ7P 9 yFOT� v< �BAB` ۀ��!�_%��`/h$A(6� ! ;K`@5�`%``r�Ө0G�Ⓣ$�fPAB`#~A�}A$$` @A� _@I &^N.%|QL @|=%)=<T;`by`I8QpA�TH14@9 I&h�H��; Y%n�4�&�x5ɢ@Hh#�C�='/΂xE,A@A�TH14@�0�`L@OIbpp kHhZ@A)0P`�//:� I&h@P" M(5 ӍZȺ$@+&m�.kn`By�*&,@6: I&hH`" M( $e`}0 'p#�n @�~R M �._H)4�azrh RbGo)x jf/$3?3-(?�|Bi �~R X"AI פ��HRDTP aDh$@W � 4E dVpR)b0]"u#^FGYm+�XPUt[HO�Q[vE Hvl+ys h 1Cl lj [} +10LFXk7/"4 ڋ}̕ Qsnxê0KH"$/`pѨe*Y 89ItS |(vq 7p i5@_9.5 O2`� ļN94q<ZKn Q@K^S?aJ%lR@3@'@oJsjvQH!PJ[x(X 308- u�5 <K @gdbEICO$u9HS$(DZk@c7 &Ւ+Ok`r�1Ʌ9_>:p!CB&GSx�#�aZ0NAЎ‚w@;?(P#'rv}@�y+�l�)�bz0U` ɉ`[_G8UG\CD;r0@`@@:'8W#:%RY x�0KX :N%}a`7qa:' lj &R&rK@�1؄�+ IA1,Gs,gt YJKI( 0�TQd*S#nt/��.�fQxC!'1%�%9BqV@6! �1HdPM-q/bIp��@*)mᡘ_/c }=Ԓj:JY �1�<,p:Д| ī܂$7 }v` 0җs@�-,0@uA1d?b/pnRsGfK\y!J(418FJ>q{üx9Q|:M:7ǜ;U� bCnFzHETpWWA{tpL� �X Q) q(G*;zZ>| OYH, "0g|Q5P3wɠ\�JA{pdŀ4 CLļ;pq:1,gA7D>C�І8 @4398@0�4h )hn!hgncxtd $ Cy91/�xL @ұhωeqE{(8`M&_1ݵ:JC8X'@Yβy8ğ%3$#|RP# F��!�_A %��@ !�_5&^ꛞ6Ԃh"k!$ַhMZT8#HGTK255SR5ͯkXEIF"m:sY\ԉ7[",4H<[\ja��H�D3i"DR$ꪪLE#=M$QE]VVY^&d}G sWbR#DgȚG(2u,&m 2BR JkSy3va iPte#J`p Ls$̒d z|.b:J!6mjrv^ؠu.eqJ9ps T{q/Yf [DzaJW5ppdԱ HAJAjyƵw͓1TC/u`LҤj Ṯ2�H�U3M"IDI$"-ADMDQaaZeVg+i1pB!iV5%6kwDK: v4c֑-f&.H(ѡY6a8n1tb@0;uZ< t]4kdǎ"xP*Z%soyjD ]8ga]i 9i(:ȅsSkVAT&P_ˁI9 s)3XBhn*X.#S͖Q,pDBVljfm)06(-F`ӶZ;��H�T3I"RHI$2DSA4MUUEX]]Zieҕp~! =iW@j9`׷ڐ-$lB%嬹sױkTѭ̤e-vW| - iHaHͶ'kul!Áԍ⽌e308=H4m{"hvֵ2[ 3Ja�Ե.[]c:,+[>H;J\ZpZG|zG)V-ZVHqi5Jg9dH�U3$I$I$À� 4cQ9#XA5ItV\9fU]AvMYEva|cF`Pc \bsfYkp*9KYJyĮԎi2֢@i 7u% X,FsZִkZֶ3)$m`!͛`HLj:cZRZAPסtLkVkZ4=lVHv*{& 5lm<{Z@k:Frh 宄*"6 AH�U3I"$I$,4OEQ$AIXQtidUU]MzUU͖mдk\V<6ܱܴl*+|F|oY*TZ4EmKBeEcZi"V%!w@ӓV3-TŴ)%CLvYFm"Z{ka[�wevWt#�VS\=MZֶӭUln%Rڱl2\օsu8kF5ֵ(n$`&ִE:4LHs)ef��H�e3HI$I$ʪ  <A$TQd]5QamIeZ4FՂִC5K[LQtXZ9BEM[h lPE-)ټA1"Z`*R:qu3eˊ@krtD>aiuqO`\Â4c\5OJ^*0k)5#V$I[;k$MI]hoZM]c,sB|V7`FI+^m֞6lTh%#l]k*vj6mH�e3I"Q$$ꪪI!4IQ5TefVaaesmC*>;+F %*Tt&5k89Omg:)˶.45[Zn]Et;%},3lW0TßB)b#5iƹY뵇rqZb1JE^ƠI/��!�_l%��`1�c+�awZX +'O9$R]}tW8Lf',Չ'��E�C+[CZ%p Qi ,s=A|3%C& ,N:_�;�d"dY'7:� _(ntu o S'dÎx`0T >՟[tѺ_x(`A`HxP)o2NN@@M,Y4$;pt|_M�@�F�15);v`l^nX9v#dY,�1@Br0 K~K&�bs ~' 1@;r=΀'>ۋ ;]{QWpTVN9;&AKN)<Vⱳ0 k3EI}_l>r i`d<>�b�zvK^) Fg 1ar[:ش(`%iyۅvTRєڇs$4LRrP'r,<vW � Pxr}�<: 7AFۚS׀b/+|L/~D�tp s@ P’z\h؟Hr BO+Fb<Rw(/3T �5&L aXn'>r֎OIW k~TPP`&@ރṅt4qJNq_Sl �n[썟 hih4mY<pu`&&qxK&;?q4τf, M?Hi7bR9!= mZ�/ N�:)8HGߛ� IdH!B9;7<#GOU*4ءx�M�Ȱ(~HG{``KvŶ ꟩}` 1[o/ *EupY݄st[vkN RE&hֻXIz7k_g>7v&&')yVjTC�3!A45/7X H|Gd wDLCԼ0+Fj�VM%Uo~p0T-bH6Bqc E+G: s 7H ɀ`B!O/ q 4`1 冒Ҟ+Vkn'nGc8E^qsj_XTuvzwN�Br+73sc?B^pOJQCfwi^a%;] sI'&3w#Ԁۉ!UWREzwVavc1@zF}@1 7d@*7mS&7UwGw҂ >;@o/R~Id tí Tä70ga`rM�\bt�tt H~4�4@`x�| 4Kt } q`!4PA:�dN ?h-@( iGH ,I$  !4 - .|P&Ղ 14  耂v�  J� g$ �a s 'MH !*,~[攀0P7 PgrX` �0I k崀0P|������\(h KDBW^'BBrc>yq>|ߊ#گ>zekMlj[̋%KV؝'jY{܇*ew'շo]QJGtn9De#�oa`̈́lqNke"сAwYfz��!�_'%��`!�a7!"4#X~xxp  7`!U#M x2_GY>KL�:@v AπdEw*٣DM8t Xc(:2=\P#d{Q/0SJ2Bvȝ̔*ㅏ rp"|a��n.rD `2c(@Pqr�*(A΄|+މ(C_JJV1�=3;BCa7('qAS{kϠn٬D ~ܝ%M>B|Жb(ay 4�ļ43X86IEtf,H2{Q̢t xZ%a' a%;/ HGq)D0Lvn룍yE lY99xcg[: � PXDRN.Hs_΍ɭ{"nF`H`AfPI@ K<^�x�Ę� f@C}�Nx+C1ͱI[E -Iޣ$}[/:<51,}Whpn( dk|OVzsD$V QGq0abB =-gC7�!{Hz >DtY>Fzu7ވqN:^^M/VɁ0>ⶾX:,pu7Fv-ǠR9a RLdDf F,CCUk3U-! *ŀMDcK9JQNo(2l*!oF+m߭[5R=Oe;9r|,l.% D?/`!$m@H 9*m#`����_��BX������ _4JWQ6 .\偩�]xi}G[0xDv,Ds?N$(@yc�:^ޠW. :|(p؟UadkY3* Nߞ"\y}|=wznڍyGȳ"+ _ne49cc5oȝΜۈs㸺}G(^"Ys=׳ ^0> VPviܜv9jPy w@3"D+NmjE?5[2_~xp>|$!8x*1abӖXpPAm^4HNsY8 BD߇,DHPTw| zWF#+kC 8Q9ǚ:� �@/8W+;nXx2|fptDk%=g@ q⣇KO ;cYȮAApO^N��t+i,U.5*B7P*!ëĵtmױ7y#ȮxMu|_&T|������ZEH '5hgگ#o2^nJ1a 7C4Y:+(jGȶ뽐(ba+d@d0R] b%W&_mYc0 ί�㽣e-d*lVA "^1RK`>t^,,:!R\(pLJ1?S#*mҹKVzT}ζ<BHP `agfegl¼ CJ!ğ^cqb X p'҉㫁Go4 s; r\߰הdY G>/m'^YOJln_/`RIj =ވ]��!�_3%��`!�cB P ]s-HSpp^W^NcǑ|<�q{FrYF͏̯<[F#@j|)}AQ0ap:@Pa, ϏEƬWxtrNnC2C9hJ7? w6lדdҒjv ϶! ?@(Ў5;MkT4S)|Mov0>K|Xi(E$ Ey=*7DMH�Fx1$0(P"!`DM |*0 X�cǝDTI#0}(K~c8E(8^$Ҁ~F _dԖt历RXct^BGlE걜\OmE`mvp(hYֽ�0� `|@ 0F"!P5)#'Fz:T'qTE *( M# 2R^  eWu{�zg*Qy$}F BI ݍJB�T] p I%BȒh$FU0t>k*&vz(t#XD ਆ`u& �Z X=-H4 �ԛŌYq3$ɵ@@+-I'KaG5� rGfFRqΒZ>vuˑ}4PY QS@UY@7 (G�\�@8 &Ȱ%^B�Uo|E߬jyAt>)T�����2Jwuu3Q*0Ԏvk9bWE)٭ ƺy 0U%~ov#tMז n)Ώ5kvvH9$^unA?ZFk(QSgz%܉vI+\/CPu=R$TI1])V z%Bu]SZ'UK\oCQZœIZѮ(!%ztSv\ܭ$I7$05:b&&$"]VN><F\;l}=S 4 l5!X6 LhnW|1;"MH BreKzAG.';p���_��:Jwuu3Q*0֎T9E#5!x'#]_v#t{^Z/1:b?Z]1]bK(v^m(KRHݷ1S=Ѻމl xaԽTsƉu UP]¡^ʪR\*Qk7[UɤzihBJ&塬.�I*KP LDB0m@? ˒'f>ΐHn!d fe`؀G2᥹_<0 L&ȬtXC*6Qˉ3~!|���W��"Wy/O<::ٟEoil6Uoλ˧jYGNdP �s?6Lzբ->5ژAڈ5BǑa9[1ۑ菸�sDYtm!yQ|zFtMѐq$?gݔS huD_bd#t�7@aEۍK U|�Q#Agzug &0|4pe =zvqk��̘LP?l4>�vX ~am; 41Y<ދ^}L `L;A$FqLl>5J8}td"0B 'q�<B O"UԀ膃ɁzJtFG�<.؎j/StNǸ$  '%1"cˆA\s9T1��!�_?%��@ !�aemWBKR $,?k[YDḇ(lԫ!3ZIIb-,'5SԦ٩7ŀߵABvM)v0䟂tխ69�H�U3l$I$@SATUEaveZimƀ(YL } KA(AVkZa9 [w5'\x<~ݚ5Vlے`\q浧5#{d \I[Kh}@da(CJ,`F ccsZNЗ#J_hj8 + %A"7DY˳u8RBhU(2֋9!-ݦ.5HNH5N Ҽ%Ri\ʵ7>g/RH7#jXUH�T3iI$I$UI@QU5YYVU}VUewm7XqVqt$hAnAݢKk\xBϮ,z.TKmj,͛;=djW6# w ZԪÄ$´kgv"`W+JK0Zw *"j;:/i7M{JC6WTֵH5N,`mzʁֵֵ7hSͨkHGEHETޚ kڪȄH/(f,=*fYeKlp�H�U3I4I$I$@AQ5QIUI4Y6=Oq 9lkT%&Ld."E : ks"<25]kHאQ\j'IF6CZ_ޑ|R5MslLY2JSr3Z-y]L+kZֱ3%k;6f 84L g(4cʹ R4iI_9kbsejGjVEq Q_UclV,{pW HZ$PslH�U3)J$I(<<I4SMTUTQU`g5`eb1)TU40*x"gfiD$!iLfN%*CHs kjj˚{1xDc k^u&}BԈe*m>kZ M[|]kJKi%5C0ir,*�ZnV殛s2[S_遮 B`B-0p[65 mt'zj-o!)XǶJs:L4dSPk43]($ ն5-n@H�E3%I$I%.n,MIDO9RU$UdIE]dY%EUWjA�ζ=Z!%Sƶ j`"r` ԻYF:X֩)aqH^oZ/X4ŁS{ח ZJ4 zR%,>F ,[fZʛX\W)G؍!V+86r9U$6iv]JDEDkH6 � jk_.mHYMcj>�|B[g-QK%6KYk֑[2-v��H�U3I"JHI$AQAMESYVUUYeiYN0Ê*`ŲsF,I,Ah#J*W6mlR*ͮVFpJ[cVs=-4¨ZDٶHj<BzZ>YkZR 'yW[^񬴘oe)^U1 {(oq̺,E:DJZ^VqVѮ Ɇݬ͔L-Z:|fi&!ׇ nfZ/ZֹkXƾvR}äzl6"F1-ܷs`+"W/Kԍ�H�T3I4(I$%A$UM]6XYZmezLCѵcP2ML"iE֋`ӵD¨$:M\Zm5 QDI � ai6+RfnM BlS6+PI 4jS# 8,Eƃ#!RB!#am�b��!�aK%��`!�chuɄ,SP d,) 5 @jT(%(zRlIGj{=}?V~>T6Vވd<a#tJX~v*UCh'9Mވg@pYP8Ee(M`G?e70oz2~9P�;!B6`i JORZ[jЀ>*ǧ+tRՕbZZ 0MbdZ y~I% 2%17CކCQ$:'UVT8o]T&Aj2je q.-})}2ͬ M{:ےreK\�����JX�����i\Pv8^\^J|ӏ^.LR֦b|p01׋={_%׋b\ksxǜ טQ$=i?[,1 ]WxT%\ydbTj \$qd,' >ډFaj<Bc+ k͚m|_U�q<jU{>ڡ_Wãs.^|;Q \ٷǤGO <P̱w9:DGv<ak q”;q:>w9FlOsW$ EfưV\<N:"W([RsZN#/3?U\vfxZǚB-=lpwv[*^`KsԱ]c[$i'?㟟�I�40&y�<hXLJnJh5W²^+@G(@1QH, 0rs|`SͯC)ywa.8G/AhQ t1jo0>PP;J2 ˈ�j8at>b0.# j9^@Z�v`j�M0:|u|: <4_Pw'�}{@g"yp꽃t> x.'C7 X�����'@{%FHTDFkcp홯�Ơrpx{SNf0w"@;�[3uy:Fɼ \^+"7rC7gWdڪaRz"{՝O7*3>KZn2[KytF_b>jQEenKTڈ9e0hÀ}=,Ya2_�ܮ<1-%gX�xiPS` /,oyX*4I"g9UF` >{xU:?5 דFryD�sKJ%٠JPd1ӟjZ҈Ʌ% !|M3=9lƪBzaE(0pTHݙdb5tX=Dv{OtFG8q %F/@HgÖe$=a"H(4ЖgG9$eFYB'[}^ 'Pbft+�vUA/ٌy_|zL7Oz;^u;jPHsD(7Ă}Z_&!ZK΀p@7šitQ6<q5 <^@o@}c (, �B � 9AOG7,?3Ck`�CdEyODe,PÖǤ 3mADɊp9q1@B0r3�#dc63 xg/K&7b:zڨ˃c2A) 74gqNeRG7ɭA/Гz^@gOkmA6Ѿ)g]]sguFj΋-0%ӎO.ÜZyWͨz9:Fueg{>!r41 I][afeѰ;Q`��!�aCY%��`!�c'ҊP@†bCJ$Q0:&$^.Nt�S�$bba+o'zF Gae6A'4FP%E|ҵuS>UTC CCK&p`#+{b& $"A` RG#>M0ibȴ*kD/~�����:km/~g9i"#휑PX9 #>G3P1lbc(i,^2 u8kri>#}~ap`3(Ǒ63~M؏PSZc\4Ka-Cc4GX` `t> =]c+_-cjG-MAJ蘴q調}? rQ,30 $*/!'P4i!p>?HY[ Iۜ` 057hl 4#MI%CʐBGXs 2D3\D'% @�����JK/~g9i"#휑PX9 #>14:Ͽ SOw)&vǒ̡|:qoɳUZc\4La-cmc&p@63t> <0au5+raWϠTnK2M< $*N<lB,iL 榏y\$0s<&t7xm9m줂TGpeH!K#9`zn"epG¾H%mop̹#Ek{uY ���W��Zp��� '������ 2!H r!2B;ppG 8&D/ZX`(K DR�vg"ޯ�R`q|gNp$�Ah6`=H`MGto/�X(5(B#0Bh"H2A700(I@- q!&HP A4�4��5&$`4'(&fJ7GN/dFF�^ LC+!ih-7gt7}M /,#!%qA?&�%!I hs>�m �  44 tP&hf,1<JPL Bw oB` \�RC�5 -*5-)�ae@�~ ` VCV@2,oHh0%&HbyośxB � CqY@,!BnRB&B &Bp �.bhx 0(,0oJ+(X�pia$2 0 = q  @RPhHe%bP�'qrć ?`PI &ެ�5Ii!2�bVJ9! N�ȇQIXR gλ�p�p4h L,'hĔLBqN0@ ]$;fb~$5݁ (dp1}@ }gns8+�+݆ X,}K(ǀ]8_&�DG`� H b R݀TWtA Ț !`'[݂8@P #'7en-�7膐7nA0ihߠ7j�|pM x"A$, ~-9 c7j�|pM Ԃp"A$, ~\�;H3�5,r= H /4BN @._"h$AoУ'Nr +c�fXr C?Rl@ !@Y}-S!)�xLrY7�� 81<{#5Y (|g0>幄fc:0%47;Pr;vBzm�!^M*%��!�ane%��`# &LLKᜥw} �"j�Zk}v�@0[v@ű, �A dx �@pP*�BH,W)(cg?]@�0�p d GJJϑҎKBQ _@0(  V,�$z�AtXB2r7eQ)uY@Y01w ! �h�|L!x󆐐ݖ Yp @2 | /+p󊲀:�+4�zR%Xabxe*bi@TIetXbXoA#&�`Rrq<]d � twHB-&%_�Ԅ14wCFM Z=$ e `zC&1n9#\ˆ` ؚ; G}d%C`p�vh!-_?@ 8�'>P Ɔ| PNXI\ | A4I�! PPY#}:/�(`a0BF孕|_�аQ 2ZP;}|�@@B !\n!%/Cn2 Ɂ0*Xnc31�a;;�а@!0!.B ,09%')w @E1 @`��0x*Pi40 LI`g&ܖ7z H` @vlÓ@PD  &b /Zzaifv|Bg@ ?á"u 5i5~,` �B� (KrRY+}ݺ߬J2J-îxY4tJ ;(||,=Va(Xiљ[Y0L&QH_p7�(BmJP:̌fwCNzAоmhC-82Оق�@vM(N-1ݙS-/,5׉bڀ1%HEJ:RNG}|+S_3m41 %p_l)2sD�1 t:?|7Tv:&'2@,KDz�EíE\sC7)=^L!Y/>ΣfJ:G>  O&'W�ИA|GZ8|"p %`PL- 7 ]&�(Z9`yl0Je95BC dx~{8 !&j8)?K_l[2-].CI-/7>I>S|%قY ·v�4�t tP;bh`fQIJ`*py0ɠT<�|;b(@L0P&g?KKnw̥5R0`ݺKJo8y &�~MCd l )�2@m%=$@`�Ƚ,�.fI`S\R_ӑ9A)9"*�|a;>0[pC r� @NJ`QnOx-\L԰�RRG_4``@2oe]a Sơ94LYN;U%a֠kR yؤj!K, 㠄t HI.a)-,j@8 `G À/ !R$b7unNhP Yx<AԚ I@.@)a֎k)x*0:-'(/*ϐ͉L34')g^q=Eaak>#sVIXdo=$?>/:�4]$5C��%oTx'Gd} C~ؕ}\Qr>J,!7d5`(GwnZR`[<WPQ$Ac��!�aq%��@ !�c_:7䏟c\22o@c,mХ%* Z>A]KZ뗺3!Wy!jjRkH9h0ͯXFk@�H�D2I"IDI$`�B=S=<ADadVAedMIudTMeVRe\ȵjȐI*hCA/NQ3CCtjwK(cJ,a[0:x= IuטH]%:<nrֵmֳҠ}؆{hklَ'V|Cr!GFi[$vAn͂9Rd(Jq%e@ G*-5RZxei6āS ̆⫏kNpdSb�H�T3I2$J$z<Ӌ81$EHE#E$bC*?Ncr{.X7*Ue)PK,DѺ\5zd$(T✾qr XjzhAsK{IzRr+CjEc9{ <ʚ*v)`} [ZNc:89tMGDFA :?AK{I#l,8\kb&2gk-#VLDVkZ[>u18P Rmk Q9kb҄�H�T3I2IHI%*j<9TISE4Q6MDb6"-3l`!!)P\nL$H;Y,NL^fnҳ7PדX<8ڤNZ]S9<3S!"le MM k5^I\٪P%崢BmqZAnoFE!j0)8 s5kkdr%Ԕc\]m5N25AEw9*֩+:.ѰoWq79m*9|tKֶ qH�D3IQ(I$8Ԑ@I5U]eVYeZTh:aZյ͛<0L|/ѬJ҇͂ f.m4XKR7ZHՑ'x GGp\,]4%ق`z &aZ<4VVC5Mf wi͐m\J͵E+ t9KZX lWgW 8@56]1@&½nVZy.״L}2>#j9Z[kW"H6 &rzi[ % VH�D3II$I$b8AI4WQ5VYYvVU^^l'H&}VӪIh%,>,zVKz|hj| եk״%k 9:kG#3/#ݘI뾩ЛZ= "$hthѶж7T#u'r4v1!qȧ5@&/ڜ$nWꪚ$liZ91|jѰjӱ+$;n*d,4>n)m}wL ]؃Fn"A3Z4`Mm>��H�E3M2J(I$檮=AU5eUXUvaaw}:ߒ*LdF٪Q %QZC!ZSv*bs%؅µvֶ!BKN5 6ѩYj:pWV=΂HTk0_ XPQADt>BȊkbFpt |̤n%a Xֶjkjr/bH!cH4֥Abƶ]i$k8X֪iZ6m!?]TAXi״H�E3DI$I$�D@)I3TPTPTMm6Pl9&]aWAJ#[u4M*H"5l4޵:"y1*5 b VBݷdoaX1 f@Td$T浭kZFk[WY(Fs|6ZBD`�Ƕq��!�a%��`d UO{~Iv K>d_ B?^;|? ~/p�BSӾt-, 58;^lZ ό<MII1X o$a+#3%XsWp(7~C;?H߸[6{,}`gW,32xd>KMWaNRHER6a2aVP` QCH+Pe?+6H}^3{\{Ɔ_3푳 t/A) Knu& )EX{ eItf}Kmad12`b6I8;0[m.?un s#HJf%F�.slt�h&ro#�3/Cx+rypO$=<cpuI�!_p`1Nt@ ĤT& A,0a3,+ VD w~,�[7#@bY3$s'7 (t^*^go{vjƗJ7at)쫠 qnd61Ӌ㳓L nC OGlH唞ZL�ϟwQa'_n\,#~.K,rs#c6=d6$ `7�jFbH+nm �kwc AXōvÍff׆fp1y1&ĆO<k1�7'l՝a*d�7RPS;?NVbu`�_ILFv9�a/{noh!  -<03vys>Fž7�zM Plί#%o+o(h/C'( 0@āŹzP;f+0�cbJ1Jhp IC N(3ҼߌG/fqGw}ٛHu!!E[!9,/ /ۓq;aoȷ.+Z^e$Z:Ha=(Y 4ҏT,HhPP=؉Y_t/@3Rrf(i|hA֎h hn? Cr;6^OZ36h+w?RRB@nUl $ lvYWx INIO}E``g%d5[,ު_繦BBq\Oz�W0j~*rH -ߕ䳳e$otawsNxhblyQZRt�КBJ{Y@ɨ#{`` 7IAEl7'莇Ǒ5&�W;}0^VCC{+>/LQ0Z0Vr)AT`osg,NsB( (@ܔV~DŽ0sJ8y_C/ ZP3O` @4" 1+ojˡc/p9zI�tK,xӀb5;fͅmyb$ pq9[? 9`cǬ:7: ~+eD܍V}.'Jnk>I/~!:B@lQ/lq<007ujGG( @vr=iH4NZ3:>ps &uDm�ZGb=Kμ+]` $k�hK$ܥ]`!((b, WRtuJuֽaRBCpB1J0�C@TMW_DpG�- eR YJ`oP ك3]A3 �%P9v  o'r' dғjU9 cwc@_w%mD}K��!�a%��`1�es7�e,6װOC6~E: wG`a%�}4gJN͂j0/Ձ>+t6ӓjFfw]�0x@`ť, �()AUt�WA,S򓐐1Aӆ�.@vXXo-;߇yL 7�:bs`-ߒŧVm hDk rR@d' ̂쐀0&FRg``��^M7ưN+j%>:N�$�* ?:`@ 7< ?;R@7 ~@()AW� 2&$j95VXh4ם�ܰ'0!!X1:h <&,4IX)M�JpI(AoK^R?0A5�h<` pL P&. Z�lP#|O@ @A8�d10P]%F;@ Z`l�4A"@8�h KR|1�ؠ%�������D33�� X��AC@o@c&kEos��EC��@;0!@ȑ`aa(`U8 P;0Pbhј ~΢hg' A0<`� �b`h5 " #J\�e`r_Ml:@`%$Ґ2qe~ㆣ^%wbaI @Q RH}�XR JN..nCQJ}F4WBܡDN`5azw>l\�>Q:@ &wѸ^ísB; dytEe�p8ei($ ؆А@B�ěԴ!li(WΊ+6`.5[PK)uy �$ۃ%^.xƻtXVՎ F owT"W^r'~W9^7lmx#,?fFU@]m^&2흏QD WԲ.̜ؾnw /ƾ4S#z{6?5l`{O�NIrX#Zv3hA u?N�*ڨ+ul5Ff׮DvG5r莇p@vbk?G%cźe XUώ6q&:,0QajTL}uQ١WPh�"b|X9aDv/\N*̡WGIDvLk1܃Ā# (gljxBdjjjNUjXvP"bA7OCYOٯ%DuXE#5 �Y: ?;҈2+b(s@M>s5,:ԳrX����_��RX������aZ#W<:l8Ȟ84T=Y,, ^`5jHtaQ?l/hzÏ't{,?*C;),+9K>Ygsgqz@$@<Ce/8D<Tʚ^&N0Nf4c.ɾP;�0HS%^`p4gf<;�y^ �9r8hC>~B& 8 9W7|=xm r0?6"ox�Q'W^Rmi<T<L9x({xu2:YU};^8U9s1x@F Y^,A-,� p OޫBI   _^b枼y| Uz粘X1<{?k��!�c%��`1�e�es9Ћ8?}|�|\ut@,ly>^< ˍ>8St:ZfE\X�ҿ@FW>˸WP7r�?B̀_Z X������?� '" T3�`W((I�^<$͟=O~,`W8}eҌI/a=nFKdz>H[D1( +@ &17IEk"{I W|^/w W-Y8 �W;h!�5dXuTl2`8tKA$Q<JHfrTM( -4!'1fvR@䁎=Z8`k6+t?S; Xi-^ MϽL<p h B8iṬͷC(:z 0QpȜ39u*cU~|>TEC BHKry:؍BA��a18ю3gR( 3| u<\.B0|xfuZѨ\Чn& ~VuעDpP >7%E#v]{SZOAt.ndǜ?Cv%D0PaNcC cpJΠ7#r Rj |^ץhG<@p}Gx0`khJδj8(/*is݂w {5}47lx;J3\M䒯�?8TU .G! ,VNf--m g~}% 9b41Cwb]FRQ%tк#)<<+ �;j߈⠪8v_XN>v f-X,*\}wDcYU̗ګ~/DpQ/n&+{Ҭ=TB)/,!4j=!C+ wn-d]� sC='uZ5wF on&D|Tavc̃*O> þ".ht!=a`o'8N~\Yf4/�tEȄ_p1!fT'z֥6 p9Bh i #X 8@I>C3$Ds8*udrx'x @e=4�kf뙹 D<|!4H)<?1Dg�����Z@oÒv>6*|L9yբa& ,8 u^cc6 |Q"p ;;L7ӕ ,zL5|,p583Ζ@^Ƌ׃׊^tC8zM9inq_#C���_��b@ov&Sέ[>_ 78id3 )Ec6!0ߛNV(hY]#|1h}́ 3]:d uhmx=xJ0<$NCo8py;Ni[Wqy%���W��2F⍓+Gt['Fju W*$*c.I(%sHo4EK6]2R`3Uu 0]HP9L涌BBGһs'Z:2ݫNQ ]s=JˣpA㮙 \w%)0 ΡAK @ :B_2�8[ du NDu`֯n@N 4Q>Dlk%v6:T44iӑ&;8^l:z B|JIUdl:XQ!l ~.\uh*u[Z] G/n l%BͣC$UQ#P]G³O5 j9yz_zC��!�cE%��`!�e+av�8,l=ptsx~Qn塚NӯF$Gl6Ddk|ޘ'jōa$B${�"'�>Ҩ*xDL> ClCWS}vQ,Q;[0e]] S%uV܍nK;ru�����ZX�����H:JUrn6>mi ]aCH!O=>vp?wgYX>e/bxJ9Ʉ]ΏxUrTq3DXog탷qen4h Ƅe)&K NqZ.7 l}zO 5FG'Iz.1ꔖd^`Ӿds  I7!nگ)F3rC8PPJH8Q[cÚy)\(Q85} P@'�3$1�8n ]jsf5\m~*U_^hJY`3v^�Cz1;t, c!۩pzBp8URb%7P1C%r<a'�w^ d<Я,`ξp g ckqPt8t^"d,qP弦\9M,~k:@hRs,4¹C""N;�Xg8 _w҅C ,ˆ3ZxTpxhia�'�ug5F:OUo5tW@#]z P'L@;K4B(Lj@l%. $E""-x/W؝^7KT)=ю�>1ף d�\8Ip'|`ȔXLpWqqa2Ā]B>*sAv<.u'PY^�����3 \ "`IhHbx}#P{aC*hSp C�L x8+id΂H*ψDri!? Hwax$"*&}-?w }^2W8|W:إ#aYv'#ߠŰuad;$Iݼ݈\ ; ^K'XXaed׻�5fz$ &Ҕ DQCP%җN a>Qܻ"`|ٳ=aEw/z@cvx7h&ur,3آ=ר'taAƲMV6v$<DJ@& = CKtrFexG„h~ܤ*X`P%%( "!hO #N(' "K5F iMdxf&uv7=v`ֽӾ:}e\Q(4YDB"Y |8!$~/n{Q%(P1,q:PX�vqr4ppYB=pXP ( \+pQ!8~97sA7U5*^Ǣ@P1_FƼ̸P 6뒷aQ^()hO%!gC1|.PA{'Kh`hhΎ^XE2 Rͺ]fR}=fTcc8N[46֚5pDZiq«j |)% s(Um4R1>F @JJ렟Ifo})he-eͬٮ]Qlɉo|^z| !q@\܍y†?m1ގV(Ig5@#D#�?AOb'~Սs��!�cp%��@ !�eWE:<!А#B *uukJc %UWn2sX85*R)qH7jaCTqrVֵAk[ ݤH�T3%2Q$Q$: !CK@A=$@PY#U%PYTYt]Fo agkR39&(9J@C֡>#ׯi^Ea1K2mk_9sVJӋ.\l&:lqi)3lۜPA\ ՍEnt)z)�_4n-7C+F RER<f70D)Z2G$i0B/fATK++ZLRZKmPʭjBknMceK3ˎF 3Z״pōH�U3E$DI$ꪪ4OA$E4QdYuasЇy/xQ$2NԢ# X<NF1ti2JYiw.P%m բfIZ\Z ,P} 9DQmJw q'O+sEBsmk o:0+ V}'ХLk(c(UfIV*aHi66sNP h4|3�L֥d55(FOOZTֲS-eg6p`J5X#浭iIU(Rr+ϚFk@H�U3I"$I$4PL=$QUWMemWafYew65)挔K5kOg9(i65ㆲil4޴ ;ձhէH Uh+$hw Sks& Œ-H娉\RkTJ_ ƨ%YͻKfؤoys`YQJ1׶_8kkHըRa3tWE!TִZ+M.vcŭѬ+iOjB1"$BLOѝl ֵ Z�H�U3,R$I%*j5A4TIEQaeIHxI6;V MlQ ALyPYYR12ZZ*Vdž-0)#l(v0#:OK [rAO/bR+R-b79V9{%t\ k9J]5Ge%a[[v6k+#2|֜uש_5D)mN#ڶrV̱}gT6S-!kb2h6c[5ݭinr ]kR\9iˆ].1jk4��H�T3H(I$꾪"==DY4MuaUifQwaY.wg zK:օPkJ!M8Z\[_ l⌋KFRg^E6]U1f̢uls1ݺ9,M1[nh,nJW`߅"ٿs3Nk(u|RKV6sIZֶtY,S "TƁkt[V1hRk~E6(gte7BfMH�T3I$%J$jꛪG8EAdMEEM5SU4%K"'U:㜨/V\̙֙M] Vs6R$͝$\l6mLYY|X!>lz$lYeȈRT^ecmvJkk(DBHJrjl&`EAR[cREH4YU#apYSyez֬�9Nr+*,}e躧gdU [Z; +9PJH�U3E2I$I%* 8=EY%QEUQtsg5E˝BBE5\-j/+ -S~!9wZ5c ұO+q@ڵ;4Cv$ e= ]\K%MxK\2Mm!srW7!WDz44nmC&0GZɪf)sJ��!�c%��`!�gG b}\pΦ U8]1^p*YI 86Sz qONd$Au Hw]+8;\��]Z*`777Qx͛@}r0Ɉ`:S'(Su4EN uٙ T ű`hɬm3�3�����Zd&MI Jzvgꍘ42!r-aڜcC㶪^^J*sOe7f;}^;i<O{CK |mkmvEE'WdAq^]vH F=TO9Y朋s)aR(}_B譌a:'22aMA8Q.E6XozQ(6zv˦)6^.-B ̹ /W dgϗ-�����rD 7*J <RTlE h SJpo6> Jdc촇=r6ͷ"!IȂCx}w!VA/AhhbRR2X ]"gDRRèexu@3N6l˴TdDƫͧ2BY@N =;eӛ/5 eV:S&s>|l���W��p��� .�������\~ "�3:I-A<R�b; ˜2j@w� � )=Eu^P\d$Ra 7a"iIW|n@hѓ.,a05.P!ܒXa+It -=JyPF&0G0:`6C:MHɂEJ4�aL�^��@I@e8#k�V�Ԅ�D @w0]ӋIrտ #:C/l5' _��Y04Re';@*^ P0/ bvS�?1}䅀/@'e͐JB2:כ �T5C2!K,kVU !�7,{q0mJʉ`�rhoXL(@PaC x¶M%`ΜC&SX3?7)f_�?&#PM\ dJa_?0?ߠPQi4@tM`a44|5bQh*B]BB T8Y`3$Ci32�@`J;� ζi9fl'A�,_`I �A�._b$ hQ�c$1lX]&$MӍ|qR}N`c,�a 4K'6 sL_}&JCfoH cN?%8՛<Q]I  8bCp KNe$#8k�> `w܊X�;P IFOJz+b{iur /@` [%bvv T($<&!!$qh ^fYIŶ\<{얐dĕ%0twNPi\[ߜf J> ?wIdyE'쎍7pV;70\p*1+ۚn !tb1 s~{(ƒ HpJ[ @P(B> $wIiFu29u 庚 `GB (J^ݰfm `;I7$ XfB?7CaA70v(M~@$)M8F0<:� �4 J@V&(C-7M�?+LJ9ūa �@͐0ذ&F¶؝0iDQ0 O@ :i ��!�cˀ%��`I1$BqDú~_|8;Y@_nZ�v{�drR _W, ( CIoş2ذ ifP 2WX@0�1u>0#lgٵq48h x9QCP�ԤМ[flǸuvpkr@ ?P@N7%W<Ha_[0TLC; + dB Y#C+fٴ%E3=k/&XcPY`'bN$%|{@0%Rih!Zs!w{n&�Cv1]|qLϻ 39|BRĝyRxKCcԀ<&x w;`QØu w [@ <\x2a-gWFsl��`xYA7t@5 PE!?�\B~oǮPߑ9yT)Ж@!90Ėߤv ]<O'�`p~lj@݇+6ѻTGn;a`Q<N?%e=Fz!+++l3'{Ʊ|z[[u&  *]1[̎ b0,8^ /̖eUy@P C2~?qw0%'=xhc||$QU�zӃ %(gykV8(frl}u7\41IosKr�cmJ>ɚNτ ( C֠=ٶ-Tszjk~꘳Ӫ>�@Oc fcI: !$ah~.ϏH 0 Z2w~̥?WH-jU*�5&`C!wBu)K#Tn x)#؃zJ_](Q3Ib퍓S8kЎLՀܭߒRo|MW8f)Ϩ�И:P Hs %zd= G2gFڣ|qxB�|3a&� k;d J, zv @tT(#)E׳UzޛCyU>ts ;Aח &mFwISF ;3@{4%�cAhi>@b�B43m0 P%=�\ ߧp*Ggy>KX�x AN>6 NtoGXyւaE%#9()4A}>%O\U !K76_*H@,O%Uf�vC&,0#n�5� F۶=ıE3gB #}"i񭝻P� HA4oě}[ P�t^}G>z+d8G`FXXͲ3y ~]pܣ@*ڟz +k�t[WD KNmδ@*]-Tolu &L4 F_w@GsLzuP<8u@- ۣa ,GqJ|j;wj760Rn&A#M2hQc}&(l?`}JI)9#K-%}Rڦ >s>ިf�dX I� a].,u2C +;iS�ęxݒ݉e'q�rHl̤5�$@2`%�EA\8^Ѫijr~u|9g`T@pg҇a@Mv�h�ߓ0#kM0�`7n$'͠$3`jI$! Q#w@G(Y;+h( ��!�c׀%��`1�gW�gu y4<�0 �y4<�0]%`uKA!0 u�hh-TaA&A'�V@ $ O4ԏO;_P '�A&� PI@&6:@�1?ߑl>RE9[ A5ep9p *� HiBONq#7�wMXWkRS_(�iܜ1$Fi_0 ` TNO�腙VJU'u10432-}�4Cc1/}-m'&à�������#_Ry~ +?2X hM# } ]%Lx51'J�%$/�% B`v)A1l0P]/*8ų hGNΏ㌐KFPВ!rI"V% %>πjGb(%r X$X?qnO{[7K �+;oK dm8ZV^<)GKQ P z̛- ,!_XAG'2 菹aD<ij$'pϡ"{;'oj0Q>P:ٱE}r;Ֆ @brvmHdgvׯ, ,$t_$�>B]7c$jrIٸ$G(_eL3(QpйbeQG�$Y*@PN'gIT=S\_fn:LvV#Q(}>İGաNjn{rJJnX m$-}F#݅Ma^J D0'^N58 g!{ M'~`o "J㓨~\C&} #@!~5喕qr&to=cYH?LYaq̵f䤾KpѹR}٭hh`?4҈ _KO}!ad*4)auL|nL.nZr7'oנ&Hgt7a%~_vDkQ, 9tQ`0aC^,b3l^B/%u|-uRza%&=K$ĴhҨ޴fi{\L/tc&U%$҆;-g7C�WG!x�Z(ɣJ0%cH XpS+e1%6l#}w@v PH,z9(W8Z6����_��bX������>PX9>`p Sv ЊO oa1_;09JR$+4iGX8TJ(/}Ƿn &<V8w~>ݲ 0~:#ùc0㈒Z@F88M~N;>-Dycn-p5'3 B?@^݈ ;~8q~P4} ~.<xLiyRghߞ'P尥|yWz$SC|n%C+ |FBqt-ǏJu@+Xw9X(Cfsla Y|e W~na 3m?|]7q=uG',A\<lG?Ì:3B@i{Ћ@p>rDZ|=6 7.qQ<8NMJesN(Ie_;3bĈjXP^76b 'Î[M,8™pV�Į1D׵@? 8*op<(]��!�e%��@ !�eSfAzCmPfkHAjK\ɩ+ 0g&S"*u1+gFͭtZ5zp?ݝk7:`ֶ�H�U3)"J(I%*G<=MI%RYETEuU$ڙJ+|\ZTB&D%w$4Ҟi*ɋ#u<dli򀖦|E>kUGp൵b^ZCWF5u:V2} 'R٤DFgmkdԦl#4rڰ4L)k>LsqSbǭ`pkƵkWMVMU& Z5rjiHocV`t0["Ka[8nF+sJHF=ݮ#Hu@H�D3)DI%*ڲ <OAITRMUS]VYUUu"Af:H貭p;l2)5 igp.H:ׂMex$iOh"XN`҉s홠0I%"j֙i2,'$MkRrAbnSֵ FR@NUZHDEBhg&kZӥHBbX¦vFHj|ƽ摄jYljTȻgP��H�U3I2Q$I$ꢢI@ERQ%UEUe]avoQH"RɰXY 3=,2iHze,XZ6,KyYEF浪!.tN k๊&m[6.a 1̒Am*8lifͭ͘zfCm.ɕ$גmk.R s4yֱkS1M"\86*Z##F&P9K]:eyf,kX, 6rZ5͝ s-Up0BF c-4��H�T3$I$I$DA�08 M#DIA4YT=uQUWQuRedaQ[a6UIat9lNkط5akZbbG_eitTxTKSiw&"[wEscVcUHW-K)ʛb6].6ScZڣko֌ (eR9lUlDbU%depeB\ YjNʔvGhC1 hWsȱ)MRakNCcڪƢ nk[9-flֱ["o[:9ڤ1��H�U3E$$I$*H=#@ 1IPM%RU$M4AtB`ߖU,BT֦I$yGӭzWΨ%hVϡ8m,AV1)eJwJJk5R?߬f)lG]DbC[.aJ]M|ҹUrzY;A8OlkX6*9IIQ}^fK#j ;$y.rIK)fT}\ia+:bl੪ KV(Yr"5'!]>%!wuZ͍zr{66%z!G)kZ��H�F3HJ$J$K<N@TI4RADQQQDO^Woea*f 2sHGAR|~5g62}z3jRdk;1Eݪ:e%!L FhYCaԴ]d \W4Y! T-Sk�+ZckZ! j  mXVR74%I\[kR5!vxᲂrMΒ*mqIGYkV8=Ǧ$j-sgdT5ldMrXYK! k@H�E3e2Q$I%*8HU5U5]QfFB3L "CE.܈[FfZ. ձJ[M hj1AdҬS%~ ؍ ^»%1'x\eaAm)-nl浦0QeޕۃXA. C mn4dlUMg/.JDX9,S\e8��!�eG%��`1�i�gY U췃 ƇG85_#s8H +Oo"Uz; $xUΣ@ qB., NÎpf NsAN: 3KKi}~g]|.y?󓠨U2€:睂GE"z'^b%KM0$8?kG]yO-P[D  U�����;#S $0 ܼVܭz ~CNLx@Jܞsn7!w8FJ Z:TK/JeRKFzņ97%�2 K( ?Jo�.J<.6u(& S?J�dzH-ۢNz|OZpG6èN"1&bg^q�D&# ^;dMuN9㹱׸|O00 Qo( #�*�mTy}U^oģK[:kPtL,UDNU*N`3'}ij PCWHr u ;ٓ8b>|[L|Sk %[؅{ӳ>:܃Q-xWppJRP*bUs�\'՗"H׻ 8 x XF{)OcRa7!?mꑱ9A+ BQ{6y;Qu;\ yZ}z(`n+G dFĨ �cƮ|y%!2 ?ٍǢcЯ�3Mba@~PK*LWpt9>≮LJrKŽ+DJT.A);[L~uQ+&1K)'KP'n?H(I:E"KԍC:o2ꨒf6rV=ޟ@O )"D귏YQDp1�0i:f3UQL*^t(3h r$ ε��� ��rk8.pm '4˯ SClb;CώSkLe&Chi!SnF$PjoH82AAp\*E qmu #ўc LsfPΈNr2HjylLsTcm!:3(I#bϩ=3.fJf&ISfloI���_ ��k:'[k=f9,|rTfPhb9ַMiDm 0-4A H(4Y!n4X/Ѹl:xe0Q\yY3,S[,SHmD桦Ha*fz9ě%O7!GɲKLi'���W��SVj㣍t:=ANrhY).�- 4p�%0TrPDcw nә̢oG#f9r#_wڨ-рa+miIIṆ5YXu!'u'! ̀PUAw,9;RzJr]zItcr#FKwnaC�AL@,Ȝ<L&2t<LJ T_&6Yb G=AOݺF:(-ۈa8s5mRZzq3q6qD`\DzyؖBUDkAeߟA}h̼9afcjBr[}hN#Viut;lZO6K*OD%56 T& LKvBlsZXu-yqH~zU]+ ڒjDJ@Q(EGt& 䡿 B"R)Nnd"O&!8|dh#o+5)lҤO<ĔiV��!�er%��`!�i}Ҏ얱Œ�����jX�����seJ I? "IzVyvsdgJ+j2h7dJH$㔻)Үю`%^fw0 t#F#J~" #rY[ĶR�%PR'~ #7XY+!i,M<B&c03rCvM0q%7s;ຯDu0� $؏%'9+؟_m8u�Gk%"WF"_[;�T0񧒒 Z>0gHnXY&%va8$fd~=񢪼i!dk�aaF\-¨E 採ALzڼ(p oA>rV_= RC/̠;PF(88[WJn;?؂JSq<~̣pHm^f *a"TX�<�gx. %NaƣlB;dzoHTIwKÿb7;/,?`_"vpǸVKPxSW�kq?rsf'תJ9|` G0+t#0SP]{;+˕'<ǽ{|N yo^Duy*U9dK<U2Wå Cg^Z*,ZS/F_À s юaןBUBeWSW}סJ2hoWYe׺8Ѿ:]{<l>"sc}^ʌ>et X�����S/·,yA/n/[3? &s9w#xơav+GX�GRn۷O�8 w[%+J&3B& ^ۇQ4}:@x``hO@`X$Z_'v/j&-o n:&օ]*�<>*xtNb1BwQ T~0bX%:ȖP+ܳJn~׻UQy%�*֢'%=;;*QomBQď'vS8 <rU!v1,*Nm ^Y]ْN>i &>eD| q07ŒNvMIh FvoDYwM@/CG<b){q4 ٳZeYe}ԡ<kJ[PS`1g]  7:D[obD5/f|Q046eCi}jY#BlЏͺ&ݞm49RxnQܱ0܇S9tXJԡ19%D1-蘍YL' T@2)3|LB`KBrk[Ε /C {KEPUYxgҲ$,1/s>df9T�����zaK p0:?e�ni'Yw <(wF2g:Uu}-v)P]ܾjVӠ*L/ꠊG΀A8v϶p ¡f7 pd(uUJ^+%%BA|{jIiv5<I&ܐΞA(QKyrr5�����aUg}fNxT{\eObˮާj]Avo`rcL/PE#3<T>gpD' 桊 pd-jRX).|{jIiv5<I&ܐΞA(QKyrr5���W��p��� F������ ��!�e %��` p@0%�?,%` 0 P쵓3 c$0 �K5$q:gQ_^0 |K hi0)J&t~Rv$ f,ERۿ)%PVHm8} @�zM! �=!�hB 70p+JGvNQyA�XB-I0biHwlZW Mǀ�(06Yhۅs]$3SWΓp|��hMĒN=(}ۀ �j�N�B J&Qxn;w^B `�;-{>pOFҀ� 0M-@ Ol!hV@P1"ܟ�ܮ&K�2 05nH9r�|bM+ J,ۺ�'q˾( �,v�.14� Ba ?ၸ#2֌?^̴5\hg�\^ �Kf@`wjC@�%(I5?C(hZ30M( % <@�`B-%SWOOlJ� )%lbi%P�\ɝو0b1!?j@"G �M@di4a3v@�nP0�W0 \g !Ψ4x@Q$~J/;VEIۀLYW�we�𙉠;Šqϝ>x&I)�R@5: A +~x7,C�b8hoN6@v�+pD,�/!�&&�:E�<&{;%X�FL! '8:8B�fZ~grQ{ŀ)�3ɽ۱E;]J� b1m4tR%+7`߹yygY�HuV$vHBI[V <v]�LYHt� O`<^ �d+fw5@Xn@h@:)Oo  @W,b: +�ΒВ%�|&`8^ 4 =!7+rҠDA8P JC(\v�^CbA<'d<Ӿao3 ɼ˚�r2'§H$b@y;tpؚ31h 0פ oe\䌢H⹕& !g�3+,g&$ə(ą~ALyBJZ;s>Yi!8`j?+JN}43:rs,%z&7_ `9` !�/ tXם<n8<./7'u@i 1 $i[I]>�̅QLO67BOf�<`ŭ F 1!ra7@H3-~zbRe`f~MR�q1"Ȗ  ONG@K,�v /'{`'! HS]1!�°!%&J2hPno%+~#mh  _(FNEJ�ИgKL P0^Z×RΗٰ~{.e#�rx#aJJO<=HBEBXokA4<VQG#  ?!w*6ǮwG ym_�J 0A`'b?̭D)JRQ4v% b`(Bp??HR rucRF,@,&w& 4>*B)%�s4);ā ܲR@T=hԹx Y]qUŀ=`ҹ,ղBX`457abI?m_dJVJs\a5`GfB-fZPw@($3f?.p(م��!�e%��@ !�gs'91a΍k@uN\W!61XH4s 5e"`>24V٩ku=r$m5Jz׵IR�H�U3HQ$I$,E3U5S]uZYVaavTwb|\Ujj8LKG6Bh-' ҰkWUڑUf +DŽڐ�nۻ\6'jѪ+#%%˕dkda ZfL9a{bTf'X\8kkYeDU6bxUF+iIRi2QT5l3 +}m -l_Z5@uq: M-\5'@\A7r ]#_f5#�H�e3I"$I$ (E$VIEYeYqifUx ϶8GIx*BsV |XwQ6 A[TkݢkX8Wș4i;TÒ-Je%J/¤͸QvЉF6ez\TFl5NyY%/YgMYY9 *T0aqZָ�9fyN*V#FVbL\յ l2 ;AY\"dCv;]aQU1͌8Il +d!NpNF k@H�U3E"I$I$LQHOY$RQUEVNYVYcTMdUdVJ-uk7."EJSZ}RYf-k6VbZfݬ!kU!mڙڶa88ȫEs"Tql6ֶkZ5nTѴr]jX R!#!Xma^k2I\d$-Z솚jӝBkAk^v we!ѶuVY0ZM}4M�YmWo8\e=ʕs4H�U3I"J%Q$<AI4QRUM5Uuf9"aJku0TE<f/wXk_|9WN_XR~jRhvR;Ζ`fZTMrb6YlZ"rS؁\?@pMKCKa  L&8wMdBmn<"sSRV3&ؼsZ5\q5-*1 )I,sʚćksV0{8n+�\61l9}fI׬kT(:Y Ab69H�U3I$Q%"I$4NIERQQUYeփU $kMuJx4#%ŧ{t nN^9vTjkZb4涪@S[*0W`ÃtR eD햶{YIYV*##}<´xdR ,ժ +a5֒ eSHHIKLp}&SUss$1,: [[+4ktHZʮB85klY㊯lNOE8[Z5Qm8zmR6H�U3I"JDI$着8PA4UTE5QeWY]v6K[&'XֺJ)6s@{4~st 3pQj'*|L<{9fs|N,A4Det6܆NH׍twl#2 @"tUFm,ZYk#/'ʦXTYk:lb"KĭYN5L I|C)4־$Ut"X[J8p$"[+J=RcQ$ƿ{bbJzVt5kիm{yhc �H�E3IIHI$H8PMTQ%U]eeYeS\$ZLy|HAD]t?"V4:RKߪT9]rQݪӬJĤH8-t+dEW1Lǰ9IP5&|[]&Yj  q5s]^X;2l8ʹ0ٺbj0j6{*au*AD��!�e#%��`f&6N=(1nq2w!D.Єp.bIH~w^e%sWrRvJ-#QJP#~vk@`Ƥ Y| Da_r8\rA s[<\d' M%;5Bv(q_~7: _VNHLGeI$26~+=NK!.St<Vyۨ:QKOԣ>3W)(*-'aH׬$4sCr=X\81͇W|>c1>)d=/8 ̌v'ZMJ\Nmg0P ^UnV]@/7b97U7ߩ&,B(c2@nPb8IF{/amWҜF`K 0Bş8 $(Ep"~`bi{kMN{'{\@j! \adcbaIb~cÀY 33gǏϲq+ӲRLHܝ,piY fAIЕ>̝ߕlzH47?@q).yS)WiHZ1 IμV4)9̝~1N-�orߌB�=<C�?E 1Ne.|hm߫-uC(+o0SNZY/'[%Vi,5@9X`&wl0'7-KP+c^~gg|3~5+3lCmosrd^�aj2ۜ�Zy:P xON^1ǟI�WPԑ̡;]p# Ďv0 Nz�Z~HQ( ïnoHωWhbOHNO<)(1S[iHSِB-'( BTPc~/9,1hSL`x28+g /ݸ[W0)/_;7" E`WǛ褙 - GQi+|^J8:Խ4DrGXR7>,7,ab'&)Lv'K!yk7)3 WJNJ{̞یgu ;P zMIJHѐsi1B}S@ ?i\1&Vp0+^ZܝKazߤ+,* $׭$Μ9$upI)(uC ۫6%_ P<7N2yĜ_uSF:.jMAYԗOґV%XFX`a# {RIH[W-z 1gJ!>pj{+j:[[~&Vd&!!m jBܔO=)58sD E=Ga,w83=(F:@ЃHK>Gn* nԋjI<BgG3*oS峾Ԓr?'2pWIF`tuy7 k~'iE}k%%{qK+$-8N֖м\;Y)gn7Ut8 s8UD@ω�%AwYIC?$E 18)!\C[eA g{ad]H ̀AA36>$⿡LWJڝ Yi-͌E�XKlLCdJ=XB@IIvT f9 9j֑ ~ij-I x~3~"b!0>NB9dK7 OG/} G$J$πpTi&J╪e7|r}819;BUtAߕךJ��!�g/%��`1�kw�i)Ks7#U웡IwDžkL%:|'X_+}ܥw~ׇܼր}+Zz:>?)GD ?؄|8SydhaxZ�$!fYj(LO~R?~�HBfrc w\_^~Kw#|*"@.&s`yc @7, _ G/ k F\T/OHfٯД03V?R5u x�>%!vco@SfrhuB@4&$W^u^~K�蘍)|F_�{7rhu�7, W,Bag+!坱R0ixR GJ�$!,K0&n{�ܰ'�|B�WH J\ ;?/9IӍrb{oǴ������JpJAy"wd&)υ2IHW=⒑|A`fd-|EFhU x:.y Cl3?'(ISOg;m(ؖ͂[{QHwn5�#wsn~J6O#f#d8R>ٲ^bRI f`GN)Gt pu`P\p`)}q??d#3')PuΒQb};}ۛ1MJsW16v;%F%}}#1,'(-o/83bOh(A͛/y) qw/ ;8jlQ%*=+%mbG+><x}u# z>_~<1Y Oa#4n Uw֑Zq͗M1q f ѳN8U NGo<5!9ߌ>k5K ?u%ok+VCmnZQ7?I,1jr$�nO+d1 n`XP] �YhXE G:21ϲ_JCai;lz[pGNGیk逰Jzy5V<o}%ʹ8E7q4w9{InK^Zv Ka戝 |pYM (#۷ )�6wpj:?I?ã1FxYezF8pe"gUFO H;|pWR-sPh1qbP<1!W׊Av Uj~c68Q:ʔ(1vgOw6C#(Er 19iEt}ُqrx2ٸp����_��X������")?)_*;tU:܏tqnNsx.WP<^fury: 8p0ҕ-xXySgˈ1F  2GH*[agDi1A\/nu26<0B8PsB,8Yz!vWgn( |v!gb4ψcx "Lju(m8JŮ'K<{Qxo (z'g;k?8y㺝BfbNqd$1gD5hW3F$螰ZT2 f-iטN?z["SGŀɥ0@d,Ov6j&8H *PhyӚHHhDj"uU"մE?q X(G8s>!gz nd(IÇ,9l(."$�F?�wBFf}�>ڼ$iETz �AԾLJ��!�gJ;%��`1�kI�kyۑaaK#.<q>AZ t%_�_{pX",usTp 4q�}. 9�^$+:H @>hpXzhì�����J}_=_!�=&\@`tu,Rf}y@6@5 Kr >3�Ę'�;!,%۲뽎Pr4Yw@N_�,@u!u0 @1 d R^X�X`Z !4i;�0y;޷gQZòd �\a,<w /9``wsm+P c. .ƌ? �~-@Ƀ#lW-<bX�zٺ{GjTawjl7|1Dlmfj,@ &Nui%^[,nH #R ~CâA"X+V7 P77o})֏7`҃FmN}^+P֙,p [wlϘVrssȶ=GC-MNJhUV^̠#Gn|uvn.߇$ nջsk|)BԬenqlf|~//zV4g4<ARB?y_|&Ҍ5|Fv֩-p1us% 3*7O~>sVwl93-!TtfC|;VP5'#3T,GG4:ma$/|8^Fl'j z2~ ypf Vݘsj[n#aCψ} jJ8{0^aONz2avn(ܖ}⑑{.>S(n{TeI-9PGOάE1Hu9[S(0޵Y2xA}!f?eÎ%ee(qV1tHO%u9xZ U&+tO?_s*w J+U XҲ-ND JY y J=4}_X='Q垼pܷuχ`8T[6cv4Snu*\t8U2(PK#z77Ւ#a3ʃ/>8>8)cwA' �>u\'sMd=۾tnz+|YH6r\ώ:Lw cQ+s@죅Wj@ [#!S9*.ΌxoauY-'+Pei8HEnkm6aw^)u~͎Éfg[ ]0,1\Raf'I1#q\C ]%{|{xbmٳ2Ǽ*;Wom(>J/z |nwXUQ8ao2{= ̕c0*ttId1⩌w?;L<.oHPs}Jgd¨0~n߰v* v*XoVbؕLд3h|A#1AːJLc}+<8=Vi!8Ï'ٹeN}B$w^XwwRt~A;;s\g Gvn;ӥp vb F4Ef0DΊ;~5;Cuv5x*Fd:@ ~ S�/Nf|ܝyY Ht°02ۻ3*q��!�guI%��@ !�i$WE.4!nLrLtOQT'FleZȑ0d#^siԫA1$+)nn�H�T3I"J$I$%R (EYTMeiUav\aE]Z]g7kӄl{X:qFRQ5>r2F}\jSb*siz\>(˕=ś]CD" k)Tּ6Edh5s{"\׵[6yBiRu zs[FQ!t+q c6@a"C-u]=jj mF#�HH� ckZ6 \5D ^5tZJي)妙 g›i f��H�U3)I%I$kI@Ԏ=C=TQ%RI5Iee%Id|j]pӥ5plh@#\2u8̻B!VccYLD{[Bm}G4FWvsw/|BTb־>qfѭ3EPv׋c+Y_Y �6JWu1DS̒e5JH5 >dCP\SZ5NuI%H5öSrA*=-HS0☗2 #$נn�kjkZ-mZAXt[)M|%Z�H�E3I$J$IHH8EMEU6VUtQe"T\ {X`j-kՄ"JSs0s_ Hfػ8h|9hU3C#Lj]+eA̒)*Yɕosc5T}+ ֩j\q:T a,BVSJ8M'lqΩ7 KSI&oQWy M, {apj#®$jT!ܝK4k\2'{܉Aϓu]Ɏ6$ըU|y Mkk\Υl��H�E3II$I$8SAUaTMUQtMYYUE%އ)$ AN6>�gȅB|6[`ٴi%QGw(".lнotH=Vt7h%H6hT%12.xOVu6O6 ]'jeA-o2 B'edq!C `Tcƞ$[٣ֵvibIֵMWd)ܯ"IJ>g;[h"Æ"ئXֵmp�H�U3I$$J%<IY%]wYuXUftF o!bbRD$!+dS5|d.@YoRSRwAÚ:Z<r"gtQtFmX/b% vgFAklڿ5w7`Ak kyew{`kE#$mC-ee*`j{#|UC֥BF::S(3Y?rpئk\Rnk3UF [TgV3\Ig)V+>j/vH�U3II$I$2ꪪ94 9=]EQeW]em`d4(kֺ5 klJ5aCKi4Z6j-\c猆aPZ i;-k*{׎kp\MBφXW,*AB#0%fi֩m_RȄ )cʻC�P^cM! (\SVDlX&K:8W5cf$Х]`ׯ/WA!kZ쵪(zSZ֨LH�E3$I$I$0�@IQEdeTE]U]&AQetZa&EeJ:-'3/[Қ!ć[<a =K�i=ׅ A q*AӚ6LKS;`鵭kXCkl5-cZMwvf0֝#9mFf3ʑ=61-buq&r5.)J��!�gU%��`!�k`rTu ~3{:Nu i  .e5l8�����[[ʬ5׵n=W���_��R[o| U0 >~!|'o_V o_oUWֈw4}5X߽>u-XP,:WJqLZiVY���W��"XjQEg H€{O)%$S"* K)l, =@xSĜθ,Spp@,cP(8~Dsrs}Lq13sAs8"S:h:0̧m\9>aqBc}L'=B|qp`cL�x  Dcw <e "<+AJ� T ��g0ǚIT,8P'4Hyު�AEz<?\= �:B7W�rE9yqR] 2J㠣 pBO' eבL9?@>?OU_q@U_@@_PuWqU� yabܟ1{=_NDe(c-^�^� '*z@j'@�b- 0CTt 5#UUv`TUG@B#DxUˈ>A�69�! *##Q ao8.> WyJ/8!_P I4}@q`U" �갑?Pş_R$X,J6jt7>h؂ @AT B"#TW�~�lT 0 Cՠ7B|>k2܅7PQÔ@5T @Ь<]X3S&h%1Ҏ'?nu<'Y2z?n B�l{p7}F,q =c-Z >tgADԌV͜zmbj�����X�����*:c.�:a;77aQgtFv �5dSXTA0q눀ha"!0x�8r0py2@iWZ^h�-XxvGs:_:cg@t.a1_)"B j0PpsIt"uA˃#qAP`jD>�u' 9[:X�||@b48Q WC)j" f(8TE}z8@�~$\�=0G`")Į l$|R:'(`�DW~.:|*r�4O'.mx4U;]^DO�y_} 2H@L$PU �G9`�^184 u�t.j@�lG%a$Rrπto�t$D x80<M{@FR}( �1zDH:O�����BpB�K@>B;U@,pT;U+6lZT=  8Dꄀw�x)ωθB`�l EE �U,�v&\<"*`, ຄ=he�|<PPd�P#hO {.�@t2 V j7 ���!�ga%��`!�krz9 #ZUOjp4U� HT$‚PUj?UpٹL)\T Qjf�����c{/|y;bX+ywޗ--^�����+?% ݇[]ȎOY#i¢;�?'Kv<� D"`_E>Q ,:�#}�@kAT8O'@']=� ,OP�18FP j1a�O*"!Te #|&y88`p:\cZ> ab@DP0 ,M= 4POhZ}atp |�FH5x?@:>gI˯u<&z�|`pHO {.<2O`km=(M�{3S<<Cm=@."xBb 0r���W��jp��� M������ �6`:Tł̎*p�2@PP I%8ܜ;]`c�8 r{`%~tؼ2YC�Z�轺 4�a�A�|ɠ M;0 � PA,V&b <ĕrJ�R�OPN0`obK:*h!zɀBom*x @0I(4 #*!hH1p iKm\J5@/<�Z79E{�H�w>) |ֳNJh:&ԗ\r;� C;���iM%^lH.E+&�vߍ&$k 7˾Jv '( ?:I@  -~x L8ψd6QyA��$P(W ^ C@`!Is+ܴ�jP J):Ȥ%oJOq`=•QHp ᜛w(¤ @4o2a,1 x,_pnƷC.| @4!(7�:O��Ez� PQ/bOWPLbHtƞrjP~KfX 8$�A�%l{0 QR>ai~g' 2݀-C[:Ą/�MI7QO=ԿJUڰzh dt$S d ɁA4b~}_庸u\r` )ғD0ܗAH쯌T�ǒ+@CЀACֳY4n _zd �BQ|p14`'/bq(�T`$bx{t퓰s(Iltnr,5{c(Mt$g]h @n|fG @@2Wјk!.�jc2H[w1ޫpb �Аvbf^)|޷`}[8T3�hCC�MX)DZhP̐S|BUv�L@@:|Ӏ5vH݌Q HYm. Pv@i+ٹ:0 j Nq0 J,gfClO%#z탇Ȳ=5.p�1 )F<А% G&{(EC|>'ߝ Jb9x̥#(�1.�LMI,b=Q|m9aIoutE9RF7{^X�PC/6��!�go%��``:)^8MR3RJm 0 ®hA4 i0T@lY {cyހZ_9̭~1O1bJY:u37 9D4|?8 A-\f;\`5a0 &# %m϶K[ ! &Pg H3ȗazP(d�Zv+ss`϶Å|d!k,@!Hܗۻ#a5�0wO"ڶTq36t18Rq^p6u6URj}gI s&`𫞔gRt}W|,2']` w~w$kSc!=[q ;!�j0ϸμ#4Y,75{`q�0rPVg=}}z�\Sl1 ;v^q{g ;Ҁ^�*^,`v⺱5-55�j�tR>W_y^>#KӮo9 5b>\4Qmu)s+JF?(:ᡘz `9Ϋ1!#?=|E2k$u rX8{� }ub'@(�׀+euI%+|_dὐ>էl:ƟSا &vK:SFII{oj07l7lrw"6kY[7) c;m@y0@ SC^d5<03de;8Wh}K VjD  &q7d'\ G}Lfv:pNUi5(㜉U70 '�-KQfR}zN�<(^,j3}N%6J+o}H� hyi `(M NB ~wyIdtS_ sk$ɈBx( �by%tm_cB&2q ـ/+NG|97߯B c3q@ QI@>m| `_ިg3Vg~[e[f}A%'3eVH`avLC2csM5ހ 8=�z@COq18՛sԒ}qd{M.�0 JQ~,͓KBR(.BT/�1�r[/0 Ĥl#� X$>CNB SW$(꟝1b5 /!#[MPx0(eVE7<<y4>B aD"ilr᐀@0 NPjS^Y-yb�[> k� #!af3뮦N'oz HO%n~y� 5 U?(US}UGLSD FLiʼyH@dhSK-C7 pݲ]P) -9.u٭�&bx~UG0P}tr0RB!Ю|y_$i.uT0 CwPk{堗Y mJ[]ގ}۞IXqPIhiI,c ﮯ7v5viu2nKIuiɤFc �BA'p8Eϵ䙽@LMЀbBk4fC�1@?l2�f!^~Uz (l3쫟ɸ0JfbF@:P_!y.۬QPsx :S{5&�ZKJ-ЂSߝz C$~m2sd�&ݭ�䲸  NNԠՀ욌S,QM�@/jz~2aFn~ GQ%jzKO/r�ĥ97 jIc >L!'tq`?@`ɃFzOǸ +MSt!#vd"q "kـ^��!�i!{%��@ !�iՇs^5m׌JIAHu5qF36[Kd�]@Y$apE^2��H�U3HI($3)389PDčA#QA$QE4EDM(TCU)kTZsbIk6+k8?H@Yf̄S͵S`:dfث:\*)lYkk4SR6WR@k\澬iͫ W'1 J!-rMkII )Mw#hMܠ$KݱB+mVvydt־cZUEHj^q!cm]Jb6( h6 n+Z J޵5j07ֿ;a ��H�U3E"ID$;859EEM4MuQDڛVPdkn^8#ohõQkn]8ڙ']bv<De L0F5{pкJdXfV}MSMѣ..Nh!g P)]ϖkֆ6^^-a}2fih]>#aĬ}12ĵҞ<{ߛk)P$lJjϧf [ 2 :%u@IhRH�U3i$I$J$0N9E$IEQuTauXa`!3ҹTE)$&]9:0 J:V.9 kA >֬5HMkGRs8ƶY*-"w7! m3kiQ-2HQlpj$Dno䋚As@-V^˓ nzָ!S&kHl~Zv,[;\&EHZbnKA̅+ }sJT7}7jj욋pzֱlHH�U3E2IHI$XjZH4K9DM%MuV]VWiv]e>9Un.j rmkxөS՜b ÛdZoj×n9dI<Dajƅn[Yr9SbӼAf˛[4 C>mZҍzȏ5qtE'p%ئxk^UZ[7qs.mlTӷOnWkUm6sR&(q=euS WTZkj10䭬jn[%T[G(JWMƵKak[H�E3I"DI$骨N(L<PMQD]U]VmcJ͋{!d1lZ89\H'9Zۍna (5P5M\-j 4FuMl]1͢6mIVA~7^ӓwTIGs۔[J,*´9eBݡlV9n``&^m{! iqe~ڻ*eP9l \CHۍsM ؕհcR5q IuvlNqecviV�H�U3%"I$I$ 4ETE4LECX56`9V UYA5eBF;ZܵK ۘb3 t~Jicf _uQSc`2-6Tfuw.o5'-Zэ!Z Vs *mzRnaŶkZBݱ7]0Z,kYfMkp$_c2Jih30j`*iJ [bZLۋNUqTpܛ5SYj=ҋlBuH�U3I2I$I$+/F0O<ԒEA4=TY%QY$TQ5M&OBBg7Mlkt=}K1)v%RSO=е܅edZ4 !%J$ +Q|5`ǪCE볚H6 [ )M,k7? H55T*4XYje{ H0ZٮkWr0viy 5SnִLi⺍p`GZl1Rl��!�iL%��`1�mK�mI@yB9YoAHw<!&$OIzl[gW�h d]4� Ce#7e7g"{��: !<IZL]4y\ԡXU�4M(I m{iI7 ' �?+|_fl.€ !4b"T~ޥ`@ 0M=.YhJ_=�`V̒K[dJ%E, R18@-�pZF\Pk� "%`'�qX��B ? _?M��&krh}c �dj: |bMyzDip _ �.N$McI?v1C,$ @+� o! @b&|_и �d j p@$4"/) < CF!kRA�I$0 x\LYH �0_ A'0Ah(� PI [4ӊ�WVđɞP \Q +$3�������#Ba@d'x ��h@x4Xb% lDWnT(Q]$c A5ExfIQƠ㨊Ǚ�fPɝ%#}he�< A-Bi':/#Y z([@& 0``O<<4Bi݋tyлr<^VOب�0hjDvs 0P6z <&7~( EqG[@g!o۸'5ыZnI:$7a|r (#, jʓn/r"QЕ2-%1I8xYH qIyRt4M& (W<aOAG&C�)B_oƾ_'\*BIyfe�A(+9/J%<ꑶ_UJU$$an@P N,`c6/>fԐ?Kw[|n|͏<$>a,b N:!t UZ-ƒ ~E* 7<* (c9 y:�в) Zi)ͲI`7?3㓇0Rz�;!rRqQ#oA>6mQӂPn˹]ք^)#AM C(^r}G8VH*,=% /?!*Tygِ,5CT$-DZ̼uhE@rG@:`Ą]uYM1h6Ou@6&tf8i LjN}PP۩b pbS|q}kzwz$ȳE,rNjr) FZ#KV[ɏ88 a �XhD|ai-J̢I@JjF ߊG]vN=,_RHN| C�-.8chMdAgbv߃߅^$ w!iz>uH)W%Q *B%?c`n3"A M; {_']!>&%_/Btm>{ҐbM2Ma'Vr }D]'SXBvbo1Hbh[tJ+ůg+` 3tE-%Y9Ir^7}\sY3 OYGz~pv&6ӾYb gp}C+A~ L^:yڃKAYpac& t+}hi3 y9ief 3-AfrhN%!xmMI͌T:wC;\v|*YOmݴnoEv+xZR?nz&ϡbFaQJ%mt|5?%y O2_e!3v��!�iw%��`!�mEJ@=m! [r.2{m 8�0hob%a[|0c/ 7 G< fOjޜI[a�` %~*Q s~ޥ Q(]\qױ�O` r%/׎frlE7q6QEZIHsa+?9A&+!ﳇA ;)ĠXM �1@H0D#@%H]H `c@,(7 nM2waXzS9B����_��bX������D:8EΗ".YQc�_:6Ns??C!y^_neoLqKc/<;zW"BZKv9gsqjW;eB&b5 O6^a ༳epԪPP69yƒ9Uc'e͹Rs8yL,,LD"W�2]=;]ck~)lw 퀓;^a8<LOEr&69`4<My4y v0OXR9 Ƹ=K1?P<KC#js(G؋~j֣e}WNc.QVrϯ齤HE0z胛Ռ"ÄJГrsBzC:uqڽB7�}ȕ9(yj-c^gvTAo'1 Ͱ"ٌ/(*`5ѕ9gF r?{ 9 =,9Q]x@@M߉M#P,Df2iysvS+%q̃ǘ8o"jY%5Ey㍔.p-<!8F'eu̺*\W7xXp:xtǪ^ffVAlW[Ρ#'x;v[DƜe,ܬ|y|pzm5Pzɿ!Q8v"f>еg*8EpI0J}y3hk�s_'Ӝ$9~Z ?_Ĭ _"<|:'ȁߺq$ze}Bl t������[CnC@c�T%@hNoo ƒFIXzu`UJPa/d 3>`&C- _a];7$& "R4yKN[bsܵ^e!˯z&e$>A_ٷmyDY]S0o78j<I$$G$>P ?wul{�qVRQЄ:CWP3۶KkPAj9OG^Yy+du ⹷1}bHAƙi-�`E,ֿ,gkG&8j?9W1i' #N[i?UFRɨ(.AlX! nlϰ:jOK!"H(>NKD"be[.f܍>'iN !(1>0i7Ư9 dnRs(g}.(8aH:NrlJ"aoKJrUOoB;ե'ߊ5 &^D/u5<91袸t$kx5xS Ђ$:�.άaU{mr WJTOa@f , Q_>yv?`!wH@T{  GS !%8WNHM>4K9<hnCJVq0OUXIIQ��!�iͭ%��@ !�k..5og*[J5n%x-HGdJL4 Xإ6Rkli�H�U3I"(I$ M@EIYEUES]_ H)PW ~ 8֤6N|XH-m:u,9VD w RW#J& q#~\--Y9TR͆WdT2aDWJjV8 ֱSkttb8f-)x99,{t.ANfI/-tv>6kl&ЦDPuI9mVU]I!`#ܫd5EH�U3M$$I$G9M4ETQu]uZD|ݵh:ZծtBu TUvf{97&$0!)NVuJ-3 py56~ hVf!FhZM:.sqӑh>KjjTHsU'bґFCwY몑mٮqV l.GUVӶ [k$~9ɳn1m4fJj \uh|Dd0)+`vm kMMY!*H�U3)$DI%jH=I$Y5YWmfUVC2%:Z)Snŏo$pyZqD Y*5uB-DmKѸhγLɘ6ƎE𚒭|]s돫SsnZX9 b2#.TّSc2OlnP 1[Yk1jlV|D\k\]sHk0ST,`t4pmItz \V+&2 %b7_uµm�B6�H�U3L$$jjJb 4=$MU%MuQivVbmjե-Ր4jjREkZߖq0*B)k[mmwRyg*(4#6MVTXDJow5cҎ .QM.X(*Ȫhpu:b=c\渏5N52F,Kml#a55ģʷ;j i>f Rl�c81UTMh*]cVֵSmΕ![c UXX⾑f\>Uї0쥮fAH�E3i$$I$ꡪH4Ď9AdIMEDM51 xu�dy 59dfȉ q> m\UkYTZÿ5wRܦsmҬ>vPBZ|)cpQNjkAJ l•}qe\=Z{pRYlٖSjj5F2XCU)SZ;&[Iڶu6s]Fwk'9 GٍJwl* [{91cZ-rj44i\96j%xH�U3I"R$I$ꪪG0Í4A$E$MTI4lF^\R_%TC$PzD0Bč:RYutefYx"͈= :n􍚪ckkX\l{`\b_ l#Zkaz5hjvӮjW6+Ul+S$m֭Te:4rΆZ.^I="Znx$V`H|'AH)-JF#V ujE~v놷Φ-섇Gɪ`V{^ֵH�U3)$R$I$ <A$T]4IdMVQtUU5BGp/.n 9M*iJ 4U7Ya$Xד"l UO`eslǃ865"l5V:֤4yԌ qR EXZ\[jG׋>Hj2ra^ILUaJ⧡|X}Yj5*g[XLYqZ66UX3ǶH��!�i%��`!�mc<ǎ&Y-*Ϟ mu 2ץEp,{!Rѫj#0[ln[q M% ׁ/[J (*Q9ez =7u fB~! Ve]wճQEF%'G >hQ~6/qC@P <&+;ìϙ{hԋs2?Q>ӌ 4T3E o9Dѽ(uwq3^:(vd-l/׀HL j fC'uשּ$iY >;֔V{JG}rb+^A?,;y.cB?^ ]~ mhay+-p9>ECu`uQiNm,H*bI{;;/5Kd1d 6FslAac5!7a͠Yn0nGר,0z'G{Ғu ܋p@LKH̭޼)%9r|3 Z#'G ?0, XºyEYܶH5@;`ц*)fU02f:ȘaBT[6e>\$ P[lf{FBD$jފ neN DrNK%#Po-3v3 l�����zel#/?U?]Z:e*c'^ERá;p-c3$g>(jQ}=0u ?7ClE`Db7}OCCFCPj7Cw,**z;AKy$\2{w@I+`d ĬC<ĪCN>졍#l5).A1#2dYᚇRPjqB0>(3+}EJf#aY1yq$zbVU3˸@ <|gq!foP),)a?N]du3NtN_19!֖<اoAA_*s\xj,,D۽l0?{\ rCaYrfYǤT{{~ ip=%1Er,qnfeoIHr [QŶtYs49PMz3?s[S(B(fwWko0ZBؗdk=#1.w)ޘ���_��en")EOU1[CQSCc^d.z-Ů<Ԏv",u߾o{nPތ~tb{7QtQ֢"C̱w;=2"RT<1**; uD|놆{|zI\=%@ԐbVd!bUF%}mCRS]{˪fi<53UH@7 K+EPufOי?[bG.l `s~ɞd:A$# Q\AaK 񶜺۩^C }sB--*ytD!V|ڋb !qf" \v\x􊟗/{U[leCm dcAߓOK(`U:.=AjF^5TEE$5kڢ7c0Zؕ)rYga.{)ޘ���W���Z>KDn l`<�ڂh %$A�$/=`r₸�%atL<󗐍tn�hYb;5߱ 4b{NY ({i*&yJB (�  �劻Y+wN 8f)hxPPrZKDZ& �p8=<Waitaߡܔr1ԔP[��!�k#ǀ%��`!�mW3#qڴ1;k7_L)Z/̴)3֌{j oZw^쮍}پ!X];Q^G]]tʂk쬤ҕf RB&g>e#8D2ZHjFj rZw}bU1|ǸFnGU.S%WymgM5 cFdP*m-qWIwRxM}Ѥ*:jF=sj"cJTɘ%.FІ`ke0u.{GQedRӷaWK޸ �_֪>Rs77?HZ^ctf^g_uIuCRK=!avyr?|Ŭ.`Nxˡ}K}wFi n۞_WE51G!5Adl7퍟 x:+>6FZ0ƆJF״7Ae�YlFp­A6Gq?~˺~ZZP}g FW )Pfj \j z`T0z{׬a)/Ӏܗ4(0^uIjhUg�4)^,00!זDgH}A^\I)n}ou{t^}0�z@ wAN V{gY2A]>N{rj'G%GBWLz>piE!w0h ]A @$EA?9iUuVҠ]eW'n03�K�p ,E�A0 �|Wb` Q #⯝}Z F0S5qU)9^9aQAEIω{d=Wd7 @z 1-y:k'j>r"WvH䗇{{1�N$PG_vM+ZwxewѮ}6k; `Y(񤜎 �z �0M` @<Az7x,]1(s^55m O) a ȴ3 D@)'ڈఉDFEC09VA|RXQ\Z@$iO2Ii |l�0x�‡/.%(%% v@[%CS%rQ|~7kfDs++6�!3�Lč�!'*,� 6"WTX`%�����X 9tX�����*/inlNM{)oDwCe+ٔ&a;a7č:44;d[*l31Ѝ(0^9`F?{*㇓ 5gS3.Ŏ01L=̽bwyd@/Hǚӈ'pיDZ9(v ܃F` ;_Ja g7� }��>A`f��� c������?�!�i �0u@`DH$@Ћ.)g wA�\)Rh� �~ bh&Jw�)�@(` ,@E,A@A�TH14@ �f �M ,@>TB�J� &(/TX 6 Ő/|��`1 %,{503.�u90kbXa?ސ @&%(Cvl* 7b_HI0�K"I%H{n3!|wsF F�80[  :|y!$�`K$zr`a(Wooi(5ːvw}�'j?4X h, OB@{�XM9<P" M�졄Ye!{fրj�0�B!bZg��!�kNӀ%��`!dCZsˁ@P" M ,_H14@)G�+�@(`dd >b; �0 �<I,�a}3z<'D  ]x/A$H?8$@�|�"H��{?{Me;Fؤ`� ;,fVvZrj7ꛂf ڑaYb5pѻqIDp7p r^NHӅ3Vuʒw>>|]45%n7𪓮� 䗎gU𦺷 �1 qʽA (_)&�R @ RM[//^`EV)ל*JorẤ޻I_RѽٽJ=(gGڝb3RZ�h0`*Sxp¿+p&�473 6�1&@'ր4"z!n`c ;g8o(>BճY|`0w+b}3 ;aD 15 F?J*ΔJ0w?T)=;/H5t? 4:[>&Aڌxe{�4"='&`҆Vb`b@tC W,W1yP~ZºMAh3 r1=suITRouA +%(|;ڼ˽;#VEMƓƵԔ^`Rj%g ; ]CF]@�0_O^ VMS5Lnsh\ c³-(@ԇ3"HKcWnjak9FNݲ̛=[/t -kC+d6:P`dV9Ϝ!(&�{q0nO7g܀.vWsI3~b Cۮp~QAF w~p0C{}(;yVZ귯z6LS$ 욀oXo^|Q 1dhBs�Y46idGT|V@!KHUSd^~P@AGܿ֠ gjPa) 0A0MOm2Yҿ¬6%GID9b<3n<}3r6;AXäi>&PvLoA9*#] JVN=o{@Dаn@(Xı'y5%ZM[VWxb` t#^d&(D.pn,F;O3'qVZSF_d6|CޯZ�PjL&�yhcZ&fqaloj{#ƄT#TZ1?FO-$nTM +Շ?[?im7,?"KB'j@gG9 ︓YU!,40)yR}Bw5 s =njNwMTRJN̝]tWLC ᥡ,BH w7 = .d0Zvt1/5�&t9HO7g HĽ(?Նn,0hPyFݍRӓ! 71_=sT 75IFgfBFua0|N:</e&#t+ %?rpQ7TۊBKe344?XP1 W|6 #~MaP͓~csGqu'�z  ~ז�n `Ph+3ޙ�@Tw YX~U5J4fEXv ?9;h%|w�`�` ɭӓJ?|, � `VFiB{�dx.FLV��!�ky%��@ !�m71!"]mJƽb zu충39B3McW/xu6#\&H�U3I"J$I%& =E4UMeUeWieY@J\sVDHZWM̓*RlX v0ֲŅ{TJ.hУ+`N#:$rPN:^a !RەL4pbҨ67תcͼkĒVN -!$n9kH6ReEQ Rk**jܘwN X~].cEP39b. Dmk&[_qes dI *YP)BT s iƹ �H�U3E$JHI$ !Q9E4]5YuYUYe"DEoEYyZҺce+GgNM%#IkҶ+ATF!#-5mIkj27ԐF*R\ZwWĮֽ g 1hȉ zmVZ-cZ{J#k|jJEw;Hl\9rkakjŴxqO1jI~-nZ'GCM"/ PB)roiz8q}2,aDuP�H�E3$R$I$]@3 P85P135P Y=]CXUPeTIetv0B4nl5[`Z%V+qk[f/RJ $75aKvYbHR Mv  ;Nr$جЮZwiR lֵwZN[Tkl?!k6 kkddQ-$$J5cZ5f0䖴`Bmζ[ Z5Ĭ+S]5vkU6UmͼNc1Ӗ[ JQ1, cAט��H�V3I"IDI$ N44AAR=DSMJ'Ah¯k-|.Acl1Qiۇ1[9cGM_ FZCak1cV ҾkTsko8kscmr$ T2xF`&J:`e& lcӐ "N٤n`뱴auMJg5Y-BٱTQ 7" 6R6bT(LWhSY,5͘ZضEH`ݕaۙ̓uYdiݨoEjXmts}H�U3EDI$05#D9TEEQFVQEVQTt%M;w TƋ|!]ڊ_ʬ<�Zr1Zfnn Pir]5:&c_7fOYLc30wJny [Rʄ6L5=Pִ &Xֵ5Iz~ӫM35a&9ƅ҄sPb%M:=jZGKža mW# HkA~֎͹K%ϯ>u^s} ha3) kmlZɭk@H�U3HD$(Ґ8=$SITUuYUYc[k$(65٤Q@Ίc jkPb0JsT-I\MW[-bU!LF; 5X\L 3 z  B65tEaY< B95kvҸ\7ƦhEs 4ym6= _^L9餬`qTװ۵):s{= < 0Wz"[ PgfHmTm6Hֿ#X8��H�U3H(I$4EIU6VUaaF|j椩^ϑ#UٍkZܵg6CMZmf,k F"V Af9fMpU#4TT)ˏ aPa'5ciH'T� h Ť܊ap^v$2FЌkjuqCs$r$kZͭY-��!�k%��`!�m<yzY?% G` �� /9H%?�-~�2熀G 4<�0#OK_ �u�IDB�Ԑ ~�, �_P;hx�a�AҖZ@<y@Ok &ܰ@�tB/8yG&Ok&&[gd"> h&I@&ˆpd#b`@,�}'�&� �* ?;R� ("~>������Kz|jm uuF\cCr^Io1F:c:%g^tD/H+Fe ͯ}jTHMY_Aߥmji4`8@54&����_��;zq6>H:\hs3\Xuc^Io1F:c:%g^tD/H+Fe ͯ}jTHMY_Aߥmji#  3 F]<Mr@LM7d���W��v_)B6�ܞ$M*DFge!8uLpRz: -C @Pę�e@,Xu3F}DH#J@i1cŇh׉{fʸPL*JPQ2;L"8((m{�"6c O!\<Ы �P 6)Az>pv!Su5fD0DM5;(D�z !S-]Cc 5#gX �"(?Т4pޮNvc1dЊ7¥"o(:!ӈ 0: @0񗨊6&"d>k=s@" T=¯2`3Xp8&jSSzQ0C}YB:3bP #A6hT8x<OW#]o1ȤXŀ^ ҕy}l$*=I64{/86 }:x`āh1ǤxYuP$xMy7,q9D|^@!@ʼc_sGD;f΢w r_f{1C@nk<mmO*eGXB@:׿q<P1ʳ������2X����� !iŸTyyd|@1? tL8)A2| ` m[ugzI_B2=)($Ƈ2QCv\ g@B$)JWObz̔4Ƿcΐ`>HQa8[|HX^CB8hV<OOv9ί0FS6?FF1RF!9̤ѸZX̴a9k t a`XaoK K~8;ׁcn'L;sr~ω(|nǷ;;d#8i�[#, ֛�J�oYpJ '� +N`8'� 'GÉ GNL'L+=.d-8?lb f[Gsaw My$%GBL)SarWY$!!CnIa((\t4gK,18? QepssV0SnO @ms]y4y3qa~\ p EXе`[[ϫ.o^$rΎ1yȯFHNO܁ewqv<||z <~?joN]!WQ,{pp} <gT(>p��!�k%��`1�o'�odc)[=OaA7y+NB`[0j,,p 'Cp8Ex`a5y%~U\ͫҪ$xF8򀀦bs>rpAt!8S>?S{EJB}pK΃�ѶH|b D|F#JP #zO������?7OqE"$@ ^�22>X]Sdt4D BH6GnCH$ /V0.>% !}:@dRFpYu?HoM0` `G,@A�@ _@B~6_$JAN p"$A �Dv&@X�خ5Gx 5~:|= 0`G,[ @`DW2_egB2_ �/4�aU @`DHp`o�_B@j|f(5`ϙS%PDP1R:X;K&�J� ! +@  X��R�I!@ h�5Џ=@bMbX-j? �n4  )@ @.,<07} F;ru(JIc{soRUGЏx�4Jc;6Ŏ2J=ǁN_`QxNp=&9(X>KNM�1%wH&pa5y I(%PZ0bs~Uı3|2rYaW=G[p_@5ԔlnEm/ & 7f|<mi W+.ĝvY|+M`)(NR? ok�`rs` jp$29`݉֎QN=\UhBڀ,,)?ў:'K eqK:_wdp Нn,u{@TdloZ��ã+/:p1d¶:p*'yZz39W@ C s!AmuS 1S/l8~`�i,/DCH1ho _IR_(ٶ() `[c.>o_1I@zɿv/hP !D�/[? C=sҌ@ֿ&v[8pN2ѝ()XJ�x�R#�I@rY\եSR0&@z ursNs}` "�?�OI;fh z iWu@bF`el�@; %z6JceuĄBO,a-ѐp]4zL\#1FJh�8B ' +;|s#ϰncMJꡏj�b?C&6 [|8ǵlsɐtCCJ#b PԥIb% |E W11hJ-(@ipSvcyaߊr3lG1}�ZXjԍP%GfC&PİcDž.ޔ�ZFg|CVJoAGA0gl[PH! jC y!V.z�b,}ۈT'ݴj'�ąI8 x I,@Ylu2\? 3q�, �,<BLÙ8(*@5!Zr?I!U?PU!4ĒQstM�1fwRJ'rJA}vfs),w QNӹ%vp2'{ צ` (Y]CF}~(*d _cF`T W G}5!N!ٿm , i.��!�k%��`!�o|G|G^@F e`BxPKi;fӣ|P *ƈ)  n;nNq{0b6#PU87:X,r}$.ŋ/;j+v@hBG& 17rf,MH'~j?�X"hHW8��S��, a5=I I!^�#4ah `:?@BHUpn׹&OO^<Q�o`+a^�BzP11{/A&%}7ejf Nl}3v?^XnB�p$.Bq�/ q=GWNg?}aa�-W{�]\a"\j kaFsZrQ43.w1|7n0Yh ״89H+7wڂ,%g(ƓR77 ۛ| +S*%d�LYŖRwbTu?K,oKj_�:!�IFOHGd4|E�%I:- J,ZtEF�, fuV ( `tv�qaI3w ̀@KWR2$#u2 8XbQY= f8[ 3 2tPS@/߸ϻQI/r_PQВ o؝VۖQoCJ;s;�Ϟq\czސ x4 + |."ׁ `Z@!(<ԅ%�pf!  @!{ X' PW 5eq${d x\!()ϴ i7t⎑vLJQ\#Nvp] 聏V'$a>BIi"�=H\Y,'Ŋ%� `2X@0�<(  `�=!tHԏ$��i#R>´H�A= L�pL] ä ` %"HK;aI-#?MSaIiaf,_8$�����JL%s/G3өmmy<A,Umq @,)ni`<W̍|ˌ&iLJPuGqPl-Atq8BbuzA;�MT 5qҥa@Vwmc8.X EWIU{*Z4}*dJ_( |>അ/q>U{/Ҡ��rhJL$d2d[G~˒K/VU hت�����RL% XT&pu3 5'6⥊N \AY�^_26.0ɧ[_4*ޱ%5.N6'LNH'r�U �an:T( 39g0ʯq¥CNFTLC׵b\ZxZB.'ʡ;bœ㠪y��rhKL$d2nnXdΪlUI X�����"q|L�TU)˪p�] ]s,tT!DPa,4 3Ŀ `,B(_:H@17(@06d2"K(5� %�$'j$rhK\Ö:uAB&,r|F_yM8<.lkZ#v`b[!RbRF8͉|DUpS1��!�m&%��@ !�md0MMr!Djc,C\p<l \ �H�U3HDI$4P=$ADQuXUaahj G/28I!^.+fvkieX^9!^AvsDRmm)*jCC\8GN,MYJ`Y-Q_fdMY-kEB Vo5 ]6d "Pٮ_zʬѵȐmj(/mA(Ҥ%ku9ڥ~aDEPGS,|FkO0b-d D!ҹrmk՚�H�U3$I$I$ � ,90 =T9OISa5%QL=UMtA> *#D)pדp 굍`Z%aJpDZmYm9fYtXXҒQ5*{FJәZֵ\[|trӒMJ͔! f-&mMDd9)X]L]m[g8hlƹc="aR+ [EZ o>0M%Z֕ShTՒgcZ֪Tu4f֔��H�U3I"HI$ꊪ4@R99=4RA$SE<ui:L@Vth)B8/u*Je*(kZlD}vFRQk۴~gkKR~9\A[v19#\AhQF jwrbvUR< kRma%g?]ƵȖSZfDZYz*sMka:˷hnkqխH0$" uyWkT75\q [ Z@��H�U3-"%I$b4O@DIY$I5M>P/b VfKѥMha#+E&Tu/ߦL&i9 ksm:'6YiF!RnTJ r%Z܍dfTZǵ%N0t2\eu*=[Ks[H{a!5C TԐUsJi4 {)phSnùԌg/ -I!XN!؍[E>b<#ksM,sdֆȬՉ@M`UﱩX!VH�U3)$$I$a08AEDQQ$QYuM5l¯o3plǑ0J=;DF'Q"[5AIQֵ5FLJT=&5=#Q"c*ɵR\(Ha$m|3%e֦$imH u6 !tHG0:Ѳ57_kc cNh k$DoH/ `r53Vq{֩ s u0KC6speeՃ_DVxc! eZBXG+7[j{aH�U3i$I$늱4Ӎ@QEQdaEaUU%OkFЅC+EKJWh-fTl+V\na" Y])R&b0S^jVB`S0AaaQT*k[@ٵ}J7S\9׵K8=Ij8d ٭6֨a,oj-_aNgDJFh vtk9+5޻jX֩dQ\4l+:XZ sRA[l>cV��H�U3iJ$I$* 8ÎAEeRIDY5YeaU]eh]w5<6kT鲱9پJB`M&Q+ LRsp`fj%DkZG5+iZ161hX)ĚoE>$.֕D;e>AVz%*TEeAѥt,Ҙ5!6ˉ͑#\֪y-:YDl^1ʳUg5C9uRPXYE��!�mQ%��`!�o—Qgڇ ܏<DUx 2{̰`#}>hX P. xwl=B>P܍d;�i@(Re\=x>&F*1)@3 ? us" [Wf@3r԰а;څGG$RQ4c>}א+Pc(u��eA?bhߚq)@m8HQC�@|.ɠ*w3�,.IQ!׺}vܐ2E9ˀ08CޮTG-XGB'_J�v\;[0;/~rsA[J5I( �%jn)8b Ǔw'ˆ#�Jn 0$ e _QiBP�JS8P#Ww 4@Uـ]N5aP 'A&5$'%\+ :\Pu-.\Dn¦Y?g#͂:ՒxV)b̠ `0U 8.4�qYtF kQ`*'ۋtO*8 1x����_��RX^p `(XzO*hr�����"�L"�9#G|%Kx<ARz`uנG8 y:0 1ogFN ׃|F:`!W#^#UQ8;F4y"Wąv�sC L-fFW=\`Q0]�? _�:s/]^H.vT8>XF| 5|h7( +>'Bῇ2(ux9 k9:.0DMx G6\������*?` ԂH!` pbHiy b?n,7|6!@lߋ @\ AI 5$*I& /ug!� g?Qdr d"$A@` "}  IcĤ'+�T`]@2w�O`$ɀ'H�0ۓq_`/ �0A00lm␃@nPh&X [8!d bs^I!01+vՁ9@bL&KO%``"nrI ]XO tjW +FͩS<0`09Jp$ %� ԡ;!~b[HA�Ę@Dߐ֝n}Y=Σ �0_H)4�a@A�`)Rh��$�B`@!P$$mgA/�2x Kn0MP�E,A&ߢ�v�02%GQaP�E,A&q@ ذI~tPQt B~Ʋ0x_i #% { y|q:B1A80BWs?GqsP?'|Oїm(&Ѝy@hQǡ[?T�WB؂NГ(~X[o{Co[cqkπ4B/~K5tx@07G�:(Zs\I;7ZYc:(YU PBnX ^zҐr텐f]=DY4'p'kr0%;x`!|̵sYI$%G$GfP!!ϒs}6Hf?W}h B/bg?Xf� IQ;p5̞.x S()raCm�@{#YD@id;ٯe?~��!�m|+%��`x`IM!܃@; BRsakPSҀ\;1Q!*vI}y6@O.e6 :/ g(�vB@jJ p:!01 'r5-c fؐv*ƾpZ7 ,0H߿B )o!CSBeiAC3?q90Н�tp&R9: 8G(0U{AG%5_ =NO? r4I/d%;ւA+nw9SѲz ~@tW9: Id$2pw ^p{$wpJҠ7 b:Z`,n>m,h)B&t7pJN/u@vSӿ?wA?D`;I X[CF_#|̓:*%AGJ0QIOO @:>G3VS"DNBuO% ]@`ԔD"<ZYPUtQ/.B @kDa`<6!Ksn-XQA�zpŠҞ8&dМ#֞q-nM! ?`ۆYeb%nwDwE$8v2#`{(*H(JNS4t>DB?X |M,2Ls\D(K��10kf,-$RP 8äu`E'.� ~}O&j]$)X_S;Șwv|Y>1g^DkG>/A5z uyҒG̻`Tfъ]]9da &!c *&^B! HI~^vSE:t3ޕ! 9$4VN$}^!I-<? 買ePNx>HQ0&jbrovB�ԦW첒xק�fK vs`}7Q, nm0ieC�t1�;IDI(/Po ar?L ZyïTR/a5�P1}6�'�fQ_=)/,aa|g" =6(!$MububKenr07/Yz='Hm-]~hHa.㐀@/r6\T~w<E3f + bQPt*@ctR()Ǐd4I e$^ʀ x�[*!G{j$%IS0gBK'7,},�j G"�!Z7½UAGWH]b]J(5>+&$^|?Uyl5x_RЄy={j�nBIN@@Q%g)˻ uUfة v9)D ܝ_q+ߨpQas[B$tj  *O)u]v* o i_lNZIW�\o܁GPD:@UT!TLO5(-m.:PKxC/PUף8 i0P>` Ǡ+xw^ ,ߎ2z7粹 U9<x @2WbxJ6:ނ2K0ϯFcwU1+rTW4Q:�&lPj<~ᥣۑR{:L,0q4 *'7gd�(<r�}YΠ`!tVw;4LAg`mzNM?U�3]¤CX-I:@{fB r uA Y``��!�m9%��`!�qآQ@J@, D҉2 ì �ĆQ퀄< F2F`�xR/��wN Xh�AΖ(��o~ Jc@&�:Aİ^ @0 &aOzm������:˜C,<4-~RPQshJIeF b>jЙДgO%ST*m'2&U &PixH%[̍R}RKuC8J frK~! #BXH; cKzh8Jxp$*-8pКlpuDI�m����_��:˜C,<4-~RPQshJIeF b>jЙДgO%ST*m'2&U &PixH%[̍R}RKuC8J frK~! #BXH; cKzh8Jxp$*-8pКlpuDI�m����W��oa~)Ef~p(tl"k@4]0b>D_~`XbF&a*F= N#!`6NG18:PE@<Gަ0J"pC CÈ7z!'ΣDžzIq= �:@"uDR _Kax06=utgH)r�nίɦ(W^c'  ۆ`$YlgCBIaQ}/AvDCJҳ)Q> gAj"&@)|47jg(g(9rn8�u([> D\l3=ktgt: 3 ,io@f3�DT,La9`Td~F+@X!,☍f{P2P�}n.A#Åxw�8F8{СtE@=C۹KxH4%*r|x#0GCꢙyqF'|nJ;(<|?r""wf@46[uCg1 ul8x|N�`X gY^w |jJC^Zp?Qq:9ZH0檉Pŧ/ߙ�KA]m:/c`Ta. a".Yr�ہp1 q4E㊰;DdICsC QB·[la5(\$+t??) Es:txQ@Sw` Qh0�{:ч0 d>�<FXHQv29nG8:~'O?N tوԧ26 w4<x ybćs: ҍi׉� *�����RX�����#NwZ[$qo:�0|Yܞu ?#LlOk8-Nlla =OGa[ϙN+7+vl>ù�^sY/}B9@=9U 0[��jl{sLoߜpTQy;'[l p0?IYTgyXn^suW$OibBObx㱺 2ąCry=eO1^ag4+f~?9? ( ^xr�>$TE$X}yRG0a+[:+1as(*subi,]y?-Jܟ\ͣ{טpSYo!N{;|:�\9 \y��!�mE%��@ !�oGѥl(JR"7G)M)h[47}XdblH�T3I$$I$Bb5N5PDUA4U#ETQUE4U5)NcȎ9kZ4JnjZW!Vak7ו:AޠIkӰmܒ4_$ٺ5Z.*Ф # (1TڽA >tw\$|35[Hdޥ|j vQ kZ`Z5F7Æ!9e-VDnӽ5T wa]s1ɳt]:]" 7H�U3I$I%8ӏ8AIDY5TIEM j5Ielj*;y`!PW1IK-AjdL5̈́$SH1@#S60 sޞaaoWYHe%j,H4[ 6bs+7h_D%s+!J,~e2n-AMmьZʾCue-ƌ^l^НYc4&mͯ MsZLkNRy-k.E;ӝ*kZXpH�V3)"(I$y4P@ԎEI$SIuSYTMd9E<-z6lbRMϳ^DKMkHF[B^7P{ukTGXehjV͵Z5kZ@ɶ#]Mj:wr<G<+k oetL𴭑iBk-mBR1kƠ`[vj9cJ匨w1,Ƕ=#̃EB Υ<,Uֵb DЃF| ؍cd$c y[ABvv@��H�U3I"R$I$*$Q@O9#A5SITiEXUEUE ΔXouO BR2񮠪*z;\�ZFr@P\Yګ[|ϕDnCkR) &-+�ڑb}ؘKaŀۥO y%j mعsvrrͭR4 =k_Nk# 8M!+R2p4Ԟ6kB\5<Aj{XJ0ץD p8YWm`l0B _8m4.k^@�H�U3I"J$I%*ꪪ MAQ%ITUeUWYUĠ`|X_bfZuX5i6åa]q򗑊C XZؘ}};LqO%֨ث,ֶ0i5o뼦N!ْѷ9~OIDE0#{׏M+W [a}mSbe^MnHc, 6V+a><eqR4)81zEe X.`$c8XB˶lֽ} z$~:O2 H�T3DI$I$��081DKM9DYCWY9OUU=eSIedC2f6:cqf ]vX+MV-U8oO2g#m^XqƇb6DDC+[nDkZkB2#XΝ[5փ\&jZN(\] d,NhMilP!j` ZkUikZֵk[E&`2Ą bնf%*&@0-S̛|!EGL5k+jjH�U3)"Q($,,D@IE3IDg^ў\Hb.4ͻ {�~OZNR˱oɰj6ؽxQtADW lr1s(ZԱJd1֑Yeck7͵{X0kqZZD^ !$*%JHPj9PD1hRnHֵWJCx־ 6 sWlZMm{NL.k^nm\F5��!�mQ%��`1�qg�q~`> pg�ag<еZ}IgL"j �xFAz8ωɽG#||+Wy8<(|| X|azhdw8b̶K0l8Y: O+x+K�s^Gq{1_U,��Dq-4i eW:�f֯cS.'bpUL�7g|O�'dMPD_*=e<:'‚@5`7\E_3,r? ^`#�u{ofwֹ-LtE.afQ9P ޼xXkG:GS D4xp !u8zZPQ`r0W�#~W@.j*l (�1\q(�p p-`��� l������#` �8_H(h�`A�hIPޞ:MMr d �a\O$�0 2_$�0l"�9\XQ@NC9A,0" 0M|i(+hQIA�hIPh"$AC@L>�ɣ ��=> �'` M;=Y�7 y�*4c` M9D`"$A}?f R>@�~ bh&t@/A$ wF v �j%�]t/A$ t0I&h0fT X@Rw�/A$4�a�A�piP Io9'fbAx"A@p>  4jSh�+` q?E0Ҁb H㈕�}1{"%ߎִLPd�?຀n w|*Ԁ4։&$^G΂X'T; gfxt@/ SP렀 &pϺI�Ȳ70\P˾�0&PJ))~9PUP !#b^C2�D�Ԅ�2^ 8!{N�>trA}K ,*id[j[([5 ;<wID42@ wW2Cn|ˆnL!#R̼<K\�590<W4:>RR) g+GY\ay1RV�ZFo߻N<*2@ES`s[e.* Byf/ 78n+$]F[Y% ]HmQH5d3%gsI}Hh�3o}(Ґ/9S@ŻaTpށ g?|@:]-$ j�iY~X͆g(Rtq�lV@ �|(U !{ɀ<@!~>Lj00`'LJ&dN /VɥWj@ :M4݂BP œ1x]!0I(js#|x x7'#O mo&~Z; $7k8b,du�07sq62C~4_>%Vȴa`Σ9B§b#~YCV&cbVQI2yfX`cSsltskê]i A7y� Y�&pqKKQ @avZT~24%dZ�v� R43~`[%]H'4 {+F_ŭ! B8]o!!ݟ2HK��!�o(_%��`;�QƠ9/JbSnzI2+�lƓne}q/_%3'Wo_J>$06`i!MI]]Dԩ.c 'WpK6<!!C8�7`n�Ȕ3zrRvmvHp]Q@ %CC~rrI[7�6H(}TIW`7{c+ŒH  +g�m *`1yPK,�Bs;.C>!P]N< wBS|c8ÏݻW7A%?3#eH �8Gպ$f$3`N�C , r~KB~BzX(Z_t]} wF8 nf1;}ݷ'ތeR� )|8= �\B(wuG: r^w�:!ܤw=n1lVXYMt!.֝MT2`,bo央f-e� )( !_z *ԼOxd@,s=9�X  bc}sZ%=#Q'4 J[ue,ĔV3 ;=K'%9 BVؐ0C^55\ y(MCd񆯽 B_c9]*Mfdv|`ۨ=p(gFOIݛ 1.C6ԧŲ9i=v«`ܒ(b C9߹@j�lR$Rs?-s�?&�jL dgYX�m3&w8ք B/#�Qa/c> Ye#ؾluR�t`J ߈s@}-IH̏֡<|b1s,R^�e("F1K @M-I5 |+I>V_O&boWd|LAnn!VC8jFup Oc\'ZD*MC:QYXϏ K|b~^fZtmA�f bцKqXh iۣmS1> g'Fdt_(Pe.KYWtǙƞ dlR۶d3-} ,@ d\#vϪ_?IZ(0YdnŜ߷ayDB)М��b {tr\ɠPaO™d; Xf|Zh @5B?$uoS>o%g6PL%B8ѹp=ЗdbIqD /(@`�9@Y(4 ͻaJP0 1[mbvؑ6n;לL+|"` \p;x >YpdJG=(ßcz1Pfg쉄.~pir]�ZQ͓ OÛTb:>mɿqXEǀt$]BatB<jRwάf뷓]? vp Pxvy[7o5wBvGlvdW@6o,}!ۆQ@9~cNcp FЏ,O9;r3C0psdsC nsOQ)!S¾0[LAK~+:+ltLԣ Gw7ᜲ1[|6&}ƭg1t JsӶnrqǬ݀5 ;(Ұ`(S$3>ր׃ --=g_ I RiXl$>w6~;a~`㍜jQyv8z%QÖ$y@*+cٮ4a>ra,c0h=T(GLNstq4aY.ZYݵRI��!�oSk%��`!�qHѡV@9¤cͳ?�` 0X^`o_X ?3  @/x@nn��ayRK~Rkh�tBGw -.T$bpvtm�PyaxA|כH, Hւh( E!P�% B|JyJ@, #2xԒ##W @# R_&G&G ������:~9,5nY>B4#xt ̱ud/XL uI2€='  kAP#2۽ ,/ ;F㐡A 5uF]>ԁH XlIvzMjH iqbRmxbR ©64é8r����_��:~9,5nY>B4#xt ̱ud/XL uI2€='  5CZ iax5% ;J[Bil*ړs5}"AI֗Xtgن䏀 @l0֗*`\o&iLj6%" *aJ\:,���W��"r+9;F>Yё)Ua`xܦ�JrGA�H(@`W�:_"0fP2 "y);|O(GA@?YxBqD+l~>垾mž1)Oa~?/sVt>'0uE"GCŀs�? 3�CX,," y�q8)L!g>�֢p4$ @X@pN0Ձpp0rYr <sTSc0cԳU<l 8. �@E" U�5fZ{zC-k'y089:'9~؏Yԯ 'adG99S�86o|X Dȁ{ PĮ 9׌~=GR9 y9kߨ:8)XH֡"R,E'5¦'a<@\`_^�7 `-@B,������2X����� #,lw(k�dZH%b י:ۧblP�8#&�3b%?f~NrH, u1ą{xRȄ -`$(X_ CCtGh|ԥsd�2�W+N E%(5$;<|mX i{$�i^dr`!||M` 1µy �$0)GYrB~�1}^c,or,Ǔ},� yb@! L[Gᘱ$rd 'O iOԐ9י(RufKJOGI ۿO$SF dWi#`FNS0v~t^EB<F h8�=qxSרSQ}x\Ī  Xi^bY<Y7-�l#Q< R,BIOuc x,C;N4T. י-%Tx� (xNDv^cʰ.3y'Gr6g( quǞtA0K-ǟ(ט@<XD;2t J)A$=d{q/^e,t8ASw^a wut:A6A|g,pWssp x+lr'8tǝS4nV2KC@. @��!�o~w%��`1�sQ�s q{$x_@4]~ֽ,^T�!_�^H?8�‰ k�# 4|=D8?x65Ag �W`S3E)fs dY jO4*4�odw<|EW@hkŀ_`�{ 'W&e_@Wۀ(y>5|�X #������"M�#h I+$qGHAHp" M �._$ wJs`ј`A�.`䧊2H c� ( 0Mp ذI}\  �1(zBO bh&� M;\rWRWӜt*A@$�cI@P~\@�@_lx�4@" 0M) 8]P *P(eb! s HrXw >>;�  �0 �6I �_n(ޥ�U=OG�za0$ m0!p B�'A$4�a@A�m �0ɀٽMibA0$o =,/(# �*_$ t�X$A4~Ll;H�",lT   >o0r]A'\ G ᚦ[kIe ңPhn[CIѥG,KSZ9OeX!V%c!ꝺ'!_> C% �<CMN02̼t�P` uɥj(0n0 1 h80l`a[ 3#6q4|"ܼ35 7y�@ @0&bM!ߌb JNW7@P�IoqDQJ?.AިƒsN!mv$/}rAP(C%ofBF gQgY~1Znmi`;ʾ}aTtk`n*\w>::z++C][v8z -,3{hi3Xyh}CJlK Ls*:OnC)%x 4&�>�`14s B7 { 8i 0�|AL@-r8 m( �,ѝl<PZPSwՠ;O ! ^b9}?@LCCA. lH@edG�5in*;@0!bbe#;΂bcKw(WA[|u%#˶AWcVUN U٣NXo&< z={=#/iUL>T %%\"Vgt ߮!RstՌ~| kY�5�3dzVch'�ōώ<|=�F+XU@[^+ 7Î! KBC S+  }N:bGN83f� Tn~yy?nӃԐ2���!~Dn?1f<'^44Z[ 7�nxhVPIh Q֞Pyl'r[^$Ө?咱ۉ�'|WS*!t�5` G($r}$i!|;.sW*2�jR7nA:3t ]ofpyr>R31;dǘo!ṾN! p2Q]msP Jo9d(59?S(}?TKxu/2�bB/w0R=,1(�rcR���!�o%��@ !�qKwvTNV} VkZkjH�U3E$$I%*<@EOMY%RQVQE0^`DNEYSr+C"Z7t[Q ݶZPC$Gjh kHzZ$Xk'[R5 )BH9OnpUAsX'#Yk Q=WІ$ohѸJ4K{BXDekmi3 %*K@2Ad."?^Xjug-V%[r$8wv6fT֩Cr{)S4|-ɶTjkV5YӅ k`5vz�H�U3IRHI$ꪡ4ӎ<Q9I%MUQeXUjsL˰T|q̳Z*iQ.9=|0HqfeJ]!P3\])%iX5ɨٵiF#R ZT!D!21R浍dڐ`W4-1њKX!uƅWO1.&JrjRJv?E\ Қq0F)B!6H4r kH4GQ<!_blAk��H�U3I$$I$ڪa8DA#IM5SYEYe_R[ @'.VX mk6|'Ia 5k*5Jk(^c7^mcZ9,ԅ-Z`g"$Hl-2F HԱe6:Y$ _o[:XEkEq;RR,g�%kUuI0jZ6sֹ$NI`IN;FD! ֒DٷVߧ]bdU)jogirkZАkS79AťƖĔKU ck\��H�U3IDI$*뫢$N=YM5QV]EUX]s)@ƪm@5?HHQ $z'Ŷok>6>~ @p!EZ羍Qm"5 Zƥ$]Kp6@тu)M\ aZ2M>v ˠ湺R p[ZL607PRY('TidhTFx=v> {@-4jUti=ޒRR0بh͋X'r ]�H�U3E"$I$*01=3A$RI5MdY5aEKܧ}kX]j5 4%}5j\VVvnA@T+ ּY{,fQ!V kZ-! s1R|k5MkU)|q\)Cso�*rp`bI,/c˹JqmWz[nVB $`)"d^=z\Fui&R/[[Kqj<ױkFҾjZ津v6QU~{xޒ1cƤ!H�T3I$%I$4Ӑ8MQI4aDU$Q(;_J}$K PzjXoޟkS uTm8b¦@kʹQuVuͨn*ۣ[ sZ“ WN?Np>uY")BEnq]#jVUn194)Q:XJ2[ev]TVL7.t&C)2$ ק4UV$ cH’y}L.=mߴsE1"RTΓ0;ZQX0Ru±Oa M_6H�T3I4I(I%ꮮ0O=MQ%aTQEU8y "^=AJWvSj+[2骔-Y^*9[OJk]RJ;ӺI+伫 b8cXUᵷ\nMX-OZKY\Ѩ#YOzNX@V׿SjֶԺ ӆPlFZjnW.I$JRAM9lȤ+ϛB.0 ZyE.J̮J վkA-4h`.҄9eJ��!�oԑ%��`!�s"' lCA$UҒ<*. POb}Hhtoz>HO̰�5pJJO)'r=%!;9i nÜAsQ�0p rⰀv#ieu\ ؜LGrؐ#8 }a17J�'IN=8SIn-%�LBha CѨ$|^=:wѮe!R%%" "Q=!U T7! I҂bMC(A/�t n�1^W%y|c}2!J�I�t8P9$>l}% }Po,�(kc=M�; my@ @@4_҆n  ,p$#/#i5! a3eZGD,dJ$Փ4+� *Q׀tOpae5]t}>&G V`}ؿEA/.s�~�XTK%QJ} !wohI Mq-$q[ ާ?W- !A@ hjչ@ɀ3�L3mqL9G^'}8b=^V 2vn:؟72H`�CPY}ӷwe%y] <1$ozRd 6p)$h_9\  ~C ~[6ĝ0 `�%!Vөvv2ޏ0N_0~NpPp| rDk]e|�01CI@Dg�)=z@GYD45H EJ| (m:%<2R1� 3kb%ޏ�&'~T'd{t�  [  A�ag P&́ V4 P&�|L�S 0�vn @9); & 2&uh |�hOh<A$ 1ecl.4 *h�Hdt�| ^& � A'M]#BbO):7r`ddg ���%0%9IB;; .f:@B�Y5q%d4u ]clK �Nq}"^�TL�P@H�QJ$4\ 0 @5`&^ �<!("} <1D;f@ 2!LJ@C�1Jq0#0gv]X e qg@M$jp�����2["~$c}PQ`�����y/>8O0.Pp`re8¸$O=5< DY:}Q? O'OD.a 纰 99}="v:TyYgK U<,l,iU?fYÜ:QَK q8:>Ox"_"S͈O)>cS}`D] Ghi!p}?#O˃p!da{z�i9D5�g. 36F8 4; #� >jyO>1��xC'8G; 0 [h0p %T�(cąrDi>"q@p3bfæX�����)Ht=808%w6졛I�>c+'5Ѹpp ؁jO�L4:}1O?|o 71x{*m]vRTVʗke&€��!�o%��`!�shwrYH "a~NX4�z"IE^FirO�>qo*2csZo%q|mh1_N>x+: mA assuWU:PLb|["�r*ceWGX x a;l\jHA:(�H O S b%LkwTx %ڦ�\\�Z3SLb؜:�ހ9l\ԟuO*8ulڰs(�`p6.��t<p|�}IPQG�tapc�@Y@BǽFiQ(Knd;@���_��*X����� >fӸ\H>aҸcםϼfy7l[vꖷTr8 = a@N{ZվCV6 PgA>0E0O#<i{klz`mȒG1"י/p:usȝ[hCS{8ya^`Fa'3+A$i9NXĐ+̴̒3+%埾 _ǵh*Wxi� �XWHt7Ց2C%%K'&vI ='0ߞ2\"!տ39�ip~[퇀` 8cV Q㠏gZYcFaaCk !H?%!̇N>ou$%BrwA!3!=!hK'!wL%3a5Yc|9YҞ�21)BhJ0쁽5F uK?-�;C1 // %p1+A`9 aiCq޷yǜ1*kܐ5E\]x?.#֯}˯s^<=xcJ4cp7=\6@q=uAKE4hQ8Ry/ODaJ" 09[^/ʡUyN _*5\x\}}#@| 9>qDr (�נk'�Ҏsd"^ci(\\pYvS˯ 1>'ׅh0W#*'VyX16(|9XqQV 88A,:Gu |byLyǏj ٦#�u^d{DOY^XTUX_C :B�6<P,Q �:;Ū>a  :���W��*Iz+y/w/.<\BJ?k黝.띨U~ԭڕ]7[jB_y ȋ T™S5@.92z�=6eAl"\7kLh˚Ç R.@0 *j@\.tyUBh.n}Z.Xq #к@7ȑWP}~?~&><.$&M_z%gVuk�jCP}A'@?GUR;'W%ڢ\|ZQ:' a!|Uڅw g9|$}\�<g^Kj?NE"ƬpqjO"D&)(,\u|zlGWufLo3sPǀr S�> Ƿ8 8VVSZ` &�MMCl`�����"��� ������ ~Nt;�@0 OM썐o|@tGf�f �& ؠ_LS*el'E?Ir֖ I8`�0FH CKN )׆iK(͈60j3tNVo< ěE)ZO��!�q*%��`8uE@ ^f@@�!Ntv '[,�0� F G(c* ܀N�$5. dĔPf)=Kn$7złx xd @1Y "yHP A4� �vL,L@ XbWqp j$ `8 ,Jȳ�0w ϥ/`@pp* !h<C A4L&\� ۮ?@`I�a{`&aA{`&ߢqp�NG�E3Τ @+ؠ12�Z̀@T](H\Li)PP݃P8'0@�АM]C A0P(X�hc�wBW@: @5n (4@4 M-;~�h�;pL@I6Jn43@�J���웈LC� E9cJ1/tOX` e�1@1 lR3b`0JKQ| R�� xi1=L dLH TrK ђX �3>1{`104@1&�ITId0 `.iEb!o| (� (J&�FC3?�` b43�%L5G?emרxi�!�hW^7'# ;d88h d� &@Cva xu�H&R4iD~L(3wR{Ki�%0 HAP’COB&XrCRmBM ( !OJJR7_ėdo6D�'� r4Ѯ^J9 ��@�T 0ɀ`0 ЂHO5ͽ2*P!r #c7qgHP I&/_`Ƴrpk EJ�2K) @Z~Yoqig`(p �ct+} Ud4{^ �@@v�ˆ � QedG^Z$ޅox%1U`$!2!^XO,AZNء/3.@dВt}Ԁ'ޞ++Mm̀  �8AE�; I( Ho k8j8jK{'u1x ^�.C�<-,(!F3@H [ �M+#rX  p bY`R佷+c{A@�Ri0X �K)dC({>ݽ?[�Mi&`č0Z0ߒ:>?'}z  bSn�Ct:уI� (@Ā�= d<P^qi ĠJ74zznɪNUnOɓrڢ�>၎M&$0;jy)3� 0 �5I(&آ֔~f-n4L+Np·�9Iezφl (�f) �4J8b 퉤I?v mmtYya $v@7[�f@0A3pbH^`2xqe@ᎀin-"04�HI3ѓɡbw^u:�:tB:8Z800w}Ch@� @&T0, - BX `) @İ�=B?PB&�/d2Ԝ:�P`LP_JPz~:q#T�0 @t��!�qU%��@ !�qv+$"69ж.J�H�U3E$R%I$R84QAQ$U$UUYE],v+6uPV5s Q}d95_<xg<l7-a/_vM@@Dth0REqkmT*xVUl:fjE,lNj#Sp-Ymf AJ&'K̹hʦu\\ۧkF^jÖ=MR:%+9ttC`Bsi &tLz6 `]sU+_VʗZ6H�U3I$J$I%H8=I$M4UdUeQe)9 'f%eh9E)a 'j*Z6*e CL՝RÆR ёk6J}JM%&tj3TRi:Zb1[ESK-=R[فZ_ 3`orkU2+9͡ +JhICn\\f;}U|cXCu~ae˛ $701+k<LiwhQkTLkR>荅p@H�E3I$I$*T%BbH9 <MTATEdT]YMEY5]d]EWQYwleYBm;6�Q+f|yfr#[hKY"cDn"&Kl!AK+}e@Nm&dJmyt%9PG4$QAU5dD)caf˚<9vs#[U0oꤊuHKM Q+(!ÛkZ5kZoq_WkZ֐kHeդՅuB c\ Ì7 QĜIѺH�F3E$$I$G ,ӌ8<AMQA8QєI#D6ksTٝea|v)Qֵ1Ƞ]!A*iv|˨nŠҕkJiH JZѤJ!#job*Rܿ!c녉�HD&Ķ|c*I:2L΄.52KP+ CjOsSF8l,AUIH(G֮-fO 1 Bp9JֵNegfB۶ =ikk �H�T3h$I$:4LA4 =9DPMQ4QD\jޭQuv-0{LB܂#9U();Rھ2,%1],LSU0<M\-YmZ1n{ᦱe:xʵܿZ11í;)r"n`Yћړ*B+؅Xcs5mq+Hˊ*FmtX yibΊU ƽbY3M"vv.jе.Clʘ$ZY$15J7dYY" K F@H�E3i$$I$z sM9<ARM4QTQU U)U8p-Vk[V' ZLK5MfZL3,rђkXkmb9**%cB}W] 5jaq|"Bn+|UhgJcm84FL-OcL'kY#>hTԕSZ5+dSroֶ #^%l 'TKΫO sHF sKsAuIꨘZ΅V1LyfJHw1kTR':UcgumTI% A*9H�E3mJ$(H8Q9$RA$MTU5QET&ƶv$K ].>NJN"MZP(51/Ml/u2VG:HBuWzE$mpTԓy Qn@jnJ3ϭC];!k5T5Bc58NM,cs UoX+H-[l &aY/ <ƙVQ;f`Vʐլ4Z[5׭6��!�qÀ%��`p( ,0|Q|i^Ai?!ԆM K+?<{Ǐ<o|� `M�paH;-)%n@ u`''k$ |Q0hF,HP*Qa (5%ɨHjCPGJ0Js*-!_ɽ7 KhC2,X$24◄稻��R ~!#q�vr HaT4Xi4ZyJ{� qD 9@vM@#f@47vV &�ZC&3c$4&�(� `�vX S 0Pgb.,WAˋRX Ahp!4}E<XHpL5�P @BPM&r0o %\�@�x_B>Mߥ#1[ryv~d@��H�J�^�'�RBJKHCh`҉0 :z�@D `�,Tn� 4Y< }.x D:A�/?(4 @ �4n�>;LQ_`g,TjduY1MAkRBx��hX I³- QsA�� @t� G$F$ה?6X P:�9A(oOIep�� �`;ԧ_oז�H! }`rx;9LB�>&lm_X*p` @`P@2,1vG86 /(BaiJ?$?0AZ@ di\x YszsZ|xUEPt7/m0,E`0!QE߰p! *�^~ܔL!~咓6_դ[m\~$ R.ϲs�1$i33<8f?g 0 !H-ճ6t3 נ ~>[@�x��#`!�ІL7�C -? ��0�jM &�% 4i 01 М/}�13l6šȗ+dcim[z�i^8vPY͌I %4nW0"R8uހʠhQ켄K j3ܟ 5E5)ϐJ2B*СRg  TU~~ uj=:2wF C\$c0k1�0��@V! :tt|Y t?2BI5yzL'`PkRIHH`V}[1Lm+��%R%-VR; ;%o\'(�&%6Vl@ B6?Қ`TB(BKً+H�3ZkOk��,O(⒝lN>�hRCi}i&>1n+3j0A&C9@UcC cW @p0��c--:@elt:@NMžpWq/fQ󐀠 @bYF5&V_mߺ1|�`o+E%!?agsP̞c2D‰d7@�f�.�ghj0 n/�Dp+@@, �f� `<�(  t Ym] K  :hha0qhBٚؠēCK&bUi gF%z'c?ǝ{xp44)6@f&6%Ye;ݢzYqB̹̬ !Q��!�qр%��`P菞}\7IYIXmZ5J7|mi� 0 MN)g_|l@  @@Bh Hxh)^qpz@P�t=$f0JzNǸe  ��K �u'J O;Tv�1BB/> P.1h@í 0&!QX cR@vo9=Cb;B1��D{VmzɤK~.j9'zK !O `Klt�4�Ȳ@,))JV3SseX*+ h� 1 R_c~μD@:eۆjR@�,�imHaZ#a!Bُf(R05!0gKNl<s]KaVyC K(Wu�BtXi59*auۖYgՆ$8ta$\`T4 K%oҔk頁`�LPi0ۍ҆WY b @�|P?̎4j_>V}zRzǯecvm g~ISk g&%% f*P׾b z4, ( j �S'%ٺ!$% |RP�`�Y  GO&RYd`E~Zz `�{ԓTdl^vBɁ|?.X}} {% ,!3i,o'dbux-`A7ʷ&:L &i@ 1H`8h�nж& 0^4awl�� @tp dXoZ !|$�0� �`�� hk=�@ԍy@�>&LQagFoc6;sT�f_08` &LF_0E��CF`#dv<pY2s!_!uEx;!p aCb73fU("8 9شq `5�R1%d t(bL&Bͷ9Kk`( �5J7吋@`S980yp��tRK+ nZ!�hB&M �K+mX0(Q aaۥw]2`HA`Q$,�󀐰su47% _0`Hl 8F+ � rEjB�x*B GJRl,`1�fC %�8f Jre9HW7 ]pa0B&`2nuC `,^(Hi}%�boIv8/hB`+Î5pOg;1vhk!^P�' @ D ! C`R3dC+:ļ/i 5Gph�abRZ�-1lf&KVݻ{Ȁ R\[w(rsoK�pIp8$ `e@H`'X `$3G%'вa >�A %@B@Qxrnf�T ,�JaKH.10T}1~�@ D e\RPK @j BH�n&�X �vCI1n(!&I1,Y2RX33pƌeL& J+{H~XfFuް~(RC�vL&&Nd`=(n�`P`b)%Ib�XJ?tgE G[Ȅ Ƒ5`PX dԞf,WPؔ كТ3\4ǣgLA/ XsD{rJ��!�q݀%��`1�u#�sݩ8]E,��1 WBz6-ЮP&@m!lџ5u@���jY1`6 OspP>qG)/>0 1)(vCZ@P(Q $ =ͳ�?`& !!8%`K~6CɁ9_>N'|.רW_S} Iɠ*Lx �@"�=`&0�T"OE�z ?$MX "~�;`&_., �EDX $4"8� "~�;`&_-�0 hk0n'  `E�v ?$M_H�0 hk~A' �P�@��@܁)Ii-?u (qڢp $pHωr}f�`$j e/0K>^綸c0}h@7DRF\ZD ï#_s)0�ɿs�7Ǜ�`_p�4?QѶ F8=$#gJX6|b_G>}}{i0�g퉽 I`Xpin~y@������ >P e瑹i SU>er,8SQ~?#)s%-9`| xlyNjӐ�<0 $$,qSp|� 7aIhQ¢h J&P? ` PL(?'/8FNŇToܣUs=#}S.<FC<9/uҏ w9/ c'2ÅdTc1�-BA z)p~#X�ڛj�SADݲ00I1bdRL@TP&)5e%9@ GehBhN�7$B pܖWI+#c4]](X&Pbab&#, Yq�2#dĔ3% ` ,Y>=7-K(RF(Y\n 40 o�bV% K=7̒YF8Y H̎$8ƂW5��j K�U!/B͂ Q y%Ϝ j!8I@qY( Zr@q AQP&q@xr ,85J% ]BGg7HKuUF'::[S:NjVWN;j}U/Up]B!r-T=DOU#�}S%) 0:ېY3UI8G�`: ,tEX0׊p#AP3c8n0Pq>fP:Ń?)cG`!RUBG8�Ў H(GĊUDp����_��2X������ G�82`H�h W�{�|">aK7dîev 5̰wX G@ 4qukuuՁMyg Ы0$O}u%PY�yf`5}`0ď ~ξo_@_A7W*mSx0P|G*J Qhѵګj+�+7Unm~|+J"e{RQ>טE8=p :0�x8"`>Àܺ ^`XP0‡�xY> FaB-�5 .mU*]MD<V ^'lu^8Tg<_4"W�h�o_`7|V)uzI/ ŕP *u}>]7����� ?&I,7�#�hA$4�at`1=uTw9A��!�s%��@ !�s聸1,GflH�V3)$J$I%jꪪ93A$M5UEYeTYeTM"꫋^TJ)ٛiqfm<9s-i+c_J)= [IiָM z6!YkB7B4AZc[ccQ&铐fLu-͆6Vc:.~s!]w) V)z4)TՖ jJVBB=niJ4uElRFmU MlBFmZœIh G+xܹcX2ɴX)FVR,kHZ.|�H�V3HQ(I$檊<MM%QTYeYu]ut׏xLDꅈ)3XRd@`8m\[uuMɫл[mQ5l )jT&FaFA|+׹'}7e LI`N p_!ʽf +VԪR:J+I! ضe4nb 2lnT x%CR Z2 R V/Sjg6\ uBQ3XdVU ^ UT6124LadҐT.s��H�U3)I$IDZ<E%QETUUeEYET]VbRY% '7YEsTd,$fUScH1[^mƍd.@3c=YkE%"0ktۯTAf\v$2ƭְirR \5K�K[hm nf[i%zi-lLUj,)NNH.e^5|VmkUWf0f9湔ARµu!4iul6 :AʕhLH�E3I$I(ꊪ HIQ%UIUQUYUMTtc!$Q :1IJD<|[U!MZKe  38m*u[pƿ?p+ZKݰlµDkbt�;ZG4 /o\/9mmKsN+mE ,6i^E3E{\[V)b^?s}% N#\1"8Ihv*}ԅJk%ib[X-~ZK6hFH�U3hR$I$HUITUQuYeYv]UQѰ[sZXBJwmEJEI-Rb [[b5j#*mjo;]l2ZuqL.Wm5StQs#W_76+lKf$CK2GW mK0&%jtJ>Ck) Jck֥! ӈI^p:IH R5M־SƢt#R#B nMm'%ulĉvkiH[NJ !O5K�H�T3I$(I)EQUUVYVava``h;&ͭΐL6ె{%4n-(5lG#!MZLrV0+ ,LG׏aziu@͛ H4yflbl˔ӬޜIÇȰkPlQ҉\ jU5)cEz+ADܑó(%6˵c{ۨP(wI@iL=k^ҘzK Os n XH�T3I"QHI%K14Qe]eYu]a]d*[mt4쩜;VJ̛; Y|*Nc ږWz\(W,VB)- gF2%(4V HsZm0m/i[t*PUlZ5j\!#^.[9 nk%Z֟Q94T$VWni-8}B$Lkpt&!kIxLeK%n"C.1p֢ Γvl~61.��!�s,%��` w8 �aG� M�M,&<)b&ݰ*r( $ 4~"d!兠G`r$ h$/� xH@KсPj*V`r( $ 4~<!cCB/.;`  �0 �4_H(h�kCA8&�DMExG8 k�0I �Dt/A$ w&+peLVrQ1 r[ 9ÂEH$A4 �~ bh&$1uc �"H& + �&_r$ qX$4bT\HA7d>@X$4 �}r&B1sp+�p$L� .`�}r&q/`C;�\8 0$o\`?0�E,A`@A�@łH9 @�ظp"`IGK,]qa &זMWPEY4]pi4\oFœg &,oWMekK }hh,.MJhJQHnXYq>I6zHuXRKVXHɽ|6<.~Mg!%=\6 {p�T�`]Q +wG$pߛ( 8?~_mGP '0b4e%$l�/, ~#|@FlY+m`d%d80Brˮ,]`Yu1r԰^XlԐԆ$6!%Wˣ֤6$dJG$m &$I*]tRC\82]TVڒP `f� դI�|B1Ť%FZxv�H0cDvY݇޴� � `ћ=^• bɠW'44gbMsNG�1% / HB7Oqٹd; Hj2?IE /~vߨ} j{mb dҷ@ B&A %� lܕ1X[s%GP^hz Myi/{Pl,Gie]XkKz@*_&є]Ҕ?TKl€t� Hi =)(ج߾(f�>AdmG� !$`iI) I;uڒy�a 17 'T *`B�h(_GRxHΦvF֒ Hh�!4 C( +)KJP9/(au/4 ќܕ|yn֡3Gaa&l "�Є��^RMЂbt1Z `U PZ�0 v@h܄ .UE2Y}rHbPG?v@�0/& %M,AHg}:�q�((I K` iw8^p� b� t h �t_ !3f +ZԪ@ L� P� :HDľW=8MG&p,23K(VZS' do0~ KG L�LL@b1} @�N``)1 π-/)RX]`�^�P &8"A;䴀>�& 0)" K)iG9Y5�d 0Ndqx c7s,6HwKs3le4g'r  v3�u챣È׮b[K}ߖmn%7Io�<YdΖmUOT(>4 YE*��!�sX%��`!�u;gk#d1<HE '! �S(L?>#$)]jwe!f8d39o͞e_hͱu<2J))ftl;ݕɨͻlm�(Cp/$ nB6K:ᅥ=Z G\9]j�S@ODi@idҲewWu7Pt�Z}0$3c hdOB7)įOݕm�-� Jz>ַ�Z[!Ҽ ` g;C*b# ǬY:M�v`*�%d,Q?�P@(C ‰?� e|M-.W~uY@J%ӶZݎBFDF?T~P@vM+2^9-J߾m@&�0)�@0Bܝt ms�Բ';=O�҂hhaD}H%)v(!xeOg1Z5¨pu@5RBA0 #�)HΝgÖׂRſ?gBi;�A� h,@%mmg/t,jĚ3YK �HZ~_du9WɸHadD_ rcx$'"d #᜼4b~=%Ls'PIf&%ҜbnoքTքIBZ"b/ Ԝt}{X 203Hč@;\PW+7 tV-&_)դ͠P9e ld랐 a,#vް;&#܈I>?8Q0zR6fSfp�`2_>ޏ΁/xGkX(om PHgF-ڏJ(-,+~F &��&~PԔ;Xɀhp&'bAAhF;5Nn<MBwGLeaA+}Y*WDW*g4~o%5rJ{0\'A?d l米r}qcA7g[v�~|p$j |^XgɠfY~a(cG{bCqH#`vati5%.+lO01`&# Ġ ; ХY$'mGz B$fE y9UtQG)s(R".}&A/E3\@:(-3\ChJ@ILfG#6R"KH>.}" �����:Z0.GJa'7pbt9h,j%/#<LqG3vOX© R '~S幀j_dd d,���_��2Z0O#g<1'a$0Qy\3PXa43^cYTJ<_8GYPy4ގHX(\}=& x'3 aH4a>8Oa1d-P|VNN N2���W��Jj\Rv}r.e۽O�XPT ? �ttܦ<5Ypsb\8Hy�}`mVՠipc^*)Q50A p �X c,S8Qj' ;x q >S BI;p$YșaQ,@4p<B~yј=_/Ӏfx,>-`p\q8H'D~`�I*$}�jOc8d �p6@3S�8<v0󬁃�TA(1?,Q;;24JXUY<x6Q7d>XQ:PSU2PTtr֮��!�s%��`!�u,ptt$ 0F� .{FդQDbް6< ,ӌ6< LU0;`�XzN>ajIIЎ�����2X����� %N< 2p`[y ǀ :퀌]8�m+ 1`5jv&/^y|2 W5(mP1��%@.Gj) h.N^8_'EWm ? בªF*SחDP#@0. e('�pG';zO.N�ޫ`|Jqb#iA㹃YTz0-0^y8'!}Kf=-a1˪J5U^�yF'�|$f^\k8Z< ˯K0 ψX@�W'yq_B�lqB G[ "qk/9dyU�<|�m\ÕH4ZOWb 009G$0t/9>qg=dz-x4-yFA0{pTG�Jǀ#hH\L =Օ~ۈo㜌ju+Vs߿4b.1^?pB[3q>,iÖLj:pab"'^c8p�QGf OPoa#L;-t.? �y_@.q�>,g^ -d}1`!/B`!b^`l �Ώ2 Q ((UyXIx<?�6384G>48n8zc(v|8x[vP Ub<#������p{WNܪꧺ v0@^ Ȼyu{uàk856':>'@~Osꃨx #^Ff 0@g"Tx  p *f .Dz@T_ 0:pd_p�`40(�o8}@?'9Ő\ 'p^-[<`t\: ��s`(,`9UftJ̇_C qY:S̽ y&wZp%͟؜*Gd=]rr :$ML^2 -JGUT+"hؗv9lD opcbw@8=k'G J^F<pUQ5)p+9VH dG!�8஠$b,mdxd[_S~䑟pI<"ՐF8+`,+8�����2\J׾^ޔ5?Tvۈa> LZ=`�����"\J׾^ޔ5~ (o`O_:pU|mgIN#\buyQ8^,N]_uc#DV>.1|W�wo�25@pR i ue~̺Z=`�����nT]nU#]jI]j$SV\{q%ԫ4.y"2>E@1?Kb)5'IwR/s\vUBB>#�sS CV'(bLJ8VpA\X@}L` 3^OQB3b&Ø{uс_7~��!�s%��@ !�u_Cq )z�H�U3i$I$I$ DMIEMUTQU]f],ԣQsnRZoZ)nT"\ ԩ)JqZͧK*̐KZ}#6/qp#EcTf*]1j]4h<`_ ܍ZERuKMH1s:#`M(X`pƠ#/k-ZЄdL^#sc%)cV0l6},w~AF5cn Y-rgVH�U3I$$$n ACUTQEQ5TYUYuU=l-f͍c`?!] >7Xf!kNG:ӵX>k "S6K#E"sb$;$EtX>KJG h!mCtk2Wv-T&~lu6#4!d W^XY8Cy)LZcEMtwIegFb=dVWU)zЄ&VcƵPr8J ֶkMũF7j/V}Y+d-{"}8l2wfεH�T3hQHI$LI$QTMUUY5]fiu]g' a^k{~k R!x:r(Ȧdk%2&}–K.{5{]baX Q!`9*W:5ֳ̰նRSB4mۭLB Y?b, ΃ͫ}v\3U ܵlݥ=?i"; a%͕J>ִickMo7bvmvsZӦX\R8776áTkZ�H�D3i$R$$髪I4Iu]EYuYuZeve308LaVNA=9*΂ڈqkk#HC "T n+eIF-mQkZ6kƬؙv=F(Uʠ^򪜥+8hK%7dSA)UʖV@'YB: sz<31auz'|ŏ`Lii7!a^ҵ#X$ݿ>mhc`=̝5,U'ȰpnԍkXAl֢+[rS[us�H�U3e"ID$ڤ<UuYuau]YqmX.0-hpf,)ȣn TsgvάiFPfSH5 Jƕϥ<Tm]&iE[ 6' pl%Yj2d-*HF<j 3ԓ98th\m#\ RCVQ5Mhh#P$Eo`Q01JM)EZWF VruF*Z9gf5@Zָw��H�T3I$$QeavXeveie֝uiI򨸝VQM%Y h=;1(!J/'㜵 D=nZ5$CdU%n. Rw6sP=#H"YK8�-bZbV2sIb-)5Q N"%ɗ42*v (5JeVMcAr̓U @6? 5jfw UܵQ2:+*{@z 5Y3Z jn69Q,:H�E3h$I$YvXmiquuI淬WS;PVs4A*Fǯa$у !3u$kn' EmAZN*3EP&:1Mpzmn>J�(Zmޕlֻ"HZֆgh~{P-P&1څ[vFZ *nlY5kHKA\@Tֺ\Kµ^ RXmjd-r?LHJ[anM$0؏_ik nc��!�s)%��`!�wWZs˨@=M" $@,tj&(~Rc#J(YP0\]`u9?dB5FǞ>L/-fcol2Ƿ珜|8u8q�xv�Ùa?C@ $ۏy:g,so_ 1x =G(9c௏#�ϳ|AyFA*\uq5�⅐ !UA@ c A�*�>#�ʠP9 ک@'vQSqÇN էl@.}Z}X1�׃ pUDs"$9p A0XAnDp:8 eO;UPoãH1` AL6":%jAoWb{Q\4>>2ԾqÝ݀` <Փ�%+; w'VF� ,���_��*X����� % y� U,�oa`W]v_ps�`L 1`50/^b=x `2ˠbxG,�ey+58Gj^"7.\>޼F0 @ׁc붯1bXy0]�mNxꍥ Ba|0d y: F`3U f|Q[^*1/" yqO �ra"L'?0<RViNpe,tx" fq p` qunYXt 0X"'[Q;q3"#y8(3Ĭ?Lh&Yq'F+("ט , $s Pq' ݏ|<=^Q;1”<H9scÕcgFу^g> qAane » w U!W)k=xP `hr'qL0fWU%@-K1c'G,j3m4 ZDn8ee,jD T`ye1B툧e�T3+On+y>W�y O(.o73}ξ]%��� ������ �B�x$@4AU �00\CxE0$o"`:ah�T\n�,@@)�$ ,6ځ HA7`H^ _$�<$4�az2ɵ> HA78@.;@  �0 �4_H(h�kC�$L� 0  �0_H)4�aA�\)Rh�1Fu&@c`$j!oߜ�~ M �(_H14@pj@HA78aX}0A�LH1 @9@ ܰI!h A8&�DM…ρ " 0M _r$ wи78 0$ `b�" 0M � _b$ w�+r"`IڂA�" 0M _r$ wр� HA7߅,6,6빞԰f,^CDhM,6ppimWMY6KdnsV$6i`VM|*,XY ]y`V$32< ĀC+ᷗQsr 1 1�V. � �VR�3��!�u5%��`A A`PC7rW!#1UڔOh &@�: N`PMQI-P�ЛV1t}3m~HBVu7 Y/t�Я6 JQzplCIi6%XrCI9Ilᶁ:`i64�bM!֖C,ZY@bMK!; 1XH%m,uŀ]4"@cN! $w 1X@ @:@#~ePNօ]`PI�N��gbhn?a[N)<(�4 R4B(d1# #emz@J��\M�r�44CPġ;rӓ! 0&M88PbPB;!5+a^K/gw0!;x@:�J� � h  I 1*s$cH(�B,i0Qd %ݝh` �40TC@(pB[_1�"�(&`� K ���1&7,)}_Ʌ}M8#c<A56ivrj=7u@¦M-!QD 2Qwi44]4VM{Hk�iZpY6!F_@�0�( ��^Y0245)I[ 0%P%!(Nm r̂73b-C1dadְ hL�4 Z:�vrI@k䕂POe?/<�^�o 8iA:&RS⒯h@g쑎-㯮ECr � .�f`'&�pĠ7#V9&:�5�`�5 �Ї,6gm&�auj@I9*qw`hŁQw� @����*71�:(~43�)n7  ``1�԰CJ0 �C'|̣g)4j3Z=wI))Gc� �@ @B/Ad#P¿BRP`bRQbPa5�*(��$4�@{BNql @á@4�К.~@vVl03O+�l@�P�0,�: $iI|@8Y%'x�H`TftZqE# R~K 吷%#[ ㄽ�@  & 1A|�t��j^|Y5�Ѐ"�2� bha3 8!wqԦ�& I&iaJ@K:�$%ƆZ::wO0E�x̄'ŏqfX^pts3#+p!w XgoqgjM�8!  %vX&`׀ I�b X l>A4۸ѷvPWU 8!fg9B(ÛBf QG�\\ FZë R;f^9 ' d2SJ@5/8�*0ߟUL�PWHOGvIJW[a,`눐)rr2%3~lO[-m܎ <YA7Z߯ҶO$# v bM; ,Y߳!'cԓ@�`jSƠ})?bj�ĚC %?tZϒqrǝx�5��TbHG̔W71*"`SP @_JS}#PSn~rr_J} :CAHC:v*bRv)cڹHq)��!�u/A%��`!�wT哯M�h�-3Ϳev�`q0�WQQ ~ՠ&�ᡟ�`*PN嗊_4jQƮ�4 �d3`“cY!$[~BЌb �*AX5 ! KWm�� p* %AIBPM%%;U� C � }̮O&!I0 > oYyH䝃Y{,CJU9% %7+uF6 !,(Q3 %%Jr{[w�0̀N3 J{P @�hhIE$= X(#g[hLJP} g(%S!ޥ@ `(Zz3չ3�Hx "##,9_Qg;@*:&J J1I @R~?�k {`v}XSޤҝl-sz+P)ЖsR ;}7:j D}�>�^�PQ|ow=ᏎXbCڴԽ mcL1 :M9~�0S3md `@Ya?l=C2P a@s'[ʩ~x J}S2dp�4�Ĵ#6hCs@I`: Oмwe+P4J}o^AaRHS\mqEdt@4��KIa9d/Jvb!�fq �X03-Fq#Yd{NRw;2cR?՜5|^rfXnO{`ɃE\V7@�!HfH`?5y1Cˆ0cWp9< w!q@aj\aGT#P Wbg`4mjJ,aBo` AHAF!kcO[vI(f8Yeքbh9lw^=IEY ٮBl9}^G7+IJU)s(.}"*n.}&*NPfԁvm!_L/ s.;_Kr0T>&ХϤE)s} \D@������"=<kX]^tWWT'0_�<ux <@Nhn�:�D{}�@�G^AK]{�}gmKw|,;*y+#F�ԉQpo",P;5yj:aR$p�%@A uh�|hW>W <x!!y;t0Y+a]>﷗e����_��jR]m ^uO7w^[uz pl�XbWV}>ڼ P֠#p8O^M<5kJ�Woo^`�F78v�9><P"ׁ?1]\. @ .jD_<14hTc9k\pØqȜ=Í:Й|0�t07M �ƐOgcDU9/ P ‡`f#ט@p( Ys88h# ',S,-sǽ< Y9dYb -ulNGr#l([J:Ãq@ C̉퟾NcP!NX㳎8\Ygj4xc\p:1C05;j_ûdT��\Y0HƲ &@`ٯϽ[UΗ��!�uZO%��@ !�w7�H�U3hDI(aq[qǛyǝy]'C]#\QTVû9[ӰbĶZ&SRfk{PelY-)|5TWFn[T omT֐(fSmEDpMy[֡zi1gŀ"RZѬ_)Q7d5HM~N\ 풝6(3M|LKh" u(8*kSYVk\SdFX̵uU iB36IZ4dO.YmjֵZ�H�D3I"HJ%ʪi}Ǟy\~y~("["5*͏kAIaN&뜐;9܋`[Ekn!Qh*�ciLJ$k_杝IaXGY+l%*JlW0Z0+}r`dltZR儵XƸk5Mt."$ ]A͆iZjq+\kHrηTl܁V) SDLb 5z.]ib4��H�D3i"JH$u^נ~~(!89#hV(] CjֶE.R4D6-XyI9X籭a:+YS% M.c1- 0oCW㭍Q6Y=jpA%mk\UFK)$B]})P#wk`5^cֻ* :24M0k&Hm&5X̗k=J>V֎8Bv)Յ6㖸kY$H+5鵩mN򭥨Z֥}Ml`�H�D3IJHI$ꫪVY} &HiΩk?.kb}!۩..ZPN\52k}Z iMK<,Md$$mj:Uh$}]~w a&TP6w_4n>~TM9kYA&c՞%2J6 [ l慪wxhm\VJkaץ\>mi {^ewmF&jUon\\E}n;Xk,;;$R⸐;жϒk_5k�H�C3I$)۝\i$*l(kz鶪,ZDa?G> k-Y$uY7⼕ՠĵUEayשXo]m,kV%Ԇw9YHE- 6PEcekOEr׹rVPĂxIUn @yIz7 *}3_Ssd6:5rxnW*WX�ALש^ %~Z5z:m[Zf{^5%ְH�C3M,���� +j0Oz4o>^7ˋi9S.$Wk͛,ӭ`A\3vu@GR-a5iLCZX>[ xLY(5Іr^@Y11lx;ض-ű_>|ձkűl|-歍k_5-cl|ϟ5lkZwul[-c|cZkbl[5[־k]l[b>jֵZbض>[|VƵ��H�%$m$浭k_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZֵk_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZֵk_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZ�H���!�u[%��`1�wg�w^"#*�K=s@׫�#G@2z,,�q ۡq[Z,U}-�����z-@rl.IJ:Tۤ6OSt?ꁘLO"SLUCAW\O]ox�p $J j(,s *@5L�_<PSs<ÌhTc99R5oS4/M,O 8ap  ' qtƑ�h"4, :Y}ʈ4ˠ8(�~,@Ws[GE80�S 8WD@ 𓅜tFepr0pϱ9b]Zcq  9m�ɰ8vRanH o 0Ù_u:Y8D)O43Ĉ3, p:1]L�>~|%F4,ſk:iNPsq¦Ǿ7nKc֥/e򟷏ab|$Teu.=8.n\ΎX+>@4ӎP-F1x\<Fjo`>JX}Iy ĸwO9bEOٿq]Lyw<*'?)1 *"S 8G<n3lcw'fn]ȳ)61FaG<f� | `8V`bV38/ac4= Q������X} |��q�w7>`�t �l ]<|4Er1 ̀x>]<  àX b^p\0QqnlEeӈU<Ï㌎'xT4�B y������!�ug%��"@ %$m$浭k_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZֵk_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZֵk_>|l[űl[>|kZֵ|l[űl|浭kZֵϖűl[űϚֵkZϟ>[űl[ϟ>kZ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/tribe_i.wav���������������������������������������������������������������������000444��000765��000024�� 402766�11760240072� 16507� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������RIFF�WAVEfmt �����D��X���data������������������������������������������������������������ �������� ������������������������������������������������������������������������������������������������������������������������� �� ������� � ����� ����� ������� ���������������� ���������� ������������#�"��"���$����%� ����"��#�-�<�P�l�}�u�J��A�}�f�*�"�}���D�u�A�B�'����"�>�;���f���a���i��~�6�"�M�[�B�+����D�f�X�+�� ���.�]�q�A�i�3�D�F�A�D�9�$����(��� � �������������"�6�<�"���0�(��� �.�3������+�3�"� � ������ �<�U�V�*��%���q3[�YX^%�o��08D�j;�`� �8GA�;��ox�]@>�a6�3/%�3�i�dB2U}�XNi33�QA�qf�pS ��]�XQR��8�Prxo}�Z&r}�L.�A* ��-��ZU�P�r71BXx��]04Q{f�t0n,ql�wJ"c� }*}P��i|e\W�-0�64 ���W1_|q�Ka�wc�r���l�s`t9�aB� �bKU�Kyc�S7\=iX�]�\A��0�wG��_+V1r!�R���>g1M �_@]�bK�C .6 D+� PA7I�6�<�L���o(P9�h� �9#n��#Bl39.ZR�+_ew�9cQ48q��a[�0 &/�, k!����-�jTXVc7 Vl����%b]|K$7B�J'B�z32�r��6�( �V�^�}�<�zg�Aa� 9r�fnd5+�(�)&?�2Q{ ne;W��{b��&r#�J�uVie A5W)3��-12PUqSE�s��j/?�\nSm�%M��)t6eIOD9�xG�]cjv@Ih 1%� `]y~%K�6�tLk8�<o^?lyHa9P� 2takl:=O'[�m^BV��1^@{_:,6sx!H8KHH�[O1���V�xs881�kp]mOt)%�{$"�)��(  h�n�ee�d ��} "�F6D��s?+qjj~BR:.�GY e �eG1Q&H1u NI'G _iI4�H`?v1�5aJl` �xIl�4�I;) N8vubIww� m ] x[�l9"b 2i:(]Cr�< Le,iu " k�b5 Q p| �o���^ �3/d J\.Z3vw~kO1j;F�&mZmFQl|2C JIx�jj79mTrS6JqJ-$�8dy�"h.a Z�X |xR*�! * %9olrq  K k i W   O�[S    Vg >"njwUgH# r_-Q\t /Q-4rXFlQZ*3>�?pr_exj$�Uf�(�UR�' > T�Gi��66` w % u<o x%( 2% 9ip k6 '_  _Q�[kmR(D}T3`g@ ] z�elC��;b rZ tT1� X9  ( {+km)azU: z�mB1BA JgU  ;M 2(H 6 GEV  c )�D�Kp +>MgUUtn|*|\>)~�XJcE, K&_@d7;< gV - Y�;  =   JE'EE���uN+5=)�O. tV= � 3TK" O*u>zuV 9r&eJ m"*otyg;H^TUe( B =?S 8  %  d,  J �XEu)0 o Zv�PBO  T H�u(��* @ LL'Y9 l A��-(C6�'q0D")0k9{QcQT}<CgNbB''_�W m  Q , [d�)vb )cn y >n|] ;*t k  ! *S^v1GoX n 9t\lQ�'e3�+.\EyB�Z6 ^6R�KwPW07bp+HWSYW*CF�i��xv MXd 3kB E o �M<=U% 3� %#Jas2_� sDu� va a;  g4N G CP �G/m]i{k N f o�s.omj~D*<82.K��nbt~Aw h �@3lN\GK^W$Xv8 P��K >u a�3�!< %0t:ADB;1$i �lY!%|%"rB 50A.Kez`q`T vOM` o :f.Jf�  RB.opLy�L@:@h$'` -83osB$|8F� lUr';%+/Y/+ $_962.@>@F6W E e)^dNw>S|LY"o}^$n$ @ ' Tf `t}&oF^6tTm+<uP/b   brg<m 8 r* 2,L,n- 4�  9 e)15u7;50O)5! *k0 P!.9=<8*1A(l2څXL \Ct wO{(n2r �Vw { D% �z1"5 LjPU�]�dTG\m +k w.| w`-  Z&1.5h;=/><7-VP/�:#F4vCvOeUTKF=F+tf ^$rai) J&e]";� 1 [Ww ( �W'1dj)v\=&QB)0 �5nY�P|0��.; >C)9`AL M}'K. 1.i)#a f !p$+03Y55W4.V& u~` >{(Xq:w}EYG3_I?fn= C 5 h lZS�+5iz:[pZ'SߔI� j"j7&g)RwD$}j! ~ Y YIwNefhE]0�n1+YA<t k0!$&$p 12 0W!&?&D"OA K.sko()8J X J p &[\�Mo  /%}1$-n;{|F � |U 0v8P?ZvSYhe>1)LPLf%$,@2U#elykahS?& 4SXd 0*-DX&fkgYjE,5w:;1L 7_UJ{#'�=i y#,q39=?m?=81(1'eQzP J�t)#؃1֑ՃؠCR P_g`/^e�= ppy B� s՗Ϩͯw $ZB\py@udJB)*ޕƛ'VX22_G8RRJ<,@\J~Gja,@H z `c.1ܫ-M>LUTH5G!- Fc�r�r){)"i0%21ۂٖbd @XA٧y; Y\h1)c3 Kq CJ:՟$t!u�Ov7jr�!:.57P4+-.t 5#6(?&h { &T#2*0|4f3++] QWNy`>&YGS3�[Pn'}�I G  l�gr#1/o8<:z1G"$3=i�t *t+Q Fqa{ߒN&wrB&@A9$UU � = K\ #.�j9Vul�X :#2CTafbUAY' ֟LѵO68);%G/KYG;((Cz7ۺےު5!B5<Oi 8;@"0/.8<<n9 3* ! #�A�0rjw;.x7ߞ6٩ڌpXh<xq WL o ,V�GSl@.�v !1C}S _;c)^+Q>#& :ĤƒQ$ =+Qr_/fcPY1H1lӔPU+ܞ_ 3$m$o;Z  v,IXBE'19_=>5<77/?'NCtYG� W<L5;_tsH|Ұ&/bLM#\6. 2 L S),-b3`.&c7EQW0W7O^>$q1x&5JW[UHe4S)( ^V Ɩxx+Y  C\H(�1oc..i0@JsMI9A4#}k !  Z @uLQf�d_ۜp<lGd)%vl76\v$Lr e  " 1Dm(s|j(U7&?>v6&  p#~ [)'-+j&ssH;"+.69M7\/!8TӋآkI0{өLփE \ A&2774/R)  0f JV""12R^-e8,ݧҌG�ˢ$ B/-)cc)8�j > Sv%K,y*2-?D(l>P]taYG,K Z=*[2EGDSWUM@V/! {n]_QHQKB ?޺ݥ`$ (<4;=9.SZX;e!   +! ;4NXpG}fMI0n_TԆև/_ �SFX  W \�J�|{8uF"Y ,> �tNMF% `|� 3! & 7:kNJf Kx.N !**/.*D$[nAMdQBS$"rnwt��8a%L!(~ ^"  {KNF  #NfoD66ayB�nl`ߺݠS6�[EK;"8!0 � *dU5 l�+9 \L7~8.<g F'm-131~,#% n} /{!!gka �]<1ޒ#Xh;]V_K ! zCf &-&> <f|  31J)1x"O;8 7 M;|66C Jq# NJ ]Be ' =m+U _ l _ Aa s 0qz5P([e: $K a"$5#jgW% z{F &  " gC ^/m>]p{d=U�i? W{= gXV ON3lR=�E Er_ ?/?7'  fZUy ( `  ; SW B z T)JNzu Z=gd.~Mh\0QU$ 3Xa O ti4%d(('%! zنI.[G[ & 3 e�\E Cx@w.6^]? 708P d?F+ !T � R&t�&6o�DC{T uc & { ) R H h  d� dG2U+D.et�gPQL�SPX�_.NRZ|[)\?EZ r[ NEK<owr]L d =##O!f?BK F � x3j[ Q'� \OK3 9IP HaQQJm0�U8�wGp D* @  T k �sD;/qNw;6Lzn{E qpo;80]LUhFE  a�,sB ���N*|RR1*�_cbK@UV+C R S !  rs =\UtE6 9 4  W �YG�5G K9s6')a:-gOn < o ]�cN , _ U _b�eU_E = C 5  g ` y  : O0Rd;E }(H :Q\8Z~aa:,^[:nPH#E  NXK-@!s.G )  Q�8+J NH6: z " G_wU�w��`!=n^��qC`��~2x1�OP6#>%?Ur\x+E  K  bF7/u�  n 4 N =   (9y #}�;L* J>!q $syS&}�! wn_KTC #m�I,) o[XY5  7uv�Ar�d4n /rH�IT�i�In%{!cn/Inq{ G.vC s A (�I q ;  Zev+|=^|!L� ; r*�j U g,Q5K4' O3 W  @ 5 Sl>'K1_amG9Y[^.'5 R�c�\\&ML0\9Jy={J'{m�}�jJT[�s\T tprHGo0 $'D  %�i@ C ?#4Z#HE %~qF,\ztB3*��(�<� uSE�D}q]I�07m.[-(AG KX^-; =�r���,ebk�)OW2Y7  ht ~t"��{q ` } Jd!V�b_�M�g�pd C k'x,?<t?:Vo[d�)Z;cTQk236`K~N-Ai1-ea#^.�d!= ZMx:S�Z/m VvS?" 5 aQ'k�',a�M*�{LjS�FsR4(2f4j?����!�t�"�$`3@D'[Z=zi��|7?w�>���c� Sz�z=kp \ .&b�%3/�(R y%q } D   QAw(>�E0�f  "#- KU��!�M|)7:IHD[Vsd)5G g6vz��C��#dbQ8f�q[0c���� �\�8_]l0�IG �tf�u�^��;8/{* I / j $ ` 7@pt:j  ��w!S$Zw+HYSse4I 4KWC <b_Mh8B s�5R `;@7�fE� Sz�-2v{�^ScM�O[L_ylu�ogEJ�qyNb � �/:sc� �a~�X1upw�M~&=r9d������aC ��AWk�bb2_w1ji|6L��J�.D[�> ,�G?~%��&dhS/{QN�h�,xk�$i-^/;Q96T���E��I�\b4<.N,y,E1_k\IshEP3#$8Zt]jm9"AS< s [I'W$�Hx^(G�lrn-R2o�DO BBu)bD ������-�M��c$L]L ����X�(� �0=2dX]Ow74M8�M� �^?f+�c��n$w" t]Uk`L|G^6���>���O��;2p-->2qxeG$�w�a���%Xx; C>�a�0����P����o�'�IY@6FIbrN:PL�|�w�����>a{]��l��[Z�R�z\uT!!{B/r0` #H,E_�Y.:/1S*  c (MVM\ )�[,I ,�A�"�'S0Y~#��>3J�J"DG���} w7N&# "f)s, bv26�S�P��a7gkI26�J���}�R>���lC*7T>)@ ~.sx&y{@Q_mh`[���b^HS@YLb!Wuc:H' 4o ��wBw0�i���B�\[[�{y_/J��8�P@s��;9IOyeT;E / nq)sBEF5A�U�95l#\b&�Yy)?eu~xM:)K4�L<���}� �~9+ &cea2P~Rr������0�ur(��6ty�A�P��f< AzWGZZl )e! ]i$zi$���XKqP�6�xYy%Qo{HAuj27~SYF W!?euN 1^i9��"I�X���Bd# 1#b2[Rou3[�KKy|Qb3(}E{!h5-_NWt�P<A%Yb?aUbN\6 � �X6e?E~x)E WQ,K_ksk)mT5S.7<�}��VX6 gAyyW%*3vn0A}!qRg&cTlD62���^�(�v66GTIc(zvF-$86_+}�z���Aks3� ybi �%�}RE\oio^A' #BpB��*$cv_NsHN+?.2TB#$}`G< �r����g.1roP W{uVV7 k]_jT# CmQ 6N"���9�|��q$h|twnF3b]yf6 ���}�?��<����  ���c�9�(�%��(�R�l�f�[�f�k�u�������^�Y�R�o�������c�G�'��l(\<b#jC #!.@K`N!B|M E{(V��#�<�A�H�B�0����d���  0%)'>i(|O6;808c (5>8+"LccY@)ONuqvlJ��<���%�D�m�q�c�*�fV>JEY_{jfvuS 2mr_6(<Hr3S`^UM6" u[l?9�X�f�^�d���� Uzc /La]]bckpyqy||8|gI������q�(�*?\w �����6�[�d�U�O�d������l�:� �z[-4ZyYH7' 5 jF?gs%g"�z��>FOL<'-aOsk9i*��[�0�0�L���>XX>*��w�l�o����0t�5GRC2($$*5OLQwntqs|wK@�l�(V{\B7Js#7NSDB0oA(s1�4[ @dx?���Ll*n5)=LNF2vfYOA5fA���`�4����(�u�������������M�!��� �� �i-o"3 &2=){5)m :Vsoo�G��������i�G�<�8�A�^����5GF6���i�a�Z�U�^�w���;]b5������(n-R`N"n0����8Kta�X��}cp<.19KmuPaVg}CrxNEd"*J_[ ?{ �*�P�]�O�(���0�x��(l*`v|}U=NO4I! oN$q8���H����� ������;�R�]�u�z�k�g�[�B�<�0�(�(�������oV0g7 s_bVE/ /T{9So~J�?�u��������� 0Sfnr]OA5*29BALGIGFUUL6'"*9DODILLITUOPXSXXqwb[RGA8-97'2G]oiik]VGGG2*+�����{�i�[�?��[%S)jH, (7NpvjgY\<+#(@^~U9VcolS9�%L{rr^o*�i����)83=DDUtc|bU@IUFO[QUUKA)d6%$%+<<���r�P�0�$�"�� ���0�<�A�E�?�1��{x}G& (1<6mdVMVru[?4)&%)9Ha1[�H�d�w������(Z5[tw`RLIDI>JG;5}S0���������t�^�Y�G�E�<�3�6�D�D�Z�t�����$Wnwqlqmwa*��M� �\4_&_# P .Y%B\oxijdac^^P?<9?( 6EX�(�<�[�^�i�������'Lr->Wq|pQA0iM%����]�3��nmlYG<.#7A???GSXbpoP?)Nxikla\gjx{=m H�>�l����� *[F#-,w]UeoywiW/U���������*��������Dt|qnw `��p�O�?�;�1�-�1���g3fbPP_~[@<=6<eu)Hj}oaN=((&6Hm}�����A��������������� AnlD3!#0GgR'���������������M�+�d>%  {rgjzym\H?:17+1/.#   /Edpx"Ex�6�X�c�~�������9i *;=5*]9 ��������������q�[�D�(�������'�P�p�����������������+AORJ8��n�D���q?m+ 2# 3x9Xf^ajim �R���>Xf`U>���������*3*���z�X�<�>�B�L�a������������������!R}*GeqysbCR�����|�u�r�a�G��V~j\N( &Em"4<EHMBMM\gxuK \?")?P\dkg0�P�i�����Dm   nUA%�������o�U�3�+�� ������������ ��0�?�D�G�M�V�c�g�d�l�u�}���������w�k�[�;�.����z_9vufVVga\[[^ba^W^^did_ju+<^���0�G�X�f�r�q�}������������ �������� (36>C35?BCJGCLZedqtuyseL"���t�]�D�3����uP6~~piz "0BPUdupuqffgrmmwd^XMME.#"(("%*-%+,(9994BPm} �0�N�m������(6GQ[ql[8+�������i�D�%�~ucfaa_A."<Xp}dN9 �~_N4#")+,4Fa~#X�+�G�[�o�}�����(>OOSOA6.*��������������~�}�l�d�f�[�P�M�c�r�z�����������(;Ga$!$%nB����a�G�%��r[?~jjd\gps.EGa}����!�+�-�?�9�3�+�0�+�.�-���%��0�.�"� ����{xou}�;�c�{���������6Mwyzn^U@���t�R�9�(����"������oYGBBJb~ni^RMHMVdu}X6r\1�&?Snpmmj^EDDD^jy%Mdqx{tqzt��+�a�z��������w�r�r�z������3AJ6"�������������������}�a�P�L�U�i�o������������n�h�m�r�}����� ""��������z������}�a�<��aA761("~^H=.%+9H_u-S��+�*�"�(�(�*�3�<�G�V�i�������z�s�c�O�?�;�0�(�(��+�-�6�<�A�D�>�1�3�9�*�.�"��%�+�0�;�B�[�f�}��������"(>LinW?�����r�X�>�(���}lXG9+& ++:<DPSJD??AHX`ozulV?(�~ .Pl�%�0�T�t�����!8LU^iZOR;0* ���������`�?�%���*�G�m�����������������   ����r�B����{oR1lB1S (Gcw���6�R�r����������r�k�a�Y�J�J�A�<�3�3�-� � �����"�0�6�J�a�r�������5Un   "&%wbF*�����}�[�D�%��ua^M?1(1+)%,9>BK^^jx}~mNMB.  :Nq��'�;�F�d�������*69DXXQJRVX``ZXSO>0-$������������z�w�q�f�g�f�^�R�R�`�l�n�n�}�l�k�u�l�d�i�[�M�P�J�X�X�U�P�c�g�`�d�X�P�8�?�6�*�0���� ���oaM7~pd_[SJHQKB=EVYdnv.Mdx ���%�-�D�?�B�S�[�`�`�]�^�a�[�R�P�L�J�?�9�*�%����"����������������"�0�<�J�[�f�d�u�~��������"0>UX^efeulhrh`XW]OD-�������m�M�+��zgXG98+  �".6EHUUaUrqtga\PPXVX^dxzz���(�D�m������-BR`nqhf[N6 ������q�`�U�M�B�6�9�1�(���� �������#�(�7�G�V�[�^�l�f�g�k�i�h�f�^�[�R�M�J�G�M�G�>�0�#���{aB.udYMCC??EPVYaju{~Ba���� ��+�9�B�D�X�q�|�������v�W�X�c�h�a�a�d�c�^�[�[�U�P�9�0�"�������������+�1�-�3�6�>�D�A�?�<�A�R�]�i���������������   ���������x�[�?�'��{fY;x{~mr}}zuu}.>M\oou{xlaa[YWOJSPMB++."+377Yao���3�D�f������->W`fcaiiww]<%���������t�q�^�A�+�� ��������������� � �"�>�?�S�^�l�w�n�Z�V�Z�J�M�A�4�1�+�(�%�)�0�1����~XABE:91#+ #(3?GNa�(�9�X�u������������"+%�����������r�i�^�\�P�9�9�-��� ������� �� �6�<�L�`�o���������� "2;JXR^`WWP>9.�������z�[�D�-��iX9&rg^Y[gdj}%7Od}xtsjaePAAGPKOPUYYY^am{�'�F�i�x������� *?FRctwiORP?<*�������i�M�0�+�#�� ������������ujd\RS?3)  #%%+4MV[r}����0�B�J�d�u�����������������������������������w�w��x�o�d�a�q�}�������������������������������������������z�o�U�B�4�� ���XMD.#041>DJS^px}{roffcfowlr����-�G�[�f�z����������    ���������w�f�Y�J�>�-�����{ca^aSGA963+)69%(6<LRYfrxyidol^ND::.'  � .?JMdn��6�M�o��������-AAL`goqq}yefRF- ����������}�w�i�U�X�[�P�P�R�`�f�f�l�s�w���������������$($"%$ ���������o�Q�<�&���zr[3.+  #4EYir ��3�M�^�a�l�q�w�|�y�q�t�r�j�g�l�r�i�]�P�M�B�0������ �>�J�a�z����������%*-DQ^ckcXRG83- �������z�l�Y�?�#��womg[SJ<<?BEGEGZdguzx~}jiRUHDVOH3"�� ""%.9MSa{��"�+�;�A�M�U�[�o�x����������������z�|���z�z�r�o�c�S�L�;�(������� ����-�6�0�-�6�<�;�9�+�<�G�G�P�P�a�q�t�z����������������������}�o�a�O�<� ���ld\HB>+++.+"&+*% ),<EX_oz���"�.�-�?�J�>�A�9�<�R�L�A�E�J�U�O�M�S�Z�M�F�A�9�?�9�+����� ��� ��������!�0�+�+�6�3�<�A�J�^�g�f�p�}�������������!$'���������w�]�I�;�+��pXO?8)"  � #4E?MXdadtxxqldeabNSJMH<4+(,%3,.1+9JJGdlt���"�0�O�c�u�z������������������������������u�d�R�W�P�B�9�4�"�������� � ������"��(�3�6�E�L�R�`�d�l�k�q�l�l�o�f�o�l�]�X�Z�f�U�E�B�G�5�(����~xmaRJ: �%1?Jau~����.�>�R�Y�^�o���������������������z�o�o�k�d�d�U�O�G�E�6�0�9�+�"��������"�<�?�9�;�G�P�X�l�n���������������"'0,(%,'#""�������w�i�c�P�=�%���{{xticcc[U^aRgjtwzz{{}{xz}~����"�6�6�D�J�R�a�c�w�}����������������������w�w�o�c�`�U�J�7�#��������zxdV@014�0Pd~ ��"�1�A�P�[�i�o�{������������}�t�}�o�m�l�f�X�M�M�<�0�%��� �����������#�%�7�M�W�]�k�z����������������������������}�i�a�]�L�6����uaXD<6%  ")1(469Ret}������"�"�(�"�����������"�(�8�>�G�O�_�r��������������������������������}�u�w�r�l�V�M�A�<�<�3�� ��������� �� ���� � ���"�(�7�B�J�[�Z�U�V�S�M�D�?�3�4�*�(�%���������zf^X?<<)  � +6PSfr{~���(�A�L�U�c�w���������������������z�t�f�Y�A�<�H�>�4�8�$����� ������������"�0�9�B�I�P�O�^�a�c�h�}�������������������}�}�t�j�f�a�V�D�(�%����}ugaYSB1.% """49?>GGJX^[X^l}�� �� ������������� ���������� �����*�,�2�A�P�a�^�c�f�o�}������������������������������������w�f�P�A�A�9�0�3� ��� � ������wia[UD=A>9<9>:3EAJBDKMKMG\^a}{�� ��'�6�G�V�i�w�w��������������������}��z�r�f�c�f�X�I�;�0�"�� � ���������� �(�'�+�6�8�D�S�Z�^�^�d�i�k�h�g�f�Y�R�G�M�>�>�+�'�%�*���rm^O<1(  (BJMSbfo}������������������ �����������(�A�>�J�[�i�x�{�y�w��������������������������w�n�c�[�O�M�D�1�(�"������������ �����"�(� ���%�'�"�"�������z}}��� ��%�0�?�J�X�l�l��������������   ����������������}�i�i�]�U�U�J�G�A�?�E�8�4�1�"�"�-�*�$��-�.�0�<�A�D�B�F�G�C�X�`�X�a�i�l�i�n�z�w�z��u�r�t�r�l�o�^�Z�S�>�;�3�!��� ��zo`JEB.(   � (09BPYdiu��������"�"����� ����� �� �������������6�D�E�D�?�D�S�`�k�m�f�i�r�t�w������������{�l�i�f�i�^�C�?�G�5�(�%����~xr{wuuzxw{}zx�����0�>�E�J�U�a�n�t������������������������������n�q�o�a�X�R�G�9�3�3�'��"��!��"��"�%�+�+�(�(�%���*�'�"�%�3�A�=�B�B�<�A�J�P�U�U�R�U�X�U�R�X�X�[�P�X�W�J�S�I�?�D�;�0�� ��{g\[SXRMGBGJHJMMOLRYYilu�� � ����-�?�F�V�P�R�M�G�U�G�J�J�>�3�9�;�6�0�(�"������������"�3�3�>�A�>�O�W�U�[�^�^�`�l�k�{�o�i�l�i�l�l�o�l�c�^�X�X�P�K�3�%������{raX[[<?GJJDDJVHDNK?HHMTdgv{���� ����� �%�(�3�M�^�`�l�v�z�z�����������������������������������o�f�f�`�^�`�M�9�?�>�+�.��"�%�-�6�<�9�1�;�9�8�9�5�+�%�'�9�9�3�9�>�K�P�O�`�Z�X�O�M�U�P�M�U�J�A�>�6�?�9�0�-�"��������~mlgdVNXdigf~�����;�M�[�\�X�^�f�f�r�}����������������u�g�^�X�U�U�P�A�9�1�3�'�"�$������������� ��"�"��%�0�*�-�9�G�J�R�g�{�t�}�{�|�z���}�}��}�{�w�}�u�d�f�f�`�a�U�P�;�0�&������orocXSL=9;:BH?EBJKJUYdrutx}zzzolopow~x}w����.�A�J�X�e�t�z�����������}������z�t�m�q�u�^�M�J�>�6�(�!�� �����������������(�%�*�0�0�0�-�(�#��������plr`_ogdYagadgz}����(�1�D�I�]�f�o�u�z�����������������������y�o�n�l�i�S�O�O�D�>�>�<�D�9�0�9�-�-�3�3�3�6�<�5�1�8�;�G�B�<�D�J�X�c�Z�g�h�i�w�z�������������r�r�w�z�t�d�X�P�A�7�'�#�� ���xxldfgif\aaV^[`^^l\fupz}}������� ��%�(�(�6�G�E�J�L�[�[�a�l�n�x�}�}�z�t�t�����t�t�}�z�n�t�g�^�L�O�J�>�9�0�(�*�(�*���������� ���������(�0�4�>�S�Y�c�g�o�x��}�}�����������r�x�z�n�o�f�a�X�Z�[�\�U�G�J�;�0�3�1�9�9�0�.�%�������"����"�.�*�9�<�;�?�D�G�D�G�I�H�S�X�[�`�a�d�i�o�w�t�o�r�j�d�i�d�X�R�P�O�J�G�C�>�9�(�"�����}olllrr{y{�������(�-�+�.�-�*�-�*�)�4�6�6�5�*�3�+�1�*�(��������������(�+�9�8�9�>�D�D�R�R�`�i�c�o�{�}�����������{�t�{�o�]�^�^�V�O�I�D�3�!�� � ���wt{pptoooou�� ����-�0�<�A�E�J�L�R�l�z�u�z�}�����w�n�u�}�z�x�k�l�d�i�a�U�G�D�H�B�7�$�(�&� ��� �� �������������������������"�%�(�+�0�1�6�3�.�B�<�8�<�B�H�L�R�P�H�D�G�?�3�0�*�0�'�� ���~z{~����������%�(�(������� ���������������������� �(�'�<�O�L�U�a�^�^�`�i�f�i�a�c�r�t�j�t�y�w�}��u�z�q�j�f�c�d�`�X�S�L�D�>�5�*�"���������� ���������� �� ������������"�(�7�5�D�R�S�S�G�U�`�f�`�]�f�l�u�w�}��~�t�i�f�f�c�a�[�O�R�M�?�9�0�.�*���%�#�� � ��������� ������"�*��� �'�"�+�%������� �������~u~ocbc[\YRX[U^^aduz}�����%��%�3�6�3�-�2�3�A�9�>�>�<�A�9�?�<�5�<�3�(�'�-�%�%�*����� ����� ��� � ��� �����-�3�6�?�D�D�G�R�P�V�`�^�d�o�w�q�w���{�����������l�i�t�c�f�g�c�X�J�B�9�*��(����������� � � � ����� �������������������%�(�0�;�?�A�;�E�G�R�X�X�f�w�n�i�o�n�{�}�u�q�k�c�k�a�a�c�^�]�S�J�M�D�1�'�.�$������ ����� �������� �����������������{skirjillnoillimou���� ����� ��� �� �������� ����������������*�%�*�+�+�-�.�*�0�;�<�;�6�?�A�?�B�?�9�;�9�5�9�1�"��������������� � �� � ����� ����� ���� ��������������������� � ����"�%�$�0�5�3�A�D�R�Z�^�^�n�x�z��������������������������|�z�o�k�a�`�R�D�A�>�7�6�3�"���� �������������"�0�)�(��+�*�*��%��$�$����������}}xngijigoamuxx��� �����$�+�0�3�9�<�?�<�9�:�9�?�D�@�?�A�3�6�0�,�"�� �� ���������������'�%�+�<�D�1�-�<�G�O�<�<�F�8�?�>�6�7�>�0�3�(�"�!��� ���������������������� ����'�0�D�A�E�J�M�O�[�i�r�s�u�o�q�w�����}��w�r�q�r�q�l�g�i�[�Y�[�X�G�H�B�D�A�4�(�3�%��� ��� � ������� � �����������+�(���(�%�(�"���� ������������������+�+�3�9�5�;�>�8�>�D�B�?�<�9�4�6�1�9�?�'�0�3�(�%�+�!��"��� ����������������������~wwxjja\^di[^XX[V\[ggox��������������������������������������%�<�F�D�M�E�J�V�S�U�f�h�r�m�r�i�v�q�u�z�w�z�|�~�}�~�t�r�u�r�n�f�g�^�R�J�J�G�A�>�3�1�0�"�"�� ����������������"�%�&�+�3�3�6�6�.�(�.�3�3�9�4�;�3�-�6�&� � ���� ���������������!��5�6�D�M�S�U�X�[�i�a�a�j�o�o�w�r�u�}�t�x�t�q�w�r�f�c�O�L�R�B�A�G�9�9�0�?�6��� � ��� ��������������������� � ��"�"�"�(�0�2�1�0�*�1�7�3�-�0�&�.�-�+�-�%���� � �� ���} ������� � � � ����������������������� ��(�"��!�%�$�+�6�8�>�G�F�O�G�U�[�V�U�R�^�M�J�G�J�L�3�9�6�3�3�.�'�"�"��������������"�*�.�4�9�>�A�J�U�V�R�W�Z�`�i�l�r�g�c�k�t�l�g�f�l�o�]�a�a�[�^�`�Y�V�P�A�A�9�6�>�(���� �� ���������� � �� ������������"� �"�"�#��� � �����}{} ������������������������������ ����$�&�+�-�6�6�;�B�<�;�B�8�6�>�B�9�A�L�H�D�>�8�;�A�D�9�*�-�(�%�%����� � ������������� ����������������� �����(�%��(�0�;�D�D�C�^�a�[�`�a�f�l�q�r�r�o�i�l�o�o�}�o�g�V�a�`�[�R�[�U�U�J�J�8�0�9�6�3�0�-������� � � � � � ��� ������ � ���� �������%�"�'�!�%�� ������������ ����������� ������0�0�+�7�1�0�A�>�8�D�9�9�G�M�U�D�;�8�?�A�K�;�6�0�9�.�3�3�*�-�8�.�%��"�$������ ��"�(�3�0�4�9�0�3�-�3�3�6�3�6�-�3�6�A�A�D�G�M�X�P�M�E�9�;�D�M�L�9�<�1�3�?�;�.�!�"�'������������ ���������'�%�"�%�3�1�*�3�?�9�B�H�>�A�<�4�<�9�<�4�-�1�7�6�(�.�-�-���������������������������������� ������&�+�2�+�"��(�%�.�"��!�(�%�"�&���� �� ����������������������$�.�2�3�0�+�>�A�D�L�G�D�B�<�?�F�G�<�9�<�5�6�1�-�"�(�!���� � ����������� �����%�����"�"����%����������� � ����� � ���������� �����������%�"�*�%�-�>�3�;�P�P�S�L�P�[�i�l�c�[�[�Z�c�g�t�h�q�a�^�c�]�^�[�^�^�[�X�V�X�D�?�G�D�A�0�+���� �� ������������������������������� �� ���"�#�%��'�(�'�.�0�+�+�3�1�-�0�3�;�3�0�+�(�5�.�#��%�-�(�%�(������������ ������ ���"���������$�(�!��-�-�3�6�3�2�A�5�3�<�A�B�B�>�<�2�3�?�<�D�;�4�3�1�0�.�-�"���� ������������������������ �� � ��� �������� ������������������������$�*�(�+�(�+�4�7�0�6�:�6�6�5�%�+�5�*�%�(�.�(�%�(�(������������ �������������(�%�(���������� ����������������������� ������������������� � �� ��%�(���+�0�.�5�;�A�?�8�9�1�7�6�.�3�6�>�9�4�3�-�(�3�.�(�(�%�(�*����(�*� ���$�8�+�%�-�0�(�.�6�9�<�E�A�?�L�U�V�M�U�O�S�X�[�U�^�f�d�^�g�o�n�f�q�u�o�c�f�{�l�k�d�c�S�G�J�U�E�D�B�B�<�;�3�#����������� �������������� ��� �� � �������� � � � ��� � �������������������� � ����������"�'�3�(�(�3�-�"�0�$�(�-� �"������� � � ������������ � � � ����������� �� ��������������������������������� � �� ���� � � �������������������������������������� ����� ����"�$�*�+�&��#�+�(�'�.�.�.�+�%�&����&�"�������������������������������� ��� �� ��"�(�+�1�$�+�1�0�0�9�<�4�1�9�-�4�7�9�5�.�1�(�*�3�'�'����� ������������������������� ������������������������������������������ �� �������"�(�'�"�"�-�+�6�.�1�-�-�3�7�9�9�<�;�?�J�D�D�D�5�9�;�A�9�?�9�0�-�3�3�0�0�"���$�&������� �������������� ����� � ����� ����"��������(� ��%����$�������������� ������ ����������������� �����������������+�0�0�.�.�3�6�8�6�;�6�8�<�<�A�A�D�9�A�B�G�L�A�<�9�9�9�.�0�6�.�%�"���������� � �����������������������������������������������������������%�������� �� � ��� ����������������������� ���� � �� �� � ������ ��� ����������������� �������%�(�4�9�0�3�=�6�:�:�6�4�6�9�6�0�-�+�-�.�+�'�(�+�+�"�%�%�������� ��������������������������������� �� �� � ������������������� � �� ��� �� ������������� ��� ������������������������ ��� �����������"�� �"�� ��� ���� �������������������������� �������������$� �"������ �� ����� � ������������������� � ������� � ���� ��������#�.�0�3�5�0�%�-�6�B�<�A�J�>�?�B�D�G�D�M�R�A�?�A�B�<�;�D�0�8�3�� �#���%�������������������������������������������������������������������������� ���!�-�0�(�"�%�%�%�$�+�0�3�0�+�(�.�*�-�6�0�-�"��#�"�"������������ ����� ���� � ���������� ��� ����� ���(�� ��%�"�������(� ��� ���� � ������������������������������� ��� ������"����*�*�%�����������������������������������������������������������������"�"�"�%����������� ������������������������������� � � ��� ������������������ � ����������������� � � � ��������"�"�� ��"�-�+�+�.�6�1�(�-�'�%�$��(���.�%�(� ��"��������� ����� �� �������� ����%��"����+�1�+�$�-�*�+�7�9�3�6�7�8�>�9�.�.�.�1�8�*�$�+�3�1� ����� � ������������������������������������������� ����"��� �����"���"��������� �� � � � ���������������������� � � ������������+�%�(�"�!�.�3�%��(�%�)�&��"�*�%��'�%�"� �%�#�� �������������������� ������ ���� � ����� ������ � ����������������������������������� � �� � ����������������&�� � ������������������������������������� ��� � � ����� ��"�(��� � � ��� �� � ���� ���� ����������������������� ����"�����"� � ��� �%��"�*�+�%�"���%���������� � ��� ��������������� �������"�-�+�-�.�'�0�+�+�9�9�A�<�6�/�0�3�A�6�:�3�3�9�7�9�3�;�"�!�(�(�"�%����� �� ��� � ��������������������������������������� ����� � � ����� ���������� � ����������������������������������������"�"�����������#���*���� ��� ������������������������������������������������������ �����"�+�"���&�.�"�!�&�(�0�*�%�%�%�"��"�1�*�-�(�%��"�"���� � � � ���� ������ ���������������� ���� ����� ������������������ ��� ��� ������� ������ � � �� ���� �������������������������������������������� � ���� � ���� �������%�#�� �!� �$����� ������ ��������������������������� ������������������������������������������������������������������ �� � �����"�%��(�%��"�(�%��+�(�%�!���������������� ���������������������������� ������ � ���%�%� �"�� �(�!�!�+�)�+�.�%�%�"������� ��������������� � � � � � �� �� ������ �������$�+�#�"��$�#�+�6�0�*�<�<�1�6�9�A�4�3�3�1�<�<�0�.�3�.�-�1�4�9�0�%�"�������������������������������������������������������������������� �� ������#���"� �'�+�(�1�(�(�+�1�+�"�%�6�0�*�(�+�-� �"������� ��� ��������������������������������� ���� ����� � ���� � ��� ������������������������������������������� �� �� ������"����(��"�)�%�%���&��������������� � �� ����������������������������������������������������������� ������ �������� �������������������������������������� �� ����(�#�%�-����#�(�����%�$�(���%���"����� � ���� � ����� ����������������������(�3�3�-�%��(�#� ���(�%��"��������� ������������������������������������� �������� �������������������������������������� ������� � ���%�"��!�+�&�%�"�*�(�%�"�(�&�%�)�&�%�����%�"�"����� ���� ��� ���������������������������� ���� � ����"�������"�������� ������������������������������ �������������� �������������������������������������������������������� ������ �� �� �������� ���������������������� ������������*�&�&�"�%�(� �%�(�(�&�%�"�"��(�-�"���%�6�'�(�%�#������$������ ��� � ���������#���+�(�(�.�-�1�0�+�-��$�0�4�4�6�<�5�0�3�+�1�6�0�.�*�(�(���$�'�+������� � � �� ������������������������������ ������� ������������ ������� � ������������������������� ��� � ������������� � �������� � ������ � � �������������������������������� ��������� ����������� ���� � �� �������������������������������� �� ����������"������������������������� �� ���������������������������������������������������������������������������� � ������������������������������������ ������� ���������� � ����� �� ����������� � ���� �� � ���� ��� � � ���"�����%���%�$���*�-�!��%�+�(�%�%�*�"���"�+�(�"�#�"� �(�%����"��������� ������ � � �� ����� � ������� ��� ��������$�������!�������� ��"��"������(��� ��� �������������������� ����� ������������� �� � ��������#�� ���(���#�(�"������������� ������ ������������������������������ ������������������������������ ���� ������%�!���������"�%��#�$�.�$���������� ������������������������������������������������������������������������������������������������������ ���� ���� ��� �� ���������������� ��� ������������������ ��������������������������� ����������������������� �� � �� ����������������� ������� �� ��������� � �������������������� �������������� ���"�-�+�+�0�(�-�*�%�'�+�(�!�&�3�3�+�1�6�&� �(��!�&��"�� ��#�"����"�(�������������������%�(�"����"��(�(�(�%���"�(�+�"�%�!������������� � � � � � �� ���������������������������������������� � ���������������������������������������������������� ������������ � � ��� �������%�� � ���������������������������������������������������� ������������������������������������������ ������������������������������������������������������������������������ �� ��� �������� � � � � ������������������ �������������������������������������� �� �����!�"�"���"� �+�.�%�(�(�!�+���%�!�"�"����'�%�%����"������������� � ��������������� ������ ����������������'�*���"������������� � �� ���� � �������������������������� ������� � �������������"�� �������� � ��� � ��� ��������� � �������������������������������� ������������ � �� � � �������� ��� �������� � � ����������������� �������������������������������� ���� ���� ��������������������� ��� ������� �������������������������������������������������� �������������� ���������������������������������������� �������������������������� ���������� �� ��� ��� ����� � �� ��� ������������������������������������������������������� � ��� ��� ������(�����"�"�������(�%�"��������������� �������� �� ����������������������� ���%�!�"�"�����%�"������� � ��� ���� ���� � � ����� ������������ ���������������������� ����� ������ ���� � �������� ��� ������ ����������������������������������������� � ������ �� ������� �������������������������������������������������� �� � ��� �� ���������������������� ��� �������� �� � � ���� ��� � ����������"���"���"���"���"�������� ���� ��� �������������������������������������������������������� ���������� � � ������������������������������������������������������������ ��������������������������������� �������������������� � ��� ������� ������ �%��'�.� ��"�"�%�'�+�"����%�%�!�(�%���(����"������� �� ���� ���� �� ��� � �� ���������������������(������ ������"������������������������ � ���� ������������ ��������������������� �� �� ��� �� ����� �� ���������������������������������������������������������������������������������������������������� � ����� � � �� � � � ��������������������� �� ������� ����������������������������������������������������������������������������������������������������������� ��� ����� � ������ ��������������������������������������������������������������������������������������������������������� ��� � ������ � ���������������"��������"�����"�"��"�$��� �%�(��'������������������� ��������� ������������� ����� �������������� ���� ������������ �������������������������������������� ���������� � ������� �������� ������ ������ ������������� ������������������������������������ � ������� � � � �� ������� ����� �� ��������������� �� �������� ������� ��� ����� �� � ������� ������������������ ������������������������������������������������������������������������������� ������� � ���� ���� ���� � ������ �������������������������������������� ���������������������������������������������������������������������� � ����� ���������!����� � ������ ���� ���� ��� � ��� ������� ���� ��� ����� ��� � ����� �����������"���(������������ � ���� ���� ��������� ������������������������������������� � �� ���������� � ����� ���� ��� ������ ��� � ������� ���������� ��� � ��� � ������ � ������ ����� ����� � � ����� �� ����� � �� ��� ����� � ������������������� ���������� ������ � �� ������� ��� ���� �� ���������$���� ����� ��� ��"�� � ���� � ��������������� �������� ����� ��� � �������� ��� ������� � ������������������������������������������������������������������� ���������� ������������� �������������������������������������� ��� ���� � ���� ����� �� ����� ����� �������������� �� ����� �� � � � �� �� ����������� �%� ���"������������ ��!������� �� ����� � ��� ������ �������� �������� ���������� ����� � �� ����������� ���� ��� �� ������� �� � � � ��������� � �� ����������������� � �������� � � �� �� � �� ���� �� ������ �������������������������������������������������� ��� �� ��� � ���������� ������������������������ ������ � � � ��� �� � ��� ������'�(�� ��"� �"����������� � � ������� ������������������������������������������������������������������������������������������������������������������������������������������� � ���� � ������ ����������� ��� ������� �� ���� ������������������(�"��%�"��%���"�"�#�0�%�(�-�*�(��+�)������#�'�.�1�%�%�(�"�������� ������ ����� ���� � � � ����� ����������� ���� ����� ����� ���� ��� ����� ������ ���� �� �� ������ ���� ��������������������������� ������ ���������������������������� � ������������������������������������������� ���� � � ��������� ������������� ����������� � � �� ������ ���� ����� � �� ������ � � ������������������ � � ��������� ����� � ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������� � ���� ���������� ������������ �"�.�(�����%�"���%���������� ���� ������������������������� ������������"�%�����%�*�#�%��� ������ �� ���� ���������� � ������ ���� �������������� ����� �� ��� �� �� � ������� � ���� � � ����� � ������� ������������������������������������������������������ �� �������� � ���� �� �� �� ��������������������� ������������� ����������� � � ����� ���� ������� � ������������� � � ���������������������������������������������������������� �������������������������� ���������� �������������������������������������������������������������������������������������������������������������� �� � � � ����� ����� �� ������� ��� � �������� � ���� � ��� ��� ����������� ������ � ������� ��������� �"������������ � �� ������ � � � �� ��� �� � ����� � ������ � � �� �� ��� � ������������� ������ ������������� ������ �������� � ��� ��� ���� � �������������������� ������������ �� ��� ���������������������������������������������������������������� ����� � �� ������������� �� � ����� ���� � � ��������������� � �� ������ ����� � ��� ���������� ���������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������� �������������������� �������� � ����������������� ������������� � ������� ���� ����� � ��� ������ ������ ������ ��� � � � � �� � � � � � ���� � ���� ����� ����������������� ������������������������������������������������������������������������������������������������������������������ � ������� � �������� ������ � ����� ������� ������������� ������� ������� � ���������� �� ���� ���������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������� ���� ����� ��� ���� � ����� ��������� ������������������"��"�����������!����"��%� ���� �������������� ����������� ���� ���� ��� ���� ����� ���� �� ���� �� � ������������ �� ���� ���������������������� �� ������������������ ������������� ���������� ���� � ������������ ��������������������������������������������������������������������������� � �� ��� ���� ������������������������������������������������������������������������������� ���������� ���������������� ������������������������� � ����������������������������������������������������������� � ����������������������������������������������������������������������������������������� ���������� � �������� ����������� ������� � ����� ������ ��� �������� ���������#�����������������"�� �������"����� ������������������� � � �������� � �� � � ������ ������������ ����� ���� ������ �� ���� ��� � ���� �� �� � ��� �� �� � �������� � ����� � � ������ � ������� ��� ���� ���� ����������������������� ����������������������������� ���� ��������� �������� ������ ������ ������������� � ��� � �� �������� ��� � � ������ �� ������������������ ���������������������������������������������������������������������� ��������������������������������������������� ���������� ������������������������������������������������������������������������������������ ���������� ��������� ������ ���������� ������ ��� ����������������������������#���� � ������ ��� ��������������� � ����������� � ����� ����� ��� ����� ����� � � ��� ��� ���� � �������� ����� ��� ��������� �� � � � ������� ��� � ��������� ����������������������������������������������� � ������� �� �� ������� � �� �������� �� �� � � ����������� ��� � � �������������� ��� ������ �� � ���� �� � ������� ���������������������������������������������������������������������������� � � �� � ����������� ������ ���������������������������������������������������������������������������� ������������������������������ �� �������������� � �� � ����� �� � ���� ����������� �� � ����� ��� ����� ������ � � �������� ������ �� � �������� � ��������������� � �������� �� ���������� � � ��� ���� ��� ���� ���� ���� ��� ��� � � ������� ���� � ����� �� ������������� ������ ����������������� ������������������� ������������������������������� �� � ��������� �������������������� �������(����������"�$��"����������� �� ����� �� � �� ��� �� �� ������� ���� ��������� ���������������������������������������������������������������� ��������������������� ���������������������������������������������������������� ��������� ����������������������� ����� ��������� �������� ����� � ��� ����� ������ ��� � � ���� ��������������������� ��������������� ����� ����� � ������������� ��#� �������������"������������� �� � ����� ��� �� ��������� ������������������������� �� � ������ � ��� � ������� ����� ��������������� ������������������������ ��� � �� � � �������������� �� � ���� � ��� � � ���� ���� ������������ �� � � �� � � ����� ��� ������������� ������������������������������������������������������������������������������������������������������������������������������������������������������� � ���� ����� ��� ����� �� ��� � �������� ������ � �� � � ������ ������ ���� � � �� � � � ������� �� ���� ������������� � ������!���������� �������� ���������%������%�"����������(������%�%�������������������� � ������������� �������������������������������������������������������� ������������������������ �� � ��������������� ������ � ���� � � ��� �� ������� ������������� �������������������������������������������������������������������� � � ��� ������������������������������������������������ ���������������������������������������������������������������������������������������������� � � ��� ����������� � � ��� ���������� ��� �������������������������%����� ��� ������"�(������������$������������������������������� ��� � �� ����� ���� �� ������������ ������ �� �� ��� �� �� �� ���� ������� ���������� �� ��� ������������� ��������������������������� ���������������������� �� ����� ��������� � ������ ����� �� � ���� � �� ���������� �� � �������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������� � �� ���� �� �� ���� ������������������ ���� ��������������������#�� ������ ���� �� � ��������������������� �� � � ������������� ��������� ���� � ��������� �� ���� ���� � � �� �������� ��� ���� ������� � ���� �� � �� �������� � ������������������������ � ���������������� �������� ����� ���������� ������������� �� �� � ���� ������������� � � ����� ���� �������� ������������ ��� � � � ����� ���� ���������� �������������������������������������������������������������������������� ������������������ ���������� ��� � � � � ���������������������������� ���������������������� �������������� � ������������������������������ ������������� ���������� � ������� � � � � ���� �� �� ����%�"������������� �"���������������������(������������������ ��� ���� ������� �������� � ��������� �� ���� ������ ��������� ����������� � �������������� � � � �� ���� ��� �� � ��� ��� � ����� �������� ����� ���� � ���� �� � ���� ���������������������������������������������������������������������������������� ��� � ��� � �� ��� � �� �������������� �� � � �� ���������� ����������������� ����� ������������������������������������������������������������������������������������������ ����������������� � ������������������������������������������������������������������������ ������ ����� � ���� � �������������� � ������ �������� �������������� ����#��� ������������������#��������������������� � ��������� ����� ������ ��������� ����� �������������� � ���� ���������� ��������������� ��� ��� ���������� �������������� ��������������� ������� ����� ���������������������������������������������������������������������������� ���� ��� �������������� ����������������������������������������� ����������������������������������������������������������� ������������������������������������������������������ ������� � �� ���� ������������ � ��������������������� ��������������������������� ���������������������������������������������� � ��� � � �� �� ���������� ������������������ �(����������� �������������� ����������� �������� ������� �� �� ����������� �� � ������ ���� ��� �������� ��� ���� ������� �� ���� � � ������ ������ � ����� �� �������� ��� � � �� �� �� �������� �� ������������������� � ����������������������������������������������������� �� ������ ����������������������� � ������������ ����� ������ ������ ���������� ����������� ��� ������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������� �� ��� �� ���������� ����� �� ������� ���� ��� � ��� ������ �� ����� ���� ������ �� ����� ��������� ��� �������������� �� ����� ���� ���� ���� �� ������� �� � �������� ���� ������ ����� ��� �� ���������� � ��������� � ���� ���� � ������� � � ���� ���� ������ ����������� ��� ����������� ���������� ��������������������������� � � �������� � �������� �� � ������� ����� �������������� ������������� ������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��� ����� � ������� ������� � �� ������ ��� �� �� � ������ ����� ����� ��� �� � ��� � ���� � ���� ������� ��������������"����� ������ ���� ��� �������� ���� �������� ���� � ������� � ����������� � ���� � ��������� � � �� ���� �� �� �� ������ ��������� �������������������� ������������������������������������������������������ ����������� �� ���� ������� � � � � ������� ���� �� �� �� ��� ��������� ���� ����������"�� � ����� � ������������ ������������������������������������������������������������������������������������������������������� � ������� � �� � ��� ��������������� � � ���� ��� � � ������ ������ � � ���������� ����������������'������������ ��������"�� ��� ��������� ���������������� �� ���� ��� ��� ��� � ����������� �� � ������ � ���� ��� ������ ����� ���� ������������ �� � ������� � ������ � �������������� � ��� ���������� ��� �� ���� ����������� ������������� ������ ���� � �������������� ����� ����������� ���������� � ���� �������������������������������������������������������������������������������������� � ���� ��������� � ������������������ ������������������������������������������������������������������������������������������ ������� �� ������� ����� ����� � � ����� ������ � ��������!��������"���$�����������'�+�%�������������������#��!�������������"��� � ��� �� ������� � �� �� ���������� ����������� ���������� ��� ��� � � ��� � �� ������������������� � � �� ��� �������� � ��� � ������������������������������������������������������������������������ �� �� ��� � �������������� � �������� �� �� �������� � ��������������������������� � ��������� ����������������������������������������������������������� ���������������������������������������������������������������������� �������������������������������������������������������������������������������������� ������������������� �� ���������������� ��� �������� ���� �����������������"����(��"� ����#�$�"���� �����"�������� ����������� ������������ � � ��������������������� ���������� �� � � ������ �� �� ������ ������ � ��� ������������� ��� �������� � � � � ��������� ���������������������������������������������������������� ����������������������� � ����� � ���� ����� � � ���� ���� � ���� ������ � ����� �������� �� �� �������������������������������������������������������������������������������������������������������������������� � �� �� ������ ���������������������������� � ���������������������������������������������������� ���������������������������������������������� �������������� � ������ �� � ���� ��� ������� ������ ����"�� � � � � ������� �������� ����� �������!����$�#������� ���������� ��������� � � ������������������� � ���������� �������������������� ��� �� �� ������ ������� ����� � �� � �������� ������� ��������� ������������������������������������������������� � �������������� ������������ ������������� ������ ����� �������� ����� ������������������ �� ��� � ����� � ���������������������� ������������������������������������������������������������������������������������������ ������������������������������������������������������������������ ����������������������������������������������������������������������� ������������ �� ������ � �� ���� ����������������������"�����������������"���������������"���%��������"��#���"������������ � ���� ���������� ������ ��� ��� � �������� ������ ��� � � �� ��������� �� � �������������������������������������� �������������� ���������������� ����������������������������������������������������������� ������ �������������� ���� ������� ������ �� � �� ��� ��� �������������������� � �� ��������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������� ������ ���������� ������������� ������ ����� �� ��!����(������ ���������������� ����#�"��!���� ����������� � � �������� ��������� �� ��� ���� �� ��������� ��� ���������� �� �� ���������� � �������� �� �� ����� � ����� �� ����� ����� �� � � � �� � ����������������������������������������������������������������������� ������ ���� �� ��� ��� � � ������ ���������� �� ������������ ������������������ ������ ����������������������������������������������������� ����������������� � � ������������������������������������������ � ��������������������� ������������������������������������������������ � � ��� ������� �� ��������� �� �� �� ������� �� ���� �� ������ ��� ������������������������������%���� ����������������������������� ���� ��� �� ������� � � ��������� �� ��������� ������ � � � �� ����������������� ����� �� ���� �� �� �� � �� � ����������� ��������������� ����������������������������� ���������������� ������������������������ � � ����� ��� ������������������������������������������������ �� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������ � ������� � ���� � � � ��������� �� �� ������ ���� ��� ������ � �(�%��� ���� ������ ������ � �������������������� ���� ���� �� ��� ������������� ������� ������� ������ �� ���� � �� ��� �������� ������������������ ������ � ������������ ��� ����� ������� ��� ����� �������������� �������������������������������������������������������������������� � � �� �� ��������������� �� �� � � �� �� � �� ������������ �������� ��������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���� ������ � � ���� ������ ��� � �� � ��������� ��� ���� ������������������ ������������������������ ���������� � � � � � ����� ������������ ���� � �� ��� �� ��� � ��� ����������� ���� ���� � ���� �� �������� � ��������������� ������������� ����� ����������������������������� ��������������� ������� ������ ��������������������� � �� ����������������� � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������� ������������ ��� ������� ����������������� ����� ���"��������������������� ����� ������ ������ ���� �� ��� �� ����� �������� ������ ���� �� �� ��� ����������� ������� ������ ������������� ��������� � �� ��������� �������������� ������ � ��� ���� � ���������������������������������������������������������������������� �� ��������� � ��������� � ����� � � ������ � �� ������������ ������ � ��������� � � � � ���������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������� � �� ������������������� �� ����� ���������������������(����������"�"����� �%������%������������� �������"�������������������������������� ����� ���� � ������� ������� ��������� � ���� �������� ��������������� ������������������������������������������������������������������������������ � ������ ���������������������� ������� ����������� � �� ��������������������������������������� ���������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������ ������ � � ����� ����� ���%�� � ��������������������������������������������"������ ����������"�$������������������� ������ �������������� ���� � �� �� ������ ����� ����� ��� � �� ��� � � � � ��� �������� �� ������� � ��� �� ��� � ���������������� ������ ���������������������������������������������� ������������������������������������� �� � �������� ��������������������������������������� ������� ������������������� ������������������������������������� ���������������������������������������� ���������������������������������� ���� � ���������������������� �������������������������������������������������������������������������������������������������������� ������������������ �� ��� �������%���� �������������%�����������"�%�#� ��%������"���"������������!�� ��������������� � � � � �� �� �� ���� �� ������� ����� ������� ������ � ��� �� �� ������� � ����� ��������� ��� �� ����� ���� ���������������� ����������� � �� � �� �� � � ���� �� �������� � ������������������������������������������������������� ���� � ����������� ����������� ��� �������� �� ������� � �� �� ������ �� �� ��������� ��������������������������������������������������������������������������������������� �� ������������������������������������������������������������������������������������������������������������������������������������������������������� ��� � ��������� ������ ����������� �������� ���� ���� �� �������������������� ������#�� �������������� ������������ �� �� � ���������� ���� ��� ������� ������� ��� �� ������������ ��� � ��������� � �� ����� ��� ��� �� � ��� ����� ������� �� ��������� ������������������������������������������� ��������������������������� �������� �������� � ������� � � �������� � � �� ����� � ������� ��� �� ���� � � � � � � ��� ��� ������� � � � ��� ��� � � �������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������� ������������ ������� � ������������ �� �������������������"�"���� �������������� ��������������"��������������� � ����� ����� � � �� �� ���� �������� � �� � � � � ����� � � ���� ���� �� �� ����� � ��� ��������������������������� ��� ����� � ����� ���� ������ ���������������������������������������������������������������������������������������� � �������� �������� � ���� �� ������� ���������� ���� ���� ���� ����� �� ��� ��� �� � �������� �� ������� � ������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������ ������� ���������"�"����������!�*���"������� �� ���� �������� ������� �"������� �������#��"�$�)� �������������������� ��� � ��� � ���� � ���� ���� ����������� �� ��� � ��������� � ������� � ����� � ���� � ��� � ���� ������� ��������������� �� ������������������ ����������������� ��������������������� ������������������������������� ������ �� � ������������� ����� �������� ����������� ���������������� ���������������������������������������������������������������������������������������������� ����������������������������������������������������������������������� �� ��� ������������������������������ ���������������$�'������#���*�"�����"����"�%�(�(��������� �������������!���������� � � �������������������� �� ������������ � � � �� ���� �� ��������� ��� ����� �� ������ ���� ��� �� ������� ��������������������������������������� ������������������� � �������� ����������������� � ����� ������� ������������������ ��������������������� ��������������� � ��������������������������������������������� ������������������������������������������ ��������������������������������������������������������������������������������������������������������� � �� � ���� ��������������� �������� ����� ��������������)������ �"�� �������"��"�"�%������ ����#�������������#������������������������ ���� ������������� ����� � � ����������������� � ���� ���� ������ ��� �������� ���������������������� ������� ����� ������������� � ������������ ����������������� ���� ���� ���������� �� � ���� ������ ����� ��� ��� � � ��� �� ���������� ����� ������� �� ��������� ���������������������� � ������������������������������������������������������������ ��� ��������� � �������������������������������������������������������������������������������������������������������������������� ������������������������������ ����� �� ��� ���������� �������������������������������������������������� ��������������������������� �������� �� � ���� �� ����������� ��� �� � ����� �������� ������� ��� ��������� ������������ ���� ������ ������ ����� � ���������� ���������������������������������� � �������������������������������������� �� �� � �� ����������������������� �������� ���� ��� ��� �� � ��� � � � � ������������� �� ��������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������� �� � �� � ��� ��� ������ �������������� ������� � � �������#������ �������� �� ��#������!���������%��"�%�+�+���"���� �������%������������������������ �� � ������� � � ���� � �� ��� ���� �� � �� ���� �� � ���� ����� ������� ���� �� � � ��� ������ �� ���������������� ������������������������������������������������������������������������������������������ ������ �������� � �������� ��� �������� ����� �� ���������� ����� ���������� ������������ �������������������������������������������������������������������������������������������������������������������������������������������������������� ������������� �� �������������� ���������������� ��������� ������������ ������������������������������(�������� ����������� � ��� �������� ��� �� � �� � ��� ���� � ����� �������� �� � ��� � ���� ����������� �� � ����� ��� �� ��������� � � ������� ������������������� ������������������������������ ���������������������� ������������� �� ������� ���������������� �� � ������� � ���� � � ����� �������� �������������������������������������������������������������������������������� ����������� �������������� ��������������������������������������������������������������������������������������������������������������� ������������ �� ��� � �������������� ��� � ����� ����� ��� �������� ���#�� � � ������ ����������������������������� �������� ���� � ���� � ��� �������� ����� � ������ ��� �� ����� � � ������ ���������� � � �� �� �� � ��� �� ���������� � � ���� ���� � �� �� ������������� �������������������� ������������ ���� ��������� � ����� ��� �� � ����������� � � ���� ������������ �� � � ��������� � � ����� ������������ ���� ��� ������� ������������������������������������������������������������������������������������������������������ ������������������������������������� ��������������������������������������� �������� ��� ���� �� ���� ���������������� ��� ������ �� � ���� �� � ������ �����������������������������%�$�����%�"������������� � ���� ��� ����� ��� ������������ ����� � ������������ ���������� �� �������� � ���������������������� ����� ������������� �� ��� ���������� ���� ������������������������������������������������������� �� ������������������ � ������������ ��� ��� � ��������� � ������ ����� ����� � � ������ � ���� � � ������������ �� ������������������������������������������������������������������������������������������������������������������������ ����������������������������������������������������������������������������������������������� ��� � � �������� � �� � �� ������� ��� � ��������������"�������������"�����������%���"���������� ������ ��������"����������� �� � � �� ��� ����� ������� ����� ���� ��������������� ���� � ������� � �� ��� � ��� ������������ ������������ ��������� ������� ���������������� � ��������� ������������������� � ������������������� ���������� ��������� � ����� �������� ����� �� ����� � ����������� �� ��� ����� � � � ������� � � ��� � � ������ �� �������������������������������������������������������������������������������������������������������������������������������������������������������� �������������� � � �� ��� �� � �� ��� �� �� ������ �������� ����������������"� �������������"���%�%�������� ��� �"������������ ������ ����� �� ������������ �� � �� � ��� �� ����� ��������� ��������� ���������� ����� �� � � � ���������� �� ��� ���� � ���� ����� ��������������������������� �� ������ � � ������������������������������������ ���������������� �������� ����������� ��������� ���������� ��� �� ��� ���� ����� ����� �� ��� ������ ��� � ����� ������� ����������������������������������������������������������������������������������������������� �����������������������������������������SDL-2.540/test/data/wood_dark.png�������������������������������������������������������������������000444��000765��000024�� 15554�11760240073� 17006� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���@���@���iq���sBIT|d��� pHYs�� �� ~���!tEXtSoftware�Macromedia Fireworks 4.0&'u���tEXtCreation Time�08/13/10��IDATxMKJ?x�dfWhv hu$w*dpw"?*ߨ*#Z "PUT<cAx<�8m(pfPk%s�yU0z?v�BV̨xD>˶QTAa wZQ4jHd?<#"9µUmcADZCUT 13_ {ZB-D`yV!?O;n3pSr\Ojm֨ՂJaI)B)9�Т鬒Fo^ @3CD*T~-̜|=J)N ZMZ@B)*53!p�ss:t"9 U֌u@>#"Ǥּ(*3_+jU;BqṞe"R3/M^�{oJ)kEg375sD@嬨 uJѻF;A7~I+uDھo1 Tܝ}ߨp'N)3mF)Ej>_Qպas9Z"B)9"Aq=X#am߈<N*yOqZRI!p7sNm8d<)D ޯ7%]<ᚈ9y Vlhn1??mfHAf5,o#ᶡ 9񠵊٤�oԒ˚"(rzCE9dN r�!Zk̨}#�)<Fk[UjGzL=Ɖ=` 4$M)`qNh\&"@m~j)L3<x8&VAԵjkXj-Ỷx58 wjQ\AT,n2Q ZWA{SJe6߈zCѩ-g(vWfDh=kgvU6ucLZkwN(,8m-=R(HA' <ɤԚ[lm]5q!ƒ9se`89ozmTjaڙ3"""/;vI25:_Oů57ѱ`D.x-F@-ZZ(%ɒ&>lvz)BPYn>&op?�^~<[B+k/*q $LW8[prKV*-^E͜ΜUT8ͪF4땳>OqǍ�||p#Tfe}8!Hpw̜1'YG#r7%83ND7>@BUл| 7b׊"N-ulDJHn7@Q"*N s&hQ'6܃o3yJQA$0= sQ\w㇚;Jp7N[7�Nw9E OGBjͦ zϧs[{H x * "ƴ- 8΁ȟB]ۚ* y<:y:'sU 8 "q}iD)L~JjiXlNnY� ƹT\#Wc#R-SKmRvN-Bh; 54)sP9 P?>z}S[gߟ*% }shr)!eco9n44.rVC)cWq=ـd9xǘ4|u}.aD!1 wP}+i]3j5P@ֲ؍TUuUZ 6־D8W U7+g;'cLReõ Zgi|UlSCk"RASj>f؉`Tv^Ar3Փ4G b)BH V4]˲5E3CJܱZP$d\Z=b0=[/}m aMς$5ETy O|ŴR@ܓ�jUzpafwR%g*uNcBo`T;Dڽ =D+EP<i7Ғi*9;e9qjFViUx_L њ0ٔzTT ۶_4;AU!qy�oV1w5RMdh2%0 ̂mSZ)D3T iY20vT-%x|ɴHpbw۪EqV*ʍ8Դݤ/untSD$? #T(wQ8aH*q^XդNۉj W 'A%{\@sHzæQG0zR~e!'+c7"8t̜s^n}IpuL�m;y6A)�Q}E?}b#k"К"v "R Z~vsoXQԚ ¬e]Hiۓ1'zymKԢPVN~K[QtC$(,؅T-}AadV*nh(׋qzU;Q3ҜL8J[6يܽ.7Hbt"=&{ܹK!HjP[AT9AuMHn7$-3>E,-7g;Gm)p9ʭ5_|~>p[ZPm33G6%{OˍW4%yLܕ}8M07K_y g._8&"#zKc*J6I9|y)EKRUYպNZ絶]H𻀥o=y[OOJx?,_nSnE+biznb~l<(sA-Jo,rp“G+:xpy!!�]srBܩUDLjmƤ2$f; s Ak:*Ei2Y㽼ErZTJe@$כ*GuR=!0A.&h.'dZ |`Ub1  S1R.B�f$NTD80V9Nc ū/~*}'PDRzE`.0B,ۚRRyc8=Ѳ^! E`@) sG,7 E0Xfm{cgRV ]w|M~ʘhPj#i7O(7R !95p!x(+]"0,ԧœcsٖUHˢ`ɪJ= zTJ[23Zϙ\/fNY {om"�m]T<g&sƑuFdl"V>7 J+\|9s=;'lGc[Q|~9}k Ɯג&<t.  ]HÌ@LU[U\V.pi #$MPEhi'-/= TW6:_k.q1RFֆ{Z.r>"RFEv bLz3|-9,?yRߏi Im`c̱""|%r05kP#{^ U˪]ڰ8Cix6rU_ߘﮬ̇_-+sYxK ڏoY/~-æve "]bjT=r_ۮL,j5x I-)PuK껈yqvYO24A]p1MT&"8�iVfk)Z&HD` 2Bmxeu:9u*+?5CSʡiݣۮ\yr%MX{6}px<t`jrl8-w�+ߛ]ZoVRE"lyrń_'x8ḥaAsbZl +qDlv3tzrVٲ;ϼVnTsV!᳔tEUT`N%ݓk7:l|> @-ױܤ;dQE}xJ ^0[ECcuz:[^g̘f<?>Gwd5[Ɖ3!J6jU�mO٭D bلH0_Oʿ4Z턧NHV>> 0Z˙yN\hOh[]Y]#gδMsf;?g<1 qjܙp' Ϊ9E)ֹ;:!ͦQV^82aVE⮷,^+"FjUVǛVۭJع-|>WRXr މgQj/"? s:i:'qZjN\@kiȤ+ AFl%Ec<`T?WMVR=E*uX)ϊ8铒\m9F.7< ^/ֈeT s͸#2�aAR˜*fc+g̨<%^rj.7}yej<S*zƜ=qzk_^In\\Or�ϯWL}`.ģ3-UyZZ+dӝWz4 ̃+|R nJ /EvW eOD'zn3&W\QEl-t#/CDDPN"R7ǃط'r}kZJOu1< RA <oosԴ/sPkzWj'k-߿xӊSU-;pU_#ݞ٠ưlUۼmU.~f=?E O* ^75,r<s|^ֱBy >WGސ5" lWэµHyPfdE* 7#:pl9aAW%gPV<rjI=(3N|Rԗ_x&ӬJﲬRUy mߩc*^V`9~-C4YJDJ&UT,\ Z~`,y)e~U{.=x^|?.uE-SRW,@G"Ob)E/9k*d4ЃV.{*a^ ri+| bYYd)ZOf߸|~%hcUuEgZNn;5/tK̾[R}!Mpw>GP[.1'q!pVZse0Dcr<iB3EiwZFD&<):HQeCp<iqz B$o:YSzס Ap6,kl`5m|5PN}<kfꖼ5QzJj3-RgZ y!5Yd4j *+KPp-suy Y`"%Dk2ccA=D0y3˄F6m qx:L>gD@0m=o^|-$sV뺦 ypQjNY V!95&Z MƤئ)F�cχqYe;&t3],rD%Z.6<? \c[Fe=Rn''x]ݶFyn\ثoBLfR3(m،[2s!HI{ ^\|A/'7rizY妫z\y14IAP`Bm5?nkGVWDW3J*hKQ[<E u,n_zvLA zcd~Gm.><QL乿Xdd[-&׉g0ރZ>yO!tRj#l5u !+88i{yWFncrrst<T9 )WazkyYT˂wV}UU"C{ͶUJJJ}==x+kG PV2673طFY_/<ώJ(LYETd4J?zu*3W9<sy, aQWlݷZ63hZz阓geuf*g_>?ysHlRj<Vcr۶Ѷ [8GR@e)zgǘyGJ$B|A)tskUzTX!1vDfҹu<yVH9?gHϝnM%#=9yB-&f8kfdͤx*FY q*J-< fzVD=AK2QDm vL 5"KLEd5=u(R+H港K IzQp }ڦ0G)u69c gR2xiڜLޕ!'=82S%ckq}~CI]܏ D^I ᠥ/q=$698ZPsfl?ߴ(5q?Ͷo*\I0����IENDB`����������������������������������������������������������������������������������������������������������������������������������������������������SDL-2.540/test/data/wood_light.png������������������������������������������������������������������000444��000765��000024�� 16706�11760240073� 17174� 0����������������������������������������������������������������������������������������������������ustar�00jtpalmer������������������������staff���������������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���@���@���iq���sBIT|d��� pHYs�� �� ~���!tEXtSoftware�Macromedia Fireworks 4.0&'u���tEXtCreation Time�08/13/10��IDATxM+GrKз!5u#2<:#kFT�I~ʊ忥fTEB`L@ZGC$h`2c]vƄ֍QOF3G1%Ҙ �L1`Ľs4ⶱ_h 0 wָ^s2as`Nfjd2OZI)q'__7BPD@g=9S43lQ!$gfk B0b ;?L 16}C@&;wUF03JLSFLBJ 0`0Ӡ7ltRPj�}9 B!~#ȝ36' $s1 ""x0[Ȍbd$o�911�41" L0'K ̌ Hi^sU�H)`@ H�i~A_ UVmt( 4+8&Te0v T$(YOW˳dΉɜz_.03*o[Ņc!3h{y?lQ;}° JND `ֆՈIo ?KQUBLDk1a!shu˦!DBߥ-} J)0'V$$E5P{'H@Wx !%PUltӐ9as6^;ӋR_E1GTsY9[~o 7GmBʅNʉ3"UA8Omy!E0eloA֗7j=H)QI @6'3@v&O_ C9@#Kb  Fl\64g%RDC`*^/Nm&l>Bꕉ|zYߒa6S69є{i o Q+ǽ8'Q{6d AmbL\1A&rB zVn?8JfHL U-l[̸=UT62A3֓1)& ʤȤr{gK~O!"k%`9!:.^AA!Thb\m{JRXE( ? Fg߷: 3 ( 3@H^;9)!){Oz:KAlNR>xXHQ6x#la;)Fʾ`)FƜU֜|<o?{Ɣ `O'1>5&s�M! 0wfkǀ!HXӝ׃%Ь{uiCaFm}vM>o6TqZ̨Wi}ޙsڑz%Zk]P=8'<@o:1Y:eGc c}Ijk)2朕ɍJo DR䔈51$ 3Z{N\7Ḃd ~A}%Lq?jZz@cx<: G æ2{ !Zo lU"BLݮ>h1@!pP*{6o ,_߷7|4rJ,1z5WA56&|S[3L48Y*BH^ üLc /]=l QЇRi1\Zea !Ei<D!F묯t$cnW,25OX$Ds�@̅lN|EA(xsA 2:UUa5G#cNP!ot9Bct_7COo\[#PaN Lʉ;d4(1EyZOfĿ_ 덗mcqc}U(~f⢖Z2AWm4&KD/r")%RZ8`$텉&fkA0$Ҳ c➳\ \zo\LJE84ZՋ7DZ-[NxFdضm56|?EB(1wdj16\ͩFb >əAH9-Q'@BN] 5o_GQ)b9E+mq�I./sB$$$isu}VO*}?@Ȓ޸&*E3Z);drChc$khG.jĬT 4Oh,0)FH1*LGV)`LF2n N} bL[kvY!!Sdp~rDU)`HrXk4�2 a|<,0jg B;+#9'CGHǤAΙ9DeEAEd6zkaNrٳ [oJ&1u%$o4R~Y+y$|zI-<mĘ)v8Kx ~xoMp|TF#'%9q:[#&J\e6v)ApZ /K�)Dq9 Ӡ9qmϿ,j. Kkg{6>}*8>H3%GRrVl :\sStć[L9&}zH~hfKҗ̷ڀMҶuzȚЌKΌ֨v6?ѣ1L#KI*ycINJ,l25jD L cd:*DHg1Im߈kDK!'b$D86^K1 cy ;tQ6\'A0"Ye+LIw1Ay\C0МK^hxGhfGbr$ tcdw5{ ?I+�I lXLt-İfdl0+[%υ^$6*Pp",b;.@Q/uwUny/p>< 3~dma>; I7ha [uoiN\6jFoW�ƜHQ9+@wF.4b7$(!Fn2c Ʋ͚utj<9xQH=:*KYmplY7Σ1q<Р >:g@ܛ;>1∴Zf7ߵAB DE�a+so?s40mpKKo#H.z\i`IWg,qr>(/$}Q 8ϓrJ\.Eal0Z]P L6Ah-*Ǐ/'JQio#@Ȅa!zhdB)A|Ue6ZkjzC0D4)Vt3Y9$4/ aFJnW!cJ6}HIsdRJB``5K z 'gyHIѠؚ1lrSW}Y,/Ho : er eql/7,8cwdcL^ʶV3WaLV)ƘӅm#HZr`oK)d9] z*YI:8Ze0)o.l.?,eXp܏Yј%qV񩾴NTq|)/ Kvsr.8Wx42*v^(`r/d+;aa2{GeM۝;@Ƥx,';X1c/.*$2;qzzc"ўlPɒӾKy> N"߽/%Eb']Uf7 703{N^:Z} `P9 }+D HߊWpZg 1GֿTb$FdNF ex 2DHpq7d茯OΠt|-XDќ68*q'sNn_f^H*}nRK|Kʏ虀YI%S{'D֨}u?^' rϵZ K}.zƤB n =+ц{kmcׂ^'|5*.'Qu%˴;_:L8I;_"%fW`m+VѕqyOd9_]41349U;!<AٲGЍ|L܉mp\ܯSO٫ 7?Xܠ8fBkt5ovaI]qfa9:Jp >xUWv8A}X5@VRG3/ipcvV7@Q{XcۊklA<S5 ndm#e}p'<<W|jpui鄂PYx=e'@ЀƄFY9!e_O+7TVb#'k-xo<qث<+D@@21e0wq!^Ie}>\QRuTϓ h]RCl8y0Xm&bpgw4DNƎ@roW ?]/ s_9\.\.˷+ZiEdZu+^Jk )B!ӆyY<*zfbdx<|LQ˶9w Q1 [*LР{CVJ)D,J.@6\EqՓ^po^|ڜ̌s7DY١ \)%.xs ҶD+%4%➦x0E0X7i`l4 [q& nHTsR$ Z_ŰZwܻ-cI[8[i=8=p5Jb_wbɴ1 (v?RQGK.#ʼ\4 Շ6'QB^^Lʷ+AZ$ے\NkgE}i$ }>\VcrHPڒQi49Gdm蔹>ƄO_%믿 3;} zce08お<A#_Vh1gW]T-2ӆZ]FX([юH%4 JINt e !P:~n1̸{M':y+`9$xb^-y'OH3%48unwj%zgmw91c "ce5<#iy|8϶^mZsUG¯~wO([bbYNjCzCQaܗUݛ|Xg+9q{ߧT 0m~z9lePֽ{dNFD| >�-'7& zk/Lmد;Vhkqxn(%O+>}~1V, {m]}g uNJ>9|5]6)e1vݐՋsNJ\kZ_,}pK1o?FoY3GlJ vqc鎟NT\w}c(<Y#BକK]Pw[Bn /c㌬ĕzhkkaVCairLLo,iLē )9A=ZFRt.)B` Ոfem띔d1\zup*[pɻ .֖& 2gΕ}?̣sRZe=9 YWҰg(k_<QŠ2}>+Ǡ}ܱ<[F OToW޿]L2 t&z|-SO*,Jf s6I=FG!m;Ϣu+[)/v2Z.#0rqvꪆJ<J~H8K<Ѥ\?S{F9}PWaybuʶnG>)eyOѥ?`Ovw@cTe#CO},4r;[uwEyJp)9gbS.wm%KUaX⌬/nZ7\kXo.#>cЫۑ0}w.$h,qV^ІÌ=eB +K<Zwa߂*1en aT2ݏ/bKʤ|L) qJ+;تz,/~vښT4J~6GX2, *s d. W魻ge}l+-3YfSmvZ߈*" q9{wƜ[l^O\a ̄;3z[ki9#}?!DI*|_1Sb84_]Oި&Ͽn詌3 $wat B=OI\M]!f єÕqO 5 /@,0h:u=OIs /71q9nnD޾`Ըy+_*+1s䤤/J_2 ~eBWJFԅt asx0@ijCe%CXQVZ?~A]R6JN|}^!1*ɶ9II8N4*tqv׏ۏJFۏ/4GeRR*B*1'; <([vL='VF 69ss /TCIx5<Gz}n q+_nFAb~$˕=nÜ鸥7o/3Wڀ1{7>?a~)\LLWUQKf|S!J@`2_&6pS9+&,G�^ o a%8D]ܰW`?wzk*Wrʋ)UR{GT)[H.-c$mYD 6y|~Dȗ uADu /ux,a 1B ;aA >_/ڿygo<mPσ=7"h(}S^ѲI)7pJzH5rYb>eκX-fJ|k)soJf7>>o|| ICu����IENDB`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������