From psychon at znc.in Thu Nov 1 01:15:05 2012 From: psychon at znc.in (Uli Schlachter) Date: Thu, 01 Nov 2012 09:15:05 +0100 Subject: [cairo] can't render text In-Reply-To: <1351700231.96517.YahooMailNeo@web171606.mail.ir2.yahoo.com> References: <1351700231.96517.YahooMailNeo@web171606.mail.ir2.yahoo.com> Message-ID: <50922F89.3010901@znc.in> Hi, On 31.10.2012 17:17, Techie Help wrote: [...] > I am using following code: > > Please let me know, what I am doing wrong. > > cairo_select_font_face (cr, "monospace", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAl); > > cairo_set_font_size (cr, 14); > > cairo_set_source_rgb (cr, 0, 0, 0); > > cairo_move_to (cr, 0, 50); > > cairo_show_text (cr, "Print Something"); > Let's turn this into a full, self-contained example (attached). When I compile and run this code, I get a file called "out.png" which shows the text "Print Something". So you aren't doing anything wrong. Uli -- A learning experience is one of those things that say, 'You know that thing you just did? Don't do that.' -- Douglas Adams -------------- next part -------------- A non-text attachment was scrubbed... Name: t.c Type: text/x-csrc Size: 631 bytes Desc: not available URL: From chris at chris-wilson.co.uk Thu Nov 1 02:53:18 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Thu, 01 Nov 2012 09:53:18 +0000 Subject: [cairo] [patch] gl: for embedded device, we need smaller vbo size In-Reply-To: <3955FA337689574EB32F94B12A7E6E9E2470CEE6@sisaex01sj> References: <3955FA337689574EB32F94B12A7E6E9E2470CEE6@sisaex01sj> Message-ID: On Thu, 25 Oct 2012 19:27:56 +0000, "Henry (Yu) Song - SISA" wrote: > From 702b7a6dbba035a1a0c71d3618c1d2b02be0561e Mon Sep 17 00:00:00 2001 > From: Henry Song > Date: Thu, 25 Oct 2012 12:25:13 -0700 > Subject: [PATCH] 256*1024 is really too big for embedded device to handle > during glDraw() 16384 to 32768 seems to be the optimal size > for VBO I'd rather keep most of these values the same between GL/GLES as the optimisation constraints should be very similar, so I pushed a modified patch to make it 16k for everyone until someone can present good evidence for another value. At which point, they should also consider how to automatically select the vbo size. -Chris -- Chris Wilson, Intel Open Source Technology Centre From ed44 at xs4all.nl Fri Nov 2 07:23:39 2012 From: ed44 at xs4all.nl (ed44) Date: Fri, 02 Nov 2012 15:23:39 +0100 Subject: [cairo] Bug in 1.12.4 and 1.12.6 In-Reply-To: References: <50914E6C.9070309@xs4all.nl> Message-ID: <5093D76B.5040706@xs4all.nl> On 10/31/2012 05:27 PM, Chris Wilson wrote: > On Wed, 31 Oct 2012 17:14:36 +0100, ed44 wrote: >> When stroking two or more curves and the path is clipped >> the result is wrong in some cases. >> >> Looks like the second curve is interpreted as a "line_to" >> >> Increased linewith will decrease the error. > See https://bugs.freedesktop.org/show_bug.cgi?id=56574 > -Chris > The bug you pointed to is fixed in the git tree. I just tested and the stroke error is still there. Ed From chris at chris-wilson.co.uk Fri Nov 2 07:57:15 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Fri, 02 Nov 2012 14:57:15 +0000 Subject: [cairo] Bug in 1.12.4 and 1.12.6 In-Reply-To: <5093D76B.5040706@xs4all.nl> References: <50914E6C.9070309@xs4all.nl> <5093D76B.5040706@xs4all.nl> Message-ID: <6c3329$71c1k0@orsmga002.jf.intel.com> On Fri, 02 Nov 2012 15:23:39 +0100, ed44 wrote: > On 10/31/2012 05:27 PM, Chris Wilson wrote: > > On Wed, 31 Oct 2012 17:14:36 +0100, ed44 wrote: > >> When stroking two or more curves and the path is clipped > >> the result is wrong in some cases. > >> > >> Looks like the second curve is interpreted as a "line_to" > >> > >> Increased linewith will decrease the error. > > See https://bugs.freedesktop.org/show_bug.cgi?id=56574 > > -Chris > > > The bug you pointed to is fixed in the git tree. > I just tested and the stroke error is still there. Sure enough, it was a separate issue and as it turned out a trivial typo. Thanks for the report and the test case, -Chris -- Chris Wilson, Intel Open Source Technology Centre From ed44 at xs4all.nl Fri Nov 2 10:25:33 2012 From: ed44 at xs4all.nl (ed44) Date: Fri, 02 Nov 2012 18:25:33 +0100 Subject: [cairo] Bug in 1.12.4 and 1.12.6 : FIXED (no content) In-Reply-To: <6c3329$71c1k0@orsmga002.jf.intel.com> References: <50914E6C.9070309@xs4all.nl> <5093D76B.5040706@xs4all.nl> <6c3329$71c1k0@orsmga002.jf.intel.com> Message-ID: <5094020D.90101@xs4all.nl> (no content) From chris at chris-wilson.co.uk Sun Nov 4 07:40:51 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Sun, 4 Nov 2012 15:40:51 +0000 Subject: [cairo] cairo release 1.12.8 now available Message-ID: <20121104154051.GA18864@cantiga.alporthouse.com> A new cairo release 1.12.8 is now available from: http://cairographics.org/releases/cairo-1.12.8.tar.xz which can be verified with: http://cairographics.org/releases/cairo-1.12.8.tar.xz.sha1 56a10bf3b804367c97734d655c23a9f652d5c297 cairo-1.12.8.tar.xz http://cairographics.org/releases/cairo-1.12.8.tar.xz.sha1.asc (signed by Chris Wilson) Additionally, a git clone of the source tree: git clone git://git.cairographics.org/git/cairo will include a signed 1.12.8 tag which points to a commit named: cc162915a55cc67587677352bd9e389f16117853 which can be verified with: git verify-tag 1.12.8 and can be checked out with a command such as: git checkout -b build 1.12.8 Release 1.12.8 (2012-11-24 Chris Wilson ) =================================================================== Another couple of weeks and a few more bugs have been found and fixed, it is time to push the next point release. Many thanks to everyone who reported their issues and helped us track down the bugs and helped testing the fixes. Bug fixes --------- Expand the sanity checking for broken combinations of XSendEvent and ShmCompletionEvent. Notice that "The X.Org Foundation" sometimes also identifies itself as "The Xorg Foundation". Handle various ages of libXext and its Shm headers. Fix the invalid clipping of the source drawable when using SHM transport to upload images. https://bugs.freedesktop.org/show_bug.cgi?id=56547 Handle all Type1 postscript operators for better font compatibility. https://bugs.freedesktop.org/show_bug.cgi?id=56265 Fix a couple of memory leaks in Type1 font subsetting https://bugs.freedesktop.org/show_bug.cgi?id=56566 Tighten the evaluation of the start/stop pen vertices, and catch a few instances where we would use a fan instead of a bevel. https://bugs.freedesktop.org/show_bug.cgi?id=56432 Fix assumption that geometric clipping always succeeds with the span-compositor. https://bugs.freedesktop.org/show_bug.cgi?id=56574 Fix call to spline intersection when evaluating whether a stoke is visible. Remember to copy inferior sources when using SHM to readback the surface for use as a source. Complete list of changes since 1.12.6 ------------------------------------- Adrian Johnson (5): type1-subset: parse all operators type1-subset: restore correct callothersub behavior type1-subset: ensure subroutine numnber is an integer type1-subset: fix memory leak type1-subset: remove unused variable Chris Wilson (19): version: Post release bump to 1.12.7 xlib/shm: Sanity check that the server handles XSendEvent with ShmCompletion xlib: Check for both X.org and Xorg ServerVendors xlib/shm: Check for XShm headers xlib/shm: Use shmstr.h instead of shmproto.h if available xlib: Apply the image offsets to the destination rather the source pen: First check whether the in/out edges lie within the single pen vertex xlib/shm: Fix bogus assertion without shm available image: Add a couple of tracepoints for spans fallbacks stroke: Precompute the line half-width util/show-polygon: Show the limited range of each edge spans: Do not assume that we manage to perform the clip geometrically xlib: Fixup standalone header compilation for 'make check' gl: Tune the default VBO size to reduce overhead on embedded devices pen: Tighten checking for bevel (start==stop) joins test: Add stroke-clipped stroke: Fix calling '_cairo_spline_intersect' for in-bounds checking of splines xlib/shm: Need IncludeInferiors when creating the source fallback 1.12.8 release Kevin Tardif (1): type1-subset, cff-subset: Plugged 2 memory leaks What is cairo ============= Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (for example, through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo include stroking and filling cubic B?zier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.). Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around. Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1. Where to get more information about cairo ========================================= The primary source of information about cairo is: http://cairographics.org/ The latest versions of cairo can always be found at: http://cairographics.org/download Documentation on using cairo and frequently-asked questions: http://cairographics.org/documentation http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Roadmap and unscheduled things to do, (please feel free to help out): http://cairographics.org/roadmap http://cairographics.org/todo -- Chris Wilson, Intel Open Source Technology Centre -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From moreau.steve at free.fr Mon Nov 5 07:24:59 2012 From: moreau.steve at free.fr (Steve Moreau) Date: Mon, 5 Nov 2012 16:24:59 +0100 Subject: [cairo] How to flatten several data surfaces with transparency Message-ID: Hi all, I was playing with cairo to flatten several layers with transparency. Some of my surfaces are data surface filled by an external lib. Pixels on these surfaces have distributed alpha values (not only fully transparent or opaque). When I dump any surface independently, the transparency seems to be fine. But as soon as I want to compose them, the transparent values of the top layer behaves oddly. I did a lot of tests but the best I could do to explain is the dummy cpp file attached. Basically I draw a gradient manually (let's say it is what the external lib do). So alpha layer is in [0,1]. I want a red square to be behind this gradient. So I expect the result square not to change on parts where transparency is near 0. When line 52 : buf[y*rowLen+x*4+1] = 50; I see the square but is already altered because it is not its actual color. When line 52 : buf[y*rowLen+x*4+1] = 255; I see everything in green and I just can't explain why for now. I keep on reading the doc to get it, but if someone could explain what happens and how I could merge/flatten/composite several layers, it would be nice, because it is a little unclear to me for now. Thanks, Steve PS: A copy/paste way to compile and run the example : $ g++ -g -I/usr/include/cairo -o test Dummy.cpp -lpng -lcairo && ./test A way to see the result : $ eog test.png -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Dummy.cpp Type: text/x-c++src Size: 5000 bytes Desc: not available URL: From emmanuel.pacaud at lapp.in2p3.fr Mon Nov 5 07:52:28 2012 From: emmanuel.pacaud at lapp.in2p3.fr (Emmanuel Pacaud) Date: Mon, 05 Nov 2012 16:52:28 +0100 Subject: [cairo] How to flatten several data surfaces with transparency In-Reply-To: References: Message-ID: <1352130748.1868.70.camel@lappc-p348.in2p3.fr> Hi, Le lundi 05 novembre 2012 ? 16:24 +0100, Steve Moreau a ?crit : > I was playing with cairo to flatten several layers with transparency. I don't know if it can solve your issue, but if you alter surface data by accessing directly the memory buffer, you have to use cairo_surface_mark_dirty. If you forget this call, cairo may discard what you have done. Emmanuel. From fredbca21 at gmail.com Mon Nov 5 08:13:02 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Mon, 5 Nov 2012 17:13:02 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) In-Reply-To: <50900C200200006F00011944@v-pgw-nlx2.p.nwu.ac.za> References: <50900C200200006F00011944@v-pgw-nlx2.p.nwu.ac.za> Message-ID: Hi, Thank you Martin for your answer. The thing is, it is a feature that a surface built on a HDC gets the right clipping region. It is indeed possible to manually overwrite, re-compute and apply the clipping region to the cairo context, but it is probably better just to fix cairo and this feature :-). Also, this problem is also probably occuring in other cases (it is a crash in the compositing functions). Has anyone found a way to fix it properly? I'll double check with the new 1.12.8 that has just been released (there seem to be changes in this area), but it would be great to have feedback from the experts. Regards, Fred. 2012/10/30 Martin Schlemmer : > Hi, > >> After some additionnal debugging, it appears that the raw data pointer >> (unsigned char *data;) in the destination image surface for the >> compositor is invalid, hence the crash. I have not been able to find >> out where this comes from yet (the multiple casts throughout the code >> does not make easy for a newcomer to track this field in the image >> surface). All I can say is it is valid when the fallback image for the >> surface is created, at the beginning of the cairo_stroke call. > >> Does anybody have any clue? I feel a bit lonely on this issue :). > > I am not sure if its a feature or a bug, but if you remove the bits that sets the Clip Region directly on the HDC, it does not crash. > I assume that you should rather use: > > cairo_rectangle () > cairo_clip () > > on the created context. > > I could however be incorrect, and that creating a surface from a HDC which already has a Clip Region set directly on the HDC should not give current results - maybe somebody can verify? > > > Regards, > Martin > > >>2012/10/25 Fred bca21 : >> Hi, >> >> I have just tested with the latest cairo release (1.12.6), and it >> appears that the issue is still here (crash at the exact same >> location). Has anyone an idea of how to fix it? Should I maybe post >> this to the bugs mailing list? >> >> Regards, >> >> Fred. >> >> >> 2012/10/19 Fred bca21 : >>> Hi, >>> >>> I am new to this list but I have been using cairo and monitoring posts >>> for a couple of months now. I have a strange issue on windows when the >>> intersection between the clipping region and the drawing is very >>> small, so I am posting here with the hope that someone can help (I am >>> a bit too new to cairo's internals to debug this problem). >>> >>> Typically, the simple code below crashes (I am using a DDB bitmap for >>> the example, but it also crashes with any DC). >>> >>> #include "cairo.h" >>> #include "cairo-win32.h" >>> #include >>> { >>> // build a bitmap (same issue with DIB, whatever the bit depth) >>> HDC dc=::CreateCompatibleDC(NULL); >>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>> ::SelectObject(dc,hBmp); >>> >>> // set clip region for the DC to one single line in the middle of the bitmap >>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>> SelectClipRgn(dc, hrgn); >>> ::DeleteObject(hrgn); >>> >>> // create cairo context >>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>> if(surface) >>> { >>> cairo_t* context=cairo_create(surface); >>> if(context) >>> { >>> // draw one line >>> cairo_move_to(context,1, 1); >>> cairo_line_to(context,10,120); >>> cairo_set_source_rgb(context,1,1,1); >>> >>> // CRASHES HERE (see below): >>> cairo_stroke(context); >>> >>> // cleanup >>> cairo_destroy(context); >>> } >>> cairo_surface_destroy(surface); >>> } >>> } >>> >>> The crash occurs in cairo-image-compositor.c, on line 2197, in >>> _fill_xrgb32_lerp_opaque_spans(): >>> >>> } else while (len--) { >>> // On this line below, d has an invalid address >>> *d = lerp8x4 (r->u.fill.pixel, a, *d); >>> d++; >>> } >>> >>> If it may help, am using the static lib version of the latest release >>> (1.12.4 - pixman 26.2), and it crashes in debug or release mode, 32 or >>> 64-bit windows. It's too bad because this crash occurs all the time in >>> my code that extensively uses clipping regions! >>> >>> This crash also occurs with the previous version of cairo (1.12.2) and >>> pixman 26.0, but at a different stage (in pixman if I remember well), > > > Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html > From spitzak at gmail.com Mon Nov 5 12:10:53 2012 From: spitzak at gmail.com (Bill Spitzak) Date: Mon, 05 Nov 2012 12:10:53 -0800 Subject: [cairo] How to flatten several data surfaces with transparency In-Reply-To: References: Message-ID: <50981D4D.8080600@gmail.com> Cairo wants pre-multiplied data for the OVER composite. This likely means that the green value should depend on y just like the alpha value does. Ie set the green to (y < 50 ? 0 : 50 * (y - 50)/height) Also I recommend filling in the buffer as 32-bit words, rather than bytes. This is faster and will make the it work on a big-endian machine. unsigned char* buf = (unsigned char*)malloc(4*width*height); cairo_surface_t* dataSurface = cairo_image_surface_create_for_data (buf, CAIRO_FORMAT_ARGB32, width, height, rowLen); for (y=0; y >From 18e714f260f18e6ae13979a289b6f7892d7f82c2 Mon Sep 17 00:00:00 2001 From: Henry Song Date: Mon, 5 Nov 2012 13:16:18 -0800 Subject: [PATCH] gl: add tex_width in cairo_gl_gradient_t structure, there is no need to set cache_entry.size to be tex_width, this makes it unlikely overflows gradient cache --- src/cairo-gl-gradient-private.h | 1 + src/cairo-gl-gradient.c | 3 ++- src/cairo-gl-operand.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cairo-gl-gradient-private.h b/src/cairo-gl-gradient-private.h index 77f9bbd..c76c7b2 100644 --- a/src/cairo-gl-gradient-private.h +++ b/src/cairo-gl-gradient-private.h @@ -69,6 +69,7 @@ typedef struct _cairo_gl_gradient { cairo_reference_count_t ref_count; cairo_device_t *device; /* NB: we don't hold a reference */ GLuint tex; + int tex_width; unsigned int n_stops; const cairo_gradient_stop_t *stops; cairo_gradient_stop_t stops_embedded[1]; diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c index 1c1f972..3ceb3ed 100644 --- a/src/cairo-gl-gradient.c +++ b/src/cairo-gl-gradient.c @@ -258,7 +258,8 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, CAIRO_REFERENCE_COUNT_INIT (&gradient->ref_count, 2); gradient->cache_entry.hash = hash; - gradient->cache_entry.size = tex_width; + gradient->cache_entry.size = sizeof (cairo_gl_gradient_t *); + gradient->tex_width = tex_width; gradient->device = &ctx->base; gradient->n_stops = n_stops; gradient->stops = gradient->stops_embedded; diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c index ee6c08e..e9191aa 100644 --- a/src/cairo-gl-operand.c +++ b/src/cairo-gl-operand.c @@ -686,7 +686,7 @@ _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, height = operand->texture.surface->height; } else { - width = operand->gradient.gradient->cache_entry.size, + width = operand->gradient.gradient->tex_width, height = 1; } strcpy (custom_part, "_texdims"); -- 1.7.9.5 -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris at chris-wilson.co.uk Mon Nov 5 13:39:00 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Mon, 05 Nov 2012 21:39:00 +0000 Subject: [cairo] [patch] gl: set tex_with in cairo_gl_gradient_t instead in cairo_entry.size In-Reply-To: <3955FA337689574EB32F94B12A7E6E9E2482E538@sisaex01sj> References: <3955FA337689574EB32F94B12A7E6E9E2482E538@sisaex01sj> Message-ID: On Mon, 5 Nov 2012 21:28:31 +0000, "Henry (Yu) Song - SISA" wrote: > From 18e714f260f18e6ae13979a289b6f7892d7f82c2 Mon Sep 17 00:00:00 2001 > From: Henry Song > Date: Mon, 5 Nov 2012 13:16:18 -0800 > Subject: [PATCH] gl: add tex_width in cairo_gl_gradient_t structure, there is > no need to set cache_entry.size to be tex_width, this makes > it unlikely overflows gradient cache The idea is that the gradient cache tries to only keep a certain amount of texture memory cached. It sounds like that limit is too low -- indeed, it is set at 4096 which is only 16k, or roughly 4 gradients. That would be better with #define CAIRO_GL_GRADIENT_CACHE_SIZE 16384 judging by desktop usage, and you probably have a better idea for your use cases. -Chris -- Chris Wilson, Intel Open Source Technology Centre From hsong at sisa.samsung.com Mon Nov 5 17:34:25 2012 From: hsong at sisa.samsung.com (Henry (Yu) Song - SISA) Date: Tue, 6 Nov 2012 01:34:25 +0000 Subject: [cairo] [patch] gl: set tex_with in cairo_gl_gradient_t instead in cairo_entry.size In-Reply-To: References: <3955FA337689574EB32F94B12A7E6E9E2482E538@sisaex01sj>, Message-ID: <3955FA337689574EB32F94B12A7E6E9E24830628@sisaex01sj> Hi, Chris I am not sure why cache_entry.size has to be the tex_width. It seems that tex_width has no relation with cache_entry.size. In my patch, the cache_entry.size is set at 4, which allows 1024 gradient cached. if CAIRO_GL_GRADIENT_CACHE_SIZE = 16384, and let's assume each tex_with is about 64, that is only 256 gradient cache. The gradient cache should not be limited by system memory, it should, I think, be limited by the GPU memory, because each texture is 1 pixel height, and even, in worst case, each tex_width is 1024, 1024 gradient cache is 4 M (1024x1024x4 (RGBA)) bytes. - that should be OK, I think Please comments Thanks ________________________________________ From: cairo-bounces+henry.song=samsung.com at cairographics.org [cairo-bounces+henry.song=samsung.com at cairographics.org] on behalf of Chris Wilson [chris at chris-wilson.co.uk] Sent: Monday, November 05, 2012 1:39 PM To: Henry (Yu) Song - SISA; cairo at cairographics.org Subject: Re: [cairo] [patch] gl: set tex_with in cairo_gl_gradient_t instead in cairo_entry.size On Mon, 5 Nov 2012 21:28:31 +0000, "Henry (Yu) Song - SISA" wrote: > From 18e714f260f18e6ae13979a289b6f7892d7f82c2 Mon Sep 17 00:00:00 2001 > From: Henry Song > Date: Mon, 5 Nov 2012 13:16:18 -0800 > Subject: [PATCH] gl: add tex_width in cairo_gl_gradient_t structure, there is > no need to set cache_entry.size to be tex_width, this makes > it unlikely overflows gradient cache The idea is that the gradient cache tries to only keep a certain amount of texture memory cached. It sounds like that limit is too low -- indeed, it is set at 4096 which is only 16k, or roughly 4 gradients. That would be better with #define CAIRO_GL_GRADIENT_CACHE_SIZE 16384 judging by desktop usage, and you probably have a better idea for your use cases. -Chris -- Chris Wilson, Intel Open Source Technology Centre -- cairo mailing list cairo at cairographics.org http://lists.cairographics.org/mailman/listinfo/cairo From chris at chris-wilson.co.uk Mon Nov 5 21:48:08 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Tue, 06 Nov 2012 05:48:08 +0000 Subject: [cairo] [patch] gl: set tex_with in cairo_gl_gradient_t instead in cairo_entry.size In-Reply-To: <3955FA337689574EB32F94B12A7E6E9E24830628@sisaex01sj> References: <3955FA337689574EB32F94B12A7E6E9E2482E538@sisaex01sj>, <3955FA337689574EB32F94B12A7E6E9E24830628@sisaex01sj> Message-ID: <84c8a8$6dlet0@orsmga001.jf.intel.com> On Tue, 6 Nov 2012 01:34:25 +0000, "Henry (Yu) Song - SISA" wrote: > Hi, Chris > > I am not sure why cache_entry.size has to be the tex_width. It seems that tex_width has no relation with cache_entry.size. In my patch, the cache_entry.size is set at 4, which allows 1024 gradient cached. > > if CAIRO_GL_GRADIENT_CACHE_SIZE = 16384, and let's assume each tex_with is about 64, that is only 256 gradient cache. > > > The gradient cache should not be limited by system memory, it should, I think, be limited by the GPU memory, because each texture is 1 pixel height, and even, in worst case, each tex_width is 1024, 1024 gradient cache is 4 M (1024x1024x4 (RGBA)) bytes. - that should be OK, I think Exactly. The limit we want to express upon the cache should be measured in bytes (or a multiple thereof) and so cache_entry.size should also be an estimate of how much GPU memory will be consumed by that entry. Then the cache is able to reap entries to keep its overall GPU memory usage within the limit. Since the gradients were of variable width but fixed height, using the width was a reasonable approximation to the amount of GPU memory required to store it. -Chris -- Chris Wilson, Intel Open Source Technology Centre From moreau.steve at free.fr Mon Nov 5 22:06:53 2012 From: moreau.steve at free.fr (Steve Moreau) Date: Tue, 6 Nov 2012 07:06:53 +0100 Subject: [cairo] How to flatten several data surfaces with transparency In-Reply-To: <50981D4D.8080600@gmail.com> References: <50981D4D.8080600@gmail.com> Message-ID: Thank you guys, I will try and let you know when it works. Regards, Steve 2012/11/5 Bill Spitzak > Cairo wants pre-multiplied data for the OVER composite. This likely means > that the green value should depend on y just like the alpha value does. Ie > set the green to (y < 50 ? 0 : 50 * (y - 50)/height) > > Also I recommend filling in the buffer as 32-bit words, rather than bytes. > This is faster and will make the it work on a big-endian machine. > > unsigned char* buf = (unsigned char*)malloc(4*width*height); > cairo_surface_t* dataSurface = cairo_image_surface_create_**for_data > (buf, CAIRO_FORMAT_ARGB32, width, height, rowLen); > for (y=0; y { > for (x=0; x { > //setColor(&buf[y*rowLen+x*4], 0x00FF00, y*255.0/3/height); > buf[y*rowLen+x*4+0] = 0; > buf[y*rowLen+x*4+1] = 50; > buf[y*rowLen+x*4+2] = 0; > buf[y*rowLen+x*4+3] = (y < 50 ? 0 : (y-50)*255.0/height); > } > } > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From moreau.steve at free.fr Mon Nov 5 23:37:16 2012 From: moreau.steve at free.fr (Steve Moreau) Date: Tue, 6 Nov 2012 08:37:16 +0100 Subject: [cairo] How to flatten several data surfaces with transparency In-Reply-To: References: <50981D4D.8080600@gmail.com> Message-ID: Hi all, Thanks for all inputs. I remember I tested the byte ordering manually so in this case that was not the problem (even it was not platform independent code I agree). Here the issue seems to be the problem raised by behdad in Carlos' thread : http://lists.freedesktop.org/archives/cairo/2012-July/023298.html * @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with * alpha in the upper 8 bits, then red, then green, then blue. * The 32-bit quantities are stored native-endian. *Pre-multiplied * alpha is used. (That is, 50% transparent red is 0x80800000, * not 0x80ff0000.) (Since 1.0)* So I had to level the r, g, and b values to "alpha" maximum. In other words, I understood that r or g or b should never be greater than the matching opacity value. For anyone interested, please find below how I interpreted it (for now). Thanks, Steve void setColor(unsigned char* pixel, unsigned int color, unsigned char opacity = 0xFF) { unsigned char r = (color >> 16) & 0xFF; unsigned char g = (color >> 8) & 0xFF; unsigned char b = (color) & 0xFF; r = r*opacity/255; g = g*opacity/255; b = b*opacity/255; *((unsigned int*) pixel) = opacity << 24 | r << 16 | g << 8 | b; } 2012/11/6 Steve Moreau > Thank you guys, > > I will try and let you know when it works. > Regards, > > Steve > > > 2012/11/5 Bill Spitzak > >> Cairo wants pre-multiplied data for the OVER composite. This likely means >> that the green value should depend on y just like the alpha value does. Ie >> set the green to (y < 50 ? 0 : 50 * (y - 50)/height) >> >> Also I recommend filling in the buffer as 32-bit words, rather than >> bytes. This is faster and will make the it work on a big-endian machine. >> >> unsigned char* buf = (unsigned char*)malloc(4*width*height); >> cairo_surface_t* dataSurface = cairo_image_surface_create_**for_data >> (buf, CAIRO_FORMAT_ARGB32, width, height, rowLen); >> for (y=0; y> { >> for (x=0; x> { >> //setColor(&buf[y*rowLen+x*4], 0x00FF00, y*255.0/3/height); >> buf[y*rowLen+x*4+0] = 0; >> buf[y*rowLen+x*4+1] = 50; >> buf[y*rowLen+x*4+2] = 0; >> buf[y*rowLen+x*4+3] = (y < 50 ? 0 : (y-50)*255.0/height); >> } >> } >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From moreau.steve at free.fr Tue Nov 6 02:50:59 2012 From: moreau.steve at free.fr (Steve Moreau) Date: Tue, 6 Nov 2012 11:50:59 +0100 Subject: [cairo] Fwd: New example to illustrate data buffer manipulation In-Reply-To: References: Message-ID: Hi all, Following the question I asked here : http://lists.freedesktop.org/archives/cairo/2012-November/023716.html, I tried to make an example to illustrate : - several layers flattening with transparency - direct data buffer manipulation As far I know, there is no example to do that ( http://cairographics.org/samples/ ?), so feel free to made it available if you think it could help someone. $ gcc -Wall -I/usr/include/cairo -o DirectBufferManipulation DirectBufferManipulation.c -lcairo && ./DirectBufferManipulation or $ gcc -Wall `pkg-config --cflags cairo` -o DirectBufferManipulation DirectBufferManipulation.c `pkg-config --libs cairo` && ./DirectBufferManipulation See you, Steve [image: Images int?gr?es 3] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 2137 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: DirectBufferManipulation.c Type: text/x-csrc Size: 2315 bytes Desc: not available URL: From fredbca21 at gmail.com Wed Nov 7 02:06:29 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Wed, 7 Nov 2012 11:06:29 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) In-Reply-To: References: <50900C200200006F00011944@v-pgw-nlx2.p.nwu.ac.za> Message-ID: Hi, No surprise: the issue is still here in 1.12.8. Running the code below crashes in _fill_xrgb32_lerp_opaque_spans. If anyone can give me an idea of how to get started on debugging this, I'd be glad to help fixing this problem. I have already spent some time on it, but it's pretty hard to understand where the composite destination data pointer is changed without not much knowledge of the cairo code. Just wondering: why isn't there much interest for this problem? Thanks! Fred. { // build a bitmap (same issue with DIB, whatever the bit depth) HDC dc=::CreateCompatibleDC(NULL); HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); ::SelectObject(dc,hBmp); // set clip region for the DC to one single line in the middle of the bitmap HRGN hrgn = CreateRectRgn(0,100,100, 101); SelectClipRgn(dc, hrgn); ::DeleteObject(hrgn); // create cairo context cairo_surface_t* surface=cairo_win32_surface_create(dc); if(surface) { cairo_t* context=cairo_create(surface); if(context) { // draw one line cairo_move_to(context,1, 1); cairo_line_to(context,10,120); cairo_set_source_rgb(context,1,1,1); // CRASHES HERE: cairo_stroke(context); // cleanup cairo_destroy(context); } cairo_surface_destroy(surface); } } 2012/11/5 Fred bca21 : > Hi, > > Thank you Martin for your answer. The thing is, it is a feature that a > surface built on a HDC gets the right clipping region. It is indeed > possible to manually overwrite, re-compute and apply the clipping > region to the cairo context, but it is probably better just to fix > cairo and this feature :-). Also, this problem is also probably > occuring in other cases (it is a crash in the compositing functions). > > Has anyone found a way to fix it properly? > > I'll double check with the new 1.12.8 that has just been released > (there seem to be changes in this area), but it would be great to have > feedback from the experts. > > Regards, > > Fred. > > > 2012/10/30 Martin Schlemmer : >> Hi, >> >>> After some additionnal debugging, it appears that the raw data pointer >>> (unsigned char *data;) in the destination image surface for the >>> compositor is invalid, hence the crash. I have not been able to find >>> out where this comes from yet (the multiple casts throughout the code >>> does not make easy for a newcomer to track this field in the image >>> surface). All I can say is it is valid when the fallback image for the >>> surface is created, at the beginning of the cairo_stroke call. >> >>> Does anybody have any clue? I feel a bit lonely on this issue :). >> >> I am not sure if its a feature or a bug, but if you remove the bits that sets the Clip Region directly on the HDC, it does not crash. >> I assume that you should rather use: >> >> cairo_rectangle () >> cairo_clip () >> >> on the created context. >> >> I could however be incorrect, and that creating a surface from a HDC which already has a Clip Region set directly on the HDC should not give current results - maybe somebody can verify? >> >> >> Regards, >> Martin >> >> >>>2012/10/25 Fred bca21 : >>> Hi, >>> >>> I have just tested with the latest cairo release (1.12.6), and it >>> appears that the issue is still here (crash at the exact same >>> location). Has anyone an idea of how to fix it? Should I maybe post >>> this to the bugs mailing list? >>> >>> Regards, >>> >>> Fred. >>> >>> >>> 2012/10/19 Fred bca21 : >>>> Hi, >>>> >>>> I am new to this list but I have been using cairo and monitoring posts >>>> for a couple of months now. I have a strange issue on windows when the >>>> intersection between the clipping region and the drawing is very >>>> small, so I am posting here with the hope that someone can help (I am >>>> a bit too new to cairo's internals to debug this problem). >>>> >>>> Typically, the simple code below crashes (I am using a DDB bitmap for >>>> the example, but it also crashes with any DC). >>>> >>>> #include "cairo.h" >>>> #include "cairo-win32.h" >>>> #include >>>> { >>>> // build a bitmap (same issue with DIB, whatever the bit depth) >>>> HDC dc=::CreateCompatibleDC(NULL); >>>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>>> ::SelectObject(dc,hBmp); >>>> >>>> // set clip region for the DC to one single line in the middle of the bitmap >>>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>>> SelectClipRgn(dc, hrgn); >>>> ::DeleteObject(hrgn); >>>> >>>> // create cairo context >>>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>>> if(surface) >>>> { >>>> cairo_t* context=cairo_create(surface); >>>> if(context) >>>> { >>>> // draw one line >>>> cairo_move_to(context,1, 1); >>>> cairo_line_to(context,10,120); >>>> cairo_set_source_rgb(context,1,1,1); >>>> >>>> // CRASHES HERE (see below): >>>> cairo_stroke(context); >>>> >>>> // cleanup >>>> cairo_destroy(context); >>>> } >>>> cairo_surface_destroy(surface); >>>> } >>>> } >>>> >>>> The crash occurs in cairo-image-compositor.c, on line 2197, in >>>> _fill_xrgb32_lerp_opaque_spans(): >>>> >>>> } else while (len--) { >>>> // On this line below, d has an invalid address >>>> *d = lerp8x4 (r->u.fill.pixel, a, *d); >>>> d++; >>>> } >>>> >>>> If it may help, am using the static lib version of the latest release >>>> (1.12.4 - pixman 26.2), and it crashes in debug or release mode, 32 or >>>> 64-bit windows. It's too bad because this crash occurs all the time in >>>> my code that extensively uses clipping regions! >>>> >>>> This crash also occurs with the previous version of cairo (1.12.2) and >>>> pixman 26.0, but at a different stage (in pixman if I remember well), >> >> >> Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html >> From fredbca21 at gmail.com Wed Nov 7 04:56:01 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Wed, 7 Nov 2012 13:56:01 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) In-Reply-To: References: <50900C200200006F00011944@v-pgw-nlx2.p.nwu.ac.za> Message-ID: Hi Again, It appears that the bug seems to happen because the extents of the fallback image has an offset in its origin. when performing the mapping of the surface to an image, in cairo-win32-display-surface.c, on line 467: return _cairo_image_surface_map_to_image (surface->image, extents); this actually creates a pixman image with an invalid pointer, that is supposed to be compensated by the device transform, as you can see in cairo-image-surface.c on line 805: uint8_t *data; data = other->data; data += extents->y * other->stride; // THIS POINTER IS OUTSIDE OF THE ACTUAL IMAGE (the image is created with the actual extent, not the entire surface extent) data += extents->x * PIXMAN_FORMAT_BPP (other->pixman_format)/ 8; surface =_cairo_image_surface_create_with_pixman_format (data, other->pixman_format, extents->width, extents->height, other->stride); cairo_surface_set_device_offset (surface, -extents->x, -extents->y); /// THIS IS SUPPOSED TO COMPENSATE THE OFFSET ABOVE return surface; But in the end, when reaching the _fill_xrgb32_lerp_opaque_spans function, the data pointer is still the wrong one (as offset in the function above, not compensated by the device transform). So either the device transform should be applied at some point and it is not, or the mapping of the image is wrong and should not use the origin of the extents, That's all I can do for now with my imited knowledge, but I hope it helps a little bit and maybe this will motivate someone to check this out. Regards, Fred. 2012/11/7 Fred bca21 : > Hi, > > No surprise: the issue is still here in 1.12.8. Running the code below > crashes in _fill_xrgb32_lerp_opaque_spans. > > If anyone can give me an idea of how to get started on debugging this, > I'd be glad to help fixing this problem. I have already spent some > time on it, but it's pretty hard to understand where the composite > destination data pointer is changed without not much knowledge of the > cairo code. > > Just wondering: why isn't there much interest for this problem? > > Thanks! > > Fred. > > { > // build a bitmap (same issue with DIB, whatever the bit depth) > HDC dc=::CreateCompatibleDC(NULL); > HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); > ::SelectObject(dc,hBmp); > > // set clip region for the DC to one single line in the middle of the bitmap > HRGN hrgn = CreateRectRgn(0,100,100, 101); > SelectClipRgn(dc, hrgn); > ::DeleteObject(hrgn); > > // create cairo context > cairo_surface_t* surface=cairo_win32_surface_create(dc); > if(surface) > { > cairo_t* context=cairo_create(surface); > if(context) > { > // draw one line > cairo_move_to(context,1, 1); > cairo_line_to(context,10,120); > cairo_set_source_rgb(context,1,1,1); > > // CRASHES HERE: > cairo_stroke(context); > > // cleanup > cairo_destroy(context); > } > cairo_surface_destroy(surface); > } > } > > 2012/11/5 Fred bca21 : >> Hi, >> >> Thank you Martin for your answer. The thing is, it is a feature that a >> surface built on a HDC gets the right clipping region. It is indeed >> possible to manually overwrite, re-compute and apply the clipping >> region to the cairo context, but it is probably better just to fix >> cairo and this feature :-). Also, this problem is also probably >> occuring in other cases (it is a crash in the compositing functions). >> >> Has anyone found a way to fix it properly? >> >> I'll double check with the new 1.12.8 that has just been released >> (there seem to be changes in this area), but it would be great to have >> feedback from the experts. >> >> Regards, >> >> Fred. >> >> >> 2012/10/30 Martin Schlemmer : >>> Hi, >>> >>>> After some additionnal debugging, it appears that the raw data pointer >>>> (unsigned char *data;) in the destination image surface for the >>>> compositor is invalid, hence the crash. I have not been able to find >>>> out where this comes from yet (the multiple casts throughout the code >>>> does not make easy for a newcomer to track this field in the image >>>> surface). All I can say is it is valid when the fallback image for the >>>> surface is created, at the beginning of the cairo_stroke call. >>> >>>> Does anybody have any clue? I feel a bit lonely on this issue :). >>> >>> I am not sure if its a feature or a bug, but if you remove the bits that sets the Clip Region directly on the HDC, it does not crash. >>> I assume that you should rather use: >>> >>> cairo_rectangle () >>> cairo_clip () >>> >>> on the created context. >>> >>> I could however be incorrect, and that creating a surface from a HDC which already has a Clip Region set directly on the HDC should not give current results - maybe somebody can verify? >>> >>> >>> Regards, >>> Martin >>> >>> >>>>2012/10/25 Fred bca21 : >>>> Hi, >>>> >>>> I have just tested with the latest cairo release (1.12.6), and it >>>> appears that the issue is still here (crash at the exact same >>>> location). Has anyone an idea of how to fix it? Should I maybe post >>>> this to the bugs mailing list? >>>> >>>> Regards, >>>> >>>> Fred. >>>> >>>> >>>> 2012/10/19 Fred bca21 : >>>>> Hi, >>>>> >>>>> I am new to this list but I have been using cairo and monitoring posts >>>>> for a couple of months now. I have a strange issue on windows when the >>>>> intersection between the clipping region and the drawing is very >>>>> small, so I am posting here with the hope that someone can help (I am >>>>> a bit too new to cairo's internals to debug this problem). >>>>> >>>>> Typically, the simple code below crashes (I am using a DDB bitmap for >>>>> the example, but it also crashes with any DC). >>>>> >>>>> #include "cairo.h" >>>>> #include "cairo-win32.h" >>>>> #include >>>>> { >>>>> // build a bitmap (same issue with DIB, whatever the bit depth) >>>>> HDC dc=::CreateCompatibleDC(NULL); >>>>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>>>> ::SelectObject(dc,hBmp); >>>>> >>>>> // set clip region for the DC to one single line in the middle of the bitmap >>>>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>>>> SelectClipRgn(dc, hrgn); >>>>> ::DeleteObject(hrgn); >>>>> >>>>> // create cairo context >>>>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>>>> if(surface) >>>>> { >>>>> cairo_t* context=cairo_create(surface); >>>>> if(context) >>>>> { >>>>> // draw one line >>>>> cairo_move_to(context,1, 1); >>>>> cairo_line_to(context,10,120); >>>>> cairo_set_source_rgb(context,1,1,1); >>>>> >>>>> // CRASHES HERE (see below): >>>>> cairo_stroke(context); >>>>> >>>>> // cleanup >>>>> cairo_destroy(context); >>>>> } >>>>> cairo_surface_destroy(surface); >>>>> } >>>>> } >>>>> >>>>> The crash occurs in cairo-image-compositor.c, on line 2197, in >>>>> _fill_xrgb32_lerp_opaque_spans(): >>>>> >>>>> } else while (len--) { >>>>> // On this line below, d has an invalid address >>>>> *d = lerp8x4 (r->u.fill.pixel, a, *d); >>>>> d++; >>>>> } >>>>> >>>>> If it may help, am using the static lib version of the latest release >>>>> (1.12.4 - pixman 26.2), and it crashes in debug or release mode, 32 or >>>>> 64-bit windows. It's too bad because this crash occurs all the time in >>>>> my code that extensively uses clipping regions! >>>>> >>>>> This crash also occurs with the previous version of cairo (1.12.2) and >>>>> pixman 26.0, but at a different stage (in pixman if I remember well), >>> >>> >>> Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html >>> From fredbca21 at gmail.com Wed Nov 7 06:13:56 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Wed, 7 Nov 2012 15:13:56 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) - PATCH proposal Message-ID: Hi, Does the patch below make sense to you? It seems the extent should just be offset to the origin when mapping the win32 surface to an image, since the image is already created at the right location. I have not been able to make extensive tests yet, but can someone review this patch? BTW, is there any way to build and run the tests on windows? Neither the configure nor the Makefile.Win32 method work on my system. Index: src/win32/cairo-win32-display-surface.c =================================================================== --- src/win32/cairo-win32-display-surface.c +++ src/win32/cairo-win32-display-surface.c @@ -464,8 +464,16 @@ surface = to_win32_display_surface (surface->fallback); done: GdiFlush(); - return _cairo_image_surface_map_to_image (surface->image, extents); + // since the image built above is already offset at the right position, create the image at 0,0. + { + cairo_rectangle_int_t r; + r.x=0; + r.y=0; + r.width=extents->width; + r.height=extents->height; + return _cairo_image_surface_map_to_image (surface->image, &r); + } err: cairo_surface_destroy (surface->fallback); surface->fallback = NULL; 2012/11/7 Fred bca21 : > Hi Again, > > It appears that the bug seems to happen because the extents of the > fallback image has an offset in its origin. > when performing the mapping of the surface to an image, in > cairo-win32-display-surface.c, on line 467: > return _cairo_image_surface_map_to_image (surface->image, extents); > > this actually creates a pixman image with an invalid pointer, that is > supposed to be compensated by the device transform, as you can see in > cairo-image-surface.c on line 805: > uint8_t *data; > > data = other->data; > data += extents->y * other->stride; // THIS POINTER IS OUTSIDE OF > THE ACTUAL IMAGE (the image is created with the actual extent, not the > entire surface extent) > data += extents->x * PIXMAN_FORMAT_BPP (other->pixman_format)/ 8; > > surface =_cairo_image_surface_create_with_pixman_format (data, > other->pixman_format, > extents->width, > extents->height, > other->stride); > > cairo_surface_set_device_offset (surface, -extents->x, > -extents->y); /// THIS IS SUPPOSED TO COMPENSATE THE OFFSET ABOVE > return surface; > > But in the end, when reaching the _fill_xrgb32_lerp_opaque_spans > function, the data pointer is still the wrong one (as offset in the > function above, not compensated by the device transform). > > So either the device transform should be applied at some point and it > is not, or the mapping of the image is wrong and should not use the > origin of the extents, > > That's all I can do for now with my imited knowledge, but I hope it > helps a little bit and maybe this will motivate someone to check this > out. > > Regards, > > Fred. > > 2012/11/7 Fred bca21 : >> Hi, >> >> No surprise: the issue is still here in 1.12.8. Running the code below >> crashes in _fill_xrgb32_lerp_opaque_spans. >> >> If anyone can give me an idea of how to get started on debugging this, >> I'd be glad to help fixing this problem. I have already spent some >> time on it, but it's pretty hard to understand where the composite >> destination data pointer is changed without not much knowledge of the >> cairo code. >> >> Just wondering: why isn't there much interest for this problem? >> >> Thanks! >> >> Fred. >> >> { >> // build a bitmap (same issue with DIB, whatever the bit depth) >> HDC dc=::CreateCompatibleDC(NULL); >> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >> ::SelectObject(dc,hBmp); >> >> // set clip region for the DC to one single line in the middle of the bitmap >> HRGN hrgn = CreateRectRgn(0,100,100, 101); >> SelectClipRgn(dc, hrgn); >> ::DeleteObject(hrgn); >> >> // create cairo context >> cairo_surface_t* surface=cairo_win32_surface_create(dc); >> if(surface) >> { >> cairo_t* context=cairo_create(surface); >> if(context) >> { >> // draw one line >> cairo_move_to(context,1, 1); >> cairo_line_to(context,10,120); >> cairo_set_source_rgb(context,1,1,1); >> >> // CRASHES HERE: >> cairo_stroke(context); >> >> // cleanup >> cairo_destroy(context); >> } >> cairo_surface_destroy(surface); >> } >> } >> >> 2012/11/5 Fred bca21 : >>> Hi, >>> >>> Thank you Martin for your answer. The thing is, it is a feature that a >>> surface built on a HDC gets the right clipping region. It is indeed >>> possible to manually overwrite, re-compute and apply the clipping >>> region to the cairo context, but it is probably better just to fix >>> cairo and this feature :-). Also, this problem is also probably >>> occuring in other cases (it is a crash in the compositing functions). >>> >>> Has anyone found a way to fix it properly? >>> >>> I'll double check with the new 1.12.8 that has just been released >>> (there seem to be changes in this area), but it would be great to have >>> feedback from the experts. >>> >>> Regards, >>> >>> Fred. >>> >>> >>> 2012/10/30 Martin Schlemmer : >>>> Hi, >>>> >>>>> After some additionnal debugging, it appears that the raw data pointer >>>>> (unsigned char *data;) in the destination image surface for the >>>>> compositor is invalid, hence the crash. I have not been able to find >>>>> out where this comes from yet (the multiple casts throughout the code >>>>> does not make easy for a newcomer to track this field in the image >>>>> surface). All I can say is it is valid when the fallback image for the >>>>> surface is created, at the beginning of the cairo_stroke call. >>>> >>>>> Does anybody have any clue? I feel a bit lonely on this issue :). >>>> >>>> I am not sure if its a feature or a bug, but if you remove the bits that sets the Clip Region directly on the HDC, it does not crash. >>>> I assume that you should rather use: >>>> >>>> cairo_rectangle () >>>> cairo_clip () >>>> >>>> on the created context. >>>> >>>> I could however be incorrect, and that creating a surface from a HDC which already has a Clip Region set directly on the HDC should not give current results - maybe somebody can verify? >>>> >>>> >>>> Regards, >>>> Martin >>>> >>>> >>>>>2012/10/25 Fred bca21 : >>>>> Hi, >>>>> >>>>> I have just tested with the latest cairo release (1.12.6), and it >>>>> appears that the issue is still here (crash at the exact same >>>>> location). Has anyone an idea of how to fix it? Should I maybe post >>>>> this to the bugs mailing list? >>>>> >>>>> Regards, >>>>> >>>>> Fred. >>>>> >>>>> >>>>> 2012/10/19 Fred bca21 : >>>>>> Hi, >>>>>> >>>>>> I am new to this list but I have been using cairo and monitoring posts >>>>>> for a couple of months now. I have a strange issue on windows when the >>>>>> intersection between the clipping region and the drawing is very >>>>>> small, so I am posting here with the hope that someone can help (I am >>>>>> a bit too new to cairo's internals to debug this problem). >>>>>> >>>>>> Typically, the simple code below crashes (I am using a DDB bitmap for >>>>>> the example, but it also crashes with any DC). >>>>>> >>>>>> #include "cairo.h" >>>>>> #include "cairo-win32.h" >>>>>> #include >>>>>> { >>>>>> // build a bitmap (same issue with DIB, whatever the bit depth) >>>>>> HDC dc=::CreateCompatibleDC(NULL); >>>>>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>>>>> ::SelectObject(dc,hBmp); >>>>>> >>>>>> // set clip region for the DC to one single line in the middle of the bitmap >>>>>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>>>>> SelectClipRgn(dc, hrgn); >>>>>> ::DeleteObject(hrgn); >>>>>> >>>>>> // create cairo context >>>>>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>>>>> if(surface) >>>>>> { >>>>>> cairo_t* context=cairo_create(surface); >>>>>> if(context) >>>>>> { >>>>>> // draw one line >>>>>> cairo_move_to(context,1, 1); >>>>>> cairo_line_to(context,10,120); >>>>>> cairo_set_source_rgb(context,1,1,1); >>>>>> >>>>>> // CRASHES HERE (see below): >>>>>> cairo_stroke(context); >>>>>> >>>>>> // cleanup >>>>>> cairo_destroy(context); >>>>>> } >>>>>> cairo_surface_destroy(surface); >>>>>> } >>>>>> } >>>>>> >>>>>> The crash occurs in cairo-image-compositor.c, on line 2197, in >>>>>> _fill_xrgb32_lerp_opaque_spans(): >>>>>> >>>>>> } else while (len--) { >>>>>> // On this line below, d has an invalid address >>>>>> *d = lerp8x4 (r->u.fill.pixel, a, *d); >>>>>> d++; >>>>>> } >>>>>> >>>>>> If it may help, am using the static lib version of the latest release >>>>>> (1.12.4 - pixman 26.2), and it crashes in debug or release mode, 32 or >>>>>> 64-bit windows. It's too bad because this crash occurs all the time in >>>>>> my code that extensively uses clipping regions! >>>>>> >>>>>> This crash also occurs with the previous version of cairo (1.12.2) and >>>>>> pixman 26.0, but at a different stage (in pixman if I remember well), >>>> >>>> >>>> Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html >>>> From sandmann at cs.au.dk Wed Nov 7 11:09:44 2012 From: sandmann at cs.au.dk (=?utf-8?Q?S=C3=B8ren?= Sandmann) Date: Wed, 07 Nov 2012 20:09:44 +0100 Subject: [cairo] [cairo-announce] [ANNOUNCE] pixman major release 0.28.0 now available Message-ID: A new major release 0.28.0 of the pixman rendering library is now available. Highlights of this release: * Support for sRGB coded images [Antti Lankila] * New API for fast glyph rendering [Soren Sandmann] * Faster bilinear scaling on iwMMX, Loongson and MMX [Matt Turner] * More fast paths in the MIPS DSPr2 backend [Nemanja Lukic] * Faster scaling in general and on SSE2 in particular [Siarhei Siamashka] Please send bug reports to pixman at lists.freedesktop.org or file them at https://bugs.freedesktop.org/enter_bug.cgi?product=pixman Thanks, Soren tar.gz: http://cairographics.org/releases/pixman-0.28.0.tar.gz http://xorg.freedesktop.org/archive/individual/lib/pixman-0.28.0.tar.gz tar.bz2: http://xorg.freedesktop.org/archive/individual/lib/pixman-0.28.0.tar.bz2 Hashes: MD5: 0554c354aed2d7845180f310a9a15f20 pixman-0.28.0.tar.gz MD5: 703c3f62437b161c610056e076560570 pixman-0.28.0.tar.bz2 SHA1: 79828c1a69b459c8cc7d468dd09e2b11ecdc9c19 pixman-0.28.0.tar.gz SHA1: cfc7a18a8811bf4ff0890f547c315bda8097f6ad pixman-0.28.0.tar.bz2 GPG signature: http://cairographics.org/releases/pixman-0.28.0.tar.gz.sha1.asc (signed by S?ren Sandmann Pedersen Git: git://git.freedesktop.org/git/pixman tag: pixman-0.28.0 Log: Andrea Canciani (3): build: Fix compilation on win32 mmx: Fix x86 build on MSVC build: Improve win32 build system Antti S. Lankila (5): Faster unorm_to_unorm for wide processing. Remove unnecessary dst initialization Add support for sRGB surfaces Add sRGB blending demo program Add tests to validate new sRGB behavior Benny Siegert (1): configure.ac: PIXMAN_LINK_WITH_ENV fix Matt Turner (22): mmx: add and use expand_4xpacked565 function mmx: implement expand_4x565 in terms of expand_4xpacked565 fast: add add_0565_0565 function mmx: add add_0565_0565 mmx: add over_reverse_n_8888 mmx: add missing _mm_empty calls autotools: use custom build rule to build iwMMXt code configure.ac: add iwmmxt2 configure flag .gitignore: add test/glyph-test sse2: enable over_n_0565 for b5g6r5 sse2: add src_x888_0565 Fix distcheck due to custom iwMMXt rules mmx: Use expand_alpha instead of mask/shift mmx: add scaled bilinear src_8888_8888 mmx: add scaled bilinear over_8888_8888 mmx: add scaled bilinear over_8888_8_8888 mmx: optimize bilinear function when using 7-bit precision loongson: optimize _mm_set_pi* functions with shuffle instructions sse2: add missing ABGR entires for bilinear src_8888_8888 build: Remove useless DEP_CFLAGS/DEP_LIBS variables sse2: mark pack_565_2x128_128 as static force_inline iwmmxt: Don't define dummy _mm_empty for >=gcc-4.8 Nemanja Lukic (9): MIPS: DSPr2: Added several bilinear fast paths with a8 mask MIPS: DSPr2: Added more bilinear fast paths (without mask) MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_8888 - ov MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_0565 - ov MIPS: DSPr2: Added fast-paths for OVER operation: - over_0565_n_0565 - ov MIPS: DSPr2: Added OVER combiner and two new fast paths: - over_8888_8888 MIPS: DSPr2: Added fast-paths for ADD operation: - add_n_8_8 - add_n_8_88 MIPS: DSPr2: Added more fast-paths for ADD operation: - add_0565_8_0565 - MIPS: DSPr2: Added more fast-paths for ADD operation: - add_8888_8888_888 Sebastian Bauer (4): Qualify the static variables in pixman_f_transform_invert() with the cons Changed the style of two function headers Added HAVE_CONFIG_H check before including config.h Use angle brackets form of including config.h Siarhei Siamashka (12): test: OpenMP 2.5 requires signed loop iteration variables test: fix bisecting issue in fuzzer-find-diff.pl test: Fix for strict aliasing issue in 'get_random_seed' test: support nearest/bilinear scaling in lowlevel-blt-bench sse2: faster bilinear scaling (use _mm_loadl_epi64) Bilinear interpolation precision is now configurable at compile time sse2: _mm_madd_epi16 for faster bilinear scaling with 7-bit precision Change default bilinear interpolation precision to 7 bits Add scaled nearest repeat fast paths MIPS: skip runtime detection for DSPr2 if -mdspr2 option is in CFLAGS Add missing force_inline to in() function used for C fast paths Workaround for FTBFS with gcc 4.6 (http://gcc.gnu.org/PR54965) S?ren Sandmann Pedersen (78): Post-release version bump to 0.27.1 Pass the full image flags to iterators Make use of image flags in mmx and sse2 iterators Add doubly linked lists Add pixman_glyph_cache_t API Move CRC32 computation from blitters-test.c into utils.c Add support for alpha maps to compute_crc32_for_image(). test: Add glyph-test Speed up pixman_composite_glyphs() Speed up _pixman_composite_glyphs_no_mask() Speed up _pixman_image_get_solid() in common cases bits-image: Turn all the fetchers into iterator getters test: Make glyph test pass on big endian test: Add missing break in stress-test.c test: Make stress-test more likely to actually composite something In fast_composite_tiled_repeat() don't clone images with a palette Use a compile-time constant for the "K" constraint in the MMX detection. pixman-cpu.c: Rename disabled to _pixman_disabled() and export it Move x86 specific CPU detection to a new file pixman-x86.c Move ARM specific CPU detection to a new file pixman-arm.c Move PowerPC specific CPU detection to its own file pixman-ppc.c Move MIPS specific CPU detection to its own file, pixman-mips.c Move the remaining bits of pixman-cpu into pixman-implementation.c Simplify MIPS CPU detection Simplifications to ARM CPU detection Simplify CPU detection on PPC. Cleanups and simplifications in x86 CPU feature detection Make pixman-mmx.c compile on x86-32 without optimization Add make-srgb.pl to EXTRA_DIST stress-test: Avoid overflows in clip rectangles glyph-test: Avoid setting solid images as alpha maps. Pre-release version bump to 0.27.2 Post-release version bump to 0.27.3 Define TIMER_BEGIN and TIMER_END even when timers are not enabled Make show_image() cope with more formats demos: Add srgb_trap_test.c Remove pointless declaration of _pixman_image_get_scanline_generic_64() Remove obsolete TODO file pixel_checker: Move sRGB conversion into get_limits() test/utils.c: Use pow(), not powf() in sRGB conversion routines implementation: Write lookup_combiner() in a less convoluted way. Move blt delegation into pixman-implementation.c Move fill delegation into pixman-implementation.c Move delegation of src/dest iter init into pixman-implementation.c Rename _pixman_lookup_composite_function() to _pixman_implementation_look _pixman_implementation_create(): Initialize implementation with memset() implementation: Rename delegate to fallback Add PIXMAN_x8b8g8r8 and PIXMAN_a8b8g8r8 formats to scaling-test Fix bug in fast_composite_scaled_nearest() Fix bugs in component alpha combiners for separable PDF operators Add rotate-test.c test program Fix bugs in pixman-image.c pixman-combine.c.template: Formatting clean-ups affine-test: Print out the transformation matrix when verbose test: Add inifinite-loop test Fix for infinite-loop test rotate-test: Call image_endian_swap() in make_image() Make pixman.h more const-correct glyph-test: Prepare for floating point blitters-test: Prepare for floating point Add pixman-combine-float.c Add combiner test pixman-utils.c, pixman-private.h: Add floating point conversion routines pixman-access.c: Add floating point accessor functions Switch the wide pipeline over to using floating point Remove 64 bit pipeline Don't auto-generate pixman-combine32.[ch] anymore Speed up pixman_expand_to_float() Remove BUILT_SOURCES Only regard images as pixbufs if they have identity transformations region: Formatting fix region: Remove overlap argument from pixman_op() Add new pixman_image_create_bits_no_clear() API pixman_composite_trapezoids(): Factor out extents computation pixman_composite_trapezoids(): don't clip to extents for some operators Pre-release version bump to 0.27.4 Post-release version bump to 0.27.5 Pre-release version bump to 0.28.0 _______________________________________________ cairo-announce mailing list cairo-announce at lists.cairographics.org http://lists.cairographics.org/mailman/listinfo/cairo-announce From techieinfo at yahoo.co.uk Wed Nov 7 13:28:32 2012 From: techieinfo at yahoo.co.uk (Techie Help) Date: Wed, 7 Nov 2012 21:28:32 +0000 (GMT) Subject: [cairo] Cairo and freetype Message-ID: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> Hi, I am new to Graphics, so new to cairo as well. I am trying to render some text using Cairo and freetype. The backend that I am using is gcm, and it does not support any glyphs etc. Can anyone please provide me with an example how to do this. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From justin at sweaky.com Wed Nov 7 15:13:00 2012 From: justin at sweaky.com (Justin Thomas) Date: Wed, 7 Nov 2012 15:13:00 -0800 Subject: [cairo] Cairo and freetype In-Reply-To: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> References: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> Message-ID: If your platform is PS3 and your using GCM already your best option is to use the freetype library and glyph/font rendering already available in the SDK. However, if your set on using cairo then most likely you will need to render to an image surface first then copy it to the gcm surface, a pseudo example: FT_Error err = 0; FT_Face fontFace = 0; if((err = FT_New_Face(, "font.ttf", 0, &fontFace)) != 0) { printf("failed to create font (0x%x)\n", err); exit(1) } cairo_font_face_t* cairoFontFace = cairo_ft_font_face_create_for_ft_face(fontFace, 0); cairo_matrix_t mxSize; cairo_matrix_t mxIdent; cairo_matrix_init_scale(&mxSize, 16, 16); // sizing.. cairo_matrix_init_identity(&mxIdent); cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(cairoFontFace, &mxSize, &mxIdent, 0); // context = cairo_create() cairo_set_scaled_font(context, cairoFont); cairo_set_font_size(context, 16); cairo_new_path(context); cairo_move_to(context, 25, 25); cairo_text_path(context, "CAIRO TEXT!"); cairo_set_source_rgb(context, 1, 0, 0); cairo_fill(context); .. then take your image surface and paint to the gcm context (I actually don't know if this is the best way, I imagine there are others using fill and source operator, maybe someone else with more experience can chime in)... cairo_set_source_surface(gcmContext, imageSurface, 0, 0); cairo_paint(gcmContext); -JT On Wed, Nov 7, 2012 at 1:28 PM, Techie Help wrote: > Hi, > > I am new to Graphics, so new to cairo as well. > I am trying to render some text using Cairo and freetype. > The backend that I am using is gcm, and it does not support any glyphs etc. > Can anyone please provide me with an example how to do this. > > Thanks > > -- > cairo mailing list > cairo at cairographics.org > http://lists.cairographics.org/mailman/listinfo/cairo > -------------- next part -------------- An HTML attachment was scrubbed... URL: From techieinfo at yahoo.co.uk Thu Nov 8 02:51:23 2012 From: techieinfo at yahoo.co.uk (Techie Help) Date: Thu, 8 Nov 2012 10:51:23 +0000 (GMT) Subject: [cairo] Cairo and freetype In-Reply-To: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> References: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> Message-ID: <1352371883.74619.YahooMailNeo@web171605.mail.ir2.yahoo.com> Hi Jutsin, ? I did it the way you suggested: Here's what I did: ? ? cairo_device_t *? cairo_device=cairo_gcm_device_create(1024*1024*10, 1024*1024*15, 1024*1024*20); ??????? cairo_surface_t * surface = cairo_gcm_surface_create_for_texture(cairo_device, 1500, 1500); ??? ? ?? /* Init freetype */ ??int error; ??FT_Library ft_library; ??error = FT_Init_FreeType(&ft_library); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??//Load our fonts ??FT_Face ft_face = NULL; ??????? error = FT_New_Face(ft_library, "/app_home/FreeMonoBold.ttf", 0, &ft_face); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??? ??cairo_font_face_t *myfont_face; ??myfont_face =? cairo_ft_font_face_create_for_ft_face(ft_face,0); ?? ??cairo_matrix_t mxSize; ??cairo_matrix_t mxIdent; ??cairo_matrix_init_scale(&mxSize, 16, 16); // sizing.. ??cairo_matrix_init_identity(&mxIdent); ??cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(myfont_face, &mxSize, &mxIdent, 0); ??cairo_t *cr = cairo_create (surface); ?? ??cairo_set_scaled_font(cr, cairoFont); ??cairo_set_font_size(cr, 16); ??cairo_new_path(cr); ??cairo_move_to(cr, 200, 200); ?? ??cairo_text_path(cr, "Print Something"); ??cairo_set_source_rgb(cr, 1, 0, 0); ??cairo_fill(cr); ??cairo_set_source_surface(cr, surface, 0, 0); ??cairo_paint(cr);? sys_timer_usleep(20 *1000000); ? I added sleep in the end, so that if there is any text I can see it before application exits. But I still don't see anything. ? Sorry, I am totally new to all this. You mentioned that it will be better if I use freetype library and glyph/font rendering already available in the SDK(yes, my platform is PS3) but I am not sure how to find what is available in SDK and how to use it? ? Please if you can provide any more guidance it would be of great help. Thanks ________________________________ From: Techie Help To: "cairo at cairographics.org" Sent: Wednesday, 7 November 2012, 21:28 Subject: Cairo and freetype Hi, I am new to Graphics, so new to cairo as well. I am trying to render some text using Cairo and freetype. The backend that I am using is gcm, and it does not support any glyphs etc. Can anyone please provide me with an example how to do this. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From techieinfo at yahoo.co.uk Thu Nov 8 04:58:33 2012 From: techieinfo at yahoo.co.uk (Techie Help) Date: Thu, 8 Nov 2012 12:58:33 +0000 (GMT) Subject: [cairo] Cairo and freetype In-Reply-To: <1352371883.74619.YahooMailNeo@web171605.mail.ir2.yahoo.com> References: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> <1352371883.74619.YahooMailNeo@web171605.mail.ir2.yahoo.com> Message-ID: <1352379513.85854.YahooMailNeo@web171601.mail.ir2.yahoo.com> Hi, ? The problem was with cairo_font_options_t. They can't be NULL in call : cairo_scaled_font_create(). So, I added default options. ? It has moved further but still no text as on executing this line of code: cairo_text_path(), I get ? _gcm_surface_get_font_options not implemented yet in my debugger. Any ideas, how to?get rid of?this. ? Thanks. ----- Forwarded Message ----- From: Techie Help To: "cairo at cairographics.org" Sent: Thursday, 8 November 2012, 10:51 Subject: Re: Cairo and freetype Hi Jutsin, ? I did it the way you suggested: Here's what I did: ? ? cairo_device_t *? cairo_device=cairo_gcm_device_create(1024*1024*10, 1024*1024*15, 1024*1024*20); ??????? cairo_surface_t * surface = cairo_gcm_surface_create_for_texture(cairo_device, 1500, 1500); ??? ? ?? /* Init freetype */ ??int error; ??FT_Library ft_library; ??error = FT_Init_FreeType(&ft_library); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??//Load our fonts ??FT_Face ft_face = NULL; ??????? error = FT_New_Face(ft_library, "/app_home/FreeMonoBold.ttf", 0, &ft_face); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??? ??cairo_font_face_t *myfont_face; ??myfont_face =? cairo_ft_font_face_create_for_ft_face(ft_face,0); ?? ??cairo_matrix_t mxSize; ??cairo_matrix_t mxIdent; ??cairo_matrix_init_scale(&mxSize, 16, 16); // sizing.. ??cairo_matrix_init_identity(&mxIdent); ??cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(myfont_face, &mxSize, &mxIdent, 0); ??cairo_t *cr = cairo_create (surface); ?? ??cairo_set_scaled_font(cr, cairoFont); ??cairo_set_font_size(cr, 16); ??cairo_new_path(cr); ??cairo_move_to(cr, 200, 200); ?? ??cairo_text_path(cr, "Print Something"); ??cairo_set_source_rgb(cr, 1, 0, 0); ??cairo_fill(cr); ??cairo_set_source_surface(cr, surface, 0, 0); ??cairo_paint(cr);? sys_timer_usleep(20 *1000000); ? I added sleep in the end, so that if there is any text I can see it before application exits. But I still don't see anything. ? Sorry, I am totally new to all this. You mentioned that it will be better if I use freetype library and glyph/font rendering already available in the SDK(yes, my platform is PS3) but I am not sure how to find what is available in SDK and how to use it? ? Please if you can provide any more guidance it would be of great help. Thanks ________________________________ From: Techie Help To: "cairo at cairographics.org" Sent: Wednesday, 7 November 2012, 21:28 Subject: Cairo and freetype Hi, I am new to Graphics, so new to cairo as well. I am trying to render some text using Cairo and freetype. The backend that I am using is gcm, and it does not support any glyphs etc. Can anyone please provide me with an example how to do this. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From techieinfo at yahoo.co.uk Thu Nov 8 09:04:57 2012 From: techieinfo at yahoo.co.uk (Techie Help) Date: Thu, 8 Nov 2012 17:04:57 +0000 (GMT) Subject: [cairo] Cairo and freetype In-Reply-To: <1352379513.85854.YahooMailNeo@web171601.mail.ir2.yahoo.com> References: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> <1352371883.74619.YahooMailNeo@web171605.mail.ir2.yahoo.com> <1352379513.85854.YahooMailNeo@web171601.mail.ir2.yahoo.com> Message-ID: <1352394297.82008.YahooMailNeo@web171604.mail.ir2.yahoo.com> Hi, ? I even tried computing glyphs. I am able to do that. But, then I tried to show it using: cairo_show_glyphs() and I get: _gcm_surface_get_font_options not implemented yet _gcm_surface_has_show_text_glyphs not implemented yet _gcm_surface_show_text_glyphs not implemented yet _gcm_surface_show_glyphs not implemented yet _gcm_surface_old_show_glyphs not implemented yet _gcm_surface_composite,154 not implemented yet ? So, I am not sure what my options are now. Can anyone suggest anything. ? Many Thanks techie(ttb) ----- Forwarded Message ----- From: Techie Help To: "cairo at cairographics.org" ? Sent: Thursday, 8 November 2012, 12:58 Subject: Cairo and freetype Hi, ? The problem was with cairo_font_options_t. They can't be NULL in call : cairo_scaled_font_create(). So, I added default options. ? It has moved further but still no text as on executing this line of code: cairo_text_path(), I get ? _gcm_surface_get_font_options not implemented yet in my debugger. Any ideas, how to?get rid of?this. ? Thanks. ----- Forwarded Message ----- From: Techie Help To: "cairo at cairographics.org" Sent: Thursday, 8 November 2012, 10:51 Subject: Re: Cairo and freetype Hi Jutsin, ? I did it the way you suggested: Here's what I did: ? ? cairo_device_t *? cairo_device=cairo_gcm_device_create(1024*1024*10, 1024*1024*15, 1024*1024*20); ??????? cairo_surface_t * surface = cairo_gcm_surface_create_for_texture(cairo_device, 1500, 1500); ??? ? ?? /* Init freetype */ ??int error; ??FT_Library ft_library; ??error = FT_Init_FreeType(&ft_library); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??//Load our fonts ??FT_Face ft_face = NULL; ??????? error = FT_New_Face(ft_library, "/app_home/FreeMonoBold.ttf", 0, &ft_face); ??if (error) ??{ ???printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); ??} ??? ??cairo_font_face_t *myfont_face; ??myfont_face =? cairo_ft_font_face_create_for_ft_face(ft_face,0); ?? ??cairo_matrix_t mxSize; ??cairo_matrix_t mxIdent; ??cairo_matrix_init_scale(&mxSize, 16, 16); // sizing.. ??cairo_matrix_init_identity(&mxIdent); ??cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(myfont_face, &mxSize, &mxIdent, 0); ??cairo_t *cr = cairo_create (surface); ?? ??cairo_set_scaled_font(cr, cairoFont); ??cairo_set_font_size(cr, 16); ??cairo_new_path(cr); ??cairo_move_to(cr, 200, 200); ?? ??cairo_text_path(cr, "Print Something"); ??cairo_set_source_rgb(cr, 1, 0, 0); ??cairo_fill(cr); ??cairo_set_source_surface(cr, surface, 0, 0); ??cairo_paint(cr);? sys_timer_usleep(20 *1000000); ? I added sleep in the end, so that if there is any text I can see it before application exits. But I still don't see anything. ? Sorry, I am totally new to all this. You mentioned that it will be better if I use freetype library and glyph/font rendering already available in the SDK(yes, my platform is PS3) but I am not sure how to find what is available in SDK and how to use it? ? Please if you can provide any more guidance it would be of great help. Thanks ________________________________ From: Techie Help To: "cairo at cairographics.org" Sent: Wednesday, 7 November 2012, 21:28 Subject: Cairo and freetype Hi, I am new to Graphics, so new to cairo as well. I am trying to render some text using Cairo and freetype. The backend that I am using is gcm, and it does not support any glyphs etc. Can anyone please provide me with an example how to do this. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From ajax at redhat.com Thu Nov 8 09:19:30 2012 From: ajax at redhat.com (Adam Jackson) Date: Thu, 08 Nov 2012 12:19:30 -0500 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <1351714426-14768-1-git-send-email-ajax@redhat.com> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> Message-ID: <509BE9A2.2000209@redhat.com> On 10/31/12 4:13 PM, Adam Jackson wrote: > malloc(0) needn't return NULL, and on glibc, doesn't. Then we encounter > a loop of the form do { ... } while (--c), which doesn't do quite what > you were hoping for when c is initially 0. > > Since there's nothing to swap in this case, just bomb out. Bump. Anything else I need to add here? - ajax From justin at sweaky.com Thu Nov 8 10:46:08 2012 From: justin at sweaky.com (Justin Thomas) Date: Thu, 8 Nov 2012 10:46:08 -0800 Subject: [cairo] Cairo and freetype In-Reply-To: <1352394297.82008.YahooMailNeo@web171604.mail.ir2.yahoo.com> References: <1352323712.37721.YahooMailNeo@web171602.mail.ir2.yahoo.com> <1352371883.74619.YahooMailNeo@web171605.mail.ir2.yahoo.com> <1352379513.85854.YahooMailNeo@web171601.mail.ir2.yahoo.com> <1352394297.82008.YahooMailNeo@web171604.mail.ir2.yahoo.com> Message-ID: <3D81F734-3065-40CA-8CC0-2CADD63CF466@sweaky.com> So I think your close, you just need to render the text to an image surface instead of the gcm surface (cairo_image_surface_* functions) Then take that image surface and render it to your gcm surface. So context1 (image), render text to image surface. Then context2 (gcm), render image surface to gcm surface, last 2 lines in your code. As far as the freetype/gcm font rendering already available in the PS3 SDK, you will need to ask that on devnet, but if you search the docs for freetype you should find it pretty quickly. -JT On Nov 8, 2012, at 9:04 AM, Techie Help wrote: > Hi, > > I even tried computing glyphs. I am able to do that. But, then I tried to show it using: > cairo_show_glyphs() and I get: > _gcm_surface_get_font_options not implemented yet > _gcm_surface_has_show_text_glyphs not implemented yet > _gcm_surface_show_text_glyphs not implemented yet > _gcm_surface_show_glyphs not implemented yet > _gcm_surface_old_show_glyphs not implemented yet > _gcm_surface_composite,154 not implemented yet > > So, I am not sure what my options are now. > Can anyone suggest anything. > > Many Thanks > techie(ttb) > > ----- Forwarded Message ----- > From: Techie Help > To: "cairo at cairographics.org" > Sent: Thursday, 8 November 2012, 12:58 > Subject: Cairo and freetype > > Hi, > > The problem was with cairo_font_options_t. They can't be NULL in call : cairo_scaled_font_create(). > So, I added default options. > > It has moved further but still no text as on executing this line of code: > cairo_text_path(), I get > > _gcm_surface_get_font_options not implemented yet > in my debugger. > Any ideas, how to get rid of this. > > Thanks. > > ----- Forwarded Message ----- > From: Techie Help > To: "cairo at cairographics.org" > Sent: Thursday, 8 November 2012, 10:51 > Subject: Re: Cairo and freetype > > Hi Jutsin, > > I did it the way you suggested: > Here's what I did: > > > cairo_device_t * cairo_device=cairo_gcm_device_create(1024*1024*10, 1024*1024*15, 1024*1024*20); > cairo_surface_t * surface = cairo_gcm_surface_create_for_texture(cairo_device, 1500, 1500); > > /* Init freetype */ > int error; > FT_Library ft_library; > error = FT_Init_FreeType(&ft_library); > if (error) > { > printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); > } > //Load our fonts > FT_Face ft_face = NULL; > error = FT_New_Face(ft_library, "/app_home/FreeMonoBold.ttf", 0, &ft_face); > if (error) > { > printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__); > } > > cairo_font_face_t *myfont_face; > myfont_face = cairo_ft_font_face_create_for_ft_face(ft_face,0); > > cairo_matrix_t mxSize; > cairo_matrix_t mxIdent; > cairo_matrix_init_scale(&mxSize, 16, 16); // sizing.. > cairo_matrix_init_identity(&mxIdent); > cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(myfont_face, &mxSize, &mxIdent, 0); > cairo_t *cr = cairo_create (surface); > > cairo_set_scaled_font(cr, cairoFont); > cairo_set_font_size(cr, 16); > cairo_new_path(cr); > cairo_move_to(cr, 200, 200); > > cairo_text_path(cr, "Print Something"); > cairo_set_source_rgb(cr, 1, 0, 0); > cairo_fill(cr); > cairo_set_source_surface(cr, surface, 0, 0); > cairo_paint(cr); > sys_timer_usleep(20 *1000000); > > I added sleep in the end, so that if there is any text I can see it before application exits. > But I still don't see anything. > > Sorry, I am totally new to all this. You mentioned that it will be better if I use > freetype library and glyph/font rendering already available in the SDK(yes, my platform is PS3) > but I am not sure how to find what is available in SDK and how to use it? > > Please if you can provide any more guidance it would be of great help. > Thanks > From: Techie Help > To: "cairo at cairographics.org" > Sent: Wednesday, 7 November 2012, 21:28 > Subject: Cairo and freetype > > Hi, > > I am new to Graphics, so new to cairo as well. > I am trying to render some text using Cairo and freetype. > The backend that I am using is gcm, and it does not support any glyphs etc. > Can anyone please provide me with an example how to do this. > > Thanks > > > > > > > -- > cairo mailing list > cairo at cairographics.org > http://lists.cairographics.org/mailman/listinfo/cairo -------------- next part -------------- An HTML attachment was scrubbed... URL: From behdad at behdad.org Thu Nov 8 13:04:30 2012 From: behdad at behdad.org (Behdad Esfahbod) Date: Thu, 08 Nov 2012 13:04:30 -0800 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <509BE9A2.2000209@redhat.com> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> Message-ID: <509C1E5E.2040404@behdad.org> On 12-11-08 09:19 AM, Adam Jackson wrote: > malloc(0) needn't return NULL, and on glibc, doesn't. BTW, is this a recent change? I noticed a bug because of it in harfbuzz also. behdad From ajax at redhat.com Thu Nov 8 13:30:54 2012 From: ajax at redhat.com (Adam Jackson) Date: Thu, 08 Nov 2012 16:30:54 -0500 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <509C1E5E.2040404@behdad.org> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> <509C1E5E.2040404@behdad.org> Message-ID: <509C248E.6060807@redhat.com> On 11/8/12 4:04 PM, Behdad Esfahbod wrote: > On 12-11-08 09:19 AM, Adam Jackson wrote: >> malloc(0) needn't return NULL, and on glibc, doesn't. > > BTW, is this a recent change? I noticed a bug because of it in harfbuzz also. I don't believe so. RHEL5's glibc has this property, so it's probably been this way since at least 2006. - ajax From cloos at jhcloos.com Thu Nov 8 16:32:21 2012 From: cloos at jhcloos.com (James Cloos) Date: Thu, 08 Nov 2012 19:32:21 -0500 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <509C248E.6060807@redhat.com> (Adam Jackson's message of "Thu, 08 Nov 2012 16:30:54 -0500") References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> <509C1E5E.2040404@behdad.org> <509C248E.6060807@redhat.com> Message-ID: AJ> malloc(0) needn't return NULL, and on glibc, doesn't. BE> BTW, is this a recent change? I noticed a bug because of it in harfbuzz also. AJ> I don't believe so. RHEL5's glibc has this property, so it's probably AJ> been this way since at least 2006. A quick look at the history for the malloc.c file in glibc shows the comment fragment: Even a request for zero bytes (i.e., malloc(0)) returns a pointer to something of the minimum allocatable size. was included in the first version of malloc/malloc.c committed to glibc back on 1996/Dec/08. Glibc may never have returned NULL from malloc(0). I do not recall what libc5 did, nor what the BSDs or the commercial unixen did back then. -JimC -- James Cloos OpenPGP: 1024D/ED7DAEA6 From fredbca21 at gmail.com Fri Nov 9 03:01:09 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Fri, 9 Nov 2012 12:01:09 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) - PATCH proposal In-Reply-To: References: Message-ID: bump! Is anyone interested? At least a comment? I am starting to wonder if my emails are actually received by list members... :-) Fred. 2012/11/7 Fred bca21 : > Hi, > > Does the patch below make sense to you? It seems the extent should > just be offset to the origin when mapping the win32 surface to an > image, since the image is already created at the right location. I > have not been able to make extensive tests yet, but can someone review > this patch? > > BTW, is there any way to build and run the tests on windows? Neither > the configure nor the Makefile.Win32 method work on my system. > > Index: src/win32/cairo-win32-display-surface.c > =================================================================== > --- src/win32/cairo-win32-display-surface.c > +++ src/win32/cairo-win32-display-surface.c > @@ -464,8 +464,16 @@ > surface = to_win32_display_surface (surface->fallback); > done: > GdiFlush(); > - return _cairo_image_surface_map_to_image (surface->image, extents); > > + // since the image built above is already offset at the right > position, create the image at 0,0. > + { > + cairo_rectangle_int_t r; > + r.x=0; > + r.y=0; > + r.width=extents->width; > + r.height=extents->height; > + return _cairo_image_surface_map_to_image (surface->image, &r); > + } > err: > cairo_surface_destroy (surface->fallback); > surface->fallback = NULL; > > > 2012/11/7 Fred bca21 : >> Hi Again, >> >> It appears that the bug seems to happen because the extents of the >> fallback image has an offset in its origin. >> when performing the mapping of the surface to an image, in >> cairo-win32-display-surface.c, on line 467: >> return _cairo_image_surface_map_to_image (surface->image, extents); >> >> this actually creates a pixman image with an invalid pointer, that is >> supposed to be compensated by the device transform, as you can see in >> cairo-image-surface.c on line 805: >> uint8_t *data; >> >> data = other->data; >> data += extents->y * other->stride; // THIS POINTER IS OUTSIDE OF >> THE ACTUAL IMAGE (the image is created with the actual extent, not the >> entire surface extent) >> data += extents->x * PIXMAN_FORMAT_BPP (other->pixman_format)/ 8; >> >> surface =_cairo_image_surface_create_with_pixman_format (data, >> other->pixman_format, >> extents->width, >> extents->height, >> other->stride); >> >> cairo_surface_set_device_offset (surface, -extents->x, >> -extents->y); /// THIS IS SUPPOSED TO COMPENSATE THE OFFSET ABOVE >> return surface; >> >> But in the end, when reaching the _fill_xrgb32_lerp_opaque_spans >> function, the data pointer is still the wrong one (as offset in the >> function above, not compensated by the device transform). >> >> So either the device transform should be applied at some point and it >> is not, or the mapping of the image is wrong and should not use the >> origin of the extents, >> >> That's all I can do for now with my imited knowledge, but I hope it >> helps a little bit and maybe this will motivate someone to check this >> out. >> >> Regards, >> >> Fred. >> >> 2012/11/7 Fred bca21 : >>> Hi, >>> >>> No surprise: the issue is still here in 1.12.8. Running the code below >>> crashes in _fill_xrgb32_lerp_opaque_spans. >>> >>> If anyone can give me an idea of how to get started on debugging this, >>> I'd be glad to help fixing this problem. I have already spent some >>> time on it, but it's pretty hard to understand where the composite >>> destination data pointer is changed without not much knowledge of the >>> cairo code. >>> >>> Just wondering: why isn't there much interest for this problem? >>> >>> Thanks! >>> >>> Fred. >>> >>> { >>> // build a bitmap (same issue with DIB, whatever the bit depth) >>> HDC dc=::CreateCompatibleDC(NULL); >>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>> ::SelectObject(dc,hBmp); >>> >>> // set clip region for the DC to one single line in the middle of the bitmap >>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>> SelectClipRgn(dc, hrgn); >>> ::DeleteObject(hrgn); >>> >>> // create cairo context >>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>> if(surface) >>> { >>> cairo_t* context=cairo_create(surface); >>> if(context) >>> { >>> // draw one line >>> cairo_move_to(context,1, 1); >>> cairo_line_to(context,10,120); >>> cairo_set_source_rgb(context,1,1,1); >>> >>> // CRASHES HERE: >>> cairo_stroke(context); >>> >>> // cleanup >>> cairo_destroy(context); >>> } >>> cairo_surface_destroy(surface); >>> } >>> } >>> >>> 2012/11/5 Fred bca21 : >>>> Hi, >>>> >>>> Thank you Martin for your answer. The thing is, it is a feature that a >>>> surface built on a HDC gets the right clipping region. It is indeed >>>> possible to manually overwrite, re-compute and apply the clipping >>>> region to the cairo context, but it is probably better just to fix >>>> cairo and this feature :-). Also, this problem is also probably >>>> occuring in other cases (it is a crash in the compositing functions). >>>> >>>> Has anyone found a way to fix it properly? >>>> >>>> I'll double check with the new 1.12.8 that has just been released >>>> (there seem to be changes in this area), but it would be great to have >>>> feedback from the experts. >>>> >>>> Regards, >>>> >>>> Fred. >>>> >>>> >>>> 2012/10/30 Martin Schlemmer : >>>>> Hi, >>>>> >>>>>> After some additionnal debugging, it appears that the raw data pointer >>>>>> (unsigned char *data;) in the destination image surface for the >>>>>> compositor is invalid, hence the crash. I have not been able to find >>>>>> out where this comes from yet (the multiple casts throughout the code >>>>>> does not make easy for a newcomer to track this field in the image >>>>>> surface). All I can say is it is valid when the fallback image for the >>>>>> surface is created, at the beginning of the cairo_stroke call. >>>>> >>>>>> Does anybody have any clue? I feel a bit lonely on this issue :). >>>>> >>>>> I am not sure if its a feature or a bug, but if you remove the bits that sets the Clip Region directly on the HDC, it does not crash. >>>>> I assume that you should rather use: >>>>> >>>>> cairo_rectangle () >>>>> cairo_clip () >>>>> >>>>> on the created context. >>>>> >>>>> I could however be incorrect, and that creating a surface from a HDC which already has a Clip Region set directly on the HDC should not give current results - maybe somebody can verify? >>>>> >>>>> >>>>> Regards, >>>>> Martin >>>>> >>>>> >>>>>>2012/10/25 Fred bca21 : >>>>>> Hi, >>>>>> >>>>>> I have just tested with the latest cairo release (1.12.6), and it >>>>>> appears that the issue is still here (crash at the exact same >>>>>> location). Has anyone an idea of how to fix it? Should I maybe post >>>>>> this to the bugs mailing list? >>>>>> >>>>>> Regards, >>>>>> >>>>>> Fred. >>>>>> >>>>>> >>>>>> 2012/10/19 Fred bca21 : >>>>>>> Hi, >>>>>>> >>>>>>> I am new to this list but I have been using cairo and monitoring posts >>>>>>> for a couple of months now. I have a strange issue on windows when the >>>>>>> intersection between the clipping region and the drawing is very >>>>>>> small, so I am posting here with the hope that someone can help (I am >>>>>>> a bit too new to cairo's internals to debug this problem). >>>>>>> >>>>>>> Typically, the simple code below crashes (I am using a DDB bitmap for >>>>>>> the example, but it also crashes with any DC). >>>>>>> >>>>>>> #include "cairo.h" >>>>>>> #include "cairo-win32.h" >>>>>>> #include >>>>>>> { >>>>>>> // build a bitmap (same issue with DIB, whatever the bit depth) >>>>>>> HDC dc=::CreateCompatibleDC(NULL); >>>>>>> HBITMAP hBmp=::CreateCompatibleBitmap(dc,100,200); >>>>>>> ::SelectObject(dc,hBmp); >>>>>>> >>>>>>> // set clip region for the DC to one single line in the middle of the bitmap >>>>>>> HRGN hrgn = CreateRectRgn(0,100,100, 101); >>>>>>> SelectClipRgn(dc, hrgn); >>>>>>> ::DeleteObject(hrgn); >>>>>>> >>>>>>> // create cairo context >>>>>>> cairo_surface_t* surface=cairo_win32_surface_create(dc); >>>>>>> if(surface) >>>>>>> { >>>>>>> cairo_t* context=cairo_create(surface); >>>>>>> if(context) >>>>>>> { >>>>>>> // draw one line >>>>>>> cairo_move_to(context,1, 1); >>>>>>> cairo_line_to(context,10,120); >>>>>>> cairo_set_source_rgb(context,1,1,1); >>>>>>> >>>>>>> // CRASHES HERE (see below): >>>>>>> cairo_stroke(context); >>>>>>> >>>>>>> // cleanup >>>>>>> cairo_destroy(context); >>>>>>> } >>>>>>> cairo_surface_destroy(surface); >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> The crash occurs in cairo-image-compositor.c, on line 2197, in >>>>>>> _fill_xrgb32_lerp_opaque_spans(): >>>>>>> >>>>>>> } else while (len--) { >>>>>>> // On this line below, d has an invalid address >>>>>>> *d = lerp8x4 (r->u.fill.pixel, a, *d); >>>>>>> d++; >>>>>>> } >>>>>>> >>>>>>> If it may help, am using the static lib version of the latest release >>>>>>> (1.12.4 - pixman 26.2), and it crashes in debug or release mode, 32 or >>>>>>> 64-bit windows. It's too bad because this crash occurs all the time in >>>>>>> my code that extensively uses clipping regions! >>>>>>> >>>>>>> This crash also occurs with the previous version of cairo (1.12.2) and >>>>>>> pixman 26.0, but at a different stage (in pixman if I remember well), >>>>> >>>>> >>>>> Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html >>>>> From hakki at dogusan.net Fri Nov 9 04:16:53 2012 From: hakki at dogusan.net (Hakki Dogusan) Date: Fri, 09 Nov 2012 14:16:53 +0200 Subject: [cairo] Cairo crash with a simple stroke (win32) - PATCH proposal In-Reply-To: References: Message-ID: <509CF435.9060807@dogusan.net> Hi, 09-11-2012 13:01 tarihinde, Fred bca21 yazd?: > bump! Is anyone interested? At least a comment? > I'm very interested! Applied your patch to 1.12.8. There is no crash, but my graphics are acummulated to 0,0. My drawings involves scale and translate commands. (using winxp, mingw) > I am starting to wonder if my emails are actually received by list > members... :-) > > Fred. > > 2012/11/7 Fred bca21 : >> [snip] -- Regards, Hakki Dogusan From fredbca21 at gmail.com Fri Nov 9 04:40:05 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Fri, 9 Nov 2012 13:40:05 +0100 Subject: [cairo] Cairo crash with a simple stroke (win32) - PATCH proposal In-Reply-To: <509CF435.9060807@dogusan.net> References: <509CF435.9060807@dogusan.net> Message-ID: Great, thank for the feedback! I am not surprised that it breaks... I have not been able to run tests on windows yet, and I am currently mainly looking at this issue only before doing any other development using cairo. So the fix is probably more complicated than what I proposed, but I think I may have at least found the root cause. Still searching and learning cairo, so it might take a while unless we get some help... Fred 2012/11/9 Hakki Dogusan : > Hi, > > 09-11-2012 13:01 tarihinde, Fred bca21 yazd?: > >> bump! Is anyone interested? At least a comment? >> > > I'm very interested! > > Applied your patch to 1.12.8. There is no crash, but my graphics are > acummulated to 0,0. My drawings involves scale and translate commands. > > (using winxp, mingw) > >> I am starting to wonder if my emails are actually received by list >> members... :-) >> >> Fred. >> >> 2012/11/7 Fred bca21 : >>> >>> [snip] > > > > -- > Regards, > Hakki Dogusan > > > -- > cairo mailing list > cairo at cairographics.org > http://lists.cairographics.org/mailman/listinfo/cairo From teknos at gmail.com Fri Nov 9 11:44:50 2012 From: teknos at gmail.com (=?UTF-8?Q?Zoz=C3=B3_Teki?=) Date: Fri, 9 Nov 2012 20:44:50 +0100 Subject: [cairo] A potential issue in cairo-recording-surface.c Message-ID: Hi, I have noticed that some of my objects were lost when drawing them on a recording surface and playing them back. After doing some debugging I found that they are not properly added to the bbtree during playback. (Later elements with the same extents as a prior one tend to disappear from the chain of headers having similar extents.) I have prepared the below patch (against 1.12.8), which fixes the issue for me. (It properly prepends ?header? with its full chain to ?bbt->chain?.) I am not a regular cairo contributor, this is the first time I am submitting a patch, so I am not sure this is the proper way or whom to contact to discuss this issue. Zoltan --- src/cairo-recording-surface.c original +++ src/cairo-recording-surface.c updated @@ -210,7 +210,10 @@ if (box->p1.x == bbt->extents.p1.x && box->p1.y == bbt->extents.p1.y && box->p2.x == bbt->extents.p2.x && box->p2.y == bbt->extents.p2.y) { - header->chain = bbt->chain; + cairo_command_header_t *last = header; + while (last->chain) + last = last->chain; + last->chain = bbt->chain; bbt->chain = header; return CAIRO_STATUS_SUCCESS; } From chris at chris-wilson.co.uk Sat Nov 10 00:43:16 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Sat, 10 Nov 2012 08:43:16 +0000 Subject: [cairo] A potential issue in cairo-recording-surface.c In-Reply-To: References: Message-ID: <6c3329$74ob6j@orsmga002.jf.intel.com> On Fri, 9 Nov 2012 20:44:50 +0100, Zoz?? Teki wrote: > Hi, > > I have noticed that some of my objects were lost when drawing them on > a recording surface and playing them back. After doing some debugging > I found that they are not properly added to the bbtree during > playback. (Later elements with the same extents as a prior one tend to > disappear from the chain of headers having similar extents.) > > I have prepared the below patch (against 1.12.8), which fixes the > issue for me. (It properly prepends ???header??? with its full chain to > ???bbt->chain???.) Thank you, the patch looks correct. Mea culpa. > I am not a regular cairo contributor, this is the first time I am > submitting a patch, so I am not sure this is the proper way or whom to > contact to discuss this issue. It was fine and you raised the issue ideally. For anything larger, you may want to invest some time into setting up git for use locally - it makes patch management much easier. commit 62b795fe52c73ad58101c101aa77449f4b61a576 Author: Zoz?? Teki Date: Sat Nov 10 08:35:33 2012 +0000 recording: Append new elements to the end of the bbtree chain Many thanks, pushed. Have fun using Cairo! -Chris -- Chris Wilson, Intel Open Source Technology Centre From bbradleyuk at gmail.com Sat Nov 10 03:12:26 2012 From: bbradleyuk at gmail.com (Ben Bradley) Date: Sat, 10 Nov 2012 11:12:26 +0000 Subject: [cairo] Cairo PDF embedded images not optimizable in Adobe Acrobat Message-ID: Hi everyone I create designed pages in Inkscape then export to PDF. Then I can further process these PDFs in Acrobat, combine multiple pages and downsample the images etc. I believe Inkscape uses Cairo as the back-end for exporting the PDFs. The problem I've found is that the PDF Optimizer in Acrobat is refusing to process and downsample the embedded images created by Inkscape/Cairo. I posted this thread on the Adobe forums and had the following reply... http://forums.adobe.com/message/4836095#4836095 "The PDF creation software (cairo?) has certainly done something odd. It has wrapped up the image in a tiling pattern, then painted the pattern just once. PDF shrinking software isn't likely to mess with the contents of patterns, they are normally tiny special effect bitmaps not to be adjusted... maybe there's an option to change this on creation." Has anyone else encountered this? Are there any options in Cairo (that aren't exposed by Inkscape) that can change the way images are embedded in a PDF? Cheers, B From ajohnson at redneon.com Sat Nov 10 03:33:33 2012 From: ajohnson at redneon.com (Adrian Johnson) Date: Sat, 10 Nov 2012 22:03:33 +1030 Subject: [cairo] Cairo PDF embedded images not optimizable in Adobe Acrobat In-Reply-To: References: Message-ID: <509E3B8D.8010502@redneon.com> On 10/11/12 21:42, Ben Bradley wrote: > Hi everyone > > I create designed pages in Inkscape then export to PDF. Then I can > further process these PDFs in Acrobat, combine multiple pages and > downsample the images etc. > > I believe Inkscape uses Cairo as the back-end for exporting the PDFs. > > The problem I've found is that the PDF Optimizer in Acrobat is refusing > to process and downsample the embedded images created by Inkscape/Cairo. > > I posted this thread on the Adobe forums and had the following reply... > http://forums.adobe.com/message/4836095#4836095 > "The PDF creation software (cairo?) has certainly done something odd. It > has wrapped up the image in a tiling pattern, then painted the pattern > just once. PDF shrinking software isn't likely to mess with the contents > of patterns, they are normally tiny special effect bitmaps not to be > adjusted... maybe there's an option to change this on creation." > > Has anyone else encountered this? > Are there any options in Cairo (that aren't exposed by Inkscape) that > can change the way images are embedded in a PDF? > > Cheers, B > This has been fixed in more recent versions. The version you are using (1.8.8) is very old. From teknos at gmail.com Sat Nov 10 04:33:40 2012 From: teknos at gmail.com (=?UTF-8?Q?Zoz=C3=B3_Teki?=) Date: Sat, 10 Nov 2012 13:33:40 +0100 Subject: [cairo] A question regarding text extents Message-ID: Hi, I use cairo_text_extents() to retrieve how much space is needed for a piece of text to be able to draw a simple box around it. I have noticed that this function returns a different value depending on the transformation matrix in effect. Specifically, if I scale the context, the returned x_advance is somewhat larger (and also the text is drawn somewhat larger) - but not by the scaling factor. In the example below, the two runs produce different values for extents1.x_advance and extents2.x_advance. On Linux (1.10.2), the two values are 115 and 116.5 (with whatever font "arial" maps to), whereas on Windows (1.12.8) I got 109 and 117. Is this the intended behaviour? cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 0, 0); cairo_t *cr = cairo_create(surface); cairo_select_font_face(cr, "arial", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size(cr, 16); cairo_text_extents_t extents1; cairo_text_extents(cr, "Now I have both", &extents1); cairo_destroy(cr); cairo_surface_destroy(surface); surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 0, 0); cr = cairo_create(surface); cairo_scale(cr, 4, 4); cairo_select_font_face(cr, "arial", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size(cr, 16); cairo_text_extents_t extents2; cairo_text_extents(cr, "Now I have both", &extents2); cairo_destroy(cr); cairo_surface_destroy(surface); Zoltan From bbradleyuk at gmail.com Sat Nov 10 05:13:41 2012 From: bbradleyuk at gmail.com (Ben Bradley) Date: Sat, 10 Nov 2012 13:13:41 +0000 Subject: [cairo] Cairo PDF embedded images not optimizable in Adobe Acrobat In-Reply-To: <509E3B8D.8010502@redneon.com> References: <509E3B8D.8010502@redneon.com> Message-ID: On 10/11/2012 11:33, Adrian Johnson wrote: > This has been fixed in more recent versions. The version you are using > (1.8.8) is very old. > That's awesome. Now to try and get a newer version integrated into Inkscape. Thanks for the info! Cheers, B From psychon at znc.in Mon Nov 12 13:11:01 2012 From: psychon at znc.in (Uli Schlachter) Date: Mon, 12 Nov 2012 22:11:01 +0100 Subject: [cairo] A question regarding text extents In-Reply-To: References: Message-ID: <50A165E5.6050006@znc.in> Hi, On 10.11.2012 13:33, Zoz? Teki wrote: > I use cairo_text_extents() to retrieve how much space is needed for a > piece of text to be able to draw a simple box around it. I have > noticed that this function returns a different value depending on the > transformation matrix in effect. Specifically, if I scale the context, > the returned x_advance is somewhat larger (and also the text is drawn > somewhat larger) - but not by the scaling factor. [...] Welcome to hinting. It makes fonts look better by making them "stick" to the pixel grid. This also means that animations which zoom in/out of text look bad, because the text "stutters". The API documentation can tell you a little more (especially how to disable hinting): http://cairographics.org/manual/cairo-cairo-font-options-t.html#cairo-hint-style-t Cheers, Uli -- Bitte nicht mit dem verbleibenden Auge in den Laser gucken. - Vincent Ebert From carl at boeckeler.com Mon Nov 12 13:31:26 2012 From: carl at boeckeler.com (Carl D. Blake) Date: Mon, 12 Nov 2012 14:31:26 -0700 Subject: [cairo] Using cairo with image surface backend results hangs system Message-ID: <1352755886.4088.1518.camel@vulcan> I'm trying to use cairo with a DM8168 based system. I want to be able to use it with the framebuffer so I've set it up to use the image surface backend. I've mmaped the framebuffer to a memory location and passed that as the data pointer to cairo_image_surface_create_for_data. It appears to work for a while, but it always hangs the system at some point when any drawing is being done (cairo_show_text or cairo_stroke). I realize that cairo is drawing directly to the framebuffer, but I didn't think this would be a problem. Am I doing something wrong here? Carl From chris at chris-wilson.co.uk Tue Nov 13 01:57:57 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Tue, 13 Nov 2012 09:57:57 +0000 Subject: [cairo] Using cairo with image surface backend results hangs system In-Reply-To: <1352755886.4088.1518.camel@vulcan> References: <1352755886.4088.1518.camel@vulcan> Message-ID: <453bf0$6euri9@azsmga001.ch.intel.com> On Mon, 12 Nov 2012 14:31:26 -0700, "Carl D. Blake" wrote: > I'm trying to use cairo with a DM8168 based system. I want to be able > to use it with the framebuffer so I've set it up to use the image > surface backend. I've mmaped the framebuffer to a memory location and > passed that as the data pointer to cairo_image_surface_create_for_data. > It appears to work for a while, but it always hangs the system at some > point when any drawing is being done (cairo_show_text or cairo_stroke). > I realize that cairo is drawing directly to the framebuffer, but I > didn't think this would be a problem. Am I doing something wrong here? It should work, Cairo should not generate out-of-bounds write or reads. So I would suggest something is going wrong at the hardware/driver level if the machine stops responding. However, I can not recommend that you use an UC or WC mapping for a Cairo surface, except for the final blit. Many of the operators that Cairo performs involve a readback from memory, which from a scanout will be very slow and may give the appearance of the machine freezing. (The usual solution is to use a shadow framebuffer for the composition with a blit (CAIRO_OPERATOR_SOURCE) onto the scanout for display.) -Chris -- Chris Wilson, Intel Open Source Technology Centre From siarhei.siamashka at gmail.com Tue Nov 13 04:24:49 2012 From: siarhei.siamashka at gmail.com (Siarhei Siamashka) Date: Tue, 13 Nov 2012 14:24:49 +0200 Subject: [cairo] Using cairo with image surface backend results hangs system In-Reply-To: <453bf0$6euri9@azsmga001.ch.intel.com> References: <1352755886.4088.1518.camel@vulcan> <453bf0$6euri9@azsmga001.ch.intel.com> Message-ID: <20121113142449.71fafc13@i7> On Tue, 13 Nov 2012 09:57:57 +0000 Chris Wilson wrote: > On Mon, 12 Nov 2012 14:31:26 -0700, "Carl D. Blake" wrote: > > I'm trying to use cairo with a DM8168 based system. I want to be able > > to use it with the framebuffer so I've set it up to use the image > > surface backend. I've mmaped the framebuffer to a memory location and > > passed that as the data pointer to cairo_image_surface_create_for_data. > > It appears to work for a while, but it always hangs the system at some > > point when any drawing is being done (cairo_show_text or cairo_stroke). > > I realize that cairo is drawing directly to the framebuffer, but I > > didn't think this would be a problem. Am I doing something wrong here? > > It should work, Cairo should not generate out-of-bounds write or reads. > So I would suggest something is going wrong at the hardware/driver level > if the machine stops responding. Based on the symptoms, looks like it could be "Advisory 1.1.38 NEON Instructions Executed on a Non-Cached Memory-Mapped Address Result in Lockup" described in http://www.ti.com/lit/er/sprz329c/sprz329c.pdf > However, I can not recommend that you use an UC or WC mapping for a > Cairo surface, except for the final blit. Many of the operators that > Cairo performs involve a readback from memory, which from a scanout will > be very slow and may give the appearance of the machine freezing. (The > usual solution is to use a shadow framebuffer for the composition with a > blit (CAIRO_OPERATOR_SOURCE) onto the scanout for display.) -- Best regards, Siarhei Siamashka From teknos at gmail.com Tue Nov 13 06:56:01 2012 From: teknos at gmail.com (=?UTF-8?Q?Zoz=C3=B3_Teki?=) Date: Tue, 13 Nov 2012 15:56:01 +0100 Subject: [cairo] Win32 printing surfaces to EMF DCs Message-ID: Hi, I want to use cario to draw to a Windows Enhanced Metafile. In Windows metafiles have an associated _reference device context_ specific to a concrete device. Otherwise metafiles are largely generic, in many ways similar to cairo recording surfaces. The easiest way to create an EMF file is to use the display as reference context - it is always available. When cairo creates the printing surface, it reads the Clip Box of the reference DC and uses that as extent. This way I can only create EMFs as large as the screen. Is there some way I can adjust the extent of a win32 printing surface? Do you think it is a good idea to set the extents of win32 printing surfaces created for metafiles to unbounded? Zoltan -------------- next part -------------- An HTML attachment was scrubbed... URL: From carl at boeckeler.com Tue Nov 13 08:03:02 2012 From: carl at boeckeler.com (Carl D. Blake) Date: Tue, 13 Nov 2012 09:03:02 -0700 Subject: [cairo] Using cairo with image surface backend results hangs system In-Reply-To: <20121113142449.71fafc13@i7> References: <1352755886.4088.1518.camel@vulcan> <453bf0$6euri9@azsmga001.ch.intel.com> <20121113142449.71fafc13@i7> Message-ID: <1352822582.4088.1537.camel@vulcan> I got it to work by disabling the simd and neon optimizations in the pixman build, so it looks like Siarhei is correct and the neon instructions were causing a lockup in non-cached memory. >From what Chris said it sounds like I should make a shadow framebuffer which is located in standard memory, perform all draws on that memory, determine a rectangle which encompasses the draws that have been done, and then do a final blit using that rectangle into the actual framebuffer using CAIRO_OPERATOR_SOURCE. Would this actually improve performance even though I will be duplicating memory writes for every operation? I can do these blits with memcpy, but I wondered if pixman would handle this better. Are there any examples available? Carl On Tue, 2012-11-13 at 14:24 +0200, Siarhei Siamashka wrote: > On Tue, 13 Nov 2012 09:57:57 +0000 > Chris Wilson wrote: > > > On Mon, 12 Nov 2012 14:31:26 -0700, "Carl D. Blake" wrote: > > > I'm trying to use cairo with a DM8168 based system. I want to be able > > > to use it with the framebuffer so I've set it up to use the image > > > surface backend. I've mmaped the framebuffer to a memory location and > > > passed that as the data pointer to cairo_image_surface_create_for_data. > > > It appears to work for a while, but it always hangs the system at some > > > point when any drawing is being done (cairo_show_text or cairo_stroke). > > > I realize that cairo is drawing directly to the framebuffer, but I > > > didn't think this would be a problem. Am I doing something wrong here? > > > > It should work, Cairo should not generate out-of-bounds write or reads. > > So I would suggest something is going wrong at the hardware/driver level > > if the machine stops responding. > > Based on the symptoms, looks like it could be "Advisory 1.1.38 NEON > Instructions Executed on a Non-Cached Memory-Mapped Address Result in > Lockup" described in > http://www.ti.com/lit/er/sprz329c/sprz329c.pdf > > > However, I can not recommend that you use an UC or WC mapping for a > > Cairo surface, except for the final blit. Many of the operators that > > Cairo performs involve a readback from memory, which from a scanout will > > be very slow and may give the appearance of the machine freezing. (The > > usual solution is to use a shadow framebuffer for the composition with a > > blit (CAIRO_OPERATOR_SOURCE) onto the scanout for display.) > From fredbca21 at gmail.com Tue Nov 13 08:27:01 2012 From: fredbca21 at gmail.com (Fred bca21) Date: Tue, 13 Nov 2012 17:27:01 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue Message-ID: Hi, while trying to fix a cairo crash on win32 (already posted on this list), I am trying to understand the function below, and I can't figure out how it works regarding coordinates (it looks inconsistent to me): - The first call to _cairo_win32_display_surface_create_for_dc creates a surface with the appropriate with and height regarding the extent rectangle. - then why does the BitBlt call uses 0.0 as the origin for the source surface and not the origin of the extent since the newly created surface is supposed to represent the extent rectangle? - Also, why does the _cairo_image_surface_map_to_image using our newly created image does not use (0,0) as the origin, since our newly created image's origin corresponds to (extents.x,extents.y) in the original surface? There is probaby something that I am missing, but this seems to be the origin of the crash that I am chasing (this functions returns a pointer outside of the image boundaries due to a wrong offset). Thanks for your help. (If it is not the right list to discuss such implementation details, please forgive me and tell me where I should post) Fred. ----------- static cairo_surface_t * _cairo_win32_display_surface_map_to_image (void *abstract_surface, const cairo_rectangle_int_t *extents) { cairo_win32_display_surface_t *surface = abstract_surface; cairo_status_t status; TRACE ((stderr, "%s (surface=%d)\n", __FUNCTION__, surface->win32.base.unique_id)); if (surface->image) goto done; if (surface->fallback == NULL) { surface->fallback = _cairo_win32_display_surface_create_for_dc (surface->win32.dc, surface->win32.format, surface->win32.extents.width, surface->win32.extents.height); if (unlikely (status = surface->fallback->status)) goto err; if (!BitBlt (to_win32_surface(surface->fallback)->dc, 0, 0, surface->win32.extents.width, surface->win32.extents.height, surface->win32.dc, 0, 0, SRCCOPY)) { status = _cairo_error (CAIRO_STATUS_DEVICE_ERROR); goto err; } } surface = to_win32_display_surface (surface->fallback); done: GdiFlush(); return _cairo_image_surface_map_to_image (surface->image, extents); From julian.viereck at googlemail.com Tue Nov 13 13:17:00 2012 From: julian.viereck at googlemail.com (Julian Viereck) Date: Tue, 13 Nov 2012 22:17:00 +0100 Subject: [cairo] Reference counting of cairo free type face In-Reply-To: <50A01FFA.1030200@gmail.com> References: <50A01FFA.1030200@gmail.com> Message-ID: <50A2B8CC.8060808@gmail.com> Hi there, I try to add font support to the node-canvas [1] library, which uses cairo for rendering. I use the freetype2 library to load a font face and then use it in cairo. The font rendering is working, but I got stuck on memory management of the cairo font face. In particular, the cairo font face's reference counter is not reset to 1 at the point I expect it to be. Here's what I'm doing. I concentrate on the essential parts only. Let "ref(cr_face)" be "cairo_font_face_get_reference_count(cr_face)" to get the internal reference counter for the cairo font face. // Create a free type font face from a font file. FT_New_Face(library, *filePath, faceIdx, &ft_face); // Create a cairo font face. cr_face = cairo_ft_font_face_create_for_ft_face(ft_face, 0); // At this point ref(cr_face) == 1. // Set the cairo font face on a cairo rendering context. cairo_set_font_face(ctx, cr_face); // At this point ref(cr_face) == 2. I guess that's okay, as the font is requird for rendering. cairo_text_path(ctx, str); // At this point ref(cr_face) == 4. cairo_destroy(ctx); // At this point ref(cr_face) == 3. Shouldn't the reference count after the "cairo_destory" be 1 again and the cairo font face deleted? Do I need to perform some manually cleanup first? Hope someone can help me out here and very best, Julian PS: I use cairo 1.12.8 and the freetype 2.4.10 library. --- [1]: https://github.com/LearnBoost/node-canvas From bfulgham at gmail.com Tue Nov 13 23:17:48 2012 From: bfulgham at gmail.com (Brent Fulgham) Date: Tue, 13 Nov 2012 23:17:48 -0800 Subject: [cairo] Cairo WGL Implementation In-Reply-To: <453bf0$6euri9@azsmga001.ch.intel.com> References: <1352755886.4088.1518.camel@vulcan> <453bf0$6euri9@azsmga001.ch.intel.com> Message-ID: I recently tried using the WGL support in Cairo and found that a number of changes were needed to get a functioning test running. Are there any existing examples showing typical use of this target? It seems like this may have bit-rot a bit with the recent work on the GL backed. Thanks, -Brent From chris at chris-wilson.co.uk Wed Nov 14 01:01:47 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Wed, 14 Nov 2012 09:01:47 +0000 Subject: [cairo] Reference counting of cairo free type face In-Reply-To: <50A2B8CC.8060808@gmail.com> References: <50A01FFA.1030200@gmail.com> <50A2B8CC.8060808@gmail.com> Message-ID: <453bf0$6fdsjm@azsmga001.ch.intel.com> On Tue, 13 Nov 2012 22:17:00 +0100, Julian Viereck wrote: > Hi there, > > I try to add font support to the node-canvas [1] library, which uses > cairo for rendering. I use the freetype2 library to load a font face and > then use it in cairo. The font rendering is working, but I got stuck on > memory management of the cairo font face. In particular, the cairo font > face's reference counter is not reset to 1 at the point I expect it to be. > > Here's what I'm doing. I concentrate on the essential parts only. Let > "ref(cr_face)" be "cairo_font_face_get_reference_count(cr_face)" to get > the internal reference counter for the cairo font face. > > // Create a free type font face from a font file. > FT_New_Face(library, *filePath, faceIdx, &ft_face); > // Create a cairo font face. > cr_face = cairo_ft_font_face_create_for_ft_face(ft_face, 0); > > // At this point ref(cr_face) == 1. > > // Set the cairo font face on a cairo rendering context. > cairo_set_font_face(ctx, cr_face); > > // At this point ref(cr_face) == 2. I guess that's okay, as the > font is requird for rendering. > > cairo_text_path(ctx, str); > > // At this point ref(cr_face) == 4. > > cairo_destroy(ctx); > > // At this point ref(cr_face) == 3. > > Shouldn't the reference count after the "cairo_destory" be 1 again and > the cairo font face deleted? Do I need to perform some manually cleanup > first? Cairo maintains a holdover cache of the MRU scaled fonts (outside of any context) which accounts for the extra references. The cairo_font_face_finish() / cairo_scaled_font_finish() interface has been proposed to decouple those extra references in a user-controllable way. However, in order to hook into the destroy notification for when the font is released you want to use cairo_scaled_font_set_user_data(). -Chris -- Chris Wilson, Intel Open Source Technology Centre From julian.viereck at googlemail.com Wed Nov 14 06:43:02 2012 From: julian.viereck at googlemail.com (Julian Viereck) Date: Wed, 14 Nov 2012 15:43:02 +0100 Subject: [cairo] Reference counting of cairo free type face In-Reply-To: <453bf0$6fdsjm@azsmga001.ch.intel.com> References: <50A01FFA.1030200@gmail.com> <50A2B8CC.8060808@gmail.com> <453bf0$6fdsjm@azsmga001.ch.intel.com> Message-ID: <50A3ADF6.6010508@gmail.com> > Cairo maintains a holdover cache of the MRU scaled fonts (outside of any > context) which accounts for the extra references. The > cairo_font_face_finish() / cairo_scaled_font_finish() interface has been > proposed to decouple those extra references in a user-controllable way. > However, in order to hook into the destroy notification for when the > font is released you want to use cairo_scaled_font_set_user_data(). Thanks a lot for this input Chris. Is there an upper limit for the fonts being cached? If so, I wouldn't bother to have some constant memory overhead for font faces that are no longer needed. Best, Julian On Wed Nov 14 10:01:47 2012, Chris Wilson wrote: > On Tue, 13 Nov 2012 22:17:00 +0100, Julian Viereck wrote: >> Hi there, >> >> I try to add font support to the node-canvas [1] library, which uses >> cairo for rendering. I use the freetype2 library to load a font face and >> then use it in cairo. The font rendering is working, but I got stuck on >> memory management of the cairo font face. In particular, the cairo font >> face's reference counter is not reset to 1 at the point I expect it to be. >> >> Here's what I'm doing. I concentrate on the essential parts only. Let >> "ref(cr_face)" be "cairo_font_face_get_reference_count(cr_face)" to get >> the internal reference counter for the cairo font face. >> >> // Create a free type font face from a font file. >> FT_New_Face(library, *filePath, faceIdx, &ft_face); >> // Create a cairo font face. >> cr_face = cairo_ft_font_face_create_for_ft_face(ft_face, 0); >> >> // At this point ref(cr_face) == 1. >> >> // Set the cairo font face on a cairo rendering context. >> cairo_set_font_face(ctx, cr_face); >> >> // At this point ref(cr_face) == 2. I guess that's okay, as the >> font is requird for rendering. >> >> cairo_text_path(ctx, str); >> >> // At this point ref(cr_face) == 4. >> >> cairo_destroy(ctx); >> >> // At this point ref(cr_face) == 3. >> >> Shouldn't the reference count after the "cairo_destory" be 1 again and >> the cairo font face deleted? Do I need to perform some manually cleanup >> first? > > Cairo maintains a holdover cache of the MRU scaled fonts (outside of any > context) which accounts for the extra references. The > cairo_font_face_finish() / cairo_scaled_font_finish() interface has been > proposed to decouple those extra references in a user-controllable way. > However, in order to hook into the destroy notification for when the > font is released you want to use cairo_scaled_font_set_user_data(). > -Chris > From psychon at znc.in Wed Nov 14 06:47:28 2012 From: psychon at znc.in (Uli Schlachter) Date: Wed, 14 Nov 2012 15:47:28 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue In-Reply-To: References: Message-ID: <50A3AF00.2000907@znc.in> Hi, On 13.11.2012 17:27, Fred bca21 wrote: > while trying to fix a cairo crash on win32 (already posted on this > list), I am trying to understand the function below, and I can't > figure out how it works regarding coordinates (it looks inconsistent > to me): First: We are in _cairo_win32_display_surface_map_to_image(). That wasn't enirely clear to me from your mail. > - The first call to _cairo_win32_display_surface_create_for_dc > creates a surface with the appropriate with and height regarding the > extent rectangle. The extent rectangle of the win32 surface that we are looking at. So this creates a surface of the same size as the already-existing surface that we are working with. > - then why does the BitBlt call uses 0.0 as the origin for the source > surface and not the origin of the extent since the newly created > surface is supposed to represent the extent rectangle? A surface doesn't really have any origin which would matter here. This code looks like it wants to copy the whole win32 surface to the newly created surface created above. Thus, source and destination offset are both 0, 0. Nothing touched the 'extents' argument of _cairo_win32_display_surface_map_to_image() yet. > - Also, why does the _cairo_image_surface_map_to_image using our newly > created image does not use (0,0) as the origin, since our newly > created image's origin corresponds to (extents.x,extents.y) in the > original surface? No, see above. The newly creates surface is as large as the original surface. Nothing touched the "extents" argument yet. > There is probaby something that I am missing, but this seems to be the > origin of the crash that I am chasing (this functions returns a > pointer outside of the image boundaries due to a wrong offset). Could you give us some examples of the width, height, rowstrides, formats and arguments for map_to_image used? I am fairly sure that the image surface's map_to_image() works correctly. So if this returns bogous pointers, then the image surface must have been fed with bogous data. > Thanks for your help. One last idea: Do any of the involved surfaces have offsets applied? What is their surface->device_transform? Is it all zero. Cheers, Uli From chris at chris-wilson.co.uk Wed Nov 14 06:49:07 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Wed, 14 Nov 2012 14:49:07 +0000 Subject: [cairo] Reference counting of cairo free type face In-Reply-To: <50A3ADF6.6010508@gmail.com> References: <50A01FFA.1030200@gmail.com> <50A2B8CC.8060808@gmail.com> <453bf0$6fdsjm@azsmga001.ch.intel.com> <50A3ADF6.6010508@gmail.com> Message-ID: <6c3329$76rt6f@orsmga002.jf.intel.com> On Wed, 14 Nov 2012 15:43:02 +0100, Julian Viereck wrote: > Is there an upper limit for the fonts being cached? If so, I wouldn't > bother to have some constant memory overhead for font faces that are no > longer needed. Only the last 16 freed fonts are kept in the holdover cache. -Chris -- Chris Wilson, Intel Open Source Technology Centre From pentdown at hotmail.com Wed Nov 14 22:17:55 2012 From: pentdown at hotmail.com (Pent Down) Date: Thu, 15 Nov 2012 01:17:55 -0500 Subject: [cairo] Porting and licence question Message-ID: Hello, I managed to port Cairo to Windows CE 6 and so far works great. My question is if I am allowed to include it in a commercial application for which I am not allowed to distribute the code? Yes, I had to make small changes (few files,) nothing major. Thank You -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris at chris-wilson.co.uk Thu Nov 15 01:48:19 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Thu, 15 Nov 2012 09:48:19 +0000 Subject: [cairo] Porting and licence question In-Reply-To: References: Message-ID: <275ffc$7dsp0j@fmsmga002.fm.intel.com> On Thu, 15 Nov 2012 01:17:55 -0500, Pent Down wrote: > > > Hello, > I managed to port Cairo to Windows CE 6 and so far works great. > My question is if I am allowed to include it in a commercial application for which I am not allowed to distribute the code? > Yes, I had to make small changes (few files,) nothing major. Yes, you may under the Mozilla Public Licence, which allows you to combine Cairo into any larger piece of work (without imposing licensing terms on the larger work). The essential requirement (please do read COPYING-MPL-1-1) is that any modifications you make to *Cairo* are made available to everyone you distribute your version to. Alternatively you may choose to use the GNU Lesser General Public Licence, which has stricter requirements on how you can combine the pieces of work into the distributable whole (without making the larger body of work a derivative) and for making and maintaining modifications to Cairo. Read COPYING-LGPL-2.1 for the full details. Have fun using Cairo! Please do let us know how you get on and of any little changes you make. -Chris -- Chris Wilson, Intel Open Source Technology Centre From fredbca21 at gmail.com Thu Nov 15 05:16:43 2012 From: fredbca21 at gmail.com (Fred Beca) Date: Thu, 15 Nov 2012 14:16:43 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue In-Reply-To: <50A3AF00.2000907@znc.in> References: <50A3AF00.2000907@znc.in> Message-ID: Hi Uli, Thanks for the reply, it's very helpful. I' ll double check the bits you are talking about asap. Just for the record, a simple code snippet is available in this post to easily reproduce the problem on windows: http://lists.cairographics.org/archives/cairo/2012-November/023728.html The function may indeed be fed by bogus data, and that's exaclty what I am trying to find out, with my little knowledge of the library: where and how is the data somehow corrupted? Regards, Fred. On Wed, Nov 14, 2012 at 3:47 PM, Uli Schlachter wrote: > Hi, > > > On 13.11.2012 17:27, Fred bca21 wrote: >> >> while trying to fix a cairo crash on win32 (already posted on this >> list), I am trying to understand the function below, and I can't >> figure out how it works regarding coordinates (it looks inconsistent >> to me): > > > First: We are in _cairo_win32_display_surface_map_to_image(). That wasn't > enirely clear to me from your mail. > > >> - The first call to _cairo_win32_display_surface_create_for_dc >> creates a surface with the appropriate with and height regarding the >> extent rectangle. > > > The extent rectangle of the win32 surface that we are looking at. So this > creates a surface of the same size as the already-existing surface that we > are working with. > > >> - then why does the BitBlt call uses 0.0 as the origin for the source >> surface and not the origin of the extent since the newly created >> surface is supposed to represent the extent rectangle? > > > A surface doesn't really have any origin which would matter here. This code > looks like it wants to copy the whole win32 surface to the newly created > surface created above. Thus, source and destination offset are both 0, 0. > > Nothing touched the 'extents' argument of > _cairo_win32_display_surface_map_to_image() yet. > > >> - Also, why does the _cairo_image_surface_map_to_image using our newly >> created image does not use (0,0) as the origin, since our newly >> created image's origin corresponds to (extents.x,extents.y) in the >> original surface? > > > No, see above. The newly creates surface is as large as the original > surface. Nothing touched the "extents" argument yet. > > >> There is probaby something that I am missing, but this seems to be the >> origin of the crash that I am chasing (this functions returns a >> pointer outside of the image boundaries due to a wrong offset). > > > Could you give us some examples of the width, height, rowstrides, formats > and arguments for map_to_image used? > > I am fairly sure that the image surface's map_to_image() works correctly. So > if this returns bogous pointers, then the image surface must have been fed > with bogous data. > >> Thanks for your help. > > > One last idea: Do any of the involved surfaces have offsets applied? What is > their surface->device_transform? Is it all zero. > > Cheers, > Uli > -- > cairo mailing list > cairo at cairographics.org > http://lists.cairographics.org/mailman/listinfo/cairo From psychon at znc.in Thu Nov 15 07:37:11 2012 From: psychon at znc.in (Uli Schlachter) Date: Thu, 15 Nov 2012 16:37:11 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue In-Reply-To: References: <50A3AF00.2000907@znc.in> Message-ID: <50A50C27.9010104@znc.in> Hi, On 15.11.2012 14:16, Fred Beca wrote: > Thanks for the reply, it's very helpful. I' ll double check the bits > you are talking about asap. Just for the record, a simple code snippet > is available in this post to easily reproduce the problem on windows: > http://lists.cairographics.org/archives/cairo/2012-November/023728.html Sorr > The function may indeed be fed by bogus data, and that's exaclty what > I am trying to find out, with my little knowledge of the library: > where and how is the data somehow corrupted? From psychon at znc.in Thu Nov 15 07:40:23 2012 From: psychon at znc.in (Uli Schlachter) Date: Thu, 15 Nov 2012 16:40:23 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue In-Reply-To: References: <50A3AF00.2000907@znc.in> Message-ID: <50A50CE7.1000408@znc.in> Hi, first: Sorry for my fat fingers. :-( On 15.11.2012 14:16, Fred Beca wrote: > Thanks for the reply, it's very helpful. I' ll double check the bits > you are talking about asap. Just for the record, a simple code snippet > is available in this post to easily reproduce the problem on windows: > http://lists.cairographics.org/archives/cairo/2012-November/023728.html Sorry, but I don't have access to any windows boxes. > The function may indeed be fed by bogus data, and that's exaclty what > I am trying to find out, with my little knowledge of the library: > where and how is the data somehow corrupted? I'm not really sure that the data gets corrupted. It seems more likely to me that some GDI function doesn't behave as expected or has a different interpretation of some parameter. That could mean that e.g. too few bytes are allocated for the image surface and things go downhill when cairo/pixman try to access the bytes near the end of the image surface. Uli From fredbca21 at gmail.com Thu Nov 15 08:05:58 2012 From: fredbca21 at gmail.com (Fred Beca) Date: Thu, 15 Nov 2012 17:05:58 +0100 Subject: [cairo] _cairo_win32_display_surface_map_to_image issue In-Reply-To: <50A50CE7.1000408@znc.in> References: <50A3AF00.2000907@znc.in> <50A50CE7.1000408@znc.in> Message-ID: > I'm not really sure that the data gets corrupted. It seems more likely to me > that some GDI function doesn't behave as expected or has a different > interpretation of some parameter. That could mean that e.g. too few bytes > are allocated for the image surface and things go downhill when cairo/pixman > try to access the bytes near the end of the image surface. If you look at the details of my previous report, the crash indeed occurs in a cairo function: data is not exactly "corrupted", but the offset in the pixman image used for backing is wrong (the offset seems to be applied twice. The problem for me is to find where it comes from). I have not seen (yet) any GDI call in the path. The problem seems to come from the fact that the backing image is created with the dimensions of the clipping rectangle, and yet it is considered as covering the entire original area of the HBITMAP. Regards, Fred. From dy5.kim at samsung.com Thu Nov 15 21:45:18 2012 From: dy5.kim at samsung.com (Dongyeon Kim) Date: Fri, 16 Nov 2012 05:45:18 +0000 (GMT) Subject: [cairo] [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture Message-ID: <27673201.227161353044717987.JavaMail.weblogic@epv6ml02> Hello, When I create an image surface from png, and use this surface as source to paint to cairo gl surface that is created using FBO, the resulting gl surface is just black. I have spent some time investigating this, and found that cairo was uploading data to the texture that is currently being used as target framebuffer. To fix this problem, image data should be uploaded to an intermediate texture, and this texture should be rendered into the FBO. The following patch is a suggested fix for both gl-spans and gl-traps compositors. Thanks From cfad0e1ea8e36bc1351c44c2358ef6bb400a0f26 Mon Sep 17 00:00:00 2001 From: Dongyeon Kim Date: Fri, 16 Nov 2012 14:29:50 +0900 Subject: [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture When gl surface is created using fbo, you cannot upload image data directly into framebuffer-attached texture. Image data should be uploaded to an intermediate texture, and this texture should be rendered into the fbo. --- src/cairo-gl-spans-compositor.c | 3 +++ src/cairo-gl-traps-compositor.c | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/cairo-gl-spans-compositor.c b/src/cairo-gl-spans-compositor.c index 62da1eb..968bc4c 100644 --- a/src/cairo-gl-spans-compositor.c +++ b/src/cairo-gl-spans-compositor.c @@ -291,6 +291,9 @@ draw_image_boxes (void *_dst, struct _cairo_boxes_chunk *chunk; int i; + if (_cairo_gl_surface_is_texture (dst)) + return CAIRO_INT_STATUS_UNSUPPORTED; + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { for (i = 0; i < chunk->count; i++) { cairo_box_t *b = &chunk->base[i]; diff --git a/src/cairo-gl-traps-compositor.c b/src/cairo-gl-traps-compositor.c index 4bae0d1..a1ba69b 100644 --- a/src/cairo-gl-traps-compositor.c +++ b/src/cairo-gl-traps-compositor.c @@ -84,6 +84,9 @@ draw_image_boxes (void *_dst, struct _cairo_boxes_chunk *chunk; int i; + if (_cairo_gl_surface_is_texture (dst)) + return CAIRO_INT_STATUS_UNSUPPORTED; + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { for (i = 0; i < chunk->count; i++) { cairo_box_t *b = &chunk->base[i]; -- 1.7.5.4 From eric at anholt.net Thu Nov 15 22:42:40 2012 From: eric at anholt.net (Eric Anholt) Date: Thu, 15 Nov 2012 22:42:40 -0800 Subject: [cairo] [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture In-Reply-To: <27673201.227161353044717987.JavaMail.weblogic@epv6ml02> References: <27673201.227161353044717987.JavaMail.weblogic@epv6ml02> Message-ID: <87pq3edp5r.fsf@eliezer.anholt.net> Dongyeon Kim writes: > Hello, > > When I create an image surface from png, and use this surface as > source to paint to cairo gl surface that is created using FBO, the > resulting gl surface is just black. > > I have spent some time investigating this, and found that cairo was > uploading data to the texture that is currently being used as target > framebuffer. > > To fix this problem, image data should be uploaded to an intermediate > texture, and this texture should be rendered into the FBO. > > The following patch is a suggested fix for both gl-spans and gl-traps > compositors. Huh? Using glTexImage to set the contents of an FBO sounds perfectly legal and should have expected behavior. This sounds like a driver bug. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 197 bytes Desc: not available URL: From dy5.kim at samsung.com Thu Nov 15 23:51:51 2012 From: dy5.kim at samsung.com (Dongyeon Kim) Date: Fri, 16 Nov 2012 07:51:51 +0000 (GMT) Subject: [cairo] [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture Message-ID: <2655770.241821353052310922.JavaMail.weblogic@epv6ml02> It is fine to set the FBO content using glTex(Sub)Image2D before the texture is bound to the framebuffer. But what the current implementation does is that after the texture has been bound to the framebuffer to be the rendering target, cairo again binds the same texture as the rendering source and uploads data. As I know this falls into a rendering feedback loop. According to the OpenGL ES spec, a feedback loop may exist when a texture object is used as both the source and destination of a GL operation, and when a feedback loop exists, undefined behavior results. I will check again whether this is the driver-specific issue. Thanks ------- Original Message ------- Sender : Eric Anholt Date : 2012-11-16 15:42 (GMT+09:00) Title : Re: [cairo] [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture Dongyeon Kim writes: > Hello, > > When I create an image surface from png, and use this surface as > source to paint to cairo gl surface that is created using FBO, the > resulting gl surface is just black. > > I have spent some time investigating this, and found that cairo was > uploading data to the texture that is currently being used as target > framebuffer. > > To fix this problem, image data should be uploaded to an intermediate > texture, and this texture should be rendered into the FBO. > > The following patch is a suggested fix for both gl-spans and gl-traps > compositors. Huh? Using glTexImage to set the contents of an FBO sounds perfectly legal and should have expected behavior. This sounds like a driver bug. From ajax at redhat.com Fri Nov 16 10:04:48 2012 From: ajax at redhat.com (Adam Jackson) Date: Fri, 16 Nov 2012 13:04:48 -0500 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <509BE9A2.2000209@redhat.com> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> Message-ID: <1353089088.21005.55.camel@atropine> On Thu, 2012-11-08 at 12:19 -0500, Adam Jackson wrote: > On 10/31/12 4:13 PM, Adam Jackson wrote: > > malloc(0) needn't return NULL, and on glibc, doesn't. Then we encounter > > a loop of the form do { ... } while (--c), which doesn't do quite what > > you were hoping for when c is initially 0. > > > > Since there's nothing to swap in this case, just bomb out. > > Bump. Anything else I need to add here? Another week, another ping. - ajax -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From eric at anholt.net Fri Nov 16 10:44:44 2012 From: eric at anholt.net (Eric Anholt) Date: Fri, 16 Nov 2012 10:44:44 -0800 Subject: [cairo] [PATCH] gl: Draw image surface to fbo gl surface using intermediate texture In-Reply-To: <2655770.241821353052310922.JavaMail.weblogic@epv6ml02> References: <2655770.241821353052310922.JavaMail.weblogic@epv6ml02> Message-ID: <87k3tlcrqb.fsf@eliezer.anholt.net> Dongyeon Kim writes: > It is fine to set the FBO content using glTex(Sub)Image2D before the > texture is bound to the framebuffer. But what the current > implementation does is that after the texture has been bound to the > framebuffer to be the rendering target, cairo again binds the same > texture as the rendering source and uploads data. As I know this > falls into a rendering feedback loop. > > According to the OpenGL ES spec, a feedback loop may exist when a > texture object is used as both the source and destination of a GL > operation, and when a feedback loop exists, undefined behavior > results. > > I will check again whether this is the driver-specific issue. > Thanks The patch you sent didn't appear to be about avoiding feedback loops (a feedback loop, to be clear, is having an fbo with a texture and doing a draw call like glDrawArrays that samples from the same texture), it just avoided these paths on texture-backed surface entirely. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 197 bytes Desc: not available URL: From psychon at znc.in Fri Nov 16 10:59:52 2012 From: psychon at znc.in (Uli Schlachter) Date: Fri, 16 Nov 2012 19:59:52 +0100 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <1353089088.21005.55.camel@atropine> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> <1353089088.21005.55.camel@atropine> Message-ID: <50A68D28.2030001@znc.in> On 16.11.2012 19:04, Adam Jackson wrote: > On Thu, 2012-11-08 at 12:19 -0500, Adam Jackson wrote: >> On 10/31/12 4:13 PM, Adam Jackson wrote: >>> malloc(0) needn't return NULL, and on glibc, doesn't. Then we encounter >>> a loop of the form do { ... } while (--c), which doesn't do quite what >>> you were hoping for when c is initially 0. >>> >>> Since there's nothing to swap in this case, just bomb out. >> >> Bump. Anything else I need to add here? > > Another week, another ping. Pong :-P I haven't forgotten this patch. However, I have no clue what the original "server crashes on 0x0 glyphs" bug is about nor if we want to keep the work-around for that. My hope is that the almighty Chris could help us here. Also, I would like to see a test case for this. Dunno if that would need user-fonts or if it could be done via drawing " "... Cheers, Uli -- If you have to type the letters "A-E-S" into your source code, you're doing it wrong. From ajax at redhat.com Fri Nov 16 13:27:07 2012 From: ajax at redhat.com (Adam Jackson) Date: Fri, 16 Nov 2012 16:27:07 -0500 Subject: [cairo] [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph In-Reply-To: <50A68D28.2030001@znc.in> References: <1351714426-14768-1-git-send-email-ajax@redhat.com> <509BE9A2.2000209@redhat.com> <1353089088.21005.55.camel@atropine> <50A68D28.2030001@znc.in> Message-ID: <1353101227.21005.67.camel@atropine> On Fri, 2012-11-16 at 19:59 +0100, Uli Schlachter wrote: > I haven't forgotten this patch. However, I have no clue what the original > "server crashes on 0x0 glyphs" bug is about nor if we want to keep the > work-around for that. My hope is that the almighty Chris could help us here. The original server bug was this, I believe: http://cgit.freedesktop.org/xorg/xserver/commit/render/render.c?id=622fc98fd08aba98369e6933c3ab8c9ff85385d5 ~/xserver% git describe --contains 622fc98fd08aba98369e6933c3ab8c9ff85385d5 xorg-server-1.7.99.1~63 _cairo_xlib_traps_compositor_get() gets called if the render version is >= 0.4; given that 0.5 was when ARGB cursors were added, that's somewhere back in the XFree86 era. So presumably this path is indeed broken for sufficiently old xserver. Naughty, introducing a regression like that. I can come up with a testcase I suppose, but it will likely be sometime after the upcoming holiday as I'll be travelling a bit. - ajax -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From mellamanjefe at gmail.com Mon Nov 19 11:29:02 2012 From: mellamanjefe at gmail.com (Marco Quezada) Date: Mon, 19 Nov 2012 14:29:02 -0500 Subject: [cairo] Why would cairo_font/text_extents() return blank? Message-ID: I am debuggin some code given to me that is using cairo as its graphics drawing context with a xlib surface. The code crashed at a line that divides a number by the font x_advance except that this number is 0. I have a valid cairo_context instantiated and drawing to it works. I can also call cairo_get_font_face() passing the same valid cairo context and I get what looks like valid memory back (my cairo does not have debugging information built in so I can't look into the cairo_font_face_t pointer). If I call cairo_font/text_extents() right after the context is instantiated I get good looking values (non are zero). Then some more initialization of the application goes on and finally I call cairo_font/text_extents later on and the values in the returned extents are all zero. Is it possible to "unset" the font in cairo? What else might cause this behavior? At the point where the code returns the zeroed extents I tried getting the font matrix and the application segfaulted. I don't know if that is relevant to my problem or not, I was using it to try and debug my problem. Thanks! -Marco -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeongjoon.yoo at gmail.com Tue Nov 20 16:55:54 2012 From: jeongjoon.yoo at gmail.com (Jeong-Joon Yoo) Date: Wed, 21 Nov 2012 09:55:54 +0900 Subject: [cairo] working properly "_cairo_fixed_from_double (double d)" in single precision Message-ID: Dear all, The following function, shown in cairo-fixed-private.h, does not work properly because our cpu provides only a single precision. _cairo_fixed_from_double (double d) What can I do to fix it? (our cpu: single precision, little-endian) Thank you in advance. - jjyoo From genetita at gmail.com Wed Nov 21 00:27:23 2012 From: genetita at gmail.com (=?ISO-8859-1?Q?Carlos_L=F3pez_Gonz=E1lez?=) Date: Wed, 21 Nov 2012 09:27:23 +0100 Subject: [cairo] Cairo Push/Pop and pattern result Message-ID: Hi! I'm very confused with the results of the code that I'm doing and at the same time the documentation doesn't explain properly the behavior of the Cairo functions used. First let me explain what I'm doing (or trying to do): I need to create a function that composite the primitives with the target surface using a non native composite operator (I call it BlendMethod). For that I do this (pseudo code): Parameters: cairo_t* cr, BlendMethod method, float alpha Function: 1) Based on method select portions of code with switch. 2) Draw the cairo context to other surface (source) 3) Map the source surface and the target surface to image 4) Do pixel operations based on method. Store the result in source. 5) Unmap source and target back. 6) Composite source over target using the ATOP cairo blend operation and cairo_paint_with alpha using alpha. Here is the code section for that (lines 183 to 233): https://github.com/synfig/synfig/blob/genete_new_cairo_core_2/synfig-core/src/synfig/cairo_operators.cpp#L183 There are some significant things there: 1) I need to calculate the clip extents and then transform them to properly access the target pixels and combine them with the source pixels. Lines 202-220 2) I need to reset clip and set matrix identity on cr to properly composite the source on the target lines 224 to 225. My question are: 1) The surface extracted from the pattern of a push/pop operation does somehow carry on with the transformations of the cairo context? 2) How it is possible that setting a source surface on the top left corner (0, 0) it is placed properly on its clipping user to device place? 3) It is possible to use the matrix from pattern to properly calculate the target pixels that are going to be combined with the source surface? (instead of the cr clip extents) Greetings and thanks. -- Carlos http://synfig.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin at duskware.de Wed Nov 21 00:35:50 2012 From: martin at duskware.de (Martin Husemann) Date: Wed, 21 Nov 2012 09:35:50 +0100 Subject: [cairo] working properly "_cairo_fixed_from_double (double d)" in single precision In-Reply-To: References: Message-ID: <20121121083550.GA14056@mail.duskware.de> On Wed, Nov 21, 2012 at 09:55:54AM +0900, Jeong-Joon Yoo wrote: > Dear all, > > The following function, shown in cairo-fixed-private.h, does not work > properly because our cpu provides only a single precision. > > _cairo_fixed_from_double (double d) > > What can I do to fix it? Your compiler is free to alias double == float. Martin From xiaolin.ji at intel.com Wed Nov 21 11:58:41 2012 From: xiaolin.ji at intel.com (xiaolin.ji at intel.com) Date: Wed, 21 Nov 2012 14:58:41 -0500 Subject: [cairo] [PATCH] BugFix the tighten-bounds with egl backend Message-ID: <1353527921-2852-1-git-send-email-xiaolin.ji@intel.com> From: xiaolin.ji I tested tighten-bounds with egl backend at my sandybridge, it failed. when fill_boxes with the boxes which create from "_cairo_boxes_init_from_rectangle", the boxes->chunks.count is zero, it will do nothing when emit the aligned boxes --- src/cairo-boxes.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cairo-boxes.c b/src/cairo-boxes.c index 63b68dd..b96b4b8 100644 --- a/src/cairo-boxes.c +++ b/src/cairo-boxes.c @@ -57,10 +57,18 @@ void _cairo_boxes_init_from_rectangle (cairo_boxes_t *boxes, int x, int y, int w, int h) { + cairo_box_t box; + cairo_int_status_t status; + _cairo_boxes_init (boxes); + + box.p1.x = _cairo_fixed_from_int (x); + box.p1.y = _cairo_fixed_from_int (y); + box.p2.x = _cairo_fixed_from_int (x + w); + box.p2.y = _cairo_fixed_from_int (y + h); - _cairo_box_from_integers (&boxes->chunks.base[0], x, y, w, h); - boxes->num_boxes = 1; + status = _cairo_boxes_add (boxes, CAIRO_ANTIALIAS_DEFAULT, &box); + assert (status == CAIRO_INT_STATUS_SUCCESS); } void -- 1.7.10.4 From hanscusco at hotmail.com Wed Nov 21 09:14:19 2012 From: hanscusco at hotmail.com (John) Date: Wed, 21 Nov 2012 17:14:19 +0000 (UTC) Subject: [cairo] How to load a BMP/JPG/TGA to a Surface? References: <913525.50130.qm@web76206.mail.sg1.yahoo.com> Message-ID: Jonathan Morton movial.com> writes: > It looks to me as though BLoad has included the BMP header in the > block of data it loaded. I would talk to FreeBASIC people about that. > > - Jonathan Morton As a FreeBasic user, I can reply to that. FreeBASIC's BLoad does not include the BMP header, but it prepends its own header, which is either 4 bytes or 32 bytes (depending on the version resp. the language option you are using; the newer versions use 32 bytes). This may explain the offset on your image. So try to find out if your version uses the 4-byte or the 32-byte header, and then start to read the pixel data after that header. From behdad at behdad.org Thu Nov 22 14:13:35 2012 From: behdad at behdad.org (Behdad Esfahbod) Date: Thu, 22 Nov 2012 17:13:35 -0500 Subject: [cairo] "High-DPI, Subpixel Text Positioning, Hinting" Message-ID: <50AEA38F.5030605@behdad.org> [Excuse my cross-lists posting] A while back I wrote a document about the interactions of high-density displays and font rendering options. I just went ahead and made it public, so, enjoy! http://goo.gl/yf3M7 -- behdad http://behdad.org/ From sandmann at cs.au.dk Fri Nov 23 19:57:22 2012 From: sandmann at cs.au.dk (=?utf-8?Q?S=C3=B8ren?= Sandmann) Date: Sat, 24 Nov 2012 04:57:22 +0100 Subject: [cairo] Image resampling [PATCH 0/6] Message-ID: Hi, Reviewing the supersampling patch here: http://cgit.freedesktop.org/~ajohnson/pixman/log/?h=supersampling I wasn't happy with either the performance and image quality, and I realized that the whole supersampling approach just isn't going to fly. Since I told people to do it that way, I apologize for that. The approach advocated by Bill Spitzak in the various downsampling threads of computing a convolution kernel up front, is the much better way to go. To make up for being misleading, the following patches implement comprehensive support for high-quality image scaling filters. Pixman already has a convolution filter, but since it only allows one sample per pixel of the filter, it is limited in the quality that it can support, so the following patches (to be applied on top of the three rounding patches) add a new filter type PIXMAN_FILTER_SEPARABLE_CONVOLUTION that supports multiple different convolution matrices that are chosen between based on the subpixel source location. The matrices are specified as tensor products of x/y vectors, which makes them separable by definition. The patches also add a helper function pixman_filter_create_separable_convolution() that will create the parameters for the filter based on scaling factors, filter kernels and subsampling resolution. Currently the supported kernels are impulse, box, linear, cubic (Mitchell-Netravali), lanczos2, lanczos3, lanczos3_stretched (aka. Blinn's 'Nice' filter), and Gaussian. There also a new demo program "demos/scale" that shows how the new API can be used. For some useful math regarding image transformations, see http://people.redhat.com/otaylor/gtk/pixbuf-transform-math.ps . For some informatino about how to compute the convolution matrices, see the additions to rounding.txt in the second patch. -=- Adding support to cairo and further work Once these patches have landed in Pixman, support will have to be added to cairo to make use of them. How to do that exactly requires figuring out what new API to offer, and how the tradeoffs between performance and quality should be made. This is not something that I personally plan to work on anytime soon, except to make three notes: - While transformations that are not pure scalings will not generally result in a separable filter, OK-looking results for non-scalings can be achieved by using scaling factors based on the bounding box of a transformation - For equivalent quality to GdkPixbuf do this: In each direction compute the scaling factors and then, if the scaling factor is less than 1 (ie., a downscaling), use PIXMAN_KERNEL_BOX for both reconstruction and sampling, and if it's greater than one, use PIXMAN_KERNEL_LINEAR for reconstruction and PIXMAN_KERNEL_IMPULSE for sampling. - If PIXMAN_KERNEL_GAUSSIAN is used with large downscaling factors and the resulting filter is then used with an identity transform, the result is a Gaussian blur, which is a feature that has sometimes been requested. The code in demos/scale.c may be useful as an example. -=- Further work and examples There is some additional work that could be done: - Performance improvements. Low-hanging fruit includes adding new fast path iterators that assume the source is a8r8g8b8 or r5g6b5. Higher hanging fruit is SIMD optimziations and implementations that take advantage of separability. It may also be interesting to speed up pixman_filter_create_separable_convolution() by tabularizing some of the trigonometric functions etc. - A non-separable, but subsampled, convolution filter type could be interesting to allow correct filters for non-scaling transformations and non-separable filters in general. As a reward for reading this entire mail, here are some images: Original (2.6 MB): http://www.daimi.au.dk/~sandmann/house.jpg Scaled down 12.9 times in each dimension: - With a box filter: http://www.daimi.au.dk/~sandmann/house-box.png - With Lanczos3: http://www.daimi.au.dk/~sandmann/house-lanczos3.png - With stretched Lanczos3: http://www.daimi.au.dk/~sandmann/house-nice.png For more examples, try demos/scale. The patch series is also available in this repository: http://cgit.freedesktop.org/~sandmann/pixman/log/?h=separable Soren From sandmann at cs.au.dk Fri Nov 23 20:15:26 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Fri, 23 Nov 2012 23:15:26 -0500 Subject: [cairo] [PATCH 1/6] Add new filter PIXMAN_FILTER_SEPARABLE_CONVOLUTION In-Reply-To: References: Message-ID: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen This filter is a new way to use a convolution matrix for filtering. In contrast to the existing CONVOLUTION filter, this new variant is different in two respects: - It is subsampled: Instead of just one convolution matrix, this filter chooses between a number of matrices based on the subpixel sample location, allowing the convolution kernel to be sampled at a higher resolution. - It is separable: Each matrix is specified as the tensor product of two vectors. This has the advantages that many fewer values have to be stored, and that the filtering can be done separately in the x and y dimensions (although the initial implementation doesn't actually do that). The motivation for this new filter is to improve image downsampling quality. Currently, the best pixman can do is the regular convolution filter which is limited to coarsely sampled convolution kernels. With this new feature, any separable filter can be used at any desired resolution. --- pixman/pixman-bits-image.c | 102 ++++++++++++++++++++++++++++++++++++++++++++ pixman/pixman-image.c | 19 +++++++- pixman/pixman.c | 8 +++ pixman/pixman.h | 23 +++++++++- 4 files changed, 149 insertions(+), 3 deletions(-) diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c index 7787ef1..97db108 100644 --- a/pixman/pixman-bits-image.c +++ b/pixman/pixman-bits-image.c @@ -426,6 +426,104 @@ bits_image_fetch_pixel_convolution (bits_image_t *image, return ((satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot)); } +static uint32_t +bits_image_fetch_pixel_convolution_separable (bits_image_t *image, + pixman_fixed_t x, + pixman_fixed_t y, + get_pixel_t get_pixel) +{ + pixman_fixed_t *params = image->common.filter_params; + pixman_repeat_t repeat_mode = image->common.repeat; + int width = image->width; + int height = image->height; + int cwidth = pixman_fixed_to_int (params[0]); + int cheight = pixman_fixed_to_int (params[1]); + int x_phase_bits = pixman_fixed_to_int (params[2]); + int y_phase_bits = pixman_fixed_to_int (params[3]); + int x_phase_shift = 16 - x_phase_bits; + int y_phase_shift = 16 - y_phase_bits; + int x_off = ((cwidth << 16) - pixman_fixed_1) >> 1; + int y_off = ((cheight << 16) - pixman_fixed_1) >> 1; + pixman_fixed_t *y_params; + int srtot, sgtot, sbtot, satot; + int32_t x1, x2, y1, y2; + int32_t px, py; + int i, j; + + /* Round x and y to the middle of the closest phase before continuing. This + * ensures that the convolution matrix is aligned right, since it was + * positioned relative to a particular phase (and not relative to whatever + * exact fraction we happen to get here). + */ + x = ((x >> x_phase_shift) << x_phase_shift) + ((1 << x_phase_shift) >> 1); + y = ((y >> y_phase_shift) << y_phase_shift) + ((1 << y_phase_shift) >> 1); + + px = (x & 0xffff) >> x_phase_shift; + py = (y & 0xffff) >> y_phase_shift; + + y_params = params + 4 + (1 << x_phase_bits) * cwidth + py * cheight; + + x1 = pixman_fixed_to_int (x - pixman_fixed_e - x_off); + y1 = pixman_fixed_to_int (y - pixman_fixed_e - y_off); + x2 = x1 + cwidth; + y2 = y1 + cheight; + + srtot = sgtot = sbtot = satot = 0; + + for (i = y1; i < y2; ++i) + { + pixman_fixed_48_16_t fy = *y_params++; + pixman_fixed_t *x_params = params + 4 + px * cwidth; + + if (fy) + { + for (j = x1; j < x2; ++j) + { + pixman_fixed_t fx = *x_params++; + int rx = j; + int ry = i; + + if (fx) + { + pixman_fixed_t f; + uint32_t pixel; + + if (repeat_mode != PIXMAN_REPEAT_NONE) + { + repeat (repeat_mode, &rx, width); + repeat (repeat_mode, &ry, height); + + pixel = get_pixel (image, rx, ry, FALSE); + } + else + { + pixel = get_pixel (image, rx, ry, TRUE); + } + + f = (fy * fx + 0x8000) >> 16; + + srtot += (int)RED_8 (pixel) * f; + sgtot += (int)GREEN_8 (pixel) * f; + sbtot += (int)BLUE_8 (pixel) * f; + satot += (int)ALPHA_8 (pixel) * f; + } + } + } + } + + satot = (satot + 0x8000) >> 16; + srtot = (srtot + 0x8000) >> 16; + sgtot = (sgtot + 0x8000) >> 16; + sbtot = (sbtot + 0x8000) >> 16; + + satot = CLIP (satot, 0, 0xff); + srtot = CLIP (srtot, 0, 0xff); + sgtot = CLIP (sgtot, 0, 0xff); + sbtot = CLIP (sbtot, 0, 0xff); + + return ((satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot)); +} + static force_inline uint32_t bits_image_fetch_pixel_filtered (bits_image_t *image, pixman_fixed_t x, @@ -449,6 +547,10 @@ bits_image_fetch_pixel_filtered (bits_image_t *image, return bits_image_fetch_pixel_convolution (image, x, y, get_pixel); break; + case PIXMAN_FILTER_SEPARABLE_CONVOLUTION: + return bits_image_fetch_pixel_convolution_separable (image, x, y, get_pixel); + break; + default: break; } diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index d9c3034..93ed17e 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -371,6 +371,7 @@ compute_image_info (pixman_image_t *image) break; case PIXMAN_FILTER_CONVOLUTION: + case PIXMAN_FILTER_SEPARABLE_CONVOLUTION: break; default: @@ -515,8 +516,9 @@ compute_image_info (pixman_image_t *image) * if all channels are opaque, so we simply turn it off * unconditionally for those images. */ - if (image->common.alpha_map || - image->common.filter == PIXMAN_FILTER_CONVOLUTION || + if (image->common.alpha_map || + image->common.filter == PIXMAN_FILTER_CONVOLUTION || + image->common.filter == PIXMAN_FILTER_SEPARABLE_CONVOLUTION || image->common.component_alpha) { flags &= ~(FAST_PATH_IS_OPAQUE | FAST_PATH_SAMPLES_OPAQUE); @@ -679,6 +681,19 @@ pixman_image_set_filter (pixman_image_t * image, if (params == common->filter_params && filter == common->filter) return TRUE; + if (filter == PIXMAN_FILTER_SEPARABLE_CONVOLUTION) + { + int width = pixman_fixed_to_int (params[0]); + int height = pixman_fixed_to_int (params[1]); + int x_phase_bits = pixman_fixed_to_int (params[2]); + int y_phase_bits = pixman_fixed_to_int (params[3]); + int n_x_phases = (1 << x_phase_bits); + int n_y_phases = (1 << y_phase_bits); + + return_val_if_fail ( + n_params == 4 + n_x_phases * width + n_y_phases * height, FALSE); + } + new_params = NULL; if (params) { diff --git a/pixman/pixman.c b/pixman/pixman.c index e0ccd87..0661f41 100644 --- a/pixman/pixman.c +++ b/pixman/pixman.c @@ -455,6 +455,14 @@ analyze_extent (pixman_image_t *image, height = params[1]; break; + case PIXMAN_FILTER_SEPARABLE_CONVOLUTION: + params = image->common.filter_params; + x_off = - pixman_fixed_e - ((params[0] - pixman_fixed_1) >> 1); + y_off = - pixman_fixed_e - ((params[1] - pixman_fixed_1) >> 1); + width = params[0]; + height = params[1]; + break; + case PIXMAN_FILTER_GOOD: case PIXMAN_FILTER_BEST: case PIXMAN_FILTER_BILINEAR: diff --git a/pixman/pixman.h b/pixman/pixman.h index 33ebf3f..20c95da 100644 --- a/pixman/pixman.h +++ b/pixman/pixman.h @@ -292,7 +292,28 @@ typedef enum PIXMAN_FILTER_BEST, PIXMAN_FILTER_NEAREST, PIXMAN_FILTER_BILINEAR, - PIXMAN_FILTER_CONVOLUTION + PIXMAN_FILTER_CONVOLUTION, + + /* The SEPARABLE_CONVOLUTION filter takes the following parameters: + * + * width: integer given as 16.16 fixpoint number + * height: integer given as 16.16 fixpoint number + * x_phase_bits: integer given as 16.16 fixpoint + * y_phase_bits: integer given as 16.16 fixpoint + * xtables: (1 << x_phase_bits) tables of size width + * ytables: (1 << y_phase_bits) tables of size height + * + * When sampling at (x, y), the location is first rounded to one of + * n_x_phases * n_y_phases subpixel positions. These subpixel positions + * determine an xtable and a ytable to use. + * + * Conceptually a width x height matrix is then formed in which each entry + * is the product of the corresponding entries in the x and y tables. + * This matrix is then aligned with the image pixels such that its center + * is as close as possible to the subpixel location chosen earlier. Then + * the image is convolved with the matrix and the resulting pixel returned. + */ + PIXMAN_FILTER_SEPARABLE_CONVOLUTION } pixman_filter_t; typedef enum -- 1.7.4 From sandmann at cs.au.dk Fri Nov 23 20:15:28 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Fri, 23 Nov 2012 23:15:28 -0500 Subject: [cairo] [PATCH 3/6] Add new pixman_filter_create_separable_convolution() API In-Reply-To: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> Message-ID: <1353730531-5011-3-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen This new API is a helper function to create filter parameters suitable for use with PIXMAN_FILTER_SEPARABLE_CONVOLUTION. For each dimension, given a scale factor, reconstruction and sample filter kernels, and a subsampling resolution, this function will compute a convolution of the two kernels scaled appropriately, then sample that convolution and return the resulting vectors in a form suitable for being used as parameters to PIXMAN_FILTER_SEPARABLE_CONVOLUTION. The filter kernels offered are the following: - IMPULSE: Dirac delta function, ie., point sampling - BOX: Box filter - LINEAR: Linear filter, aka. "Tent" filter - CUBIC: Cubic filter, currently Mitchell-Netravali - GAUSSIAN: Gaussian function, sigma=1, support=3*sigma - LANCZOS2: Two-lobed Lanczos filter - LANCZOS3: Three-lobed Lanczos filter - LANCZOS3_STRETCHED: Three-lobed Lanczos filter, stretched by 4/3.0. This is the "Nice" filter from Dirty Pixels by Jim Blinn. The intended way to use this function is to extract scaling factors from the transformation and then pass those to this function to get a filter suitable for compositing with that transformation. The filter kernels can be chosen according to quality and performance tradeoffs. To get equivalent quality to GdkPixbuf for downscalings, use BOX for both reconstruction and sampling. For upscalings, use LINEAR for reconstruction and IMPULSE for sampling (though note that for upscaling in both X and Y directions, simply using PIXMAN_FILTER_BILINEAR will likely be a better choice). --- pixman/Makefile.sources | 1 + pixman/pixman-filter.c | 340 +++++++++++++++++++++++++++++++++++++++++++++++ pixman/pixman.h | 27 ++++ 3 files changed, 368 insertions(+), 0 deletions(-) create mode 100644 pixman/pixman-filter.c diff --git a/pixman/Makefile.sources b/pixman/Makefile.sources index 5351fb0..c624eb9 100644 --- a/pixman/Makefile.sources +++ b/pixman/Makefile.sources @@ -6,6 +6,7 @@ libpixman_sources = \ pixman-combine32.c \ pixman-combine-float.c \ pixman-conical-gradient.c \ + pixman-filter.c \ pixman-x86.c \ pixman-mips.c \ pixman-arm.c \ diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c new file mode 100644 index 0000000..c9d2dc7 --- /dev/null +++ b/pixman/pixman-filter.c @@ -0,0 +1,340 @@ +/* + * Copyright 2012, Red Hat, Inc. + * Copyright 2012, Soren Sandmann + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Soren Sandmann + */ +#include +#include +#include +#include +#include +#include +#include "pixman-private.h" + +typedef double (* kernel_func_t) (double x); + +typedef struct +{ + pixman_kernel_t kernel; + kernel_func_t func; + double width; +} filter_info_t; + +static double +impulse_kernel (double x) +{ + return (x == 0.0)? 1.0 : 0.0; +} + +static double +box_kernel (double x) +{ + return 1; +} + +static double +linear_kernel (double x) +{ + return 1 - fabs (x); +} + +static double +gaussian_kernel (double x) +{ +#define SQRT2 (1.4142135623730950488016887242096980785696718753769480) +#define SIGMA (SQRT2 / 2.0) + + return exp (- x * x / (2 * SIGMA * SIGMA)) / (SIGMA * sqrt (2.0 * M_PI)); +} + +static double +sinc (double x) +{ + if (x == 0.0) + return 1.0; + else + return sin (M_PI * x) / (M_PI * x); +} + +static double +lanczos (double x, int n) +{ + return sinc (x) * sinc (x * (1.0 / n)); +} + +static double +lanczos2_kernel (double x) +{ + return lanczos (x, 2); +} + +static double +lanczos3_kernel (double x) +{ + return lanczos (x, 3); +} + +static double +nice_kernel (double x) +{ + return lanczos3_kernel (x * 0.75); +} + +static double +general_cubic (double x, double B, double C) +{ + double ax = fabs(x); + + if (ax < 1) + { + return ((12 - 9 * B - 6 * C) * ax * ax * ax + + (-18 + 12 * B + 6 * C) * ax * ax + (6 - 2 * B)) / 6; + } + else if (ax >= 1 && ax < 2) + { + return ((-B - 6 * C) * ax * ax * ax + + (6 * B + 30 * C) * ax * ax + (-12 * B - 48 * C) * + ax + (8 * B + 24 * C)) / 6; + } + else + { + return 0; + } +} + +static double +cubic_kernel (double x) +{ + /* This is the Mitchell-Netravali filter. + * + * (0.0, 0.5) would give us the Catmull-Rom spline, + * but that one seems to be indistinguishable from Lanczos2. + */ + return general_cubic (x, 1/3.0, 1/3.0); +} + +static const filter_info_t filters[] = +{ + { PIXMAN_KERNEL_IMPULSE, impulse_kernel, 0.0 }, + { PIXMAN_KERNEL_BOX, box_kernel, 1.0 }, + { PIXMAN_KERNEL_LINEAR, linear_kernel, 2.0 }, + { PIXMAN_KERNEL_CUBIC, cubic_kernel, 4.0 }, + { PIXMAN_KERNEL_GAUSSIAN, gaussian_kernel, 6 * SIGMA }, + { PIXMAN_KERNEL_LANCZOS2, lanczos2_kernel, 4.0 }, + { PIXMAN_KERNEL_LANCZOS3, lanczos3_kernel, 6.0 }, + { PIXMAN_KERNEL_LANCZOS3_STRETCHED, nice_kernel, 8.0 }, +}; + +/* This function scales @kernel2 by @scale, then + * aligns @x1 in @kernel1 with @x2 in @kernel2 and + * and integrates the product of the kernels across @width. + * + * This function assumes that the intervals are within + * the kernels in question. E.g., the caller must not + * try to integrate a linear kernel ouside of [-1:1] + */ +static double +integral (pixman_kernel_t kernel1, double x1, + pixman_kernel_t kernel2, double scale, double x2, + double width) +{ + /* If the integration interval crosses zero, break it into + * two separate integrals. This ensures that filters such + * as LINEAR that are not differentiable at 0 will still + * integrate properly. + */ + if (x1 < 0 && x1 + width > 0) + { + return + integral (kernel1, x1, kernel2, scale, x2, - x1) + + integral (kernel1, 0, kernel2, scale, x2 - x1, width + x1); + } + else if (x2 < 0 && x2 + width > 0) + { + return + integral (kernel1, x1, kernel2, scale, x2, - x2) + + integral (kernel1, x1 - x2, kernel2, scale, 0, width + x2); + } + else if (kernel1 == PIXMAN_KERNEL_IMPULSE) + { + assert (width == 0.0); + return filters[kernel2].func (x2 * scale); + } + else if (kernel2 == PIXMAN_KERNEL_IMPULSE) + { + assert (width == 0.0); + return filters[kernel1].func (x1); + } + else + { + /* Integration via Simpson's rule */ +#define N_SEGMENTS 128 +#define SAMPLE(a1, a2) \ + (filters[kernel1].func ((a1)) * filters[kernel2].func ((a2) * scale)) + + double s = 0.0; + double h = width / (double)N_SEGMENTS; + int i; + + s = SAMPLE (x1, x2); + + for (i = 1; i < N_SEGMENTS; i += 2) + { + double a1 = x1 + h * i; + double a2 = x2 + h * i; + + s += 2 * SAMPLE (a1, a2); + + if (i >= 2 && i < N_SEGMENTS - 1) + s += 4 * SAMPLE (a1, a2); + } + + s += SAMPLE (x1 + width, x2 + width); + + return h * s * (1.0 / 3.0); + } +} + +static pixman_fixed_t * +create_1d_filter (int *width, + pixman_kernel_t reconstruct, + pixman_kernel_t sample, + double scale, + int n_phases) +{ + pixman_fixed_t *params, *p; + double step; + double size; + int i; + + size = scale * filters[sample].width + filters[reconstruct].width; + *width = ceil (size); + + p = params = malloc (*width * n_phases * sizeof (pixman_fixed_t)); + + step = 1.0 / n_phases; + + for (i = 0; i < n_phases; ++i) + { + double frac = step / 2.0 + i * step; + pixman_fixed_t new_total; + int x, x1, x2; + double total; + + /* Sample convolution of reconstruction and sampling + * filter. See rounding.txt regarding the rounding + * and sample positions. + */ + + x1 = ceil (frac - *width / 2.0 - 0.5); + x2 = x1 + *width; + + total = 0; + for (x = x1; x < x2; ++x) + { + double pos = x + 0.5 - frac; + double rlow = - filters[reconstruct].width / 2.0; + double rhigh = rlow + filters[reconstruct].width; + double slow = pos - scale * filters[sample].width / 2.0; + double shigh = slow + scale * filters[sample].width; + double c = 0.0; + double ilow, ihigh; + + if (rhigh >= slow && rlow <= shigh) + { + ilow = MAX (slow, rlow); + ihigh = MIN (shigh, rhigh); + + c = integral (reconstruct, ilow, + sample, 1.0 / scale, ilow - pos, + ihigh - ilow); + } + + total += c; + *p++ = (pixman_fixed_t)(c * 65535.0 + 0.5); + } + + /* Normalize */ + p -= *width; + total = 1 / total; + new_total = 0; + for (x = x1; x < x2; ++x) + { + pixman_fixed_t t = (*p) * total + 0.5; + + new_total += t; + *p++ = t; + } + + if (new_total != pixman_fixed_1) + *(p - *width / 2) += (pixman_fixed_1 - new_total); + } + + return params; +} + +/* Create the parameter list for a SEPARABLE_CONVOLUTION filter + * with the given kernels and scale parameters + */ +PIXMAN_EXPORT pixman_fixed_t * +pixman_filter_create_separable_convolution (int *n_values, + pixman_fixed_t scale_x, + pixman_fixed_t scale_y, + pixman_kernel_t reconstruct_x, + pixman_kernel_t reconstruct_y, + pixman_kernel_t sample_x, + pixman_kernel_t sample_y, + int subsample_bits_x, + int subsample_bits_y) +{ + double sx = fabs (pixman_fixed_to_double (scale_x)); + double sy = fabs (pixman_fixed_to_double (scale_y)); + pixman_fixed_t *horz, *vert, *params; + int subsample_x, subsample_y; + int width, height; + + subsample_x = (1 << subsample_bits_x); + subsample_y = (1 << subsample_bits_y); + + horz = create_1d_filter (&width, reconstruct_x, sample_x, sx, subsample_x); + vert = create_1d_filter (&height, reconstruct_y, sample_y, sy, subsample_y); + + *n_values = 4 + width * subsample_x + height * subsample_y; + + params = malloc (*n_values * sizeof (pixman_fixed_t)); + + params[0] = pixman_int_to_fixed (width); + params[1] = pixman_int_to_fixed (height); + params[2] = pixman_int_to_fixed (subsample_bits_x); + params[3] = pixman_int_to_fixed (subsample_bits_y); + + memcpy (params + 4, horz, + width * subsample_x * sizeof (pixman_fixed_t)); + memcpy (params + 4 + width * subsample_x, vert, + height * subsample_y * sizeof (pixman_fixed_t)); + + free (horz); + free (vert); + + return params; +} diff --git a/pixman/pixman.h b/pixman/pixman.h index 20c95da..7ff9fb5 100644 --- a/pixman/pixman.h +++ b/pixman/pixman.h @@ -831,6 +831,33 @@ int pixman_image_get_height (pixman_image_t int pixman_image_get_stride (pixman_image_t *image); /* in bytes */ int pixman_image_get_depth (pixman_image_t *image); pixman_format_code_t pixman_image_get_format (pixman_image_t *image); + +typedef enum +{ + PIXMAN_KERNEL_IMPULSE, + PIXMAN_KERNEL_BOX, + PIXMAN_KERNEL_LINEAR, + PIXMAN_KERNEL_CUBIC, + PIXMAN_KERNEL_GAUSSIAN, + PIXMAN_KERNEL_LANCZOS2, + PIXMAN_KERNEL_LANCZOS3, + PIXMAN_KERNEL_LANCZOS3_STRETCHED /* Jim Blinn's 'nice' filter */ +} pixman_kernel_t; + +/* Create the parameter list for a SEPARABLE_CONVOLUTION filter + * with the given kernels and scale parameters. + */ +pixman_fixed_t * +pixman_filter_create_separable_convolution (int *n_values, + pixman_fixed_t scale_x, + pixman_fixed_t scale_y, + pixman_kernel_t reconstruct_x, + pixman_kernel_t reconstruct_y, + pixman_kernel_t sample_x, + pixman_kernel_t sample_y, + int subsample_bits_x, + int subsample_bits_y); + pixman_bool_t pixman_image_fill_rectangles (pixman_op_t op, pixman_image_t *image, const pixman_color_t *color, -- 1.7.4 From sandmann at cs.au.dk Fri Nov 23 20:15:29 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Fri, 23 Nov 2012 23:15:29 -0500 Subject: [cairo] [PATCH 4/6] demos/gtk-utils.[ch]: Add pixman_image_from_file() In-Reply-To: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> Message-ID: <1353730531-5011-4-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen This function uses GdkPixbuf to load various common formats such as .png and .jpg into a pixman image. --- demos/gtk-utils.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ demos/gtk-utils.h | 3 ++ 2 files changed, 69 insertions(+), 0 deletions(-) diff --git a/demos/gtk-utils.c b/demos/gtk-utils.c index 8291a1e..d7e946d 100644 --- a/demos/gtk-utils.c +++ b/demos/gtk-utils.c @@ -3,6 +3,72 @@ #include "../test/utils.h" #include "gtk-utils.h" +pixman_image_t * +pixman_image_from_file (const char *filename, pixman_format_code_t format) +{ + GdkPixbuf *pixbuf; + pixman_image_t *image; + int width, height; + uint32_t *data, *d; + uint8_t *gdk_data; + int n_channels; + int j, i; + int stride; + + if (!(pixbuf = gdk_pixbuf_new_from_file (filename, NULL))) + return NULL; + + image = NULL; + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + n_channels = gdk_pixbuf_get_n_channels (pixbuf); + gdk_data = gdk_pixbuf_get_pixels (pixbuf); + stride = gdk_pixbuf_get_rowstride (pixbuf); + + if (!(data = malloc (width * height * sizeof (uint32_t)))) + goto out; + + d = data; + for (j = 0; j < height; ++j) + { + uint8_t *gdk_line = gdk_data; + + for (i = 0; i < width; ++i) + { + int r, g, b, a; + uint32_t pixel; + + r = gdk_line[0]; + g = gdk_line[1]; + b = gdk_line[2]; + + if (n_channels == 4) + a = gdk_line[3]; + else + a = 0xff; + + r = (r * a + 127) / 255; + g = (g * a + 127) / 255; + b = (b * a + 127) / 255; + + pixel = (a << 24) | (r << 16) | (g << 8) | b; + + *d++ = pixel; + gdk_line += n_channels; + } + + gdk_data += stride; + } + + image = pixman_image_create_bits ( + format, width, height, data, width * 4); + +out: + g_object_unref (pixbuf); + return image; +} + GdkPixbuf * pixbuf_from_argb32 (uint32_t *bits, int width, diff --git a/demos/gtk-utils.h b/demos/gtk-utils.h index 55cb701..36be4de 100644 --- a/demos/gtk-utils.h +++ b/demos/gtk-utils.h @@ -6,6 +6,9 @@ void show_image (pixman_image_t *image); +pixman_image_t * +pixman_image_from_file (const char *filename, pixman_format_code_t format); + GdkPixbuf *pixbuf_from_argb32 (uint32_t *bits, int width, int height, -- 1.7.4 From sandmann at cs.au.dk Fri Nov 23 20:15:30 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Fri, 23 Nov 2012 23:15:30 -0500 Subject: [cairo] [PATCH 5/6] demos: Add new demo program, "scale" In-Reply-To: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> Message-ID: <1353730531-5011-5-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen This program allows interactively scaling and rotating images with using various filters and repeat modes. It uses pixman_filter_create_separate_convolution() to generate the filters. --- demos/Makefile.am | 6 +- demos/scale.c | 431 +++++++++++++++++++++++++++++++++++++++++++++++++++++ demos/scale.ui | 302 +++++++++++++++++++++++++++++++++++++ 3 files changed, 737 insertions(+), 2 deletions(-) create mode 100644 demos/scale.c create mode 100644 demos/scale.ui diff --git a/demos/Makefile.am b/demos/Makefile.am index f324f5f..ffb7a6b 100644 --- a/demos/Makefile.am +++ b/demos/Makefile.am @@ -22,9 +22,10 @@ DEMOS = \ quad2quad \ checkerboard \ srgb-trap-test \ - srgb-test + srgb-test \ + scale -EXTRA_DIST = parrot.c parrot.jpg +EXTRA_DIST = parrot.c parrot.jpg scale.ui gradient_test_SOURCES = gradient-test.c $(GTK_UTILS) alpha_test_SOURCES = alpha-test.c $(GTK_UTILS) @@ -39,6 +40,7 @@ tri_test_SOURCES = tri-test.c $(GTK_UTILS) checkerboard_SOURCES = checkerboard.c $(GTK_UTILS) srgb_test_SOURCES = srgb-test.c $(GTK_UTILS) srgb_trap_test_SOURCES = srgb-trap-test.c $(GTK_UTILS) +scale_SOURCES = scale.c $(GTK_UTILS) noinst_PROGRAMS = $(DEMOS) diff --git a/demos/scale.c b/demos/scale.c new file mode 100644 index 0000000..9100ff7 --- /dev/null +++ b/demos/scale.c @@ -0,0 +1,431 @@ +/* + * Copyright 2012, Red Hat, Inc. + * Copyright 2012, Soren Sandmann + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Soren Sandmann + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include "gtk-utils.h" + +typedef struct +{ + GtkBuilder * builder; + pixman_image_t * original; + GtkAdjustment * scale_x_adjustment; + GtkAdjustment * scale_y_adjustment; + GtkAdjustment * rotate_adjustment; + int scaled_width; + int scaled_height; +} app_t; + +static GtkWidget * +get_widget (app_t *app, const char *name) +{ + GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (app->builder, name)); + + if (!widget) + g_error ("Widget %s not found\n", name); + + return widget; +} + +static double +min4 (double a, double b, double c, double d) +{ + double m1, m2; + + m1 = MIN (a, b); + m2 = MIN (c, d); + return MIN (m1, m2); +} + +static double +max4 (double a, double b, double c, double d) +{ + double m1, m2; + + m1 = MAX (a, b); + m2 = MAX (c, d); + return MAX (m1, m2); +} + +static void +compute_extents (pixman_f_transform_t *trans, double *sx, double *sy) +{ + double min_x, max_x, min_y, max_y; + pixman_f_vector_t v[4] = + { + { { 1, 1, 1 } }, + { { -1, 1, 1 } }, + { { -1, -1, 1 } }, + { { 1, -1, 1 } }, + }; + + pixman_f_transform_point (trans, &v[0]); + pixman_f_transform_point (trans, &v[1]); + pixman_f_transform_point (trans, &v[2]); + pixman_f_transform_point (trans, &v[3]); + + min_x = min4 (v[0].v[0], v[1].v[0], v[2].v[0], v[3].v[0]); + max_x = max4 (v[0].v[0], v[1].v[0], v[2].v[0], v[3].v[0]); + min_y = min4 (v[0].v[1], v[1].v[1], v[2].v[1], v[3].v[1]); + max_y = max4 (v[0].v[1], v[1].v[1], v[2].v[1], v[3].v[1]); + + *sx = (max_x - min_x) / 2.0; + *sy = (max_y - min_y) / 2.0; +} + +typedef struct +{ + char name [20]; + pixman_kernel_t value; +} named_int_t; + +static const named_int_t filters[] = +{ + { "Box", PIXMAN_KERNEL_BOX }, + { "Impulse", PIXMAN_KERNEL_IMPULSE }, + { "Linear", PIXMAN_KERNEL_LINEAR }, + { "Cubic", PIXMAN_KERNEL_CUBIC }, + { "Lanczos2", PIXMAN_KERNEL_LANCZOS2 }, + { "Lanczos3", PIXMAN_KERNEL_LANCZOS3 }, + { "Lanczos3 Stretched", PIXMAN_KERNEL_LANCZOS3_STRETCHED }, + { "Gaussian", PIXMAN_KERNEL_GAUSSIAN }, +}; + +static const named_int_t repeats[] = +{ + { "None", PIXMAN_REPEAT_NONE }, + { "Normal", PIXMAN_REPEAT_NORMAL }, + { "Reflect", PIXMAN_REPEAT_REFLECT }, + { "Pad", PIXMAN_REPEAT_PAD }, +}; + +static pixman_kernel_t +get_value (app_t *app, const named_int_t table[], const char *box_name) +{ + GtkComboBox *box = GTK_COMBO_BOX (get_widget (app, box_name)); + + return table[gtk_combo_box_get_active (box)].value; +} + +static void +copy_to_counterpart (app_t *app, GObject *object) +{ + static const char *xy_map[] = + { + "reconstruct_x_combo_box", "reconstruct_y_combo_box", + "sample_x_combo_box", "sample_y_combo_box", + "scale_x_adjustment", "scale_y_adjustment", + }; + GObject *counterpart = NULL; + int i; + + for (i = 0; i < G_N_ELEMENTS (xy_map); i += 2) + { + GObject *x = gtk_builder_get_object (app->builder, xy_map[i]); + GObject *y = gtk_builder_get_object (app->builder, xy_map[i + 1]); + + if (object == x) + counterpart = y; + if (object == y) + counterpart = x; + } + + if (!counterpart) + return; + + if (GTK_IS_COMBO_BOX (counterpart)) + { + gtk_combo_box_set_active ( + GTK_COMBO_BOX (counterpart), + gtk_combo_box_get_active ( + GTK_COMBO_BOX (object))); + } + else if (GTK_IS_ADJUSTMENT (counterpart)) + { + gtk_adjustment_set_value ( + GTK_ADJUSTMENT (counterpart), + gtk_adjustment_get_value ( + GTK_ADJUSTMENT (object))); + } +} + +static double +to_scale (double v) +{ + return pow (1.15, v); +} + +static void +rescale (GtkWidget *may_be_null, app_t *app) +{ + pixman_f_transform_t ftransform; + pixman_transform_t transform; + double new_width, new_height; + double fscale_x, fscale_y; + double rotation; + pixman_fixed_t *params; + int n_params; + double sx, sy; + + pixman_f_transform_init_identity (&ftransform); + + if (may_be_null && gtk_toggle_button_get_active ( + GTK_TOGGLE_BUTTON (get_widget (app, "lock_checkbutton")))) + { + copy_to_counterpart (app, G_OBJECT (may_be_null)); + } + + fscale_x = gtk_adjustment_get_value (app->scale_x_adjustment); + fscale_y = gtk_adjustment_get_value (app->scale_y_adjustment); + rotation = gtk_adjustment_get_value (app->rotate_adjustment); + + fscale_x = to_scale (fscale_x); + fscale_y = to_scale (fscale_y); + + new_width = pixman_image_get_width (app->original) * fscale_x; + new_height = pixman_image_get_height (app->original) * fscale_y; + + pixman_f_transform_scale (&ftransform, NULL, fscale_x, fscale_y); + + pixman_f_transform_translate (&ftransform, NULL, - new_width / 2.0, - new_height / 2.0); + + rotation = (rotation / 360.0) * 2 * M_PI; + pixman_f_transform_rotate (&ftransform, NULL, cos (rotation), sin (rotation)); + + pixman_f_transform_translate (&ftransform, NULL, new_width / 2.0, new_height / 2.0); + + pixman_f_transform_invert (&ftransform, &ftransform); + + compute_extents (&ftransform, &sx, &sy); + + pixman_transform_from_pixman_f_transform (&transform, &ftransform); + pixman_image_set_transform (app->original, &transform); + + params = pixman_filter_create_separable_convolution ( + &n_params, + sx * 65536.0 + 0.5, + sy * 65536.0 + 0.5, + get_value (app, filters, "reconstruct_x_combo_box"), + get_value (app, filters, "reconstruct_y_combo_box"), + get_value (app, filters, "sample_x_combo_box"), + get_value (app, filters, "sample_y_combo_box"), + 4, 4); + + pixman_image_set_filter (app->original, PIXMAN_FILTER_SEPARABLE_CONVOLUTION, params, n_params); + + pixman_image_set_repeat ( + app->original, get_value (app, repeats, "repeat_combo_box")); + + free (params); + + app->scaled_width = ceil (new_width); + app->scaled_height = ceil (new_height); + + gtk_widget_set_size_request ( + get_widget (app, "drawing_area"), new_width + 0.5, new_height + 0.5); + + gtk_widget_queue_draw ( + get_widget (app, "drawing_area")); +} + +static gboolean +on_expose (GtkWidget *da, GdkEvent *event, gpointer data) +{ + app_t *app = data; + GdkRectangle *area = &event->expose.area; + cairo_surface_t *surface; + pixman_image_t *tmp; + cairo_t *cr; + uint32_t *pixels; + + pixels = calloc (1, area->width * area->height * 4); + tmp = pixman_image_create_bits ( + PIXMAN_a8r8g8b8, area->width, area->height, pixels, area->width * 4); + + if (area->x < app->scaled_width && area->y < app->scaled_height) + { + pixman_image_composite ( + PIXMAN_OP_SRC, + app->original, NULL, tmp, + area->x, area->y, 0, 0, 0, 0, + app->scaled_width - area->x, app->scaled_height - area->y); + } + + surface = cairo_image_surface_create_for_data ( + (uint8_t *)pixels, CAIRO_FORMAT_ARGB32, + area->width, area->height, area->width * 4); + + cr = gdk_cairo_create (da->window); + + cairo_set_source_surface (cr, surface, area->x, area->y); + + cairo_paint (cr); + + cairo_destroy (cr); + cairo_surface_destroy (surface); + free (pixels); + pixman_image_unref (tmp); + + return TRUE; +} + +static void +set_up_combo_box (app_t *app, const char *box_name, + int n_entries, const named_int_t table[]) +{ + GtkWidget *widget = get_widget (app, box_name); + GtkListStore *model; + GtkCellRenderer *cell; + int i; + + model = gtk_list_store_new (1, G_TYPE_STRING); + + cell = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), cell, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (widget), cell, + "text", 0, + NULL); + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (model)); + + for (i = 0; i < n_entries; ++i) + { + const named_int_t *info = &(table[i]); + GtkTreeIter iter; + + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, 0, info->name, -1); + } + + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + + g_signal_connect (widget, "changed", G_CALLBACK (rescale), app); +} + +static void +set_up_filter_box (app_t *app, const char *box_name) +{ + set_up_combo_box (app, box_name, G_N_ELEMENTS (filters), filters); +} + +static char * +format_value (GtkWidget *widget, double value) +{ + return g_strdup_printf ("%.4f", to_scale (value)); +} + +static app_t * +app_new (pixman_image_t *original) +{ + GtkWidget *widget; + app_t *app = g_malloc (sizeof *app); + GError *err = NULL; + + app->builder = gtk_builder_new (); + app->original = original; + + if (!gtk_builder_add_from_file (app->builder, "scale.ui", &err)) + g_error ("Could not read file scale.ui: %s", err->message); + + app->scale_x_adjustment = + GTK_ADJUSTMENT (gtk_builder_get_object (app->builder, "scale_x_adjustment")); + app->scale_y_adjustment = + GTK_ADJUSTMENT (gtk_builder_get_object (app->builder, "scale_y_adjustment")); + app->rotate_adjustment = + GTK_ADJUSTMENT (gtk_builder_get_object (app->builder, "rotate_adjustment")); + + g_signal_connect (app->scale_x_adjustment, "value_changed", G_CALLBACK (rescale), app); + g_signal_connect (app->scale_y_adjustment, "value_changed", G_CALLBACK (rescale), app); + g_signal_connect (app->rotate_adjustment, "value_changed", G_CALLBACK (rescale), app); + + widget = get_widget (app, "scale_x_scale"); + gtk_scale_add_mark (GTK_SCALE (widget), 0.0, GTK_POS_LEFT, NULL); + g_signal_connect (widget, "format_value", G_CALLBACK (format_value), app); + widget = get_widget (app, "scale_y_scale"); + gtk_scale_add_mark (GTK_SCALE (widget), 0.0, GTK_POS_LEFT, NULL); + g_signal_connect (widget, "format_value", G_CALLBACK (format_value), app); + widget = get_widget (app, "rotate_scale"); + gtk_scale_add_mark (GTK_SCALE (widget), 0.0, GTK_POS_LEFT, NULL); + + widget = get_widget (app, "drawing_area"); + g_signal_connect (widget, "expose_event", G_CALLBACK (on_expose), app); + + set_up_filter_box (app, "reconstruct_x_combo_box"); + set_up_filter_box (app, "reconstruct_y_combo_box"); + set_up_filter_box (app, "sample_x_combo_box"); + set_up_filter_box (app, "sample_y_combo_box"); + + set_up_combo_box ( + app, "repeat_combo_box", G_N_ELEMENTS (repeats), repeats); + + g_signal_connect ( + gtk_builder_get_object (app->builder, "lock_checkbutton"), + "toggled", G_CALLBACK (rescale), app); + + rescale (NULL, app); + + return app; +} + +int +main (int argc, char **argv) +{ + GtkWidget *window; + pixman_image_t *image; + app_t *app; + + gtk_init (&argc, &argv); + + if (argc < 2) + { + printf ("%s \n", argv[0]); + return -1; + } + + if (!(image = pixman_image_from_file (argv[1], PIXMAN_a8r8g8b8))) + { + printf ("Could not load image \"%s\"\n", argv[1]); + return -1; + } + + app = app_new (image); + + window = get_widget (app, "main"); + + g_signal_connect (window, "delete_event", G_CALLBACK (gtk_main_quit), NULL); + + gtk_window_set_default_size (GTK_WINDOW (window), 1024, 768); + + gtk_widget_show_all (window); + + gtk_main (); + + return 0; +} diff --git a/demos/scale.ui b/demos/scale.ui new file mode 100644 index 0000000..f7c0c80 --- /dev/null +++ b/demos/scale.ui @@ -0,0 +1,302 @@ + + + + + + -180 + 190 + 1 + 10 + 10 + + + -32 + 42 + 1 + 10 + 10 + + + -32 + 42 + 1 + 10 + 10 + + + + + True + 12 + + + True + True + in + + + True + + + True + + + + + + + 0 + + + + + True + + + True + True + + + True + 6 + + + True + <b>Scale X</b> + True + + + False + 0 + + + + + True + True + scale_x_adjustment + 32 + right + + + 1 + + + + + False + 0 + + + + + True + 6 + + + True + <b>Scale Y</b> + True + + + False + 0 + + + + + True + True + scale_y_adjustment + 32 + right + + + 1 + + + + + False + 1 + + + + + True + 6 + + + True + <b>Rotate</b> + True + + + False + 0 + + + + + True + True + rotate_adjustment + 180 + right + + + 1 + + + + + False + 2 + + + + + 6 + 0 + + + + + True + + + Lock X and Y Dimensions + 0.0 + + + False + False + 6 + 1 + + + + + True + 8 + 6 + + + True + 1 + <b>Reconstruct X:</b> + True + + + + + True + 1 + <b>Reconstruct Y:</b> + True + + + 1 + + + + + True + 1 + <b>Sample X:</b> + True + + + 2 + + + + + True + 1 + <b>Sample Y:</b> + True + + + 3 + + + + + True + 1 + <b>Repeat:</b> + True + + + 4 + + + + + True + + + 1 + + + + + True + + + 1 + 1 + + + + + True + + + 1 + 2 + + + + + True + + + 1 + 3 + + + + + True + + + 1 + 4 + + + + + False + 6 + 1 + + + + + False + 0 + + + + + False + 1 + + + + + + -- 1.7.4 From sandmann at cs.au.dk Fri Nov 23 20:15:27 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Fri, 23 Nov 2012 23:15:27 -0500 Subject: [cairo] [PATCH 2/6] rounding.txt: Describe how SEPARABLE_CONVOLUTION filter works In-Reply-To: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> Message-ID: <1353730531-5011-2-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen Add some notes on how to compute the convolution matrices to be used with the SEPARABLE_CONVOLUTION filter. --- pixman/rounding.txt | 33 +++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/pixman/rounding.txt b/pixman/rounding.txt index 1a19f45..b52b084 100644 --- a/pixman/rounding.txt +++ b/pixman/rounding.txt @@ -132,3 +132,36 @@ And so the final formula for the index k of x0 in the image is: Computing the result is then simply a matter of convolving all the pixels starting at k with all the samples in the matrix. + + +--- SEPARABLE_CONVOLUTION + +For this filter, x is first rounded to one of n regularly spaced +subpixel positions. This subpixel position determines which of n +convolution matrices is being used. + +Then, as in a regular convolution filter, the first pixel to be used +is determined: + + k = floor (x - (width - 1) / 2.0 - e) + +and then the image pixels starting there are convolved with the chosen +matrix. If we write x = xi + frac, where xi is an integer, we get + + k = xi + floor (frac - (width - 1) / 2.0 - e) + +so the location of k relative to x is given by: + + (k + 0.5 - x) = xi + floor (frac - (width - 1) / 2.0 - e) + 0.5 - x + + = floor (frac - (width - 1) / 2.0 - e) + 0.5 - frac + +which means the contents of the matrix corresponding to (frac) should +contain width samplings of the function, with the first sample at: + + floor (frac - (width - 1) / 2.0 - e) + 0.5 - frac + +This filter is called separable because each of the k x k convolution +matrices is specified with two k-wide vectors, one for each dimension, +where each entry in the matrix is computed as the product of the +corresponding entries in the vectors. -- 1.7.4 From behdad at behdad.org Fri Nov 23 22:01:13 2012 From: behdad at behdad.org (Behdad Esfahbod) Date: Sat, 24 Nov 2012 01:01:13 -0500 Subject: [cairo] [Pixman] Image resampling [PATCH 0/6] In-Reply-To: References: Message-ID: <50B062A9.5060305@behdad.org> Hi S?ren, This is a very well done patchset with great commentary. Great job! Cheers, behdad On 12-11-23 10:57 PM, S?ren Sandmann wrote: > Hi, > > Reviewing the supersampling patch here: > > http://cgit.freedesktop.org/~ajohnson/pixman/log/?h=supersampling > > I wasn't happy with either the performance and image quality, and I > realized that the whole supersampling approach just isn't going to > fly. Since I told people to do it that way, I apologize for that. The > approach advocated by Bill Spitzak in the various downsampling threads > of computing a convolution kernel up front, is the much better way to > go. To make up for being misleading, the following patches implement > comprehensive support for high-quality image scaling filters. > > Pixman already has a convolution filter, but since it only allows one > sample per pixel of the filter, it is limited in the quality that it can > support, so the following patches (to be applied on top of the three > rounding patches) add a new filter type > > PIXMAN_FILTER_SEPARABLE_CONVOLUTION > > that supports multiple different convolution matrices that are chosen > between based on the subpixel source location. The matrices are > specified as tensor products of x/y vectors, which makes them > separable by definition. > > The patches also add a helper function > > pixman_filter_create_separable_convolution() > > that will create the parameters for the filter based on scaling > factors, filter kernels and subsampling resolution. Currently the > supported kernels are impulse, box, linear, cubic > (Mitchell-Netravali), lanczos2, lanczos3, lanczos3_stretched > (aka. Blinn's 'Nice' filter), and Gaussian. > > There also a new demo program "demos/scale" that shows how > the new API can be used. > > For some useful math regarding image transformations, see > http://people.redhat.com/otaylor/gtk/pixbuf-transform-math.ps . For > some informatino about how to compute the convolution matrices, see > the additions to rounding.txt in the second patch. > > > -=- Adding support to cairo and further work > > Once these patches have landed in Pixman, support will have to be > added to cairo to make use of them. How to do that exactly requires > figuring out what new API to offer, and how the tradeoffs between > performance and quality should be made. This is not something that I > personally plan to work on anytime soon, except to make three notes: > > - While transformations that are not pure scalings will not > generally result in a separable filter, OK-looking results for > non-scalings can be achieved by using scaling factors based on the > bounding box of a transformation > > - For equivalent quality to GdkPixbuf do this: In each direction > compute the scaling factors and then, if the scaling factor is > less than 1 (ie., a downscaling), use PIXMAN_KERNEL_BOX for both > reconstruction and sampling, and if it's greater than one, use > PIXMAN_KERNEL_LINEAR for reconstruction and PIXMAN_KERNEL_IMPULSE > for sampling. > > - If PIXMAN_KERNEL_GAUSSIAN is used with large downscaling factors > and the resulting filter is then used with an identity transform, > the result is a Gaussian blur, which is a feature that has > sometimes been requested. > > The code in demos/scale.c may be useful as an example. > > > -=- Further work and examples > > There is some additional work that could be done: > > - Performance improvements. Low-hanging fruit includes adding new fast > path iterators that assume the source is a8r8g8b8 or r5g6b5. Higher > hanging fruit is SIMD optimziations and implementations that take > advantage of separability. It may also be interesting to speed up > pixman_filter_create_separable_convolution() by tabularizing some of > the trigonometric functions etc. > > - A non-separable, but subsampled, convolution filter type could be > interesting to allow correct filters for non-scaling transformations > and non-separable filters in general. > > > As a reward for reading this entire mail, here are some images: > > Original (2.6 MB): > > http://www.daimi.au.dk/~sandmann/house.jpg > > Scaled down 12.9 times in each dimension: > > - With a box filter: > > http://www.daimi.au.dk/~sandmann/house-box.png > > - With Lanczos3: > > http://www.daimi.au.dk/~sandmann/house-lanczos3.png > > - With stretched Lanczos3: > > http://www.daimi.au.dk/~sandmann/house-nice.png > > For more examples, try demos/scale. > > The patch series is also available in this repository: > > http://cgit.freedesktop.org/~sandmann/pixman/log/?h=separable > > > Soren > _______________________________________________ > Pixman mailing list > Pixman at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pixman > -- behdad http://behdad.org/ From ajohnson at redneon.com Fri Nov 23 22:11:47 2012 From: ajohnson at redneon.com (Adrian Johnson) Date: Sat, 24 Nov 2012 16:41:47 +1030 Subject: [cairo] Image resampling [PATCH 0/6] In-Reply-To: References: Message-ID: <50B06523.6050505@redneon.com> On 24/11/12 14:27, S?ren Sandmann wrote: > -=- Adding support to cairo and further work > > Once these patches have landed in Pixman, support will have to be > added to cairo to make use of them. How to do that exactly requires > figuring out what new API to offer, and how the tradeoffs between > performance and quality should be made. This is not something that I > personally plan to work on anytime soon, except to make three notes: It would be useful to have an API for downscaling that does not require the entire source image to be loaded into memory. I've recently updated the downscaling box filter code in the cairo backend of poppler to read the source image one line at a time as it is uncompressed from the pdf file. This was to fix a bug where rendering a PDF containing a 21,590 x 161,385 1 bit/pixel image failed due to the 32,767 x 32,767 image limit. From siarhei.siamashka at gmail.com Sun Nov 25 23:27:59 2012 From: siarhei.siamashka at gmail.com (Siarhei Siamashka) Date: Mon, 26 Nov 2012 09:27:59 +0200 Subject: [cairo] [Pixman] [PATCH 6/6] Add demos/zone_plate.png In-Reply-To: <1353730531-5011-6-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> <1353730531-5011-6-git-send-email-sandmann@cs.au.dk> Message-ID: <20121126092759.2c881d12@i7> On Fri, 23 Nov 2012 23:15:31 -0500 S?ren Sandmann wrote: > From: S?ren Sandmann Pedersen > > The zone plate image is a useful test case for image scalers because > it contains all representable frequencies, so any imperfection in > resampling filters will show up as Moire patterns. > > This version is symmetric around the midpoint of the image, so since > rotating it is supposed to be a noop, it can also be used to verify > that the resampling filters don't shift the image. > --- > demos/zone_plate.png | Bin 0 -> 522879 bytes > 1 files changed, 0 insertions(+), 0 deletions(-) > create mode 100644 demos/zone_plate.png Hi, the size of this PNG file can be cut in half: $ optipng -o7 zone_plate.png ** Processing: zone_plate.png 512x512 pixels, 3x8 bits/pixel, RGB Reducing image to 8 bits/pixel, grayscale Input IDAT size = 522048 bytes Input file size = 522879 bytes Trying: zc = 9 zm = 9 zs = 0 f = 0 IDAT size = 231093 zc = 8 zm = 9 zs = 0 f = 0 IDAT size = 231093 zc = 7 zm = 9 zs = 0 f = 0 IDAT size = 231093 zc = 6 zm = 9 zs = 0 f = 0 IDAT size = 231093 zc = 5 zm = 9 zs = 0 f = 0 IDAT size = 231093 zc = 3 zm = 9 zs = 0 f = 0 IDAT size = 228661 zc = 3 zm = 9 zs = 1 f = 0 IDAT size = 228661 Selecting parameters: zc = 3 zm = 9 zs = 1 f = 0 IDAT size = 228661 Output IDAT size = 228661 bytes (293387 bytes decrease) Output file size = 228732 bytes (294147 bytes = 56.26% decrease) -- Best regards, Siarhei Siamashka From sandmann at cs.au.dk Mon Nov 26 03:37:37 2012 From: sandmann at cs.au.dk (=?utf-8?Q?S=C3=B8ren?= Sandmann) Date: Mon, 26 Nov 2012 12:37:37 +0100 Subject: [cairo] [Pixman] [PATCH 6/6] Add demos/zone_plate.png In-Reply-To: <20121126092759.2c881d12@i7> (Siarhei Siamashka's message of "Mon, 26 Nov 2012 09:27:59 +0200") References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> <1353730531-5011-6-git-send-email-sandmann@cs.au.dk> <20121126092759.2c881d12@i7> Message-ID: Siarhei Siamashka writes: > Hi, the size of this PNG file can be cut in half: > > $ optipng -o7 zone_plate.png > ** Processing: zone_plate.png > 512x512 pixels, 3x8 bits/pixel, RGB > Reducing image to 8 bits/pixel, grayscale > Input IDAT size = 522048 bytes > Input file size = 522879 bytes Good point. I'll run it through optipng before pushing. Soren From ckling at upcmail.nl Mon Nov 26 06:51:29 2012 From: ckling at upcmail.nl (Kees Kling) Date: Mon, 26 Nov 2012 15:51:29 +0100 Subject: [cairo] Missing transparency in ImageSurface Message-ID: <50B381F1.6000404@upcmail.nl> Hi, I have an in memory dataset which I want to overlay over a background Here is the part I'm doing the overlay Cairo::RefPtr radarModule::composeProduct() { Cairo::RefPtr sfc = Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, 800, 800); Cairo::RefPtr cr = Cairo::Context::create(sfc); cr->set_source(background->getLayers(),0,0); cr->paint(); if (dataset != NULL) { cr->save(); cr->set_operator(Cairo::OPERATOR_ATOP); cr->set_source(radarSfc,0,0); cr->paint(); cr->restore(); } return sfc; } And here is the part where I create a surface from a unsigned char buffer void radarModule::drawImage() { // storing GdalDataset in an buffer; // this will be a one byte per pixel data int bufferSize = dataset->GetRasterXSize() * dataset->GetRasterYSize(); unsigned char* buffer = (unsigned char*) CPLMalloc(sizeof(char) * bufferSize); // convert this data with colortable to ARGB 4 bytes per pixel data unsigned char* colorbuffer = (unsigned char*) CPLMalloc(sizeof(char) * bufferSize * 4 ); try { dataset->getPixelData(buffer); } catch ( string &e) { ctrl->getLogger()->errorStream()<getColor(buffer[i]).getColor(r,g,b,a); colorbuffer[ i * 4 ] = b;//b colorbuffer[ (i * 4) + 1 ] = g;//g colorbuffer[ (i * 4) + 2 ] = r;//r colorbuffer[ (i * 4) + 3 ] = a;//a } int stride = Cairo::ImageSurface::format_stride_for_width(Cairo::FORMAT_ARGB32,dataset->GetRasterXSize()); // Here creating the image surface and draw the pixels on radarSfc = Cairo::ImageSurface::create(colorbuffer,Cairo::FORMAT_ARGB32, dataset->GetRasterXSize(), dataset->GetRasterYSize(), stride); CPLFree(buffer); //CPLFree(colorbuffer); //radarSfc = Cairo::ImageSurface::create_from_png("r.png"); radarSfc->write_to_png("r.png"); } before I construct the image I'm adding a colortable, bcause the dataset is an index array If I run this code al parts which are fully transparent turns out white, but in the l;ast line I save the surface as png.file and that image is correct according to gimp. I also tried to create the surface of the png file from disk and then the alpha blending is ok. What am I doing wrong?? regards Kees Kling From hsong at sisa.samsung.com Mon Nov 26 11:02:16 2012 From: hsong at sisa.samsung.com (Henry (Yu) Song - SISA) Date: Mon, 26 Nov 2012 19:02:16 +0000 Subject: [cairo] [patch] gl: flush drawing before gradient is destroyed Message-ID: <3955FA337689574EB32F94B12A7E6E9E2483A30D@sisaex01sj> >From 2bca0ff7652925ae47ac76a4c1a1d04739ae3a4c Mon Sep 17 00:00:00 2001 From: Henry Song Date: Mon, 26 Nov 2012 10:58:15 -0800 Subject: [PATCH] random remove gradient can possibly remove a gradient that has not been flushed. Force previous drawing to flush when a gradient is destroyed --- src/cairo-gl-gradient.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c index 1c1f972..3e4f499 100644 --- a/src/cairo-gl-gradient.c +++ b/src/cairo-gl-gradient.c @@ -328,6 +328,7 @@ _cairo_gl_gradient_destroy (cairo_gl_gradient_t *gradient) return; if (_cairo_gl_context_acquire (gradient->device, &ctx) == CAIRO_STATUS_SUCCESS) { + _cairo_gl_composite_flush (ctx); glDeleteTextures (1, &gradient->tex); ignore = _cairo_gl_context_release (ctx, CAIRO_STATUS_SUCCESS); } -- 1.7.10.4 -------------- next part -------------- An HTML attachment was scrubbed... URL: From spitzak at gmail.com Mon Nov 26 18:44:21 2012 From: spitzak at gmail.com (Bill Spitzak) Date: Mon, 26 Nov 2012 18:44:21 -0800 Subject: [cairo] Image resampling [PATCH 0/6] In-Reply-To: References: Message-ID: <50B42905.6000102@gmail.com> S?ren Sandmann wrote: > Hi, > > Reviewing the supersampling patch here: > > http://cgit.freedesktop.org/~ajohnson/pixman/log/?h=supersampling > > I wasn't happy with either the performance and image quality, and I > realized that the whole supersampling approach just isn't going to > fly. Since I told people to do it that way, I apologize for that. The > approach advocated by Bill Spitzak in the various downsampling threads > of computing a convolution kernel up front, is the much better way to > go. To make up for being misleading, the following patches implement > comprehensive support for high-quality image scaling filters. This is great news! > -=- Adding support to cairo and further work > > Once these patches have landed in Pixman, support will have to be > added to cairo to make use of them. How to do that exactly requires > figuring out what new API to offer, and how the tradeoffs between > performance and quality should be made. This is not something that I > personally plan to work on anytime soon, except to make three notes: Cairo may want to pre-scale the source surface by an integer factor using a box filter so that the sampling filters are not so large. It would then have to keep this scaled image around until either the source image is dirtied or a transform requiring a different scale is used. I would think this could speed up repeated drawing of a much-scaled-down image considerably. It does seem to me that such a step should be done by cairo rather than pixman. The alternative is for client programs to do this with extra Cairo surfaces for the scaled images, but that seems to not be keeping with the easy-to-use api intentions of Cairo. The scale would be chosen so the intermediate image is no smaller than 2x the final result. This seems to hide any problems with the box filter. It kind of makes sense because we are reusing the sampling filter at intervals that are less than 1/2 which is below the nyquist frequency for the sync. > - While transformations that are not pure scalings will not > generally result in a separable filter, OK-looking results for > non-scalings can be achieved by using scaling factors based on the > bounding box of a transformation Having recently wasted some time on this, I discovered that in fact these sampling filters *rely* on the separable property. The lancos and sync filters do not work if when they are centered on a pixel the neighboring pixels are not at the zeros in the filter. The only way to do this is for the filter to be a product of 2 1-D filters that are aligned with the source pixel grid. If they were at an angle, the zeros would be at an angle and thus could not all hit pixel centers. Trying to make it circular (as I was doing) also fails for the same reason. An obvious error is that the identity transformation results in ringing and sharpening being added to the picture. With aligned separable filters and a filter that is zero at all integers other than 0 the result is an identity, which is much more likely what users want. Therefore it looks like you have already gotten most of what is needed. The two sizes are fairly easy to figure out from the inverse transformation matrix (ie the inverse of the matrix a Cairo user sets, but the one needed to find the source image pixel given an output position) (WARNING: I may have b/c swapped from what Cairo/pixman code uses): [ a b 0 ] [ X ] inxy= [ c d 0 ] * [ Y ] [ x y 1 ] [ 1 ] The horizontal size is hypot(a,b) and the vertical size is hypot(c,d). This is the width/height of the bounding box of the ellipse you get if a .5-radius circle is transformed by this matrix. From spitzak at gmail.com Mon Nov 26 18:53:01 2012 From: spitzak at gmail.com (Bill Spitzak) Date: Mon, 26 Nov 2012 18:53:01 -0800 Subject: [cairo] Image resampling [PATCH 0/6] In-Reply-To: <50B06523.6050505@redneon.com> References: <50B06523.6050505@redneon.com> Message-ID: <50B42B0D.70207@gmail.com> Adrian Johnson wrote: > On 24/11/12 14:27, S?ren Sandmann wrote: >> -=- Adding support to cairo and further work >> >> Once these patches have landed in Pixman, support will have to be >> added to cairo to make use of them. How to do that exactly requires >> figuring out what new API to offer, and how the tradeoffs between >> performance and quality should be made. This is not something that I >> personally plan to work on anytime soon, except to make three notes: > > It would be useful to have an API for downscaling that does not require > the entire source image to be loaded into memory. I've recently updated > the downscaling box filter code in the cairo backend of poppler to read > the source image one line at a time as it is uncompressed from the pdf > file. This was to fix a bug where rendering a PDF containing a > 21,590 x 161,385 1 bit/pixel image failed due to the 32,767 x 32,767 > image limit. Yes I think Cairo will have to downrez an image before applying this filtering. It could keep the downrez image around until a different downrez is needed or the source image is damaged. I now think this down rez could be restricted to powers of 2 and a box filter, allowing it to be run very quickly with a recursive version that never needs more than 2 source lines at a time. Unless the filter is box, the downrez has to make the image no smaller than 2x the final size, to avoid hiding the nice aspects of the filters. There is also a problem where a huge image is not scaled down, so this source image is not any smaller. But in that case it would be clipped, so a temporary source image that is clipped to only the area that projects to the output clip is needed. This clipped image can be produced by code that only looks at 1 source line at a time. Combining them and assuming the worst possible case (a scale of 1/3.9999... and a rotation by 45 degrees) it looks like the maximum texture size would be the size of the output surface multiplied by 4*sqrt(2). That may still be a problem if the maximum texture size is equal to the maximum output size. Perhaps it could just produce a blurry picture in that case by downrezing excessively. From siarhei.siamashka at gmail.com Tue Nov 27 01:51:29 2012 From: siarhei.siamashka at gmail.com (Siarhei Siamashka) Date: Tue, 27 Nov 2012 11:51:29 +0200 Subject: [cairo] [Pixman] Image resampling [PATCH 0/6] In-Reply-To: References: Message-ID: <20121127115129.25e69acc@i7> On Sat, 24 Nov 2012 04:57:22 +0100 sandmann at cs.au.dk (S?ren Sandmann) wrote: > Hi, > > Reviewing the supersampling patch here: > > http://cgit.freedesktop.org/~ajohnson/pixman/log/?h=supersampling > > I wasn't happy with either the performance and image quality, and I > realized that the whole supersampling approach just isn't going to > fly. Since I told people to do it that way, I apologize for that. The > approach advocated by Bill Spitzak in the various downsampling threads > of computing a convolution kernel up front, is the much better way to > go. To make up for being misleading, the following patches implement > comprehensive support for high-quality image scaling filters. > > Pixman already has a convolution filter, but since it only allows one > sample per pixel of the filter, it is limited in the quality that it can > support, so the following patches (to be applied on top of the three > rounding patches) add a new filter type > > PIXMAN_FILTER_SEPARABLE_CONVOLUTION > > that supports multiple different convolution matrices that are chosen > between based on the subpixel source location. The matrices are > specified as tensor products of x/y vectors, which makes them > separable by definition. I like this approach. This is a clean design, which look simple enough to optimize for better performance with SIMD. > -=- Further work and examples > > There is some additional work that could be done: > > - Performance improvements. Low-hanging fruit includes adding new fast > path iterators that assume the source is a8r8g8b8 or r5g6b5. Higher > hanging fruit is SIMD optimziations and implementations that take > advantage of separability. It may also be interesting to speed up > pixman_filter_create_separable_convolution() by tabularizing some of > the trigonometric functions etc. From what I see, the separable convolution filter shares a lot of similarities with the existing pixman SIMD code for bilinear scaling, which could be extended with relatively little effort. Bilinear scaling uses weighted average of 2 pixels (in one direction), with weights calculated on the go. Separable convolution uses weighted average of N pixels, with weights obtained by table lookups. Both use subpixel positions (7 phase bits or 128 phases for current bilinear implementation) to lookup or calculate weights. Bilinear filter is naturally a subset of separable convolution. The biggest challenge for optimized bilinear scaling (compared to nearest) had been properly implementing different types of repeat on image edges due to sampling of some pixels outside of the image boundaries. But "many" pixels from the separable convolution filter is not much different from just "two" from the (bi)linear filter in this respect, so this should already work fine also for separable convolution with just minor tweaks. Regarding SIMD optimized iterators (for both bilinear and separable convolution), they are rather simple to implement as well. Just have a look at my old OpenMP proof of concept patch: http://lists.freedesktop.org/archives/pixman/2012-June/002071.html The OMP_BILINEAR_PARALLEL_FOR define lists all the variables which fully represent the state of the iterator, needed to walk over the source image and scale it (only the loop counter 'i' is different for each scanline). This state can be calculated when creating an iterator, and then we can simply pull one scaled scanline at a time. The fact that the current bilinear code is not separable is a minor implementation detail, we could as well have 2x1 sized filter instead of 2x2 and then do vertical scaling separately with the help of a temporary buffer in L1 cache like you tried before in the "separable-bilinear" branch: http://lists.freedesktop.org/archives/pixman/2012-June/002140.html And I tried a similar "two-passes in L1 cache" approach for YUV->RGB scaling code prototype much earlier, with reasonably good results: https://bugzilla.mozilla.org/show_bug.cgi?id=634557#c53 So this is expected to provide good performance. Affine transformations (still to be implemented with SIMD) are a bit different and iterators are not a very good choice for them due to less than perfect memory access pattern. -- Best regards, Siarhei Siamashka From dy5.kim at samsung.com Tue Nov 27 03:42:53 2012 From: dy5.kim at samsung.com (Dongyeon Kim) Date: Tue, 27 Nov 2012 11:42:53 +0000 (GMT) Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image Message-ID: <19656184.119341354016573454.JavaMail.weblogic@epml01> Hello, I have a working cairo sample that uses map-to-image to map gl surface to image surface, and unmaps afterwards. I have created a trace file for the sample using cairo-trace, but when I try to run the trace file using cairo-perf-trace, I get the following error. [ 0] egl cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) [ # ] image: pixman 0.26.0 [ 0] image cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) [ # ] image16: pixman 0.26.0 [ 0] image16 cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) It seems that when trying to run unmap-image from script it is not getting the right parameters. Here is the full trace file: http://pastebin.com/eKCGquiG Can anyone tell me how to resolve this problem? Dongyeon From chris at chris-wilson.co.uk Tue Nov 27 04:29:20 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Tue, 27 Nov 2012 12:29:20 +0000 Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image In-Reply-To: <19656184.119341354016573454.JavaMail.weblogic@epml01> References: <19656184.119341354016573454.JavaMail.weblogic@epml01> Message-ID: <84c8a8$6mit26@orsmga001.jf.intel.com> On Tue, 27 Nov 2012 11:42:53 +0000 (GMT), Dongyeon Kim wrote: > Hello, > > I have a working cairo sample that uses map-to-image to map gl surface to image surface, and unmaps afterwards. > I have created a trace file for the sample using cairo-trace, but when I try to run the trace file using cairo-perf-trace, I get the following error. > > [ 0] egl cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > [ # ] image: pixman 0.26.0 > [ 0] image cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > [ # ] image16: pixman 0.26.0 > [ 0] image16 cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > > It seems that when trying to run unmap-image from script it is not getting the right parameters. Whoops, the operand emission for map-to-image and unmap-image was plain broken. Please try again with: commit 376d39121c0d4eba8f0a22be71f782ce18e50923 Author: Chris Wilson Date: Tue Nov 27 12:25:56 2012 +0000 trace: Fix operand emission for map-to-image and unmap-image -Chris -- Chris Wilson, Intel Open Source Technology Centre From gpslocator at gmail.com Tue Nov 27 07:04:56 2012 From: gpslocator at gmail.com (gps locator) Date: Tue, 27 Nov 2012 23:04:56 +0800 Subject: [cairo] Build cairo-1.12.6 failed In-Reply-To: References: Message-ID: Build error log: CC cairo-xlib-display.lo In file included from cairo-xlib-private.h:41, from cairo-xlib-display.c:40: cairo-xlib-xrender-private.h:102: error: redefinition of 'struct _XLinearGradient' cairo-xlib-xrender-private.h:105: error: conflicting types for 'XLinearGradient' /usr/include/X11/extensions/Xrender.h:189: note: previous declaration of 'XLinearGradient' was here cairo-xlib-xrender-private.h:111: error: redefinition of 'struct _XCircle' cairo-xlib-xrender-private.h:115: error: conflicting types for 'XCircle' /usr/include/X11/extensions/Xrender.h:150: note: previous declaration of 'XCircle' was here cairo-xlib-xrender-private.h:116: error: redefinition of 'struct _XRadialGradient' cairo-xlib-xrender-private.h:119: error: conflicting types for 'XRadialGradient' /usr/include/X11/extensions/Xrender.h:194: note: previous declaration of 'XRadialGradient' was here cairo-xlib-xrender-private.h:125: error: redefinition of 'struct _XConicalGradient' cairo-xlib-xrender-private.h:128: error: conflicting types for 'XConicalGradient' /usr/include/X11/extensions/Xrender.h:199: note: previous declaration of 'XConicalGradient' was here make[3]: *** [cairo-xlib-display.lo] Error 1 Here is a similar issue: http://lists.cairographics.org/archives/cairo/2011-March/021822.html I wondered that no one met this issue now and what's the best solution for that? Thanks, L.J -------------- next part -------------- An HTML attachment was scrubbed... URL: From spitzak at gmail.com Tue Nov 27 12:09:14 2012 From: spitzak at gmail.com (Bill Spitzak) Date: Tue, 27 Nov 2012 12:09:14 -0800 Subject: [cairo] [Pixman] Image resampling [PATCH 0/6] In-Reply-To: <20121127115129.25e69acc@i7> References: <20121127115129.25e69acc@i7> Message-ID: <50B51DEA.2060808@gmail.com> Siarhei Siamashka wrote: > Bilinear scaling uses weighted average of 2 pixels (in one direction), > with weights calculated on the go. Separable convolution uses weighted > average of N pixels, with weights obtained by table lookups. Both use > subpixel positions (7 phase bits or 128 phases for current bilinear > implementation) to lookup or calculate weights. Bilinear filter is > naturally a subset of separable convolution. Also note that the separable filters need different "widths" as well as different phases. This is the distance from the center to the first 0 crossing in a sync filter, note that the non-zero part of the filter is several times the width (3 for a triangle, 5 for most, and 7 for lancos3). If the image is being scaled by 1/N the width is max(1,N). There probably should be a pre-calculated table of all combinations of width and phase. The minimum width is 1, but there will have to be a maximum chosen. Pixman would use the maximum if a larger size is wanted, which would mean that scales smaller than a certain value would be noisy. However if Cairo prescales by a power of 2 then the maximum scale may be 4. In Nuke the pre-calculated table is just a very wide filter (I think the width is 64) and that is the maximum filter size. Smaller filters and different offsets are chosen by subsampling this large filter at even intervals (Nuke chose the closest sample, but bilinear sampling would be better). The table was "normalized" so that the width of 1 produced samples that sum to 1, all larger filters needed to a normalization factor calculated by doing 1/sum of the samples. From tweenk.pl at gmail.com Tue Nov 27 16:51:09 2012 From: tweenk.pl at gmail.com (=?UTF-8?Q?Krzysztof_Kosi=C5=84ski?=) Date: Wed, 28 Nov 2012 01:51:09 +0100 Subject: [cairo] Image resampling [PATCH 0/6] In-Reply-To: <50B42905.6000102@gmail.com> References: <50B42905.6000102@gmail.com> Message-ID: 2012/11/27 Bill Spitzak : > Cairo may want to pre-scale the source surface by an integer factor using a > box filter so that the sampling filters are not so large. It would then have > to keep this scaled image around until either the source image is dirtied or > a transform requiring a different scale is used. I would think this could > speed up repeated drawing of a much-scaled-down image considerably. It does > seem to me that such a step should be done by cairo rather than pixman. The > alternative is for client programs to do this with extra Cairo surfaces for > the scaled images, but that seems to not be keeping with the easy-to-use api > intentions of Cairo. Why not go a little further and implement mipmaps? This would dramatically speed up the case where an image is repeatedly drawn with very different transformations, e.g. as is the case when transforming a bitmap in Inkscape. I guess this would need some support from Pixman, however. Regards, Krzysztof From cairo-2012b at ryandesign.com Tue Nov 27 17:08:15 2012 From: cairo-2012b at ryandesign.com (Ryan Schmidt) Date: Tue, 27 Nov 2012 19:08:15 -0600 Subject: [cairo] Build cairo-1.12.6 failed In-Reply-To: References: Message-ID: On Nov 27, 2012, at 09:04, gps locator wrote: > Build error log: > > CC cairo-xlib-display.lo > In file included from cairo-xlib-private.h:41, > from cairo-xlib-display.c:40: > cairo-xlib-xrender-private.h:102: error: redefinition of 'struct _XLinearGradient' > cairo-xlib-xrender-private.h:105: error: conflicting types for 'XLinearGradient' > /usr/include/X11/extensions/Xrender.h:189: note: previous declaration of 'XLinearGradient' was here > cairo-xlib-xrender-private.h:111: error: redefinition of 'struct _XCircle' > cairo-xlib-xrender-private.h:115: error: conflicting types for 'XCircle' > /usr/include/X11/extensions/Xrender.h:150: note: previous declaration of 'XCircle' was here > cairo-xlib-xrender-private.h:116: error: redefinition of 'struct _XRadialGradient' > cairo-xlib-xrender-private.h:119: error: conflicting types for 'XRadialGradient' > /usr/include/X11/extensions/Xrender.h:194: note: previous declaration of 'XRadialGradient' was here > cairo-xlib-xrender-private.h:125: error: redefinition of 'struct _XConicalGradient' > cairo-xlib-xrender-private.h:128: error: conflicting types for 'XConicalGradient' > /usr/include/X11/extensions/Xrender.h:199: note: previous declaration of 'XConicalGradient' was here > make[3]: *** [cairo-xlib-display.lo] Error 1 > > Here is a similar issue: http://lists.cairographics.org/archives/cairo/2011-March/021822.html > > I wondered that no one met this issue now and what's the best solution for that? Users encountered this problem at MacPorts too: https://trac.macports.org/ticket/36926 Seems cairo now requires xorg-libXext; installing that fixed the problem for us. From dy5.kim at samsung.com Tue Nov 27 18:46:41 2012 From: dy5.kim at samsung.com (Dongyeon Kim) Date: Wed, 28 Nov 2012 02:46:41 +0000 (GMT) Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image Message-ID: <14771067.66841354070800965.JavaMail.weblogic@epml04> Thanks for the quick fix. However, after applying the patch I now get assert fails in cairo_surface_destroy. [ 0] egl cairo_gl_map_to_image.3249 cairo-perf-trace: cairo-surface.c:957: cairo_surface_destroy: Assertion `((*&(&surface->ref_count)->ref_count) > 0)' failed. The unmapped image surface gets destroyed automatically in cairo_surface_unmap_image, but the script puts the surface in the dictionary, and mistakenly calls cairo_surface_destroy again. Dongyeon Kim ------- Original Message ------- Sender : Chris Wilson Date : 2012-11-27 21:29 (GMT+09:00) Title : Re: [cairo] Question regarding cairo-trace for map-to-image and unmap-image On Tue, 27 Nov 2012 11:42:53 +0000 (GMT), Dongyeon Kim wrote: > Hello, > > I have a working cairo sample that uses map-to-image to map gl surface to image surface, and unmaps afterwards. > I have created a trace file for the sample using cairo-trace, but when I try to run the trace file using cairo-perf-trace, I get the following error. > > [ 0] egl cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > [ # ] image: pixman 0.26.0 > [ 0] image cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > [ # ] image16: pixman 0.26.0 > [ 0] image16 cairo_gl_map_to_image.5695 Error during replay, line 30: invalid value (typically too big) for the size of the input (surface, pattern, etc.) > > It seems that when trying to run unmap-image from script it is not getting the right parameters. Whoops, the operand emission for map-to-image and unmap-image was plain broken. Please try again with: commit 376d39121c0d4eba8f0a22be71f782ce18e50923 Author: Chris Wilson Date: Tue Nov 27 12:25:56 2012 +0000 trace: Fix operand emission for map-to-image and unmap-image -Chris -- Chris Wilson, Intel Open Source Technology Centre From chris at chris-wilson.co.uk Wed Nov 28 00:59:15 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Wed, 28 Nov 2012 08:59:15 +0000 Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image In-Reply-To: <14771067.66841354070800965.JavaMail.weblogic@epml04> References: <14771067.66841354070800965.JavaMail.weblogic@epml04> Message-ID: <453bf0$6l65fo@azsmga001.ch.intel.com> On Wed, 28 Nov 2012 02:46:41 +0000 (GMT), Dongyeon Kim wrote: > Thanks for the quick fix. > > However, after applying the patch I now get assert fails in cairo_surface_destroy. > > [ 0] egl cairo_gl_map_to_image.3249 cairo-perf-trace: cairo-surface.c:957: cairo_surface_destroy: Assertion `((*&(&surface->ref_count)->ref_count) > 0)' failed. > > The unmapped image surface gets destroyed automatically in cairo_surface_unmap_image, but the script puts the surface in the dictionary, and mistakenly calls cairo_surface_destroy again. Can you attach the script? cairo-trace uses the destroy notification on the user-data to emit the cleanup, if it has added it to the dictionary. So something has gone wrong. -Chris -- Chris Wilson, Intel Open Source Technology Centre From dy5.kim at samsung.com Wed Nov 28 01:04:21 2012 From: dy5.kim at samsung.com (Dongyeon Kim) Date: Wed, 28 Nov 2012 09:04:21 +0000 (GMT) Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image Message-ID: <30378613.82361354093460541.JavaMail.weblogic@epml04> Here is the script, http://pastebin.com/ByyrParx Thanks Dongyeon ------- Original Message ------- Sender : Chris Wilson Date : 2012-11-28 17:59 (GMT+09:00) Title : Re: Re: [cairo] Question regarding cairo-trace for map-to-image and unmap-image On Wed, 28 Nov 2012 02:46:41 +0000 (GMT), Dongyeon Kim wrote: > Thanks for the quick fix. > > However, after applying the patch I now get assert fails in cairo_surface_destroy. > > [ 0] egl cairo_gl_map_to_image.3249 cairo-perf-trace: cairo-surface.c:957: cairo_surface_destroy: Assertion `((*&(&surface->ref_count)->ref_count) > 0)' failed. > > The unmapped image surface gets destroyed automatically in cairo_surface_unmap_image, but the script puts the surface in the dictionary, and mistakenly calls cairo_surface_destroy again. Can you attach the script? cairo-trace uses the destroy notification on the user-data to emit the cleanup, if it has added it to the dictionary. So something has gone wrong. -Chris -- Chris Wilson, Intel Open Source Technology Centre From chris at chris-wilson.co.uk Wed Nov 28 01:39:27 2012 From: chris at chris-wilson.co.uk (Chris Wilson) Date: Wed, 28 Nov 2012 09:39:27 +0000 Subject: [cairo] Question regarding cairo-trace for map-to-image and unmap-image In-Reply-To: <30378613.82361354093460541.JavaMail.weblogic@epml04> References: <30378613.82361354093460541.JavaMail.weblogic@epml04> Message-ID: <275ffc$7jt9tq@fmsmga002.fm.intel.com> On Wed, 28 Nov 2012 09:04:20 +0000 (GMT), Dongyeon Kim wrote: > Here is the script, > http://pastebin.com/ByyrParx This should help: commit dfbf80a57d161707d105d1b5711c85890fe18a6d Author: Chris Wilson Date: Tue Nov 27 12:25:56 2012 +0000 trace: Do not forcibly add surfaces to the dictionary Adjust the stack manipulation to avoid moving an unknown surface to the dictionary. -Chris -- Chris Wilson, Intel Open Source Technology Centre From cairo-2012b at ryandesign.com Fri Nov 30 14:25:20 2012 From: cairo-2012b at ryandesign.com (Ryan Schmidt) Date: Fri, 30 Nov 2012 16:25:20 -0600 Subject: [cairo] cairo 1.12.8 news entry Message-ID: Could you publish a cairo 1.12.8 release news entry? http://cairographics.org/news/ From sandmann at cs.au.dk Fri Nov 23 20:09:12 2012 From: sandmann at cs.au.dk (=?UTF-8?q?S=C3=B8ren=20Sandmann?=) Date: Sat, 24 Nov 2012 04:09:12 -0000 Subject: [cairo] [PATCH 6/6] Add demos/zone_plate.png In-Reply-To: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> References: <1353730531-5011-1-git-send-email-sandmann@cs.au.dk> Message-ID: <1353730531-5011-6-git-send-email-sandmann@cs.au.dk> From: S?ren Sandmann Pedersen The zone plate image is a useful test case for image scalers because it contains all representable frequencies, so any imperfection in resampling filters will show up as Moire patterns. This version is symmetric around the midpoint of the image, so since rotating it is supposed to be a noop, it can also be used to verify that the resampling filters don't shift the image. --- demos/zone_plate.png | Bin 0 -> 522879 bytes 1 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/zone_plate.png diff --git a/demos/zone_plate.png b/demos/zone_plate.png new file mode 100644 index 0000000000000000000000000000000000000000..82f3ed1be2205d8aefadfd594544ec632ee16d01 GIT binary patch literal 522879 zcmXt=cRbbo`^Sw#CkaWC#7UA$l9nVZl_a61QXxsDk`N^`gbJxN6q2TjG&GSUE!w+C zLPJEQGJelv~mBQ0Kc%~zx}1cBME9vS)=m-+7xSvPVs-~*N!GjNQfk+T3gNvOm#^OGTzz#ujBj1Irr4QsBN at a`hM_^ z199gDXKnH7J!HbMotw>OeLk)~$#zmz*^g+Bj`{=NC#))A;>Ub-&0 z_RPK|D=z%ow6NCy;F*=_`}XbAG7oXheR1yGx%&F$>f2ORR5l+v78x0tl++{T?zY(2 z{>rfhA?+)?yb7zE)~;RaV(|RVojW&gZZ2_uTM()hU3KHejpN4$ckkYP(4awPX=yum z3W|LeEqd41b~Py}DI=rm>sRl!Yey)=bW>F99c#U;{9s9S)1*n0x^?R|X3Ur&LxvnU zaNzCRx1T?M{`BdSyli!IZMl(=k-fb=e=vLYY$qqD2M-=JH#h(M`SZt*AAQHJ*3i;g zvvTF*XV0EJdD8Z$xwfU{-2VOh^Ya4(0>;E0ntNtZl-rB<@6$@$H~slBY2w6*vuB?_ zaU!m?dSSkgWVD->R@$XYml_&Y_wCzPJ1OwruT=s|-sf5Nyop&(>wJB!wI6O0cwxlXuU}7`IAN{rxNcqZ!3i64oU<=n2$(nL?&tJSaW%A?|D^^7O%goGt{ra_|%2GqM@`DpzU-mz_d9y$> z;r+Sgk54VQc=^f|N0kF(JMv59Z5-R*RP*3efqch`W|vo8Va?g30fCd zzxDO^-<6y!t(bH1VnM*S`TqW+lgm_Mt at Tw;o!MmeSI%q zzPx(%>OuCY`9aN}PR>1Jw(0Ma*RRJ+ARK+2cHazOqoDog|#(XpqA5y?y=qU;X2w*xB2wLCrT~d-58*46kIY zp%5X`PCAyIeRcWcBLk*v*U{CzzUkkEqequ5Up`ewxhc at p?!g%XVR&=k$5=Ftm$n-s>vI5;J)5b?esQ z0EY65^L at fgs|gdwPn;k^1^@XGRpS2V- at jtR;Gdsot4zwv%PT1g)S-EA)mJJ at vHBLlD$q>f+^x0dUWVz zc<{iUkkGg9{-~%ZOwm*`^w-yUNj55)n%j%3;^O1E01U;mqQKmY+YDdU)_o4k|b+d%S<_8eZjKTAHFz7$&M~tSV+9 zii?ZK2Yd~4Yi(_+W?T62%KGooqB`Ey&t%i;)eT=?<~i#>d-UkXc-eV$*w#3F}JoF+bJb(VXwmdC;V(Z_(>^6}J9a4lmyTi-wH}n0r=_N{w(_!>`T4B`8uC)9doB-i^QMlz ze)hR at e!jlSlOD3pIFVU!t50V~J8?JAR5P;Z*s){YM2uJGSAKtYt*@r$r=~!?xCi&| zx3 at M87(f2sn at j63O>%DfoA}sRyn>8HX3-ru5Gy}_?wp~Tyg|xP<=D+uRqRnkg~O61 zOWfS5BD*MRYilcLnUT-Dy}h$fpEe*5>gq-pxr&4lZfY^bQ*CT+- at dIkcrbR$QZFFK zy?nXq?PdSxrx(6^_bwzP#M07o(2Rrf3JMC{yH8l(@P-VIuZ1?exl~b6QCV4;JZOfj zjLaXLa^uGDJpY$xrvd^3SZF+zx3jgi1s*6XD-&&_-GmW_YFqd0*|T-)R$?$|A}_C* z95Fy!Thlbq!P)u6ixw~{xV|sBv0m}CNG;%x^nsQZ|@5_xs`cnhs(Tq zmX7Sj*>mSc>FeJE8rkSXO#8x)5qsoiC+a9;*2D!ZvtS&bNH%cbKy&i~7M7P3SiXAw zn$;zNjZoW~n))VVVhpIjSzk4#IEW1`itLhg_;6$3)%f_kq)FDnSi>G;xpD>1PTaL? z!lu7|)24N+&|3B&HEH*5)!w~-|NJTQvzz$+IIcAnL-S1rgp%7 at uEf7L)uOD+Rd3eH?--4 zOx&R~vrW9>P4`?<%7Oj+GauJ?QPkWl^7`HI7H?#|ShX0pKvFY5;;|TUv`9}Rat#T& ze&x!>=1=#nwMUE_*Jskht5;1)ZJRc=^CZIz3?g>>knaSRi>_^$q?S88x^9!0gy!}RrW10}&Y z|Ia&lr^uqfmbxBwlEi63K3S}&sK_d#g6$-E>ZwFWN83)F+Fe0m_s*RbN-e~zy?ghL zUimC=!-hk8VWMouTxdD`w zV+95~S!VEILxUON%hqDjF~V+n&h_M2OV4UEt&VyZ`$2 z-2_r*Y3~7_d-v8?S7&BrMHTa`src)~i@%AR*F!ta%*_>LBX|$6;{o$f3~dn$7GFX_ zCo7K}nFr1v1Z3R!`!tYo?b;rb90iuDs;V0{Zp2Y>sNsvQ=CA+0=zoQg(O!95Q!j5~ z_>m(=z at T`0Zvz(_JG*;#?hG+7=papge_!zL-#;!%Wi at BcoIulq4tj!~()rAC=)=Vg^ZYoTZkqURvvsU`p+14||;dXTsf6PZ%zrX+fg<>&42i7w?JNxF%o85XF zkOVJZy0mxSz7r=;Mp|`!B~6f^%F4-kK}yEtcvK!3{MuVpwXi1+{;Q?s>c-y&BStil z%RN0ku@=H;e94f(gI~UWP4w at 0dU7sxpv4b1U3^2L9?R3&-nJ>sJNvahdGf at f+I&Nc*Q7}$KYmcGt?}{_?{{80mDa3T zvlcAq8+XXhq at 7&Pdl||TR;EmvM8y>rr=_ZTBt1Q>v>IT^mdi*LVd^d}sr&Y+Q&d0}TvTQ-1^os(FPjSn&GRt;wQ3nDwrmI}e(NZa*Y`Xi!I)$B(yH)^ivPcLky49!6kXmP}24@}x;JnhA>Cy7i2;CNk+LcfGfd zc*h0w;tq~qZ|~yL_V4%iQ>RXO7!fPfCOOWSQBI`0ckiC*#$WOg=>&+PB1<4Q&?3XZ zYt^b%OP3B*k%M(0-eJ!cieZl)JyMg8X1!nLEyF$m(5FrftLw#G{7fd8n`=d+x3#r3 zHLX?OCWcf=HXpxy89IEpxv_C;RdE-6)xKI<<+aU}df?`xM~<)yInLg8cJdJ-To%a0 zEmy5slai9Me*OB|roi;ORC7HiJtT})CqFq5L>nEbfM36UQE-UbK=mf(=I-Igwm zDy=@_a_NR=9`)OS)KphB1vxnahMjIRI|Sanb4Tu;8`yz##QiS3)KHsJV+5vOPLF9; za4%PNy0m?;nVtZ?7+M8zMGEvwSh2 zkWh&&0%i#)2Z7E)L3$%O2q%;1eVYtSndsu85h2o79Xf0nw#oi~udVIfuit^ad*?Yi zHvRj(#^gZ9;yjj|m}PHg*YfMvn9-y8*tMW$-JwIj at Y>?~Sy9oPdYue~^*}(t5wYY% z0!);f1464pS5uf_#yk=G4}2w~LkukfQeD3;M!$-RP-=g1b`Z_Gt3fko&n9Jw`42LA ze!lQX>g*+P_DAu}D- at foiiyc9A|nX{fG~f)dVGnMl8%AFX^P%etGc&QHtYb3R|pAR zumwOr;74RcgucE$WxlH#CDp4}uedv9T1VTTk*!Vyc<#Sz- at eO4TO8BXP)$3@%fmxO zS=nj+e7RYj_wLz|lYD#{qr3Oban_HuK6~-v414>A&!4T7Jl3vl;?Yk!SHR@)KFZqV$)6vl}Saj7GTr_ at s-yS{svp!i_KdHph+o|!W>xkfc?Q|oH zgmQ8bZZFEpj$gZW;J)YLOTID*r3>cGqcn=VTeIkTaG#iBveNICmV4#pS`#*?Y?UJ8 ze*5+f8`n{;=PCfPfdiv#bWBW49 at V!H$X2dgIdy6owlP4c+ at pu2rGuB(F$)okk(`+5 zvu at q~0|!=lc{w;a8I2gxM^m%m>sNuQduV9r+_@TN&<`K94NZx; z4k}`+^O-`{hSj-xHJE(5a^*=@ffUw50BS9A&m|+U)o{4mw{H(NGdDBSj4ug+y at 45A zwCLUQ=W}(G`oYbDw6{Sg9dd8?uQleN-zVE7@#@XNGb=}=`&`K{knAN z0+a#F1AGORuxyY3q`Spe19>fKy2{G*ty}K_2pm=3o?n at A;>71CPi9$KN(wCN>+AVE z$(48F8?ddCU_waSo)Y($FJ5F*KoK&bj4VW{l+LX#&iWV9)5R3u-QB~;ZMYCSM=^%a z*y-k7zrM)Ub_Ep|SE7Oi08^DvJq;c{{HTK-80utNeny7d;>GYMi8x+%wl}3!%3W?~ zEU-*5SZJkmI6d9M*7nYmC+G6=)&V-8MAhVVO-$yCl&*$$E}A|aTItfcb1IgJuuo8b zytC^;5*x6M6#eYk9EF&k{rXK8DcRZCnT51%5#1)?AD?w1BH~8ol!VPzZZLU~k<#+T z|9*Y@^6guV?zklDpcbC>J3k-DDQEsQ84({OC^eJ at UFyQ=% z5hF}B*Q{P0f_FgFtTomMx2Sme@=s&cM1tFpU2V&l$fYAWy%!Tv)NxJk}?QD<>mM{ zUjChU?q_nK#63eV?vUR8`v>>!`&?Id?DXl7rVo>-#c`gC7cY`EsXr(qcodj2)%bg1CK(KwujS#^bH^xLq^D^Sh$z3xum#kP3ci%H|J#JR#_m{ne*W(-$?tk9 zD?dB6po?W{tOXiS1en^7B zCk2+a)20E{i0!0`;Yz|onVBQh?$JNNn*rQh8ES;fDhV$6)kB<77S{S+0!Of(gb~W) zO`A5c$|pBGdHHg$RmRSglrzN77rBwv+F0)Dpr9Zk4E{=Q$xin%b?@})ryvdT@@CGP z7eriw=aZ3ZbKP>C$v`k1BS)?a3VKQYzIoFlC}`Y- z2~^U=a++eKb>d!z-iEf;wQ$OS9B5Qw1e`iN$kZ&Sgnr|rMOz4cU~vnP5N04HCGFtB zXs=PPj?X;0*(!s`cHlt2xI-`%qtv$*xq2*JT4dPP(f;qh+OaGr$53GD;^M;Aj-|Mi z+eBHKT=wMABdMk}R#sB7kz!vp+Dn3dpTD*msHip-(l*K}1LU%E=M!w2a1TJn5tqB1s32BD93q(dgfB!ye zYI=Hlv*yh4z4WH%AbSfXzp5KDW@!*er;i=WCrS)oe4SF5fFO)e=x0Lf04#fD>0MP= z^y*vP!z~;ZFIJSj1;HW`I?bM)m6?+kcv^ zt-QQ^*vfGxCU at L(VGc9#?7 at SB>K_f%O(vx8+`04cv15Au`>*|UZ!hVUJ2*JFu3oKR znYeA+bVtV|3z1sCe%Ji!cSJ-;goSmFJlav-;GJnyc2Y2tT z3kbMX-2}kw=;*-vz&dVj{f7 at PFD{=)RP at GWK!A3k)HjT`|_ zdG;(FyRflR2Ze8}J1?Dj*Y%D;T6wLHF(p22S%_>uzZMu=aoBJBvkuhAmAD>PwXxZf zkdVNAxEuEbH-s)eN>#zrX!PsX-rf%H$&>!6x!b$4XT%@^-IuyLJ)pOZO=DBjh|!}L z{tWdRweQraZ`6RKK%lS1m4)->Enl_jKE_O0W at xC?yLXJ6v!mnM*B4fSiQZq|#9vuC z`q6fLAKEzqVs86(1u}Whp78Qpw{KtV<>i|9QYt*11_^1j`qnnA9n$2%g9h9RE&&`I z9BevZfVAB`SY}W=Q39|OY*ujk^n>^B7f+rH|H~fN*3`hI<~e6$LjWWiW7*jn1TdE) zaEe6k1Pc*f;d0q;xu4%Gk&;TUUcev=C6Cps7dbeHl!VyZgVb>Y`uEQ`c8qvR>++_D z(eQtV)yv8l- at Vc@|e!SFpoqN)vn*$H)CO6M8EtN&IkBnN+kzNlRkIlD$#DFvHt{N+ukW&;RM z%Z&Dljb5HQTGF}*n%_=$pC- zAh7t7%P>dl)su))*!k6FHA z#rCaRgWLb2QSim?q{1ud2Pg?jZrzHI=o49Fy6NxE^4fo`t=X~?)LsA^UIsQ6S~I3N z>*&!lA#Xz4fA)?Lp&j5K at fvXNwQCC(FHW<~+P!O6)1Nl(FP*jw2J`swsdMK-gRAC9 z(xKj&m}oe5Y-jtwvGFBx-MU4(A!GOkUOL%z2Ru8N7%t#;9igTm_>a^l3H5Ed!-scb z3lNmgp2_BD&7J$4?pI;T4t z#)Z0;R&Dd2^i(qarq;$PT%880Z$JR$`4I;_3~5v^!KZD3E=3P909)23o zPFHkxHMhL~-~mNe!20!L$Bupe>=_paE73-$Yfh)Vzlq6TBpZAq`tUDeVaa%fLF;3SQ>rLkDoqqEuLe{*s&~20*T?lgR{=rvq#32 z*8-TgZ`%g95I(hr$KsiPG&V|XAE@^XZp!syX5&Y84X3H6lNKxR-XK`blFpY@@?*U=Fo zuzcbD3y at GO)W^6gu3^>I>I z0iBB+gLFQ3Zh=pglu`$g9=aaQ2nEc-D>U%~pl2sNr26PL&R5`)hBb-)t>Sg)J?*uV zwI3BYn}2(Ic4;@Ybp#MNQOFuVWYOzjS}cas#K at _%TFl0HZD$*B4hb2S37-K*P+>jx z8kOFT`MWP)-qpAmho!ScgLd}zB|bhrc#ENYOjHz^o|Zh~p=mZYropXBjUiYK*dJg? z*;&}nB(%dct$g^mn)B+?SZ?E=Hh2w+C8dw>K~_pF6jGo`qsFWca_ZKRws0cFjRR5$4p zFZA^#yf+tDQSH8X`<7Cx7syUIwynJ#oK2gOl`8Wv+7e17JxxbhQtDV%mdv{aU{2Ne z_Ah4&EX=l+xG%o8p~N!}@qq4t0piR8V54RjJ^DPY9>Og(KDL7+p)TWrNC1Wd#+#Vz zDEkOCol;sIZriVK-}pmbo}Ri%HekyG)Q0u-BSwx)-mzl?ijbVwKE`h at tb#$mHF?Su zluB_W?y#SCYQ=;*<}e)cFu0IZ0Bbj7*Ixih`WO1ydMbBVF&2ul3>p~#at z<0P9mId0O0A+S~QIb$fmAP=>LKg!KJ)zsB#k8S$*i_c4ZDth%wJt7 at E8u{q`>(?7U zKN(C(G;G)=`gA_7RFS+G at bu6jcX|z>q2_Uih#nZVikwVqPT at als@r8{l9^$k?r`ZY z>>=`knBwEv+44eR`a>^6`86+c`WqRYJ$^j4ycSSFNtU;)e8tL@#fIGF8czX00Q3ti z;e2_|CGPGL&N9V0adCH`gJwFx+RYCu0CzerS`-5E1J_f>-~4{r{|ll9_(2}A^wzDg z at 8)#337Wl!FLJpWC!1 z-u?mUfc|cKTN~Tpxpe7yw_;iT*5Y8cwn?D^P|@NZ=!UWg9OYP6y3SAf`>vUK;Ip@@&Pp6i4#%|mEgSy zk;Io&+H0RbpUBQ83^)b`wmvv8o}PrHvRtuYto5U3&))G+G%%p6#K{}tDj0BDFs`~w@?K*4qzU5jY)8j%H#N~v7LwNV(p=}tN7SIN zuW!0SZ(qKcwW9ZZ>iBVLKL8=NZDiyNdu=HH*y~(aSlFFAwhA%Do_P=p3L3@|J60`Q zR-2ld3ddi$Ijk+#DnlR;j2biMklw5J at 3ngM$~tyzOL3Lygb6_8a6jYq4XNB^ubr9y zXO;YO at 3<*~8DRwJRYrITmV9FAfikxPGI$i4tb9(cZ6hbwUk$>;OUr z(h1B>5S=jL8tlP^3y|oe;SHz)s05LRaP at 8XJqtGcl#4HkIQ;ueLB|dETz1D|Ai4 at k zl|42(Ql_Ky^tRaPl53%YK#gd+;;j!A7FvLgNm}9#y^pa(-2!sa{Q0OfKo)Vav1EX! zPoKIO?tux2)Red?f|!NxQkm4hOP83Zv0=7ZMrv4|yu9qp|4@>Zjxs at LoW^!42mIAS zl6eLg=cQoXp#PTPR z-ssW0%4?CVP at bO1$OyMT`h^ht`7^<-Q5z*^^EFKw+xGkCbyZzs9 at CF@jXe2K42C at nz6yQ?K4z6F1pf?$- zBB~QZMWGg*EH=#G0SaXr=j=OOix!HcM62-nn7cLG6B5Rb83V7WJ!HrVbe*&<_^6>g ztfE-nFr}2msQvhnSEHbf3`Zd;HWFNjPmzTszOO~D8`8c39n9ysw5odb>9gF;P4Z9@ z4LP8-xQ$gQ$z4ej)JdX6?{eHGqN|-aQ97Y?Nv<=TnOH($Wx059CrVw3pMBKT$q?-Q zW|7UriPgm6$_`$Kx>FCjD%Tm`KuAYr;$g&#g&#(QJbdtA$=!hMk3&BHLQ5#H#G1&9 z{e?jI( zY?`p~S6H){t^o}{_zqBqXu`%~V!8kk6cxK%+Jet--DLI&cQ3p}$ujqHc9^FFXjvZ`w at 3eBdo>8JYq)t{Dgz>i$smoWcl+J(; zBnAbVUcY>K1C&492mhuQ7abLa`mXKoPw19d8=Xa$d?$&N5WpdigKv8A!dW}%1+~E9 z#R)~O1Pf{&#I--$`e|rTt_?6t(?StCXwcYkkF3 at W~SoL$x*Uu1c!uCzML(|E{Z}mp?4YhT6Afh~j)YUSr2DWAU=G zMw^H12ukL669H at 6Hu~ zx(JG?;Nf53?87{6KX`D&={RHu#ki|JU6^zSJyeKQ&3_=UVBVwMS_{LWfu!jY_wR3s zp*lKZ9lJ`afByOf)h6+`171nylf3W{^qlXyb at W^-D_wnj4E5S+JE`~WTiwj1|A at L% zYkoQKnoJ#w2+C;P);OaYBp*rzJ4{lT`*_PttuY~7>XUBBx-Ts at 7lHV z-Zs>K{YrCX?C8miUgk|f5uiM0UXrGo+Ma_4J#(GI&UV=-jnEAJQff2t zfZ`VG=eE2Y1V0h at 8ZvEyH&qHPLqGx0i!Z+6M}A4ZVRB*hxxU0mg^H9`ko$c3= zm*#Bx7ogOQz7nCDp&1Da`sX_I0 at w=n37G!m$tYyzd3inCJI6=T(!-`y?6BI=jfMq}yPtL2&IA}Uz%oy31YeGWI(#o~^_Ps*0 z!%Ld*0_7tWE`p9IER+!B6ng#r{XVp4as;gInl-}{N~cYqj>+%bvBTEJ20{g!?xLU( z=JtY4A4PqzStsBbSu8G{`UV9uxnRgHa%*?{(<}^?jHP9`jSj7gTwpxCRxrf=`!sZ- zMYqe#*Ff)a5lBp4f&gHt^zqKFp@#BZ1cIEGUlChC=K=qa%_~Ve=s4jw!&%N(g28Kugg at s`}8j>us865-7 z1ap9W+#!gqldmP%KIqPoBf)|!B3v&16gEOeZ4oMag1?dgB{Kbrl;MkMRH8isxB{fH zNcC;MNbQ;l>*)drBka at 6?pOJcgb%}U96Kh|Pk}-}#8p?v43zoEk=3mEY3ZD9pPV{)M3+qdqY!ssaRiQBhr7+5)ThF*<=skUng`H~xfCa0wsB$d%^s-c%MTUJHw z0KSP+2M4zSk1(3~^G&q1-MziHmR4T_#~&^Nvr#L^iYh3vo}FIUt*{nB?3n%6kgkIo z>2TjL%tjE?tJl-FZ at Y)3?b)MN=!qzR0k9M2&-?$hiCnsziJz4#|6#+ at W0!B(a5+7_ zu(Wi_e*lvVitPeGE9(6u4w5~YcaR8{l1P7tSXXlbWikv*p$u?t3lv>Iz>$YuVZ{$C zDj4f21*AaEjyE(cq>HhYIj6zHhRNg}Whr*q%G}K*YJh(Ck6HDjsp-;&pP#9^!R$yb zJ68&FUwZ2%BL#VlxzLiwBaw4Z at Wb^$6uiYzv+A* zbIQbqxiJ5Nd$(_Up?fA=QqcmvAewI9yQhyl-pi}*+qb1gdqqa`Mu&1cY6Tjb0gP%e zp$5B5IFzjH6;lkB03j;H(jY=b8CDfrTt)BeDue(f3TzqCTS8uW+hm$lU?>`H5*^UX z;Dn7Wbx9X5jt#SvyrZw);q zsc?yBE^}+FaI;ynRD^qJEcWi%Q at SFZnv0Gab(~uC*wt^uTMCRpQl661<(WJCy%A+W zn8dY^c1GIdJPM#>J~RbVTOoiznWiFFgV{hMYA6h%J^FF-NgXd++qko5A&{^8)jxXk zMgv(+_wF)PJ$(Z2+`S7+8*A+j+~c#vwu%n+nIR8PPuZ{xQi^Lgc|CIqI5q@?g`=8k z62ukt2NQHqb`dF{V(5)bRPw_~G!uT~FzVY#7x1>XTn(9~qPa%nDOPm*(z;ra5G{fF z9!)gWO3w+lMO8jH2Xz0)kv$`eBxY%OOOT_}^)|rym};WyKpN+ at WJ%_cBV!B=E1o>D z&TzoxQRHmfR^n<%znBI#DS<3`a%&Awfe5zczrnsB(?#?P6=JCN*=_CQvan}s{rsLh zf4=yer076|TPwtcpUFa7+acQ85qE2>fTb9bkB?G%rt6$uJ$uG)+a~k$JwVqo5i51l z+lg+Lt}7%J&GIq(iJB``uYTZ}SEOhaHf;rpYY>R{n7$6S=`SeYj-5E6K*wy%7(R&g z(1Xd*Ox?3bcw-sjUtWp?ijHyEF!~R~4YrPXNJMHT6DB~*((6OEKnLyIl2Qd4LDWAP z4#LEP;4q2TQ)r*Pd>O%51N@*;&0i}WUqWkk-HH__3JTsso?D2*{I`w7ssErsM^BspymVR74tHgv^N7#^3k at q*xU}}e2QllB z;n0e99 at QGX%eJ4-7Xxf)M6z1k92N^K&W~&YhU&c30)-x;MMz4$cCxy-sbN5UCLSq^ zDgO2%H}mXSCp{HNcAyx~f$(hka at s{B#*e>S+iV`(TKVnUblqfnwinjC7f&SZcm(&L zX&!=#y=$}^Jq;x2k-fXBHKH6X3}c=C{rxMJ+FNKMAQU6CfBz7ZOQb;^{UtwvVR^EX z1`f1l5f0KjbjSzSOxdn6b;b;)@1(L~imT|g;O>hUTmsnl9pf$WPKFltoH-YAbH{CH zse^z68Bo4rViwtQyFH0e^zL~mfYnlh6S$282Kr5Oja2U*&=2g(eIaCEu*o2FQG)-r z)Nk3ch3WvpkJJI``AVQGDp7nh9CLmv18(qS=a-}*0c#50e1m} zHLk4)^zq*H+SS=--KuXehIq&`ggv68a!bsUIt5eg`#50OBW|;ea+=AA6PaXXC zlDX~T$zIkOqjX-dATk(aQ~dsY0S!!dcPaUx&bH#Ym?NG;EgC|Y)-YHS5f~{_Jc=p?b3f>! z7CJyl36+N{Jj_n3cF%LD*8x%8oQ?^*skWo2}X()H%gnZq;-d{Oe=y at SzhUkyTC#Gc9N zxH>s0(_+ZW`||yJ+P;0SF0C7+8h>qVwQPh4zr;aAvU^ff{Q?413F`qByN1q{FxF9# zWAK?qKmgL1bLXgC2Mirb24L6~&Fx$!_?9do2SJ&^uA_pyfXg^LBlNXU>*kdPYsz#6 z5yeq&Crg6d0w_x%UZG;yb!py9b`w+S;@iDVDA<1=B8*CgU(*aylRv_m at up-4{8<urCpsm9LT`49|xsf)hMG-13T-XkGrWe;`(C3T)uLT%0 zYE;Hxh0I(0M%40k at XPGgx zQ+ at g%LW;Hi0BcmR>7T5}bJ8J})>Uu=o0h0Vsq?S3X^D at JGQz+mUqbm4;$~!Lk;8(h zyK`P54Uu|Q^dQY#am?o9vp$0>D6|V_{N1{JJ946pK|$f&on&O92)DGmBS*W!=%Io~ zTn>{>Gd?HiFqsfLMdC$YdaGCkg#{5g(8gj1u1l3-ttnrz86|%#XXIWxB?Sar;2$K# zutDMu2JbD-v>)ZYhFL@)2%1V!Wh>-&2}%Zj}tA${jCg&`?FHf&=X zVkv=C(aV>8yu;DbP at 4fm1eOxdf)J}Hl{j{2Em)@6-M_OSbmXn;Th*rBI=JcmWW60u zIz3`loz_m`26t&~6(o%*pD!f{#o}Be} zv;E|@ZIj716Ehq{x$e0y7|ko3P*_;#%Akyq5%D(=TlyghokFTdE^bPZL$aQ7K?Zn6 zHv|G57ZOGtn6ObbzNCXmg3FiHv$MG(k4cFnRH$Rz4B~@X9|$jIfZ$>A2%tBu0stC; zo6|T at yPKMtg4#Uu#FLSvZTcjzva}j_SBxEDfYNA2)nN~i>0@`OosRtsBU0E z+8;_nLqkJOX4pLS%=z=9<)U8kO7ItMDsEn0$m2O709KsIS~zYxh=CoxlY7SA#G`3F zb?w&e-=9C5Iy(;BtzqFJy3De(`^t13dB|rS12+;bJ=mK<4>fv5!F2>YldP>l z6L4%0M_?vqFC85p!sgK5K6 at 5OQVa8mfJ2o_BmYA5LyH=*u^7D)Y>_T+-IX)3qP_)? zz=negfAPF%xS5v{V-F{%h{$p3+jb`=Ry=&THXwis(ut*o&y at EU?S6{XH#vD7r3b!r zV?oyw`%a!*iD55UGC*0D(F=M5oLf@>@|KH2QbrtRxotOXn&5K7M#l-xDAX9kv!VaN`^%!pKelWH?!|g5-e)gfUBzK9J!ixMvq8 z&QjAQ^8Vs~jQ8i{!@3qTYwLP^*|EYMap{m^ljjEZU^YN zaa7}JjdjBAnLsYAd&6y>DTm)^87E(Qe# z9yATQ;c7_mCyT&D{FUMEY-Vv)cC(2;!NW1-O-~YTmmY4qW}=2aYk^! z1Y~B$1KBR(d{WbJn~6vjwz#Rz8gn~h;blJv8i|UA+eu*Pq3|WQuVD7je at rE#D7be0 zx`K@^Wzc_($T4IT=w!op%yf3^BY_4rVs<6R2G9fGL2*;7%!lX=79wahEul}(95uQa z8Xysa2)pz`V4HCuJX{>04b{YL95b`TW1H`%!+^TngH1h!f%#tIuVF~NMsb46aCAnS z9}-%e|6(&;Q`68VOK4a56*dnH`HG{9D4zm72`2rm)aat_*a7zKKBtdT zL}kcGW8)W3p6tY*cxDX^j_Fwr9g~?E8MwxwvztVuh7KeU^$_i8bd{@CU0YXc&qyaT zEU-kOp`FZ+a3`icnDzSe`RPgG7GDfy)0psumm?}NJcsHDDLmo~a2}mutc#3TU#OI}ubvmPx_kj3p#=xH(rKE)C$2?adn?GKvhHAM!E z-T7Nu6Lg_{|3pr;05X#mE?pYO6rF1P1fNO?C2M*Rgl!@%y4lzwSHybMc?@9A(^s|9 zmK at H=%XqbNvbN~TdJZYU5DZdYzkRz2J at E@!9KiL>uKoK at 9z7Z}Ig>TuA at W^T<1|VZ zv289B~=jP+b^dFxT4MPg4J6Jtq7z~`0P)k!d2K&x zn2m`-b|gMFYSpS!4B1hv>ZyF at KpvtO*pc=UahM=Va^`>s+^Rgb=OEFeA5{A!2$%x6 zD&q>WaVTv*{2%KfSYnWL>0`2xSCxT}o<*S;qV6QhgRbEIHy5-bmoa|D_&(KhQ)45l z*Y}s!brC9&W at s5E)_~3t{sL4PX)1CZ1xFw&d&5d%)@|BQ#

u8hk-<#w5$vSoiypE)C~tneqo+|u{P?cW2Oly});6=)-=mpidS|JjYGf~ZzxQFQv at 6oO{$`)E!_X? z>C^MquZK|1czf$ZP6TWKS{eGGcM$_AxZcT=#TG(*Av%zYVuog>rM;&l!up}kDj$-4 zZh{x77Yw&uk zg>Q}90Yvnh=zhVfi;l+?xoT)=Ku+K{ECbr!LeCw$cEK5+gH*zAkhbz*)=L_H|DKZJ zkocqhdqJmzp32rxA})W;kxBB=3J_YTo2YdN-5C$-*3~`;&s0h3fL~-%o2jmioas at x z11tRT!xtBv5<HzR~w*YKpajIj<(GL!g#4pcgDC-{`c(5E-MeYgf=sk63F8KMMT3`W!!e*qZ7U%@AwA-_TPcs&VEDopl=>tVKl* z#j;I?gKU>B>%YB{S at VsuE6Jv%vC(3y#VGY*rlu|of{~hjMN at 95_36{}Mom1ez zreXUN=&x*acXr-Gg9qG9f3Nn_r(?5L(E1|;nwyJ{d$Md?zIwG-(B^80g%Fm&Wd8o= zv$OBLdq=?z4bKE||E9a7HY~QWxtTMiii8J>TxrxG*4YvlCv~ga*-8xs#tacxsLKZs z^1(plo-VD;SPE}O>~Srl*BqnJZ$n4hIL#XlBPv4J5XGdd|w2RPU zKlY&@6dEF7s$a}aXU<#)8-rxIj{ZV}8oYzN8DSUg at HZFN zq$MZ!jA&;)Uh>am8;C3=i$p{x0B0~1iBw%l39uIY?bUhk58lZ^A8`K202)Z}XcG`2 zYddyM+4K3^Hzx6`DMdb1SA)Y+4;s>*TRyfRlq z*RAy*Ki*`znSn!?D4m^}|C9Dk&V(XB3d{joWgfmXe6S*By8ZoEtzIqbC_dH>|G-P2v9z7D5>!ptdCP5s-+#|YY=ETB6g8BT7zw{-3(UXILSNa-}o-VrS zVr^|*sEuMlxKYB(Qt6nAs_OPFTQFJ at 6y2$hKE|jX3F^qU;2BKqbY~)2EGdb)TSIi9 z3`P^+qkzdsJ9$t{!A%gweSUS>vzUg#VM+0DgJ&MOvnj9*c?RmV|CD{qFQVpTkgATq zuCEWz`}q0ukQ^=14~f36a6mMq>A20B_4V7gerjqC5dY7glcJeC<0PrEoZ_IRB|fnM zI)iZ?G`v95;M3S0{jkcMRHm|PeBC<4$7rf=1Dqj$rx}saUDkVnSP3Z*ZF$9$Dj5kj zN?2rw&9cOO?5bCS<}l7qgz9JTt;SGX%0GSDOG$}<9JyMqA{eL01d_uxN?UmSQwK9ba5Pm&@f5>o&?&?bBk`ve at J{s5ve*aMU?95Tznq4DR> zVMB)S(h-hsq;Us_M3_6-$g1k<$4{T4jU%T)7SQW~rZw*q#idlI0~Y*P>coLi_) zkocJ};ygkqFV1!N`Exota1O{SNd>*z6KfZx&Kjr^J&udMw3^{dP5*)nz&Y`abG`Sa#MKZhm!A!g at v zN3|RFsu{|apfO6FK1e$U00o-z80p$laT9@?EP0repx`ni-=G8gQSpa<|7FW at O8{lcK5F at RoMtqf!j_lS3H(Sv)vb37{r9iaO4O0yAT7y3^1mhM zwUC_{#7H04Mo=+rN0I at Q0c8+y^7Em~4ENe;0!ds8Ev4X*#3vd?7D1d)10uy>Gmx4v zZE?82&uVfbo%XI}5$G>yuyE`LNotfjF#ZZM^kwCmR9DE==q`fSfQG)tsU*WphhxyZ zvXPPsH$Vm;OCS~z2!mzlNne#2>HMo#T^21e(9vOd5J3y9Y?%F|EGNP+XDB@{@|=cb>XP at gp}YqGO+nm zce{J^-CTbyfVf#CWKK~nLY&yCa$UD?jg6IjUP+D at 4O;H%+DO-*M>IKb5Zy-}-dzL7 z;u;9$4qMq=SbZ)h$7aTimqq*zQ_zMY>-H03>c5tN4lYY zw^*!f+`!yhSeM?M+2Q0QR-Rb at jtRU;0|;sW7QZ}o91>|M7bVit3&Xxd7>t0XwamT=+_UHl28Jr%f(p3#916Rz*ltYTUZb< z0G at _2E7n>a(}(1u0$8(V4IqMpp7itr*{;ye_TB_}H8ti1FCoj}iPVN!*+{AS at jN!2 zSMu{YXh)a&0SO*fA4O!q_=3>A z7zs%J1u+yEF~T))0*ueinFMf=&KhPqcYh(-u&{j8d`@Dbs6`2SY$E#w z(SPCGId(}Wxr_lH08W=h6|gp7B8EH=LrkopqLJvAJwKaTR*w5IS2=Rq8L*p^?Y`2Sh}FLEfl3Ng67)-SS1 zXV4(}V^*33;1_6eot^)Wrt=PK@@(69!d^lcA|h%)R8*>Q1EPjN6%`T3TSpP2qGDaB zxCaRvCpZBGf}*&^S#Xg6?g5Tk+~7c*;6_CFevduA9`7IR+k(mS-1jxk^SsWh#-T-v zHW8(0t`mMk3byjc*R`3M{X2KIyd@&j3a`!CnZ(OQ1^`e at EybV?X{5qpAHUb#9!fV5 zWC5I!@utko*3UIU3tKXM<;qsq?)bSd5j6{1k8}fMj6+|vPV45i!6YL=Z!Fd5HE+=Zs~}{%#5_iFqouTFe9&;p zL0KY%qGz8z#LaJCzeXM9`wLMHcCBbh&@b!csyll}B1+=$#q4xT4ZyA^{tIFyBUw~Ud<9gJsZ{=(H-DjBLB>eZ z=Rf5y{)T at fR5Aieqd|pqls|$WBA?ORf#?9_P}f0QQQ~dT%G!^aFo9Rd2Zg4fTH<3} z|5dJ;gZJaWqKZsbv_Ou^hsWTrC8qpznIv=02d$yykMfp#4jvrp at 9%-|i{WAaSyVG% zGh|4nfT`~Y?%^MB(S=2PfwKx#n05|Z9{`GAj(!q8Q|?kDAOhvBMCT6)388&1qB73C z4j{s7;{PTR^WqrcXj2ED$Iwq_RZ00BDlflXBT at q@p+#wBbpu{hREX6o#HVyY4pzVj zx`~D|t>`!GAAw*c^>i<2jVX(OO=!|YcYA|CwzUuR=N`*`u*Kqab at hbtA|*3Z at SV1@D&cxGw}?YCB at M`GZuDFVEM{$; zjQs+515#-YXcu>P##(*4>TSD@?9#8YQhGgS*RCV?-qK+9aKsPO@~t^tFw(`OrP|zr zlP4MIbY&WD#*85@$&k48+TfyMgI$b6<*}(3zP<4jS4`IPcUbaRLw-l`>G)3{ni~8m(@e1Fu<0*xg($*jq z(;iR+gTPJKuV3daC=&)`1;I#hi5P)M+9BFi#k1zAl6{5;1(icRym-O77N$OcBuI7* zeag+QGUK^{=zm=7YqTmea{`KT;sMqVC;GHDAI&)jVkC23I&5)Wi?))KmD{tSWhzFO3jp=7 z>T9(=el*u=BAPM2BlU>!EaUBO`R088AVcwotuPIkN#q>?a6&BQtltXbI?e-z+j8Sz z$}jjpO%G~H>RNfD*yv at fd9!j|>FwL6SN!ND+szxXwy`-1s?@^~&GZi#l01Lv9C_8~ zKmY90v*!W|pTL|p4^-qW-t!0}DYZj~4&Q-_sa4?Zo}69QZ2d)ZQ&aHx*^G$>=J4oz zniqjY?j6-J(XS4lUiwQi0O57w*!ZrO!RB5?EX8jiTTHJGV8u0a`T~zmR^YU5{|U!C zC at YBhf-EbiKVAbsX%|Hsny578ZTR!>0HX+aUtP^mFVC7g$)V at nNVcl)&U*B z0-^OlL4K*xyLDzTR&CO;%oncK8U^0mDwu5qAF>?pg|};Ij z?dj>UGDAy0Ri5T4QIIU z$h0ipNX{A-hG{NQ{vafIz%mCG$*?r$#}5|22!$%D22aoL$XBV3xz$$zVL<`-e`!;A z7W~EE at Q>JMV=PWd4OxmAJNyuxoAC3&dF9pB)!?)&v_M!zz1LNl;w9}LM+{0a2f?Hi z7Csz&#+Wg+P?&U3L3>B#I?xNimF9hpiH|>>pAQUCWFZVV#ut%|kc+_t^F}sY4qYs) z#j?K9D at C}uRQ{-CH1-a4^SMNjWsGlOIA~m*rdI0+CbT!)xwi)NAmmx2c6(UV17HS7 zjmshoDisT*jnZF(S0T+r$UTT8M$LBGa5O7#R!XB=w^$73bGD#Xw$|Q)EcG#Aw6z6Mfql`8bt$h*MI)WqiKHN1Hzyx5!d4+ zsuYPt^}iRKIQl2PB0Vb=5}BNOR`$>+sF;8@@qg;CgWZa(?d>09t+aLk_>Q=+m;XI} zg8rDJpfo`xaU}uOe{aqE2a_C7OI{b?ebm&1S0&x#2yn1z8avQ)i7-`KnT; z?ZytUmz1vf$3*qMOZD?dBUlX)fk%o^9-;8Br4{gC+ShE#pp5S|`=JMd752PrYDGWR zW?L5ZCNl}l(Z?!SlLWCsXHNv?wuoY}Y6d1n0z-w2p%Q^_#E7F{2N+D=zKxdMdvT5G z>I*coI~xYhUi$5QI@}q?s!Nl*cZjfz#`a2*_`<1mhRW7E%l!Rbwwx?QCN;J8ix$!xLlUXCW65TZ`|TOfBd)) z%|z2GUayJOYUio0%0XhSqSt)rq_xQ at y`dBqJ8Ew ztudyh28|~3JKN#OZT at bQ$v$i=ej>1=BcWx0^d5me*=i5LhD^y!|LiB{#?w4Md14i~ z8L)^jDF|~gn#|4yA-RCIZ`BI9Pn4Zrcpj27X1Tfq=V5A>nVv5E*sWV1K~Ja`_)-a8 zZT618(df9Mx!^poL-A1(yR_ at Fwap~XeEjbqU!6uL{BPAQ!?20^Gjk9cLXP1#fgkCa^T10KxX2ReU(RqM4`y^J?~4?h<0n~k|jRPvjM86OliCE za?EVEs^d()1^D|j^KCS$TkcG_;Kr5vU@?lXUR~|b8dhLo^<#v4XkszYsko#!)jQOp z28x@{0#Nhf1^yq$j~=yY-Fp4`Ni0Uo?gokz#+=Ud4vuT%3>F1$_h3oMKv$cI`bS!p>LjbA2A~3kzhJ1_)h1CCMV!Xvf)oJm#)Cku%(YnBPG9AY=rBH+*rZ*s1I46eX2u_Dgn|UsWe!5QerbJe*OEqwebO{CB-0vgY9D$!S-Q5u`eHVFI=RP&qQ}mxbH*$Jr zGH(p#jnSs*M&)EFc-l1h+ at j5UU2vW+eKz_ z4kMI^2s`gDba_Z50h5m(Il{9&a$5uH7b$k}^3F%?2%gXy0an8&tl4=|Pi zLxxua+<!~diK%- z09g#T&}AsHq$jjN#Y|%&%%OU^#iE%B=lG2I*iVJ!8P0{o0cd&u_-r2!4~OlVq_t1y z<--o4dd8RA#ifvP57FnzVK9V~C(lPiz`VOE40Zr7LmpQhf+xbf%oIMA^ra-W+-ZU% zKa|Nu;Q4z;4ZSAvC_0Znb?4#3Yf2e(IjI-tRm&4+Ihve6p)@}8km1g{&(o7OtGZf# z-yqzrxHxjb&YPGZzCo!f)d_>>Jq9&xx|xraD>OISS#tU+yyF6M7}4i#>9SuUua)~^ zi>&wUKGFp00Z%6^2oeDS!y}=kfq4LW86U>khn=6Rg|#gI@&XYqLvIrWfOFNO at MsaX zjFg6;affVj{mx1}zhB#AsJswWnYe=sP>T6C7pW?E$FMR`RN4%|`mcEOJXjdq`3X({ z0F*@`;F86~&nYv3&PjRHh1C001k^?JvqUB;0gTwNJZOSZ&S_+ at 1dg+U^hQW_?o30-9}oUx+LlyPRkGKtL3%gaUg-03J7EeW4PZM9yJ1 at noc z``r9s=pl|1+h1F>=;Z2(>?0^R_!_o-ZIS*~6vqDZ&;LkY6k5n55cWb_A-b)t;8^e$ zSgk-efQuF)3nuy)psQ-29w*YH-Zapo=k=}lLC9iIiQKz;cO{2*=+Gt#vEZ+W^J<3< zSwU{4MvtF7VFL<;ASJtX(E+Hr^gz59_1j3&0}t=nBWc?75uF)jdpIjb{-*e5lKS95 zQnV+Y|7Ni~W}+k~*Ur`!)i;k4>VVRp8!rq3PnZy&K4JLqBfEDSX#;53NQEr3z{y8> z;{?-^uU>&miJmbH0J|W5xt=S<>KQ&Xv&Uf1;;1TI6GVrBu=m(QpX?g37X%2XlL8xO zU4zm8Q2sFWfU_|c+Pour8_qEpnzIYPa4hzJDNNB<- at 7+9w36+aE0CxK zsYx*?*PD0;BJ?3d>LUI=e7FnxppynpmW!%NvjDZtV%Y*iV?^gd2&n!3z2aXs8CFsx zV6+vnorlw`^aK%>G{(>kAQJ~idn7d at gN~6r#dR}wMJ}x31<)|zr$~(pbt5lMNlT+D zSpo?}b3uS%!mO$sT8wi at q(u-!!3vE))+B2fJZhb5=4wMn_y%bT2M~4!Ii=uAg=iac z3Kz_zBzd+&@ov-fXB=P37ODYG0_Y4$i{D6UT=bt6*1UOwau44Fele67JQq{evpH$d z^307BVSvD>tSPTJB^^7~{e9goyFFix1!1(LI0 at nDiDHU45;|=f18XPu?_cfbB0i^A zDP~BC8k$Q_Kg4(7zzoNmY#ZGuMxFc>_3bJ^poN*J}HkYr0orC`EoV8AQEK@)%$D*4{bUa<-x zBSch5-aaG^p~q5vMmAEgs5*np3!%yDcHO{-L*t?iGYdB5_5dA_b{VKvwU4qhXFry^ zyTJoIM#dt_pxz;H)15)*am;95!LoHH1eAbrY-}JPbvkb5i6CRKPu5v3pivNps7=CI}jLl~du34u9_7A(*mwi5BW9K#F`1MW? z5kq^4y~mClhs*>D5Z4Bfce-=tn;;Q&%A^;`%*WB~{`HsOoWf4i0Xuc`1kYlxbT-J) z&@m8S-l_)0ANPh|31CksA|JTh_vz7tk!AgOVGe-6H2LB>7FrOhXc(Ax!BvbIB~-p2 zke|W^VYoOGW7*VfZ?;#8vfKbkG+}x7`KAYCA^k<(=i$6|G_G at S^F{ zg*iXw^I2qwn7_GUrpH``zrV?IJvfe*Ez^12i05JE=^hAx;C?|R9Dr*hr2ULf-ledj z>!3^IC4#Qv6v+v~d$H&Td$Wjj98tBtIDHlaY}vP8!Mo`Ng%ch}h|aR>4GA8fF2av8 z7V?epUa3^lvSpKjY>%4H at 5ArWE1f+r#?kGdmO+lfU1)&`%X$g*9PaS(v}H`FLcvq{ z8JuAUo+R0y#KBi&yo(IgXWsKmBp#IX+)AAl)_^G+Hxk9W_36U~EvuXcx(j9)4nw^_ zOsxY=AIY$l-iHHv1h1^6OV8$)0` zq{s*MnIHoF5Opg z at W{hJtMFryk&W*$rdNGZxdDck^A{|j`lGsF zF%mK}y(KX}MmJNS^JD5Ba82CRd|xu(_2G6pq{fr~KskdC;6Yvg^9r-meV5nfo<5D? zE`^lul9%+c<)_-=b~tAaU{oz)getZx%|6G2RXS)*x3H~yiI#-K#&3~gW?61UX_jwN z9tVnQnE$S34f{$9NPbg4(t1nhAxr{WWuucYc{zHtegMTb29PVkWN7htYo}a+#BgM| zS`p4WTk`ypH4P^=z6jX5rUp>4x?vc#nf8u5hPN_2M$-SpW}}#2Bn|1?ZS>D3x$n4Hg{ol@(*%4{%@ghd3A)@Y zfBE-rrBV_r2Z3c at +dUBI(B=)?d6O|=jHB>~I?Z6!yJD%c=#I2+- zFq?*cjRGlfios$sv at gYc>Enupgr08w`=eo*Hfa)zO$`S3u^7U_6Hw00gJYM-v202W zh&$O2w0n#5HUYuZFZw-Cl{QQTUEe`FiFc!{w08Im| zsRp8&<1=)0b7Rjq&`m4Pd42;1Ohw26(h{o>U)IvjQ{0XHNl6=+6~wh6S+lzjv6;y< zumb}>ht*g=plqUeg1!cchCuJNZ3UZ5!JR4;8G{X);I#`T3Z!{e}y^V at bt`?*wN+Chu06zZ73w0XV{}qKOed6V8|%2{(x$#3rY#aB8O7Jghkh+8@(z^t$GgN zQU33LUnq}xeDV!cnt<8>u}6;_5y$U9<_*uWbH@&{YeVObm+|Ho49ek<_0nTu#2kctfbI|s91W#4YyK0e|6BO0Q)gl%ipvgHcI z)ciM;ga~GFRXh%rPelug&K+Q|l{!iQP4pZ32L at He0GqL6>I^*>m at Qdm7ULYvl|d^J z=h72OKQb~KG+b?SNZcu^)*@B4rM* z?FM)CpS#gTQcEBb!Hj2A(aV=FqZ at XzGsD)_*CiSJk9Up%3DO`UiqATl7oKqJxalA( zdn}PbsBV{_EQ7HH*P-A{va&4i&qHgnq6PI5H4<4TdSM5YdQ1tS|6w)X#b=-d#As2} zL7o?19rrSd6=*8{kqTzi-$=$TU%lGN%}r}339TU2 at ka5SKnj4iz1&>B1?F`+rF9C*uC*?X%Ng}KSJGxTH!&0-cfIhky$MB7-W-;?5g;q7 at 7cfh8Z^g^>DXQ z{J^3`f2&mT;9#e<1Mpz&ySPTW^(r0wOP|-;B#E51fwRXXEkHVb7Pn#N&NlHyrWO`x zoE at +(K6vo=#=|yR0(M#1;w4L(Z_4CLk%T#u=qaHz!crI~y8)Yk7~DZky{=mB#~S9& z7XTalLZm2FA+>4cX$4Kzy?pWF;GsiI&N;9AGb|>)?lMI>*m6k;1{J_R&py;L)PkWF zKb29Sw=zhddu#qpSc5?fc1iYNR^eO;y$H1rowr9J5KWpQi$6*3bPacPnh=DQpbgj% zr=+ktcHPw%s5FJ8z20MJs(2`*I$9K(3*{_CA2D9bh(4}$xUr4}aQbhR)XIyT6GhZi zu8>TG{7VoWHVtEziK~PC2LYBXFJ^_kX5Ehi(pGHqWB?(98=0Khac`fBq(>fx?wB$=kC4F}p}s7^Z%A`9I(W&|hc=V>Qt z;{RrY&6+ig6r#tyCYAk1d;R~1z#gG_^N75tWwP++^J z$E9ZVmm9xrJ}Xg$98RguD(p#%TtlcHVFW<9AoO!qw~7$19X&zk{`&oc(C&t6RG$CYetl zKhNFBHGnGy7PgMHfuY^|CziJZDC4C!@i6I0etp{r9UujP117${{;%zW&P&2G2l7HRD!bvS!hp!^9uP!Qyxc>K9e$mmozS|aLz=||M#g=g6&!OR>B`WF}{{zPh<6GGkX8+uovs{ESF!S&dL>` zZssySV&E}W!8FC1!MoB at QW$~cE*G}qWky4O(?RcY=_tQiIYai*xCD at wV0UD__h@Vdr}OtvK4NOS}sPU*^&k9Kx4eFB*=L8 z;lsmrjhOfvka|c~kbDkE2%T)K_}lB(`vBdE1NCu9GCUy&05LT!nD}7*Fb=T*UTh4Z zsOC+RRXW(Mf{kZlSTIm$brk~tcJ2Pa at mwiGW5ppYpQTEd_UI9@V#QgFM&x(|mm+A7 z9+TyZ+|EegkZ3Zg at t`TuD{%G6G$tL}1uk71F at QD$t-({n7&-Tj91ne@*xmGp|E%rjPbAaE1Xl3OJ9z~N6w!JIF| zdRdm|hf>vFlo!Z6w{NjgtU{dyH^Va7AHWh6J)Ae%+UY|9p;Vm at az>3PEtgmy7#VrOx zw2_){rp=6O0AFLpS at X|npefSvy@?JStlV5-vXO!;X!QkZr~zbpUs_(icKzA86g|x8 zf)YWN5QO#D*{#1={pj?!g2o0^Z{UDDLLMZKlZVQqj z!{K#daa4cRQjj14xU?3j8?)Z}gW209>`v9D@?uFLG=Ndxi)mTP&)^b9VB^%DrN|pT zTs&D+8mS7~uyyM+oJ=m(Lp?Fw0XZ*`2n)fwbiuU%oiJ?ya6Szkv6w+O#vd4E!S4tV ziI4;Vj2X?4A?DW}2&1EpGiw{$yuJP`>v7|^#^zHkE{usgvZn2jOPz<`Q*7#+eP-A1 z^KMNYbZ_v8?KbOzocjzK9Dnrpqf=X)cDbqyyJSE4N&NSQ4|(bN3x3pp`0>5E%E|Lg zNXd((!TQ$UcZ*nfl3&69C5`d0Sy8t?1lc!&g=Od&CjK#L3f1^JgVYw#vG5dkU#1FGP7~pHW zI9_sdf;(@K%|>w}WO>EQf7YEieY(ZIJyJ7GRu)ukbBRQI{=DG^cRe)^y{ftzz=%q6 zpfvdsh4lu1SHwwS>zdiw!K1_`in|BK4cIxzbp(zGrCX&2()R6XF0~&_2S_P$J$@9u z7HpUE^QTXm#L5U*06tyn0wp=f!~ne#tC}-$>+S4ECZurUj3HVDTp=iNTDVJ`Ux*cu zLGB{?h_Jlay8-%%P9 at wLPgu6?7`A!{oyo2?o;S&f!$6>bJO>>G(G<3=oIDBLK>{K; zr+P5XN(u1f-+%vR at b6$Z{-t)aLB|6)seuH70Mne_4C`^sx?kVE={(SnADKp=4%v7) zwA`+nb0wYiE$m!elIiz(d-9zR3L^W1H8Jcye$SC3)(TUK*%eSZ{3;x9Gw(@SGTU;U%6Hot(5ba?`zk?E*S)b|7D7_^UQFQm zEKQp=n-&_1^aq&Hw}r)>EkCF0x0RT1CW)y0i4b2%j+iwQ-?H?32a?FY$?#tClmS}o zP8Pfq8N|xQlYa2(SuFU{at;V*G?ZM6)ZOl61jHx}bzjU6>=IfWGczwNAIjt;Ar2D? zB#Yi_c%(c-ev0SGRf8hn2?Jf^b*A!iVrzA at PPL!?0?qPD`7zAd;3$#vT)DC at H&>!u zE=Ws_(CVyZVLTIje(Oj`%Rl}nmZ7Ug$RnEd39d}E9QcXJYKnG-^^EQRWKsgXf=wbB zCg$A#rk;pHSD6|R!Uj((E4l)r0Ox zuS9gt{aNgd#m};N^N#M^>5C at w_ur?muM{ORX%;U%<`h^g$He!932f{X`&HB5{LGvp z8LR`r;}WymBr)+arnkY4N-IpZ3IOA7>upL-1|;GBNzFtvuRsLbB*qNbnJO`^`I2|) z6oHv!@JAb|~pb`&)P5`X~-cE}a at h0KCqrUvfz)EIjBbX1>5_xzEO4L*q z$2yJ7XLB_M9Qaw6kjwcIc=(%PP}(05egTpnIKu^FE`&0JXa;{k%%eR9+~-sC$jfgL zhT`j4d?qX%6!5G|ckX=VdC>52h$MD)p$fsV9RnF`;L)E(j9}>G`s2qL*o2{IL)xlU z3tpZ9J&_2grCaEJJq4X})uxox)WkJwV(uNrHxY$}d?pJ3VNvn6h-LiS+gsZoIr&!x z6p0M7S3Kf;_=EZLZPPL^9vMgrlr9`W_(?&hv34!@oLZCWAo}TC%4AM6KOVJy3Q|PM zeM+6uCMunh`6U5Y22Gv5QW8aQ!^4Kxp-p5NZ%V*3avaZyQadW7zo#cVe>Y`hpkJRc zWeVmQwe8I|`MU}tko)%$%mC_eA*ei>SXp(Se^QwjJZ_xcm65y?yg8^Qa)sF=@Gq9u zFNVnARWSj`OerhjfI^~dM{xj%8zV-{6Bx3uZ<7gc at ZmflD`;C`r536U#4ogHRNw^b z--#O(`pPEEW56*+PvB9{#jO{wiKpHfjvjJj&c}sNwN?1BT zAuD^$m^0^FO^w9HX3~@?J!LW~&bXYesJ!;Xl8?YeW1<^*iPC$A_`&yaNRz?)Q&NTH zRT-I7pzWKHqhh;g$s6L>=X4;T zNtBAbjPRnU8-M2Utftx|`gylvo%yGi$5>cHQsphCQ%+FJou4GwR!y5mMGjlXRmC^} zDvf^x9bt|D>olyAwry*%M^1%7xmRw;`_;GfLz!cHIEDQgxybR3Lj{l-*z?E)O3hcG zCBCWnGSgqLko(7#P$BRH5%Zate8I(wgKm^K74I=JFxQ^Wn;8M*ebjeEzyJ77dPua+ zfXt$GycQ}&plW!pxTS?4G<*&i7NYyq_G`e4am(TZuolALW9Kza1Z>KPcZ`phj+<(| z3b+RYDDE3ChjIr|qFME)8?FC&O{YauMz(L)jsf9n1egRFiH0iK;7W%Cg{F(zcGG_= zqlx@{OsEK;b=*U7Dq#th*x)!-2{ni&tD>TRc)3alV^L9rPbR}?rl_ZG>tCtwq)HPA zq99vB4aW+xG!qq6b@=}zUw+>I&D)A%!E=Om5atw!1^aZMiEgXsijEU%e;~+#H*&aI zq^aUx(v~7}qDfGm)M5Hf7G~R)@4IHmhN-kHEqP4F-kAuR0mP}i$@+^Hl1=^qM~1tF z*C3tzH&jOm(_EW at I0@!+-6VXhAke5E%j;S at In^_wBkp_ at iVyXGgT95OCB8;JQ$BOJ zvYM?#iPfjiHq*nz217>-Y8-1L!N#)I;2f;Ietm6pv at e4V?(Q>x&AmeFN!DLv%nXfP z=761Sm1Wi#b1mWmIUmUeq!EIq{=>%8H81wg at OO>62IXOyepxdd{EuO6?iuK>s7Gg# zFb!0d3D!&$pH%7~M>Hl9F@?B=e9Y!en}jph9-~q=+mSFucPYLw1T=RY%&`U)q9B7a zr&MN54LAURwQQuk%Qi~3{{16)JH^E at yh4TrIa&Z5^n~pcWMVGr at wDh+M~QO)7hF>A zJU2hwYVnuXY!-~dN}UG-*-K|k*#a8Q5-P6EwFRJ~!=w_3wA3NJHxGXC>=|ePqfRw7 z(VYhQ`Gqn^nuS*bZF56l^X92U0~+`ixqod0~CM-A at J$OJ1Ng2f0WbRKP*pD4ch~g%q_Ta%I z5R;o>d<}1e*8n=^9*#{s`XdjF at ydnJI+B|U>dv4mZi&LejOehrdPkeZpAA`?-2c#V47 zkodsP+WH=1Sq>vF91#qvL;@k+0AvlyZBC%T)JHZ3w%f?)Hjby?e|(!$u3}xZYT&}3 z>#f4QqJG$(xg7W>iQTd at WCa@5a;6 z^|V}foW>8Cpzy?sqvf^XEdg4ly6+ zdmq2pYa}DE)(ax48#+ffJ7(+}SrVYvqF<@B{0Spe{>(PdD#wW>AnCV_Gi=y7e@uwLx_dv=PSz>8z#8MyO0Yw_Bjs!4oF1%kLi&$h5x3#sg7ZCi>~k at Xpo1Dx#Z1|DpTD7dQNSbmi+v zrg5;oA<`Shk3Z5 at V&BWj-NfBrr z)QN9JZZ2(GQ(e$?x>48v*8()IN=V?riW1MjqH!(!T`}`QQ^eO)4eQD#C-_5}wwf at Q zX~)-E&0*Zj1Rqq@%$N%v=saNFOMCkmqL|Q|a2p){b0_v at qJ|+C at rN>cP;`DQ0uoQp zB|yWFFF+()RyyPn6=uzu!$bG- at DQcn#1TF(&tc|Uo(Em7R_%ciFCdafPlAlFy at V;U zFeBg`oexyC4 zl;F at Th?1S{WMZHfUxW&;u{yGmtOb_a91p`@PBGh&{n1V`(S+~RVs!4(D0bU1XP#3) z(T5j(Fuxl-3e_ROfYK45C8)!foHn)&4$>cNt7Zf!**}{Cmg7Q=^YGzAZavrg)_UBo-)B zb0TJ?Xb}4?b`u-z3K=!(Gwcp=mB-EfipzGpG>~{k+suIkUvK>Jq>=U&@tet{@*G|` zo+EJ`t}<%?XNE$)q3%tW-L?8>YXo)oyLYiqMsxZo=YdzL%w`JK(zQqr)GocfywZ^Q z-(&saf^w~zD1n?^eUT*6^nwUa*$WqNFm4 at X$CF9&z#NP+i^xra1UL(r92FNgfS2lh z1acxg>L!venk3M4YJh@*{szJ at C8eXbyMC5X%%^Mwoze{z7J!J-RzRv!Cmvg{fRb<3 zBT^u}4I{wKt*ynK|5SD7%yNjSC&+os-|-x56aDC2qB{YfY^orXvN3p?Aa5>;5zdRu?n6h(x<%Br`sf7 zf_;AUXguO3j)rqj;8=#q5gW016BRT79y)!qSQn;s_U>gXm|$YTaLc=QtaBB7#~$j- z2jUp3HvzP=0jz+tA<1(7%xo at kl%X)`2 at RMm5^O3ER>OxaMC%GBOBf;;p+3R#ZN?12 zYMoJ-W~lzW^B at xp^pexl`{Jy*E1J5#bOG1l>+{RD4n6djImU_k{wPD4s3h}p%mk%V z2p at jnfB{szsr&oaF3kEA0^%DOI2(A3)z3@@T(|&i(*3vJ*2c!ZfMa217gQmk at sg%I zlOkwJef;g{qsP&eg*_La>WeMf$dSlB99p+#1&;|?H(a6I$nMymKYuKmGv~0t{;ZDu zLq$zM*d{C3BpyF^j>7$_cL&vU>KgeZxp5KYKT6pkHJ6{ixMj+oOK=(h_LNpgtsx7i%$|Ltun>y=6TK}Z8zG-t*xh+G zb-O64f&Y`fon!+p!g0uq9O(GvDu at -druOQZX1mN=V=dQWf7itghxA|3lSmKfJ}sP&s at ujjRahKMl4 zf5d+ZU_j@?3x`4AU at +UUdethz7J5c{QYd~mX4C(Kj|TTE7X!H;LH<#GOu8H#mMI9H zR%+@!9tFjardg|})2YvhhFopFpxS6$nFZ7zI|LYc`ST4hLTM#+^nz$DxxLIsQ+j&z>BGl at 72@DB z4>E7+)VRQ$fB*Rh_modHHPG=`YzpRD8kPXu44ClbFp2AA^)>X;+joigw08;6q>)NGKI=8<{`{Qb6uRxs7Kl zmSt8J7EtfF6@>+<1}MTc@;^+sxVx<|_|e~etlR<#c{_7+7IWOMtlZ6{E|OzZAhorE zV++Hb3{*(6boN%ugeg^$Z?b=n?%f~oxJ^wbPMLy5o9*VoO|7k&B{h82+H0J4hX4{F zp9>2#OzYNaJ=B$cxG%&^QaJ~hhDCw`&QB`g-18{`NAL(hnY{tE-0~Q*NlHo?f8w=t zbZRRb>N`lK!pg(aZA=BE22lJ0juS_D&zwc<4iMk4vBFrrEx(S58efa*3AW at zCEUR+k=6&RD_AZ?|VbH}ywfna&uI5Hs|-19eh z85yor(&U>8 at CCR5nwVyjSK!dp!^?~7LMUko*#Yn at -sb0`PJWLrttL)>?jc^+ZgQ#L zeYEWtC!*EH&yRiX%-_o+DguS*UEU74v3Qk3#Ttex$oPxVF0+>e6Tz4^j0JJfc>qkw zVEV9}hMaUPzZ0c%EPG4o1+2z~4+1_LzeHL6nA5PgH_DL#gt7&$Y&iNmtO7(Qjp;8Z zPE1ZsHTA27eir2Wfk^UcLuoHS3rcrCV5ryDb~4k*gYm-DAXCNlk5*gOhvI=hpV8G7 z*ajuUvD|@JO!)w`1pHCc4h;xs2{ci^#WmWycNg*>=02r;A>vbYQAUD^pjhI(huv?Yf33<=oc#w($4g&`DB`(-KfcAH}5zqzwXv zevAgA;rq)>KtjGom3{&r9|u|tDd4qikaODEp<#LX-(VY13eUY||CPZM%^sTEr>YZ1 zA0~WpAb-Y4SZMzgB at HgG#Ai~tZ>9B}rkoCW0!0F!7;v8>)U}H8#3HJBXr*pH)pBr1t#^lL&<#Q&v zE_q&4xd?75`ENn;F at GdZn9iocxx;V^5Al9<)QCs9CCv{*3<~#_w+|>*$%fdK`D?GL at wcSB5(^@Xy%_p0D at DP>fpiP zLdbdgEJhF at YdrP>#;Dxz$u10C&*jwW8U-%N^b at 5tc?$PduyCiO at F4pvjRr$x-<;c& zy#lMR$f7A=1w}sgj|iZNkztqfP`WGYz`IDi%BRh2Z1iq2iI3mh5HNhH1d)llfvuw~ zgC8F at g$WLlIio7MJ0G51MweyJ&LMw)Ogx#R6_p$%M_~rLbP^|DWoe}^GK<}?eLF4} z`Y%@yN)cWldfJ`K&bh4{Ho$kdk~Fiew|gyMs|w4?O{Z?4`Xp9R)!?wz?boz)?gapM zCJER=if7~j9yYe~%Y8J7SX2Gt>eV*xY4jklGTC&;J4ApxlNmA7*eBFsIr#4L68HPs%$Tnn9!(F?P%-bx~f*M zHn)gp%#&&g5KFa-bv at -+f$6NtO0ZIeONZ_nfs~wUkmUay%8rRy^OH9z2~Z{3m>6IR z#3bOjab~(NG&wbfK$kjQ!QX#>L+(<#A_8R>q&y`olkA1jtjb{DRtT1uP?56xOfiX! z-qVmH#vs;dCaqtyMz#M3UYbO>fL>dXWSI1$aS1;L1o`;hJvyPN$;J_@|A-Srs(UmLxSBwGl at iS6wq|g`zx7Pga8ba at 33SO5XEX1CUd^{YwrB{(a$h#ZWgQH_vl_* zoel<;5T;GU!CSG~s*0$?Z-u?3fIkds@&|=`JfsaEMNP~O88_|}b9hgSP1&kP4fgKc zEP3yuFRVnfk5w>3{ny;NN4Ovf>-mFdAb?KwCX`|vh5kKPgDVagE_Q5=YuU_*gXA?a z{>INZ6 at X^)Y2^3%U+l&j3T>N2 at 1>vJMlOtLYwBdea~AdU<}{vJMT5#``lH{nuNGtSl0=JvSZn3*U&1O)IOWBk zJ}d at 24c%sU{lJW$Y$7LB66%7U}rbA1eHw?x{?9(SG6`Hq{z at TzD6+Wfgezx*3 z$=A`F9a{J9nJ(Fb;1UYs=k!f6imBAN{3GcDtOSk;@e%5Hlk})tdXtCo at cQ**BG~F| z4b>_}BG}W at 37J@0egz+^sUc8)4ztVTJcg=j z>*|=pAV=_rO`9@>PRH7 at 0wW>nEcJ?#`d-qEp;S|gX$w1o7+oTq>YbW1>2 z72jh<ak#~SffHcj;{0a zd7-kgYt`x;r>AdUHdW&Ihw9eo#ZulIdPoIUcy)E6cwxNn-4 at TJXs;&hAws4C3aNV~ zw9`<9+`gztgPq2y0i15Xoj0j#BfQR13?-BT0`c9-zvr{jn?WU{w at H(@tvrKa>0Ysl zES^F0#-=02=g-5kr%(I#@#*P5kr*)&Lo1@>YzNmfscIR2EH at V`M3lBvYS>Qcr3bD@ zxj(jrQytc(lo5BV%k<%K(7}g2V)g^lJZ=FOU$^%@uJB+vJbAdkwF5}@b7su~Ql|CN z$!s?K$qA9nB8=!MF}5dnVMy?>tV~cPFoKHQgh8&Evu6u}){@66G{R-Rn!j$*wPG2^ z#Dv#u{?I+6_EA`$J==HwNHAooqh~K)_UF!e^n(w=!i27MKb`l11Kx;Au-hknaOJ>| zv~PL%`2XUe5I%1n7e~>F`3E^es$4?oGD<9Lm00@<1AAu<#sE~N>~aYjU+!Wwv7EY? z6nl&&1{S#3K at qZs#1?*w1r(jbhgQ(Bu>6$c9cX*3PHexOvoou?>N at W%LtWD zb9ArgzrM2fS$tghOn<1Y at +B$U#Lw_ z7rrH3KD&w48xB(zQQ*%D53l+7F@%K!{ct9F_Tq)%+1JblqIe#QmWx%v?(Tp>R8t`L z`~*b=-8{#b=7fJQsY60nu=LAcgv{dI;3Y_5vTm$_Dy0XZg+nJ9 at SP6tK9g~(?m%HM z#DG#Sa7Rx_^OX{c`Px6HMyTo^f6|bBv^OL_lDu7?D(xu6y^s*hAo} z_+yA90-0QDGAA^&INL`g>`%R}(>eF(Vds)2b2ffu at mJH7UCQ#KhE`!*pp?1nd*YO} z?z>bdd(8W?Iu5*cjaZp<`{vCLcy<%}Yrk{A;p4~$^5X}A!>MRx^>pLdE^$cjBeu%S zEV+Cc6cGyS;-n)qD>NlAFI+udj3$kzhhRz9s|G at b(pfi0SW=|?!djGV6g^;k(B8Kz zlh8J7O%zUrxzK17?xk>*sDWo_>7wLP4id+S+y`=%B=%`+?&uihz77O0ctcclG=M>B z%^|`YnHhEditir{cZeiu1nTH^{tox?Z`u~n4r_Df$y84S7j9`X3KX;0d9=SymMH7{ zOto+*ehH{zVZ?JjcIJ%5 at 4^BI1Prb=gJ3Jb#=)OSqD+gF8en(FvTWo*xd=Owl2m>! z)L{juPrs?G#98Jm;s+ih=p at _*pNu0f;P|~iBfh7>BOG!}1M<&Pf%*F<4BiDD<(zzp z*bOZPdIcT`LQH;*TB*N7a_rR`KrkX7cpV)FzN{7R-!rt%->atFq_`<9)n2*c*sK|n zVlJ&%|7BH`n~Mu>QKrj$(Hn&C0qEwjF`I1`izc1lPD#Zg?wF#UphC03s;dt1E|*;fc%`)WD at ynz&)4g8G9s z^e|_EIq|Wv>e=k!q8Vl!D<0HQ3ZD;a$(7V_)TnaQH}rA6ly zOQ#VFSY}#uD-st1=&6K!*a6^r`Its#PgOmLLW03B;HS at 44{RF2J$yc;Z{H3=b^PSX zIIoUu{Xy}l_ee7HK0OWk0FjA{!~{|nIFZ&a{4J9$$PD1&SZb?!)*eGJp2X)u-(XwU z)jUex1vedd4 at yGzmMxzA$NmbQ7mOiNuRSO9Ji`bSgmdN~h+P1thyYM$6C8xLq1rp; z16)mnngtZRa!w&C*_*$n5#5LxC_Csp$sN$e6bE#{d|`YyD0Ee5zUB~^iNn|h= zp at YCW(;INw{*&AApny6B>xO1sz+#$1QEzF3aZpi3iZz`GZkuhKoypz2tGRfy6S=We z09_Tdic>O~@$0x5`v;ao8hHv|EM+xXR+r?(z@&U>a1_BH>5eqia%~Mji_Et2=~H}h zRq^oyneAkH`f3pG2rVv>61T-%NFFZ_S<*wi^gW7CD4(oN*I5IFo0H2^a1Hc}=wf7h z1P_FI-rC2H-Q>qnaT;r^>A*e0DRcQ5 at i;tbOCLOFp&iLnpyEX)6(9eSLsag*53Vb^ z5u+a5Q8c5W-Tb&ttIs1P8?pBePYz8KYCB9jnH6Jw?sD|Q9F3Y at zYiFoXYJ^<72P;Q zEnce2m!Bao=jMik#-cSLliD?HN{|FkCTvpuC^HDj19EQDq;rZ%2Y5uK_L9I9^F|nT z4U6LO at E*8DQkz6tE?1lBbLU#W9sp0#yzzt{;1-`A*FQQBkU*R%AjpB|sFrE!ILyBE zMri6-><02hEkSl9$Z-Jh>YmvJ;tHN}>UoaS#L1Jfw at lB-z|0uzjxHJbfgtUjv5I4e z=84h;^2jWf at Xj1Pv}Ea3z2ynWBXK8!A0)qab67JnCy<>f=wX;y#~m{+&d9BSVmmW6 zl?}H%0h1bmRdjCHzq+_0oMs!kfC~ZWj$sbJiZ{>3CV1zl%tC4g`fU`i;BU&$;!0OO zZ1_P%!qli{gD0}mEWCw8O;rzPDMG>zhx3&@_5O-Xptu+D&CjRpe{Bl=nJ zEvk0 at 5?^2*u at 2z}vESYP2clBS{xMJ4(5aae#UVh1#$O}=F0ici6KvJLy>E#X4P(IS z_IADb&@2nV!lE#>@cj8HAXyO+cH<^!rbH}V>iBRM$N$~y*L-{`yr?!4F at 7rBGjS^P z(&L*qj~qLOkqj%9g*BMt$7kJv+y<;UTOJzg`3`|ddG=2BPg_0(gg}f+rr_6`7wAS5BZ&X0)j<_cQWX=_W!kn9JcrV0D= z4E8b%ID(o08PTwjDN~$GcDJ?bWmDrpJ&jhJ1|c!gwBu$k&N?kYyNwmi->}dSqI~0J z?lw`3?N+q25I6$_Kvq30&eNgnr+yzcr+y_r(R0ATRI>E#m*AP;PRMH3yH%mj*pO;w?O93*ZiM0rK2 zCMRcWN{Y!?gQ*n;^t2fnf at 2ra7L5Dbor17saCOkTL44?B06dy-cJKtfGVxvOp< zu<0$Blk^tag`Jc9x3QalQm%lmaV3Dxnew60mpO3c(T8wAS$%4Fcqd9wN at A!~wZ1Wh ztLB_(sL`-tC3MX^P|z3}5V{9QWW7~pf3(Myhj~3wnf80rjIP{XlT&nga{V_KE*O=) z=XaX7nP6cwG9;v*r)LK^hP``vo<{eF45BTs%I~0O2ekjI}O= zqcl%(u02Hv6Pysf`mkU}Y-Bl341Ag>m$Ipohy%KWR1XxM$ShbIeTzTV->*nF?bgGG z0lP*JNzevSgHTBU2JRMI$m~A#Gu-S*kwL`86bCyr#F3_^nCe04Hg+iC=_AQWP@&Tp zio at Odi_x~NmyhCL&l~mHZ8u}3)HaX z(PWlr^M=gG1{RYV=sDAJht(2-mD5!p=D~A$FM(@_pTlHr2_tLKI!R(Nz*?ReXlmi> znXJb_R+1tgTyNu`Uu zX1N;;7C|sIu#}{NZc;B~=&)hclqKY%QWH#YGEsc28T&l4Weg=4w=baG3+^Ky3 zf2LPB16$Mtr~3NkyYs|HX|3M at tq{$K2 at N@(HmlDU&ZFSQPZ=O$LU8cI$BzSdji9a+ z?==cRi7HHy^Sin3JaJ+oy+CYSTpcuLem#R^AxZ5h(L4 z+3gpg^aLj1WRFV*vL=TGVGCP4*gB7^iA79`0-LRslnraXsFq(WDPcGtWRb??2Q72E z_ at 4dyV^6p7Ua9HxuhiCI_oS35I%_HRmP0vlF}y!@ud?YJ-vX(|ikIpSgZMhhHe;hbswB1O&mET`WNVKj$>A~E*OLL)ak($bNz zLRh1W!dkL}ompzYA85f=@TW%Y9XD*~Q209b>O$VrZBQ=~M>=k1y4<4GZ}I|dUs0u) z_(m7OP$X}XE66t%{fxw!{8$sC$192>4<_+?4ck`INvYma?imgbojZ3pnT}J}*+BNh zaM~#3W~2fMIxe20u*B)nBT8*7+c{`)HWifZv;nAN*lF3dtFx;s8Kqb$14L!noby(; zuIUw65ls1Lj%&ZNN3n7X>%p1c1iBO%L?AQU{oYDBh7!WW4-g#{11uEIM81)`k>~sp zls2WF=KKA!q^@8oP}PWO({h-~IdI at DL?+FY&1=tBGNNNCJS%DfzR9Ld=T`n4hr^7eH0gIB zd{uP+gw2FxGNP;@9Z$G1V at ym<)hWxUiFvr0@>1+2bTeuIok+QK3fb9wG=uu1JStWG zC)#6D9A3*bMoh59Xt@!!m=Uu4!l&h_W#2lNec{=ELxxoAy?HS6*Qw+pk%iXOti6v} zEZa1h;MJSjg7X5fitI&RfXN^Q3I0ZNf|>jITZCFQ28Ncorrm{VrV5G=7OMcO-e zSbDdIa0Tmd>LhQa8Ow4Iyw~wglw at hpKC~;%rS$!$3}@;g8c^cuwxt at c7 zBsid*a}%zWHOu~X?$rNl1BDvM7lQ*HkpP3(z!0w{u7COTDRd3Bx&9(im71(0`iH7} z36t at g2Lt+}#)UXFSX6+A5rwqROC}5p=D)OzxPc)mU;q#zX5Q#M&AN4>0T3oSkA|>6 z>lA8LmIHk>&!vv zZ=&&)ynGL*_YhYUE)*Ul{>>XUyng%Ez`rd+2l(Et9RM%>6n~jtx^F0)_zb3z=JIBt z+28|Bv@~IQ1{t1Kd0 at lkDg@G0e$ong5JrsrG<%>*@7|5GZBL*Gt>(6;u0EEOREmKg zb5D9|!P2Ui1J8#30g#8179NWxnaZE_15)T2m8JL}321xi{3m5)CbrLc(?n54>)!J> zs%0{x=nvn%J;C-8NuI4O9(ils+*Ho z3V~8ZBCKAd2nSI>o&~+jEE5(>M~`wlS#ufpykn1z5)%V}L7pL&9Qu*g;~eGtSo#bg z%xhwd7Z0E1%eO1Cs$RVU1eUK@&f#GN787f8=70vo);y-W728aoGpA&fde5lW{FBby zV1-mU>K~p>4~7bDLf6rdG6D&cAGV1Bo~SGIy63dD|2}-U-OoiQcQAQHE)MrbjhO$- z%;7Xok+)ZIj&0xOjak4^JT~pZ!kHmWZEa6;^6ZxQ4(;TAo9+;Gh~XR$51-V_4Zw-i zQ>X_}38BlSRM-EpRW221W(I9UAE39$7uQ^@@xI)-lg-5|ruJmj)W6Iu>s6L(+j&og9BoBri5`h zxAtmn$4xaTvGqGe%$v7i at Gd4F(a0`XxDX~E0R_TALG6oYDis#h8PSNAld1sO0P!3A zA?WU~y%8OwMm(8)3f zFeJ1}980D*u^$K3kJgFWNL^g?;#OaKkKTS4(+gZ0P;UZzRfRf~bnyZ55T%U$>fbta zfPU}B4ytF*7%CGz-$gebtC$W1J at +Sd#x;E?1jfT46{*IkmXW11tV*E?I!hnN?j+{< zs8 at j*VMH;^L(mM6;UF8C(G?TYQKN)Y^zpf=hbO_G1I#Ds$3RlgAo)trdLL~+$*=9B z>hShUAi!E_MAm{8!mzS5&FJ-`^Ew>pex at P@qr<{ zQ?eN#HJJ~8)%pekg0|qovk#IuW~Z6R$P~HuCwL;~PNaEIbPLa1x;}X#v?GJ=CPG2(&`G9 at ZtLLsNJAW%wPJrdOD> z!Or*Td2@$GTtB$DzJ7kLtRkN~H+jHLI>0f0eg at IHU^ZF>^n-rHe@>iM3IFA65JcVi z4`XJ9+^cZOkA|P8DNRYU9zIz*#+rCkf{9nSj%omW^V+7!rAryL at -*1XHxX{z&6_%R z^UvSDjm9?c!5V7rf&%smG<8_XJU!$u&?^q3`SfA;A(1lRNgZHAh zd-#qcL4>OR`Ln`=As*sAf17$fle5ZvCT*ljx{diGoRT&+Ln~<3R`3)-!ynsmW>|`z z6}4e5hFLT9Nu0b?{+*lM6^OsrLr?*+chFapdcUj;inl`=pzn$F!f!+>^h zY33gZ3%Go%hSzXv;XqQGg*mSMKc3D!F6O;`<1Nysky5}It~AR$EC at BMXN&(9yv>zwnbrtkOjxtHs{uIrvJ zoHT>HZ+KV8V!|M?DoR9MSTy^9wCl(I~Jzw~^SgXwg${ zcS1sInM_FpVsaPY1fPwwMTq`MoFfyT%r2Qj>5oqW|A;1C0*qDwC3Idgz zJZBE6M*WI?^3$M_aBD%N$IEvzHC;h71&I_XE(RcyEvDAanT}Q)`!O^MY4qjuXW$E> zFrkJE!9%C=P%aXG)ms^W;hj}R6YVFnk4lPT7?^@N(=WI`bYiNou+gxZx;Ga!1k3K0K0N?ZPE&mJu_4 at g%i!l$k)3bKNLhfo=2>!ftBQsfaNe42&CuhBT7;3jy?B9M+3QU-V+TcKWm0w5*?0K)M0 zHnXQF&vJ~Cx}Ouo)Jt3z%hM-r at ErIlK&RNg4Et5z`TN at vMOjSMj~mL#Zp-pqs>k_% zZ$0|^3Gi~eszbY#UH1)Jx5~5iq?^{pE4Lqi{K&P-x)vr~zSev`xA8z} z^_bhA7S=4h6|rS=%I(tHg~dN=&rAvpx<1$2j^hY&iM7oJf(IZE-5p96)C)1vICQ>` z0e!gu++-jR=@kYU-4~Q^hLOQd<-ZW(2pa at 6!XRuOX!TMfP7zO>1_}o1(mTQ9VSJ at t z0&o`Of)IL(^ zOz_o?9nrB>pr-&0{tb(|?qiAhW!@UD&yWBu- z8w2=Z#|X&qj?n%RMY$H-P?|7M8PdBzU(cH4Wd07I31JkKGA*Q88vm zT&6to80=Wy{Vp&r7Gb(l>O4{5PAaRyCG4eY^u~=+Yi>jYBfR3%VN>WVovhTx#BuRK z)|p3;OSp&m`NDRy{Yp{V=YJoxcV5jZG-n5gyn+H!O5Z*ANY^|C{4#U_V2nI$9h8nC zp)jp~3)WmSsB2t4 zz+yp;anEX4*eJ3kK1&2!>0_%^b7ttVOnwVQ`8neUa|xATS at pkP>u z(w5McG51yN;8*d}H`yP&)qA0&L%DoB`HA5dD|k5)oFIbWMB6HENHXE|LP9pC&fkjD zP2l~5%&Z0JlaGrFVJWFy&Cw4K}Qlh2n(VU{2F34&=}`g z$k&$X+xoAt!FzNwjIn6`$M(vfm<8Kgrcx2aN3!baG at K=axQ2}z3yj%q+k6&(XLAAo z75iiJ_<2k at KtV#T)`11lpyuWI617>??Cd-r`KmixBv#XnfuVDasS`6*2Aeao6X%D8 z(Ntn!DX^PZ*iors?8L;M6?<6!z&f_W#Nw70B_a2R`Df%qmTDO+>&3qjCS@}f`|kgT z_Gs_OWl~mCYOkg8wLo{6HNc+KGYK9vs2uPYIUyM2gtbj1t7ei7)C;ik1mDBuA{v2a zOpH%p4x5DIZ^GE;ya7Z#9(wG^k%lP55#M$1J{CBDE5v|_!JD!#2#LbJ3LXh>8EBDe zh*ts?oB^XKZZ#$215<->t(dYuHlw};5eFDz3kW40wFZXByb;(eaO~g?ZuVY?aEd=) z5!Ud|NfUH*l)IqpR8*8}ywLy51(*S3zhPAKYg11)5s_##e at s^@b)EMGnl zCt7~9P0*_U3P%`em# z%dkM$$EK|~va~ye((o~31jedMBA_Rq1;QwQOL{7C*$*Z^%12I^3rnRHbQ+2{ax>%X zj5mKFDZR0wi<>J%eJ(%kVcth%FqvSVd at VC%7))S^WzIcO)>BMane?L?!urI>&DCt` z(4nj0!9gSEfKl4j97o$T9K13v4`vLSP^kBUPlb~)Btotu>CV!^0!Ng&^X6^swb(NH z7~K{sPUdaQgID7qEL6?x%oEOZP#5`f*z at bj?^r9MGn8n&Fo&j57nodbJc70s1Gyj{ zVo=C5{%X$^V`Ch{2mS{1y`ZO`Fp13=k7?tfJ$w37Egy8sg6k#m*#WoSm#H+)=o zt3$$GU0zNPGc_J4CwTmLk`+ej;wuLL0CIC{I1P}yx%+&XHqP{F~s$*^_mLE?VBc!l0t;POJ1LIK*&h^R!`{e^MT`rL+aVFZ<>ez`tgG0)WHnAsFo9YAQup#D9SU_FoA8DW8M1NfR-V4Wpjrl&BnMs at inP>B)LR#- z^z<79^`(fvpADW%s|~aX96+9?3m}+L_)uWYnLXPt^c6S+usxs|iZ>v5pin$6PRa$R zr++a&X>6R(17#S;o63 at EOKaI+oROE9@^IfUj;_znQ!8wH!s^Axfg4(1mlAqYSiCE8 zzj6I~)8 at _L7c#G~vA2f>#C6t{dqvkEG52Bl54L~KLLw`RBkBp_aJRF-iZCu{ZK$?D z at w46r8!Y3 at E?sJD6aW`z%9K(tYF$e<_tM;=RafUCz@(dKG)B#5q-fIEULtXEy7Mg9 zy~h1zE&)H!cMotRl?MTV+#or&kZN!K{F8u{%zQ3p5xY4C6mPIzWLqE-d4kUn6zJ3` zd|@$ZM;M|wcX1(tFl$`Ljh{c?Ph;_Q at Yt7(n*anbnC;3v<}mg-WpKZltgfONJ8uq= zWbxmcGbe at xuyA*neC?f%n>$u86CJ#Pv4RtC@#~#mX;%OBlAk|V+OZouRMSO4#|h+= z#M7tn at i8Sq$_M6$sQ7S3MmB0F%M%iHb>W2LG4;{>P_VdOF?F)Ji~oN|fX%NDLGGA> z2l6AxkLcHdp2;Fk?U-J3F7cBDcHic`&>b{>BPVPEUT*#RB~s0y$nbwax4;EONsp$* zVf%j|2z9tYcJ%L+Fq^T0xp%J*R+?3UhBoI*}pz zgM;6F_+X;yMONii?$w(Zd(*<3 at 8*Nn4IhMa#7)a=|C!9oQHwc$F!<{T`k at Vhc6d9w^Xm=ggsmNjlr6E^ ztY(gK5zBPhgM>?#K(T;f?4cn?+Oy~5yAReK7`*sO7$i^OneN z`LBeBJ!MOs{D!)Bpv;AGLY=oQPsvJ2+9Q5ltuyTldOTrc=c!X8sh9%;vzVRWAL6>6 zGH%)VcF~wG9L>owa-0v^tXzmN4u+xJYQWg4H;9;Af%i|^U$j>Tg2 at I>p$O%^aS;T!EHJF= zCe~7^V#J8=?;mxlxXyMK!4bQlpng^eeG>7A>qGZIBqXS+wrgCdHsKURZr*#n)z921p4PVLEpJ$3rgABcNZ?}-PVpr)U z@*?4k3_ at O{3gd(DaroqXG(KR-2v8iIb+}69#Ww_E=8-GkG`1JMjPwX(M{x)h?Z!LT z_V{>4@$?a>y>5w$aX4rc=DzM~Kumitm5yJ6XQ<7xv#}wOObpqQ(Pd{&&iZeUmhjLC zO92vLb0M6Ir#TdqsB?%Qv^fk}moL8wq8L&z9HjTQPyKIh>0=5kN(8@&gK=oQ{}}HO z@)C9_&>@3@*ksW_+}x`gW^ab+GH6*(vmK7=*%iVM5qp1zM*}Xe>E&1}rnTS6q zhLZAe+ZL$bD^^fTwptlL#>x1~HvpeTDH&9X?j{fllU#;;mgbPx0U3pPU2Jd}r-xsi ze10rGowe0uoqUh}I zK4JMIU_1nT>3{!S{Cg!cv1#IzDc}H9({NeYGJ(z;5RlJGMXyj3KJe8s?qu##`wfG> zr%wg5;q1L~UM(O19y`Pw=wJa(7p}~iH0eZG>7aEIw89KKk_%q(Hrc|6AR*cRB?h^# z at 5wuejhneG29wuVgahMIawoR}wPz-PL^P(VLL-+UI0ei?ikUsAp1}|E#-GVBkT2T5 z7{}vePlAU~-0Xb*(axBw?Xtla)E7Sw0Nv`*r4U=T2u zZb`)a6e5Ce*C>=n01*j(S8;sX`8TU{DPLD# z5E_xEPg#M-K*At5&!@gdFZ8=Wr!7|pRPb*@+2b;`nBWK?18Nwgk4rh at B7tf!b0)j~ z$kK4hMIYtZM|SQE)DX60iS0?8u}^Djabg73qvoNsi(zOwH4%;svm^)r3_H=1@{PJx z#R>!Y&0e^T;G1E5^ILe2CG35nCC at st0DMd(${Pj#at(O*`E&e8zLP4L2-AXBj~0nu z- at -EvDjd}!bp^NvWMEoSP6vk>vK}I}WfFhKCiCvs4|eqUQg50txiK+QX|Solx3*;nxPQ(uP8+V1#^=f`_eX zA`9a+O5KlHbP&Ja0n{YPziL)OV{^o2)w5 at p0CS-`0~2RY$vPh}Xi^z9np#S|S|hM< zL?(Uvh&J&G1x}7=QwdW>mMBrPgGM1VeeVx at QRzh+$>c$=)ob#&BKA2}mk|A|@|esR zC%E_OWsCPsLAR<{VVN zZcAV!z+xoBWEN6ZEbX_WYqxHno}FGTmuc6guU*@~W(@~Fd)^L64LA|ORZ6`?D8Ar1 zk2kFAK4#oF1MlWaU$LvWw71Mh+-w0&D%A+S7iaW{Q`Fxa;D-7asQ9 at Obd0FZ9Ad$O z42FJUj3-=K57WSY6(>buI4dLvII;dJ{%Yu=#f!mp*fW3%f1PPA_n+ZOq!i*ClMtc& zG$)Tee(>PZ1hpd{Cp{pPlUG&cWtV2ws1X}qNrl3Z>S1eHsO*=Ra2wM>Xz#QjTLuZB zhh=IlQv(PNxEf1Ak}$pr``KYUv%^I#S)ZQHimlnKQ{d|L?D?Ltj$FpDhzYAsm%-0m(^NhM8#tC; z!5^p3;WTO%m9b&K&#G6aPG)EHf~Q49#=u~SjYbeZ0qwF}#;;6bAX?I)()p$b>=YWH z{+vwOe|?FD^>{RGvWvWQ!D at 7QKiG{Z!cToKh at M^+r8nxa5pz>uA)o$rTJ%H6x}Y&ZN3yZoY- zAjc at Bv3JaG6;h8tm|&Fx*3)Zx#+n2NE&z#H_Kl!g;TTH0+!ynGd3%Xi at W02gOYRI+jg zXgbLCdrVLv|6FuBY!6HT-Zle6&}ka!_unPc7EsO7oAZIWb37gTXUGct|5 at G_2`oes zUNV0tc%-vU7QZ`Bfak!|5EAVCVi3pUezE-bifp znWs+Grvf!*#i{4`*4Pn;$Zt(!;rB~;Df-;0u&cOKy7Epi3NX=HAi at 6pgOak<&?a8w~tC+Zd4{J1oN$|3>-Z8 at S#I> zpI;dsXx-${3+ggjPoqMHU}WXEL~%pfx{hA6xa+{%x_9r;@6E-JkS59-Z5x_O-B!C6 zEl6#63~I0FZCKMcyvir4bDeBQ$k=m7kD|M#JRzaU?g+IAO+MS5N)d5V*Fgvn)HdwJ z?g)$jew6I)X3TjY#urFy2iLy=(WDy#qb8#A{{}r5F>NMy@(mb_gFh4O zL<4Gs*^-?%8>t>K7hOn2R($cI6U7 at JGUFVUR)Q6kt7{;Hh~@plR4UdQ_QbvP%M$4Y ztjG)l9GUxLNR2?I>LwEf5YmihqBF0l`}sHR>`(9CvppQEe2_f;n at lnm5AKf^%=^go zw19!mU+K6&BxF~(rg1;_?B9Rw*)tnncKh~p7IP at WSaQHMB=Dl95ZrT<4g8%O>iZ!U zBxZ6!;Ab1ev0n?w8gPRfNExd%Yb=gxo8-j6z>z0wtC*})GS5bEP=*RBzyHf`Dj*h0|Pt%QOt zb(qj1iZB64&-jT+66BH#XvMFFp2^8!d_l!I=1h1)V-4jp-Xr|B89|~dDQN^3H)4C8 z4s;#r0cn!!Zk!-7?B&rMnFN1WVgUou$-D(twqiqw34}^G&MtmfV(rb!0*~i)Rdg%( zRi$fHy?CubH*wU(3`3e#P6v)TMknP|zPxK*oogp))*><=zM}B+$+`GPQ_#GB%Ex1o z=ft&Q1alZ!LDS;2aDPELRk40K=%d*mF&?85+(EO4DmR!J8*jw)7DGX$Qf9pz8hoU{ zs&eFf0`VZ+4J1Q%O^>317Wd_mHIi9!I2cP2fcV36q~=xGgLA>9Cl3q>b{FF1SrHSx+~jwZ{$y0G&gJ1MDvtd$vC1GohP z28clMg6|aZ@}e-INB{J8TYQuIEBe$nvgrln&&SJdgg}5fG>4;c!-hbkPUb1Dj>ka` z*`+{Pr`GB3jCSAP?dAp*n2P#e at D|Pm9cUnLSA4_^M2wFCD~nG>yeW$ld_(w1YX{c; zv!#i&7h#N%9DC_;yWk-#M#li>gYV2QPb|meN!Y#zGk~uLR*4k*BNpQ~FDMv)Cj1 at Y zg$D+pL#9MUh#q?q-8rN;Py}L$tYOtD6B^vUyN2Kx2kg?|U^=r1fO7&0zdff^x+JzJ z6*U3kJ_v#cSJ`L)vq-5_(@9vFsGiWd;-A(DFI4!?mtxuI2aAO}O8kOrkv(Z6jtl$t zr9gWdn~%i*$`uz+&vk1b#Z9h2yP&p4Y!8!)r>m=l!2?nL9aEW2y?&dlsp-yLd^n$i ze~Lz~oH()Q*c2d}a$0Pi8eK>$ek#6}GiQz&GK6p8m#MJp9c8ovv~V9zmH~%28`>0F zXW~RdpCX<__IHr_#1m5}13mJstgRm+no4CSnF$3DE8M<*q!#9wPxa`5(T6ay{`!?% zC7mtup9sqtzLk#;3*0)YM{D)id35yjX<;n^0)YGye!NvoJ2B5lo|-sGO`XI)Ub&LY zp)rUPyG{kqx?T^@c at KhJM&H%jsL&wwsxONc$5;(6c~(CH+U(otibht-?X2N`- zrCsxC#j<5gnKY~V at 3{w7OOM3pJjFlu*qT6RQrU$|q)x60WGu$* zXBLt2Xlqfr3hsA#tU0^!a>oT$YuS6%mgFa>Iz=UGZ?p4}UxS*4M2BXA4vUmV+YE}9 zZH6oLn}eJXaK_l`$WDP!OG0fuT?rMpd{rH?W#zWVXBRJkZvJ5-4h!Hh;N_HQB%HZd3 zu#^X|0*H|%ygf$Nuux(vsFJ2Cl~OCK$ojfk$Z1}00rKgf=t4l9<3+sZJRf7_YeosQ z*?chm;UlFlW;CLLZZ?$!0Rj)O7(@!9G#?u;7PgdOzJs9<{l|Ge6r;jiiSKOjQoYSP z>yQ1YkExDrfLBP*3MXaf#`hqhvf%g*^LWlImmOjxQHfde2=f_9}8O z-aK>HOsZ2fC{0+>+VL9hP)O7s_tV^5c{S9}_#Ia;J)|cQKQ6C|Eh^f_RPZ}d&~#&~ zupwPpRSZyn>aU?jChxnf{{fF+JobsxO>*@zBAWhMnYo-EZQ0sF#K|MkKbV^nDoD{u zXG&?&6ut}!`NM!4^HCfzhyX}b>7iMIbzR1s?CGONQ&{M6>lUT_fL%inx$0LoV5rI$ z5m%8mU>-VY60{b$O)J-}6BN|!?&YXhFGpU97ge&qBU%I8g&M{A$Ze_Sik?1IK5w`m zlC9_c!SuKHP+{`q($YwouYqRqRRXE}5Dr4m+XZ;wKV)X+K at pmNn4*lUsjkNvOY$im zoiRWkrAg)j_E24U`g9}1iMTwgmMux%bkY~%BjLhwI|JIVxU`Fx7q%3payfLHGZ<|1 zcLS4|GyrizjN+xZDR14p37o;`f at ZDH1GfXmJ-c){#(Z;BfBB2O2ME6C&lp}50 zwCKo0L;q9UWVr~oUgg)XjT$#*GhOo1rDsqU at X>e#d?kPQ2U-E{DlIC7ClnHljj=`a zHNgHdHs}cy0|GR7Nrp$0LrpD=6E02Q6EJk5f2ZW*Z}J?;-9Y-!nTNsco8G}+OkG02 z(tcx9cNi-xYcHE~;LeoK1Z%EOwhQzpzKCfS87=D?Y`wNlPLN9&X0s5_ at W5$G8n93* z3yLyb7^aWRfu5gR(z0SR(VbXB`=gD8qz{#pd6%a73koujWe$!(T*>R#5DC~97`uBT zSKCluU;Y{yVizhwT?Q|iSDn$9iIpfeCOq7OEmVw^K3u257FBZ9RB0c{n4@&-eoenR7!sm((7(j1}yVdvNQJx4#0^eX)q##-bsbQD7}D zdp#or?miXq8bk=KD4oQm&pH#}JBrj&XrhMgbQU_dUUqaPGFymGg{(;qy z=)ePpS9}z*0DNGJpUoR at -@7+p)F?v2*W#FZQpo5rV;D!i{k^QQ at RZQeU@ytYgg at A! zus>nwzWeyv`F7$7Adu at 7H~?KVMHRX|36k8Ecfr+(d_VH zvD2tnjZx!STD2?&4BcWLm?t3;qWiHNCCE*N8&;u2USjUvH~ABeP{;sta7D73;c*@T z1BDa%A+{ni7m(>c-{EN7Wi^kfJ1{@SG8JcjTGtC78Y-qz27=vDe+q?|nOUEg4P65% zS{QvWRRO%ifcpO3yT7)L2!QSH=!j?Uaa=86+3{6CB7nAfna6OTKXCvIn&W#59HB5vR=rr%t_Bc6ZoMCEp8qiYv2$bw!2Y|hw#c_X`8<$w39d0+ at +^rozg z&H++7M5FhR?A`9VZ3twF8bje4yG_p<;ObQqXvoS(Iq3UW|Iu>$yqrSWz zFm>u)YPR?J-Q3&|OQAfRoZ`WQ;UV#;GDbp70v>=Dkk|7Al`T)yRf3uEB8~;^=9WQB z_M>?2Yr^DR+_E!TnDiqvftifa1KZ*)ff;e_sU5)e1LwSb-D>uhv5NZoPVxP*(!77C<;XuU;7C at +A01RqF zP?LG84J(m~5L{UI z+0}vl2OpSXqFne6ubqA8RAn1tyfP5KGq4D7a&OZH2g(MIPeW%_nsGUB2%-x|w8oxp zT}HNwa4;lH>g at LLhB^hoRlyughRyq~z?yJ at GYYycs- z@%3950kfOg_Rxi(Y?s1C-AEu8NH2oP zig%Hj*KXM&EGt{QmMuiUk_I<2C_6}U%tws${h+SGyF=103Fg;!`)&9yQA=qVs5JmE z4E$`|s&D|OBFS6J;!5}imSk)2(n03y2DY%U*onDkY9n4fwH4cMz<4OWS-uwFRQN6& z!hqAN_9G8*HLige6FqtM54#d+I4C1oNQ-vv%a^68ssHej2_qUiFCU-5yM_cih{}54 zwns4v^z#9c93x`7h)$iLDTDwR08x-jgcYNJUobbDHr1=MuaIETj5QpE6y}(32p$Yh zxhOzZ7?HrL;k!WRXu%_gwiengwYUGCd;5m{OXZV&cHH at BKEp@+Er2s%@#AO*n5)-~ zO(qO~00;SRK$HKX1WUh!q^DvU%|Bfx7(pW2hS^Azl9D%x)#Q5*AGWu!s62HUy&%tt zFJl{?fpbU3+6ZANSTa^Y$)_SB?BHnZHxD|ZiF^f;<(g4 at OD zOiDTT9-=vOX3i8i4ct0#Yn5D(Ih;PtbOu})4wLSbT~&KNGRQH5JMJino{5^3Nn%7e zrf1LPFcd=#A9vI`Sr+{I` zk`u{$6((>ycEs_la3`%Z-1t+Mr{}(b1wbbu-*C=?vr!}g$;N->gOMYg%yDRdCwOZ@ zERYrU&0v$JR$=LXVBDzK at 7k)BUMU~Hd#u0XSagm7Dgs(!sot6-&I|P^ri&z3s4%Tj zOrZ?Fu?ho6$r*AyM{U#Q&G58Z8z+GOnJ at 2$&nnOc>md#tKFkbT))_LF at w2<~k~RetCCybN$hj^}sBYRU{YolpKp1MS5cY zD9~5LaykxJFywCx{I+m|CXDBAVIxMUQ#5IAZH+NE`~iBNU?~=;W~A`d0Zxd&B1fT- zMF=iUYg$>|vT&@)>M12#-y$H;4&t-W(u)o+QpJxey|Y ze({t)|6C3bV4m{q$i)6wEwX)P>{t*|*2g+aG$=`Fk0nz|z*SI(v(Z5#XK)WyuH}{U zoFr-AL?^?HK_FwKBj&@J`!olY)KH{j&3rb=7Qx!J?KxkqU;!#7Fs9SkO!1A_L)XiQ z-uz-e>Lx-9JX(HUWK)pfvoZB{=KFPOMn0l)r2SL6j at Aq#);*wQBWkcMIV2=cBG!yM z2tx{>@BRD5$VRzv`R^k!^gj`Vf&;@hJ1Z;Jma;BsAr3!)cSJ540EkD7E+NFI?=~O~ zEeM?^s^8`=YTuZq)wIJZX#>$)7JnuZyU4IeH<^s_wRkd;B^hb~Y`XR8b at t4eYrjU6 zXs}+#Ui1|)5a(pUn83wFeROF}oE|1I)ScHT>!B_s_I5d5xbrP53(`ZV;0IX+j5*J* zXgQZz715e at 5~M%tybMn+!UHe0$toMPN&^NDPC8(l;P>(I5!jq%!tiPGf`|wKmr&23 zB~(R3u+B~Gm<DGc1zb(1%v+=E9 zY)D8ZA=NI8S^KU#Q-uNg at PoXe6n{vViJon=zc{Qk at Y@x8Asy{i4<9--zeFWUJdKkI z(raKxS~KE1JdWV&ama&cR3235-0{(cafSCGjde?fC-oUvgG577Jz5a6!Ipx|1-)?l_ at Gz$UDy(jS{k0KgRExwkRiaM>^5q& z#)ATpp6-|ZdYj5YvbuB~Ja1%51PLlHT2V?OG5|7fi(Xs3=HkC+_L85 at tuR&JG}~O4A?nlaBRQNzLs>+BLEvz! zCBHN at GNQlXIx3@>o^2esiwFa#*QimWKDOSv;Q$m4O-xrl2OW}6CU3G|;v*wN8YCu+ zJP$YwMMaCLWmtEepRdQv8q4YxRONpOI8t9cXwrD#}0%4)B=+cD(eJJpkw^KziQ7#Go zAM+*DFSLs1V(M>Amtd?ajM8Y}Stv;G!!3PMoNW9X_W2O>Jv}YQ=}|*NG~%G~YAF+V=J2S&I6#tUHwdmA zsH~?UK?CweP%EVdI0>G-7%dhRA=u;pT># zlVLZ8HeL(AIE5Y#>f!cGoZTq)iT&l^$Mph*#B$ldU4AVGLdPJ1QHugqlK6OQ!6ygs zm?av~qIR%t3;$jc6{YeT1Cf8hf^N;5kEHfSxx}0seN3vM;h%rHZaxOx9)73WCy-!h zsPF`37Ku^|3rGPw??7OiPEKGGIc^I6!p`5`ojRE%_yL?EkL|NPV#W;Iy0O)piz*C{ zofLnzSmV+;%FmC63n{>R23a6^RQ?;cZpHF~$twC!3KS}m4jpE}xcTjOz3p3l7Sb>0 z)ufw-ZlS7J$CZMg#`mPKHjr z=<~}4D+6d^r*ONdrID!0 at b9o=N%r~k<8eE|dW0R*hfMb_hhTv|e$I)*l zPZyj6xD*%(5Kj~QIKKdppaJW~e+0}SOfzA at I)FDspUY*_g&XASnI_SX*xA}niU>t< zfQuhBBw>o5Sug+h_M~#QFbu*gGiY12l5l% z6>S=^S7`#p at 4&u&KdY)ZZjxmQKlhmEU<*;I0{uhrkRGMb;%rl`oS*k*Am0X5Cd0M4 zqY=o)Ocr7=$XL3x$D+!;Xv-*cHFCAHNHIqI5)-V6GiEHVshYd~A`ej*u0!*E at uCiM z23a at xXVWVpg0oDo#(s^c>J+TcQOz_))O=<$Q~1r9ec?QS38fHx$Jz1IsYV~LjXcZs zkH6otXGUs76eD_L^16KKQfNi^nO6P$+GhRdcj3Rt27F5BC$wbq_yjy|Mx=8m(W-&{ z;m`yScBGwH)OUDL5bHJQ3=C3cIIf&Z!H4u2gS$=JxVk)M at GN@gfO%N4V+9Hno~I}9 z+_35G?B=GOa0K$$;K7}+j#a7BKPOq5IxpZ2OqzsrmrE{ch$B^}Zp}?jQl;$i0`dGAnaU7qjLdh_Oe+qX*ui- z2FwBpQYvL%Fs>a;t at Ptfat>?=oZP1mYeY?r6Nu~FA=*_lsO`g>g+I}2BrwCU6k^*8 zw#xDiG~jwqtqtPt+`Grvgmz5%9j!K|n9R+fH$iD&bjfAGO_;5gLd`wXQBhBe#)Z=8 zkxKgQxTCu!o at paQ8_Azm22Z$yaUn5yZKxk}@>q`oGMzPz+NSu$3%heMkc+o%qmky! zL*CiFXAh!M#t`#Azr2Ke2`rbjVhoL{80<-Jp`Qe at 25{-bF6M+QVmeS zfIu77rCT?wUPzx1%s8b+yw)CD7$dU3C>K*Y*4aQIWKfBtwWlZe&T+maNrkE;y%V~5JA?eZ&8>AM18260KU+ at fc>_Ya-gLF zp8@$`NUgpK$rNoU*n?oF%fy1`NY?JD{LV7duqoTX8^f6emUJM at vm5D6FXfxixYK?Vz>s ziHV41X0p~nIlZtc_XOL{#;%bM=YnK|6%oQb-~*Ketux+8__MY?gD96DntVD>b(2lJ zxHlohe)-b;cdn$$L+35%!%0 at Oh|~)h04c#~qBvdDR$1+v_HbZm$lNQVx}kDD zI5O{oIT at i&;}5$$9XS&cBwB7?+n+>EUtbM7@*0)DrgUOm*xp}~f at CIrx%E__e6je5 zDB?A*1yk|m{Rpol3qQYq7%wstPbI3oRl4?a~-(!M`<^z2|AC@|Jo4{``Rhsc-ZfTzn4X z96UOMnwj=O)OZ4hZtPA0C9K$z*Hcuf=ENNvR!ryd at Ev1;WtS$ z at d%CGK#lJjw5+jfzsPsoVQ7Ze8dt~P at h@1wCtWDONndDJ4j)eQ%hbM_3*M_8i+kn; z##$bfK7!#!us8dPsw485i=pi$6&wrNwE*(d1* z_S#8z=*~b`O3Hk~%L>Ud at X|!an5Zy$KpzIVCu+$O=#k1sus)Ws*orJGdqsZ+=Z1pe zFBgj|PMD{##kawHU;1V~Cs&b}#vm|*C8mWae_y|Ue}Eezd4&FyUqx7c(_>J`Kj`tP zaB65}ffK>()<0O5ESK@?g6cA9<(u8w<^zKS>_$N5`BhXyaNDq6ZXgOU>VcQ06Um<% z(8J??e*Pwy5wv00Xqf7Xm)Ed7PvmN ziL#QCCQP6Bynp}wgN at M1*YvC{vv=!4P?G$t`6*1-K#TYQsIB=}bk2Oll0|VHg~^2= z{eC`$}-m}~XdTOAHMu%~QD|!EZ^sr(2UGF0UBbf1Scsx8Lc|z0X%^6t0 zST=n<2Ui9PQAT8}zB(>r(-&q{O-}v|%!^+Jiw3{Nm4Fq=%78k-M+8mEAu%8gk`nE% zYD^FX>f5||FI72U{+cEWL1);uxbXlL`nBuVr+GZ3H{vH#V8N*3x#F~I_DPTNFPR&} zhn-_H$ahS`At7(tv=~^Nn9VOiy-hx2vB;=V)|dBzpK*quYq0U+(Id995ZrDtqH=W| zqfm&dhX8(<7&Jxs7uBw!|K?tc*ZE~K>3;YA{f;|j)WVO)!)=8JhFH%aZZ2|u)@fW@ ziZr0+Hm=yk=Sb)L1cErYB}D~Y9Er%)671>589n6i!5iHo`-FTl3sg`)09#YB(gaHk zx9{0g3UZTGdz<(1SB&&ED2VpDnMRmSey2e_Vi{QQq+h3A{}r+886t=FNFw4i6w; zI<#($dc-heaCw-WG&`BP1&0XG_`FTx*BH7#B;vyU1RO}c#6iV8UOgRSA}S at bFa5~0 zpgcfnHZ59EJ);YO3=Doi2P6$em}zLOe`U6Esl?MtrSY{#=T--ADbl-+PTAFxekt`I zvmAo`#jhdnuX9m8eY(Bm7Ybk{{7Wh-pugoX0m32AImK&W~nV- at +&b|1CFBS1*uEd zBUM2g-f>+M4abDb4b}!AF zhxqXI9B-NHd#e&2~X at _IG6JEsV$JMjFKZHD=5QM4o}Y_}CSr zeHXQyxd;XaFq%k1{oRvA*?O$he;?_NE(<=G^SX_R0(^` zI6fRd=(Ep&2B4m;UQLtArj5ARSoOyyEn1}Hmk4C%>-w{zycXSk7jB&J^1}zHd38U| z*K4lk15aq=2*x#L<}(lT4!8v at FZS^Cuy=ax~N;mOMlG+{C_(cTtQZP%S7%5=Xc?6OQnLgPd0r(Ro!j zOH>37<=rqUOJWd_NPp%>Mg*XD0vjY%Li`}OkiY)(gzwUYjYn+eI!7_e`fr?E`NN}p z9phmHaLk`+Ek)6+ZzI5u#&3z5|;Elueojf?#-JM zIN#mBkABaYEN8Htc|*AYFy~VQnJNBTePXueDfzY0FS2*56PmZHp+pP_d`+Y4MRUYX znH)ElTG~N2bRIoAk5)7(pG4oqZ95T;6U*D-o0!%UuGxVx^a0R>u^U8Pc+^LlXARGs-VEEX>73ieFh<|`-h!=z=$Sh^5oqN z{TR(CJc%wqnauP_bvc>e=njEocoLM?e0<5`POpCIGBXP^SyleEyF879J)AWZgtdyI6trp29Qi%M%{CDxP%@> zRBMqXsxR$?<8650l}E8AN;s%HS5X==&}149yu>)Gj<$;1ghjw?nmHIsNd1be%O#@Y zS`cYaR}2}jZxJ-ds5KbMuMy?Ae1K4ao{ef~Z<_Y+0AdZkj_|epyW|~gW2i{QEfLC2PI6r at d5QPAD3U4(tH=j3uel&C3s7ILh z6Z}fry3&;VW&~dfb*FvD##R at Zcl$O3tiPrXh0Dntm8K=XqD|}8>^`zA&&u93{I9<# z*>0gEz_069VW>AmYJOzN`vhwo8G(luY;nv*-%l)ks zKz3=YRcf%y#rq*IQPd#<6^Vs0eh#;2&74=aXxfzfeTsiY89=SXys|11ep%QLZFYEv zwr!h$A7fcQeLASq_b*@k>Pq8aJ-;a}h3Ey<0&s{#Qdki^a|^(jszhfpo{>e zegXVuVuHw3yr%6`Ge#7Y{M>%5Tj*y&7Ba?}RylKXyIWV)@*1}e+$ES|tzYkEWs;Fg zZ_gg87F$n^G4*E at fb%f`w$_(iK%nM5$UH|e5A*hhEMX?z#)Oh9j}+2(w+LDR7Hed* z#DZ6NlmH1SQvx#;IUYu{%`55MTr7;2e!|+I at Bwyx{EB-NE{p<*Rr2 at xmtmOBVZNN= zFX#&pu~4g;ry!t(0)^`KFvk0|h`_|FR|}lj<^8IwKDXLD4$Ka137nGLhA=NdV2L>L zwJY*V5VeN1Z1~q_>cWglEPI)gA8Py-Wv at yf8;Rix1?J&RS6_{vT1W_<=3%`d5QK}Z zt at LTUQs{dWyR^aj=6EQ40vMnWQI-i>3p&g^C1A%<9MJGQ&2a(bV+&LElMl3$g~KqV z0VATg=H24)jiQUVX_?v;V+I!&y1^@7dF7N^Je-%Gs|cV*^)T4)z#Qk44;X;K>4t&3 zFjf#yhkIiO4eE$LOYT^z6v}iUF6=6wKD8d^jVJuclMjoEM#HljSVLG(e0>`=33MEE zWu{4S4Rm0Yz5`L{LZ?G at p0RHqgpt&OSCDKMQkkdk at atH{?S(Z&d8kVy5mM`c7(`Pl z?lh`;~$!wjXS9L+$FMaqqru^J36`kgx~nPb`6&4!7C z+tCnx^OR6{mf!$1uw2_5OS));CC|>s6yLnr*kT?HI4v5iRvu*fPjR#F=p;!>$Sdh_ zIN6=XA1Q*o#>Fe?%4j5!}|OT9H})T*nY^y!!C2<6VJf0ENU+ at OIuqCBN&vm2oX zOmlBO3Kzu}^>Z>LjG4uZ43R at H6lV<*J&^YgE-YhI{579#=k*8dxWnCdXw!z_6c&?I zJ#eA;2PV|Z{T(47(JG|b_Us2x!xU=qVolMt5*51|_%6)OFcBm>hW=y<*vH9Sydu^w zllHZ4v4Mq`6h7gE&7f!qq-dL-o|s``&}YDahId#Lgz?UQY7BRGKPPjb9){11_|!%M zi3B%#793c))iP8d(2|P)!zLUPOtM&jMJfc{cI%@Xq+w1%UWWDR%C0(NirUO*6p#%i z8tropQx&)seD*%4k_YV(SRnn1C at 2`{3zRb%pU|>mF1t(_HB`)b?y|4i)2#ZLJ5*9DuVfg#_MlI55HJo&pV*rrsbp>?r zZLoX)e&cp-jEMwF;dDQLe?%2Vrb#p-iPgT?(b4VD*zNcin1%1~2g)Hq$8 at d$&qA=Li|BwCE zE2=6R|3a4cq6HG*q;pa5zq@#)sOeh+hYsIm)Le_Lr zaKTOSXSV8_auit;TmqEDR9B9f)RAt>F#>Q6&r=)jIeeJ(dc8!&z{Qz)4~74$Vool# zZn<4fR#qTd;P>%YZ`^QN8Nl_2NkA&DxClERM1uUt-K5LbhM2JWsSQ5ai?Ens-n(xf z-Dnwl#aunnQf%93aJdO=dLXf&<0LF|ZIr=Z>S`DF*kXF{EKm|=rPNikjT2eM;x$*& zZW^dWR64x?ua&3F33&F?EU*Gb0>9#4F87K4PiB6n>|wS^e#)>I0Zq}{+f^nL&9efX z(bE%bX at MjiS9)>w at R-(@AX$6Pz8Uz at l&N~hkD_<+t}JPYtx+w8YdBsoHbHDo=lfW} zG3P2{Cn8cf5){^FFoOZ6Q4Och^1&{)0&-_J3S6IpmHXk&H&~Rxrs4$7%+*cqB1mTQl znDj|?s3-KFqyq(5vFNLmnIU(Ka_GY3WBjUoClo~)dQpg~@VT5imE!2k$&;7+Cab5J zISE=sMZ;*?ok#v+#k|NB#C8VhJRD$7QBS*3N=ge(Ea*D!jZ8lXxu70M1Uau%B6KYT z@)cI;8{OR9A4|R%(qY3?uvO95&=d-%=tyFAkM?S zBNXx6U}X~PxS(uP%ij|Bb(^J?`z&1%(yo^T0p*{&c+5~Qwl;koqq0+u>7)4r7=R?p zdaYmoQi}6?Q+vS``h>R_6C3`(y#$ANLCK8mD!IV70B0~P(Sn&*7*CQ9db>SIyP18* zS?p5PdkB~;;Lw{VrEh*~tSRw^vcPsAgbB^3}0VnO!E zjE=brr=2*$--X)3X5Xu!cqo5(dIIJ4f4LYifv7<7Des4(!lYxFg>h?m7QgKjJUVuq z4Lk=0jYGyw^LOmb^q7YJj8YdFiIW9_hz)^>)6yuW_j=`wb9Va-y(G`hi(>rQt}%Nb zA#j*6gNcWOX_8*wk?cz&2BQMSRddtLbMxL9Q=I`p+;HG%Qx^Fa8D`W2>G5wMAKYm~ zVMI|{6HX-`LQv)0zWwRRvHo(ojvT?|207H12&&9Md-6R_oI6L0hA%!PyqSp!IzaSd zwVw;@`HOrlQ{DuJ?(!~F`b2y{KKA9J!3{}5Xncfi at PkJImS(b at vW5W*CxP)@z$k3_ zxXD!1AUiR2Kc_5OWc{MJ!d>)Vu3~^9O at aD$O^sK&+APnm6-Mgo1y6^YGQgCFx zsFY$3=o(84A`-PPjtcmb-o<;(WjoIv!&UMrY*6Y}1_WF-(*S=-G zJ>iIU`h4cFo|`_tecR8;oG3GeBZl=a(zr|oW9N=E=MdbWD~unH0`xffjrtN*EdxRh z5ZRmI0+Ua!3e$~}h^L!ZX^GJ2~pv|yQLbUA#kR6S9dBCIm{2j-STda%b5yQME7Z%n%hlo#2 zZ}WzM1V5CvXWXNF>@s6w z>Pd$*nLq`Up1OtPN?DMNwe_{Gt^5{?+>=29iB+5+&}E(!A5!QYo5c5b3s^t}OQxm; zVQ9L5KncE1jHRFe+5 at rRl0kfv1?M%4^UI_fhCHn49zSpw5Db6*+BdAChFKk9aHxw# zRg~nlwyLpT_Mq16)=p at a;f78~OF^pP)&v{mIrm20Nc~f-8j$>@orSJ-(IVkJWj3Q99MM)3Ni+h3YRs%ZHe at 0_vLL3+gjvRRkZ4g=wXuSjgW(hc5 zVI#uSowrEeK`Od^;|8p8wD`0?o|~3%&G9qCeiny1sHe`(gaK+XXPHdLbf`pyYWdF8 zaIEYqDli;&sn{$oc=G&t?VIb(0kU!Gs;$ea!(Di;7Y=!yR7-$-xXZ)>UsEWJQ&?!N zEm2XlWSDhq-<~)EVS(a-I&qBiRLb+*;fzJGJ-c`JuF_b4$Ta{HY9h$EgbdCYGl!}1 zD1(rv&4;xMKsk6Y3vDuKgA at E%$V=79ad++Niwhu&dcMT)187gB28KNcV??t0s(yVd|*$zv{Ofq!nNj45xgki z)^ma!BdeN#Lr-3ES;gLao@`lazTf&mdsbf!Rc{csNZdaxGwn&H;+nDkfY#!Zk3jAf z#e1<5!1WDB8hun+eo4o1xn935B{)(`xVi8Rq*6Bz5B*0Liap$3KRw7~uVKlnPJXMX z5Vge6Yp_C*PO+M<(>?avHN?KxB0vzR&>T~mUBGkb+u&Cy&H;u>?tJ?A5pVK_6Dm0Y zR4bJ9M%DbK{8J5AEQWw3EVv6!Ck(Jd0-TnCbV%-tCr<>aPq|i{dI=I3Q0l+5H?$Bc z9qT#j;Sj+P0d52`l83LjGyx`{?9D20iWe_TcMdR30 at ULBknN~!c-aj2fsC(r)e}re zjPyBxoI4gG-M)9Pi=*R9#HgS#R4SnRsNM(esXjC|yivh?1 at gN!-Kq`gErdmZg-7L*w_FldlnsWv|?bnF7&Ik(E;D_?}1^RGc zC7S5`Vq^=nYZ7T8Cxiu4 at TPMOcxM>ci0oN`j_)AjQmzB%hPUj$YeRP5g=T3NcV;)fv8O3dZV@@PBPr=<02plx7K_iD at a(*;Lk3(Y!aHuiR7h&zpMj!s~ z=PzFLh5*4(lDuV{a2M`t$Y~BTlV2JMZ4JMMh4Ftx(+mO$8KBr1B6C>`>rhzGL^i`y zn{f`#P;skl-}yTBF1%uE+iF!>mT^+1_aJ$=T1CRsll^UKn(^ZOPR9pLKi z+6DTIn-;w=+m;0R(pSOB;148rF6LgC!ay5~h+<*ueGTHO7}v0^tSl#^6 zd?NjV`AuRyk7{<&$;Q#20dbKu at Im>Hl&Tr}3|bAFJSLA4;I#&N141GzaeW>>a%9*E zSldeh%3euA;CO)~mZX_&T~3Kb`iJ9an#5x4&%eISpkU-S1Y9F!VBCRY9s4BAB=4wv zIq7_6Fb at hzg?M#(I<6W$(4})Kv&14(aT+K!j3_Je9Ay%J_3_`R11XejZMP843=Is} z=J<-1h+t4#TMLpiMr5aKipvAH=SA}ihILl(X7qfeMj9SFK~L9J)WKeLfpaS^dPOP5kU_ at M)f2Qe&};c< z1irR`-(hhGluNYLQkx5%V0UTP%|OPA^+`Yge#!=hhG5-cVRMP^&!3+?e}3D|$v!a0 zbD9f?XD{G5o0S2?OejkX&mm-Kf>+ag(%94LkdH_jVCFcqUz>0QVGxmxLAu&jm at 1|T zsv)L!IIcUH2(a;01?t9jf+PGyb|AO;Yv|B0JiQ|$gZLIWft)(^w_m2Pk$c}h-*tfuDe!Ia`WFHTH*ltB z%S1;E2xu at +9iaN;hjHNOyE&WupM^hwX*qf1c7CMVx{u>ZN^=?_5FKvL+gmX_4{k4^ z80Z%=IvM+{;9y~DwG_d4uY&7iO{$90;`iX&&pn~`DiJ|&Ty<}`;q}y7H zRvB|zs#1Peq9c=K3~rbxoF3^-8UMRCP2u*T(~5OEbM72+Z3IG^fpt^}%4SJ-wIC;? z4pak_Gs@`yqv^~8V%*y|J~OS_R64JB>NIV9b3sR$(B;;_jx+M*B|feoKrK;^Ih)cy081XB at KdT238Vs2@))AV)6(q z@~3{qLKUu978)vYTnu-ZV-S=Y at aLrQSAabQzeYZfs*AMe-F#02zVKzNmcujQOj7eU$({Y10)3}YHyiFl at t8S@R(z#f8E zw~-k*FRduV%MxL%>b$It=!}m21H&tSkSba*ol5 zbQ?PrsyT>0`&LPvHh8h2#y-fI(AuF~6a#ZydE0G1$fItHav(-_9DBYns>XUTt1O<{ zhC5^Y0U-jz8(Tmqqea0$hD40oF#=y6r~p4IDwu&u9dnqFkzRB9gZKouQ_}&?n0Ufj z6;hF1E@pY zNh`2Ty6l$m)rSrdfOt=z9!0{ElQS9XGkJ0Zyi`~hSek3s-oawvN^&t-?J2(|(lhz_ zk9(lM)CZVKs;< zyVKZqq>q}K);4?Z2ZPTS#w*=|TAg1e1-ZvC(h^6og{UI6QF4f0<~|6S_^5;;AVYFd z!KR^|Y0 at a?R_#Tw88S7 at cZ$B@?SU)&4vp3Qv~ZjnL<7pe at ACDo+;(mJzkl(r#2M%~P!OQ(fw81}!+ZZ|ZV#lHQh&X(-QNY|Yg at f( z2(6||QD`8TK7BW5fZqZuNAuQae`;D9G at rsk<_5Hsevwvo1)}WKNlWyF7x4%-P#P;+ z(|{aPIgALFBaIK6~_*4AQ?aG=P%h`m^QNPv`To}Tul zn=sAyt)zX~Jwbep3Y~2?jcD*h{gpkrouD}cQL@*ROEWoUsGJ-xV3m3Ju z#!rkWVK2ooB3m?oNw$bEc@(!TJ0=%IPe=nn#UN1g=(9u!U(%dgBMc1}me>HmlS3(J zvT*=O2KbNz2i}lQ0;m$M at rS?A5RJcN2$3BC7;|_~8saO7+=QVHFzS(X#b0AGX>D%P zhM#nM-unCOr~kz6+xLnLf!GPV$G#Ce62qg>0&Vg7;7c5X at 72}VIH+H&2yUCCUj14r zmy-9>4MhtUnA_r=VT7VWSx!rdX|CFjO%-3oifXhtk24XUc!GJIc9e9C#0m!;eG7<2 z_~@@+C7P#rbr5&?obvddb>L!z zRGGNaF$s%L(T*r#=WQBpd&Itk{Uddt8Cm=B^rObeL=cBE(r`1r&w%F3LExC{uL2%} zv(9gtiQ*wDf?8Kv9QFH0Yn2??T_zbtk3RtMK-b05;tqj>wAirdE+iUo5*}i8f<(6j zSOa9hdp~QHe}3lT#SF=qj`mhlH^gT)3~cLZgvhTedwF&LJ-SIQ%^XfV&yDxqk8Z9o zmXXcn;Ie at fnD}wOqjbelgP^J-N}@cQe95 zTjkk-=fK${dIkcLZMsf{JpNuT0}wvPVF{yOYHa*NPCCV$*29F(lAP)fyQdRw|rK)jlg5JgB3d4^jc{0-i_&y`z? z<0A(;JAq!masns+6||^Oa^%-AZR}jMsc5_h&q#a(0c#Ijr%(7a9Nxr2nTQdP9?;~GDV*FSpNA9t_=)1^c9qC zE`mS}4XXu*=52t^sI-y0mY&T8jf25VZHe9i`({T;*C>+0$ict(_1Cx<2l0;4zl65} zPqL-#T{c-0>?vAbdP}8hY%4p#p6*)n^tDhQ!8j3}lItQ341o0F{BnZh2mdiC5k1_b zQ>+u(P=0Y?q{n$G2#!zO(^`5Lg^om at H+M#PWaBab%Yat>NwJ{^u-pVnbY~C?Gfk1h zMoz{$5UMm>Jj_|9ZplA#vhmLdypW at XELf0m+Kj+u!UQ6xr2rv*u^y`#AwX*Uj<=#S z2*i7erO-#tctu#%Rh69M&6|r at 5d0Sa0A#-O<4~0- at M`r_5Y`}gQdd1MxHH6C)|S{> zw7*TVAE8COcq+vn7(@U$2618dl4LdDG3bc4W+5yQvFYHAY|JV at HvUUS9$Sv`1h| zXxO4xa5yuQc2eS16!0Zx?{F>PxMw at RyncNc?vQB|kj)BJtI&&d&k)LZgVZIpLx{Ga(5qB#$Q!$MoKLg=c+RJp-s|#m4a05dHRGGG z*nCmubRu#2cX*F!RYxgSHZwFN at PsVSe@;F~=~fv1qnO9wta~W8d}_o at 5EJH?{^0&p zrO>}k)ij~6FyCtI*dmOhbrPhWkDx!?;+r at BK6r2$vzYB$9JqL~fg_fj4b)H82NUb{ z9b;?(xD4}T*uCsOM6k^XEwLB=jqc-w&xhH4JIj=$m*wT0Hhv#`7ORTuDkxA3ct4Y(67%Pek|*-X{^J05bNN1XhOTA?1BKRTs7v zVZ=B&++KpBr_G+ja-n)E?fUoLy^HDdMIq2$;{#gx_#-|K6cm9IaFAp<<0~V$Ca-P~ z*1#5p<5Bu>5fwN8p`g_SL+!Jr+`=xtsUqclR#&cgO!t0ydCb*voEZeYfaXkP)Lb!^ zVp8VopVifT0ZRpP$&6W+W;WiJt#n6eb}$!=>Ybbr3XLLi*+G z+ehTD`CQBsFr|d{arH7)q$s;x-Uvx*H2g3+&LB=8`9{c&H+}#9`s=oGO at v+At~+nn z>Ly}8o)C5V(pkWTC2FJmKFX)E?Kmc|p;!Iud$WBCA{^EWrzMY;bjas0U?)Vnj3wv< zFTr8^lu at GyNyHjb?}thjcvTL!q^EqSRqK!vL&B1Y)S>-kEi> zV}}k9(&VkEqG8i_-liyV2J`ANk*o at 4fmrLWqep%BkA?{-U8psACgLUAUAe(*G1DZl z=2O7 at Mx^M9>uaeARUM3e--1bD6!NK7p=SbOJn9xDZ0tYaE2u58B)%CB47b!)Ok-Tx z`{w<6QAf#4K^1fizuIFQ3D3K`atl#Od~&^OIpYAlRw=MPgdo2FQ!aLLF4(yK21 zHkfdR){?&yD*p*xv8YIK9^sRWg9j7bGdOCzo08v($Q(B$^6%WZrZ}{wt+)3}wGQejM zbxlZ3oxh0NLQrj89XAdv z|0*3pL^gCI{1KzN;&8WdcI?oGsHoq&bM-?Ut1fx$hYvQ5$cM40w9C`&2h0i>fIH)} zqWDZcna@{P=;TheZ(hmw^FYJ_M3gigakpPJY~XSDdHO$hZrsST56kc?^`--W<_o|; zh`De9=u_92J`Sr$=W=etF98G4Os4hVoI)rKYKd-rq)mrtn&ylFjqfpGY1U7{mEV5+ zSjP${Zy>Wn^C+L(CeGa?@iMK<&|SombA*9xS)>fNyx?iJ*m at 7iC1pGoE4>rzO^2IP z+Ae6IR5beE5xQvS3FJ1V6Bt`UN#{8Cv!P{@4PNNAU^3&|J_8$}5GwC6h*oSmh6tzp zy15;T1W$&=hf2-+_mqj$duV1cOvs;lVFe(^KTOO;nL{O~F$pufnEE+IwL$k-bPPvT z;-DoTifB{>ETDdi2`CQ%eSz#9A3ua#DJD(;s*L{HG5kEIgDqmOk_|c=>t>yd3t0h?cZ)YA z4;`tkf9tY=M-bDcLf>yEz;(=!z2eD9`DMU%#UZD$DO}H3w=dx?%B!Hk_#4uL%a4dI zjj1`pr~9wPo9;@S8)gj-W!nHZH#gED+&>G3xN7G+#C*6-%o*X%rNHAL2H;(u9qvIT z=ywka6He>cv5};G%*ci8(sn*Kj~4|AqxlK7J~+6q_Q>7z4eoUcopUKoif&}xcxBJ& z7~r2rA^Z5ii|UPdDW zgNkQ4+Y%Dq67JBxh&zB-o#;srMu;h{MtsQ?%r1BW$IXdx~YG<7OeZUS$hLMU at 4#>UFO-crM(P*JAdwQU=~3lq$Nuz`Ij!uo5-?K{9!f{fky4mK2A_AFYP{$=SZt$7d0l)zt(-VZ{k z8`J}IgU93=&>|#XQTp~RW5wuzY^JBTg5aX*D_j)`Wu7ibv(lo!>eprf9Kc62GXY7( zV-dA*ll-2B4y`gb7$TR;2@=?Px*bSU*m5pgNl9%~W8H3GG>a-`8&E9Z!qY<_ at xDgb z?n&bT?ws!3mU)mIg`cG4#qItdNW7I}M3ALasz19p79M2Y8$OIK4U0i59c^u4&~(KJ z0P!IF`+Xisg7Q6b#m6!;NhAUwC}3%EYnOxQmEhe$2YE)i-as8lc=|U!c#qGZ7`$-u zBTAo&m~*JDvQLU<4qy~;hiGBn-rrwDpDzx;*T)CO6VMf_j@$8gGn4?7(iiGmN6n~2 zQf-Oe!;>lr&uH^QzcQ(SJ}{vhHAO^9N4c4#I;nt>s(Y!&8zrDDR0TPD@@KMUt~d!a zAI^Wt%%PsIA(1d}i_{*GNs3LxQNF%+$b?Dq7^Fe4rr$|)wErP=Y_7N&&m6SyrRM5t z2CA@>^h3}jU)EB~V-$7D%w6&lyb$FD9iEqugQ(qrDY>DKFdUo z5 at Y6bQJa!anzRD(3odSGHNYbj`%t>&OiVESG at QajN>&r#b~H`o@?!$X0tp{53YZ2? zOV$qZaCo_Ehah#(F>OcE`T!02_ruN=3r~>S~t=*3)qUD at GBp7LY`MCn1fXQZb z*GOjp1d>eNB0z1~l1VS_oi~+j{*v4HdqG&(X5WJ#;EZ6yxg0$r at q6>Mn;h0|`c$Si z!Fjt97YnQLLH{7$q9X61( zphg|naW?b{G(_lHDF4C at rt-&%k%Lha0;tx}$pE{;QA7i_0fMZ2RKz=4|w zx31jvfWC4;l5_;XY?gE?rWH+ih;$Ugu}o zh_n&1h-Tx2Ib%J#caNE9xZMX;xYt)|+ZbH=Y?BSkEqp+pN2?(1DV7#7d8Ms%IXBmX z9DKHN3MmWXn#FQ>g0D+UvuK=Woq at 0AmFfkIMSxGv_tJ;|4!1#%J0#O*7zE5o8558l zpoi?-u|t#yuS5MTS;OT9Dr{7mG{g02BD`3Mae?+w{^7%~x(N-e1;-LNxlm+I3-_Hn zZ~l6k?h?fzrFPhFCww8Qw

mK8Z*vslmdMlb3ZLFaW&M+#rp;fL?|s3dAbx;6kQv z?e0bEo6yFSJaE-7vn*rW0QOn&4^=_VZ=6v%nP=Xj4QXkHTlIm}$vacV3HqZDEkXI{ zcJb-FI3%P3F#*wf$;wt|G!gy2vc#T*Y{qd&8D36lgPff7vZj#>Ic%q8n%V=6jI#kU zN1Y*UMBE at S@cyGmSK5E$fw7lxHS=b>IyvpQJ&V9CW>h6t_vtb@^|Q at OsK90)^dZtm zC=)~HBHkR~x-){%NHDaV%Uj(a}%;C=dfK{l3=e-yl8-Oykp2(~_FnDc}tK+{As zQ&XZ6vR$RY3c71>ee~*AP}&LlNyuI%iLf}GzvLLE zpq)4|8p*jl1v5Hs1UaDEhA0+rED#OR9+nH=K%YAiGRK-*%gJHt6pa~jmC%azxb?0E zE*6<0o)g`Gk5M!?{bomLlTjqz4m=KGK}7|E-ue41i<=Hq>SuUI?3?w4T` z-Q(#|d9JR#dqdDIn3+rY^h!a2_`1>I?d05wa|q}X$x=S1j1xWUGe{uMjh_d at ITIB| zR~p4Um?s*G!(p-k;e$4UGZANNZ0~{m5k&XXr!O)Qha8rirlP_w$b*B)K4RW7w6uNA z=LcENdH~SExlv5^0dBo at i^~J(ZrQf&FOtq;BZZad{dG15cg^+z&JZ5I``$qJ2X+FG zU1-pPM9Fgj%5(Op_MrO%e8P~5IxruK?)DmNG4LK1)CSXRJ at 5HCcG(q!E(_LvWIKV0e>|S zg&&|T?CVd=6r%jat%yKYHq?`d*3xA0bO=Xi8k%WH?0_->uXA!};UqSL?w|eyWdu50 zjV^kW9^yS|a9LD>yxPR7wqTY*@uy-IJTr-ghDw5r*@MXmu~RsOa_`) zfIV9m;h#t!Y1d?m-zk2a3UvY;eOeRg;G|T>xNI=OwfSWr&dwB}#O{2Bi)9q(Mz<}( z1Zx6Bn3~I%*HR~73t;wpG(&8J%e#_VRi8d)mcMWxSi@{YqrLKI=m=2AZA{@Hv#yLt zvKvJ@|BX1Iq-5ezYjht0q7jVk-nFX$5x3xAi=_-dEQV&wNkXLzvw~CzZ8K|!uya@S&ShNv|3y21JWL^Axn$lKr45#jG?gaYe;pZZ^IAaqhL%pLXI13DD>aak)+F zX0zGwP!P?i#9RT3%%sg&VW9nu>Tt4Hd8_~$41AEkHe>0?kZA-b?oWR1viQxKtgI at M z*;tpe?xjSom^9YLlj8*nr5CpXGEsf~dHw at x843B^L==$k&}~9DeA~4R)t at Hw4m8g~ z&!YE&Ge&~Y*mvv*w~}NB>jbDT3jg@#O+Ubu|2Z<$ z9e&h&nNig!cN#Tv=)%-V$(7Y9y8im1EG%90K2$f`? z;mIr)sNjp=Hg#)`!*k&lxQk?nV2!lth1L)+v at tg)M<$y>E?bz59Ng!n>)Zo~2tt4m zYU=IVPo-R%xQR}nklgzM#bpuE0_F~z$$wU9 z>g+ULb40!i53*0qRGJA6N$*E&(_!JRyPH zyt#CeGQW&vh$7 at 7SOU6L+S55nz_bcQB)a{TfkLINX*S}m`LUmwGIi}5*Vh<5hsoP$ zwuf-7^di=Q2nxxZG!$Ac7Hjvw2yKrH>Snm2Xd at pRQ_xg0wuyE$3KrrF%N~Psl7a;| zgE|V7D>O4(wlvh&2c?$`&upqZlSl*1;f4rj!M^hI@)j})7bDRs=?B2LR8Bjh_}3?n zpfsL2h*gq-$Q}R;qhr&p8#HZDsLO~8pr+rh-LfT12z)r{^e+;d>WZnk3OY}^u>=n_ zUDGXb_>^p#Yy+V}La+8IQFKrQoT9^*fMB~1L>R3R<_<&P#L)2r5J8#%wo0%)t7EhD zdnc(8FjWDd5L*?#lDDRoM36w3jGg7Dv5`gv0;^Lb)(W?QX`3A^bn+gI|%LRf|=pnYaP-D~9t*1HuXvg9IwPW(^GoX*f z`SCZfD&sK?7jo1OAGSMv!#YBr0wbJNN0|e;N6|bTn?Rv{-AmnvjDH zhwLpdLe2+r^LaT4xkK(WP-BKfdZ!`12Of|L z6NCWT8F<};`}b2E0K8@}c?(@l<0YuYSB2Mu#Zzt04|3S;vRtCCX;uJC$2b-yqCoJq z&E&>1Bo5S7_L46^{zYR;AjE61LTBf83P-AF^k0C4P*Z5iv;-j#xh)68Pp7lB^+LiS zUV&9)@ht|eG{59bhQLl%1qfoC%qNJB7OL{&33wB+TWWWv5D=2=VvO3WkmN00I$;O<}sEx-36I8Q6CN$A_ at TP*;~e*Z6fNT3T^b`v6nKM}%HYMvu}| zI%#e|Y7eP2on)EukWlIkuZ) z+khRK!{<^40&V7CFd~K^jsgQ1Jb7C)&1g;_W2Ayx`n)YMwKt0pv^HO2|23=^6WnuG z_`_dT{~^$HI*Z@=RZUT?sjr)!ggCU87QauKj?aRCfNQ2ag>mJ}xxk8?=(C35vk}-} zjrnrwdnlaogz2TmU#53o2SQGZ5&b>9N1iP)16d87*;WHryh8nY|9-8Id2CUz!rs;v zWqSIaCHH+XdKfogwbHcFKi#d^wQZQxk}raqcR|fX;H8(Fr4IM;He24*>u_hbz54ZT0m4xfX}8A zbD$%r94)I_LF)s3(m*dr(Qs?HgY at -c;^o$4 at C)d9g}fR&6r6b2DCB;Mmah7LW5d0n{h9v84^ zQnn6fjMnu?Iv|<+4#OzUowSm|w*Nq?^Yo_DL#C5a$sJ at S9N{2G!aZml=zzEP2mB{@ zFtkB=GZUCM{WB~9`Z2*V40BA at EW;^aup4X2n~TIu#Za%@_3VUJc6-zV6*B2cE)kuM z6D%!vfti!IF`|=13qX&X>DJo^#H6&6NKfsHRcwGwik-pQcvAAQT)&%9K=hvI#Zmuc zHOgPTBH5*{tAlAG`JP>?k0j9`=rE$Q?-TW-+mFFeY6zsv(o*zcQ(xosnbrbU4I(4hIrSxl(2p zARPb0sJIcOvaIlAnbd)V1qcfA#4Mwm!tmve^mjOg==U`^D^5L#g?fc^WPLczk?pkf zD&vUlI9}X1QWDrx>1p_K#HJyW#^_7d*pqYkJ!BMCHI7X?rWf at XGqY2FJhp!qhaP%G zRwtF5sF+s$=s!oKq`;hW at 3fU%KOzj$X&IDU2Lvi+VL|PFr;9x1X_zL$FQy{SMoWT< ztEy- at IeOv3zz_ozTQDPhKekT&9=UFze-ruZFc~ejluP;7K<3!D=g+5^kEibqq~!=E zwQ0Qi*h!PxZWi(Uun7rKg>LtM7pguOb$-h04GJY{;YuKZg_`x*=#$u1C%R78kG zs+&~+U^>*+^W>>hvD>xBn&a;obx9_-)F;iSvq#5zG%(nP^fAAP3;dR&AC$6blSZqq zp?Pd8f?xngqOQZ;-5HD1#nx7scL6QuX;_FfnEeCNU at G(W?GqWa!3z)zSnn9)@2`8V zSL`io#Sa9Aa5NNSIm5K_QqO?F!P(}7(}sptJrt4s`-zn)_3KX1%hn+m^5vP){yR|u z3|)BW=Ab~_iM(rnx_#iIqm(2QrYLRk{#04HmHH*D!X{3IG3~sMA5Zu9C)*!5)@uHO z1sZq05wV222o;)-v2-&d_6-W+M73lo$Eh7 z?ulQcB^*djUN)Q_ z^b%-o_75Bs)qow+UERgT^g8YMM~^~a*~B0_dbHeR$+Kb4p`Ia*Tq?UoD#kUTDlgQf z`t*UNe!AWnq?ax{t}(O}Vm-E2R&gRmK}3>#lBwXKVPO!;vf%(w&LbLzW{<9dAQ&`Y zK(n4jpKJQ1+)}U7>ht`^k0q;>gfje5uNQCA?AFWgLvd8<+O0&}98-{tdS-zkHN%Hc zeuD{3X{uC^XHtkJ&crA#H8!{v2RMRPVC5+IqLq`9ni at 1bkLGvquckh+7q}iLw*cdV zXkC|;3EkV~eNOrx257*9L4hHdz+MHn76tnN6#APZ=N0FUeou8(6?{0B4jOG?p$v^t zmNeve7dqtUD at mcB}LX$XFE^m}!KRwe#NRb5!89;_8 znX}~r1%QS}V`I_fzc7Z5YGib#x!Xh(o!=DD79$_-gnz(-&I4>0olIEC{6rc>q{gFjRNf-w<9-LY(6^KR8B#JJSHA!Zn7$lE^D^)=I4>)sNoPhrc z?dt;uP?sN>;fLuXKw?eBi+`c>>68Ye+y~)^BO3Qnn!Ex?H_CRbzrT4z7g3$-yEi-) zhR=yi43mX;6s9?S<$z9|;y(Qo?Nf~_7OChuXF~l84IKhzU6H0Fur*%^C;DL{E{mlA zL8ZL_s*F!(;#aa(sDI?EjIiP=C=+gRTn`*A)Jxy92Sck->p=|#q at Am#uvAVh!*x^L zCXR#0q;5olTkG;TXiVSdVUkgTW?U^4XF zYdu0kFBIGjqNTh$X~hbX4!7_ITLfl&`Ne<{NhZ(D_Q!$h(G9ACfC)lHJcq|%Tc zaMm20fK4Fw>3+7n6Cft4E&(kTDeMuaCc)iDI_CG9 at q)|(+_G&OV*dOThsw>w{$sAi zBjQ#dVgfA=99Ljx8EsSf>@m(B42i-A(HqDwT at MKCr8+Oejqv9q^$`*s;w}hQx?~S% z-TX&g96mgvrpkJ!-80YvdhfAj0|y$W7#7=@8)&Eb?nYa&ZCe(sd(WPC!L(QW=%zdj zAG6_ZlwRgg!V?}J3IMN?rH}q4DF~zmUgE!}QEtA3o=2rWlv%x0phpbj8NE#Vw=Vzv- zKIJ52d~K~Mx at P&GbWltQUi}f3%A^7`Iw@^w7=Pz~jVmA(Cazvh-#?#5o~gb#5b9d` zc)IN=h at _vib9J@KN+eNKYelcvPi*1XoJMkqbw_*qbxjR1dJeT*R at oL>Vx4S9`|WOx zV)ls>_a8q-DeGEO{gFs)SZ7KkTUd0J=-0b at 9g8(eEk!HTTse`hwNx5PEhMV(_crhS z5;J{wkvv`eV79k6My~$jv0N_GE|=w(u3ujce~3(vg#Y-!wbE^u&RH=q!94?6i1Wvf ziTGe=0B{Ex_;c_IMmWryJ)0g-cS`?|sJtgq5uVcr9XSi1 z_teJI3-mKXF)MrsT%L0b!LF`84YW)H&zg58>#ya|0?u zR7!AN?_y9FK^Ly<^=sOnJD_c$a~~u%$vuPV#Dp at ORQ8|yO{9)g8+IQg4r5gq90qg* zI?p4M%~PNB at L)n1iAxPY&#iQ6*Ja3$p)8}8yeEWBbru(7-hKEtQPbC#{~#a8M0UW2foUx?Lz>i?(kV?%xb*>Roiem5GLT! zS at g)s=hI~JzT3gMnJB^8CVZx0K)n-#V#hBuSUK*Zzf*ie%83O!k$Mwi=&bZ3kq5we zCnne at DC$d?=}gh9g<~br6OLFV5g4gQtB+=8ii(_{b_3+V;v%?A&mR>SP!Njr`DLVX zfUFl+)oBlXgNuRv!>0KuQOst7GqfZYUC}GrRFJO)=^&hy=>o0}C)q&`0~0(|hoZ2< z_FMLsv^u(I9;50 at jEwTnC_27sYHC0z9kv_v9OQL4d45`x(5udNAM_?bmQeX&>Ci(v z%vvD55|l^jp$9+%EtH`)w)PE;SMwSgr&s8jpE>|l8^ecv5oT_WR^U)L;~Z-Y86U%k zk<^oH{=W`vQJ-r?j6e+!r;~Zx=FP~f0rFZgcb!@tw9%@bDs#;oI`2BisPpTOnc4O4 z&&zNSTBoH7eY7Rdw#Z0i at mgo&O|x_Je9qVl?QX9S4vL7V}n8DKeC zN71~H=9y2Q(su6DuzN;^o8mKzvCdpNwf)!>jIp#H&3{_gfIP5IdT||S;5d485XFWG6B6>v;EmB%$_XVL z658ApGMbh}j*(ZQE>v-;3Jq at M=g*iwACfd->uel3^iuo-;5nBK7HsNnDn1awq2U0V zL+>H}=Ez at qr87Q?0tyvj>Y~j2W8`4yCL45)O(*(;&z!8=7T`dkjX!OvY%8#Zr+2cuwig)A5q~U3a-}I9uyXq(wSJ_bK=Aj zdPV3nlB=-8_t>Y-mv9U`IEyOlIgN;x2cU?i7)KsMHJ{*sH2 at V5BEXFIlsZX5QR~zpJdmwrL*wLf^MTtP>s+Rw#JA<|y`@s?5nRylBBKn=d z*BEZEGVkrktU7J;2|N~jjiofOC>8mokWpWTI%0^?*hYPW*=T>JrJ*;)L60D~1V`sh zNJ5`BBRl1Z`BiPhFtP>0d|WR7k%-qgiM7{d047vZ8AGdudE^L{hIFAR5&9ozNmCjO zv<*-e9szZbAy0X|&Yn62Af{I_*h`dk?<6sX at ugo=MKq8Nq&MgCK^FYQESAk}_pb<3DMZmz~J3Y_lX z*GUDG*KtWpNaaL(kTn6r-j$M~T&*M+ERLp!hPFmPYeYZ521wINBGgpIa5j|XI7Yn& z4xGn)&g<71(ReHHI3SwLd<`iG=7jb+QXfbv0$cCxTVe&I;L;6?pFK-^rrSJDv#?Vn z?Y`8i0HmOW5wKYZF2Dc4fk&vBcj>|?M4CfrUVy0wJy`dWfPv`^voS at L5FAHmb`--d z=FJ-+HKr<&dX{CtUJ$%Bw{XmYo7uko?ScZNh9pDMxv~T^;IM=X$eIy?fWPd$N8*K@ z!z#HGUK0xJxz1dr$Vf}~(*V~TIf8iL1yCBbqvj1wltQ2s`6~q_RfS9>b{#ZGsP+ at 5 zWcC!k&%^{4*HAbDJTdG3YQYAtAcXJJd~wCCO-;Gwbf*%0jhZk40Gqfp8c!H at dxy$5dx_K1;%qiC%QtP-fpcu`7-q1$|z4}9DojVcCcg9a2fCjiH{8vfNY z>=Hej%a$%ZQC3Q(h|i;B%3o04eDGi~HzO>}Eb_z4mkvPV3_n_M1ip^^1f>Y1-Qus7 z3-&ct(q04pz2;9w&Ks&na^FhE_+}PRRb(DYRAU36Gqh+t{E)$e^VVeV+o#!(zH#Gy zlInnSuxCO9sG<-$5w)u53r^%zc4b6lTx=pw<5P)DU2f7Bqfv5mWa0boC at U~Vqg0DH z9kVT<+k&>`IargR3 at LlTazKV)k at D)sx+%MM(KAWAAA76w)0(xVMlYAE3HDX at 5T*o* z6BHyU at w|OYB-^E1H@&58T`Z5$ea`GaiXmh=5Ul{gL>BXS9;DgnEhU{u)&g$P7I6P2LdKkrIj07+UP9UB6?8S?_mEkZu2n(Tk;LW(h zO^Me{{z7mAPJ at k^H7ov^<%1V5Uho_D?+bd?-~~wJ(<6n0n+AD?OpQSwd?8=UCx^T2 z>M>&R!i5w|!^pNS^sMgy)nxgfU|^%ZbR zZmCE^=V=L-PDfLdldm+gv$f4UcFfAsl1Zuq1`dRghMgoGCuV^zTQ*m~X&L^3$*3{p z{9wPZrhebf@~=UC*)ByH-44Ro%YS32kqC)#rXyVdYz<&c*?M?2x`&C-!E8+zl at bL| zI+Kdf;I}#|p at pPd*RJBVY>YRteNq7d8b^vDz)ap+_uEa;J;?Z!3%VUeT0$UgBSxb= zdour1{v{lCBJh#qJF~``uS?|avVU3c0FVU64Y~)9^Jog?xC91DrZoDA at 0XM`ixAz4 z1{J|lfPLY)&@UpOqrOxX4fjN`D2H6Guuy7mFC411u{uT;#wI3*jvZt0A5oF|Fg#Y| zLn_95CBFul0rQ32LA{?W9@`GV8yPePFL13*6Jvc&aLwTJH>hJFdRyk at E z$q!k4LaQa&h7jUNFF!faWesMh-D%}qq0IUn{}FaoMZ<7$8p8d zrnh**Z7I|?$agj`M5TvpFfZW+{HV1)BfR6RSepwk4zgiG at WKGchr*ER=i}IbEGbji3^i4sza4I1g~VSBptN#~d2#lopAU zJi%C>wyOw?@RTA;@|xC`E0S*#IS4%r4oW5|5i%lB$W%T915Nn>0!06vY$Hxcxr_dU zHlWn^B}k)>9EtmipOgZab?HJRvcQD2u-|dRS>JQAvo~+uD$&~Ep5ekNXUZ0g1RaU0 z1{nilM=OFw$rV17oSWngKuOsEQ}aiRWyNuMmQC_WAqg^+-l z*>;m8pv{zC)F27#|H0hkv`)8&QqsTw8Kg5U+-OTClA^MuQZq8zXrU}y<9OV3MHG{+ zR*&bhqr%EjhmvSWcj}KHs~9kekN=O at NV9b$F(Cw?-N}_tF zMp;W9 at wsF75X=#*;D~B!sKz%meAZdK8s;OTGw|hkKQyCz6rH0dpA-jDnWghm155Mb z at f>~nGBup4K99=zufqioN<IMpM~`S$V%&vBzJX6i z%n&#P=Ybg+>~pw^8z$VQHBX>z2kqpo!+z1Gek`})<=eLe at H9)&yG{s0{zkL1Tq at FUYbWO? z2(B@(*bb0;08Nk{B47Ywj|Lr2NG7GPUfJ2(6Boy1dy`Cl{|@D<->E~8n-K>`XhgZ{ zWnl)bNAAX#PMzEiX!n_H20UMhQyiGp!Mz{cJa(%^>) zAk;B5(MEf3qB>6ELZJ>T*LE#hea7wD!A_5-UNCT=s_|P{z7Ba#Xesk5JdPj^->W8S zwPzs13E}!fqWu1T6R|MD*l*tO5==-jv|Ema#2<5i`9lOlq9Ff;GTNWSI&+SZWo_Ct zh7FVz2z7%KC(<|ROc_Eghr&l_7p3DgCT0-frgn#1C2$)Q_tYj!nshbGxk at BQ+U4yf zs?zfEF-=losEDm8c6v4m=@P5>uM^w z%_IkuG-&hY24-b3V;HpoEFmk;f~Wg->DslK7b-BLICLC64j{*n!zk4U9Y>43!SZH8 z3HHe&MbbgokNm}-Q#1PUx4AS>ISmF_ z;3!Xd6h_yMIvTBNm*`5cAcqVI^~#k$^-A z_M at wL1L`M`5Mh~Baz_fbU4mhY{B_h~l#e%8{@I$bjifN<(#tDk;W|SOa!R zQUT0UbimtLS?LThHftf-y=w8|7Uz#68h4i_^$lJwK=!HhR|u`d at 50cpZ|1KgtYx5m zqG$B?-lmD?0q2tnqL;m+R?JI)&J^lpA&Syr1M!k{)+$=B47A5Eqbka8B at mia7Zo2W z42oi(;RF<(m{B%6*+dxiiKobDzELjaT0*|yyGGlZnb)Jwgj2fo@{ifGbt;A6 zI$gF4S?IMxxD+Y_rY~&XwM$^djhsu?by*2;pjrpLkL1GBI(bcQHnxXY<5wNBa3ee<@ z7JdM-1%XjLzXkrCBRT<;1@=<+q_uVoh^uH^gX^ST^<8P9$uCnj`)l96u&PowrUwwV z;lZz5zKkN^JMM7k4Wio_L)DyR5(Sht1hy)cMXi=|hh)xfHcXM;=4Hc3bS-UdVmF3i zpqj0*FL>$Ftv;Qp+pP!>&&q$8EYWz-Bi2``hg!*SQc|!3KgL-Esn6 at 1XLFueF^X%1 z$@xYkZA&RiRIMSFgggv;4RuRkI+$Dlx}x55u{nMFjw4PfZcgr}blFa)#fT9gpb&kj z;;}_!1Ogdx&`M?R?Tq08XNy%qb10nxp1p}sNaGCf9wiw;oSrw56_RF9d zD*X`Z0f at ol2?&768DOmj$B}e>0|8F<+DBYSkOz{O9?rU_ at 8AkYl`5 zPhV^Bk>9`f39m+Q-0R?j>p@?sEC3nP?!=X!|1?|0%*51GdWj+;a-b{3#$Lu10ZzEp zkV4J;ohyF{uxFsXnA at d(NbQkt#R&&X7~H^mtYBtLYERV5Pu`M)ij!eQr zkn;mCzy!-~*`5lHmksTKzbXGGFaP)H)7XY)w&k8uW1IjhgckyQrIj5n)#%ZSNVH(q zqWJUpF^Ll%3|~jUfwr1jsw-YoNQ%-}^Cf2IP8#gk!j18=aiDT|+}p zmbFu`Fl7jOL9!mg;t2UcJ5fCp)YK8Wm}jx>&p#zrUl65G&NvS9hB>~hwBsM&fBs}# zA)yORt%!kmTql_X5(26sG>UI4ks(#9irCRZgM!3`<=^7-6f_~^KY6kfj((Fs7^2%~ zT)!nLE%eT%FoVmlNrBkxp>qZ{@V0FeIJG`=Fxbi$9XfSt2_pqD|8y+^=p8933Yj at A zfZz&mAV<0)CwmQ}Oz=;x0Z0t^$uJ{>kpp7#VARsEMf@!5M9)4GBK>JZcoH&*TLE>} z#3VqW$bxuCPzoCdP3g+YU2ulUPTG_bW58NLP!pv-rvU at p+Gu>u?R<@-(3wH$IZFYw ztyYSSMJO-mEvPq4rD9tIa!0r&<;4#|{rJP+hS68LBL?lFP4>_ at DZ%r+7bm(J|P zp`pbHg66a{P5zD%rHh-wBb{FHYl9d94tuM6_nXMNLVfQb)N37NG8hf?(x6BmIJ6JJ zH`2V?la4dlEz$GFty{6tBOTizfje>V;5Y&^Ds8uJRS-UgdYaSpcm4VRRQX8wAbs}g zb^Z2jtvgqV&4~NNJ&?bJOefJBLoX$whOsKD4A8sEf=!{t8RxUt7>1=ddTbi~G)Ofg zy8Prx9k3X(;@DqNgh(th?IBYR3 at sJ4+pGWGjN%BVGWjWO^IS8!9nyS1Gy6TF7S#qq zUUMm_z%VC4T{cSxqs`{2EIBa at x<Y1IuB7RsQ at lN5jL7qi_tYFVvmW@*mRxAWMDQR)kMeaty-~k(W2-F z1G3#QxYnAY?Q}H%jmN{sJ-fJyi!7{(>>HW~@(T9S%L6RWSW79ni}fm9g#kxj2--wu zExAA94eVq$d;9nZH3{u0|c^Xye+~*i`3!v!m z%8Mc*+C6ti_uK0tGAjvkDb0}c7A&BheUG0l6LpBPKyA91`Typ$tNR;H%%M`GyJgCS z6)giD at u8*N;e8O|8V|vi>ck5Iuo*UYA&hVQMHPp<108xwN={jn*BC=(nHd-GcR-;v z)aeH5T&349U%3Ks=`rs;*iY$$mhIZwRw&xmlai3QKsK2UK! z&n3911R>8MFx z4 at QKGe3Tj1 at bM*~msD`_svO&y;nkD=yOVO9ThecrgFATWtTlPpz<5XSWh%R9h$F at owiZbN`8e4_w+P+Vg0afDh((XL*7%poc%xsIC4r%#~# z_%re$#r*EfQlsc_K;-861Zu$2T*fC-F(gZ800pCcXvAZ3!}cX`#t1C3MB+np0i!?$ zaYN9=G-?NfLjd{!F<=MP?xJl7RvPHVEeZ>x_(8H#*i-kXbFf6#zd!S$iQ>TWJ{ch= zh#>jprujZ#_LyQW1F|Df>p3Yj4~uoyHF+)U*D3fWx-)@LeLBNjH}n1*G)rvV%t1+@ zOc+sh6Y8YWcQNH0k`bs^km4Yxun|<7S>UD0XOma-OuCT7jfDb#5;Q3er&)=yx<@iAt|4 zeP!s;pbKPa8A&#h;wA6#2>=CuN$O#}35n4f!INdl%zvrGFw*HKczp9FGG#E1*QG at Y zDiZD5b=-8FgHM_XL?KK#F}0cOMgj~>->Yxmfe8>Bs=Q40u zC?%~}0il#w74jsBD5Ma8)F|f4U_vNz5hami at CP*Z7$)J!k>B6nkD*pVUJSGfJdErC zv!-Y{pE5=Bn9XE8?OJM_kUK0`6nphTNSZ03}zHeVEjM3x}~vDV{?MkjTfUTkWLr8dlA< z6~z30?;$a3DIl544YW_f?jf)0ylEm0PTGt+-p$v6MVdDd$s+rXTJkrJDx{+kBaWcD z!nYt?l~lkXzGNvn2`RYGph3P&t3IJ`WRYSDxgBT;9SjfvES2>>p>ox126|!_F0A72 z;1?8w?>%_H2&u>XCn%7rGrB{h+&6BW^f2iz30FGvtqlh4^|u45vDQLJF3hLFmVyueb3Y`x8G9z|`iJ`O@`{7Wci>0{}H zB>8er2!+ikwL at EM&HROq7AbDX^eWE(!+Vmi at HVn5tPy0eoZQ?fq>sF8plq&Rvu0&o z^$1{!!Gm8DfRlAWknrsAg+s_rQzbMtGeeg({lR-62uKpo|AIjPI>%5!&J~k!jvPU) zK=gqc)}KT6V!5Nbt at p zGsgAm-hDXe9B^2WsN0qgBz+GBkdwR|rgTCdB at 1Gcid}7KY>c2OG^{ZAAkuPNC$H4O zSQl|lp!wuh4;WAO^4Q+J->7BaILYcbO2Ma;!I6_ExAR*;VM)1NtA`QEKGa`jwuP}c zug1jOyoMGTFAWMULn)+B)mb}){2xq7d2;LZAhv<-Ad(Hb at lJRgBu~4Iwy3$ea#$Zf zZ>D5NRuuR0|2e?X5#lfi9&d)Xr>j+Ai~f_w#clixTs>TF`VdteE$`$~-34K#c?oEd zFp1m861YY+Xbw!Ro!;UV|BW<`!V%E{_7W6;{`+#gHQ)`r=weJZ(d45?)kx*A&|E-3 zC=d|}6yO;gXI>IHPE>iw32}fdSCjS`3&lsbH8;0#UV00RoDX^OghZ|eCOjX$isTel z5Z{v`Hc)<;c+=%Ixkyg_QZ)`c3H`pS5E>j;2iOr1iVV;B9!t>Ofujl zeLjo?Hfb!^J4l4gnwhz|?pB#p>~VPxu_QiFzE$T&02)um2?SWh?@TD%5bUz!>^uFT z^7bj`&##;`sqM8N9His`!ZR at E*jBN;Bp#kNKY~ZJ(e+JFCMVN&NzJYfh7NU|u~TtJ zYV#iCmU2P8&82&H{aP>g=bqD_ z_a*gqEL|%kqq35_KviX-JST4sBnM;%yyo;eqxeRCevI!y$acD at 7C40kuUuKr#bb!C zukTR`cq|y)PF at QVX1g|R7!`{+C!fJB?b at Uy4Gml7s`g^K zrf95TzjzKGQ9RvW!P8XlDNvW769gJ;bE)Ci$73%(?cfSya>!wmD;X}J+18WPvPc3M zLh5g~wW$vF5?w#EiHs7+h$8_dC8}^FZ0QrQT>taiw;2xGX{XaL(zHF(Soflls(#6w zJ}EvlLhx*T z=)8safi>aj$i;AGgef>r>RhCM1R6LSTrVbrHwe);)=cA`K=RamKkxMR{(!farYHY+ z_wnOoe}Co9y$~>HOu$DIl4{4$S^lJ?1fMx(?AV}=`wwj zHD;hxX-Y%ggIZ=5C9f>8dk1bGx|(0`IHtAT=QI*z9X4>oD6Piby at LN}pr_WZRm6v) zL!6{mNe>~>m6hc&C}Q5ALK>C**Ds)?SG{uuy8v=)*3Q~nDmB1S7BhuyJb z?t%q(EB}T^1s8$-r$yAfoFAOJcyW-UBVw>7R#s7{x&a|`ZT-KCbp>fddIzcSQ22D% zPP^MN8r}RSTl+gZI6&VZ`>DmEf-O<9^Am>hiSHPtw&~OM_SUG9e|xrFOEWN~PU717 z`g+bBf2ftLznZ at uh=o!H(QcMM#oz|lxiVDF_TE$f5v`{uC=#eB)ljyfX9*Eh;Se}D zTv})U8N9S-PXXum=?vR)@X(>43>fW{wGwzPW(?tB#x}B$d?7I+fs|vkbl?Qo_Jjvi zM?hAJqSF3=Y(?P3TN>Xa{)1^lPul at Hvo1Rb8)cdph9jolV_rv{@glQ^})3pz#0 at _OEW0CbfFn97pdW-97bvo(F4=a@OHC-3@;rlUck zY&D;(ALtXjmE(?JGNB|)*%Q6MA^&9Qaf(ErXiL&DPCiRv2m;WovzSo8kz~_2KLq}? zo!vF3v;har3eGRIS|jI{a96l7+#4R8JH$tGpSV at rEp8b1jN2COLXT(|70>hMEs_d$ zxh!8qjpV>PI|QfFl6#PEj43L${~B*h{CEl zk{B>z7_evPo+Q60{Iq{1LiK}IJBe!b+O;zswv%((nsuWR7ZD-MbzCjSz53}iGGnuN z0azDsrmC6vn-EK22SFK5Yw6ApRX^#DTvGWLY%@s~k&WL^V&Y+Y at 6kF8v0Cb=lWpt& zo6~huA*0Mj5^&tVg1&%vVJl!vg&LMPh&D%~3UlfADLh>ja~As*UTFaF!i7S+gfjf& z=TGhcYXF5XW?Y+d4wwg}7SnvunbB}5!y$Wk%DI%#E!p=lrweco5Cn;d at qm^K(J#9@ zizQU!EM7yhCvzGolc at ubQ<2#M!uWG0%sD1&kl|iBDzXdbB8C=NxP;4`oPN>nC|5#} zSd*008`yCzP5a7{Hz>HNL62cmT?}&3yBzpl11 at fn6Q9eQ=%v77qbn){Q;hG zZ)Q1KtUDrtGEZ!S+dPL#X+#7{onL^7`8qIKR1V1tu-r663FZqdk)yR&|mmo(qNh z(l;fIhpj zDC0o>$090U>E=~nxGO3e*B|ZQJYhv+e&cM}>7ZfmTfMJroN80 at bEDmBvm2wl_Ycmz z?B>1DbX3}&RIi*p#v3}-na=F#IrBxrmEtz#Kd=6F{yhEh+q$}6AE%_*Pw4$^*W<6} zKi4gM0d>sNCY0CYR)e>ap!P^H##E5mV%WM*8OibS>~fiym*@xHmPUaWGnpCS9xM{5 zvcbWb1lacLkZ?+=C&fa7tMzR)&^hK4!@wOv6hpk*d+5-&v>>D}N6SpL_zXK7CgO-n zgZ3Ucz~~BwAh5VAO4VZQ3 at 5qBiMKD^H&dbTn>KA-S2VWlKB#rYN}tYnWyEBt=aZpQ zF`PVj at c!)VaC{WwWSDxhUfwR`$>~oxp)jZRZH}|#BYk~|STV!;&6-_US-Y_y5IU4; z?;vv(#RcMWqNxM^Qn{v%jz<^H7v_-!jND}sskPR%+qX&AzkuiB8=Nu9Ou%d2yvqhJ zqN{}Vo05{cJ3H?jvKL|uePmobk_t-sGgJc?zcIitU_?pK at E3H* zUqNYuDFg8DSX?xf7_bX1QKq|yist6co;i*~ev?NBISAuoZ179;=5^k5cIM4i*y?vJ zF`1N?gAcBR1~PQ0PF{@0g{3Q3T8w`{Y;5x5GFMv`bCDU4VPS&!#N^2lix!#w-b76X z*sW9!uEichJ3$VB1Xns*04flhq0DgQO8lf=`}U}c)J3`r`q;{CHHD5Rba;UqD7H*I5h at 5(OuxKP at yyjYXa~uCs_J0>1^$%REoB;$OA3hS0NpeN9_>5hr at w z4V*i-+tIrOHH6bJltB#`@!+l!L^NI$X|cx|P7fyi`Ull(2L zP!!yek8p9XU)?eAL(A5!b*59Af9u*<4_$puuyuhYp3}PwjrH zU?B24_U+s9dGqWMuw^;b&5CR at DWuJ(tWWA-+Yh!p3~*|ui2$eUH`z;y4pxcm3HNb< zIugec2CCXVZW!~BpsflbGXjFNY}wG3?IjD%55%mp>Cxi|`W$oTGAiRac6JJei{Onp zbk~tiWXkf9BZECrMI+p|D0gsgh_im%_)}-DY at cFHUqa{%4e$msJPr`}!l30}U-8RG z6S*LVg~4a(sH(~LUOuY)30S6C;6u9%Pk?%_K!1V at AL3j32N5)_lE1K*JU3(AJI at Cy?LP2BUYuPl)R)Tc;JC=`m~0JaY6fduRz?^A zSW}DbCOkW>BILn@>&4L|$Kuz6$SaO8(wZbB-$m1UrD!lrA6L4oFbLcsy|}wP+Vz`~lXW484&BG0y*3S2G0`k$lDZPv+W+x%=5aOe+yCFS8+L>25-OpR zWUeI1v`ack$eekX5JE^Iw0Cn7B|{+!DRUVzYgaZEjmHCkoPhuvWGs*}k?m#KGGP|mlqUB$zPL*<@CEFu-9!04${lcx14R*j`zzIU%+*7dDStwmNQ zDcMjK37W~wl!I4 at c<@VjJfOY+WI0QD_&jm>dZ-Cth1t_6#Kcohz>9OUz?7Dy1Oh?n zagjrN@#hiapr*#(xiP3(h?D$9T#lTb(~^>SVzZdhIeWHEXbb{>sXf07DggDG>%qpZ z;}429oZY(@1?d)yTJP)|!?)v$5y;hBsb5YdC<+?8x;h4`*Lmy)yYiK!BiZj0LaUIL zz)?A&QEr5RIx;V4EC!rk+?z6SVuIQh@(a$Mps&=ja@^9`jSWL at XxNt+Z_o&dGho>V z^ARg27X(oqiVtHJz!dQ9swUemU5vWbz+wR2i{lhM#{qXx1*vHewjzxbMpzF$qhI75 zPBRq|E2|f9Qi<_RMfgt>9eXES8dMv#^DVHg09mS3^6OiBOM9U&L^cc at 0z*ugHtp%N zXU%)*U#Ny*L1%|riIz0iROVn1_r7J<@fI5NeZP?g(GFfNEk*1lbj6t85d;V!R^qiW zONn5lhW0*mVmW9KBz#`bDO+*S+L6u3;@~0#`253vVICRq&%fdizzz*u_45wtixf)% zhOs4hv~S;pOH=PfXjIT at Vhs}05)f%D#Gv;`$Aksy1Y)vH2ZJ;IrMgqbB!{Ek=UVaE z!(ro at U%H_ktU)p*in4l^U4ml>G?(W(ITiGtcaIV{EIgc>7nQGUo)45~7Y?M7V(}5* zd^A+oScMGN9KQ^iHOgmN{ky7K+-{=uRM(uuw62Lse2H%VFv{-IIEmG9%7z5 at 4av#Q z at b$G#gb31qT>~Olj)_5AKN=dm<+ZfuW85B|m^T6G3Jy!$X&x0fJ zG0J!4il@|>kd~tU at 3(LG<^v>cZg^8Ba28ou!vsHtE)*NoaY at HE^>KJ^SBqUh6(D4^ zqtZA|mF=FAcEQl?I)bve4!wFoKd{Ynm#$XEkzBDLh)qFL zyC*A4?OQ64mkuNMf9+mG0acg7S(<`^{J|8i5;rl^bu7zGzkjFlz%GG`10=xLp at T(y zLq at hag*$zC;<3GS9QW>xwY$B0INqKDw5RaPo2h>7*~5nkrOM4i1xWMRtE?_v6Z{LRifq>JpS!ZU63lzpFclJySbssiR~l}-{0s% zE}S~WUf}FQhprbDDPO{B^w|&x-b%eXz=QS-oTn(yX zhBWF~1*0}cz6-jgS-rZol3xxP1Zw$yR?+~4#5Z2}=(vtm9mNM at qjlLf?p5rzdH;Rn zH#~iOJ94VXnh~v)1j2cr`;7RX7NDMy3g1~ub-|KALdRmhn+ASu(W__7oeNhp?9{B( z4I3ne&J+;s at 4;7pisRvDX1Uf(f9IP(Zi(F7tk*?R;&S#=7`;3->D8Q3y8NG#Y>Wo5M*IrFUzk z_y0~OpI*I(&cdv1+aA*>Va5Hd9a7~@$NQXcNJnB77EHw2Cr>b3X*erk&y#)s{%|wi z?wM6d4TT9RI=S4s=#$KZ38v~&rP|9*?p1sNJ&A-jB20{wy at XOTOTxNRxg7QJ2|Q}~ zU2?evTyRq-brKD4nYMIh*G#%f_DVVl5F+%k!vFAa_>kTaNbjS=rh6V=?Y215J4hDJ%{+vgvf7 znUXQtNwW#wn21Gx!+jp(8>Vi3@E)t86k!(d{nVi9NVm4(8u=(aq z!<@x;nt&m)7f7{4ulBPt0I_D+Q@$f;B z05r9=X>%4&#>NnPh5-z21+{?&fM(;UQ5o08MrxALg?(~dLw_xh8ybI9PyZqtrQPi< z?E3<|kfT9HxEOp3?`rLWID094M|&fq&s-$V6MFB4^;_5M!ke;x-m)7^eDilfOy*b5 zEPX%z$h2l^+ie$F|Gxi1lF(+9PK}C>K>X*Q`h|Skv`Wj=#+`*~ZbJ6Ge`vC{bTfgN zV at o|#WJB9%@X{wuf%o|xw%xn0f-c7RogN7vBEcYFSMyuw^tr>d{Q- at 2u_RBXSRtJ% zL9+C5sY_be!RYc8X)ABDa08jQ!b4b7lf5TV=Xi><7y{zqsP=N_sO;hN at F>p|IB2x5 zS at X6O$pdE2@o>K(>jHJc6BcRslFn361MMQaK%?g_Bs8;k)H(YNLfyLKL}j|l^Yp*kBT0>lDj~e|O<*rA165Gm2Pl4qo`=z*feFk&tpw`= zsjB#W0k6QB8G)Bz&an7knhsPCJq at t;nN3;DMg-=JIHRjE)I}ozA;tjD@#6u6{Ei(F zK*ZPG=etrWz(}xgabma4^ z6a84)%lkVZ=uGTyFJH>A2-#W at TM}?)?%n-7ETS3GG^=DD8X%6d$p{dmD~Z~;0w)gumW zVrmK!0}jXgL7pytoB!)5c at 7%}HOjhn0v at FSzb8;#m~uE9kIO9&-+-=9^{Im0#cg`+ zq+N=aCFzhlnXMr6=i at o>f*!=4)eD}S5e%#O+eJkX4RoO;o?2_YdGp6}sQ`Fu$ zSOw~(f?#B4>eLLcY&s(B?UlTfeA9v~^!~xvCZm*WtAGFEMGHh=8#Y7^i~_CIYE!sS z0&-YrKF)-w1U(|KVM_DxKnpiA9pAV!zKrM3w-sAqddO5CCZ`NJz;2uiuZg0}y3Rfg zCjoCyn6M1 at Q$n?G!T3Xyph}hst2F~f{UIS}JY(5aRb6fG;6U_jbyNxZW(1bsg^UB= zNP;(a^vXtvOUAcpt;@Hwpl03sA at k=SV!Zv`0&dt%T{~oXrly at yGuWg8-{?rAKjW`T z!rP2m#opn>jUP96pUlC!_GkMDRBXwmOPo25BK-=)O9 at AWl@t8Wb^}&GBVA`@=PXw) z={kQjUy+7ao;}<7K+MmiLg9$h6dARW&Uk#Ho~1}Nz?m<}9^dTI_YY3Qc5^aYX{Az` zO)77ZGJ?y)72+as=#j`=z$1}yYvKoY5HISK#$i7Q2UxZEJb;cvTNH{U06?%O((ps+ zsINOC8fn%N=PA=IM(6X>h{zy%o=x2i^8qV1#>M53#ZeKG7kO-%A|_n;uf&OQ2gY0O zkJ-Qe!-oZX)Mz%#KDmy)2IgSVS&QJZok3z8g*wqrT_Ybl<2|@0}hGnSk zjy5(}45{WLrrW~1#eb6$nM&W{{xQA?5rAChsK?YEL(mW!186=i`)fO#&L1wa_Q4`Z zagH6Yh*0>uz1<@G}ZxrQh)DZ@@Vdf$A-2O){=Q_iqTMEHUcaH*NaLUqvS| z?eyYOA_W_`;Gp>pMa8a;uDd2-Og#y*0m2atJ<*Gg#fK}5Is*Qq^UM4IGP9HHx&q;a z4dxdvTBm1VAk3dN{_dA1g(L at ev3P(i=V`DwIGC7#mC+O270i8Th1|S}BYDlsml|PF z at a}k8qfR8_Ck(v8Wy_Ly%h=v~cxrC*i`O^EJq}GeaTNnC+6~NidAFg(+kXc8bCrLq zSNk}w9JTKbgd`D^Q^MM44yJ`S$|HlhPdNg}1Fr<2ZSHI^fRB&cA at gR8&%vE&>wP5I zP+PQd3KHoaXZ&-^oT*cv at Vr12*l=~(g#6 at RVY$#uy`$SG{y3ib+Sob|t^_SP1WKLH zl6+yFSxXUeH!h5iWIv*X7 at z>@Glq(yqdA3h+}Q(PlnfDYY_=oC#GGGu00n91v~;I^1J zzfE3UuWMm3-1lCZuR5H8=IBOttZB302d~u5w=z(pniYi+D08aYYZp5iH zQ&-DDIizipJjB&Mu=FPL3slK~A>C-V7#LfiSU=dPv9y(}g44xBB;Fo4 zJOZ;Iv*{t1=xQYht;sJYU(Df>-qRLH8;egMdT{(o-)-c#f(1{|zeKP*gkxz# z18df- at t9s?;i<3Ru(MlWwDN7pPt*fc4A2d at gixjeqcA33t6LA6Bv0@UDF4ny!EO+J z4Lu)74hkJaJiI)nWFq`k8ip&NvWfR>(*$1N(Muu4ZtlF3C!d{JdI0FG-|InhDxQ5~ z_a`Kj at j=1VKq>S?XwhFc>TBV((4D`D%$qz)Le&^N*~8-!(ms9=@g}nys?O)Z0{+;& zd$9XaTGc!UY9-6Zisx@=*%;U|xt*Rqky_)*JbkSW*v at g`ZC7EiN9lO&#tkhyBELYp z1Zu*5p9*rp zZxS=(y%Z=4IYIC+U1nYfty?Fk$#it!cCa)gjUSnG0?E$GurObEn9-w! z at 4?Sz>j~U;I~p!!WtMKEnEbJ8B8yVt5BKoci(%@kcfo at ga3c!u$11z_1PoHo?%n at E zvPk>fZW$yAiVFtmLARC-uUJgSE!jA{NHht{xNRdBF6_y7(V5m(67dnN{1_z31!vL$;85?)$>H{o+GgkIczpT4v-s-(4t at gVFBCR052Ua03XX;n zjx*M}^?ecr!(PEp|7wMc6dM3M2M^v&#Am!bEnlfytWQ+~b z1WXY08J;!7LB#92p$(9eK09%8#@A10g+G5BIsQe*Xn#unBU8`Do?y=^&3K(p*}y99 zC;F?{f^}PAnOa8n zV?jFN;jakAx^+a5Mh{VPO|=Sxg%+l!6Bz~0xt$`R?55hh0mb3Bz0 at FU*Dl^BD~dFC zbT|0LD at BJagr%kL at 8!?9j6{SuBib69GlVF_C=-_CU=2{sh+)HiaR<3zeAi&}OKE{v zWrTzv1wKYuPaD0{7v3t_oNxt&xE9B}hs3fOJVHD}jvP6HcP8opfwukg55nf|lM8CN zHt*kazM0oyazU8QdC`G4K);k91#?+x$IFBAgfv3uP9d0JQiqU+oXaPn1DUpYb13P9 z90p7OuBL_(_Qfi?jKo}e8IUR4|$U*Fy3Us8K=;X%RtTUjw|#0`F9a5vkiOLunwc;fklXsEL*qU!nKPkqJ5}d8$gyge0T(qfPn>G&4mlo z+}!*bnW4hWJ%hMm`;Hx}zrJe;+sv@|=Lla?@cFO_;p?NSY>ZYx&&FzPgK&(>!JEEb!=w1phO)<$DLqPqaMLshKl7 z965-s2|-6I>Jt{r?C)!RooXJ=?!V*7XD4FtHQ7da^~Md%{f{-YZ{22h1Vb-*sT6b7 zZ2-0pLF``lEgJlPegl6pcLkvh>&*5}SFH!97VYL6IBQE*()y!QPM3!HES|4G`t|6c zenz9)9j>y;PKK|tZ@(oopDNkmvQ*cl-Rnm1ukY{k=gu*p!G{JZV^Xwu at n>oph$--- z9fU{!{^(AU#(P!<04Su3Q?R9>`=(h#o+MpD#*!eUm#I^k__QCy5yDKa7HVzfkE5Vw z`g|M?W|oklBzc@=%VNbOh#>d2D`~T0r6-jEAz<7uJv>B9+R2Fy3kr%B;|sVzyW8yH zL<5X?t1?f%kCI-2D7gxq8bdV9P8%AI z^6^nP1-D8hZt>6sIve-8g$s}H)Nt%nb+`RN at Ie#;4Mi_QB5olLxw1)U$qXNkf`|W$ zKxLq-%Pe>r$bz~DzJYH}l42>wNB5d%C#HOk*i>lVbh-H`vj%kC8Jdvb2v<6D{;+pp zYy}TL47G?qhz+Qf(M%yY;ldf}+6CxeRM4cP=Kim at cXOp;I-8xancy?FH#Yu4DM=yg zl5ykDUNvNSG@^Ox=4>N=`O;1{`NZ5!J9az;(X;YPJgr;s9PG{MVecNj?+RM{u1yAu z$oeaY=S(ueT at 1C}Ko^G*Lh5C;7z~_G;OWk!nQOW zi2W-MQ at P&+8=L{rPz)FVa;0O&`k;4wLXaMpg{EFbKF6Sik&!%9qN77?jpgxhKaVrkiz;FKA3{W3%@kX6CN+2N1b-m+OsCPGmxoR4Fsl@%R`e&u?%DH_!)z(4 zeRLu*HMQ5kfjjUT`Fel4k5z&(QTs7+UZQ-}JGgD_Czv8;NW~RVD6C6v+-OA7 at b>K- z;tK69fpNOz!R$46uBeoO5eO$1KsmuT?%Ct+6H2YtuXpckm`Tvq^$kf$!s#OtH?>uJ+fjln$EDZmG3DK@{RFWAZq1i at Wqg4pO!-RZno at lNg7ckGibPc~7 zy`j$s?0ovne?)v#cxwJxdx0?+C+Sk1_Jh5Y-vnNDIX9UC_0v8<`vIX#s-vpYc4mx6n!nnuR}nnic1#tf6{Y(ELU5;JCyQh+BM zQqP}R-z at PKLJ~|R$AfmasVFUljopJV&(^a^xSS!cZ9E45r20&J`C5-*L313 zqCYIM(yV{Bclb8qIg{0(q?;qD0Ww&l;RP53oL{HP-M3GmV(?BeaQ@@G zjK6yZWUbnWGBkoC`{S>UBIMYy7IjBybwRidSn=fwEu6~Al|WzL8&a)%w{Q0gtE-~O zetK>>94a#{(Ua9%Re<$DCG0$iX#DYpsek at AER+CL?j7Q~u&&GIvr6hzZR~C-^zAFR zLty?y3@vG!OtT$VP88!slKhFxA)(>iA7j5f? z-2kmz&DhJWBm1VP(H?7MWQ0&Z1FTC(V=M-!&Vo^WT;|j5K{`ky~J0sKyvb5KUB<`oFl81Y$Z1-y2r+j{kEx?ajp6{dXw`~?L3`C; z$4(eZUIWXWIF(r3VQ~ibVB5)_?Ck0VT%nb)Bw?$0(-h*g40(ydQ2BFve!w7()klv^ zA)j2R=lL+%FgxFuFkVwYBjpEvpA2kc at Kui5QM_#)JUbG3LS at ZFz4}FKEmuMoIUH__`OHt_SXMrKo0GB|=X1P|5BBOui5PmrnxAs}pBA8X z4`>m~XQ%>kszr2$g8?@MC&>-`4`O|~_iHdZ1Qa6D$Z#P}vnK>2KU@|6+k8NFp`>Kk zkOv9dPOt(Tb>%s)NIGHmxo0 at S3Pv}?i& zXh;Z(5EqL1HU}aQQ$M#PhVmhpIHi8!-*H1ha~vr`vz-*r at v%;Jl?Y}xf at H?b?XO9LXfTFn}^fQ95 at DclA?f6njO-(D#ya6r?;f=wS za0CRf#DsKrn^Yuj at aq6^X(G+Ry02e1rKS#c;UziIuwAB(F=TrBa at NXQdF?-R2+n6Z zyLE3_m(K@#@uW`mIp~|OKBOb>?$n}^3%4FTsDD}3f`Vym+pJL;*!yA{NK?N at J$*Y3 zi_J|@9ck}EpLXie1OHNigyZ3X$`r$&M?*0B=T{3cvG{Ub{Bw{r^!g;mhQ}u`ZZ$*}HYdQr^wfBmWO`Nn4vq)s9k|2CjuA~&88FG7WF5^*qNf_t z8t&tHf9gBt7;&&D_Kryp7(Lo(%`(+fDL~8Ko_wbCGiyKG)m2$oSctWw;Y&eg$}n=0 zN6GR*_V#Q^Xti$!@Ev_3L{{`pUIee>X3qjtNAx4apKn8l|Ngm at cQ-|o(^>b1 at XzRe zH~)DASE^AiDc_&Y$Jj2LyloghthRa#Mf36FdM^dBd)F?D0R!4jbLQyOMNoTIedxnw zGj;6Ok2Tw=2tDuK#am^`iWM%bx95HF at l)s{j;>V$B~d=&yJGvP9YR1ev*KO!ch*h| zGcU!;kYXS1oqhyJ7K6tzrv|Z!ja$I$PtxrzvONiz{PEp8e(~U5tXJuSrk%o^(81;8;US4cgvSBmW>VDg zi3Rbrmsjw&_V5eGW?d&7rFrk=*FXX#uwP^IX6}CqbRrOgOU6f$h_%HwF%=YIQJ| zhBxb0F8;;vEc4fK(E~D9 at E3tCFrhS&A+_a|p5^|wAv9K5jY>`?E`ZCBPj=aa&T_Cd zB~F8#g!7HMQqe(jghTJs%&J8!n=AmK}zuYwNM}idiZG2lO`)?Jv7kQ$D1vD`Euqy6c5(g1tZ62E8*6mvS>IQ zv{uv<$s0BlKL;V@;t2HoxzO>(eoerXE_DO~YCJgU8UFq(KhMXQ3H5Grw9cFL!~mWc znFLsckdBl<;f?4P;uiXbatC6n at vlRrJulxvW;-_Y(G#M64Sg{vn+=l zlmyXwW14-5eRkp%6%1E~Ou{YW*CX*J%Mgm3nOaFpL)Ol3GF)e2cOFi$VBxdX(B6Ck z at Fec)QW4Me6AzldIPd;p4kkfx_a>A~H1{U@`l8naZy0u~;bK4lqUg8MD!+E^0F?Ku zR}^9Eu9-q&bno8Gz`!P~9oz|CT34 at M&qzyCDTSflV9^-cjR^G-k`!AyF-y+eoTEgk zmBNFQ+wpz~JIP~#f`}H?B-P|aWPPH~Yz(4D({|P?9DsP!=F^eK4$rxbdjyhH(MHba z5T{dcW$qSS)rv=;IC@$%xqy-DeBh&k?`5 at S*wV?$%8dzaH at D|->!-9iRl8za{d4Gw zwmFm3aBev{mv7uy=WSC`bMw)oxpFzfia?F320Va;H(RG2)7?VConf&cL<`>^x#>m` zGfAf6_SV}+4Lv&dZkI2v+(N({O_-lmmsV5UuJ}6F%7r at h$rix?#O z93k`Jw{cMdifoOqa$vZE_YO~;H*@BRygY@|b`l?DAc2ZW6nIiRONO$<{7|x|nYcbm zgNb+Z)UpujZ6DiYHM)oV3 at U5dctyVz0TG{`4>3xBk->PBdAxko-&m@!f;gZL>5mE_ z>SV094a_y(f^6|}+=ObDk#4^D;9RVHc4TCHWon##j=g#bJy*0>v*KwD0Xo4b@@7!` zejj#j+-MC9U>UTjXuiio1Wgx>_RCaOVbJkX{mOV;EGT z_ED?f#P|=}&A#WXS>wesan{IcRCvAUt z)0#)<#*i*wvQO{cmZmt-LhbC{wF^dL-`Fm%`v*D=VhV;|6TI4Tt`ctu7$SIwW!OpP z%>{|b8(j|x*pA7B=51Y!5%>u{hO=jjPxi&iBqg1#=oat6E+ZlYt*6@ zI at IS)5E6`Lsm82%E8XNpCvWYVHC?)Qj|m*qs~2mCj8QN|G_3~vjGc!O96+KRP-VBRAmLQz|gM%WTxv zQh$2qRc8NGRaF2>`}Apza))S-sy1APm=sxc*m+JRXOk0JQ3ougCg;Cig4TTVrVmhO z>eOb+wofcUsbOA3DGaG<7CXPbu>4=G&<$jJt_8=I2 at dAJA{pOVz8nh)B;m!rl7SDX z7P(fPjfEKv4UujPQSwrNgZ)DfGm&K!bm$jX;w|R5Z+SZ;ZMZBxi^UxVhH3(8Tig z4uYZ}fN9%rry+%S;h#llOl*x&>QMU+-Uc!^D%WS~&eh&>d=tqdc at FT3`duc<9=#6? z0iE?x at D@rx&AKvNeS?Rhl;XPcKJ#X<@fAA-VHlnU`)vyNo3!hE6ols4jNIS2(ZkZx z5JBrxp3Gf{NJfzWgXrGA0#Y1{bN1}Pi&wl#KdtrWat!*HuaEH+|X z9ibvTBS8K at zOi_m4u2FIZeU`!Lu)^UPc{6&-$+!`7Zh)3vS zyvGl&A+AU+jL_pd91}y1NBe^Yuee8oX+A#$!6{TK4d!i|HjSekc=l}l_)^>*suEF9 z$*P2b7X}96<3WxX^aPVPF_E}?m(Q$uVG$xk2tT?+?iaUIgg3p>zG`P^LPHvYXVS4* z&8m)qC<(W`Lp~Arkj@$uDcJ|EB-4m~yXZ(#cfYxFY2*~5&FI?oJ#i1Nb14H(xR+cK zhvQw8%U|aO;?ckv!c%4M06q%bF?BOva!E)C1S5qh9c+qF2qV}Q60J`ak%aPt_qz`# zz##$DXo0~vFI{x<89n;>$B+0uubXg^rk0hKcV4D43H?VD*xmm)Q^j_!7DqX%nC4aJ zHIauPL4m!D`7s4A&EA731M^ByFTyHO)gEENoNY4+mr5Ba8Qp`kiD?>xe(Q-^4J~A5&b~6|3eHpy4^2r4J zIRApx;P-BWMg~Yi zm$IcsOgpGu%68)P#T)v|DsaUCfr4)kzToh{Hu(X4`z~iX4d)Mb{Tjc3#DmX;%n!g- zk1I?i$JHXhy2m7M-8zZ?6PAeGIIw4%ykedW;&1a-KzbZ;-`{G7(5pu$qJEjf$>Unm zSpriL^e{r9AIVQc&dvLx7lL}BrZjZPlEL-?ym?0I(!Jrf;u8~R*rAVkK}-SM!yQu3 zf#z}7V%COBOH*HFw_{Mm1*BWYGK9pjjRqa5I!lVK6##&nljsvJ7 at LxlMcSUsUUNL@ z?LdJr0d9jF1QgHR>FEVlBH2JM&@ZWWxO4O7>ELQNWX&Ng2rGlbpkjjT!ZAvwO)<+L z#N{d$iHggnQ9i(YKyJ{lh94!ZtUYJwOfux^Q?%l_ at s{~*qYLpZ- zsflBTc^3Qu{uqDQah%@>w-Eij|IIE68e&&hKYl*Hh2JF-76OgMKDme0v|D#xHfsii zdY?YuVYq3X*KGsY at fR7bJXU8<&AGwTn(tq$ z#<}J6!p{#IF~Vb@!Yljpr%wW&=+T1+F=M)W5wuzgDOsUVQE&7AVasDhP-CyF!yP(1 zpcnpsq8jGoNNGqi7l>4Rb at s~y|B|L^0Xg^->`OA%EfN)=W8gPBZV}0&+H8Y-%*{ni zH=l{T at uv|NL2#hlLC}G$qB^MAT%-cOkeiTDDzfAIdV%iJy#>RmBo8jo?fdsBskB%8 z;JnF}SQ(uIfN~^um1YD-T4`eH;};aP_87wtj!{JxyjwN>FW9L#q;JRii9F*`Nx{Q6 zMHR*L;LIi}) zN)-VI>|$(cI#i*6Gt~)VQ0pPuPl#=P0|&#IPT2g%P5>OZJhlYy{Kd`XR(<+}4?qgL zO~UF#CZ~8#AQFpEG8n0(N`iota);H*IElS^{@m^BN~B5zi$T~r{w0*Y)wnEFxINMN(6>$WjL*RoVGS&a^0Ps!}#`NyR`fvs*iyB z!*2p7Y&y36#(t4riKZ3X=e2{L**vH63ijCq^3STw_Fh3&>g1# zwj9v|T3nbN7!uBaz`_GUY4XB+fi~zQ!OHTTX~pvo|Aqg_|H;4N5AerO7_C4Q&mn~N zflDC9kH~QO%18?yAh<#-czSLk-JR>!71=|ZHnl{6Me0HCM?E~{RInusKY9`lYjAL~ zY)a z+%h7EO}!kdQOvbx>2CjL+PN_0Z^2`LC<025EJr3s#RD)@NgyJmtlhe%0B at Z=iw&ja zmp%9z!xAKKj5o2n^VqDEko7xSLc(+hwE}_MSvwyC%X@{VACTl zJ(^Qzs(2MVZV)u!@Unltz#=SMK??b^+mMjVmT#zkxKuW#DTH0Hg2t=nGar#DX^U!V zU6iYK%Ln3*!Jp^#9ry&f0F#t}e}y(Rh_HeOh(QX2;mqymX4pL4dxV!4nVT6$g?=4!IEE|` zEQ-I%;->>o<6spgV1)xmZL|1pp0D42 at vlR~fmZW$V~#T2B$-YjLINRI!@z+}Vb}NS#T_soy7w|%Ks{ZI!JH1!4=4F;t!OlT4-g$sjhzU0y7gIhHru` zDkROfpbiu^e^6OKF(hv&u_9e|wzfWwZj^ijP(QvX2FD0`xj4%5NjMoCJ)lDjyEbo2 z7vEINYk1roF~N_WO^FK>ko?wbNa|EPq;o1*fDN1g*oNhi>&83$=`&vksDWqwDjCO5 zSqemZh at USLX<&rvC8dt~j`84T;Wg}RiaYqng{rA(cI_;awfRY_+WZ>d`IlKr$86_4 zF}5jAUKjKC+D at D_j>SNpp9&l&9vgS*URJHm(T}}ii|qdW^7T0x{a!XD}WG;&pISp|6@;PH}uW9O3g z7`zD*bL^0I5ixN0Q#@J4kb1v<^kGfiOgP&_!VW2(P}pAC%=0#&asll7=m|?%p5~!% zqFfE$%9~?u2oG;H$L|c)xMlf}R%o0>o75pNWV5vPEY`_CqjtiPv9hujnx(94ACqh8 z={hkgrl1M3#BrMRBqGJo&h6H--o+lZY1-)aXS z%k0by1V=(}1C2qvCF0`Vz)nKpkav+)L2P1fNi>IuE-LbyGsngwH0ys_0CKya4V*mr z?2#iMVKXWIc>Uz;TGtA+B>TFe^^d(DSVT zG9w|E|M>7AzXJyFjg1h1q`CPy7*(ZH*CR~Jfj}PH}K{URO zNNZ$CG!~#e#5E+RckfvGG#L!R&me35SGo}(kt!kQqrlz9f8p2 at iov}U{ahu2J0Tz1 zF0q+0=ZXg at x)9qovPdp7SWX~CBj;&-A?(w0(l;p;At^^Wwo}}1*F4{Y_?l3C($z!k zL7t-2vNhKA-9*;<&z21cKr4j|pg5rWYA*m9Bv*Sh0~Vh|M9 at _ZybRi+=arqk^mTbU zY6z#3yNUH9J0vq>OVU=I$710wLONu&Bu;P at izw&KgH6+%v6H?Tl2E(pP$^^twjqf% z7!YNs&1i0tn!6-okb{HKgX7>nxfTks)A*0lVC~c?hgA=DBOchx={td5Aq3Dvq at -Bl z=YqGiREj;8`X#9(krHwB+_@|=K;lBkfBvbSz^3XZ`66=K(3K9xRf{Z1Ep=1fOEil4 zAHT4Z3 at XgFlv~3SM#VtT0lx>EM?Y;t;lKnXS|>`9hxR6om|F8AiFpl;zqvdksSv%q zsCao}Wi)DI+yEOa{GdY$@k^0Af58GIg2I$1S9C-UxKdXlQ7vs&)ra3h(N1UrM!>Bp zSXq(~q?SnlC0z;a&yuLJ0FZOb_-mXCXLAF`N6@`9?9!mLIQW1dUJv&9kb1P?efHB4 zVIcblw5zJ1NMEi^dISiknr=_9*w5ck76gK@{7!UxE zxX7ezsefBA!#i7C$Q15YTnd)fk>cq~`3{$9(MYGv2L=(^fVCje{+W600WKv^Z~#A6 zNIO8-xlSO13thVOD}R%Y9Fp$2fq at ubVQ$2jBJT_47R*Pu;v3QUrQZZb$saz6g9g|o zfKb)&y}9+wE;8p@>W_ey%DX6g;erJQmDsdLM8J`6<_Zf~Xnnh)K`n9budiPT zkvV^UvxE8E9qBLRN)iJD{HSWaz%xp-IrHX;ylKU2TcDkShNy|@B$Yrm at DE#_&8j&~;CxGa{>(8*4Y)M)Wf}Z+QaV41 zABb%ot?>DQfq2pMOZV0)H}yVDU&XRQd*KUEF)@BQ4L#y7KfR!JJieB=?Wt5%I2M8; zh&C+VK-e3%5PQ at tG*5hMQmcKRK3h;%I3A^tMQ_Ak0kQ)Jg%0sZVe=x-Fmn)H6v1d6 zOEl5qxZfubL@It1E6r&G&L%j95W=60%*zCL^Ch~Ep%%m466)h z^+Zt)rpmNw-%r?bh8R!3)heIPaDf0bQT%#$D;NU`PT~z^zC~@E%z}zod!G|To^y)O z)2Vv{EgaMwt%~jCh;b?cD4YS%sA9jkSwFOYw{NH7J#B1hqRZBqlA||DOP3ijAX5h*8({95RH~cpi~4 zatIV6Pl>l8y{-NE30rfytb=V*i_{$%p+U83Yk5CS)NTLeS6fEnyAQN;qv0 zpQKc1u-x>hQN8u|an>kY03Ec|enFFghg8L?HO*^>I;2-}0dQtU at eOu@lgrgWq;{Ld zW7xex(;w at 0rQk}_p!>@CUzMT8VB0`fh1T&wN at +ynbc@c^ZzLje4D>ezimR!Nu9%nC zRgM)%oN<*a0S(Bi zTm#)2+%o at +k&1gcvSI~Rk*iCnwQI%d at 07Bah_Y1I^@H1Ls23sr%*~a!2`d?RlDt;c zJ42{~kdX4LS0j&C!5J-BaF~G>iwOwKGPZ8Lx;luXPCtT`6YbVFN13SjKvR~t^kDsT z-VduS+0_jHa_m?y?6n9DDK{G1m~4R;@SqDmIL zojv!{{x7-I3X7C*P8(-VaqwU*&qU2_Hg_l)Kdy9MRo*+w3f58I3S_{^4w at Qa96S~F z;Y0HHUy9Yr<7(wf`t*P$HmWEz+XCP(A$EiGngD_TtEWY_>$_Ov;0DldLpOA7;%C}y zcA@!~F(OWDaA2=)UAizl&+nMEMNG^&nvsdYLX>MVek7I7{0QX^QS?fc2J|BKq0Az+ zYT42<#WQy>frT1UJ*llz6p5LCe4?OdZF}~_JXDgJi z=#_E7VP9+`cM*LJ!$Y_xP~9k%Mf at E&a^0ABZ{JdIiyNCKc`$d%6b=&sn0Jd!MTf1S zH1O;|<`Nrzl>|gr&hmz+{cHM76`?j=y5MMUkJz#N2w53%4TTW}L}+)rFqz+UwMSY( zE95g{jy$I2;FV2%Hw;&pdGo09A}3&;>Dtu#?8D_uyhGm60Va?n|6~afCRPA(J`=0* zxNf{)DlX=Q$i4z2sZoqNm){cVwg*+OJh`5!T3c)lcv$Z$uH?e!vQi5}t|%p)D{p$`uDZGHqb zZDbT#Qe7p{dbOlNU#M$py5kJX8VpleR)V{g)Sr7zDkWsGrb;t22B#v-k&`tz9H{R3 zAg*@N{exL!0%Gj;n?jvRfulWJTm$+A41-8DV<({hAwDx$O%njbg27nH%J$D&qb&j@ zVkg#gto5`%W1C!p7yLyC48_Y&z%Cf2Qgf{j(oJ%`V)+f_ zOtW<}`i0ioF|)(KE;fruawy(_1=Qp~Z{`(vEUigp+)`T7Tx^62fH{5=aTf&4ByAb+ z;NryqB>2H^qYr7;dIVLs_Wocoj9>MU<_*wRIF6k=b6CM$gql1hu?OQah!8fDgRp^= zFjP%J(FolUDaL$rG}%XazyM(c1CJbU!X6v)uy`v^A*wO5#e4I=--}+huyle3TY(y@ zu;~GYYK1Y+JZR9f+qYY+nGREi>=!3o(fFHp?|%LMEJ7To``{zS|FR0=4<}f;R~T4v zZDVJAqFB>7u7vVH at fn4Jrm`g~c^Q+aTSbC!>$G;`M)H}u{s-QShEE7qLyBGS%xT{UfJ|T^4IU7=@+v|!e&c7y{JuF|IyG?E4g+p5!oPn(t%*MO4_`nBBa3;+pbOP zV(HcubhXG7(8aIom0sTAuXU;`Z8a3MJ+5CL4xI+-B+^aE#9W3ACDCL>CgTYtzP`xTD^UH|?WCXqPr=1w5P*ggm_lgBlFwG3 z)GNypD^9TJ3K2DgJTh5^vx0+J^#1wl*CD%a^7J$fa*-zf{OKY(n5E5fQg#Hh(UxXf zao1+$4m&t%pY0U4HkS%^uc$E zrV$iSaBwiI4(MqdKCIefZHozB zkIC8?YkE at efBx)nu8ucDGX-Qw^Mp=4Dlx9o<|n*6OcfMWMc1z%+P9CX&Wi?HBS(JV zexnPKYrL$kwvT zVY4}Vb|={m8X@>ZQIofg_vF}@&tS^^H$hpIBRXE5J at Fb&QkBh!8K zyH*Gx$yer!`)H}Y-Q?j26B?v7z6jM^!DJvj{8GPV9~9Tp+umi?l{X!oxbDJ*MtTN( zIC)oEyre5usj=Xk_rTlWodjFZo#ChPsw9)uF7VoX#T+<7Vv(PI%HZHFbkgPSZiD`! z%;pL6=4qawI>=nS`^=fGWdV5dQvZQ`@!A9)6u<1$vnRyLHZ)i)(Hqg9aPMRO5l^6# zNdn?(Cp9)^<^=p7^3S8*fmLBFC`l~cpPP#|3MawDb?fl_|MlbFPE+n-unMEYx73{7 zQ_-K_GkM}f-Vswa?Al`ph75 at d1e&5NU2uOnbLv$2jT=Vgy5stYonB7 z>KvFzq&7($oIezo1N<79ZfMmCc7ynGoQjP)(I|mzNI6M0OGdAJ^eA#-JG*U+7SZQo zl(BjIavFwzuJvM1Ckv^t=nYLg(UmiY8qtw2CV6!#e%Y;i*Kkdd37PaEQ%Y`m92yjD*&>c)(*Ww$mk^S_l;Ty;)nvP4*SQ64ZqD2TFCrrn4_79k$gkx>E( zl$W6qvz(zJ^c_#M(BQOe*Un&w943pz(`P{?zg9C%$tlrqk!ilhE1PZx>oy)few>() zP;`7YV8U)=&Bu at 0186`T#$|~@8 at sv-bDclZ?SiYK9nFGC2#1+W;Exbn>mwQGA`uj)8cD%G*G at AmUFwaF}t|+D{_GQ7O|l)Mzn-H~4d`@oN+K`d43bi|#o0An970DrBoP*$p zb3Uv^`ET;1UsVD2Eopi at Z=MTUckZ%c%sgJQ)-p1J=oZiLJn{_S&sa5jq3AE>A!cg0 zuamlE3mSN_%Y0h=up&kY#;sd_|Ngy+=}lV|!4b|lvu_4NE1#$HCi(erW}eo!SiBbe z%~&@kV>&d)ieKNl8$V<2Sxv(@SSCFYGtiW(kaN;15ei`@%(2XZ9z^v at L`0(Sr=&qr zC#4kq1C86B&e5FpF1EJtpm|LZSSpiMDn?1ZkL4CQ^)d4DCESYQWlXk(vRR_(;ab)v~v77#g+Y9j2vAwaGR&x`lOE;}YCvHfS4dO^W> zt~iS=+_FeIvJ?YJyQaTyX?G at CLX@P#-jQwcCss)RVq`FlnYt}o*n~kn0}6p6hHYqI zh>PQ!TLce|N1(z$u+jirk?ej{t*=lgbQCo<%5(6^9k(p z&f&NxxyC*_3Q(wB4R!XzEaaBc at Wk_U#R>|0{!A5b3A%9#_}AFd!f^58#i)2-rSZrm($VCk4O>!Kc<4~G z at eu@2`BYjJgL~yABnWY at JW>=w>tP$4p}bVYuPiH!SQ>yyRr?qdQkov-$;kZCUGknR zAM1Y%ShA#-uh)(N;aVST6g|&JG_}*u1o{yNV|H)nV4yZVYb0lkg<^~ptq7sD!GyN} zrH-{@ccPOCcdA~Gk`ai94hopB5`a^1zZGn#=NGQL2Az=0Qz3Cx$>5+vjhnp z at Cs^%L_=*7|2lt;)Y+U!`-IDJ`SKg&Qq-BeB}&cMg4v!=9h%;2i8?P{v0|&YO;i1+ zD0eHCr2OD3lDP at 9I2{QisQeyU>O3=e47wP6F8<-a at IU!K`B&7h{2jWSnB35_7YsaT zMBtQ5KOng*Aa^-xlUf6jr_JCcK|Ecu0ewV#j36&(AR|JDTvFZmQpPMkK>~n4tAg)A zdUHNK_{n5UY-lmkwd9K-wyS!KqV{M(0ncGBKZ#9gs&&l%Q6WL)!`x at BZ;@CE<>=N) zpJy5FhoF=ry|$iS*s){(@{=rv8q5>{geux&H*RERCa at c<5#lvfI96?5{;k&3q z!<=RWXWC#(4Cc6L6F=am9Rbu?z`ye!xvHvLjWyZ z+WXWm@~FzB3*|^=rpULRnv8S|a07ahu8BiTg!|dcJ7XYAt1O at 6YZQsy$;3&M7Ketu ze)S5tic|#|q1p?Z_k%k0+n51~0z|Ip>}UIht at K(^OiU%XWf6)69nY695D=7YG!fOZ zuuldz+$bxf0MXBu3sRJc6O|6%px at P(UT2#H%41|kMj{AgdhSPyh-Uyh@|I!*{A=LC zg^0H?QN6*^RoJNiMm(t#5o~RCw^9pe at 4LuC%$x?_g*y52#fzfRhtcuYZU7F+bBR-e zH<48e)C(7#ADrikxL9xTJUC*?0N^x1(MMk=F`NPm{VAB9o~@tJPofU+%A}FgA`2c&_!i9zw1SkDX z%+0v4FBj3~CGA+Q9S;HqJK?1Ntr~_9!lGbXJ?ELyjBYP%>mT2`r1@@SV=P$!@wUcZ ztgzgw#Q3o)b|yV7`6*^+`1l&?bn96?O;-S#Pu=(@esBMot at Q1SP7ZY|qaiIFW1&^R zpLr?f&cRi*r831#)=i+gR0>z-$*DzR853=y3kK>+DVyb69^`>>x}?+M=GLC6OFjNS zEdVX%?_a;#r;zIb#Ioj&LDR_IY1O{=6LUGvQNlV&&4M zCm5z7;xpgJrB(kC2b%(={BWefc;`GI0?L|4j~h)cLyrV> zkgHvV-UjabDGWP z;6>VIfom?k_(bd at tO4&3z#-a%+{hy%D8^TPn!l+EAk>YSIp zyTi{XA+b~DI|eqqF97S8Z{PR`qxX%i4-EFy4qrrG!Ry9ENgpH!$kwHcZg?BpCYoe@ z`9cu%$eSOUOX|w*+`C6`ruN~kA1n0c!=a(!YH)2`mF4(!@d;SnM?r(?ui*nN_6 at 12 zL#>U1#?oGc1q)fcIPzHr%?W0|(d$+1r9xoJ6C}!(F0q_BJ9EWPVP_WZToR4CwfWaX z at WPD9Ww!PnHcXfj$rLe|_!iS?`E%W7&FK6^o1SO9i|DX@`xHX)AN!^7FExgWOt>pa z>P}9#>^F2dFZ7Qtz~zCMR;a8w``-}3BkJK1QVt^&o?pVZLV6E at T`ITZK_yF~G+6N# zz at ur%fxP86EMML?IuHH~G-0W%LF4Ui1#F at y7&Ucjck1=bO!$&hm^45 at SsUqeuS2;* zRm$0t3z{#~N9<#SS3~rS#GBHZ>eSvu-})Voz~Y_@&@W2Zb%m-T@~5Dqt1i(dYng0| znkxvQ8FK=Ili2WIlXtBoFnDw$MsVNkzK8M~2<0(;2xtpSs_{)Zg?<)hj=Jd_Cw0*x1g9eh4`v5=tf#fxua5D@!AX4T zpye84*&;Cy_S}yhZtP*rXCr~cmrwu&XONOE%-KDvT5b;=Y~ z at 0G|!&Fh$bXWEOgHRQFyJBq}FvD5Ts5I6$?nc0EKft_)7Wj`;;+|=$pua!nT#}2Gf zYkQS{kJ*4|jqAG~d}K8PrjK-IH*q*T-N>57_8j{%v{TU!k+P^vUXmS2^}tmyo3>iB zE^0UoYek{!QM3mt{L4jBR0HY-dx<+%L|~Lm42R3ie{$Jm8GHy}k7obvl<+c{iVFg( zi1cgW!u1IWYH3zrn3VP`Q!_1t=f+bTdOjjALKtb?ec+ zJN7HQd2j*q9ve4?R2OSP)`6F}`$QPP6jj%iK6&}gt~7Z~&D25cATSoBX+6D?Tg at K} z`e-Uvm|FLJuI|5Y8)!_kFxKse^zOg4c7Jl;$AA7=Rb3pz at Do=bsiaW?o*#Z1+AdC; zyg0cmMi>UV<~~F2GLEEjK!8!?Q%JD{nY69XLWl*1%8wQvCf)nwWY&_b$1b1$*;vQ-vs&P{muIQU2mSSQU^(J!uQZ*m- z`0|R4Bdm>pnlvlFeEGtyC##}$`oyge)YJ^R#g!nxgMfmQj5I?SX~WuxfddT+%E_11 zdg at AH{0(P)V`J-X-MnpBm6-@#gLIrtfs8($EhMg#|1jjM$sHI|CuwrB2uXHx{@bhz zheH&wvtyH^pql0%W?ik9-V6+(4&{wua}tZy>pDNXG)iE(3B}XVWsxwqWA=^ZFCu$J z-;KkdpZw3HjdrVWo7Cm()%tc`XLKk@*#CEHkygV~!8D-oBxA}<22e17z$X_~NCPqoszn~F~wXK^*9N_~7IguTEE8{6@*!HSgVZ37-ZG0v83ae!$PgU at 5gVffng*oDpfN3C+|>RRyw!S4zku#< z57WCJCWC>@4NlVbrYXjw`9GS at JTB(_eg8Alp45mETBd}MWJ?mJMdE~HixW*w=n%4J zIhtv=mn~T*TO3>VY^SM^tT`M)G074_DTLJb`R?=ho*d zy>~wR`qjgoJT4U^%?b3J_Q*qx_Oe+T4V>xY`o zYk+=w0P0K++x5)(%$qw`RsTq%(J-H{ef&>USsn;aTy8YTPGB5PsLh7#fuD))EHu5g zI7#Sj+>bB?64v|7CRVJPCIMp8I#<4X2edHQAr&N^5|G>gaSwFBE5PlG^cZLw85VZ$ z{(XE%%&o20_&R{9sO!Wpws0A=VJto&wc$RSdH-#oWjk|o$rO=k5;TF{?hNVyoTr#7 zXF^^)!es9>xv$*O%D0qaC|6TIO?g^A~T5y8E{TCx2lBH$+>KKT(S7&iTMoXP{Q4O=Eo8F1^k z(f;qTlrm%{Bu_lac2>>**vmXLbQt`v$IfGi56@&!OW~^YDCIjpe0UA__hqSkag3dC zY)bWqM_;vO4IYgQRWoD4Q=z6Mry(QHGKwp{{aP(CLUjU at Rs)7WF`r)+#Z#f(<1CuD zYE^P>4pX2V%vXY6gJ!`;L0y3mgoegIVMavw^CdyhS^G+71wPKh=h=uBrZIt*mxskM z|2(*HV->xYb102g(Y0^%w;)7%E-!ds=Kzj%CnfIx$35fR8l z4gXWq24!vlj&a)m`274%(Lz27`+SOFIQL4Sk1@|ep_*j}W5>l*2Rd1swrYrOaJ++-K}JYBmsnNJ5xPbCQk2U@|+kFlgWsiFe| zrlKT34kGN9T3(k$c4Lr=!NJ-3!eJjhn&OlJF-{rgDLPh0%X at p;(%UVeOrq2j{Lv#K zXfrQfWUTocPX>g}wKZ-WXHK4EL*le at B`F%wIA at ZjVXy#ZJsappdH;_STnRK-h=?p# zCroODo#UJqZG-Y`en at 6j!pF|jar5v14W7lZb~NvdAFHkHofTEQV|gW<2Iyj<5jc0- z1rPr!`WtaZo)I?58*GcMO>qGB z{raU3+Ye+eYGvs1g*PMZAb6C)236ONXDR8&2K{zDk=Sm!OW zdfD3WB!Z3z0QfU!#=@pgoOpr1^w(cDl^JB%$@tkq3s>nwv)rC?g7F};gmJEJ3ByEy z at -&-t>#!i+TlNtxu|%}DN9EnZP*)Sn$%`}S?cg9W7X|7c+PjwoD>3VRQF&WB>5&{8!&M>zu=5H-$|8ezr3jEqzyVTmVrudU*8F}yvQ zewm8U*8#KWy(up_JD29aF|E}n%L=|^3 at 5BnqHalEyLQ%`In#goaH(MCuaZET1~E}; z28|o1UpKPKjWyovjn|yUn)*6Qg^4q0X00dkw7E0tyW at EO+NmH>g9kIx{uU&d2dgeo zuKI27J&Ga_Kj2$DySX56{1i`g!;crWrH0niOThgBtI_9=9`)t&4H)nXeYvj#_vQ@! z*9&#yxt58u#F9p{+7DT)HO2oaih?DR)r~WCr<}``8(t!70_roMz{U!Gx`RU=O36kv zN{c=qmd3Ad+V(Vl8D<9*fyj!e^!X?(o1mcf%ETGUbvX0-=n=M&Mp0q?d at tFx2;3PT zl$S3ZmrJuBz$7z68du+yHGyGaEr7sQ^s`*u2gF}kd~J at YCuJ6o>>??d)Oq&NVRnVO zxmjA*qAtLzhA5&@v8)QP(lj{fL~tcA+)CdUv{Bo81In+?RjjieaKmpDOU1nBWFal1 zc+#BMf}YY~Ir<{ruE)-SO>Sd`OYeen%C|vLEBmb{idTv&gIqbk?yk6xL9EGpIPMek z5H&^iu at hT$NbIO9OU}A z^0albA+C at r^uGFF|H*v7 at ZoET_UxkO5JO{PY9#Z&dUlW8u?~uYZ}{w)txK3DZad3P zX>D7!M4ih)AtO<2bFcVx90hKgYpuZ<^9uK$FW$ivG#4tE77?*Iz5D?JJ|TLc at D?k$&;T!0uUkW6`3?W zTryrA-7=AaNOJgavkjq0p<-RLXg1u}g0aW29cJ=m)6^uQ6YT*B{P>Y0@{ehgCbJFX zGRtdOnzNzIA_DKpRtLXz?hkRv&y8qNm+?^cmcU5wu=B?I(Qj~=N5>QxzmD5 at kX zWo+9B{ek3(1n)nw*khnXY6u2EH3+YQfHhE*&eTe23P+H$rZ^^G6wcXzWbyI7j9ah{ z05~mcN!YP at Z|>Njj>^cul?kISYyi;F(d!r6w5l=&dpJ at 0C(s_Kx>gL?u2+!BQLvs~ ze3)eYWGh;sN80Mj|wLYb>&pQT5D6~p36COI$Xr(U`DCp>@8qn0x zRZ{0 at oP=>#aDJ9e?7~<1#tp>bI$PEyB at F=-fa(EMLfQ#c>}5jDUR7N!zPhq7+_ZUf z!Mqr3r=z!MgYGBSnn72BmoNAHeNL+uEf792+ONC5ZB#VHJ5Pi>gt?md4^f&0<|+g+ zDo~wbi-&(X<^O%;NB|SnCMG2p7a!+KqCIy0QM7+QvoSMgF2i4s=>(m~@AO5`9Go_F zm`2h(-0*rB(m#fipi-NM)YH0C<-z9(`>+{wW=M@{k)EEDi13?#_#gbA{7e25ln4kp zf0#0yfmhw3v1B&t7doIgvz at nBP=2`j?B?lOS+Rk*ndmUo1x|lP^hObJVnJmy8X%1^ z704SZf7)4MedR=uEU{rB2o2wl%&$4oHmWT}Em05Dfu2#*UXrpds|ci!Gy_gJk#NRl=Z<}7n!nNCp5KPP^dng10tbY(0Wn-jSOFzCdFO& z%737L?%lTek=t-5vJ at SM(?E+nUIq$Q$pQFeCtbmhP$&&gk?E7Aq5m1m$JCxK(%euN z_8BaLWtOY at o)*)Gq+Slr)fnhAV1~;I$`*=b;sOdyE?`lAf at gjGC7v^O+^n$@gdOQ- z*MyQ9xR$w#K{GAsvye4Yh=XTQZWvb=6S{b3i1=fNJimRr`4o*17ecT$YmJ-eym>tn zycw at x=lHaq>2PStoICm(LmgO3{GmV;U~zccTsNmJ=)gFMaR-E*#j?9^- at QZe3=7ac z^*SGcLxK<)p8=3-7!m#@RXTo80Hok|yfvs1!^#uE&Rh2Y=B^vIe_MJwBoE{m`{aph zc(VR)6}s0BFl5FjaNM3z1oKwYwvOllz+bD3Oid0a|o0&_#k)aFtuq_ zJ)uwk^9zbcfswl~1Nt7iAYy{phTYh at zTM6mJfPh4cjUdmtq@qqr|5rRX6=^G<9UnY zx1a^c9>u^k^|qR!BeX741i>%(7edyG>`R*4zWseg z1rVG4<0u9miSDAd7ns(k4JAg7Gd3_t!kgt6b)4fB%1JO=X3s^cAf6J_OeptZuoSkT zzyFRk7wls7w{Og$5v+b$?s=`YYIC3~sH z2Thvv7k3%I&0#!pnDYnrA#1e$ciciTF4YW02k{7&<;a4o8^r5$Y_$8RAg>I3CB0tiF1+5Wa=prX+iAIeY*S zCUHBfd__-Fj9Z(!zw>rO%+?)k9z#ex092jR`-i~!(*4q}j at ae71Z5$IoYg~4L5Xf# zIl$abx?-9Y*PkHFTxAq9>?1>a=JR7Qq&iOu_<=EnqWrl0GL8{q|kSFyT*cTX_ z@~=s3nv=;y at 5WQZGu<{WvPS>toIYYJsms>^6LwWpFbhhQ` z3m4j6!lL_F(Ij%E&gsoOLkTse0~5RmZ9uPdXk2d)d>Rkej%3kYP3{l;eneRK*kQU#o`jO++{Arncu#UgPQGMv zfRK;!5#g!w2M3K^!-RSu03a(?^Z_8Eh8Vf`9(|aq$Qq4F>1Cn}@L=E at q%h5orU21z z*sy_1EY)FzjUeoe87Ya5(nS6Do7YKO$vSlG7!dB17(qe9)dz6KHURMju;rOH(hmeCY4CtUjr<4@$RsIKl4QnqjJk0(AM2%G$oBiA!SkGU5?Y)=PrHR>dE zR{o#VxcF$(fD%A;TE_Op%S>%NbkCF$-hiSi z`}d^tXJL`LHz>gNokzb_SF37ogD!BJ%fip`6e>iF(9?JT<3&ZC%F2pnGB5atpxs~- z)f7SOO%~oRK{`L5dvJEp6^%yLvnSghjbxtWb6R7H27`Z6n2>>YVm{(q1!?Q16GXv7WQh3F|Oy0lID5V$UKldeo2bdxx3p>#&@WaK%^NqR2ysx zVCVx1uW_bWlA6wUh|2}I6 at JCLcW6}BzwT8MS9sS$#i~03 at 2oR9< zt5(66}{N#e2JSW#Y{-!V-&i at lq#uzyg`(!|e4 z^MX=NE{h`AFqwSIo9q%lLHc`_xPi0y}Xyg$c zkV9~V74(RE(`ahwC88?$oIp8XdBRZd4g{)pK==jh0lmu9{naVf zVb+7QN=U@}o4Ez_M4_Q}w>GO!TA%Ev*oT}9LvQwU<6YWsX{{4Rr;9&Y<2*y+Wf2qU zaPMArTfC-qY+-nX^iOhz6rq1^gyDvW1GB at 0CnJzj74{$f6Vv~C=ZxhYX;{z~in^H| zjAp+NP?&H8j%?sw!@sy&T|<#T at s73&v0L z$q$%0v#VnsYqWIcGZ6L_n_n-ZN38wPRDXuuh-pfL|Ye_kG7 z1EnnzEWFJ`!K_GbE0v1c*wiIZ|1)^6ECq%$*H`j7qfF`UiZF)LYH_-PCX6|`PyNzj z&uiYGVZk*cwsKyADT?2qUk<|An`QRcTEWp>+`k_;zYz?o`0zSc#-7YMo(l;?3KozJf5jKTZmG9~| zUw@^qV8C?Y3(GQ5fdHQKc?mc%XT2{YO<#Q#{Uk0mh{Uod1Al<>QP;PX7ZG_$SX966 z){JV;K+W>?EFqW;P&$z=peI+SFnA6vS0qSb%T99(7gGEIw=m;ioG=CHNkKW925xOA zw*uKSIfB>PUYZOefszIR9ak7kfLwxz0H|dhb`S%Wj=_xv$PR*lL22iJ6pwvDhf?aP zd`Gjcl3)@XY!#R53Qp z=mJ9OgSzaSc<}GP5L;5upP(2t&v@!g-vHRGA14S>5DT?k3vWqB&+Fp-aI?dEPTQdW`xA&`6IEeqDn>{&cRVSUku#Pm zK5iA|ht`U^6C@&|?K8X(sgG06);0PstBF4Nt)Vf-?Th{EDaQ}oGZ{vL*zHs{8_l48X4U0OYhIgOP&g75KYg at 0bd2V<2>5}IcChfkvaNzT& zAKn~)|8U`*vEy(3{Iztz?)3$~OkW?MdkL1)%R2N%>#-8R0yzrB#=xbuhSR(>HopE* z)ZPh&>lqKJjHy_#6j@|?0K6|RU2tYPPz~RzI%>rcjl9ZRVT+FPQxQaZ at IGP+UyZ;9 zJUn)6A7;WSYg0rty$U~E0vFGnD?WHcE at RksO>#1#68#7Ju}UU#(PB_ETU!xMNI7Mr zBnt|$Zz(oFUPcOmkz&|{;QuleWu at _pd0NY;^Cd(h5Guk4MQ+7d&56Z0bAkl07dRPW znMD#GKPJ|8x-?!UV~d~E!UEYId`+h=oBzfw5=8#ySi`6CR=$j5-MSUYyc3sQs7x5{ z!IGZ!jtug5>9Vw;zTfp at Sb=FX4o5B;I!JTctM^5wQJJ}JL1UbwJ%vu1~n93hOxr&aJoKtH%@6zr*wZ~$YM;qMe* z=*3MEXny&5MZcGwK>=qC#XSB3)dw9ks$Z-548Bvq(8y`-wo{fs3Dc?OCL&+bHDvwA zSteR5jA$T{(F#@x>+kbokE8=F(Cg@|n8jJBn#oIVKD?A(pZkK`tY#xgVq;y0~%2CpZ5C%HTMqJ9f%+-hv`}5sqb5(Vj1JPqGbp z_wJDnsT$+QB_&4=95{;t!nMUL+H5w1lP+v+Y*;okE-(-_w5_deV!JN&3pz83s~aFu ziE1oFtMP9n88^o*i=#KdPoGT6yXvBQR%z%S>uMh@#yLDp=R5OEG6ap+5 zMy(16o+75=X2OI-mJxW6GsPZf=ASVPfXYL8(ZHi|a<=>l$i+x9jbpFrclZKa9?;T( zyAfml$?-$9UiU4`owY4%oOhz0rIz+GFk2GHO#nmVm{2iEs!_cQCL`+$2E{ZikBkJk zT9%*KoIaWgQ50uks4FPYW*G+crb~`=WBJ%lxy*Cf*ELtCfRzEq$yd?Wp=Xk$TAVyb z=iq5;*27Ko-^}|5hI5<%@`}2V2RS=MU(cRA>HVx;ortXjGC8!QR4<%&kefJ{p^SW1 zq$~B2VcL_mx^`X0u$w|~7DN1r2CD5^EKHSKyUN}%EDnOg$}eCrVt(E76*#5P&v}k5 ztHi@;-m4oHbS5mmc>lhcV>Way{hubu6UOZ93{Ek%JAz#nqa)RF-G~R4v55&NnD^d$ z1X7`#%7B_MGBJsts>H8~t}1m;3>+S{GuyMqj6rrYYQhAg>PFO?bY9Jpj}oacoTse8 zZVvh~W&c}T;D-)H{-qq8K=+p5{g^aI$qtWXa^JS&MxgQr7&hLS=z;Cm^zfco(vsnQ zm>uDnV|1!q_zGYFaRF0UG=0n%up{FWK{p~In at I!u8u#+{Ua~Hm-)Xf`{7pJY_#FN` z6gVeNsNTPQ(>W?Gl-T#c8)!p!+w}#n=Jm5SP09~D^*GY4T|=+5o3E;)8#Bz}Vw!y( zq)7*r0JZ&#N6w>zVkMxW3V^=hUP1^QZz01gyGxe~{B}}2g$I2L6I65>!Y~pVyXEd+ z4t#Xsu&rA+khyo159tAkxBDGzg$+;*-sJgqgs~0;wsfxh1D$|X3h~%bdq`u2X zb8~d_iiQFr(tx0*&`&o|$)m7lI}r>wf%umz8|j83p>&i0!`VHTAsxzzT?7BxcJ~cD z9Hz$A(U&-v$WPYu7QrD_U)=-tvifRlc_VS1q+pyNIJZ at oCn1)`?WD?5<=72DM)d0zcOqc*-#pQ>7Q~guT+rwB_ zW59Ayl5*H>fujZ2cS#d=H<9-{bg*dChG{zgz4w4n1&h#Wx3 at 7gW4m7Pa_7{d%Z1Bh z>!aPBhVjQj#Dfx1)X$mIUEW!de~CX!P6n_D+$YdGwx6)qBjmO+)CE}ZocA)Bjlj0+ z0Zw5N1OU>+Ddg!~_Z{i!6W|Mb>o9?fwVL)dYCz~WFktOwox6I7FCapCUdKI^d`ul2 zo46lyMMz`5xb~xHOCR~ljERsxpp8OLjl>v=i;}-sU#IL}wzltkLq}b8Qg!T4`XNS` z7`_EoptxnGy)*N0x+`LJk1IJO z*V|tLH9^#ju8}6#-f|*br7j4Qoe-5?#LFxgvg5U-M2MAG*)=BE7Asj6q z*vMJemE=BnfcG0@%0sHKJ-eMPg(WmRMqYtBZqWSKCOf*H51CCgLbUmoTqToG3=IM(zX!K{-ljns+`VJ3IeJDZ2j+-Cgw?H?Lpv<=t4KRny7_ z{Hrk=7nTsCuUmU z(}}sVuGK079Xq~J~{5VShJB(_CRRR`3 z7wiJa17-96Fq3dVx$WWcgh{fGl{6W+Wfd3KfkyCldHix$hJNP*i-0pB8TYC z#>OjA=i;-oo)S9QR|yRku26`Q1q~4YD38ITlKW;oIgNf{1}@}ko&Hf;<@)t^*;I_m z8T(+KXaiL|)ug-zM@{x1AX#_Z-kZTSoa at Lyc-3s%wv at Gl?3QG7dm=n&m>Tc(J9|GnAsP27DR7z+Onk56G= zVPR#v?1obl^k$1rlh#fixAeM9~H_tqFOt at +OvFMf1 zWnVmh-m731OVP-BJ9h0#REujz;AD(bAwNFtCQAYVtwcRH<9E*y;8weO<@RJN-n6Kr z5HR0={$y~0A_>ZbdxS(0^TCn)%@f{|z9{lhS%cus<;d}u5fvzgGsi{e069Y14R-#@ zbaB-ZPu4A5ij;NGYc~v90}9`5JEl*PCl5g9a8d9U>5fp5jAYs1C6l1(7Ju4B*SDqH z at 4RNRU)UMb=pphun!TU7Wxfuqltr at lH=_chM$P3W0#I>qKwGGSQ2N8sve5O>{rj+w zgcdRpr;}WSFcfT(2==<>d)DiKVZ$Wj5rHz2vW%V#=@L_GyYJ$e#H<;IklU1UTK9Py z%hf{B3eCVcL1pOWOP3I(5p2q=8~J9;J at ibkgh6;ygEHpem at b}Okh{g at vI)wM0Y|1K zX%ASaq#ZyV2<1b1j16F+$LuGkjXX2}e_$oQP%JeWvcYe#-v#vzAOKV{1LgoMkchyH zFj~0^eneT6yLK8_r;hOgie2vvE7r1(>{RI~zP$2>!S^;&DeZ6BjYaf;Ci-C0lZeX9 zwm8mdcD)}kRlGiPp8Y&M>&pwwsGCVJ2W9%Yx|+pHkx4T#$B-Z5Q~zIRLQ;~IBei%} z;lKn&v2z51bH!>wTfK9{bXO}1jQ zED$DPMRRA at fM$#8AZLN7!TC7U47bs!y?J9WvXS=Yy7!ULoPh%du-H}duUX}9XjzHS zq}w79<}a!VxtIYe^!j34K+{2J%g)^0Z$1k}#7b$-y2WS(d6+3ue`Zm*TM9vn&XJ%D z5G`)eaidY^&;K4z& zwJU%LnXaoMw7}`HPZtuby*S4(Kvw0F5h;W8VDv z at b#DvlBmG*!1y`6A;qK^8z~d8Zf{n?*>PkfLCS8QZpRn!+U-wcl>WIf|sR at 9mK#Z za~2y5*;KfJ$_AK8^??F|GlnaSO67(4k}m;JmeF at H14pi6RuOXR!3^}{yfW{H*;k@^ z+8q&fm0k6cJ9a6{SFc at 5aH51Gr~^F%>Vld?x#(KZ$EQ*Up{f*S>ABx=B5T89SDl0U z4vjpO)`q$?c0>jMnZ(qdP0(=gcY{{O%An#^`E71eUwdcBy|IB|7PpyhEKEjuR5rCY zpCcoXq7W39wZx;GnD=|evf;kfng%kZ9saZT6P8e7KZ6)5JH$oq3HPsbgP24z z`h#MD=?VXz4Em+teC6O`X!s5z1$@exKXmKeJL_>J=p2m{$@nb~Fw*TOhZ at Wr;;^_Q zr5I%%>$zPQalEC~ocYC^rI5LlmH=FAt~cJQ0&;<60O11IJ(!W0kU()E_BnL!T|MdD)r at DJM>PRwzBfJ7*FOrLl%UV z_vH+*-RCQQejo*9Wq$bh5ht948~sg_p0W%Pi1?%{txyAO737h+t7GTRMq`E9Lrn_) z0XaBSAqoa2RwQCpB#Dkjg+$BwXYaP=x)3j%VGkMzcCR?-<(F4yy?K6aPAC$4WU-Sb z+0=GXWaUpgm3yZe8je?wl!+lVro(QM{prl9$5_JB<#v_z5Qpu=4QL7!P>U869pDln zsASX7$rC3Y|7h~+;(Gz+QU5KlvY$%9?ccNle#P1?d2{TsnPOu4*fC0R1y2E`5i=3| zHgun=-00=Yt<{a%V#uW<_-WH at HE&)@LWndh8!j^V9ghmW5Gxl|o^8%nuqhJs3}R4J zr+256h(wXnrbP>||NaLXfPVSl-owp|#h*J=DIfm77U1(|Py+#JQG5$KAy~bJKv)skxF__`!d}LTgLyXa+(0y{c@{TuF7uaQm?Fl+Wyi%?T zS+RnhY#rLJg+vtsO2C~PH=bnAZEu`_!Xs(1oc`Q(7WtgWr(R=YX^FvGdlwg5-ca^B zjv~DzAby_sJo?}#SP=ak`KW!dB>=dwS7<${lJ(L7I2K1&VbUB3~(;;ab9>&y3#ed3bhCs ztP$;OZ3urEtsxIXR={-bo!hsMhUVCIQ4kzpBY>Fp-hV5tr}V;j(=a_ikY0x`u^qI+ zBu$C!=FYos$Z6ZRZFA|~ok1NowxbryP`5FOo*Zn0K%B4_Jq+^#)TQo2S_*pyz7h)v zfJ_k2bGJs+v+(^xZmr5lON&7%Mv@?!@olI{eKP`iH!0IGCWzb8>&QMhdKwbkL7ju3 z-Lirs(S~lnP0QcH!eVg4#}soVnH^g#a6k+VL0W4!YwcQ9aNcsAhdHDYYsv2YTwQUy za=|x2=dbHu!2-P`R}i58(8%<$m~-4%m?GgBY~HxhM?YD>scmtgqK)S%@gO-4wCV&0 zJ8SC_1Wlf5Oz(7a>bfG}YksH-7zCFWNC*QxJ-9wFo9E}}PlqG`WP(=(2L at +4eY(}1 z253{wDh#qA9kHIsSGdwAb-(g>C}_x?otNV3b#rm=kg;X`wMJk+*Ro^tE+>_5VQ zr#ufFKR)Sfr=)zmPZ)-Ng%^dwLHFl=l)}iIHpeU%G+)wx8D2;cdaw@&&m1OC0*6Sx;^I_B+c>8rI~5`s4*?Gka3l#+2vZ&&l=U26stKwf$~IPP at ZLtzwiZ@9V~_VpOGHLXD4PM^uU zdCX)qju{1&tILoD3h;KGzNQ&m5c0SbT_BXitpb}nCBeFF+Z%W8B<|C%_Y|ZL_y^Ei z6Ne_gsH#!_{rA$Zl at qcD@{WWR&In-Z-T2J>a7DLu>(?h$rmtH!f|sjV$K|DzOw3h~ zuo-B{$o&TPq}~e50Hgc)d%aNFL4X;?(^{8ue)#f;;GLZO$scSVB-9txyZ`m0_IToc zfbQsA9K7)GjN)tZq&T6RQ%{26$yQIp}v)ua=Qw{Pts!TkpLxg6H|0` z&gd^lL^UbwM3_B$AoXm`n~~H#jBLBj+3KTF=zOk#qeGBz=@KKpSQ45ZlE^XzFBAGl zx9vN*ndp0pmi+p$5Gz-h0 at Ea&6V0@*aIE!OI*9^H&?yHd2vVD&MQ`S?$ zqj~Jak+G|b3x+4Rrk%1Iurxlu4BWQxO%2iXUPLW?BF%ZSf%*Vkg*|$cj~`7Pf2X?I z9|Ug0;vl+ndcfTSmSOY4o+_nxhVa+fd3JeOCg&gTD~iGzVcm>OdT;HzbrfCqk&eXW z$_`3lNpQenvah^);EH?TiZgIJWW at h8@cnbd$hf9D};KJx=cac4c zaBQ6w%_fc;_Zs}oq7!^y^bpc2J`OPLH2T^oce)5Ns{2ElCZ;L#?e$h)g|a1>*{iow zrV=9vNcp!wAHHDgLL>3+(!M_Cm#<}IL zr*7TLPh#2u)hky8o05rB6x@^tEeb3T=3iMYI5jA|diKNo-BdA3X*PXztU?ZTqj858ezyNGaWZJ5hD5$;2Fc3D_vM zk^F at 3BbFs^rtRpp_zj*P;VZ#8?Co%X~ z^Bp}s50E9^N at 7<)JbRevwVJ=2s2Kpk1W>K>_jNQ_^g_NxG_^F|#62iVR&F#c3yCD_ z?Ls9pJ1}kjqD2s=aW>J^dcE^#xA+tE)i5O(go;iJ9%39hg{yXN^KVLkZN^jNZnaR0 zQ8NQZj6jYHJ`(GYiaG(Cu$L7=pp*rP2J>~1su2v>M#07ZH=?(@Y8K*S at T&9%3vt}rKc_YHGQ=1KXvL$HY_ at m<2GYeeR8 zIJF@|l15~LOzF32kO%9#O92s{XNBcM!%!j^Ctx+g at T|n99=Vv)6mA7D>dRgb&bYCB zecwSgXwYuIy(9()`;nSPQF~ozWWnI+-G5zswaJ!%|59^FiLT_Y#N-I}sp zGB*zeOZG~RCjxq`EV&47+nb;I8$hVzMi|orhYks#%8xHI1-e{V9k%CQ1x-biyY<%L zl>Y0Qwm373#|#Um6-R&vG0j at knf*jyhJ#3r3}Hkx}Y4joV*Nc2GecM97);OK?^F1Xo2B3XqBuF zBNP=dhm|9PyMs&GW=(($#$<$%u%vupeS>rgy8;mebE*P|UB7$Rz~nb>c*F>pN9b~K zs|qkI9uydWr!C@&9XogC-UTfK!9|#S09BNShOthBdpZUSmM_OlN6-R!TtnK zrr4}_u*`4)`vpLD9pfrqzqYiqYkYgZ)7EA{Y?KOALtNdso8ozEsXTxbC|~INxM=(D zMN~P#+Rz6tPXVcNkFHWv0%tE?(IJ=M0Jn#fcBkhOTq^JqJrCqag+!3!w2~*d6q-Vn zZYTA9Lhi;wK01L(_iWd-e(kKRkgig*eV~@-AO6St_xwvDk7hmbg+I!Wp?q}Rmza(D zWmKdb9MCbAzYCIJdQ(bH0BQh4f+Jux(Jkk*RujY?aTZ_a3R{INHjKz at -}sGwns^LQ z1&GAY0f5d`C_4*|TYPH(_2Ru;T0!ADaNskhm4?1x{g4fs3j zF!EYOhtQPUFFn3*A4bS$(3mLY?j9a!)lt0gt(am<_DLBI#b9wVgE$U)qq;eaW3;{i z*0=ykfqVv2au{WxdTM2S21*H)7~$hlXbiJw8w+28CS>)R_3RRG#179TAh+|Pqpg(x zka37T9B+{>E$4HNH*y$mwc;hJKT;>AVOUcL+4 at ZlV;w86PT^hQmO|F;8(A#t)(xT3 znyn(VriN|(xuih8(Ou*8EOxPW)4RQFu>$!3w zJqg%8iN|Wzdh32bjlu#}z+dVddY+COS;;28NYe+VfS{c>%0X0oy%XNEMY{mh{iaEW zabf&Tv?hv!K#tBR5Z(9&snfgdFOnbbMyL!ou|4 at l_YqbiKU_l)C21~B1t#F(g_(Fg zX!Y(YQdabhd{)NudE#hga$?`3`(P%#%tr638{jQVO`bgY@!@G-bh-5JBq(HXRIa1O zxr(77ppWH8*@M242#aBDTrQEoST`0guv)Y2qJ0w>guv#6`HBpQescyp z(Pv1LW8 at MrajCqBudKTbZAUN9_uO%=hI*Ufz9gDauTg{9GY1TObqcK&0{#5^&xw4& z0Rrx(I}CFQf=kA)lmKwRFM&V9}3;_2!d1vXr_k9kH8&u6Z(>sQjX2WxJ6 zi at 4!*lMLK5yK6XyY%*J5;=_H&`-t=5wGJ3?zCcG1jjMwW at s*=>07of-nM{$63<(ad zBfvBN3HZt9RgN`U7m&4s+4$N=S8meK(SZoIKoL%P{z_-5ejEeNqY*Lo>BC=VJ5?mW zFUTMLFkKDUw(OB(-BkmY4dTAgL_qvb$x;Ve3)78sgF)R=QYkbp+EuDScs&$lAibVU z-cY>q9~M(`f_l(mq9p`z2eYINeS^9Z84m%RqHhI$PW&*cIex|41wS|~$H)0!zlAi9 zk0bEaz}OxhLPJK=Mdd-e2euG6RXNu{+8y$%=JRLrp=e*6<6eX!FkF2&Wv()2iKxOE zcjf|9r~ZYtxaBAA0biBp#Z!~NmEmmG&ZWcQpJP63kejU|>bk;XRjBDFq ze=a;!c(kqMOf*^#T%L_N?=>$X_kbmz_i=c4{6?|W+;k;B6QHZO7nA at KMlm=h=a)f; zc=-(W at +yOMk|#$0`q8ICLyt&Vgk2jus+KPGco|EnLVN%L`&?Z<#OWC^TJDy^5Jteq z?QXLq>&A^83-4tgo@;NyguX-`_%ffllA#W%qW=;iRAE0FG5!St1<0z1VQNfpJ>o{@ z$tYQLB~Y#Ae~Y*g1R-umqRKqgU+83EeV9t(tzk9?G{v7<(1MA- at eTIlCtp}FR3_!# z(RZdqh)X~7=z(Yc9a!XA_2tXevM5q8X$QQA_(StLbJi>jyZH8o9`@b3&6+zGDMID= zE5bhcr2G>nPfp~wQ}b4az at 297O9<=_$Hk=y8zDGD#QjxtS>|R1rO^0yJh?}|!%ILX zFC!rMZ{3G6fPJrVtkI$4#~Wk1*aNLgJM7~!#pNC(R1K(#ak6I*q|PvZkDY?Pdf0Uo z0gZv)67h at BO(~r8WOMV*VvL^~M|OY}c5r&d2bO#OdcG+I;Rft9J`bb3nGlUrz7Ir^f6!r>i|HjK1)bd9nOZesq|NW0x*J4x5|L)@eL!&W4n)d`G}g zbv%5jC7J_>j!uf1B8qGS8A03_SdCbc0Cy}%9o49-{;IEosD05m#+y>T{aBH&k&!kjW|ViH?$7ZZ1dC=TdoHN3xkGs1HFm at Ni$!=i zv$7K~lApJ4UoGzkutNCiNd0o0>_MaCMnW?l=ndvq)41K-JkblN#IV@~_SFGcP)KuH zaD)Mr;==*!p-2pd+`?ih&vqLm at Fln8cRj2Ez|eM%7(aTnu&v?L<1BOk;loj!as2pc zL|o9vl)+w?A_S5zTUa{VZx1ACs=ssBu1LnjMFd< z3|%3as$0>P_JRTv)(pcLm8hBx>_8tmjScPc1S2(ol_Epxo9E>H(9qosZCkFsy!?C5 z5;cjHL^66#_8&kBkizt;!d~gMev~F86=nf5_w8ePk^S}0E-ai0=ntv??gpR;vvn{$ z{C&k9;yCP5pb at I9K}t2 at 9R@_SrP;ToL^1cD7)_Vcw}6)ORgiGfGc6w&Lj?Eqv`$__ z4MwWA#?NEgXLwM>I|Ac|ty>L$D}}P=is`)73oNH(lIpTViCtjD7Z!HyEn+s4O~%-| z{^p*^uwpM{FtpHFt1WRhaCLPj51`Ghs>+hf=v43)BqDn<{PVej-GY2tf^`fk8V1$F zC#IzQ1P0~XT%LN!rn1BHB0(Hq5w=p{ zlY~g1rndI9enZ}z-kzQzpx$6= zsbvf=I$CIicHfPudA$|@n;JDe04c6#@CPb^=3gd~pGCV6 zbg+d_r`1xRhCmT{Q{Rx4J0$dta+xsLIVKjAn(88pt(;7Af`H&fL#6?22WF$Q0TV-s zOGSom4prXPqC7v{En at PiYyKrpv*l`9Ng4#&4Q1FTFkDJDI%}Cs5U$mHuOHM{-*T&z z;*OG;kVqg^?~s(X{9LS>B2Bw_o1yY4x~#G}co1_#Ja_<(Sc2T%d?l}2mZuw;Dwl~u zJ+Bzr$NUF1`sh(6DyCVp at D-9xV1QIJ?G!qGFi1u*xb0Y`HfvTs?|e~rFBdVE?QPJV zoSCsXDXD-PPo^AybRyQ0yS8j$92Hvd at xzCS(hPEV*q7Cua}JGaUpMIi?F at NFAdMCR zlqmNQd~+$ysQ$20zxHb0?OV5qsmy#h|5;W?Wpxt0p6&X at Y<)M;9~~0niF2i$MSP^e z$TH41)gLX9fG}s;6R8hct#u##DyFN%}eiQi|Nfd$MKoHJbxMK#xl(`rSu}U zf=B9Li#D+${lP7~n`k;fr>QgG(SULN=L;l_>_pYxN^{FRKbIX454hcl0Kwc z&x!p&^ygZm#bQ8Di;*b|_T3Qh3Y4J7kLN(bWo2dY8<`#ru16b%R$jpHp?7bcJ{VI! zlLy2T;h|++q~XLX67DAl?ES at Drd|$F6}f461bk(1ny`<@Swsyz3eS~4(i_cePR^hZ zYvMGThZ?|%h!haR;>VALdhb-R@=nf41OkA~Y3BJW^ zN`ZtFcfprwFhQHxj!X(C|7C~F9yjhG1xQ$!{_8l(C>}$FWA2D&ckhk_(j7Tc=wCj* z5=kzwy>-W6kO6H5pwCb?CQX_&%IN`|8xm%KZTpXN-~LO*z8||LqB*DNdIJ&`Gkrl8 zyugF?Z6BgNZKHefA3%0N0|-jI4eA)cL!uKYlsiXjqcgCYYm1N&ZSfM%XS_OiItuRf z1^ro1YP-HW>q<@pYo8uGe7IekHY|)wXfDuZ^rbv6vro3QgLJ35Kg5cTqrto~Z4qiy z?)71UT$++Q`Z5tq^*K(AhZ;FI2|)1%^I_ntkcAX=qBqpSuD zU^Yyx4h#()1eC-;dfl=&QSRuK2RF9YyNCc_`C+-13D)+VI*p$^8EycT5ljS+kz7bq z2;+b??DZFbpAHP4_rA)*78~f^*^4Hb(16stN~jNXR+(G21EPZ1Va*ffYiwiBFGCD5 zp3y>Y?-ytowl>Yp&@57X5!}Z at M{O*$M#5lX!e&!Q24hoGhMDwSEpPd8L+OF^DiUZV z^X}tUAgJdhDm5c7PELj!(kKP9k}>D!&CzN&NDWy}&%(x7Ib_kvlm9Xt5vZmECFpUU zuAiR+ldNgOs(3+=g2n_}W3A1`)YLNg71uU~r&*owp4uSiWG5nww7X!|LE7X^6Sar5 zojU&8|7!t;7~FCq!7#Q&4@#U4pFZ7S*2q at IgB{KL^zKa%15E}M6J*~^P#H((4)SEt zO(MJ)vs7C%=b*3KbAh{6sFZ{Ra4Q+vFDY40D5f0#QeAx>vrO1RatQP$Spm5hj{49A z{6Gv$ek!j006ycyA8StnY+;Ypo>w=5nusgF5Wy{jb;O%oICdo;GFzJ76QuTnkmF_Te8{B z$GkDIO7K8Ey)4KJ!8UJ-b zxx{f|q!pzJ8ZyQ*nI0$unXon$tk#Myad3}xasA`G21g38jfcVe_ z%$0FGNFxAoO}q8#APXpCIjfWz{4}6N*d#y;loTjRN$%+}lrUbN=58APL at Q%7MZ%r| zT$9(b7HY`+^C6rI3kz1i!l4+O=(l7E*LD$elnAhr9}vgxNA#vA4St;0 at lXC9q-avU z>N)0$bc#i97f|;LKpS6+4cTnk`K>rOYo6~`r zo2J!I#9+?H^=gC#3s{ZdouRRHCz&L8lLPao4nc2REu+B15Dnr-Y8X$Rl?Ayv-4W~% zzL?E5^6W3006|@#a3v%qn7Xd?MUPDs_)t+%^xuDMEfS{iIo05_VZC&okANTOGxH%! zX&!SZSU_PcSzVnw z<;0jS7KI1VC{w#(M8r3 at Pw?CK3<=I+%4t$Ay#=HvIz@%Q_${c)Nme}YuOSwIcC;G> zjYnn-r;wSWeZJg%5RwVb4`~8s&;E!;ILaMc|5}(m>Q}~}I3x&HgjLJ!*HM3PR8`_j z%m})MfKSF<$C6hZJSTV%Is*KG z%E4cgrO{2RF#EM{UyhjohzO_1&h?fQ#keC%JhTgLz3kY%c9!C^S7_GQU;S z4cv-J9KJF&0FwaPzIci8KDtnA;k8V6?AR=9Ob0mi*|S%?dvFMR5bHj9rOML1SFakr zJ9j5(tfwL#keAq}wS&j)#&pWUcYZW$+xKLR;O<-sgO>Xt3w%9Is_5Wl;3Q~ZNlyY}Zq8ZwC4z7atT6qe at g zBF-l;C`}jbY}P+0pC$j%^y5b}64-~CPV|&ycK at m7hl&t!bI=TpjQElcLuYo`yz1%{ z2o%QlSoVR)16R(zeK7 at kSshInOL5b8DFSU}lo_l-fQT<$vPKV5P|ijKvV_ at sL`rK75$@oE{z?kiJ+(sm(Cs8%2Duvt!sym`Hsv=%crG z4AkBHS9Yhx6&h1(ch;(dFCECtMAe2Km{D-LQWVohadXvIA;a?Zw|Zw#5n%Z3kR~GV z(5S+$TsLrEhxN`Z2$mVfj^=MEsrV0|J;2P!^S0DWR2m*TV$_0icG3ydOF}_;ZtmJ2 z39Xm%NlcUeK-%}`pGIq at vh#yhAqOWc%jdu_?c5^ST#QdG7RUNy^Zo!{e(T&L#kIA2a|{0aVx2s2oWub0QdB0f&N*MO(yDS23S!h3|| zg4gjXi6G<Fz-76m&l$F!3y^Ot>%%h%r&7_%cdY>e at aC~ zG2w+t at 0~k`X9QM7*8}a45)cuAP(Tq-(eidgu8G3_2_ at nD)tfi-&zBJMAzr*jKY(KE zIEe3wxr%ZUhQHlAcLq1(IP*t|D~!M}CdWkeYs`uFlGR1AFgYcsrkhDs5UQZZgfOR0 z=yP!Pg-`P=@v;-&_o1xmxDgc;SS5ZnroDFaW?%rQhesm+^n1qy48AY83jE2wwDK+o zTc?!uDT?H?QhWf5ph$X5+eUS)-Od~st_M7KOqB-mx!m20n at qWNT^d|h8#tEGM9`O! z^9fGeW)>q;0)#b(B{u0ZCjLQ3sUaw(eI4s6 at R(-Y-Hrcn>kVBd0IJQRxhVsM0-7#J z*^1=_p8R+IRNuY^saD!EN9*&pZ%5a|XuQP&!Z%1S`fzN5K&J3k;x~(R3@#d2=|ixy zlvB59zZxI20VNIdnrHvvk&&>WQ-x^8)C~9B$$%a=WvsFMU0Kk7IHYaZfd8G|mEKgJ z$Bz92Pk=mMd5GSdiUQX>SP at Bs*lmeAIyTLhPz_j_9^kk49=Qto1i(?*s|y1xypI%J z5)~CfSt8EqFF$=cu2#dW0>|-0c##Zc4IR3Ya4Mfcp{lhBM4|Wkwf=B{DE6&$rTaqpB|~WQ-~XJp7KZ%(AM@^UKTn#?NOK8Fe?{1!F at bIA^IL zF7AvG(v7}duoT9D!~jA??SbaHDvI?V*B=oi;fE)p(*jUkd~v5p@& z at UY2$doNP*%*?*PaiO8zfe^J?Mjtlq+_^Sap$!2pK`DUFgbij~Xc!a!fr|S^?Gz*+ ztnstXfJ+k$80`U_barv^cKnQln%vf!R&m}LAqA_%$iRq($4 at s>@G*bqX}f;jqD4#) z2 at d&Jv;8*6Xk8zDCI{&tyq?jN z8mWX$!n=0alBuC!7FMyUl3E$Y6U@$hrAm;2JT&Y*9Ws}4F~sE?m8YXQOX}pGO(nIM6xQ}1Scf2A;?nSy%S8Kw1^3bKy+Qv01E)$KNkI5KD zn}{%Fx$vVtHyO7KgkWB&qDE~TA}ooqn4+dGOZh9lg~0aEATV+F<*;7sl`7y7EP@(; zGij9}*r__?Zf~^IIZD$5Qq`r)4Ga&54<`-Ih8v_s;V;txaFpbd`2-kTt75G?;x^{w zR3Qxbv8CePJ$N1d4mYV=moAvZs#agkxgzH?{Hn3)j^&xm6y5Bum4g?_!x{i zP)g*Rn>KV2769r)F8;9VQG|fgQNIfU`G^R^S+gAV;SX?fHoF)~TZw@%SQ;Pn%h#{W z6i(@xp0W-Z?Ih z)P!d`f}ef#nLPbeQDN94PCAZa0%Tt zuby{``@$48y*$4y>mGFC9<7};g?xHN4)k_KE_ at r6nc-TH`}BYVc&C}`430_{`LRY| z at Dz2^7B0h;s at bR`rl6_{>-Yrjg6ELxT%PyJmeyffaTuRS}xUBJ_HbjMu2h^Gt?B%7dd>pwb zGSa#2+7%d1TQ at QxudPNcsr&9GT7OW1-r7bPi&LMlFjswdXb7IFgJ z?UZ%k2LqYIW-kg7CQn;COwy66jvl?2hu^ImB2&TRm;qk2eAL at A;b$;~nds|~+gFXy zuWk at k2^lZ>FkTa#`}En2?CIROe6K$Q`-Nj{$SgfOt6kGj0GtLRF#w+|n-Ogv#zwH< zQ%rGD8YtRN8a-MkaV>&3Cvj!*37wSpppFzHagLlDKX{{(7c6;Rg!te0)l!O81G^kHYMb!$<(R?F;kr9GsjE z;-BCUmlcEH{Bw164=R))gHrvev`Jzk=`6AB3sEXI at nirSELygl&l+81V;r_*9kH>X z(xI|O(|;YbgJv271yRMN%3WfK`mY0C8zT==~ZCO45^jN*iaz zT(f!_oaxnKm|ytNgpkLb!fywiv`9O-FCoZiYUe{^yvMihU|+bQ&&=yv25cU%;jh+l zZEnZ*sHv|Wc&y*j72p19-1R2=Q_Sob507Kp&QBZo{O-@?yWhM=ei1%o9f46`a(egH z{Zd=yDKf3W=z{JU&lE5m#tphH#=h3aheE_n%5fM^4KQTL8z6P!7EJ`WvFNSIF^y0J zBO?Lz<)|GoU;_XMC0o-F=5#&VNJI1ymI7#v+O=vINN)P}?TADPpWb~LAEAdhg892+ z9(_H~SF;@!S$kNM!ipNSro2G*{}Cy1Dy2psURBO}OD4mhC2ob4rKNrj%O#=R+UgTFz zo!TKTSNR9(r%#mJK_8}lriAp{M_Sk%&`)?Oed|!_hAFv-da0Om;mI_J}+UuO%|8Xt> zdUy#mKmi at ui8R*RJJ#PZZ^T6u>EPp}qB6G7H54J%X=VH$P{)%etGqLS0R0^|@C2w| zHWqraF2`~;?h3TGVRHm;W9m$3%iI>5aNl-h3ycNuV{s3+;4N_4kXLlL%)cOK#uZDa zgYlNnGGqJH>--8<+P;1bFOB4u+#J%B_&&@ADVjntK`ujx!@r{w zoX{v0CLuEVR^y8S7*F(9eEDs}2)v&pN2d|t1qaQRtyf>&wtIKXw~srS;&678Em#WG zMHg4K8;@&_D-Q_IQbbIub~e{5`3?xEV=r5V%;TVelap9PD;QieT-S>K#?AD!jX at g< zwZxew)KZ^PIQC38nf{*XjHbN>IL00M`)^6Bh`_)Us4J2cs&kGi2+76l>d+nPob6s> z_4lZyApsqYQ)YBF(ClH;MIeI{sr_>e+XiH zz0{VS?))a~0oKT6T*mrezhE$d$za3T9Duo{M8#e*+{=wTb$FrT6CFBtZqv3crjX|u z{bskuwBfKJP%p*_Cuz%B=tYgaa6H{3H8v+QQN!Ys`$Sk-FSC$p4wd)ak@&g!&Qcn( za~7jU at ipj(s|<0?qtpU at JiAz-3sI&pw_?^ggA+67!JGeCR%b0B9k=BvBR-!+46r1UFOEqG%}Uai9;*P<9|)LQ}Ks3vw+hx9-dPG~y!*Ws!lRXZ-o& z)0;O1g at v>-cSoqcVEFLm3sQB|y!1q*Sz(vy+IjSJoO3F}1aB(#*e4vgS2W|20nwBK zC}k&lWavGDo>}Re7#}b1p#+ at 5#|(6yCA=bg3O>Ae>1zo(r at a{}khB_!^k?thxMBOf z9ehGVbIzSh^Ul!K*T)up<-2fT%R>Hx>fA zL0(vyOhd38X<195K}O*>Lx?_j12ZlzuYv6axKyr239kF(A|vCNqG{TEe_7a48HHLC zztQ0%MzA at PE}p^?I0}mul7+A_tM4U#4kCQzIyATpojOEEiIKg#INEAoJqIK}0(15N zcm`!PV4}*T1!EgvPjyvg6p)&iy+D?DyyoWkWhv}Uj=rKVj|QK^sl2k%S=jSvMY&BA zL*n>9n$A3+#=L+3XK7D$N|HpUB#kx8m?SzaLue90_7kBQA$ziP+EkLto{F+>L&nx* z=~Sr3mSsj{Igx~rJ*~gj?fHHE^E@*{&bjZ;=e=C->$={bK79CoQEYk$N~8+|V1hqJ z%~p!@hhp~xmdt2`UukI%xWWK^U=!K>mHakN9)D!musQs39x)AfV&a=` z`P!~oWg{5x&zn0}sPECt*)vD<_XiFjWsh?-4;aiEKYlJyJS-b-aPMDZ-}cZ$0h#X*l$0GARyV!E`DZfP6C>+7;<3{_9?bl@|R zCk11ygO3sYQC#_Xs5=qDr&)?^HxjV5wmC5xVO*N~ezdPI*~4QHy;VJ$Ot8E(pK6i` z)I6b`j1+v_=Bl|=oB at I!W^9~Y1ajifpbbW|^PvT(zPzum$09hNpbH_4p?137#rYKj zae93J-VM7Khs{I^;H#*jN-&TDpIR0{ut#p`Qi?p*A7YxPx at Oq;F9#T8e}GjdOH1!; zKZN-NAKQqL`^Pd$(!3b{>#vbrf*E-eX&9)(6QDSk%Qy}Mec}T1JwF6JW>G9*eEc}u zwu4m($pgua>U}f#FV@}E|H$!RKVoz{YgW;{6l#CD)XB#fscyM_6c0!z2|F5U`WHN;f#<^AL!lW*#P7HQ&IxRq_`U3?F}+< z2vsQye7ki+b9(9*wUz_}1k5lV<1UqW1wE at RZ%Jt~b^7#;^#}Xu_;yu`G1+Dq^E7u+ zbX?p^5`WoXsYlALT~DaKwr}75K$S;3z}R1W#`wSX6uv@=vRDbrYicXVG&_=Ar)AZ# zB>0+UG-cahTwGub?^BoikMEZjg2QHklKEQA(meK~GCd#wSFL?;EsbPD00bC-yv!(F z)XDRfC&N7=J$VicFJIqIDUkudVbO)G$J^4~CG4E0f6*BD%%eX1jQhZZL|d{ zT_)~`+C?)Cau5w-J?zb>JKOXWHhvR+T{2m~%ZWEw5kUr|XZIL9kG45MIiXq6k)CJT1lbeq1eIOVu%jnVe1jEq(}6OVO?4Z7 at ba!hf+Xdg!Q;{m+xLdxBM0?hb4gH83{AK-CSQR at f*n65 z9h4=&hRdx)J;#D>61PP at S}*VLwmC5LT2yB|6uX_gprE%F3()!8v%eMILZ*!m zU~Z^8a%YeEd<$Au&2g6Tz~&X`g0LxlR)x7jjX81Y5{B%zUjd9a&}q0^39?#HXfPWL zUInjLAD??P-s`a8?q+=nstfceEhp at 7h1D={F*1E&2F9jbU|9e<82&}9#|U5Fbv*<} zm73l3HKb6YJsBVRDPk_TBaj0`jjK3`TSp>MulxKtCe6Xkjg4tsvrcSs-X_jz%I6$g zB>{~@ZxB`k+n(S_!`6dIV|%NW^Up2dF7Qs6k8wl5Xeq6ub=c3*pBWPqFNP4Nd+78; z0|XKrA`$9rZ*NC7yUrgN84}7Zg!0Xe%=D!WRV$r1x=^WaoQ&&f*{9EYLKpO6^?Z}4 z(YRJ*+-4b*>oVG3Vq94%O_JCQ6zy?D;GxPdLxWI9>{MqPHqpp!2R)&Qw zc$9nc(xu~+eR6r&e}5U;*v>A!as>n;n!vU$Rz*tdoP5yFQGJPKnrG@^mkI&`F&rVH zV_UhF5dv0!fAz2^--A+_X}>P<5qIYCqWpANmr40(RBaOx5#j55^TLG-5Pg_gFlIt< z>9H4Az}Ls4JBzQ7FFZFN06H9fF~C5UEZOvN~lv`9c> z?2uI;7*OMD`D`_e6}25SFCGpp1_6Ujl-gHSs8S at 6&P%Fky+0x|0^o&Qfl`RShYzSQ z1c#wQ+=&$ICQaca%t6_YLZdM z$xy;bO%{nvG#FJSc?hfkjxQ(+l^#Lgc%LpSpoG;+->U##vl4gFzs2CX}U7f{ruLr1O0Qu;rF9-W(Wi>^Mz+m{Yytg z#w8mgoZ}t=)9 at E+UPrEISH3N@>SP3orw$7*0e4dWj4}_g+&!)W#64&@KP)>*mZ3s- zKJf%q2^|`LiCQkXF)2PmB8CVSmGXa9=X46 zhRodDf5HUp^|i!Cou%xb!mJK5F at Gt#Y7$qA9ew}8h40z;S@!4$yge7(2j0g92^Wwd z7`-kXa9uDaZCsNWWfnLd{%TmJ`oz%sF}4mp0mB|z4BF5-g&jO?lF at pcJ)QqOS`eSX+WyC)}5)O4qRK7+5;8AWA8={Jt%%v zJkT*gStJ*X+aI1WY>6SD!IP8~r+5oWR|euxzdz?GUVNqiz}Zk&ceua5dF_D}Zy#zO zA8&4;?b1e;;KoRd1O!n5vT66NWY~W$wKRVJe$rM34UQUs4~^*#K>+7d7lQj|7 at CxM zBkVWvDJYDb9kRFRUOx+GA5Rtj2tX{!CUyIE8kKnfZ09RJ39ANR4DPe1;z9aEtgn60 zKX^L2!R))QI48U*(sIfi+?KoVsHBzvIA at X05GP6GH$ad0-wsThK7ChaCLFd%LqnOI zf>#uD2pO#xot{h1dI|!Wx<-I{R;+kgS!vpyt#u~5)6=8lY%Hr`foCb-f4kb1M}knm zxfvEZ<}t z$Mi5*-&EgZfE5NdguBvy;{0Dzsf$ax5rFPFQ zPAho{KqNRSrlo>~QXCZu6fiUX4@|8kJZ44A!2bQCLuEBB)Z at C>jEv)Gut6c$eZ9eV zDk-Lj#L*GFMBQJGz0Fr~?Nt}YzOm`+dH>deXo8}fP|gFUhxHpZi7l0{WvDg9cy(Ij zD(KBfrs^0~>O&!8c6% z;gQ{_Y}sv+zm}q1SV?WPf<}8-)7`H0xdQE#vqc?7=9x5Q3RY|yJuZp7^>7z-%GEDk z0K{}l^(ITu+w!B!Qeftg2Pij5ULaxFW+IhLUayv=?A%GChPe`)aDgQ7{nK3KqUeSg zk8JrQ827#FrVRV_*F~YB$mHob7gU at zI-+E2FTn^cB%B7 at qoeH2n3OXeuRNT?*d9Pw zHH&4Ts#|RVQP`sf|CTn5=b;|xKY6l?laso*xV@#N-rksX>#h=O+gM at QNAwoLR|Ggl zSGGRfZ+o^7$6VZzTPO*M(+rz$&#=s;cq4$(fYR*Y9#Vck0{tVKb&HCg*VN=vh-PF! z*~_xj&=H5owKhn2 at cC<-sqP>CH9HZEhOP*q%8t_%v;+?MYv|1Tc`k6#NL4^|@UaYH z1(^&UL+{@C+NF~AI0LLA%I0kR4;}P6`zpc{;|WpjgL!Z%)krYVCaHQy|mwDXi=o;AQ-C_ z4>@#9OIU!&F=RaiCL4gYAJww5lc!JDzJJenn1icxzeCL^Uc6E)dC{#`FQd33ysoLF znVInPAcg-C9L(fsv$uVXE^LdQ?C)BzK!D-fx9@{G5ioPLeN&@yIENZKrK5Ey`X zi9J}P39iXx1bWfj`ct+td3(?KVL*DUWPza%{gN6X!E2_87$^wA2ZbV;kxVEb>FLDY zA?S=v^&dFRkM7*rbaB7Rc8Z5bA(mjJL4vg*`(voA*kUkH0WSS!x)JVS8roQFOWc5X%I$D0nBoH7jme%yOf^b)$0Z`K%xV5*i6^W zCU9nYKxp(c;QWvUXqw at U!B^+m1g^L>^CaOPmjnneFYVZC9Wt-t92EXU1v_V21b z8{=&cAC!S6Q$3I)yz3bXaO6GTqq38Q&MWZLPgng|rwbu##KF6ec}#SN!-`GyhOhLZ zK2Dc=pnG@^O^Hk9JJ=dmRXiWAM5qlJVw;zpk+HGIw?sxf{O&wGw8F5%#G1P^+fvNw21 z3>P^tx54f&i9FZtz2S-K4 zDj-ZMN!2Yn6aIE9J0)kHtIX}9QpYKuDbMK9yLapmUED(jgMkO%Tx|jbjo~^fM+Oj& z$FL<`=+r5&mg}jw`{?^`-o!9w&%S+CD^5LUltTRtdIXanVj0uXwI_ZPAZrRs_;4Ud zG%6s(;7HJNvpqB3{vG4HiKh)!jj|dr0&`rL8$(xqwCA at uI+k#dNGQ05 at Rr@eKO>er z%;Vy>gVTV_Gx_2d|A&9%U-F+A?E~}jo7dw1!sjIP5YZV*FozT at NMF8Wbe4Vb;u=_? zkb at qEmEZLLL4$x{M5nbIJvf_>-aQ&bCHwQwX9VH(^p#NMl&CjJP%!Qw9WMV_Vj0Bv zgp3X+6tBpFCg~UvBQqLdGzSH%Xoduh|!&SYA#vx}`fd~*kYjokwn~=Hm{GoBW=1gT$O>0 at ybq%?V z*F9lW$64*@TSU(uZm-E9%IlJ&_XS6VVFA7JigTRrZ>__nr1YLPv z at Jud|t_llN%=;UYH2Pzr)$lfH;*EO6{Z^ZmX_vK+>=+YfIt|jJ$T&;^HlX$Z^$(B1X3Y5EQRF~*@6p#R0Tn6xUUcUHZo%*!f;GnGQVu)RlXaa2 z3rGP}rUWml-PM>n{184+K*M$^x_J{{r%dNXEJFXt?aXS-O9pk_P{w9HwSbZlN_rg9bB;aCR0}GH`RY zZTkw at A1xE9gGnn?7n}y(p|*YYOlgX5ZK2YMypm%T+x2yRliH_3S>Kbj^ zTQq49wIN0f9yEw_CoHH2ZDf+q$KzacWk3mPyS24c;LU at wiMvY;N|2;mg9XpT?B|5 zMIS)BgX;zN?YWBuX9|PUVh|!=Y06oXZN2&6wIRq9^I7qQBcW0w>dJ5w-;fobYi={8 zs^383Af34zLeZbg at 2HZNZ^a_gqE>H|LLtKaP-6L6|NgyuidE-%WpH{l<0-{~F$k2! z#l at bMk^^&r;ts`9l<53kgHr-u9$#1bs}u{ZoYAme`M*3Pj%DL2i=Kpm)4yfyr#wN; zj657>Gt?Y2NhzmsU5b%k7g|Jqx7rK_N~}k=pryA<<&`nwfIC2WqSC^~hSf3ozy)lo z`+5cUfluD{A6d6KGcJIE80SQ(r%#ySH|inob1h3f-mSq2hN*!9_2n) znf8rsz>s?o@&KH33vjtP49o_n33IN~4dekV8QlMYBL0O~z@<}Zv$PaGD=PAl81u4e z7H|U#5VM5qB_);}I=B<6IG~Wl4_)B65;3Eu^C=b0 zxS)<;!Bt&j{xKGBz(y at CO(+e*tDcR#FzOY at 1L>5#>`sygpb71 at 1O5zd$CU{E9jJNc zj8=Sk*qXfr9un#_k|~oFx?XEz1bn0HQdMho?il#|L4k at V0Q^Lzz&t`f!#1sbcv9uV z)(@|QF4TS8Oo|fboTuid)&n$BTE(%gHk5zWaq1z#A5&?nvSn95NCFsm& zUL-E4{$tZCFn`Ppn#Eo0pNlKXz8wt58hv>E9C9}r8%a(1KmTBc83*EVLSXd>zwe_M z1!8V!r6kOa1j=>fxf(y327wf>7xqu6L%Xb~p*o?O%*xW_m$w2K5^UVxKYRI-J*HSii5uLi^2-x) zdQCYCLq?BvLX6kC7c%@GY5we-LPZI~z}ntIz>jNdFI>C`wu at Mn*g`_0r)h6tQErat z$7RTnX3{&Ki%$oCnO at b?T(nr9e?ctdp;97dB^PuYb?`2OU0O+g4(0_}c9Nc739{5r zwGRyM2o_L$2cD6hmWP+uW%jk9U5By~yLA|S9?&PBL)<_JBV~T!&r$Q&MNi8O75ilY zC2>Ef2q4u1dyvF{_(eC)o<5Boe%$EEzP=k75?Cccr{MR+t%gzfo^A;iipDUI-H8=% zUcJ)4`iOHu+D9%(87pmCuaK+%MILem$SuJO_KD=xDMrYbC*ElsJodK^SU-6fp z?4e*o%C at aYr9X4Y-Q z)YwkGgnsewy||*rqX$?`^Y=&233P8*`hX^s2 at gMvuBNIANc2%fMPuWT3KBBRh94_= zt at Vabp9|cXyLVXz$P|;q6#5|Q?T35!w(xDt9pIgF&v;~BFbJ`qNl0Kivk9k=lPxg0 zi6aaya5#yJI|y!&r`fw_&msRK)LKknGJW&0^EQZu4apOtb3BJ!qF)-F$MC(ksSp at S zPTnb^I!+YkdQV{@dcXCp(97gjhZd=B)I+i%`)krYZXAY&YHCs^fxNXr`Jv}W+LHrva!+qz8|p$!z#c!sB=?Y zxOF^!loos;AdJDsTuOr$6GgbZaQWC&)j2utp@=u!yEmiA%Bm{!&Ydv;xc%@Uyf&Qp zG at oN+3e>ygTaYa-KJ^RGq_}qv2M4T~i94ySb!p;B8;UCF3ygaT`(lXXG$o9$LHLMP zl<&OBhd>z|&L296T}Tn&eZm!GWz13LdK5Waf2u4VE&z6Zj?-0nZJ#9L!4$*NxO|t15_aHqop47LUzLC8ZN5Y`I58)$bmWmJ;~lg$r3x<{9Uqs4=6DyHP+l z3hkE-12w;Lrg`EN(0qEheOy|)MJ8t6_KP7MfzHrZMqXUu?jFey_q3Qa^VgUx;0MIY zu^vEf6c3&Ygnfqq%-lu_V4>!<#U^w$>~mfQ%krqsd)?q``00nzdRh*rD1-5Pt)O5L z%><$wo#+o#2n59C7J{A_ZZxd^n=0uYv at J?@p3 z3X3Y&uI;=hkXOMiP&7!!u;i8^r0wgsbRgKjjU2gNrBVZXai6$V*@yKX>NAZgWrh_L zg!V(&4+OvHr=K2_m$Rrta=(l>z!&Ck0KHUsbMEX~f6@}LC9Gvfj1VUe)``YWkn1j5 zry-*NZ6X-w&Qe-s>9r6b23Y+ at zXf-T`62T9q+y;$7s>1pp&((xS7#s#r2 at KLWu?(l!Q2=#@9jsFUiVv>^gU%=stUUfjB?qAtt z0tP^96SMI&1{1KAF{8rGVc<`c;~d=!PV|pVYV~ws5OI2u3@|DIw!^K1KlSCyGFi1+ z4?79b^RFs#hj?V_z!#<9gU76!i9OE7h?4WwRD9l)>$swf31U4}5y>Dg0DOG|bB zJ9Bx?FF}wRgNvPiqL9AK-MF8VlPbty!!4245ZFpy8 at c>cct3URdIcnN at 7~SZw(*eY zi3l&}+r!-b3a-ukZ*dR2h$VeeAb;?o-K)BqB>)Rk%xS)`8xOe3v3KuvMKj at 6^y+m3 zqwmwRXe)6*q}Aod7Zhj(3uHBJw573V?E4olw&I2V at 4r{7E!iFSmY>KC;90MDct`MtkpLEjk1)W0`bDlrkSA2b;t9~h4l{rr5@%Y`+<=vIVa?ENx1#R5Irm`*0Mv%&N$>K zOP7_{9L|Vnh8!!s;#_-fHdJrEE#H~2-u(4#$MhqQAvFCEZ(cb*9d0p at I=G5twWVt? zH5-IRbjhNlRwN+2EE)BBf9146GXRNEcY#iE9W4EqU)o!(g2czqH0ohzZM=d$$9uw9 z$1M=Z&`WLtPV#WMR2+mR0t#mA=$F#hc7^^W9mt9dL!Z7i z;pA|BI7OT#5Vx4iK0kyTh3J31z2h<2h>7t+1f+PUUKzMx!4r<90*S9XNwfSL{UCLu z0c@*EmK^@c`zL4HpJbU8NFpS9sAW6!X$yJ8+=O2^b_*Ap{O6_Ij(sbJxkOLo5%j?1 zE*QCIwM$r at fSWqsGrE9!gq+N+Lt4NMRMd?2 at bCbJ@{T~(4CN%`9q|&>jQLYWCe>8M zqeobt+UrC|#+Grxvt^b$ry~- at J9`eIx at k&9l+>`6-VX%5B&eTa3)LE!Hk7HU0 zpvsr&o at N9SQ2KrfN;ZYT zalskay(6X}gNTk*pE-|APAKeY5U}7^UuuDQCZ4$&!#Ruw2=+KFGH!u50UXM2cF<;NTRhg(a7(!&Aa77G z%Yv6ej*9i at U}>p({siF#$^;*WqVAT-#nQ$5jvqI^;6mb|cjaJlXz909_Ll)oGJOFP z{|1bJfrV{1M9Lq=ZB7FQ1Vs#CnKIK~p7Q5VK`pYIBIYakN&TI95nMDF8gMLo^yw34 zj0M|JGV|A0Gp0{xg+Wi4t{&OUglyPn<|}wWP!Un(N)iI$_0o{e3l0`-A4N$C*h{Bb zVou{h?BW;-GN)gHXe;P{kR52oi>{RbQe$&*@+9fm)GM8t5|0fCgGTXG^4eShznOv8 z4 at ZEOxvoh%x(e3n|E6D4r$U?CO)fcI6FIBh%}IPr_vpV ztDK^WRe%5e9XSjZKjd45-{h%N1)T|SIo^odjCoOrf541+K$-zTPL_ONg6*QEOJl01 zbJHb}b?ohszxF$Pk3Y^FnJ}yyU``kn7B}=!!=E9=@opeP(5*tDsgKZfP|lhq-QAbs zk=)0P;yY1)IP$8zBC7Wd2KlmJNh}%&4szoEHSk>^f#q9mdDetP+?)( z%c;uMz=&i!+38D{o;-bO^75liM3Z>vZQ=_Bz?&I}P!RO_$$0~iU<_i-%*|tl?FA*~ zEK^tt4!XZSrC~+xpmAZwMykkwJ(`olXNU9+N=z{dd7rKCR5Sbh9F_V;dU`P9xl0 at k zjwQE?$AZNkB9}i8A7;$UmlAe|h92I&z5OaZ0c?O$vwAf&S%=#GOv4ZRAK~#YE#yjr zf#O#Pm6B$VL at K%>?DdWHz*zyD7H-Ger}?|NTLxd>=eM$_iC0O}#-6V&%%d{^Zn$4{ z(RnPfv~{YB;&}p+K}2Ql#W>{K+X_6YiD+bA&PxKm8bY~yHV2a%N^&G6(Z?3fo-Ggt zm at l_)UtCZiY=|ZrL))MukjOj`SwI6J=q7j}79Mlhp96$}AECMCPu;?yVWXI|gOy=2 zla at xBu?jNGY9ml${ZbJI^YuVE2m)XZq)kN4bkC$+R{OGSAYWeO&2TJFY;FX61 zlVwLp6I3q@)Kv?V?J_`z=Xa(O$@w-I#LFO-5=d${o+R>FB)Cl;8OM$ge?c=>Zw1N^ zGg|7 at A$*+eApJ!%VB0c`4*lh7adA-}!Xrqm*q%507UP`Rov0LY4g&{pG6*E1FX-jg zCnafT2~#cdVWdLy;zjKHQX~*6nf^g+Ei~w>E98}+}H zkxi*+5NA10VXVbVX5?Z!O>Y7uic`qWaV#ea%|YO>d^xIVCwFi(3LN(-6G+KGi-hHJ zuV5`n0TXWf6I?p#9DMaqx(KSh!GjxtVkq#%HQ&g}?|pAP^%RA!C-Lyz(DvD-GW*E| z`sNpFyzR}lZ`;O~WcsY#pf;OA1M(LkFu^2X>SAl{rNg_jyVW8jb>NS52K)h}IMb6%&M=4c7R z{Hbd+hKMGFlM!xepHIswYCn1GSP;N$wCl z(mvIjNwBVqcH_DgpsQa$3yfuJfV7 at tGN;3ZD`#Xn=Fka{1PCTZz*)noFLF|p)!04`d;vm6V zmfbr~mx#Dhtx47@%-{I&b!UayiC8-H-DZi1>Zo<7 zu8{b#;vS?D)}@N^imrC67CphF`~UwNP-;qwmPTvQ4!_o}x3 z`LMlwF}@xKmH+?iVw+jq^4i^4G_^&x}3*M+CXFawlU{JuQ?O zwDW{?=&WocpEBi|LvOKZ39G38dy4hU*xNLJnA#JlXhuOH7-M3NT=v<*+WNZEiFV?D zMy4Anl2wsN_;`yzTY|M@*Vd*_I79Lb4Q%?YSn-WM4g_4wu_})Ps}1!X!4Eh(Wibc|^9JbQl)0?$TfSK*r5z!S zD8h~4lPqt>`Fk;i7C=XIQ6(UjzLp0BFs;4BRGf_}-{BSunr5PbZ(G1Q0#V{A0tNB8 zxeqzLDrprdgq6DReSmEl-c#C3?07I0+yV at 4E; zA^@?N-7b}WK5GtBzAj|Xp1oNUJK2v47B(l;Iw}cDd%A$YE(T9F!ERz2k~wru19vB+ z at F8e#{my{aochRPDAnnd1=ctdNIn-H+v7I^W%8O;jw*P(ASgT_D)y5nKMF|DojJ*4?EN zTVF<^0LbLk0+(cq7PDoWNhQS1h1km(vjP$p_a;EMkZ^pO7-*%WrIi{-TnPJ62z*T` zjm@;DXBTLkLni|QQ1lWGophZC4~9slsO#0GOSD4H$cu*2#%4EjIrZ>2KxNcw&#S7y z9kjET at r@qOTgox{THMH(QQoM^5;|pbbKvw1S7tKR3>=CeNL=(UwRJ&z!}+zmYK at h^ zr$NjF#`x%J`NLy?m|R>$5|sh$O0eqG3H+n%Bc*^7^WlL5=fDo~$QEf&m^SSq at UYNN zZQF)Jy>luh8s;eEN<@IHzJyXl?51Q_MKB^)w_zM?U at jkcPynsiGWPm4A@INZ_W?9y zdRmBeQv_231ZvSOVv8(S2b^lp|>>(&ztTuX&&6^Ym#lOoWUK zwR22?lDQp&WVjHDgOUXXI3*+{F#_iH^WL-Oj63ZAzl91Z9~hHDp(jC`QVrFGQj=O* zTWkFsJ!~&s5)DV+G^`Ux_p}&1bm(-Jj40$Vxe)wQ|A2^Ob&X3;KhJ5)&$sdNv`D0O zExvJM+Qf-W+;oQcv0lhATd9RXCyT<6#qHX$16?I_!L-cG`N6>;TvWukOM at tJp6J>Y zV%A>qDAbc)R8|fO{|tWn2TmTwaflvlXbs12G}6+3M8<_f5jhxxrZX2Vv>D*8ry_Ki zCKt~-Sx)KppIerrYv)!BI^(q|*12i{+RUE$k94x0UxI;EcMVxZh{eH*Dgi)7(G+;D zfR-60p**#O^ANq?7QTn-970e&LR6&GsRnB2aPsujRFGW|H7KmxkIzh1gjAo1*w**Lr@$T}>wp$dq%~Jgc?15Mh>Kza%RscvfbkaTh z_BGu%qRP#yhQ>0W7q}PW#A$g;e`ltf^XU<;NHsU%lH^oqnSR1_38a@|KzD94Oklht zPfY!L6VsH5y_}K$9fZNoT4gXx;Vl)kb4>+U1bd}Qrh24w;hiyZC3HdV*OClvJcK(m z`G$s>#Xi%(R4E#Xy>bJLd$N&Q at u&9fJ1w+%73YMBpcV5E8|x%e(xd!lh13ov2RFiA zM9sozURa_8Ovc^k6M*FCi9s&~QVskEa7Dro|DKDT at 3xJ7>0B?sGseCGfuyL26N*>_ z=}%y8q!^ckn;?4-G$5!Vs&YA{w5q{`x}-!PFfiKS%WIk+U0QRVE`-k(7^_q9k at e8! z#p=BHxH!RfmXwR>D-u-IvNf21rE42qJ4>~$iKF$xQjp+I9LV-N1WN;p5 at TUm`!Uq| z%MWM7$Cq$rMSE~l+mey78k-=J1A}uOLu4yXc10Bx{8-Cv83aa+_{+zSQ7issLa6fy z^vtcLUK*(ob~7BW;v30x=zHb_1*sMpTQ(DEYRUJD^zg6uwhqu zw~Xyd-VyzwXprnTwAu_^jcZznW>$E(3jyQ#2k?U+T at Pvj*oKiE9qjBjv8b)uR7*mz zN_t5KJ)loCxfD(zhJJK5nZ9uga(~RNTwn_;hO0-Op!PU?I3Yc~<3kfp883{%x55)V zfr5yPfO>Fq>41Lyz+BMHXQe}YEF8hUJw`^+D&-EApQZT-YlA6DDZ{pmIIwRY)8BDKov6LDCe=@m at B+T7%G#@#B{29FVN`r8@&=0xE z5g~BZWv{@Q#OU?rZll%utTgr{Aba}~_gL at -q`^?7ZUWFV4S)2 at K9~Vm?k4F9G89n^ zFqyDr-p3D75oxIKu}yrLvJP4?_#EYurWwP+RX#o&_%WZ;IfFC)UcCRn0iENoncb4= z>+~bFYa^w)y=PqFleP))OPLA$ zifdy^;rugo6L)0 at +;l1l{Eq~JoXxr-W9N$;HptZ^c0wnp_^ET}1aTsNAw0vLW;ql at 72pj!ql!YO^uym?0t9JsnMT5JRd`e|`-H(T3EPFennZrD|J>x%Se zC3v#B({5xtX!xL*`HUPHwcnimc4=wo8YnCK?XVJGp|Hu=woT`(b-y%xww7QX>b(j= z9DpccN-%?LQu26t$Y`OC&BXTsJRQsxy}L>p&KwvdL$wMTj`@Zr;<0d=+8jS|g3(6Y z_4Pa?5E{+v1mOZ{1I2M`QF+9=pVN*9R)ji=rP(nS;qNc%Wk;)Q2h8 at W zwJW#i9v{D6uggra*RUX+WnTOAT-X5fen{3*ZTFEWohQrn^ivdJ5gG4;o=zw2U&K*1EDwIojKN3 at AA^o<+kS!_ zUvChI#~Z(y|8UksWO12-IH2dY=02^hpT)IpBn7{@b?rJE8z!8tO|pJ?6G*Hjt3^cd zfa%j=xjcF$Rab^;qzEjL6%xCe5s(?gKE!c2X;_b*J%jS+GUA9bQF+-lZ#U5(j-mjQvad`u5G!d3(i{fq4kwi*1rAI zS5m-Cv5kTmolh^w$ZA~~?b}zeBI{XejWl%WQlf6_3>yUn$kL$&x}tw3)QQz$FBu-x zeU2L_5Tze{E^ggxB3fT2(`A>aT&Cyr6)gmdSMlF!WDn&&*8*K(#T+xmvnC1vG^Sw@ zYeZy_KGQFNfkq)1^R-b?6BDjwi`BY0rz9xQ;SdHM--K)oNj at InktPBo0WEs|Y7xJ6 z at EQ?`D8vR<;i1?)w?gX?+o&Oy zqte^WHNAU8$mIH>*UAtZ6=e*aEMgu$3!jK~W%`9M(Bh{2p(4sR;?-Fb{Mvo0mDCF4C9Dgu$^{qURz4*bgZ zhs7rV8c$b?IB#U&5prydwjahsn3{e^xQng)b3E(pRoQ_ij^NYqA{p(kY+5hD#6=@3S-nl8E5 z`AU$LX+G!z55w+MDpe!*OMb(XWB!~u)$|>p2y{2(FJd3I5{xa`HN5Rf=!loko_S>Z zVfDi=+=Li!F>65)LOVnqLU~QEa*>sAAtAyRRf-BO;Rj3w1DYs9`BmsqPsK;zV1-#Y zly-g}XgW^qXoXN;u~EtvXp5?y0+$AZ at 5fxTIw1&A~XJLkFBQd=B2_ at k8)nDg^(MfgC+1U<)v zxryQ!lw8NxlK$tc?>p)tfZ4jPcowaoGTh-qf5F-|!zMM2DJMfQ85i8X{raKr;Pa%k zvh|rx_aywloUH7Qt%xQ$Vwl&#Xon#JXn_gXJ{XAQlYVUb~%BU z4oAsxJ&gyC~k at d`F at w_hzSAEvMtKy1+w;h~HgIovFO5V_(z7)E`iC*UkvNXwx+wyIE-tJ+`YQml5^^LjF^n zj|_cGx&HXWz$y?r7N|YMy_{}+`}eQF3%1~t_?h|Y{nZj5FSuLNzNw&Mkeq`G<0 z05dSp&Vo^6S9xShfl___C8Z6w5s*K4Kpq;NIdg{ns69c()-*Su$+n6sx`8v%$|JPS zgf5Ck;_{Mg4s~Dg4)C$?E>+cynOOhbDO#0i5B7kU*H;lm&l* zg8O-OHJ4JmNZ_g4{x at g-e4`ncS@!{&_d_P+GE zdDrG4re;v~*sGLturJSm%?L at Xqrzbj22jZ(LBWF>E<7A*A~+sF?A|@|G#?BGGAllS zUSWyJ0U-j}oBhtJBLEiyH)P|gj{vMhDSno|kr9oL>#BFc8c-|)@AhB*oA|h#8xE+R z2N9C_F{2lCO=Vbg44SVZ*skEE{0-y%{WX>iQ%Fv!YlC|_4P}p>$3o1joQQRwT7k7-C#(m?~@xAy_+{2Ka z&}?0e<2V|KGI}I<@yKr9zrP!?=Fy{`dv9}_xznLeP2XScR^Hm0l7c>rgb#x3N+{$Z zV)7`jR4>Oq^?G^X#;p_zLbe_b>^p?Lh>=@`0E at v? z*pS95vYc%!VvBCOi#LNAAvgdJ2RbhB19ueupF^^rDa%iJTfg-0FDxrBER at u42Q31v z2JR{O-Q61g>fpL)&$Hcn^cXdEtXbj}4<~cgxD at 9DcVBUynGWh{74l8 at d?r+=tb|SS zq+!9t%v%reo?>YSzD(UXvl6{XWN7e3GI!QKUE64MsVx)(5+wp3Crck507FH4N6~2% zJrP(Hmg|B{ceA%wxGBbr`2Ybw)V-sP4PQ(2d-o=7iY4`3W at A7C=F{CFq!!2wKkcC; zCvxhyUf|HVYLONc at 90fE6w1gB6 zoBQVawrHgA)aDoD5;}a;#I*ca38neGtEs_c5e;+(nIlqx)N>dO83*A++EFI!ht6%5PFE%*JSuas3QSVkM?2 zTGLY~auJ9#uDsq%)4)$QQTK~)KzNS>0XiX&2lA*~+ce>_a2~czSGiHQ!0MCkE2bdN z>eI~LTxPQ1FEC#)(inUA9+$wgLp?-tznN$;n7z{WgIz8+?s!kwsom28vYmeAMn+Mz zJYbAbU1}-(vSvD%B|uk!GLmu+2`;ck94kBA+*qmonm0?cq3lSVK!$>Dfx3*}i_HLZ zmJ&R<+D2t2?}e(kF`{(q;8n*!wNN5(*(zE;CNuTps&JXuF-A&3P!njuPcfKS$BUpt z26ZM6af6{=GYTouE|^gUadiItURk|(%V>A0m}zO~&Ux*r-dH+nDl7kHi%HV3yJcmf z58J_x=q_MsXw5ZM#E5KypzS1hF-U>I1`0?S&dK78kQRdnG|<+=H>!I_grgAWjl=C@ zURt?T%UR$6QcFJ>#}x0>g$p4wXQJ_ at E*dvs!quW8X&)our5SvF_;4pCYA`Ct9^!H% z^W)>9iRNhICqbqJ|3~*g_|hyt0KueBpQlfr+|>EVpebkk{FL}`431GMA;IR&An%ar zK}_h~n{lt;>_FeZzPbJTXR|CY1^@3y>mV-fk6Te z+0z0jv*v12N5vGlKPelzaf zrh`H?3e=}13ZM)ea#mH9n5M+D;u(`3dj|)!5HRX6W}t0A++vN||DLa(w!m!zl%)I# z?3;7p!Xpp|j3i0YXdXM(M*A(P;QwBDK{C at mfg+yU@Th at k_)N2rs_(h?lE&`3R& zpk&dGI>#rX-ljhSyTzSmJi0)NW at aXUUE}qad++{oqA+$CCKO>Pn%5NA5Zx^;NoTBo z6 at I;c4+a3mZf3q6cSv$9eN9YG#NjQfiAi zzlfNF at nVtj6+jb7^CS13!U0?9^gyF^!bHbob^aILlP(+wL4?t^H z2<}l7ZM-EL9?(b;h$GMo8wpu&^!>wg-OZ(s%FAo;TJZ5%idRN+(&_*0G`qCsT1(>1 zfBta^)rj^j1H4)IC|5jJ4aEv0DAY3Ny*@U5U*g>$^cY%N>P`Alb48b#D8Qo9nfw;# zNK!YR at 9+J7fprrVHJ*En at X-*;oDrkV*zAvG5i-9oX9%x~{$k`b0JIHc^|I}2bN zTw;oW&a9VAy8wLY;cJ_QK28(I24wN`WRa?dwJ-kJ3f{y(0yKbobzDt2wKrqWeMt}o zdfWh(WN9du%Y(#zw=faO8FQH;k79+&ux{I7US?L7kS=+eLj3sk3Ka#3pQeRT?V$){ zUsV5OIE_cN1N_I`NVzbqr}?0m#IkAS$_|(F2&)8AF18|CmAVQdBDa^n81IIpVbLSP zkUzu!hSkeXx$5czd|X6AK-9FjR!I)2-n1I=5r1M7Wd_Up65Pg at FLhJ0n4VFFa0KAb z$G4(AfX^l|)tfn;e9znD4QirK=j0ImvDxvPu;CA)c;1&ncR2UcLwj}c1Ubiu3CkzvA}ixu)UCb3wN5n z+vPN!O)P)#HD at 6R&GaTy>(yFnId0 at V5>&C;%r*;YqsrcXdvk+I9v{0LHrHVeEb|Dzi7^O=Gl0 zPeT7rfMSroZO4v!>~1g^6`BY>IKLn#uAa# z7~*OI z>vii$VNX%F^H^hnW<|y|Pz=YfVkNk{c__nXigA%fS;X%Ig>AcZouEj-F>PF@`t}gV zGuBY1VD+|_I8H}3M=|YCPu(f>!qA|CdiUr7I}uTK=o$95 z8|h`h^~>(1EfEE at LJ&fsD3BlW2aMoCcHi27R~dg6Jq39YYhSqxXF$y{_kp5>%joH} zBm%t})T{A*eixZum;u9|MT-{`!$C*W6$k)2p{{=W85k zfnc5&bl;JAV#Mgt*b>o at SXfvnW5INf96QDhjoIOh&&8reoULior?2x+a1(j%0I at 6| zSGdu5fjjXtOesmJ!sQ5nsJNb<9(`Z?cI|9s at zkgA$w2u9Fm(i5mdcrS zmY0_l6}7dnAhy4NS>3DGkbwh*b-g#22DI+EUBes}IT0hE@`?(!kA at XT>biWEt2T+P z;|coAZFt+jngGs-9XLn-^J}E0fT{o`jy{u~jLQd(CWZEpCPb#bFV;f=>?XM`05 zIe2s&JH3{oaL|?Mc}o*~9C&X}|6Vd2RTuO2<^2F7DcQiW0(#OESnSY39Hcb-fabe> z6xTu$sivhrcB}~+{?~7t$OGqfTuJx~1sARMGMOsNpCQ1#pLz6RLxY2}gq?>TfgNWM zaW$_ZuppxZE(%Zv1y#W>pEFTR&9-{Y8lsX(`>Wu5a0gJ|@rQSG2Z*I&WhFRy06=yA z!iB93UoeKy9Oj0<6=uuH&s&CH%rvpj#k z1PC~%0Cl`z&oOBdb{x+`S;#5;`r+fcfDtteOZeKpJ7Ad7KH|kHh9Z)AF?b8XrFy&Jp>OWi1?1`YCAX3QsUzE+lW=(CZY>j6*VG(xk|j zC+GwGhnnD_m28;%09(paGbGBGXVulTu-wwQxOmywjrH?ma;#Y-zPk%`4nha0<7{ID zA4-UiC#jMbn80&cAwsh4fUyfQ6O1sZ39*Y58A;;j);feh?Dr}8eZWpyN9N*G_EcuK zg9jXoDhQu3emuicg23DAY61cZJi3*;G$Qx!cVpkkt!5rE_M}+m2pi;O at gzR#Ik6b- zxJ)OSePuJ}%`+U#3Yk|NdrCAf40uXxLDay4m%n|u3>T0c9SZ(@%Icjm59JngIgip@ z42+GbK&WAPR;K3Ww5$Ru3C$KNuUP^tCd at zh29$keE1(slT;ntI9EcVK912{jWG)wF ztMWP&uvLv;dzmG;E_)5%VD*>RDE#oZvq_gC5Xa<&-|l3&0g?ka1Uo&6Tf9`T!=z!L zn9Q}~H*5&%=Kf&IL?Q^KUTzBm653p at Vo|OzBmg3#qzp~|9|@4JMc1Qx#|^}&L#t*A zsZuYU!7wuiK2=uN_ at c_J!+N5&fadhQg^7p>@{s0|Ow%LMw{M>d=}{r4vyms!41|7o z_AC4)ERgXl at E%Lc3L1|M9gP;YB(wtz3h-DE)T`zX8CLc0zj>NeM<6+#K6Pr<_m5q- ztYad_j3n at l;doJ4L(xoOuLk&8ogP-;=R+$!fb&$d6;7-8i$L)-9 at 1rUJh$+x3Ajug z2Rfq>qfc?N6YcHLIoZU}knI$2 at p8)PD#{0-;YC1zRWjH5WpKP;t;2+pArFbv|4)*v>62jSFRGb`M%oO~b>C3tWup5%-uHiqQ`l8g|2E zWy-fW?VlQ at KLt4LhS?6E1zeVjl!OWtOH)RI`=JCY0CrNTT8Oqc3EcF*@801!E$wd8 zxI*v7CZ0TvGa4R{|Nk(jK+||^ZfFUGEvNzYr!5H!evTrNa*=NUut_Z7FAH<+ykWA_ zGb*z6@$rs7{Uq*$uX{KZ+#i2*Prp at AR74xGghzMw>Pnb=$O{T%4S6b|O|>k;0t&Hc z3DwCNB_fDJDIg=!4Kv`Q{e<~N*{_n-_6r3Pzue4QH2-I$B#3Y zJb%!k3{x`>KdIt}iF_BH*WSI5kzsuN&K{=%CAWyK;QD!$4p|KWuPMJqaxhO$%t34uA^c7u})oO-peYf zclYkl^+0w)8V34hxi at Nu9H6o-nz4ye`A`PHzW{obmUf_gM0t>&j>_=J;ltnITS44; z`JI(0BtaZKvC_ah6FYqIWk-ZCUUmdUu%=6EoBx&D_o zL}w!d0uT-C9JV)U4rhB5Jxe%^{ID83nF11M%wX%z?&c^%*dgBQi`=rc_RhH*QoO=P-e78XN+ za**k|HdBuXG&i6MHUNyj4papvNiT`QEgxkGT&$FykIu})NB%aK1c7vAuOQZCfKrhO zggst+jU|z)w%-t#5FX zo)-;mr^x%5|Em+g7IqW#4gXsJ7NT1Ef4+vL;kOe7!o?sENXtAgr;T8o#Da zzE7b9P_Qz|>WH`1cxH~Tcwh{7BBS)SjzoCa#=s!T&c!N;;YmGcUtj>; z{(VmOt$Fyerli2nx%DKbV0H$Rl!bp=A$15am6X%uL90 zY5?5k-_?El1`I%oYD8B+nMwU&mTh at x?zyz1S8eA8VnW2QLU$ui{Ee=rDzu7GqR(-(i|byLe2?mXI@^?@7p zT~i>Xpn>Vg4(QXTwZ1hIYKRylqpyMrJRD-}k+(Y!*aqdb^0eLB{#(f188))4Nu zW;=0qk at F*P9nLAC;>zWlU0(1C>&8K!=lP>f@~$p>wUko3Q>RSOUFXU9Oy(#v;2bJ&sx8_W5O at A7blY*`n0C)( z#n}iy9s?DMr7pWv7&u_$$d at 1%c8FB492+Y_K7}eATaz(|?=ir1ub+!>4sBh()uGJ- z`BileLKEIH%tVcC>*a{URX=bdUJ1LR8GQ0L_qDtZsaA2$OD>bOb{ESHwVbZe?{mQU zk7Sa8Z*kOC&pUztBKrXFZG6PAW4&ra$*#1*2|DqUvntm835TG&aa{DI-yrhF49$;d zWguyAXa&eM(V!@qIk|(qy(ZL|@I>x{6^Z_RMrrCkpZOTvK1KL)uRwAK z2U1zEDTWyaky5gC!^r&{I^>ze32s(F+X*~T+6#o_%%wQNp?%;}zkc^_E&fwDdg*Hk zjbVj;7xt$@n?WmvhYCxL%E}M~W*rt4ec=1iQzCf)ioxduM{ji0K$>tKqAhfW{hQGm zKDqqXyx=5ZTzu$IFw>7WZx|x5zkCul0=nhA!<#pao7A*5pkO2q@)#3VLXBu+F?zOT zdldKE04*BK0qW3_6hO4auDWz{H`)}24Fqs1u$JN<;((SU z8>=QOE1I(v^&fE4+R?KzG#5awJdGTn6Iuhd=d|d_-*^84Th at NgBp1_KR+(^EHh3Zh zOyAP3LkBi9fPwN;44lW8wC2nfVH31(8C&`QaQJk1E6h0=0G11Qf)ccID&e*4CHqo< zYnkecVuc%@uZ5ot8hR#waB7e-L6u-%gufj(#K(ap_N*tHinB7TaR%&YJvmJlZhSiW z$rLf at otderfcB0(OwmP+#>1r=CCt$S4fgC!i~(-sA at X1GqvoM=EEsw^?Z&MOpo|Y$WVE=K1sIgJ5Kn;07x`Gz6JEG;mojZ$P-s}WdjyFbFDH|QVpzhg~ zL{1*mA-HGEW3c4wP*p}f#2ZJQ92%N~RuxPt_YJ5asuzA2($bZfSo8S1cI#GAUQWn? z93psdu5riXl at Lw`PrwtD^z3T(@wq$`VM;dUQP4lh%b=?$PMF*zCMPp#0eqAWYXu4I zOY6;(WWXv|4B{BSc(K{qzq!`%2Y~2sEO@??Xep365)&!-3%G%dFTpl>M_doGwpOmJ zY$Bc{v~(~)L~EMR9$?x51D at jvu}QHj((e=cPaYrj5QqtXlBmTjrSa{#r#x3q1`7%v z- at 9iIj9OWV=Mc_Or?V#C$#? z{W7VW+d*cc3kGb)MUBtPaR(&evs+kD)arJzbj{?qy4MR(6F=_5`#2v5Pvfn=2N%wt zZ=32J>_BY^dVw at WnvMY{%Xv8~a4`&GB}p;BnDMVAIXIfM*|(L;$TJ82!o`nrgT0y2 znzqVV&VpcG?6Jegp(^<$6q$(==>vdi__r`xqkh?Nj|0NL75hTBFtoo!DtEWo=zGv} zIZFekL#e3M29^ZwSpCEKpSMq6#y at h^p~Lt%jHAK^IY_*6{Leq3?~soPm*_o+%?O+L zY2u0PG`XA;OwX7ZoH&8Rnfig+mP`!ru$C9jDW#X96qEmq5C($oHqJb=U*<;W=xc5- za?Zf23njyjkLYwDV93W3iiG>ERHBy(Z0*=zk2iX&X>N0b6bnf9;rfnCu3rQuZBuSDa zA(>JMNis4eV zdBx+tuj|~bbFFo{oij;f^%-_U^ztLs#rb{n`+rOjyT~D6 at db{$3 at mtAa60Iufwaks z)J6C$qD|Tfl&GiBkJ$;J`j6fUrFo?O~7CPvgq(UwdOWDyfB(r6!38^M(HrKJddv z;}>}CmX at FRQ8MF!VZ~p6pxNN`_00hn;}t_vao?~3mM(#BDMmU3V;&JC4;WXFYEW$O zIG{u*&f9s1)pFPcL>djiE25ELYD`nGpE(PRQckAJd;l+!IW+*)3v=oYB%10^g?eY> z#{lI5MlSt3X^;yeT?>en70a)DQ#sVOT{_ zp~CM2tTI_UKsw+)@OYSBqY2>nViC?JI4B$xL;&Q7PzC=Hlh~Ovnd*vR0+-zMbKJ3+ zzeT-H{E3Zy$=l)+J1y)$h4OwZwHyeWNRaZBDYH4CEDy|I5x{k$%3{PXWYkULBQqiM zzyCnCcX at d|6%0t{7twsu3cU z6bxhpo({u%b{^ljao3bmvQO%@5M3~mnzG& zx!)To<$O at b2|G?xQMp}GBGIboDNdL;$|3 at S>V9!!n{mshW9?d2HiN}64+R2Gp2Pe5 zkX{$x9RGSFv>H%)o&)PM!3XZmVVLLWhiEV8M-tU7j?i0g!LCg32SNw_WXo%3M+fX$ z4kU~kkcmn+{D5vjJ>>k6|LHPsA}7%` zNmVxO-+zyR-$s@&m1VMV!d#UDfyn@$>&A`wBxc7Ru*RacwN_S{K)EP-^2%}6CP<43 zR+pwjxW~N*Uj}B?+1WnC^1*?A#8&_@;8MzQxPDSa^84|luni0?BEXQV2D;isM+5_l z!3Kn`^1p>k!0kk9ighC7L_@#R=Bfyggr at 6GnZjmcJ|g*qL(M!};gn0DCBj-1L3%nm z^!OpLav8{y>-bJG6nos8O<8t40II%(Lr_9oD*`w|ye>W{1ry->@cdxrXgU%w+WD?P zH{2P4per24ipEJQ{?wF|>)F}lyE6a6_KuE?(-t+%$B+e`fMiS!(VZU2t$&eJba1e! zb)s at ICAVDldG#>2_`2!Rn0^vI6i)`AV`#M%!?(fDNH&GV+B-hx-8T~d0)A` z%qqZS4{RPL*FZ&u+KC#UIU+=<@~F^^<4pOD=OG*v*eFsWzJC3hRR2hv9h1yw1Y0d& zf?9 at h_V9g1S&5^unX(KcKIL&Fbm}3>CSVzORNbIhamA_p6Db_*hIh=OCSR6jPnb}4 z|Nd=%TqO#+M2;5o?tn_NiSRu=7yuR6&Y_2=n1T^;AeJD=F|oQTT0ZQ`_yn7)U{R+I z1dWn at I*a|EoIMW at X_I7X4A1+wAI?)%MbFJT?pj>mkad`7eyUSdh+uO$W1JstZIaT` ze&{~HXxJ^1xud%HI&GYbtE<3UqP7N&2Z8=lB8qO+jXoth3+FoXW3n+n7rg at w2=wow*~jCAL$1!07A!X>f}zu=GEcM72!F=XChhrg$BG*0 z4^PF!IITDy7q at Ws>?t#5V3(Z(=?7{(1Z&2L$LHLZGiP$*)kYX0m|!$>%S0w~p>mYD z&}<=(EBF|4h6QUtrb!3~9Nq`rn-MN!B+)t4hOp at m{Is at XsSvH;DkwAutx$_lh(aPD z-$a;!Y>KwP43i3f%&0&p0w2$ixY_E$5FliRwfPu4sB~ob at RsO`^KqN_h}{P=MK!qZ1o;fro~b${LXXxX9-49CYPyru2Yxe7|)I4m+y zRIml+<9*H{ejf!>aet8ha*xpo{fJJv0M>FCDxfeemxt0pal(iQC!7~Ae5r!yTELjN zjzl|>1~QB4>aO^~J_(Tn#1Nfb!O3+%N=~g}OCAXv9K4nkvu3%vx}e;Kyj4*_WxIz^ z$mEAy$@%2CGe4%`c&rIsVz9d+0J0Ab4NikNM{@v~sIiD-BOEc3 at xpcQ55U%?{bK6@ z^IMZI8wmzX3{hBeOsUT3seyaxvBr%W6*PU`(=(&RQMHWaHUQW%*P zE|e2zU#BP##g>~a9o at fw;<;7|n;8oX`Cm^Hfi21~k4<}hSkqMK7&rn0%4l=ECowv> z!8hTP&_NnOQ$%sbK?3m&oE;p(z!3|5L&(^4vv-g3WHM2;a(9pUr=4)-ShsLplKW!0R0&3Yc}H196!e<0tlz12g-nTYu6&1 z=0Q?aFc*NT6J#_W=!{8p-0SN+_^gZd6rb<~L#!~g-_8(?8sy;q!Ef<{dI+MCKx8SAc>NH;I5mMzC^AuV zNV>^*Y*hMF=v8ek-z?~ZhC0kRSH*^^vU*g%lw2-GfI~6WeNcKOvAdyXgFgDRHz zbHQW;z~qbI)fZGVuJwY;EGLD at v=?kmx4vWH;V5 at dOAN6sp>sV at O}eQ-ozzgm?EuWc z-zu>&Iwochf6dXK7J}xO4-7>kySLS^hmt$aD8Nu#dt~3_pGJ6JNXc-(jHlg2n2F?J z`)f at E3zA}9g>>r-0??_bE=+hzW$yR&Z7B>MniYJJhN$Zl0pD!gw5g8Y1_>t7k;2DK z&v(;sfrbj-YU)BDZayPbFAEIl2{;X;E1eBBtDkMGa54VKvQ>y-FA-)8XWW06umJ{3 zi^L!PfqwI(brHtO8AlB7|5% zjr2)V6njYOVH!Tf7_V;b;|1oj^v*!X>hP2(bIN at 50fMF(#QS*)|B6W&7pCi0L&ruK z_k3ccEIMy+>;%T+5pg8`#Sh}D&Kb*xWn~MHl>Kc~vq>mV0;Le26-_tIeS(SC{9M}p7H|T_bU|6)QfD>DDW&|dMwY4{I+ at Q&lOsuG>si8}gkdR>hj$(%8 zQ*m)%eZ==cj7X(I-q4_qz#(cOQOYKgQ|9Pbp{=4&C0Yxt7QV3%`IYZ`bAh=?TmhA+R0b;4 zHb4Qu^K5nd@`Wva7&ah1YGt^-WeYqSEHc?Z^8xaBYAUK3E|gj7F9}wu+)9dHg5&K4 zGIAFv6opj5T-g51*8x3Go;nq#2iWWoDK>gt=10)F0SNQX at B)F0#nI*!Qq5#qfjo}= z2_F|Gu<~=v(PCUss|O1lSvhmqBoPd7 at zP4JJiWn^B^znwsV@=}A$-uHQxPK_n5nJJ zPO3joog#`Eua|Rf)Ts;I at i(X{eFMKg)9$w_d|rSOATXLFat5i>>1`Eu-jstp$eNm* zTetp2`o&e}S)i~%8( zo)n%h6Jf@{wfx~j_<79P3Qyy=Z~F6mN?Gdi3-SFZW<3=Ow at iAl4@G{#nF-kG<+E_a zp4rjv-6t)QdA7Gt{7w&JWrg#SQe+8CIv^$932%mA?Ynm`$AESNyp`7ls7PN0FOXuF zu9F!|;dygF7gpY|$EUV-zo+0&W@;)kL_BKmS5;x;3Y9VM(j_Xi2eq|v*ewn8!9mHU zE#nuXM<)0%-UXmaO}z(T_TWLdv9i$Fy96S-Q78h$6~ZR~u&exW0oC;v5aJy>x-rn8 z4hd33!$31YJ;xs(C=1*`w^7jDi2OWd at HX5DIaPexqPfKY#1vM5e!r>8;+_lrasyjl zXaz~hGy!z`0K_Cuz8C5L56a_l;~Lw2=FYv&FT)ulF5;*|-UhV7Y7tTlYAWGz1$;TO zIUk?X#>#hC%sggHH_KUba at OYi-@JAW;w<(?`TzZQ!X%N8!EoUQ>SM;7JVq9Y at muh2 z3Ds0yRw}^(0?s1+l%*Q?1m*9)$;rhS+Q-CPC*m3yuu~ob?l$s1uWoRALpl&C*_G%) z)*^8d;28S}%WeYM`t<1%a4FR*T5F)2u}3kq=hB9ZdC!f(zX44LbY6kBJw2TR2^WbI zLos&z8x2`oxT7y at EQ*9Qyr)eHCMlIDTL+r;(i{^DS(?j;NkFgo;}1HYY$6hMFZBR8 zF;9^f%G2VS5;s6|m}U}zsgY4CK!k-_Ize6 at 1%ia8RNFFUGmxh^!b}io(f07&fzN#6 zk=Fxw*myJBhKvYiVAZ}GG7zw~yu5%@Hv&>@6{dWIOjfG$)5$y74E>y&3}=A-a~}=< zr`%Tp7`{#v at O&d)`QXTntrN#I at 4qly)FjaDe9@!vAEh5i7kz&{-njhQoSkpBO^dxc zao^mnjk~-rzdmv4$&WkJc6`!bo;CC3iHYNuTr-V-J)=l^ah%ipn}^Q}i^N{ zTC7;1Tns!USZ&>nl{QNV at 6r{}shO&L_*o>$pFl?+T&R5M6mG`is}D*(O at iMtKUn8(%?~PkB-U=T}FblL4t%bk~G5oBPe* z7`SlvDDjxPPaF|i?s|0QKJMwFW}&H~((zPC3F*T^OmyCo)L4$ipt$DCX?t9A~p zz9_&LGsYQhV15Erb>LRR4rp#H!ecc3;h08b#cp;5_k_|n-+bo%7I zk08W+FK)Tfu6NL+J(XpQ|0o#05VAZ9o|+mOcprmxu#-HT$4C_yjWl}o`t`q6?hBPh zdZz&NsYT!H|MAk!2ny51DtFU(x>}}d^%;bAfxED$zIEF7xIM3_D=*LqrrBU5((Yrx z{?;>_&Owt6U!KzP>62eqL+D1`@eyXba%*Ka-1caso~4-M4l*Xrg+tdEX+$g at C@~ty zV!(~OepQ+cNeD`7l(}iLHFW_!5SV>h)yKNNcXPQ>6$?9GvG(Hi{?1xLp+Q%DFe077 zo{YhND&1~%mv7&xuc*J7TKU%3`!nWldnMG^oj=%{pKg26N}VYRkGQWSps$2480?B1 z1nu3K!xr;SK9~H$tM;F%vjyLLU+colHPTBT<0qj~03)usZm_ at Zq(#%xN&CMK+N&ni ztY5PxxORuKOjmnkKwf at +Mx`5u9bc_8S1g at MmtlNwq4cGI-j{W1Q>XID=?|{I+z)w= ztjaPYmp@@^*=vp+5y~+AwNGONQ{lgz2{Pw3l-n+`2(6+yw{}}(2 at +r!V4LFiLry;O zpk+_p{ym8HN~gtB6+>_Q2#cJ?4I+G{8_+R}l~iTH{LXYoj#2L=s0cNFj6TO6>rf6|Oa znloi3_HzdrU4Mxgm)b&=MFvY9P3tRpzEDr5`|E*ReS;z>@#IfnCb~a(eUE2AU%{;T zl9O7JW^XXMb<*NNeNwF*TTX7oVh$hB)<<@egwe#9c zP|KpX?eh=76YQi#u}potkDfyLu8M`vfd^}9(w?`}ZoAIj^{rbc%FAcdw63$HLmJVa z5zyb_e)UCz=POLzDMN_fG-l7-^q?}RL>)FunuoH#NO*cFHUJ~G+nlld at g=wQqt}gT z at qX4CC;i(BCFFnU^1Ef0v?I6H&oCdddSVXs$KW at kK~7e8`u6=7p*V4j^797?L(QK0 za4gQAU*G?66%h|fVYEeZynhebG1WfZzv<*E@*^K<{jMB`;KINsf|AAc@@iFCye0&n zaLf8$jDCPTz)Jb3kHiIPp at E(j`C+oqQ~mjiB%z)9XA#yg6b3bquNXHXbiGeQ2&!&s zW<1+}wi;(*Vy2Bf`q{gez_m>KrWek75oV(Q)y8hWm4opjH5_oP>2CMSx&cnTHH@`dv;KaM_xGJ8KnEF8#Eo-9rT_3gHOor_A`9Ms&sE`RWYVgF@^Bh)7v}hhRB*vn6f5XF at 7X6 zU3?{KamQCyT_b0d-hzfbdwG-0cPNrBQD%rlS*+}RpBXLL{f%At zT6J-rRo6(7AS;@?HER|SCg;rylTM>^;&$_1 at jLXGZk)lk8W-IhYJZ^K4_B%9`NJ at Q zhPOUnWD79Yi<%l%daBPZNFs>Cd7C$DR#3z!e{Z2Y2d%k3q7X)2e;J|rmPWu%X2TKP zGnSGUgSLu)?*k)-d%{f6V~%LR7M3y}Ev5{j9^xjo{VuGHE^wjZ2pF9tJN3Wor-b>q zq}wh_wx;?Qs;BuAI?rPPNGIOVfKsb*({RYwIab!BprrKW<45?9Y~)3ZA z5j0-=^Z}yRqr%iGcNSu*04gYg^1sEk at +Gn5hh9-z9fK!K z$BP4A8cIiyG0Kog!yY$!dLYt3ZCq~yFyy3f+?nH$Y~BAgCjV(mM_t$5xz!$XbnBun zfpqo1+Eu~V(U`P!^ek1{%l09va1t{2VbANmEK at b;{dCzzrXQ{QTlX2puiyt!$w<5vp~vCD0cigQbk7eqP|_w-<>uyI5UeZd zdowOSa9Bb~IT zh|no=QvGH5eZwBU2bsumK)_7+U!t-SQgf?+XD+X$Yc{_R)9HVzK2o$X55X+vjHUSK zF;JD8zXca2RJm_;cbAnEqrr2%JiZr|>aXdxYoO;^r|~(MJnzRz4#uPT9BO=}fW93H z5$`&De^dK?^X4 at B^h49@=@))qv9Rj#V at hVEDEuqO6`+ek%;oyaEWu%eQ@$<(gENJI zs+JC|m|o0l2;Hl`_ zj_8YtQM~kzb z1mMijdA-n4GPI~*xXvxcjx?};>(5gh0c&BCz)1{11seU|*4X{1AENFeZ^&HHrHE&k zHG8(`%^7ZS`s#(Zmdc>&wMC1csyl00bFsFz>Wu;mk3DQ=R+_+0gPzzh3pDr at qw#Gyy at z{QBzg%Tu1Tc5d3ZaZw83Q?iXl)?EPFD)*~2 z&txmwd06k>K5i#rc5iz~%}&6hRN*aPZitX=L}-%jMbe78+=1X&V`VFilS+}z+XH%I z*JW(FTm$<||Lzb+ar^XZoDTg3_M3AY1|BUQiN%5YRr`xoFRH3S#IbOxYVB%6?e=4sv1|qlNx?+x>Huuc+g?muB3O0!B&o`snn19@*OL!_4o?6m{|{zYu%3C< zy1m5>o)pX634ok&>-|`fH9+Y3-tCuprxjWxePn3SEQN^c+iKZ4(Mt at Zw{r-B4Yc0( zLoyQ%>V&=-`hK#(Z284WqceZx*-l8(z{(VBk2b<4A3y3bRphL59ChED=a#3Cv)A49 zg?aKXw_kBYu7lQ9d&rd1$095Q-|)X0kK at fZDRW2*?pJ%bRP^9vo1Hm|hD(JG!-9QN z2UV-iw&ZSI_f&l$g2(2A7_EKpqbEMqB-hLODolbm^ZK$?B8IsYGh^1OBuo zKPV at P=n<7DuyLOE(@mjX*s710#Z=~|vlNMF4UKtn}vCetntXWKmCDg)8 z8igO+cg}k1zMG&_(cJRoi})ntbX!WRM6nm2e}H{Lz2iDm6D%Y|f*>tX&PA6#8p+S& z0i_D_H!-UG^5x%R=MU&GCQMj>Z>+Jh8|8_I$E&)!Jvk0tK<@iBjp~bbwLF_CC+iqU zrEZdllhN=sb-*cob=4o(pra}qW|HWrdxrSNOC-tKUaVr=WuTN at _~)O03U;izT?YGS zmo73LkhLgtX7^oGyLFSKLXQ792Q(cYKeFf-w;j|+PHF5hkQNPw^P75+XYRa(c~%vM zdmz1oL84-s`<)Gqvaam8v^A>xn677jLq)&MO2r zP9NV=Z2RoEOv&HtB*)_8L;=Do7|5Ow=$N7S`YOESvDcF91q8p#KRxcpRF`(W18?Oh zz!+~!lQ{E>LWGi{B4{ta&YgmO5FsX12k~|mD{5?qeU6(DAF-E*%r^z<< ztP&-5r|?UWeR6YSE1HL4LSx)Um&A)N(lk|x>ie)F0Q--^2Kpx>jyB)U>?n#`K9{u_j~}bZNeLUbcMH5QDhzvR at LPdVcz;x}6tZHo9r at yZ# zb@{KZ|H~dyWvEeKqDf*`v9^C=rCa9L{T)@SRz at E*X~2U;`YAn8;jG`aV#r4uLK18* zZWxW*C65kvyT-|ntMYsPKyV|zr|muS+JNq|^(ueHg4uNV*1tae4$nD+!K}nw5zzAl z5RcRzv)+Haq^x at SdcXE1Snxe{zgi!;K=Bx724)$yUHbZxNqT+!E%(=m1|ZL**+9%j zyccA;H^PjiEze)Q>U*9)Fs8W|dgSsH(I(OFi&C=y41|>_v2HkMjR?iWtc_X>zDuAn z at b%HpEkGxLdu-*lNPhA9H4NtR`}YBx!2U^%k|CkZQ{6}Uv!tr3L}_2Rxhf4>3Uw`I z6kykbh at k@XFN^qku%bC>IWx%VC-0+Pr$f*^LwO&SRtpQ*u^U3UImZt!n>7L2EapRvV_i|U(Fbl_5 at P(9p1SYtUXLiX+B_o|JYdUAJ z_wi?M)bRyNhSdeJya&Hq)g`>JTeo1phwMniOEw^&uBAgoj~#Ksr~2C}nUXV5*)u+kLCwz;g3;xqi4!}z{nlmd0qFJ? zksK;?KzNzBrU_82laHXr-%l+WJuC^K3%`l($SM_nganAfE=!Nbaz2MrsByvFCc z{NI1f*_dyj7enTVRduG&(xVfjN3&lBq-8Erf#-(EooBo!2C#GLC!#XF?+Fbxm79z1 z8MZ#@EA}~nn4}7y-o5;+zOd%uisr^RD2TMug;g3 zh7t6=v-3I|Lg(#bEUF*(5Ns^A{6dvGeSNjZHIqakd&*wcB1M(}86;ZWV-;okvyA

ncQ4=M4K6gC=T*8EFWz2Ee8)%yK(8>=wY zx^`_H;~*f+33Xj&SfMOv&3l3;e`mm8Ct+Y at K-Xff`Q-}33B9eG&h0fzw}p+*U+n~A zu}J9p0Fr-~ZnCr%vV3SXi(uGKGvV4jjv;xR`M+6cWVPlAkn5a1?N z`h0kt%yY+*qH)ro9eql3zyRKh2{sx_8jq at a^537t57;DH2>=mtCn|>WxpiLpijQ`= zU43C{=?(<7J+Ivi`c+IBZLC1ZXPsuM`MfiKaKBv-%urku2S05xLPkNO2LR-sKNvRc zoPf#L(o$AYfr8yIo=Wvo$hdV(1Y3z34<6jb%us)SZ4kb zt5W&}dKLbAl=<18dz;utXPTldBk6fz!vW#-qkWgfltDQPb+E#t^`r$iuc*N at K=yRN ztN-T$1W=Q{e)a0kFwt9+MuhGbu#mC7!mnYpq?pFZBNoX>SH*%02L}9u3w0JQjAK8W zi!Kou3n56&DmM$dhlZGBJy{PQtd(+_-chKSo|2A`EPyXRD=z&E4PHPTEZl!EdgR|Z zj|xp5|MC0piy=w4A+SQ51?NIAguAyM|I^r>uOhGVZrwVja|(cE@@V-IXF8i7`^VYM z*MDB{BCqbl=;69;lNA5V{<8m!#^~RN1TPnTJ53?NMElUxJMZ?7yCJZoUp#i0sJMDF z&Mj;voROc$|H8kgi6rJ6mt6_Y!S}SbrgRM7EotIkA1*#pAcf`sh4;*?@s1V~)|}ce zG^}phHvG0Q#Do>SXj!sq at 1h8%d@(mKm=jynK%qi^Bsb?`)%=AEx9Z5ZwGeG>Ged{LOC0bGEsm2=hwG|O& zz|A0#%0!r}I$y3ya7?w)(26N*Y&YzF8_l$ZejCijQ3p?h+o6npz%X8IyI$@Zy!2F| z!T4*}YzK8< z{1B7EZY>!}DtA1MK_bbUo^#QKjuyNFod3XfvhCZaMVa%L z!kDmG&yxA}Ka(CZ4CETap7%*io- zG68>R7TG>MGrAOm2IhPX?LKr!8+BLfDPUZ~m6|S5cO47auM_tibaP$9C_`Q z&ma2ztg8(IKy08RauGz_97fiV%LZhHZ&fFL3zBOCQ9I at CgG_p z$S`|{1_rb2 at 4d4Mrak*wmp^cG at JM>VqOnJUOmJ5a7CShPwYkG2ngE)^6DPei6IuYx z4C?sVbLS5A-2CUCBN*X?-N6g7n!4x|OFN1`H4rtJXoG{1mw;y%bqQx|26-ukCpGl) zaw=lF6OZs)@GvuW7hR=`tmkn;r#M%QfHN_jH-!dQ$RrG#9|M?Idjwdi}&w#iOUO; zC8hu8d1iIS%9%ADF=YrHsRHO{yymkPW(=5Zjsx{>wGl-lIM=VLCp`5(dFK+NV3<8{ z{npoq-&z at kOKa=W8e{WiW at d*Rv`Q9*O+`PT at WL<00i)F+b<)Y!AZeE>-T0A0=Y`YX zdFtO2xon?~LQE@$YQEtPC69~lJbCHAEH7})-F}3dP4QTpY(4$jRaVaIG1F53D4_8p zY-o;!E<5h^CgR4=Rl_A8yzDhkaaHTX2<5yt^y6$ItyCvm*{6FmQq0L&triW+YldQtu@%ot^xscA4r4u->GkDS3{6 z;ug3ee04$pjvkbICJS4>b<>hiP=Mp?$o=MHVE%*K=w}#T=m<>edYK1-9%}I at 2*rO} zPyb|swRDs at y&68n6trB^^0h=8k0k!}b%7C(ZrWdn# znT22$@J&9QTCn%4s^{*I4q=pfBO1g9#P6y-tJ7ijH0|7bDH6tw`plU_ zKJUZyxN<(7A2$~@054QqewIG at US2Q@wo#yhC+0&+>pcSw-gA3)$|FTG? zg at TKKDZQK&hV>txH8hZ=LL%}i-Ap&Yb=#_Y=0G7P-(#gh_ at y{!I%`0u?!{fGbWsm~7;`mBb-o8LJK1_ at fMC_4$2JgHD0P-8x5bto_*X zcgPbMI$wWD^E6fVS1LQuoYVT;JFOUGA$&$gEgU530UUjI<}j6k#d8J=+n||;emr;4 z<<`cWJjqXH&@m!(!{wU5W8qkhnM{84W;9(ft23Bc<2td at 94<)yV1Fyk1(>8^eB>9* zBe8%_M&P$)%d$i((D0%yP&c~-_=<(a5mOZ&ZCh_Ylo{6PayS{W08CP`JGRi`29D{0 z;R8#A8iHZqz|OM-4|=f0ck05dv^JmyftP|njPREbHIhaGds zessG=s)X+jlLKHFjQTGl3 zEw-!QKf-Lbt}ct4XO2DE?dK0fQ|?+M;k1*=(g81&(0YEI^yRuTkJ1c+LEVmO}oe z#NQQ;I{Lr-0^cj$N?kC>_ltJZvq-d}WTn(f_~Y(HQUX#ec}2zWeoZ}v^aQ~QP?3A{ zp?e7!l0{h`gs)Z0>+*X`%s^=$TxH(=?k&#)Ko{qFr zwrQdjOAM{lP1O#THO*&dr-N227KKVmlnk&fik*Qf5xBQ_-GCheUJEEzy-7TH(f4(8 zVux=fC?=V!9tfKu at Q1bT+ zWu+=EePp at oK7(`o$1|3PtbsA1&(#GC?tfYk7dP>84YJZ at NtN_*Gz8~-KTgkccC(G@ z5g3jz5?p^jc%-47U~Nh4c1EuYY0|(RfOx1w)lc(0Ucbgdf=}WW1VmKHZ^B%JfVs!Z zs~~e|PMb-hOfwj}f!k~zFCtEP=Ek1-98I^;BtKK%{8};8r_AB)idBYJyXnES zhV<-s6=;dsT+esd0rK}0CryHXX{V3c-b$UQIW?w?6tie4&Ns&`l2bpry$6_s at ld}{ zT8y%yVI&P;{=(RD#8)M*mw8`w1Yf`YSLm4e at -r}<=UTPsQght{XT at ZUoSzewb!I>m zL6)#XU(s&>HU<1yKHSUC^u!br21+ZmVxG8NAr7J){HxqGZh3QOFIX+YshBb#Qq8ff zXmZ0=1eN#kc#c1n&QFWgM^2csK%=2(Ccfp?e%YC0wsa}8s`}~Jtx<1(@DlKEsmDYl z;lE7YK}?)5apLe06DSjHKXO>j!{F5W9|B17`gNVrnhg&F*cM;VnehJ3D`n?Z50o1Q z?@Ni~ZnO&fl5ebTGS%3u8YtJ=*V(ixM_XIoEa=+EqgUjU at Rm%()SV7N@*tokC4J`p zz>R30A*gK__g{Yg$TdfStqJUs8O~?pp@&m7=Hv`LrhQxsqe^7OiQ4`%pNwo@;gD-tO!M zYQwmD0^8f9LUZd{ml{2Ey-d8M9P|u;thCZvCCX8nVR^k`S<_Af2MQHs8I0T#tq!kL zid~W8 at EYj7R_Kf+$1Z;Vj~b*E{6-H1%)+Zm!FqlCwyLP?+*$;g9MK zBu}{J4q8k}M-H}))IB5prdx0|)#X%1`MbGEZX9ayAmyB|h344&o{txqvQ+%yqrxDL z@;z5iy2kD|BW|LDR_BYWTSz`u2Ff#lSTPjba at F250!>X(L&0~^jgbyokm&ydCS?Mf zumKD|y3{3MAEOP$O2HWMACZUsD-65uw03fu-B#lN(M`RcZhKTR-}Fu-qxCtlaZyo0 zXX#Dm-&xH3_5HPguA)f at tSJn54}eWCwqzv#{Wr)?cDBK{2eTPF&yUlhNGNMEY3Qay zaM`qpPWj*yCKc2H`q#GT{RQg=>Y3r(x$p?4Ecir`0v8tX6s_`>Ep)mhm&3(xXm*n- zp&ZQ^d$eJfQ0Pm#`#Z;WD$gT_ at X<}_;TRKuN{cJ2O;l6_CMIv849$2x?Dm44RfG>p zVvOtHIW13NMJ;FnU=wQ|GM+C at TB#HXjU?fu05o9s8&k%U3D!1&*iMU4QBk6}-^b@( zV><=;z`!lwBYAnmuUAY}umqD26%7(tUS^iL=}Gn5;5`~!J~qr0x$d=>pV>IIb0-U{ z3z8PlZ#TBT at 8|*Z&b*f6u#GmxP<}&aQWTtIvG%>lfDH{{2?P0w2cudtoHIw>TVv6L5iQ at 6y+9w*<}^1B8r9UStI=o=V#=qa=s^$Q;jIu;ink1sX*t^iBQ zT_FzBC3AY2O2Y~$@c!U6pY?#(zme0)^8_*Yj-)s=NUE~j4`UfSWR&+hX3dp6>#N_> zAoAzw(>{G0wfyuHhG_5VEo)RZHqPX<_)3;8L29)ygU`RuOCY#^l!)LUZvB+kZzc0udy&9U_P zz0cpsMT!FNPIdt}@}PkEesOD`9H)oLAgdlMsDUYrCU at K~FUR5pe!Tgite2nN6cQ>a zfw(Q^lD3N|wh=t9SomxX6L*Vb21oiMu^fjo44aWES99~$IWMugIJ-Qh#sf8==wTy0 zJ+V2Xo>g+vSd2xp at 1je?Iw!WgvE3x`I8%;pKTQACq8C-W>Bw_jW6Cz_$U}|h$|C?^ za%iBm-NnT;<2m-~QDFW)dHH=!2>8DwhAJH}93{6Y$3bhXphh7%mo#qPzCCm>0y89r z at 5dI`HMUFRrGk<-at}%tC|WXKk80oITZ5Dxw$bPZ>8Ihl1)qx3PX$)JHLUmzW%l>~ zWW(NG&+kv?JN>wx5B`O{&_B;xAb(h?`!z<)Wn^`HZfH?fW+rjYzy0WXj-6nNA`(=O zkt#f|kBWX0%v)pf`!;%c*{I90GoHjnlcNv;l0cQ at qFaNFUBACke8mb23s8Qep32DM z`+q!MrcJrQKIYS}O*QQpQ2Dn7PZC;j at F8qclheCCzqra24?~H(!bpM|GOpK@%ZIMl z`A>Mgn^d(t1>g+X+1o`2)^7)%m!eYQ@}tnEdbZDaj-4^WLSn7%AO(GZZmpaoUi$RsnCR6cJRvTsa-XTnYk)f1ddT-=f> zvq{eloqXr7HI!$8wme zpE||vQ?LQb$GGJg2>&%T*~R_>orayA&}E?ylXOI0)YXA1+^HPtA&^-j*s2WA%B(|Q z{kNOb)M4tAdLPRt433$i{CyxxKCpNAWM`R2{c1An!$usd3Pc-JV!m|Vym`tKoj#w% zm-V0H(b0>QWdvi%88d>qA&My*wFL>?xXJ{POOk%F|iNDxLD!ymo}9tU6nn&Ruk at zsthb_Nv0CXL_IF5ULhLLspsB0(>S><*Bcs+rRLaaDjw2 at I{XEL`_(E at 7*=-o`@dZfYpJFZ zg(buw)%ok(Ju6gYDNd=L4Zhx+0wsVNCNPPnDlTq+Uwa8&MB!!|oSY^fEtV1wmKmO) zsxpk}+!Ob!6n7x7io%e3a62z80T}aC*LbYUnCqI6jiz4r zj7U%c9?+G)u*z(L)(re1B>%x)OX9lh>$>WVlqU5JtJkhg=Yw_5W1;CW1k8f<(y*n~ z<*bpqt+OS+j)yxmwc5^b(l{@=K5bI>=HNmG_`IbG5Yi1%_w0 z;oKNLkj+c=^9%RUmKPRYjKv$Bf_{&am{{JBQ2+2C(HOn61NuE1)(#Ge_qXox%^vJI zvg%I%jG$`0K;1wEp+^RHO-*JAX$;wyjlR$30Hv3?s>nL at jG8AD8iGb`7|lUBZvHpH zfu^25jPa(;M8CxcRf~*`?sh|42aTe4o%KT2e6?Zx$bZLBvjEH!M8svmj~}(veD=1{ zW?Nn?XAE!+UD)mBZ%&nLiQxCY<2>u_EgBNF=rrhxH^jmRQiq!*joPpX+L5VB;ekqz zInWLmI67J?V&fJU2U{w8GCh5b$GJ0SkTr}wnw*#@d~BV6zLAV1<2Y&Igp&Y9vE^oJ z(Nw*`h1uSp|0;D6 at B-&g{&YUwc7|cRrCL%N(wKr6Cep*j7o+b9EutPo8AC3N;IuRL zE^6?36E+Pb0gfRy9L7S3nxQ>G==~v!nQ2z33nK?wPP^gGQvrKmP;a~bGJfwnJemW~ zh;PV(=6J?ZDn#UUDUu4;F#`OI){aFw{59nXt~&B)>ufKM`B0c~^9Ncc18faq%5Ls# zve1!t$+Clq!c#~LeKc*u%+SN2V|&=8##lDW+>31-bQ+&7SCEZ~2-^pLK;{r|8GzUE zS;Nui8r{z;5%ViU88Dh9WkI^%$TGi>a at WR{Q7&y=2&!Ckj$M8IN5E0cc*#h71(qLaaoqmHEMt-t>kGaOKfLKQmn&Galgh#1 at T z6ad9IsZgA1JPawXt<>*i2k!3#45f!!WU*q!bvyk3W{~2{RWX$4>Gzit%~rlsT%6d5 zbPo ztNx!0FeGZh at n7TT@0Ke27rzr?Np$Jkb{{?{t%#lGp=Ar+cN4eaemY<*?aNxBjFO^xaGp4&O}4Jal(~(umMm>cDCEUBt)d=jDC!)PLZ*3wpt?zj9ujv$D~Z z5MI}^vdj4EL1>3j=6q!I at -Dj2l@2VzZy5WfAq6r!rq(Y-O5$^KousUjI_ryrn%yv3 z(@=qZ29;vNENyKrGdvK8DM%gC(xyKcO$^EofprnuKT{dBf8ObmdN%K)bVMX{LIRVhtDH}*m>EV!>ovzx=E7|k(13f$nKW!a_VRwm9%XmIM2Ua7 z#`H&XWq-SArEb7A0N!gpa>c33x3k&Y+y)j%Hq6twDya)sxslIa->VqT2&Udaa za$d+rIQCu0Nj1KC!z0<5&=j z7 at Q6p+Y9*!Gx*NYrL3I?<0fk`@uDbMN6#8v%3`uRMuC%~3LRme1g&Haf;N#0bq)q0 zNpR at p9Bw3n<`>4w9$Z_CP>wu7!>t8}FAGYfU37*fze`x;3nOh_p=5(N_ zp}yQ(Uy(uf>Djls-W;WZ_nONr-KT&$kE&q3aBF>f#Hj8e0&~c6)J0#$6sRFnCggth z#wqiSQpgwaTjh{`ncqO{ztGL62RbQhQn8Wn$iu<~VXay;&QsKCyk)@kzozS+2~TW{ViPtC-NQ^T*sB0*f(aC6Q=jMEUR9a@82Lm|kD+^>JDAl<#&g zIv!Zk7?dA?O9sy!W;YU1&2Nqh1lBb_t)l;MaA46&Ry6SP`-7PsAxmBK6_KQtjFvb$ z_tmsVyDQ4esoVhI*~7OiuRNLk5F7;tl+lcya-330A zC!6fSIr(79P`T<07u1Z?I8z|ej7R(eGM at J`O_vI}ji*>dcsK+^AOaX-s{cP_a2 ztThO0uqx#M1&Pu__WvN2_2 z!c0ldRNM`_7^Ab2Q(1-y0fhneD3y&le2$Q!2Doz^3&}%%?ZxAks8ohd@^`yx?-VGU zHr;2g>*a0S`!sKL=<=Gvm;S|~0fOBy?Tnc6d60}1&0Rd;N<+k8nel0iZE<5#aV zWh61knkB=cUgyx2Yu2!3{+J5;=!bd;iWJYKcRiIrI!~Sq$%y#u)816+CO45J#+pWn z-_BpV_Jbi?=1yrb5&3ae@|E&A+1nKwlm4vz2a`9NaR`sS%-N-d(ZZ0qF?5zZA$KD<}CYOZ2rE at TFoJ^EC z*9<}1a?~3(W36qSe{In at cz9yJPLTkEr`+PODHfo2RDU)8&*F92HnYPoLi4sZam at s7K{L zkrP=oE8q`OA&e4&5>$l7PYUhB+v}dkoGGtQmAf)+ph@`hOWbmaaM=BnI-c1`LmJ8^ zjwqpVa2!o+9X;Gq>E3E6bv8X{gw>+C%x#Et_9V1$>B*`Io%QV=n>Tk;$ug#=?L8PV zR-F` zXUO9*_6akN;l6T)U?ZtbzThs;$W zd$;MIu>?_9kkulcGO#Uc0x0!NIZ!sw=hXXAXP2|yPGk9|{JN1}4UJDD56yUvl|f%GS0_{OGi7SNMp&_v*nz2l}Fq0Z)mpwWtBI zz at i+ugNLi%g0fLU#FPz*c}LmsDFoRF#b|geTvZ6O?DWCBBg7o3QrhOvC#3-=U{`S?F;>rt{Cg{<27U(r$W*Ey#)^UZrMt zVhO$@2`2;kTl$P3W8A4m1P3x}AiUw%k at AH4Z=paiKstiytM3ga=Bd>%)Wl-yk4+R^ zH*PTaf99Np>`BNe7aOJ8ZIdQUC>o848~!=GNnvAh4tuR2K4N(sWPJRuzmCYy06QJ& z?Z*l_OmEO?fqkFb at 1o9LhK5HY!3&IqUMxK5B6PE0R){T%no8#^>Q|(Ha2^$ZUqA0z zpoH<+Aq9Ex4Hmqmkbm!^tPL%gnbJLVX46aal8u$^)~>}+L8yMiRr?@4IBzr>O*=V1 zTjxy3WY}|PgT(ZS`md?L7!W*6HodozOEvI4#b~OUnn*Rw!^Usj+*mka?pGBw1O*bO z7x97OgL};3^XpcmJRuiYts9th>tW0F?qb7M*%P%KlX(%q-rykZg_f})KVO=vr@)f6BvtoK1ib5HUuQ2MrvMz(7AHiM5^P>~1 z=H_>o6D151>R4hMA2-E1-4^(ikuYhFYN at z5q{@A`cyQlKk2w$V&Pmdna!y_v!461SuapDr+J2ob#u)&j;5ni(4lMW;= zN9%yTE_SOzKilQWS=o>!uQzo5Ia&%W+r00Ak%6X!E#OMLv)DFNyRG>UK~+5qo09s} z4&Y-iFVpUdtqIm?TH4x1Y}qY!Va7gs8qDhGFjJAC685*T`mjy4z38~@(cCrZV`pFS zm;>{l$&S z`iEw7|9P#Tl9g^c_6FFChM3@^QseRP!2 at bJnt$)ylv8&4Qy3?-`@H(##XuTfCaRX^ zZ^h10Z at e@lzW4P#xbS67{8*d7E^W)-bdGP9XdANeu=c%00gHN_UI-TyhHkh&(Dpt5 z|7g1Ic&z)jZLcIDBuQ41WF<;gR+6kF$x1>Jk|bM5q9j?FWhW~kdu3-_2}xE$lAX3&opV7qy1`5hv5q=5!;>~ig84ZtHIoC-Wo-lbZ7FRA21Vb z3;~yuxT}gRaWRQj;m;1~IY^MeKdsFAn8PD8GpyjXGCR!XIn0I|t(|1FsvUtAA<8^B zdjUqCGhOS#AClkRSTGcJad)RDd>M1f%lyQ;?(?j zq4TRYdnT{077Nzq8vzyS9kAqeKNgah)1`s#xpJ!8ry9#jSh` z_8?SU$onQO=*9Klu_1lRlBO at vHF-$DJ3HE>B2WO{>simnHKEgp~H#SYOL4L5gp<=4sj zLTIgYhWv;fXkO}$vW2-(wKqwQ7waiia(XJgwtrYlcImjBjDva+e%&Bt2+{r34`sR# zIm!8XDDEXWbSk0B#&)ke-En!*Rkqw at 20QN0A9_Bz8Bm>PE`s0uZhs;Pg*bQ=Jep6V zbJ(z{IdJ2-xV#*PnZ1%|2qr3}C_U2%Nxjg1m7BDK7CCvp{09zq-&1P_(=J!Cx|#ZL z-k?L*7A!-3T~_vnt9{G~K$wk9PzJ|=CS08qzF7TF8^Xwu-h)?8;$dUcWL1#28%-ND z$o~7cCpca3!-Vu>4S((vicr+oub5rlo)13^|GJEH`#7lEyNDXU*0ixz~r!z-J)$rbn0H3 z;-;x32u47|d at ZF?8#5LOlp!@rvu>|mRXhSy7TPF-46!AA3{Ab5Hi1UiD3k*uSPv3q zKi9t-$$4&A7xf1v3I8U>_1ux=3Vd1nQqFnZQv5!KowA{ZmET;{6VZQX&Mg;@hq1ac z$E$I9u|q)+;rTA5`*#*PpWGSJWmQ00yEUOE4?!LJbDVq_1agBMNzClFn4Gw_3p6lZ zh$r at hw+38Xj{mXBjC)nYxMI5zumLsPi^0A=Byj+$z?{NG_wDiRjRR3J4&eZaB;HHl zs at cBb_3sAGphY@pT;Ja#F~uKE(w-n5AimW at i1Kp5B1AEL2L?&BwSS>Fy1nt~c9k0H z&LJ(d9g!^q12hZl?p=a|a;su;(Ay_1wk5 at F;5wwuOOrRHb;= zI+9jr;3VTQ{$^Xaf^bd%^@#KE+RWMRwiMrwMA4${e}lc6td<3r>3#x2gQ~X5QNIPR zz4|qTGbP3tz_x!>t*9UB1VdA@?x1=LERENlRj>L62a(YP(9**r&cC($p3bPWn5FN>|T&k5;`wQ}vJ{+<@!U>a at jXUfR(}nG(FWDXkCc&WZ_5i8nnpc3qQ+hiIYeVKNB at BLty8Hw2@F{o^*a3b7;&R z9Z4_2h^Lr|gi4frU{nC5;sN6)Gq72-10$D;t$$H#Uv%a at no=m&gu|BIPO}SxjM9D% zy*EGm*fyT!=g*;<0 at p@jw9 at c*GcrL+Ln(UCsGtuSO2Q>LwcIkm>1w1Pg<)?7E<ygqz~Z+Uqo{4mJSmy?(8nYybkx3MRI@#;gj^3bcf z8Y!@`B7%jHCO6~4*CY?cl;GW*%>G6DEFJz0(kV- at M~U1yKc=D+UzLm=j*yYt)anqc zN-cGAstw(owPdEg5G-Mfi~2b|dmp??NFba;X{^8ufkk_J`@>PdIFm_uhWPYML2m}^ z(K}$k=#~&i2<|sp3bN+I6^J?jZ at KAtz#|)16ZC*t-I#kudmkrLP{Syua3U=aIUlA` z_Op(uFEp-a8;ml;FN>#zj^>tPw!tN#J?|213m;R8bscN7V(x&@JCTZ&o(fML&>`NI zPz0DKn3aJUz>kT4tDP1@|sF<6|2iC_NlKbGrZnHwNW)i(mSU|10`!s?U z$bCpoxMt`>^EG<~`Mb!5dj1JrS?enny88cbd}@bhySriQT7^kVr&~)P9P{PAjh%>X z!%dV%XsYf(9J!5?AF99n at 8Rlvue8Q-sbanM_3dq@0Y8Oe3_vEqANOmX;RayxIaf{f z4V0bS&JLU?gQ|!wRK(2z%%bw+^Mf!P#iRMCxg^JbZILw`yMu#=_-rL(;Jpd1uL_3H z1UkUUv?NN51AAvIawxnB?H`;h?(VH24z8|(ku8Xq!{G^aDMWM6+pH)Pc_!Q>7|;Yl z|KwD%0bRx2yWL|>IE+rq%g at Zrum!7F_5Eb_tA at z{t9&k#D?}9^1j})B4h=W*Y~X?` zYw0_R at J*C&Gt04>skrjsBaBAy9#15Q`Csp$)U4vbZb at 9lUqvEL&hPMWW>>96%*}at zGR7>>hqOjnxDKOY at DJ*eUe@#Ee%7kRCB~REnAlqDPjhs5ZZ3?J+#k#Cq>K#eS!jxb znYzd*&ZiM*#bI6cX2b5AT^=0;Q(o)2Kl5@?|J~97Y>eD{5Y>~X0W72tI%tP)#W~C(yBwuF1=%qqbfs}%oh}Lwv<|ln5LPL_HI+T)(bk5 at 5 zJ-kr{Dj;t6ot-Jnjky^CnkdEhOaT}{scEwBU{gbbTB8tFTiF%{f^;V2;153JZbe1E zu_5ckt9)ziC=9O1vYA at S-I?exN{%oH5QK$0U>7nDfoqu1ae;>Fwc6!xRs}lNwasAg z1gjON-aOl8yBKFaB#S_1LFUCAS=c2Y806YmE{^Qt>KZYIAMhQg{0hL*fwh3u_Kox9 z1~3U6H$Q&F8)PBY;JTA{njV4`1_zPA;7*b(m1>7SifdzI<2!7{o1VgWE=5Rufl6zi z5)5iLGT!w&0g(7XZ+R zFqKPC%QA$;(&5XYZ=CYIMxSU{1-&Lv9c zmxVvF at sDtdm_ImIvlXoqYC08C@?&ZVE*h#b zy}awlUksAkzFE}2`@_`o`ddLiiwF&VpvNjsI1uqup2_Z`r$VDQ=W3j!ExI^^PA)AC z{{Qy`d1}}*?@~mY)$jtQ>Hw+2HSp*k-uj(8;pZ7Ce9#E|H_0cl5h7le z0B7GJyT$BBClRFq9eC9N-;CN}C^b9g(T(6xx0dw1`J|`^KyBq<+6lGsv~Js`F((kj z1qI|B-l{tr+b1Uv`<;4mY|Kf~FQaTKU3K6YlbAldK@*h_RMe!G;8&KU}_=tf+y zd7*t24;l_2mNV4kr2N!P(V3O!{fAQ at elBXMx;-gLI6ib3(~7pzu}!i`-*C|)=Hy~d zkIxpVJ9LxT1}GG`2XV+rj;8Kw0YbZnJ3^zdxLA5XYv>B-G~EoOr9G}6>A!m&5DTkh z;SqL*z#wH91sqj;o;c=%thi$3+A-SX(?x!Q_m*3^3CbY|-Yo#@4{EEBaL{DP1Rf_`52VDXtHpWo#`=bxVFp)aD~>8hzIMy7X8ZVhg)dmZ)$)@C1yeUBp at +r(?L$Ll=BkX${T&3_ssaXr!oym;+% zr at 6pf!?K|e2d>LdIQa_(*Qjya(MTIvrv(9QyFewXDkKU)Ape zkn6bBHn at T9bN=N;pLuMA3TVJ;PuwarBL3Q0YOktzEP at dJ_YTkXJnujw#e=6ezmH#-fH5-U)6n@#h%I(<$Tjbq>-*a#SRRzLADH6FoP`Q2& zbsipoG-=Z55*WXtH6Km>e6O4FkmGk#Q;-5T_k^jjamNtU1Hek?sZbm*S1gzJ_g`TV z+x~TX>(|y6mn4q(4WO7vwEO_UDS&pgq(tTD3oVIgO$;k^D{qZNT(Y18TMShDg>jI+l)sPDnewO|S zN|N5+JQZ2`naKSyRe9YBbpwQW%j-I35DI}DX&vrdfy%n^l*Gw?2yw4mVGgdx0LpdN zx@(ya?4)AJeH2955#L>RQbQ#2X~VT=*3VCORw4m1wha#-bzQWk)Sk9L6Pb`LR0*=w zr;E|JQY54;^dI&J_p0nBTkEMGN;Oi@&2auL(o~riZW$kaQjvo`0Bif>M-2w=caKYW zxsHJo5M`H at ll$QHPk{@F4XWq}jpJ=6^*+JmRu?sP>v7FlsM~IxOu%M at Zx5{?Pguqt zjv6MM7xa4!Wk3uHA4!zuprJr^H;z)KyEr2-PPYBNg9B_Tj1;G3WRkjYlVTS%D*swo zMK2}I{m{;L1>M%zSW3$nSu`}7BNhz)O7xxp-8+4dNWY5YG&~(#1)htq4-D^FDa`TM zDIu8Et--u{q;ek6>?G3b5x8`4iCQ at oNJX9Bof6J_b;u;yL=Fu at px5XL&ucKb0zMB@ zH@i*8^-nXg!gGq?H3+GRAPW&%!7Z~* zgkf-XB3c<0gD@)&okarNRLoyYH|nv_jj-s%IeHYCSw* zgD*~tybgWB26l}=EH$hm?FlVo?1mOQa}2VGyBzV_M%f0{pFRZ`3V$N;xPN~Y9R~7V z%6}k`;Tyk;0z`*>W7qVyM at D>SA%(t{7xkY&L#f;B#tqb#pDe_3dP*@9)zPtfoM^-+ zHa<%}3f!@6OvPBN5JTX&flS#z?a38TX^pJu-}3eS3H5-ba9iO>oH&o%=N~^1#*m(> zkPZ%AU4$6#^7%97vsffHhW^D+5Jh8w at Vo>#n{ZPyvaT7U(|-dV68Jl`mXBt}oTBA+ zAKY at 44UJ=s|AVECE$2ZbHZkTHqjNEV1phfNuR7lov4WM5Q5E>xUIq_9kJyF1EI%3>23bm6z{@fb=N$IjZKVS20 zzxZb)EtoQ>?+3T2zGN}W!y25`Ep$XCNjqIP10*g=f2W-MX?T!M##rP4Jr&^3Fm+KT`BSHAMWXhQO4;l+QraN-jSfU`3uCH~A%puC`3|69 z^S6IKjXHh}Q|Pk3$$qZp?IzoS+g{D~)WJJ|r{;Bm1bFb^N>0zD7VHV=M|ehA8R at Cg z4j{Y)I&&DXq at ve1JqwLc##h}JqTztWQ{;Q)k&3F5I5Iy)Sxs`i9c(89q zHbeg-_A7)&5O%GtY25e3O2(G at _wUhUBF*R=+U^&Bw{hG2{@rXX2~{`bH*HqrKHerd zs6TNjAh;Nh67?RScSvqogD+-X6y(E7bP&O+EjPi~gMAEv_}^isw7v?q|Lx((7X4cE zl_oitUUwpj0_*^?*A^D;u#l at H{zgdDCC{---04-DxNm at o_NL)3lfxA?h{8ETA5T~) z0&GBBO8nqz+ at SduZjf>l0I`+W_tS%0x7>FkRWvFZ_XxHpqyfadCY;mwd*F`${CT1y zk)`?M$i5J&vH{%rKLuCrWgC>1l_3M}%RK(j3MVavZ$W{?tX#RtHn9Tkv- at gQ0Es%% zwmm&RUqM=B<$7r)@5t*0x)K~W zf1dmoy~0F{!xB5sU+Jwav8-PWDBPjPBWs5-Ujk4lA0&W**w~ieaDYR{*OJ_Z z&Jv;42dk!Cuju2lw_9C&=xhbzU} zQ~5g%I2n2Qw5HebP>N#WjAARYN+Si#@PBNG+4|C)RMuFezz9J0peUJL^tlO1Ihx2z zagXU7$O$5ud&{CgDOAiyMco9xpLw=s<|xGLdk at Q^HdFJqGVPN5~d# zDWSiHSY^cd4?w(WOc!^e{&=8I at h{9gYO9n;Twz8biL3N0Y+GOaOhY|Zq00OR>G!- z6d?GyUXH!)oIsXStX}JP!21)MppL7}RtWN&dhvEe{lgBu at Mui`O90UdG_A;Ust6Dp zz6AIc_?XZhfBcwyR4_sV*bM}TaTw?l*JcHfh;iui_(I|=4g_5C)xY5Y4pH43TxfK( zQHHY*+XAZ^$LGHiB(Ln2{;vb&W2Aa at vA@@0k6_SHYPiL>Ljdjz=wEtaOXf4lA#Y$C!t-h9~u#hJn5 at T zJQ8sJ7uhBd|@78;8?2AHB((Q(ls;Q{Onhvilsb5dwj4r$VV3D9>>63^`}5Ks7rRE2qs zDMa`iK+P$q0X+B at A5`K31$o^g+=dfsk9X{(^ z2^AU$Kf|%rG_SQo`ASl;V=fBspTC>PGTjtv-vC2j4jy`Z!B~aL4|y9fPi~JK+v3 at s zAaE?QWo`$|uL!UMcxMSr6Tkz62J)bw8hgB^Z<=1~jO_YhRY07!-Us5af->1VR^U9n z$4?>!2$VPSC?oioaA$8K z(9T|zU3p~+)adhi3);Y1M5|)&!U1J$Jaj#vjp_nMqk4>=8q71w{(qblBO;KntTu#$ zl%a?m8lC(153|t0*+HaL(K=w4s(CG{;V at vQr^8K*2nX+|HY=PE6@@=pGxQ%TAeRr) zH>)c-x*6UkfOT*!BF3eo29*=Y2X#I?ZBU%(@bzvdw?g)U4T9a3({n}*_Om-B at GBSe zAz}-YPLOnp*s`@>=rmw#CQg^cWE*T6k~@oT9(+u=g^|R}5~t2*cn(vypacXiS?9=o zj;OsYtv=awnj=I2Fthkxw_)^bPnN;|ddrovgBAc4FU<*12DNKU+b=Uwq#P+FA+H)8 zz_a@};gw>IF(kZThzhkK;2`zmRgz{8r(8;R+aSgj&@SqaUwe)tNUd|y`8&CEDcOs# zPk678Njbt$0QBl_6BNYuMLX7ErpDHOxPmr#VL{^41>hMyQR5t~}ZRq~$6+mtd zAq+j$>Lhme^z_j-xrI-N7v$dmaUKm)r?tLFWOOHK-FX at LXU8)(brg_|jVqWnI84V( z^{ef1m+RQ#___!sxj}XS5dr at 9VO8|-^n at zNkeWFPhtcw(7LN(vA$6EZa|IG?)xX#t zH=E0FUzEI`*nBywJF{CTpILe>RW}1PQVhDB`ciL(ga2S8f98fCg5zH|Mh4!qSV?QjHFtfCTej360oz at Rc8I^CSKW2XlMX%2< zpP2juezT%qs4&)~*%wx(qvI$EQ6)-qLJflL@@wla&oj at n9xDXhE&=ABEvEbviQh9gaPUM^-F;H4- z_0W?{uy#+c#q1;Gt6jc-{T$#D&F+y3lJ&Ce;-p>YsXr_)FAMI*F0hjdPCcmRwD#4~ zQL+#jX*oR)JUk*`@QQ=DQ=4%%#E=c9KNOKr&+ziL?G9s2Wi8tu$5 zB+**(>(pJL?8y*6L#2W~xI@(Ybw|N4baCZ6q!Hkhz&NTa6}lP7A!^M#OnPuYuPM(2 zd4MG)06p^F^UC4nTlSWW;hMlr3&H330>vh{#%uyeJOY7v>9|kurPrzy2cdg2HfAg~ z8$xIqs((1iP$_Yz5GJu6EH))o99<7utGw2+m~@Z^%ugikY0#waxK84NZ}rAsmbNmi z+;Id*0LIyrwIJL?fhWv+oZAi2>pJD&8E{tHy$4i}3I{&!ueQ$~`tONtA4ie0Ll3F< zd})TlsNH`Fz2|D(g}$PzdCAS=+BK{g3=>s~dBqhO5)y)H4Zl4i+ayPgXLqu0xyg-A zXfpk-8VH^RY-c at WXKxQQ+j$B-3SsiCzR=t2fXASRaq`IHi%b{4~I;}Xw63I^h{_f8sFL$##roR#B6UoJ>F%suOP53 zZG|Gik-htaOfp at iJi~{v=w-rgRv^CGAj?qHcL8yCRt6S%QR-khACz-Rh&6i|>^(0) zfI1}_C;_;D4m%Hz0W(pER_vs9XneJkI{56Fl<4Y6ti at +JPKLuW2L}LC;Io5*G-Gy# zvI)WmziNdiiR+}R(W=|1vf%NyHK8XCTSM$u|FnQXeiNk*u1Qp1fV}Ob@)!gt7I-wR zgVtxiKKpQEmy39`rpica^6vj;I^@gBdd#+d8KAT@#WbSUR+1B78m$U~JRC(Ld6`9T z{0e{OiRtR-VsYowQ!yGMhIhgyaX+t5E at Dwrs=9Wae at ZKZm&{%K0o;^J1KHa?J1gT$dkxN+HjfOQD#+{S~^)G#S}C< zg9-p^QSfxOGujMXnKZG$LU4-G-puOec-nx{9$OB z`BVKr&-f4@*81}wj&DQjEv(tXC2%hGPh0U#6C-Z-Xfrj4vCwt0qMEQ$hKih-AF()am$3U)ur_G-Ib9eko!5%j$qis+nyxAj zWCHK(3ht1s>a)LsoETl%q%+4*)bb_OpsPCtaCLo#|nK1{uAPcsHyA-(y`n;p-e zAaEYThA{%KXNsmh=^aFsh|;%{+BaTrTZnLSmr^8pfm!V3VWsnjm-8)bv!BO}@V zwI1$W#W3k^*n2}%SFd-GuW~ceF!n*Eh+|yKorDUHl%$7*?`OdJ`h$da#I`&WfR7Vi zAN-es%c=3gsz_yktKbNynH45wciXb8lN_o;lJZTySZG+=)T=qw-+>Zvdlsysuy4}8Z? zG4wNX2`F22KI{stH59f2L`X$m>jw-Jw|biuwwW~s8H0aPprMz9o(Ei=y`5c$U+z2I zoE|LWU-w^V*%v*))jn`1f#_BrdLyBN9)r{QyMENKf?Z at UW|rJ0xvY1A)v9sHeU9l1 zXsj7!pzt`R{&(I(F(q%{543-_VQt5z}0lxTq7MkVSJJ>u} zuzhwf=Q%$#Azk?WReIHQY;=)R<#il at B$gO4K6K7C+u+*H2#v2}PRLE1b9I04Ah=F` zOB=j#w!xVSvMLO{L8O#~HxLWlFG-BeJb0Ykj4=9Os;5>ypx@>7IITmrD=b?mrf%=> zB0HeMbB-L3aKIjVdn^h_xWk(gM?}v;(b#cSbRP&pz($k at wqvQ=XZ4Eu+pc at __aU$0 zOMnR$aQz5+BHT{)MPWyipL>%_sU#Q2N87zNLuLr at 3@oF;FOVg)Sz!VWBhANwzwHMS zJS#ya_vOL~<{b*DS;MGfp%H%s&!#-rQvf;l2WFNFo?Ol9PAo_BY+r=Bzp44pF1>$_ z7ePiU9)W8*TwvJF}yTBk7{gtU$HT#1KZBMziqj^WTNSFffxrIEenRf{L73*f at l z=CqfD3%}Fc3i*(ZS1f2yL19tcl8S8^v&Fup5kR+++kaToXCD80?tKzA(QED%{L790 z at ddO>hQc3UY)0)Czk3EjB+j(GUO0iUC_w@$-9{2mhCW8O!Z3l8+2K%8KOip5;ljJu zmXo at L+cK1=W&rJPtKWVOn#aOjHNo{IMpct|01cio#*tcS(7$O4z(X!biAxwFt+y}@ zLrv at HDaS&GxRA(}dTNCEkoj;k1wq`GMmYNb`d4-Isn7fn5}^I}`c&`e9DHfd50d$K z>kI7+to5F8zrp#4QIRj?j`-SU#o!D^b_^vUW)hw+gX$*8KZYG#@yv5_ZWbD;iU7rz z-dmlJ)Jq|S?EA)PR)hl6)tuOdliK^TPXs87un|BfoD4|vQ+kCA&_5FLr%&f~3A4~$ zcE+T0^Ok at c(&o^qWzn4yq-h+C%`NC?` zlgI!!bMs+v+nLwPO(L5tTi<6JWGV9uUqJ?#Mv79HIvNam+-jOdiHqoELR4!9lLv9I zsn6;s0p?L=vK-6+cv< z+E_uIYs|+SM8PnR7ftkO@*?M92W;BO$nI3E8~8it`Usq!_q~H#@3y~>PQ%0R{T5?B z)u|kQ^uAH))Z=D+q6#G$ngDb-I1T?B-x(EqM`Y*&POF+*{_a6^Tpd0W;PpjTBsR z(=MlqsOneX(a_C+M-n%dFWlT>sxGAic&2vky6F}+O$+YW!S%jVE3j5-F_ld4TJ z;-k;>h4 at hn;I!l~#OvEWo1(i4BoN!yI|Vt+$1qz-dvPZPnXCVqj;*E(o=~Ma?AH(o zhs4lYl4tG!4aKKXG1J~LC*+J{AoSMeI;{M}2}V6rP-j6$eh)L~Z!psNp%y~G38I7+ zR*U1U_oFF-myN&fZRp%v%w$9uC*BzN+Wec1q7Iri+^}fg`p+Vw`uZo|$3rU^uI;^s zoFkm3AHV#Ub^~vSk2nNbcwacW(my;Z8?a}4ug}d0;f(F!>P-Cm?0(Uq zoca$JMsJMM{cEJ4W)&k?R*;1TYb#_ at vFBAoUw1Z6Em4t?7W82m`6mCyy9XuY87uDo zj7#~O&qJSxYXD!DP+O=2+r>a#oB*BHZwQl!#y}REENrkWEeJ*V>Lr(O$X9^}Iid=z ze6)N&@Pyc=zHD#qD3lL=V3N}V+2mP-w&D>w=j||Ef{;a=^vnR(bqnvx)|Ftj#u(FC zH}@=>)5j^-eK{AuF#O48m9*6RN3TsDXU|?G7Wa(-Vm&FQ)LzfAju2&Nkkxne6oN1(d3E#%2&#>lFtSexV?8t zjAOl4iNLGNljs-YBqO%{MqC=oyQb(C+F}_-8VC)#lreh~Y_8xz!EgKy4b0h3*_rAk28d-;ZG8jwm~h5~V at AmY&!Scu4R=VzqZ=r-NlBX!F8G4TiER`FVm z^oq`W6(PWx8J$J2!W7IwI8jg>Ypww1%44W-g_m#D9g+}}EPDa6K2qkX9Nb1$ z6j;`zu9e~1Ks;^|j2wnmv+g4_06b3O(EzUqy?`=c@*0_w&RagVHF6BiyR-?!8Oz&S zgAxw=LsT(iMooTA2f@@7WN+PT_M*p52IKbtb1IfhYmXsflch)cYA&lcnVbfJUOw-! zoU}9&-on%^L2W-Y5Q(h(SC}*GfUe9Y7}U_^;q}37&(eX^)6oHD#j1qz21oO#q at seH$Kp}?L zh9yuY_i+Jh1;{5hsZ+`1ho1h4?XSDMC%^zBi^p2hwx}Pq9#LuGv4pkA0M+WSBYzu*= zx!Yk0R^sV1GF!^SFIRizwF(X$^=~@^&+v6e?cE^KJQsOuRaka;A-|A2ynZO|{!iG^ za81a=C*#MgEr3-6O29izQvl`#O02WRZYX=nmhE&{t?MeNHk2> zzx8MeAXA<6FR09w@#2BMGhW;43IgCukQsu at IPNpF(omO)zS771DYQ%byAcc*x=V&K zfiU?q+-vNJDNZ6V2;Ks}p^lN{z_uYY8 z=jYd`N850nqs`UhI&c7DBaF{k-|VRG&BIxYWrH^+5RPj|d)>AWW7r^C{(EV{9=c7b zZ;4az{5pl3wZSt|y#$GCy+!ngENpH`D}+(&W;nQni9J*2>!3#AMamEBemf>A;L3c( zTKOGM;QV!|Sep*)O;6#)G}l=HrXc$w2qNgMu)V9rIvGY^ipI8~oE$IcgBlQNn6P1u z&UtS!M=q?oR}NDD81?{3{C8&N at I;gtIQHQB8mJl`o7W4&`2>dF-etnI2osx ze&g{kze5Vc+#lhML-b86$4>cW1y+EC5lh#8E7DxUpw#J~B-W40G;t!R42XHE#L=`)kQ0$?EsOtc!9o5IGdS zU!ExB1X{-z5N-lD~obErY?JAmj{fYkV)-F9aYAV{c`%F}1bM(!J^ zf+hw{Qq)gbbl=U5>^dZs9&THXSqnLK{Y* zW#W*4UzJ9SUD(Dl=J^Zm68IN<~`FmYh1>F&+%@7E*>4|?bvZvQJr;b z2!ykI!TNSTCl0oVTL#kwxS?|dDU4Cv2WdOdDnIJP%mYmJ_>K+<5w8YW{sYw=7gKb_ z%&D?4O@|`AUJ3p~u^2U)*3miOmSe<(8b3W8(26->hef*8u%IoFesk^QChG4&%#y_x z(?2!zJFgJxbbJa7Z?i at O6W~|}HIxiiC9pEry|jk(q!*xQ1}qEkocR_*9~>CBTVBR`_a?4$_rUq%Upaj?+&8wvw!?fnL`GDsWh ze^S)wj!_MK$sXjQM)n%=Q6Tp_f6np-dzAtbIG;(t&i_5rz6knZ2r}MgdRFFW3+7r` zEL$LQ!XPW`F?6gTCKhB8+5x)aEHN9b9zttM2*$iZzr_6Y^F_#NiWVYul0)0*ZzdIs zeY(Q8 zKy;$PkkJH!4YqYO5{X0+0B8dq4XrHQ3>xm-dhmfgQ(%dd5lwRZLk1k|>()am&>LrU zF#HA+6Zm^k at 7INzR#`BjHUzUN$#R6K;PtD>pgtv;j#3pM&(?VtBQwDJTO7rNcg& zk at Xr+v{Vg8pWux%}pDO5^Y#&~|ii%qrFXCYs3#`)ygq_<_`PBJD)gWf%O_GX+`!?epC2lx;4`fvc} zAR59twa#Krl534FTNUIT|CmzK9!ny` z_fZSD*hy#b)r6c*TR at l2C)*^0JXEaa9>sUn>O%X+ at U8@6i at 0Dn2(6%OICxj#tD-N6 zc1UYb3)}3FEng!{O2&S~i3X74@!7ZdEdY}K+{jD2hACPNHJ{_7c7zB`x;{UGV27O=qxi0 at 3}NDXv)cb#z=@ zN&saI3M0J~>Zr!5>TQk1 at ukDNF$2{a<6D#k>vUFlsVEz3&*{wQQ75sqiNlMhbeLn) zQgpNE&Q&h&CA~grdUKE>V#dlp0yWJfIVNdW=m}53+gMWqIlvXB&KJWVAw8FZF&nBkBPEdD zW`$~b_rztP)QZEb!2o#A*$eGFX9y_&`pYwiAfPsnb?{>k`BZdCJi#_*PiA)}`jw-= zEuc^4^w;O`;NavK+qd>B-f`sU<&75^`pw z9yVK{2)tT~>%TP+n&2RkA9vfLeQ#tdU`^8( zD%sO8DwZ;W!*IVJ7J;3IEEge~><{1{*i*CxSls$1hm4@&-wml22kO#q6w153wE%y2 zlNUwq<-WA*qZvY=hKDgpjc^mdGo+8O4rR`p7c9U_CN9p4iMr$i(X;0HKS}5 zfH+;xolu$y&wLc%o%wR30izlbs($}+hJHng1hBWF&=Z7P=D$b at oFsf9?#?+qSq52z zT3~8mg_L;|MVh8v5OpK1GVKy;`82a at VW9wqi1(NW1H5l>vCbG#3#etE$jD at aAS*X{ zY7dh5AEZw&&~W{9T7{U<;Fj;|@o zkYfIw5;B;on`j0~&1AXY>H8CuK7otC=1=he0N=wD2P2$H!?q6ZJix^TAb7wYA;b=r zVeG?Ref2)EYSOA3Q6?dlyi7p=?C^W{68#{MGN!)pw&oo6?XyRQ`l+(lm|P?kyX1B{ zHb~MR{?{O1tu%;0 at LEwJmq{V2a;O_p?|teRQVZXeUaLtC?6c;cwXtURJvm0Im2ep% zf4n})P*``IKm6>63+T3W!j5oS?6_Eg0WKJs`i}#4nl`IzJHmQ|B3m|?XdkyD>jqd+ zY at 5J5$DhfAj8sMRbB_Pa5TVo}Zb_LMM!0Y+ya}mb_|z;Ib$>i&zrk(9nUlnCPfcZkH-C6eWyYxl{lhJa zpMuaW8T-9JXcagejBIu(_5KF(qT;#zJy^WlzXaimI2OUJu{GBS$c;b}@QI)5 at p42F_exhNFz{UwQj zz6h{uNe-+dw|sq}`rra3|Mbt_zrP|<+)Im=pMg+1EzlDEF at O%{0y3g56!g8)C_^=+ zWLZZuwqsZP_`TG8M+7em at juL^uot~eAld7-R-Jxgcmr+6LG!wkSN at v^g;UzCpxYK? znyVtV62TAG4*FMebJjKh*}}KIx!;`-!OTRNXiaN2b_vZian2NU1(JL#{{Qt^n4GN_ z0{jIUO`gMD1XNhIg-#{de#*G0Ubx154 zv7T_53bN$Wch4;EwaaY;`irGpYz&EDJCw>F at 1VRiLZ4dl1BeEU7e)QXMsMHXeS1 at xuSnYt;kIxlSnPgJX0dxk z%I`8=pIf=s+?rHHp55Z?EDqM|;(hM}to~`e4Qz%N_)(srGjz{Ds>&}sQ7MLM1yDD> zM&>PU*2n887`i`8RlqGy=Wq8J1qmr9EXB3X*jQmss9!KtlrX7m^w7ZDF}>cRq`Vwf zPEL&W4t9HxXK0z<{O at q&ajFaMJ40XB4tu}Kh2mH-!ys$rfrB=$U_W)SUKb>MZG>?z#o^-jEbkAr3RP;eY8pQxBJbT3|TZ zsvSly2V!(7EEp$1gpcHRTK|-5wG at Z3ae?ePT&kl;Y8la-bq@ zWi58Mv4P|bURsyZ^IZ@=x#v2S$cAj8Pkr6lK{>CAewuEjZ0Dx>aU5_EDNZ^+S|55d z=Cs#CsD`>2H%&{${aJc>;0hD(hJI5HLkocZ61nXdm#fQ6kQAl#f7J4m1lj8#7<4Bk zskJWHX2WFX!F<(Af*w_UHLjm?Xr=Z_kz7HOW`_-BY>zO)6l=#)u znGPeysTUlDS!Y<1j76Ba9P9So^2jrs-7mAza5sk9#~HYqp|Iu*-2JPoGGj4CL(79+ zm*zRnS%g4V(YiEJzvIJOzu&Sn_YtG>`8_{VZ?kye5FA~FT9}UUN|*c0w~~LquhY6V z*5cc8Y;Ud4KoIdo?H5W1@`$iehI5&3kp6}co?}OT{`wU_mMN6Yj!9>0(?x^5XTNi? zAib=4cw=kxLGwH2hbUBN{O~*`U0yW8_p!CBdliN)gud$YOY at p+Vl=g}i3x6e at u!}f zOFh+QvrAK#reG1>@E^&c|02J7XuB at xHYd|}sW>gQ0sz at vNTB2UaQOTPLbxDhYKuKV z90nuI`dv6bE{Y7L!Pl(c=xUJ&zxccR2werK&YrnLt>RCS!G&lezMnlgrnjCAYr1Z4 zolY#0`C1B|F{g41KVTcbl<}OCAbgU?DmTy(K0NU1dL|?LMW8-T48Jwlui9zTs!AfP zsLt?|jLd!f0CN{FukHDA7jkJRf`F_J{uLKKvO;c)E#cVpmK&5pc|Q%;ZVKHR1bEY2gbu zMyxDOGHXE-aFJ5+=v3q}Q;V}Amm6Ga1WnuW++nQx1~@X#x{^=T({XE&^chW*WX*_;0jo{5bd>oN7>KX1cM zU#eZazPW|`Vys8y;SW>mkb=kSLg9R%{WOx*h^zEh+rII_vrg-?!)IXXn~eW6f9!u+ zfV2dS%pK`|5O*S>aERqALbK*OWO}}^frCGv)*2f;4d(odJkiwx zc_dN)`O~Uc49Sh$3UZ%#*6S at g={3^C3a~m(?B0^{vmzMdKB at 6rsw&G@&%JQz`QNeW z-k`rBFIk%(S+tGcNhT}QIbl-i8Da_U5f?b(lZ*PZll##B>pjiUUVYK)zdqK&#`o?O zt1mo8--E5TkmLO&9se54Uuo&7`ko(U_pgm^1 at 1bazwCh^C;WtcAp!Ky at Fu@aJUxq& zW-#xxvGJ#u38C9_qYbc-+ZJYOU)N_F3Jg0BlN(=s{95IJJ&q`bvof#IEW#qcKAr&C->ttM~zb$cV=C6&xK^KKPXt}Avj_Pq|KI3lwaH&B-xx^4sI6oh9ZmyNJ}I zLZCmim(hhD44chkrIVvi|HE8JI=HY!}_YD8kO5~E)* z{9y9u^@NGCxaLh?xyQPcv*2zcv36W0-M0Q$I{qTY%A~@*WN=2TY^PjQ_TWtL3hfD; z<7Li(@B~?0A5*%vjpGm1sL_kzyt-Gq|Bzp^Y}s}cq4O#*;pnqUuj1l at Hcd=T at 0id! zHLpu{Cq90T5{1)r?A$7Kh396BnjMx4In zd%R#jR;Nqp)xX-VGKpbSM(v>w-|KK|Q3Nk=pNb1T$=rMnSuiPSK}{#xrkD1F{Y!TB z4{7eU?Y=~i<lbL}|y zHB6z_`_MQym&f at KW#3VRCq(@n9`><@M*j0}$48 at 3z_yW&P#_$T;I)2xdne&+CIn$M zfyJ0tzk&Jzxmidl!OSS9#Im*%X#Br~d2Qxw7Yh16qVex4iTY4OvQy(|skvN2KM${3 z!1;fZghOlTl`=wLj at vaE*53R+x!cDxb%^ftI(SfIV-CwZ%nKgJ1Otp%UnV+1*?c;l z_ZqzXHBfr5)gwC5UAxZjs4_9(K`r`N1oFZF-0rx4?r?ba3i9kvef=xHnYR6N at 3>%n z>aLeLkFDn9O1rkF at R>xEL`wRxh4G08H)6dYM1%5WLVJG6?fff^ev2zt|8thXS_l6h zW at GAp2ndm3kd9ygn1{Pd^C1)06Q+!ppT%HPfb%*+la&QN=NFEtyP;1yweQdEpPHAh zu1 at vjSQrakNq=8Es%)fA_*uL?`cxjkM_mUvC9BbI!G)1Q^}L{<4lX%JzX%yEW00d( zyh zhae#>oq~iQ0wOKlT`B_75&}}v at vVK%ocaFPGtL%Y;Cb#?ab3T4I}~(&A8v?{$=mIx z*B?NpDzFY?6p6=~6#-|}2Ix9#&YiBVu-$3+qIq&bd?dGL_VCRFAvYgwg6c%j)d7b7 zgP7Hs5BgA!>4AW7lB(E7NBs4(+A^-65ZzE*g4-W13H`KfxPBoTs4{CMZi1)TiHrYT zsB$NuQ+ftTQsqC`FWSP_fJ<)=kFYzCa?jVWauU+Ixo%xu9gPu_!f!V_p&JiI9(0ut zGb_&ycax5ZTCvlh|JwKQyTdEY8ME=&FARAX5CV8FTX7gvNya-(3fXG4R<1x`21y0e zLLdaN%?sr}25-Bb`3D44z9NW)xZ%B$Jre#3{NRUwF?b+4g)B?G1jQd-HMmfHPte+- zrvY(?Khhzim)_J39Hl at tgIw~%jOBx5W;jO%{Xq@{RYaHYo5t8N*Ro_j?<4n1XeQCz z!Y5GSL-^qA at ml|~SZf{vk3oJg^xc4T?)2~Cs#5>F#;Z~xFzH!(J~vjt6*VjH2ml%2 ztRo8t?3GSxYy2+%g2s}@g5~lH7=#JdJx3uOL8wfLv+RNfbLP2I{T!Tz=KO~bLOBUd ztX-NHYDneD$zl{BQdevVyoMTa#dn7_q9jS?Fsg_I9{73Tx^Q~o;n9VInghC1_{Eu6 zfRHx(J(E!%()IGwB?lKf4}_FQHxztulOVYH0y|iueM2 at iVgVr)N&!y)H6ODqiEDjp~g%ucvPcbJ#QM- zl1^K2e!)wDnKgHS*z39zouXC#nX1uq`VP%iUf{)RV_ILgiB}qn=3+VcPrzjyeE_vz zC>X_``nAqH|F=6QOk4PtDfUa4ez)-!jrt_uv5MK&W&TGU%4EZNov+J*b}X;hhOP~+ z*c0Fm;z$0JC%OW&MFIW7$@&m{_j>Izmsg|39eI{ ztnrcUq|W-uF-{q?1V&?Q at 9yLGjFJA6ynDy~rc{?<;GG#!SjjOsYqmV^@ds~T!)$j# zt0#{eF<*8=`;&K)^wOu%1R{Tcv)C_vf5LeGjUt^TI4q!)SU)G!hk37WFNClQ1X%pJ z;23I4NeEJ7(4%fHvl*gjI$P)^9%yr3)oAIa{obo zOQx3F;?j}K7)?=e#d)I5k3#CCf*W=(Wm|_MHF2eE7CFin1FMt0E4sPlCMan~^6p)Co;PIm`w)hHU zjhu0uaTgW-Y=ne*?A7}n93F`H%7AHSP=KK-qgxm8>kfJ2|CB2(Kg00pVpo5EE(NgF z9>O>W$T0gMDud5?_vIN0j^;rJ)1X- zA&@T48+(sK!wea2$TBDuvSgLm9l*U0DVmJnr4`g=AuPfI9H^t{b(~1JU{8%%tKZD7 z_Z0Kp_&(%HIN

pqlMQLP$~w+`VW^vGVlEQdk0WH`G}P7K{0_zC0SJv`(@V6+w3 at 9epwYf$O*L@~T} z;fcthl+QdrI?qDzNosGiw}xgBz-G*~+7|0Q473qf z#DtK0|Bqe8$oZN#Y{kIW_|5JuY;v%UiPJcYS*DL|)EUL0IsQ=tCZ`#?eJj*2?E(*0 z{yQw^0$|P$3~L94dXgqu#eXG7%j$e)x+HkKi-AfmKj)0|^B`8Y1ZV8Qoq{s330YQ` z9-D#0t;SO_&w=HY+PO#ZtfTgFs*YE7hGntHpR=>{iLOsTbI-rUqJ+hrlo#G(-ppT` zs*JS`N~V7?t0Ck@!!3|S_#P<+8-+eC&026ih2yb?^=y&dSDuLK^b{s5U7ZWOw5v8? z3x5H$F$!D*0--uBCsNH7#HSVhe~l6UJ>ouF&3nrb)xZvfvjqMSQY4TlTU(zKffF92 zj5d&*oUC0kMPH^n2E|plfB^xP1?TOr7I1mE1L~(2Rv9!pIuw{+h$KdHGKo%XFvQ1o zg<%pGn*)0T04`N4I)VSTQ={5w@`W-qvJ`W&pRt#vEfI%BIc zOtstG=_!Y0+A|WN2{;;&cb|7oFWI`*q8Isteewt~HXa7#C5ObI&ky}%p@%mx;vklD z;@2wd@(ZM~_be&|=>89wIRRL*@x`e>%Mo@^P3I-(%I|eh|N#Z$_d{BMvJP znyi5UYX+Eur&#J;=0=^#H%SciK at _O%rP{8q}E7)=B=dR43BoKWv;eo9oLQE|R zIo(|(F%aiNJ(oWt-QuGu5+xq6fth0mec;jq1!UYyH#e=yCpu!wbbfGu3Gx~NdgPPb zcrTqIie4-kpoO%!$Oe4o27PY7%yAn-wqH$`ftDu~1Uf?y3dFEYK*$;f*PQoTLM#(C zD$jkH3Axx|0y#7?<@ZICM?N-71D;~c1iXjPE<0D}qV|-AW*VLt$q>v!u9lH;--Z=K zuU2ia_B%qzl`6MAGJzQ#!Vk=NIGHC>;b1Ffga`r6mGkW9-&5vFS<_q;y>hB946jCQ z;9J1jVaA4*Ul>%rLA!anJ at Y}fAiw7B7))DXmoaO^n{>C|gI5F#dumJ9Og!&ZG at HRT*CYyF=pB2>yuL-t>EF(+ zWL2GDXbPS>A1Te!l75_(`vR#^*-Y*bU#T7vWBc6Y{?pg z{&IXGU`P^x8Iai7uM9eLOk4|tmEDt*Cnv27bLBibGo;~A^E1zpc^ssbi-hK}6)txR z4 at T=MCMBt&%&knf^9LO3(MS7+53Qpkn->4VIbOfitkaavm^h2|7a~-cwccuWsz6fe z*ZS3jXI3v;6m&EYps_;5V-_lF!2Nd-q8ycLDsojfS`{$axX|zl%4*RbBghVI%YS+g zH}xqghSnn3*Vst9eTp~x+wGa8^yj_QLEl4%m5v4wSQ)y%qTPtBuHVbkO5 at M zmFH!wq>TQ2+?BBCC zL~tp_jDUuR`93IQ8=(Eo^w?R5vYfI3O3YMyps2OCP;@Sa`jU4u9;X_P1Uk%Tih+Ax zOn-HIyBsVU#EO`^0|iMnNB~r0_zl%yctsHS zU0&xV7EU7}1-iRWI at ik-$RrynX9g8Z{{Ha(l=o{Im5 zPv`p-o9|G<7Up1sBGZ8@(d%xJ6lj8;)Rpx{w2;)pii7I*iLq}pA(}wjgq^g(*VT9L z7y~Zui-w~%iW~?G24n0qNKWGe_pK{J zLZ$;t2lN)`;Z_^y(j_yZnE)Vj`rN8LkQgKP_!8ym$7S6=8U;b1yr`eM4$R}+XaB>( z|8Oer4}OBOYNQw^%OG|HMN}e%V(c0(4dFle)hX>qgrlsJj%|5k8$FgHmchQA zUtF9L^}%O1^CoGsYva=jX at RBENZ8o~)FN1O){SCo7GmKEfSdxG!RRCf>VWKZjVj!_ ziZ3Z0u7I%z4Lw%^_nI!$htp6h+bIrKBG!BKE-^=^=)L4Je at XH?y_wISW)=;pk#TQq zq=#(;3`t2kq?t-Yl#W-LmT^g*onQRpylt_3a^es9$A|*P9j)=UfXi1u=*A%A0DnHl zWndd9(LHx;DEZkLi)={LUZn+bFrQb;2BIv5yF*{}= z{1mt%LHB0ezS3YF$5)yq9^Gm7zb?IMkqEhjQBir3gS3t3ZrJZ=>ow>v2PR_WIv9lL zY;}K at 23=PV1iGD$H|lbcl;mE^2i)G|tiBY>87w|H at NW0Op|}Qb+0 at x4zFVR$^uri&*Cj8& zwFA-&t18Xludi226T<-Rl+(?fVj+u#{`q0n2vc;Kw=$yqz3d41#qmY?-QGSv%;SFm ziPYxrqMy$7S0xNH?U|t(zU0m5U-|igE>vu#5)Vj;uRuYVgEH?>=JWfsy{Rz7gK;dg z*9!Qa=l6Y7)!CZkNoTPCD?R`^;W{TbS1bf4OzWsau#aaQVpu>3ex|vx#MVDM&6oiz zsz=^(q2t{o2=36Z?p-!cPs7Y>I3=#W(+9FqPY1p39M9YSWL5XZ__}HDBO3GobQS!(6*_0P>Q$KwFb96pWjzvzyZ9%0OTS}zl zS!d*y^8s%(Ei|2;hjF)WLku_sv+r2{d1ntLb^SXN-(1~v`R??f6BfI<(k5n*oPa|Il4aytU5Pt+znRMtGr~zr6|dz4iu1HZsI?b#2Bz37iI9XC)_v4WEd}%d zR(D!ldvVuv1ilI9^P+qye}$)C;v_xK1KV71lLt`sL^I;?qVB at 35dLn>pXdeBHtu~> z?{1YJ3xpj7!92u1)r{mXmNhID5A*)Ott;35&7 at ZT&gYjn8Y=7uB)fsFW?_ztHH&}C zSnomS={nHGgME6n<$b-ozrycJ at 8-HoWfwSoPZ~H*GD5BLZzm?ebT_-}9n%xaOc~$x z;OE`r7n|T?hsHA1^@%}&h4>xUu^&N)XWq*PXCB$AVHYh{f2MNPe-g+RXaF2 z-43h~n9&8 at uTG7?_wEH?!x6lvkn{W)nt4|G;RCqFDr^xpygBOJc=Ejuwz;;PfZFxl z;R!Mp(QD)5^iNlg(*{-FF+qg2d-{@%i=IMoir0jdf@{Q4Xw^sj;X^2RMX|Odvd$hn zAd&Y3sa?kbShlzZb*Ab=1N?_zb0t($rU=Lk2$B+a(kNd!OoRnhR*175wg(E*V}xMS z$&tF&7}pu$-QRm&$FB;d)sz9@&_dl%$tM_MOt{}KufMh^&ye`675|CO zdm%<0uiA||tNVK9`Ff&X>lr!v=&_X48TBCI;+_NDLe-z} z3{3n!WfVT~MUi`Pg?^>Mu2tWUp0mB~0a*~tF&VM>nuv(njM6Pk*HAbvBJkC}C-`j# zhQyihObu{7b{zV2yxi=O=4892aFYo0kgjcN3;4{PHpym-zg*9;%c_2Q6wWO3!p$!H zHC|aeSMb7BGU$Z$LDj_1p29TALNTc07z*vcCD=t?H6}cy_wx%QUf}%3lsxJSb^nS= z3);HQcn;3jYlL}A3I(x;Y6!RBoBe${X(gm<$d+6V0L8l+cm}c-2q$AJP;+s49y~!q z1tkY^!gXK}F9kxe6U#xTFNA;GIJ{ivJ?#ZGBAFaE$H{ez2M7x^!sqhQRcX=U> zr9(-+Ob4Z;zxh-6pSxx#bze4$-=$=+s-ang14#2i-ZC!8_f)6X7KJ?@agp{15KZT{AyjOpZ=rS2*l%SH%;-vV^Vp?RV z%z_O|;OR;iiN_pgKgB~!*ubzw5fa#R%xNj=? z^h}?hpkL{Tx(<~V<_%OEXx{o_%3(y_s9c91v5IpCMh4zuo|IQfUy~okSw7SbnBFDA z?Jo{|Wg7&FMxaPoT4+cE3Qdh28%`3ELf64`LgbP*AGwso{a#F|GXoFIHd!TzWuOLz zjr~Fh{Ts>;{^HLI&}sUvuIdBq97}v~VFsYTcM!@VvbwjQbmtdrb7^kOcd(ZHBaX|^ z?65k%F+-=qEzc%C?xO8@?iI`SpEew`4b4ttq69?VD z>1h*r_;586M0_+*^<&N`-2l8xd`M15NBcR<3A+8y_RNL#1b98zo}q z6RJACAkA#7fCflT6d^)AJ1-|^7Fk&ms+fc3yqb4kvE#ji=zL|m-N>kDB&5*bZ~&6v zf1?g}br$Uen-)H9^*@6r-+H}_&!X+7&j(R1yd*-9oLW`jn at 49qU&xv zmgB at Jr)(pkRmC~g#}O&wJlop2U8I?BI-^j*_8iVA;lK`*J at W1nPEx@*4Az*}|7sbD z8LN1b?spl+$A~i at Do(mij87PxYI$MYaUVRr3^10i#*4|tw2*7hguLd%jKP0Xd65oM zUSLa(==ak13ED#Ju_`_7v{@jeJYfkP9jY83fUiQv_`I&Ouafx*45DheRoRY2{Ko*f zn*Dn^_*>rX7Lr at nOX=I`Edq;<0M1M5XHtRw$Or~0R>Tgbj_Bx{Pe6D}pxV-*N0~Ho zwv^7$nxyfa{B*^{+j;D0HiLje zN at kA_Mgg5DvIV`HZ!P5$JZ$(Yi%1g(wGpztu5ac{LTgLey>+#S8h9A#AJn|Xm?cWD zp%H)996R`4J6#s*C__ at yO>TE9W=G-EsP!opWW;pFUY>K#x>~ry%M_m+LOMaT?vE*r zv3J}9yqt8D_u6b>ys=)xs>0e0uXQ9b((i$mgRV at N=z&<%TlnWex2Hia>>>MYS82CN znr^4}gU)fbI=#TZ*)+EcuHAJAuI1wu8EuHFIJ2AD+8!BCw!rRY;@#g&w1Vkc(CD?% zd_atT2Bo6LWu+w$ozYpnO!-lUE_-V;vWaKpvNJehv)WYf=w-|=DoW%5 z^taG5{pGFB%AP7-TgMVw{k&O4xrwJk$oY&Mu zN89aiH9acZDD0t;oZZ0uV?j(L#bwHonvZzI>xmy_%dNE!HchSW2{1q^zY*k240v1x zXXr`ProUt!RCPl0NQinM;_!AMG9uB~ma=0+T!Fgx!;JPH?hR{#RME6QcQ^CMoQIxy zqZ8gfMh?E9CHS2SzR#E*23C~ZVc|H-JgzX{39kx>SoYn0_N>u_pM@)Xz&0@$;n5jM z_yyT(vUAHx at E%;<%Xf2hKj>l8VUesLMX4K1^+~5rzuS zMnHRYwNtl%#_b^Sj!4wBEng%%*O{6X4s{e2g8*QOOjsa{`8j-c|MA^NFwmnXVksS{ zN&Kk4+sT&gYGfh;?pd4T^cO1XWHLYK$lmq-^A6 at XC+NQVxp=*>ID5!)5U#EIbXvOH z?-(6bcMyx}9hvK(j7^3<(}yUM7s6TZ{%63EzCZeiEVVhQ=kk3i{Z=z!_VQFDb{sWv zL>Y9cTH*F5FZ+ at 5WV0PneQ>X*Thsqj at 2E=Zu(W$oP_3IL3cJF>tA!-Z^A)%lUMn&r z;idG(3Lo|#$r^E39NW~|3tgvmgCX=e{>w`k at g$@p$IbkN=_4|E#OTu8?iZJ3f%Rv< zeekZKq^nb*^v1GU$pdy1u}k64dx3<>FSbf>@3^m~PXC#CQ0e z*pg^ULeVZt0)wK1VDvjvn_!(3DIyUo^A6(hS_i59JXz;_N_|ARi-miC#rP=?peOtIow#bPDVP*SNSc9o^;KOHEd%^S+NdFZ zn!T+gVv6WQ>vNT46P8YnHRK%nH?gcpVT}w%G5LJx*VNxU(q)ICX_OjqC<|i%(RM%+ z8;;T#20g6AX7#M8T(Yrhb4f3d3pd_1%-RFj)aH`u%G+bV?Q$Z>!2G;z`~<;SNz{W^ z3c6cZU0{MEsYzzT1Dc5eSEo(}+B|+(Mfn)C&BiuPd}VGS18TZ;JH*+?Ln73~kI`YP zpX0PdAh$>f-CMC0Zue__QlL}gB45B5-#-V3i;cQe%dDfMxcJ$2uorUhZ=N@{mZZH) zv;qR*pOwcerndIiHXo0Y*3NO%rY>_CSlE7|0Xbqf*ujp`pJUgAEEQ-#H)NNd->`?{ zfvhuLc;BmF6*d(|UtS8XG*xN`K{wXa3ut`GP=fPN2Q3?~Q}<#A z%!0DhT8$=TZ%UTJ%E884Aw?7KYxSQX<{Mc7-0{H;|CX{lWT96POLbEjXUJ&E)#3&l z9nx2uTK0_CtKd)mdr48@#uCh=gZ#+=pyfY(y0cNb2g71N(v5%zdGiB^?=8bF&8k?% zRk at ZWbkQp6{u}G#4*p&tZ|$ze+ji_N;)3ts*5FAigS0+}S4jPBppW~CDgSXl6=v$kfhH4}3|s>2)WE6(qWjuLEhLq1;Q_A17gAv{J0+o?a*!_m-vO687k9Ej?oM z=J_StKHag(D&RnOE3Dgo86fBp;npaFoERl_KbA=^+fZABVsDz)9{IQ$S5ueS at a2M- z+fm3X!o^g$_{ZQ&f|4O6apL!+X+)$*{|duBGf;Vl3#hnd(z4SxQmm>r+rXXS_fCaf zMKrp%Plo1KcjLlwXvG4?&w;70RG|SrsB7yAw6uG(9i_cZYEGw5Xi zY9x-7Yd*3E{9~?|@JC3QAGndk<=oOXF%WqVjE z3@(W3i7;ZedhKn_&&~|+vkmy1GQam=G}{q|6VRA{yx_%CGA$QN^ZP{T)|qe9+5K<8 zx=>ZL|U6ngvDW0F3m$F-1396$3&$25tdN()F4IY(Yu%tF at 4G(kiCz@!1lMJjA-c$bqM>_v`%REJoa<;c`53l^nM?CH5odR)ISt;&l-ULwhxFR at GVVF zdNmkTf(6aZ at -_JK<AYv*#w4I{hf%PK1=+LhB=yp7OU$FH=vYyi8nkyzpZU7B^qZ{M<<%m;@QpFd??2xUTJ#sKJ at 1E^4K}!F zFTg_x(;%IR$GDo6I4CS*jRzagn4+!E2fu+7A~7JuNiAcXHqd6yU6}}RMWC%C(pNeD zysm~LGlPFx4hnN~-IP&K(3J;KdF|(er*^U`b4FVN7I&6FH^)ofAZOv4k8x7RDUTdz zH9FMWf%4lQT=6(xXC2>@2k`4R_l3nhcv}{VVjuLmAZnxuO=N#V>q&O-4ie`$M(4Ir zek4`I)-Os|mc%?n)Z0UEZPe}r-2`p#;rpveW at MYRa{(TPxAtekc*rG<()N;ejyNJ$ zjg)bW(OG|lsD;L~nb|4(h)DR`^@}LK0SD|P#v<}+^(ORD?lZFR5o_FT(1XRi?RKp; z_>8TTCjUC(O(*3qV1_FD#lv{a6j{e#zZYYib!I|zh>+&;b_9Bo5e|M6FQ3u+W-B7^ zar51O_F;y>CJJ>?R;e^Fx_N}R2zW6a>16mioZ;l+du`ov`yxjS{^h!2C;v?(#fom` zdw93Yc^p?;OF90{n`4_+I}|0(gt&$kT|yKM`UBDz#af5D7_9zZM)c97e$fx!>g=!!4pQEs*9n%)8d(D{6J91Xy=7=6 z1xhnGNS2%_vh^cmI~d_VQgbIG!pGyBdQhY=R0>r&ERGQhTA`IDuxNDngi0W7{`o{H zI+ at kEK=g01QRm{hzqw|1%uA(VFM1cyV49FE8p|6BPft at 3j*?wlTItYQU2Q=D?gB;ZH*xN|Csj zNQB5-3`kqJ?Z=kh-`v#hmA!VEy8F9WCVQ&lGnILC51a=?Z|M;5q7S9fFHRdm?k4TN zbUr{rHw15T!>B`%1S8`lQtrEDFblh#^9JCs`1$xK`F4|@_t7(TQWXeTFvKredO&=4 ztZXiCkhQqQHupO;CTrxqF6K(4cmH(${^Jszu3$>KiAYTb`m%67e#TSbN^$XRNBjgf zbbJB4$X zY9sL1+?D8yB(Ze~xiVT~J0E7Pa_J{g>jed5L_X^pH*s5|x|&1<6E7y>gF<|8i%kd@ zmIU>K&5 at P6SV*9quFQ~8VZ*0<((qt9TXVpEuUGB&-_w_<;TD~J_voLPKYkXxq^O$I z;Wy$*%8?a=FjcLRt|J at mKfP>qW>ktv6Y*Uks&`HNWspgu*0CVFQ;Usc zbV&%LNB?3tp}7)*8&zeF)NXk5p-Y*KCF0fOUG)(bf$Tfg1j-{=0mQ_Lr5)~#z&mZn zq}{Du at U|5AQhpumlWBL`<>#nqTQRvf4O5!$*24JC01P*KcYlQuWiROc=kD zQM*&FiD=n1rTS`O#g2E$Ph%nEBIsRF;=`!FQoA$L#q8!5COFathEic0V&Xas)8m5W zlZy3^9TSpaiVLTMF|j8IWO(Tlgm{uTy~F(G&B7ZlQNpYGwfR at Cinyu(PxT^fqF+ED z-Y4FNE_>B5n3UYtzAW$?sdN?;ibC-AUu}(3ocA&SwW`WPLNDf1p8bP=;gscvQ8uL* z9rP+6mkk2L6^@>rOxCWntr#H<0&F#j0#}aXUOu-tq4)7}>i!IB1tss~Yl at 2Mo*ro@ zQBgtxU2(aEUGI-2*-#jxpfYeyO|8VhX8#)Im~M#(*$L4sn4Z#zuaT&SoDjhq?D}7G z)LpxRn~Hy?;@fYQhrwvKQcN2n&Pne~&w{pRbLZYw?8{+alVR4cwcJV(BG`|mwocL-=HUolgpl36JWQ|#u`L^V0ZtK zdC5h4`?%6|lA$48R`L1Z1)LwQxFW6_mfl~H3Pkz^^2S<+80VSj5mzI6?IZ1e`}9kR z!Sv)06pcbYe?3q>)2r-X1#Ls439+ut9DW^1(*wwenM3=vwYpdOH(h4 z(2V4k8tJ5yLloWis5cdtBrE#8rK2sS_PpEV%i9hslPu<^xezj^_GF z6kNe35;IgM89XMD^4To_tUJBIs>0HlUkWO>G&+sf zOwJLcKl-sfjY&r3b|*dsmd1*68qhL zhf;J34_$z9U3youYwNceM%BBqPu*RV$@q+)U|zJRnv?J=UBpt5fW2vGeO=!PJwi69 zuNuLID&4SyM;ABsK9E4dZj~~|uvHDkz^3Hz_x$Mu2(C(y%`;{!hkSo at -RdZp?`;+( zUTx3bkGv^6+EB&`4pw$4u14aLworL$q=Btaq}VPtt4p<5h~#^;Cf*;0eZI^dPo?hO zkX4w0Su13(Nso%a#v)337cR$uBxskPTg*|6Ed8=qKEV$YK}$UPmbJ|Ei?(OfX`)yv zo3-+O8Sg)aIbDizref|3TtPaml{UY3_3Ma`q`qm9a3W63(16VEcVh{@XSrQa{*6Qg z2Ol~kSDv7i0Z+d+re%762?!{FSB(Ui=LKyk)O~+K7z9GxY z&!25%6c3(OwR50K6FPI_Bq+L!8%9#xr#ZmRNq?(3j?0+on?~?R*o{y3uziIPQBZCr zbz!yn^McQ7LT~Be;5T}l{9HXbRZ6bpl&k07$8rzc{yP(T56=gpQ at BhWv;TM$ZfhT9>t=wNkh_D}OAhkoOqcgyF@^2srN6?%K z2Trpr5j~gT^?Qz;+E2i$J+&HF%7C6{$&d6-!<}z$az;ANhI!Y=k-OzZIy5?1G8M|2 z8)Ck#8vgA!4gc~U9W@;B=|>r2Tm&s3=p}VIwuQMju5w;A(+9_?vi163GNFF?6WyJg z;^VVHVei9YW0}%J;vAbK-l&~h#A*_R3{BW}t9C6C8{`S$1aNCo{@dhjV7_<6^6tCl zWb2zZuO+l!$UksfK(%hp!jAvk!7`g%{5aauzF*LUcD=~PoqK2)YhJ#=hS7{@JBVI% z^MEid2ywmM{Vy-X%K`mXeK?cqLtG-_P~N&g?ODUeqnzqb z6OBi@{$cBDH)U2!!-1cRM?^DCnQ~X`@egJV;tdaLDscwOM4_nyPSH{9-flm3TVGTW z^o?x+5u%Ovw+}eR(CN|z2`;P`ULi0kEG#gb%`I|Xb}!Q7Y9D`ircygQwGm%Hd==Vp zY-z3 at J%H4DHwWiilX{@dL%mxh&yUF@$5yzJ<9`jWSA>z!O8#_n$jFDlVv=z9d5- z7RqO*QJY{T=|UMRzXz~`Ig#AT!zv*1^WiI2Vy`XA=J zxTL`h9O8c%k6j%UYd7{XpR9HvFvaNjY2wFvg(jq}7VZr!FWN`;?AYNyEgdsRnrGa6 zz((5QcxuT=>8EPQh{l)+kzM+L)#NH3)^+As at 6$8T#776X`(G{VlHeb{xw#ULj3af( ziB7gl;CV6sm|CZdN~O7y$)?Z4Go5j at A)V3ch%n%HIduZ}E;g0hbH{s)< z{L%c_1Pt~CJ1Q5f$%7DzE?yHX%$tr>3T?6S&xR(rX56ez9_m$UcSTzFyndDt<`rsS z&mNf5sS7I2p~}C_Eze9SG!skO6uORfI*j?NLMzq1eys0z#YuC8KOx16;@)NwDHUkd z!eHI*@$@*X%*Q=RCxhtdYM!Y?_3ansXRaJHmbzO?xkY)bTa_vHr0fSJIYmkAq=-hF zF;nH&Qa|O#q<)WN=aQS`z2W#F-V?bJqDWD?{v_Y<>e at DVXsu`r{dut+S=8KSiUR*4B1U-_P*s!SG za7L3M7a-r~nb5gTKZC(nJ=+(%->>KU; zpu at B;qF3u?2WxXvqj{Ha=XKY5uhwcc2HU#yez7V}()$)sk>gF07prExm2M665p=(khkvlQ$0Tc)4ryazghdQ7{_=-Rmb`Uke~oSFG^`-i=Y{;dA6U zYKpfHn+%fLtV;_yAl^LB(< z4Sa?T|NHRtOP7xw$?<)ZdHyE@#`dfl-e>hU*J~nqj#T$0s0{X2mRYazJ%X+lN!@M_ zPUG8xuC7=A(gxkOU0jE`9ot&>5HM-eCniU1Fi$4uL~bA48e~hdXAq$I>?O`uvOW~2 z+Q^%hbiWPI4jO1ZXpFhsNpm<4iy8Bx)VW^!|G&p>-Z`46OW>GSalJ|X?fsxe z=b$UBpc}c|Kie1tH#2272T9lG&5`xF{`SjN6Bc_b$qVnvapFb)><=zedfbjY at Hss2 zSxp|3^yS=L8^FK))|N-LksP;L9EmbyDt;AC>$w;I=nZRYcue`Rt|Oh<6S4g*^4u3L zr1<_8jp$pv(HLJp(cT6$h)0g(HrI_^1z!$tr2A3eWC#m<*H~u1T_w2J{b5z*qPJ6~ zJ>PYScjR2{-TyAYW#yo~TLD_Pix7>b0v!#{gR*vM!t1<)*SE at jeisjSM6VSHB5VUi zM~AQ7t9%Z3?Kj2(R1XkQ1OUb`Rtx3|Fm+B1+jqywG~PRo+lrYi9+pUFtdu)cQf}QB zQF8qu_r~Ewx#;v${k1 at L>T0G*7^~=M!pP|uLiS_ce5I%5Ev|I2NJiK2rhsB<*dQzA z4gs&gcm5kTYj)Ag5=)fZPu)_OcmCGye6m?&%YjeVQ z+0CcbKjAi+1()utb`r;@u^LZnp38z~i=nUdazj9vp_u9CMvZ)^hPy9|loG#k<0b|>=Q>ju8?~}$ zR-i)C)8zZ}Z{^w-R#CGyPY6?{7CrdsoYw;z at q?~?l?x+6QUrzOXYxhOEN)pxxdrPt7 z1tN08-$j_?QdfV6bm_Ndu*UTq-tt?qP z)78i)`{z at iY(*nA{sjELd&#)pwBN2YX%L^R9z6c?-SJYSM{l*0;Ew$i{%H`mRQ#%y3EQ7eJT3uQ%q@}GN?FBhUtVTY=Oy30x1qhGim_eU z;Yf2k$tV7Li2Y*2T6*uBM-t0vp-E`lTlNduKvnE14Rr-|@0-U**(*CNbCRaR+Gp=% zn&#bvKSz(On!dEJZ=Ann-Qs=JTWnpcs?rNzjHA)Lwl1}g2^%HaFRd3{ z=;y|>=H~x=5N{q4x^TYzsrXg<3ng#B^IIR`C7wC%>>J^|z1r*6b;q>m+&FG0&EYSo ze{1mCiyc+>CFc+(!`|u)DRhf=Uk1F at Y0T!ScY0%ciycp0*k at -Nm4*DD(ELSPV4;k_ zkHNDe>|{JakDOK(-us=YNAs6^lFJ*@g_g5?W-V;dxp>Z(qPerc0IB`39RjGBBQCIK}7E;D1 at j>ij zQtas78s`zn$Bv&1-x+bSPS4*?k{H4*iP$~9uZgo%1oJ5~c zo{vN0u!iY6n)utMQaUb!8?^tMRcH?nVkp#VYa_Gu8Fr)_++XL4C&7*|dcwqWfveu# zxD^yPSc`=Dr^qs0noDVDF*C?G9We(n2C!_-#qLKe}znwf#AaGCo7lY;w2v#Bmp#j}|kS%kra*OS%S z6w=oM0IJDJxth0`kr*;G>^6UG`Q%~Kng74;{4En at 1?2YC^@>+^CRH=fv8jIlFq7)| z*o1xZ(PmvLfp?cWIjcGq&6I`#*)BabRJ%cy1ROSBB zVkfU071vwHu+Ely^-2EY2Oq>7x3xcGSrB4ssyz=~=_5oe at u9YJaGqz#G9P|;79opc zcrY^aoK)qAp5 at W`nBJ2t(Y>URe8pPrT{quNcn>pIUK=D?Kuvn$1!|zZ2AuLI8l;tG z*LB+8CrDwqj$@(!El=4ExII=~z7Ne-^Rm56)qDBzSp*FBvZP`%x6x}ewyC?RJQe$Z z^>y*@yP6;gPNKcGx{3;^6*}@%Nf-v8#pa)wlSrcabujt{!xVj4F|RtDKDkA>=K_4> zT_46$pnLb{4JW4Jg0(G*V3Ji!A)9}(w$>}j<)Su!F zf>QXt97}_&WdUiV*8~j&+V`J5LMzHH&NG*=LOf1s*%TNL{zh>-WBlMD4ij29h;n!} zI-^MCNhO_*Q7a%onzdi>z2D$ytPqn&>Dsqk3A_O+ND z>uh)Ln>0P;G31y(fNo688Py5!j~erCjuRNGm=_c6W_8Z^y6!#;R)qw*KNbmF88Qcp zpn+L1nm+bt2q*o}&_CMxffXYpwdP$%g3|a$j~IYuVnqyB(hxpn ze7K?dvW3L)se}k}#o1Z#Ct2@($Lw3QcT)nLOBJU)xndnELn>s&2F$jB+%&W)2EP94 zPqLfzMz+6%Zjoe?50n|RkGfaB`pcGmvtqUK*`82j<4U>ihU8*nz$KB&aP`A!d_31^ zfD#8nD1J=R*qRkRQkzyok3ikPm at 50u)~8B at X28ef)l5o^N5Pdew1kR?B6;HaGmDnA zX9?KBBEL9iWMvT)X3P&&;#Ei at qwXpTaz4Wd*@a(=*9bx4tu(gujtl*r*5UEE(&**U zqI9sV_r*I~H at +n!DM>S4D65uaQr)K*;ef^MMwZ at oU~b}KZ5yeDk4#fwh#9=GKV_Z( z2=w?EBj+T>_Dwan7a7#FuP%}E!PEk%m+lPPp&ce=RXgR$WF}Cp`pLUCns}qTh|dj= z;&~GtoykT at _PrjaM*z~JWD10&{YF-Vzfq5}5&Jo)=+?0G!D3 at e>7Tv7mFVStw!!l7 zdIBr2e_AJEEqz=hAPy0Ao218X`gUktq)-gM4L{mYJcz{AB!d+r4;{rIV!oq1>X*XL zFbAl+}gg*B^aiP+p zyeU-hPIBT9_)!VB%2a^dQRqb0+7jqT+V zDxdRM#t(_v`t$z&XX`=_&%Wb!&$cyJ>>n<-IMq(kwhGTIPWAk>E5&!n{`9-*% zJC&ed_rJ(UrAV`y{^4;tS$TyjVd9~bhoeo}Wg?FxN%C2 at +Rm<)+Y6MIozEyuvay5p zyzM at m7)ahU2l^v?FoQ)Ds3IKh+L`sM6P>0g0DXuap~U!C1x>nG+pWE-4Uljr{Z{-L z;Rx6M=CB|Xn#3n`PVnZIgh%l{+LknDIho|i*26T%cmI#3?~bSP{r|TevNy at zWG4w( z$x4zWNl22UL+UNb-Xkla6hcTsk|fzHJ4r%zh_Z#G-?Pu}@$IkFan612`*mH{YdpsX zK;28BNem-E3R4IqKL>3cTA&X)qQyEhe`)A5O?Q_v?KQLsURYG)!whFjIRpLv8#iD^ zYa(rQJx=)psmYVCU(Q@&i!g(z2tkSrvc~X%vn-fen(~Oa56wuZuudI0qp$Ok`P4Ue zl?MvRpn7JS!Avp~MnRuNMc^+2j?%=^=M;@QL|ukd_h%3=Ea43l=ET?Nd2T5!r*pTK z97JKC>+yNrAEfc?pSkt#h+{@fh=#dw9EJZ8oqLn2BSD#eZmJ|P!A5X%V{`x<$Oj!9 z5tlp9kY&CfSUMEerZ)JtLdr%i~XITpl>S+#TV;9VyI5eQ?ctSdV+JGD){2t#%=pXRV9zUuEj)BB$uSfGlu+h*ShOlEo|6E&u`>!h; zcAMKO=1d>k1M)br{zLEVO8_suORTKsUmHX^jKa5SFEpk>wrRU?48oX0ItiEQqII}Z zLRPPG7!pYSKxP(*JhF^ow=;X25F%*S!LPS`ux#*(hE+B&Y$QybR1q&Uz*y at 67!>L~ zd1)s49bl8GJyaBc7{VCu-6O$X!5cl|b{DK!L@*&&dnn7Xiz220gC>yp*=-!F;7u9F zkHfd#S-p$b?Kvx#m+s8?%#4H^tUPdqRTgg%P_ixmm=MoTa$H$aA=U6T;bYOW`h%H zv!QJMU){>V?+|4^5%GL|xXfAV{KqI3b73zteHq{m9n-(;nd-TMCzY zXFm!YjcT%Ly;#={9=5rltdNRZ0?x1soxDlU|JZ)+g}N9b92D at XC%v=X6HwfV)_;K= zQwQo+m#Osqb~Z1PK_3nfGk#v3&xb{>-~8vq(`}R6tMJdnYSuGv(s>-ZRV$mkKS!+; z`I&@yb~UNN5e9Dz8!KOYriz3jU5r1w(31w<+Ab3VarEcb*| zQq4?jYs6onhW{BWKkbvcSL_tL?Wiayzxsr}og at i+0Dh9oF`Lsn;l=Xb2aI zyaTdZj>dCKM2$-(^0-R2CmLeeq!o=$;3j;PCd~qmRBexAa6 at kIB~RmK$kPkz#0~$? zR_~K^S|jeHwSG2rGPH~Rs~4}oAkiW5x<^MiWat$@n72-l_s;u$#3;7K>iZrk&98Q8 z-hWU0O~~9z4dYrDin7oC?w3(r8 at 62_ntDf&tmCuL!FvxsMqk{0+L=0zTbJPPY^Zdh zfA?4QmD9~S#)rWfTWkV^t4yP_ipP$@rJ`t&S{T1cx#h z#@*T(o}DT|iyq at z^gT{?IA6B8W-Mym&o12?GJw49K4w;K)lrv|N;6dx@ z>3QuMtYZwX{()N%FtbbPFERx!zsv zoOovFr{z6!el~(a?VG3!@`q8+<2B|l)c_u=@y at m=hLtzymZz<3@>v`{U(djOWggxR zd+r$JveIWLg&#{*+j*e4FWg3k16H4*(ajToe2-Z$nLcUR8#g7%<)FT at x!oAWss3+? z$I%`uxj+*NT(_$V$k4N+o=`1jjhiYspyaIHQ*-f!5*+9QRIjTLKewFT-2k%uHvt7N zlb5zdkQvVxfIs=iA2&{m!i>*|T3<=GX#%=lAd)vtB1+68X5RFTPJdgL_=J&o{%e?t4B2s(c?@ijbrK;$RC&jVF&8pe_%#Zc(~snKqO_ zI2lPO#mKs|elMTk~G(eBd8Eyclpab#Fe&qUx25N3NRT z+aJwxu5%4<4PH&y_UKI8xcWtm&!lqsD#8Eoy(<;Q=F7}i=nhi&N9Pk#j^*~wsFbC4 z-)O(0(Uu%L8(7Heu262_rD*#gyq1T2?2UDy4^J4?GKtCd0SbR6Q?pL*s&%$gv15Y9 zCmKFN{$XgU$zSFy#YyWO{|(5uU>RN9&Hg?&n>ypf+dRrluXyS1)DxM5Kg=hbugBG% z%?dg1d6QNmqoHt>>&4LC7C2nu7Wwo>Tl0R=m}dV&((}eN?efAI7?--0!}8?!A3i$s zW~k3xX-%#x at 6I-)Wa6)aqoy1h3=S)RCKJzmw1TV$)66ybTjH z$SL9PklRi%5&MFrK1L*D09K-Pq^N(wKw;v?jo(m{L15U(Lg)>~q>m)}z3rYAv!@)i zdWJ6IG4;61rmp|tkXEv5O+~IK6S@~^-<;0eip`+E!xP>A;|37ocWV!~xiVU88}IF?@bvip zR+*;ru{@`TY{r#Wv(HaB*X4fSYZmbs zN~dSDwZrc5Y%$$fe3qR&Mr_IX`QD+V``hGXcK;mds+l1a at 4Tx%jbh~obo$Id3L1cK zxvEFj8oUe at qNq;;kb#L*lhAV2sUT0TvX#pS_3t77AgV+Ns;?&B0%7HnGB3jz%_7C+ zXj6t8ksd|;=l6~s97UlUe$ASUZEeG$M80#$%j6Jb^-SJCZ&LW;TYRLEr=B(+Ls)PZ ztajrwZdQ-vjxUA1zUAYy4TVA=ieM}#!3Gt8$Jzd{4ss|_<)X7wHrX%i1S#KSqnuhh zGZ_x3a66R>UZ=aH%FFVRqiMuIZ}$(#l~s at Yf`~u4OQD+Wa`>sZH!!_qM=k_=Y7Iz* z5><>jS%;6P8VbUVX# zlRgwS?RI at CO?1dTjOx?uh-Y{gbY>VLPU$Az;P}KxN5yeBGF#eraEzD|6bilNr&@w| za|GwR#6M0#GZ&u-)6#I(SJ*DQeG|L1zohO8ZxdgLXNzM1y7e1gj z1i2Q+W99pFBGv0A4hIxV0Ofbq#wH^VvVygCklX4YVWZs_MRw%PsCQmWh`X|9=qo$H zA$T}2>Kh)+b|<5k+H?IW&|^UsYmo2a6uIY5WkoV>N8S0M38qGyV^@iss9cX~St4=! z^?UTrQW&2Br`%&7 at -F=>(kzJL9vz4BEt+BN;BJ=6!z!L~${lxkNS>r{@JHylEyT10 zUmCVRbR)Q;x;o4#%@Wi}IN~VtK$7^_J=za{y8dn+IxuCN^8xm0RuymFc))vfrkMy2 zcgTAe^eG->0=)-fX^?9JGbN_*XrZOj!HR0>BtNe8KYwoHP&#k`f|21gH-e(U==T8c z5`Git8tj603gj!tWA3Hq!9!2{ES3pWmv-dde=TS(n}1U$dfMc$rQ8r$^kp%~mFtC!^h-+a;kb{(xm=M4rfp6-DwO`LpSG4rzju9MN_Rr} z^0nr&Cf;l9CEp&I<~p)d9D6?sbxn#NsLF<#LgX_dK1UyZ64o|Fc9A*=Cg-S1RUXhQ zi-blrBu2mrg6j!L;#5In4T%!yuCpo z7q|~4D*prJELd1C^4P-pX=HOh at 7Cm`9&h~RF`XLy zr#uLGSI6^glmzd5pDOft|^COyn=R9g&nNZV{{KPsYd+#KP-S4 zGwbg8U$;PjNp2Gd6IFIUPmH?M`m2!z{A8X#`5QbSGl_%DX9uOO=Pe!rr?f`+Z z6K35lujr_PY-FcT6|?9w9-o8=lyxEKdM}?r3k!*Hs!8{6E}>{hG{VUA_^$>lwxA?l zN|C9 at -4iKZuJue%_Cyxud=yG+B~~O9>Z8bVQH}kqdnvvjw94W_ER^qE?d`3O%Zuh& z5J7;j_Fb3SJyz<8ybgh?HDC3H>)`BtiAt-O^wPnlh=;-%3U?sxpDgLMf4coE{C{@`FZ;!$c{NO4E7 z)2xv#h5VJ)7-tlvLMV79QUQCl;ITa_uAg;0--5QC)NgZVUxT(ut5lq>WFON3q^H{9 z^eO%hSBHoRP66lho)9hLZkAXv<)EoDQ17T1kcGr{JdR}#K2+Wu8P}Qc#L%7a(jywv z|FpLPC{s|J*zDGVK_9Bt{f&-_?xkFJA$d7AM*6BV1^V&uPg3XOk3Evu3M0{h2d$3Y zzP{g{gX5QKqQVyoZP%k>y^tVg1PNS7I#c-CP56A|n3qUXk?K--jUN+{ppeh%L3)eN zJ{~ONsLprdI5Xq!WVWu|`c2OzeiJoKSQ1zi)F=y?xYOYEE2f7bl&oSLhV{v%6m`)%m at _X%DX8zyW3)^3NMyBUhC>CCuplvZVbIx)w z;stei{29HTDWYn|4teGHy%%bnWS#3Dtrw3*K8SsH%)6PKg*MhJ5N^v`lS~a#QswHm zGb2`Vp~Juy3&!6 at Wve4Rx_r7OFGOow!!mFHq?knVfO$H>&>?JY-O=AVoks5(e4=a) zbX$=&;F>sbSIWM at M(i5XXj3^LX7(d?`w8_Yuc<X5X=!OBCnlDx at Zj4?pV;bh6SB+n}oQXNmf%T$9Fc^XVc2{LQmw at U}m2o-q5dl5UqonGjZ|fGBY* z>%M<>hM~tPqqK)SL2L^Op!W0daDaXlgl|PE+#n9kh(>CLN_rQXgkBaK8R0eCaet?Z zP;mlD<*Fh)t*~Jt)(g)K_%+4ohwHe)@3l+A{!5KBLgulcLhO}1QCzWy+!KX{uocJo z&gpAQq8B1ywbnJJH_24cM=KN>gUk)Dk%xvb6cjv9!c1P72lg>|R|L5$lT*s%b`o=- ziKL1EnfqBA%}36!zoK697XGLhjzAlLNl;yOFzu=u389fUm5*7sMj at ed=j5^dCTWia zw*4qcV2(wf-o2cwM3UgYW?Wg`_t#eM)vZgV+YGEq3|4zzibRDgz2?qR8+F6L zTjdphQd|*PMYmrDVaR-S{|D!v>LL8Rr1Kn1xu#92BufrKjSi&A(?y at JHq_L7Mh|ctxS at JHCnMgVA59szel`42{9=Lz-mrM1?wdGOCNcutG(4RmT zq!&d?Q9lT?j*2uaO;n)Xx4V5{d(B2m!N(QQh=b9x;P at -Hnbp-*HaaS(&TrrlR({Zd zt2Kee-heCar-MkTc~%c9t_`8FNiX#~`rtLeLGbn>)cJl z*7yyHiT3fIG`i2t^XG3IEFCa$sy9GHkf`2#MFKUTT`Ue~_+#{=sm|2SC(Bw1Zc2h37!Tv6f7K52&|wH^;CT8>GZ at zg4ttYEvFS|| zOLlta-({xaAKud;qnQ6zK|CH^3L!he`y>Lv{U}N^{j=Q7I7Cgv632)JUUn(wGXK0w z%#?Xz{AmP*u&7?$?9d&c+e=m{7?^+ueY!ZOR5pT1m6zd27BiFofW^*-Yh)25b{81C zm0kXG2m2!lEAE at +Z(p7`Yw&5BBaf#C4PPS{Hx;UCcj!-wPD7Kcd(`oB!#mI%iy3wte~FQa`jzWd9vX$*3g%o=@xIl0{JJa?F4IaYJNhNaA~6J0#hmENvEp|64ou4jU?D>tb%nb7_U7 zoR#p_V{nSM)Acdb(g}sQ3qKtd)VwXexRePMqqF_)q9$fbAFY0}tk6cZI+S23KI7S@ zjn*Q(!ZO*_ShM8SPGyk-!yg13swabB_gi at UROB@VGSZ?XNc<)1DhOM+R;KS`IVCKG zu6i^9>3GW<%hryZXE_+;Zhta3A|Df1P{m6AZs%sqPMx>HA42~QXOV(*;&&zYkUzXS at -T(fO-mh9a zt)HDA>wSZq3`q35FAC6{5vYD_(x_!F!R8YiTAvlr&pJr)35}s8QI~`E2 at R0*x4Y}; zB7YjSUnzmTWTa#AC9w`M)~nXH at rNdCP}tpEbWSPO(dpEqob*?|6j_2ZbJ#I`u+=KP>zz zv4=bpOhrovR2e-}e5;R{UFcl&Z%m%t$hND=>2SK``%mkdM0EcyZ-#T{9at~Xw6t?r zvAgefPa`l2fY)1VN5m;uIsgG5^fMGDmX}#PpjQdSwc3bC+6XRt8da*d;nZx72Kij^ zke06>iyQR5eH*g6!6OlZly?@dd61cH>Fik`9qBSXD0IcAb+9$9F~GMix4o){vugFRFF_^TEgJ^=U1Qg1+~r z!5 at Syt@Ca7@#aKI^QM`I=lO3CUUR0y=jiW?FUDTS_7~aK1kS|LQ16K?9lxt8{W-#F zO`rW#20l+b%G>+W+W at OBQ-9a7FF0g>-_Cw8u|yacx8k~5JiTPYG*!~Re(>cPUDOZ53z at PTx3abVsrBmFWI-gC02NYVm>F5f$7&If!)^HD{#4VAddgr z%7IiSrX?OLySccJc%ciIGmT?`x|=-x1+vFlrZi8qU1+5K`2OA89B?WPpmOe%2qqyT zM#_Vj*O;7lO#bSFjvK1HP#}KZ=vy5d+!zPjr at KpNW7){^Gla3Zv4_JH8x3ys(~ZV( z?y!e!^e+6OF>I16NS5x$iK%!k!y_RsB!Jz~v>_3sec>WEVcL7r~`Pd=z2`UV_<5KI4D z=04^obRZeYPe<&se}TXg*?@R}VGyZxB zwMG7vrxhhaD-%V8(21qj{d3y?gc3J;u at n+HzXU8B9^30_QF96?p!o^!nKf^#Z`|b@ zZ*da~&In2nNCMl)KhcrU1!z%>yj6ODlzru)s1XDMt4B_#+RL6#M at 3j{GRb3bv8Z2H zUCY>BmeoBX1CvU(a_OY^=&qrEV~woWKYG{=(k{4xEOaf9q1j-q^`B%E)3)<3rtPNg zouw%mcEcdTMwWU6+r=!I2O+WFt^Asx`iaM6dK|W<$Kf9dUvDYtmc9Nee!%e|RLHYC zoCX(uW%Yz7JS8hWuW6h>F{{-CB}&H^s9{N3#wwW63$wz*;q|uNn7~GRxO@;(Cpv~m*F1ha z%E3e!OSzpmJ2nHI>hWoitO zx^h at Hfm}YsXT(vFbi`sE6?XaHg~j6{B$utkbb>JvDL!O<0!g=FLdxJqhxT*$s$}2% zVFblgR}+sXH!s<1AkWZ?2t~1m9xBvL; z$d%@APc_aJRXqyai0Wm!82Gfn_ht{-vzdp+!d)DF%=&>Mh7E^j4q0{2t$Fcg+k8$Q z;3^6H{u2(_r654}Jh-MiPTh=mUsGCj{+^c?7;LM(!p$g^MB6F&(LiXwu`PF`m6WI< zbfYDf$>u~2S++yRZo9h+8nU?Yj??Fbsdv1MYjqTn&3m0a5hw1XKyfZXLDn>jy$3^`?uE%ryjhP2U3~@*N_nOmNbtMN!`c^Y8T__Gv z$NcQa%lLgJW**_%IOAq~4N^Hf*0CSbsFqK7?+~M^5djWXl%u4)AdI=&)MnI-u}xC zmk>5)|4Vfd9;2l7V?@mAOmnZP@`@ND at gEh)*&BQZQr(6h#)z1ZH&8X?_*VZN3*%Sg zWx)H)tyzV at FJORWe@dSVmWRN*9%qsH>y^WsJ`9t|Ub^~kh%99vku_QwWytkO(V|A)hF)6c9}TG$l=w0#8dZImAz ztr?%4HS~waP_s*5Pso`g2hMtGXXvY?nwXx`ta~ZErTX;T7tc1^D$i4E--jzav#s7L zU-J6FSvRfAe<|(I at +moTrXmWaze!bZKc8Lt{^Ol>;rjJlYDNE|Ck)iW1|7)Mwygk#imTRy}idROPX<^*Jd?!}- at gD3Q!?~^{h z at NPUK9F5o29*P)}4WW6Y$E4Q9{!bs9mw}^5kvqa~aTSG=O-&I#!_43~_I*gKh%}=( zvLv1XZ~>D-{n0kUzKpk8?5F|1XtN0}Lp?Y^s(FH$%lMFuckQDyaH^~QV5=01Um-VzP z3i^!x;D_$7V?;Fe8Yd>QdS at M*j1oi=TQN}nVp=&IY9VwBy_7r(Nt4Q9G5_-y#YA2W z{y;tSF0I1}=8joCF9)wc{lk#8ESw3c1^y|w*L{JPf%+Dft!XYR at z8+-FdT-Ov){_? z%3)t$UpSmnF#cSCfOIVFywht$U~aFWx`>LIl3+CKyx+_nKQKmNWnD-3cHsC$WEOXI zB^Fd4no513BWvloQAv3XBE85-ThCMuJJmkwoo$E$iq2j1z{7ur2SAy+l`9Afip8ld z)}vc1#wU~CJ6kNl{LzUN0 at a!7*KXhb;i)DW?w)};)%ZTcgxAJ1(I&1O1CY1L?QQ)+ zX>hJ`SYKG at 5FVf&VbwuJ;OG+zB!y|F;)$v2_Th(tl^U<`nw2LHz$?-YtqXpkKkjco z4L9ewsVU&WeWJ`c{h`m{LV5e+8u3`EDDSMI{*(1yVc)6Z5ReZncdYP`kpcx)d`yMwz?2WLzdmbKZUQp zxR$waEiC_h=3+5vlrc=g0V^B)p)3<1k2pHAMxOZeZqI}<$!Gtd&+DmH>``wGiOjI)hkr`J!k}(q%fFl69 ztC$)sc~M+}m%MK^^|2aiOwbcs0ZJ3s@&bwtsh=nJG1`}(F^p!T9mUBm?2iP|jI%a~ zQrUoz at fynZ at rgW-D|oy- at V}426sfsYG{4CFsOS|DHi%6_tr9K_MiAt|ij+;Bo16^x zTQR_N)Vs>*b3A*3NZnSeGUOh^MI}tp^mzWpw&=8cM~lA}HqGR=5S9JB43M at yDmN+z z>B4HobZ*|6AWXT-{t1Q|CQN!9SPr)?M39RmUMjN&R!@g)h5B`K%&4bY3Aff8NfkU9 zbgNLDJ9X2S(7x?+De(?5ymJ8Ndfk^}owZ>iA!GNDEpY&yxfi}Lal2l5HuFayXUn^w z+KfJzC9}m)(i-ByWH|j{Dvb#e%ZNExn++G`(?`xB$*w{aE`P|nD!q3th6i;H& zg^mmg+!1+L)N_vLr-ds-huu4XuoSi&@i|uFv6(9*kG3Nn at 2k9YJ*E at t9u*wz75xOA z#sh|9{V*9QwA|HC&&Op&Rwl#%50eXu++92Yzu{WZJ1cLH@!f9g;6%)i(e(!9yColwX^%OBgUnBMKL&nb`3TclX zy|IxE-*dq{x$STin at fyrvN77ub#*H^$AP7Nb4i{HiRt}ltsfmux(V9(yaAk5oKmlB ziv%0|9r56?Cso*NpUJmCc>cHnTk$e$9Oa{#W|dFOV?2x}ft#)zMldZljJ*%!&+rQ4{ZDM5tj zQ~Z%;gz1bD%(viLGwcS{oh8v5XZ3Cnq3K9gCUTjA-?eVKSVE9}8zC5PY;FguImOiWDUaj%VmTfaHqcaC6y_73+M~m) zRcc!V^DXH|HnN=81sya$ERGTV8x&OIk~TsO?igVr&m9P4%alhvhy0~@)dQ(0Co at um zk?)+a`ZoP6yaZJUVc@@lKGZhZ$Y&m82UP5RQia|_4{QtXGz(M2EC#imNf7aEV=+^4 zR(T*oDzkNQH}MEp*R3ks(t%0ukjUG&Z+Ebh`lz0SZRN0Q_Z`57kw2?Eps;YL0q{bI zYSF!NScv8A2~m#P(d|BC>xQtasKzK~s!vR?zwQ!jXs!QK{rorUzcc7m?TPx<(vgMP z*r=5H=dLP)YinhB8Cq5Nj&C1b;La!={PAQPTF>%a#IV!CI+;mV8jP49eREXQZXMI1 zlPh#3D1D6ECIaNY^9#@)t4qqXwA z^De-nW=*JHYk7mJk?Lp=0oae!2%K#uL^36_sFM_Vg3VKoanJIL5QC{Ez+}eFN>*Xa zGqE(|QGrT|c#LUx%IJ24uQtk at qFJ#i&$zHv%FrV<|GGKlgK>u(_THDeC+|gGx6eKw zF|hBhgq2-z_~eaBOy6;+-A>;%Rt>x1 zw$)+SF!$^Cq72DHv*=M|{lmiDcQKArqhn;GYFNa>f>%bSS+_~j#poPT9UxvC)8%EB zq5=5G3{*48>Jf;$Z}Mc*2e^Ji&c!_?uCej&%Mulei*EvTEDNDytX|#JIDtG^tJX2M z)$qhNQzT$;g0!;4DuZNF*F*{RS%aR8!I1mIw!<;S}fsnC8!y0F=}rK2O6fvz=SHjN|n at fAfS(vJJOEB56i%Jx>D^;_wp<*K}G z{cx0auQGG{^Oan?(H8cww5uSQ??%QUU*c04+}mJ<5-BoWw)3&Wbu(*na;DmUCZ1^j zoqeSre!arRx!6k?tu-XcPcoX>w8_LppVR&n)cDB7N8J1`wDzDd at J9Q1VtSkbc|>!m zp4{ZBGS6oPR9%BVn&KmfzdDIi#+D)q+9W at hyy%YC|2FU!DWUpFd1c(2bbQwHJw-rI z(3eFi1qGS{XigDDGcYq&j1c&_o}6C~EW%q`di`f6S^lmSSv zZH$s7s|U^1W%9b9=80OPpmt0aiAgQoI-tg|%bto9W!i*Z!MKl=KbmVIAd z{xGrB;;2YPZB{p$p>?zoYTSvkIBJ2zbXFGN;fn<@Mxaz8$p|5mSY}&v;vCXQ&wjgq z{gK$_AS)oXo%<%&yidnk7WKoIm0Nn2 at 5CuR$}z6VW&yP8Km9I-c=u6A(P{@Zd|$ z>)(Z44;LNgTNhie538z`N-=#|?EB-F_#|9*+{fw|3d|&|SShxyRicZv_rU3RX<1&f z;KIZWw2LL5vxL?jTiPseNsWqnQ48vo37z>{n4k zMjUfN#)9RXz_zmIqHu_1z=mZ(5-T~qd^S2&NX5JTHyQrwlDvNX+P at TF2RyC@Ogx;~ zXE-RxF%}~WNTzujS;@(M|HZk2K5uXDWiNH9q^CX3$PbJ9qw)^>nv8|L%&;vY--Y}U z$;LxdSW3Lp(`J#NPhysc8LXRFs at ao&d_NEUC((~{*D*g6zrt4CI=up1u4ekxGHWDK z?&>~?GYgvOjFR#!5jM8AkUp-k`MKupw_ci#q;6HQMe_`%Fvv8W$315oQMmYMj==e( z&qdw%(I4 at 2pK*_hciYQtNMB9F&dQ#Gc}SV{Le(#r=kCmxc45f#tNJfG30T-JWjI1% z7So`WtuSwhDwLPuR at K+~u^N9Q7wY|%1#3M=_&0qtv5QABQjj at Nn250gfna7IimAue zr5Z~c+2pS2`dhGSSpTiTlxUipde!7GA649y5-T4~{ud_;EqBK at 1F|)@hCN&CB#J1p z!~~IAchCh2Erm}~#F`nWUaE=fng$jE4bcWcLk~50cPGQKF3;m3+GBc=Fhf at UFlO2NHEQbk z$5WXGk1L+c6h)Ax?`tpG_3H6)#twPB-PKVRjy-pI=Y_mBIpwbYWRIC#T&uo89Z|P% z at Rd*`X>O72v16w=cJ``8JE-LBnY~W4@?gcY^7un>X9d!p-LoIn35Sjg$I(TCA z3oXHt!l at xTu;~3t{2`~pYYcN^FC3QDru2Cgu{?>7nVBs&AqeufpTKCL!8RDgT^JGM*==h*PBf at Mn0)QsmFhmsZLFU3Qx#&W>G=I;}&LW@#4t?C$ zLyir?Mi!jC;yj(qntLAwiDk6q6}B7)1G2ryqQ5Sx}K}U5MidNZG%jsrgo;Ck&ni zR at krKD7X-nY39KK+sL_H%8WS1S2hXRURIl|M^-m|*hX-GDyG82>*H?ksz>!>i@*N_ zhk;bE@1!bPwn&~2ji_dT!qa_2bSVeB-C-ji( zfU1>G`CjRacNNTdv9|G!d+#jz-{SGXUZpdO8WGTn83Pv at 3nV4=#^;=G)LDz)uQ)IL z#%t}K^c&MLL5`~Akjt#QV4=O06?4Dw$SQqK>4WcmZC=1s29NNc`#Wd)_-_%Z|Aq(| zNzBJfmzs}QS)9IDJnS~RD$t$2Mca4PK`=S!N0`}nY#y5YF_h;9H*rQ!aP;0W5exEK zVx_fKJ$O?KdCpZ;xT9%eZ#;cXnJ0o!Ykb__Ylv0eAHDXuH8bG|dgU<;CQ!Yp@=CGM zHa+TI1>etXag2XPiRq$Y0 at p2z>Wzeo`Z}I(WH=RnH2sH at GF$>Nxmz?}J(YU-Fe)6W zBy5(k=gO?Bs;e18bg+GlI~4UFJa};B_aCecfLOKOjw}E-hd$xVvI#Mg2_dDKj_ywC z;>y=s3uD7GNwKLmUYHnBAUK8AYaF%onaU_g% z8{f&lHZQ|y74LxVy*BFZ3#9`M?=~7a&%F&j?O~R{lHPS>V77AP&vT=krx z5Vav>#TW)2K!bN at y}VkqXXjHn$ki3DY4NYoRB^ z)!u3V!V!%ZKHIXuaWC8JZC}4aOT5-Ig-pBnuK#@Zn;zpc`#({bDZ`(d>5~b^uNN;E zwfu&s(q#$o>W#hei>>Owzykv^+v>aVSM-Ft`m5Cc9-<;~AmN|a#dcekb=UOc>IU0G zzQu`MyQQCWVVQUHC$;11|M=eZ?zsq%J5FUR)|w};12?cIkOh#m3eBy-E(WK(FR(7> ze>!$?iFW at IRGUa<`0lEuMDj?EZqF}`YW9s?>$QWhV!^@Cgo1r0vk6)|h>yD8H6j=p z(%Gdgzx`SUGhwMDBVa7H^|j5nsFCmpaa7C)ITP-OiTuQ8(4Z|JyqQm9t?)i(WZ~l32O|rR_s1C&p~g+1 z$eYI&k+F_#^7XrS=t at W^`EAtmf2NDr&WhC(N*oW?{IiOInz)|b_F9o2Dyn>578-cQ zBj>S@@>|*OH?ij3JFC13;FZ04SYyA-K4pmyx at 1ANMYx4gjbviG9v*Sir;pYX;)@ke z?*gxwe`hfaU+Op1*;-7{X~TK4dt^gjp35TN0%^!V=fslFTHh(O9?Pub^WNS5Z5d5d zIsB+?>iv}BzW;K2;UbRo*+;Y7x-eTHx*wDU0)-5RF at n)Ts&t^;RfRf8n?nNrgdDU~ zWTaminoQ}abmh4KWJPJ>o9j%Hl zg+35v?)^?MWHNZS!+e$H$q$MC!?DK#cDnsItS1^iyOlro6QAKHPz2Tr=2f0_;L^^YW`D`#sK9d0~=phJu at 8@WixdY zavu7=0}6l{rsvwoo^P`+N7Yl%x6IlAL?R!7B26yJ6&ntKA*EOkrn&G*0ex_UVVu2A z;{-sQSWQ8-^66c;{dV#&`Pu~skhSSBbeBwG23$d9z&?&SuK<&PBTBs#GNc ziWPRy@&^X4eR>7P>%e37ximI?)WIYgM&$Vx;H%{JA`5eQ>Q;_6AoDjK0!79;8Y=v^ zSK}KUB-v;&mbh{+dkjU~^a?r%Sm<8pm0({-`&>dEl+5{n3)~iuKxh(6Y(*9h2Rd91 zDpYwcy&rZpc1`3L1%~YYI4Uv+ at 7}jo3gw2P{s1kKo9p$Ahdw$hLkM~5SM_GcRRGYD z8_Cr;A;0kBA*UcCeaShan{VMDhQMx7y?r3u6t7LoL3H=enMni_n`k{8oFv%B6^RE) zxFw{Ja>ynl{@j at Mhpa|g^FDE!cZT$^GLPV7N%!5y+&QOcBh>3wR#q at j8g?_zVfn?p zH#*~}_FEg-HpdrW)wsI{-2Az}-^aNh*T1ut_ci(Es^ z(<2oWc7z2z8|fsYqJCtXwRTJwVT=O09gbL^`qu8=zzDr0WL+g6AI#P=;_2 at i*+_6V zGz{XZSH}sGV~)v3_g7&yT6?|;SVQ7asIsA z)i|xCXyLm_q?Tal4ZToi{XdNT`c_h1(Qw*FauojizW%4_)1~t2(5DLq`4-DRNxfHf zJ6a}R8~bEbc}+U6NBoT4X2Al^WKyHsyAEKj=~4G70ssNx?iEfSNh1P#o&=%`LNfzv^wf)TpDZG*@?H^f<}v{)Lhe$fAaTxp5# ziacP~U*oq5>p(wXdio+2Rn-U8pU|@EbCH;DU{{m4+jfED(ub(@vB>k{Ty)>pwrqpK7TVS0L)jv(Cuq{(85 at xx$9dQ_lso0p112mZf1oV&!@_i at pgi=%ErhZeCe zmguhNC2LR`u8S^>g%oJ{S^`90UxwQhQ34ru%$InlbVXF>`(++7Z>V4J zbca(ZS|PeL-+5_6T0CaPYKN#{wyPHDU16htLEB%HT`TjS^>vbw$dbhI0IgBK`+mjD za#@l|M(y`-XUy}FEw1GdRinL*Bn7dGrbIWNcVFjXt=&T0Aq|q at pb33Fk*^6`NFe7J z!ZwrivuHwe!o9%@ArLy8Fu_JY^W)9=R;x#?;ou1 at TgY?S6k6t(&rVK?V6toR)I1+u z4}Z(>w_ew;v(tv4ERA8xv(bLOkLRc=?-M>9bwY>^#hJAHZMoj%@82V1B-877tUfkr ziy8`5X|;-KprVJt=Rer(QEWWvLZWcoLh(?19mUYx8pQaI*3^&5H_AG3iUGFz|HtO= z&q^}F80Kq3MzBP at _}O#kRy3}bqacT^)sxT!k&t@(@9nQ+3ADXwgvSh*Nw@?le=%1 z?PrVBqC+kV_j&*NLXkR1d}HT*>BB_tgBJDSe&3$!-2bJn<%B7P%Y9YGW0n0v+d2j8 z96(QbzPo0`r=*hGu=1>A0(VRn{^L!TP2R;j{V0y3)H;x|02Fl%J2Q?uzV5rRQep~#Qs2|sDZnU4$bD>gX7L2p zN>G9bjC16VhM$p2ihO4Aug_(#{x7nz1KMM?wXop58k#p*7{d1P&<{{eB|@@WDhV?c z3AQ>e80qH!a5qabLhu|jH8skCwIMB4P_o>@okp>?ajxJCQuH{xUCMMEOPtIU=|Xfs zg+qjgp#;n^uZ;?DCmDe8+oQBJiXiRBWKYi2X3k0nB~pI+d81NNG_>B{oHV_QT1v4F zoHmfxnq?LJ&mRLDv0_EQjLCJ`F6Mda at Nj@J-5E#EP`F2XdcV-fKec$cm!vh$@ zOwbv at Lc^>0eD0;VaA`m=rF<}?ehf#LP9_O2(z7HZQ8GEUl#OG4VakfxwIV2I#FneTZ7KbRKQhDO-&C^i32jag_cKzm|b6Cll$K={rn(IB-DK^ zpD*3vbA;RLiGQ3-%^D0p=((Fsni9n>Hb3UU{ilFE at LIbKt(RKK1Q at sE=TWqF{<)vMf5mN4%1|uLEcnoiPKUxS(=wYiG7x2$gOP;E2~PiIvDt%nNVr^*?%@-fwL2Z6=K>lW=guC2KqUyXy1^lSd!gbgAhl4)K5oFDKR}9o7Z+EBuyk(_#z<>9Hy`^wekDN)r7&5?1>Iunp>QR8NsWo&DS0d9}! zP6dcB>|>;sYz$$oRf`#%QHSqO;gLWN2)wiT&M6NZ%?MWT+f>1rMY(QWIQ|{YIAjXb zEB2* z{{}Nb+^O^cPmIISw&|6ZMlpIq4y%bj$maC$P|?!_b8pz~KV=?t?$F at 3kaE9uRP2NZ zOKmsklO*1*H{uN_rdbT#^DWT#M=SMD+_O5zn76WN*n< zO3J`wYf+;@mc$f at c9Ap2D9*-ON_i+?kx7NrrH7Ml$JxYCrGmg#W?k}xqT(&Ge%ssK z#|#L1hk7tH`%-^p=hxum)VbegMBiaG&l0O{_rt0O4d-`e+%s?0E$Ysl at DlC*E8d;{ z2UAV!+U`zL%T89damJE+N7QfMY>e!hj?&MP*s%ByVK>;V64`vz?4mozem~80U8!Bw8=2u{{#_<9V|osFsA^QG_M4$2-Ry2RIDM127Fj{{l1*tUs%+1dA7K z&=5f<)JmxsqAZ%}xqa#re%R($HlawAM{|S6;?@TJA>a-i>7b7e>y-gGrI7NV@{y+z z7(x&66Id;z&FK0cW(PT{n}R7^EznYE92FLlRH7<6c$8YLj*42kBp)GDpr1w7Efn7Z zpe7qFl!CC4tYr{p25ar$v>SaQQcq~ewiqZv4BO4h;XIs3ds2!eqWA^r5m!`AQ)b{$ z7g}PA`G#AL$BP at GW}j(>z@~kciv9!}ZOJ=fjwt&@Y%eQv1W{} z+58wD-gCjzV+C3lH*Sc at W351@3>|SR_)dP_EszOvxm|tVch5IInqYHaf<(j8(1fvt zqtROmfyxdilq>2MIGtkjBkl#eyZnSvZ=q$ggTnVdnP9PCvhI)nc#y^2ajBrl>PuzC z`4H|gM>Qh%%nP42GYRyuu~!eBxP)v2eu}qAj6F2dFYY-F z#$km`_~8(p0H>4f3hi&<#VjwUm3WFlVe?V~rFpO4;~wXs;bBbt&`wf$KngLIx~*kc z{UWz!0Sp9aXbCo!vp1nysF~h8AN>Hc2%?ydyKIuteD=r!<}4hdSR__5R8eo=y+Z_h z(W6k)L?EpADN|7d)j9(>sNZ at xE(lxbT_e#eH(GqqA at nfYnIcax?-LNWV_zbwW^26m zYRq!p`rBDR=Jg*}k+l6jIUoMUv_Dbxf?u?@FRci8`w0E6sjT3j*ec4Ze$8kx?R9eh z00;nCWJSHR0P=Wj;)&?cp5(64V2J<%tNkJ9U)NY~x9Dbq;FFWp>8W->+!ONynFec_ z3WvDvq<~`WUR^gCxq0D~_=vB=!x5r-{u}l6c)iwV?Atxgcav;3ectuCX#e=*Ta9f# zH9Lzg5f~SH*D#Wj7r7Qv0Cf8>jRI+>z(rSL6+Lf5kW`k%269(dgRcurcM=u?#gNh^Cc;WM~lR**oQtx~l_}|L(+}s?DLjX7PD^5n{B%3VR zj+-FK770!;5k=_c0sAME72_c(vd0ww`{y4w$d!FL^{e0fzzOQv(4U?Ks*V)GPg^5`7 zoF9RHXPny~+Y0`QO33!^yEEDH%#mD=aIog*=i{S^pNJ=WWBL-&2ByMi4x~;Ycn)zl z9&c4!niEt4(p+2*D4WBMCB!U|s)bOP1I at Brp^(U7RacwOq10ibs(%>LIEuB9uZuq? z%MK3UzaD7f`pNsTi>FI(U1xpQgB^n-u-UrcHJAKI#nLlcvLI;zPYI5SI#yb9)3KEe zMGw}R-CC*|KiK{0#GcDjstcYE-Vl+F;`mMZjUO)-#Mk<0EIN!3|6E69?c8G`&_M;v zd4h;&LF<3Ll5K;Rg`gX)LnPCJe}dW0RSqXoPPv(bmIYz5rfJe7_F>KJ9EZ%$D{cY? zF6`i=Sla(a{H0UUa+{VLW_UB+ES8l&{Vkf zmmt^9YyF6QXYaM*Hp-8;v_lIdY1uxryzVIr at lncOsEgWhj?z2o%w8>JwJ$V(b)#}{ z!85Aanxa2!V0Fys=-A>~T)f-5Ro2L`ZFRx6jUw^A{rP$zy&Ox4B;xaq96_Y*7bkwv z#lL^W5zKlHXS|O_eWj@|HUlSulK`-0oWpg%$p~7>51!=96PJ6&gIbRi!cK)E;4?BJJ(`o z*#f21BO_V%;aLy7^x=)66{3JTq}*r>DclA01!@N&AjMy5H{RA_O*0s!ltU0kbK{SgVocza_G0VrMaJ5_qmHrFzDyrkJsJOwL_g1QQC zw%%EPweugZ&!h8!v&HBBxhK at Y4dpeG7CU8h8dw$l%?-XnF>#C!GbI+pp*hNm&-^g#Tj(N%=9x7ErTAMMv2^Hk4 z{tmn1#Wj at NhZ!intr6=8ZK-X}b`YD-jT?+78pV+MNsm=F`43Yj*|M|?Wjs8(1tJ%PBkK4Qq za0m;nHYBSVnGe_*TGCu)oGJ9Ils&{>GxXqq&3gzwM32O`gU9razq~ryhw-2jw2GC!PQmr at I`n&DD&R{LsFaT-! zOkmm5bq4*XktX_v^8r>6iC0+|>MO~}#W$Eg9=alASj3CQlh=YtY0{-XCx zg^mNDBLoITDT}$cu!8WkOCAM!G+B$q^St(B>$0`1Iu_2#U;94ii#N>>-h?^F$sJfzw&E~P2C^NQ8{VEB=6 zv*Qf%0Tij9t2B*?5TK2NQsLTtMYNw9G4 at ja0|}jW2RQDH(O-N0r9d+`qIC=rVfunr zmC8{Q!T>+Fd^6Q~@!j|ndmKx{RjeybvF;)xBMpT>dAr`ab>=P#dO*ETdifZ_q3LL| z1yju(k1?LIXZeYbrg*;JynFB(hTI0BG`kDiTS#ue0yyG0dzes!la;L-Z{2INg+^qb z{wh)5V?1#Qq0Fuv0^G<_buM+1NEPx|%gD$eToE{n3lha)pu^YJCd*G$V at F1tEJYQj z>>ZNvw*8RElF-KcJpybMe`5Bt%+ at i`A_b~IHF0!hc0o%Qg50p|esk(Wx({h+u= z?44=Fhsriwg*#roY0ORYP|3Md^74THTF2rqQAG|Z-a7#v7PtmFOfCM6T6xpp)z(ux z8y{LWAEfgORu}r3|GF*9eo=6rHgk4By!zcp(loL8?nALHEK_4Yo=^8GaQJm+M(+D4 zf6eRfnh!n=W#j73`gU*b+Oh-;>vOUyRKOGOYYP37B?Dp!O~+sfjt`juTk#_Xqe#C1 zRQsABgfXMXP%mbKhdmb7Pfn8*@lic`1dw`pduz%;RtECKcn?=VnLXA8Exl+Zc)a$Q zcgPqtngVb1P at Q+)xsdSYZyfS%w(~zZlNs6LQgFM_M6F at 2Cy6+Yo$GSkYSHrv-){9w;HJ2y#!M{o&`g5ZusR1y}`_;pGx>h*AE&wxWmd*n9LW7WN8!qbVPBS6a6&=XNErZvGEHjCaS$)7ZL@`Yj-wkZAvIY z8--rK=yNOxgXIdJzxTX6-<2KQKjF at c|7J~=?jj_tX+flBm56-_Oa}mKeZl2?i>>Eh zoWzG+>6^zEL~1u*56_{>^sYv#1hTrsQ#XG^im+^<%s9?*7e5=#rEB)NgNUSD at Pzha zH*E4G`luY;Fa)BI7l at rh!UO^J18rW0Pg2t^QJwzBEhzl6b?jv_e!QvY(})jhHu9Ww z3;tsvS5WupLkT-KqQ-)x(s!8hKGd-t>x_(_Ftiy)MxltMi=A^=#&OB+=;4 at afbP5_Ryt zKGquKn+Yd_E6D7UaE1`(dgWsp#>nP at kGA3qWCDRCe`)iTk;cIt4=S*Pt!ww&c}{))!Q@ zICQ`JswAuCAyEUa{J(o5;68HTj?Xed&LUUkdHzKDP2hojknKGF?i|W6yK-BWc5DHS z53E7kx1`wuYfX>e`1$*{P^uQ>i29#Vw9$~EFXvCx6-*j=k7a?EKD1JErj)r)26;y` z?lNZLsi+E4wb0b_CTb8GVGVoA!kU9nE?aRZ7;$=S#=fQsCi!Z!Ic~8%-q*KJ>`1B> zj+?h{PyKAdIXh^^xd;ANeFmkQbbM^B31T(ve^}vznY}<;-HvuX9 at d56LCFQMT zzqS1;c6 at hc!PyQC`N+Xhj-}_~w_)N;KHWy=x2nABWO?Fcx%1Cu2V(I55+u89#pPG) z=>VL(S2A6s^PLaU5m>@vWEFjok&)Z$P-*&5Gk1GBa~mNkzN at 35**a6Ziy0L_WOm_= z?2zH_-$AgrpY{a05vnLb>F)KbB-3x(OD?mvvJ&UE{MPh&7Z;asMnel!u>w2T7ro0A zhZt{;gBWhFphHVhr50^$`!G2qkI8tHTsmR3e?&=CiXgeE5jn zIvSf5=t3qYTI`C^^C*Qij#gAwuB~WXbfQdvIDY+PHu!b|7FbH$En#*DVox zAJHz6$#zx6pOaY#HYrC{!&Gr^y8AGSjO|nN9XhXJhO{EZyM%I8USwHUuFaov at we)k z>*wR#OFTf=6Smy===NPL{@auL>I;q&Z#Bz^n=@qf&m?J%`_?|W$uPm!ME|oCZC(FV zCceirCNG9yi_N#N^Q3ov3<~I>qd|Mv;wl0du~!m;vtM z?2IzI7ODs>e&v`LM>OGZ(eycL=j!4A#{0n^cH at SPB&+VK1?UE4KON-NP@=7V`<5qw zvpmaOI=xfpmrW7NA4BH)?6GCc6?tI}HQ-1HxuUFd;^p7ukwJ6JEOq`~o z3TZ$eYZWTFiFK00HSzh|HQUZ{Z0dkBparMM9u+cxVVz$YZ at DQ71$- z at 73enhamd)?ff2lyvhb at XA;LCNu|1XibptZb7VLcT3#?i^)u*BG=U#tDvX`Q^%=(Z zO|qytpcnWB0EM{TCU$=x8giC8sLv{DmaT&yF7r6z=^s~VI4KTZNcHjYsj99t*(b*OUx&3;4P_;Xa&4zD_C zdZyhAYf(}6*sC~Y`7L7yA7#gH7#{0VjztdcV`7W at 97hj5y)&zP zJeDf2E&cZGo4ZW(o=eEK83~-y$$c_I+Z8-`9Y;%*5Fa9z#1EK1 z$4{>aFqBoi at rhVZgG%)i;>3~E-h7D8(8i6h9tP3T16B0%|Ng;(gd6D3du$b$AvgYA zd(w;KJlppiwB!RcFRyxkb)|F<#}~7Ijx(wb-OFWh;7CW4G=aw^X`W<@fvEEK?T$y! z?IquQadLKX0cinOt|MWF2$tl|w`uq8j*BM@@;*bh~C-SF^$Bpq*Ps0z7z z!q5`&BzIt6#!GVMpd~Oq9jPlIY`s4u#hNRJU86M9=a3jq-YxmZ)mL0?R&L7Ccm$H% zCa$z}u_T7Q#e356(#MwtNe1_SCS6KMYSJ!aJe;Z_o`~`()l)V#obgmqhTDO&MJ0mw zZ5?vWuJL)loeJh1=y)B#NhwtrII=N%VA$&C&d-iWI at V*!XCDpT{;+m>@(3v at DHx;^ zCoXZ)J6*dL9TP)zmW0p2(vlMiO>DG5t`zM?78VvbACNU6O!!(FDugc5D1Y$Xj0e@< zKqb at 9RhQD!qf5c`8X=}6MD at Ra|Ni>+K#@7}%p at F7M=03{;+<;9B^!KQDt0NP>W$9`0#|MKMv_!D_~B(tI{ zRO62S`}gnm_V)7fO*W79^>u%)&!0Xmt*p2>IiV3QS%8`sQCt}r(d{wknIyyo*rXri zK}#rb*O#J@!jS?~81V17X^lJZ8$?;|wiC{BL2^yK$MKQ?6WX at U&Q4-tV#5%dAM}_< z&kY%bkcnGJN=gcWCWX+!pN~dIN0Cwg{sJ5A6+1hACaM=NUI1TRH6w0saww>-HWOe{ za-m at xnV&DLti<@DhDlo=A2z#3$N_s=xV*fKo0U1To>A8an3%voq6cRm z^-Q(5Q at P8KDEjAzzT}_^c6}eXhw1r2C#U){VD*iSjoo_`rec4PiuJU$wY9gm4-6RM zR~d!3j$vAOcN)UAAOXnM8R+dLHsYx|#uW)T2)dO-p(sI|31E#`N?mW?zJ30DS6v-} zFU2p;RrUF}r}_EHhhec5b at 30|UvrwK=Z1}q&DMKj3qlR|TetSlj6=Z8aux*pr#ltz zt!HD|h3F~fwaCcGU=nbR3vS;(YfuW%f?d^e{+rMuU#r*5( z*~{yRwFMyz7v&jpta2&g_Dm*WB2+;Z=|Yv#bX#9UUG3&JM{pnA-)t z=!L`guV`y)lPJ1Y4wjad>Ig_mNWk;%`dC^dDkQk}N zj2||4kY$I;HY-Y*JTiUn%HPkQ4MbT$B{Zk9bQ0$hvl@B)OlYQ74-}c(}_Y$zE9g7J@=hEhn|GupTB(zVh6+z at OTdo zsdoMr4~RxiX^OGN1#{y at BA#D5XBt=@{~^w5#iP_ at L3P`r=dtXP z?%#*lw4gv}^Zw|lRYjQpWL%hHwZUgoT87DTt~GBS=b?u*ovX$b{DkYhZk6 zFei?AHot-c_%H=gzTE?E%D|^DUNq~|sxeMkSG+!Y^eEv7+SL>aDM?9s5<&@G%XNVj zS$2_Btp;D(biR_6XU~poHvanM7|6*fr?5b(O~h#G;4lp|)v>9*UeU&eN0A^}A zlbjHca$o&82 zTvK=!*^yOLwD;p-)6m at 9Txo)UpCMhW_k0FTE4H(XT1)r1SPqt9y&to>e3?|J9v?rD z6W<`^;N)QC4eoe~kOZhvmYhYexPHYeJ#}Ana>p~D=TR>6j>u$%8g+>q|Pw(Xw#EK^noz(#TV9k(o3TFb7JC= zAut~%VY`n&cKiDJs;jFxNg9b9Q5W-PNwy8Bu0L(g8w6wY9Z{g~+#6 z8l-Aw6P#ULl{S>Z^C_z*P{&E6AkRl(ee>q=gYVCN+A1rPsz^{$L$O3hOG^<*z)CvB zPfy|Rjrcg+(HaR^bvO$f&!EY`>G;W;rG==z)r66P#5Khjd*Q%=fGyrEpL;C+6aJf^ z%26}u2nZcJ*32u+M1}Rr6R(a;QV(iX4o_Nw2Y>%wU!tiUMguUvFt+$IKflp}l!!2{ z$TFg-1S5J+9X}2}6kwM|!tvwB2hx5x`v0KG6y{HU@#2{N4Sn;%R`9*(f{~1TL#VkD z#yk%Xk3X}sga_NYy3Wk{yVIWOz#$Z`u5V!h=n(l7KYv1I_5R3$CtL7APc&zND_oic zdeJ&Mt`sZ>4p5R1L8$C1$*Y0G=50jz>j%AK_L334*`M2 at vgCjEFsb= zf+-E0vE^~R;U8m3`Ar?peo%Qs{2rdq_tf>Nb~kS(xp~(`keZQ9W`F$n5#u%t58YMb zx_6VsgXmi0%2+$1%s=Q-K)#zn!*6`;V$5Y7 at pr*q`D=Yk8W z#?hzHEZ14q6OgE1@$xz_%i*L8IfFiVG%tJXm=kmiqp5h^cqm9Z!xJ1nhZD4b(u|Et zNMRo6C=PggLE>^KWDx>u%_$%(tj3|#rNCQamR_PLd at SM41ggxrM3l_cttVh=ul{TdRAA3t at C zjiD*RIz(wv#%k!0b=t;@z_=Y%5TJGc8T^=fCKHl8UuS1$9LWe5pb9R0)3~0&+XmDl zT8&E+!esx1EE9f;A0s22tkFvE at s$x`eXe_WSYA%!m-bVT{9RlmC8`Iohh4_WM1 at 6!#IdBKmsWk` z$gbi2iqyA%z at Ar_m4V&Ly zQbs}|sNt8ZbfImi_2Tx{2Bi3KWzC}J`TZNY8J;&&7GN?$Ck1?{MF70V%- at D!YBZg1 zM^`p7eg3xHzt0 at 6ju2^AI$(?MbwDaw#B1hWyLN3iTj(DW+B3VJ^v{3`SLglp=TD0V z6v0HM43W(cuT8uEh^%`}5jZtB7aDEGNl!3c@$6YRuZ9o(s<(v&$L4XIubflCF>P}z zHt8g~e7|*ZLEt~QloeNxh=@$0(J6{*mY<-G`?EKc+Th112fHhu(*0(m*PYnvIAUmm z<0hL6-RYeYG;;y7Q>eyKiwf)+SkfYJ(a at k|q@;Yf{rSKD{QD=hOPVO~?X>IRg*-DXOW at fI-tXGH*xZ~~)umJ;0 z>Jnu!q9 at Xoo<3Y<- at bhyo}eig7B;waDUtWf=g(!;)zL;zo<5}@PsYde$t@|-hw6wK zkw3)G`7~ZXe%$n*0*{mA9p~STEo^4U0DO=Rh|>=%-+sITK|LUZhX)1}Dk5|QoSd9U z)Grzss3q8%o3no%2&UdIbLv#lDZGcn8h?NOY?@p=#Ktxf?6W at o1g&(e{I=(f8^!%I z8EI)mifnJT?%%(U4q%nHft#{jF=NF!`zT at plA3y3Xv4eq9I7oBT=``rk z>DRBt at k!Ftk3#cRptKSsg0=7Ytr}YcBZMG$|5%LiQkeOIm0kVYCiXO$Kn=iw*RMfs zHGbVXQM;y%OvbH_+RYAxIp_$0tDy+2a2r$mZxqqa_S}w~xOiYrXxHTJwejRNA6Osf zKYzY&D6~B;;s?qRBu8?`^2Qc8O5V1Ol{tuO;;!IrEi8zs>blf!p)Onhb*c7iU*B;l zsj|XCe?pGT07IdcQyZI$U1NtK`=oavAh&qyq0LEOwejaIq>UJ at 8Ul6*g%5M&?#z>A z?^hPJ5OnNX{-d*WiO+lf`vR|8)s0D7?mbz*Qyx5ku5>pdg_*cEJtc)xBZ0S#oQ at r` zL;D2EK=cTB3N!XahMV)F%KDqA(EcMH(ImnBgwYGpSDc)LSZK~^X#wZO0Ydg?agF{0 zR7rD#l at cdUPA{(6UAZD=bnE6#qZglnH%F_Tl93S&R#Zn8G*ARIGZ|#0wOx~mnz at DR z*#cByUXrYMAOKp?fz{T+Qz*)%qLEuAVoTL*O=}*b0T@$-N20KyPIRb2}v6Khi*tQBzQSL zke5xd7bWSjy>f+T4-4f=#ciN`bIt?G2i#hg!z%Ex!C+io(6p3(E0h{18qYu zjuwFkBAM8C5^SH)0IR7#)}szq`Xo)F4WJKNfr2plC&B-^ySoXJeOxn6NJ(W?brxrWr{?9$m;HMbbnd!St|OE*(xs02NMx-1_5W)D1O(_K zn^8Kx*qcJLRF3=i=uv9rgyFeXc3mN69yup~j5#?rmX?-RuR=SN@!&xmuaTJllY2&r=qZe=Huo z-+VneeFhGd(Mw^?KTxq_7zz)OY+6<-Y^Cr-GN~To;J{N-Ps0k8Wk0Ne#N)LsUy2ln zy{XX5eV(5e{YQ>xq9g0R4{KwhRit`J55l})rMOkE>Y+h(-s?U-S_wZ7x>Oatd84WO z>Ac_ih4~}Y)YNz6hOwVNfBgzkJJ9Hsi&NLpn!?E|(ItyCA>vYYRozsrmbn#(M;<<8 zpLbN{*0r)iLgs&=a|yiHq`mXiH+GaPblO0pFbS-=!aaYx&$$L^h$?z5(*2Hnx?*9?<%DYqsjC*c6e*%D>)<)`_(bDo=p zhu5x&BKS at da6#{ z6^EzcRsX?ol{f-j3yWA6piK!^4weS6GW%4IN3mde&nl6BS)13KzqlmbQ5URED+vGr@^z zC_rXs0oqrbI(Pnjk!jn94=vy8t&9984zaWUxOV|pn=VsqtBIlEymvLOLnKCX(xW)H zdDLJ8*+CG|B{Q>Q@#=Nncb^3xFGe at FHsxo&0Afc*@KMDm_#<>ejN$Ke at m`bF=SO|z1|4>9E z_7SxDJA|Pk=(cCyKy#9Z*yIysF)niEV9MmlZ&{UA|65O zKQO at ZR2Qa5AeutV2cui!#rG0jVJeTX at ra2^K72S=kxWnl zlLlI8dgZYZwFKU6`FM5o_fWLZhSq0b>t?2;gf&~^(idQ=S^RLy-WZOY+4A9k-qrX^ z-5o$4M|c^+e^##y5lhp?XybBqSpQmj6+nTH9896NWgm7Vi$Ds6k^`9}3!V?Xe;o;P zcgDTD;Az>Yt$VM}k at Oka;@LB2LP0S*tp6SFkYzv59WU#%>Way;Gs{rlVl6>AQffRo zF=3yE at FRdw5U|)wLILvLROfCy?@4iSaR~|KUdfl&{U-*J!NEp6s$0IVncH2U#=SST zwYRU2R1IpU)CUg$KEyOzOKL0AMhp?0<@@d6kT$X4IX*sK7gpy_VuGHJkAhcr_5RY>6)jqBU<{p!EEq at 2wY=J1cv{{2(L6{WE?7VgW4>WUB|+r zYl%Sea1*snYvgDK+#;PJUZT$uwU&33h%LPd824n}!c<&Zp~SYVS0hmgTKsNmipv(} z<{?{y6BBlVNxL3j{fe@(`(Jo%P7(&Y8W=G9d~0oKsavxmvCvvhR_9Hb$$$PlCN{Rd z?6Cvul?(6q0R;0hP!j(MA{trn|&CRSTX{1S%wjTJUT4a%SJW zd2`gFK7D9x0sSi)8%$pUu($~9PE3nS!HFVp#8uie1f7h(L0wv-7p6fL*VbBa$8%C7 z=S^2uR^mIOTtq!vQ-l1HqVGxSyt3>rZf@~;(-4v+ at cugW@?S%PQp6*Atw3%-%&)PCt&wejA`OPqMMyhT3)@3gNsY+^Po<tDPGr4VXs6mXv%Tt5?~;gU_he_z^zDc+uedKJbzk{am^TQXcV_5x| zdp4!2-ek9Ggl>@{5NjSpCPTO_t}C1q2cwilA=Re)R4J*Q(}-Lj^d5M2!6zurOKM-z z*T>fw`F$i_{o^#^T1iiE=+@~ylT2*umNdI?f%sX^r%(3~!-NCDQgvGQ z!oB2Vh=u3{va^HznSU9D5od4sH*vVg{ENc^=Z?3(b`4=aO#Aj}pkxNMIWQDdoAOF&U~(cOA_)5L z-Mhy*aSO_vyy at B5Yf+1wWj~0T?*KEIS at 3LWY0=cw6o?4qdk!_)S9;#K&CN|P8?mj# zlZ*&i!b^YqmO2igU}<^z*<3y8B!o3E4&LO1{|SzS%l25y*CtN at 8h&R_r&TH z;rBghR|S}$lzM-G$Q>oQm(<5Yl(H!`Py#`!+o6Odz at Mn7a8Z;6dv1K6oO9h4DG>(s zH6IVEQWKE1Py4sAMRS4r$;I~^s;a74I=zy6UeXq at 3Phkzoli#F)ljVJ3>P7IzaTH# z5Fi}{5)87}(4haI`cY6cN at 5x$7`{*VMmQL9({hSR#53bItvHYF8pyd at r*dv=ul&mc z6*D;321Kzk6*M at te{=)$*X~`yGqthF(H9I>)RAUWBgG+r+Du_ at leOE`t23LMvfJvq zOj>jGE at -^e*MtA5gLj{u?UBp?dZ(7{J?|;2V`iTQQNJ2#-5ppf at N^3UT1DFjTyNgG zr92m%!_M2;EfMq{8X5r5-I9B*%gWk-7-l{>l7?r~SA_UDM#{lKr%ki7XU_u9*6xiH3W(=U zY>Q*#WsXFE26kE$GwzR`o_IX73bse5%D=%CdtR4GsPBW^?NqIh)3?u_rOxaM-M>#G zAt@;dyYc{N;PP)~xRevy%F4 at 6v!7R01q{PN{yabbNCc`c6cae+A<65L6%m2-W*mU* zwjL9yflxs-xI3^==7n1PN6|K&+$*3Xo(czhUA#XLjtbd;H*aKq8-of(`b|DE2&|E3 z240RkzNDn&eHW&n{m~aBRayrb;?a*&7P9e)?~>Y}vT^H$WAVD`46gk92kuDpYE*1& zuVi&i&Cu7cux)zDBABD~XYhsn8VU0PNJ>WU4B&b|@813Ucq!ICi0VNgvv?{PwnMfc z{_+3p`J7=Y3^^(aew>gP at yihI)~xXyOx>d zA4b<)TyRiSoFSUL3=j;_HyN43WuaP$NSrWbX<1nzVPUyj zf7qBuFt6=d0+1y1DOllPN9WIzm4-MFTTGEy?!lkpXP~4R!E!~~cz|f({YKp&vHNv7 zRaFl(2!s3&jK~@69hhnGVv5nYGPC{Vqr8|H;jI}ED?cl3_=1L@$U+tIo&@D{{I{61 z)bb>9duS#@IVm81j8|7!e{U<^?OO5O8N+R~MSOyA`0ESKqP}|il;Bc&o&%y`Bp`*e z?e52U!^41JA4zSneo!&u1PoVEO28;CC=^<{P{~*p86rUguczuKV5zv{^pRLBcrEDd zY2*ET?!5W#yy_e%cG1uvuoyODlILEo+%uA*mXh#blRr!t%YMn;rmK{~qD zyL#SVzkZ>Z6Hi6_4tQYa@{Rd<^wyK(;}Gxw at rKGPGZWf=z|PPM(sH8 at A6UDqlntU6 zgg45QtWoUP>y;0hAsc=PaVkSNT4^jl;sAxqmviBu6%fD)Hm|ZTTm`)_I<;h?bAGTt z6P2S&DlI*p+(DWR7P8^+2?>ebfdL4ftqceiXlBGs at 5SwZH-7!DHT>s>pRy6YfN1PL zxFCM~u#T$c9Q$#{{_52W0!*ksOia+1VoYfe?_ro<0>e|?fUhe&F%)`PP|#$=QgOh8 z(mn#ULcL}8`1R42KT}gkp(b#3>w>ZzN&(6CfB-@$h?%Ie+1L*ryz%z?)BR|a;+QNg zJ`N3;>+6$HUrozXd~bO@&;KMoQq`Jh6y6NVRCuxRjri!w+(1W$r4jx>#>)at_P(dj zo>>)t!BfB|6BQt>XX3-0cYKd~vaZ~tr$uoZV;VKs+Z;3ggRK zbTB(qj^?)Iqlrp$yD(&yq^d4<(a$@)4|^q{-m)sNFfjqqyRhfoWwg<&k8uDOsU_gb zY05}R0bc>y>S1YxZ-uFFHw|Yd4s2;sRB*&~gr%=?av+Tlnu5{@>l<4ZpBiG(2iEpZ4&fN2Mu+3M6ElzikFEMk$LtiW#aYTq2fwPOO|vu*n&6 zDvM&#_!Hawz9Ex=b%Bq6Zk0XuNmiCZwvN7m0kW6c+BB-xFh*|IkS{biGT?(E6n>E) zB_#SaSuX(dP{Uw_n%Y{dPVD3H>ubmoMqW%uhq4Cl1uSM at 8FR{JW*Hz;Bnch=S&CM? ze$Abv`NgTMV_Z;3=$<;S&P1bKAE+SSK$GAX?A|!Fg732{&SQCg;5IytB5IHV&oIG| z{u*4Vc$dPex&VQ`4-Vqn?IN$AJ~8#4e+Xb77wnVXH82|B?7>LmI0#l+=&;y^yT)EJ zZGGLl3ON_+yCOprg9&@^XSe43Ecg=%Ia)tO-Hd?NxV;_a^saRUYR6sjXrw*qC>j73 z$C2wn$96H3ZGyugd3pTZsa69dW5{}ktpzz-xF7zcp1So1xD_lkMwoxp->=-RPEVq$ zi`72uZeHzukvm at U#EIDG=(VlwtNkyJB()FkY_G7ei5>-bdrwv_6GIc;+W~!!Znj2j zaJG)m_S&TMn}5s8sA_RL{x`4cq2~|EK{DhxUXJ0UV7q_7`IJfulPdH$XzM3Z`3PzmV1j1C{qNp|^-e>KL$aWs zt;6X+{)AbD4`nET+ABUOCt>MGNmi@{4xlSm6h%5j>UE5vS3yi|;s+jinI6qpVzV{A zY5%8BmP=%ku|kK1&SD8#j?w(#*B8a%%SMZ(L_l^bj4Lf8gEWIo)#u8UNthX~Tp_>P z18)vUMo0cU&&~ZY-87X`zqkJtFb*2|{`zu!+31YDPWT9Eb!jQ-7|&*M{GPD~@rj8+ zm&u|=S-L3|Q99hj?T>oX^{(Atg6{kg8o(lP^MG4`RZ|8|{r;^Yb=c0&{gA70q306; z&1 at b20hCLD*AkI2OlXY_gDMloaKBN&e$0{o85hXspP-A&)*<*xx*Fub>Ol=(=>Z;K z)YI-UQBh#FQ26?s&Nw%A1XSileSLtV5sx&_o`vtacN(Y*L?^2xa%%TrkbmTWdM!f_e@?g$ipJR}6v!`3SFS)&+n4 zh0;KkJ&VR!965IFim4)B(&fFgasJaoo=wdLiP z1d{@t_tJ)nSky$#V3f@%wwTEMA^<1xQ*(NttDAI{E-}7#;X3~(qu4`YSKc)AH!(4^2v*@h7wT#>5}B=oOkl*{BzFW40M!Z!4YfKtwctsAA?WJf zOc|%>L$qg5t9W^>Ro<9Hb at U*bFb5YcNMBJe(RjW at jgt1CgnRs40mI?Mfp z~a3g8 at VRd1tLIv`1HvW3B`+jM2l!%5`8m9^0R6$gOm5(aO?jPK(q6M8 at yBIS- zKR7ZwOl%29pA%QWv4Z~G?Y^UnOILe4(RCDA^xIznL at Ja0Flrbr#3&e5y02vRX)K5Q zy-!F=TAsh4t1EW=IIcg-*W3)@_cSkKNB;Q(3J%5u*R6*AxG;$bJr5H200`ebr-X9# zzI^&rQdkJ=XJTRkL0Wpxn%w7HrExuLB;c*H(Y88CZTQpxIm4W*Z{N^?gQSL54UT(# zL9`>yV&&k9PmY6`!ySvfhkh+>ZL8vH;IXdKpZohoOe+X-ShKkCwTS;VG=Q_-U)N5~ zLpxU0II8}n7ytPBT@`M(j(zyA+N2t8$2L%E~^Ey4DT+`TW9U+8yDr zjgOK4Iibm$fM-ztZR_J%k-pELL8c57pJr^Zxxr|rCNVDoilWn!5pnz?V>#>iyuf}_i(YRvmKJ2Ws* zmkwJVet-+|k4_Bx^g5UOf#rZ16Mlj0 at 6NT}%g;4)*Wo{cJMpYY^<%wfzKiL at xTFE= za0U(ZHgFPNs5|W1(U1 at Uz`(s8C-#-=F(3YiroMY5It@``x6`wwRDj+1(^bT`$ zqS^hS-8Rb#7Hyl;A%N&t?8%;g9PCj?BvUf3967zyMMluxZDb#ooha at oz9c&ksKn^c zLtWMxbx5*GAkO-JQqoOV*ElVH;En!AqVYhxOKWO;-Q9t6kQkqsGAF3P%?Wm4q?MA1 zwj>hZjLnfv{(POHcBnzesH>2W(5FwIvW}vKmn9z%8Y^iZb%o>SyK`n{ zCi>^}wipnf>Q3^Fr?#6%`d0>*#2pAWD+`|`yoNpo3b=dTER>?F!zK(12hv#(&|M*0{zhmR%&v7}{ zcZr9lj6 at M#jI>~KQW9!?#Gk%J>MksGz-}yd*87p9WL+sbM=%TN4Hmd_`E4j-8Bc!| zqB<=j at j(Z}DV>~X66JK#X8KtJfp`E}RC6?9Kq(;$B47dDL56|20a;Hzvx=M4> zkcqKHTiv>KB3>O5Do>vOVqNfHD z5)y#2(l@~Zul^LbPW%=wq`SZ9e4%6Wx_0eY)d800mu1C1d1fY`Gh_7GylPBxdm;zH! zcAjQ*9r(W%02^ON0G9K*%LPxLLi2;?_0lnA0cI09Yg18C2RJUfl^WDwFj8#4o7qzF z5OHBBi at +Jss1bZYbR8~bXpIyON9}0lzJC6ks(cihFxGCc%h?M%AZMlz#4fg4Q-beIk*+N1vNgTR3gn;1GLb+gO_I+z( z1 at b;vv|L<7^fL*5K<|Y36INxoAuCO##R^`&eDfWFlHQ!l2)GWd0?9a~0VVLCp=u18 z#5eHpDC at MtuR~ArZht(&r9NbAWTKG8L12)NowViahyU2vjO}^^**NQtZXp=KR9_zt zbi`x at H9H#{X2d-Qh7TNQ*Wa#inBYpQU2*+|qvbd*gqY!n*B6BQ%ooPj5AWaO;c{$_ zkV8}ket!GsdD!DOwtyzFMo(O-T~C6`=ywq!QyyaMPkTGg9{AA^rQHrUA9BO6 zQ4n+fer!P&1~3#fS!u|=qYbqwHQsgAJ4&WOL4}!7V1iS%{!OI2tozhFdFYL8vnlEB zJO3Wn?{03-3smGN;6a79L?1+fynns=_KMCDp2x+D`#yM!M${W%P$+&H%Iy8Tp=f=v z*LP#)kCqXk6~~|vyJGY{bB$8uOv_tWjU>QEjcHwZ+LyG}2j{DFp#PN7T?h;qpZcAu+lEWPDNZl^Y5v*okeS zjz_JDIeLJfZ0S*}OP`VRUP2kgsea(cuOAk}VFNb0oHW$5=)Pp(7l0e~1CS7qgaPg-$X_4|xWOq8?!eE!UA z at Cr&aoGcJXYW>~MwjUG^utBVNTy&dsbdRfv6&tJx-qA?BlQ>65^CeSpr?!yTQi at RP ztW6d7{43Wb!q578dPMAde+T{Ap7(#H=HLKlC=hZvIXN{K;AKsBDC7wY4?;k|%)|tJ zXJZZhhdlg3bkyL&fUbbne7cQx5q<&iCFtMZ#Tvh8X-Vp|Lx9FTo6trvIXPcfSN~%G z9SBJYq^gnrJnO-8A9d`0svE+|NYFsGF-EBr{L>wWLkeiPEc+Q7Pc)r6zMK*xBJfS4 z_h+&w;6Tn$vo)w at 6-wf47%(u9HEIWvzP)_XIZ)Ta&H*#}83}A+P--P*s9^0Si5%*_ z;{^KoUsBV}n|J|)HLxynagtuZy0DT#AwKQS%7`iTbldjDUm*KH7^VvMm%%}-yr-); zwzJxRsyRrefq-0{XQ%5rkX&|Cu9yp8N+n7VgsWK@{&C1zxRawR+sRe$*E zoZrp{dL#S_Od2ZwVwp#>)w?{?FXqLQH4Bjq{yI*_kOMl}hzyI<3=IjImQd6A_#go^Xqf1*Jd6r60`m_b-5LChG6b*OmrzxAo*FX* zg_seJFseg*vs5z|zCDcTY8=G|l~fq0wjRaa!D>TXIOropSJ;XpTeGlGC%^B{@85VC zk~e%xfU>Yg%}WLr#mT;dku2X6t|e>oaG_$y(mLd85J&o*19y z-8+ikdB|SHJu)=~P4L(lh7%zQ1T-EjI_kX7U%bHTQN2*|#i_6mFQS3WB)>0^ z7@@P-tQc_zQSJEkdQ+JbC-&DDo4J}`iyOoujz zA9|m!l?M6Eu|!8HX;7mym9!V}aQwOVx|dLUP|&@bEP%(LQ8xE at oH zAu>FH8LhRL?}+pFojnT4N>gVyH+%^6L;~dWf*=D$5u&pmP&%7P5WhYyP_?amVU&OUJ`vG<}^U& zqrd{%nS&6|#5%Uwn(*_h9{adFtVT}RyQy990roi_I(RT2xz3KIIQKxyGDluUjgh?T zgvx`ALvZj6-XjJdB9J;s)9`4HA!4v`D6_SKP1VeGym}Q%BFrrV2Z9xFY9KtE(lr^; z70uSrC&5n*F5Jh!kTCG^U5R$|_s`QM z5W+O=&d$z``)~KI#sPy at O}et%G8d8lXT<)4+-wZ(si43SYd-qIq#VNq7|+Z0eEBkc zy%KF4GEjG2(ZyeU#@qJ+dRxrg!AzA5c|UfM+o0dLX_=(6t{Yy1)3qvAn$PM>VO5n- za)+XD;BS9U3XEd$cx!QI`69xBBw3LhKudxeZvHV+dSF9>sP9!)XoIN;zK-$isktgf z+R*RLD+oU*=$)3^UbQJa28D2p{39QmHMnX(e_?#b=0YpbJDg1vDDn>;-s5#tifqO__%m$0=P=VYARqu$Jp`}2 z$*(fny->g^UBLaI$<29=*DrvWe4gZ3r*nCKUtj%1Haw+r@&JTjRRE%JR2u`!gGICU zxi+HFrB4XbH5OpvKFIKt+VVc=d9;oY_BeU#S^=^d`ANLOPU4WwMnKi-ch4*u8aY* zsP!3&s6L#`z{ps6{f*TT#?NP2}V$jheugn9$9N7 zjHa8v&cw1qezO$&{ks|3;9z=HG_MgS`G5gH0X{efC_yS6Sqyt>48-f?HuAle!0ugFV=V9=i%z| zpFr7&Oq-t=MdkY8X+Z&y7yCH+#D<8y99xZ{bkM==x>$5|t)$X%J|WD+!s1q?DIPW+ z)vZ5+ at W!UZqOyz%#ebD_!jv=Z-k>*st9HW-j|6#zHzzLD{7r(I*p(E-D#jRXe+AwX zD|LW2^u{sfj^WMDVaemiQ?>H?E&MV#DKMnf)fIz4cavtIW4AB;>bL&HuYn!aUZ0cH z&erfwwegE>q!i#jKsY46e5%%^SLV2Q=-6db9zJXlLsW=Wa`_p=?4ux=%P5pfV_JK!fD_jGpv6rtqmj)@^dzXqr`_jm#8S1oeUKc5iH9X6cZrX4Pv4Y*Bbq1-AE0O+ zVZS)&p>?sR!8?L04uvU-9S9F#lU3G%zR=)Vg&t!#$zV9H1xH6mfJj{#r_LnsYED8^ z;&YBAkwb-BB1LYX4)jL-dCqxMGPb|$6cq{eA~+8zTB`e9hQmTc#03w@%8KwPo1qvFCBY{l z&V${@xF<;aI3{cHZrj^6f$S?&zHX at Br>2UV1|>Lz&ae6#8E?6{VGL+$=R|z`uC6B^ z`CU9thg5g>X+eP&bc;>?9Yj=jE?!K+6_ejr=pupims*aH1f&aBR(d%&v{@Hnqz>vT z8ZnSFpyh4F at f+d%!1jUQB^=p#2KxGS)>m)bV6?y)h|~zw06;oWY~V=Z)o?5|#u8uo zV^;nR(Hany`<$@K@>u(OxqDHYzZWe@?%CwJniHv7D7 at gHMO>~IC@`cggP3MB#f`k| zeFvYm+1kk1*n2d1Kh&3XX+YbN4>&SXXDg2W1Lpy-%JL!anVy_8{V&aCrlu;u>rPEQ z)#5+M!s73IfM-8%JHg6>b63#H;uHbMGUT(^iCZ2N4a`BGY{juC5sC4Dc;?RIl})7J zICyzstAJMiWH0&7Z?~DnBEj&s^iHxl8y}y|<$jAUJcsm795OfpT&fmYV2~ke3J(vT z1cW;>LNMiyuAIRPT46-{^- at SWSzn43IeWl325v#TtHMVe6IpquU1HabYc)QsMyZmM8 z$cg!w=FQlBb53*ZU?$#P8?1A-w|jtcai*jnQ8;2t$;6|o^*p}M}1x4(N5E0 zd at kSJaU5={Ni|M6J{Dv>ImxSDtj<2uME9Zf4Akj|HR;8hiG||R&zZ)sUOW!TJq)hk z)-p3rSsEMNi#@i7t!JSnou1T2-|>#y!@M4{Yjlr?q>nh+#-_gD3h^{+h`eUNY4xcC zKilW at wVYSn>PdU3pI855{Tk?l{~XEG4&!L z2PjRpYD5LR9RE%35O7VFu%poMq$s#qO~`8by2`6^d-98Xe0$bUHaHvB at P1JDw?3?= zILRmG5o&eMhn5to4I^YZZbXU#e0MZDx}bkrQc^I}OctZA$)kS-D=me+bi_;6MJm%g zLOhcy9Tol->w?v*135$v5r=v*p*_K1 z&Yyp9V>&knE)}Zt*tYFyQ#;hLM=4LwB|4&9x?vP*d5I6?onDV=Kb}2%KWNYXyFkBK z6npFQRg9zikM3ro4?xP-u%^4{D)u& z3A#S-H!^bSj>JUlp#SsBo1XOh?!?`bbafe8=Cf6R69AJ>49eYTe^_bA4k5BFrvU z6Zs~;D*0D!LeIvGLdURhaLWJEYMB-Pl?KMG!U;W3)L(;us=<*&?Xl|zn4 zmwRC#g$4ZW z?H0-sfAksKWkev}fhBt$-k~8mE2}v2sL*N_-%3wUtDz;uGc9ilAM|#1e$5}Wvem}E z%POj>Xx0X`u>2reGvJ~^|5wsVG6tszOm;tDobCUzF=+rvOcb#BLskWvvrpg?Hf?Gr ztC=u9wU&;Qf+c}RmMvcVgf{T%>PYy{y1JH+AK4Si?em9Zo&dS1X6ofto&j$YyZqk! zjclJKOQuemGzki;VqB=DaN_}xZPf!A)76FyLE*@qbk{}0uy3DKs{~ETOiR*MJb&>b z#U4G`gft#4XrPxSjyu1;z5**iH>0kbPIs}44F9Dk+d0L-bzvW$%a2#1B(>A3MHh5T zp1Pk`;vjsZDZVJJ_~^z7F at FSmMk5L^7h!x}-a0*15W2S6Z?-p`A{x;60()asC?j6f z*mwpPm-O_<&6^EYqwW3lV~5^es&d at oc$t122Po?Tn~736{rpVF7PK7#*c>}x%Dri9 zAs-(X{kZMM at pf88^Xmn}&1TNL$MT||YgUTozRsz6ZO~WPq!K0QMcaCS{o3jjE9kiAUxd{u^328S)nf+f6^tLQ_24zvu7vquwnNYR0}aNXid$(Nq1; zqs+&rl{O)L)dNirP6Jt+VPd8}Aqj1&u6VG8i`IVz20FcmR!Yu1Ox5sZ>vD7_>5F^m z<+ThP#wXBaj~?LC@;l%f9CnG1c$0i*!F8le+=Zj2#m+AqZ#eI0PAMoTKtAM{{shz} z(VobO-&~ECKxUTNNvfWoqZ4N(LW at s4${K!`a_b-pIvJV3YmAc%ybv_)!qd-CB%O5c zGQ^;{!bJy+5MECA_`)%dNe3UTW>TNnQ1G*Y-(Ua!Zf~90$1&vOXR3Cq+f26>PNh=f z=z*)S)?iV(>Zz*y;~_16&wb>YlrV0IJwxd=e42amRr_ at a)k^9I%*_S8zvr%C;)3rEy?^QHuB(LC&6_!s*2XPJ z2Xb#_d~vZ{C`j{_k;c!MK0;Nq&NM8P+!fkk; zT^tZ#U{MGaRf1!Sh?Mviz`@kovWZk3mTN-#{!5T8904izuz9maR4ifYuA7g|Fg3O1 zv at gDS17fgl^=h|^<_$duj*9zyDVTxjk;He>t^BPM$BqrQcu7!oeJu!YOT~Qd(*uVN zuf|KPQ1n(j=@v5KWy|Pr+G{oD^;(8|=qS^+K76sR>H!dFPQcC`3l`K8S#B2M0WkA0 z>!!EYVCRF3vz4|aXM{bapGQ*d)H-WEJg zq_ekf?WCdsl=HqBJ9O2WH7myI8yG0lCuT$>i;Ip9y)t0fuuGgCO8Xz5w_Lvb4T2}z zl!sIc&9$k_he!0$Y0gt=bHHQ-TO`=Cj88aBmEXUQCPGS1?icfX>rh585{0?}0w8h~ zLKviqBNgt|*Vl8V)z#IZ_a at P7YH1mws%m6l00xS1fSKhh;4kS#rH|QR!2-d9va*_= zv~U0Zri$YnQ=)%$UYLex*NYqb_c&=C>86CGzn_3cmdqrh2{E24SHi;d5f>j`Iasxv zor0JW+rxn(`PP)^HfAzUM->mHDWZ2my)OoG^;LhnyEiCc8MR~kc8=12t*l09YfF}? z944UAP8eMZ#pCHz!&%8MO at ngrX@$w1>OSy-61x-?H?mN4?S((Uq zd`_ at 18a$r9d2?uTHE z`u0^(RwgJBwS8mYgt$6Bi9s;@rS38hjN`mfPXMNA`EK7%6^Xts07~3 zJdNl?(SFsVvTHc#sn550H^Jz^W_g?sVh6P}=C9>&JiWx4*n&I=Yy*3prF+VJ2s z>_y|e)21q_s$ddtMIKdGt4G$o{`QoVzdeoSNMvlvux+5SiQVHGZ=k0K7KD%# zpB^M-tV=B|E&1F*N=gzlLTUFse*AfHv6#z0FsjOp1-DYqzJ73g at +fU>jQJ^$LBUMq z(~i4njTkA at l|}}7&ukuhLGPfN+3t`Fh<=B6cwp$|<|bln at Z+)dfrFjL#QMAp#J>&Z z+16*Z!j>gVV(hd;dj`~BqiM|lwvgAq<{NvyzwamVrhnDJWjxLXm6MY_4|4b(JXrPg z^74i;4!!0=V^7A$>P()@oh&pP(B%f=NVN)nc;*bw*oTiCLCKc*x(gsc^??4iuTHGz zXWa2XumD1};bu2%l%4ad!5ZFr4KI65Pmw8~}c`8Sr5r6qp_ zBYC at zEznj3_MvH!;O`a40cjCz{=jqfYN^Y4e3J=MJY^7SoIfio)3dV&_MJ^)1GYFn zTzS&*6DJzQi4bhvj2IQ^vYSiH{$C5QCp&u!)D(BDB?a~h%u-=*G8RvZug+(`W<_mks)DnpsYp?&6yU^tZ^w zRu2!+LF1Rfn;_C48MM~u+qZ9G4c at 4bf?U2!b(Z@*g`+z&tZ6J@&y!KBNKYqmTQ~+i zqZlMoAS)udn!dhKqf$||N{EXGYEw9brC&}-8Tn}Uv#v&648~l^7FH;{wb{}-b at 3@+ zZ(IL`m+hhso&Q;BxmB=1vOn}`kRhe at IFq8W# zrYzIlPcqO(L at 75xNXD-{O?VT>4 at Vz+a!udx8DCmjPWEhPc|W>QAlR!11I90-6)32K z9DoxEiui-*Y9IQbzEUD-1lK<$HC0wqn=wxNQCitXiyxHpw7GzdLJYZyQHJ3;d*Q-M zO6iyw4&FeYSi?;awl?OqR0DywT`SpiWEJINWw8!vK;ovtL50Zr9lD2Ts;GW9N)G^Rv2IbwiYy( zAUyf-Vb9ee1J$a6!Cv^^rY5A#7mndx*!;rh;L*Pq7mmr!%WstgRWDi?@xy28L8oQjCdy zuCD!6Rk`yd8XyO2SFC9F?|INW{K!2**}saEDa5AzcY$hHQIf;Rx)IV;U|e~rt^ED zsY3yb{GuR8Tu2KoN!;<{s3GZr;jlOH?-_E}Xxz9KWHp#6j9q-O_1CW%f&J(kZ)+32 z(^qd(f_(Gl9p>iwlv|wT{+$hd#zc4FuZv=h7Rhl>j*OazwE}Ge0qgqR_QQ;4Ot!6N z*VkL$L_|cC#yJL at 86q#A at 1hfLyglg2#_p~kBfs$3G$S4= zwOS#2!Nh!!f`Ee+mym#Nwv7$7gqNH6Vq``N0nP1 at eH}Skh-Cx79?&!QaKna4%VuZy zB`}{k&GaP%?`UZF12;TyG%HvG5{m6(=~X5cW?Ae(>ZV zOdcK*Ro7x-28~fI6c5~P-rKKY_?{1lryr>*&SJ)=`UxV(`9AMacGzCEoGvB3)OO;A zO`AlIs_jGaG>gW}{k4>SF6X)jo6gw<4sVr4#y)$3_&GaXJfPWw{Qa&D9TuiLEA}a-*B; zx^=SZA;H0-KIXQQsY+0Sb2h2ZhPm9;^Y;cKH}h~h;kM`nkx0wmpX^bQaqSxYod~Wn zE{euKtE)4fGDW;dM$e2pguP+xUjpLhUmP`#LwOADO^7boL@=ers|=@2d+Xi${X0D- zq=&S3jo1xQArLw^V7!x&W<7YFo14OrA=GjwPoC7tdvNbwU}fk%chLIt3(q50;o4i*qUUacc(~fWx=;l3sJTxp!bn5}Tg8=iuU}V<# zf8v80vM)6`ncd1>22k-Ml;8S z(V}dRN>wS$sqp2PJGbia$l2gbtaC6kkczQUwsYf+_vQ^QE#jLKR;RA36WFOK?3EpA zWSv_3;H2RK2L}aJRn`jTYi=u6poMdDbHn>>LbPR~j;ZOekyEBk+lls<0IaTOaUFxK zUoFpz+%ng_x;au_GVjmVX-fN}Pn at 7f9VfQ`ggH#cq(8 at T9GhHG3ayB>bulpj{Po0? zHSGIS)3#9|P%2AbUwvLKxIlZ%7((RiW8*lS&69bqmz)@q;qI|=<=(rE2yPi4Pa#ux zdnb0#gl2=`+yjg)*A479XoB6$nY6oij^n1TNDJz_+uGXN*?HKfX%%1P-H4L4URfXo z552OWe(_(4veo%T9Ap8E9z7cEwQY3UuV0=z%J8Mo>_FLz0;VVN%*_B#D4F?z&vuTz zld at IHsG`#pH8eCJ^9W|Z`Td&-_oi!}V1OpR>VTaVMP<;Ufp63fd_g2iz3%(Ur-1 at b zR6;h}4y2$;NO6{W5a*&yrJV9-5;#sO&gs>LXGsXa#-IIKeRtGD)%yC-7kv)<``lo^ z&btJsOFSD#N!ouPGPl$OAjM7~H&$$ripuK9Cwvx=G;a{Q7M znGq{AmrxIm= zJIB%ipUNQFfBq3{SfrkB-zKG}({Q}^h!rEeBFo$|Jt|LxJ_1~_=Sa03_1ZgsXp+&2 zDytL+QZ3V6T{v!m^dzLDgyy|2ENpyRdPpQN0k69I_xBaJbpH7>&(6-JHo;z-lY#v0 z;yl!x=(KaRKY#l4{r6vLBgg$BqM{VIK9|qjmFdV4SP7fF$I+Ll6 zST`R6ew32J=Lqj&j&>pjQblS`x6D}9`|*lZwPzE>X(DHxPz#6zx at _L8_hU}03?vqO;lr-hNAES0n}8WPqMLRc=O=#UD at 95CbA8AKnVX{N1n~0;v zu>yGP(4nMa4I^QmQXZIC&mUWQiC>WgUN*x&*K@=p2`_TTM# zd&n%|BUXrtl47y>#=flyl&p8%P8n{RuB{kvu%Ynj)2U`=_$``fXf#r;(74vw_EuO} zI5x*s7XQ_2-p>{K_b+H_M~d#}XRNcD;?r7vK98O?ee at s7lnc`4#yX#Z)CKuV;~U@; zbV%mAsf-9lkc=F(5ND?!EYJ0wbmX4htXYCK0|}%S&bPK6c+iBj9nho3dF$4n*Veuy zfGApH{Z}9y{8gg3A47>ojj9 at m{6k@{V38>7%{T5VB{ggA+!Bj{ii+soh4pbS3tx30 zJUsuvJau`p_|n?iBb6T9B^pKhiHTs81O+D%Jm1NQj>`C$n6S2A6e4_(P6}nW;Izxk zJWd81S6MQ+|Kf=uN{Ne_u{{MK*VYz_RQa$6R2^@3a3BG6V6DO4BYnszN${Yu#V`jq z*coxsoz{1}MC{C=xD_EoX0d+RT6Y zOSokt9i8f$8sQ?v!W#&y!4Wq|)a!#fB`7Uz6z+58&K-XrANg_WKZ+$<_pEOpI=|!b zIQ74u?%2y4e1h8l;o6$MOZv at m;D-Qk9|SHE!VAZHbT3XrILJ7knjaT76{}Z*3j#Z+ zs;FT6LFNlP!dEsg+)FYCCC&CYqu2kwM9~U=|2v56f^4iTErl*&ixU#3xXIr!XHvSv z2C>ZBsH~VX+ZlNxF0PN5Sp5=WSDQ210m%{HfBaZ^^?7(3#w$L!}aX!Mbwos zG2EW%*47m#rd+sjgR#RzD5gJTK5t=j^56j)5Gs89=+*ge+a&mNu7I at 67sdTqZ~d2u z?~`=Ua)yUXQXmXF6m$CYdaQ788ar at +tR-_?a&0s2^?s)QC~?2M$YxoX7uHKmHZ{eu zOAtcl*5&Q`Lpe&qP+FSG)~5VDmOv*^_{7X1z!aS8n~iRBmo=gc3=BfT!k`2h)I8$w zH{zE4+B3D^n6Vcg4y=^+jpY8G7Y95!WAzW>QoWVbsCsB?EOYnYU at 3O(3bw@ zHX}!kdi$s#wkE5leRUaND%5DjERA4ZK#!( z*VYE#xlZ^jY7l4+s4 at oYd&d&F9mgRd*Jg3gI}K%i^Je3|{01NAT;Ji*v#zgwN#54y z&XmOoo$<61f|=q9J}X66If5?_Jh}FDuA!!;SVtuoA}LiwL_|KS4Mkxhf$9bZv6UWg{Y$r-r`FD%HOptA(5T4x zcy4q}m3m?PgC>>}H;^v|LRe8zfvq+z2xFpme10-M(O#KDMp+pFJOLZ!4FWRl95U~( zu_RgF^8O$QXF#^u&Yv{ZNQjADbj;K+HvY at 93;2m8BVPw%2olL)8VOxY%o0)qTU*J+ z`-!V4B#Jbu1FHv0V}v`|5F4+&am|qQ;-b{qc at pE-A1 zOjQ+>jssu)MirUY&z9#bbqZ}>3WG{6hz3s zhcckf4q3X9KYUP9RlQFyPgz(x0}KYd7*?EsZXhyJe(cx_yek=&>FLXhf4%+JbKN at U z<;xlWIeby9{#xV%!Fnm+c2C9MU8+~NP#t^v!R2%3 at K1ErJf{FP3CB;BKxLs^u zdRZ at Do;OYjob*g5tK-PMcl7JwtCcN$O(3FmoX6MFIl^*y;V&EZmfo^{2b?B^m8M<2 z3VnE$T<)$L`QV|5h}PeK`TFD}V5zBagHe$wAQwNkU_2$WlX8j*474^z+bA3Nho-Pjo+CXcWwO}x>~sDeS^*h z23mM{eAqW|Y}&%r)B)A~D3thpzRQdQAdU<;9ig!xVLwnM;r`FhFNAO^h_Z@`I=c8` z%6I+koP;6d6?f*O0MXq8hTOXsR-CgE)5i;o(;IyZxElKVAT31?OmA;(4NwqmIe~(R z)Q67ajW_CGJK!#o#l<8f&L$@l7#FUMkc4Afa?!D%!3VrQv%$hYWR-`Vo%HU>-bY9_ zXU9xl&^a`H}~V_9l)}WPVMi%^ZJe{6ERx38j|jsrU0S@~6tQw{Zf?t$FM*r#Pdw!!1AoxKQ~k%kyK7P9 z{cSx>7RGFsa{yymM$fhji7?LN&94Wds>Rn0$1A`1TmJXQL>cX2ie3J~!!zFHi_L_C zKV=-8eeJoK+`c?ANj?P>J<1mI5- at Pb&6qgo_q3<2lK+%%8KUWYHoh9(bfp216L|LjKU0FLZ;sSuk0E9FQRdd;HrY at 4ZV% zP+zzgI*uP;154nt>Jc(P!2j*z$JQS|LMJP!?E{9zOcn3nN9p_)JKAv52MR&LGIevJ zJ)D>-CnoHit}c`)!E_xKCwqa`1WK(5F&6~jh$ImaPB33xU~kmgnot8?uoeY9_MTHt zl)j}479RzzBLty=QsQAnxSn9Lglzvt9S^Xg!j9;{B-xiQu}pM1Av%7Hwze0^5x1e` z>sODf&!MS_s|)Ig$oyfP4#A99@%diGRF^2*XYdZg4uyGH2AX3PfxQK>5>}Y+ilY2} zICdC!_YWGa2pT}aJ_m^lGr})iNHXsd`S61}*aK9ysa;OZl(`q=@pU|76_w+__ at u?V z at s1OYpx1>*k>m80vRhoFfIgw&4c}T?-fg@=gLz~7 at 6v-qu^Q&?foJ>ZwEO1L55N}g z=-8ZS?+a7UT|v%0P)W&cUs!10+!j)7YHR2c_7ukidrEO}_KwmA59B<`h?LdM9b=bV zO7JICTSvdia21UW2TD}ft4a8x82VbrDZdWzkp#-Ww|gq1UU7dj0=5Ed{jL2RK#-_L z(xv!%R`zCZki*l3a^9GIELCd8m+=Q=DyBbB8# zt6s}t!vO-2gOiGqD^NxA2d2kHT|;4&xg%q`u(4Wrq^+h*K!EG(yB$Jt6Rr}2MB=C= zL{R4f;DL;-d&a2Axf}K_drWcIduOi5mLI)uw)8INQ`Hl63xll|(hieh2$t48gRarP z`RHxu1m{zR_78k~5i8vY=o%wt?#Mcy#3l!Bb*63toF^G#*Yf zVh$aW+kf}O$&b4q!+WH;d>blT9i>D)R*7`Kejw?Bxl*1KQA$T%@;aDp?h+_l(p8CV~RK4W+RnNA&tSN|Cs^W!9 z*e_%*kwF?GMg)pFX0IOT{I})#Rd558`12}+sI;cvD=X`4PCX4O0)_SNojdoMu*Fy6 zHS1B@?g@;JUNn8WME+`?HDxPR6EPN=4a5M%nWUXgbgo0tkN)5RSR?Dy&$O2cWd8j5 zoZ*9{Ld|;rZgO!^|GSud$2!SzwYIS_ at oiNnTQo8{QPhBI0w?*183%z*=m%gxNN1<7 zMDT_$FQ!D=ReGKy&bMMWi}o$rvCP8*((ghEUJAvV*|*t6X)&}*Qf>C^Y%$QDABGTfAKz}0{)tcRPq5lL;p+7m#MtSvYzpTqO>1a_-*rLS4!SOIVl zbwxx&{*$iG={FnIr}u1cJ#8S=W0t7yBV=xS{?~){iK=2qe9-8IicD1QAN{dwLyzl9 z6CE8LBO_c#=x)Uq29{7hT;|JwD>^eZA3_91$dWKRc99nWy(teK%m<3ZA!YH~BD;x} z<4$ezBo-9g&1Wa_2(Aon$o1>#Sglv#C-4|Fr-wUP#>yIevU8Tj8vU z`FZ4o4aPp8xDgT5_ArDtQ1&mj=I;SjhMXF9CM!$v}OZV-2?!pD~Tfi0mk@=w}Cc7B}H!HkH<>@IQ{c0A8Ws46o%yRxh-f2PoKOQs~XZh|DI;~8IKFg;ig zmcQ750Y|9UK&fF|4~;!;*F!@A6*%#IaXP(T=h%D_vVY$A_cEFz-gFl-r*(8Z4j6#Z zBn3WSw_olFP6%&r!C3kI`)i*(kbX3?x!`;e;d*;4}c2-i+z+0oUps-qs>6iAMo z+ywAs;RG5b`vqmvy3p|H(=4qchzi6?S5WRiS$?`pH-hxO^>`y84Yio|EO&c5&lbZ5 zE32Zmx234V@`HK+VS�K13%6!xOr#VIUE z>7PV<1gY_0lbV_W(TTMNL4572n?LwvK#4KYtD(k-i`U=m7M(tLrWW at cym;2UdAL;- zG-e?>89!cT&2TWV&83w5pb^9;!ie!TfA%A!9IlefB2S+DONUnQO9FW^H~5rk`0r;| z)0bthrfkDZtu(lg9ApxwHmJgIAImWl=c4Qlw9yOSX#dKutD|qCk;_Sh$iPMPZ#h~8 zc!{T6$;s&i&I4yDd)o5(Gs;(DRj{^_e~8lr2GVf&k_`2>HZWS+k46uHIoi%&>oO!w zjE#wf+2Czc;VDtO1N$r^@BDVBm+82F!M%Ve*?SJ>II$DN4Ty*!*8PhmHM5~N<0?5$ zyqM=e*VbJ4@?#t`R$;QCAt5C5pztmS{QrEJI?jcsfXfF5AnzbJWD#6NWxfb5dZypNVPPqd4RGg*CGF?=RY>&)fCe%eu4e1Q$nb17| zI0c%3Vw;VE4htFwH$;Y&k*z1Eq at 45j3!j#MD7y5mjGWxWrB|$H&mKE^^eQ$z+^m>L z!^fJWSt;LPlMgW at EKY!bO_(_G^prKnNX?fmJ7Jk<;8QOYW$VPE1RwNO;2dDta+V9Y z1%3UWt*t`pt+Zj4?i7?kpo>&rHeOpWAjag-w at m<(2M1d*A&%bC4|DY4@y3p-$4^>)T0! z1%V3MkINkd(~>1D`#+^>{s=sGFIx1NH^L+DSTn~4=ps9aFkydx#T$9LYhq(1#fBZr zs!k*w`FiijD5PL4C={xg0lnzHK5|<*aMYN<`Ah zSr=BBt=^lu>{aht<^0}*V)@#3yKDl?B}e}RGgYn$ko^whUR+$vtM8VUUUs^nYiwM{ zUPQ5AW(3H{i3w7?vVo^{Ix at 2L-Ms;tyU49D$Ivt-hlHBtAX_ovkWCN|?fUg?9Hk_r zASGNv#-dB-&)@X#?cqL3t{6mOedP+RK-`R7=wh&$a5zU|x&3cv+u1pB<{^uh^d3H} zfW-wFdQ1#OTOO)Dba7bw5DQr%NEz|>LON7bG>FLnd zoDR*LhB_t_ at p$u;dMN4?g8+M&$&PoQKAlfV$tLFe-QP+=k(fBivucRnS+u3hM}uZy zVnmv~HqtPl=!A3UXkxDc-w2oHL;(ia7HWy4_ALqzZ*M<3MhR1}1)wC>vC^`#g_>LH z^M(19W5 at Przd{Wh at qrVi2Uh~VF=kE*k|F31fC02djzk_he(4o=#7?De6BqH>q)DHY z^v93K2g;M7YlKd+8DN3>f?$qYqQ5(V(okhmBs^MKOYPIAU>3m+=j!hG-@&ly*h4(4 z?6ejn+MhJo5M-yta20;a2{C2O6MU0o2J53I1tLCrR8b_*hj+VlX#yA)S5GD at 8#bBf z3dcauS~PFoWroMH^kFXQX;a<$g}h8fNlBjsJk&CC&C>~Nb)-Yy9mGZp@!vgvzHzJ( zFj1-TpzziVG`F?0`}_UJbU(xpr);OpM;RQ^pf*!5Rq+PUZgA>gV3I~V6rBCl+vtd z&bJBwT=VwzbwuJ47dN6Sm)Sm)lx1ZfDGgxVfR0DVOY$o!|LGjJ5R$U98Q?=QhJ!KW zB;P#$=SG7e3VX9y=R9ur_g<@3oif at YHQYK!Y>44Tcg)&p%mJ}ASEsl>d*jA$4skSW z)u?(}Tgl=>XQhZJhTCdhT9*9 at EP`Bo(xm>bj!03x)~&c&RuvS{{q=_=9K at S6EaX)_^&WrUzz2XRpnQ*>MX+DIU_m>%FtHd?i?S!H zh{(W+L8(sOCx{LLKUpIqdl_O0>Pk*xq&+m!5&z_F>q|Za6`7RF4kdbmgi{aj%E6%d zx3;afv at B%ZMI*{Oe!Q=~px2USqflj!e{F5)D&k at x5*4thq57hodt%7QKCo-)Q9F!wybPb!b|9%F$U8 z9X at cZa`l9{jdYhjeOj7QN|jaVA!z(z<*?&f>9AG*jofX;#|xcdtm!VJ;$>`M{@%%L z0~;lDBG3UmK63c*lmA+~!K!7XrQuBxQH8zsr&viysAnJZJVefim%o2~V^b=_(Qy`f z{1~&6*AE^Xq78iTV4fuAsYAcf?=6rH1s%&|Wr1%d58-%v$#2TxPdqEBQ-Ixp{2#|ZOH*nC6daa)3)MaKh4O9 zr2PK- at 4zg4CTcxP(Ikg+P_uxYi76>Wu|Rg2-qfj=mtK`{`%B)%76E5T=oaAD#p}P%M(f{2ia@%{8BNzy0Wrgp!qY-1F~5* zNP(U8rDJ#wQC8S$k{dc-^FDs|><7WQXlQtYy{)i!GadLT4mSum8d1JD!BVu3|A!gG zMD zbz{emG0HfYd_V*SK!r;H2dRzrC7KtePcLC1qd))4QUOqA;$MRgmL5l=qs3#zOcDP+ zuB{zlSIIN?Rcvf*L`Tvhj-Ufg?WPYE77f*yn*itgXe~i(Nu-Z?>x| zfz-Kz{^rKgd*3QBiD) z<|FUw6!mPWp%d(F?5~2LJ%9Of#b>%^*t_{51y8mCR*({WvU>%rgY;ezP9hU_7-p30 zL!<92&H at s+a6_?THQCEBIL}_Z5Rr6Uu_Cx_*Zj~y7EG;N)zJ2}r z`pFZmKTT-77qw5x>}0w~U?0cvRl=|P1f5(T)&1t7y1m|Grw8kI3F!!@Rpx_#<;e^d zdZgN~Y5m*q=vgBlovAl>T)K34vGRkgRkcjc26EF at +~+i*G+t;O>grjoP8RZ4GBTKG zCNZaiA_@|^qQV=tvmu}SetIE=x7>?^fT}_Fn{kS8I2UQ&=lT*xAwU!GoOFK8NV5Xh zLDOyRM(hOs9PqtBrIw#oAH#0H|3e z`T)}7qplo5)i1vQd at D1IeKdE@94fLOplJsWQc?H$dYA8p6;h;#W#j-AmA&sMkvB`% z^`FphbQQ}A;8M+G$3lDi`mbMy4IP?puT5hc_vE_w^D7{<@J6`Satu*_cboY&;=G_2U^>x`ti(rS%b|NiqAETEDG6C=Yh>ifV|fPW!_n znC|>}(K0dLZ}f-}qLb%kl*tMSR-f@#S66VdBb2q?*77SeR-rYMA z`Aj4JGdY9Bu(>;S7>)6RyIZ>SIZG_h?>7^N7&TmWr?+P(8dk`d)2H8%#KM%2!u;gL zl(%>_3%k4{8H0PIm1LY1y)w)nA!?JXqfzCI;YM(dfQl|jU-knH8~iLqai2b6q|WoT zk3vdaLZS=0vhW$;vAjJR#(3lHq=q*rAlQ`bL>%Qxii=%}(URSNzmYzDpvC0K*dvxV z=p14!mz|v*dt6bOQ*`=;-PSBu1l0WA at 3` zT>W7gMDMJW6Na1cyc-qk1o6$e%t7kx?95?A9N;H>d9Nd=m**zhqje>*+p%+J|MaiG zLn$fZRh!U(?zKLlzxD+=3YP-WIsG*t$(%1{yD&F#LCFwNTOvLWbE#8R|u-Bn at uE> zdjDA1PRvT at bmvc}CnrTGSIqai- at 6_C1_L+yZWIl89C-=cfLu&H!e?D2aqqbWVn5q+ zf)RVf*T;|X=j2F-!z6T%!ws>#d}nvpl!tG~78xxE%u$^X_<}gK&dZB#zmDJSp83k0 zHj&+|KV2fN(J9%%`#|t{Jo4TUK#`u>CZt1{L!rRKalEr_#Cd$Vo{k>TRG zTz-4k_jfa4cz_nso(tRUhMR?*A)0eth`fb^a(DgFe`s-S-K$ScO-u01LEz1TgjFdt z>>wv2FQk6kJ3R@^30=ciFh{Uoi_^C at H$UVFWyQmJQt3gJu#)|Le2Ru>lln~R(9JFb zp8fXxDg!5UIoL_zP=m4K!SHf at 8VUt{E9}YL-Cdvq|Kim$d-i7z+sON*Qgn87w-(8P zPfYXg$pz8>szjmAG9%581-j&*Pj+bLd;>azw(j7GQX^kldR6PchRrbSqFzz`3zA1b zAaFxdEv*mS09rSAPj;4|@#UU7@!=L#0K+>m4*G*C2WwJ6cJk`x7F6hlJT}xmEEX~= zaCT%*H+TK{2@%%L`Nj3HXW+ph4+O9bzlIaQgLspF$UkCZeLq$wB2pY`>`U*dA5Vne z#Dmvp%cn<_UXWWTc4^vX>35Ru3;@p|H~|*YV=+)!nKAE}cdHB<V4M|?gq8^u&@C+t#ttScA at 3oGB2%%qk0e)Rov at p)iGX4* z)>gdid|P+w)L-AfkC`xm_J60V9x_q3lnfK?HrS7(ZHV@|fA8$Z=gj}f#ij6TpVIsL z?xb+$(QqCTbu1GBm0sfwhMJT at QVnoc(UC15DpZJ_V5Vf9GzxPR(53~m=XPo*b(neWgynhCI-c|xQ58j*0ICg@ zKEXf|jHRSnme|z(+yGeUxIWI4v2EJ@%8CSuYDI zX2QSJiuGWO>q6jq%g&k9uF9{#h!J3x1z6dN zCRF;I8NN^9gX=iW{1XznuE-{s^2!P%RnKMD68jKUZSYv}LeSm(zI;%tFneO>yRs;* z3)BnMTB9bN6;>~EC?&c6W3+e5i0xj at 2?Y`X?v6-YU5Rf?Os2E z}_eYm2h|OKtsaqiwt*lWiig^f at 69!S|3)$G4L36|DrLE!Q>H`5%~kmp0N!8XDKNm>Njl2 z1Zx46fHY8)y313Z)W%4jiO#t?dV11QQiPfdX=&yzZ at 9G-(f!?Vna{jh+_RBhJ`K(T zW?B8&(mT6vlPdB#H#d`jL-Uau(DUf;FR)agbb~>sZEMgh`Ez+{YL7IIF;)Tvn zq at aN4<8iosW2zsS^IUa#`qX6`Tl4Ae}?LcE11jYBm-nFAIgeBY7y z&70DdFd>oCLV4)WyN$MRh-FbDY#&I{<*aaqtwuHk_aOP0qi4?Cxl}9zgVV;%4FWdc>8yE9PMB^k)Br^$$9ekf^+ZekH056 z%g3+ZoA|~psAtO=^+zjVTj&lMr?iHrjgkr~m2352GAw)m%M3N(^~);mvdojyy4>woNi^=?jE@%-8=RW} zz^@1w>b3%vrGo?a#E?s6E72j;(gID<#dg!brXIZi|Fr;9r;d%j51?qD&~PrHLRz!a#%S!-pF=21rhI#yaKssfg~PqGioM*o6Ngc1Sfm zi8tBV+D(HDgget5w{FezX%La{608$T=`|T_JeE&aXQ%w$VoL6iG8F3-<>mV=6X7 at d z7L<`uwEFYS2E<2G3Ti~5w&<5CKE1VU9>Vi!z_WnJVnaEnS=Q>b&}dy1Br>U<++Q&f zSMm$~i5(}A*Gk^S-WWCaB&`R8Od^Glx at 34GtD7w8ux&DGUOKK$ne0T_yYBfFn?!pk z81CFOEiKd)nkFV30N8MQ76oyRtwQH%};dWf70b5|e!CIGdbNztPfPD#9G;EXJhYzD4 zOrSV`cCM}_Jl@*!c`-Sd!#UZ?fM&(_KP{Nceh}ylp#3CgwJ6u_S53IHk{!L_}`-ut6L5 ze1&~w)*x at Z7LxIsciPenUu)$m`oR&?;grgl+FXGsBhR!>vwG04U%#MEpta~|=xAQx zz48}aBlt0Qw8%NcZ!nMc*$5$(?x&{a-D&g04R%utMxB8XMrbXYueSg0GU`tvEiVf@ z)lM?Re#M869>{OsdVdZSDTgWh#fP%91qeZ+wqu!6hzsr=8b at g66KP({4}s_>rG z!K%v2NapzV)TfDEW<=M!`v!8;%Oni8wm9M|>TnK4PA<>I(J_|g9TinW>;>MV)Mq`D zT^`c0K~?qdt*z(YM1nyq1N}xXBT*tvsH~LPH at kI(9F8S(=YD;D zHOyK=*g<4*!Mu258gQqP`l}w;4L6GOJDzPy`^Rf*Q%V`aK8x+7lX at r57Yy^w9e*H4 zo+tZ+-f(L@;`aZRtb>C?WXC9V_4 at xrhP>-&x}qBPpt`iMus}op at S(!VmpZ!|WV~Hc zq$SrFo!X6TBB2L~bl`cklR{Cku^eXF;6?2!Y#?*tu#gZ*DJh0L=ATAFiZY0UpIC*a zog=Bgg2Jb7-`0D37dQA&WW#At2LPz#PbhKAWV=^816Mc>wA3AcYA)Wg7 at G(VnnJbU z0&*wmGG)3^>!+Z}dQFgW9{^~0zpM<-7OBh{_8v7pf<}53pryl#Om_c`Eo!i~w$9%L z;6_*h)+OJ2{^pI`K?7-t0cvUw8hi*<)Bof8Bwlax5+SQIMRfGGR4!6fTuiLmD~k=9 za8yi8Oz6NXOu~%zkklb=CL`u9zFvhF-}m>kb%Z;A|1PlYrV5Z3jXQcY3x7LU7I0+^ zC9j>me}8YnijrM|jEX`aP($*eA|%6^Gj4*O6b*1C6vh^7HgtDwNy~$An0wMd_?R}d zH3+Wl8vriKD#=IJ*a7Im`E70*`;Bvt&1$RZfHDL)z^4zU-eBNnzODI%g(44^5VZtL zgb87d@&R%1eIJ{f(eTSl79LhRd>Yj^_6>W}aT;UJYnBM3 at YuIxO?&m#3 z#AI at q7V1o_$LqTSi~4_`fOC0pP!Owzq=y}ermqQ%W$|M3#(N%DRiq^XesD;-{`m!& z2iXm2hv67Yf&@S3#*Kn!FDfdey?G)cqYR}#ySmCQrY+?v%=Iv{-E}}AFkQ&njf}bo zW`us|BmW!^_6&2J~H^^NwG9qco zL=Zf$CTheCZj#U)fg{b~$rcs`$Zja-%m?B3v86h-`SWL*z#xJsnE4_cw2D$IJv2aG$oxrt>!4~oacv2 zWx-QSCXj4EZh(0voVkAG3YV7Xa1KJ$ORo#Uec^p<=UuhH1P18Vnh<*{GW% zgDy)n>+GVpJ_dZ8vUCa5Gk1?-lv6LHdJP|20RZ_34GkXyfe#l=ypfUBK;du(oJJ>4QhyBT5F-!~{psB#dax&3 zGj&!TK6cF6$qDFAu;%fqExPW~7*XJoKQVZE5^@oUP2jbJ!3LW?L;ygJ%dYX-?B{2k zCIaJsEh|fGt8nW!5_L;SC$zv4!F^?9AkoMPjAaPfRP!uhf#(4_mF(=5nT|Bi?`e-I zYAC*Yces2wnJE%p0Cm(OgGxy3qimB89bzuW3vO{k#6OOX0j<}l#Vn4ULuIRafK!b7 zjqU=;4>>82Cbyil*DBGzS`4CrMz*EwaB5Sh2~)?8rAIrkLvnMPrKKfXYmcht)Tv9* zdD>}ty1Qe)itnhXXnAezCL$w^n#RUM#!PF~Mx$16Dw7hRTWM z?>>A${#ca8_q&;sqik#nAVn!eu=VLf`!Jg7AwPvFrGZgs^B~aE{eRmHlaA$r9Iv at f9Yn+-CxOVEuktu0ul7$(h9tm$7{!T1kxn)cA^rXN% z$&fg9KZ_Sq0JS%vlJ-74!Dds%5eC_}wzlEW$A=EhgYx8m`62&=u&koO5BQms1nUXX zAf{S`&q9-+K6^Ve_tvRv|D;7JBA7T%gMNT%`a0`G?nKannvtzf^A`@hK!JRiUVx{X>!KuSb4Z4}FjLd at iB!9f4lM~TfrhK5S$a2=9 z(F=xB{I{PGwcsg0b_WJe1Y+s1l7X>b-`ui)Np`@Q)7NV`#{~)#E*8LmM5CjCs^(Em zjfJ{Am4V0z+=Rye6=ZB6j at 2)$Qk4;$@yiT_MRt>Op54wN7ZD+C>sE$EcaOkwg*BW| zC?@cB3=;p&?zmfAOwH at Ge7W3vGpSG`Izc(l_zv*u;nr at 9hd*hFgc*1sn&px zf)bXRdrC=48dLGCUCZGCdlR(01-4I8OhZd+53z=tHqbnOwAj>YUIH-zMiON!CU*@` zj!`)C`T}1PHj!#iQnmw9gVn%*iv((q9*rbuq{3eIgnSzvNQ?{Q^n_`& zPDrp%qp1Z7MeHqHfI$=lou`L~O9FoMC}$#V-|@zy74HMJ4gc0k;bbtRsMA0smcJ3aC3E5Q$qn<&0Y!{*|7GXKanZ1 z=66Bqgy(G63g7{-Qw^ST$jf>bQ0s7>ySx_PYYPPk`^x4~mi|Ch#f$Oo|+lP_m>6g(6 zB0uFTf&OTJWO)I#p<`DZIIuuC;o?P_ZVt!C_kbXyj(ES32LRs*aZEbJk#u)*c2K_- zQXAAk98Uns^}+bN5#T7u2;wAVFhF4eV)3V>Jnkb1qn8@ucbmU#r~X4{WWGh at j&M+T^X4vGJK`#PUV30I z6>uF_Tv$klrAvR4`GE}38^BE`FI at lp%KP<$bpp*Ju?VTDF$A at z*@w`DI1(auVK>MX z@(r3ku)ySNVD9-mRY1Gs<|17b5PUclyx+J=?*&B|0u62q;t-2xlvE$NG03NiN~q`v z#8fi^tAI(9p7ot(Xozh^>+TxTQ2w*sfr1H2m; zOS$dKt6Q9BYgVn=d(Zt?Obo1+a)>8SU8f82yr`W`a&oeO|G3_RmZu?}=D9vwwAK$e z3)4v*%QYaPBW(WH@!WyjR6Ci~)?c!iT$NkFDilzfBnIQgog^W at d6QVT7BkUuq1R1{ zU*&`ju9q=4k1z}B!;xt@ z3ECX#n2*7b`aQ6eH%V2cLcde_BQQLARLo&)^%`)>qFs0hoVq0f>Nx8}{~pFr=K)ew+HXPVx|(^99IOwt%eMw@>Z5U%S2&Vd89VapR0T at r2b=pqY4`^Xpq@|CL81k5*-FaDQFw{ zzqAVtA2Vh()+6q^&<^vp7t*g0Q+|NXCUtqhOlIgtt|7C)^YAM^9Q#JR&g!F at DNtlc zpmN9ilD-KzcR`{--i$`2_IZ3Czxm_)nD1w(bKdXQ z>t3$wy04p~>}qx8$c&3*JlwsIVWZY!g%hTXpFd0WUvR%6q2U4{gg^imKjK*PsTfPt z)1H3g-=6_d&YnG+Q%LC!`j6Lbqan8^lT8KEgv7*mYclD;sfKd;5XFfGAMjmWlHu=& zQu5;Y^9bTFY(*^#LC2RfHO=89^%l87n4}RS9gwIz**rD zW_0l6c#Ota<=3%e5hJ2xSml?^?F2HfDSZC=HPZ=?j?ZbY70VbRR_0qWGLi=E;@vS^ zX<>mGmY`GEbQvu_aTP#!;vsUTex1XkW6y@`_ at M>dV65Phu^rhhRvwwahwnV5=g{A(xe@>vd&< z^-qTmub)4+>eMOyyQkE&sZ*2mzoc~@h!YRf6BNb;QD1LgzfRFA`lV~L4*C=5tr at PH zL06fk1&*3cF6Q3)1uOj!6C#SsxuH|NonONCvoycesj0|;^h!UocZ3eq(R>b50&Smp zHza;S4Ed6t?f3_l3I!b?aB*{J00OTes6ok~XDYooVAExa^bWvAd`v4Vz*ADa;z)3& zAy6?xB}*bAWag^-?uZiTjA at BR zIGP8yKbxOVr3Lk<_BNieii}(O;k?4N;xF(H9OCF6_{)~7J9O%#KW{xB7M_I0-21Gk zwHl_B1Og&J&Z0m8yt6URopI54^Gm at K9r{>q9psEU)qHXc#Ri{>RD}@eeG~_og1%;* z$XyRip3lcXL6oNL8|hdPW?*ELu#X-jjl*w{$Vl=HUIrK;9#Q-hQXH;>TLRFQVe8Xl zld#)1Ej3j^!@ z$elnxz5L0g2qei}ieTTYKrS0NI~h;Wa;3by0G%v^5TFOWn*6^@3RgUxf!!(41iso> zS9MP5-QCHFl>C#B!R_plN9b+4O80GJZM__J0lp|G$U at sIoZ&9eF1$>~C|RNs=^56{ zpiUH$2!v-8y2*)&9JYrAF&d(+sTIl_dW*^%Hzc<@Sv2Q+cB<~^VISGM2ymXn&6kwP zk5H at eXX%#LVkBy4I3%jYy<)cbYWF^U*t=aQS>uz1<_0?yx_atWVm5MB{8kFLF~O&2 zC>gwiAk|h|oXl+^n#b0fX^&+~ujxC6xA^>Qw9!k`O7uY&327h8(j$IO%{cAoD88Ha zNws1RSqUQo>}f0?@@goSIn}aPpe-Xtjl!8jKe35sL7A?UiOJ-pDbS%F@^brQ6 zmG8`X$nc6ms3*43+q;6~li3-u!5?$y0w!?QR5RZ)-Z^LxQ;XtR4E~EeHWF>oX4gdI z;bOsgMdHUpqmX(3q>TQ6cCr2P7S1+mKUz?VWc)uoZp(r;Ae9ed1%q*Xq4H{2WTe%F zx$4EI7QZkzPyP7*y;j{&{OHk`^A)VD0>9hAOS(O$*rS;v!!x8hgI>egxrGOfV+s8- z%^O at 0T?xV%!hV;E46OZeHM7yr{35=vCn4dyS}g}MBva?uDEocjFLEvEjmN=h*^$eu ztE!#i-y<$y?eySj(~uJpqy_MG$`tP2le)V2L3yMb at UzQ5 zxND=5#gw4pYaV6}R%=*o*W4Th9vB at h?6-+8lq+W8wNJ^$DkRQ2s0a_uOfTW^;kV5D za7t(hsdX49DqOi2*wDd2YhWw1rJ%ZYG#3}PP{f17TNu>W*3!})BgR`ALBa*9w!QFww_yb31N4K*hp;;j2b8;2FbH0V{x{jh{$pckR*R+0A{wem0L8gHS5ZXyy_rTwAZ5R3Cmw*s>CTxk^c35<49sT% zQ2#v>xXya?Ym^B+Ai-$-I1|@OONEVlz$W~87-Mrw%cpPOzOAiY08Y$Z#4;j<|@8Re4opSmk7WuLXaT?=8nBDE>^PhzRYmejqrv-SJhaiv_C4OAWl3J6H}2?nVN zc}T@{?0q=`{CxZLQb<3{>KMhGHH%8LJGfy*Md_tWT0;!SJQ5(M*-dw~%z zo-=0zqv(|TUeT at 8iR|aiX={fLN8w631ySH-QJT3fNlO39hO1plIz3n2&uo}+cPFq0 z?w}!&*EH_?We*ypA20Km5 at Gk&6%ll-*%OvQ1_ba^S%gwV0<`8h`|`wK$B|t{u2IygLl}P znZ=e&x9_dII&07F-4yYJVK7IA=JD==_qAhcZ_prg1gO3od-R~#Sm(bB<$~w|ERyJ& zu-Z|za^Z{X-BO;lGcd5WvzvV+IA5RGGY>zFoCU0IV#pZFIrR3yQ>Pk#iQ}fn_CB&| z)krY@(zAdAgb0Q20m?*_5Mk9IKP1;i@`wy$1!JT0|#%FzawV{{FNaFM}G`_)D6 at BXRy(=YcYTX zM;Zm?Au+f4`AV__LfDDp#-V^ijai~_Rk#h`a|4;E_!)c6(Z;-b_H6dtxo1!-0tGQc zKi1bb0ix&H^z)j at zanh%b>P8?m%w7RTR7a_#$fMf;wJXe{KLPf;-+(OB0mfKIi;kF z%W#iwslF7fo`*X<7|g;HFnoZc2M8DuOn{T|P*6_OQF5sSCGd+EbATof#}z7=6d;Si zm_Tss at LXm-E6cSJ>pGlkYCf>^fH_7wpTy69;IzkU7W9Wy|I9LyttTI+a$K`&6*~RI zj5U7Q80wi#_?T1Nv3+~)2tAK at w!^wI)U>~#+rs`}uY%H@?@Hmv#Wr3O%nJ$DBayIe z;14{Tp8iMyNIMeOjl~>xy|xe)iM3fhs%Y04N#uJ&o`FyZ at S{%_F`7tW+>i}!Kn|_m zxVmJz*l`kYeo)Xy1Zf=Ge=EblDzw*6_4hC3&temZ>qSCu7%U1lf<43x(G6`gXOnXQ zK06Xw#diuAzg9vW)A2KoRKX$*-ce1py6_gH!=^&T;w4LpE<+rMet3yMduC`TTDZI6 z3Q2pbxt>a9#*yHfQN=Aw$xZ$HuiJCD^7{3A zM`lRb8K1Y166(?El|)Jed$crQw}4Kpzt$P*@58l&pj1?M?cRL=GnO?G9(a|}inA7i zvKn!k$Rxi&VD>VvG9X3HBvKWfGAR;4x{!vHVgFP)$H_=*Ve7i0ePXf at S|mIwOob}`WN<2Ph>VD%zZ0?h{A5{Se8e` zZL=Hj7Ge_4^WnoCg$gwO6TpITs623BF5iVi5avF3z<`a#wHB6^2*S8G{Dapq7V9$8 z6v$WQ?*{(L(x2f6g&P&Pu`pDB%Exyw_V$#eE=Scf`nv z3EPMWC{r|to#rIRC(Aw=`;=R&F2 z*2e#UTnU0!-C~i at 2lSJiMye8q2({wuf)SPSAQ|+6mW{-6({XidxW%;!(hv9&2NO94 zupOh3ICO0sm`2I88lWK|r!FE-b4O1%FDAp#NOPxSxuNc{aWxuS=O|gw!OkFxDH<%@zzkX at JuFP|U}ULxX4b;33U9H-j0{egg(jtfO{pW>A>p zM9BWGMxjsap)yyOKVr}-)D3c+#bS?MEgMu`9`ec=Lka>m8K zXzTzzkSfpt`J7~`V~9cGD(3WlbO_K2?lpnd4b+X)4#)N25G>;_`)(2%v|<%AW?(PK z%ne at knQP8*W3Q}4fsT3$F&Q&dv73w*P!oIk$xMMkiPanu4ijiK{Vih$${!M|I;dI; zf5y$nrE6Ef-}3Kk<&^bCKdvP4K*O-Q`sgi=Hy+RO7Z#KWjO{ylPJEOq{a2QbR`EH%D+cPcLr1AMf-iX&A* z)L5n5xl;qgL44p)L1OP61^_~P3sbhS4P8k1fHS*xCHOi}RL0QC(dav;AQ9 at mPS~?X zZO#=4wnUB;j2LOsq*I3u8K3?U(~SN5Ti!ez68u8G^(XKm+${I)i}nA=NvHY;8KuZ_ zw?0b^o1;Tc*0l{|I*}4;z_uxYfuadlV3Uf6Pb2&-eLGdP0t!WPsUI-i^?#Y*Zg+MG z1vj|Jll?mfEz*73MiAjnt2SL>n9HLKF#$vtLgsxDWU~(-=4k#g)UWgtm^L^|@ zVI2=0(~~VC24s;lfl+3i-o9;{&~^iV;$l-6b{Z8aM7sbFEnQk1@>ys@=RZRC+2MT? z=h8Y2nO1yy`dCsfb@Hzn z9wR))BgTf%^L)aYf{>zBAkQE{LFPwYNv+H~fUNeu_LwZY%*MVk?%iK2s_#5HwN^Dp z;yzICnouhw*il6gTCnPaQzF^&lYG>b;I}Ms9ov5LD(V1RE2~J*D&h?79zqDF2nf#0 zrb;6uo40NSX%T=TC_ZwsXanvq|6>49oM6I&7rF8?3NK;z61k67sQ2ctRz`j>Kp0He zpoe&hsILIVfiK7(D7=K{B|QWhqxLCR6*@SJ+N*5QmTo{dM8*Mt at ykZ1A=EA>G(0T6 zrd}CLEb_t+1bhE8PxQ-)!8i_xa(^Tol%59NF&OyV82TPdUNffTGJ4sx^5#wkB7eE&SJ;|yey@{v@$^dcY265qn2 at n7w zl9s2Zsn8hSrhMei>n=#9k)hTzeG?ZSpB2wFrq#v>b#SV$bI+b3$L{9T;l}c0gN7Hy zm7!TeP(sN^D~(7WR<=hv}p|JAbpsO&S6M4&V(yhPKMe- zb6i{txD}2j*Uh{!vXua{{Ru4_@{1G{@~pb!gz1^)@EF2B0_c2cZax?N&0zR$YH-RD zxC_dhKwqR;L?YfJhAWJqyD at AT0}&{y2Z$1(~;5eXkeWH-*VqoZJqp!Z*W6+Pmr!Xi zIf8JC%|xs)>)(F`Vt_TN{2YXsPk}|dbz at 8dk_FU&79rM=rifDmusk33woYbdmQFR! z+>B42%bNXCUEPdfQOn^tcz+cgvEv5G1(IjpcJCSDL9VC6iD>-7#nz& zd2R`)KKaKs3OnWlQHo)acxAkDYuS+Bh53&g=V-f-vz11nYr9LNBAd|&vI7;rjb{{E z{21apNrik(OQ at fz8n=ScE*#mYL0D~ou{7!@uq+&?sR;W}RMV^cZ;VsWh|{fxhbQdv z+x%-|Tv*MoV0JwM4$wL>zUt}e$>#xV)}1>patDk>w%?&VbP^a<4b zL<_>R;uc&iOK at m)PjNJijf~U_b*5kCsPbY>zQuCl>9d({;q?_7FgOj9Po3dnZyzg{ z5flkhlykcJUQpgl7b2}^uALBuzS!PgZ2KSMBN&Dd+1Q at T`{b==w95m1C at Q8h0+^(_ zt*yk-=sv1kSXJICqRp_4k-tABNqw-LKV--dBi-!1dxaQVnt&j%CjF at F86!`ZX$DL) z&K*7ap7L*VKBZ6mjdOeVhM^9^!VFV^C%QRb$){VkZjH;kSg;{eRv)o=vG(O22?fQ@ z%|s2MaJY) z3llMv8MM$Bdd2(zq%@Ts7W)Po;t~xM)jd9}99BFQ*RQ|HRqkmqk~|7W$Rzga5&{%O zT6J}`{GNAqrJ!=OPCz4-AWlh5<#3bp_%aRmPK<)a`RCrXjG?RLGA)UOTjD#@XEeLp zlgrA1u`+L>BeFC#&4ZL%|AdZ_D#>>z!HjC2GYmdV_51I?ekdvvjv)b{ZJnnFAjik! z8xvd!k+`CAN#d?E0&cjvgb^M-Br~RvvOB45!wgKnL5p{=wl*-WLlZJQl_~dSxM9hD z2SkDm08aQDBV9;NyRxPKwnKsRCu_Sx|#R0_}VnLu-{PY6 at 1C?%_ z9Q*M|GWRa{^G}%R0vdYmGVFxfP}g&GMsGvk7M=wbpDoOH^5SUq=@~Ll!F01`NW9rE zxRu>s{8Q}HObaAPr1^ckQdtT%pNJ=AC)?l{RAt4-td*aP0!Gl;f-i#OL9Ne2Hx2UX zv+-PxtE?0qDO?cttQR{O?;A+`jAWG!x=J8XA9j?u6 z4)_j3Tp)d`4b*juP`1E^=iCkVKZ$hmS^Z$L%ois85TfP$hR6(87+er7*n3zT0n7h0 z_|G5Z417?cM0PjF0|P$Nbqmo2x81_)_a8nyyKkR~@Jul;;X{xM-WSAnu1$vA8h~*;NxNi8)eoKo5cnf}bT9mtDGq&*Y}`^w`I=Pk1E(A`LGFYwitN&pi(dsNGLx0x}99!1Xna zW}<*=K>N<+=f^_W%RXB)KO at -_!%g)SbLU>J6V!4P)R`TYtyqy=`5Y#N?P083EH9r1 ztOFSP_EFz%-SFJ$&*JT_U9;H>!WASCmuWM20mvbj9Y1*zE(BqZ?VyDTS7)&}Q|Ceh z?==G^VuZNkHsjd2emLV{SnMr*^N)YLMX56Yr~0_3B_ow#%tr at uIR-U}#>jhu}ul(=E2 zWhqiu$PSSj-lb>XM!kf25DX9?_!I*Y0(U7k&=!*zq~A>Zzk+C%2y2^Wo_^Wpt!M=2Q~4YGzARI}Go)GHe;^2;zhVG2W)8m47-;NM6fBsvf z-;d5L6?QqI;2 at Gxn4@7bm0lQfuS zBfX-^hHtK{e8>Bv+ at PxE&|p3%iILN1Jy=iVsCkQ+MB2Loq7%xX>H(*RlL}D^I8`J0 z2NCb;E0Vj%SuVqt$Imgry{+1)*p%iLL7~LZ$$dUk7}G7)T#Ma}W`qTf2*=nbLhC3kG;@-OTjT1plN6*4{rT?VOQc4i{kxJpNz-yC>DRE=JT*QRQWt3JKmR3~E9gdar%LYnJ%_t;4w8~ z0m2b&sgDN^+=NCa{vquG;Ys{6((om+l*!Zt zd14 at K(%+XOeOB-&xlUYtnyr|&FFml4phv;L2i%pXM#lt%iL_D~I4xyM;**U9i)uCH z9s5c_aAq!B)=6u-{WKs;;D0wq$F`F_nJ1(M z0qJ4lQL3%I>)(IbL9vodwq%Lr(}`#S03ls<5{EeP;80FqkaRIe`Ei=8_JE z+APOA(c7S52A)rap9Xk(ZfAOeaJ^MQ(+eWSQI50Gd((`~nY>{w=a%^`%(6qA=-x2D zK|z}6mmRWOdcteRXxM?>d|J;L{8S#0ynY2Jj{hB4G6<>IS-(ZAelLIzyE(Lnb`5;f~}fDlEK5Hm57J3*ct- z>%j1;%)NV&zOWb6{QoSS25jj~O{i^JDr9$cvsoiu=q?JNXb- z_d5Mp?m8~anCio$@y!)$u$D4z9<3fwz^p1*9$9*f0B~XcM9hJZRTM%`@g>mF=44tFEmYCL{Z%y>!Vw;DVg3*zY zG9x+Cl!MhQB#VnHVh)h#9V?Ic^G|#Mr1wlRzbeWQ?3_J*9ND0M_jOn<@G)t7f!dI8 zp~0gf;dLTm5z-!S7n$;;Y;~dliL;?>%orx47-r?Xfewm3;p5n?*P@!q*sxNQ607US zi;2^szhD*-M?<-Hu&@Y1zWeDd2m#VyuqAud>AidX`H=qpPS63Phv%8gj8HLQ3l!g} znRc1R09*`N64PQMM*^|oVa3;aAD5G5HjAnLwHINA$UVq6NsB12)|io#=|SZi7eSem zZN8WGJK5r%#YLGwI2C5t_o4Enq=7A}TOufBX4 zl)^m8h=B*t2ISE znwQ$qz{F%=|NeDTB&shAu0476iU`gs>3gWs at Wb3VrEwISA6eW)%ZT6*Wk|#Q+%bH5 zQn6evx;Ck58G~N%0|1qrUeJNT9v&3ix;i=>NbIdS4PGuTuc*yQQPf$yI(mL$ji~2h zvOew0W(77{f#4{-XW|&`G*d at ex5L4qpw5Z1e<6p zx`OWmVD*%1gFHM~1;!@@g6C5!FLp2jOPCoJwihQ8Iz(DrPN2%_(vTM17x8Q*RUO|WZyqwztMuWkYQbWPE^U|e} z(3*N_s9_mu;TVXA22~r};c6Z~T}?-QMM#Kv=~Rrp_)MhWfEAd at aiS5-zI|{?azMeqLp5nZ4>fGa_k$i73Ye>4GT2;qjNh(?&c(+Na3oG{D*@eV{HP0 z{9U at w`t5`S?Ov8&`P{oMnSJDas8Eh_9e=Fb9p3h--D+zgg^b3lc*u~>X?}3r>RReK;DGYES_H<(kAE<%$nmGwKxfX#bYY zn<-x;4i?cq7y{eYj}HulncH@`{@>lZWA`38aA37x_7^s;qzk4qGA&Lw^gR;;Fu-U+ zfE}=9`QwkFg9o$mow2z>JHuHujKL7vFg9QW%u4?C>(}A#o@$1(mctU_ivU+d;9A!D z8%28Gz9uJ|X<&hP5r~mYzy>#Wq$Nd$HvDugP?9VuoW9n>!%AKODyMR~s&FOwi?j at m zG7aM<+jKTYgVdsZuQLQM>O*XvxX)~&^>L~7z(IzDOeyJV(9A_4=)i=iXHj1VjUSJ3 zU^}z+YKJ$kUvm+G)_)m4UZ?M7j!0HkEtTAF!B<9)>c95C;^9<;O&p}>gX$p-gw7u$|nF2IEYJFCq5x4$+vI6Mz^)z zy?uK^U|>Z3r4GDKdMAWLQ at gJrB<$Wj6NVBjAIF!;$BlIBsKse%G;LoGlXLR&Jo3~$ z$A=FdfDrS(VoTe-`x(4>0?)C}N6Z94iKZ4rx7*Z0b{#$XFREB89Yhd3_-|~Dv`*vQ z2+M+OZH*H+?>%u#0-u&lBO at Ax-c{=Kc5$K6r~aUh$=nWt4~W4S1q>s{g0;vLmyj-? z7Xg2Au%KwETYY at AoV+1gxX|KNIzf2=3Z&D20-ZQlrq{$HS2KM5=#kxRSH2Y=4=lsA z6+=#)@fIpE!9E?i&3dO)#OZ=JR3()(lj9cqGoBKJBgyBR|NtGx}S%@D#T| zVWBfGpW1J2cc$-Vq~x|j6acQG_*=6kfaOJiD$Kj|%{ou0nAiq7XNzA at H$esLm(9;7 z7I9=TtLND=rGN^aqS+O7!fOB8?o%yIR=y2^H~24&X#`G;Xnp_%}d|DD1j3P>Zm z7J+J@*rt9#WbL7CxKt?@+rK3&5zJ}XiEx4=DNQ9AkRXKYj%rHzH}YuKFx32)T<_fQ zJ2?kk92MqBnJG`&-a3NvEz%Q52o|ByrM!RljvfMG7%#^b-$chOx-RDW5i;{k5JKo at w2^+VLSpR0UC3Hnvqabg`b0`OljAo zpmz~2Lc31v?@<+?lMdWUBcK at azNtyKT^Q|1c6QgW1LUXLZJYpPdzrnF>XG^I!)8S` zYqZ|L;?18qb3E|UR?NjQI`pDQ(bhVGNhW+RV5i!j at -eZa8IEy`>7pQ%&12qCs15t| ztHd_-(n{(GRN81MpkqC<=*6M`0Nn&NW7n>%yGKhwV-JKwH-yuYYppo-GTk&btK3{z zTIG+D83x1xnn}n?6qES$Q6<;UA7a%Q$QUM~QeqgVlBa=L(+q-TSQv9lqbYDqCx6 at N zWTnz*cG$A;03^0Fl;Maxj#lVz1QryLY^!v1^mQ~3>1&XrEO;oQ-H`pvJX96BWkLdu zh!`^Pld*7-&9rt4QG^vAQ%2DoQ3J4bhag7ECVab2l~}H$bY|xbBDnC<+O(N&TlhMB zDZUzCkgsVvfiygW#trKQWX(*FHG4Nd1LjCVZihGiXiu1?NI?XxQwvHiPi?GZ^#hf(8A~ALQHdvNFHH zvuK(TTM at tTMPHdCz?8@IMRo5YB7r+-)TlXxBWAU5*)m{>t9-tzv!qgK`_%JP>cJXL>zL7_ z+hVSqUFLzulE&*m)T5rGj&^hQ4ZUieI&SQ)=PAYed^hg8KCAriOJh%#{yoz1W_s_V zZ at b;J3bng$HOne#%OktBuksH?Kl}D&d->;<=(aCS!0DGuUwv9R%=Yuw*Sa=(y77W_ z1y9*>bt3o{btN-_)by^csjF9$v)8X%$A~dvXW9`!fBNWHd%=v5 at mr3Ls!phdmMy~y z^8KqvM#`B)e7+{h9reM(s;U&0vu0OP#nK{j3<-YJNUz_%eT35|WLa70LWp=@CD0h~ zAn+Wqp?m+LiE$n(XmdIiKm$|Rw22cp0epRr|Lqff7`yfWnwk_$|FE(*HkN2jOk)X{ z5(7Uc351XFzEm!uyh9VRl}OL21g3*3S|++1y@;34E<|!ZHUA4A3jAL5B<0AF1v6%J z?X?M7QL(ch6!G_YV1%VrckjY|Bkip at 7}78UVD6DF|G!Y-K6zq+)cVy27FyBGIJM&< zBht{<)>>VHTjvl~rBz&HI*fQ-JLK5jy`{|eU+Dq9h;OvTA(*D9Dt`>2c^@8^L+IHTmj)&{Zw}Y$DL>kkrf#7i8c_+lis;^=P z6v`w~992jHjLPC!!E!b#C1KiJU(HozHk+E19uT1F_kRE-(DES8%ekA>F z33_$gw$ArNHRBPzRaR6`hqD$p)>%$oCA at JHiQ)en^I^?Kn&0rYzg2oX3zt59;17fe z60Sbxm5D)Wk%)nc6|jap7LV{kwRGHC04~8bY2lMn at cb+hmknDM#y~VUR4HCipgE*B zKQ1w(eIwgOe&Kmh_zANUUfX at LD6XcQS_o3#CAoOP!iAWq@%7bNo&QyC?s^$E)H$Uckp?1iR;nP$5G$Sg at 4vK?>C6nl9%kOM9lTiY!5h~LoCfx< zV55aQg^5iR#goED+hZnsU$DRcqVL*u-S+LAD<)q;<{e^aCnSw#g at S-7(uS%dJaV>| z3E=1Z_XKn;3q5%n2bM!x6VI%k_+cN5EE1mSgUd8|nYu=+M#_If9!Pv(x4Op`~W%p^8+E3IH_R at EbFC=rK64BElN2HfM0hz+x zU^hPEoF|S1mzCSW#YOb%=C%<0jzU)!Nhh6pd^9{2rzjt24ofIA5W90o1%!UJF!Pw*2$~WdLvlRw= zh|wcP*sm+&MdX<0F%UO!;8JWq7^z{R5ejNu8IAYe&6}%OZ6>P~wbs|I^%DFTk}i|6I0am{AFpM(TmOedcj(ZE#l=JbiA9nuoYj*8SB-B- ztXz5A38_M21<8?vfw<^D4*1DlR*9qh{Q-V1!g6ChM$$ts%%9;M2WC_?-!IgXHwXku zY%GNcr=Ek#1%e;JTFDdRcQhP=y}M zs-Wg3Cg_5fBPt?qIJ>yOox(oK5)A4(KDmm|^Fz26IDLXYWj+HG0QML%DL+V?ifLYG zc=?>j7o%G~_FNNH`!|`3VRY2h;Il0Fk`GGu$wHt4u)xP-9Gr5XrhmejJN#!TlaT$z zfU;p>R+g3%FxiP(O^XU4K at V6}FF(mT*Y-VQm|cEAhjwT>=I^I5(Lcz>sd2oYf7VAt zM9{Ml8e{hq(ETvNk6sw9iT at MSSfo=RDw*5FpdcLcjAiXzx6&z*q`7>c`%wBKI~qyx z!LMKeyf)%2-3RxO-KQYN=a%xnq0L5|FDs%WYIou=mN7s^!8!y=Op2*FB8MWrpaHUa zDV*Tt`l at gA!{CtgG<4hE23d4kx^YV>oAZt2CazvyCKfWrzPTHS34;d;Rz_u^tTbdm z7ORZ^kwet<#0@?vfsXs%rOOWD3HkC#GrC%x3&WX!u?VZNll-Y$^bTNlhM1XI87VZ$AW+jCEx!n0r=JgH(|pRQvR4lD*&(LM_Y&#}OkC*a-Wi z*aQQ4M`ieYaSMq~VTzY8Rwa^MX)&+F%II3J6(Upy6%vvCUCmLcust>Ag&1_xL8{R# zT`med2%elAb(1WFm?2XtL)JeO<@N at +MvoFF7Z=T at p~`6!Lo_o?M3sN=|AO at o-IA~(t0wM%=s2<(yuNmDJ6hr1Rui6&2(k|mXO at 7}c5R!Nx{ zxVG)ARQQ8|?RH63$npx_3g4z}+D8#TDf+cI__yEai#1D!iiQq7OTyNCuodkXt?9c$ z#EpwsfdogaCxju;n2#dNM>3_TD-4G!(bl&X+?Jr+rp;{KWUJ<8w0#~bqOgB12DoqK ztM}=1NRuT+*^e?@U07&_D^-5J(ZHp7li-`m at l}|mA+b;raJ>TG;ibNriE)l$4Z1xzs3DO%*LqveqU92~wcS{MO7cm>Lj;)Bap*2SY-4wesOEr+vz~J at nqAo6{za~X-=zI6Z zjV!siwkE&);>BEC6cAx?)A)dBw+6bqQ!qOW*i4Z4-zbGrDIy;_I+YX`XVWZFx-%Sz z%$Zq+4Tyu9U*2+os-Sg=h(#U3v#Q}^qcEm!Iau(+HBdrwgZe+7qp%T3aq<*E8^&EU z(uDru({Ev;PJo%*k7goe)vD_^ZzlArpb$c}R5SiFQ*Mmh7Ro_KM6sjqrSsM3nlZXi0J-7t^%h2_!_g=(%^iW5Rn(Vhv zO-&hFw<7lDiSuqs>(9V#d3(nuC$sf_AsLvl{pzV4V6;BDxp#2EPA)F=&fB+d#FQyJ z7}!AxTrzzqUK%hy%?d7r={KSHhKOdP40s905oEBaC=UL at c5MtgVsmXyE7I@2PEOdf z2u1yzZD59Y3-fw?jj_UX>Fid9MO ze`DyuqYPhb=NT#AbAw+?KSxc*J(lU1NbKaXTH^7LR){}JyNRZ=cW^TQnw*Rt40n4S z2UAvWu3L8l!767WYgxY`L+-O{48dh)W(5RG|Ngw&vcf|4h=Q6iMU)fVzzijQh4QUE zLnPI9VZ*JkZvfz&H_zD0L|B2Lehz95=t^x172WiD8~UkUjv|S4MGx*bp~PF;GCdB_ z0_d|mtpwlTyi~3+j&nW!H(M>aM!-;BT_zCYW>mIXhQCgoI;>wmGVcObhcg3DM8|@J zfDo}i?sAuv(+CsHFBJ``0n0~XqOhZH5Ln#cV1=s{`JM_u_v|J-mZz`OY02g?08wlE zu!P1WdqnqjgP`p?k;QQd*t+-Y?Q_{s+uPlFP*Uzh at Qhbc3%*~@hC1(A&t}(B at P-g1i$HT&F_k7Ee7YH zAn@{Zi#%z=Bjn z*xcl|3X4Ki+nDEl(yYN(njfL4lbBj0`BWreCrfKb0o#AT05D}$r>kXUlY)Z%%gvq0@3Q5?$WBfs$PN1R zqeqTV0qYu=8jVx5#30tW`Dp)1UO7cKA(n-ng9rZ}8hXC0On-mh6cG>#8dcB&pD%{* ze5hi(X6~h)gRjAe6}LD1(LvZqKFA%5PaMLffOH8K+fFENF1 at a&w0aa@|n_wXX z%s$JQp#MPhLQJruo&wsUpU)vHbn5VQ6iRa^i;-Oat?THm87t;x;x1ZMCG6o|JU9xr z7B;U!TFuz>dt+*w!2o6v@^*|?yvjLs>MnS(m6hIuK*Bdu|1eyIU4_Px(gh+Y%>7p= zLNFCl=Sjm*w=W2yXaI#!c+iioNEqF+SSTzA7)Q>bQKWebojEfk)wxHH+4JXPkv4wH zl%YTTpfgSwy`c0a-SwY+jkY2-Tsyu{lvR#_E?pjyX%x~$?_I~BFQo0|;<1qjEZ`KY z$WSkVu6Wn9&TX;1V8&1cAB-PG51v|0ej4_ z=xFF(l=&PJrpR5KoX%goC^Qkrx`>`~pj>y0I}af7GH?M4$7y1Cj}YQM3r$$yd-A}X^;*{GPPA`bj`biP3EVG6cgGQm1Wpz at bbq+2R@r6{2jE5kuBe{|bz~3pv ze ztwcM_+`7+75nU!z|KKK&xR&0}H4-~fq7O?o@%Q&zDIzZhIgbY$UnzoL!ITfMoA|hDDc~;fn1EBX%(s(csrXoe z2Cqhdnqj4gwS*}qa)7^2kD5imK*XW1JBKN$r12Ml`sTb;pm9kwWl^Hh1Ejo1Us99~2Nv^se(0)xp~|HH6Erk7IZiEhqZ<&vFSi3;4n<^ zSfJq5d=ztk7}}zNA`P~^l&I3vg<8|cxLE|gk$%r2NNiek4+RS-i&`rB=`G*DbaDS? z5h2FRPDx`APliqmY`X1+6yeSSG)6=ZGS+#iXpqBsY2&M%TEj$nDM}MH=>u9xFV}da z$p1vUOWrjSmSqiO%sQ;9Mj|}jrY4XL1oh2h?3DD(;5LsXtb9F-Tj*m6wwH`8QREPO z6XNl2$Cq}zk53ViUD3)8m8QPKlwi3$j at Wj71Y>(27$^Jx|HLe5vv`yg;aW>;3qFd8 zfc)1;XCgylQj*pr!IJfv?ase6Y20v;dUNAp+$ zvre0P0DaEKJ|RW(X3v)1T+k?18XK(?QA}wX#X at W{$z({oHV6#@&^lF((7Si+h&Lxc zwe%z}nSC%kdQPI`2g}D20spmK3sxnyQ(`ND&&HJ=%_7DeVb2&n)1;b+v}C+o9@!5+ z{J2uY*c)mCC*64DE4}gBfbrhGeND-9mNCHB9tjp?4T(PKn>OX1IH9vD9+_+$}n3Kw<9a}8lao;J~xP^lhZ^H|PP zKvOMSB9Qy;dtNL)4Z#hx8Zm*WmsVVh`zikM7{MUfL0KYeTz#>QxD6v*b^ZELde}~# zw!q6eZ!oa_jB223AK4d=N*IpG*IT|^g^9bplKUIe#^@f#{9r2 z at gyc@BkYcCxQd%5wH>2c_S2!?g)uBdUXfDuQ2B at vg6aM9b5v(sOV#Izzx*z4kOyyZI-3(Wl%FqCPG;=l!D9IqDjKew1>S#W($SEK`QGs*J-2V- zwh+k-4=0oD5qKr&u~|mXGR(sc9tGzna1ZwD)V+(0iu#5PU6^tFXk!mAT9fb3o%MHM z-N~mk0Gu^13fM1*(*Y2NlMB1R7KMkijzN~1L~`|vYFYnX!%CEyIC=8+b?ZLhppoqQ zj+RfnG5Y1ro{i7p)aWgLRgi;Be}?Y8jD!58eoluq&2_?h_taGVy-~4e|D>ZOyU+3l zya&%v84iZ~;LyQ+ToJ*1ivQ_ at r$@JLIukB)dfly~K&`Nh1up2?^%(L_%6iZ!?t0C; z$h}fw?M9*xZ~$ySc?!;j(GgM}G}j)|1W>_+XvisbNa!%H7^kD{z^8+GU`Rw}xzU;4 zt*U~6r0IHZv`8~XkU{n>{ zORxkZL84%FHDkV`;_#O3+u7J>X=c{X-F^Gcorm}BGqbQjZ-bpNt%E7Z_Vw%5UAnw} z^@?%}d;$K2o<#XMp-=DLiA&Xt zQYq|Yef!#3TIzmNaaE`^Q<014+fyY-Mw!Sp5+)lk3L7v4FS&&@J%V<;Er;vko0T zQMx$|mxWveqPkd8@{K*M5td0(n_Z4LB^cXy0LDdAP!i?A0BArcoY0jxE~2{_;dmVm z7>pTkh$7<)hJ_e5VBSlRLvx6?FoBp)fekz5C+)x3#5Yfr7-J0nJv>5B3V6 zej9~{2Eh}ok!u2og=;v02_rLn;OhDLh4nvEh6XwR9RO5{$MTz3ufP|9 at Zpj0oB2w` zLG!QLPTcSDU`6!T*SScI_(~dU6|VPfcpoCKWt3F*r|!;Eyt_ at CIL5aL$m+jbhYtM) z-N94~FlzG^?{hprV63wzPhL>C@>R$?9DF)bd!HsuUt)NmC(Y1t at HUuq>ua1`hh5|1 z=YjZpK(#bThz22%*ylyimFBf)Y6;zH^B2w+l&xMy8`m-LXu3+J$H0(tFU|#)z`PZL zF17k#wc2gr;>8UwU&ejuks`3evfj+-Wl at cm&&{+#Zi|fq=Ix(pLKtWY3)3@|6Za8i zpuFON!OYQ!sY6y$LTks0u5W$=`_k@<6 zN`2ROUX$r505B>cE*A=h7q4CcMw4#9Ss?eg44?@D&wyX&&YeKb at ct|}!X+``f&)b8 ze|x|~`8LenFzIKMSkpWWJMF8;dwyn84cgV+x{ICN7%;~*Yp at mou8#dcaY9>v at ZWz= z!di!#CU_noT=8}YH9U7 at PKdy$NC`y1mCB2C%z|nFFV at pS^wQ=JvA=+vguE3PE99qE z_H(>@w*ch;T29N=GZCBi?hPaYy+V&~8 zoz>=*Bo))^7~)ZBLmtp9fhWvx+rn>S((m@|CCis at Wnbs3S7?jmb)V6)@H=^I at N5Kq zKD(9w&2inbO5K5cwC1 z6M1$e5vD at g1_Dg2Pw?ZcKv82Vs8KuI+7XjD{kGuH`#d^`~V=^&rd?{P9QH$lX|3*v|RJ*1TzX5n1qfe%WGs zHwTC5fP0EF$iL1qdjrUSzO}XkM*ZLkBs8W<$SAPnJREwA(oi=x3^Kd%@+ITa-(KfF zQaOuIIWR`Ut+bciV>yG%G|>pYCV(YY&ICmUl!zRKLD~z~fsqlOc#e&qJ|W&FAVxDk z%f+T!VN%G{(rcG(S?GIG9A6Y50s6l50n|AyB}ftrLsy_|gE>heTj=T{*CUeMML2rr z&Syqq2+9x)gl)L_e4a>ncmps5f0v)&-RBW*O5f+J8DRkuw(oek<^BlVUEJ~F0D(oo zg-D2$0F%n72U8{{_u_J#u_eP83`c_{3m1YnU4}NFKVQ1bY&*D(lEppuetof;w#_YzT#^PF0p+~NikIl at _7fwDgI=I(HG;6#7j*&c? z#so-+;Wgz?gBD9L(`0!g%p0+7<~TCp zE-G#p0)j(;)`}%wV at 1uNL`~0+4R`yaU8jDf8D?V2`vW5WgyBXJ6`)JmfqPvh9^%S^ zNI7)7%~dV75NG%}Ss2_*0G+|~A~RDtayRBb7~eNx1o81BT4bBSi^HO#x=db0EOfVK z at M;W&hOdJ#Ve&@z{YLOAAlsZ6z*H(%f+WWhk5DRbJ~K^<=_|TMmc2uko?8CNdB^C9 z at QO8SiB$#z)O;H!i~TsK`8yUJrgXZ2K8)VFLJM68_Dy`ktVIFYm4a#;75?ed2B9}O z$h>Fr91|$)q*y?-S+TMAT at an@)5p2)Vq5W!F>^6c%{H zz(vqqXx&3d!Xcul50rv(u_|ilviFYK$&ANAED`KQ3#rs#JLoe;?-;BTH-E2|$B-d= zcI^@zH;<+IWF61V6$lnoKman`M~Tj0i;nb=QzE@?_qX^P?${hr+yl{HFjB>Qzp15r zLx;>WEa8s8mH>(hjT?w4)RFL4KYuQEYrLZxX8vFozP&#PbMNSKI(4!)Pvx>O!+{v% zEfp01ynV|~VgMs)y1&hLSUCBnX`&Bdpde{v%zxIjO`KrLc`8`OAAu_-=SK2=aC};<71B>0`G!l69S`&@Hr^`YHCC$7}>9f zCS~O_^(mI-lP9lyd|qFa8Xsi5-HTZT-kkP};~5!KQ2}fTfT(~zIdSx8+ at 2W3h_P~b z5ddCcWnI2s%@9CQr48n-!-6815D~BH*0--PMUW at j;T4m?)^&;*(`|I;fq7`@Icp4) z2!2>HQ&A@*y6m(v9xf1z=BbNm&rlw+860RBi3DzV76v-I`i55Vs9Aq?{lNoaF%0|b zsoq1~xM|p0Q}@aXc&Bh!;Q8w4l!TuNV^@od1@|V0^udD%XZ8_<8xHA$0-mczlMIiD z-yp3%$AsF8tZ)FgOl>*a5}-3E%b}Mjy^?&Wd|51`Y@)A;t at HAo1NO{SfD{E+;|j-0 zJ9h5ON|gNs2G|hmG~I*@dVb89&>?CaETZWgK70md*rS_#9n9_(5o&UzeyI!tQngqa zaVIHbLnQ(Zah!5+Ra;v$%|7T3g&}u_dWHIoO-KIiP{Na8d5ya9;$t2C|KlO3yNL!^ zfwM8Q14sZf&7);Tl<@G=Ps~D#Wu|DylfF5xX|NAxH#gq#qNcfJ zkO0h*_sw^s1!f60h`_dOU-28K;LK^$abJaVOU@`1XF@}-1ILFw=IltRwvG<{3W6+j zyR_bfKUQVnXU}9RWubtUoH-NI@{u_(6l8nf$BQekT;Wf&J6es+)UaXIjPEC;px9^H zk>VnD&wU6=CQ2BIE4g;>pnhRFJ>QuV;u?~i32uRXQV at +4u0UG?l74emDc-5+fu(%H6 at CpqG2rhYdL}JIH9&XP8yvNn at yl4PyM^bC_x1wQ_Z-O%OmKYPAkkah`CltYAUZmnPs zE^$o+6QKrRh(Z!I6iLOkINmb%gH*`F;HPq@;o at iq$;~O-J>kBuop7>vNh`o_$K{+V z$a!Q=kn-nG+%&NsxDtbZU0qy8IhrFIWtEUHxg8U8^O5tP^g#HHCQ$}V8S+s9JMx^Kj+NRZ%oU%qvfpU*0>DiPJAH%J48TS{#Guys)n8pl7n4I z_io+#Vc4)kln3_ql{asqjh at ZUXC@RTPtHGiatXw^C=5*s_2c7rk!Vr@*x)z76(K|xP at 1^BSyF+khHzzz(WvAH)2Uw{q7C&=#@2?6*J#lPaR zaMY(x&ET-{6nf<%rd57r(~?P44ZjXnnlW041fr?Re-~ve`bjz-#)kv<-J~*QM;na} zKpRWYiS1%tUnZ;5{IIqXdZ0y%*7-Y5r6nD=mg2F|*oqcTUmrJRL)~~HFca2424>1H z*45SuJN%H7QeQGQ&Ej<8OY=E|_7t;RX6mjrW at A_wUAUIK|E=xoThfZEqo6=4Ek&4| z2Q+JtXl`oi+P^;nL6Ezo^R+OCf(${CNin0gXE+8N63&mS+^)-Dk3)pAALvH zgA`kjC_cCj94MGHAeCnVkoE|;!83DTkT8wNlrg9nB5=j__j7eEY>(335b)p~_`4S} z(X8O4%dQv$Jw4He8C2&K!qlC#slo(4I@?~)L3^k^HgCig6@`!3>@*rUnm7nA#M**6 zH$c>hP>v(`H3bZ?Ux*knlM6y{7Lm<}@~`hYBGBqLZui;fZ)`W5xp=X~uv~PFAUTL^ zxNk&1Dm%E9_+RuAeU2PEMwr76lUszg0C7Txtlv2xTz85VY at a)}Oe18H5NIv=84*5v z#_i+Bksc__WU1g-p1c<7AuJ<98IBU{I*jitVD=a_P;0F%3vK%JiMEK55|m0br;y`p zZ)u)}nd@@afv8ZgEY=gpaV=1QuulskKxhH=lV>ym%Dxtsmgg4M8>IVlEZH`F7U&mN zlSd`PzT+m9EBTI-9v>ISlS8KO;}b^#IB?)++-sRxN%T2|4Ih;QgF8INEQwM67 at n3~ zFiAGl)APs6>fl%4XT=u4Pl%Mg9DCYB1{koHag5!WmB1PaJWVN6vIUKokYlxpTtwbJwnTCsEEM6)M0- zXpbT3FfFR__{&eweWB>)Y4fx=d(0%Fbpco)p0GKZunn=e>ou7Ln_NNWtF09a%K&Kv zu8nt&B-?Y1jG;+NME*EYnZ^pk3K%e|JK*J;w{E4s{y?A1H=-|~Y)Bs^I`5AoBuo~+ zhC6}RaYZB$5*dc?&u at aJ%G$qwFm_L)tq{i%_F+7!!5ML3=MP&DwYAc>Y)QRXhdt{F zy2zbFR5ip!?k+MvKzlY#){N2#spj at Rzo=DL#^7CiyyWysN>R=w=b7h9I>}kjy7w9& z4u~}?UqmFC(_a2Rn$A2f#{KQ%)6BF=jU-8GN)kfokff$0Ax at TKU#4`(cH{^lnrRP_ zB|?~F$?sTlY+0KYM+n*DP*WVThmftF_np_{kLNkRXy(4Z%e8#2&-J;gs?-75fN07_ zgND9g4O~K=JMrRUI44MB!|(%9)Kv at c(a*l;%)W6&RUBwg8s0a>e;33v^3nKs5|m=T zj8KKW0STn%m`DztLEA6X2zC3P)zlar)qpy&G}xxXH2N3XMb;7 at V$oEtC#Zv5D*?kN zBtxZ4Q{SFtL8wp`a_e~=Wkjmzc!$8<#3ESadNOOEXn;I8U+(Us*#p^kHV1pnTxNuE z`vt{=egJylIa>sx5Rngr29pexORlMCjop@(gv zm0B at w(xiCfeqmG4&%_bH#iN at H^YRK4hHM4t_`;WCN>q-~(*tJ|ei<=gf=zN6Kn}?n zS6(3AefmU>0}UCSQ9_bqEI%E9xMs}e_RLJW-|-FTH!}xgI;NGnzAG5*%)BDs3dpQg;gjt#QEMFpM{Jnh(x!An1C3(CsZCeqHCIRYfzc5VPf|{AY=?(su zO=W8}iNGyMt&$03=ShtHhRn$4lh0Y`uYjb+q-t}4m*Zn3wTug zJE&xflwz_hqH|0;DqSd^iPcnFHmzSTF4DpdAkQQ7W1y6m-C?9(ii69G)O%X3H{#er zrzt9uc>e2lW8s1Y92Fwe*wjdcLJJ~=mKSjwj}S4{j-afd0C6eN?Z6r@%6+~GMr+am zgm4<{9jBS?(#FMY0LglRtUzs4^z`Y@;`l%aOm5c14(tl2LMY_H`E6TTTpW)xVt0wa zS!<99YQ-x5_<(GV0wqIg{M>Gb;so19;zk-Wxos6^m&EPv0jP)d;7&2nq~O}M3QDpB zqeWFD1=Qg}j4y^Bfg5-px6Q35+TiIdjHH(Ijd8kggb98rYt|S{9LJ5L*KFueA_w(z z2VyRian`S=P8WN at 4;%vmG-(r56`}z+AH- at z3#dS0Rw<0$oWd|c>M_I=Jgl=t3J=Mp zj<~O0EKhcD7-y_7s-5WDy7a+=tw~9Qva5&eq4^H17Pm+nQ_+CF$VFcWy--XEB!dbl znkTF at nGBc#emUoZgHs-~0x~Rog5ec3XXSDI*^XB1P+-y=2cct{VH;|O(wYaWTvY_eH5n&Z9#DWD! zStAIkEEdhYg9h<)<6SEty<)*&U#Vxj;n&g@*fZmrd4E699|d&5oiRalUrGCr~2Z1sID18MP;pow9?VnWO(I5k{rf{k~X;SwQxofh-B;$#E0EwumbzxpZke5>G;YdVOb*^9H(D$BYrQfld_Q zkGTyD<5BJF^-zCpyM6}qvMI75cWiEIs_^&d)M+qwzKLWebgj~uLc~DNG&^Gv4t`^_ z<$rtkK1GboZ7+sj^3Ujn3y+g_SglImumPvve#0d|0`jIX+I+gn1_D%bOrWa~o+tJn zLnm19Wvm_ivzhJ_!oqfw%;43So`O??G$;+CT?1>}gI2MbE#T2%Q#nM$vI8FL^=wDn z=+=+P?RXIR7eV{=MmTo|DIXapb+TctPUOf`l>OK;y5fHO4PuRU*jleey5EJ7WIK1l z&_qQAD4#%+?IW|u(l;>sMJj%G(LRQqC~sTzU4Ux1jC?FmO_OMN6b;^(_Pijy<8GOsPD-Dq~8FD^^OkTcZ-4vjlUJVbXgfyJL29!`)(1`e13JGb_Fik zx}h|C+0IdAY0-;;Ne(HBKi)8-M~{w|Dd1n2d)b*UbgGFh=w{}+v}pw3a4HdW%p$u0 zRUYvbxSK)F%=2VaDq~OaBJfU;-(QY%#}c!;*mi6cRf at 9a^xhKe(aL%L{FLFt|3I4w z+ltjCk;44nzrQ3TBny#T%7HMSNy&3p3r%mWS`nHjj4+Qhs+u)^^k^h7XbEp^Zx87i zTbA_(OK)-{p4(;ADb7NJhW7si8G3~tVU+mCeoh at 0mY#St9^S^&VLfDs3H+^jowb!n zsLI9uav5`_9XogC*x=!(ju=s(bfYnZfL7fq>%ak0EwjF<*a>3tf)T^VkN-kbzjiS? zq-0=Jnx4R&nKli!7wU%XP(+Mc0c#3MyGFk=%JFU z#WU;%ES*;bVIs;PFDE>}Y$;x;HtV?#cZibAF2@b+T&U2FT~kkS?8~=r zmE;y!c)}1`W5$#PIvHCTM|!rimhd<{6pzLO@|Zj-100lTxuHG#^g-vFb03#;6W|rc zk0gg~c1I?EV;dnUy4XVMq*jNt8=nnB6H!}Gc?I=@lb_i^BHD=grY0uhGgqMA(J%5{ zU=_3J^kV=6(Sk%H0$g9LI!TxAHRL%-_(TA)+R4b4uv!$anNj+rWE~naR;zyFW`4I9 z+}|E}IMy~cemVJ^#4u6tapUIA6Uw$jC)@Z0GB}?N5C$;C#d~;#C{=UayfUA#1HT21 zk{gYu at TT?(91k*x^9K*0nf1d59M4||4m^a}n3*|g`SSj$1l|j{#%15GUcQV11#%`C z=v}^g^^mBL1PM5UkcPFyX;5ZH`GsypCh;H at S6#gei=xpe2^drS#rd6fo2OZgLpKFQ zpvP-{#>H&#{V5w;bxF_wVj4}Lez_#BwdtBhpcEW9rF24PSk{!QqrA=o=prk&eLEsh z+t~QxRvdDm?Xu5bX^MgD$fMI$U~uPLvV!)quaW71J+QJArhq at K zPe}!GfU_u6gYn`aeM2<_**W=Vl!O4BouBokaXa_Wi zqjw9ARqhrcKW3uXh0ip>6{s6#o8B%dq20aWvM<0f(d z7Kee#CabL|RGQZD6{-O|zFXTLgG_IeN59ddETBFJgF=>~_FnQ{8mb|qfs7w$>h9 at j z6RIIZ!bM at 9Whu1g^mqNzc*Qy#zXtwZtRUkQ1Y7|ooeYFh{oA+Z79E at nY+APbu+}=9 zY^GRIRd$&mg6D z$JcTYc^EtIXht~v08YgjfNQZT=v5#;^_D_B87{~0%%A at a!FqvFup6Z6R52UjLJ`n{ z36POf5y8MTEHjNH>Ef>aR88vL`_t4=4UYj-#PafB5l;rGGz=(IJ?|QAiIbE`pdfu4 zWXc>3gA{da#kI=He9TFTnu!jR^CI+2#$d{bNr)gDC!5|Tesp<>=U}y1GvzvFc8#TZ z)k1>6toUC+PhRa|(4!3Yoa1E^w8v+}M15_vkqlfkInWei(;`^`)txIWlN>*KG|srA zZ8}1LEKSOVP)somS-P|OJ%XQXn@_Ci7ctMjY3^KUX%L|cvB%VD8cZk|rA$KOD&=Y at AhBnSH(Y|ZS_lU2 z?JbieSy)F$@hNHW{?W1%B(WB!m1M|~p8bj0J}yqB%sP)1!A$1r(P>Au7n>aJ z{*^SD%^-!QaDl=Q;)3Kam@{rUq(X{am|JcegdV~^AVR`&2qah5p*hyHv4#kAH%7 zQVa=x46*!^=b+TM`#QYFh#JTR4C{s8Ei~y>wK190`KL4(^ScXx(h2iv1mVBJ&D8wgE?ofy35we35DI0;1ca2SP8RsPRnT zB`IS<-SDAYE!-?HS3p1_KdXI+Y1a86qI&<)qvbT!u-F;j>^&o0Kvk4CxDj-9F!$Y6 zdJdmS(UCM#XVBcElBgTq9pC4cZ$5%gFzNt|*TAv^Et)(#P^*2+_pE*U3_rL8rod*R z^}IvJj^JmGvS`ok-bi#ISGRMgu#_Ys41$k0h07&s76j_~E4x-66rUu)G4>Eo0WFZtq>Hmz1$_R9#kWWGj8^pr{P!d at gP&zmR z{CD*_Mzc_=yjR&WgMjQP#XU+G+*RI at 2+^!rvk!H3UeWcrNWbB&06|o*5=Fi=UrlQC zxmn?5_u at xPVmfwd>dG>F0}&7d^fE_Q#hM6_u5*KW)puHh+`b;U(SfJwE;B-YG#?7np^v z at XU-1WkY>f&r{_7oL%BBEWYl&_zqJ!Zxt0i2Kyj*jd(%74Y&%PR>uy~XbMGh+(8y?-dl?^-P z;$yfGMhPj(Pln203=J=mS*v0wMnY&ZG&F=mMUyB5Ghja&S8|~f09**%^?myWQIml^ zN)kDCEF&dJMyXqg4tJ%ZN484(?q+C5%jCw5 at e`D)PJ*=U^5v7UwPI)UX|?2%VGQoML^Q9 z==l8cossG(qyeV7y0E at avw*B%hTMlHv6ncPyLYi8#J`wL(gJn+?#|Be z9$77#O9J=Z3UNg7R|$E-+Jnyperq47$p<3)y6LS{6f6%A`kxAF9mL>^Q7C(O`kfE^xVo%TZ7X^)=n1-_) z3r&RHr_ay&umA at jDDkaSjyVbhLL5BWs>glStGj*s_C`ilC`}{U#wGCdufPPj_Z%Q6 z3uA-A+`E*R|D`5L7+~P)>^yz$+$QpPpY6l#ZEb^w4h5I9&#CSYXsLpV13*$cia?%C&Nx>~8c_BRpwTYcEWe-J z8yX#*$-w5Xb(gRbK#?m~R^Z>J_a)A8>kX-k6TwAcoP;2w_51I1v%#-;j+Lyb$w7!o zwo9vErVI0;n)T|s_tw at +N=zlzj}U-c$~$rrIgj!m)TJPDf}87!xWR40dH_Y|E<<)D zX!!6Q9`j=p5-wC$#y}O6Hk6m86 at beH4Y#?OS?ml%<>o9| zavwZ1J^dFXBm%N0gGFuJ!d^mqcWgYUzo;oKs=eVozglXR1lNba3_%T1sTu-OA??VY zN~m*LS#3hJf|Q5|4m6wHbPi|y+A!whYSj{+Lvxs3hBba!ZljbOBjO28uJTI^f%%r8 zr|`2reX4ly0Lc=@`^4QijEND;!!?&2Wyz=k<+*ANNGEpDyc=PfCsp)|MsSa&ZGz!w z`yfTT;FnaF_K)uDe;aqoy&%w_b_LO$3j)7}_A{^`?P+Omq3 at Q#92}r at 5rP&sUns*# z0obc5gc+f&_Q%Ol+?m93Ao|p6(get8cLw+epiB_AFy*$XbEwk(RO2>rG6kw%OM#39a1>#2X%v`NikBG4@b5R at j=cYAk^8k3^+ at E=r#tiKB(`6VsoIwLLG(=k+G_MZ4$EA^gECxy{S0&^35B7 zEJXAiNmsgN1a)-5 at 7b-b6#N{WICt*Qj|E2toc;;j8qc0#jA?b`W~Y(Gu(nMh2la?=i;MS-L%tg=uYR$($_)Y3$*e at dtU=^=$7&e=x)0Ozx^(me8yr_QwPFiQFx#YEfzyk1FBD{}u;fwQ3s6<9|T*VFIb8Oz^pUSwn) z;SyF`v>H|5JPKcQ^^|yHUj+yF%om%-%vX}n;0Gwg&LZ4#4F at YiH^n9u1}2upFt`v5 zo1}|KWZoZt&}Kl*pvcveOk{602aSz1k_v;BXSp#Z75H0WwTdBcBlnZTLl0M0qs%;s zsLbB}Gpb$Frft9n-~Iz|L)99yKw!Fm^#2$zb9*DXq&i%pTuXu0APxW)VH8KGJ8|bY zKC0hN0uDlvrSnHNktRRd`nf4wE($xQ2JLxLKtzVocIEu^W}n>tQu`USdQC&V^7r45 z!@umm9x5BZLNSW{RqimjW`d+?PZi(B0C(oo`0C}}o;PO>1Rewl(8Pg}0BM5eU(S-B zZ!`^5=|g^_S>tlgmgh`6&O>FBRf95C6PxtdM{}K^j*_^dP%p%%dv|lSLR)IAiAuhI ze?0LWofbB!f~FU%ZqEp$;C*TS}2v}jTIdc8}`d!L4(1y&6XmaXqcu)sEOM~ULy^b#xE*^Y#mfJKM5 zS$F7{-n~&^LGT?~#JWpi*lO^fagH?U$1CKJ5eH}AfJy{`6R~Ef5 at 5!V9%Vk5zAl|R z(`rqC<**#$?e$BS(1d}qP%^p^4vf-T)Xo^|z;a?4iLABqc!w1nga|e4;5+E5pE|WA zEluv^L?3)R+SK~=xw!hIz}q>uY%zubU1;KF>Q3A`&TFjIKHgs3Vj%O%Tt<*`k+&%X zQmz2E6bIuRRc%jGb_M$MxW}jmSf(m(+L at SfsyDTfZd+^!)iF4^jlWS;9H-(m!oSel z+I;yk&LJxkd?wIw9l$zWQ^v>j2s1HbC~1dSt>spt at 5Nah(B5l~gw^~xX|LP5z_4y1 zq(~GANRF5_@&H{2q+GR)lEEWDmQV=P>2ydrus`5k5T#^Os5ydCq7hQC+m*pukFH&N z0|dkNfFJ>-;3!f9iZ-d3gB9)$B88s-Z^ZUM8_Zn}6##OI5TL{GP%4#m7ln37ye`Z= zFe^SqYeuV4YYPkdj2~l(X3S_@>w~B)SRED at c&?pybU9xMG!``F0t*UQ9^!-O5=?Ir zJ?=e51jj-Qgobxook4d&V3xOnJot%Uf(cYRtl-mNCkt%UGMLDDzZBk_H+{O5o!u1L zZ9aE(c>#RB2F%<^1m at 0C;=ox}%^?^KchP#EFjOz{JMCl^DbfH92utlQIPe%ceDKpE z=xTZ{_sP{6n4mcPmNkVBp@r~xV<;>c7 z at L#vdr;#h^B$r1}kRjT~mdy5rC$2uwvS at Y&-?FT&d(1aMoeaaPF0W3hQv9ctVm*ut%8w zh~5TdKRUalrCKowp|}%$xJTTko?9N$MnEj(=!io!ntPn11-pW%_0o}~QH(Ssz!%^R2O(#WqR(>qhMG!pGRt^(mmHJZb7X#>|8frMeb*g(&hrC>YmY%CD6_o zG*15pjdGlq!@GAQ)xT}?X2Zp;rQ#}(a%OYizAc^J-MRq`LY66V+d^4I|4{_NSZHV= zVoZ at tRWml)+mc|W zuoK)Rf>nv01lj5AxpP%AuI^^~2aj6G3lfr&B*~!^$dGczV7e-_j!2CnA*^y&fZCug zhA at E(hux1 at gYYBXphI3ac+LDCk6>$}9N}WAR-jUWiKb!z0sQy7+s&IdrRU}Lo+t`G)beSOx1tn~dhr`pOgM^7YG>4hD^E?LK5kpFU zG-tK8U)GJ9MrCwivo9B4#x%6&S%5k!tobYc0SZz$dO)ul>=hdh?!r%1VgX~Ll+$@a z+EF+^*dp!<8!gx($xC%0*ny>n=aVA`C`_C`iLmfJX*#AK at W1!qwNQ=O6hi6rIhHiQ|HcNrzpHA zxI(Q?u?>hdUOJeIOXde1+_sZr`}TUC-)Jr1g5z(&VwB1>wq{qGqeq4_#1bb8 at T%%* zFy|oQ!GQ);WZu`+NhiMcY5ZOk=G)RpN^>elgf5X@?d!O{X(MANDB+VMoEdq6=c5_d z*GNh7fAVDO(@*st_GC#vco7KI`xkj#zjLS6)7Lste7AB8Se)VJ9z3uq9fL#d!_;WF7Kr5?KiP|2y&+Q63pLE?*w$r zhv2B%*x6D0rlRmdI8=$)_bweIb;x zBt0PA;t{V2UMX26_^Atj#Zi{b zILB}cvl9SrP**u!C#hn=v><4KR!!c_H}X;ruW9UVStBzyGSW5)Tu at KVHH5N z4K*(E)!Vs5>|*ND z;%Kot0$UI0uJPj^L!1Gv8DPVR?0;_E+Auhl&U>5*UxxeTj%bEE#qz zkRmE7%s!cyjpW{E?ZW~yev>lHe(WVgABs*`7Geo{KDe8U88=A*jLjjky_*l5hreT! zGBY2N!oWj8B%ovW?il>tC~a at o1Am9Chil`6a=`cybHve7QULjWC(0%BC!VFs%AAg4 z^9mcJ^6iBBECM+m{tgVbt;z~4?8njfG-Qth3}dV)DHLHrjAypIGc8)92$TrYFeCxg#yMk0Ji*330+X<;EqyoIl378I+;8nTj_+XZc|Fy8321JcQ0IuxyL_W)qP z6SGlvWx{L+fENyjZuZyucMQ;I<-WZQ-5Ou!Lo|gw%=5`s^@Dmu%BULF*52NHFZj&w zE)dS3u{ z`$G^$ay+lIUbEAT at +N~h0rj at aA3fsE=(i1{P-l3*H9Zc}lz~F($3>V8L%@=JJM5yoIhiOXy z4N#3i(B9>&@fpk at N62jnV*QpT^qJ!=fDp+C+n6R|D^w~ig=D#-=)X%Kz;E6_mtoC` zgp~WAJbuinCm|n*O+I+&kbzVhL2s`svQ%VqDbUl zl)VNefPX at OW$a;D5>v1YHbwIvCuRDo-5zv*tZuGQzyM5IGnm?F*e8wyL(*Vo5{;85 z{_zL0kLQSgYi_h>-BH`1B*8)Kx#bmtf5pehmPJ9$S5`v};mn at L-}UHG_3W8|%wN6w znnd^68|(=)3g0|x+q!k1e*Mls0o}3%si@}ViR7~-^|u)d#A!ECLmCsNxOPql#vSft zL5)oHY!5x^PG`BQ(Ag#W$=LO=V~HlMB2~b2+<2&~zBXHELHPC8?p|KFLSv6or5$D?}yHTwrK;QeK4pZ@!;ZR%eFOX(_jpQT1C&E zH_4^}C`XQ5|GZJpG!vMT1_4gX;luL?g0Uo+`^Aet*VMR_YM(d09a#^g)HI9wXY(Ok zf2bC;uYkI8JV!1e}uv40PfRSSeb^)SFXmm+P z>LkeYV(|DnzBD?Tp|gj13?2rx8F^L46gdz%Eu-YpXdaS- at dk8>if5W_%Hl$SZS zu_&=HG3!F;5egI$-;)Xl(Thk_#4RNklA0tC8gI?aBkI4O-WD~Jqh^(n_bI82GP~4_cn`eIjL;#&k4T?Ccn594`gbaR8?9djVK&e>l zOCT&(BM-Ri)^pOIaQCg_cS9yb1&DA57>xfmGwoz_-)~6U)tUW!45+bvIYn_%3Z#DykK*HyN!2>l1Y|Lxx5S zB(>z+2Agvg5AWHdKVHfyK)BGtg7VlfxeR=zph(niA0EH-^5s}jE$Sp(9W)RDg();) zHfUg|jq)Pbr87a<7e&NAMAO>_ at lLtDxSQI!XkA6IBv6(O;!tcR=4tjh63#P_52+kp zg5GNkLGVmM9iEp+SG4c80QXw*tT6V|Pj&mw01n8h0VAn_cisnhMBzJ961jM>&$3UY z9FXU}q~o4MnG`vR?$m>bCm%Kyk)FPOeGoaB2{giypy3>W2iQ=}amgaF<~>y=M8qaR zj)1vCBmwtBD;@ZKwgLBMEG4=gJ=9a`F(06-Oqh*kh%=PDhzQx%0hkJa3AL-#?Aq%X z-+9W9C`9o`WFr3lai>96WBp!_+nxbRoLSTrMg}`z9hUoMz`bB>4 at ek69bni7Lxw{mC at b`rF{hIWKi^(r{Ami| zHz^OXpBEyl5!7U^#sRo|o+1WLU|(@3noR8?1`Zijxt2dCxbUr$$Ra`J9v%WUVa*Nh z6+FN4N&y?Qkj(*Yyd-%&kk8r4CrISv351R0m;FHzQN!yREZ zQSJxUhJJ0h%FN5a1MI!ja_vR*c%3_R$O?8TrUb#taC>wX+9wHUO;By4y^4hgS3Z0= zMyFN(_uub|+Rf?d&@^=K>T#!}K|HRlnJ_!_;X^>6kn&~=$KvbS+1OyS1<^_y4~1I$ z*`zZ=95Pv!n#2OG16q&N8?QxZ{&=tJhocmE`X#Ax+F%vE4#QE$WWhkTnK>#ISMAtj^ zBN>RKdXY#RD+ODE)a%-|EsU{yWCz5(%bA3nca+yBo~0U2>Ligm`uN1Knv{QlDU>%w zZg=5P&?2wBKv_#vQASfrjy;XeWBHl;9LNksBg9EXgwlkgOzgpiP(!JmMwhB at cuVhN z^iPNqre8kerX=S?I1kxEW_kUm)0N%1le%){i#Knko0$?(!yQ$vXb-g;svl3uF?_KI z1Q>WsDB>n)Ne8GB7VjUPB!q}<PC{9S6qV~fdUPaoqSESxESqRPBzCY`1WwpV04=G30ZKAD5=$~<(jTo(D`jMu{Gmk=?+4B-C%=7&n;Z;g)|zC`;Av(S;Z2` zmbf3B4p3r at 4H+TU5_+*f{;d!&Zd*$b6|B8BL|px!t^*8)RSX7lenFH^R%vTy*!nY@ z?z!C?#Vwf(c4Rk~=W&gz5Ef$3_;{(;WC~zJcZ5N1dI^&(gc2|YXDw`wNSEAqTt9%6 zR}YRi`yM2lgEzfTys3=GXjgs310BuF%h*ri1yOts&Dww{aRnl^>B`6Ckq%>M zdMH at V+=Un#;+Q!;U?`M2AI5&nxy^B+ZlR6mh)M#_apCONCPf;*`VKLU;F?vz92iNf zd1X#8ghkmf-1|;SiR9xVVK^q<6{4JS6%~~_>O-E}k=8hkILP#|Ew&&Cw1|cWZk==$ zqQ@DTE){(ngD at j|tFg+U%Va+l6+2){5*q^)#GdEK(3|aO zw|2&~X}$XNVfqDARt+QbXpP9+SoMJX>%`xG(+d0opgr<$^)QG$$mjD{tIDaNiFUjVj$G&NLFGktVvb*h`X-03*N{t0#>m0urndJYpCtA-q&P288RC};la>5pEwaH}%hU#&9ik zugop|xWHTrY%X06Ic8MQ6KsDcZ~+0se_?B1Y0A!=1hzs2z;k;8As+l+J*80ArIW-U zpSxyjW3zSV&ZNEvN%7$WfW=U7LnSdg`!Tv1Xqbd&X{3Nkj4v8Letgapk%vDJ>Gt6< zpWn0#6y)x?KxK$+PdSfD2lq;Cza7EUv+|xj*B2-uffQwI;Q!ax%h#3gZ8T4Vnlco9 z=T3yo&@q?vq|2kD@*Maka#e}-t+y*@%{mR;ob(oElaWQicLB>F<)uZ`c_Wua-j|Wx ze3Vx29F~C=L1n$*uC{KKjnYw5*}8RU!}q>ra+&faAvcsXVTv6yIoAcU at I>b?+H1__ zkZ0lfz{sXgPrPIYxs9X~4 at jsLyaPWZ%-odAxDMdHs%<7={Xm0=b2B2RHH|QTI at hS! zo?xeU?-OLQIV0d^!y82EBI0Nl@=JICq7vI8lR8Iz=e;(-NG^(_tSOApAq zcML3I?*wsJc8iONccj-1$r5|}%AegUzF*)nlX at dVH;WooTmilR`hVq+BGw7D6UH_a ze)&qG&2c0)g;?D|W|VtUugfkJlHet?An5oM6jVV4QX~p`UuO at UKK+%`$srF>F#1e% zGk?d93Vxt^d6O9lL|}7^D6r#C0a}7u2KxI;Jsj!z20l==Gf#Lb#Lw at l^{rzNELnY* zY?e``VM93LY%2gMH0~`2|D!$#oW+5{1(ObGnz3|XFVqh)AAS4v!(kAe at 3l|76les0 zeAuwxA3ReZq4`DIssh9YLTQtz>`Mx4uU9hW|$)AS)D{SQc^~U|hfm z=y`D=f?$AkbG8K>UGGbG3Mn{lrBC#?PYfYKTKG-*ks?sMrof+&lZAjJ;8p_VT1xX_}SNH0bsX-cLZ_;Y+B+=Ah zd5I}B3hAT%J6WgW3=e0i>k0% zL~u+ABgv&C*f{OEKr|0MqNA#}k$`-L#YTEl5U2Wm)-2|a11(c>*F0SvkWCO86cn@? zYTxrrZX{nz`9^aX+Q@(lEyZfatAUXKkWhEvnvkq2+YTgdK&qYECRT`V7UGdj%b at rZ zw;pOz*GM98A;`)tN z-0=gN8#PqpQRX4vVscbfks*@OSjrDFNDd=Zgq4J$G>JgqhX(d^-U7&Hj7T9d#SXeH zf$(J2vgK?-ye(V62SU)iZ{g{Ud0rj$)j at -J z@~%`1hwq~euuv+DM}fIdnN}+H#p>@!q2U5U$ginVDf+Z~dJIpZn+QD1wmhIL7$&Av ztMo^;K;KJf)91CN;;iiK0ZtY)yHPX__XV_7U1F*ltSy5jv~t+WWdNeF-hq_+Xh4E9 z0<+EA+sRi!2q= z>C}76uAV!8z5*6syLNM-I_Wu5bf%G#UPg*Wkal(jlT_0lOcY_+s#VCRRTn}joX{jJ zIpX~Erhv{=R>Fv~h3|$$IhiT0U+c>t5Nef|OG<2^y at 17U+4JJ%%V{Hf7tCYo21P+0 zu#z;y$s%j_f4~4>sC}z5sV=B%cyV)tko;D894_#2HSVjx^-3m z{iknj3(8Kk1_VRhvmL3`q)EJv`ConKY>>g?f4Z9JHti$m18xhc5adtA-8K`)nIzBy zik$Fn0I5$ggy+O!fX_G#-8g!XyjOfLr#$8uMdnFb>9!IU2+PkVsICHp5R8;#DF&WKqJD at X-)D>{A&OvY$G|V z>_O4RvU6KvDxq;@)NybfiIhmX3;hmmuJ|ER29X%N zoaVN+1hc^|q=@%!+)&4DYtpnVKo85qmuYt<|He^VNfv2(gDx>{PJGyQ_#zev)LZin z<}>kYvW;HUdMXN>4!NAUsA1S5kG{k~2wk0@|2UE64L+i at 7li{d5E6c%2EBx+oTq9M~>nb zGIlO0%TBvG_L1}pp5M9XFFgq85Hc0;ntq4)2UemwPY(~p<$3tEGz-cl5P&&Q!uYShcGFfyr5p(n z#>_GsjMMaMVC0Lg>q(b$Y|4ZY6Coc3 z3P$+=YD3XMf*Rk1V2W8BJAlui2hbj~#*Bpl8=gWE&+8Dy^60v(a$2ygR;9vFz7dWF zA|0!A29Zc|zW at k9lIaW}RKQNW*K(cl3PK~Yd3+9 zd3M!KUw#kC8%58IA$vHb1G<(1?hw=wc4s}vLtMt+u`0sjX&Fu|3Z*d;;S~RWii=5g zVRtneA8OXTIaD8&P0~h+ZaT)Vg*3$ZJ5tfUs&s=9RTdrz>x2<|bY;-Eao_-9-JKgZ z?qhoqUaYG-MwCM&x^Uq~R+`_&NN~o$FUjT88tB2N$-5S$!*W_#D2#7nQ zkF*3Fg_8XFyqLxYI)wl)YP`f#d&83G)r%6^lnE2W9dnxIoq|;m+TkQ41_}!4 at 2W4r zOp+^D73RD!B=xfN0_0ez7Jl|m=vKplP`XjnZh=Mw(gwYTjZ!{RPw5Qx7xaz`uh_ at M zp}vW!qYLdVErTx($@|OzI(YVMGcyAoJox(U^Sp8a(t|5OJ~WEiuVOKCN3!{Cs4Y3W ze7Y(i-Ed~H>2yVri7)&1scU929e)@d3V<06JALMQ>84H~0h=-fhCV@#>>q}z at F&6g z1wvElL--4LzWUv-?p!3_+ZtSw4nWiOhW?K4cxq4=nAChcY_n0n{r2OQkuobaL5BBC zIckWk45L~FrD!7q!pzpKTCp+hP?DYCK)pRKHZ~(~A0HsFz|W(%j5Yx}&Y?V{Sv~u~ zuE5}0dyyLvXBbH#nbE7IrKZ$O-$=g-3}AHTRKs at d-c1^EjPetz at RVPS{-SY0uR3ji zM5tQ^r4!Hv^&9ic<_kVjoS{hE{)lQH^CUU$WR#-DXSDBgmRS!W zI#|CRw4RM2nxxZh>t4mfMf2yAMIps3v0B9(yc)3Ug$sY-^fb7{^Tn!WdE3BrPy(%9IM^wup;w zZ30WCTv|FC2!M7EYzTB4tN=1P{5N(uHwG7>cs2-z8%m1F0of?)0f$ggrn+i++JWeY zB%QZmqv$&2+2rQ<*9tD`&6|ZJz;CXj)M#XEOr%H%gVdl*CVJ^@xArZimIg1zD)j7W z!L*ElH<8##N-{LH!1Hfl{yVwDoH_<*_(mQ&tAN^jDtn5;q6-=PfwE;{(

hYp3`E0+26>2nXp)0#Wr zqM|NSC=D<|N2ft-onY96#_b1QhyDS at A^>YVa->CKh3sL%>bB!lR8J99ds9DhjHr9|Ck5=m>d#}Olu^a*{Qxl=|WPrAFa`8(-trqH}Dsz6ndQvBX_XC zq&++}ys%8qg+oZ67;L>Z0Q$$rk7$3rM+F6#L-$?bAarDc1aJ80O0n;Jb{Mt|VUhBT*o27> zM|o1(#g=X%Apzco9TCBZL5??v+{2gLjXN=}hiDx#Xb3!OKHdcy?Ys}`4ablB!1s{c zAtppe4D7JkVPWw_RmuL2=|lQ+(_kTvACC;?S)P|FEFcRlr|1z9$Y@{ugVZ~6=VQh~ zV{X%iwxW!Vh_L*DN>x8!@B*7uB=ER&L}Re-L_R`W-T_1yUZv?#S`a#(P%duP4F0&l zH+L?f*#}9BW+o<7KyHQ~11YEK<^YkGP=+MXK`zpUb5IcQAXR2<$Y`m_ZcHZ2S6GUk zn&QeBp at kDdeNcN$Z-#|g(rj*4O$}Te0f_atCKDoH9JFU7<KiwqF;BgGIo0+`Fpv%b0$WX9zK+AdUt{h#Hu1_##3VrmYzx at 5xxQ zhV4h7A8(!-(9$R#+;RHL9mJtQJz<0?4sPACV+AyCRUkXO at cGRSIzJjq==R9ivISXq zS%3TfOQmx at 6A*)qlqZIC#k|QaQe;NfHa0-J$5CgY%K6(w&IWm3w-8fGaWqp(5{jB3eqB3 at 3T&JaBu-D+x` zuqU{|I43eCB0ehd|5B_bpW5l#o6Z*g4*XUwBhJ9DuxZq3p|wJ|APgjsBG7^fNB~M4 zk48Ng=`H0!fH({fG)gi%A`xm01YaSE)(GE&!*sqW4LqF0H zfn-Qu6yNwXqun1jSufNKu27(iD^NY2L5B#&^;HL)CdQDIrM4V;1kRBTzVeSD&j$}1 zMk0=!G4Hh2u7B)0YpYei5SEsdh~)l+0I+H3PSX#(MmopB#~lg-m?zMy@=9nrEz1d+JNF02{HZN< zTps|VlHd|7(aVK%20<3b?Z$FGMEJ#IY zN;Dwq1bO8+1a}6;0v#}(f)o$^0 at l;Hc{RmFURu{f9b}R01B!*@0?o~xOngtUCn#y? zy+*{-a_vR-j=&7Hl_0c78L~txI5)HU*oEpKv;GoGMDeh$#2v&gWIbKXHcXiZmJp9*RD30E^bqmD=hMjOCi3d66 zX*Uv*d%NqA+bDXWTnkG&gW?J^3EvA--4R8d6&}tU74D?f at UJ|o>>&3J+EUW6dajyo zV$v)mIc9-;nHsdTv_!|Bv7C#)*U!g+ARy4tu)-r<7Xh^pn4Vk-?zVADbRS-Ww-g08 z`y}EjM?J(ib6a?85Q{9M1<}!7Zf*i4FvioD;xr{-7TYXo0orEWDG*G7aHJLFQL){+ zQiKaAhsO>thBU*S7;yI(1@(&;4R^pR!Y-Tf>$=7P3Z at Eod+K-UGb@4fIWY$XjF)P|Ux5ZA1L43me4Rrsbde;y at x z-y!1$!x1Msp- at JtjZ!f^T*5Re)-fj~X`5dCd>{!DZ-5`1Eg=IpX)z#HO`O2*xYH(i zX5%ffw85TZfi=TCDq36D#Ukzhs{BYCV8&TRBY9C~zw&8xL}j%Syf|tN6-mA_ z>uD7vwg`uC)chANWb7gpNh*!6`UjcUurnBQcz{{9?-<^K!{fFdxm z)R>_Wz3b>vw8}}kQWSE|Ti#sqRlqeHwZfKeI6D9cIa~{(s7}{_MN58*Zus8ji6P6# zXBizrd`Ej#iQD1YK}y2(%YV>`k8vavfU!+;YWTEkmo9~z5Q{2b(Wb)1;reiiXz4@< zi9U9;2+%4xZL9o12L`n=_M6I=+uN`cRep|_DI|~*LxptN$ci&mhyLK@^|k6#Ei=8B zQ=HG|&xsRO816TJ!gTzu&W^^oVoM4P$7Nw_A$qF`xP1`uNvjb&>hPCNwqRC(0rl;WxN{0jzj4^r!{tDp? z at 7I_U4+0-MBrrni*TE_0Qp^~?*uOvVtFRHaq^FV1l#U}yYdmW4CrME4NxWLw$oKib z`B5H46$kzJ9*pcb*ihNUfvm3irq>`!Iq~3c-y266)30&iKs*tUmS+6NefPT37_NZ at f38gl%h#*&olaG)TxWh?6}W(69(T{~^qrb at 5MZ_%@tH=Mq=`m<|6#N=m7Y`>kK3#7Dq-qW{30;2|h z&+qI&@X*k at 1L1^|iv!SGP2*n{e>1M!**O3qtapbkEJC+8=BK9-7ii+6X+qdI6fx>g zjr-$ijxicw%+DFCF3ic!cX8nMNT#pJZ)|A0Vnt(iywv3aD)tnT+YAZBvOQ`1Uwpjv z6~37{Y(oM|8e%ONQGC5|gx}V!TdUvIa|p at Opo90=n5K>UTA7}v8}()9kieQ6d1Ln> zCA4}6`vK$dTa?-QHTLPSn_~{Mysi!`dFqrYi6U1r<|8fSKSZ at OfC4C7DJo(gMnbr_ zaFo(5=YxQW0C|jxz?#k(EaKF`gJ-T-aenu1_zKU7M$l9gG?V2uAOTz}$OX7Pzy|bw z;I7a}K+{nC5$n&+CI7Nh@&^5c!mo at D0|6k>qox2FO8J5`4TD6SN4a}0Ks6SSs%*qB z at Wa~hNjrAf9Xm%XD$nrWGZGmZp~+GzB}><>R29KCeIk!B?r6lh)hQV5g9Zbv0`W4k zdNb=QJo)w=J81ZV&?AvJYO*<~20ywJ6y+JZt=9lc@@ipH%59E<`BG(ln{TbT7DF{1x zd7Y*9f}Yu!hb#+=!xFJjxh9DBfVL9a#n(D+AKuX-g>!(vq}o^87CH*+goCGl6c7xN z3{DSlJK at T@b*Cb##1gBK^uVKtf2KK>lCz=~2C+UT8U?`C+;wqveOO+O4iZVD8$_>l z1l0+>r$P+ at LOsxu%AL5=GfoFEC!r!irjZLRL1q>^SDS`Y=X;HB_^DLM}ikmY?lm>a=4YoS8O- z0FRJLxEHHAE?WrfnGaQuo(mN#`s;97(4{$H)R$mY+oVzoE>7Mhdf&3Tt8zus%-+&6 zTGsvcjKo_35rPWCkl_osjMPa*`d?AIE_*ICUi9kGgK8ZiH$L|@tcHaPTh(>P{&(1L z2}8}bB`r}+Cy|HYO$e<{bki2;Ihi(_jImmn1Gk(tQ5`J^5|3ya at I-qt;VP zDZ#u^3L&xxd?mEyAd!#HTOT0wJc-57lmGsEJ;W6Mk6_c_n`tAaO`pDI_3HRK60m0g z^8ngN8L#MQUvSjhm7%zP)L5XN01;9!A}U%F5~rRM2S3#;=^KGGH3&d>rmr=3diYqo zf76Z~YXY)aaxVna(FBJ=OsV^dD0g53YTrbWlnQu9$`D+J+%9m#2)2o|3H$NdJ;FY1f`8{4iovrEmi at 4ypm9Ub7*^- z4tq^10gU8b97&R==h8p_T<@2~Ss>;?u7Sg?jD>~*$X&P=rSM2voTctW%GN#`fT}p( zZn3mz#4Yx=NEtn96b)fQ<8W;h!;j#6)`)eQvE z9^X3}(YS0pUc;?#>I>s9{G2y%G#na_61MxaSJbND#Ip;W^ft^WXCDtACIy6XE!1Dg zfC)l_CZMihJ5DZ^~Cg+?;qG0+oRe3F*>R}GuVu>N+{?|9Nw`PMNC1YWMm97d$S*Tgcam*)u zKWsQsQedz&9)dHsYlp8e-{>Z5g{2kwK46cg`*K6wzHs)SfoC^P9|vt>`jdmuLm|Q( zbLH6K5P2ybb4jxGD4*-=DotS9wldARaBe)~=V^BgM3m3J}kwd$E zZ7q`pj~>lgU`G7U5e{GisD9RNq)T1Y--%I^Cr?hDJoyJj1+%1HuvE|578!qd^Qa#b zO70yETOi$yUSF-FgQz=_{(|RV%KYryp^>tE>+f=r-9m-2f1#mty3)(QRp-JJdVp24 z8zleK4imy|koQ77U~5aiV3*(>Gpvet;4+0ATqPvZyfz{m`16 at gfy#z2&vufAlA5SO zU&18_4 at Xgz9CABfdb%&B)JyO=QC{bHVK#Hsg~Ek&lqJzZhn2&@5Hn-D6-yHKbgQf6 zYqB(De1k zym$dzf{QwOfvPZt^(i!bvtdsJDuGa+FhvpEk)sE);rPh+p2#8L+I_1_1^ zw|O(=Mv^I*Q80w?T at tZaWe7ATN!Mp{I4S at rwc{mAWos`ANz at 9zWdBf#%^X78|8Sg$ zmpGh7DtT^l9h_mry&yZOT7pYL-(-CiGT4%Jz at TYYkuCdyH~{0eA<01;gagGk=jX=& z`I5?IJ_N&B3f!J(W?HcX=3`J?C{R-QqwAGc5J4!|))r*O53#?;kD)4T zBLhX{yi)`25I}(_hn at q`o!PwFtXVJa&CAD%;_g%qM)rmLJv$q2f%PSpL29HApfIHc zl2QT^a!HU2mWK9)xB~56^}Agt$78}M6k~UVM`KiSZLQk at cU@Z#FE7SdeIs}ULM7ND z*3T)_>w5>vsI&84gbr!8t&00j)J&|DH9s{VyUoa41T2C1TAf$(3wSZi5J49{Cft1j zufqUpHb{JNI0h7h44>ISdLS!{I2AUFo-UP*!6gEh-w-Ii12PYsJlO{cyKZX;j*0jp zy3d(CyB~m(-C9G%Ji_wS02BtO^Gar2AmW0DTN5cvb^>bWV;D%riJ^`Mlj+J8#-{4^ z?NS{B{A|D-wc70F~oJP at m#o zjkmY_#C|CQxX44ty(E)YwAE2Vsx>RQem!ZqDB7frR~|%b0!w*kJ~E0TA*)Pt9UJgd z|3Gg9a+}j5UkXIi%l1U5T(-hOG$;XiP4_*(3=xDu4&zZVK9%FUG3dq+9Nsk(a82w} zo16ar-8*#)HB``}M?YZ3ea)MV3FI87Jzy1(4xX+Yv at j?@0#l!ZGQc#79sOT6O`NtC zf__WOrb*N>3{B>}_(1A;;Mzby#h}Ts7}z3M;za*&c9V+qra${^B&!>WSHjCuvq0Lc zj=+}Y80vMDfD#{=ro}*-qZkiF7UHY=;GOmchXXaV78` znZ2aGWCaZ%(8}?2ffczX`^FwUc{1q~g-&m;A0*bznhRbq+4L;(^@~i)ro#dtq@<*> z+8&Jycg6vor7V~PGm=Y{9Qp0b7nngn+5_mogT~?h9q&Yg#;{=r!4TPGlsyvs3fA+* zo0*_M4gJqVFdoW3_zC9?mk1=9hMpoN0bSGV#St!;fw!U!K^M12X0Fa at 7N-Ki>*3*1 zkA9T=1dhI!T{?^nLRI>x1D&Xr8KcBwdrt%NvqC%l%WgbLnwp58ZyCPMt-L zYmz`!i9A$#A{5zy+*TkE4n>~*`!7fPrYs(BuxIaHdcBI~w&xh;^#}e1j!;A~6JD4q zqFaqT6eb+SWrVG$?oW1Hm$75VAJe8umiV`6vxPO|Dk$=3RNA`&j#}bmP&9o>-h;Xu(HOo07OR`O6$)1Cw6bgsz zV-Kn4{q6VqKVHx4`JbPqrtkOjxtHs@?(0Sdz@;nc9O*}AeDwHnD=;EjU{F83CY?>2 zt~SB_X_fif=a&5Vjoyb>K`OJiClO5IQ8KEze?PXC&0~V4FF*A3ZIOlVT&KcY2-}6$ z>d29Ty2+G|+aA=_#ER98$F&127(9GM4L&rR0hA_ws%tz4SoEm;3Q2pxVMN7kwaTe=< zjD|A7jm|a`td5FR zP-$dO-FUc3DrbGYS2 at 1A^36Kxhmsm3Z3Q0g44a^}N%Uu92HUgq%f}BKxa$3<)@hdk zD>S3UwyYCPgH*Lh^r3d))*@2m0+0EZ%A8Sp?OwRDYQi)Gy6#vr;QBxp&Upjnnb at D7 z`Saf}@#d{l1BCugfaXuRT}9y^giR}NAAq5Y8w<-u$wAs%(t=JH*3EXE7adKD>(RbF zn;Dqa!aAIJ73LUlCD}P-A9xGmMcqj><~Y(23(-ljmQ?H)E`` zJ=1mM?SLRaniWKjfvdPUl~e}5N!JeF1{A(C zE6clH(_?+SM;#DBzNo$Br81h|p54Rw|Xq1ElX- zy82O2uyWjR<;teiRL$-oAT;y`Oo~HpXq3wM#Wnu6l5&H$zVzK0ydy8 zL?Cg{g=ydlIg*wq&!3x3|3uG7MlWo!o{1KIkD6cofDH#-DaWg}(_GU2;#>&(=J)$z z9nT z_-?5}Q1H(pY7SAefdoYb#+6WR#0p at ovkN}%K{wB&gDB0?(!#jdvNi*N#phoVXEeOAeXF7Rl zEDiJKwR}_PLrvP45hDZ_N=VHL1G8oEThkDeF_U at l5w*L;KR%eEBOD6&g$Bi}wh|4m z=2=Jd5BS&0uqaZboAQA4lZpxp at t|aa;n~xtEOw?`rEHD)P5}%R&t<}=+;Z*p6lL>u z2ImQI`eoQ3-0<+Q$A}Ln#h~3oP*{?%IfliUlojcKpyz;gGr&R)qC=h79XnDiwy1sP z2#_x5LG)G8)&xo9f(2dIO(f at 1hE)Dj`sh(l0yhdjFmLJ}z*W*XAcj at LhCeBt5K3U! zv2Y!imP6#__y(wq$=f at oTx)M9u*tv9of}VSnz~8jCrd>Lw`0{R9E03a0!SZ-W`X3; z_ML at Q!jDTB6P;w-mF>T*CZZ{Uc=W<9V(l9foI6AM~>7{ znF8s7E;rFXEYum27V!ZC&6KW80JT=BbQdOIjien!K<$&21&T5j?L^G4mQnww1 at LT4 zO%K|E2`|3wIOxE8 at tE+(xB+r%wt_%Q%ft4SeV+P=qf&& z^cDN?`-$94B?Gz#NTDwGjxlOEDFFe}YkzWrdDNA=%$+8~L*TQ^it^{QX6hqgL^Ed1 z0<#qW0Xo^t32aosnFEl6j*u2cb-Y1u8tL^!1b%V~Oo7H4Ia0h^8mBRM;sVDM%v%=j z at IU}!fpY;UH7W&Am^R&bYB$&+NFg@;R~{Jj=aP^50C%ZLs4F! z4HOEXe*Ms-4h7!liu;HVf$tI4~mN9dJQ7#0PYvjJ~GnCXCR4G zrWIEE>wd*0zOh0P3EaeoCLqR~^N(DiQ4s)%D~wD)XlmY|-(N&M1ji5CGkw-9Gjrf_ zp&($Z;oR3H9XXL1Lkh1S%+6Lc{|PrmokNp_$3%kPMi#=dtOy#((2rM!T#UIf`A-=L zIvMwJd(0zgZb0jToyU%_K3 zRFIWLB%qzgMG+aFSgZ#Y`i+r^TskYi-#w0LgBAKK9Il>(Hc0iIpRno#dd> z9ru%hV1o)k2|>nX8>_kCL<edAW&aAX|xE+lei at _vnH4864B4o_%BNFMP&~>lZIlhodn14^1?pcjkA` zoO$#1Ekusr8uonN1g!IZ(Jv?nc9eucfF{JKtGs!@TsMFO?kgZT>fIRMT8y|@f#&P$ zwC9z2PSS&Spi`Ie$(v#YOh+3J^-U at v?u1AxB6EpDq2CyyfUm(jpxA at 6T)vFMluq``oMM(54c(-i2jIRR)pt>p05%waKb3)_ZzCACKBpvE;ocE#C zYBUOLH*L^W2EzLkGId)~&x%a!}0$#Ss8-%0ULZ1%>12(Wg$Fz)k-l-RbNf z3>hzTSxSTnJdgN at U(QO4sT25ongjqC*Mt*@3u-0safaN0e1XOCJ?^63N_mPoM95LJub;ns zAr*$B%AP$t%n-^*`vG|SHt(R3(l6p0#Gt5W7Xy!tG_H`%V6zNH0&voqA-qxg5E6X$ zTl7~TGT1kiVHuh1jOr*~ZDpQDrNV6^`4(rnDCCT!BM1ik*tcUxT)mk-3oF>aK_#$d z%WF8`g>DzWvj))xML(Ae8u+U(9l$3F0N(k`^4!_X0MUSPHh4ZB_6<5YcsU}a5387o zEzaAw&9UL&^wf(D1b5l{_btX*slER`bZDsiy1JmV%KUA0HQ#TZOY90^DQ=?lcEcPM z%pMe$kVIX<6$irRh|+S0wbNgEQklLQE;RHYI2WJ{-5Vj5&%s>S2VO1p<)a+r3Iliq z91al9l;P^2DlQ~Zl2}5kQF*GL%NouC-3Y5|omDw;6+YBp!d}-;YSWb~RzPK$IXnf* zCyfxsGLCkH%GUW%n9^Q= zI(V(K?d1hN#HS806$lDW=%h9SG%6WONah4^4&JcjyIni>V$CBlzr1^Z5)~;kKLH<` zpadK#tzWQ1?SUkk1yO)I9J&;I{mPvCm~{@WDB&VPkIP3=ZzA>Zbo8zJwwzH8k+Lto zV-u}jKYa=;^r)=tz+Zpio*;M?@o{Mxi*)!DGW9-|fIu|CXD!%md;QiT(^bngzvv`J zWPM at o*se%(nnb)TxF(Hz%?ES0YfFW)tS2NDbPEj>3l->l0s9&9S{BlV&YMzJp`a6q zm^Q6o!r=^aPBU}d at Dd4~4TvXn#RvcXn=Vb?eG;J; z at Po=F5Eo$}Es*o72p-dj5lvG3pus4tQ8qGE$uS^QLxN|Bh1CYMqx>z{C?w_8N5F4@ zUeRY02`LmZUqa179g5$sK=8pg=SR=|Q4VzczJpB}c996ep(f_dyUR56{zm*DAi;oP zx>S?q!lWmW52hS5IC_X)yN5V`6Xrgup81($1WGl at YU5_BFEMlVrsmae4Auz#Nn^e% z+b099az6NFJYiUX->^)#l{|oUj)<@L$>K{WGB$<<1qXAFU%z at K9h(AcLp63S4weZd zoA^ty4*c!FDdm1V*DAmp4AqD4I$qgjXwngbpqd?R)ViwNF1m6;=ohHSRNX9otJNAbzG=Se}Am~Nh-n at hl~!4;Jc$#&UJc;_$Hso5A6Zw(_KMg3lSWO-}}5N-XL5 zBK3kcG!x#Fr;2s*GXG4*eK at l;g4kTLES%Pv#{5pEzMH7Xj7||t0w#G_R83tf^tIc2 zh|R4Ge{)}X1tBu77yJ>ip94Uvi}1p-mB`qSwuH;VX985rU(3E+luUY!s=03rj at p9O zzhz5mkI|4XeJY6|bioXv5sidxDNQkHNk*g`L*RPG=Rzi^u4V3mHTAt+)}R>yU*hK^ zw#ZQmZnyQ>x|B>qRtmaK41{nf40K26MWzc4t)}qGZusoUlcvp at EdjN|_jcgGJt6Kq z0L~ccyLdE41*H!kqWHG8wm*n;O+oKGXbY at Of08)aop^%@hI zOh{F*c5md~A%H_5SdgG>4NAn+cc zYllp43$^^ihvSHuyq3Vg1P)F?*X)y%4$j~M!Prw^W;*j-0E-b$o;bXCX$8;ZkNBoaV!4H^bp9m>7&YbG3LolXV0CBpAs)0$x~@r8866(hoQR*6b8Y> zEb`>V=43z&4X8JWhx}Zmhm58P!_|r+9+xA3iG%p@`Jf2XfK|sCaBJK43YjlLL2Qj2 zd2ar at aXb~vM1wh-hi0Rj)CJSXA>!m2`j2bm_?f7vs-$r_a{M?7nWWzzQM{4~ktT?C z64qNV4D}>~_8zq>aEgCHHDQdr6nRnb{7cZG-c(&4=#~aluQN)2Hmf zVp|Qx&e7meW!{QF3Coe8a-geXg+0Ug)UYUzJvTD6g(>SF7bcL`R9`{uD_-OHVSRNk zN0M5(Z{N#QRn$C$VgDl{3o-Bsj~6iLXj>i`-4nwuAs?VLs>pN1?TUCR|3_5T>-01 at 0>FCn<|7EHVn;>M?d2Ky%fki+` z!Y-Q3?HwtCiQ*2^mk__JnpA)P{x~w1HxuVrOF>8uQl;XpYtr1wLsW6ndh`IQ3JeBF z+zcQBQc-^p(BAdtEHf1yI3y^p;IoUXD_~B*;p@!6ELwDmOMB&&YDx(-2HFHlc`6HH zp)eRXjy>&-7ZC%aB)f`e37g<>m)R$ge(M;4YC7L#6%2#Gw3H-7gL at p>O ziBzX#{9 at _mp_rX+9Sd+FGfgL~(Fn^@!QdIuZc9#uunWtCJ2!xR{<^_3YVkgprB|hGQD8 z9P7*Q9cj{jObqjjC?|05rP{xL-_i0>=7MhcG|@1j-5Y+8T8)t!rm6t{5i)v~U=}q2 zY(2&o(@iOIuMwA$zt=o((o%K)$`x)5O$fOag#e^-eETW1ZcHFE%ETAp@?>SQb?D2d zPhd$MkE;1usgO<`tH`!~EX;ebwhqH-D&F#L6yaarCx-vMGP_#UCX@=#DRze#^iC* zh1O;55GdDADl&CW9zt!%DJ&})SlH!HCWrWx+}=wU&k7q?TY at IdCaqR*KdNdxf1QmM zUGw0zSZv;Xq20DxP9pMj9xt_U(tS`?_DlUJr)9UfF^$y!ic(_S=*{6GSiX!Fhx$5pE!wNS$ z9Lb}ABmu_wHs61oN=@-HPDA?k!7d(G9ZM5RIZ9 at _g)6CILXCcpQChvqat`ujI6p5Up*Yoj$!BU$ecp`JsVE*}+E+aX$K$?jWce-6XSKFx7~$?H3xs zA7Lc1`@qCQ_~3Jx88O-M8!n&c4{$<&-b+r92`G0m>P$a78N^TqEpZeno<+F}Rg}7a znQjA at FG|M;g#dQ;kP^>YtCs>erExv#_)|)L0$m}rWH92jWdmIVa+c_i&#qH6!Gwv% zeDn*Ur8*93gB56YB|$TCEej>FJ`%A3UJpuegge=^e9Tv^ZqFm{0UB zlp#)7p?GaX?Zuk`UnXWKrlSa2W^BdGWn`o-%iL>3L17_8fsOn;O(AZ&hCbbWe6D0U zf&W2NicEJ=f`Ho=9ARD-DG=Z8Cq7Kf9S&>Ne%xskgZqX}W8_bj0iG-vBjn`Ve(>N8 z%Vl2V@>&A2O8~d<#v3`3DlmQE-d{U+7JF0?-Z|*TPc(K+$V at 8Ph@bMUh)=-PU>!hX zHX5WmW1 z;y((O7*;nKXxT_f-f6p@(yBp51BT)rUueKPMQ=qo3A>K)%hNMMVJUW+1>1E{jBt-{ zP1e-<%i+TOn(cB+YwJgN(d^$3 zxCNe*7+|qj_y$ykK&v5Al)3KpHL7%$5$htv*qC?${u9ieu>)iW``C z!*v1c&DZjP>9A=Av@=2UBX|*PDj8Eq#pP#=<#1eF*_75--5TJMdp?tcV*CSs2rMou zBg42zA-5l&vSTU_63H(|-*N at wFsyb)LHsB>BDtr1iifyrAUdbX5VXA4ueSrnw%l!e zWb*PUh!w|q(eoS4sIhp6Jh5f{8)#)H38~RwBat+N50b{=UKp;x{fHIo4!By;V{GrD z41J0j67 at S9OGrBmgwQewh%E;g-i%-T2mg~U|HciFNfv)Xb;WfS at 91Y7KhZmkql#3W ztHAliI0W8*8zNgrN8a_c2@`f8S7ld`$+yv_)1(GwhA0L$XWmvzFf<5a=fgu{gmDy%oVZUK8)8J}r_I}v$7m(#F8gO+KRAzF&hd_ at hoc{4^B0>tBK zB!r-tVQ35Pj~h7V5EUia02J)_i4zQM^PRW^8-vkEk{r?NFN^S4XQ_%1bcwtLM56oz zJauj!U<1u2zyq2gdQ6u!C3o+(Vxaf$zk77-h`z;5r2;aMe;ik;H2Kjzi+s z58OKiA%r>o3;&NFl6EjP5NE--&6`K}?JGF+u<~rJ2x!08UsxB^E#KdO$2X=VVY5VyHzy^2j+}NiF at lTK+{fq7b z7Z#ja;`)rHV;&#-)AU~}-{w@?j3r!96bP3N6?DcMYGMjM>NXBXv6Ucn;2o at 7*_n++ z&X(?XYe7e;Kj<-w%hp~FFW!U;kdseT5Xw>K1Qda6k%<6Z9XIYF0i5CPic#6z2&DPI zmBbw30VE}n1E}>Fd;OYiCS0H={3ehFCAQcrigU{d21Gn9 z1fQ3K#=i}hhXwZP#qL=It6&rCpD~|{#r82Oc^*~Ix|&7_K&x^534@@_8-eq_XPRYb zBL at d;Ga9a5+O_LRvWDk(1HkPszg)$hX!RxTKEHjg_B*ae=Ht>R8>le}+zN-})vL|+ z$kznX2t7e&2#-AD zdL at 2lMDypXN$`vd0o;M3P>$fTxPLziY`9uPG9a`V5KS(Ng83mGnX4bH7j-eMEPId;esJ0|?nbi<(nRteg@#2U zxOw5FOAN)_di1CRH2#4Dr;Z*ShO>CSmTDCTy7KiEcO at NCxG-pZ-J1rSx0r6gQ%d(K z4=7;MrctEM>grrF1TZmmVO5lmYb+C>H1&i*&Zse_2K1Pb`Ft%D2eF1fsocfh$Szz) zP_L&ljOHn-D7>qKSOm8=(1pb}ads(wF4wMJO~Vy=Y-jA at 5cqc7g|dTL7rUs+iF at H^ z at bbXz4cH0Et180%2bYh5h{BYT2M?OL^;Ai9>M967UbWVVVPU~*h*^n=6Nio(Wzo7E zESlm4qoWHK{(JqphPHxO!!HsZSPb2!@&|2?-|aaI7JLK0<~Kqb;#y5TaFuC|?^T3Q z{)Ap1Hi5cKl+&E#pWGDE8f^9_VkMwQn!0Sa#B=X)$;9gIT;&nh#LK8hazXXs$^DB^3z!$4-lm3}U3h&iDi8wmSsGz361 zgh0F>WwHps06G9*gdvZ?gP?YJ^GuWS3%3)-MND=&!zlCPfmQPG`S}4BEAGE7&FRCG zC--N?1<&c~Y at 7Ti@A+ z=i#T~XJh2qY)mJJ`qLw#qK?uWAxLcAcryn`(Q-c+xJ&*Z{_*MWNzA5ic*@& zq?JFRnlVY>lRQ1kNrkgQZ6vkHAc#WnD$RuTC#Oz9z7;%w&VlCrA76wu)lL^O=8PfX zFfQm>L_F}^=+w07RkYh^>*mI)KEzo~pFNxXg?^o%6OAb3cywfD7}AFim%>}(0W?m= z_!~zIG=Vctmr>CWTRqmE!17VL^CzU+R5 at D&!7#K_ra-nhwP=AqA at LXnT-W;oq^feV zHhI5P&pez{^Qx5f22$6)Vf!htusK3?I%?EEB=ts(n1>Op)t)?IJQ*;It}0Na$k-5f z?mgKPzyl}+zl+;1qKb4h7C5?W^vi`&ME!vu>6!WOnp-47A_yQq>{)U$z|q4Kv$pH? z`8-h89l#j-HHU2Fiz>Lo at F%FEw6=^!azC;gqCs`r7>vm=4rOe0)hq$cUglbb003H^ zgNs%LO?So3pCBOMpwPu+c(JSf*#^Vf-bJzV=btAa%VEGVu7D?nS!K?Ib5JbG#i7}D zd2s*!Wu>L>@!TQGo9Y;6MQdG^jw&^)0nugG5=0rmG58Y{M;zU{^#NTVXfVxEdOC`^ z2Sm+%L-#7==Y>k6umyDv at 7-V!z}!TC^zxd{PQi0TD}{yewF at cH1@y$24JNpyB|U?~ zJJGTVyRr7 at J?iP~3$O9q|i97+tVRz$cAE*RTlP z*Pb-)?L(`=mjg2 at bjGWeB?~wL&|Zb0`8(nuV1JJ~6p1R at vi*Rx@(2!=w~Wypn`ZfC z+yS&fWG`G03m%AJB}Se%KG3G}rl`Je- at dJI0&kRCS`w+n*K`ynfBrdw6HOQQ+L_HF zq0^A^=rZJqwQnXO+0m6Rr z>t-9*VrvZ)OP`cSnf+lzar$5E$~ts}$(7TdU^)cOd;=Uom=rV1?P+N&e>Z*AigkoL zcGxPFp*)w&ha7QE2T_V6kW0Yvrbh9%#nW*2-o3Qc@#dGn%WzOeElxF0D5GMn_<>p> z++EC~3@)(6f=)OB(#GAmc at s4fIBM=TyfVSF;_vX(EwAn2euGg&{=0nTN>h&rL}@%K zrZ52}Dtc22&{Jd$n+C^dCzvq;H!`Av$v}4KL2gP0dsTlIo0tr$W3D*&6vrOkmujid z>L#fQ%Ocfku#5A{8|jvEzSt;*08-|`#!;0x_7H zmkF!ne_>SlY?0RBtt`85U};(Y at L})rym`ORo{dJh8Z3|xTAaRj$Ud^ixz>I}21Gan zA8pQJrnxh4kiN^3kTIA$_1?+tWf3ddHrQWMQTx zDV2i9U%72XGli|K>+dCc4`Or}B&Ydyt zpG1kn$V=Y96vxQn!`Bl+EfUw(`$T<#1SHSW%K{ey4W*<66CS+cG4-cxEugWucrls* zJ|t1V1#2!pWgxVwFTB*xw_jQ+v=*9{?J=l|1uLLQ> z at 9~5f9ugHFaI at x02pBDbP4FT**J4Wq#;6aM7-Op!evHieT3xruzSG2whZBN>{|SsP zUGKVP$x3;&!nH8Hj*LJU z9b#C3vl)6Xf0o5M1H7q#C{pr~iUe9)sbtRZ*C7pZuuL8~rlJ!FD1(` zN#e~2rR9(z0 at k#BJJV98pQaW$w|pQX1<=bh=fen_hfmDHCbN-JDUfs8rTNcgnHFu= zFJ%7>{T7BX*!|Etwy+pSlt89N1NivK6M-YnN?5F8=7(5?J_&KM$f1E-8U!Nv2dIE) zyR)Qdf;C5gj?qN*s-E0^3%bu~MI(zaoTg0($0!hL$G6gPã-JzS0dSP3gzQzqU zah&lax9=uUUiS6 at Fui6T?-eA6cD5)l~94 zRh>-|4iA6IcjDh5BR at Imsy!_^<%m>-*lIBQhPH37gW3=IXk=;yQ3 at ra@dx~`( z*1yGiKcMv&j1|d6WY!fI=#mP9Z6A-|k}Fh6C;w&=cEtrydD0bgQ&cxy6OLER6vWT0 zc8|7Aex|wbnu>xN1hfmW6!jUGhA>S(>S$)OGGQ$(l zF>Yd-eiLo|W9-RR>?DKpQLfw*AXcF<2SeZ3w)!)4_Mf^)d% z0u0uJZc)~6PERj6K4UY6F1%R$1>`3Fgl4MyJp(pt70f})V_!g*u^@?+HQtMe_9xm} zTU&#qLWdCE0 at Qho!{+4hVGvicfP_0eU~?A-rIJrTN6R?yi&w93-he*Ui`3rUCH3NQ zoMeb;CZ~DrBn~5Zh)5tHpB0#4&;h*fWSGZHU`4!z^rAv2`k zU{n=E0<%l-Zuk)j_Lt*1z|I}99a at 0@GWLI%d!v_)uVq%0zzmP?YKsy~rpN<1gI_Wm z<3JALOGP$D at p3ZyjblxZM1Q``KDv9hiRJTz8&%^)+42EyWIu4pijuX*6Wz{PGW^Oxv zx=d at Ab{VAySvBMXJKn%N?$aazkibCj*oh7N;y?JGOfnFvP)}cb$S3>f#V5uMgY4?| zwTpivY(1nKqon*FrcNaH^!xzq#_tPUt(8g1XmJG6jk$y(R#0N5i~W|p;$yNE+u>33 zL2Q7t5}gvf+*whIw;bb#VCp5GIo(U?Fg9

=lfu5Jm*$wl$3M${1t3 at A!C9>3OnrwWFg at 4}KaCUYYCgSpZ_iX49tw(_a%Yk#~u$0jjsPWV^(T0<$i{sj{! zwj`OaxPU`3{zN=1t~x71fzrM?yV#oNd?pczQ~bUZ5IR)=s~Flxd?=d-g2Ts2G~Y zRG4K=i_4A+Ojl%AY*+9{S8fcJmATs;^V}G$&Oy4j1k2CGemY&i491r?Oa~L-ak!ew ztQ{;8$v{k>i2Yf5w+wy&IWa)pC)wUzyU3kTBt#bY7u`DXrehSK>*D+zo)UY(-!p!G zpnJ8H1yGg!_FFWN=<(x7W{X)faD6f<3wa-2fkeEA=VDvL=U1~O^W-%69P%ng4i&3g zN(=;OUMEx`RGnt}gv>6f_mX=>HtJbZLw??F5VO2Z5%PG)6NXgZg zC;^r*jFy?{#}29T5!q&j?jn6Em83(})6_;>T$4)$c)76Er@{@$GFqaqpoMTNqS%+n z?-Bnsxzq`Kd)yxI;Ut&px}Ku<4Sh#FNnXtGYTKoYeToLf0a_K&7uWMTf(XB;y^#8w zsj86EBB78wVf}L+Kgrt at G0c7xTi44c3?B>58Ec*jCg*S_NVLG at u&5PXvT+aO90Qdx z8l}EV!U8ifl$LJnx4WPwkgaVGA96>|=H)s5ZAWQAdI^zf!@~S_4+%@ozj~ELPFS-v zx3l|%@RK)^AUlkprk-B`cbg9($8DkHCX*2KM8jQHWq at u0h~u?JM?~>Zj#;#e%VSP; zq(53lh>T8g?=cyg;JHzw9tYln0p`k=u{Cr*&~9vzl#JedIUF|5StEd2!Yoz8C;V$d zFAxc7ljuw?MoeFNdO at ehHR7lH2_qzP@F1cBRuL4XL^WzJMKd^V*2$uM^J1tHc at JIq z-vfxWAO|?&v=w6|Q~3`jTEi)_L1R(weZI;^;*U#9zY%l@&Dzlv4E+ZULJj;dZ{9Ck zzQbM6IrE5l&?VEq(CzT(RXWKGbzSX`4#72$)izC=9>~lTi at W0{!b{Wn6PIr=alNgh ztEEuiRpd(}q9~u~@e=b+ at Iccu`t|M0YPv?L3mBms%rcpsw>T*whxti`z98firzp$PB#lHX#DJ8 at 6L2?|ZmSSr`mm*@-W zU9wB3=UPy3=by4(-xObCaUUY)!^0E%Kt1yBs^UW0Bcvv-oC86lfg-A)q;U2WeVU85 zk|Qp1RaQ|z_fT3s15N~NX7KEMWh8fUdKY00Y)D8pbxC-5AjL0^3He${O}wKpwURjmS`0!z_?@mUAGChl zG9D1ug%XZSnUt8w(bfHF^=vQg2c)Ss8|e82?gQ@|>c+gPn^$1SwNEJvF%8~(oA-m8 zb&{|>Vh09iOpTm=LulaPRG9M7vEE|mRN^#sRy^Jq%+Iw+`HT=|I(7+|mBp-}>u1tf zh{Os-HYG_!E7(3B2UJ8~ESzV|F#Tastm0C$$)GdQgPPs@=$zTJ>4SiDSV{9RclHyw zaH2|(gUGU&85|BU0T?5F_Pp|%kAfW#8c8{>wl*E at 5B38LAu~g=Py{04g0bluRi#Lo zEg;pHlCjwYD?4mGNDOFr2*kozECd=q5~kzqV_nTRPfpIA^Ity(OaZ#X77LSF0uR3E zD_ at ggOC;m4EpJGn?1VlH^IApl~F2&!fD z^L+jMhe-87(BNH2MhL#UB}h9G&hFnAb~{jqLfce-!crGT1>+B6?axKKwq;Vr at shbw z#UFB~-gblZr1}f!>}#h_WS;U>Xrp~=9WoN~J*07k)34pTH at v$} zh;Xc)%$s+BSe{Uv9BCV7efQo*W`g#dN4V-!g{zyJ zi+2VW3ux*ATtRE&PyV-k^@r&qK?=QNF3T at WhxJz(Nw*Jd$Z at 5>W zTl|fIYa8H9yL4b-Jl-?)Aq;V`JpCAt;Ty>bJ2f~4{B z>(^LJ0^vC;EC54dv1P+eFg3LTZ#lY*^p at Tq<6681DWcs2f8}k6n^_+ at mLZ}A7Ur2Y zYyfKofgcYweMQ9ddE>^7Ps}Kj<#aY0YWDqy`rGyKRR(HvI#Z><74fUOGvwA*rhJOKmm=AJ56be(24M7tGyG$|(gzryyWSM}ocJ5JsKy>#u)q-wv-T>(!CY z7YLEJO;-qv5X82yNH&QiK{SCoenWJs^@Btpdg%u&!k8_0q|4BLw#!j9O*NX{y>~C5 z>9y_l85{z(vyiFyDls=W0rKt!Gb<;NGy=9A)@;lkIt`3wzyN-sdP7pBsiD0z{(v+J z*yogTHSDuls;7!zyq{pm4TTD(kK!CtCvv6-yWfHHN)MjQL;ziUoF3= z^D!<3s{q0lEN~bWP?gMjRmMl=L`P4~DJ7G*+P**&&!eVc5M_%Cy at EP;*uNre%H{4I zJKB66|LbGo5r2`3SrwH>ZM|oYFiQt`dMm;!oBLO#cSX at Qth*Fwj4hk|+rt$K%6ecsuj{n6|KOs1wu$K!+ii6O%Uq77rDAsch z9OzH(uV@S52GXqMhAeg@`8_rq|(DyOb-7bXzjq3jIuD2BnQNO40#6q8*jtg-XUichBxT?)dv>;wnZ4XxFn^3yAxw46j8p*h;f4>NjmBy^96kzFEVkmXXCD7`i+*kV z{8?~W8zvUUjL$3_4&8QtF!Z=kZ2xz)iP9bA at +&eC8I!+lm~c48cbuPJB|HQ{1SCt; zx4DA at VtP#P<7d^}^#91jLBvVP?@wO7Y#X1Ct%Rt_X&M(U7 at yuLK^%V=!83RnnrYrW zydKi7!Zj-kD|M37IEqa;thDTn1d{xTS^&&}N{;o{5G7P+3?aUOp29J0=0L8n$>$sv zh)_?x#P;Ezf6yZaYW=t at 6)hlIDgU}I`HqiUY)lM0MJJ3Jb)T2GePP1<*CohcWF0yebs_McB|#-{~JCc=;pM~#BPo5zUA!RZQX0i|7A zb>Pq;*09<%YQ#U6ibczGOc at YqNaxIm0?~8Z|NeVmuU?6uk}g*WE7 at kEGStN4KYrue zo1I at k1>hY|=!w6O+;2BWj{UG=GcVH9Gbx9Paav at rBz@gVKvw)@!#p=~yX-7X7f%$0 z9{TIA#DtF<+Kq%&R5|IBx=ecCfQ^1<^Yp*eYS}4XVXH8K?|tMXzz= zdZ65R`#@z+jS8!c+X7G@-mi7%O^5LiP3`c~t0o&ifctNp|Qx)MVV;{iC z!Gob##J^|<4PqW<1NL(XdHKOAuSpfya*EvD^3GRe%H zSvV2=(xujjYWMGlbB1teBl`OcK(5 at EeItX~N?*6siAOTt{ zavV>Fu9;u_2mh1bTh>Wo`CRvkB;%#b8whlCFdy5uFJZwJSkdzF3 z2sJ{G4>3i5O5e3<)BVhVBy5QI#0b--Fy5c|0<`yk_$k$(;xAn46fHh~{0Q1EscyA+ zIprFFOOR5TQOuns at L0;EDWl<@`ClLd#kxJr&=Jl?j5xtW?c?8=M)~6p3;PvRpp<{I zxn|cEGn)~%#ogKYJ#PnT3a^$6$6NDWPtxO1=(}g`+*x?<9$W}TH?QnZjN?sNT`~RY zhIXmxiRH7vzH;+GV3|}0g-3JD@~ff)yq2v45vu2M1A at PiWOe3_c<~k%0{`b{0m(P~ z$`Q1#juVdK40ZMi(DZ_rf;pFdG|!cvtok|PRm8=(rO;M!%Th&tGNKuMPuiL_`{>i; z656)-qSm2V%nLES$PdoMDh-)~rLZ_%r_&4`Y_sCRkz>aaWdRYLFi+yP1*inIb(GIo zcFjn0%{|Cy zI}-%FR-gcS;GdKvoc|E3B)KSPkbvI6uY>ok2|CTIJYt3~G3+357ZsDx6 at R58Ta0T3 zmQy4RD2cZ1+dnKR5$u}(e91_ at aaqej3<9a+^V!)4A^{ouyt4A!t3&5V$pj$Ocoi8( zK{wE>X#K!*^1X{#M1JH5&Ol4}cbGgVQcwgk at 6w9&-9?)vtcvqx_vfdF%sfc0HBhYP zkEwjcv0njJ;YDBvbS4?Qch7rr5!*$3 at 5YD)I}>y=<*&<6Qqp(A#cJ|(I5*H^luJ|_ zG-gchUIqN`*Dr73=a&>|d|4*L^&@f0l{ZpX z2NQ(}_kdypxB0 at MeM4XdaE$b{XogtygeS#^=SScN(X}@l9L6ms)et9X)P$uIAJ!oE zdqcO)qX>z&S~`Xm=@e}Y{o1cEy${Ew`9*cY}@q5E~C`lq#x<=F9ndGv)A4y^s5?EaRELTmS93+ znOqEX7E+B5;MTM>bP235sKfe~m3Ev^o&l zlL%YiOW~+SjarD19l)+$@4SQ;k9eB)F}2T==g%3!V_<^)nbgJr{9ra at zJ$~cS^)#0 z5VCL^K={;(Ozqqg{q>{c8ID at tZ<6OmT_v6P&-YKvCUon*xEc`xl?tnyZR}T^nf>G< z>e0WYP| zX4~XCKaK(=d&@-{ARMG*3?~4tb#)pD%JE4G5yk4=($bL`kqmJ|`W3!6*|QO_%22o9 z{bSsNo&JeAk(Y;$$pHXleikxqdJKINM~Vp&i$vBT1EaE~qMB(v)fBd%3y3X4P=&&( zFT_3thkZ~~{4F5~gPU5E{|BYZ at x~vj!S74hm2;;6Qz!%uY|NAz4=}CDayI-hpA|q6 z3tNO{0P3;VABdRyEag0TD9m=LnF?FR^(<&)~igKv|!O9P%-gF(aiH?Dq%U! z+qbe=KVWk}$9V#blwpg#eWlUPqSv57?`XX!zi^0W7eF7aIU#^D2Nf+ho#V);11S at n zoQuvfr=SHvGUe(^X+gWlVpyK=Gva-rxCs_=`iExQ`2dqahBKR_y(_?Y9 z5$OywstW-WIDTNnu=Hqas4Z#61fvk2Y-%e&Q-U1weL$#n>+Ue!kAwfg&yfSf4;|L` z!%v)a`sKq1if!;^>{;HucmXx$Upx4Jqwf3^+~aPz&TiY*+*Y=1TnrhWZMbk{Ap6Sq z%(6wzpMP%gH+F$GnY_*24jh}Yw(Im1jDAN(D#}Nabzu|h35P_c9E`96PH^3N#$l+?LuIyhBtpUeNJucAT3a>f1h8~=(!R2jD?K-dQY()s9;lNf=)&!@#hd7L6C-cSZ+;z-V6DW$>V0bx9J)vZVJz zQ6lIy*tmeWB1yzDn37shJILY}ps&AnEd at TA*;bZFD7P8DL%y2_WHKlu?~84F*vy%@ zwSh2IkzzP+WtUR)a_EI}n~l}vXw{qpR3Q}=(M0(RbhfxLvGd&_CA zKwP%voz!@vPMrC;3M zTlp)vReW5WRzoYjovl~ns`(eZZG}Gvp540Q-vwTQekkx)Qk9Lp*R>%)@HBS%sEe#6 zIzxwdTEq3AG))}kg2$%2yRgxc1$)C82pAI)9nIpx_E6nu^2zg}1lG?1SLQ}m`Xk1@ zGq><4Gw0_hS=`*7 at sMct)qP~Ms=#<5+j(vH^#Nv>cdV$(+#{Kpla*Bk<< z-U(E06q8}?&rdj zPnx3lJcCphEGRj?Q9fr59kRYM0N5rzJYO{b3sQMyB%qNY;yxhFrvBjd0z=oe>oII+jaJmZSx_Cif5@ zh-S2kn+qYs at cT3oBfdX={Lp{?BiTT)P&~xiC7Wl4hHCAIfk8o`Y>>0t=wE^$>02UATh?zk3Uc^wu&bm(Y#;jUyrq)#j4|S{&WLNg z{2&`GUDTn+w9P%$YF)B{s7E=UEVn!_4D`|;otJ;Y5daVfRUYu9LQhS|7AiYQ-M1*7 z^^wqn&?*T2HL*S}LIES)^d8~L&!Hy77 at V#X=Rcu7qXGQNk!p zG~OFFc1H=h&MuJ%2a^pz|6pE}UfNk5+O(nAtsZJ38zoEClX`9Tg^V5B-PQH!Ae(Bw zCP7^{2gx=WgIjW~sEEIc!00r2OcboJDKQufIB+vd$#+ba3&NI?l4^8psi~=W8!;rK z`Ro05mu$La_!;tnpNT+AK7H!yB4I+DpNp7GunaUo*G;wjFMbuIMv6-w03+7}f`geW zAiH9z;Aet37ERzXe`ohktlA`-^COVIz-sB==+%kbl!b_vn1mw?JwR at PQqe|_Y>k2z zDBM=|EYdr~)5^ujM}b42NUckfd$_oeZ01xIXY#3G5#YZ7D8u)z($!A1{SSn&hS9b?>OvrB0&6gJf`c$^*Hq9zm6m<}On=s>^}!1wJg z#&dPG4Md};MFUNi?fJoh!0aF=^dQ>5o;O278jwYKZW at y>U%#>j0f}@iUDE{d5Mfh= zH(F{NJvNkDxuuJd8ybAZFu_VV^Y+OGhIDXRK(M2d;OYjp2!t9ELJ^akY at qLl!}zB) z=%D-}2md|CAC*PEmc9na0@(zD^@xErJ(mk3eHu&CE32sG__8jN=d2}IxzgE1t$4y! z^Rvbf@)oK^T*VU#bh%cCyLUvavsS8;}?&tT=DETm)mzKq8eC z|Dpdehm`>3gTQ~xOWd+{)4Q^;kbVz at AN3W<+1ko#*`EEJUO(qZWUNmYQqWs&$VDZ< z(N>v{KOI9bQrwYKyXyu(!^Hmh($K9ZH3F%sspHDu7y!YR>s>Sq2O9u1dIY(GlY>nCAcfgI;2QS)-gjZCc*!C(Br at q>CbN)&^doHHT#QgvUB! zv}=d4(CE6=rc4w!b#f900J at 2%_ks|?Q49OSzq7LFYqik{9$0Qy3 at QruJnF!~r?s(2+`+c_r%&xLL8b=ks(Kp0k45N58^I4MDKSsxYCYzm zpzSB0$!!)w-toMsnfc8iS8Biq!fLK|?Myw~C9@^zj!XDy#1yxc72>~3 zS~XZDnh?gC;(oZKFLR!i3lBl;;_ei!!*hxjIP+E&zc&_<$7pmo;c(j!ne=TqqZ^Hp?%}fYPpQGfu8iWh zhF&Lz)K3d6=Ra!NNJ-j^Vbh7|#C8_7MBUAsHc=%|B-dl>dv3pAL>E!Srg{2*+jFft zba+%=o^maiHOhmBMs1(a=mSc?;dkQX0z-_^H z`FZ#@w>0b%m%=~7IY;yy77_v-zzu>>9^~Ic(TNk0*&hVJzIvbfxwGwZ7$Les44s(m zxnJ_)_1qW#rv)e>yFuph9#ciS$SR^nSoPeR>e;vqVk^rj at p2@WoA0dUTmyp8H143h zlbv7A2rTYNG=&IHsP9Oqc=GHF$)d$45JKV}qMMBa zBmxF&_F&h16BOgz*iFMVt&LzTpLTLCX=SiZ03^qo;$lTjx*CfyEG9*oKb9kAVOm^b7$hu*|xrvvo`t-R(T|p075Fx*BgZ7{4X__}dH}ZVE%Np`2 zPB!!SvXPoqD_81U$`@9mrxTbnP;rF)x6djn at f!^*F1VA75uhUN3MA_F#dY~{&(PNsvH`8x}c{2$j>oo2xB>}r2n7o zLEAy(nCQusa?QC|&| ztqDRaAZQ0?%t)La0(ODz6n_<^)AB$7EpRn6lj)R{EFL8kyZ6TD;xc&ols0T1MqIGN zmNZI;2$4}y$*g_X_v6aS#`S`%On*fP;t12u5CH at kLj#_Hz_Xk^`|#GS+1xCgoLjY8 zzjiIVCfU-?q2g%m+VvDGRMEWoPm63~DtbbaA3pq^&X*rmq8IF}ibM?i+_`h~z=0Ll zCv$WQ#sXp%Ckuk#19i;RC`_K>9t{m5ix-$|3S<~YaABCDU5}mJF+`Gg??RCX0wt75 zN at d815!6)rezu~x9t%E%;{c8oZq{WQ?a0em2Fa#0EN<7;$tuPOegS?K)-Yk12i|L^ zPO(eNN7EKofOAR-fS58d<`wf`g_CpqR&Cn4bqS6V^^$u at C-=}F2#eXk5xnyjGyV8^ z!O-IDfTKMQApn{*h+sp|T9xL0cus19Gnlfue~0=UVVim55A@*RkwJw|L1JD+`LK2_ zM}S-)i#brb0phfM;3_l)#1FnmOWB?VP1>Uk0vJQ^H43t?ckjt;la21FE-ZK;$-bHT zAu;a@`7od at dns`=YQcm=fv}_}pbjFBDweXI-h*)>UN8}4X6cdLNOG at FhW2+nTRVj%O41I>nz&;JNTJcuLYGlRH0kbx z2iNQU6Z!bKG61t7(d2zte6zzM)?LJCrEZk+_upSpMgb%dEvkxoFI)q*Ol6;Gt72v= zbTy|=*bfr41m)!Eu at up%J(%l!S zM(jcFLoCx@Et at XNsD$bjf6RKak8aIHi_UJ5)BfP*l77~!S9jGI%wlF8>6+(atY zGmLORsUc^g8qP at hILKjxMkVSli(={A8^$&92%tjBJ9(1Qkso;M>6rHn+adHsL<0zZ z66zl4Y|I#e1q5B-oe29GP}?&5EBMjkAkKoidPC6W-jNyxDF*BKI_4$?+ikt<8qwba zwl)J)SIGkxcriylom9EzUeESbpTCna at B ziFd13ru$ps#KkKz1T}2v4-g4Qd~$#!)W27+R#5acTADR#D5eBW+V|(gZ5a&4BMzHm ztjNdyqv8TyYyl2BwkguW-ET1#+1El|4)>Te#`9v at PG<- zl*bAMGrvIZn7$B at i84&p``=T`@8?Vz#9$!DFeb)3QkC(%@o%w$^$}PD`xH&QnQH?` z=N1s4xe@%>5*Mrb-FaS{uR~ZqIx=Ym^$X{j<^@rjwe?LDFi_oowuquddtKO(^z|z< zU`d}kth?|3i_5OW%t+anF3B3wKP5in97x4*M`Mg(6(Z;fh1xxcf8V`*OL$l|K@=ja z&L9kMn{>_L2JrAFL?jesT-X}yCOv{J_Z(Ozg9lUyq>w&q7C6H+SY8ZZ05h0n=iw$5 zlKB3 at ZrqTW+M3xilQs^uEwT^e!jybD9E0$mr6Gc;3UlpvT_gUsN|HWlS5g+HGBOr~ zVxFr}6>rkrL9PItz%Ik55?MBC0sU0zU%O}@rsR}Ts?sFF0|FycDOa>lyxhZn#k|?G z^?S#_R&4;etq|N192Vdyc zx)AH#>BIRB at aJWy~LJkpq!#waK><#X*VbEW at 2hnKP57}lkSDYgV?j{qJoAX!L|(=M7-3a zDE9XH)8V&{V$ge0wcmQ{RqqbD;=pdW_VDrJPjOVHPv{W2zcFyYBSi_Kg%I at uwnLWR zE59o?FKR&Ve*F%3N5p(A89GJdkX9L(!KEle<~13-cYMc*HDliy$(iWl_VTL-%s+Pe z&flxOP%SHll8YpfBYQAHkemi1 at iQolXTR}A^r9a$uzglbHT#GBsXtJB(wEqL>s(5O z0SY!+%(S{u2zMe}W|ucN#-GD>3W7nP1t1G4yMCP5rGDiB`xF&HORZ`7qbyCyPs2HAo+#yJc}Z(YJf>z+q#h z>1j$W|4i7Ld445vcMT;`O7}R;vOT^b=fI*+0<5Zy}&^uESYS*dLe at dzDpJ}P4Uw2AbC|O}^287W@ zr!AlEwj;AY4PAKCjq#GHKu!L;NkdxxD}xm7C>whXj7{DdoV6__A?4-B7$bbwuSgPp ziHP{oMobu&aBXM-RV$yVX+0JjQ4mJT?V7K{7a(07n)H)lzF=yb=m>tx4U)%%PCsHo z?)M*B)h_o&ZZ4}cGmph5Pi|bfassmq;z4`YquU-fdojOsskpHaE{P_k1%6-YnAPab z0AQi}5Lw09Y1<>BcHp#$Zbq(5{&FRfTj{5w{-e}Ab(ZZP(*2rHwOV7&s_&F9AY6wN zZcmAatk)?64zOef1i|sjn8Ij9)P!|9 zw7eYY6!@{UOTzgTBgP9BmCiMA`?EBtlUHxh8QW9Y{<+j|$qGwV=J`Qd&D(53WWH8Z zF@`{cKAMWM(;$Oj4^0Jl-jXOIvfChJk#c<-+zC4;K0b&#`GCOWx8_cPw%rJeC8SB zJ}{!+(Y=MQCO(+;K)cvqND at I6L=e&r6r4|N-F746jE)hE&>ArBtaNQJ-ZJVV!?`v1 zbRIwMs*Zqcd_Vre2 at y!)L(1WYc;6UtL6rp=xegujYUHGPMh~FX^3(keze$~+Hmua? zEqu>+oJ&}xwhVe3 at D56g{?s6Hy*AOu|KMGqlp?Kz9QjrpV$MH)qvU*4d4y`JH!b|% ztXEzMfE(5h;FSEjZEm>*;8BT at q+P*v`gN&)SGR8Dp@;aWmn_zTA`yhCh)Qq;Twpt@ zX7JhY3`D6rr^ahulhYN!&tqL~;QtxC^mex?9$crwn0ar!A+gwb%9Mp4!SvC`)RonH zNu#Zd0-P;5e}3fkGhQl45!h7Nq6cKY;H-gtCyU5tR?k6_%)kP}O|qa-9FIj$-l-Id z7?yVC)Tx5vR4{=Ak<&bl{-9h==D-f>_<Ew2sSrC at soH>$1BC>dlq?>fs6Z?U3uS zp#&C)bwCrY-whRlku-W)XO~3XDCv%-LoR%mdD>1 at P)Fn4nRk~n)9vDGnf4Zj-vMU+ zk(g;>BKB5b)yqLI*WW62U75CjHSR0I3KQtjB?)^s3tZ(-yek$cMg6|U_R6t_XqBOC z({Q5}`mK33drPqd-FaJy`r>lsH at ttA2Vptk%gQvV>N>P;*RJP+WDh$38Q-7LsOPI3 z6|R)5eYv;(Kvv}w73Lko#s5_+Ws^Cnhwgc!YDfPiQ5lW_~iyFOWf=|;j`PnSoO;GWzqQS z!Od4^L1J&2wF}XfcRihz>02F4{NDXA8B-ou{QA>#$1SuFwq$hR5&ZH~$xqsKLCwb1 zsQA8yHu7vgsK2~w$?G_WjQ!)KiIf)9+u>nT7{PDbM$=Pn={$KD*+aHwUgcI|}k$fW(oHK*2X|6p=*DDUSt->hlCIANT2gF3-!?)*e$`R$*x z at 3A$X*&zT93>v#qUdWkK?y-oeo$CX7E_Jgv1KW`L4L+q at m^XJWI^npEG>{@S50G*2 z5eiNZ3@|F$06 at z>!6j+_|7NJ1Cg85XucYo&`JR;Rlte7N^I6DfHTShu+NFh zmUefc6 at 7Afs3f1Y{ow064*O-R at 64yG^e+}RCIQ|beDF;%g{Ure5s1VowhU=(N{0Df z6%Z}jzVE-U|Hxu?G=k8AsKFeC+P38-RpaoB!9>KFGl3i at Wn`yL1?beU`X4M_tci_m zSE9uceGTk(T}1F`Mzr2924qR3vbP_!hgS7hQ1QY0?*~7Jr?1u at I=kt&z38Y|0 at kft z;Ib2XtIep>4eL&W0A+oBl8qWjrd>iP^7kW0TASu<-Nh8>cbAVBu at sfZXrE0_6|Z1B zuACXgb#{lgWZKSw4)d1K>s=S=j!0D&CNGiCl4_(m`Oea2a+gyge_?EJ>-UzKkev;r zh91k?io$;OKvE6NXmi=6`D3{ zMg=~S>azJ%GWyva$Jf=)Tu}xY>;BJew>@^n{Hj)FL1G8iugu%fURnu5V-w#Ak9mr0 zqVnBaKf0>tS{-*lvbCOV&`mlrH8AdcN!XxE%5ZXv#lG&1VUDy=L~;oO=5ed66(L&J zHkkPOwgCmlNxFE^5&y#3f^|UQ>7k!uq-;~K9CsYiK282a=_>&wKK;6|;TS91Q$kZF zPSkR{FGhTD?2s~jKU00!PoOBl1b?3;FB-865Te=@UQX0GOYS=dI=E^bPa~;|g`>kL zC5s-&>X8QZ^0Pr5TX(fhNXWC($D$h7fcnq=XT2tFw^N)?=@Hbhs+`O at nMn&qzW8G2 zINCOKKUg>zvR at h2ZTsb%4_i&k89n~;<;SZ}C`h>b+fMtxJ5m4kg#&MRYVq(LuYdCV ziQA{YJ>{M at yi*une=++~wSqF5dX}66`4BS~t4D^yFpzM#b4l&V z+fFiDVx_>Ba$;0!7bO%jyX4P5zy11a8sDt`!O+NEcilSb^dS_qcOmXy%4(?FbEV&a z>t1usMU9L62Id0whHb7B`y7T|bgx$Jeq#d7nn_A$N=jnNmfgTI0?p;~sEHkTJ%f}K z1dyCG^+n;vi1bJOW07y{*g6v`CN8v%ZJzxX7NL)V>Qj#S6%4|KXCb|EO1;^tSKWHQjr9OI?dW2eKulqmmiefSV73%LrK at OMj~8^YpdS3@@@f`?WPC?<>6!NBG(I#yyk)rN{&#J z*t}IMM}ulid;*x8A{~VZQVe at zX?-U&{EEP8S)U>J3(GNt;N6r>o)c%pgD+MNUzQb?LRg|ma;6e)+G23|?Zd5+Y9wLscmiL9Wk zuj4$}u&a-VyhUSH{!NU10vZi9Ta_N9vmph#s zkIV9 at nlJA7E~0FB%W?m+0*HJ0S6z;>s%FjDOXi65rWf|GGV<8~mn@?5!6O at F^pO1<8x^Dvl>qfSSDf58U_F$2s{n+XpvQnAZT7if2R z^gVZKbhP9&k8<3CpVyg2Y~OwZ*+yHkah=D>$igQ^)5HP_AR=ioQ at YfzR{``ej;o}c z1psoircIebdRS)VJ5CdYnHQs6*}s23*jU6e_F-pK-~m;!q82o)R@?Q}^|o?FYU|oV z{!L%}5d at VQRdZt*v3sx4QTUmE0K^1?Fy+hpKmOJ~gaK2X==1vY=_7J-=1TuM{DsWc zwROnH$6tER_rOuB10fA!-+==MdZx0x$Ojc zpFRQXoj$nQl&$+>fW$7^PMZZGOJef?>>a#Cs%107h{TB z4e at sG_d=DieBlKK0_q$ZFN(2)>S%%jKM=0eOuuRxh zamPC;WkWX(#%J;UC#%3pGb4UFl={TL#~w?s(yVdg!JaQGG&DNGZ-!Nv z4~3xHA5)!?E&ZqAEBXa&oV$udy{oajTzO8fjxU^;$!TzUcL+j&th9bkE?==?h36n( zFsuxe-F)i at M>LydUvn^y`a2QlGG#bccjm?T#Mn}~N5FoO;b!G*K~CRNoWC`I at Zrxa zE|p1a9n?!#23~IJliIn~(`fl|EmH5Lw}gFRZBRmko7XH!O&RX7Ie8`nynRZ8Cx;9< zbOlsVDXPO6N2k`x$Sr^3+y1M|-}R$N7a3lmZr$DI?}%*k+~L at JW*6Oc8p!odwYnwq zM4k`k4lVotS^)p4;?Hmqd?+;biyb>sHbw*t&H2xNtN>Ia7}?L~Zc>-JZC at C2rJeYO zX{|kWG8orxJKAWWv}cjwY}DWC_3ro!=l76IeKjw&*QoO)^}c?B=}_$424E at vIb1MY zJ{|`q`{U!%;>zT$)TwN_3I5dv964&#tS>Dcd^OCK^}WWUXFK+%CONH-53{?>~1 z)xic%#P`Glx7;;9_2cNlt$V)6ls5F%ZH`{O^`6lJK*Tmjeg-r6gfSe+9&N z&~djKDiyv&X%9B;*68}f%}7Z=M3rfGWnK}da}R>#2q9}$tcW}~)&IerKw5}R&^46R zTRP3q_cJZN at 4i221&C=j8N%H5Oiu%2_3;@LKu;1yif=N zddqh-uW%a0;IGuw!~v(ruUvO|Q^(v*iwj&yqmhU%4;4Tdkma@@eDzhcmMz6IJG-n% zBOUMMz=I+ggyn6g^pBl9e{F1sOdOTzYi+?L9}TJ$U!4BI3<*c&5D^|OQF+pEp8ic_ zp}nlRd_Yzep6AGc#=)2Y;1Kw|&Dxn^kHGs{99t|f at IAIl`;aKm)?d(%_{2b|ziz~r zlxHiOhok3xkrIB2@)4qsX(jn!+9g!JH*L8w1p}VfEm{8{BcW7fqY-UJksoP;p zO!Ro%9|TZ+j%Fpe&=H&;SWq*xw;Gl_F&^U}V99Eq*{yJDq(hYY8xZQ2DepTRS?gLH z>O^mtnDfS*Id{azDW!pPR%fsWR<(Tj`R7($lz-%c6mF#g8vB2OsD!)gCQrHVuDkko zxM-?BRJo&eVfAVw9E^)AR;xy9WFG9Z=9>e#Sic{V-^k2PNT`?Ck$HKGpOVTFR~}Ic>>3 at 0+F3XTSYBxj}CC zh9j?bhWo#|e8UE?)-LxfB_*+8#RVITa0UjvZ&V!F{Ntrd)xV765`GSIzWOw=&BuzD zY;n1b5de!JbJw(PGyF(03I42}a1;h)FhO}cZ%`bAfdR{sdtN60I8+*D;S=`1ap}T^ z&h at iQi>faQ=9LRa2Gn=#aRo_OZQb3y#5gTWOc(SC5sP+ev2 at d>pZTNE7pJDqwhx-h zwCf_AB2FuO1jzFB_a-oEf_P5Y`K7>s7C}540jHm^gd*4w9u;_}PzWrHO-yIM&bOq_ z%s3z_AkaB48p?qPM~m!gZNScS(wP zn>_pCni9z4U>whm9oP+jxb at aYQ+7wJt>rd*xHM|28{cXMxA|48F5_#yyfN38ZzeUQz}Lr6dS-W<}B^_-6oK-D?xuIx2}8kS6s+sQ4?Hs`NBKuHA5!0 zMv(TRvv-`>S}&h#n~7#uxK=p7ID_OA;5Dr zarOPGbe0#kDkgoLjY^^#x6Zw1{9pmo;-n=7sjYwXPCQ`cF=87)tTl>hVDiA4c$of( zamR~vaus6W-MzW`>S(SMLv4rs66s%;%K;yUb at +z4CZ0B>tnmQx()KzbyLzye-7)I_ zY3S9yo`1=cV}nVSS+_`vD8anbD$lHlZJunE^FsdDk96*=7kLI~*6)_oAJyo=cH at s?r*{Y3 zVXEmfy`c%&srDiQut8|{*1K=>7iT3cP?RkwhT|lzDtF62%8{5%@g=P?Gn0zbwvTxJ z`A(5L_U(fkoq_aoT$hY1m;SY+c#E=D>`;rOmRI~senL&?P`CIvxM6;JLW>rUoi3VL zVJ_vrQRa4a%jeamh$2Ks%0Z~&-Sv{U^Q(lK$N156e!j6;VYDStnsa(@xLoIzl at s1} zM&QGp79?xvA}Tu7)wvMOc&vMOW$$h&N~(9fgT>3ToZ4Q_g$l;(OPKd>?i5OOC43VL z8P6SmL$6w9UbuUul+5zfm*3F z8&>41Yp?DMxqf7Hev`(=h;z2Uu)}XEy|hAH?E~L`Pq{Xs_fB`^iRKSNYYQ7&1pdOM zguDO!`)^|*TdJ_b?%bmXW4vk^t at 7?Qkn&isTjl9`ls>aA}}wLMvbu}9N+a9pi9=xI@^5to8y&uPFwgR%S{|on}kjTZVVL{;KcoA zlV>SMd~YFW*V#^go;_>xi``l}qs|qt3eWb^cIAztK@*G9CVCq|0ap}M<7GMql8 at Ex(xb}GuWOP{r%L)Bu})xmH)U6; zvoXyd3?K+*fZc28%P=QfsvR>RlHE5u7_O)#j&9zvCH*^0tLlKUKHu8Nqd|jlc!CL9 zhbX6e at 1aA3Dl|5OyO$rpLtRselx3Z2X2~=_sQI^Q8B!Nqd*f#a={iq~ezJYhXnTHh zZ4N6=%{w<%Pt)!qgj^Y!_6KxhqhDpo)ZqytH3|zTh5Fu6J6Qgao=9$ye_Lek261cQ z!tmZJwR-X;2kKqBPC&vGHbR?Jx@&i(^;gBeAK`u?qE?i%|^tv=XO8yCF?~~tWmR%XqlDNLL_bH3S);^dGoC)2}Vvu53NCbc)*C0ddzu#X0^u$4FY{dw2t{!H*qQmi4$irc(i?)OT*XE zleP^2z_?!!2eUmh8yCtnVm`q;y`H4rd1F*&L1 at FD8g8|B?n_}OpDgXbVicq5=v%DUCQ*|$;TD8B-RJ$fYp(f9JSmSJv^a)VU zjf>h|Iv at 7td7vInJkSJ=ySP^0EtI}!js?ysNh$UGtRoByq*#s{#{OkQW9vwbgr9N~ zkLDV0HtJ{E<*&b-RBLW%O=?|zbv#t3BI_IJfI&Ua5rK_(9slbl6R&MYf zyDHLhg&kjfAs3nboKQBQPd!otAF}Lga}fwSVN`XWTMh0BU``@ahkeIG{kPG{uI%8p zJe!(IvKcCy&ritf@`AjkVXc1*#zfcaK}{a~H!BuL<6{`E at q+^b}u{J2bvz zr! zi`~n=)+ at fkz$c&lM?04HGTHoHckMy5?JEsSPG~yScTP)gHaMCpg*ueSXW8gL6|D3~ zjttCo`vj&!3-9o=Tt5E3>P4_d=ypEs>APS3fRX&STy<*<{}6ZNw#A=}Iu`6`A at g*z zz>=Z>2I1FVA4~ihRQc?SFV>1ZmVZ4*^n-^Ekvz?rI~Ukz4 at JL69zieQbmJSqVuJho zOI7t&YH6`Srp6$ZZZ!c81#Eq169u^Z{48Md9AKwWg^5R#f)8$!o<&uA_SB1uaqNNUs(BlLZPYq`^k{`jmCzpPOILA|Fy$=l zQdb%Kh>DDq1Qq6WYS#{>7F;+ujHIv%87^6ALTKZHi)H>wL#(2I$fp}!bB&bl3o|J( z(h%BHthS^XPfGelp0z&IIf7w863Ht3Eh$Or&#`67FrTNBFR5ryZNkc6B)m^x1{NxQ zW$xT^ts@<6PCR+>1;78xP}Fntj6A@^EN;O{ue7p_Z at Ov12Wca|LA| zOW~nI*RbTbcK_S%w0o!qTj7)NH-Z7oRqE4!P|57Qi(2TA5#7I7S66;COc2W%SeE^g z=z8V9dY9@(=kn;IkXHUYP27*jrp?a at IVOJdhol>c)MEJ5N_I;xYW$PWRhWX8%Kp0R zc1j|5UfpnhqQ=T>;LxAe2HM#J2YP8ME5=sIL$}awAgUTYyInP_N0VHj(OtS^@vU)p zj}FUfUDg*al^J&W6^(g%;=bjNm!J6-WYpE0Kk;M#Oe6Nr8lX#DOr)bU|7#;=Ge=zf z`(tBXc9B)`jf^>e^9}R1XPmyfbc3xCOi at tt<&ZiapfyXIkJB6f-)}@Z_cJBN|_RR6M>%3YKTw&rMF2j(hjcR z{Zu>;dNhwfB6prQ?n?=nsmHFaS+hs??xAn%fh+(%+LT=x&Ludgs4h?VVEN&a+VGpz z>(+HHi$FIyU9oCA(KNs{Gsmm1irR~#Hp=GBFL>g6pjpkT3bMR|=oc>`tW<;cw#fBP z`yLr*w&7=J$%h|CeZGKFYkGI$ov66UX0e5L27sJp)QxFr`TAEAV$|f~Ttq0RyqcfwMhvXmH0-UzMMZ23#Dtsq zHF3Rb+44`cv6D__b7Ue7J5e&Io1l=e7}VycZP>JFUSd487tWkSc-XVgUV7rQsM5J0 zIG at Vv^8`C>p)O2({(-yizNJG4{KpubZJRlD?Jue at pPL0~^>-C0pB{K%zo at S;vt$kk zXdSD;1R$&u*C1f&fqww{beZhb?jm`1vG25N=(hOqX4UN|uB3-|u{;2X38rMqlpC?& zNef7bD9d4X3119!;8DE_^M%Qcy$(^&;Z>?R{C=)LqfSe_J8kO?rL)bv at o&C`x}!pc zqZYDS5AoRd>KuvFY{m0@(U!!^=R~zyaCP|UGiOvxMii*0)lJ5R$rm3THf)bEvCK at G z+sUW;Mwd$Z&2 at GrooBzl=^tTA!nC)9CXGSPs=JVswU4LOlAIb}!3tu=lXsSTY_V6} z`@OxMhbz3gcVg-_jT%khpDeZFkRDoBH1+X{3t+4BzZ+_jabc10udQBUdhL%*aSzJC zSxr>6-(W-+#Mb6?2!ycA>BPRK=kq)IUmWt!dpp{E*jT42Oozybawv^9)PXti{f6 za83luJ*S-cRu?H9CMV}&lL-g0$%3nfxVH5IRJCG{B+?j)jj5n*qE7hV%$&704bcx4Ah4-sm zwu_+he`UY?vIgSIzLf_>P#2xJFsM_5xQV#H%yq4qNusNnvVu?Q-HVIM zoBc|i^*6#?{dnin(0I)FGH+}X=tmwV6fo0}nHP5WQtF>Jk<982e_L(qM!d@`ux%*GnEyn z2R$#PxB&2bE zN5ZCG`>e_ZGlu at GLs_c0(#-ZGz&@(Y%VP}=gp6x4U# z8GsQc6?*&vhO;O1i!U&*q%)VV`zL*D=+($F5B>x*Od8O;Q>XNtoNJK<=G*VTUsQsR z*!U3|GPge2(__ at eUfg9MzwHoJQ9eu>1 z2i7Y+VjqZ~cz@?1<+79XVQek}r!A#8VQborl`B at X&7e-rnwU38)*2hY@~(zAYu5E1 z{likN^sfFjvMktDf9Y=kG=-+XELm4Bjo!B};|C*Iwac1SO79Z)XTCQtE5u!<*&BE6 z*bMp-kVBWTmNgqz0yzXq(xum_9d;qOjn5svo%hidvx-2T|3BGE$&R#9>h2vvAb?Z- zrX>QBroR~0xo(rHWoC`0YXL-jwr!j7C`(8W%cjX;|DHQuZAOpmY7voB$PwZjf~Sl2 zofG{$2<$t!8ORdoTv*D1z>F{lOK|)j^XcdG0{*Q(<4^kY%n!CaR(U{y+nv{-|D_ze z<<@5fUj6Dxe1nx5ez}pVJygYO%M|^T^;n430*HplBSXUv`|K7eq#TR-_>4}#7toa9 zqh}_ at C$<|7!*Ozf!*18V%b)yC*2&FH72+FX>QnX61h_s_>7ne|pYk|8)LmusUV5pA ztrgGh|Jne^l{F>lNejqBBn8qM^p(Ear^ls+J#-z3pE17tnkmW`uJpKp9dUt=`|tk> z!RF&}Xo)Y7B48fK$e^^(ljXUo%MKGe3)(v_tEm0^=bm`ts!vkmcffpWSdSWqjx9HC4H?oeTUn0>4E>^*fJjeNfSD9GH4UtDU_4AaEIO4t7ZY zu12tIcah&~T%Uu_i2?Pdp3{Q at qmfbGA0#mCrE*^_v23|}!=%VyudU$XH=DTdUfj8f zI_b?fZlOS6OVML-sZymx5%a)dXWq3tu6x7q2gaeZ4jh=97>}z8-O!xrrPf_joA};@ zQwr4G_D47gRIvVXq!ZWvHzmQgZ8e;BsiUm|S9a at kWMu>U`rjZ&UiVx6I_$QSS)BUo zug4Rr&u>VPws6m2|B;f%DM;Qdx>7xgJYJeLI@<;;qj at Db7Yx!9y^s91i2 at ow5#LEM z?%hM^@d3&@!a$ykr~A*J07}9oxiNNf5^-nbSZCjmjDoUq;pZ-behr}1DZ0 at OH}LN;1tGLg>Sz}a#+$!Eft?BTkv|i-$t+QRLm*Q zLf^C*eYWwL&d*y;1U-SyEna*McBL;aoqgJb+~AN-!>~5R`r#vg;uZ2jgxjBcH&v~)*+&Z?8ukZ?M77=CT37k|~2o1G)7C7W03lt!v0 zi&2om0L7YFde_szofo%JNYnz|Ii#PRXC$m^*Uu2h9vOmCdTJ7rdY(7MzhpzBM$P{0 z=ePb}3vla-e5EWUxHYC}4}L!T-!d^VJMgGSj+o9|yLvSo;=t-*4YVnuhx3FI`rreG z0O+hCAi;{OWW!x`{mwP2e=-S_sj#FcQCP{vY7k{HJv4nxOl<6MX&V>4 zXO9-XN?csZ$%wR1uCvV at Zsxy!IL`qM*7C`<-)#blz at i)*f)YVbo=@G!K*$q-JlQEQ zN?qwe^nWw5-Usf3^(Ytqo)M5xx8JUeh$EcxZ zO at 6IgZTZ?ZfW^M!QM~7}H0(JmS^Go;#Os=#Y_XSfuKlAaO*9@&F`%gD_Y*q87dg0S zyS98DXq5-pjco5wVxw2dl8QHzYs8*iB~B5zP@X!bOEW zJ7zME?Cd~uxT~j)mX}zbdP9r@^(elDuZ?ukSh)9J?%a9w}11V18H1L*GPWo0Q(VK?7P9t2Vx(d+znF z7KNh0Cf at g;e#q?A!&SL36O^4~0LjZ(-f?1OZ<+cBt!wiiGKn0UGdj zT$xJCGuMoRI&{e4q#F3|7hfz+Zrr7Q)8@@9H>)W0 z=0_|l{(zz(Bdqd&+^11IGNvwiZv{cmu$5P9ImYue0AaAf{ zq1404CHDg3Ek}v|_JNXI!G^}6*MI&43i|5nuQM0be|fpzZ^#XKV&x>5aw901Qs`i1 z`h-W)aKpQwooRLwLRsLUyKP)i;|c-t_G*nzQ08K&60RqBuor#nfMq`N zqbn<;Brr#zeFygL1=`E at 8iDxVs=}A7D6LF(eNuN3e>tLe9^^ItJ+j7xrfa23i9)U? zp!UQ;Gw at 0JwHt5b;^b_0uJHxkhhs8yXt~`d+-2>l_mg|bY>|^);ta&iwJx-U35Ygr zN_V*C$j{u!urUA~i{TRHU2;#{7Ezs>zx%W6?nWv#4|G;iO7-fARf at jM`G)9o#HE`L z?ECM3%VZ~2sanA=A~a>Y&?6h$(kY;*!Mdqhm{;@?85`?%Tl>vLp)G at 3M5|s#UW_<3K6lrq7<; zv(c;NYq#btL(TfgefNFV?%#D(r^AMcxYAB{Hs{t)g0u+j_6%OqD6 at Rn#xZ#xW+$bY zLpig!rb_R^9ifYrw%t!=^TiiW4<1Zj#4S7aLZg_p&296oMXCRC+)cQT39ZW3oI;w< zXez+&UN{R-MhZETq3X{%SiZ5qB2Kq{Y>XjH-H8kEWRqqbo;UsyePd#L zoRs_J?%m+MpRYKLM_)THH#gZ3#6zEnd!xuF2A2Zx!OQb+u%yhibrEq(UbNQFF>IM! zU3qR44hT%~U9={}wAJ+KR1M{;?@^IFY$b~DT(d9e>PiOvPhxL9pe8w>jQMhjC&A3& zQk~oM2HpHAw{Yf$Z*?1nqC{OBk|0}$H3U`3JMH7+zB8}9YE}8NW!*#xKdae|m10VF zGaEO49FRJuol3&IPrLD#)=Ljsu= zFtHs9O|!uV1?A5loHzn8)=(6q<3j;$d|$PtvgzV(u>$hIS*4 at CSEfd}BrXodNYx5M($K;EkktSA1>0qe>ilOk;%mKuJ{d2L z9<6)LFExgO;eW`9W)3lxn;}A`Jv^H_bL>9>5&L at o++bs6uz*|6dfSIT?4^+3IR-RX z;1?yre;ShG)GsMw+o^Tz0Oq~ZskyiNJ)1_JN&=LVF+&=AHe$eCWvDB=Td5=*(*tJT zc@~yNU@#^a8q#*l=73?yX!91=G!LvuepZfw2>mFEWaWh*GFsEsX;7p z;2x6Jvysmaz48!Xz(O*}=jmsj>3q)yEAq792+!R9*>&4yC&@3ROJ$n;4L?2JfN9nx zZDNo5)8j;7o_CN7<8*AgOBUr#OF<%WeXA4!GRe$`uUmJ%>manYjQbs zjf77wBtuN=4rtl>U)`Mn9p8T1)Tvl+nG}!%w>3Vs(%Y-E?k#^g z+_p}Q8s@^qp!ugwoKJ`vVp?3v3r}xtPNisBaM6quZ9j+<(@5B13S6e6+jpOTU=uaY zI5mwqLDYw}0mB5I>gClBfNsKm>qasRtNih7$y}#;!u}QZhL|Bf--PuvG9RDfg)&N( z$e9uNH?t>jT!E7SgT9>8_FCQ($-(Ln`9iA;0_^kU?k~S2L?g%PJUez!hup_U3>yaK zg9BtvEHk8xxTlG}y8Y-wfBf+bClNZMlQpYn#@O0*!wqJ?Oa;QK+TU=4V&?sI>w+fI zJmUT>8eM7B4fJgao4T at NL_!U$?iKgybNWZ%2Aa0oC3HK2IB6x-m%scUf9oF>y%YyO z)*ahkt;%rv;5Nz$75>a7)a3d`UPF&P_uQ*bWW1g1^W0!k)M%4q<}0e&g0&gOzmcOd z%gs at J?vuHEZS&T?&^>+o8eS~@>e!ebNE9ZU%79af8&$v`?OErzFS_+ zrV%&4=-sv4pmWoqBzyn`MCRqJr5!!-Vc%70rBy6GVdShE;E{#jI7l{i4oIj at LT*1W zL0RI};l+r+YA1hD(#_AF{>m%lNV*20&jf4Y-8suC8f)$9PQS-0=eo+D2l4ptur<@@ zh7)s|wrdx--VYvpgh}0wj!UM>mb;oh)2&+$EQK&CbsRXlRI>?wlo_Ud{}|kC`a#HR zbywUN_lE6D&yahBWNUYSLN1tx{|Ar;o`G{w?h%>z|6-a-N4y>MO1b$;oi}?d?yZCM z2k9#uDAz=Q)oc{i4K;fZs6eqKTPZcQserFGb9Q%0NQ;RL&CxcQc1Rp@@bF>r!AD7| zKV2wsNK}n~fm6OdD$p2D6m*21&WR62ugKTe_$czA at 28>T=$o9Js@FE@|u zrUrbPgfNdM$EyUug+LK)wq(+&Dn6>zq%I7ewzOWdVMCqw`$O!#pwxJ at ng{w> zajNPs|Bf+oD19734t^hO?$^_fc`L=6Z at B5Ex^?Q5%{eQ8{CobqOP}}2Cx%}EtDEbt zHfBU`JYc*zP;XDhI@@t+Zm2p|OfNfR at L<++&1-rvH(xRRt)ALmE%N-ZVS&5c{beR~ z at ugPdLEz2tHA(Q- at En3UO1o)!f1Ef0ie0g4)w_!quUWTlOP6x*T;oB?bq5X{Kujnl zinga`uXk}V%f$kPdPQPYJqGVR9qd4|3`HTAXKvEI|zO`fsJgw<-JOYfA4Bm zjS8qkrxaCFsGYN9fOF-IH~xO?81Ovee4W;LdJ03 at 3@m(JQx+L$#Ir9ngoGPqOUzwrx9f;H>?JQ?cwOTIxq1J*YfXPFO`)f4UzW9uXn* zP48})`|{V(`^lcYs8+#37 at se#t`w$6 at v6Kqo*QyVAVK)3nirLrgQn8!NW=E3*{`sG zH%Y}wIE*4Sf7&pd=Sy3PA=Y}vqR;y(nSMBo&gz`Bf(Y-(N=Y#H at +eLi3bp9yZe*`8 z(JQu{$Mqz-cV6DVe}4cfr>43_CbGzZjrmlr+~wV`A?iS!z!>2` z^L at 5AeoShfp87NhZD~kI7KKs|MOE)`sGb4>PKu^PTY9ttZB{`_{D4YSQQ(*+gBg?d z?~j&BnS`Kj+pJl}_Ja$K5%V>SkEitSKSC~RYdXm=*XvE)|7)&U490 at 1#f5iX9m54v zy?s%D?o)~N4xJy1pzYhXP2V|?0%2dHh*wT%5=044U1#B5NL;iH1Dgda(7QMM1i5F4 zmwy8Gy6P z>l3)lGpNv5P*Tz<8S0hTe9o{r*LUnVZ~sm)deDWNBFs^3Zkwne&)E_d_X`EDkENJ^ z)c~~uP5Poe?&V_%)s at ivtEej3&V%TEDBCZ*sP~V7eeGfF*>mZVCBXaN)P`_sXbl76ic)9v*}+oPl&&COu1*F_5C~pFVvFKmf7RLlZ^j at g4J*E**37$2Fi!=d^myhvmDa-ctXtHXI!WQL at ele68o zI+xeAy?+ZF at lh14SX`7#_`#Ap&(ya=5alpn8LbFBSBixCxmmK3p1~zX zMf!#WxPU9%pkc1Z93>TjkLA at W^@w%+)sfBsHZI?Zf~>cpKYpZ2$yIaa972I7 at MIBb zl&D;Ao_tahj5Pv?zBA+Hqwhx!J;_l8P$X1Q4k+D&NvS<|SP;Ml4DyX#vbamXqvqgs z at W-wDa{ao1jq at 0K);L7IpwAvX`X7Z++Pa)B^*imTU8&ODefyT_8wk_|Z4A%h^+S

lz$e0&yLLzIt!9^0Yu;q90mo!9>`Zm)cU06Zu zn^du5a#c~D5^e6nd5*kt(iiu_{ewYo0n)4#QA9fTR~)gTBO`${X;;7KVIDiLez^kLz>WqCLL33x!%;WtU?A{=u at u#CR&A*0*`Wy6;&niaeRE&xGH> zDmSm1_ at oVf;rH(sfBZ2J>F4jizdkv%hd1G57Wn4 z;m7pBBhW#c!vv4MvU6bk$;7naUhZ*T6k0``lak=N;jByp48=AnvFmI zq!I0M+ihxOMW<6X^y#O6T0hDzjZSUeg6 at 3PNln$K3Al(@{8bL&k()`rv2^~lf=2j| z9~4=k^iYp3+ at v}8QjIZquk|0YB=vyIF4zFJ9OEVD=l5gxUFxwSHJOq{5g?BAe(#=y zu*CaXIUOg%6s#I#7t0Pxhu~D-b0$^0206a|;M>{U;SpRS)wU(z>E$uZWt<&&zxtzb zSoa=11}xjBT+#d at Qu6=vBjl-6c=G3Jo9tRoK{;EG!;X;O;Y#i5PEF^nMUm<6h<;xF zSJUo5A07S=_ at 7sm;;d8ARX2E}51wxgS#0{>*AaD^2(UjbUP|c)z59TYBuJRH?e2Gb zF+VP~dnM?LTBM|A?yIk=#xm19XK=-;A5DadbdXe1TzIMS|7lSc?2@}Yp5+APg_YY;S z%9_pfMz~UKi)!XEs#o1}bhx*EMLX=y1VX8-EMqRXwj)Q51ZxmuB5Rk+kx<)TwP;N4 zD66j2-TvCXJ($GU at h{D%nCk)iD?B~Ee*N%^X|j`&jR`HTuzAgk at 7@=Cda3>*XG?{c zNSy+h#g}&RG=AUS@~1Jg54IO#AWoHvns6*i0;c5 zvHi8j%od#S at g93b3;p2KQ zxU2UA(d#hwpRMN~zB}ioc@&K{tX^n1_%nw=MaYG^>$_hQ=*;^00)*9i)phG?#SKxR z>rwoj8SuinS|2Yt;cihh`}B3O7gcOUhgERPHf(S^?NYpf_x8PMjx0FdqwTX77%~$Q z?+myV_gvq?s@|+0N}8v=++y$|RX>+#Ciwy(jA?c-2RgG(14_H=XDB^B|KbadI>i#k zlCaF>Z>wSUzO7sISyjI75fDerDmuiX-|JDHCp2)B!{WE%#>EEebeBoWv8+3-7&q>F zx*uqRWqq1FR8B*WIhsGrtD|;V!*=4m_X1bso2n_x}4Ok9qAzHS5 at sQZlsm z`GokU)nmKZ1vI at oa9_(T?|_R0=j=Hj(iV9hIFJf4TSdig-MS6qZm^I5SjH19`fV5; z_3@%FzA#z$a8y*bZCvwvCPeq4{dO>&E+>j59T++Y*70#V?IPR1 at m09*3&dEs&LhEm#g&I}f(7PpL z!A#skU2uc4UdPK9wwUBfNh!hPyHY8CMby3kQ1go(?^i`ZrZv&BJab_Ee-`(KNUT88KJj5@^KxlV!_jtpxT}D_64bP`3cW zJi6q9*0#y4(dwTOsns$GmA|)fP*>M3Tr7c_1?!16jh(+V%eu_Rc&{bCZ9=v)3GJFt zYg#XFNV`<9wHaZ7fzn#F$~+r0a=4yR6JrO1(jlT!7`w=WYo4Y>zX7y?eiwQq(P(Hn;V#`fb{*6<19i zzw<)E{Nvn(cJHQYRc>cZhz^F6$EaY8%nTpq1psd(h|!qK!!;AhPt>yue<0|cy4WR1 zTuMpf;A|RqakK)v$v9O5>#us%0^I!Q(Z5+RdYr~POZ;_&C5tF$%Ci^!YWqgSs94?N^}T!4rKzTxlPbIh~ihs<>F_{}G>94rsa z(l*s%*jv`pHMsFcTjWlf7z37W+*r3(Ee- at KhWzOL2M(0GH*M3EB`gM$B0l~rKRv>g zyXX3#@KT%#b7IM^Jtr?+{Fk56>C30i9WGA(7VSugc|ZRvt-y(_K}vfR^;Ktu#mEDmF|b=ZHgVS_ zGad$^b>d2EMQ!0#XFOl{ub1hJs8bA0h|tV~^*VL3Tee_cK!b==0W{G9gD{PrVM^k| z+T{%_h_O9#>iP(zNWS#%D!9-pQxGM1CgrxoS}$wzF_xJHtzZ1J2@`FGbY4&0x*ZtM zUGd3&_v at o(Y}0!EX+Z;S0`Q;F*IuAS=oJvJcZE_gF!uQ&SxHfHIW`Psk439GZM%L& zIuHLnGUH=+^y1%VuI=-3`ZP+N^Z3fbbekEku0NeqqX^Nz6)EvSzOV at fUEZR8Z2W2u zyAUp90%P%g)MvNW-mSdRrWPa-DdKuceHVId9BMwj%X$uhPS5$4>64Cllly9D+~ixcy1_1FpX<~?Fi2+k?J0eBF~1Se9I0B0~L zs at lz&1!)^PHaS^gOsxUGh4QH^-v1snE0B*?HKLNN99^~IW#t1-{tKN_D{ zGQRNH`O!gnUx6r0W4jWms1j+|5K**^zS}Rwym{~?qm6D)$8g?%e at 7~?xAWtBTs8CF zLv4bBtZZ4b_k^@BlN(n~PfWi1Zj(PfXdO^7sBEg9QPM4Sr(IidQZPo=I3Ew6RjRsfI_CHV z5^*|+xGAN2e=Fo^K47pjW<&vgq6)wJ?wKc_9I$-9$2_pvEFPx4-glR~|0GGPdT=KZ zQ-8)0Q3nlg^S><%SGO5Hc;v{LNedD`{#mTl6LjmAV?yDpt6rTu*T&?h=!1Xz4EGC^ zOZlVx@=Ywk+ok1?o*I9ZT;z3|LsXLx6Yc- at Tb4d9e%TGSd at OPSQI?`LQ0NkWr+tM zNKRZxIrHRQ#dmO-;c`GjC$xelj0bvo^xABVk%qobgbmr`ORY9GXNfgPd*(t8-s48mSLqP^{4 zll*y>JjEL}jLg|W$(0$(zR*M!t{_6e#f&xgZ=XZP7lYu%5jUDq9UB+!;zl&T1GC>= zFFZU2UDW4p1`H8T{3ddwJe>Q+8v-PmHRH08etGeh991~Y$-H?#i;k^p at 74g?20gN+ z%0s%1hyn at Qi ztK>;)^t;*1&aJ{e?7_RtCNKRC`PeCJ-04G;goK(?475eozE548P!BPQIN-KVV4Oe8 zGPI`f(09KsSUI)l!y>$I&x7>Jb~XWv-v}A39!m+vn?hc(j*52uMQ0oF=~our0saxY zAS>janP1$vbRx)tP%`B?YK8ohVRcU86(BBd5W}-Q-+YtZHOWn6&lf09ckQxsDQ?nM z at dTRe+o(*SP^Gg!aX}@1Us<(lU=1?*oIR$?mf_X%Ee!hSwv_8O4{SzS(!F8DqBO(f z^-AF$MqNRvb;csiVW2^AYRaRr+53c!F3%iVddb){DuD6~EZwK6Pe~u?=b3l$7a^dM z3W9;?LbwUqJI2qUOYKr$FhT_S>ZHc2?@hVvb1F+wQDqw+^A$9G{)E3wN&Y8G&#LYj zykgeu*>rol{8NAadFi=guKIuSbk<65ny1Kx3(lQ0M;BkYYE?W~w+HL_DrN$Wk!`KX zKgE_ at JdoWm=DLWn+=Gb|ySt>#BQkG}nZRVcKWs&9c>N5pC`=^aF&>@lcT-^L`1TKZ z0clis+Rvn0f{hw*%jV6<7V%90EH&lL)N&+ld3~1Z>cN{8CkYEtCBsXW=*T*CCIS at Y z#6QYkroP>~Ph`-wdiBULW7 at sESga#`u>h3htf1mr at D&07l5ZT3tdE`+H6?K8$U!Au zNPgL?_O#N={Iq8eE+umL8pwbZbSXau1Q{a^$1`K>_&-n7IP^R*zIs;o8v5`$64KJ; z%U?cww9?WRRM#59apuaFl!vS#h<#!+U|9|3_E=1FPI(Si3c$34>b!)nh%-#Am;b)} z%qN%J^Q3NG-1U}Kvl_9K9h at Xl+Ch8CDHU=h*Z?M!p>Z!XdMyLQ2x#=W)jI7H5=x90 z1fI<(gjZk998vL;e{$N at l$Oq1;uWvc3mUmAvtSsXb+|=eR;)*tKnDHg|M*)eh>n1f z$^HLB&_%LNo%-`rjk`|%%gs;P8k+gE&t~A6t}T at Zqqi%<$sS&=4lZGGKFQf1K`s}=d zqx)T1Dr_{-t~f|Xz{m_Z{*>}zg;QK7kS*%Pk#sLVj zj4JV>JhYUHlFh}h|Mps|nqZ&yp;2=07sG^R76%xNSE&*;Cm}8T;;Dmxh&ru5T<}YM zMOc^mlO|8r*V{WPysrLx{x=uYoQh(2jq8E4rVcys=~LC}PBYp$X!(Be#+CBIvbUc_ zB at w~+X)}80GANZ?!wHX<9yxA)+0_ddCJ}yh>qa)NO2c5?L8r22&8!}alSXd*k2X~%V@!_2;_v&z}HrQz~BAK3fD4~9tunL$j%YF5!YxcAA8_o8ng zkh52)9zvDIQW2g#t4UrVZej|O;rjEnQBsLgBg?VDUp&9jQkm=T}AtZ&7kYxMb z|8{)gVIsq=!FE$_{M-$?uU0WYg- at M111?}5BJ&5eha>mtr-2^E>9TBj{rcL|w!3{} z at EgWHLg56rHqwJW%aOUtf#jDATS`RxdR9Y>t_gbE8+U+BhFk?ujW7Do(OG zCH9&g2|u~_ToWkmrAF&U3XU5p52fBUzX$vz=F0Y`q^FR z^ta8e^MlJ)sVYUJyx98LLowA43rYZ-{Gb06URWtZPg`wQ#HVyFy=yq^vRz#(w at TGZ zlZ`S;cZrX4RuWUqiro)^SUnsbEV%owJMd#V?kF?w?+-ioMhXzgc4oa7re(0 zxoy*?VRPq!26dTSh~ zcgGrG-|%kTdK3u#fyv1C--psuHJ>(UrCqc_&4AU;9Xn2NJ`#RZKMHl}LE8t_z@}%M z8U<1rFg!8iMTbL0Bu&;4XDU}7{?FN?{$4NdWg}s(yWxgccMcRdLSsnoS)5diiF6&0 z?9O_pv;T#X2gaexxGs>y&+4g6q67KryYEz`a!8)jv3@=}9VbAg7 zMrkVbcQ9k0>>1o?eUUl@&!~CFYZ<^Zqa0J at 7T?jfe*Vv+q0q=>0u=?)vuIKdIx2$`I!>7`bg< zGV4ZL%Niv|flVQepMGjRTkP!k#7NQ_HpGz^GCeA9wOws77f4?8?p~8}fA4wzx#zYV zJmo?ZJ|A{{wHQwAwbOq2S&^67_d!l#D^^tA^#znY?C#n{#r%PSCXyZdvv(}+z2LTo z?fu%gaqbs`f}ZxZG2Kh8A9bdyQ)L36<~sVcvP-(9ju#f3;`iQv-&c38^Cz8Bb#&e^ zN9{1F%k?Y)_U#L8+638rbtg^C3|LX-oeOr8^OT6-VJzr7Fr;GEv{qW_88&uDzwk$;F!`U_C%UwcIbX(@#tMD_>vj? z#!a2-1;&nT->MZ3l;Q9MvnoT>$fC& z^0tg?u1-9oJqxvPZXzddTTAD;9*BKk&z?P5s<=K5Up)-l#JzZ52h}h3hT#^L>>N9$ z3_Mj-5G>p|aU%BV{GxSafWmZYG_oeKOJA>}YwV8bzzBZ%9FdjaNPI?J&hLEK0GW2v z*#^@^K6H%oPANF^GjK|NT`%Wmq|r}vfwJmg#4r-H)cbAM-vqx-fA ziw?-7;|`!aPawLkzdm3^P_PQAno~X-*v#E^V$qz%HI+3PKOZv+rnGZb`E)9AD3T%6 z6W?Z at ty$1DA8A68=^7svoY}K4h^v at Xje>ZjA;WK>{`J3LzPas21wtvm*im;^q>>T>(}j4U-g9d2j&A9VlI`bJ_oy3v~cL_ximYC ze at MKQXX838-l|o9(L1`A)~ZE!?^QT15Mq`o1H>6f_FKYr9P+dRb$CS(c0wPwB)Sh3 zz*A4%e#ad|IdrJiMOVws_RVzk;u!zph;mYs676k9=G4?=QT^=&RK5 zrf67>E?2L63+favYGe_31BJ|Rpm*cSJ`b$NV^CJtpFY at cV%!M>vI*h04g-Hf`1QHm zVsqzjKQioQ`1bV`kOQ35!2z<|wsDM&!$DxZFg1QrRqc=2t{3Axec9K98JlgH=& zy09v at _zMPE5Gyt%cvx at u>TXP9vC=wk`US&p8oa{6K{g8EfT_S at T`kVBt)2fpR4D?@95F$rkl#m4V3p}xV8nRPyCjTzmmb3jDGZl z8ppRN{;BlgI7p20#RUpA4YZoJi5V~PqmI3RCxbmQLdsooOlf3L&|BnZA>LDpG-r7~ zve~ScD;H;kLPP)ZtwxSjN&8g6L>eIAtEPaR)K~O=qOU83goWxt8|Sne^_7V=BoNso zJWTnodNe~HakJaCRo{N$LOYHS-I{F9{I}!yxQag#1kUM2NMi}cEPF;TcU3u{YP8d! zu9+b8DpmA_BUss6Pvw_bBxIkFyR>;~%;as7ey791f}qXWW&8k at QC?2uR~5SCAJ{a0 z+Fna{2Oer5 z=ylbGc#wDZuO^$Fbx64`C5#m`G;)? zg)Uq2Bs9O|c%Yz7$gEnW3NA)Ra$DD~PAJH+%%4d?iv8;0)v4(WZk*HW&hZFgVFq-}lWNyZYk_bRo7n36(Eluq3sNlaO&U-pd46PgL1AI43o2yz(5e62Odx#g zvst3x=Cb+MrS%&rZe~4Y%#ebVn0)2>^)>_ZwDP_X^tKpL${N9grHJhQt0p`3#8eO} zds+G;*Bc)8K`?s*vH9)Bq=Vz3+RlW&#m)ehXv)q at u_a(&X~kug9J!y3#ZE{{mg=Zz zOrxmQvbPQ3N#P&z at 2l6cRGDubT5?S%F>k;3LBgT}#0$awA6IeRbQ9Ur2W!{nZ!v+$jc!4vv)IN<;LF91|P6K+XmlMu)7!x1{<-m0U0j#DnXs25B( zH=cu8E7cV+A|Gdh+tBQ+Fel6M4wkljnGqh2-n6=XEdHD@^*}0~3KUX$Q{n9`t5+AE zKhO9&_TKnC>GvR?BEmDQmT=|%jT>{hZxpf7S|So{x)|?f4mp#H41IRWMJa#p=!_1X z(kxrI9*>JabJH;z7!+S4M#Nu_rFR^=iEzOQVD;Sa;c0B8v`wY2jq30Z4?B`MWM_pG z;ut at Pi`CI|Y9Q7qY550z2Uvv$8G!^olx!`UVxrm&V+^O&d8#n^8T4zhL~1H#Ducll z-va}+g|T2^hR}&?s_9V?5g%~$vXj81fE=J-_4ihmgwL<5tbX+99YH&&1*1TmUYN%t zGV)V8_nZq`L)PFF$@{r_XWeJJE#})j+c6{Kb20=F&iEx>d%u2NLX2;p*i at 3+f>9Hq zfp@?FvIg-O&J#3?mV-OSmMb86>3hf6Xfhhb6i|Cb{RF%J*8+fsKs?kl!t$QnTm_pE z__EYjpeEFw938SCQ#Gg@`T?ityK;WWgIw8u3WY=ec^9D}@cu at hz|Y~Q@$>mDAt{Mx zEBIqD2~6!AopC27CWdncs-?F<#D?E$=JPUpCpA=$jl&dy!%II7;uHxm5IpYa12;A= z|FnlEgKTKolAxHOFS$G2VTVfDY(!u$YgljkmDr&2aa{mgf36o;)l7 z>8&AzUIO+Z at q3G)atc)}DPqil+MFs^87aD`;h=JUsq+Y8j7 at 0Y(XjfVSFexFP4hYE zAX(%}Ttb%VZ2AIHC8UGM3$at%jaw=DXE171-#h4QQd7G#M^-k;?_C(;jCDhC&%_6V zn+Ami8W0rwu;MVfkqjvAg{lN7!!*VnjRIuB&(ehlXJG>b=qJ6_-#Rqd-~SKdA0AQ* zRa_}v444^guKb5CV_Zw~F?eE>`B<~rrZP+5hm9;@EZifL+q~q{TT^Y}R~d#4$VC6M zW53w}7!n0;!(pc=9{2fVEKr`?DH2gF5he6 at bW;u?g at H`xd;+v!!nQ9fyHh`_069Mzm(ozci{pC;yFOQrBA@@ z80EvLTO^%ij54YCIRF2oP(UOdGn6;<|LB0x&w#6h+KP`yk9+T2+zcI90=!Ao7do-I z`#I3uNCxYCP4G;G|B~Se6+C1JD_8krvN239ChU5FtQET;ti>SF_T^HN$V=^QY`kzn zK5=3rc3#89yhOz-0#A+&?(5yWy;((M_INjc4+PS$-*Kj~6mdKg4i4i3$z8YtRC6Fe z(ifFhs!`RpccE z?At5CUaw=Z!db#RxZ|O}7xFt~o(1KvNhni#$1C z`Du9-6VfYltG|>xW*7Kg5Fh*_qzf%o+zt!avJCYcWPkGbaj{x3?4Y^N9n-gHA9a9# zZt;zWRAl~=m4WoI8xzI^s9+;amD z3;lSZ7$(@lMvqXEQ^Me8c9$=2%6&Mo97s-YQ157rgh=Ko0oW;g_xB}XP|G3- at gIyN z09EbvXp2cQHv{kvW|ar*BNf;{q{Gx~ z*iP-#v`bT{)moXF(vxDZ5+2$m=g(tmB204c+J(?Vl*dxtHtK9L8ow&H<#_BXXSeG- z)ez%c4qAZ3N+!$2F6N%pSZgYkihi<1;1(Vj6@}b~GN1dyEeLoiDh*?CD+Vwm90&_2 zF-kmU`-`qw_iW&mz=(G2n1$w-O&pAtechKp-XnU)d&R(6?wZSnkXjvyoEZHiT0uVL zdT=h}rWl|M0q1H9$&VlasxE2;|3atFr8qcHp>4ZT%PaOXsszY}&EHK;M>E$wP;bCj zLO9yC^eJ&!ISdz;SvU*>|JDutdB_mWqjDfVsum)D_L{d;bev=cpqQnm=umfD`nGm8 zS$muWxJ|S+vJB at rGI6rjQeyZIUc7)M4=0L_D#p}Z&-NI5l(sFpM&F&?<%fj^8>}!u z)Gr5s1)2eB5MBm(dKv^ZQ`GXcslebK-6WdHMSyD*MG#9wJvb~`r at IXe9*1jCUifz~ zk2R}KrfqWn=#0OS03rDSt&%&5b#Og$1A`>1apuVbzYRvP*i-}^x_>{!D?2@?U%0Ep z2jKV_))dk`2JVAKV0<>CT3EX_hVB at wQ`PY~?6g0Iq>;bH-({VbT-c=q-IZ-9*GMX3 z=wZdTKLtllD<5MlATzyEQV#EnU2}nN&8ewt6HF~EmbtRiDJ;Q|1kGNJ%*~r$;&2yH z-YN91?{_$!{)iElAcEK`bYlYp1qq{r!#;$R&C?MiAZZs`T>G3-OYB)K at ZW!jsLBrc zqy!v1a)fQ8gHAPoF95&E@*MCs(FEV{!jvX#(1_%UPqp1f at Y2*S5>4(t@ zBo`rj!mxB!WHV=>OnJ<$o$7U)W*%Z6+83C?47yGmmPbHk$utb0e8Pk?FaiN$3X=rC zr=SzjD=;7=NaQ-zKuf6hztL)82jRXOdi(_ zT=YJh!VR^-2hyYJl)IMdzH8WGHf5otX%#Se_4kFoJ;9H7|NmG;2 zTkc$IW}wE7RVZ)f&J`C&vs`=n&HcjQAH6FobeMZs3rZb|Sx!WZ_Y$PG!_RhT^0{!Q zrN#1dkNB0it>#>NI*nty>czOm z#6G*eo8--d5PD$vGZ_CDo`+GU`0C$Z*PokZ#WyH5-I>3@@#qPuL29}ms74>FLT6rX zfL3kVG&D at Drnw{)Yj*#~6Ph=lP>*)N#btY5o|PA}hs_Yd4PWA|P5}O^(6Ux!d zrlwA(>f~|d{;2Wxu&V*ea%E|7JA$C`HjONXps_0OLJC6}GA zq2~Z(fYz?QfQAm55z0IJQc-{JfdjJ;Su9_U8wa=ywVveH5G2*cE$A(_KQ%ba$M^`w(cI(-#3>Xg zC?FV%0ZD`T7>jWnxX|X=ujB&3nq*ZrtyT`X|3`<~x%8q?xM}P^fKzC_JCz7-u%vqQ zrA!fOvtEUUu8OKCKjRw z6A^|BDd6WXk!~fK}N`BX$NrsGs>6=3Vi>iVYTly1F!zbz&pRd>5a)tjdw=&GSSE;0APF$4uduRRq){-IF|wWT z+ at HD2TOpO432zMGD&RiVXOM%4)1KsSyv6D*GRZ=!vm zR#>)XH$bQG^Scp$(v*T at 6H0Zy4dj5To z5tPmS6La at sfLBux*oe at LJ*B=y(g!L)ZRr&jtFjA%aEB&-7ecmaxtuQ8#sm>Kzj_3& zhO~!1!8CKBl}a^lgR=el at 4hBE94+$cv19Y8Z(wd|G(uZ}5n2vc`d1M<9D&2wNVU$$ zhwY_AX0Z!Y4(XBUb8SqKJotyociX;fiIWW!<&^qn2L}dDf!{`vM at Tt%^e9VVw0{l8 z&jz%{Y_;fAqt7)F6&QyK87{dQXL#0$Qqv?&i_LFgsszmpCm62qZZ2arJx0UvG=ljmo9UWI at qsdx;pOBg|@ON!4Z1L2qz;X25NhJ`37); zaId*}GihrcNdegu)fG^p*M^G}lP{|Z95;rN?^#%ov!#YbWx5pvOBsxTg~bH6ioAZ5 z3eTfaiiXy5AbrKKBN(FaKyZ=}*|IpPmqy9lh|)Y2APgTY% zCwU$if0C`E5CVO0ar-x#`$l6iElrT8LTaL2b}LD4<0Z$nIw&$G#>U=x^%y-bg7cq^ zUIyxg8Xg*kJkC at Zi~^ZRJ`h8pfygH*t{XNvmrhmbC}EhqDGiO^(hk>08yo(5-QDAF z%7-p;!|+FiIKQC*Ly1$Uk;tQz25)naR$@qSJ#KQkM-%0Lkx9~Bac(PvpBqW<`VGiQ z30ZIhfim{ziO9b)LiMbT^W1TFa)hUq@h=YFANe&OOf|P`LMl2P+jqx^RGa33!UstO#T at Wx_7S`{w&0k z{jZ`vQIU~S&+oUthn at J=E|(u^LV`ysB`Huy>jJbNiqD>X$Ok3KBFae0?4DY}d9Qu( zVhM4b#tRxwG*}ygg?ZFs`?T}^rNz8VR#4E3p_2~i;hg at 5rC~^A`uG7EWk>)G#1v}< zkS at d!Y8AjaFokzd!3n!akwS+MsOs^~zl+N$W7sN43^a&P4D95lc7W%hV&pLs11hdu z5npp$Hgd<1kte61KMyz`3Bw76Qk^`LRbDaO%g=QY?SYJ6Qu$y~PBB>RK9d>uwi zoangv0x_|=#N09!yB3N8lx2+UeU}SQ6?uXV;p1opIeOVpQLUc3PkknVBP;5^XZLQz zvf3VkF-^nRiL85h)gA0in8a}ajEY{1EGQq$mQ)(fO!vNc`I6npZ1dsF;76dJj(Wc5 z)=x!`O at _tUO%gYn*Nfbi2|bCtP<{?qh>t?`P3wZ97wUnKE_yXNFO-}V>2(5qN#Hh| zPKBZ$-Zv^M-7)@@H^X at izq5^J%j6z(@j1iz787ML+W at i>xVhmZNnZ7ckP!77+&~R! ztFrjvAPO7Ur9Hhy4x`-;21$s1 z1efBddnayOych+CwCWw*1LzYDBPpN!Lx=UJpdh5}qVEiiKN`IE5xf$o#MMS=`-|rJ zW}8Cw91PtDhsEYd1o!fd*`7&pNmKiDbd0PNqH4UUxX)m75*d$y#w(Y{&K%!&YxxQ8IIvbW_8rbI z%Xfh4`BW*aAG3T(j>D>U=nn31yWBd85qhGcY~-CE0Lvd<+({}4r_oKX|2?RL`4`(% zo+Q0xBtaZx>;gEI{6?`CHaRp+pV!wP*t%6{RQ&hf-hcn?Xl>0zaH}_i68(e at Nvl>k z0;x9%P8ORtPr$~C>QAqihmYY)GRD6LR6yMplAIS>M+D}#KY8&Y3lG?xX2>Z8-B)=9 zl{(T;np-q+ at BzSvr+d3n4*(cHpG;cCce`_^KUD+y^{Yqy1HKAsG-f%TaF7!H#B1+h z0#rBRizDR9HbdQGvq@^ch*_d%uU at Z+4BS7S`59s})-(JNXJ%QYcuaW({}C?$X7Lpjcj;K$Ked!z>uzLTl at -|NaZK_^+g72SKL3p3^iox_$HK zkG%&D#Fx`%P-u at H|3X4T+}WmLwA{kWp at 5;qpvtR67Y4c1E at m4*6#`u}bIk9*bG=TE z?6$6K5>LW5D4OSkQbbY}F?cY6-6Ub}lEsVVOYkg0t@!?>|oS%NGR|_j_Hzx8%U>QVTZ at q_aJdF zf=w*D1pH2)Cm#^AY2NY;nF7L(gmES&HQ+JHDVQhGhKB at M83>I0o5+Hp7n$PV00lza ztYL5k5Hwvg$~XZ;9zG>eh`Lji7YfIp{H)dAjvoGg$NHU;VE!E+rJ+;=j1cHR_A!{w zy?;+I208;BeQzv+KViYfh7GqkaB%8S+u0T?E=@rPBq;D=Vg!#iJ9B!6Opr1i*y`>_ z7)ySk^5BEVk5S%F7&p!(qYO-qfDIiTcaH8i at _H0syXfBAm?7afL{}4?G=YN>IzjRb zrxoYbgs%$qUe5-x>_ zejl5fv>lN<@{h5nJ4cUrNmhiEMW0`BwXK~UHfK=#iE=^iOlQ7&Dmk)0*P(A;<14=S zUvTUqcd|kjr6hMS*p*HLthnvUzz%kH*Kgh|9xI;K0Cr3NGCgx4k`5XbXV8Ku6!_P+ zT6C3+)o`DUL5v4WFQ_O3C`YTUXUD{_92K?%-H)nBD7^?x0%>_uP0JWMJ>8YJU6`lC zoB$4S!v at pn!8(z{pv7#tkZKE~s?IP9l}mHlZC!}V^oR(PmA#0E=n%*N at Br#Zl8_mU zi-AUUTbMn at iFq;HC}K5Gy!fIf~*ZdAu^?Eu$6k5VUk&LdO zQSKb3L7L&FjMyznFbeHy7S}*7!xjjU#g+A_T&WEMo1_IB&iEHN`xLb z)#_`ECi5eC0z3!VHqCtMmuBcqCP#Mvx|5h7matEFW_Y+Y(@qX^L(k%pgWr-MBeq@) z#^w?Po$k$EQ^vH-&F`LBLVw4~+S;2*_;?9a0V5AytTCvr7DtT7=SxNqA1gR3)>gq` z^DKSuffVSm(lce`jQTFRk^hfV>euIOj(-wBurLh-ZTM+D@)3x39s=>Y at U!;RGM^=% z&`WFla!3yFt*X0QgPPg^L6fHqoRHjyeDo0`7ajB;5i=eb$b=?K6{0NgmO z!HUK>-7C{Q-*0N<8J7BWII8rxjw at 4`MH%;;!{rm4248MX~MvT7E zwb0aT;U4B}gFl4yU>pwIXQUXGZ+&#;J+sR_Lu;51gY$sdcpn#B!RMp{N=PBF=<;!C z$&U0I!<-ui?Ubqr*!7-BHv<(i-N?}lVWp&?7X*Y*>EO5etipoT;GH{@N?4XkRY&jr z at +40pC`}w3A+dAP7FUbrnWb+dc0kVY4f*HGm*$fUmN2Z1 at OkP`ZQA#MuAae at S|lgs zm8~=uR7=YXRk$0W^3jwd(_?EfuY0Q?iIOt~f^QL`E+*P22xurqL}0?Rj8MS$l`=3W z=+Y3)QIB9!IC*j(Pfw<$b)7J=Mjqk)!w(>V)ZNy%&xt^5z|0jEWq4J?(ykS6VngSBM~W+klw=P;FN!&j&0{8F1cs0ZM;il+i5R~i z><`K1n$uU{RNJ&|8}>dRejBHPgn&imafY*~dH7Q}J+)~=a}l&7F*J)xqDKOcJQ*qc zhKSH{3>$OED0zfIhbhBdGeB}U5aBz~k%9GZo_5m2!lTo$+90L?>xe}F zr6S{NN at u*hbF7|(Ml>d?5<~ex-}UHWq__b5&=xAsjP%Z8eFA*h!L9+HL5v-Rsdt`Ahrw3#!P4YX9|Q3RrU z7CpklhmvqMiba9F!@@f%N`7T#Y!ZXkEE_{D!^%gGm;}tcb+8M4%BAge_8epA64K#M+ph4*hzS_w2Iq6ifC2IVi4CqsOjZ2GstgMH zB}-28{zAWlOQlL7yc3HsRzQ{Hm%}fog2=g2%g8ck9u5f81g9f9S`5TD=8|gb>c*iz zCL^jmfE&yZ?%EZ^D97;Ov*4v8BZI(*mBpMZ)CzzT>d{}+VRs|~-xIdOibdm{-9Ht) z9LppnG2+vwPd??vSYH@!6c&gTS3?27s8Wt|(M9zTmX9zFa(E-;d!(Z)6Um$ z^+*WOig8T0u{h3SpUnO&>I#QX6n#R|qq>^fN!VY(v7D`NAdh=)xTx}g9XwZDOxufL zER0BilE~v2-qSl%U?TM7m|hJqcc`GkKqc*O@{n*F=_PEk1O11F$bM;xYiZiTdRKhr z^ye5X-OQ5A=1+a-?E?z|M&%dGUy3rDtA7 at K@)&RsmXLx0hK2q+oIQnf<6#~(DI?tt zNN0>;=bG2*XO8Jzn6u$D^ytz>a4abD#F}N)D6G?OS5|@zSp>`#m*|4n6zJ8f-+JPP}S4U%4U4|8z at z+_J*ZDd$2Du2 at pG zrpJG)d#pWJKRe{$j$wVQW`~shVBK+ at bjY6pBZk?GC|$GU(un_k7jtfZsp_0v@#inG z6C(ESFP~WO at xXrXh=qSI=<(sr8OLLZK)#NtCC^^GplDO(giu~{FWHXcm$RK^^FQ8X zUO*EBZ-*hgD0w^;J at aqf*0H2-!pM<^#ufD7iCafe#Re77;dW&-Z9=a8;2n*e)Lyz#QJ-lIOE`s2(3vSmi1$x|0BXg_7=$(B)9wWpWBZJj(R z?3N_XLP!zpDhiwkj(2~x%O#USf?;d;jFAz(1Yae$4 at Vq*9^ddG1NdxIyn1zwQm#A0 zh#VJdAu4_JecCq0Z%?C1q}xF!Dzo{)R|OwmQxNQJ1qgxGiSquvJ)&NavAeDg@`%{K zYgYqQO^3~xgCKgRpz8ex z^S8$FHfg0q+f{pQ+qZ8M?9-MP+&UOH8#4?AFczfuPk{q6mq`JlJ9JlnWw)`SZtjBg8YkLdgS}c0bp~Qz_#<7 at Yd(WQx`Eo~Wh7Ce`}eT zv{7$JO2;G?6iPjqZt{ijOLxjx%Z7{aJFbPvM$?g5Ov4_)KvVkFm?x%`H$P59NeJ2lg7)~18%z)AQ#b&>s{QZk*m6U{Q-poRP zOcz6|mBg=tb|U#v>?03>7bkP8Dv3{9va-6!q$DYI6?3FOFH$#oM5j@&bfW!SsA9N` zv~F%;fuVr!kBwh}L;LJ(;IK~8D$V at 8DD*@1tHRD?2 at K2Cxy#%u=`Qhb?lbbYvj7xJ zeun9Fv0ebx8nl4}!>y6%JfW5~N)F#N3f<`F3iOXF17R{20i8~q7{l{OJ1?=^fAAoS zSaD7$9KN3!cp4;$esp(VaR~XG5Yw_CaYT`TlTDf8LAy^VLB8}V_7u)lm}Mxka%6U? zC4m6}WL*#qygH2e`|nI&AER6enIn{JSsomG{w?bBLc#kZnouN^QKC=h9pjXJDmlQg zwKS^fXcd>2&x(ln{p*Ou2WlL$7m7<-nDVYPkI<`<{o~uS4u&@|4&BYThujioch$2D zQjR0pMD=(2Erl1tT0V1&_l|L_1*ofIAC0d{g`xEz#m|L3W=@)9V`oP at OPC{Sunh@< zZ=*UQBWmYugeu~QEe at nQJn2&8rI8;Jt7wUN}-BzT$df`IU4VY(~ifdWAc(Fs^OZ3j_^>DL87<@7}2PVfSn8bQ< z4|q}xP2-qmDj)TJ1%%HV(sz1G{0s$mCnrZUaQgywJu@?IzL#ji3=xl<&*l{Gf#hW4 zMnIIsis|SrkRtMNcmaee)Br3>f(Cxm(BR-5gE4bG#RzecdLZueE0auLw12!)`EpQ6 zSu*bVVl1> zVX$@G!Y%zVkwvb4`s4|Xl{dUe(gI)$ZZ}9r_CoiHBtRzY9!WS~L!(Fk_gt2kfc#Y| z4}~J1rXl3#S8IF2$WcUX>Tvy$amZ0q0(c%kL9ZWvDDII<9mqG4ty9}n!WvUHa~Hf-3ve?LxG zBG-e*j&+quNi)$hUNy7ue0Lz-Eyl`IQmPSu?HYjHKUD&%nb>#~H9*Q`%g!OT=Dl=E z8%#YeUtLPuoMY%<(XLac%PJ3)UmBw&pmbXK$d&L>GBkL_q&&u^JPAyq7(k;mV7K!$ z8ybIRX3WMjA#W{{2}iSidn;Spd2{DZ_S~TEml$6R+_IJ?z$P>1s#k{W9+ at fGf(y{V z0U8sNF|yK#hGYawcO3P(z}cx~4Z{J2mNq z1swMeMGWV{UYyEXp>|R(0`eduVW66fKu{NUXe&ZdMkM=?%4lU!mB1&)76={n-ued* zoG1Af20C}`+Kwe?qemY_xW3l<*R=*KjJ~P5uer>bSxK~ zR;f$4L4{@1z}yrh(X3K{m!VsL<6qbY?D+AT^TxSjbos3yNd zq;NXfItj$!r!m_Wb|f*S`)h_b>{lAk8<5_Cr$TInX9+Xc*Vo4}00)bokd%Z6;}#N* zzD4{!+YK(FYQ+0dFnML&Jm8>Mq$4)6qLG+hX};&;(n+Ol>n z1M19J(g8Q#Jl;0d$n*tm9YVp173R*XV{s$`2Dt at tuqmwIQW!@da>0F)W*Xj-d{DLV z1o&y8u5(6L{gV7zDzPMCl=mz1}x$&-q62WWTnKD`4JBdDs;1oi1d4OC() zp*M^^7evP6W^eW;E7Ubiv~pQip0Bypb55jFLd{JmI{;##kHHafbWozNtD8^mC+&tu zl$su5*4Qhx)a?X*0tYRk1nZw&tQmixy5hltd5IQ)7C at 8S#escSg(}tS<$>GyJ%9vM zWmJ7CE4;{nsJsgv8QHt))~#N>ds9Sl3rLU(hnc7Yah*vCU{XU4=Hr-#xQ%2gJ)wx; zP1i~H;~5CQx3#~tZMzPwQ0WA)%F48~n&^DKwQcGhqQz#0|}c^7r+9VE=KSt6{`LbFA_ya_j2F7_*zEfm&=!k4kKl7~PYPs at U$I^OFow4(Ygk`MnOUUXiNeq7{w z8Ft1GtrpnJyXOeu?E&o at P@a=w;2kz->1XM=J`8|IS1<@EYH7Z@<0l9d{1JNfvPyW0 z)`jL&w{;s=uNL17BW&keVDd|`&TnTDg>(pq?wvIO5kJhx=znpy3=QR6KnHPxcrk!K zxdl_YpV5er at 0n902rv9<8K at B-hWHvUWyOb`y*=h3<}nw6F(i7*i`ss@`u08ZXH6it zG{2Ph%uPWWtn4lt=;iJGi4r&avuOS!s#7j5*D at -a;o?;V1#uLni~6Bw8V$gC{+vo< zISujIv*SHQvRZBcXo1ceeLKW(G*xa*cdPA`?TLI6Ilz+7jd{=skiL9?zJ1@*T!m)f zzW`i0!_ig=ZlaKj>M at _X8`Z|e#LY7hx&5uXu9b-#n(<;G*#pkM&1+IQ{Y~Qq2*Wxc zJ|jgz=B3=Ku8TgPd_X!&TN_$@9kyaO+D~Da`5C8&kVPM#PgZw%Ql%%>=_uQol&Xxy zVeS%)1`;~S7PG_IaQ8nB9$b94)!Ko)OeFr955Sj*3eknIe#3vxDtJn5X6?`&?2 at 8#;U&NbW86VAq)HXG=fDAWU6B<*bf6jb+$62+)~{dt5mTr! z2y}Eq=@g;j;^`*(p?LIvfxX88ILOk?WKjgv5YJe_pX&h?hs76Uv-Q6a^rGtyEE19( z5XA4 at J7L)Sax#!<>Wmp!Vm!g?am9+ekQQiW+jLtUln}F%ZU)M`h3~p)3vpL4Zcuor zXg-!>X$pNrra>b|DnpHVKZAnD%YF%QSYC*aCM{;Q858gjL0NzOg%D8ECLrHLx7_ml zZ|OZ%?|hKOZr5=yfc(Tjx>eY9b2K%YLP{W}Vz>aMgE>jG7C>(<)>F|>!CptD?0_Mg zJ)7Zun}#jKc*4cv#pq-#Moi_D6X7aeS`1mm$BLZv5e*no!z_{7Zp^rG0RRkyNaP%0 z0-WHg_9Z)j)HuZ?N=jHr5)^kl56$f&5;!HSjhUc$a@&F11oINh#4)r8SPxAv9gPok z8Uvz=N24(`JmJ*pA4tfpTTyht<18z#*0myEmEM;qTYVZeRC3Q};J}Uz{qZ6r`-v^i z at +v5E7QX;J0>i7#Ejm at e-J$H(f5u!&8T`Y50oV$0v!O8%I39FzqLayuQ(H0MR#@|j z|C5-GG=gNT?*l1cb^kskv+?UgK*fTVFEH4h+O>nplXvOzj-D4nRR(UPcF&(aWz)nI zFfY?IuD<{(lMd#9uLzvARx46dna)x_5v^7J?S;Bf82GS=Y&VKU4kK%9-I~QJV6HQk*9!T6yfZ zYVC;3{43H=eH}wd7z34K8x6gm67c%fD{5h;+i15yV7pxgHu76mrKKSU6Wsqa9-Yzz zKRyf-SZcbLE$CHo8tV&z&f4w}BizTNd&Zcmq?CjcV3 at 2VJqg1VOU6Z6YEmq!_>unFAP}4!+oAEr$T+dE>@~LRWcyJy(yH40R}y?qar!FM1IYHH=R5 zz~<#eOl}C_7}&-}9&n)mqOSuidvxs at F>4l8) z*a&7KiE_Us3?mnQpGV(it%n23C}F)PHd;&Fu^)K<063Ih?F6 zDXnGVd{ap{^b=!?IE_@)k}PPR-j1t*!Bb zD4XON>cgLM8fD(jfCDsj>Qe|ls7_fTRX;B$XK$zb&ezvOLXJ+IN{~?Jnabw#Y9H3r zOpl66_}rmEPlE;DK&XL5mTC);U2o;XM&vHpO}#f<#8i;N8tKF at yRSpsfaC`bJWYXC zRyO3D?wUSqUjMLR%-I}2P8$Ym?Vsc_h(2Uy7~YzgBq6nQDJtCjnY9b>0jP*Lu3N9v z@|tJPn#HXYF4oY;qH_k)BqVnd5nTrBhEtI4%TjC&|0E4Vh*LVwn+L4(s+`2bK^zDL z?Y at dHk>I%=YHgPv&Hfe+ZFTM1%uJGg>v<!#Ez!+ClH}F z9zPD0%jn`0pzHpaHGFtE3TveolTi>$^snG(1uYnbFy$9l-9V%3dCw^BG^d}xL3Pg3 zR~j93Irt2K4d_KEl7t(yS~dhv`AdwX-8;+T?Be{?&*iOD^Ke93e&yCW5r*V!+q!s= zNJK@;69C5w?Hsv|H%XC3XlCRh>v#2qa03loO^seJjA0=GJB2zB%blf5JC(|4n=#Ul zCTB@|mZ=F-fnVJh`9Y|5fo)5XI5svaqO3XS1m5&~hC<`}uS8l7?gnwh{KaXfX$%$@ zx`I;*cn(xpd<0>*sS^K?w3HN#JQ2pz*r{l3a%@$;|ji6 zPZBt at QaNlONJum@Fx7NW=@k9 at v%r)2e+I7*xM0uNy*u*`hnY9 at l16Ib zFxL^1ASU+prsP3_0XxEY0gLYe6nu|h*EWyEBo3{*=W8E}TD&$Y_ZILyZBwBGjIA9! ztYBU-j-f?=yvb2&Z_U`@fa=ZWw7B1X4&;)Xql(}!uo{d|!{62D|7jsF27*`Y@?n90= zHwN7Vx at L%PTO4k~pK+{1G5cv1$ZF}n#sAk4YJlyI8HgZiI6Tf>0kh!M}~ z>m!=tbob`c;suk=n#FXSV$dML*a*E&bv=NZ_B6XDn0D{B?m}N_ at t!}?hC(1w(Md)* zxaZ89H;)X*Q^s5kB>({ zQDhkz8^3O7U at bjvJe)25;VStRQjL=S+t at u;nX|%bK3qz409#7XrPxoJPnKeYfPwb$ zH;8;7Qh+L-B>jZwtAmD9!#4-1`&X_Yr4jx4ql*Ke041volujNGuR?*s1LITkgzyO`aoxw=w$)$eXXB=d>;|Ca zfNf$_jO_qbu4iQ#eAV;M3{6lDA(uDuW|HL2QkMW23E129M6y&o| zlY;;}(j&Tx^syFwMiJg9&v>v1 at 0fUCb|k5;%Sl^1KM_xuI*xIg4kEyXdiP8fEYwC=y%yHK^3 at 2gVX?1 zAW{laLX?AiefC9tDEDch3@#iXx}8$k$Kq2o?4nsBg;M+tM at 2T|SV$k at 2zHdX-cvs2 zK4Wd$VLw6>;EP=sfIy0M-oU}G%p6}s{vNhd2R?;1sf}3(R%Z$vv;rxBg()$5-B4!d z*ftc_VKJ>~bfJv$vkk*4y(H+y!A*Eo at DF6`q(XFC5SZvjQX11tNN5q$r-O6n zJiXe*%N_$P!6~n}I@?80hX9>5 at H;%*4^8Q7ooG3`ggc#V^UvPB&tYExap-4wCh%Xn z at H`6(3rcM~H&9REpeYFA2_md2WE{(U6(0%#4|5;j$;5;N>VvXLuc3c2L}$W}@}Dj} zQ`C1_-Y~h#9R2AAZVWmU?O}2DFwq0)&2x~(FxR*?!{WGRd}IttV`8I_0iT&2rEt)= zE~hJ}?8YHAcBoRBgm3v3#+VG(YKULRA3S!(-%)=uqw1wX$A(LTvrNjJ4cfuZ at Wdb& zez?0Wh;eko6sU}5K0NhS+W9SHa`2J6?Q|%3clThDJ%^1YZ0}6HR|kr{tuL z;{XBt4Q_Nee1e^CPjB=j#&h00WJraLG0^&W!q zov1_%adN7L?&RWdY7170l{NT7>gS-s5=cC{t)yJsTkB{eu*UaF4^RP#1Vn^|;DAnP zCE;Q7F=$erizwi|sW%9WO-VRh9b6cE7reuD14hOu;F*rV4nv at u2~&LfZrF^aIj~VO z@!?Iej?N8Wou@~C&_E&~6lpyF>lBL*iBd{#e~wz06YkM-0z(K`e>1tUd^z8S_tG$c zpv}))h+A8Tu|5tF76#FsDa`cU*`CDeODa_!U-mJaCzzxE4C|kJ34RzsB`hgO2}M2h z0BD|$+b%83ztIhuNQ!tvtu0+12 zuD6gfoU)o?r|8LsAeZ=#EJ3h-c91 at 1P7d4aOK}E8f4*xMGaf|`P1k%T4(PY5s{SRm z$UCCNlH4lhP_k)Y%^E?^N+2a at N?IFi%0^z7c=PmfLhD!v03exXmukT9`=s>-+J&$)9k zy%P$Q-?oA974AY1!PBGUU-V$HD`6k$mQg~Zu6MKP#vmD#4dwu8}Edms(PmxTEOoRS`&$h2(cMxA~D2IFtkrZjE3VBB at sxR z;K=i*g9ceL#CbJ8MSjq5>wsVbf~-qD`6#EtYMO?i!XZbFi^vAAmM_o#VxsRO1uy at J z;+G7TEwdZig-X`xF9KBMGoJ)njsN4P1-XnMDe^q2go%0OoBGu-tV)}iu{yI3yS!0L z^S8-S-~mpNK<^Iy#Y4&%EwlO5Aj=XGLfOtL6}^t3l@;Ke$7BGbZTpQ#L&PoUO3X0T zY6j#Eu#pNI33ksinP0f=27_sB+wS0mOjhvV384J(21{h^O$9AYKCoaOp71^gr&jY4 znX2Ja at L9)=`<&+UC35<7?e-!hYBb$=bf7UPt!j5qeAURt9`kwsqSMn5S$}%>yu!2^ zyYExwa7k(>xZb<0jGjDMkZf(=j>L at KhhW;X%$X=d>0oZd>!y~3Q3pL!W-2GDuE`lr z$LB?mKcEKY_^DJC_wUo3)JRWrsJXzh3}mh7^Q*_S!I@*mLh=sz9b}npz?NQmH%yav zBYL;(>(Hg}4wUd&R|`_Pcup?wN5D{)j^|V!aP409mT|FmiQqnM6@?YS+J!R at d}Kk4J;WwSDnK`78^^{d!O?W+$T z&eyyGwlJAHdAORCMKnA0#_ at 7{hb2?s0#nlXsEp@{V#1-{V-PzEc*Glx9!_SFDnt)! z!Gx?J1A(BluAIO at r~M4{hf|kLhT8(oJ^IVoKh42L32Q>s at pD^J*Esd`(p(dZod8)fd(i#YGUQH=fVPbmv zPmvXKA^eNfun6y**-DR#h))boF2PBuRzhHj at y5BLF#Q%MbH4#3k%>jZzyHplE1Ft@ zFhrxs#I+p!hT at xzV6<4AKE*&%a;0G-$y1G~+(Fgj#FJLh-|;9Aq*5_NN$3=Eu#7Lm zg+T{^_sJ2s)(8gNcuXUaqI5u8jKew^m*<}nu$3C_;v)KBJSTP2QFa+Kk0XyFzDx~<;G(&Fz;h|9R(0< z5rGG~xbhD*JwSw%6h;*7kjbQBgC42lTdfFi)(oH%%t+Z}e#*0F*crw=y}AQ#guXec z9?%Y_O^@mAhY##Pq(DqBdq|HAakj_bj6RNVTT5!=9il*i8n9Xkrl1 at 6b*BJD|Lv-( zDhPBg2Ehsl!Vl#~lP95UG3_QbF`CCvwkXSVyVE?UhFJy8kDomglze9T zDmH8}SpdJ(vnMj=KR8s`7ezPA&z^k-x2G4&ZQb at L*u~TxFRVf?VS~1?4qW zBbp$Z=LZX#>Gw9ygB(%Dm7g5H46;as6+JZApp_e z3Z2M_j7&@zbeN8xIb*T8 zm`g>VXr|)eOc3mKdJLp&WioEzC6+v(!efM<;sLF(;ZyP^N>aeO>K!<#t*tHQ-IyRL zXGr|_V3=&1ni!A@)P*|gFcC{h1U{XS0T=|6KP at eX(?g+?M2moR02yV6b8}gbv~$F6 z05CKZ&j4hg>;cAKzjiIBie|fJoujx(G*XN$ccBB$?KVlm$8CL13hspG2TQZIIJxHbk?BD$uYsoYFbtjN!GrS98KGg$ z1x3`gd-r-E7o9SNhV$Ku3KpC|Umrhs at O5>uiP{`q;lqayq%=}P+^4rw(QreEQ|nR> zAVRXh$V at IHy<--!XOAF1qd!OYhpo$!mzcM(0O$B|0n>zr!m4JLgd>W8KT>qYb*L); zPsu8s{4XLV0TEUCDeN6DQaFx4bkI=#nE^w$G`<997w=EvC`qZV^F?g`&W>f&4E7;s z7Z}Vaw1QwPD`JkKhwc*J$>c>j at QbVl@j;kBR<)FaOn42QI5Ca|Z%mG}zH9w@^i%Db zlF?Q|&cH1Yk>IJQd#gW`O`6S;xDM}T;)eXNtc{{850mhI at VJVT3>rwcGq|Dn{`+#G z at ljiN+Nh|-j8D(AQTyd^O1XdM>25(!o3%4FjQ_fC#65F$SQ*`axY77ADkx3v&%x&U ziWRkwAKT)lh)YXlB_5LP=5)S?$ss;+;+du*9 zH!8aksb& z9Fq~h{YIv#udl~m-z55jPy+q-8{INNpl5H-|3n=MMj-m)RF4#N=e~WP8C%0+CDQ*E ztxCe$>Y#_1Z0KB(!B*YAja`GObGOgE`L9HAei$bLxQ)HvB18Ug%fWux&YGmoN)-KKw7B# z8AT$wLfCaWON~PQ}LNi5h7`I=E3=4lm%Z at umr}2j{TH;Ey#hwhH6cmJM zb84_F>?d_H!V`Ebstg2I#WzBOgX_4^)ICj&uUJ0x7Wp>|dLBM>$v3_g^BW?EaTb}) zC-U<#EuytO4M5JCffL_jAO#1*;4~|@gI)bQpM}*Uv{Y_^jx<+nhF at SOih=5APL3}W z^U6R9%c6YKab?iAAr(ZH8H6}2N4YT6irhzaTgFK`DB93d_R!ugi1RtMfn3YL7&i!I zCwW=f8fYWy)`2YSbQuxFe0pP%V{s~Tqr}6y_fF ziP<4;RC*yd%@x^L`#{?0yz-I5Ku`W=!drqO;WBe!NX#_e*lv&2^2gan#a=Ehh6}r@ zxi<~34dEI3QMXu5s7=5^p zHEWzdzeW^5M?qM$M?gm!U38q+33W_?fTtf+6KiGGex1F?mx786y>*47YLGbGBGC_V zCZ*qERxc1m12)oV5#5%r at P-s2EumLuev&yGNN~`E-EIZCAwcE4S5cF`3AE8kdxS+s9^Y;o?vw0LGR!y};kKSGqSb6aEY_1h11UPH-rl zG at B)kydh?UF_l28v at 2MpXEd!MhxYm`DBf*XIt^M3OV7L5J#r68n9+>IAFQNjF~{U! zAYvrmSH8Xo*}=PlHRBn6XS1BZOqVRRgdPtb*;oun#$G2e(T$Y>hZuhV+)E9yy`}9+ z-+?tgo_6M3G at U7XZ>3TxQ44a96;iZUMN39boVX=$o8U1pvrVr@|E~o|31Gb-r8 at 4# z$afANbJr!(ffGE}u>Zy;jXIMvoSvp$B+42Fg##gsKA5n=G!Lg3*3hv-2YQ at UASM1E zi+9FHPVe+QC!V!MTmZ@%tDuUCiaydl{Stz zE7J4^^I~FPzYrXMXlPJ9_aXmkhvBMIMezV$*tKCmOsz0ifgy<`IU(UJMSf=R6b$0A zi`I8zbkXEQH3x+r3=fdXhw#O=UC3SXYFb)3rHN{%=8Olfn?U};CH;E#9LAV2=@tbJ zwCTx~xjh(=yo{E_~<+{GF@^Lm!=QMl3VNc3Ye62T(=_q0FQ zZG_~3nuvmnVOH2(rY%K=2FeO(lmO>mJXxyEdGl>DlvL4g5a9Q4bHissd=JGz4{z at ioY0=# zsU%V2$T||jjhwyIYFKBJ5u11K7C<@JgG&loCYX!&>xV~8<>|S!S&%e6!tEnHomFy@ zQE#Y`Wzqf6%u{l=w_*l+gLV*LQ${QueOONABlR%M#6^`~he5ig53aW+E0jW^$ z)ZMM6g#${lNYa*C*nKVx{z&(R&(8^!6b_+`Wzg_9!7Y;A07%N?NWEMX3g3qITt`TG zp+cTMoz;zpag;Xmv`$Gl`acB$vjr*Ga9;vED~+o78 at X; zvV8ckj-D+m2Uu?nMvXTdC*@!u^HOQlSrH2sjHcl}uan&#crh9(+&ZiP(f82Ik3NLb z<5%GM`0@T^@Kcdr-lm z532&Vp-9lpJ0G5>|Bh~oU&bhPsoI{wfI^?G~~VNsxM5H;fX9{jjOY$>cL%yN;I?NVod;|Fz~Jp$U54mMAWVPy2 at 05GOqr*D+_LA(f2F0h&z>Q9Wwo9wHchNet&0v>a_Z#C zpLUF(R^??ASSC%{PU at s}QQMar4EW+D;XzR6+NZMf5SI}kn9$Hn-r>Hd2!S~2$Q==H zb;&4`U8$v4!~#F`zbP;jXA29R5EKqo at v6v~Fpv?e|t zm~c9NS}q;cEoh9K3(5L06#Oj=$=D2PreUB0S9#-SXg39u&4;^g4XXg+b4+-Ttc7Eu zB;V}p`SWaGN!qf-2l#rf0J2?}FTM63&y_!mi}~WeD>t>x%tLuCN$!H^jehjFaRUG$ zsDY at Dxui7Q`G(mB$R$_ at t2H?dkO$lfLy3wXet;fEuMEV2t}Gmc4G4qxqkjLr>(^Jt z#N?2i5LJHWnl(k?c}g2jGkQzGAa at 9hf(&Zgfd6=7=ql>oJjWpFtG^+<q at -aS|`ATkCM%*@l+hw6khD)ysKbN4-co z1~^P9m#EViVJSn3K;sSk#ZVW&ju893yL)c^ubfE`2LP2&!P}+cs~cuqxrt{&oeX=5 zuc}63f{PFeN#z0MJ6 at gPbusgCUz+=e`tez^odwG(f+Wrj+=B)D3*ngld8Gyp0nsfz zJRD>(?SbR#oRXAuo*=+lcOb2?7J={OOP7rDuHL`jX_$A20kfKtHuu0s22Zxr3iq5` zw~D^>Q;RR)ZOv`Xz at hX^Iw+5R1Mf=Y!#WIx%$AM0 zNu38VqSoQ5+4AbVBS!`88yk$~&!2dF_K!lTC*uLon5}#M94?UEHPPt_e-5k^l;AXN zZ%H?z){ow<@b>n5;CN2NLR|DSuYt4>;n&Y<^MApJCp}&N^eL@~)~ZReLa;n94_9`< z-w{ZOR+HjvR#cR-Vm=odY(ry}c{R9L_%X`YAQvtzc-wCMAM?V#?;ta5G7PwpUG)pu z3+vjyhZFC(7W at NwQu_zCk`2bHzcnAueW};I(X?`m>Ia2@&paW415WFnM?gQ0l+SUB zKF&K4Oj%j- at baagEJPGC499p_W>hwvWooQXrel*y_XQ!up+rv_x6Z3^;GD}$R-}B$4l#@kS^8#GyeJm&H#w9N~Q3nN at FA)?}obwr{PaQ!gMNP(WVv@ z6hJ?@zonETg(ewFg3M^72nc7nOeRB=BW=}6 at ET#|d at mhSV!$8LJgR8r!$Q%*+KL?D zA);1uF8lvJPNI at j&943nZoY0M_B-9FQ;Pys2%_=`l+T3r#1Ui4cAq zJr9aUOez|*MU~eu!`T#hChy|g&r?A zoLBaZU84SIeOFA<(uA8vuch!3M|A^FY|2KE at wL|#hX#kO9W-_t#$^}b7Xm#dAT5w3 z?gJ{7X#L!Lvt4`kaI6ZIwVW{B^^=5rD!vYeG%wzPPZ;nEnYwu6S6p?;P@mAxWt5_YmfpMvW zw$7f{tCY{a?45VIFWV1viy6>38d{84VeV;oHfZJFP2OyVzQvDC4xsnLMxNX;J{Ss zTj=V^wTU3ufPwYlsCu=lYrCQ=#+w~@CvrD3Hzf|jf2wx(yYKdVoc)-KT6rj1Oy$a) zYs?0C!G)boke-LTywaHa0NI~|xBvJVw=c0>62Ua4Y)`+Jr%b7?fEn^Vc%j-<#sC2( zLOZR%F$q>;jG~EhFn+cMuI9p!*U9+McpyK#G9^of-SCri2&~HZR>ffxYYk2 at XVZ!8 zwzVj-i`2U*nD>ZYn}uEC7IWL^U#2!jbz0x_an$b6xKg|OkdA-!l49}f>C?SS7o=1V zs3-H0T`H&E*|=#_+Wrs8d>B36cYDog0YNlv+C89NKZRIq?EML6YftYYJC0%KB4`PE z<_3$-By1h}mMv<5?B*y<9(8nE(WV0v zCl+0}p`grq1+*<5ty>3zYJWp_P$EZQ5TCWgXfvzT^JbiB|8}-p at 94mv0kO<~+Uf)M zCU|v2hPo2|-$PB#7u{Fg*9Ys4zK%tNxT0MgI0a^$gaIDqyWU-7#=SJXGzwMsXY|co}z2ygc zKmHh3K8)8!liiZPW?h5krUxxXOuPy=y_-X*-iWPO*{-ZzyRKIdTwN_w%>ChYUu&_{ zkEkF%De8RS4GvFRP8YqKQsUclqu%)Vz=uuBckMEHVwWDveym-4- at q=pySwM^u5dVe zRLSYtF)L=yxbeh+4}0IXbM}SH10N5(o&NlH^GBDzz5T&AP7mMm__ at m?+tu{=a_Y7f z$&MYvM?T369IgWaZTK7`lZ?wLKs=iiC;$vf`vN6PPExQsPiB-7}YysQrgh{*Vy%>xY7V)^V|n9^y$k0id~;6yCkp`u4PtA&A5Bh9 zVi~wUScNffo;~*0{l+!o<2P at e$1Hmb0;Aly>)+0S7(R&_V81aHN035lZYK|&Nq_;xTJ_z zdFlQ|m0}f_&z^mNj!*5aj7|CZ#E~Q0hDSk<$$qpn8D&4QFQ at ym4);{aUQqCH*0-gb zugKq3dTyDP=Q2Jle(f5fo>wccTehsTBigCc(#@Nxbmq}){fA|BUqQuGNdwUR3O!a6^>pE8t(mgbLGk*>x1y^Hr;sS!X;lsdMLFnQJM8RxYVOCD<0D z{sFWcdZhe?1=sPU`_tes0O7m|IQ^1@(|Z_wkwVx}c2J1B=n54gig^rb{3n;&H|ehx zgqit7XdhBM)j3yNUPnNw-x1WhK4@;VZXUYn08E`)EcB at J3z$ehgrw1NY~8j^lS{Bn zdp`_|#Dd_yW!?E}dK4Ws&pxlv$O?Y)n9{NnW99>a}_J1Hy9lg8zmN z)CHnb!37i|_|zW6)$hKWHMrKG24Jo9W#h&@m72QRB;}NMt&FlaFtT+nby63Ci+x{y z+5E;EpL_DjsI%{Zdtz?-3Gv}Q>U+%>;vuG9*TQ?r>mD{~kBC9xvwClhHfb?0-_ at pO zk(mf~4ju`o!n|viN$M9Jsncl^P3qHCKO*9 zuOQ30+)6 at pFei1yvzJX8p{EOEo{y0P`H!)eBJSIdUqxxHtDH7s#C>mmN$M>2C~b`- zwwh-{Z7-HpCiyB%`cg+lzqNR=5zcKydQ-?+7uonB$6gz4g5-j%`;Pf(i6bPc;820MES zgt$`~uf3pdkJ$p|B@)j3-<+(hMO(JiDz(K&v~YBm__#aV&Ye0j6A9dwhf%)ted?)Q zhSRNgPt4659avg;TzV5op1j*IUyB66$X at gvFNHO0Sl~MwFk(|*k=v at ai2yUXK zpqkT)&`@xj-t}k9nl;>2RF47kn$#Mp|Oz at C(uI?jjHvGM`ns6_cy*(l{YTYK{k7c&LriX%Qg zmYmb0>)Y1?zQ=sdoNH4bgK>Wb$i^WxYQ#Nn)ykC^E;(R#&tQaFRr*ZuXlSSNQsSI> zRh=C1pV@)|{^2+KUH+ZsHvQ}ev$(+_z7kxCEWkI_q?tHfQ^GT$78|$Qc~@au^G;4im~!{Aw>6#l at YH_8>MOgS?ZrXu9ih z6&HR%9Q^E-(U$|UzJ`lH)KAy^k14ll>!-o^7?4{3r}?w};Q88c9|*(8yLYb}`upoz z$N{4s`uJyHpnw$iaNl9Wq)mf8XFQRlkFP0Te$D&uKk>weDbq!1X3b^uR}iH6=4)o; zI3D_dl;?o*FTD8Tn7 at B16T4ma0$sI|NoJ2Of1*9lDUXSz=JE2q3_ zJ>_X)n5Y_`$eU?3udiP}Y~DBK3Rt(FKkxlXi{Zo03FsaZp{R66iys at C-gSu%lsI8c zpIAu;DGpC%KLFx2Hqd#|7plnAatD}LTeVYjTCHl;M9PZg%MYVBo71hGY4Pi>!!cL; zWWz(9D^Gd9_r}uxzc&-Q2N?F6*D%g1VD5PIz&GCbHkL)H`1SEI>Kxvd at LtXeGLP|o z;}>1lkd`{QVdrd5hdZ1;bxQHN8Ira3<%*^5U}^Hh46~WXZUHqSH4FRnF^GCl=&H-{`99(HjK%Zf7sx1- at x@prF~64jGu< zgug2{dj*=eVZ-YRsO{VP5zOg+E&QA`39!+ at 7a>EU1yX}WkT`Q$j{LsI_ku zY-(SprQqC%%NO5wW^h at ko9L1BO^W;6CVV~kQKItqR%@LZVT$@`TYWnH4>m)tbZUBy znl(9hMf}hpvgn~dTehs;w0-*pKMg6U^M6`^PKzX1zygmJBA>NA`}v`(Z#J<1`R?86 zTYm#z$0ka3A1OI=8X<6%34-6B- at SiAd#E*r1b3_>ikoej@$(C$xW(T3S;Xy-{d&T? z7xA at mXU%>Dz`Fn3yK2MO*p$9~XHqvKeycTMFz1#%OvmzZl2DpnFRMW$gxPf zISwMurcJcB4XU#a^>0of-+lKTmEwWH`}&(?UN7K4i!E>@YvSu z=pV=(a#*DX8+NaC at xC%hNDKF;CEOWz9GX*R at e@7kz0$D`$Q)jtS&k~@ZwCvQd;9P+ z%Rl(ww$yHi{`S at C@;((hLQnX9nc)ma zpzxYExHY{LYyik>(BYGWq at -*lgbC4+BjOdws)($vu1S+)y0%Sw24ADQ{Wb5V%Hcr(MN1UAbjlmn6=p z^!lFkN}C+GBjbmZy7cc at VGu+8QSAi67d0NIy)M5^|9Lr;!>;i5I(cx@^qw|sV| zMbNf)!xJ(B)S& z0QX8%kGH(!l~08}$@GhnK)?{fn>K8C`0>X-|Mb&Q%ozDd7$nKh zAE++w64N(sww~_3hObBo!mST#@r^9jh^nt~WB-9%=|9eB0V=#~#~xN?Q%BQLrWk3uY3`;FqXZ#vyRN^^!XYW-w%Hu!(yyKa(2iFfS-seky z9_R(&Sp7vnP#>ArKKa>n&kR!JES_IQASAN@>_ytuXDQ%~@Zo+aV#Z#X4!*X%TjD%Z zf$%AJ at +ntX0)=SFJV|BD1xqIeVjfp%v}<>T^8)&8<(!rth(*Nz`yXSe5$Fo!25f}| zLE{Du0-NKtH*TFA=#$`p7WDiA9L0Utta-&Hgg67j^us}UK+utvR%Q7XU6DNOn`rmX z at BH%M=uq1?I at WpHP=iN?vABMuPFkS`E(4U9>)nye9U>p)2lSEl_=wOo1t=w*Z7GOLuP#kIj#UICx&4$nnzAia*32%66 z_J2tDsue3TZ+}3~q~lIL8KXo|4Iem=)qmpDsdv-Eu;n^cww-F#@`|D at rbqzM76Hxa zhI8HIQ(;GG*&6_l8bV0h(oNB-3%$_Zz+hV&YFrW|3 zzO=gg7(GV+p7|pwSX0HZtK!(_4acV$W96hvb5f*+iU+V4H+_h*!(a*1X35jtaRD3EGtp6V04EIVdleM`RBy7h3NnWM at CVqnXq*xFdV(% zh474mAAV>O8w=LX&?yrD(9Ezmv;a9`+Af~$C%M5QDzG%;|1J1Fh=mm at z?+HL>ELB+ zI5bIjdbr4~(ByeOeqo at jvZR_)$Y3VsgV_(_RCaVCe4v0Nec%CARqYI$uSGuQh9w>( zX?(Uy$Ft|o86Du}7X8x|k%7dm_mzlS&*?X{BH&9U1m(}R*CYFUr=dtGW^5o-GY~kD z%RKtI`;37oyjeLbsi$|WqlATZXpCbkGCpp2{q+;#W7#xeKrUT^c7Q?lo at LH4$*&@7 z+?_#ok5mbz2L4#FvDmgsf4wHl3V1-h!tn1mk7&_h$z2sw+ zx#~XcfrUE#qHKUV8fd}vIx at tip<17Q_F2=$jaTTijvlR8z4}~gJF-0Hqh}xfWlW#l zVi2&-ZPmi#LoigHhjLSWBFu)W#1<`T9uZx2X$uK9Zu7X&9!JyESb}rN5Ol;&;{-*O zPW=2S_*vppRc^a8<>FC9P3&zaJ`61%4;sWUkaS`YkpmL6A0+CEIiQTYqSm9TB;l)z zDFBw1Z=O7QbTOKo>EFEZy*3W at rgV-BAGx=)6riY|nxCTa;fffnJQ_F7JpU`R){5~N z^^QR!QcirdVFOZU5O~_h%8L}KaRA&TLg_O*)_LFai;T>BL)rhK5D%Z~m#5wXSES!p z?l+`mT0QZa1&T7MCaJ7Dpu*4p;_;-UQ1%Q57D1Jfc>N7G at FH8 z8g$FL4A|71(`{#;H7>Lrf+skb=Zgvfj9$e)BFI at PSCuX)lsZhIiuA;BhIG=BPVs7EUVBb>Vi;AhT(b1RQIUjb% zXN>E?fr6fe(}HHOKXgeC;QFCil~;t656m!Jy0D7DVTDO6TOuMN4*grT+3uB}AI1&q z=m>fjE?Oj2xRh!L=U?E;xFHxp*?Ot7vVX`v8AmN at ZPc~L@)XfI)yfXyi(faT6r^r# z)ua4Rp|4WODQu3MAkDonYgFag+Qj|1n1<$ z0&{vsReXLG?89rtO=n*)5XYC!BqJVce1li~IeSC?Ot=#Os{iDCr at 3XzwZ|ghz=5d{$sGmS*FWCFGp)Fwx z763(qG2N&HX+!0qfz7Vj;Oan!x$j%8TbdRi$zF9|uZk0~r z_}{!TO=Wqzlj=+-TENVziRm_1t@@mO#>G6+#wHCLrr*=o{89DGG0Dk~J{tM*P0_b# zW5X_6D-i0jT6FETWps^p?NPbm)yE0C$$PF`__dY?gmKdF8QcXcQn-Wu!N^GBOIN;r z!GvR4-xAT$p7}Snyx!_rw6VyF;fx`XoXF6%OX)}&&k81j&{MJ;Bt+p2o687IKmA60 zsw6tkVJo3gr!I)Nfy}61oIvv_f zWg+mwieXJpObMFJ>hrp{cMZ*|AnFMzZ at m>lj_2T(>iPP7Nh{zoW{AR;1;ax*IfVk^ zo%LpTeaftpy`8P>E=OyPxs!csp zrjaZe8QwqLvF?4c^tC%#et at l+KpOY=044X#)%7i%zADLW->Ox$-(Gh|mC6SWtOJDY z=|`1GU|4(lZmdrJ$al%fS6{F2%IR|X{OP)FCg6J)v>CQ`&6LBbXGo<3C)#aC8%we{AK7U=~*6nq%mW+{z{8T(V{VP zymHHA&z@}tn6iMsYljY5q$SQ{?8ANg_pef+0>8$nv~_SBFp_uE at KdzA8sxvp2yE`` zB(#BVYaYf3k=pvsyYAX{V!gRex6sMLUQx2=e_Q7EyV6%{flYW3m6Iu}5hUr<4hxf( zyG&tYzVPtXhZa(}l2?aemWl{U!aK4;gSHioZJFET?%0_0bJm8IJMbV+pj}78f*qpe zRwfm`#?+~(t<@!!zRt`X_;=8Yl^FclSZLPbf+I<{Dz zPo}Glium4-q&o1Nt`aqaDFAiA*_oS7`k0rP)DaomX7r^h760d8D>F{b^erR9d-E<`E#Qe5%b&K;q0U4BNdWho zED29cT=?dj(6P+t+cjwtU7;b?T4uC-Ntq;~hu*w&>B75i6V+m9fYMNWWdu#ieO2h* z$Y|}`Z;Lc-=%b3NXK6(bAhb1K=0DJ=otVw!RxEIRT+uDT2=TC?VS$qq&! zsd}m^O?_itbpFDs&nK%4V5}0V3(ulW>Pa7qH|*Uu0_n at o%rn5p2e8uU%Z+KxFP$(@ zj5kzH^9RGVvMfSGi0^;~zv$w{;o%vq7WSB+wd2Sp5Fnq3%J+oRV6_jZ*X`{%eE0IO zYb#X()~{Z;(MNzVrnVjX%p0?2eRbwc^OQokkE=s>Dq`VC96#SArDBQ3r_84`m}v+B zkU+T^wcrCs%ND%+l=xz|Slb5O^5JNsvQzv$(*>3kU-B`9EK^gOh#{wVLJ>|L{ny=&LV2UKzO}Mu%F8bg9XRldf`UTAtwvM*U?WQ$3A at h_ydC6xPS`!elO;z0dSNte) zwZH%_#kiB}k$A at H8eJp$-Wpi{Y#H|VQbAkP1xWeReij9tGwtc49~w5qFr1)`(w2fm z1NOQi_t4nFuVRY6%_l)~(h+_JJ4}FC^>-SGOY%HY=|0*9qs}|&kjya}f%DI!tWw6m&PWElP{Geyi`$6CnCRY6{7`G?# zNO-LDv|Ydc{4;bvF~?5VD+nO(=u{y at K~Z#5%vR8&eQLg1N?7*HnVe(8a>_#tVDhcz zwZn%X`k!rFqCtGO^}NalSo!^zAevf<^VEbNXMugXq~wji+&U(JUr9E at ZygDFnBHaX zym^63DB6(%+xega=-hc1rN1QXk`ffhm$sTVwPp1wPdSu^59ovsjadKQd-szpLIhqN zqf!^a{av3|K|>292&a#IWB&XPY&Q9>;*?=-DU2a`NgWqX-P5yb%ec7g{1gCK=KNO^ zbG=iklJGr^hq*S+&d;k$&b(8E&Rm>K*CnhubdReyawji0sbl5^6*l3+F%J(;Q}LQ> zbm2xi3h$V(pYcKQxYYPjX%I3vv!X*t`DA(Rg(Y`?CM60=uw8}>!n{}S6RAQVUTkc} z4aV0g7bEk!yTN{=Wdl}T(7{$Yghrm&u}2;4*FTDeRr^DZv#tTwD&)gZ!Bx(vtYDpV zdUM~zKTr4Xf8al#MFY$S5>P?C7f0l- at xRc#;E at d>glDh|i#mCaMG0sCpA(~~PBGJ@ zoDe6ORl*!CrQp-L_1UGydi+Tn-}pqE-$2H__~KK2`x4!x~So9dY at CX}raD3A6%jYzH1(@?938T;vFjR47g-W=`nPvls6 z?-rguFF%rQ6N0&E=yv~=36d#zz6-Ct21*DWs0CYc_!$$eYf26k;BuRW&0G?3U(cQf zc}E)5ysHyof+ at X$WH^>_hl;;4s~08J#mljEV at jyY;n{?40)ccAyD;%e=d6~{AnhvQ zYHUQS+io+fP&0HTu;xleej`N1;dvRlso znQ%{+VOuw3{u43!m!k9Sw{@F>GeQV<>hvU_8z-PL at GgTj9{v0GMrxP79Y*_w6wcI0j+%XQ?Z5?%58j8yJut5M{M>x#?xrw*{P-%w`$|-;Lx+ z-J{a`hgG}ierV5 at EV;vTwyWvG4_~x}hY%Vu{#aXZR`NaJDR1_2)dt<2{g at bnuj$vf z??$sd-sPsx*eJv|sX4Wi3C5SYH3;1HaSH#g5jqa!$Nv4d+nRRn!Tat5$aoTra@?nS z6%^o>+OWtGEOV2V(=9NBG6Jh>hMlWknpCzB^U#hDX%H>Q8kgw&7%(hN)f-odk}mt1L~wd2hdFoLHbNxmj$q^(5FUy`ksLI~D#?ST)osO(YJ_ z2(6DTTshyKF4yzBo3-i=o{B5Ac4pVOOA!g9D<3Y3+dpB- at 8)uOodcZ1GuBz!os}4dA`nM;9anME&iMRlkBb>RJv zo=OXVxZ=G)_tSKRX_ckXgzhusw-!I^!g1*F?>7 at tCKeDNKu`&;r_XP&^Z&E}UFwP4 zCJekvS0g^7S(PdBkIEI38UD;Kpi9rn43CMWx8MGhSK9oTobiD!bk-3)neAdtR%I7~ zmL^XQt5~Y$eE-g|TRw_5ki!v*UYtzaImC&kvNPO6wgM9G*zxF#)y6V*S9 at D_(sFO% zFtZ&=8q{m984ULI$Gd#HHQ|#zdqDl*e;wf{mSYBIy!kIJH9m9Z5qMt4mzu#uQzC(S{`cKmo9g#Xt~% zkwi~LKQ>3w01~h$AY^y}K{q9SOW)4NhqNO3a=ZUI at u0+@lE+i|5lwq-=qDS4%VC30 zwP0vFH(-H?vSmWjG-Cb2?ZprFR04`9M!){7UP3PkpoM`6EJms)e$TiVa^du&GeS!Z zVtr14Xr$(odfgffe)7qsMDX>`X2iLfrKbD~rSfwVB8vUGQM5FbL?AY&+dFT))tZJO z?{&Q!^sH2$dqbH at 4N53>;0k%JU=3!%>GJPGLfCy*cE>+T_q3YQ7j;m^SkC-aPtH<^ z=Cv4LcBj*9l~7W;N0)bTXV|H2>IZgGyYll7fteMIn>IynuA^OyZ|)E|_59R;HfsyX zKOS|OQof^7-5i6fN>|y7OE%8UAD(#dg zb5;B`$Y`hR>F1ZnFeIFRy?sq%$~I5S9~Yh~^ZxeR3dK3`;EsC}b6`V(`I&V-4MJ&A zM;W at US|$A2>_sr5qP1X%Sn}(aH(oU+csE-8^;T{4&DL9>B9vU92yUakQ-m`ifWHqxyZy=5f*qvFnM%7b=g zY=6C|`t5 at vn~(6$orKk8NXPKP{})Y`LJri1FMYNs+Z%N z_J98Qrq^G;OFHR#C+(6PSHJWnTW5LBn-OeN61l^w*V<~OckO4n2QHXDf3#`i%2Pve zbs?kLVAuatT>1 at xvRB>ekVK#H5TQ`6Hc(7>p`i^`jLujfAVPYX=|VctzpCdR4?cM9 z`N!i1WX#djH=LaeH5^VxtH1O7offxMR{>nmH6z8LrkGBGiVhcNQlQ*i>VvP7)@Kf{ zHn|*qV6i)1A{fFC`t3kbHHN=LV?fl#G0#=e)#;-s*sl;d6)wqmyTOTaCHv8-|0p;4 zJoOqh at YzO*K)ris{PS9%fxfz(iXzow1r?=@9^>E7(BSb4p;|JA1%9dQo(PHK;ls6Cv<^m)(`U+Q(IbRQZQzJU2l z5uooo*v-~D%D(fds;zn1dxZlwsrFOCa#pT1(on2gy2*!i@!KlWaFyIwCcBuOae*eG z(`+Q4pNe!rmor{~&9erAEzy1W0im|xmu~`L9e8WjtFJ;qG!!a at +4);1Z$YekR;H&r z9{K0Y8G4bYn}4UuMY&r%2Ur at H$jr3(nXeHz5JJ)i4Al=28e9-4Y#?yaY%tS|Vr1vr z=XD=Li{`qBR6YOziA-1yN}pdk`yG;FYH1eP6-&)B at 17FJndIJv6%TaGD_!*4S2r}C z^$cC|u3fP2j9o_rKW-_vUA2hW{_&kE*=whEdTrJ$ft6wb>^<)AWBB3toCb`K_);{mN z^Rk|m$^**n|0)jk8Ij at n@MyZm)YMZ-bFnfT zs9R1$`N(7TYl|-abHki&$as=cxgfSrnNp=PN8i5t-i)?&nl`-x9iDh-+oSt->?k&| zz+v_4D57M|l$R-%v+jNpdOp32`IZu8%SPR|KCsBYQ}L`^;atc(YhtiJ6YP+3C9sB- z&V77^E&9lZnf*7{&kk*}#ywj+>QU=K;Zlztt<@$i^wNVm@&_OM20R*`VNzf}bL*;A zpQhaGb4K$OjCH|a2M at NsB`~0z{a1FwYiWVktZ~0DoH>4tZhKrmN4iUwiK5kzDGJ!i zlX-uGcAkCixp9{xKbdUobl?8{!p`&0Jkyw60F%{*nS(y`7%_ z|Cw$0O~x^${c6>=ZmPr?6zXiidtk{KIj1(pSA5C#PqjbUkl&%$&z`8q=OK+YKV+!Gv}|}r zk`VaYZ>7pU1kLvV4y+_lVp z!&AW83%C+}l~irj?>}vRgbbfBU&!rJkCH3@$`7A^UT(nWj-CVP7<$`znZUb at QP)*0 z|JbH97xc3}gYko*_v-^6&V1?M^>5DDc0soWLQkbD7eiqRk(n?B4q$J-X~e=I>)-q$ zh|4STuJjr%p8I2dAgups50updWF4r2_SjDn3eyEYj*SPEs_aDD$Unk;P==_)zdmgv=wlB)*rI)V%LpV9-SdD^4$4E_ zXM4TS+sJUrgw>ojuD`zc#M_j(=Fog>IogV+S+lSbu{2&7?e#U4NygI*fD%`0Cp)s{ zyA+Mw&*Z`HDzQ5y0Ir>%~8QY+YeeWZv@)hXf?qnlfLeWNH zezgqit$oBC!Cs!8zZ+`vJ~FG^lbBeiS+hY}mu?N7>eny5y&}Kj*C8c|$DDdy=t>Pi)LbQ0|N7%#FoW`$p%Y^%AVZ?SF7F6Chr-}mT z_?&@#{gT@&mfEpv*MuE?Tp+kGpLe!u<98i7^kjU!3ML_~7%0^u*h{uMsbuNW at B@#A zahj`_Uq9-dLzR%1+n_4*210VWu9l7gm#u zbLASz4#xt^$LhOH*`J963Xl%Bgd)F`5c6^rWL~%JKTRHapXs!nU$4wH9~+uJdD|iB z(tr}Q)wpmlF_o16=*|_Lg5_oVK1o`@yg%T->pe3bsPSc$Fq- z8iWw_fyx7CFa4Rs%P1diTC3~?hCBv*GC$Y~6LG8Y at b#CA%I0Y}W7HS03G$TC7n!h~$|&5|$lo&~93v(%qnv7%Mm zwm*LLRedu6&punaO$wJZ%Dxo)N;d7 at vEv_vE~SmWLJUG6P5K;B$34U?_mg_Y9MeD- zK4HRHSmYOLM0I at qs+#LHZ>Z_he*}t1BnYwhURS?}b>+L%V`NmRW0<@IH_`T|UXxLw z!MMa>RPd}B2tfP-ZxD6`Ye*5jf7hfbH5yHc+37x+M{1{qw9)#%VtAqqVHJz*?Fo}t-XoX2^HY4Nj z`(;eO0$at&D*(pvSyaDhqPeYKEZaE6wo*SJe(d;?g^;C;ajoOxfTU$79>3=L?!@Vg zkvg0`p*bM;L2((*VdlYor%5m0LLl;LwO4jb^y?QnppvHmG40!IPVlZvuVoh?7CH#S zhTXn9NF7Aq5Ohxg^~y>nsd(@!$k3p^S+8ztBxqp^=Na~WVL z#f#T|xa+e0n#D2JpWk=i%-OSpsa7YFB|otGO3er^!-`dMzZVA%T>rv}V0E(J@*f43;bz%}dS5$qp;_P5#teS4Uq4+N$*dZ1_f{`l+Aplq zXU&0w?Y~mfsW^zwHIdyKybH`T#xyCgq7M)K!NXHfjyoDz>>M+*l$FDO`D6|rsPU|7 z2G-5rt5P?u0=R=UH1wvW*x<`oUQA-0k*+U?k;gX43?C>{t#s`e>{QxXIVQOv at O=5A ze^POz#SbpTi!Zh)EFwjqcH?4^T~t0kY{~JXM=fSBkg4$zD~+2ukMw=y%KWpojQTg~ z)OQBWPR-4#l(Tdx0}B4^{1tgrS6(>7CW$Y;m~J}ZVtqH(yLNk>z7mm4qHr!9=-6KB zdFqdH?YiVW#i-cF;P*LNQhWDZ590EnZ4;Q>{dO#FgkkGP9(@#yA94CY>so2)Xg$M9 zz5^LQ{YHyW>_TmqzTc0>gH(xLs>9p3 at r|skx>m at p2%U=No7%FygXWwN>;NCLySN$k zu6n6XD8a at w-JLpfkkbYro(O(+w+3gL#l{T=T z3ax*VP;3~mm^=QWA)Uv$Vj1_Mo3;quO7b%1ON(XY&z>_!m;0<)@`dL-?6B)jX-`!v zlF00Czd-JYeBmpAZ6N?uxBZG=qSbr&kwPM2ds+Wuh1eU>$5z82 zy0S?fJow)W7svy*uI-2~ic4+MvQFsJfi0`Q)ph}8b$)QfF}W!RHOPtg1qO%lS$snv zOhBxxc+P+WRp!-qk#wt#UUo3UGZ+zlH2U&z?`T$6C_M-KbN~D^ZdY{6-{j}A+f&HK z4;)DI(L7h5)IZhB{(AiQLqgQaJDbh<;hS$>n=xY$h1#)m*v`~hjB#(f_154s#+b-_ zN6}((3x5scQnhD)XrU19;oT2E48RV%ELs(4j%e6zt&Ishbx%+!M`-s^U=r) zCc^?T9%9D(XxZ{S0#az!LkJcAhhhzm70o^tR>XTs)(rpYW5uTVRJyeeN5fwFG&(9P zF_#Qm(8VbPDl)ey*;5`1 at KB*S{lf&Yn|z=Vf^&~S^lCy z|M~2{&;O`O&zKb3puufoTtY13jGh0-8QvJdgSR_-Ro)LpN|w}%9ZG5-4U;Y+1vbZ= zC7zF!K5PfK11ju5(Tn>Zlt at n%`W`W{_n8gqeY}p?st{fO>^DtQ>iW+eDutRQvz7=J zjM5v>3?zS^uDv@@TsdtV7}?c(%>i(<*zxtnZ>$P>}0Sn7-_)8{ef>h!Oi zP`mJq6*bel)cfQyUp{PO#i*=9YWa?JYPB7{{n9+0V!4#Gc zH1<+ACg4?PbXg1&rzNLNS1N+ySa)9C_7L4W`oM*jty`N$3p^wmTLb>w=+X0^sH$T% z=QZ}WU}<>e$;Hm!KWbFlF7K0zwDN0&grX~>TnTDZ)nl_cQ+6G})@PJ3108>Lztt7a z8a{*8)_t%>y~7vPU!Mt+cDm!U9QP*^DvN-c*hw9S(+B*pj?3 at JQKRxJMs-SS_=gm1 z3s>pb4KNU`bt`aG?6U+`1b*>tRvQf%lGd{mySa9^+;YwQNc*aIoYkvmB}A32lf4)M zSYVefw%F3|l>zdinBZtMW(Y97Yj&oSxOw#D*PmGb-=HayLLZ)|NSFohcJ%*u~rB5rOI&_snNP*;tWrnKAnH! z_oDU(C!H^M>B7I$iY}~5t+TB at Zs;Cjl4d!6rXT|q5lqUKDuso^7`}yH`u+DBwQ4=} z!mQqZIP)-aSdF%}W=xFOWy5k^h{eSli0G6MP)PuWL`R4c-Ty$!Jps%3%JKN(MxFG7 z#u@@`kM=obgLzfWm;wkoy>*>sf4dGG;Cj0lDZ65*s at K60m{u;nsY-0 at Wd%x%tzM3Q z_7VbajPNsh|GZyBo6K at iWhe9C5V1;0v1J^I3U%H>vkYi)1 at SJW?wreU?(x`46Q*=cD6`gsRB|Ozr zN8PWPXM@%7sFR{iH`dMxi~19AkvDW+yHUectydDUKUl-QxhY2W&jT_(XnGa{zxg822gr*l=nCv1`cNz23 z3LB^aPR;JN)ZWjSTqDzdv5yH#f9ObDsc}7$lXvgjIh4su<&NJ2%DO*8qbG9r{ORna z3q{jb-coMD at S=l7pH!LB`^l40eWy05- at 5$Tul7u at cUPlF4%eM^f2lj4xUu`s at 9pXF zL628w#FYAW?cR_6eB^^Que?y@$xBz#9{Y9F3!}zdIXP(7C;wi4_>W&l9W1xZhcoaI zo{?(mQXbM;D?!Vbr%U=v&evWieXZ%CzUeqXb6~q=nQ6tcW5sr>A3G2doOBhM@~C5S z`w)XVvqt*w)YsEE3#hvxxI-S%U8sKnkUX`kb+b&7+jaT!VN>o!S2urz at -Y3=U}1m< z*1!31D3p(p{mZ#CXCk}q

litY4V%f4+;s$5+I0o`nZFOk92w7uF z`#8PqON2~O&y3ZtaukoK|Xm&qnTc!+(+ at dPZ-y&o3vU? z(Z at dW&_lYOt at YvwKq%&Qepw%PqB>~XwwE=OB%A_?Mz|m~d+56XHrlNC-RJT;OgLix zCtabf)?B`A`F)@D{r`Odic)`*TZII?ApyP}skQ)Lq1jN|(W?{<%*+f-H2-v4>1-7c za8BieSc$69I0Zy_{rW$HxEa#{H1!KN%S}55Dk|H;JHyl zGJ^|6)c9gtOu1vHPNn*lVjAr@)v{>F$a1MtJpQ_M_45|<3b#M50sobzZSlylmlfmN zzDDmyEN)${Vm;rPJV?>(L{mlFQYE_K>loM{O~pI5371Jz-(R~HsdxL3is5COv}#qY zLMLUffV%Efd=?o%mu}r6udl)a?WLDgzGTPOAN@?PZ5YZn10FG$eNQ2w7#BxZVcgk= zXv at 9Z#PZD#ccu0egd)DLwDyb*t4o(G$vAynv6t8GuQO-H*0itZ4BCL$!n;X-WaPy& zcY^UQUQ_#dp1Gt{iS;UgRx(OPY<^6?q3+C{gR)m8?S89kZW5}HVxae1RB6fqM=rG- zs>g`Yn{T}paa+CW|2XO#&!YzJ_)mwszbmj%3WgxT%>X*ijlYFPGvtU0)ncT#OK5l8 z^eAtkv$KSf+ at cO|*!gLi0bGt!>UYXAl?L2{R;<`Sk>0BS5+-0+`N8MuhDMEytFrQw z@)UC;E!3sd%eS0 at 6=+|E-Qqi$?I5&irw|_!G38Tuv zQbwL^(NR3~ptt`Jc+A{$6bk8>qgVQeWuCfj&E-LDI<% zDGu=E8b6m?bflauJlS5oZv^e7TxL6SThtE!rLfR!#~n+0s5fs8ILvl&Z<^{d`{kv= z5}c`k=l~T{3z(7>%G&P=7KNS~Ns*Y!FVMa!OJ zO5Y9$#P!Yp5;Lnx^mt_oFjj?S!K)G=?wPFj5T%1pYX!Z(H4^r8PsaDIVtwzS6j z9#vyPvCMvxn3P3j*#smmKL7O7Y9s!jfjL;gF)C~TYVOK7xu(%t0p at o{LyDBQ9zD-O zWxt at 1J3KYWH_E|U-MctgW6FlGEj9_IcUok4 at r(WY-xb$LUrYs at BMIryk*_g;{6ZWhJs#&r4CT{QV&T11!V=gBSv z3Vt?@W at 62kJ1vsuO5b%epidS6|Ig_b>_`_t^uc_TDA!ai`hc9$)m~ZPDW<#^+Vta> zU*50reDs0jCLd^vC6dWI at F(z+$%(mnJqDztq at lsz=2h3*8B+ubNX;#Z&!AL zs-WY-Y4H)AqWZvO1RXOodL&3wcCM?{`L{}%tHQ#f3x6BX6T|2>vKssgQy`^Dy>H at 6 zF9pU(uhcqI%Y*Cx>6c%8G0aS_mT2xj?m+kXZAwNrGHrYG=$R{*M;s`*{QhUaI7FY& z{>qbK7Rb&sr%o}Ib+N}S>hCwQlaXwIr#Xc)EsU4<_wT<2|JybB&}wsQTv39Z=So$% zH1<2*rT_?K*2KNHjlbP zBHNBX(5?4xhAfEEh8^8qUV4V=QK#y&I6k{*9ah!4bV(pl*097jv>o1blaL2ST6e|D zAcH>6F9=kBfm$j&oqnp9(`ro5QxYGVT;yw^9EEQAmaAhWN_CiOK#2FH;G>3R4G|tc zZgoWIu7M4(a_jP{P>A z4%Oc2a1)$Wo{U+#DLRNo0tP9bmkWuD9k-45t<@eI?|9~!6^xNZu6i$&E>$YDo9zl+ zug>3MB~IXT11}C`87*w&>fYbSH;(x4iK at SRVHbsmK>TkRm2;#ZNt`SDj6DeApUE1` zV`SjaEOZbJU+cdeUe^FzKr}^aXK*9)I?SStG95-PFqk_BdcdqnIHu zLue^Bmdm%2nU99c%=(+*DNn$NR~88x4qEeSl(K)H_~xdDZ;u-h0(FZxpcNb>qsEzg z+6+9*gIBAsb*x`@Ld3Vbz(dfewQC0r7|=~A`{09Q-SykHt?|kFSh|YYXe!jVle9gq z^u7Dw+yHmQ1{TZd7sr&0GrH8VzOOV}Sc at ZD?9iT9fF zpfdW&-n|D79()}K&|bX)*CpxDf|KOr1N-(>nAP>4bLWgdN_6}Fta z;-fJ|GGxi`LoMIzy$%UAB|imd at y8GAY0kFxYvzG#=5w#x^~onJ*q(jig-U59eG&j~ zs5LX1(1$ILwGS;LgFUX493fgFMXKD&z zLI;r)_O`&l%=W7S|INSizi95>egFLzfC&Z@&z>z?q68o7pIjl$mXw=OnlV}nyD^^_ znbPVzRxQ1H1)86!zo9905&w04sXZ>dTk8IVghNaUXjdDj#T$Lfi7Z)Vf==8saPMMM zx83diglO~xkHy3BKYLK8-h at XgD@8O_N!B(1^hu8uW|22$d>G&C3KK_D zdLS~_y!YPNMtrB5Eer?kTeuNwWe53Q?A66T5N^EhW1kdX2_x0t;({3mZ at O-S2IKQn z2#R_qmugfw`JyZtHtGv at YCkvC<2ox3tLqmmpvge;)~zrJs)I$f at Y&qwPxAyt0zOxm zwAC7W^5|_3FR)Vb{CcIMTufdacHO at 3z8kKPHQl~?GrsE&aLVO>Tde!{?gjCz0eLrtutY#{yG&2`2`UC1VV6q;tr62>D!hhl|8MQ7VpP=w z!_ZC0w=qXM9ll$f at KY&pv)ha-mOXBqTRaM9=}Bn%vGr@$&dAEz_T!H=j>c9mYX=VO znC(}Z&Z5E0VGPs#OD;uUf4y_ho{~?EY4~svDSNkW(bc9lC5`^$kMU3cVGIlu+%i+- z)L5}@t6r_zOMT4K5oukz)aL%;#%|3Bxw3jGo&xhGPkzhd2JTSSgzngpUo&(r-J!P1 z&7=h`)`f;K_C`C?q6(7gC)wBp+0v>8gIIil*}V5{jR=f>U>){<8z(7O;JLWWn>W2J4$(f&V;p%@0gE z^3IliA&_GBYgYBkZNTOVlj_}Y!y`P?QsQt;-Rn$OXZM~phHDZx|As?$SIMJ4&Phpn zn3q2klN!_gAv>mnb6FIQCj at -e8!*vX=T~`bUrvuVMMLi^dnS#x0{PKriA*_y at FMw$ zC(EOc@}MYLe2nRQSwqTjUGb6WpS{aQe)}r-H*lq&T~pQo>!PlmjL`SH%^p=dY+A}w z3)XpWzFFjn&kCCq`r|ob@#mPDJh7g(8 at XqT5R@bRVdhc(>HV-3Q-L*m%eykS7w=Z3|CrZV zWEl)qiHYG}v!(@l6LSy(|+0 z;vh^MWf3Km;_4AdQQ5sIFS0rdE!YU3wJJIEqhrLFZ_mdc|91E=)t9N_f6%dM?>RIg zlHI5{L4(;n-fL$+q4 at JF%_9ont6T7MwIW`l=w`|84jDGM)#swno_=ec)*ew) zcJwhfcIK&C)zf!5+r^F^l~?2)QNc{+rcIk*IR{GS%ni1XXY at UM_N@bMk>V)DZI7K&?XQ;HVYO6Z_h4i}On0ICYe{=?Vt?pIp~+xFKW zCi=Y_)Go=Fb03EVt=_U_0g;}Yp!U#pSXGyP at 7V0@0*O$`;yc{y_FMnVKWxw-#@2y% z&_X)Fbkcrc`GxqpAgo zwX?GWoy at 15-5X~Z9`>JvS>F at jx0!XJK^iybO8ZqN%a6l+)| z@>|MsrQ+BFFR7jNo6~P5mMsnowKW9f5_WIorVU8Fq_GNSZIDo<07!pMGR6)^J~Pco z>z8r#eDSw^OeKmYn6_&HInW0gAQs=qy#@7#kB)Hu}ry6-q>|J^{_k81X6a z$5&E-X;pl&{rimx?xh;oIPl2$V9m(Ye at r>ETlX)ABFQv`^dJgS}am#!CnTGBtgm zhz+78u4m8!p0EaSK>PM~-8OC@h z-(Z#(ERl2bdmp(rCZ;9%W4DTi21O8|G zd6rpe_RCISdx3OCE;<&z2|XQZKx=p zFsD>uo)6EWgo4a>vE%Rlxrwo{#!=(rQ{{%u=hfb&Y*`(eQEhl>;vueE0KKp}~c=P7x;FNXiX05yubSPQ)?D9Wc z5-YSU&V at 4viFM4SJ9-`CmS36m-~*AE3v0k#GQdeb0#RUG78+&^R?LGvg^{0eGB!#=fZ?Ap6m z^SMDO#xBLa51m`Lk}h=+DW{&bOuS9aF)aTL6Lh$aH2W_P_^&tfu0&_wlRA*d(XkYq z-E^ko-zw9_CHC4dDNayaa0GrS=Hz z-9l;f>2$MA+BkRRszFxdMh=? z|IJzehqo(b%QMe}|8$g`IQ5Wss=t<@-T`P;h^#i1i;9}Zh|cYXlQ8WgM_z)Fe)s+N zwcDH?v;9?(P3RF~1RB>es#vjMBSyGR_%mEWU=Dx74SPvAuUZo;K?Q8F)TH| zmEIK_<50UT-fa9S zx`vD;MJzVbOZ$;yKc49wXO=vS{|x at 0S)Q}M|BFb@$~XQMc2iX5*L*{iVwQ)>3|bct zBs-*|S09;D7vuUhd&r0do6)PD&a2Dp} zy*OpUI?!EBQohy&8p4>VVV{}u&+v#OtJ#o-m-zfJ7jO1FGD`DdtuKt&tvcP?12Qq= ztz`T)(}GrnR-Nggh0LgP2)A;J^NMKGW-foq#9Zl?MDJd`I`$$IVTG3w2;wV~u1miN zdW7?wQ-3)B8Bt*{_ml2!!yi_T>0hG>l(~7-_+L_)!7o^t(5>%}xDV+I{^0(B9Xu$bqDlja%cwop>edFY|4hPs-UhBW*=%xBRrWs*};uMlMSW5W++PC3AT zB~&*i^fO1vP at _^h)H>7cJJy==0_-c>+j*qJQo~Q&Vtx#c&M&uOseiTC$wp zb1xz8 at Zq+k-mO}OuGu33U3FOQzyCd>-h&49c;JCqiMjFR#>y93Olmo6U8WS|+)-)H z_{7plk3II2)9sEMRTB9LcuW5Mt1~Qu33z^cFt{8w7~iG2Lv~T#IWzHvIjm#&RWpFy zlr}v-g%D8HN6wE6K63iJY^ToAAc>gv{TMF~Z&PLMjSM=Ly!BS;3EPSlFJ3pk>bl|- z+%PZQ<|kv~LO`m9i`|@(eUg5(e$>J5(K~RPT=WH`i&z^GX6QG(Sj3yfUz(#d6i`#9 z7^>(EtQ1YDsKgc>lM2H8gK+1&k$xMC_I at i)*v90C(L+RJm5Hw_$68kZ42s~*_&i?c9d@{}p!k$5(-ZD_z&rJNI-a`)tE(|$d21do$a=Q9QW z;hoe6CfDHjX|04hMFho;kuWn}p}nCde^Kp`T>pLg^tkck1AB;p10f0=vun+L1ROBL zbV}PAFW;f__1cECx~v7)`l~L1sC5 zvg7tzsb!!h>TW}elm#tYwF+O*om0tYE0!02v%7QK`X#VrxdGygs4yHoK8}^U?;FXd|)7@!Ud{pg%i^J*fuqfhlJ9-j+uqxiq zPdgRcF?n~tX1fz|67n~fTK$9srDD>>D<=Xc=NdH%Puwv!M>f!6_)v4(j;I`SD5ebS zYT3T^=u2tXSY7}XOK+{eQtbMFC7pX*&G#S2&*?73k>qI6MH0e6($YAm($dnBW@#;_ z*63%=4(mrKo$f_OE}IZ1Y05 at 5Y@w}lTi;9t3*>G8MZ%0GMCX6YcEbD>DDYGYM=a zJ3G4v|9E_IN=sX~cxZa!V1mI9sV$aAY at Kx~2qHv8cy(+m{RlW4eQ`kH4N at V}g at -FZ zwFuTD2sdzRaUDrx2X)^o$JBl}w_!b8gMEUPmBE1hvXW2uJt3~NHbO3L+p&WS<4kRB zdd6E_t7+VA7~KRXaB~Q{ai&Tns!zN4>g016o>KBq%91|8+z)VdUDEmdIonqlyxFW` zH-8BYyz|KiB(mrvi4mAg;_$U^-&3G8(gwaD%NU(;_QVNTUFOCcPsv0oB>)qQB-C^D z_3QkL9Y1O5>f%~>3i6s?bqN}%=p-VqRSsghkw9-~v9@*h+w~R54l1)pkFXQ!?bInU zkzxeK_=8WJ@`3)Sw2|4fvyR8W_Y#}`Tw3~yT#jZq zF&8ud-ZRff0Cc!Eu<<)GsvN%?;e98q&&5?|YhYn7nXK+CBrgHd{$ZFl2ut3s=Mb?g?xyS#W1s8_{tBOOLw_Vj*FIWh4|fT9c4)6$d+8;SnJ)J)}_82FDw6rBGPwcfJvj z?k88Vpv49OMtf1OF}R0=!;mwfIDhk|wi58YhxOomx>^eZT?p&Ss_lh^GXev>AhBe8 z#owgTvzW9raaZe;CuHBJGZ0Y8f?^0v!^UL;#SF&) z5*4dfKh1pk at rL4$aR(t7P%OW*r~=2Pkf!-$XwiH2_t22(^pHXGe*lwCrVSq+k+Ks% zfGen(|HVnrx`2<_8sV-w^a(!Qlf6vb?|x5G_YQAaQs3Ld zXw#uMrq%DK?*MbXgb%j`!JIY%x>^seg#SNmeMt6|c!E*opmyu4CXQ6*vEh zjtavFIF_wQf=YW!NxThSkGJFSYRRrQj3m{ zewuo(oy$gGb9{UJb#Uq_ at j$0oZ^>S+0gN(@yyYA|I?yTaylJh at o(;OXo*%(wl;e)( zAwK})65rDS4m*W1XU2?gX~gs889X*_TsyZTaYSv{yKmo(z+H+^;+m>6`;xtP zH|VcAaTyscO`cr8=PzI0Xl#^oN%c)lBNN7{SJTkKIiO<@+ZTWR at iH0Sex$ixL)LzL z)xp7d9yjl>VH25`3;yA5+fAE|+=|i&n at 9c-MoNz|nNFPL%SL6A2WZlP10C#BzIoUc zl;qs?4#i5*V0qUh7!Paw(=Uzi at UZbRAisx=mgBb*gF8w}5bh2Y0&Ax;GoZU0v=>6| zAdjPJq{rT7#}p$b(fnCdq?kTESMH$pb(k<=Ly!xdAD=@h%o-ys!y=L7 at F?1!o-^&W`%{lg)^yOM)?>){r+Po?R at g{^r!6L zOm`j8!l^ugE+hOmSXBv^F&6q0r^YNJE?SbHb*2DFl+-ksX-koga53VgNZB0VNZ>8YnEFcC?{ixr1?Wr2( za&SmY-8a+igQ~^OhF=3DLG5Rrd6X>WNN>&<7878C=ykC`$L4&8TL$d(b>S#^*~W^E zqK|*g%gcih0Okw{Y=^!Od`fsXAOk3~(sel6KrCi*&)e6_K1%LFYG!e at +EKibI^m~k zDn>A_Ed>SQZxkqAsrJb3KO6(P;gqZ*Bhh4m6YoGOzI_rRZ%CffM}lU8;|0|ja}O4M z-ToDbW at 4|p=70hGWO*qGEJ_`HsZ<^S1lQQK5X{n2(!8t-$vUblE_XrF)1KF}Ws4 z3Vd5(Y~Ju1GBENuA|-drQCGpAv!$nN7>A`Ozk<4I!2(o?JMgM|Khs$LOelWC?>59G z;L5t*++>1PUJ8%EN at -#^RnaJUxj!lWN%!$JXbB~fi>A4b9*ro5{FTE>{=+;ZvF)07 zFj87ue}!P>xyYfn$wv}sKJ>H*X~6NU#HmNO at HQed@h=7!pw-jQt`WLf2v5xSS5?_a zBydfcrw0xO_FG|!{RuM%p)bZ6rJcRRk8w7c4t!%ESlRFmb)<*n%poVv#ExfUE=x=V zrbL##Zu!t0Z!BpzG(5CbF63kkkBh)5G#c5IDRA%@qo*k^uc at jECwYI~v!QLXhD at nl7JMCO2d@z|INjO-7YDFTm8XGG) z9shB+J({Eb$1YSu7ugZDZ_?Mqtp*@#@mwe6n7|2A$%0t zuVjw01fS~-Xr|sWo9JtiH=`hpJ_$`psbP|BydhjtPFjeMLGmh)Cs-F?4-Qj?cqK4# zD>KMt?vW*ylH@=C{FACc`#SA at R7?EBCr>PU^-8rGLo*n_ndXz?{{EkTJ^_3>elk at c z1Sz^w75ym|lb|8PnWi66-)m1%k)ZC3jI;_aAp|tQ|5)~8(BdGwHAqHU8!A!vWe8A0`lo|-Lw?9r>A*glWNE0&2 z;ejl<+cj6rEQ0lBuvf7qB?=(lI!H!{B^FQRScRDc;4w>@zyx(73|VeVJ+K(e0p7~u zrAwi#n+yYhxrLSs_nMihykekB5?T6=8q);cFS#&rGV42R*qISV?^o1O4W*fx)6$r!mMbsdPbLfizR6w5x+CYHIxum#7nA5+% z;pIt^=F0F^RyBp;_RR7AM?|RNmZ1ZZn8J- at IovSg9hMn1^&Hg(2iKCsa1hufd=5v0 z0|IR}b_b!nO^kmZQKGk*nS*RSi6 at 32ggDxpSgD|aB;lg&RX-+e2ET(M%?|>=fi2cX zU*U=?9gjy>l_Brogh1PaE4f*@`x?;$v< zUuV+PjF`BCi*3LDxrlP#61ggubP2nIC=}eaRotOE>zKoIcdUdDx$1j z=fseklg+C7(Ytx{B1G4fOeCcAA@;I=wPG4_cUoHs+oXcLSXw(&v9uDu$3T!-iPZNP zd{ObTvoWe36slAQ`D!Lk;1!0pT>4aMu9xWBAh#nHvun at D~-;9 zX5^rGQ>f7~9pj=QKgG^i_?zQIxqe*wI8?B!e3c??=KSdBL)e8B2J at V^n0&>byC#w! z-Se`vbAp_$pc8ZX5^3qm!tN%I*_^$`79ixUA4@$=^UFSMt1V{x0q}cKFh3ylzg66XDDDZ<} zF(l>q0b8LEfPu}jQ|rQ|ff5R^4Qj^EC06qJ96-LE$g+n-i{7d3F*DK`8QzI|nf at Y^ z`#@=UtbsX=viVaObpRC_6x6Y7 at _WNqiA18L6hX)|%0ZM$VnFSpwJ<*;0m_m+@?Ly5 zhuXg7BBMz-YSX7bgxbdi&BIBQuV=lT12YdP1&TBP&lxi^b4O*Q;;Kc^V>RHE!Tfp` z^u)=w&wGa)wM{>CM4W9jnIW#~RQ|#G(G??sQn%w7!Tz7QPBPPM^>LV6$o(0YKu=vr zoh+pH&$FK(u93LVQ$SsuVy=*s!mfMS-u~f|R*+N16x+WoB`6T*1vO23BAk(gscP{7 zV2<(Qttzw?J-y7#q_(yuMn?2-)aD2N`s?P^t8hWT*Sv(00kRFL>^kV<;lsAqXR%;p z2C at kg(uahADD!GLiI%E1I$m5VDqD$_)#62q at Snunl>JFB0KKkrzRp6wO5DP=e!yYMt0R-RQE8VXu7kZh^cH#)X>|vM}bLDd%U-b_Y0)}9>Iwv^WA4G zSmWKl57xUBq@^$zR|^kHUP*I5XDvw&jtsOA5FU!PFtVYmvA3}rpi-x^r5j+d=?Ya4 z-6B#{?2)_=O7%B0hrg`PzPP6-<=V zj{KfR5HpGpfdX+t7KZ~A6?KzlHS~gg{nx{1`0iWYCW6b_R~6*QkP;nDv0RKlR3 z!U}Mvvf{_I)m#>7{Wn5krBKM7ixN5A?+B3>gf8`qVl+5(vXuX at YQiRQ55_L%XFC10 z9+5H3x*=86hQDSNxiP5Sl}GV=A(aASNiVh3=qAiRE2iSGLMTDQX7blrjF z`7<@S>i}Dts*oc?Hb=p at Z*I*HsZ@%4Grxh1NO)@O at mUr&CuLYtlAWU=n^RU0w0R?? zTK|ogg;{8PFUmHGK9ZZ9;$G=GNv%#fii7g1E(S+2OWPn+zR079D*zFI%=(D2cPO zjeUrrT$pdA`105P4jeNK^5fVFN`gc_x!Vlaz}&2tMmi5Ok#T$zL*` zcr#>Lr(`yqqNt3>gFs#5OR8kBZqE=nwzk+0nKnJi;7)-kl zwyZuiBk=->IY*NN%KRma7dh9|PuteB6IO!}mn}ft?CQ$YiZ-rh!p*KF4Ev&o=|(&7 z#7>G1>MH1hcq;1O2~+0GXHi$V8vAt*{8rSWNKWoXWkR-D$BfuUF}m#M*T}AyUJHrArM1c9oXKLEnii z0;ogpLCnAmoqs10#hWM3m#rNY9^UfaR~dc~wF@?zNcTPu32~5^)i+a;FmVApKQ`y| z-4}4K66^Yd7L42!SQ4sx$6VY9ik79u2vmJ?$P(e+v10Hr!71nsQ&Ix?E3+7GA&5Rd zoqqr~^d(C?A_a>t_#-Iq=P_Dh&K&Lvh6iBt0a5~t$<@rR5L=>j?_-)mLmz%1bUgVi zVzuw&0kUXfweBkHg${hOIVUtePMr98 at 7}@ay{=w0Kivq#LdTOlgz-DaWB3~E?;e;- zp5OVr8|CD58(|b&YMaO0UerqoTF+n`xPJ7afLf at R*{k?mDUv7It!!SdtF0Z1f90M%%UkLlsf}n?K%Fzzh zL;$EtE(|OQa4oi!hG+vW56pdYbl~%By?x1rhjJ54#IBHV(z{7XN%?n7M8A%3oS>0* zvG82393e_ at N^iJRMNy4Z67-Dl2+RVfDa?=qw+UKneubjEBGWfIU6ZxyVE$bi{9 z6dj(^d}cXM!byP3K*V*}jtkNFf+Uz-P*ejlbcKTGm9&#j2F~=f3#O>Y-VG|+=5rL% zB-C`{IYsnCwOT!%Z1p3ltOwcK_jQ-HL_roXl?WUq9D>*|k;aV}X-7?TY)6eYeO9B}SA~91hl>}6q_L(^D3x!BDP(IyH5oU+`n<=B?^76j5rc zFuc^su&tv->af(qRaN*zY0uQ=TmPn1evo-Ub}@~i?nn!oFgR7IXlF73h(rW}B|Jlb z^Pv at PDpQ4}OtPD{0%zfs0;JK;46bI!8^aF*X#{n7fhqJd62>u;I>`TlQZh|87eFWH z{#e?-h_ZaIDp)$lx5m?V(lT at S6K)VDYZPdR->JvA*~~NXY%+X{ZP#YHPyAtT#0JAd zL~2T_{|NOgStgYLjhxceY9l#gPiT^Yj^*S8up3Crt$R4Zi0`d(J5Y?n>;bVT*s$RR zO$V|KLW!Rfm{}}jS;RVQFEn02g|V at I?`PT#+$f<cI-EH zKo0{b*{4Jww$HwOEAgG&yqcw_>&P8-n#)gjnn)x7Ae@@%JNN<1mazJ1f1fzT#qK`9o-oOQT9Y?AXP zhAUu_oSb7 at 6yge&M(zfcjF+fzrhM+?XUO%aj0i!H26m*p6T2Lva^VS-ai+aG>9nRd z&!>&RL$S%|qZ3=0E4t5sCnHMfC*d?t58*iWgYua$LL9THI(qqQV6q*Z$nc3bybLod zk++5>Mo*j z7XS?UGVC+<@UDh9E_BcfJaH)C{EG#n-P7 at 4iR9yS0p!L#yjiL)rP9G-XS8_m07eNm>*HB>iMB)HyTDmtY$$@E#Fz$;l%8iG! zdEilQAc*4ZGPvZ#aW2(-cP-Q-JS at P{0V8P6LaaGLjU$n^h4cCtc*v_(Pj{a%fvFu? zK1JaX5nw)?Wok3BwYE19$ao&x#Yqx#v=AS6^?;j%Q0)RF3)V#m53R!d)iw!y9XdA1 zQcs!6HIa<(LVn6sNj?qeP_N|3QO^7CzQ8_#lS<=7Z3r0prAay)q?a^~46p6Q3oMpy zfsKfMFg;|cHRF8|+6aU^H-J9xpz+AkazGrUfO@@#?RMY*O`a=oVy~AqPg)7X2kiQI zSI8r%i~m!~V6&JRrJ)bmrPcerpmeVn!$#o^78ytkZn5XO;X5!~5-M6{c)VPWaO(tA zOpBB at p7SG4 z-QZJtW-l>p1%&k8Ihz#upQ&>7!R;o>TP+E9J^rwto$ z%4@!Rmq_7T6r#1OBU&;vV(8HCnW#>MN*P870-Hf_3Mo;vZ^?tHZVW>NOh;)wm*7Bu zlG92!CZ4f&z|eda{5`)UasAO5trlOM2a z$*f^A@;evto4F%FFwoQ*7 at 4#^=Pj~9qNAHBS$V(2B=|+HIFBM=AFSX5<%UZcX80Z& z65EVuc}MK(DgWjBwbPgP^mry2m+7k<*DvdJeB8PARh#lp+HL;P{nYpw{dM;m=FMNQ z^Zw~&-VysJ?izP)T*+_V%Ob71n~!}F9u at fQK9`;MBz4vC at dh{RH(FbFb+=!A{cHEz zPYSp8e_K8F+?5xv6Snw at IaFD;iXU z%kH*C4r_gi=yo16?1KIoHRjE-?#SgoHS%{PVIf at OLIc zp(tgkLo$rhr(+qhDRA%XQQ5Vqud!+|x)VgB^u|J9gN%97;)Z~d&`%4!zTV%2$QG)W z(Gy$nGlNt;mk0$XAy>30b=nu at R}i$JG#k9pUR_NrMeMtw&UsVdOnuaN+cnNsBe3X2 zPlqr+U+UVx`mF1ZF6kj{Yi*Qv&!-L&?TE^ho|SFifPEmBQGc#)Pm~&`znN7Qwk7Ci z&I`OhfF~Lgz=Dc_(#EeG#VV$FSePKbi9Z-2PB;8Y6!1APLSwu~sWKz{8Ma(ZC&UHh zt_3wY7#e6UOg5~Bnc({U_xo#`Nq_LHscq&T#7P>Qw1A0Xe{eTlqn7!zx>{s}W4-CX z6O=9TrQ=fNZHypsI9Aj1uJ^CXvM}?CNZFL$Mg~mu+IutDlb8;G(2Mdm at j z!yjex9JzpzfdctTfHPX}Fjs4EAbNwOvZ)1cNrig8>F9oEf8A21Qf at pDv3K?_1E!cd zUtil+^=#?^b6;Npx at YqWeLz#w0p`<~Y8~JV_JfX$I0oWO<|7+Bt^4yhCg4)VLSPSv zeh0w=wCHidVf00>rm at Y5S0tQH`8nqV>aq3ARN^RnK5}rF{&DWgZ4apHlffzZHPlsIePSr;s$}rb?-Slt7Q)PWM#x&@;wUu zfDcZSriCS8q%UrZ9J$G${evV$V99xMC&Y1Ao`NgLFB-e}k=KyV0I=~dHx>?D&5*yd z6y+R6lk`;foQ%%eU6m)b66b at 4Fjp3##m_GT+H34fvArm~UI;xYJ#XfcNuQaA!>gid zqD(}Y#&_XT!hMwLFThshR0{TiV&O5?y*xS{LKy1>L4hS!?dcHIiDvR&*cBRI_!h0V zYV7S6LRIxKQLl=aGe=xUC5N3!pP$EuJS71k(!z^E8+tLx>%$L=NYPrwE*qFGVcEHg zLLSAz)-$t1L(@*)IT%5Qb8Jf_IDw^^nR0xAnOU4l6|(!nA#{I<-qO1U)eP#r47Kvi zyle3uX59w&-;fIcYMfq14M1r_TcKhY9sk;Exp`uFpY)r`3Y|eG)c<~~k4GWMVkBO9 z`C7Kk!w$fa$1j&x{Hkqbl!3t-{}+kX_-P!B7;J6r=WKOv at uAvgq8KiJD62W?@gB9G zsn0#|HE#tXJ!SMCU at 3N0rVst5M=!fTf#~)I)YUfCFy7UtNMe at p#UBg5UAXYk%jF at X z;ooVk-Mzg2zPA`VnslA$TzbS_^ce;}3Ec-W@*tO4P;>De!)nFMNF6$8 at ZbSvMtW~# z2B`y5Vqy%M$1e7?%k&Xf1r`J?!ICK46{Zb{E)eZ#o8HcEioVMT-c7BsV)5eh3;)=9 zW?rUGYKS8d at O9EVYCMtT+wlbqaHaCztXSk32_Y!N6+Be^w4bQqIu1gZRA2*Xjbdu7 z$JQ_5F<-i59JwMy8aDDXJ_xdok)Pz at 9V#e#urw{W$Vl+1$^znSZvRcfMN-9tb^wym zBStj8cuif9;8nnws z at FLM0%%w1RlBZ{mUQIuZ+JnF!Jq3ErFP9b&!eH8+nFp~D6wBz#lf$TPa#SNulk0>tz_>V=VUNo7u at bi6<_|{S(y#T)G?92+5 zCQeB77FK5VFPTyGq`*y2I-fpWND45%z+&%Mq0^B7r`b1K{|R;$C7~odSl4za(x%UK zkjN)ZqX#);?LY19;(17eJU6FNRA}5*BF?Jj7VPhGg0dgl8UA`)H=$(-Aog&@Y0C!G zfW1-{VBSm2N3s&+!tEze=pbHjefbwxl9aSnv%8T|U@?_Gyp5q_ninu%xon2oXn<6I zYl>gDAKKrsm~q!V)(v&s_67sz?Ao&Oa?`MWIlE&jUttp>UyUaVx>ddz2Eq1c0RUm+-x_D at 1|L zRzubfw6n{r-b~d?tmFk?(Kj^G3?v-N3i(gCn at xTI)Jr^Lcx^G2QvW%kYrM+`D$h1U z$O2QNUXe|OyZw-pqt^A>dd7czI!F>3Icucpa|5vWtYF3_7+yRhvjQ8Dt~mki7V=l& z)Rdb|P0T6cD>8-5)9weD;Na at YERGuXIGD{(FA04wzfFK(+UUsO`uvX#mxZe>xSZ(c zq#kI+X8hzG5V at kvUQfkLrHF7GX2rBI4F5AbH-i`GUi4mB!~c?ELTh3VAGxs-=h_y- zD+>;??JBNg)~fg*kJcfk*7W>HmNt$0oOUrF)Y`l8u7xUlkEETk hsIFgc3Pjb>lM;N{ZL7T1Nh9LV^l8C<`+SsX{|5uWvdjPg literal 0 HcmV?d00001 -- 1.7.4