diff options
Diffstat (limited to 'utils')
29 files changed, 550 insertions, 9228 deletions
diff --git a/utils/Makefile.in b/utils/Makefile.in index d624e2f..74781cd 100644 --- a/utils/Makefile.in +++ b/utils/Makefile.in @@ -1,4 +1,4 @@ -# utils/Makefile.in --- xscreensaver, Copyright © 1997-2021 Jamie Zawinski. +# utils/Makefile.in --- xscreensaver, Copyright © 1997-2023 Jamie Zawinski. # the `../configure' script generates `utils/Makefile' from this file. @@ -102,25 +102,26 @@ X_CFLAGS = @X_CFLAGS@ INCLUDES_1 = -I$(srcdir) -I.. INCLUDES = $(INCLUDES_1) @INCLUDES@ -SRCS = alpha.c colors.c grabscreen.c grabclient.c hsv.c \ +SRCS = alpha.c colors.c grabclient.c hsv.c \ overlay.c resources.c spline.c usleep.c visual.c \ visual-gl.c xmu.c logo.c yarandom.c erase.c \ xshm.c xdbe.c colorbars.c minixpm.c textclient.c \ textclient-mobile.c aligned_malloc.c thread_util.c \ - async_netdb.c xft.c xftwrap.c utf8wc.c pow2.c font-retry.c -OBJS = alpha.o colors.o grabscreen.o grabclient.o hsv.o \ + async_netdb.c xft.c xftwrap.c utf8wc.c pow2.c font-retry.c \ + screenshot.c +OBJS = alpha.o colors.o grabclient.o hsv.o \ overlay.o resources.o spline.o usleep.o visual.o \ visual-gl.o xmu.o logo.o yarandom.o erase.o \ xshm.o xdbe.o colorbars.o minixpm.o textclient.o \ aligned_malloc.o thread_util.o \ - async_netdb.o xft.o xftwrap.o utf8wc.o pow2.o \ - font-retry.o -HDRS = alpha.h colors.h grabscreen.h hsv.h resources.h \ + async_netdb.o xft.o xftwrap.o utf8wc.o pow2.o font-retry.o \ + screenshot.o +HDRS = alpha.h colors.h grabclient.h hsv.h resources.h \ spline.h usleep.h utils.h version.h visual.h vroot.h xmu.h \ yarandom.h erase.h xshm.h xdbe.h colorbars.h minixpm.h \ xscreensaver-intl.h textclient.h aligned_malloc.h \ thread_util.h async_netdb.h xft.h xftwrap.h utf8wc.h pow2.h \ - font-retry.h queue.h + font-retry.h queue.h screenshot.h STAR = * LOGOS = images/$(STAR).xpm \ images/$(STAR).png \ @@ -130,6 +131,8 @@ EXTRAS = README Makefile.in ad2c bin2c TARFILES = $(EXTRAS) $(SRCS) $(HDRS) $(LOGOS) +# Using $(MAKE) directly means the shell executes things even with "make -n" +MAKE2 = $(MAKE) default: all all: $(OBJS) @@ -138,7 +141,7 @@ install: install-program install-man uninstall: uninstall-program uninstall-man install-strip: - $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install + $(MAKE2) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install install-program: install-man: @@ -235,20 +238,13 @@ font-retry.o: $(srcdir)/utils.h font-retry.o: $(srcdir)/visual.h font-retry.o: $(srcdir)/xft.h grabclient.o: ../config.h -grabclient.o: $(srcdir)/grabscreen.h +grabclient.o: $(srcdir)/font-retry.h +grabclient.o: $(srcdir)/grabclient.h grabclient.o: $(srcdir)/resources.h grabclient.o: $(srcdir)/utils.h grabclient.o: $(srcdir)/vroot.h +grabclient.o: $(srcdir)/xft.h grabclient.o: $(srcdir)/yarandom.h -grabscreen.o: $(srcdir)/colors.h -grabscreen.o: ../config.h -grabscreen.o: $(srcdir)/grabscreen.h -grabscreen.o: $(srcdir)/resources.h -grabscreen.o: $(srcdir)/usleep.h -grabscreen.o: $(srcdir)/utils.h -grabscreen.o: $(srcdir)/visual.h -grabscreen.o: $(srcdir)/vroot.h -grabscreen.o: $(srcdir)/yarandom.h hsv.o: ../config.h hsv.o: $(srcdir)/hsv.h hsv.o: $(srcdir)/utils.h @@ -268,6 +264,10 @@ pow2.o: $(srcdir)/pow2.h resources.o: ../config.h resources.o: $(srcdir)/resources.h resources.o: $(srcdir)/utils.h +screenshot.o: ../config.h +screenshot.o: $(srcdir)/../driver/blurb.h +screenshot.o: $(srcdir)/screenshot.h +screenshot.o: $(srcdir)/visual.h spline.o: ../config.h spline.o: $(srcdir)/spline.h spline.o: $(srcdir)/utils.h diff --git a/utils/async_netdb.c b/utils/async_netdb.c index d9e2102..8ab0570 100644 --- a/utils/async_netdb.c +++ b/utils/async_netdb.c @@ -14,6 +14,7 @@ * gethostby(name/addr), for Sonar. */ +#include <stdio.h> #include "async_netdb.h" #include "thread_util.h" @@ -25,9 +26,9 @@ #include <string.h> #include <unistd.h> -/* This is very much system-dependent, but hopefully 64K covers it just about - everywhere. The threads here shouldn't need much. */ -#define ASYNC_NETDB_STACK 65536 +/* This is very much system-dependent, but hopefully 128K covers it just about +everywhere. The threads here shouldn't need much. */ +#define ASYNC_NETDB_STACK 131072 #if ASYNC_NETDB_USE_GAI diff --git a/utils/compile_axp.com b/utils/compile_axp.com deleted file mode 100644 index d205d8b..0000000 --- a/utils/compile_axp.com +++ /dev/null @@ -1,34 +0,0 @@ -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ALIGNED_MALLOC.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ALPHA.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ASYNC_NETDB.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) COLORBARS.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) COLORS.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ERASE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) FADE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) FONT-RETRY.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) GRABCLIENT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) GRABSCREEN.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) HSV.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) LOGO.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) MINIXPM.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) POW2.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT-MOBILE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) THREAD_UTIL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) UTF8WC.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-GTOD.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-STRDUP.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XDBE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XFT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XMU.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XSHM.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) YARANDOM.C -$ lib/cre utils.olb_axp -$ lib utils.olb_axp *.obj -$! delete/noconf *.obj; diff --git a/utils/compile_decc.com b/utils/compile_decc.com deleted file mode 100644 index c80f303..0000000 --- a/utils/compile_decc.com +++ /dev/null @@ -1,34 +0,0 @@ -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ALIGNED_MALLOC.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ALPHA.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ASYNC_NETDB.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) COLORBARS.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) COLORS.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) ERASE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) FADE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) FONT-RETRY.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) GRABCLIENT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) GRABSCREEN.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) HSV.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) LOGO.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) MINIXPM.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) POW2.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT-MOBILE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) THREAD_UTIL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) UTF8WC.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-GTOD.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-STRDUP.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XDBE.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XFT.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XMU.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XSHM.C -$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) YARANDOM.C -$ lib/cre utils.olb_decc -$ lib utils.olb_decc *.obj -$! delete/noconf *.obj; diff --git a/utils/fade.h b/utils/fade.h deleted file mode 100644 index bedae93..0000000 --- a/utils/fade.h +++ /dev/null @@ -1,21 +0,0 @@ -/* xscreensaver, Copyright (c) 1992-1997, 2003 Jamie Zawinski <jwz@jwz.org> - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#ifndef __FADE_H__ -#define __FADE_H__ - -extern Colormap copy_colormap (Screen *, Visual *, Colormap from, Colormap to); -extern void blacken_colormap (Screen *, Colormap cmap); -extern void fade_screens (Display *dpy, - Colormap *cmaps, Window *black_windows, int nwindows, - int seconds, int ticks, - Bool out_p, Bool clear_windows); -#endif /* __FADE_H__ */ diff --git a/utils/font-retry.c b/utils/font-retry.c index 3122969..acdb230 100644 --- a/utils/font-retry.c +++ b/utils/font-retry.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2018-2021 by Jamie Zawinski <jwz@jwz.org> +/* xscreensaver, Copyright © 2018-2022 Jamie Zawinski <jwz@jwz.org> * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -348,6 +348,27 @@ load_font_retry_1 (Display *dpy, int screen, const char *font_list, Bool xft_p) } if (!font_name) abort(); + +# if !defined(HAVE_XFT) && !defined(HAVE_JWXYZ) + /* Xft is now REQUIRED. All of XScreenSaver's resource settings use + font names that assume that it is available. However, this lets you + limp along without it. But, really, don't do that to yourself. */ +# define FALLBACK2(F) do { \ + free (font_name); \ + font_name = (strdup(F)); \ + f = LOADFONT (font_name); \ + if (f) fprintf (stderr, "%s: non-XFT fallback \"%s\"\n", \ + progname, font_name); \ + } while (0) + if (!f && !strcasestr (font_name, "mono")) { + if (!f) FALLBACK2 ("-*-sans serif-medium-r-*-*-*-180-*-*-*-*-*-*"); + if (!f) FALLBACK2 ("-*-helvetica-medium-r-*-*-*-180-*-*-*-*-*-*"); + if (!f) FALLBACK2 ("-*-nimbus sans l-medium-r-*-*-*-180-*-*-*-*-*-*"); + } + if (!f) FALLBACK2 ("-*-courier-medium-r-*-*-*-180-*-*-*-*-*-*"); + if (!f) FALLBACK2 ("fixed"); +# endif + if (!f) abort(); # ifdef DEBUG @@ -407,6 +428,10 @@ xft_selftest (Display *dpy, int screen) "OCR A Std-48:style=Bold Italic", "OCR A Std-48:spacing=100", "OCR A Std-48:spacing=110", + "OCR A-48", + "OCR A-48:style=Bold Italic", + "OCR A-48:spacing=100", + "OCR A-48:spacing=110", "-*-courier-medium-r-*-*-*-480-*-*-m-*-*-*", "-*-courier-bold-o-*-*-*-480-*-*-m-*-*-*", "Courier-48:style=Bold Italic", diff --git a/utils/grabclient.c b/utils/grabclient.c index 58db732..b99c8fd 100644 --- a/utils/grabclient.c +++ b/utils/grabclient.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2018 Jamie Zawinski <jwz@jwz.org> +/* xscreensaver, Copyright © 1992-2024 Jamie Zawinski <jwz@jwz.org> * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -83,9 +83,11 @@ */ #include "utils.h" -#include "grabscreen.h" +#include "grabclient.h" #include "resources.h" #include "yarandom.h" +#include "xft.h" +#include "font-retry.h" #ifdef HAVE_JWXYZ # include "jwxyz.h" @@ -97,6 +99,7 @@ #endif /* !HAVE_COCOA */ #include <sys/stat.h> +#include <errno.h> #ifdef HAVE_UNISTD_H # include <unistd.h> @@ -173,44 +176,6 @@ drawable_window_p (Display *dpy, Drawable d) } -static Bool -xscreensaver_window_p (Display *dpy, Window window) -{ - Atom type; - int format; - unsigned long nitems, bytesafter; - unsigned char *version; - if (XGetWindowProperty (dpy, window, - XInternAtom (dpy, "_SCREENSAVER_VERSION", False), - 0, 1, False, XA_STRING, - &type, &format, &nitems, &bytesafter, - &version) - == Success - && type != None) - return True; - return False; -} - - -/* XCopyArea seems not to work right on SGI O2s if you draw in SubwindowMode - on a window whose depth is not the maximal depth of the screen? Or - something. Anyway, things don't work unless we: use SubwindowMode for - the real root window (or a legitimate virtual root window); but do not - use SubwindowMode for the xscreensaver window. I make no attempt to - explain. - */ -Bool -use_subwindow_mode_p (Screen *screen, Window window) -{ - if (window != VirtualRootWindowOfScreen(screen)) - return False; - else if (xscreensaver_window_p(DisplayOfScreen(screen), window)) - return False; - else - return True; -} - - static void checkerboard (Screen *screen, Drawable drawable) { @@ -505,7 +470,7 @@ xscreensaver_getimage_cb (XtPointer closure, int *fd, XtIntervalId *id) /* Loads an image into the Drawable. - When grabbing desktop images, the Window will be unmapped first. + When grabbing desktop images, the Window may be temporarily unmapped. Used only when running "real" X11, not jwxyz. */ static void @@ -546,9 +511,10 @@ load_random_image_x11 (Screen *screen, Window window, Drawable drawable, /* In case "cmd" fails, leave some random image on the screen, not just black or white, so that it's more obvious what went wrong. */ - checkerboard (screen, drawable); if (window == drawable) print_loading_msg (screen, window); + else + checkerboard (screen, drawable); XSync (dpy, True); hack_subproc_environment (dpy); @@ -620,8 +586,16 @@ xscreensaver_getimage_file_cb (XtPointer closure, int *source, XtInputId *id) char buf[10240]; const char *dir = clo2->directory; char *absfile = 0; + int i = 0; + *buf = 0; - fgets (buf, sizeof(buf)-1, clo2->pipe); + do { + errno = 0; + if (! fgets (buf, sizeof(buf)-1, clo2->pipe)) + *buf = 0; + } while (errno == EINTR && /* fgets might fail due to SIGCHLD. */ + i++ < 1000); /* And just in case. */ + pclose (clo2->pipe); clo2->pipe = 0; XtRemoveInput (clo2->pipe_id); @@ -829,6 +803,7 @@ load_random_image_cocoa (Screen *screen, Window window, Drawable drawable, # ifndef HAVE_IPHONE if (filep) + /* On macOS, get_string_resource() already expanded "~/". */ dir = get_string_resource (dpy, "imageDirectory", "ImageDirectory"); if (!dir || !*dir) @@ -928,37 +903,36 @@ print_loading_msg (Screen *screen, Window window) { Display *dpy = DisplayOfScreen (screen); XWindowAttributes xgwa; - XGCValues gcv; - XFontStruct *f = 0; - GC gc; - char *fn = get_string_resource (dpy, "labelFont", "Font"); + XftFont *xftfont; + XftColor xftcolor; + XftDraw *xftdraw; + XGlyphInfo extents; + const char *fn = "sans-serif bold 36"; + char *cname = get_string_resource (dpy, "foreground", "Foreground"); const char *text = "Loading..."; int w; - if (!fn) fn = get_string_resource (dpy, "titleFont", "Font"); - if (!fn) fn = get_string_resource (dpy, "font", "Font"); - if (!fn) fn = strdup ("-*-times-bold-r-normal-*-180-*"); - f = XLoadQueryFont (dpy, fn); - if (!f) f = XLoadQueryFont (dpy, "fixed"); - if (!f) abort(); - free (fn); - fn = 0; - XGetWindowAttributes (dpy, window, &xgwa); - w = XTextWidth (f, text, (int) strlen(text)); - - gcv.foreground = get_pixel_resource (dpy, xgwa.colormap, - "foreground", "Foreground"); - gcv.background = get_pixel_resource (dpy, xgwa.colormap, - "background", "Background"); - gcv.font = f->fid; - gc = XCreateGC (dpy, window, GCFont | GCForeground | GCBackground, &gcv); - XDrawImageString (dpy, window, gc, - (xgwa.width - w) / 2, - (xgwa.height - (f->ascent + f->descent)) / 2 + f->ascent, - text, (int) strlen(text)); - XFreeFont (dpy, f); - XFreeGC (dpy, gc); + + xftfont = load_xft_font_retry (dpy, 0 /* screen_number(xgwa.screen) */, fn); + + if (!cname) cname = strdup ("white"); + XftColorAllocName (dpy, xgwa.visual, xgwa.colormap, cname, &xftcolor); + free (cname); + + xftdraw = XftDrawCreate (dpy, window, xgwa.visual, xgwa.colormap); + + XftTextExtentsUtf8 (dpy, xftfont, (FcChar8 *) text, strlen(text), &extents); + w = extents.xOff; + + XftDrawStringUtf8 (xftdraw, &xftcolor, xftfont, + (xgwa.width - w) / 2, + (xgwa.height - (xftfont->ascent + xftfont->descent)) / 2 + + xftfont->ascent, + (FcChar8 *) text, strlen(text)); + + XftColorFree (dpy, xgwa.visual, xgwa.colormap, &xftcolor); + XftFontClose (dpy, xftfont); XSync (dpy, False); } diff --git a/utils/grabscreen.h b/utils/grabclient.h index a17e671..2b8a65e 100644 --- a/utils/grabscreen.h +++ b/utils/grabclient.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2014 Jamie Zawinski <jwz@jwz.org> +/* xscreensaver, Copyright © 1992-2022 Jamie Zawinski <jwz@jwz.org> * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -9,23 +9,26 @@ * implied warranty. */ -#ifndef __GRABSCREEN_H__ -#define __GRABSCREEN_H__ +#ifndef __GRABCLIENT_H__ +#define __GRABCLIENT_H__ /* This will write an image onto the given Drawable. The Drawable (arg 3) may be a Window or a Pixmap. The Window must be the top-level window. The image *may or may not* - be written to the window, though it will definitely be written to - the drawable. It's fine for args 2 and 3 to be the same window, or - for arg 2 to be a Window, and arg 3 to be a Pixmap. + be written to the Window, though it will definitely be written to + the Drawable. It's fine for the Window and Drawable to be equal, + or for the Drawable to be a Pixmap. + + The Window and Drawable need not be the same size. + (Smaller pixmap: Tessellimage, XAnalogTV; larger pixmap: Esper) The loaded image might be from a file, or from a screen shot of the desktop, or from the system's video input, depending on user preferences. When the callback is called, the image data will have been loaded - into the given drawable. Copy `name' if you want to keep it. + into the given Drawable. Copy `name' if you want to keep it. If it is from a file, then the `filename' argument will be the name of the file. It may be NULL. If you want to keep this string, copy it. @@ -59,31 +62,11 @@ extern async_load_state *load_image_async_simple (async_load_state *, XRectangle *geometry_ret); -/* Whether one should use GCSubwindowMode when drawing on this window - (assuming a screen image has been grabbed onto it.) Yes, this is a - total kludge. */ -extern Bool use_subwindow_mode_p(Screen *screen, Window window); - -/* Whether the given window is: - - the real root window; - - the virtual root window; - - a direct child of the root window; - - a direct child of the window manager's decorations. - */ -extern Bool top_level_window_p(Screen *screen, Window window); - - -/* Don't call this: this is for the "xscreensaver-getimage" program only. */ -extern void grab_screen_image_internal (Screen *, Window); - /* Don't use these: this is how "xscreensaver-getimage" and "grabclient.c" pass the file name around. */ #define XA_XSCREENSAVER_IMAGE_FILENAME "_SCREENSAVER_IMAGE_FILENAME" #define XA_XSCREENSAVER_IMAGE_GEOMETRY "_SCREENSAVER_IMAGE_GEOMETRY" -/* For debugging: turn on verbosity. */ -extern void grabscreen_verbose (void); - #ifdef HAVE_JWXYZ /* Don't use these: internal interface of grabclient.c. */ extern Bool osx_grab_desktop_image (Screen *, Window, Drawable, @@ -102,8 +85,7 @@ extern void ios_load_random_image (void (*callback) (void *uiimage, #endif /* HAVE_IPHONE */ #ifdef HAVE_ANDROID -char *jwxyz_draw_random_image (Display *dpy, /* utils/grabclient.c */ - Drawable drawable, GC gc); +char *jwxyz_draw_random_image (Display *dpy, Drawable drawable, GC gc); #endif -#endif /* __GRABSCREEN_H__ */ +#endif /* __GRABCLIENT_H__ */ diff --git a/utils/grabscreen.c b/utils/grabscreen.c deleted file mode 100644 index e2742bf..0000000 --- a/utils/grabscreen.c +++ /dev/null @@ -1,924 +0,0 @@ -/* xscreensaver, Copyright (c) 1992-2016 Jamie Zawinski <jwz@jwz.org> - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* This file contains code for grabbing an image of the screen to hack its - bits. This is a little tricky, since doing this involves the need to tell - the difference between drawing on the actual root window, and on the fake - root window used by the screensaver, since at this level the illusion - breaks down... - - The hacks themselves use utils/grabclient.c to invoke the - "xscreensaver-getimage" program as a sub-process. - - On "real" X11 systems: - - "driver/xscreensaver-getimage" runs the code in this file to grab - the X11 root window image as a Pixmap. - - On MacOS systems running X11, which nobody does any more: - - "driver/xscreensaver-getimage" runs "/usr/sbin/screencapture" to - get the Mac desktop image as a PNG. - - On MacOS systems running the native Cocoa build, or on iOS or Android - systems: - - "driver/xscreensaver-getimage" is not used. Instead, each saver's - "utils/grabclient.c" links against "OSX/grabclient-osx.m", - "OSX/grabclient-ios.m" or "jwxyz/jwxyz-android.c" to grab - screenshots directly without invoking a sub-process to do it. - - See the comment at the top of utils/grabclient.c for a more detailed - explanation. - */ - -#include "utils.h" -#include "yarandom.h" - -#include <X11/Xatom.h> -#include <X11/Xutil.h> - -#include "usleep.h" -#include "colors.h" -#include "grabscreen.h" -#include "visual.h" -#include "resources.h" - -#include "vroot.h" -#undef RootWindowOfScreen -#undef RootWindow -#undef DefaultRootWindow - - -#ifdef HAVE_READ_DISPLAY_EXTENSION -# include <X11/extensions/readdisplay.h> - static Bool read_display (Screen *, Window, Pixmap, Bool); -#endif /* HAVE_READ_DISPLAY_EXTENSION */ - - -static void copy_default_colormap_contents (Screen *, Colormap, Visual *); - -#ifdef HAVE_READ_DISPLAY_EXTENSION -static void allocate_cubic_colormap (Screen *, Window, Visual *); -void remap_image (Screen *, Window, Colormap, XImage *); -#endif - - -static Bool -MapNotify_event_p (Display *dpy, XEvent *event, XPointer window) -{ - return (event->xany.type == MapNotify && - event->xvisibility.window == (Window) window); -} - -extern char *progname; -Bool grab_verbose_p = False; - -void -grabscreen_verbose(void) -{ - grab_verbose_p = True; -} - - -static void -raise_window(Display *dpy, Window window, Bool dont_wait) -{ - if (grab_verbose_p) - fprintf(stderr, "%s: raising window 0x%08lX (%s)\n", - progname, (unsigned long) window, - (dont_wait ? "not waiting" : "waiting")); - - if (! dont_wait) - { - XWindowAttributes xgwa; - XSizeHints hints; - long supplied = 0; - memset(&hints, 0, sizeof(hints)); - XGetWMNormalHints(dpy, window, &hints, &supplied); - XGetWindowAttributes (dpy, window, &xgwa); - hints.x = xgwa.x; - hints.y = xgwa.y; - hints.width = xgwa.width; - hints.height = xgwa.height; - hints.flags |= (PPosition|USPosition|PSize|USSize); - XSetWMNormalHints(dpy, window, &hints); - - XSelectInput (dpy, window, (xgwa.your_event_mask | StructureNotifyMask)); - } - - XMapRaised(dpy, window); - - if (! dont_wait) - { - XEvent event; - XIfEvent (dpy, &event, MapNotify_event_p, (XPointer) window); - XSync (dpy, True); - } -} - - -static Bool -xscreensaver_window_p (Display *dpy, Window window) -{ - Atom type; - int format; - unsigned long nitems, bytesafter; - unsigned char *version; - if (XGetWindowProperty (dpy, window, - XInternAtom (dpy, "_SCREENSAVER_VERSION", False), - 0, 1, False, XA_STRING, - &type, &format, &nitems, &bytesafter, - &version) - == Success - && type != None) - return True; - return False; -} - - - -/* Whether the given window is: - - the real root window; - - a direct child of the root window; - - a direct child of the window manager's decorations. - */ -Bool -top_level_window_p (Screen *screen, Window window) -{ - Display *dpy = DisplayOfScreen (screen); - Window root, parent, *kids; - unsigned int nkids; - - if (!XQueryTree (dpy, window, &root, &parent, &kids, &nkids)) - return False; - - if (window == root) - return True; - - /* If our direct parent is the real root window, then yes. */ - if (parent == root) - return True; - else - { - Atom type = None; - int format; - unsigned long nitems, bytesafter; - unsigned char *data; - - /* If our direct parent has the WM_STATE property, then it is a - window manager decoration -- yes. - */ - if (XGetWindowProperty (dpy, window, - XInternAtom (dpy, "WM_STATE", True), - 0, 0, False, AnyPropertyType, - &type, &format, &nitems, &bytesafter, - (unsigned char **) &data) - == Success - && type != None) - return True; - } - - /* Else, no. We're deep in a tree somewhere. - */ - return False; -} - - -static Bool error_handler_hit_p = False; -static XErrorHandler old_ehandler = 0; -static int -BadWindow_ehandler (Display *dpy, XErrorEvent *error) -{ - error_handler_hit_p = True; - if (error->error_code == BadWindow || error->error_code == BadDrawable) - return 0; - else if (!old_ehandler) - { - abort(); - return 0; - } - else - return (*old_ehandler) (dpy, error); -} - - -/* XCopyArea seems not to work right on SGI O2s if you draw in SubwindowMode - on a window whose depth is not the maximal depth of the screen? Or - something. Anyway, things don't work unless we: use SubwindowMode for - the real root window (or a legitimate virtual root window); but do not - use SubwindowMode for the xscreensaver window. I make no attempt to - explain. - */ -Bool -use_subwindow_mode_p(Screen *screen, Window window) -{ - if (window != VirtualRootWindowOfScreen(screen)) - return False; - else if (xscreensaver_window_p(DisplayOfScreen(screen), window)) - return False; - else - return True; -} - - -/* Install the colormaps of all visible windows, deepest first. - This should leave the colormaps of the topmost windows installed - (if only N colormaps can be installed at a time, then only the - topmost N windows will be shown in the right colors.) - */ -static void -install_screen_colormaps (Screen *screen) -{ - unsigned int i; - Display *dpy = DisplayOfScreen (screen); - Window real_root; - Window parent, *kids = 0; - unsigned int nkids = 0; - - XSync (dpy, False); - old_ehandler = XSetErrorHandler (BadWindow_ehandler); - error_handler_hit_p = False; - - real_root = XRootWindowOfScreen (screen); /* not vroot */ - if (XQueryTree (dpy, real_root, &real_root, &parent, &kids, &nkids)) - for (i = 0; i < nkids; i++) - { - XWindowAttributes xgwa; - Window client; - /* if (! (client = XmuClientWindow (dpy, kids[i]))) */ - client = kids[i]; - xgwa.colormap = 0; - XGetWindowAttributes (dpy, client, &xgwa); - if (xgwa.colormap && xgwa.map_state == IsViewable) - XInstallColormap (dpy, xgwa.colormap); - } - XInstallColormap (dpy, DefaultColormapOfScreen (screen)); - XSync (dpy, False); - XSetErrorHandler (old_ehandler); - XSync (dpy, False); - - if (kids) - XFree ((char *) kids); -} - - -void -grab_screen_image_internal (Screen *screen, Window window) -{ - Display *dpy = DisplayOfScreen (screen); - XWindowAttributes xgwa; - Window real_root; - Bool root_p; - Bool saver_p; - Bool grab_mouse_p = False; - int unmap_time = 0; - - real_root = XRootWindowOfScreen (screen); /* not vroot */ - root_p = (window == real_root); - saver_p = xscreensaver_window_p (dpy, window); - - XGetWindowAttributes (dpy, window, &xgwa); - screen = xgwa.screen; - - if (saver_p) - /* I think this is redundant, but just to be safe... */ - root_p = False; - - if (saver_p) - /* The only time grabbing the mouse is important is if this program - is being run while the saver is locking the screen. */ - grab_mouse_p = True; - - if (!root_p) - { - double unmap = 0; - if (saver_p) - { - unmap = get_float_resource(dpy, "grabRootDelay", "Seconds"); - if (unmap <= 0.00001 || unmap > 20) unmap = 2.5; - } - else - { - unmap = get_float_resource(dpy, "grabWindowDelay", "Seconds"); - if (unmap <= 0.00001 || unmap > 20) unmap = 0.66; - } - unmap_time = unmap * 100000; - } - - if (grab_verbose_p) - { - fprintf(stderr, - "\n%s: window 0x%08lX root: %d saver: %d grab: %d wait: %.1f\n", - progname, (unsigned long) window, - root_p, saver_p, grab_mouse_p, ((double)unmap_time)/1000000.0); - - fprintf(stderr, "%s: ", progname); - describe_visual(stderr, screen, xgwa.visual, False); - fprintf (stderr, "\n"); - } - - - if (!root_p && !top_level_window_p (screen, window)) - { - if (grab_verbose_p) - fprintf (stderr, "%s: not a top-level window: 0x%08lX: not grabbing\n", - progname, (unsigned long) window); - return; - } - - - if (!root_p) - XSetWindowBackgroundPixmap (dpy, window, None); - - if (grab_mouse_p) - { - /* prevent random viewer of the screen saver (locker) from messing - with windows. We don't check whether it succeeded, because what - are our options, really... */ - XGrabPointer (dpy, real_root, True, ButtonPressMask|ButtonReleaseMask, - GrabModeAsync, GrabModeAsync, None, None, CurrentTime); - XGrabKeyboard (dpy, real_root, True, GrabModeSync, GrabModeAsync, - CurrentTime); - } - - if (unmap_time > 0) - { - XUnmapWindow (dpy, window); - install_screen_colormaps (screen); - XSync (dpy, True); - usleep(unmap_time); /* wait for everyone to swap in and handle exposes */ - } - - if (!root_p) - { -#ifdef HAVE_READ_DISPLAY_EXTENSION - if (! read_display(screen, window, 0, saver_p)) -#endif /* HAVE_READ_DISPLAY_EXTENSION */ - { -#ifdef HAVE_READ_DISPLAY_EXTENSION - if (grab_verbose_p) - fprintf(stderr, "%s: read_display() failed\n", progname); -#endif /* HAVE_READ_DISPLAY_EXTENSION */ - - copy_default_colormap_contents (screen, xgwa.colormap, xgwa.visual); - raise_window(dpy, window, saver_p); - - /* Generally it's bad news to call XInstallColormap() explicitly, - but this file does a lot of sleazy stuff already... This is to - make sure that the window's colormap is installed, even in the - case where the window is OverrideRedirect. */ - if (xgwa.colormap) XInstallColormap (dpy, xgwa.colormap); - XSync (dpy, False); - } - } - else /* root_p */ - { - Pixmap pixmap; - pixmap = XCreatePixmap(dpy, window, xgwa.width, xgwa.height, xgwa.depth); - -#ifdef HAVE_READ_DISPLAY_EXTENSION - if (! read_display(screen, window, pixmap, True)) -#endif - { - Window real_root = XRootWindowOfScreen (screen); /* not vroot */ - XGCValues gcv; - GC gc; - -#ifdef HAVE_READ_DISPLAY_EXTENSION - if (grab_verbose_p) - fprintf(stderr, "%s: read_display() failed\n", progname); -#endif /* HAVE_READ_DISPLAY_EXTENSION */ - - copy_default_colormap_contents (screen, xgwa.colormap, xgwa.visual); - - gcv.function = GXcopy; - gcv.subwindow_mode = IncludeInferiors; - gc = XCreateGC (dpy, window, GCFunction | GCSubwindowMode, &gcv); - XCopyArea (dpy, real_root, pixmap, gc, - xgwa.x, xgwa.y, xgwa.width, xgwa.height, 0, 0); - XFreeGC (dpy, gc); - } - XSetWindowBackgroundPixmap (dpy, window, pixmap); - XFreePixmap (dpy, pixmap); - } - - if (grab_verbose_p) - fprintf (stderr, "%s: grabbed %d bit screen image to %swindow.\n", - progname, xgwa.depth, - (root_p ? "real root " : "")); - - if (grab_mouse_p) - { - XUngrabPointer (dpy, CurrentTime); - XUngrabKeyboard (dpy, CurrentTime); - } - - XSync (dpy, True); -} - - -/* When we are grabbing and manipulating a screen image, it's important that - we use the same colormap it originally had. So, if the screensaver was - started with -install, we need to copy the contents of the default colormap - into the screensaver's colormap. - */ -static void -copy_default_colormap_contents (Screen *screen, - Colormap to_cmap, - Visual *to_visual) -{ - Display *dpy = DisplayOfScreen (screen); - Visual *from_visual = DefaultVisualOfScreen (screen); - Colormap from_cmap = XDefaultColormapOfScreen (screen); - - XColor *old_colors, *new_colors; - unsigned long *pixels; - XVisualInfo vi_in, *vi_out; - int out_count; - int from_cells, to_cells, max_cells, got_cells; - int i; - - if (from_cmap == to_cmap) - return; - - vi_in.screen = XScreenNumberOfScreen (screen); - vi_in.visualid = XVisualIDFromVisual (from_visual); - vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, - &vi_in, &out_count); - if (! vi_out) abort (); - from_cells = vi_out [0].colormap_size; - XFree ((char *) vi_out); - - vi_in.screen = XScreenNumberOfScreen (screen); - vi_in.visualid = XVisualIDFromVisual (to_visual); - vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, - &vi_in, &out_count); - if (! vi_out) abort (); - to_cells = vi_out [0].colormap_size; - XFree ((char *) vi_out); - - max_cells = (from_cells > to_cells ? to_cells : from_cells); - - old_colors = (XColor *) calloc (sizeof (XColor), max_cells); - new_colors = (XColor *) calloc (sizeof (XColor), max_cells); - pixels = (unsigned long *) calloc (sizeof (unsigned long), max_cells); - for (i = 0; i < max_cells; i++) - old_colors[i].pixel = i; - XQueryColors (dpy, from_cmap, old_colors, max_cells); - - got_cells = max_cells; - allocate_writable_colors (screen, to_cmap, pixels, &got_cells); - - if (grab_verbose_p && got_cells != max_cells) - fprintf(stderr, "%s: got only %d of %d cells\n", progname, - got_cells, max_cells); - - if (got_cells <= 0) /* we're screwed */ - ; - else if (got_cells == max_cells && /* we're golden */ - from_cells == to_cells) - XStoreColors (dpy, to_cmap, old_colors, got_cells); - else /* try to cope... */ - { - for (i = 0; i < got_cells; i++) - { - XColor *c = old_colors + i; - int j; - for (j = 0; j < got_cells; j++) - if (pixels[j] == c->pixel) - { - /* only store this color value if this is one of the pixels - we were able to allocate. */ - XStoreColors (dpy, to_cmap, c, 1); - break; - } - } - } - - - if (grab_verbose_p) - fprintf(stderr, "%s: installing copy of default colormap\n", progname); - - free (old_colors); - free (new_colors); - free (pixels); -} - - - -/* The SGI ReadDisplay extension. - This extension lets you get back a 24-bit image of the screen, taking into - account the colors with which all windows are *currently* displayed, even - if those windows have different visuals. Without this extension, presence - of windows with different visuals or colormaps will result in technicolor - when one tries to grab the screen image. - */ - -#ifdef HAVE_READ_DISPLAY_EXTENSION - -static Bool -read_display (Screen *screen, Window window, Pixmap into_pixmap, - Bool dont_wait) -{ - Display *dpy = DisplayOfScreen (screen); - XWindowAttributes xgwa; - int rd_event_base = 0; - int rd_error_base = 0; - unsigned long hints = 0; - XImage *image = 0; - XGCValues gcv; - int class; - GC gc; - Bool remap_p = False; - - /* Check to see if the server supports the extension, and bug out if not. - */ - if (! XReadDisplayQueryExtension (dpy, &rd_event_base, &rd_error_base)) - { - if (grab_verbose_p) - fprintf(stderr, "%s: no XReadDisplay extension\n", progname); - return False; - } - - /* If this isn't a visual we know how to handle, bug out. We handle: - = TrueColor in depths 8, 12, 15, 16, and 32; - = PseudoColor and DirectColor in depths 8 and 12. - */ - XGetWindowAttributes(dpy, window, &xgwa); - class = visual_class (screen, xgwa.visual); - if (class == TrueColor) - { - if (xgwa.depth != 8 && xgwa.depth != 12 && xgwa.depth != 15 && - xgwa.depth != 16 && xgwa.depth != 24 && xgwa.depth != 32) - { - if (grab_verbose_p) - fprintf(stderr, "%s: TrueColor depth %d unsupported\n", - progname, xgwa.depth); - return False; - } - } - else if (class == PseudoColor || class == DirectColor) - { - if (xgwa.depth != 8 && xgwa.depth != 12) - { - if (grab_verbose_p) - fprintf(stderr, "%s: Pseudo/DirectColor depth %d unsupported\n", - progname, xgwa.depth); - return False; - } - else - /* Allocate a TrueColor-like spread of colors for the image. */ - remap_p = True; - } - - - /* Try and read the screen. - */ - hints = (XRD_TRANSPARENT | XRD_READ_POINTER); - image = XReadDisplay (dpy, window, xgwa.x, xgwa.y, xgwa.width, xgwa.height, - hints, &hints); - if (!image) - { - if (grab_verbose_p) - fprintf(stderr, "%s: XReadDisplay() failed\n", progname); - return False; - } - if (!image->data) - { - if (grab_verbose_p) - fprintf(stderr, "%s: XReadDisplay() returned no data\n", progname); - XDestroyImage(image); - return False; - } - - /* XReadDisplay tends to LIE about the depth of the image it read. - It is returning an XImage which has `depth' and `bits_per_pixel' - confused! - - That is, on a 24-bit display, where all visuals claim depth 24, and - where XGetImage would return an XImage with depth 24, and where - XPutImage will get a BadMatch with images that are not depth 24, - XReadDisplay is returning images with depth 32! Fuckwits! - - So if the visual is of depth 24, but the image came back as depth 32, - hack it to be 24 lest we get a BadMatch from XPutImage. - - I wonder what happens on an 8-bit SGI... Probably it still returns - an image claiming depth 32? Certainly it can't be 8. So, let's just - smash it to 32... - */ - if (image->depth == 32 /* && xgwa.depth == 24 */ ) - image->depth = 24; - - /* If the visual of the window/pixmap into which we're going to draw is - less deep than the screen itself, then we need to convert the grabbed bits - to match the depth by clipping off the less significant bit-planes of each - color component. - */ - if (image->depth > xgwa.depth) - { - int x, y; - /* We use the same image->data in both images -- that's ok, because - since we're reading from B and writing to A, and B uses more bytes - per pixel than A, the write pointer won't overrun the read pointer. - */ - XImage *image2 = XCreateImage (dpy, xgwa.visual, xgwa.depth, - ZPixmap, 0, image->data, - xgwa.width, xgwa.height, - 8, 0); - if (!image2) - { - if (grab_verbose_p) - fprintf(stderr, "%s: out of memory?\n", progname); - return False; - } - - if (grab_verbose_p) - fprintf(stderr, "%s: converting from depth %d to depth %d\n", - progname, image->depth, xgwa.depth); - - for (y = 0; y < image->height; y++) - for (x = 0; x < image->width; x++) - { - /* #### really these shift values should be determined from the - mask values -- but that's a pain in the ass, and anyway, - this is an SGI-specific extension so hardcoding assumptions - about the SGI server's behavior isn't *too* heinous... */ - unsigned long pixel = XGetPixel(image, x, y); - unsigned int r = (pixel & image->red_mask); - unsigned int g = (pixel & image->green_mask) >> 8; - unsigned int b = (pixel & image->blue_mask) >> 16; - - if (xgwa.depth == 8) - pixel = ((r >> 5) | ((g >> 5) << 3) | ((b >> 6) << 6)); - else if (xgwa.depth == 12) - pixel = ((r >> 4) | ((g >> 4) << 4) | ((b >> 4) << 8)); - else if (xgwa.depth == 16 || xgwa.depth == 15) - /* Gah! I don't understand why these are in the other order. */ - pixel = (((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3))); - else - abort(); - - XPutPixel(image2, x, y, pixel); - } - image->data = 0; - XDestroyImage(image); - image = image2; - } - - if (remap_p) - { - allocate_cubic_colormap (screen, window, xgwa.visual); - remap_image (screen, window, xgwa.colormap, image); - } - - /* Now actually put the bits into the window or pixmap -- note the design - bogosity of this extension, where we've been forced to take 24 bit data - from the server to the client, and then push it back from the client to - the server, *without alteration*. We should have just been able to tell - the server, "put a screen image in this drawable", instead of having to - go through the intermediate step of converting it to an Image. Geez. - (Assuming that the window is of screen depth; we happen to handle less - deep windows, but that's beside the point.) - */ - gcv.function = GXcopy; - gc = XCreateGC (dpy, window, GCFunction, &gcv); - - if (into_pixmap) - { - gcv.function = GXcopy; - gc = XCreateGC (dpy, into_pixmap, GCFunction, &gcv); - XPutImage (dpy, into_pixmap, gc, image, 0, 0, 0, 0, - xgwa.width, xgwa.height); - } - else - { - gcv.function = GXcopy; - gc = XCreateGC (dpy, window, GCFunction, &gcv); - - /* Ok, now we'll be needing that window on the screen... */ - raise_window(dpy, window, dont_wait); - - /* Plop down the bits... */ - XPutImage (dpy, window, gc, image, 0, 0, 0, 0, xgwa.width, xgwa.height); - } - XFreeGC (dpy, gc); - - if (image->data) - { - free(image->data); - image->data = 0; - } - XDestroyImage(image); - - return True; -} -#endif /* HAVE_READ_DISPLAY_EXTENSION */ - - -#ifdef HAVE_READ_DISPLAY_EXTENSION - -/* Makes and installs a colormap that makes a PseudoColor or DirectColor - visual behave like a TrueColor visual of the same depth. - - #### Duplicated in driver/xscreensaver-getimage.c - */ -static void -allocate_cubic_colormap (Screen *screen, Window window, Visual *visual) -{ - Display *dpy = DisplayOfScreen (screen); - XWindowAttributes xgwa; - Colormap cmap; - int nr, ng, nb, cells; - int r, g, b; - int depth; - XColor colors[4097]; - int i; - - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - depth = visual_depth (screen, visual); - - switch (depth) - { - case 8: nr = 3; ng = 3; nb = 2; cells = 256; break; - case 12: nr = 4; ng = 4; nb = 4; cells = 4096; break; - default: abort(); break; - } - - memset(colors, 0, sizeof(colors)); - for (r = 0; r < (1 << nr); r++) - for (g = 0; g < (1 << ng); g++) - for (b = 0; b < (1 << nb); b++) - { - i = (r | (g << nr) | (b << (nr + ng))); - colors[i].pixel = i; - colors[i].flags = DoRed|DoGreen|DoBlue; - if (depth == 8) - { - colors[i].red = ((r << 13) | (r << 10) | (r << 7) | - (r << 4) | (r << 1)); - colors[i].green = ((g << 13) | (g << 10) | (g << 7) | - (g << 4) | (g << 1)); - colors[i].blue = ((b << 14) | (b << 12) | (b << 10) | - (b << 8) | (b << 6) | (b << 4) | - (b << 2) | b); - } - else - { - colors[i].red = (r << 12) | (r << 8) | (r << 4) | r; - colors[i].green = (g << 12) | (g << 8) | (g << 4) | g; - colors[i].blue = (b << 12) | (b << 8) | (b << 4) | b; - } - } - - { - int j; - int allocated = 0; - int interleave = cells / 8; /* skip around, rather than allocating in - order, so that we get better coverage if - we can't allocated all of them. */ - for (j = 0; j < interleave; j++) - for (i = 0; i < cells; i += interleave) - if (XAllocColor (dpy, cmap, &colors[i + j])) - allocated++; - - if (grab_verbose_p) - fprintf (stderr, "%s: allocated %d of %d colors for cubic map\n", - progname, allocated, cells); - } -} - -/* Find the pixel index that is closest to the given color - (using linear distance in RGB space -- which is far from the best way.) - - #### Duplicated in driver/xscreensaver-getimage.c - */ -static unsigned long -find_closest_pixel (XColor *colors, int ncolors, - unsigned long r, unsigned long g, unsigned long b) -{ - unsigned long distance = ~0; - int i, found = 0; - - if (ncolors == 0) - abort(); - for (i = 0; i < ncolors; i++) - { - unsigned long d; - int rd, gd, bd; - - rd = r - colors[i].red; - gd = g - colors[i].green; - bd = b - colors[i].blue; - if (rd < 0) rd = -rd; - if (gd < 0) gd = -gd; - if (bd < 0) bd = -bd; - d = (rd << 1) + (gd << 2) + bd; - - if (d < distance) - { - distance = d; - found = i; - if (distance == 0) - break; - } - } - - return found; -} - - -/* Given an XImage with 8-bit or 12-bit RGB data, convert it to be - displayable with the given X colormap. The farther from a perfect - color cube the contents of the colormap are, the lossier the - transformation will be. No dithering is done. - - #### Duplicated in driver/xscreensaver-getimage.c - */ -void -remap_image (Screen *screen, Window window, Colormap cmap, XImage *image) -{ - Display *dpy = DisplayOfScreen (screen); - unsigned long map[4097]; - int x, y, i; - int cells; - XColor colors[4097]; - - if (image->depth == 8) - cells = 256; - else if (image->depth == 12) - cells = 4096; - else - abort(); - - memset(map, -1, sizeof(*map)); - memset(colors, -1, sizeof(*colors)); - - for (i = 0; i < cells; i++) - colors[i].pixel = i; - XQueryColors (dpy, cmap, colors, cells); - - if (grab_verbose_p) - fprintf(stderr, "%s: building table for %d bit image\n", - progname, image->depth); - - for (i = 0; i < cells; i++) - { - unsigned short r, g, b; - - if (cells == 256) - { - /* "RRR GGG BB" In an 8 bit map. Convert that to - "RRR RRR RR" "GGG GGG GG" "BB BB BB BB" to give - an even spread. */ - r = (i & 0x07); - g = (i & 0x38) >> 3; - b = (i & 0xC0) >> 6; - - r = ((r << 13) | (r << 10) | (r << 7) | (r << 4) | (r << 1)); - g = ((g << 13) | (g << 10) | (g << 7) | (g << 4) | (g << 1)); - b = ((b << 14) | (b << 12) | (b << 10) | (b << 8) | - (b << 6) | (b << 4) | (b << 2) | b); - } - else - { - /* "RRRR GGGG BBBB" In a 12 bit map. Convert that to - "RRRR RRRR" "GGGG GGGG" "BBBB BBBB" to give an even - spread. */ - r = (i & 0x00F); - g = (i & 0x0F0) >> 4; - b = (i & 0xF00) >> 8; - - r = (r << 12) | (r << 8) | (r << 4) | r; - g = (g << 12) | (g << 8) | (g << 4) | g; - b = (b << 12) | (b << 8) | (b << 4) | b; - } - - map[i] = find_closest_pixel (colors, cells, r, g, b); - } - - if (grab_verbose_p) - fprintf(stderr, "%s: remapping colors in %d bit image\n", - progname, image->depth); - - for (y = 0; y < image->height; y++) - for (x = 0; x < image->width; x++) - { - unsigned long pixel = XGetPixel(image, x, y); - if (pixel >= cells) abort(); - XPutPixel(image, x, y, map[pixel]); - } -} - - -#endif /* HAVE_READ_DISPLAY_EXTENSION */ diff --git a/utils/images/logo-512.png b/utils/images/logo-512.png Binary files differnew file mode 100644 index 0000000..68122cc --- /dev/null +++ b/utils/images/logo-512.png diff --git a/utils/images/logo.eps b/utils/images/logo.eps deleted file mode 100644 index 4843e79..0000000 --- a/utils/images/logo.eps +++ /dev/null @@ -1,8058 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Illustrator(R) 8.0 -%%AI8_CreatorVersion: 8 -%%For: (rzr Grl) (evol engel) -%%Title: (xscreensaver.eps) -%%CreationDate: (1/30/01) (8:38 PM) -%%BoundingBox: 179 249 429 531 -%%HiResBoundingBox: 179.3335 249.9619 428.666 530.8477 -%%DocumentProcessColors: Black -%%DocumentFonts: Device -%%DocumentSuppliedFonts: Device -%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 -%%+ procset Adobe_typography_AI5 1.0 1 -%%+ procset Adobe_ColorImage_AI6 1.3 0 -%%+ procset Adobe_Illustrator_AI5 1.3 0 -%%+ procset Adobe_cshow 2.0 8 -%%+ procset Adobe_shading_AI8 1.0 0 -%AI5_FileFormat 4.0 -%AI3_ColorUsage: Color -%AI3_IncludePlacedImages -%AI7_ImageSettings: 1 -%%DocumentCustomColors: (PANTONE 152 CVC) -%%+ (PANTONE 485 CVC) -%%CMYKCustomColor: 0 0.51 1 0 (PANTONE 152 CVC) -%%+ 0.91 0.01 0.93 0 (PANTONE 354 2X CVC) -%%+ 0 1 0.91 0 (PANTONE 485 CVC) -%%CMYKProcessColor: 1 1 1 1 ([Registration]) -%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) -%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 131071 -1 -%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () -%AI3_TemplateBox: 306.5 395.5 306.5 395.5 -%AI3_TileBox: 30 31 582 761 -%AI3_DocumentPreview: Header -%AI5_ArtSize: 612 792 -%AI5_RulerUnits: 2 -%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 4 -%AI8_OpenToView: -109 667 1 718 623 18 0 1 153 44 0 0 -%AI5_OpenViewLayers: 3733 -%%PageOrigin:30 31 -%%AI3_PaperRect:-30 761 582 -31 -%%AI3_Margin:30 -31 -30 31 -%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 -%AI7_Thumbnail: 116 128 8 -%%BeginData: 12612 Hex Bytes -%0000330000660000990000CC0033000033330033660033990033CC0033FF -%0066000066330066660066990066CC0066FF009900009933009966009999 -%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 -%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 -%3333663333993333CC3333FF3366003366333366663366993366CC3366FF -%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 -%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 -%6600666600996600CC6600FF6633006633336633666633996633CC6633FF -%6666006666336666666666996666CC6666FF669900669933669966669999 -%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 -%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF -%9933009933339933669933999933CC9933FF996600996633996666996699 -%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 -%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF -%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 -%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 -%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF -%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC -%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 -%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 -%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 -%000011111111220000002200000022222222440000004400000044444444 -%550000005500000055555555770000007700000077777777880000008800 -%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB -%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF -%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF -%524C45FD2BFF2727FD71FF2052F87DFD70FF76F8F8F8A8FD6FFFA8FD04F8 -%FD70FF4B69F8F852FD6FFFA84468F8F87DFD6FFF27FC44F827A8FD6EFF27 -%8C8C20F827A8FD6DFFA844B08C27F852FD6DFFA820FCFC4426F87DFD6DFF -%20B0FCB0204AF8FD09FFA1FFA8FD61FF4B8CFCFC8CF8F827FD07FF7DF87D -%F87DFD60FF528DFCB0FC4B26F8A8FD06FF204B27F8FD61FF7D68FCFCFC8C -%4AF827FD05FF27F827F852FD61FFA869FCB0FCB02074F8FD04FFA8204BF8 -%F8A8FD61FFA844FD04FC4492F87DFFFFFF2068F8F8F8FD62FF7D69FCB0FC -%B02050F8A8FFFF526944F8F852FD62FF7668FCFCFC684AF827FFFFA8208C -%68F8F852FD62FF27B0FCB0FC274AF87DFFFF7644B02050F87DFD45FFA852 -%FD1B2720FCFCFC6820F8F8272727F8FCFC206EF8F8FD202752A8FD22FF7D -%FD1CF82044B0FCB0F874FD04F82069FCB0449EFD23F827FD22FF27F8F8F8 -%FD1927F8FCFCFC4474F8F8272727208CFCFC6844F8F8FD1F27F8F8F87DFD -%21FFF8F8F8FD19FF4B69FCB08C206EF852FFFFA844B0FCB06898F87DFD1F -%FFA8F8F827FD21FFF8F827FD18FF2744FCFCFC684426F8A8FFFF4B68FCFC -%FC8C44F827FD20FFF8F827FD21FFF8F827FD17FF764BFCB0FCB0F8C0F852 -%FFFFFF27FCB0FCB0FC4B2027FD20FFF8F827FD21FFF8F827FD16FF7D20FD -%04FC8C4A44F87DFFFFA844FD05FC204AF8FD20FFF8F827FD21FFF8F827FD -%16FF278CB0FCB0FC696E26F8FFFFFF768DFCB0FCB0FC444AF87DFD1FFFF8 -%F827FD21FFF8F827FD10FF4BA1A8FFFF5268FD05FC20C0F852FFFFFF4B8C -%FD05FC6844F852FD1FFFF8F827FD21FFF8F827FD05FF7D52275227522752 -%2752274B27F8F85220B0FCB0FCB0FC4B92F8F852275220B0FCB0FCB0FCB0 -%2026F852275227522752275227522752275227522752275227522752A8FD -%05FFF8F827FD21FFF8F827FD04FF52FD0AF8206820F8F8F88CFD05FC8C44 -%74FD05F820FD07FC44FD1CF87DFD04FFF8F827FD21FFF8F827FFFFFFA8FD -%0AF8204444F826F820FCB0FCB0FCB08C744AFD05F844B0FCB0FCB0FCB068 -%4AFD1BF827FD04FFF8F827FD21FFF8F827FFFFFFA8FD0BF88CF8F8F82068 -%FD06FC8C444AFD05F868FD08FC2020FD1BF8FD04FFF8F827FD21FFF8F827 -%FFFFFFA8FD0AF8458C20F8F820B0FCB0FCB0FCB0FC266EFD05F844B0FCB0 -%FCB0FCB0FC6944FD1BF8FD04FFF8F827FD21FFF8F827FFFFFFA8FD09F820 -%6868F8F8F820FD08FC449EFD05F868FD08FC8C20FD1BF8FD04FFF8F827FD -%21FFF8F827FFFFFF7DFD0AF8B044F8F8F820B0FCB0FCB0FCB0FC8D2026FD -%04F844B0FCB0FCB0FCB0FCB0446EFD1AF8FD04FFF8F827FD21FFF8F827FF -%FFFFA8FD09F844FC20F8F8F820FD09FC4420FD04F820FD0AFC2020FD19F8 -%FD04FFF8F827FD21FFF8F827FFFFFFA8FD08F8218CB02026F8F820B0FCB0 -%FCB0FCB0FCB0FC20FD04F820B0FCB0FCB0FCB0FCB0FC6944FD19F8FD04FF -%F8F827FD21FFF8F827FFFFFFA8FD09F8FCFC444AF85220FD0AFC8C20F8F8 -%274B8CFD0AFC2020F8F87D527D527D527D527D527D27FD0AF8FD04FFF8F8 -%27FD21FFF8F827FFFFFFA8FD08F845FCB02074F8A820B0FCB0FCB0FCB0FC -%B0FCB06820F827A84BFCB0FCB0FCB0FCB0FCB08C2020F852FD0BFF27FD09 -%F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD07F82068FCFC206EF87D4B8C -%FD0BFC4420F827208CFD0AFC6820F8F852FD0AFFA8FD09F8FD04FFF8F827 -%FD21FFF8F827FFFFFFA8FD07F820B0FCB0209EF87D7D69FCB0FCB0FCB0FC -%B0FCB0FCB0444BF87620B0FCB0FCB0FCB0FCB0FCB0685120F8A8FD09FFA8 -%FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD07F844FCFCFC686EF827 -%FF20FD0DFC2026F82068FD0BFC2074F852FD09FFA8FD09F8FD04FFF8F827 -%FD21FFF8F827FFFFFF7DFD06F82068B0FCB0686E26F8A87668B0FCB0FCB0 -%FCB0FCB0FCB0FCB0204AF820FCB0FCB0FCB0FCB0FCB0FCB0204AF8FD09FF -%7DFD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD07F88CFD04FCF874F8 -%7DA820FD0DFC8CF8F8F868FD0BFC4420F852FD08FFA8FD09F8FD04FFF8F8 -%27FD21FFF8F827FFFFFFA8FD06F820FCB0FCB0FC4B98F827FF4B8DFCB0FC -%B0FCB0FCB0FCB0FCB0FC8D44F8F8B0FCB0FCB0FCB0FCB0FCB0FC27F827FD -%08FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD06F820FD05FC68 -%4A44F87DFF20FD0EFC20202044FD0BFC444AF8A8FD07FFA8FD09F8FD04FF -%F8F827FD21FFF8F827FFFFFFA8FD06F821FCB0FCB0FCB0209EF827FF4C8C -%B0FCB0FCB0FCB0FCB0FCB0FCB0684AF820FCB0FCB0FCB0FCB0FCB0FCB020 -%F87DFD07FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD06F844FD -%06FC684426F8A8A820FD0EFCF84AF868FD0BFC20F852FD07FFA8FD09F8FD -%04FFF8F827FD21FFF8F827FFFFFFA8FD06F869FCB0FCB0FCB0FC4B74F827 -%FF4B8DFCB0FCB0FCB0FCB0FCB0FCB0FC694AF820B0FCB0FCB0FCB0FCB0FC -%B0684AF8FD07FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD06F8 -%44FD07FC8C2644F87DFF20FD0DFC8C20F820FD0BFC8C20F8A8FD06FFA8FD -%09F8FD04FFF8F827FD21FFF8F827FFFFFF7DFD06F869FCB0FCB0FCB0FCB0 -%4474F826A84B8CB0FCB0FCB0FCB0FCB0FCB0FCB08C2020B0FCB0FCB0FCB0 -%FCB0FCB0FC20F87DFD06FF7DFD09F8FD04FFF8F827FD21FFF8F827FFFFFF -%A8FD06F844FD09FCF874F8527D44FD0EFC8C8CFD0CFC44F827FD06FFA8FD -%09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD06F821FCB0FCB0FCB0FCB0 -%FCB0204AF8A821B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0 -%FCB0FCB0FC8DF827FD06FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFF -%A8FD07F8FD0AFC8C20F8F87D44FD1BFC8C20F8FD06FFA8FD09F8FD04FFF8 -%F827FD21FFF8F827FFFFFFA8FD06F82068B0FCB0FCB0FCB0FCB0FC6920F8 -%5227FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0 -%20F87DFD05FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD07F820 -%FD0BFC20F8F820FD1CFC44F87DFD05FFA8FD09F8FD04FFF8F827FD21FFF8 -%F827FFFFFFA8FD07F8208DFCB0FCB0FCB0FCB0FCB08C26F8528CB0FCB0FC -%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB044F852FD05FFA8 -%FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD08F820FD0BFC44F8F868 -%FD1BFC68F827FD05FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFF7DFD -%08F8208CB0FCB0FCB0FCB0FCB0FCB020F844B0FCB0FCB0FCB0FCB0FCB0FC -%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0684AF8FD05FF7DFD09F8FD04FFF8F8 -%27FD21FFF8F827FFFFFFA8FD09F820FD0BFC8CF868FD1BFC8CF8F8FD05FF -%A8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD09F8208DFCB0FCB0FC -%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC -%B0FCB0FCB08C4BF8A8FD04FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFF -%FFA8FD09F82720FD28FC8C20F87DFD04FFA8FD09F8FD04FFF8F827FD21FF -%F8F827FFFFFFA8FD09F8277644B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0 -%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08C74F87DFD04FFA8 -%FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD09F827FF278CFD26FC44 -%6EF827FD04FFA8FD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD09F827 -%FFA84BFCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC -%B0FCB0FCB0FCB0FCB0FCB02074F852FD04FFA8FD09F8FD04FFF8F827FD21 -%FFF8F827FFFFFFA8FD09F827FFFF5268FD24FC684AF8F8A8FD04FFA8FD09 -%F8FD04FFF8F827FD21FFF8F827FFFFFF7DFD09F827FFFFFF208DFCB0FCB0 -%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0 -%FC20F827A8FD05FF7DFD09F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD09 -%F827FD04FFF88CFD21FC8CF8F87DFD06FFA8FD09F8FD04FFF8F827FD21FF -%F8F827FFFFFFA8FD08F82727FD04FFA820B0FCB0FCB0FCB0FCB0FCB0FCB0 -%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB020F852FD07FF52FD09F8 -%FD04FFF8F827FD21FFF8F827FFFFFFA8FD0AF8277D7DA87D7DF8FD1FFC20 -%2027A87DA87DA87DA852FD0AF8FD04FFF8F827FD21FFF8F827FFFFFFA8FD -%10F82020B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC -%B0FCB06820FD14F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD11F82020FD -%1BFC6820FD15F8FD04FFF8F827FD21FFF8F827FFFFFFA8FD12F82120B0FC -%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB06821FD16F8FD04 -%FFF8F827FD21FFF8F827FFFFFFA8FD13F820F88CFD16FC4420FD17F8FD04 -%FFF8F827FD21FFF8F827FFFFFF7DFD14F820F88DFCB0FCB0FCB0FCB0FCB0 -%FCB0FCB0FCB0FCB0FC8DF820FD18F8FD04FFF8F827FD21FFF8F827FFFFFF -%A8FD17F82068FD0FFC8C44FD1BF8FD04FFF8F827FD21FFF8F827FD04FF27 -%FD17F82120698CB0FCB0FCB0FCB0FCB0FC8D4427FD1BF852FD04FFF8F827 -%FD21FFF8F827FD04FF7DFD1AF820F820446844684444202620FD1CF827A8 -%FD04FFF8F827FD21FFF8F827FD05FFA87D527D527D527D527D527D527D52 -%7D527D527D527D527DFD0AF82050FD07F827527D527D527D527D527D527D -%527D527D527D527D52A8FD06FFF8F827FD21FFF8F827FD1CFFFD15F8A8FD -%1BFFF8F827FD21FFF8F827FD1BFF52FD16F8FD1BFFF8F827FD21FFF8F827 -%FD1AFF52FD18F8FD1AFFF8F827FD21FFF8F827FD19FF2727FD19F8A8FD18 -%FFF8F827FD21FFF8F827FD17FF7DFD1DF827A8FD16FFF8F827FD21FFF8F8 -%27FD15FFFD23F8A8FD14FFF8F827FD21FFF8F827FD14FF52FD24F8FD14FF -%F8F827FD21FFF8F827FD15FF2727F827F827F827F827F827F827F827F827 -%F827F827F827F827F827F827F827F827F8A8FD14FFF8F827FD21FFF8F827 -%FD4DFFF8F827FD21FFF8F827FD4DFFF8F827FD21FFF8F8F8277D527D527D -%527D527D527D527D527D527D527D527D527D527D527D527D527D527D527D -%527D527D527D527D527D527D527D527D527D527D527D527D527D527D527D -%527D527D527D527D527D27F8F852FD21FF52FD51F87DFD22FF52FD4EF827 -%7DFD25FFFD4CA8FD91FFCACACAFFFFFF9AC3CAFFFFCA93B59ACAFD05FFCA -%FD06FFCACACAFD04FFCA93B593BC6FFFFFCA93B593BC93FFCABC9AFFFFFF -%93BCFFFFFFCA9AB593CAFD05FFB6A1FFFFFF94CAFD04FFCAFFFFFF93B593 -%BC93FD04FFCAC4FD13FF9A448DCAFFA18C44BCFFBC6820F8208CCAFFFF93 -%93688D93FFFFFF8C68448D8CCAFFCA8C20F8F8F8449ACA8C20F8F8F8449A -%BC448CCAFF9A6868CAFFBC6820F84468FD04FFCA688CCAFF9A6868CAFFFF -%8C688DFF8C20F8F8F82093FF9AB044688CBCCAFD10FFCA6944BCFFB62068 -%CAFF8CF82069444493FF8C44F820F8689AFF9320F86944208CFFCA68F893 -%8CB58CCACA68F8938CB58CCA9A4420BCFFC32069CAFF8CF82068204593FF -%FFFF9A4444C3FFC320459AFFCA6920B6FF93F8938CB58CBCFFB5F8444445 -%68C3FD11FF8CF88CFF8CF88CFFC368F8B0C3B0F8B5FF8DF8208C68F8B5FF -%B5F88C9ABC208DFFCA442093FD04FFCA442093FD04FFBC20F88CFF762020 -%CAA144F8B5C38CF8B5FFFFFFB5F8208CFFC368F8B5FFC4442093FF8CF88C -%FD04FFCA68208CCA8C208CFD11FFB5F893C393F8B5FFCA44449AFF934493 -%FF68F88CFF93B59AFF68F88CFF764444CAC46920BCFD04FFC46920BCFD04 -%FF9320F893A1BC204493CA204493FF934493FFFFFF8CF8F8B5FFFF8CF88C -%FF932044CAFF8DF8B5FD04FFCA68F8B5FFB5F893FD11FF9A4420FC20449A -%FFC368F8BCFFCA93CAC368F8B0FD05FF69F88DFFA12068C3CA442093FD04 -%FFCA442093FD04FF93F8F82093932020BCC34420BCFFCA93A1FFFFCA8DF8 -%F844CAFFB5F88CFF93F88CCAFF68F88CFD04FFCA44F88CFF8CF88CFD12FF -%8CF844F88CFFFFCA44F894FD04FFCA44F88DFD05FF68F88CFFCA4544CACA -%6920BCFD04FFCA6920BCFD04FF8CF8F8F88CBD20449ACA442093FD06FFCA -%44F8F8449AFF932068CA8CF88CFFFF68F8B5FD04FFCA68F8B5FFB5F8B5FD -%12FF93F8F8F8B5FFFFC368F8B093CACAFFC36820BCFD05FF6FF88DC39320 -%68CACA44208CCAC3CAFFCA20208CCAC3CAFFB5F8F8F8688C2020BCC368F8 -%FC6FCACAFFFFFF93202044F8B5FFBD20449393F893FFCA44F88CCAC3CAFF -%CA44F88CCA8CF88CFD12FFA144F84493FFFFFF8C20F84444B5CAFF444493 -%FD05FF68F8446920F88CFFCA44F84444688CFFA144F84444688CFF8DF820 -%4420B020449AFF8C20204444B5FFFFFFB5F89368F88CFFC46920B544449A -%FFC469F82044698CFFC469F868442020BCFD12FFCA44F844CAFFFFFFC38C -%68202020BCFF682093FD05FF6FF8F8F82068BCFFCA20F8F820688DFFA120 -%F8F820688DFFB5F86868F88C2020BCFFC38C68442020BCFFFF8CF88C8CF8 -%68C3FF8CF88C2044CAFFCA44F8F82044B0CACA44F8F8F8208DCAFD12FFA1 -%68F8699BFD05FFCACA8C2093FF44F88CFD05FF69F8F8F844BCFFFFCA44F8 -%4593CAFFFFA144F84593CAFFFF8DF844B5F868F8459AFFFFFFCAC38C2093 -%FFCA93F8938C2044C3FFB5F868F893CAFFCA69F8208CCAFFFFCA69F8F8F8 -%93CAFD13FF9420F8F8B5FD07FFB5F893C368F8B5FD05FF9AF8F8F8208CFF -%FFCA44208CFD04FFCA20208CFD04FFB5F8689344F8F820BCFD05FFB5F8B5 -%FFBC202093BC202093FF8C20F8F88CFFFFCA44F88CFD04FFCA44F8F8F844 -%C3FD13FF8CF868208CFFFFFFA1C3FFFF8CF868CA44F88DFD05FF6FF86893 -%F8B5FFFFC46920BCFD04FFC46820BCFD04FF8CF88CCA68F8F84493FF9AC3 -%CAFF8DF86FFF932068B58C44F8B5FFBC20F8F8B5FFFFCA68F8B5FD04FFCA -%68F8B0442093FD12FFCA68F8FC44449AFFC38C44BCFF93F88DC368F8B5FF -%FF68B0FF93F86F8CF844CAFFCA442093FD04FFCA442093FD04FF93F88DFF -%93F8F820BCC38C449AFFB5F869FFB0FD06F868FFA168F82093FFFFFF44F8 -%8CFD04FFCA4420938DF88DFD12FFBC2045BC93F8B5FFCA442193FF8CF88C -%CA44F893FF9A4568FF6FF88CC3444593FFCA69209AFD04FFCA69209AFD04 -%FF8CF88CFF9321F8449ACA442093FF8DF868FF8CF820934420F8699BFF8C -%F844C3FFFFFF6FF8B5FD04FFCA6820BD8D2068CAFD11FF8CF868FF8CF868 -%FFCA68F8B09BFCF88DC368F8B593B5F868C39AF88DCA68F8B5FFCA442093 -%FD04FFCA442093FD04FFB5F88DFFCA44F820BCC368F88C9AB5F86F9A4420 -%93CAC38C20F893FF93F868C3FFFFFF68F88CFD04FFCA442093BD204493FD -%10FFCA93F8B5FFBC20449AFF8CF8206920208CFF8CF8204444F88CFF6FF8 -%8CFF8CF868FFCA68F8938C8D8CC3CA68F8938C8D8CC38DF88CFFFFB5F844 -%9AFF8CF82068F82093BC2093CAFFFFCA68F88CFF8DF88CFD04FFB5F8938C -%B568B5C469F8BCCA93F8B5FD10FFCA688DA1FFCA8D2093FFBC6820F82068 -%A1FFBC44F8F8204493FFB5F88DFF93204494CA44FD05F88CCA44FD05F88C -%93208CFFFF934444BCFFBC6820F82068CA9A8C93FD04FFB020FCCABC4493 -%FD04FF8CFD05F868CA682093FF8CF868CAFD10FFB5CAFFFFFFBCB59AFFFF -%CA93B593CAFFFFFFC38DB593C3FFFF9AB59AFFCAB593FFFFB58CB58DB58C -%CAFFB58CB58DB58CCACAB59AFFFFFF93CAFFFFFFCA93B593CAFFFFC3FD05 -%FFCAB5CAFFFFB59AFD04FFBC8DB58CB58DBCFFB68DCAFFCA8CBCFDFCFFFD -%FCFFFDFCFFFDFCFFFDFCFFFDFCFFFDECFFFF -%%EndData -%%EndComments -%%BeginProlog -%%BeginResource: procset Adobe_level2_AI5 1.2 0 -%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) -%%Version: 1.2 0 -%%CreationDate: (04/10/93) () -%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) -userdict /Adobe_level2_AI5 26 dict dup begin - put - /packedarray where not - { - userdict begin - /packedarray - { - array astore readonly - } bind def - /setpacking /pop load def - /currentpacking false def - end - 0 - } if - pop - userdict /defaultpacking currentpacking put true setpacking - /initialize - { - Adobe_level2_AI5 begin - } bind def - /terminate - { - currentdict Adobe_level2_AI5 eq - { - end - } if - } bind def - mark - /setcustomcolor where not - { - /findcmykcustomcolor - { - (AI8_CMYK_CustomColor) - 6 packedarray - } bind def - /findrgbcustomcolor - { - (AI8_RGB_CustomColor) - 5 packedarray - } bind def - /setcustomcolor - { - exch - aload pop dup - (AI8_CMYK_CustomColor) eq - { - pop pop - 4 - { - 4 index mul - 4 1 roll - } repeat - 5 -1 roll pop - setcmykcolor - } - { - dup (AI8_RGB_CustomColor) eq - { - pop pop - 3 - { - 1 exch sub - 3 index mul - 1 exch sub - 3 1 roll - } repeat - 4 -1 roll pop - setrgbcolor - } - { - pop - 4 - { - 4 index mul 4 1 roll - } repeat - 5 -1 roll pop - setcmykcolor - } ifelse - } ifelse - } - def - } if - /setAIseparationgray - { - false setoverprint - 0 setgray - /setseparationgray where{ - pop setseparationgray - }{ - /setcolorspace where{ - pop - [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace - 1 exch sub setcolor - }{ - setgray - }ifelse - }ifelse - } def - - /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def - userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put - userdict /level2? - systemdict /languagelevel known dup - { - pop systemdict /languagelevel get 2 ge - } if - put -/level2ScreenFreq -{ - begin - 60 - HalftoneType 1 eq - { - pop Frequency - } if - HalftoneType 2 eq - { - pop GrayFrequency - } if - HalftoneType 5 eq - { - pop Default level2ScreenFreq - } if - end -} bind def -userdict /currentScreenFreq - level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put -level2? not - { - /setcmykcolor where not - { - /setcmykcolor - { - exch .11 mul add exch .59 mul add exch .3 mul add - 1 exch sub setgray - } def - } if - /currentcmykcolor where not - { - /currentcmykcolor - { - 0 0 0 1 currentgray sub - } def - } if - /setoverprint where not - { - /setoverprint /pop load def - } if - /selectfont where not - { - /selectfont - { - exch findfont exch - dup type /arraytype eq - { - makefont - } - { - scalefont - } ifelse - setfont - } bind def - } if - /cshow where not - { - /cshow - { - [ - 0 0 5 -1 roll aload pop - ] cvx bind forall - } bind def - } if - } if - cleartomark - /anyColor? - { - add add add 0 ne - } bind def - /testColor - { - gsave - setcmykcolor currentcmykcolor - grestore - } bind def - /testCMYKColorThrough - { - testColor anyColor? - } bind def - userdict /composite? - 1 0 0 0 testCMYKColorThrough - 0 1 0 0 testCMYKColorThrough - 0 0 1 0 testCMYKColorThrough - 0 0 0 1 testCMYKColorThrough - and and and - put - composite? not - { - userdict begin - gsave - /cyan? 1 0 0 0 testCMYKColorThrough def - /magenta? 0 1 0 0 testCMYKColorThrough def - /yellow? 0 0 1 0 testCMYKColorThrough def - /black? 0 0 0 1 testCMYKColorThrough def - grestore - /isCMYKSep? cyan? magenta? yellow? black? or or or def - /customColor? isCMYKSep? not def - end - } if - end defaultpacking setpacking -%%EndResource -%%BeginResource: procset Adobe_typography_AI5 1.0 1 -%%Title: (Typography Operators) -%%Version: 1.0 1 -%%CreationDate:(6/10/1996) () -%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_typography_AI5 68 dict dup begin -put -/initialize -{ - begin - begin - Adobe_typography_AI5 begin - Adobe_typography_AI5 - { - dup xcheck - { - bind - } if - pop pop - } forall - end - end - end - Adobe_typography_AI5 begin -} def -/terminate -{ - currentdict Adobe_typography_AI5 eq - { - end - } if -} def -/modifyEncoding -{ - /_tempEncode exch ddef - /_pntr 0 ddef - { - counttomark -1 roll - dup type dup /marktype eq - { - pop pop exit - } - { - /nametype eq - { - _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll - put - } - { - /_pntr exch ddef - } ifelse - } ifelse - } loop - _tempEncode -} def -/havefont -{ - systemdict /languagelevel known - { - /Font resourcestatus dup - { exch pop exch pop } - if - } - { - systemdict /FontDirectory get 1 index known - { pop true } - { - systemdict /fileposition known - { - dup length 6 add exch - Ss 6 250 getinterval - cvs pop - Ss exch 0 exch getinterval - status - { pop pop pop pop true } - { false } - ifelse - } - { - pop false - } - ifelse - } - ifelse - } - ifelse -} def -/TE -{ - StandardEncoding 256 array copy modifyEncoding - /_nativeEncoding exch def -} def -/subststring { - exch 2 index exch search - { - exch pop - exch dup () eq - { - pop exch concatstring - } - { - 3 -1 roll - exch concatstring - concatstring - } ifelse - exch pop true - } - { - pop pop false - } ifelse -} def -/concatstring { - 1 index length 1 index length - 1 index add - string - dup 0 5 index putinterval - dup 2 index 4 index putinterval - 4 1 roll pop pop pop -} def -% -/TZ -{ - dup type /arraytype eq - { - /_wv exch def - } - { - /_wv 0 def - } ifelse - /_useNativeEncoding exch def - 2 index havefont - { - 3 index - 255 string - cvs - - dup - (_Symbol_) - eq - { - pop - 2 index - findfont - - } - { - 1 index 0 eq - { - dup length 1 sub - 1 exch - getinterval - - cvn - findfont - } - { - pop 2 index findfont - } ifelse - } ifelse - } - { - dup 1 eq - { - 2 index 64 string cvs - dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring - { - exch pop dup havefont - { - findfont false - } - { - pop true - } ifelse - } - { - pop dup - (-90ms-RKSJ-) (-Ext-RKSJ-) subststring - { - exch pop dup havefont - { - findfont false - } - { - pop true - } ifelse - } - { - pop pop true - } ifelse - } ifelse - { - 1 index 1 eq - { - /Ryumin-Light-Ext-RKSJ-V havefont - {/Ryumin-Light-Ext-RKSJ-V} - {/Courier} - ifelse - } - { - /Ryumin-Light-83pv-RKSJ-H havefont - {/Ryumin-Light-83pv-RKSJ-H} - {/Courier} - ifelse - } ifelse - findfont - [1 0 0.5 1 0 0] makefont - } if - } - { - /Courier findfont - } ifelse - } ifelse - _wv type /arraytype eq - { - _wv makeblendedfont - } if - dup length 10 add dict - begin - mark exch - { - 1 index /FID ne - { - def - } if - cleartomark mark - } forall - pop - /FontScript exch def - /FontDirection exch def - /FontRequest exch def - /FontName exch def - counttomark 0 eq - { - 1 _useNativeEncoding eq - { - /Encoding _nativeEncoding def - } if - cleartomark - } - { - /Encoding load 256 array copy - modifyEncoding /Encoding exch def - } ifelse - FontName currentdict - end - definefont pop -} def -/tr -{ - _ax _ay 3 2 roll -} def -/trj -{ - _cx _cy _sp _ax _ay 6 5 roll -} def -/a0 -{ - /Tx - { - dup - currentpoint 3 2 roll - tr _psf - newpath moveto - tr _ctm _pss - } ddef - /Tj - { - dup - currentpoint 3 2 roll - trj _pjsf - newpath moveto - trj _ctm _pjss - } ddef -} def -/a1 -{ -W B -} def -/e0 -{ - /Tx - { - tr _psf - } ddef - /Tj - { - trj _pjsf - } ddef -} def -/e1 -{ -W F -} def -/i0 -{ - /Tx - { - tr sp - } ddef - /Tj - { - trj jsp - } ddef -} def -/i1 -{ - W N -} def -/o0 -{ - /Tx - { - tr sw rmoveto - } ddef - /Tj - { - trj swj rmoveto - } ddef -} def -/r0 -{ - /Tx - { - tr _ctm _pss - } ddef - /Tj - { - trj _ctm _pjss - } ddef -} def -/r1 -{ -W S -} def -/To -{ - pop _ctm currentmatrix pop -} def -/TO -{ - iTe _ctm setmatrix newpath -} def -/Tp -{ - pop _tm astore pop _ctm setmatrix - _tDict begin - /W - { - } def - /h - { - } def -} def -/TP -{ - end - iTm 0 0 moveto -} def -/Tr -{ - _render 3 le - { - currentpoint newpath moveto - } if - dup 8 eq - { - pop 0 - } - { - dup 9 eq - { - pop 1 - } if - } ifelse - dup /_render exch ddef - _renderStart exch get load exec -} def -/iTm -{ - _ctm setmatrix _tm concat - _shift aload pop _lineorientation 1 eq { exch } if translate - _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale -} def -/Tm -{ - _tm astore pop iTm 0 0 moveto -} def -/Td -{ - _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto -} def -/iTe -{ - _render -1 eq - { - } - { - _renderEnd _render get dup null ne - { - load exec - } - { - pop - } ifelse - } ifelse - /_render -1 ddef -} def -/Ta -{ - pop -} def -/Tf -{ - 1 index type /nametype eq - { - dup 0.75 mul 1 index 0.25 mul neg - } if - /_fontDescent exch ddef - /_fontAscent exch ddef - /_fontSize exch ddef - /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef - /_fontHeight _fontSize ddef - findfont _fontSize scalefont setfont -} def -/Tl -{ - pop neg 0 exch - _leading astore pop -} def -/Tt -{ - pop -} def -/TW -{ - 3 npop -} def -/Tw -{ - /_cx exch ddef -} def -/TC -{ - 3 npop -} def -/Tc -{ - /_ax exch ddef -} def -/Ts -{ - 0 exch - _shift astore pop - currentpoint - iTm - moveto -} def -/Ti -{ - 3 npop -} def -/Tz -{ - count 1 eq { 100 } if - 100 div exch 100 div exch - _scale astore pop - iTm -} def -/TA -{ - pop -} def -/Tq -{ - pop -} def -/Tg -{ - pop -} def -/TG -{ - pop -} def -/Tv -{ - /_lineorientation exch ddef -} def -/TV -{ - /_charorientation exch ddef -} def -/Ty -{ - dup /_yokoorientation exch ddef 1 sub neg Tv -} def -/TY -{ - pop -} def -/T~ -{ - Tx -} def -/Th -{ - pop pop pop pop pop -} def -/TX -{ - pop -} def -/Tk -{ - _fontSize mul 1000 div - _lineorientation 0 eq { neg 0 } { 0 exch } ifelse - rmoveto - pop -} def -/TK -{ - 2 npop -} def -/T* -{ - _leading aload pop - _lineorientation 0 ne { exch } if - Td -} def -/T*- -{ - _leading aload pop - _lineorientation 0 ne { exch } if - exch neg exch neg - Td -} def -/T- -{ - _ax neg 0 rmoveto - _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse -} def -/T+ -{ -} def -/TR -{ - _ctm currentmatrix pop - _tm astore pop - iTm 0 0 moveto -} def -/TS -{ - currentfont 3 1 roll - /_Symbol_ findfont _fontSize scalefont setfont - - 0 eq - { - Tx - } - { - Tj - } ifelse - setfont -} def -/Xb -{ - pop pop -} def -/Tb /Xb load def -/Xe -{ - pop pop pop pop -} def -/Te /Xe load def -/XB -{ -} def -/TB /XB load def -currentdict readonly pop -end -setpacking -% -/X^ -{ - currentfont 5 1 roll - dup havefont - { - findfont _fontSize scalefont setfont - } - { - pop - exch - } ifelse - 2 index 0 eq - { - Tx - } - { - Tj - } ifelse - pop pop - setfont -} def -/T^ /X^ load def -%%EndResource -%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 -userdict /Adobe_ColorImage_AI6 known not -{ - userdict /Adobe_ColorImage_AI6 53 dict put -} if -userdict /Adobe_ColorImage_AI6 get begin -/initialize { - Adobe_ColorImage_AI6 begin - Adobe_ColorImage_AI6 { - dup type /arraytype eq { - dup xcheck { - bind - } if - } if - pop pop - } forall -} def -/terminate { end } def -currentdict /Adobe_ColorImage_AI6_Vars known not { - /Adobe_ColorImage_AI6_Vars 41 dict def -} if -Adobe_ColorImage_AI6_Vars begin - /plateindex -1 def - /_newproc null def - /_proc1 null def - /_proc2 null def - /sourcearray 4 array def - /_ptispace null def - /_ptiname null def - /_pti0 0 def - /_pti1 0 def - /_ptiproc null def - /_ptiscale 0 def - /_pticomps 0 def - /_ptibuf 0 string def - /_gtigray 0 def - /_cticmyk null def - /_rtirgb null def - /XIEnable true def - /XIType 0 def - /XIEncoding 0 def - /XICompression 0 def - /XIChannelCount 0 def - /XIBitsPerPixel 0 def - /XIImageHeight 0 def - /XIImageWidth 0 def - /XIImageMatrix null def - /XIRowBytes 0 def - /XIFile null def - /XIBuffer1 null def - /XIBuffer2 null def - /XIBuffer3 null def - /XIDataProc null def - /XIColorSpace /DeviceGray def - /XIColorValues 0 def - /XIPlateList false def -end -/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def -/ci6image systemdict /image get def -/ci6curtransfer systemdict /currenttransfer get def -/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def -/ci6foureq { - 4 index ne { - pop pop pop false - }{ - 4 index ne { - pop pop false - }{ - 4 index ne { - pop false - }{ - 4 index eq - } ifelse - } ifelse - } ifelse -} def -/ci6testplate { - Adobe_ColorImage_AI6_Vars begin - /plateindex -1 def - /setcmykcolor where { - pop - gsave - 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub - grestore - 1 0 0 0 ci6foureq { - /plateindex 0 def - }{ - 0 1 0 0 ci6foureq { - /plateindex 1 def - }{ - 0 0 1 0 ci6foureq { - /plateindex 2 def - }{ - 0 0 0 1 ci6foureq { - /plateindex 3 def - }{ - 0 0 0 0 ci6foureq { - /plateindex 5 def - } if - } ifelse - } ifelse - } ifelse - } ifelse - pop pop pop pop - } if - plateindex - end -} def -/ci6concatprocs { - /packedarray where { - pop dup type /packedarraytype eq 2 index type - /packedarraytype eq or - }{ - false - } ifelse - { - /_proc2 exch cvlit def - /_proc1 exch cvlit def - _proc1 aload pop - _proc2 aload pop - _proc1 length - _proc2 length add - packedarray cvx - }{ - /_proc2 exch cvlit def - /_proc1 exch cvlit def - /_newproc _proc1 length _proc2 length add array def - _newproc 0 _proc1 putinterval - _newproc _proc1 length _proc2 putinterval - _newproc cvx - } ifelse -} def -/ci6istint { - type /arraytype eq -} def -/ci6isspot { - dup type /arraytype eq { - dup length 1 sub get /Separation eq - }{ - pop false - } ifelse -} def -/ci6spotname { - dup ci6isspot {dup length 2 sub get}{pop ()} ifelse -} def -/ci6altspace { - aload pop pop pop ci6colormake -} def -/ci6numcomps { - dup /DeviceGray eq { - pop 1 - }{ - dup /DeviceRGB eq { - pop 3 - }{ - /DeviceCMYK eq { - 4 - }{ - 1 - } ifelse - } ifelse - } ifelse -} def -/ci6marksplate { - dup /DeviceGray eq { - pop plateindex 3 eq - }{ - dup /DeviceRGB eq { - pop plateindex 5 ne - }{ - dup /DeviceCMYK eq { - pop plateindex 5 ne - }{ - dup ci6isspot { - /findcmykcustomcolor where { - pop - dup length 2 sub get - 0.1 0.1 0.1 0.1 5 -1 roll - findcmykcustomcolor 1 setcustomcolor - systemdict /currentgray get exec - 1 ne - }{ - pop plateindex 5 ne - } ifelse - }{ - pop plateindex 5 ne - } ifelse - } ifelse - } ifelse - } ifelse -} def -/ci6colormake { - dup ci6numcomps - exch 1 index 2 add 1 roll - dup 1 eq {pop}{array astore} ifelse - exch -} def -/ci6colorexpand { - dup ci6spotname exch - dup ci6istint { - ci6altspace - exch 4 1 roll - }{ - 1 3 1 roll - } ifelse -} def -/ci6colortint { - dup /DeviceGray eq { - 3 1 roll 1 exch sub mul 1 exch sub exch - }{ - dup /DeviceRGB eq { - 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch - }{ - dup /DeviceCMYK eq { - 3 1 roll {1 index mul exch} forall pop 4 array astore exch - }{ - 3 1 roll mul exch - } ifelse - } ifelse - } ifelse -} def -/ci6colortocmyk { - dup /DeviceGray eq { - pop 1 exch sub 0 0 0 4 -1 roll 4 array astore - }{ - dup /DeviceRGB eq { - pop aload pop _rgbtocmyk 4 array astore - }{ - dup /DeviceCMYK eq { - pop - }{ - ci6altspace ci6colortint ci6colortocmyk - } ifelse - } ifelse - } ifelse -} def -/ci6makeimagedict { - 7 dict begin - /ImageType 1 def - /Decode exch def - /DataSource exch def - /ImageMatrix exch def - /BitsPerComponent exch def - /Height exch def - /Width exch def - currentdict end -} def -/ci6stringinvert { - 0 1 2 index length 1 sub { - dup 2 index exch get 255 exch sub 2 index 3 1 roll put - } for -} def -/ci6stringknockout { - 0 1 2 index length 1 sub { - 255 2 index 3 1 roll put - } for -} def -/ci6stringapply { - 0 1 4 index length 1 sub { - dup - 4 index exch get - 3 index 3 1 roll - 3 index exec - } for - pop exch pop -} def -/ci6walkrgbstring { - 0 3 index - dup length 1 sub 0 3 3 -1 roll { - 3 getinterval {} forall - 5 index exec - 3 index - } for - - 5 {pop} repeat -} def -/ci6walkcmykstring -{ - 0 3 index - dup length 1 sub 0 4 3 -1 roll { - 4 getinterval {} forall - - 6 index exec - - 3 index - - } for - - 5 { pop } repeat - -} def -/ci6putrgbtograystr -{ - .11 mul exch - - .59 mul add exch - - .3 mul add - - cvi 3 copy put - - pop 1 add -} def -/ci6putcmyktograystr -{ - exch .11 mul add - - exch .59 mul add - - exch .3 mul add - - dup 255 gt { pop 255 } if - - 255 exch sub cvi 3 copy put - - pop 1 add -} def -/ci6rgbtograyproc { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 get exec - XIBuffer3 - dup 3 1 roll - - /ci6putrgbtograystr load exch - ci6walkrgbstring - end -} def -/ci6cmyktograyproc { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 get exec - XIBuffer3 - dup 3 1 roll - - /ci6putcmyktograystr load exch - ci6walkcmykstring - end -} def -/ci6separatecmykproc { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 get exec - - XIBuffer3 - - 0 2 index - - plateindex 4 2 index length 1 sub { - get 255 exch sub - - 3 copy put pop 1 add - - 2 index - } for - pop pop exch pop - end -} def - -/ci6compositeimage { - dup 1 eq { - pop pop image - }{ - /ci6colorimage load null ne { - ci6colorimage - }{ - 3 1 roll pop - sourcearray 0 3 -1 roll put - 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load - image - } ifelse - } ifelse -} def -/ci6knockoutimage { - gsave - 0 ci6curtransfer exec 1 ci6curtransfer exec - eq { - 0 ci6curtransfer exec 0.5 lt - }{ - 0 ci6curtransfer exec 1 ci6curtransfer exec gt - } ifelse - {{pop 0}}{{pop 1}} ifelse - systemdict /settransfer get exec - ci6compositeimage - grestore -} def -/ci6drawimage { - ci6testplate -1 eq { - pop ci6compositeimage - }{ - dup type /arraytype eq { - dup length plateindex gt {plateindex get}{pop false} ifelse - }{ - { - true - }{ - dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse - } ifelse - } ifelse - { - dup 1 eq { - pop pop ci6image - }{ - dup 3 eq { - ci6compositeimage - }{ - pop pop - sourcearray 0 3 -1 roll put - /ci6separatecmykproc load - ci6image - } ifelse - } ifelse - }{ - ci6curoverprint { - 7 {pop} repeat - }{ - ci6knockoutimage - } ifelse - } ifelse - } ifelse -} def -/ci6proctintimage { - /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store - /_pticomps _ptispace ci6numcomps store - /_ptiscale _pti1 _pti0 sub store - level2? { - _ptiname length 0 gt version cvr 2012 ge and { - [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace - [_pti0 _pti1] ci6makeimagedict ci6image - }{ - [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace - [0 255] ci6makeimagedict ci6image - } ifelse - }{ - _pticomps 1 eq { - { - dup - { - 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put - } ci6stringapply - } ci6concatprocs ci6image - }{ - { - dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse - _ptibuf { - exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc - _pticomps 2 add -2 roll - _pticomps 1 sub -1 0 { - 1 index add 2 index exch - 5 -1 roll - 255 mul cvi put - } for - pop pop - } ci6stringapply - } ci6concatprocs false _pticomps - /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse - } ifelse - } ifelse -} def -/ci6graytintimage { - /_gtigray 5 -1 roll store - {1 _gtigray sub mul 1 exch sub} 4 1 roll - /DeviceGray ci6proctintimage -} def -/ci6cmyktintimage { - /_cticmyk 5 -1 roll store - {_cticmyk {1 index mul exch} forall pop} 4 1 roll - /DeviceCMYK ci6proctintimage -} def -/ci6rgbtintimage { - /_rtirgb 5 -1 roll store - {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll - /DeviceRGB ci6proctintimage -} def -/ci6tintimage { - ci6testplate -1 eq { - ci6colorexpand - 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll - dup /DeviceGray eq { - pop ci6graytintimage - }{ - dup /DeviceRGB eq { - pop ci6rgbtintimage - }{ - pop ci6cmyktintimage - } ifelse - } ifelse - }{ - dup ci6marksplate { - plateindex 5 lt { - ci6colortocmyk plateindex get - dup 0 eq ci6curoverprint and { - 7 {pop} repeat - }{ - 1 exch sub - exch {1 0}{0 1} ifelse () ci6graytintimage - } ifelse - }{ - pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage - } ifelse - }{ - ci6curoverprint { - 8 {pop} repeat - }{ - pop pop pop - {pop 1} 0 1 () /DeviceGray ci6proctintimage - } ifelse - } ifelse - } ifelse -} def -/XINullImage { -} def -/XIImageMask { - XIImageWidth XIImageHeight false - [XIImageWidth 0 0 XIImageHeight neg 0 0] - /XIDataProc load - imagemask -} def -/XIImageTint { - XIImageWidth XIImageHeight XIBitsPerPixel - [XIImageWidth 0 0 XIImageHeight neg 0 0] - /XIDataProc load - XIType 3 eq XIColorValues XIColorSpace ci6tintimage -} def -/XIImage { - XIImageWidth XIImageHeight XIBitsPerPixel - [XIImageWidth 0 0 XIImageHeight neg 0 0] - /XIDataProc load - false XIChannelCount XIPlateList ci6drawimage -} def -/XG { - pop pop -} def -/XF { - 13 {pop} repeat -} def -/Xh { - Adobe_ColorImage_AI6_Vars begin - gsave - /XIType exch def - /XIImageHeight exch def - /XIImageWidth exch def - /XIImageMatrix exch def - 0 0 moveto - XIImageMatrix concat - XIImageWidth XIImageHeight scale - - /_lp /null ddef - _fc - /_lp /imagemask ddef - end -} def -/XH { - Adobe_ColorImage_AI6_Vars begin - grestore - end -} def -/XIEnable { - Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put -} def -/XC { - Adobe_ColorImage_AI6_Vars begin - ci6colormake - /XIColorSpace exch def - /XIColorValues exch def - end -} def -/XIPlates { - Adobe_ColorImage_AI6_Vars begin - /XIPlateList exch def - end -} def -/XI -{ - Adobe_ColorImage_AI6_Vars begin - gsave - /XIType exch def - cvi dup - 256 idiv /XICompression exch store - 256 mod /XIEncoding exch store - pop pop - /XIChannelCount exch def - /XIBitsPerPixel exch def - /XIImageHeight exch def - /XIImageWidth exch def - pop pop pop pop - /XIImageMatrix exch def - XIBitsPerPixel 1 eq { - XIImageWidth 8 div ceiling cvi - }{ - XIImageWidth XIChannelCount mul - } ifelse - /XIRowBytes exch def - XIEnable { - /XIBuffer3 XIImageWidth string def - XICompression 0 eq { - /XIBuffer1 XIRowBytes string def - XIEncoding 0 eq { - {currentfile XIBuffer1 readhexstring pop} - }{ - {currentfile XIBuffer1 readstring pop} - } ifelse - }{ - /XIBuffer1 256 string def - /XIBuffer2 XIRowBytes string def - {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} - /ASCII85Decode filter /DCTDecode filter - /XIFile exch def - {XIFile XIBuffer2 readstring pop} - } ifelse - /XIDataProc exch def - - XIType 1 ne { - 0 setgray - } if - XIType 1 eq { - XIImageMask - }{ - XIType 2 eq XIType 3 eq or { - XIImageTint - }{ - XIImage - } ifelse - } ifelse - }{ - XINullImage - } ifelse - /XIPlateList false def - grestore - end -} def -end -%%EndProcSet -%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 -%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) -%%Version: 1.3 0 -%%CreationDate: (3/7/1994) () -%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin -put -/_?cmyk false def -/_eo false def -/_lp /none def -/_pf -{ -} def -/_ps -{ -} def -/_psf -{ -} def -/_pss -{ -} def -/_pjsf -{ -} def -/_pjss -{ -} def -/_pola 0 def -/_doClip 0 def -/cf currentflat def -/_lineorientation 0 def -/_charorientation 0 def -/_yokoorientation 0 def -/_tm matrix def -/_renderStart -[ -/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 -] def -/_renderEnd -[ -null null null null /i1 /i1 /i1 /i1 -] def -/_render -1 def -/_shift [0 0] def -/_ax 0 def -/_ay 0 def -/_cx 0 def -/_cy 0 def -/_leading -[ -0 0 -] def -/_ctm matrix def -/_mtx matrix def -/_sp 16#020 def -/_hyphen (-) def -/_fontSize 0 def -/_fontAscent 0 def -/_fontDescent 0 def -/_fontHeight 0 def -/_fontRotateAdjust 0 def -/Ss 256 string def -Ss 0 (fonts/) putinterval -/_cnt 0 def -/_scale [1 1] def -/_nativeEncoding 0 def -/_useNativeEncoding 0 def -/_tempEncode 0 def -/_pntr 0 def -/_tDict 2 dict def -/_hfname 100 string def -/_hffound false def -/Tx -{ -} def -/Tj -{ -} def -/CRender -{ -} def -/_AI3_savepage -{ -} def -/_gf null def -/_cf 4 array def -/_rgbf 3 array def -/_if null def -/_of false def -/_fc -{ -} def -/_gs null def -/_cs 4 array def -/_rgbs 3 array def -/_is null def -/_os false def -/_sc -{ -} def -/_pd 1 dict def -/_ed 15 dict def -/_pm matrix def -/_fm null def -/_fd null def -/_fdd null def -/_sm null def -/_sd null def -/_sdd null def -/_i null def -/_lobyte 0 def -/_hibyte 0 def -/_cproc null def -/_cscript 0 def -/_hvax 0 def -/_hvay 0 def -/_hvwb 0 def -/_hvcx 0 def -/_hvcy 0 def -/_bitfont null def -/_bitlobyte 0 def -/_bithibyte 0 def -/_bitkey null def -/_bitdata null def -/_bitindex 0 def -/discardSave null def -/buffer 256 string def -/beginString null def -/endString null def -/endStringLength null def -/layerCnt 1 def -/layerCount 1 def -/perCent (%) 0 get def -/perCentSeen? false def -/newBuff null def -/newBuffButFirst null def -/newBuffLast null def -/clipForward? false def -end -userdict /Adobe_Illustrator_AI5 known not { - userdict /Adobe_Illustrator_AI5 100 dict put -} if -userdict /Adobe_Illustrator_AI5 get begin -/initialize -{ - Adobe_Illustrator_AI5 dup begin - Adobe_Illustrator_AI5_vars begin - /_aicmykps where {pop /_?cmyk _aicmykps def}if - discardDict - { - bind pop pop - } forall - dup /nc get begin - { - dup xcheck 1 index type /operatortype ne and - { - bind - } if - pop pop - } forall - end - newpath -} def -/terminate -{ - end - end -} def -/_ -null def -/ddef -{ - Adobe_Illustrator_AI5_vars 3 1 roll put -} def -/xput -{ - dup load dup length exch maxlength eq - { - dup dup load dup - length 2 mul dict copy def - } if - load begin - def - end -} def -/npop -{ - { - pop - } repeat -} def -/hswj -{ - dup stringwidth 3 2 roll - { - _hvwb eq { exch _hvcx add exch _hvcy add } if - exch _hvax add exch _hvay add - } cforall -} def -/vswj -{ - 0 0 3 -1 roll - { - dup 255 le - _charorientation 1 eq - and - { - dup cstring stringwidth 5 2 roll - _hvwb eq { exch _hvcy sub exch _hvcx sub } if - exch _hvay sub exch _hvax sub - 4 -1 roll sub exch - 3 -1 roll sub exch - } - { - _hvwb eq { exch _hvcy sub exch _hvcx sub } if - exch _hvay sub exch _hvax sub - _fontHeight sub - } ifelse - } cforall -} def -/swj -{ - 6 1 roll - /_hvay exch ddef - /_hvax exch ddef - /_hvwb exch ddef - /_hvcy exch ddef - /_hvcx exch ddef - _lineorientation 0 eq { hswj } { vswj } ifelse -} def -/sw -{ - 0 0 0 6 3 roll swj -} def -/vjss -{ - 4 1 roll - { - dup cstring - dup length 1 eq - _charorientation 1 eq - and - { - -90 rotate - currentpoint - _fontRotateAdjust add - moveto - gsave - false charpath currentpoint - 5 index setmatrix stroke - grestore - _fontRotateAdjust sub - moveto - _sp eq - { - 5 index 5 index rmoveto - } if - 2 copy rmoveto - 90 rotate - } - { - currentpoint - _fontHeight sub - 5 index sub - 3 index _sp eq - { - 9 index sub - } if - - currentpoint - exch 4 index stringwidth pop 2 div sub - exch _fontAscent sub - moveto - - gsave - 2 index false charpath - 6 index setmatrix stroke - grestore - - moveto pop pop - } ifelse - } cforall - 6 npop -} def -/hjss -{ - 4 1 roll - { - dup cstring - gsave - false charpath currentpoint - 5 index setmatrix stroke - grestore - moveto - _sp eq - { - 5 index 5 index rmoveto - } if - 2 copy rmoveto - } cforall - 6 npop -} def -/jss -{ - _lineorientation 0 eq { hjss } { vjss } ifelse -} def -/ss -{ - 0 0 0 7 3 roll jss -} def -/vjsp -{ - 4 1 roll - { - dup cstring - dup length 1 eq - _charorientation 1 eq - and - { - -90 rotate - currentpoint - _fontRotateAdjust add - moveto - false charpath - currentpoint - _fontRotateAdjust sub - moveto - _sp eq - { - 5 index 5 index rmoveto - } if - 2 copy rmoveto - 90 rotate - } - { - currentpoint - _fontHeight sub - 5 index sub - 3 index _sp eq - { - 9 index sub - } if - - currentpoint - exch 4 index stringwidth pop 2 div sub - exch _fontAscent sub - moveto - - 2 index false charpath - - moveto pop pop - } ifelse - } cforall - 6 npop -} def -/hjsp -{ - 4 1 roll - { - dup cstring - false charpath - _sp eq - { - 5 index 5 index rmoveto - } if - 2 copy rmoveto - } cforall - 6 npop -} def -/jsp -{ - matrix currentmatrix - _lineorientation 0 eq {hjsp} {vjsp} ifelse -} def -/sp -{ - matrix currentmatrix - 0 0 0 7 3 roll - _lineorientation 0 eq {hjsp} {vjsp} ifelse -} def -/pl -{ - transform - 0.25 sub round 0.25 add exch - 0.25 sub round 0.25 add exch - itransform -} def -/setstrokeadjust where -{ - pop true setstrokeadjust - /c - { - curveto - } def - /C - /c load def - /v - { - currentpoint 6 2 roll curveto - } def - /V - /v load def - /y - { - 2 copy curveto - } def - /Y - /y load def - /l - { - lineto - } def - /L - /l load def - /m - { - moveto - } def -} -{ - /c - { - pl curveto - } def - /C - /c load def - /v - { - currentpoint 6 2 roll pl curveto - } def - /V - /v load def - /y - { - pl 2 copy curveto - } def - /Y - /y load def - /l - { - pl lineto - } def - /L - /l load def - /m - { - pl moveto - } def -} ifelse -/d -{ - setdash -} def -/cf -{ -} def -/i -{ - dup 0 eq - { - pop cf - } if - setflat -} def -/j -{ - setlinejoin -} def -/J -{ - setlinecap -} def -/M -{ - setmiterlimit -} def -/w -{ - setlinewidth -} def -/XR -{ - 0 ne - /_eo exch ddef -} def -/H -{ -} def -/h -{ - closepath -} def -/N -{ - _pola 0 eq - { - _doClip 1 eq - { - _eo {eoclip} {clip} ifelse /_doClip 0 ddef - } if - newpath - } - { - /CRender - { - N - } ddef - } ifelse -} def -/n -{ - N -} def -/F -{ - _pola 0 eq - { - _doClip 1 eq - { - gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc - /_doClip 0 ddef - } - { - _pf - } ifelse - } - { - /CRender - { - F - } ddef - } ifelse -} def -/f -{ - closepath - F -} def -/S -{ - _pola 0 eq - { - _doClip 1 eq - { - gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc - /_doClip 0 ddef - } - { - _ps - } ifelse - } - { - /CRender - { - S - } ddef - } ifelse -} def -/s -{ - closepath - S -} def -/B -{ - _pola 0 eq - { - _doClip 1 eq - gsave F grestore - { - gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc - /_doClip 0 ddef - } - { - S - } ifelse - } - { - /CRender - { - B - } ddef - } ifelse -} def -/b -{ - closepath - B -} def -/W -{ - /_doClip 1 ddef -} def -/* -{ - count 0 ne - { - dup type /stringtype eq - { - pop - } if - } if - newpath -} def -/u -{ -} def -/U -{ -} def -/q -{ - _pola 0 eq - { - gsave - } if -} def -/Q -{ - _pola 0 eq - { - grestore - } if -} def -/*u -{ - _pola 1 add /_pola exch ddef -} def -/*U -{ - _pola 1 sub /_pola exch ddef - _pola 0 eq - { - CRender - } if -} def -/D -{ - pop -} def -/*w -{ -} def -/*W -{ -} def -/` -{ - /_i save ddef - clipForward? - { - nulldevice - } if - 6 1 roll 4 npop - concat pop - userdict begin - /showpage - { - } def - 0 setgray - 0 setlinecap - 1 setlinewidth - 0 setlinejoin - 10 setmiterlimit - [] 0 setdash - /setstrokeadjust where {pop false setstrokeadjust} if - newpath - 0 setgray - false setoverprint -} def -/~ -{ - end - _i restore -} def -/_rgbtocmyk -{ - 3 - { - 1 exch sub 3 1 roll - } repeat - 3 copy 1 4 1 roll - 3 - { - 3 index 2 copy gt - { - exch - } if - pop 4 1 roll - } repeat - pop pop pop - 4 1 roll - 3 - { - 3 index sub - 3 1 roll - } repeat - 4 -1 roll -} def -/setrgbfill -{ - _rgbf astore pop - /_fc - { - _lp /fill ne - { - _of setoverprint - _rgbf aload pop setrgbcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/setrgbstroke -{ - _rgbs astore pop - /_sc - { - _lp /stroke ne - { - _os setoverprint - _rgbs aload pop setrgbcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/O -{ - 0 ne - /_of exch ddef - /_lp /none ddef -} def -/R -{ - 0 ne - /_os exch ddef - /_lp /none ddef -} def -/g -{ - /_gf exch ddef - /_fc - { - _lp /fill ne - { - _of setoverprint - _gf setgray - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/G -{ - /_gs exch ddef - /_sc - { - _lp /stroke ne - { - _os setoverprint - _gs setgray - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/k -{ - _cf astore pop - /_fc - { - _lp /fill ne - { - _of setoverprint - _cf aload pop setcmykcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/K -{ - _cs astore pop - /_sc - { - _lp /stroke ne - { - _os setoverprint - _cs aload pop setcmykcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/Xa -{ - _?cmyk { - 3 npop k - }{ - setrgbfill 4 npop - } ifelse -} def -/XA -{ - _?cmyk { - 3 npop K - }{ - setrgbstroke 4 npop - } ifelse -} def -/Xs -{ - /_gf exch ddef - 5 npop - /_fc - { - _lp /fill ne - { - _of setoverprint - _gf setAIseparationgray - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/XS -{ - /_gs exch ddef - 5 npop - /_sc - { - _lp /stroke ne - { - _os setoverprint - _gs setAIseparationgray - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/Xx -{ - exch - /_gf exch ddef - 0 eq { - findcmykcustomcolor - }{ - _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse - { - 4 1 roll 3 npop - findcmykcustomcolor - }{ - 8 -4 roll 4 npop - findrgbcustomcolor - } ifelse - } ifelse - /_if exch ddef - /_fc - { - _lp /fill ne - { - _of setoverprint - _if _gf 1 exch sub setcustomcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/XX -{ - exch - /_gs exch ddef - 0 eq { - findcmykcustomcolor - }{ - _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse - { - 4 1 roll 3 npop - findcmykcustomcolor - }{ - 8 -4 roll 4 npop - findrgbcustomcolor - } ifelse - } ifelse - /_is exch ddef - /_sc - { - _lp /stroke ne - { - _os setoverprint - _is _gs 1 exch sub setcustomcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/x -{ - /_gf exch ddef - findcmykcustomcolor - /_if exch ddef - /_fc - { - _lp /fill ne - { - _of setoverprint - _if _gf 1 exch sub setcustomcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - hvashow - } ddef - /_pjsf - { - _fc - hvawidthshow - } ddef - /_lp /none ddef -} def -/X -{ - /_gs exch ddef - findcmykcustomcolor - /_is exch ddef - /_sc - { - _lp /stroke ne - { - _os setoverprint - _is _gs 1 exch sub setcustomcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/XK -{ - 3 -1 roll pop - 0 eq - { - 1 exch sub - 3 {dup 3 1 roll mul 5 1 roll} repeat - mul 4 1 roll - K - } - { - 1 exch sub 4 1 roll - 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat - 4 -1 roll pop - XA - } ifelse -} def -/Xk -{ - 3 -1 roll pop - 0 eq - { - 1 exch sub - 3 {dup 3 1 roll mul 5 1 roll} repeat - mul 4 1 roll - k - } - { - 1 exch sub 4 1 roll - 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat - 4 -1 roll pop - Xa - } ifelse -} def -/A -{ - pop -} def -/annotatepage -{ -userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse -} def -/XT { - pop pop -} def -/Xt { - pop -} def -/discard -{ - save /discardSave exch store - discardDict begin - /endString exch store - gt38? - { - 2 add - } if - load - stopped - pop - end - discardSave restore -} bind def -userdict /discardDict 7 dict dup begin -put -/pre38Initialize -{ - /endStringLength endString length store - /newBuff buffer 0 endStringLength getinterval store - /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store - /newBuffLast newBuff endStringLength 1 sub 1 getinterval store -} def -/shiftBuffer -{ - newBuff 0 newBuffButFirst putinterval - newBuffLast 0 - currentfile read not - { - stop - } if - put -} def -0 -{ - pre38Initialize - mark - currentfile newBuff readstring exch pop - { - { - newBuff endString eq - { - cleartomark stop - } if - shiftBuffer - } loop - } - { - stop - } ifelse -} def -1 -{ - pre38Initialize - /beginString exch store - mark - currentfile newBuff readstring exch pop - { - { - newBuff beginString eq - { - /layerCount dup load 1 add store - } - { - newBuff endString eq - { - /layerCount dup load 1 sub store - layerCount 0 eq - { - cleartomark stop - } if - } if - } ifelse - shiftBuffer - } loop - } if -} def -2 -{ - mark - { - currentfile buffer {readline} stopped { - % assume error was due to overfilling the buffer - }{ - not - { - stop - } if - endString eq { - cleartomark stop - } if - }ifelse - } loop -} def -3 -{ - /beginString exch store - /layerCnt 1 store - mark - { - currentfile buffer {readline} stopped { - % assume error was due to overfilling the buffer - }{ - not - { - stop - } if - dup beginString eq - { - pop /layerCnt dup load 1 add store - } - { - endString eq - { - layerCnt 1 eq - { - cleartomark stop - } - { - /layerCnt dup load 1 sub store - } ifelse - } if - } ifelse - }ifelse - } loop -} def -end -userdict /clipRenderOff 15 dict dup begin -put -{ - /n /N /s /S /f /F /b /B -} -{ - { - _doClip 1 eq - { - /_doClip 0 ddef _eo {eoclip} {clip} ifelse - } if - newpath - } def -} forall -/Tr /pop load def -/Bb {} def -/BB /pop load def -/Bg {12 npop} def -/Bm {6 npop} def -/Bc /Bm load def -/Bh {4 npop} def -end -/Lb -{ - 6 npop - 7 2 roll - 5 npop - 0 eq - { - 0 eq - { - (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard - } - { - - /clipForward? true def - - /Tx /pop load def - /Tj /pop load def - - currentdict end clipRenderOff begin begin - } ifelse - } - { - 0 eq - { - save /discardSave exch store - } if - } ifelse -} bind def -/LB -{ - discardSave dup null ne - { - restore - } - { - pop - clipForward? - { - currentdict - end - end - begin - - /clipForward? false ddef - } if - } ifelse -} bind def -/Pb -{ - pop pop - 0 (%AI5_EndPalette) discard -} bind def -/Np -{ - 0 (%AI5_End_NonPrinting--) discard -} bind def -/Ln /pop load def -/Ap -/pop load def -/Ar -{ - 72 exch div - 0 dtransform dup mul exch dup mul add sqrt - dup 1 lt - { - pop 1 - } if - setflat -} def -/Mb -{ - q -} def -/Md -{ -} def -/MB -{ - Q -} def -/nc 4 dict def -nc begin -/setgray -{ - pop -} bind def -/setcmykcolor -{ - 4 npop -} bind def -/setrgbcolor -{ - 3 npop -} bind def -/setcustomcolor -{ - 2 npop -} bind def -currentdict readonly pop -end -/XP -{ - 4 npop -} bind def -/XD -{ - pop -} bind def -end -setpacking -%%EndResource -%%BeginResource: procset Adobe_cshow 2.0 8 -%%Title: (Writing System Operators) -%%Version: 2.0 8 -%%CreationDate: (1/23/89) () -%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_cshow 14 dict dup begin put -/initialize -{ - Adobe_cshow begin - Adobe_cshow - { - dup xcheck - { - bind - } if - pop pop - } forall - end - Adobe_cshow begin -} def -/terminate -{ -currentdict Adobe_cshow eq - { - end - } if -} def -/cforall -{ - /_lobyte 0 ddef - /_hibyte 0 ddef - /_cproc exch ddef - /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef - { - /_lobyte exch ddef - _hibyte 0 eq - _cscript 1 eq - _lobyte 129 ge _lobyte 159 le and - _lobyte 224 ge _lobyte 252 le and or and - _cscript 2 eq - _lobyte 161 ge _lobyte 254 le and and - _cscript 3 eq - _lobyte 161 ge _lobyte 254 le and and - _cscript 25 eq - _lobyte 161 ge _lobyte 254 le and and - _cscript -1 eq - or or or or and - { - /_hibyte _lobyte ddef - } - { - _hibyte 256 mul _lobyte add - _cproc - /_hibyte 0 ddef - } ifelse - } forall -} def -/cstring -{ - dup 256 lt - { - (s) dup 0 4 3 roll put - } - { - dup 256 idiv exch 256 mod - (hl) dup dup 0 6 5 roll put 1 4 3 roll put - } ifelse -} def -/clength -{ - 0 exch - { 256 lt { 1 } { 2 } ifelse add } cforall -} def -/hawidthshow -{ - { - dup cstring - show - _hvax _hvay rmoveto - _hvwb eq { _hvcx _hvcy rmoveto } if - } cforall -} def -/vawidthshow -{ - { - dup 255 le - _charorientation 1 eq - and - { - -90 rotate - 0 _fontRotateAdjust rmoveto - cstring - _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow - 0 _fontRotateAdjust neg rmoveto - 90 rotate - } - { - currentpoint - _fontHeight sub - exch _hvay sub exch _hvax sub - 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if - 3 2 roll - cstring - dup stringwidth pop 2 div neg _fontAscent neg rmoveto - show - moveto - } ifelse - } cforall -} def -/hvawidthshow -{ - 6 1 roll - /_hvay exch ddef - /_hvax exch ddef - /_hvwb exch ddef - /_hvcy exch ddef - /_hvcx exch ddef - _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse -} def -/hvwidthshow -{ - 0 0 3 -1 roll hvawidthshow -} def -/hvashow -{ - 0 0 0 6 -3 roll hvawidthshow -} def -/hvshow -{ - 0 0 0 0 0 6 -1 roll hvawidthshow -} def -currentdict readonly pop end -setpacking -%%EndResource -%%BeginResource: procset Adobe_shading_AI8 1.0 0 -%%Title: (Adobe Illustrator 8 Shading Procset) -%%Version: 1.0 0 -%%CreationDate: (12/17/97) () -%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) -userdict /defaultpacking currentpacking put true setpacking -userdict /Adobe_shading_AI8 10 dict dup begin put -/initialize { - Adobe_shading_AI8 begin - Adobe_shading_AI8 bdprocs - Mesh /initialize get exec -} def -/terminate { - currentdict Adobe_shading_AI8 eq { - end - } if -} def -/bdprocs { - { - dup xcheck 1 index type /arraytype eq and { - bind - } if - pop pop - } forall -} def -/X! {pop} def -/X# {pop pop} def -/Mesh 40 dict def -Mesh begin -/initialize { - Mesh bdprocs - Mesh begin - /emulate? /AI8MeshEmulation where { - pop AI8MeshEmulation - }{ - systemdict /shfill known not - } ifelse def - end -} def -/bd { - shadingdict begin -} def -/paint { - emulate? { - end - }{ - /_lp /none ddef _fc /_lp /none ddef - - /AIColorSpace AIColorSpace tocolorspace store - /ColorSpace AIColorSpace topsspace store - - version_ge_3010.106 not systemdict /setsmoothness known and { - 0.0001 setsmoothness - } if - - composite? { - /DataSource getdatasrc def - Matrix concat - currentdict end - shfill - }{ - AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { - end - }{ - /ColorSpace /DeviceGray store - /Decode [0 1 0 1 0 1] store - /DataSource getplatesrc def - Matrix concat - currentdict end - shfill - } ifelse - } ifelse - } ifelse -} def -/shadingdict 12 dict def -shadingdict begin - /ShadingType 6 def - /BitsPerCoordinate 16 def - /BitsPerComponent 8 def - /BitsPerFlag 8 def -end -/datafile null def -/databuf 256 string def -/dataptr 0 def -/srcspace null def -/srcchannels 0 def -/dstchannels 0 def -/dstplate 0 def -/srctodstcolor null def -/getplatesrc { - /srcspace AIColorSpace store - /srcchannels AIColorSpace getnchannels store - /dstchannels 1 store - /dstplate getplateindex store - /srctodstcolor srcspace makesmarks { - dstplate 4 eq { - {1 exch sub} - }{ - {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} - } ifelse - }{ - {srcchannels {pop} repeat 1} - } ifelse store - /datafile getdatasrc store - /rdpatch168 load DataLength () /SubFileDecode filter -} def -/getdatasrc { - /rdcmntline load /ASCII85Decode filter -} def -/rdpatch168 { - /dataptr 0 store - 49 rdcount - 4 { - dup {pop srcchannels getint8} if - dup {pop srctodstcolor dstchannels putint8 true} if - } repeat - {databuf 0 dataptr getinterval}{()} ifelse -} def -/rdpatch3216 { - /dataptr 0 store - 97 rdcount - 4 { - dup {pop srcchannels getint16} if - dup {pop srctodstcolor dstchannels putint16 true} if - } repeat - {databuf 0 dataptr getinterval}{()} ifelse -} def -/rdcount { - dup 0 gt { - datafile databuf dataptr 4 -1 roll getinterval readstring - exch length dataptr add /dataptr exch store - }{ - true - } ifelse -} def -/getint8 { - mark true 3 -1 roll - { - dup {pop datafile read} if - dup {pop 255 div true} if - } repeat - { - counttomark 1 add -1 roll pop true - }{ - cleartomark false - } ifelse -} def -/putint8 { - dup dataptr add /dataptr exch store - dataptr exch - { - 1 sub exch - 255 mul cvi - databuf 2 index - 3 -1 roll put - } repeat - pop -} def -/getint16 { - mark true 3 -1 roll - { - dup {pop datafile read} if - dup {pop 256 mul datafile read} if - dup {pop add 65535 div true} if - } repeat - { - counttomark 1 add -1 roll pop true - }{ - cleartomark false - } ifelse -} def -/putint16 { - dup 2 mul dataptr add /dataptr exch store - dataptr exch - { - 2 sub exch - 65535 mul cvi dup - 256 idiv databuf 3 index 3 -1 roll put - 256 mod databuf 2 index 1 add 3 -1 roll put - } repeat - pop -} def -/srcbuf 256 string def -/rdcmntline { - currentfile srcbuf readline pop - (%) anchorsearch {pop} if -} def -/getplateindex { - 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall -} def -/aicsarray 4 array def -/aicsaltvals 4 array def -/aicsaltcolr aicsaltvals def -/tocolorspace { - dup type /arraytype eq { - mark exch aload pop - aicsarray 0 3 -1 roll put - aicsarray 1 3 -1 roll put - dup aicsarray 2 3 -1 roll put - gettintxform aicsarray 3 3 -1 roll put - counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store - aicsaltcolr astore pop pop - aicsarray - } if -} def -/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def -/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def -/gettintxform { - /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load -} def -/getnchannels { - dup type /arraytype eq {0 get} if - colorspacedict exch get begin Channels end -} def -/makesmarks { - composite? { - pop true - }{ - dup dup type /arraytype eq {0 get} if - colorspacedict exch get begin MarksPlate end - } ifelse -} def -/markingplate { - composite? { - pop true - }{ - dup type /arraytype eq { - dup length getplateindex gt {getplateindex get}{pop false} ifelse - } if - } ifelse -} def -/tocmyk { - dup dup type /arraytype eq {0 get} if - colorspacedict exch get begin ToCMYK end -} def -/topsspace { - dup dup type /arraytype eq {0 get} if - colorspacedict exch get begin ToPSSpace end -} def -/colorspacedict 5 dict dup begin - /DeviceGray 4 dict dup begin - /Channels 1 def - /MarksPlate {pop black?} def - /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def - /ToPSSpace {} def - end def - /DeviceRGB 4 dict dup begin - /Channels 3 def - /MarksPlate {pop isCMYKSep?} def - /ToCMYK {pop _rgbtocmyk} def - /ToPSSpace {} def - end def - /DeviceCMYK 4 dict dup begin - /Channels 4 def - /MarksPlate {pop isCMYKSep?} def - /ToCMYK {pop} def - /ToPSSpace {} def - end def - /Separation 4 dict dup begin - /Channels 1 def - /MarksPlate { - /findcmykcustomcolor where { - pop dup 1 exch ToCMYK 5 -1 roll 1 get - findcmykcustomcolor 1 setcustomcolor - systemdict /currentgray get exec - 1 ne - }{ - pop false - } ifelse - } def - /ToCMYK { - dup 2 get mark exch 4 2 roll - 3 get exec - counttomark -1 roll tocmyk - 5 -1 roll pop - } def - /ToPSSpace {} def - end def - /Process 4 dict dup begin - /Channels 1 def - /MarksPlate { - isCMYKSep? { - 1 exch ToCMYK 4 array astore getplateindex get 0 ne - }{ - pop false - } ifelse - } def - /ToCMYK { - dup 2 get mark exch 4 2 roll - 3 get exec - counttomark -1 roll tocmyk - 5 -1 roll pop - } def - /ToPSSpace { - 4 array copy dup 0 /Separation put - } def - end def -end def -/isoverprint { - /currentoverprint where {pop currentoverprint}{_of} ifelse -} def -/version_ge_3010.106 { - version {cvr} stopped { - pop - false - }{ - 3010.106 ge - } ifelse -} def -end -end -defaultpacking setpacking -%%EndResource -%%EndProlog -%%BeginSetup -userdict /_useSmoothShade false put -userdict /_aicmykps true put -userdict /_forceToCMYK true put -Adobe_level2_AI5 /initialize get exec -Adobe_cshow /initialize get exec -Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec -Adobe_ColorImage_AI6 /initialize get exec -Adobe_shading_AI8 /initialize get exec -Adobe_Illustrator_AI5 /initialize get exec -%AI3_BeginRider -currentpacking true setpacking -%%BeginFont: Device -%!PS-AdobeFont-1.0: Device 001.000 -%%CreationDate: 3/28/94 at 10:55:02 PM -%%VMusage: 1024 52339 -% Generated by Fontographer 4.0.2 -% ©1994 InFonts. 619-234-9400. Created by Gary Hustwit -% ADL: 800 200 0 -%%EndComments -FontDirectory/Device known{/Device findfont dup/UniqueID known{dup -/UniqueID get 4115447 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -20 dict begin -/FontInfo 16 dict dup begin - /version (001.000) readonly def - /FullName (Device) readonly def - /FamilyName (Device) readonly def - /Weight (Medium) readonly def - /ItalicAngle 0 def - /isFixedPitch false def - /UnderlinePosition -133 def - /UnderlineThickness 20 def - /Notice (©1994 InFonts. 619-234-9400. Created by Gary Hustwit) readonly def - /em 1000 def - /ascent 800 def - /descent 200 def -end readonly def -/FontName /Device def -/Encoding 256 array -dup 0/NUL put -dup 1/Eth put -dup 2/eth put -dup 3/Lslash put -dup 4/lslash put -dup 5/Scaron put -dup 6/scaron put -dup 7/Yacute put -dup 8/yacute put -dup 9/HT put -dup 10/LF put -dup 11/Thorn put -dup 12/thorn put -dup 13/CR put -dup 14/Zcaron put -dup 15/zcaron put -dup 16/DLE put -dup 17/DC1 put -dup 18/DC2 put -dup 19/DC3 put -dup 20/DC4 put -dup 21/onehalf put -dup 22/onequarter put -dup 23/onesuperior put -dup 24/threequarters put -dup 25/threesuperior put -dup 26/twosuperior put -dup 27/brokenbar put -dup 28/minus put -dup 29/multiply put -dup 30/RS put -dup 31/US put -dup 32/space put -dup 33/exclam put -dup 34/quotedbl put -dup 35/numbersign put -dup 36/dollar put -dup 37/percent put -dup 38/ampersand put -dup 39/quotesingle put -dup 40/parenleft put -dup 41/parenright put -dup 42/asterisk put -dup 43/plus put -dup 44/comma put -dup 45/hyphen put -dup 46/period put -dup 47/slash put -dup 48/zero put -dup 49/one put -dup 50/two put -dup 51/three put -dup 52/four put -dup 53/five put -dup 54/six put -dup 55/seven put -dup 56/eight put -dup 57/nine put -dup 58/colon put -dup 59/semicolon put -dup 60/less put -dup 61/equal put -dup 62/greater put -dup 63/question put -dup 64/at put -dup 65/A put -dup 66/B put -dup 67/C put -dup 68/D put -dup 69/E put -dup 70/F put -dup 71/G put -dup 72/H put -dup 73/I put -dup 74/J put -dup 75/K put -dup 76/L put -dup 77/M put -dup 78/N put -dup 79/O put -dup 80/P put -dup 81/Q put -dup 82/R put -dup 83/S put -dup 84/T put -dup 85/U put -dup 86/V put -dup 87/W put -dup 88/X put -dup 89/Y put -dup 90/Z put -dup 91/bracketleft put -dup 92/backslash put -dup 93/bracketright put -dup 94/asciicircum put -dup 95/underscore put -dup 96/grave put -dup 97/a put -dup 98/b put -dup 99/c put -dup 100/d put -dup 101/e put -dup 102/f put -dup 103/g put -dup 104/h put -dup 105/i put -dup 106/j put -dup 107/k put -dup 108/l put -dup 109/m put -dup 110/n put -dup 111/o put -dup 112/p put -dup 113/q put -dup 114/r put -dup 115/s put -dup 116/t put -dup 117/u put -dup 118/v put -dup 119/w put -dup 120/x put -dup 121/y put -dup 122/z put -dup 123/braceleft put -dup 124/bar put -dup 125/braceright put -dup 126/asciitilde put -dup 127/DEL put -dup 128/Adieresis put -dup 129/Aring put -dup 130/Ccedilla put -dup 131/Eacute put -dup 132/Ntilde put -dup 133/Odieresis put -dup 134/Udieresis put -dup 135/aacute put -dup 136/agrave put -dup 137/acircumflex put -dup 138/adieresis put -dup 139/atilde put -dup 140/aring put -dup 141/ccedilla put -dup 142/eacute put -dup 143/egrave put -dup 144/ecircumflex put -dup 145/edieresis put -dup 146/iacute put -dup 147/igrave put -dup 148/icircumflex put -dup 149/idieresis put -dup 150/ntilde put -dup 151/oacute put -dup 152/ograve put -dup 153/ocircumflex put -dup 154/odieresis put -dup 155/otilde put -dup 156/uacute put -dup 157/ugrave put -dup 158/ucircumflex put -dup 159/udieresis put -dup 160/dagger put -dup 161/degree put -dup 162/cent put -dup 163/sterling put -dup 164/section put -dup 165/bullet put -dup 166/paragraph put -dup 167/germandbls put -dup 168/registered put -dup 169/copyright put -dup 170/trademark put -dup 171/acute put -dup 172/dieresis put -dup 173/notequal put -dup 174/AE put -dup 175/Oslash put -dup 176/infinity put -dup 177/plusminus put -dup 178/lessequal put -dup 179/greaterequal put -dup 180/yen put -dup 181/mu put -dup 182/partialdiff put -dup 183/summation put -dup 184/product put -dup 185/pi put -dup 186/integral put -dup 187/ordfeminine put -dup 188/ordmasculine put -dup 189/Omega put -dup 190/ae put -dup 191/oslash put -dup 192/questiondown put -dup 193/exclamdown put -dup 194/logicalnot put -dup 195/radical put -dup 196/florin put -dup 197/approxequal put -dup 198/Delta put -dup 199/guillemotleft put -dup 200/guillemotright put -dup 201/ellipsis put -dup 202/nbspace put -dup 203/Agrave put -dup 204/Atilde put -dup 205/Otilde put -dup 206/OE put -dup 207/oe put -dup 208/endash put -dup 209/emdash put -dup 210/quotedblleft put -dup 211/quotedblright put -dup 212/quoteleft put -dup 213/quoteright put -dup 214/divide put -dup 215/lozenge put -dup 216/ydieresis put -dup 217/Ydieresis put -dup 218/fraction put -dup 219/currency put -dup 220/guilsinglleft put -dup 221/guilsinglright put -dup 222/fi put -dup 223/fl put -dup 224/daggerdbl put -dup 225/periodcentered put -dup 226/quotesinglbase put -dup 227/quotedblbase put -dup 228/perthousand put -dup 229/Acircumflex put -dup 230/Ecircumflex put -dup 231/Aacute put -dup 232/Edieresis put -dup 233/Egrave put -dup 234/Iacute put -dup 235/Icircumflex put -dup 236/Idieresis put -dup 237/Igrave put -dup 238/Oacute put -dup 239/Ocircumflex put -dup 240/apple put -dup 241/Ograve put -dup 242/Uacute put -dup 243/Ucircumflex put -dup 244/Ugrave put -dup 245/dotlessi put -dup 246/circumflex put -dup 247/tilde put -dup 248/macron put -dup 249/breve put -dup 250/dotaccent put -dup 251/ring put -dup 252/cedilla put -dup 253/hungarumlaut put -dup 254/ogonek put -dup 255/caron put - readonly - def -/PaintType 0 def -/FontType 1 def -/StrokeWidth 0 def -/FontMatrix[0.001 0 0 0.001 0 0]readonly def -/UniqueID 4115447 def -/FontBBox{12 -148 648 974}readonly def -currentdict end -currentfile eexec -d8061d93a824652cab7761a8dac65b57ec3fe6381b068e57a586b08ef37fe40b49b7d7633b8ad558cfeda279bfa8db2693a95b593a4473e0e0f38e654ad86ce1231549719ea44878ff49585a89f37ddb79b56f99b7d19a6f1acf5bae20ca0c10d8ed181b136c268f5815bb0b476c700d50e8d29a6c215ecd2f8dc20a8607af -2d7ea45a72aa45d6134609a1958b1c5eb3371c235e02c89fc6c20f6d9d89e7de177924fa6330368f5fe19f98a087d7eca80136d901279d0a430b7318a2c7cd321fae1e0a6d7b61e387f08c3ef3c1af63d5b419648455e43086bc0f48779a66c5282b6305c0ba8613d66f3fb7dcbf4f6993d06a8341171e0b6716dec273b955 -3282dbdf7725e2adbfeecc4cb50c0bc17354017a7ed420764d36644dc641e5ad23b874d1afce9e0d21c8a51de06eb32f7596def184be868771c0b9c40f9f473a95b361a8f9440635cbfbdc756e9ab670bb141d723e2d00b774782034fc49c519e7c63b4e3c831b0b3c7940a6b493ed4d7b2f633f0e953d09d843ba3fd0a6c4 -1820e5ca93a99ded985442f057bf442caf1ffbdbbf70cf5788351bd1445566488a9beb9419fa93b418dfbee8ca9752a50f79165b62281a7a17ed89c099d068ba53d667d632f5cebcd874b18d88b90f0254fc7f8567a15a50b4a183b123a054cebc9ea1a7ce89bd58774ff507d6eb0e11a447f7527679ff9665257d5f9a7518 -be658907cdad9d68c196bc411b35395d66cc9ef105609942dca7a1833b182aa820c6490eba6c87a1acc52a7391465235c249598578cdfdd7bf1219c8ea8496efec282c08b54127cb1675aced783aca8f6e2520857d1692c18f6a60881693c0e3811089aff3e70ab7e72de2b1f4ad0e3a664dfd0858970ddbeba4e8ab877322 -26616c2f7dabd2421d5efcd3666728fc69fcaebf926af2c3174aab7bdec6e0d8431449eb938d33b68992e6c36984e05fd2d74e837708b42d4899c0614df95303b2b33e22a3b0dc6883d6516e6804b2d5ba6ce94db57ee254b840490b82ee2a847fbc1e2957d3ffa335f026167c05562a79c4ca7467990ab22f816c47061417 -cf969ca6f300a72c7d2e3aacc12dba2477170a4999e8624d924717f9cd83dab168eab77a1b41631f986be5587beee9ffa5c9ea5cac6cc6d3429d57a10149fe4d81a8a5a27e68f193765cc7c1db653647271ceb9ee3ab6be87989888457ce0861f3ecfb57abb2b33776cc54ca83c846ddfcb0d31065224b0735a85536e334ba -7cfe1f29ec0a17c3c0120bb269f115213d4e2cc9bba6a6188dcb51efe797904b6953943b7c823c9966437973cf0da10d500db5b19f492119b5f8dc1efb27c38666a1982ab013ca68654b6de603f315ba15c9056260935613fc97312d41a8f6c36e31e3df887a73065d555cb3fb914d03b0f6e0fa179e1330bddcf8461c400e -ec3c58c0279ab5226cc73f3376db7ff98d3aac32808b595120873be783c9a56690a01dff3b5cf183490cb8200318bffac052eef361834649ea9430efefbd981dbb5aa7052f67fb96399fab7070195a8a85989b4565d136fc4ee2f5060a6d48823041f44bb3e27415f81538b2dfa16afcce8ad23e885d4bead26c16fbe97f14 -40cc98ab1a5af166133fab2ed572f805b4084b21e4cd289bc2c93b44e01200d1b0611d704e814b856d48c6377128fa2f90e4dc173f97e5a677f44084b6dbc25014ab7ae1e8539511c2ad200cb4b9e1f60b3c82a22434a8bff68779166190883f9624580d26230e61d06a692b09101c1f60fab7672b5d6a168519f9061f1311 -c662b6033166660875692c7cb400a45f49a9058d0eec60158000c1b3ff6cb6ada7e3cb0f549696060766d6c88417de185e8f92fd0b95b3e60a8d5d92d3eb3fa7ff4e0268ef612cd93e6b70f2fa393ebf3f15cb105696464ea23e7ee2c467539c3df167859fb8318cedd23cfbf8d8acb1cd7cf1d07e6023873d0f7d6236c412 -79de21b2cfff6b2c22c5fb824880bb115bd80bdc923c6d0aec0d30ff65024fb9fd55b0eb0163055138b9f140dc7fc02a7206b3d48f240bdaed454e73798e57e898ede3c3c90cebf437a11d2587322a026889cecae0580f851c3b24f776ecc40454fa2a4a18d6a9f7acf0eb1ed77aa874666426892829b27806d58bfcbb2fe8 -bfaa8ffbe9af08035a80e38fec7d365f7bbb0252c977b6067ca276c7f8eb1fedd4992730ac0bf1eb423e11f23110c40a05f2962a58e6f945caa0353668c1a748bc96ebbc31dcf33811139bb4a09bd798670ecd4bf27b69632f24c43a7e9932d23b3c5ac161b588e5510bd34aa9fca0effdb0d04648d0938f0604bee4053952 -889b115efb5874087ea4d968898243af4f823470154a5ff87bd5b7ff15e503a202b7c1a6ea95972f6e41cb541e4d64b51cc9cde37dc8829d0dd5c5e15de63b23b275ab2a2dd8677909a97f2b7298a88f01934587e99dbab11efaedd8ffbcf7cc71dd15d6899c6b9b5d0c116ce2905164a99526068aa57b92e5288128a75759 -9f51a287484491c727e258bc146e14e139ade61d957b2bccfdbf1d7251c9c6c11bb59ea4896c9ab6901a11454acc95098ec9b1072bc3043fbb0f532ba75aa47aa61e340f1cf1d679648c3b5d0eecef05212c571dcdee915e54fddeb48574433f25ec49b5e51aff9096dcc37f3ecc251e324ab189c0d9900873e4a25af639f9 -9cd818f0bf3b2e7ccfc9eef7094b49ad6e912cdcce96189cb646369683084148de4c6a4f5e6e55a322164f063072ab7010367f3b0d7f544ad8072f54badd32cc5bf51e0f7203780041db263fe150af7300895f1fb7be300853c264a2777076fee6f9e56619a1b7d44154b95c3a3e0433ce02a1db6262f3d9f5438838ffb362 -b963da4f4e438a1a01d74ff6ecc56bfc4cb4b1a135ab81431dc7c81ace913fbd056e5f2266ef565d4464c9ecab8094d638bfbe0a640f7f892a46572b5db1f618e6a71b727937a672c95e604a6bad1977a907616c8aa3af17ace4d9530d02a992314728455be5f207c13cf209499c748ce2f7c4bcc8756e9579bac1ce84eebb -02d9fe35ed80ac2a4323bbd15d91e2c214c4bdb0e1dc8101f349f0328c371754eb08f5508d3b6a14afde9181e85611ecb2de720c2bb332ee6b6eeb928a5e3cc5a1b7a0bc72116aba7cc9684c7d3bb96203ab60f550bdb279129576aba4b2657aae837efcb4e56a711c56d6ac6777bf68b91a4fdeda09f9ea528f532a45f291 -258957255cca6ebd4534ede89c2bc397c91388ceb8655995b8ce792a4d617063645bcbe7a2770be9cda1a0161cd5f33e36a71ca94883a1067ea9c97571832a8892cfc6ac2c9fee7f115b306817f3d2f8eba2c52f9150503087bd7c6d118980418e0682767c287b23ac1474cb820d17b9991335c3ab932cecc7901c50daaa83 -8aedd750d8f2655f2500151319600e3ec08d1ab3d4e529bcca3e87fcdff2fa0eb4903c23e7ca155e7dc021bdfd981581303ddcd133563ab65e99b93dffe49fc52a394e6650ae60df8bf615237b78aa426d3da8b8db58dbc54c38543771a0ed633d5ee39cfdcaeb824f266348c21d4e456cee8ded74af8d20e73186f1228258 -7ecfa09ea725b674ba887e7efb22a5644abbeb890670f6263e3b9eb011f6940148f46c29b4145192521d8247a4c6066a02dd4d90353c170ab70163269e12972640b34efcd9298f86e9fe6b83ad0628ec8b803c32bf2c2a550f8e89c71d47f2a63c0792677373048be1c8729ac277545334e7b460958491daae755f6af3c06a -8b848ca70336e5b585908d93422f3da947090ffd9175c98b08e523fde5ccc9043acc4c9960af2ecef6aaebcd12ff4c9af27f0a5e3b3a772195c1bace42a568a535e30b5aab6729fa405de74d4a649af84d70e10ba0b69f76e0234c4fbcc5ec377d0ffb49c67208ef3f0aac2c477e726009fcd49bdb0387d134983d12f51df2 -21057c51753a0ecdca14ae8c9f2eaf2b4ac7516d72d8ae78e950cbfb19aa676dfc03e3c923c4d8ce25e4a7c9cadfe5fbf9fadfa382da04cbb47829b988ed99f208d60f915f52a3564efd3462d68e54aebe58cb5678817415f2e00d698c1469bbabfbf6919d7ef821dfc497df4b8db1dd53c70906f8e518f3b7f34c8b26171b -590829a68bd7be76dab9db6239955c04942e2b261be108aaeeedbe77f2f4d05e4902ae99eba1cd4f482bd36f72fffc124e3c90ed48ade35a25e673841c149113ad0da2fe2bab1207bd002323509ba5d29ae00285e8909dfbe7ea3bcc73998346dde576a41ac98939c174a973b41e1a0666dd247ebd5e00a4e408d39503f490 -de243866ea7893643495cf9bf551bca3200baeac4e0f1955adb174416b29900bdc2def860e7ab7bd013de0dcd8679e183aa2e7693a86659caae141afe8ec7f357e9713b0e7d07de7e38e2259e558643413ed046fa3aeb75fb7fabcbcc3dd89ea664f5e5e811041a31384f420656c62f5128ceb1289cb807d0cc41359d61cda -741f98f967e29eae00fd8dc3741869e37d84734817f8d8efe8289ddcac1cf7453a5f847817f1904a3d12c06c6ec290df8136fbc0234f4e3408d1470c3ecbe6e5f5667974b01eb6ee6e59dd577375bf21696bfa4d5e4a3941a326187dd3ac06f6612bc53dc31bd7199f13a4fc3bc565b7aeb3ab7715c6d54441e8a88ba29ca9 -4c1afba6770d72d0e20710c4bd382b1ffe3d47a6c54be048d93d7da86f8f385eb30f79d6821087ac542a1da642a1fca38c7236eb55471a55f85d95e3325c145623d017167eca2909721302bfc6a6023967c6c3513c2c69ccbaf875801138640fc1f47fe28b9d8bcdb948135e74050d60db4b3b583dbf2c6a627d1b46d39ca6 -88b8413c95d0935ff58d8b5ced048fa04a5890dc4e1e257c0ab5a8200532ea3a11611c170d7834b23ded19d0f6438906b7a7d6ca1ec1b3216a5e651e270583970b96da93617b82932dabe11feaf993a93ead759dfb34f4cb9bda39c2b5910808a8ab41168c2773a0fbbcb896a85913ddbc41446d1a2fa208df5ff3660e2095 -fe17138d0b735eca1aebeb34fe0311c4df5ff111f6f5d7e2be085afc3f231f2cabd5a4e7b7fe5996e7ee2fc56ec6a4b593b400c3707ec7d954807fc1f8013174286daf55d9d03c0b1a6e6de0af0067b4f42b13b767777398f6fa494ab448c08d603238434c8b2de9c140e890b9da0cb80529c58eaccb50eb7a560eaa32c9d9 -e179b39fb7d8b18b523966763d2cb6bbc0273db6ad7a29b31fdb9ced9943d9f2c3348d3a5fb22939f84609af0cbd5078bfce54b52c45cdfffafba11f221bb43b31848dee06579182715fa0aaee8492ba378f03afcee8823e00c06a4012ababe9a78a3a3288ace313061084dde37b21d34cdcd02ea1117d3acfa3245eccf86c -6315e71e446687e6d9517910c440c838aafba25779151e4a64fa43f39abec747260a6ede4ae9b8a38c94ea57ee4ad5734d4d8a32d3b087c1331bed493f5482552252aeb7de7c0d9adb11882b96f074ff1b41f558987af3f081d64704721d3c0219f9e762f74c65d7420067527328b1e2913b772e82330d22ac35b7677c96ee -8eaed8b99f2d7b8c28a42b3a7d22e79a2c3818c8bedfb3e3ef42215c21e338cb8cbedc151ba547f7c6592bf7e13cfb8081ff8fcdc1e54fcb6708f3e28374fb366953157eeee486f706253ba18af4623f38c1a74cd46dc01fa49a12dff6a6fe59ef589c2c0b55b7c16e35fa8184b1aab386ae793bea13fa656a8fdfbf712831 -5c4806d00cd2df4afb6a5e84b237b5a68415479531a47afbd5a00bc1ccd5fd1f4f9c95a426a553ef445615de74bc01dcd1226971233099ee75d0ee5cb06321e0c96aafde7ca90b8153d0c81758238af7c55402116abdb470ef76e025125bbe6d91ffbe99263494c65c59eb9cba650c957bee2250e79757eee857f07bea6023 -569590e1348049bf932e0422edfc51751310368da04e96ce80729eacb63fa140fa83e759655153a590fd44840abc6ec60aef47489fecd48fa953103a5f642aee55e28cab055da0d15e3d750e93e08cbe9d5277e61fd55312f518c293c1cf98fc9eea0d2f6d7b0c26df869b36bc869664bef19b6d2577106d7dc9b15a69bdc1 -d0b2263926b249bcbbd392c7b55e59aa9066022733ee075a7ac0d407c56659660bbf4d051c793fc4ae5f3984fc8bad99d5d8aa6141501960c52efb0a75219c934e4e989f23844fc319bade151406a45afe6a34450367bc34cce43fb8f18e20a3451d999548121cc552abf976489c60ce14b164321285e67c76ffe46211e557 -109742bd3861b74fbc28a26e16cc367f83eb08f3399d01114b78c615757f768934edf990fdbcbe160ba0be780723dd5558ab3274c09e76b4086efaffa891826e5c94c4355aec9caf4eec8b557b28163b809180a7754ed0edc212a4e6e7aa42cfd842202c320341889709b351309fe55e2d96c3b433ca7e70a4c68cdd424b88 -0f9c9379b41075bfa77f72808718a26a509f708427be64c8c9d82f5eb45f64079ef03613a19e6ad4a231d1e5dce672cc69a8ccec7773bd07c5d29a78c17797831ff7111f73a47fc637f32eed55d42c869eda61049308d43a1854ce98a2ba7b2819911beaa1b375a52cf825364681f7b9d0aa55e377fd7792db37c59b3193e7 -b7203b5764616b5efe8bb2f63c248118fe52aaf104f2a0554dbc013ff95753f7a64da8d877f265870c0ec98e9eab430286d0b8616c5e1731d32ffd85888b904b1861f2ba9e74dc3f2a4f3faa8f6425ff88aa2f1498a98be44748d6100f20c704323ec200a47f3de3a850097410674ebc0de4c0bbd6c781dfacf665c18f327e -f6166d933838aec0583fa35fd3321db29f27af50b4d158e5d9a875b45286c19c675d92d56936c603c5cc533da08683e13bd35e2a1a02690cf4b0c9e25d2357fda47dec700321e4e2b9a1afe0b9210736b970cdb25bb9b4802d06697892aad68e825b9d2efe0be08593279d78271c42f2f7ec281c009c6cf34f2b71e8adb0b7 -39431882a521cff5001ca81a1fce7f46b87b6a7e793e4327a244f3ef16019febd705c463979b60ee6ea6f87c2c9202c060bf5521ed2b61a729697fadb707fd2eca5b5bb74580228a7cac3579a0707175bf10e35b6f5a4f72497390564d2c0a9e30614bfd1982cd528faf0081ddf57e2311315cd5b21de66f5eb01582c6c9d5 -7c4bc18687638c120c9dfe0fa4565f7f4ff2facdbc455ead34703595dec11b94c866791ec7594471a2addb3fe7e3a4ff3baffa0e4793e2fc6b6d2a991baa3d2277ae71d3e200c9e66f9acc298793021e0146019a0be4f7f393d6530bc397b71b6a4b6bd57d25deb41dd8748b6a49bf110615acafe1924be715616af387267c -3032c9dc819206d67bf16c005b8406697e31dcc27cb978896c86d151043a6284bcdbd3491adfaed4d752ab0545040722dc822ebeb86aabc704547026c5f7ed488a96e40c80fd1318a12d1f08807ccdffc4ca2f28c7a6e4610d31879be015f6e5dc654e13ac2e6c978a3e8caefa23b84ea909f82af078f9bdb6efb13f614107 -7a70a9cbb32f3c44858aada1fc329e53fed7b91dfc087e9e99ead0add11e1f6f1b64f8c01f63f0f66d8b0e72532131fa0e5a8491d9104a8e469165466b51381ad969ba3f40180d0d248b2b12d3e7400dcf7f6a79a773e237318ce8da78cca61f8d47e916f87e5c796be484cc75ca49e111e8669516de77ddb5f11e33f60205 -5654b1bca7cade5774593cc239cd4fcb3d5e4f3a92992dbaeb54823260f6b39a9b5ccc95dcc870f5b06ddebd1d5efd8793d69d30abac25586345ff9c770a92e65a04105b21198e72fff5bb2701511cac912935a3ae9633a4fcf046db1ccd4d95b5223d62a452ce58a5df0382f0caf9021490c540c4bdcbf4e93ce337781069 -82268503d6238c5c738884f95bdd5ff4a21c0c09afc08d520dd5811066a94707911fb57ee495284aafd51f747924b1bc7dbe035a81b5cf83b8307830e760271dc5f23e8892a55d8dcf43bdc5fbe96b1107f6059318260a090882912cb9bb134d19bad158f23d9d7524d75b0c4895a2c51d0fd8d727b6830bce8bf2a946206d -4bde47d871d2f2e0765768d751c3c176f142b7c935e9b56a9eb4629ebcca59b11fc4e8ee672e8dd7b86c32ca8b14ac3cfd38010f11b24bd8195861bf04af8406c846305993922fca7525e2d41a2155df3ce5e69d65b023fc516e122aeea9a60fddfa366671530867c9ea775560ede353f845f069a97f99bf0fd36a745aa244 -efe7a6cdefd3223fa50b4c7202ff06cdd500957d22ef4ceb99f7209f47edbad226d803c59060522cb64d75d33a0a528234a5a08624295588ee5f43571b6eb3005ffd9f3c6aa25b47ccc54899f8d2c92e873eb8428cd87224253f7425d921a88e0274a5ecc536845f4109dcb58d549be8ecde36fc996a681142d9eaf8eeb6a1 -860e88a98ef857f4b85d247cdb4c320f39a565b568b5fabbe86cfe097c6500ddcaa28216422c0b3f59d1c965cf0d75b487f1fd16a22815cacec8cac0f87e9eae79c0bfd4b60750dcd740bde980a11f4ad2499505a259f7619151fd5c0ae1eef55eac375251121f9651994c31534632458c92d3ef9549ba7556a8c65bf13d70 -e20583b41c57a460ebcb92fb2f36c567763f1e40da89ac94c4b89aa148431e294854a85835e73a730cd6c53202b5065ddf04d784f8d4326b7adc1e9b2a4e0265fd236f6d186cfa6c93a469486bc341ce64b12fb2f4c2e8c981e208888b748d944231dc1fb5362db890ef1edfdc15420a10020d15fa3ba1acc41c3ed0a0e295 -b366ffb47505aff24ee0ade40f070260c863515afbcd8a93637f2f7a82b7802c05a310b6b4c0da22a4c1e8ff47e739656282a57f97af84c04d645b5dba2d9a763fe2e18d7a92d00b4c95b314726889ff51543429de1d2d8a3819dfbe42cccda4466d20569e3d036f86428a1ed1b801fe287da0c91060e14b149dafba38ee6d -fb2a790cdbeb4747b89d2afb44d86100a9f228a00f8019812d4d79bd400dd2643bf59475c882c83fa8837d8ddf5c602cda009303a7344576bd14db7cf1f42a9915e49586dd6216d86d53f644a245fbacabb985ce746169509ef0067a98528ab696b88814d791dac614373e7a14761e7c860bb86e7016ae11c3fd99aa935dbe -e4773b2fa8317da780ee188914274b3cb4b2ab2590b0478abadba0f6db801be4488bae80e0bd16425d8a10f3975c5b0e4eaa3c17e30343aa04fcfb0d1bd3a5c6ad6ec33174ecfd9cc6ceaf1ddd0a0c2763be7ba3aa580ec4c0e4efe578fffd37dd044285ee207e728469a8f79d541945a70141851ab25530bb5a09be0e2d40 -3b56e6a5152dc75a59d70afb83af949c13898b3ae3da49455c92b2ee0337fca9613d147c492df5ea23e9a72d3e003b374c409ecb50d8f5895df1f017c30e8095573ee46395195961a5addd97c2237c54d3086e430da34ee6e1ae85b32a98d7212a6e072ffe73e57d065e2497508c0899e3309945a8e0c48f6b908fe569911e -f443a5a39f72a474536945731a0358a18aacb46df1c1e8b27857aa9dbff6322c7ee3555f657daa27e78aa1f57a67b2b3286ed4d5c50446e0c8116acfa2350633acf375471b0328708854e7d6e92265f3e74e0a16c6bbaa81544e9cca44c351a477b2202d64b47fa89bafb043b2b704c4848eb349cdbff9cf31ea28a813918c -117b259d343aa5f03a2bad1724bff9cc7dc9686eae637673438c20de1ec832eba488006c16b771a4be83c2880d378a73312a0ba07c246a72f03fb55214e205b59b2cf1826fa459c2f1d55a420ab9bdf1ce11f8fd7c659e3d43edcfeec64f591651ee7e7ca23c4b78f6f17362f6ab27701b8c84db6ce89c571603d2171cf5b7 -3300357abb2920e5652bd859ee437581870eb729858f65e8356856956fe1dcf617de21f80cb69977f0aaa02260e306d672f5f9196c06b08a4126be7cbf431bea44e03a3ab86bfbd685099658369680a307313fa23e4ed89b02b4062fbd40fe42d270344a916530749c56ddc245183607b4a07d4f1ffb4599e8460ce525d6ab -19af4b561fa987401d2160cfc9e78ff4d211d84863e09d3f8c6f906c1c42c3dd8bdd0ecd709a5e90cbc4679d0ecedd20014694015f36a20eadfca4c818b0a2fc0353d4c576e7e94c308c08ed67236858bb88f180611dcf38cae8d14bdc3ad0f40a5f9695c11f584d4801390b885b544c3f3a5b07a6d3821724c09137260dde -72224f90f206921b38768da87d0df7721b7a5cde0735d7164a4cf429ce3584da362454c6e389c8c2073e49564b245aac532e0a3631e868a3ac174f7a62c0e8cd8e4b6932e7cecd5618ba937e637ba20ea131863012a5688315520270e866b85c0ef3a450a292f9fc8052766240f632263fee77f3538b5e1058787cb65295af -7e5eea99d41a84beadfdccff9f4fab6879ee0eb54654ac5cb345e830ef22a5bf9a00026e526086a27264d70e181aa2336e96e987d341ea74c7212048092af199b711cad5195e64ff60789ee873d301dc3fac7b681ed94aff52490ee6aeba217d5861a39a148dda37e2ccb876065c47818e49ae05272f6038b3a58f3f4824b9 -5538d791c678305ebd5c5aaa346658bae0c2d3f4f0f1f04a2941a1fa7c3e14ff067e9ad1e1e95a72d267c6394353320c4b4d31ab1d090a0d53bdc3df6dfba09642adb22c18a5d66dba104bd9a6331efaa34853f299fc0e9d435fb251b48bfbc56acfb79bd032dbe2ab2303538bdddb3c8083ef4696b569b070de832afe8e99 -d8869d408702e052001e5b39280136384653693b35ace3fc01c9f859f709d1078c17c75d32c9a00fb3db97c4d3ae4445507e238e5c0b7806d9c8492b9b843e3f0cc5e2cc5dd817e081c00d6d83378297f27c4131a29b9437323175bf5b9d3cf86e250578387df3e342f97e7cccafcd0bc229e22a9cf8fd48a3b28f82adff7b -65e654706d8d79fa6b0d4e6754651dc2235f37ba47984e6e26cb99f46056ab74da43b1cc76561fe82aa233263b05126e66cf6f4f6aa3c52c3c6bafac90494e266fc7f47212f164e041761211f73514363cef69d5e1fe3155d19260fa622e41431584bf71212f42cdb6ecc2bce920591e6a06abc72c70863a116877aec33aed -235f43f01bbb320ec12da7c95744f604544988ad2b68936db008c324e500b1e614c5035559957d3307d8d57028da029826e09a601d667ff635dac374e390e70b968511b5b859a029a3d80b22eba03bb4d4dda966139e927d62fa9869f6bc3b65d19fb81d1509a23bb396e6ec9df76555781ff2e595648c73a05133476f8339 -e71c97b2e7478e15e11c553178dc901a5b5aedcfe928cbbf46db104402d1b0224893c67f3efed78acd7193fc4a960850b6c4c167594a528576d1ae64c0e88ea5b57bffd4e1bfb56cea85436ef0bbb8846076dcbd88be89727c6277bfa4502c121d6eafc514332daecf17f681a36d1860263f9e3bb24483f84451acdf849067 -2f497e5c656dea475d9df57046c0ce4577e2f5f76ec273aacf56b12cd527db47bf88c7dec117b9500a3c4d1842a1b61fc7bd430de6d563526fca71b341fd97613802812b4c1b77ddced234619b459867b3201a9f1da37b8db636ad07c70968976e5e33df49d4bb2c74bb6d2c472f624032d47f1309d5139dfe6e6804987058 -a227fc0adc716e6ceb2401b4158929e5634e8b329facdea8c8f6edf33d52c5ccce8db18bae293c19bce6a1caff9af9d3a1a4c9125735d97090e212427c5cd2462127b1756f9b2b1968517f9b06ecedfa1a890328a7a68554f727240e7828e9bb54b788fd49ccb0ab90386f1ceea196e588a6ad17155b25fcd5071a4cd4fc98 -1a2ac8a930f85d9e70ccc6f5f2eef51c144e5f4c1523f5cc9de9027a6a96b14280ffbfa12bdf07ddae577b7b0559a500451ed1e254b05e29b7fbcb09a908ef2dc5054224ea7f9c91288d1f4c1bfdce151331e0a8841cb41296525e2d51ff2bc7ee6430b40f15c64f0ab35ba1917e35e0a2c9c1afddfd64049cd3b1544bc1f8 -95cb3e653160b62c93046dba6c49bce6d0026f06cc771e462c9796c6657ccdf4c9db0d346e1574a5181e52493bd08c7196845359be3f837eeeb3ab445c348502da48d840b8887d239a51f84ef32cc9699d27f4f783ee311f8639dfa8a5ce0c33c518a45c5f6474a8d7765d25e0453f3f60f88bb40ed5e2dc2344160c171b6b -66d8894342502baf13f63532314bf2ed29576a7584df8e3d5a44eea8185fd3ec095e8bed72520b9334d1431d9f3004f17202b98b3409419b6f8747854a104a5f0afb9da9bc8c93bc4391e33cf99c3c8b9bdb3ccb251341c5979be14d8a9b1213219c2947e2604cab41f00a7226db4c1ae3d65739afdefd62ce3d268d854540 -549fceb1c46a3d37fec17a3bd01631ebc63cfc36c576bd41118ff2524bc6361bb52799425c93f2dc275c1a988b2083c82a2cdb5d6aa311b135a38721e46e57e00e518a0f06e09622d86301727a3ee674aab7267fd680f2b4c0379d96818422e41634d568ff18538a4eb4aa309bc1bd174dd987047b817733424d4392ed9236 -3dd395f517c2ba622ea25dda82738e9a942558bdf278f96508a6ef4c2a457e845667caa84173b11c46e8a8a4f9c33aaabe426295baebaae0eac62f8dbd68b71362d4076a503cfe9f95b26d744fc9a7186953cac74a4b5ebd605e702278a5c6f5b6311fd50a39625e63319d932cbc5353833822fec28824eed4a8793eda8d5c -081711ddeb87a5f915eb07189931ef1b015af1cf555c99208ca09d3c802b2f1593a23a8774410947c39c116697e4edeb29954fee933d2c46f1c2f61449e08a0df628f100bd986869b4812e259dc5ef37a59b56e938da476ca294a430f1fe1e836aed44fcdba589689e90dd6e1e215eff05e70c0df258056303238260b26797 -48aa26a396d7bcf99a086e5ed03c1a48ea3fd63d61daf7c1c56faa45f824f011b594af1569f2c1ebf0fc4cf99c692442c0957fbe6561728774c0860debc7e265a98297f6bdab8d18b0938993777bf50ecd3ca6395074ea555fc3a925b8433bcd68ea6366c9bc148268f68dbd9c292d8c821a108c3a1b8a194e7f3e745d1428 -7441c7e9c8895b15c6a9abbc42292bc373056079083360cb3481d749ef439e788303d500ac098dd88903f487ab6b198126675dcf021367d32e24680d58dbf551ec5c92acc019ac5e170705190dd7b89338514c3f102afce6409fd3ac4d95ad85b809f920579a2b6697d2424cd7a6324e2fcb6daa2a5f4c5e80970275567393 -4a599e605aed017aba72d3b84390d7336c1c39f2199f732befcdb6532bc2bdfbc92ce17316e5519b53abce88d54f6877fd0a00bba4192197a89b61e6076d521ef6bacf588d19aed7cbdba39819c9a4019ab0641227eea491e5a0aee1eef458571ba706342fe0876d0419704118b18d1ee9e4e055c286c1fa59ca2fd375346a -fb75570429922b44b376006e2a23c3228dff653e6ee6ae109c82655c18c02908efe8f447784e5719f3aef0ea4040774200ecb72e96f7752c3d89a7bac7b1da38452f820315b39441e0300944c657cded958620ed0178b0901e03e349bced5bb23ae9e4294deb84e5031116633483e5af73d30e221d1b9d0bc05d6a7507fd52 -f6f6db80bcc9116adc6c34eb6e037d4bf40bf04f282005d8539bcc32ff7719a5256e0cc263724a645973a8be965cb20a5d87b53ee0ac408af6c89dc54f79f04ded7cde96a166c30bef69fb320ca5ceafbbdf8252ffb2c0ac82558f65bffb8022bc9c7c8f373e1cd7819a3375c29646557ac306b47f9ff2cb91e0679029110f -a583655f8d29a7def1e84ae42480a4b79d23c9d7b1e000a913d26522ed86aa3497d93345139dd461ee93bad486fb47229ea75607c51206cc994e3efb187aafaadc9ec1a905eac775ea8debe6faabd7ff22b11e06fe8554576575b337065ac891761a25975b9b59284f842dbbb3b2c1a27016113a1c13bcb6e552d5204a1f41 -a0775987910fee7eaf8cfadf31c537b85bb4853ba8a3fe6aa222f09233cf8d72f573b1651c90ca32aa7ba49185b8afd79c483e0a6241a89aa7dc18ba9d9ed6576b2e81e0168d57c496bcae44e9d07875a6f3c447c622d1d9004020acbe566047055435279a093cebd7c4bd6ed9a29721f1eec21c4ae24199876541d113f744 -6219637f4477e6977287e704ef7edfa1bdde7fd4be8ff57439ea8f2146b0629d8e98a5a80c2b8763f7189bcbfdb3222b9003d92dcc07bb7f1215b27c1b5a9a6b3595eca046df1ca827400c216f2f6da33bbcd47300ba4c4bf6d5b61fa5172f0813868d7a684e1adc3740e4e22a9e430141d68db63d6c40b5b8b837a9a27e3b -a41eb6cfdc48765ca00b5f88b5ca84f19dc5b7e481a9fdafa504a673f0871c5a44f2d44f726d6f042cfd5b76828bee85dfada1a721533771e995d24ac9bef9e40dec0c0d0ab444dfeb55cd83048eedef09501f1f0e3b7ceb5f96686d571eac8f5c710e551c350560a85b68931d3ec66bba5c3673e59ac0cef367f9bb5b63a2 -98c1900e13569a540affc04c8a42768636c45469ca2d2173073e40a743d78cd8f58449efd6662978a3d58d73d05ecde6daad772894d9d2b27ceb04afae35f3a18854c61968cc052943109c2358b66a31aeeffae17b9112758796e41470498ccba8009bdb2e400d8177af4ab29e57c67e2a816a7a682e6f89ac9d4c0d3c5fcd -c353523354221aa5f227d902a8fd6ea1ee63fc6df9cdadd1373d516c6d00a80d46472eee97d0393100db54a0034635d772766b1533a0b41186d87727a64c3e90e02d0a00deda7e91b72f752661a5e8da1ee320c97781f804b4fc9169a67ad3713eaf027e64dba1b4c1ac04ebb31b91b0b287e235f9ed9786e5b509d8b73b80 -75f74c95c8e269af91c5d38e45486fcec38e00abdd2c82f241142331709d78d7ad32c0237ac3e04eb79d78962d9bd014e2c1a58803b17ef22f0e05e234253b665ec0a813ed61e93733414c065693b7f6d78ee298356ff8f7a275ed990fa6d2ed7e52e9a5465acbfdd07be9affd4b4731314b5e80d1564212863e5498ba1eaf -7508a899fc41ac1b33e7b20aec88de070c9a490d7a573f11bbc260ec929478cdd1348ee0a9356e16a22563222f89cc049828d3d07bfcd566f2e075915a7b709375ea963ae4a226d430200e227f8e7b602496fae39d595d9e34a642dc8c16efbb51f13e8f3026d4c4adbc7f6ff14321066e996f256a9cc9b6115a9ffa9aae77 -e794ddfb7d5efd704c61adfab6588dd8e42b988e332757a4876eae9aac89e7f86b89f48ccae16adb137eb79a9289cf391a95dd4e73719ea2ccec34bcb59754b939b5a99d3077de748cb4df3b8b534dce94ac3b7a709a3ee13859d215ebfad213687f75a9988f23607b2dd603c2cd3e2af8d49d659bf1e7d214fd6b92db86cd -af8878d0002e2a050009d9db2d4a0700728870d2d3165e7611d7eb20058f27fb7f7922db96a92b8573fdc8b6e0d1bb9e8df799621a1615bc5dfb089eb220fc4a8085efa031436c767a63731200728aff1c8047848108becb8e554e05f6140159a40b1073bede345010aeade337f2d502383fbd036a500bb5c1ddf42204f2b8 -4b5c339bc5e269c1704bc1b95661d4b633540c50162f56661689cfcfcee775de2126d729a37c31bdc4fcc06c540ef8f6cc9ba978f85bf8270c1bbb9c2d49707c1695d4fa8381520b2511e40d890a50282376639e70b2145f1ba4738275951bd6e1427f9612c78260bdab1e2315d41c6f5ccb7ebcd9e9b6ab9be818a3485604 -2369744103a0210c2ab48be9235c2344efb570e82e16ebe934790d6acfa8606db201ba275cd3592a0c2b7c627808a0f08e181af74e4dd0dcff9a54fc1af11688e3b550991700b3693dfdf834657ac3e4977f75cc120679b35e4b0d82359e57b4a6ad12b3199e6e54068bc65dee5760ca3a813df048bd8503348a660bc4550a -8f504649dfedb69031ea44343daeb2f994022cd2d70f828f355f0f35d5fd031408b6f0be5876da5e993c23e8d3118f2436408b99aee857a02824b2c66591f31bfd41e91fa3252739ac5359bfb1212fbb8a244b6d41354c42fdf0c3109e950ba4bc24124caaaeac7ba166b8c8c67198ece4dc222bfa6b866325e792d552a5e0 -ede88df12921b03d1ef2fe0aa5201b294582ffd3f132739afcf97e2a1feb9dbf490173530dbd7155da05e86b3e1fcf1237ad6ddc2059633b6134bdaa312427327958fe100989d4043219275b63a00612dcf4e50cc5ab5c9d634906bab562e5303f2fca751eb973bd8cbe505db334f5952aac5bb4eed480196d3b8556226b98 -6f2bd57a77fae30252e1c6de72cdaeefe3c23897dc796ece0bf11aa3cc72ee4c54481f426e2d4934dfbe34798961855bfcaa2174fee48565da40c617c84070dbda70ceea64631821f11183d25cfa78f0a7b4d6a50908a39cd090ca5c932f4c96b92ddb0933867be413dde51d795aed8e9abb4559ed0ef83fb6676f353fc383 -52ed0fab4da9d5cc60701b83e6e67640233a6d47b33063f08f758960d8b0efaf21a1843a771c760fd9dc4169f4464ac7a2c6ddaf0fb748ef6f66d541c669f2f3a3fdda3f638517c74925e8780901e61eebcbac3db53c36e6848e16e4b99dd9fe3c0d4f42aec5218f4cb6c9ba80153d53e77726fa110b61b137718e608da99d -4fe056bb4b05d69143fc87f52d4aa130ab026b5c8afae8df0be26c260f807e1626f38ea644865ff8a6838eca7c0dd98314cbdc861bd06ffe8d8b8fc1b5ed1f4e643a4bbff318f16aa5f1e122a18ccf5becda91b97c3ff4b068a71d8b1492718c282e84932578fa10d3500c35a25f62781e3f85b5ce786530a5e95a815e6a58 -df70cd2bf2fcff4003152bebd49e7191a31a298b124407e39097335e5559b67415c7c695128caad080553ebc9dcf39f80fdb4b1e6f119ae487f809130e177586307004c46ca5d6e669fca92251d598577a9b53975f19a3748b23c429e033e27dcb4b79309f02a07063e4e5c085984a436cc61d86ac36692066c49522ca78c4 -4d0f4e94bed0327104958798f1c1e813727b4e5a1f722921b210d9e55debf6b0165b4139082bd20126c5f07bb145974c776bfbde92bd0b258ecbf6484bc8e7fc85594a68f8f21a48651044d367f0dc843963d4676f5ab892a4b2b54c8ad5f3e6ad73d32247495e2df10a4b937d6a0b3bce9828bf147f845e2edf9290c605a0 -24452fab80be623d1415433a48a2fda1ef272133cd4ad4cef69ff078b3d1036abef3121014e89456446c115a7b5d5ea3233173239ad9677ac6f2bf1afafb2c47c83443ab90b8e6558b7861d38f1b77f121ed2a4825e9f5a41f12ab36e1520244d790ca5823aae2a74efc30982a47c761bd8870699e70ccdb5dc90388b2fba2 -fc13f32c15ea3db5ec31cdc76c19c1ffd71590a2a0867e30674d9e0f71239f36e5afec527e3b67bd50c2c0ad98a96ea16e1306ed31f807a2b08bb72adf690974e8fc148b559731b0a2cb98b7ca2d610db0ea0c875891ec8e12be3ff4d16658596399332244d9a6468e501622caa053ca43ae0e7b9fcb9fd98b99d964478b93 -793ceefea54a96bdf2663c64eee639375f7d4ad7127f0f816ec8a7512b83b3cb83e5b40c7ab4fb1afd590008a522e548e39b64f5d31e42b15989e736f9b0e1e542b0b0acd5e1df5fb712d66e939fc2359f720587e24d7046f39ebeb464dbb353d19cc64ebbd2a3463064d9b4ab3b9b5de3d8805aa62cf477a18359c661a199 -0d27393a1dbbd7b38b4b56a13e9be9cac64b5edf3465db6f0773d65e86dae5dbe5b6dd4b579c532866fa94775ad1d992e20e6b828a68536a7baed097965941f92130d454a17f1740cdf1b2fb7537d1c02e1ffb06e30104bbbd7957c83a5bdd3af99819c0d2e95894fc463a6111532457c72e61bc801e1869d4175b2a6d031c -82bd15c12fff28c31f766dd362ef74960e2ef41852b21d5b052bceab43de4d7501cd80d0ed60613cca8b875fada6d3746b8e6cea1f0d507d80a2f89bc42e75caa36da8f7095189f81c87fd24fd533e0528b942cccaca578b8481785edb2845063012ce78aa93afa6a8b39139b1cdac135d1a30a59a3130275f28ab74be35cf -8fcf6cead29c4295bb3db61feadc8f6e5d333c81c133ad9c765f3f432cf31f0ad3a1806fd34f409dc6537c998ef3b63253012ccbe3edac76663602bedd2c28abfb1f3f883b7383ac09dc42802639ebb83db822802b53214963eb988e4d1fb430c86445d4cb24d2bb3d7fd7e191a62221a4e0c24d2af499655d79ee67d642aa -49f63fd82a7cc170500f964c7c33165291bef814a1cc0362f9b36e733049e9c0030fb2679c75b5f4c36d7e7b4b86230f8ef88467f39b772b646344e0c3f010c3d1e0e32f58d91f2501f47184f5106ff250b431816d4de7c09b0355718cd7722e531cfd1cd922730b7f71db7b882fb52f495c241bf1cf4f0ec77a059757d2c9 -7a9fb187d48e997086c55bc2bd04a061db81985b6a37f721d7c55aebbc36b5fdf99558d07823f53b007858e38146a62e5ca25f100e0d26f644d2c5e5949afa8b03d322f626eef137a54ba8ba9937233509e3db69ef2ab64518e57ddad3cf3f230b7b889f613e9037c49ee18c0ed3fa60dbd4ffb887d08619711e2926f57f27 -1dbc112d9cb068f7346236d0b168e31728f3c005ed22beb18f0708c345c23582e86e4306c944e1b2183013dcf7ae4d72dd6705671f6566440ed19622d619822c643e98c7c361c78aa1cf4d216493854fb3ef4635c3c265fbd43c6096f3eb459cbc8474a44998492bdd286c14e328df8a73e421ff5ea5ba8003fdbba9cff842 -2e0a8e32f7ea5c60be79ba96d87242201c0e83cb1db0582c5e548acd0e5c79b0f6025521a22af244b7490a8aab533fae10d22655c08f65f36ff668811de6cbcd6912b88f1df605ee4ed92606e405d44338a781cf0c55b55e1c61dca12c5b6714e23963712a6f6cc39976d3cd3f5156b0af67d59fb1f394a0909eda39c97cf7 -e96cb1a12606dd36ba6c07c41b00f5528c20bbce7acebdffd14d298ba83dd3af61a1da522b4ee302a811df4878806395249ae13345294501640f8e5c9192b616a49d5d1bf30c48315b33def4ac77ad6291be2be111c8bceb45463d961c5da3a0dbc6e7618c7478781c84320bcc32ba0c725f599ea2fca47c9480617c03bb23 -9426619c2caab2547fc917066e9ad80ef1d0b365b859ebfe662c81fe19d3f7beb819c3c122a1b88d6df0d4afafef05ddf49cdc2e8802432d29eacfa8f3d7dfdbe3776179aba4dc7fa113b1a63bb6ba896516adf6a6ab2e09feee2b93a493f0e65f969d255e24f72671a3f76b27cd20a86d0438a0ddc70f7501973235d99949 -14224f86bb91bbe36c9a60fc43dc75ee6901914cd332e1d511c2167e748f2f8b2399f33d52782b6a587617d6eb0877ce02123b097af276d012eef72e8e785477cd37dd04a287a0d1f9d32ea95e12a30408dfe61efae276b3569aa9cc355b3cbed0b56e671fbdfcad47b3249ad477ce7e823669a8e0f317f1b9f8f9c5a7a787 -0d5d87e057747e2bb07378064e3b1fcf2cebf2ef865c1bb9fcb567c5c2d6ecbfdf9ec7805e4bf36e09f3ec3c4e696a2910d382497b1ea650aca0291965be3f893994626769aebfb03d19f9ca084d62d8453a637c4791211f9e4a4b9efdc6669e4b0328a33274cc3de6248132b01ea2ac56160497a19f1759057ecf9d0daf9f -054f10d9203c2cb2f2d53d357ccc1fc400be9f20481f0e2c095e2df843d8d393521d3b2d6ffd8db68c1468e75f15c4378d07783a7d3a956b4f5a9698f368059e84f406cbf60a9157cd734e81ad0b07e8c67f96a408bb246d2d47f6bed1af8c9df5bc2263d9ce0418ca8e57ec7030bc820c1fdc8f8e0ef1703d3eaad05d19db -e49d20a80b44e6b5fbe8f1dca5b53e7de7a0d699a64b35ba61546e8aefe6f608dcaf4ca7e202726d1f118773d4e161da4dc6867956439bfc4da4e1b4d45d98674c395d01be779a22c12f1b9f77628399acd7e9f9f100669d57aa992434523f8a1942dd69ea3b1090474c3b9e1482f53a9e0c9d43517165416327f98b6424b8 -1e37aa1dbf1d976c809a8fce1a713b625883b2233ae2e7949196d41785307e538bf1c2b1f1dcc71ac96d76bd34f26085752a616930940a2cd6fe5d1ea6599d6f3a92fa9272fbd899f4d6ae7d6173b933cbb95c49ed8ba27cbb20d639b692d9160d4d41543f504ff04ace06759403db8bd42abb37225b1b72c04a6367e2edd8 -aeaa29249bafb5353331f4cd42b373f45184c5bbedadc4b31ddb226c607e1e68f82070850194d31e9368bd2881e2a9fc7760378b44f7ade27aec4ba4a74de72d2753558ef5840b8f1ca013afb4eb9272ea0a6e9916817ab0ba9691a015e348fa3d500685ff999f91c74a9a72ed499b8efe4b8e5bebdb6bf6557dfc8fee44ea -c6c9c94a28191c714b524c3c62eb285b0b93dc4162d13c1fd1c3ea2a6209566f2b8d8725ba60ee78231fc7f7d54b8f7095575453850fa30fc4f35ed7d13b624d9d4f1ed0c624ea561d8362ef397d31610e06fb18c2a64dbab31df2779af4134756f1e1a0de30f9bf9a12a3377e72717fcabb6de9e207ddc511eec03dae3f3b -9d710b9c5df8eee0773ab5af103d383a83ff26f92d29702802d3dc7e33c53626d41c06459de547d9bfe8d62e4adc9aca779aac7048954a42a97de0c13aa3298f2d4a1bcf6c3b012f49ecb90fc37a17c16e35a81d04d5fdd3a8ebad6292a1cd5edf831a7d3ae35045c12e3e7ecf9fbe2331dd8b7650987da815f01f9e0dc261 -1fcee1b811987a752ebedd4857bf39c2688ebc2235c997ffc2e2aa833f132b61241c48b4b84c61ffd4fcd3cbf7b569e42624e02e80f471fb1fed83e9c6eafac8ea5bd0d33b033661bf1ac89a13056a21a42349a37bb094fc5097b306087a77cde8f9b85df6082d62938f539cacd3bb3eb690c729767712801c272ffd0bcede -ae1f2dc6808322930287a020a2d843058e4b562cde75b0f37ac94fc9abf0cd7f8248a1f0fc70c3d58c21064018c3ee44272fd8d56c6527af50e47cda397ac4cd3bcc365fd8f441af41edc41fcf081f7e73f38f98872cf95f1915e66c43f06c68cce9868e69c570ac36a2bb4d818a46c985804fce150637749cde4495cb2620 -7dc942dbc2c929f80313b14d27327fba035214d915282d319d8e36e243632f71cf917ff964b97d26a00f793e452e64fd4aa229b40755011c6016984fb12375b74397f7ed824ebdf86648d9997ec708f30f985ef7f100fb309148eb12dcf8a6582c1a1cae6ada5e06acf0a562d79b78008575a547505182630390d4e0c4e1fd -def9e529d96a92bb602962f54866a7b29107c949f1388013093c3e34e7ac8351249d90b30a60587cf4aa7411b1f526f991d72a631a2105307b12008283f5ee36baa88345d3859d821b03c097ded9df4122b0a4b294350fa3404179ff2daac414a973fc51fb4a250d320aae115ab384726b2e1b9096e26c864df7360b516cbc -0afcdca17101fb4f65d0895aa2ab801a97e26cf024b656ee6785e1847cf2b135287987b9ac2efbb673883317ec4886551a892e83f1be0c61febfaec860736509d9e9b4c756e7a0b5ad5993266aa6d1ee11be77d8b90f3fe2e8a0f9917ab42d28609db7fa218000d840d7714a9fc30c41cf0a7b0b3e78f7ca7c907b289b5fef -f4619e200ce56090a0de35544137c83aee3c6289f99fbaae9ad8ead6416206b1c03ec59062ddf5ed123b37e34948cd2b2ea8164b06be73d0d54cc98304d6432a3f6f3bf3f6d8ebbffdee3e47bd9bd22c4f9dbe42a926c09199a6b17db66b61c0593d766b7bf2aa63241384c0f32d61e020082118e08dac70f5034dafbde839 -db49b6826cf37832ac11829f2aebba2e06bcb179c2e6fa5b3a1a4976081469d50d64ab44e8e2f94764bf3c1a3454f057fd45ede47c9ebfc034cd07cb5d6eb2a27057af83d6b123402de65ee88fd55c30795270d122fade06b80cc4b237818085e62e2b8603638b910baa4e5f688cb31238568b3e6e307ced895a6684eb7fca -bb54c91ea12e6a8d996868adae73cac1237425c00ca1c09a1f29bbc89e59fff8d2069916b51976c89aaa64bc58116e49d92bfc8140644210bcf4b3e785a2b6485ddd2157815fd425d421dc69e1b8f1ea1bb6fa6380b9e27fe67c792b05333acb05aa8f95323eae7ebb406ecf96cdd213231c943b02e3c3385df462e6c1b504 -6d58f94cdd30ed7747797ee142d44968ce450dd46352003b858e73e4d07b0f1d3fa872d2419a88be3889f87d7ba0d31052cfd4f0c6644f24dee7fab7c9bac7d8043a253c83d4fa4f6a5da82868e43064d50924cd155ec5751f44768e249c96e78bf703fee7b49c63cc57a8097125e11878e8410487860481077a950605a604 -a65c43e955eff1dcafbdb807afcc4d780b9cf39188e217698a0e09b761b3cac7bd578ec4bf5169b45a5d82506b019b93598d01521a00eba75863aba9e360fa24e90bb62a02f64bd9caf4339f787ed8f2a0e6be587e622caf7c9994336a16f96c1f1e82e932895100f49cba410bc594506b6142c2af6aba49dedfcb99e3bd23 -f6e1013c96f3163c55411a4b64ecdcfe9c718c931ddfe9599bcd6670e831f6d7c3451381a44e6c83827aa688e1be4e002ba0251555756bcdee6488229d4ff0b6462a38acd17990788293df3405b667a9466a954275bd1c148125fcb5623da03027a61ef99523cc99ba5718f25e3c124fab4f38ec79b5157739bcad24e069af -bd59ef843125a07bd83745d9664f79b412b40ce53254308be8672f73f7f1e047107f5e385534c881479fff9d713d26f1286de459c153c6328ba44e526d3bbba2b6475799e84499195aec9da34be296b21002c2182f826bed70ded6c5234c13ed40653c88da4e2685afc022e22f6b33989d19d6cf06cb6025106e42892c2655 -24071a67147c254a904a10bd7abfe3eb13bf474ddd385753e537c97a5ff42fe7d6409eabfefda62e14e58fbe4e6a961b55475ee469f97cd04437b0fe4375a95a33730aad517b540173e42042e4bb38bce522f68138fd35cd036a986e36e9e5e9b2d2aa9f6fc2ba39816738104bc9d3d12843773f51a1e227e949bb7981bb16 -b1423ab3cc0dee9a025971722e0078f8e2a505dc93d8f5793ddc91683637c7892041a465be94741c335c7cb30f8d4a195c6fc350a99f665afb964248d63dc236fab7e201dc6400043213437147fce4f849f598fa21735aed8a5e42a8bfbd786137044fadbe0c41d982f312ffbefcf9341f6f1e8d18374d933fc20f2a5e82c7 -08e707763f9330014b7b6339c71d5f08041fe1500e268da79ac61e24bb4ffa3967242a8c688edec625ae14379ad5532b33be8d513db0405915da79141c23d0f46299e4e39fbcdd4704f9b618b1e73b8b618f1b9d53b31d34f11c91fd786331c0bce3a63575a616d949044fc241a125b4426f185c8cde39d68c0d094da11440 -76e777c9958e3e9db8e80afdc36f30f1596766bc7357c5bf4400f843038f0e9dcf43b0207227875e306b44bfa7e2c92288880e76ca80a24975be7a55bf27bfbedf0234c20e5f3a5dfa7cb174e4533d7f685f61dbf1ef23318537332896866275b60ebd8a036a1d01d9cfd8bc6e7814c18e928ff189405ae91707ba995b6a5e -a0aecabd94029b34e09aca3adef0c9f48e362feb00caf969c5922a54003394abeac728b7d68f17b3ae58f6503b8697ca4668ff9df3f328d922f7d6e3a58172db6d1bf9a1dc110059e25bfb18829a0121c417420676bf90f37bf7e3c9eb7e3b65bab1e6484935ab1cd496932676a33c02829cc39bd386074c9639be07b4859b -64af2b428c79c25ed460ccbee77725afae2119b1f9196cc30ecfae5a9effa104eb71689f2e0afa38ae1a5b08045886aab635e6a62646a1526890cc276b00828db6abfab88dc2f14ce5966dff518693813396d8d0f8cb1f437a800e5150b8fdec1d431f81ec7cddb4eadf22eb3e9c0116d36e175093391668d3befe49194bf7 -fd4dc5a27dec66c19d88bf40e0abab2297ac18e63daaff6cd571c717cfcd79e8c0811f4ba50d191d7b0b92bf93228b3a288cc363beb68a055520e8e1bad3b65b7c9acd753e11df768a763dbeb8df640a788dbd8659f44342cd17128ff47e1b372c95c562f1d31211ba6871c8a877ad39b4edbe382499b254b778d6c01720c4 -b86f8c3da6f212cc62ae297721212d9e033935ec7130c7a6f98bd28a8028c8cc5644dc06a1fddedbc0c6ca77370ac2f016025bc2f53663a7c83a55cd1d21fbdd983fcec08660c881ba1d01b2d2685eaa278213f71a58e07eb2892a0493cf269963854584f1c452d6762aaa05d482c75f61bd2d13952e3b04eb359d6204ce4f -1abd87f33581b93305f67bc32fd92779ed3f95ef120fd44207fc47b3e8ad65f7ba4a22885b9d0d217bf34bc169b738abe0a2abb7a0d2465c95d6d16526937db61b8563af385706f1c2f970f13e321e7d8621edb9e444f2a3a9f46b2d9d17228d670e2a131e016672049161b837730cafc10617b0d20b562dc85b97516a64e2 -0a38952519dc5d8bd2827a8b8ab6555e2c86a8a3e07447e0bf8e0d393eae352435a70ad83f38bd657820e028c40e2c7267c91b9826f5210737b6999ce841410b526f8782c8816a612c8b9457fd19e41c9ce4972946738f6461d33302be7978e8bbf9aaad56f02ab4e8ec01364ceca2bfa62dacc60e7abd9fe72a55420f7c89 -a9a326b55d239a3070fc4c316cb852c7f28e4481236af2caa71ed3a8088a3e77e027f8b42d1bdd7e7334cf2ad3be330510ff3ab45f16cf114415a14e104c900e3b87afbdc3f0f3af28f25306c1416f314138da6e4585d16cab538c6255284c4d05520a1aa959b62d9d8b917b44997ad2abf563ed70ef00beab3bb9562839ae -f7e4abb3dc9f5e5734b44bf7dcb257795891325bf746a9ced8ceeeff486769ebcfa27fac8a2353947b2bd378327dbfddba3a67a378099809b6c6fc5f4e18ffb8a7d3e1af912381dab3113ac87a24adbc08f1b6dc8076a29b88932918e8fcbe52b705daac632e176e6044ee7f4587d6d0370532c702c9dc92eb3ee8938c08e1 -e23a9e1ceefbd05dcc3f048ac631e38c6b46ace97e893ec455dffd1bb3873b1a85703126d7bf0a47f5e0633bd0e7dca7f174137cdd5508bd1c6493cb7b619f482c541ebe705f83c03719de967e083f1c9e3a4e357155a4b20553fec360ea773258ef477f8952c5172b10062958f72f2964f653ead7d3e1c4b1c9efb2bfc324 -ac2de310776b8cd5d910afa419c441ad7d239fe39f6179d20e0bb0db05f89ef02baaae6d53f39522fbc48e613aea450926d42560cb970b2d18c9ef992aa73843242fd5b3730ccb7da14e6dacd48cf0e08a22750ab9046034f494e4909c07b0e9de13794247f497e5a0e9c1354bbcbb71625f19a5ce5d94cf5af1ef5ca0feb1 -7c0a097882d41b7889a1e4da2476abf38521c490bdf845ea0e246da370a2f68029f4ba1ad7c183b442d63eaff498aa2b33604edb786030d033a37a251b09f55fa77b88ca7e77b0f9fa91e323049b344c82ce7d79acbeb379c4b23a8510e20566878268b2d835273cf5b36614528a4693960b27df4f0b93458dabca1badfd74 -0c380d30512e68713b88d193899de03552567267a9f99deac408fbb832258bdba1765bf12c0ab5e020ba228363170cda6aafbe8eaf50596aa41635d6a32dd60ae3ea3dc2d2850184fc2e9567e2d827c2509386b01a10d255e317a2b5d7354d325d52c542b3b3fc740c9872bced1b4833e7f2788e959847a002eececa271dbf -fca11fb781880c82f5ab623456e8f70264de2a8ca5297ee960cedb48de05f41a66a5b4a60d427f281e71e19a5c2c176a004ba276f6e2fb8023227a8a46354938c656e0d1fc9b6d825584b43b73ab00f3b2b265af5a56208f8b8392cb954e207ee90e73782592cccf684d7d3a4982fa925195df7b21cebacee35227e9d58a84 -f6f035ceb665160084ba5dd53a2a1f5614a5830c28ad191886692067d5e2a505db188afc8e074a0c8d31c6a8726440f841c53a93f87f0ca724a6a7f4dcf166a376df218596050473e3eee63a9d0a1f40f9a59dc400dc6688d3fad7c7637ed6bacd16dbd80b27f4f8161d38c70f2f776519abca443e2ea6f6668080ffffc680 -81d96a16fe53a299cddc74f53169a10bf4c09613d88a6a12730e9728d00f1bd91efe8bf2331885589c047b1a94be3350d3afe43b35892c45c4d7dde587c1adbfe18afd376aab2ba652c512eed5ebf8f2da844fb30ac4c86dc0838f204847db7420deb9e059e185f968d134a4a7a6bfc09ab4b93e6e1cae167f6c984cc99b97 -c1feb59e31e3f5c87979ad351a5497554dcaa314aa4d35cd296d372e6f9344655cdac01a7c804e6aa229fb65684e7693dccdb7bdc018e9eb5d7c4eb739cde06ae9833ec2aa9d437e226e0adc91b6e0f15e848c36d7f61214daf57bc1bb10c51f8e2d99b0d8d04c68572da6b5ac1871911f18f024e80cd1c77e2b1596b221ac -c4da476a4a54c91097d77393a51626b2ab5ebefc17e69c47c854b856a5b17402c55ad9c587509116eb49b3f7629b64ebd9d6a49fdb03318238de4a7a7351394225a80f28bba86937399ab6b1b02464958ebb832d3c1843713309ddbdda3afbcd1f2abdd6510075388585635cbdcfd6d3c59f71e90b287daaff8689d0a3266c -f1470d27051f024eb406dd6861b2212026cb1cc188c309dc1659309c970b6316b066796844e605e606c7c050b548fcd702a7de57df2656ad727fa271f9ef79393c3fc8b2bbdc43214616c3db1587e317676750a3c0ab61b2160d55d18614e35276cbc77d0bcf0a5b14301dc7d6b5ca78876fcd00d843d6023b52fed7c390c6 -4c68850bca9f1623ff9508c312fe2d6e597850bebd23f705295e606651f021e1554810229fc9a98ed50c9a61bbc464ae8c5c6563a0ac09ba85a33f7ad555b51e59c32c7147b140822b9182d29521652ea64a22e40b2456c6044d28cc00f835e83d7560a146a7ca3d76911e72d01d69d0eb8a139c1fa62f69aee3c9642c08af -6cba103bbfe56fc46451d775a826f54a949011924ea3ced9d739643c9ce3a45ce94998c69b6baaeb5c17e12119ddbeae483ede540c1912b153ee7522fe3f8bdfa76db94eba99005440ddd907c59aebf5cc76a7c5e1a60d40eb9e56a028c5293356a7bbe3cfb02350dfa177525c7637d885f3eced08dbbfbb365d1cca0a60db -572d07e0a6829ce8ffe562c04553258b7ae406546b8d9a676d931f30355e17963a3f11eb4c9e190ce2c28347c164faeb9051a815d47c2986ba2cf3094caf2c5f64a2422f2222743c1700a21b79b1ffd8ce31a3589239af38be807dcdcd355c8e7cf3e8671764bb23031b5ada1acabb63928267cd26b2c9cacd1b4f4b0a71c9 -426161788e7ee7f32fb5520ab759938beefa4fcdd968bd53701ae9c27429b5d6e059342b9adef7b56b4c5eee2f46e0cd472d48f4b9d47d04dd0a390f88a2be3e275b65c3b7049431f94d850d63b2b2154105edb0527a4f712cf523b75aec52c4816683d59ecccb03a26e151114dae625f446a713af28d7d8173e4c44624ec3 -30f84446f46752fb18ca83e19392b1570739b4d02cef8427ae082b2cc31d8115bc18f2d71940437f77c1f98046b243b41f0ec5b8db811f1e8785fa163b58703e813161ea55c4ec7bd96206f318d2ca177d2d00df885cde32a2c589323bb40ff941da9726655daded4d7758dcca859606892ffbddb1889a4a0b2cca0470051a -799292acbcf80ec3d459dc25208c73b0923bfa81e73e558c0a86c805bc450293ae9fd058a5f860074c6a200517a59c51582ef0c3ff883ab42cf184e7501919c9249e4cf3cee68a5df88e6c3d25f865df22ab77383427e73fc409cc5f24112251389c58d40dce86648cbb4abe34ca5aa1627202e281aa2261a37f6ab2e46856 -cb978aec861908094a865447eb1db7460287e2c4aade4853895eccbab40eeb427631087b3602286d2d2756894d74753afd3a82e61d33cb0cf748dc9321d7909abf4c362a3d00f1fb2bdb29ffe13427db353790f94629ff9756b2c3a4fdb544946d95d67f0b8e4253bc0272e7bdf1b84ea04aaab353a83bc2db356ef30f14d6 -ca7c6a280e8305a8874ac689d49c297c6a71fe61caa17ca8c1912701dced09cfc9436ec44c18b239c173e9f235e301a9aa2b23011d64a84a78d6f279e836257dee1dd4b6e44c92b06cd5a1a14a6dda6b7edaa4581203049333fa934279f0f4978f3c4508e78d348fd9f19ed2c0e7e39338b724ef376e351659dd0ced44defe -1eae9b5e53a8b71726c08ba2660a50c5a2dfab6453d60d03662addd8aeac2453a1366b46f3d8133896382636aa4b401005a3fc9dd7722badea24dc1388fcb9ce23bf480621b513ee70e2d2cf1493a7a32343bf24cca354f6bda4ce719baae7d2563529f3026a6df7fcc843f735d1ada133f59f131053bce12b4d5f28bf87f9 -52034379a9759ea86ba5ae959d98408305b3c4e03142868ec2e9a7474a17d67964c115ab811f7a6b11425c1ca749effafcd6fe5e2cd8f709460902a2cb94111691d1f775142590fef526b3c7c12d0c525b7c95ac270a7375918c01b10bd5c0fb9479d4d4ec1cbbf11b893a6f78dbef8aa7e59cb014951015c89341c09e09a3 -e498cf9d17653bd0d93f4ff0457e499988e5109dde6b58d09491910869d7fd39d11a9d5223116b05bb766fcc9083f5f70a9d061d678c1655261b98b0697253b5e141a9d47d119384361241f3a1bbc7d80e6a454762e54400ba253cc72a37e27504731399a4d0b32316c32ca317bb22b4663f464dcbbe0bf81e1e0192c24365 -cca2cf7f329ea990a8657775a2bdea4773d2f61f4d0c75e3c5d85064ee3b042204b77feab4e3cfcb7877e8019c7a94c69e309c617dd1fe9faac9975e52cac77342e5fe156a5660abac1c3b4717779650c8d347322e8df24f47dbe690a78683bf67c01fff514f6317f8e52f78bfd780459818f32ece4124f16c6d43877e9d81 -e2061bbdcf8dc6aa52b9381528ea453ca9ff79a476a157cd2c5fd48f21421ae7d1447158ba806dffcc23cc37182a1ec042d8c9ccdc1457e579a1d07fb1ea4b76656e725a1cd26d675ba20ca83500ce9833da0c6125722f676c181164d442058ec5554c11ed6e4fdcbaba1241ff49bae20dce32e390bb0b50c2b815903a8e8a -ffecc0676f6e5e86fdd36360040c9910faf0444df024d5c7bda00c59a4515f928c93d21a94ee872fe678059c8630bf7f81e9ae18c367456942f630c06cd0964b9684277cd2be69ec352ecfcdaf9b831dde441bc3ea50b8017590e68a79ba7eb827756e43d0ef9930cf498081a35546779536fba79bf3a27f05d32a905e7059 -f9f021026254d242c6660df02c95013c117c6d24ebe13841361d37bd46ae35e9666fe1d038ab598d9d9b390cb84f392160e25118164d28c6fd26ba993a34e9c43438f23f3a0ba3ca8bc64930ea374933d1e78303222529ce0e863b6b23e986bf56273f3fb30e0713e480e10db649efbaaf6e1639d350b248774b104e7faebc -be52194905e54e132b02bcf999fa2467d0d35b913f81b23b6779ca937d80d225935e3c84bc5d0351789b514e08a6371a092a3745c36a6047173ee1c00f08acb111bb0d51ff4636fdd5278aa4c47980cf4782747aa0f5c48f95554977acd04e4bc95e9f3e57c04add8299fde93cf0ce05f03d5f795572892abf04d5e9350c9b -d5ab7dfed8a30a55b73abcd420552acfe07a306333e4cee21e14eb790d3275e85af87db5ebdf952ce6a87fd1ff3413a7dc2ae3239f5ba51638e0ddc0e8bf8cbd73352856d0c71286c4670b24bc7e45f9e94afa897b24fb32dde0adad6edecfda7ed4ad98e2d3b3ab70fb48146dbbdbba0cd135c5eafe5a39edcf57ef873d52 -cf6924d2b449d199e3b902bbb475b7753ddd39f211a7fc6846b6d47203c4560a9b2304c86dc7a45dd5764d150ebcd4154e03410c453ee7e50b9156b7c1100534be5febc06046f1c2b7b28a17d1bc83a812ac100233b08daf42fe4130b7f650ba2e456f83c54b688f57fc4577dc2433aa2003dafa0390fd8d554e01b4863d64 -55e65dfdca016c9cc4df2749a736829211c192258e278f8e7b93089554647c545f50f5e7e2dd6addf75c20574c96f8182f102feead3f2fedeb26ac1dc75d93296d87c2983402551d21ec439ab0221a2c8be1f6ce0de9e44eef0a2e21f7471cc2f2ad9be8682b4f48e91aa07c49743225705e541b09015788e511ca78a1d537 -044e211b7b69d6c3f1e5d1489f9d909b08ad05a6488c79ab27578375b4ce7187646501dd31e0bcf7eefe884cb43ffff02dd9d0495f9c896bf2bedaa1fd88cf2f81a2626e6b9ff3640458b833ad44c6611695a9bd5ccbd6bb0f119d394b2ab32afb571a9cf3aa3119eb6b653d746dd90a8a79375474d96fc8bc274ebb15525f -de953cb11a30556cc9c158f28d274a1b0bba86edcb16deccf8ceaad0e6e296296d3650eeb9e31977631147dc46b4ee8e98a8f2dd98dda6bc34160a90b0853aee24b31fb51bb9e59648d491708295e22c9428539deba079170f84a0956e8e6d85aac3218b2c0cb14d86af8512bfa0ee21b8dd8461716d539129fd604def7e0d -64299308cda32c03bb63a5bae0465938d656fbbee6218080c3646853e30553b4b7e413be75334c607ade51b0111342419e48abf43a336fc56d27f1d826e3814376c7981dacc200a068fcd1bfa7e5466766fde52d26e23f05de090b134f6abc8e7891685670b646e3f08c5938c058a0d28463643895137745ef1cb9ec10d96c -99deb3909b48b545d9f105e115e339543e058fef584a5eb28c465bce0972d57704db6b7a9a76deb1e0b09ef4102586e99c01f8e5b4ddb6871ee426e2b14464d4b0f9fb6efa1d26cefd389e7e3abe64f472a7b26cfd2d01e925e55d8e16b1a3f724cc03564f4b02a95c1159b9bbca97b698489861f971def07536dca84e9893 -9f49e1481e717384e4af2a3d8401434857c6afd424518f073a0c6611d0640b381c7ecfd17e1ffe8ffeeaf029991aa8b94814ad301cee7f9ab2f81471747d55c3bc61ba3de62827cab35b11c70f6dae3ecae2ac474b7cbfa5f39e382e979b63bd4a11de546c8be9b31773711b5e67913c18226f84643afa17b91d9b324a7330 -9a38ca8d98cb7f004bf1e9b587463cf9210a0a7ceed051573e312322712f5229a7a6d560c3503fa045a0682266b92c0136e0b3c29cbfd6fbd95c6c9c4be00480e892590bb12cc2240c98813283f65ed0886f781f520d36b037a7d08ca5513d4a90e4a883829999943f2a7fea006f074c898e7116176671691a2c95ae13f83e -394c79c281dda817b542b762a39ee76e224af79c6a43776f09ec76604d3b4b240f0bad91e4d856e61011dfbd53c06141def0d1d0ec98123831c693cec547a0194ab274a7a2b9397b490f2dc1da0ec2d0c180cbed2ee5fe7e366070fffb3627eb8ef42eb9469828472769c2ad188584487254cd2af779be1f6730684cbfff9e -e6c1b7bf5ac833e7fc34b7193f9d51296c0d719003471533da36f1130855177b7ed3e60760155c86377b20ab674b69e32365967e28703e3922b23a15b021091e07c0b75fa538090b235dd96be442c3baa1ea8add831b97d211c2ff5b3fe53f038a1c12144dcc8361c31ffbcbab2167a4f0e51da23642480214498125011a1d -711771b41153fcf6b934c0c25c35d5dcd02db5349dd083518aaa14f32543ed076e9fd2ebf53d4e88892feca7b3a5189470b21d142b154d75e1ede154bdc78592ecb14d82c6715ba1624088c2b90357f3416c01b34397aaa942bab61df55396ec5ce23407d3dd3c2eda7f107a401017f232dfbd1b150f6c0ec3b93152c74e9d -2591f3c6909f378b4947de867eba25f89d9e69de798b652103bad8bd49260f8492b622c282d635270144a12d58e0492713ed4609b1d609dfa57b9201939e9f18f524b019357f3cafd9f6c12679d8d9400475f66b93ce1135667370068a5b527dffad644143fe8741d56807e046368b91dd66e75a88f74637d0b5a59c04baab -6dbf44b5b89e702e074d7dc6feffc48697a74797d773f4d8c960bb99344bd458751c4754cc2b4eab9c563b750098110697e586fd3b9c4bb33296e34de4ec1eb86d8974722e53559e301495d26c3197e65440582e5f54dccc5dad10a14cce792602c8c6c7c617f55a759981e358bd1d33e659d5c77cf30687e502126429171d -da8c596be3395a78af1bd6cf2b643c2de81ba7e1e22078c91746a3bb40adf99553ed61c621e2b24387394f18a66d7caeb16daa0ffb60ad9b9d425090a9b6a5e0d035303b137fd254cd27733d8b67058685fb62e343f874a7941162fd5580cadad88c7608ac4487a0f14058a9196d884da3a1916d7079617213d5f89db244fc -ab39c41bd7f51b18d9c9257b16ab12b8d921020105007a5b2d02421a34af52bcd2ddde0f344d50d90565119b889595dc8dbb37c9c9b8cfb965ba3839e735ff91f72374c1eeeab92d472733a3d6978840ed61465fe61979ba2379029ba59c50aef02892a39d8320113f019d32c34c27312089826ccc562fb970982fdd14de3b -dfe77f5ae32d49c99adfd6978d6aa7fd7fa6071073f8f9bba55fbc95b54e7992b953da492bed8a5728d14393bab1f54e739de8c3025a5f8b61d171255e3517ef9e19314b8d107c6ad9d41f1e40ee4bde3dfb0efd4ab519007a77b0e023e08492a6de7155233d041d5cf7b7e9e82039906ddc523cb8810217bcc199925f31b5 -0fb6a8d47d3ebeb1560f5ede57d549b0763e0c67a40295b84e8ab7692d05c13989967e616a427dd96f4e077428125be951b10b1e5817cdd22bd232ff958c526d256a5670e3219e6d2a3ddeb6e1ab790176bada7032aeec3a9aabcc2ace9aeac918c01f337455ed11cb724e5e258d0628853eca184210dabb0c6ed6b95023be -9057833399b78aa2aeff5dde3f0aaa2c2009f9efbc48eb0d9d4765dbf07b4663f228ed941f59a76d55fc9f67c07810748456b8e334e77e6d4f74277e9261d9ffc2da1cdd3128bf863691fce8cc48a100359b65666ba38069d3b29912546ea0a16e305db0d1545226c50628d4f6a08c408d64f2474eaccc41695dc2aef0d4bc -683c40a3f0f94f9948d58efe7822a240e172491acdd6e8ca1b68f271ac6dfaf2e1705951485f15f8b9432b9a72e8c1bfbd0402a0e50bd3e71cbe8cf62503794ca877ebe9dbfbab545adaf15cc37a2a97d01449214036423409ff042a1dc07ad4882dd5a8d10b141153e451a4af2c2662bdc8a79061c9603b38e9b5ac67f5cd -aacf5fcd6836a2de4d2ce94d9cfff1c2bbe4f98ada627d7f27b8d44b7f0e37393c19ee16038dd6346f5e7bf07e0cd51f3604732359109b8996146c40ece11bdb91c86f4b6e7e74d8d8918b625705ae75ff05bff1dc185fdbd897241b0b74d37591875cf7dffbd6da4a4fb3bb516e141f0f7ead76025343d328965e3315df4f -56217f9f55afbe29bb5523ccf7ff4aa3f42889a5f3e85a7a22f0475aacc8c4fab17c4443ae7a72024749c5a40a5bf8c82b4f58a8c09f9a4ee0cba8f21f1e178e8232600a43e2ff86c61c5982227f95c93cee2d4674058d2127bf050fa113d478cd1485934eb9e37b55aeed7cd56e4db12cbebe8e666f679824c09ecf92aa2e -09fc84edd85473d49de862a62f78ac63d87d53e61dbbe5b74932fe27e2b8fb73d60b154f8a456bd2f570e94ed58bd8201e460eef859d800c58c3b59d8cffc122d6a334d96f52cd88491ecaabbc25b414fc2b9efee56a0ba1c673151ff35de2d810dc1c7b0f9ec2c823a8b8d835210cdb55cb2e959533ee6b54dfda46722d85 -e3794c50c5c9dcf1dd618b2035e8bb8f0d99520a9864f2e96021aa1db1aab35f3e32e45c0bb457e5e117f313fcfe6938b9974207c10775f906eeffc4176fce43c79cc555edb26dbd02c54cd3df65838b6ce17a6604ac71036e882eca31325344fcde4371b928e47b55595bc299827908e617bb4b82e5bcd954c439c84fadfb -0bfc9cb00ee1e5d41dac337699fa4c49b1a3d2214aada8a7dd63dfa83663660094d6d753493c1310da086f069ecac792e1e8598850af44f9719912be8463fed1d7ec2544245f70b1833d1af7114596ee3063e3ddaee634022a6fb39a0a2137681fc136ff3a21ff9d032089b9089a7dbcacf55945108f30607bab327a9de8c1 -31d1484c2463a8ec2e7072a2c0b14617e2bdbc332113a1f3c5d6f680af024929045070fd4d49f1d12015f8049a449835457b4b9eeebf04ed5f805020a428d607d7e4b8c8c406ef9faad69fcbed1ae04e4d69eaaff06b91d73b6aafa2f6d5378daccd9c6681dce4383e48501681ad611917f734b3d97174c2fc5c32bd3cc987 -172ac14aea7ed03f4ee707ccbfcc64b29d2909379bd95c96caa59217e8e33b6ac95e1218d6c3ebcdf6479c7f7fece2905e402a85df4430e44fe77e8d6ce4e4ada1031482c5e423dcc6c1a7b6dcf308b2f5a88e8c617acd02644ac99ce42beae85ab78473d01cf6a4830e8e83febacfad50fe475ad206654e567d26abf4766d -cb8e75a9f62aaed4cb0d65d6af505e05dcb6f2e9b54f76f2f40f6dbc25b60d647d96133edeeb0673f74bcf1a3bda8c9c74f92f7f3f9026ee2b84ddf074d5b0d305d45253a56b33cd66b515e4a747c2ea5b53956044bdbab253d8a52fccaf0d6aa108b793840f6d0daccf8839204daaa69b3cb2cadfd063417168cbe3bebf55 -719fc878f02aaa2cdd1d32ee97747b5f5adc46d13d15e986360ac7991e65075b2cf47dfe8d35c9d47ae8d20cf5fa1b235852660722e87179910378bb654f214666338884eb2f0bb7524bc12dc072cbc192520c7c62a193b5649b3993578d799eae9cb034044e93b61f80946ec63ce375443d8054620fadb5d3c894f1e15b13 -7adcdc4de399976680989537b849876eeaa2b443433a4db069e42eeec7c596ed6bcb020dab6a476fd5aaf4c3c2a3bbf301b249f5a0a8bbdd54b328d13f6f930f4a0fee218be4f192a8854fd9ba70b99a30f1709988abf51cd282896a4542f5835ffa7b9188cbdcc381a9400911ec727fa7942d47405a469f09552f51a60179 -81a7fc216110b492662e23919146a0baee38a5526705a1434306031d4914041964763c55f4214b07a5a43bf6917f34a7b00cbd233ec93a2d4500a601b25a0b215ce4d6405e1aa53a459e6e4ecede606ec4b8ba535e27d7df3902f0517f6eeeead89841d1b32095348bb19178169740fbfc3cf2f8619efea7dcbf4b0f95a4ad -15939056f09a9eb4f79783d82c2e18a5686eaed7ff7381bdfed64f2b364c0329745148b86911cde3e293f30ae05db48637bd22d0bd8e2fe5a236229213736068513b9c8e691f7b2a659495c81a6b70774140c628586d25588f3e6d16434ec06c058fba057b593151d10c869f55797d313e06afb3fb16d01c4c291058e7583d -6398ea0cb269ac8d2aed9c9b14b5054cd1410d61f4aece806a6b3cb7d6db1394153b6e46d755c148b7f9a923db78a9ddd36df5dcdaa70d40c12fe125935765ce3297a24b50acc37cd98d05b49c141e19c71c55b9a807a0788b79d6b6fb3bbfc4312e76f50ca414895430419ada545ac3b632cb9aedfae267e75fba42d213d6 -50ea89afc6259499bf1ab0cc9cc47e8a323ceaa6018b1f14561f66e6e450be7b99ef54b39eed97b9674dd6ff5967b450f3ea40f26f222605a07c5235683b8709165a57324fb8b68b0b328f083505ed8f18a67be25c64c5c837fd218f85580d31bc4a88a296a07d0f8052f86944fceb8492ad0baf0bd911e927088853a01ff5 -a2fdbecccfc31abcbd7f50dd1a958512bdbb34a0df4c08fa597f1e736e3c118b2d1b3c79f199cb3adf45782c514134ae761e0b74bf3a1cb791212bd92b5d90a097425ee12161e0073ae64eb111bb2443fa5faa7b22aa1735a4eb83dfca07c7dd90aeb8fbc357ca7af634dbcb9ede0751e9196657ccecbfc8e5eacf760965d2 -ca09cf01259945f5fd92f5ccbe2f63bd939ee89f2eb4bf6ffee83a1d04b6fbe2676f5a266d06b7e9d762e79f280f3acced9672c9dde6aa50c68a4627c59abd96460a3839f5a7ef734c1021f4aad7a481911e71ed9f8c7fce0dde8f1d68fc7d2ce95947ac080378954246b8a09a1c53c11111323b1f04ffc08fc330ff65c590 -f5b186342c0618d617c9a9b3ad4a58a37fd8e2f96d8c7f8be066eaea8db5155607b6e0678b9f8c1d20100d4b1e5f8063f90484747f5ba080f40cc0ab075e5b6605a296c1effdd9a3db89b9c564fa2e5033737d084929ec3402e5dfb594b9c69e57e9aa53b12f242303ec7c3acfaffb3bd4a23718a5b4ccebb09e0c4c770a7c -131233f6e402e1fa7f8f9fe3b8572a7fcf5074735c984e4d7d26ae626c609ffec1e1342df9cd6c2409b1c9dfb7945914ad4571bf97b6ccfbdb527f749f09c1ceaf3edb56f06e2bb4f75a99f35145fbaa2604f339a095e734dc504e3a017c1a69c0f545d61a0b2e5eb476e64ec60e7f5f101b6d1c2039c58a383b337d57b31e -49bbf407c98f2cb09f45bbf07c9f6d43636f61f6fb9cc72b0a1e66665c3bfadc795b274b28c862fefbd8c9df6415494712f4d39b6c9e8b6840ff6a53d06c00b89fd41bb3155c38d873e9da1fdeb144c40bed42d56b7d9369f7bf4edfbb9a7335cf9cd8f9dd7d1cbd555eb8e0dfa95599d3e8cb39852de35f3fca0f6d1d24a9 -56f93f4fd1a6619d112f30822c0a7fe9c2c844c5bbd59b6fbd8a056d88d22af574c272a8b0be09d988d37472d4094585e837f36ab119aeb02b9d3b4d4454f19f755c41dd926a4856bfa3c2ba360f72ad13e8d18506e30a9b01b83deb9c89b09184dc68a2bd29c54ede5444c90fb369e0ca546255d1b25a97ddc37092ccaf79 -8a4df6ae1ab1f6fe5978f58ab0f12d3a18253a661a527db5e4bb6b68b35ab57f4d351b0c3143b6231ddd0ae6fc7781da577a421b15c9adcfa0b7a850be966de93ac1a1e7f0aadfb026d2d275c3d37604b2174dd3bb7982ec4430122462c21591313e0aa701a10e8f580712abc662a71fcae9baf937b67c16195c040f02aaf6 -de17db5b302c189eb0cd7dde487eb7a897a006c5506af24f65c42d639d82fb78499b8c6212e32e14079c420c86ef3f0acccddf7ae63921adcb7f64cc084e6aeaea1f5c0b2b67ff411b86c6e788da96c68bfa68c6093219b2d9d80f854cb946cd702d076ce093e5d2cb2943540a45d145c0e22c52a3dc69ff278a46751e1ba4 -db39a4c5246714fccf80a49a520d887a8f2e33f5e6dec99cb3d8b717b95ec797b7f7ba2691485154171352c4d8d348faaa50f72168a0a8ac4922761cdac42e9f97305e253730d6ce6bf2e72e5c88b30d86e9d0372bf385fd5864b4aa9b492333e0eb6d90e194fad705b9a9800239b53f3055eb976d6372431e9694c4e9b469 -6d49a3e4182f09e34758fb925efa2e6b89fc2e7b820e8ff605df9446a6960d099f014a2c541950a71aee75677a871c2d81ecc8654518e3e13226dd0e7ed9c6e0aaa7b2be4c2af2118bd4c3058e0ca8d6043eda24c69c3751524493a1787c20c3780c51230fad06300cd2d161906190ba01956b4aed0b0b2b1938d12bd12c3c -6ebcb75fb6e0ce53dc25429733cb2bc11542715ddf9aed35302f942c9ac1bc0ea1ee18a4d1b09c32a7501c45a91881b60cea11ef61ddfe0cac4bc73caf3a8ef7a0fd5c8e6bcfbb81dc0adec060503519b151e1a7504a53cfe8f0704044c4cbf6a4c06eccc11f7aef476aaf8319488be982467bf55917a403726930d92a240d -c3af32db6f83e06f3964f8b22329b7eab6c51b419ecacec0cb45e82eea7af08890a85df3dd8a078c94352cc9bb22de7cfbf06fdc59ce5198d62138d563c5ea959d6950ab0334134c3deb6b78babc9746ef3d66ada708edcc4f70d20252ea79b4c195e9710f558a60b0bbf28ff9d34a400a76ba580cbf8f2f2aea376a82d740 -22bb9ea003a3b5962948ccbfb92574683c45db36edf0376cd8a5a83c9032044e23f695d700014054ad65037a273fd8c876f229902e4b64d6f660d28e412276cad4971f1927d85f8c89e7c7afdb59fc341aa415e83d9fee5a0b9b2dba23b499a4593e564758333700aee0565348d981cdb87d394b5bd72eae7ce76c4208e044 -9cea3a959243051bb44583223bce68b50719a47f783c9705f461ff40f40de2d284bec99048f8b9558b5aa3bd55771eb45a04d94555e6fdf1be530c1d0d39b8e112704b41ce0d7f86540165aa9dfcfc6aac9e2c1f1adaf871a937aea0b5cb6ecdaf64042d33e4b8e67a8e27ab68946c23a69703eaa4cdf02977273b775e7cac -1071ed89fe72282620873c5c8f501060b6a5a4478f43b19f63833372b5a45b0bb8ba292c97acc3ae6ea644c0bf01565c1a4324a6ef5420dc3b1058c186d5b373ef3cf7e5606b6fffdeebe23d36a634f3d5a87543d2e79b7c4d56c424fcfb06629fa126e6b5b7efa57b809cf83cf078b13ae067da2f9ca4e17c43c413cc4db0 -4865b15989d63481cd055414b4d35abec549c0b8d0ccc748d0b617481e44accf8136072a0a736a35f55467fb482d56d5c6115078eb2fdfa1b35d9262fe7efa40cbcffa8548463afc1bd47062a66598269b4af1a3c4ae0bf91f759b9dc51cc18e9205268436b29100e529424aec36e21b34c5b1a81480115a0fb0abc00bf73e -b90761bd52b1253382752af2916ea7a938e26843ee420dcd820b5ae0c32f3a96c586e3ac08b55adaa81f8887410a7e4b00db81f2143c59074627753055bdc3c7a2e6146823e7dd932bd4e4ded28bc218ed865c9f8d7a69c760d00dbac27bc455c254d539066ea5551e2654afc675cfd2e17acab2123ab0c65e3e99521ca52f -dcb7d5c044fdbd8871d447e395e1de2c9362e8eaef9065c1176a1995d70020318caed30d4edf4ab45986cd3e7cd64d57783523c3b892d27410a3d4bcad5c01a0ef6a92694c9a98b7c040b2783f9a1074d9e16fe6853af21d2ab3e985d904a0e04749565c956ec0ca450c67e6f826c4480c339b6b732909db08ab4550c0cd80 -5a585b9d3c52673bbe79f23e0083d1135030dea216596a2ca5e2f4feaf6783238197c21dfe92075a556a793d1aac9d2ebee27da1294665ea9b1edb71c15de79fec422c9d516511315742c97fd880f6717f303d058ff1ea803578291eecc227366d3361f08ac7ba33c47ff14739421098d38eb1da367104667607eb192cc561 -e8a80f2ce7726a65ed75f5f0c0b18bbb676cf82a468251d983352bd1a147134294762579018705cb98379c606754bf75149dd2e300aa5ecc8812edbac86a622cef1f51b8cd2b6cb8bdc081f730abbcb33091d4ac5a90d183e16278c69192247db4882da8c58b75dd93a77ce01fc76f55caadaa7017f91c6f4b2e2e7a3f0bb3 -f0c839f13d73cc8d8293bc981eb9c5866b9a3b1534c064384e1437023528fa6e6169775882522275040c3e373cda0c2743d078d7a04f5d29b622ff4e55c460909d18ed428078916824488bb49f197ed81d96b67cbb7f36f03039fd1d9bfc5b4bb7091c6584fa240d6d706d43f68c1643524cb0ce831ea345309574cab2ee1f -bf1567a9760e4975b57af854ad3f8b95a76718a01d1a5fa977ee6f7d41db653f822953e52cffb8d914143b7cf599e4935b73426e8d55eb7f630d3c2fbf03358cd08fdf9ec23fc4b759455f5ad2936344c2cb4709cf5778bbe53c42a2fdff9df9494e08c26b099fd64e58f06b7b044283b34b220d6f223ca0765396c432a3bc -662e21925679e63e149ea48b0a3591ff9d03a973b74fcf109ba19483eb66187a9556df04bfc88980079080025539219b580c7f7b6f85595f017729a426a4c670ef41ed5570c74b1d6dee3c1a20d6dd4117737519fe81496dbceb0cb6f54326786efd14eeae887cd226f7398a3e316d25f52d5f37b323828d416a50517b6e4a -e7dcdebe12cd7ace92823aea4e3e99c39b2b45e978f3e3d4b68576f4a57b28b5c8e3a9925c600cf28170750cb89793543045690d32248b9ba3c7f592cabb34b6cb49fcb022bd128739dd758b432a5ef1bd01c110e6ba2fe7e90c8c3aceae45189eddac411090e34ea00b76969ec399e84948b8b317af70d4e8e429e46fbc8c -ee535d79e72056f14fdf84bdd95fb6f1418ec8cf97b48880f7f91ff7e7d12f1988d8d17d70176643d880a2ce377d27f9efcd971d19dfa6b8f17ab7bc4ef1a90192c5d9a21b4bda44adb6b2e57933a60d2f7f44679ab7f59f86530aac0813920c24baa47e3a8cc1e6e2cb49d4968668564624e310230851723e309660ef3ded -dca8cb501c6ba2fe14b086d96344fddeb0e209b7877d7bd5d4fe878cb6082de69d5d5f6d516a06932aaa40411633b4b7e3feb851f94394845c661074094cecda80d302d2a5a7e9cb683b9c34fc4cec21092322933fd6bdb6835282ad8e20e0c46ef3601704b4e0153fe1a08d08c4846dcc8d77fa464b899b7d3c06be15dd62 -7dea14d40c447fdc6f80a18a1264c480895d8b03d8e660366cf34e526451f0146bfbd5b34d8f85a1597f298ada965187780d0d2f280889b50c00d18e4ea710c1d03b361d0a7b4b9a8d4725dd9d92a40f8b817f7dd7257f2d15795688d36ccaa4c5ca2758acda97542f24232bb30b92d4f4992d788c6904e848b5ffd60d3e77 -ded7ea6165f84978c879f8f453710bbb5d19198b38c563cf9670d91cff10d6d381172febce3335bd186995e3673e8920fa73b43cb5fe34d301ab247e9fd7f795f67b2805947ac022cfda235665598aaf238b887cf84fa4cbc8214fb930166fcfc30a921c1f123338101d1d1679ecb7bb3b1e51e00dafa82bb986f9f61406c9 -b571aeb79066a84cdcd6cdcfd70d98bf53799a1a1269a888ba4c24e470840a498f101764f5d92a5d6f575894bc6be6527ea89f2b0e387251c9c8a34af1fb6478f49a482de89dfb5215fd77bcd1dd94ebb068b062a9992a4108f3f1ebf313440394f09fb2715d95c9e995c157330702fcac08a1366d675630eb6bb8402f8327 -e54a8022b1409e5594c3649ff14443058e5a0ddccb421ffd1697979a900d924be3c6f7568483802f119da1686738079b96e3d6aa432f9c2eb233af9d8c0adf1c257da8d5b7ee0388e51817fe50b0d7a5f9dd8649c3f8283ff52034f2e6828436b9b29876d9ecb6fa0a3cb8f861380e482bf56dffa994f7225d3d1dc03b667f -a65ee3a1298b8ff5f5315abef5de514b3f58cd2b83c28aab17f8581d146fbf9e248f4eb056f01ec41e689739ac72d6f055382420743fbb279a1f855121511cd17971580ea4b1a809df10ecec464444acafc6e7e2d96014198ed9bf3a891c61d71db5b00d451550adda9c225aac412be9aa65dbb1539c8918117458307cf0e3 -3a50d04720b30c752bab5774028dec340a53c9b9ccd62d6ecb9142fd0f598a4cf4a0c26c8d5f7e5ec8bb283d13201a17b449cfd95405b1d3b8860aad3796fab1e3a3a94805013bf17764cc230a97428bafd855b045fb04095783a84908670a6dab743a0d3318270dde32fe787fb352932e219cad6e02b6072b2e0f69949313 -c12f95a256c71ae06d285756dac443fa7a6e6332f640e48fae5948b4528a1aa9947825c8ee43ca95b59b0eace71574c07dacd10c01916fa61e3c4904b5baf81ddaf8157ed27600b1f547efe0b17478a90c4b41f139a427e06a4afdaea2d49fc65769bef1b1a31d789de62f6f657eb1819cc684018018b1bbc0e050c0f4d074 -f176760a6a834dbe624c63951e6977b09bb28c7f928c787b01ae8101b77f022617e010e2a13e137468a7dee42d2534eeddcf7b5f377f621e3e653f98a964da7f375991b063ae81bd4586b89a5559bccf1e9deb68966857375a3f312fb7f595d5f1cef91ae58bae549a5e054b4c247bef7bfd3b829124e3e39b6993c9f168e8 -65e7dea0b0063052efbbb22b01ed459cd09770b71ece09a6a115667d9e86028ce21c696ef46920c230f478ff62a4fadd93bd3dc09e9436141650b6251e01259fcc48800c883665b7ed6abe106ac781f96f5913154eadf17a95fe937ab883b7119c03ed1b77210646c088c0c569c73398ecda80aafea7a07dcce9e4b4119859 -336ab79ddb8aa826afe882b6ac8549042726aaeb294081568aa220e6b264ec8333f1363a848e965c913c860d8f468b57b2e963a42f28cbf4871ac8419e297b4bea4ebbb9663ffa1fe6159250a214c88258756d90c83747e84ba9555511d02adb9bd5be7910763cc502509a2c0909ae5adb592ad760dadc9b5cabd6b5425e6a -dfca15a0904ed052af61e409d77976009a5b9bc2a262cfce4ea086857ec043c20c8129e20e5649c838895aec54af9d0bf4dc6c464d9b6b67b24667e6b36e699e135a92a51bfa85f8c7e530a50641582ce89baa2d8596664e83d2d52f55618f0303d589b91ddadda7b87fdfe331a88a7dd29f47f00ed3bf3bcc8021cb63c90a -802dd8dfc62104c58df37b0270ba95037b82402a3ecb6898f1474bf51b91f97c420e0c517f03b61e3b6544856c4bb4c5e426e167e314b4f77323125794f0786ca00081ae0345ef0075ad9a454ec3b38add9ef11c2f31fcaad866f7cd5cb6d20d07b514795dbdc89f77a00ab8af90634a3cb8d31bce450e8ce5ef362bda0b3f -cb25aa983c21fd82a4ee68a45fa2e5c1483fd27e02455142371614b5633e5aa22b2dcf4607ec925d60a461c8598a8dd4f66f7d8f274f11ef129373624add11a097334630e43873a9eb99ac8495b0dc83dc20d2756892ae42b6730f228ed47b7672cbae329052454b1e7e0febb380adc51ba89d0743c908c263f1b4b60e4b7f -4844cc8d24c342b8fca2be5395ede85f872bf99f71d9289a721719b48eecc37d16e512cf94e30270e592d2b9ea12db08607f1c3033b0bd0cb65a045466a8e454e2d0b1d619b6767ea791a5022f7caa72f9568f3244f47b38c2f3ce4ba191c09cfaed4d6777c6c3fb54e1b45f272e3cda7c94fa8a23da81061880beb0925e01 -622d6a4d1ab1d637a0e35a27ed1ae46d4501d511b3e0616e7f4f791b9fa8725d194aed5b0496c00a7c87f376fc5befcd54375d96c8907c58ab707c6c004a5d263d22ca106d6744d8b9af3fecdb292941d00646ec96c9e9b4c75eb7b2c636d5a9eaa7e209ed2f2608bd14f54a9f313c7551ee688489699f4f523d427fe02797 -481e69dc8063dffbec8f76136a32dbb93ff555f631e54a21ce87d2751333c1b5059265c8715229a5fe02fa731ae37a5b7dd0142f353b4434cb1e693b0119bd31c7ca7d211703bc1df0bcadc6a33ae167889d8d6fe2a22884766546911956febdc6661ec3ffc59b4fcd0fa7c3b0775887f251f919a35f941aa56488dc98dc62 -5ef65019913809e33e5abda90d4fe37120a4da79d61e3676cdeb6f895bc46e012228bb306beef82e2e6ad40ee1da4cd8dc5919e626c31c8a3e6754422f35770fee9659cb742cf8f7642362fe2bb9752bf15158d6d5c67e42b617050818d1709629475ba093335c2687f3cf90a04805af3528211dfa3c9ac93ccfd78cf82abb -21c8b717c5bbe37d6741acf7b2c17fe0ff1ea23f9a538f0aa76d89bea204b5d054f336551779300e51faddb9ef11b680d21a7430512b5ffc9ebe6d684b3bc9cda6025e9ac6460c51f374e36d4c35522eb5176697c2e03c9d213e12ec32f1b7187dfb4066c3ca80ceee0923c01075fc1c9862a206b45ba3021bd7f4147fd0f6 -bccd893602d07fde9976e33be17bec186af2870e312625f9832364613345263fb4d98813b39dee77cccca0410613f7a9f538a70131245f6d1289ff2002bd21994253d5f1c58180c1e8a2b8fa5fca661260043c7a9d5d8a525bddd960cc9e158d6cd58e51e9053800941fc906a4bb969f096196a48c100b7378afcd56372f17 -aa8deb5c891ae09bd79af8b6453622b2697a84d494064acfe74e09cee528dfe3b218b96f0beec9d41b53f6e648705ccccfaaf72eb00028edf3d4fb0fe4c7633bb93999e2fcfae53ff072468a8ada44e0090e7dc3b5dd4fa284a936e72e2f9fc600ef23e24364f2c17ae8ad548b4e19ce7082be7439d9e948f31b939d0cbca5 -21a24ef72cec3eae0b3bf708fd3313c5a60aa5d60defc56eea51508fdf5c02a366d76699ff03d5e86f3451313cee71c3d7413c441ce9f00b2bc5959e0e2dc4e5288caf3cadf7f4af729471acc283d5db5cc63dd26a6389508784c7320b6c5f0e48e8978070cbf418edb7ba5b84a28aac19b345ce4c50a1f066413c24b5df9c -1fa9d26d73749c1af1af0eecb0d7549820cc7d3796f15e98e1a9ec2f03dc864f6e57a3e7c6e714e170a5aeacdf02a02279fd4c68b683c83192ecd3b459775c81acb661689e65542e5466a9524a03774a20547758d5cf86daac6b0fb47b4eb0ec9d007645ed2a3a1282583789c5c615b32affc5085561091317cf53e64d7d9a -688f5c61608b042ce2902af5cf42c0799e35aaef0a7b2da4453135a8b08d9d051ed73aa1b64388c8469242ad2fe61154d3715b4aea1cc9c055824c28a3aa05cec976484569b3086b43e22e7d656bb263f5402c8d6509f8e165589098638b4eb466b85026521d70bfa96f1890ad481d2f12ca27fcb75ad53138a430232f5d03 -b68024be7d4063a26fb5812606d295577a1cc0d642536882b16d70c95a69027a8ebea67c2ed63fa51e5f2687e35337eb6afdf9ff763d6b7155d5616d1f66df53f264ee1ceb52143cb481aff34aad961beb6a466f011a97906f7235ac1482b59caf4f35bf10c106a17849b9eab63dee84e84389ca872f0c55f9c88122b6d6f0 -c758d0dbb717bf7c66b04db20b2ba106bb7b51a01f4f60a45431157c3767fbf164604167583f3ebffa0d874d78e54e673d922091584593f45c0653eec563a7115b497984ade01c733126c968a156d562f14b9d1bc3555565f84af0cbf9b67d390d1eea546bf8f53abce45dcb31de4e15aecb10c71437efc777537e89c2d906 -249d55ac4d17fe2346b1b68a1696953fa4484d0408e2c8ca96d0b6a04bf78cdf672d99c3d8697a6c388c31bba5f487d68d516e0f5f9d0f71f7d0c12d9030c7440f3f8219d1fce3cd87f1ab5a2ab38288b99f98253a648a350bd78bef72ca7f334c1e92a2cf4f274827648efe4d4c986d6b28683878990269e0d695cc93a18c -7f8f64c4a1a89e4568e43c8e0118bc039c271146e047511ea911a4afe7e01885f69d310c37d0ba5257f0d1a025dc9dc32d23c9580a0ee224ed267bfd6501907720b19126f43b5844267e73aa9ff473382388810eb339c7ab6766fc56ccf74caa2a7c0d66294a6c5cb210fcfb6232584cf7016c3328c54295ede965bf88a6e5 -e0cc3d5bb9e023da53ceaed73ab6053f58f0c31258a1b74c90d2402dbc638e4f7e235c9a81c91adbe55f2e4f9cf8de445a6fcf0c7f4d33cf5e7eb89fb1fe6bf6e8aaaa3cba72b90965807ec54d18617b0af0bb4a1308aac8e957b52e5d395f0831f2906557f1ece3c17063cd73e1c31c50f2e2f81aae3412be4fa3c08164f4 -d8803936644a984eced76fc2fd3eb150d8f5792bb61351b84d59b9d01b32391848c87932d99074424d0824db25a0c994646c66115f9c47ee44477893342ae1a7b7031ce6d859470e583b8c75e71f34463ea780c87c50db3623b344013bbb98fc8172fe9018487921ed239a9bcb44acfa7f8a69fbcb6131f883be0483fdaf75 -6bc76e3eb32e3b353272e9d8187398ae8114e6874319adecb93bc38f2f8c1aa0e10ee71d69d64f3a149a7ec6a80663d80fa5e2253df2b2b4489713f10c337ef9d480854742234e6b715daebea54b2719546999fa791dcaf99c162962a488a0b54de92543bdd0dc09ca49ed58afb252476e3933cace812e910ddf8d88ff4a77 -292928b547a23ac37e2fdcf1595f6183c6b69b5fcb4af16ee950750819842d44457a4ecfa9b0401c914116ad58d5b73a4573d22a029c3693b6ecb62e13d7e788181facbfb7ca5dae15be9386758149d49a3565af847ce37e8b9f4f2b1c9f3da84b4c6fe37d03479da226e7feaa71fb1ea7b6ac7fa1ded0f474337888f6df18 -1f2adb07179da391f95b5663712ed86bcceae06626b53408b89a00e9ab7d97866bec9f47fc4be2885d7c5757438a886866500f803d0e228ee3e5f83287415814e0525b5c12ccf748b34fa769bf76001fbcc764bdcaef33f75a2fb1a064f9893842385111a6116879c29686939c8682071adbb78c6f7c28e57ffae6568419e2 -6b58505a631092c46b49a64951e05d0be79d2034598f03587a322c214c064413810072f4ba8cb847c9b1a6fef06a55a2dc915edff4308e911cdb1f1d09ccf9be8481a014670dd438b17773d8cfa065bb84aaeb476a5467905da4980b7a1c9311fdea5b6a627977041bf74aaa1bd0b239455118899f53291a0c0e4b3c8d0d58 -f01ac3c7fac9530025720609865d9f242573414f23a4c184884cadabfe4b5409e7ca3e607a1ea0868217e77f404570388cc484df144649a0504abd9e8c06ef4e8fe3ca6863842bebff55fff6751dd3c17e0083b9eaa3bc6e5ca60fd81f82fd2b2a662563a6dbce2cedc61d270ee9c96b543226f900e720f0c60b784b258c9e -5499f664312b77d1e4eb6d92709c306f796e7027228be42b5b900e414736aa94c8a2f9b8a9c5099751b720a0b1417ded6fcf1d4e091aa8c3e474b7b111b1e51c6caf82c8af141d425e65475af041335ef8cdb22c4816e0518759982776fbd91378a2c98eecdc23d36ebb93a6af735e063f9f0698ca7a24a098b9fea98f0c71 -c8abd33b6df1bc8cf2c1f387aa6480c32b978b31a8e72fa9724f7ffa07dbcd1058da143c6110ae8626d427f1efc6bf7e61d98c79b860e468aa22c5dbad1db9d6c81c4cd6c2c0ffdd78ec68b23eb64031b17725b6d59176340fcd113cb6af9ad9825851c82dac499f01669f541364a978ecbc8f0596b218accb1b4fa860130a -2cc6cc108b71d54b78092469172096c9d3d81b502f747355cbacc6747573b002da8d63a30bb08be6565e77e6f8de66aef8c388ba228022bb054d0c6bde488fedbde7bc556e29ac4f6c3335597f5379ebfd24c3e36cde88b49a4e72ac4980da7c17a6492b4193c04827e3bfe7795107e25df2121aaed1886060640777d8fd46 -dafa1d4ebe76d5d7b45f8a6a907e69cc66d55c38e7a3071e67ad47fa326c3a6efadf5aafbb5b76eb4658ad84d52d563cd5e53a4558085af5005ad11036c67f96680d882d24a611fea4cde2fd25cf6c925a94071f4bf6ff3322f8129d8660a73328b20287bc2e80157fcb64990b3a2ee994ea93b4666d2968b9624902e9366a -c1d297b2b1c71b2a03c61121bd42e8513960ca64d54aac073b72b965b3d20f3fd355d21317eb15698c8a8b9a4f84f8d61040ab20b90bb6c82645f7d261c825e874f25a3dcb1f10b4db4bd43abab67b4b7061f419cb350c923208e8ca8c65398a7c7928209fc6abf82d08c913f9373fb5faeff071e79ff75fb7937e5e276195 -8b37f6b0c6c17462fbcc88ddf758bdf1fd344e36cd4d6947a6ba2cc35c0a9939d36cce7683e58641eef683ea29b30e311f128f695950be5e83d892a004678ebde3c8f8d8d8916a7f12d65ef50df425196285b0be8ff4b8b939342dbd843e3cab919212178e2fc5c3627a225e41274485dc7f28e4642410382a5c92438cb4e3 -2ddc7263e3afbb76362d6e9542504dc427950df6a80336d76165d5b93774319dd6428f3dd5ce365801b75252ac934856cf75c69f9dcdae1209c6c2cfae1f139911d92d0f154a5d5f21c00c0cde4ba030af503e424827c1b7057399e5f1503d170242cb3bffa736f5f4966fbeb8c9333fcdcb91486800f6d13462bdceca6282 -45abddbb1cece414f8107ce640512c1360a01e8784a14155ffa9be5ba9422312bf08ee622683841bb42f561188876d072be23fb02646e63161119f01a691faf0655e6875928f12d461d352ec5018ea94678f74a18bf610d3080f0264f31b6ab50741493db8c0805037c7308954b2657b5d3c2f6f982a8a86537cbfd551cb4c -4c1bddc2ecaf4b800084462464c52380b756fe9d323ac82868f0b476843b6b12cf7888d7e45be3fe8ab2168d0a4b9cf1a9c82d2c53d94097dcc8a9c95ba808757b8ad42bdf4f525419a27d16619e30ff31be2b5464165507bf1be59a66fa379db86d16ce98c6a95e3d27825fa01c90d16c88ff86755cbbac54579b637e94b1 -e8db989c65b8b4af9daf4e71d15f75aa65be4e79a9440a62e7021bd412ff18cbba097a341526d66eb035eae1a541db3b21f5cbbc4b8cb2c4b6f0e5e45e0927811242e0f4d2863be6933bdbb87179f354d99e899e3e1d010085c50c59d23653bdf35e881a9ae4352f176e9938931d724d7e5e795ef8e8cd2b47cc8f9eb253c9 -02591b57fb345d48ae00d8cd5d8fdd82db9b92ccbb66d9b4f89d5133abec9e5a933f89452426cae8c2bb4984e64f6790f410cc4cc113ce680fbd43cab83886c2a31ede57811e61da4dc51c0e9d965f36a45983041057252632fe7e38a20ba5fc66bfb02349a1321667c6a07f6fef33a97a8e2e9f3e3348c8fc32f230fc2473 -feb6169e1448deaf125ba0e0742830bcb698b1f992d1f3a07a6bc286a52aa03e65aa72b4ac989951e8dfa34c6cd1984f180f7175ed611dc5ab87303c7a2961de9bb50dfd1a789b6c048b3bff4a36cc8756007ad771d9c09d6ea718a6fc42618f94e619332eec80de01d30bb169318a19e44fb6852097238d221d4102f76285 -cc3df433b21150c0f400537aa52056aea9cb5f8030c5e5b49d8210753f5926f6d85ef9006b3ebdc4f66f4b23270edc9663303a27abc38ef56020b3fdc01716585747456c9cac8987305fee9786bf59170f4241b38c1ad0d4294b84cea35b015bf52a0a73f142d278df4f1011c8696c38a2fc0867240a5190a5730a582874f9 -fe454c49bd989be6952ac9bfd7d219d718d2d08547defb57e793e339bfa32a3e44425a365776a1df8e568d1b838855e826f7822427d99a82f19bcb8aa14b5ecb6570fa85871c10e59c10074793aec3e0e22bc98d709780758687e5cb818aa59f3f759401c7a5ed92298d5f59b74f6b184eea9b9168c908609e1d8245e44a33 -727679c49f9ee78371843ff1105bcd8ab15a1bb52926bbe0f81dcf9666299bb89f3237e60077c5bb2fcff808839b3be0991161f62794929f9aeb5e5459e97e24496f2e1af05000a6d12957ffadfde6d6d2bc67404f04faec739caabc9fc004ecb08937af3a110e3d341c7d865303c3741a74e02c937403137a4f37cdbbbca9 -24c1252efabdb73adddc933bfb6d7eee605e79262f98d747d4f5e62c0ead33d2778c1559889ed63125ef5ba53b6cea71e9ee844101eefdc455c2d11dc6d1252670124a168c55fd43aedec416ed01856344966e70c89f6a6f372eeee25884bf84d52d563cd5e53a4558095906115b7b6e942ec369d377d18000da1dbe1cc4be -ad068874d9222d0d3a3f266639ac0466fc5f6a672f176640b42b761954ad82a7574fb389d0ca69c0715c30e72b37d7178dc2b00092c0bb689b400e91c7433951133627bd61b23221c6deb012414d4c3550a061f6c37515a0f23c54e46aadcb641c5d8bed81f511c801c7e13b54398ef8a2e5df59f82df5dd075349fba603ff -0271319f79f573bcee0ec9f545e49f9b083b8d61c33c55f2286dcaf20fcd22a7bc94e8bc193707ec31eeab18a57c5619d815f1bb17860c1f8732465a574a668e35f47b1d2a805878309f59f5b64a5217b399215a0076384ba874beafb8135caea2185ade836552d1495389b0ec6f230272a507ebf00f33c4ca1c5b85a395ae -5b924065aecaa169085c2864ad4329bc054731a8b510e814443d091027fdd6c35e100d46967a2fb9f2a6018a3e9a973dc91fd9e8741bf4f6d1f4ccf29f35aa37ba439587f04ed97e0bd53624028156bc5ae38bc65325143672f08b41ef2196e2d47a60fc778332054765a60bcbda40ef1a192faff26a811d65a729325db934 -d95838e444b51fe5d2780eeae5fe444028f9e291c637aa64e988402eb2e7d4d6d32925f93d18eab3ade01ecb66fa8eb298202a94c9e3f24024030dd162897b08c66756bf2cd92f3fdc294012500bd2383313376ba6e559593f9ba2437d420c173fb60b3274c4ccd091ca96d276d63435563fea10663753c3bb859c07a8b8b5 -d60b723aba33dad8d1926092dddae3e31010acc1d69900c2cc66a029a91e10e018b3cbaabd813eb1202714b1f221dbcd735fdd75ad90d32036197a8f7684dee75171d9eafb518dfcb3870cac88eae93b509302f3da384ab4250de9ae074495135cacda458861b8478d7bae74bed7b035cb268c04ae5488ab9fb86d839b69f1 -38705abbf82f01b0f7139b976bdc09f80a9cf584725a39b2735415ee4a1cacaa3da06e242d339382ec35949be25dd673a2c62995df7d0ac79a45bde93b91f400821eabcd3aa1c5534d3f8e79770de25c76e28460c65162756e55b9f3bb137c74710722aa0468598a3cb7afebb1dbfe77cad22e9654f93790f94629e0d4882b -24b79ee955fec15120b0f2cd29f59ca860ea833e7023ab716d3a15e43fc5130ac41161bc94fa860d077964e589210ee8e383e3fc2222ce1486f0b52634f6a7f003b7a1a37f1ed3bfc0ff5336c36a3ab2910f513b98cc1df9acc3c5d0585245e605cf2ddeb6b07bb822d5f72796b17ff35e822e523dd24a6069ef8baf345175 -d46225f77a129154e9dc985cc74238d307a4d8272aa2ff736c428e1a3ff734badbeebaf7114d1afe2c7dcf390eabcc5d54686b1a3ddca593eac4b9a5737a14e6f16cc20c4986070da4b9431d8efb42f6003792044b5984073be785906d74ba0bbfb2a19bc1d465d1024af069c2e6092628ec67feb230f288829b8b83633925 -b9242a35a44fb2f946795c125917c9554063cb6e740b7e6d56ed4e070861dffecf723a2ca1dac1ed59a642cc55afb63a54e41fc27ed61ce27ba656107e25fbb53d779201e62034a95a07618666940e42357e342dfdfed3c38d448b9f0f818098ba08dbb645c85e0107c1d4912ac2a3445fadf63731721aec26fd81bcc7859e -1058c9dd448f5eadef0a47915598bf58db577f172c462ee5ec69d3b1e3e8dbee0d46b5196c36dac3140889b89a8f53b11b92caf302f71a62a5c3909806ae315866f4ebe2c05773898697443ace1a3757a79f96b713dca1ec16e053d11e6ed5f27b1ac42a877f32fd2eecda6e44e04808bf109b777702c6c3b9d10c06ca4210 -5f15a31995a472a811348b3f68671ac7760af3b5b9eca0d80f3a3cba3fc4f008cae55b377f7ab315dbe2338ebc38b165ad38d4ac6aaea58f46a0882defb5aa4fce2c2c13749a5115bf210197ed59107f58be06cf234b82dbb7ceeb9da3c8b7a1f055f3009dd620c6a43eba73d1b21b5435d5389274dfd82460cf63a26a2c54 -8d75a402913c812aa2974ce87850a4560c24ddeef1ec53a1ea9356ab26b148a6aa4e9e30c3fd94effb017d41e5a1c9b11b1e92d25874a17239f0ebfb8e131a7465b09946d9ca665a78d940f0d367e73b18768809eeda4c4365230cce7ffee67d5e850ca8754c97bd579ac36c6605f2121995b6f0d1d212fece438ade5d7525 -56024bcc58acaa3338299c419d99d3ece454ca23064139d89dd65937e12eee7d859fd6bbaeb697fb074015e5e10719b3aa0de6e02e38425e9970403bd58286dd868063efc25d08418a9856b8649ce4a9e7d7d7c5510ca5858f3faa4387d4bb11177772747a78e928bb36b3879b2ef749f9b7a831ce5761ef228e660eb8aeb1 -f0ae24433d9af3a555afc08c3dfbdc9f74f1db0cd64b8101453a2944364d902fef71d1cac0f97515f39601157dbf76a310bd8bf13c4690e85bcf962507848a27be29cb7ff0e0fc7230b141f8558d06a194c5e799fc0e803a8b9bd5f9558bdfc955d2146ea5ef9f05759590437cf0571f942a71e9643ef081de4c80a096ca0f -bb5a234109311865c88bff1eccd8be1dc394d9f099a8600c3e1d850568d2b54fc758d88b6af9e960a18162cd793a8de95fd0a58392e26e6cd662c9cc1a12589a8e0bfa1df1f466c9c575d7b7868d0d3ba22782a6a0f63a50f03d10e606749377e6672f606e32b55022fc9b329f6d50334994cc53c13fed75053054095e66fc -5fc6297fa80154541c5b34afab967fda3dcdaf387074a99f3ba7767bc2a20ed0391f07c17e5b0bc3235d88324859d01a2ebb6b72d3eb0b6aaafc3df45da43651c331be0f4e5ff8c8f0974d98b97678aebee35bc3d66f46306150e8fef0690732ea21975a05668b1aec7dc955b0a3a2a02c8c75dfb1a3138b5711e2a8d920f3 -185ff967e4a7ce7df4343a5f642480a2807be5c686aec981ddec06bcf5c46619c51d4cb34ec0de9325a6ee9693d6f3849efce363c4e6d187c0b1095aecd2a9c29caeeb9627465f6fbabeb7c63a2650f6f77d636012445690c032459661e9f4c330f733744626646af8dd235a4ae2e841a3c0637ddc3cb3e93fa48c51a84206 -0ccbe19ded9d784571db78235115dd2bacf6fa0579b1e77fcbf19fd1b88aa57551e869f0aaed338d2db14d0968fab6a02907e0e5aefc2fb8aff9748576d2fd1490e50425e6ea36e3536d696709f072e0046a271fb772b8d9c0812834ae6b42124d29ef360ac09152de058adc9afaacbca9f9012247b74459bd84ff3aabc1ae -de433d7a4efbb169fc51e12f2b9bee837e4888ac1b76739d82e99e8d8056479cbb9a957cfa8499594bcaac8899d270e149d664c55648af1ca0d56de23aad43be627bc3ee7051cd1e17cf12caef2f4de2578e06170a13c01ef38ff72ca985114212dc6aff41c50f87150f2fd3db8c6273f2ca478a19a7cb92427c9c339447da -84b6297c2f95d04ddb2440d227e55023f2d2fdfda574404e0b274b7dafcf4d993756b8b56094da880ed11be1dcada1080cf8a912c0f6e206307590f797414ecfec6c691254f520a2516610697817a4ef0e1354b7f3b66226c8b403f4955426a651c0237b54da17e15598f62977a0f0a4bafa09f64c730c016ec8b163413749 -2d0429e247d1374e3d1cac75fbc0e8820158e776004e542e7f50934c9f4b477776ff5c567561a2100f08af0343d4131e5713fd49c996aab67c0b1c0947c280fb78973c06bd9f590f9cb25cdbda2e342aa22f9d45cd441f130d206dcc38ad026ecd85c0258ee98de88cf1ac5a8c038ddf87c48ac6c5e64708759968b9887a4e -fc00e5d08ce8842b3c1649b5e54a00411b1587d76acb57e3dbded888141e4c3f90ced5b3c5ade78e6b6d12297584eda04e1ff673ef825437abb45f32f721b2803bbbfeb31d93d7573ce70f8f61391e3a1af911375434db1054fff2a0503529b48b891680e15e3f16d46556365314dd5d81629dcb31ed07dc32c2b1bfeb1935 -685e406fb5fc31ca37a306c213053ade935c9bea95fc2f6227fb3e10d5d617f3d64b31641d8ff54ce1c6c960061e02908b3c1e4f088c457f345ceac29cb05986c09b51565ae11d89c807376503c6a152642b693367326a0ce6e65b48b2b07d9395e3daa04d30d5fa14b0c4d35ef65db3519aa866cfbd9035d157639259a34c -21bf729e12537bd5107566b8d089a6fc47fd3ebe25e9884cfd77579d3ac5f9d5f3d0f26ddde548193f8df07fad054a6145dcd353a53aa7b4134dc06df0a7431d92e4e826be68def13a2c904595d08bb71360a29a5e915a0320d019ae20f0cbe9c215fbab7313bfad387ac60f766e26ced406062dc33e908be782abacc9bb16 -f68a468b4edf4dd11bcdda9712575249c2aef455a6c4281426df8fd595ae3543a33b8ac9ff42f202b11472bf35006ca1e953f3f8cbdf4828402ccbc7351409193d18bbedc5e44d4359cd46dd6af0dff1ab9c361a319e628e7daae57d145b5633325c4454d821ebcd57f14e8d475f157e7b7e32ce47fd0d1c2c5b6d46005e93 -5cad8e4b9736db6533ad14736270d8ebd87172293a1ba351ebb1b49df031f97b4db7d2bc8b7c8b660a4fe78af4816a5e123651eb5e804ae2e94ae54c17b5be968a5af1438a965a57e9f2f9ba168e55c346c11dafc8d2f4bbde2afa19d0576340a865a3da4cc556ff2a7e620333b6e5a83c601d4ceeeb6242ed3a07e0b18dc3 -c1aed25b27a74e8e5d5ecd5afe2bdcd57f0248b1d0c6e26bbcb040f7f20d1149884aef92014465eb9a205716577ca2e93cbb953711317884960ed05d4896c6419ccbf960e7a29790a14ea30390614a4f843c22f253c070c41e70e67e323f74452b6c4f1a598f8b84d9353443db4fc7721b5f3e6432f68fd9619aca2cb8fa0b -e2f56c57d004f068e4780940a4f7986d26beab8c6bd3753feef6dc34e0957f1265438c1f5279630eabcdeed9ed7e8d22efc60fa98761fa930b7cc14a2fa087ace3dc45473459298f61820cc6f7a9028585ea1fed8d25528ff063d8d4c131da0b99b03a8414bfb286a3e41c013ce5055e93b2889a8034f0cb51b00e657970c5 -de52e263dede0861497404b86694437ac2643a753f1682002e947a5822e0b52c1cf9c9f52904f6e2b1998c0e0f880327e35eac4252d52e52ab2c5f4d440a40a69ec8bd2b0efa87f4283ef1ef9ad3414429d572bef98a6df87c0d24c0b8d9f33c5430cf12d627f9372e0fdb25a28af925c1ec95921813bdacacf7c1f6195a9a -1ed7d7fed7df9a3df68b1366f9eea34fc437b4dd78738c2701c6322bf732d61ea1dd3eeb38c3ac10de840fb4a7cfb03c1b23d815d51fc77ad6551c6782e2a1206adeac949ed0ae6cdbbb1f20150f2e1a75a8730d70f0083c070fce79541ec0b2c6e6f1a91ec8c509a525b0be7f76ea7f4f17981a0eaf9c0af95d8e45da4be9 -8a07e567d7b5a31b161c14ba138a29fc704fffeb42d1f2f7d6ee3e31adcf5f323ba3b6466e77e1751e390ef49f682f865ae68788c7da3c2bff07828010b072bc1fb9a163c6e2796adaa6e2a623cdadcfbab371c2bcaf7adb2f8da46c07692cd097013c8fc2377c15a75b5e8cecfbcb8483def7a4cc62e2305e26df4b0a8e1c -79de4361a16586a4f1bfcad1b44aa103ea3bb553094d689f5532bebdfd6e0cb21b0d071656a69d5321679712e3957547a4e6bbe527a734ba59af93ae82b803e0b0ccbb1d5c771ea0ca8602b51b89c22fba82cda89ef3dde6dadf07ecbdc3ee1528a40566b22bef138eb95985da8e2e9b9a8b6d839999b048d481a460914b61 -75a3f8dbe10d7e44acd6b7e7c394bd717e7edf4e670858c0d84c5bbff06c9fffb0231fc4d7563cd79320729e8d03ab47ccc8d7016f13ac6ce5862bfbac90eaec0ae22222bd838a9be96d2fa24cf80636e5ad658f45a3ea63a588a14550ef3a81f898b4afe83c8bc2f04954471feb715374712539158ee5567b2b3d3e454ffe -d3c0eab4202ae27cfaadd673da7f9655888efe008a07f50168d1e8ae5368f5af3b9eef2a2fbb0808773a22149815bc5902aadbf6ab7bffe6e1cab56a99d671fbb2d8375614388bc2f452d46aca0d318afba07ffc17831ce7f8da474c995aba7af56583a2425236b568b7aaf216131bcfcf099aa14db701854218e746b40dca -a974b9f3b63a7f6b8dc348ccab4fd21edb7150876f27ffd5d09d27dc365f5e08468f178f8005133a14459059cffb60dc48da774b7583344395ecf7a274caee349725143548875cd9cfc74e14e8c4a5c7c03cda2baea7b463724cc6028addd5bd71d2630574a5fc96f8c13a75cc2804f1b1f7f195c1166900157466537f761f -f51eb0db89174a040bf2dd160f92f24896c998139a115ce941ec46e1aeefbaac7b0cbfa26d764070acdf094cad687f209090f98d38d4f3918b2acad3b5b342c94d2114acc977e40990e2ef16413e03c8442d8186987b0adf0bbe2836aa434a6d44f3ccd7eae175fc02abb0db726ce79c65cee83c9ac23ee37e3bba34d8c03d -fcdc68c7a130b13e566ea129d8af8cb271fc2519421e9c4c55c6d029a99093f3290a9bafa66ae6a22882731e6cb62d16c6c23590583c0c21e6e0ffbe466f15e0cace20727ec72e06c7b03a3db3620b8cb12123f8f2648e7c606ee233404462681b8979e20fd8e47e6c42f0e4705f60b444c299b6e4f9200dd60b086b166e3b -05c3aa67bf2625eea32fa4facc8fe18f980d2871a0fa6cec81e90c0c7d0d88fac1d91af8377917bb8834c6d428d7e6dd0febcf651ff687ca55a6d207003f30e1d1da0a19e560f0121b3da29e3ba68248728f453a7829ef70993743e153dba668df62c043bd8904406c80f4b396a7a134b1addc90934cf3ee949fd26a6ff9e5 -e01d72540caf415f97f26dab45d861b70129187c07bc667856c74c39f9d27b6060f47f5e16df2e611574b3148cb4ce1e7c431142d4a992f3ca7b66e524c0aade577dc4c22d27ef10aae6dc4bb0a106a2fe2fe379c752f91dd4a98146ed35d4470746a9fb8949cbef8b6017f960baa82db48f5f71142e9442bcb5452980b9a0 -c7e699a663bd99e8df94f5591aca08b8e1031952e1a8d0c141b819f9cdcb39f952b27e2026a18e8e3f6ec026c987f4a124d18a383f9ba4f9dc883e3f1b8c9262687a84cb854c7764699538519fa10a804a54aa7feb1426d80919f8ed1cfda18ee5cd138afd66a9ae0f0882a28a207fe355a2270701057e40e7f83d43ebd5b8 -3aa2e6c1435e4e3f12f2540e70b2da3e356163586ea6a41be1a782b0e460d5e1a3cc317b96435c3ce0e1f147959bcb5f74e42fef522cabf2334b8fa3971c894ea0842306f4a9dea99e46163557ca4c93c3eb10493643782bda19511e8e763faf815051af4b30dd72ad3fb775fd29e33b9109b22a8682426e36671366b0f615 -def2a72b09286139acd2cf7dcd487d068485c559b0d5adf247bcffc542c9bacca6271a46e9a5906db57ea691fb85cfd966f40422997d9c67a39117804f4da3a9158add2cdb25a98ffedb70fb947c221b0ca1f3d24a89871fc16cd1fa0aa5dd312f8153ec3c1bb9ff62ced28f56a064947bd0559221a9c478e341b5681569d3 -35444b2b357d2f142c34fb86e5bd5df49c1837034c95b12b3979cf08f54330a1ea420e597bbefaadddf284671057e243f2a48a3e7993a116c0b806ba232b0e31897349961ba6516bca4c3bcf482b0f05f27bd36b30580623048de317b82f7dc41c9b45091044a51db54fb1fa728a70ea90ebf6f7f812b5fbc9a3cafdbfa54f -16d53f2c155129bb21d94c22a7f9c444ed47c87f0a0988ce25c802ffb20da648085e706fe36c01b8baa3371fa2f11df97aa9d08b7fa819049b607cce3c16a7a5ed4848778105724f7bf2ea2d7b04d0368284b143a3e7e03ca448e4ad7765bac6718a6fcb285fa415671c24159fe77788d9b4213f27ecd65935f0d2d4c92b18 -37ecfd8b513c5b77a5aef7d3102ce4b862671a13b1fc29284e36652744aa7c9545499008d56e6d1b42c8ffbe54586a464a0a834b95fbbdb449164c8dcd4cf18c7150f78d6420257c1ba47ad7b86d1bd91aa88b284f604d455852c3551fd10cb4917835965e87a0a42f86eaea2d4571876df9d5237965dca6e4332efc683e3a -6376b09c4ab9c9cac459910044dde61b776f87b9353f9c93e68072f9947a54fe6ad8ff874a12653badfe2f6f1a21d47dab6c808bbf32cf3dd3ceb95a2bd0b273ccc79549c590377df9c4d1b2e056033cd694b3ca7923abc563d9aa27f85fd895b69a3f1152410cbe526e704ac4d568548893b0a16fdb7645aef7ad09c33064 -e82a457f5ee84634032f63e229792b952b65c909513ac03ecd1a4a22ae605e087fccdd1e17a22586248ffbae45cd3b8c80814722bc46451d15e97ded57ca354d85ba70bff0cdca4a47d876593eaf84c59e9abb3b10aedeb9e8aac86ce8019b5c7831b1a3241d88f56e8d436620503fb86d035da5068a34f7a6ef6f1d25d695 -9e8451a7cad54bf85624eeb2355978713578dbb847ec7605d1ebe0aa238a4de8545ee6d4d6d9b719044a39989867ce69bbc8445c20466a7e4f5161d0a6ae263717db731e1eb08f4e1f24d28ea2d55a63d6d2b1c717e4c171511b51c3ee46b039179fbf69fcd3c5c84318add0a76771650e8d1d3ba948abd048e2281d5a0ed8 -ca90a7196ba4fdcb202265f0b6faa659267a492009a28dba3787f07f4af3770d64301ed11e13a9ab9762b1a110729f9db5d39562a1a5aa96e34082fcd4279c7a0646e3fad1380269d0d9cdf546a08ecc22b9a6dbe08d75568de8540e9c1e6a4795bd39bc712810a80a6fdea258e4936481c7a4b7d293eab715a331af11df78 -4a66f2ca8241982d24e5ccdc3bd775bd08e00d873ed022384b63a5f023ff9cc9cc5c60f3ecb64bac383f380cc3de3a2746b4225db983663d179bbb063fd5bf8cd6a3a7a84b9a273087691e1e89b7c7d65f18d2454d3704993843b285cfb54557cfc8647ec40f90234ef022576dd05ba17b07c45caf035873a18647618962c0 -f37583a907bbdce2afee783a8a8b46bfae16c33e19b34ab8c2926e568b3e16ba66feb54ffab3c3fd353d15cf35085f1d59cbead0192698e5c26bfe498119340df867ab86ff3e58f061ba5a061d274e809aae1f7513a28eed3d279f3f34f2de44cfa12aab0303d311b7c0e4b4cb66dc3959fb21b9c26348068311738cf2258d -5381f9dc01cdc49dcff5e588d9fe854fa4759395cb1dc51b58c83d4b55fcd3da70272881575b5acd9c11de97b79702ef417d0ac199bd5185533911dc5b4c8ec0db6e96e1a3c00477ce553b81a0f610d19c837699cbbf9c0bc4ed8dd9ffe6d13a8008b20d4c52135b6a9e515ea4fdf2057d9d4312ac75337abe16da9d7ef1bf -07aa4e4e8a5dff5381619fd1f2353a4de0ca3330417f3ebf9f86cb5921a1635f2da48f8aea9fba25db2f4d86ea8ff54ad165b68a0f30c1835b944221e4a674e9f805857bf7c93298f147a529636ce2b6aab94e37abef08e8261d74633ceaf5ae110455a53ac96a14637677d4f9392b8927a6031d0eee4b004ea1d41cd5c4f8 -904c389bcf5c7ae18f77dc22438742eef46e018040a03144134968c92b82f88e22a9f9846f506444d5fd43f72c9272235fbf0845b5a0676c803bc61d66d5a18a2fbd447761c41fb79a30c90cbcab35840fb14a9bc8d5d6edb19f70b420d81df60713b6cac192bc9ef006f7af35114461cc87fc50a2323cf30af4788312239e -8546618038952f0e93de5ac06ad51551b8e968d49c16e7d59c7738e7e69798bc9f04b2b6175d24f33ba2eafa0bc36a5226b368c6636bc33334ab4b94ae08c4f9370bb31da42f53c3b76cee0da4146e99ae0f57086c479500c6d2342297e3d4f49f556d6934c312bd3ddc9beb1c07119dc1d91c20f678e7e52d1e0494859f6c -9dacb7ec450aa2047ac38fc0d3f1fb9b794eefb18e62daedafaac5bc083c5a8a0ef03c176195dab2c5dbc8aae1803e3a811369d1ea946c0eba323ff60e5affc5b60194997eaf8be304b65256d10ad5bfde7da1378a94902ee2005981d9c9ca902875fb9354c1ddd201484fbfb851e86a5d6dc541819e67d8ba415912f7f2e7 -b1def89c663dedf9b5f2633f1c45f5529f944466bb5c0cd03ae26c78ab1c5491ff310f335d53d967214b2a5e2f0ac75a66048ebab664c15a69ea7c256c40783cc9f001aedfb315e16607a06f4c9cde1034f27e05a0e6a73381d83a5e678ba952308a6c9b73c98cefa070d3c52b2ecaf706b9b247fc88028c710c8d5d0aa49e -b35b5f4006d43e554937605e1f5712667e46e63eff3f1082257c82669b1cfc8815b3c3e87069977dc980d23a145e33f43dbf5e90cdbdb684f7db8d66f84c50a594f6f4b4057b58e6c5e27b34df4ea6849d4668efd8d402eaf6dfcbf5c54e4f52d15f7236def60a892a9e300091e438d447fa6fd26435692a457e5eea4e2d69 -ef8bb74daf6aecf57616fb6be91598ac5fa15d4dcb0c5806d4e43db6e526564cc3e2122b6ce50b5c637de8fb1b5bafffdf51214a8355f74cadd668f0d9b20e5bcee2a1485f2599088cfade4f5496f612de6f7607bd76d152c3f26944de667ca264af64eaba6f6f0fa1841e860a73075cb8e98792361b23a4cc2150cb9842d2 -59f78e62959a21a5873e190356117a31e75377908e48f249345f9727c0c9d1231bb2ac7a4533b9f2f3c2f479fb24f38cde23dd8e29a7d1d381b92ca4557225b4a796cd5abe2cdb90d032189388fcbf9848b0602efd6aa662162b53a8c83ce3cf06a9dfd0f0ecd017e7c0a1c1adb88f64c85809fead4bea4b639ce4e74e008d -a9f35970a1e9b973a878d5d419b43b8073c3dbbd829f07c45694edaa1ab98dfdd823830d663930ac316ea0c52f5e290e02b26fbb07d18f57d7bc4e572822f494304d6458efa42222bc6486acb53674595a913d613952fdba9e59f433641f01dbb7a7a2a16ca96480c229feaac7242ec15a7291637f09a99b3160c6ada9a478 -e1b276f6d77329cb2f9569b539b24f174e2ff12218aafd06abd1b663dd42d1089ee817719ea0e7bba089e167bec881b68a59bab6556106b128126bfcc1be67017a2beb29e307d5a9ca5e6d916b2f829964f13a06249e1bbc41264eb0217462365451e96f4e9ac13941d9fd2fc1fd8d4aa2e6f14ef4b99d9b4c16a3850e2423 -a84130f218a5cf5a64d467f7fe0f027c12f79c1ec8db81a4e4d584559d169ce624cad2d3c53bc2293e4de6e70a1f516e28d96710fcdade6a305816673be3f463cf03e98941162c265ba8dc5b88d2cd7d6e9ce00857cd7fa9498655eefa74e85a2b8ef749ce35ae966a9064052ad5a192bf7c5d9e9f7bf0f4254dbfed25b52d -c0c98ea598b6decd079783a2524a25e7054e0280923537f3e00d05baab5bc51d67442e6bb14986248a6543e90ea9b14f777b6d575bb07a11996c311c98ae4a90d983415e0e6d14b2f509acb555e605644dc9cde6968e290fa223441dee889d832773e4b0b66404d7b583fb76bfc4a9b5a708c852613ab2212032ae4c59c922 -2cf397dca566147a468838e2267fd4a55f2daf9b54f0cc55db9ca1ecc1a997a596a82812de11f0770b5eb5dde5412df05e9e02039e6d5e7d428c493b36d76b8208375861343469c5af66ff26ef2ee0e8b21f6c81be86d5bfe42d563901d8efd57f9ac0cf1acba4ca506b3499a790677792a528890c0562f44b6aa0b1608ee3 -fc66c4e0e0b8432ea1b2c8adf009c14d6bd099e5d55457d0143628b907d3aa00fb6dfd690b7f6fc45c60cc937e99a3945719987c4108186762dfe0140731e12169d6b3cf6fc5cbcf1db786aa88068044b5260aa9bf8fd767f50691b123208d7cfd3d8805076a456b3455d36c569a3e7fc38d466f57f29e38aa97d030e0f4c2 -fcaf77081fb37259948ef21c4c51b5b2661acb8b8e5e230346e19b03233fff6ed14c73092237cc8becda676e0c3d4205689d9b506bd0a079ab0f9ca49bb06e383896fb00f2a6b9b3485849fa6f8b3dd14946dcf5c5dc260800d54365fc619f594733f55fbb7e6b8c208d09a480a1ba1193f48f56416d6c36351861eff0ccf2 -3990ff8a012f1652d082d061011cfc98bfa9d089fad96f48b275267710da5ec1e1ce243b609bcb72ef943521be21fdda9f24a9da985a6df8f0300ded2c5416313dff090042b1434952fe7ba55f07c19d97b2a8587e90431ab7375dff1a818e218340116c51c0a2c96ce249221a3f9c29f1f9bd7cb7b6e4595fa7764640ab41 -9a2d69249c0fd1a2fd964f101bb46e61680bc62b1f55ae93a027b7c777611891566d89c1a33b999317c2a196cbfd4a6f8ec7f53ea3a9ca213f6dfe86f6ee51dff65aaa56612b1d78d55b23834a629c1f8b5347e8179e33ce883e0540d1a3036c163f2ce26ee6042fed8eede235251acc8904d71825ba22be8e34c2e06b0b01 -6cb4584614c59abc462ddec40a9d43cb74e1d61b99e60a1dad094a33528cfb83bad8e7ce451c41b2a9c1c0fb554c62793e27553534ecf0af92ff48492fb4565f05cfdc2ff70f3299833c5c62912601ed94572c03430f4906d9d9298619d22b421b198f8323d5dc6c48a193a856f22b2a3f7adc218733d2dd9e6540879bb5c8 -aa75b45fd299a6711eadb04410121076e0372b3cf7e22c949b51bf5c1d02f6fddd7a997fe2dfbb863bb96314cf130fd0a76dcdb21ea3d04f24d2948d4bb54e5070161f92e5212bec9da48827d791a83390aef110183038837cb513d717bc6b5619047157185121910a60cd0d6ebd5e6139d630be33d660e5380c11dadf1275 -2f34d2cd155aa8d6e38553dfa89e2dd9964e0ade344e0d8ce50ece046db1496839859b4bdd3b4971af731ab12da964b0f7d4f220ad692c94473e176eeac031f237d8f0d576076ea791a6b670cd5fb4936a10acddeb44f4275183424b437245ec1729004edfe5e7e60d9ff533a606c69c52adb0d78732997f4d62551faaec01 -e49094465d6fcf339ffe4b841fb20bb75f67f54d5e30993d1e24502d602b55948720411530024b3e5d8ac52f9a840fc5c7c15a2a9f652261e5d144eed3fca65d283db21c90cf1bc9c98dbbf6d2b0113a7d4c237d255b2704c5f7cd8d1f575d11bfcb3cd27a416605388b500681e3a41ebc1125a8a3fffda2db0dd3c7ca9eab -670823e8afe16f5628a879482838c09f00e780288bc2b470f39298d666e33142cb8068c4c99434368fc19638844e2fb241a18fdea88a6578cd9c311f6b36125d953c9d1d6850c006d1a9ad0bba7c4bed86b92befc612414e6ad90f8b1380a7d22a48f1cafd8cc6f8cd3f7dd17a61a5336caaa3a7d8ba40925585d41d4f1172 -ecdcc2c3f613d6b2c0bce2c177b3445337fa2ac0038cb13e5636e5af3f5e82b387d6aed0814370dce2899abd93db3f6c576f7e3c9564c89dfbe904ab963e41716d9bd730cd79916a3de3b72fc19a4bbf350050388c7aa3b3a7f6bbb92208e09d48401d9e5af523aced2e3663abb00f34aada3e7a234e9f316bdf66dc19f95a -c5d434e7c0f669524cf617426aacec209138d160d0ebce8ffa1f36a308937c09b84babf87a9e12ce22dcf4f74d766690c538bfd7e2f12c2507a9b8ef2941ba1103452b860c89d9e9ce5856eb68724d0e179a7c56509973502700879fc3c62dfbf427d9fddbb826884e4ecec9b9fbf52ac0550e9754ec76a5714a12a8832e10 -755e0952b3f4758af045dd6050a930512f9b3120949349b9e8b88fe8d8f95650687ecca00e5882bace4deaf25ea5215cd4d150b675a5e74118e40b0647e54590262e0aa4b01a7cc80401ca6b3f064d9ebae831e5b4a318e0a3fc710887f3877ecbaf0d8a379ab23bc9b19d9478ed552c1bcb5f70e03b34ed8429af033fa1b0 -8d99da8c61c26bedfdbbd22bad46b97a731d94ef4c8641e0d7f2734f6ab08c896d2c0b1d4531bad9d880882d5cde429616015ca37bf416e2b5fa7c68cb32af6d16d1980f1baf477d6a5205c640ee82f29df0eb4c4522b54a01989ba42fe0bf94912cb426ce2da3d0fcaa730b9cecbbf12a9577 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark{restore}if - -%%EndFont -setpacking -%AI3_EndRider -[ -39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis -/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute -/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde -/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex -/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls -/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash -/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef -/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash -/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef -/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe -/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide -/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright -/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand -/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex -/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex -/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla -/hungarumlaut/ogonek/caron -TE -%AI55J_Tsume: None -%AI3_BeginEncoding: _Device Device -[/NUL -/Eth -/eth -/Lslash -/lslash -/Scaron -/scaron -/Yacute -/yacute -/HT -/LF -/Thorn -/thorn -/CR -/Zcaron -/zcaron -/DLE -/DC1 -/DC2 -/DC3 -/DC4 -/onehalf -/onequarter -/onesuperior -/threequarters -/threesuperior -/twosuperior -/brokenbar -/minus -/multiply -/RS -/US -/space -/exclam -/quotedbl -/numbersign -/dollar -/percent -/ampersand -/quotesingle -/parenleft -/parenright -/asterisk -/plus -/comma -/hyphen -/period -/slash -/zero -/one -/two -/three -/four -/five -/six -/seven -/eight -/nine -/colon -/semicolon -/less -/equal -/greater -/question -/at -/A -/B -/C -/D -/E -/F -/G -/H -/I -/J -/K -/L -/M -/N -/O -/P -/Q -/R -/S -/T -/U -/V -/W -/X -/Y -/Z -/bracketleft -/backslash -/bracketright -/asciicircum -/underscore -/grave -/a -/b -/c -/d -/e -/f -/g -/h -/i -/j -/k -/l -/m -/n -/o -/p -/q -/r -/s -/t -/u -/v -/w -/x -/y -/z -/braceleft -/bar -/braceright -/asciitilde -/DEL -/Adieresis -/Aring -/Ccedilla -/Eacute -/Ntilde -/Odieresis -/Udieresis -/aacute -/agrave -/acircumflex -/adieresis -/atilde -/aring -/ccedilla -/eacute -/egrave -/ecircumflex -/edieresis -/iacute -/igrave -/icircumflex -/idieresis -/ntilde -/oacute -/ograve -/ocircumflex -/odieresis -/otilde -/uacute -/ugrave -/ucircumflex -/udieresis -/dagger -/degree -/cent -/sterling -/section -/bullet -/paragraph -/germandbls -/registered -/copyright -/trademark -/acute -/dieresis -/notequal -/AE -/Oslash -/infinity -/plusminus -/lessequal -/greaterequal -/yen -/mu -/partialdiff -/summation -/product -/pi -/integral -/ordfeminine -/ordmasculine -/Omega -/ae -/oslash -/questiondown -/exclamdown -/logicalnot -/radical -/florin -/approxequal -/Delta -/guillemotleft -/guillemotright -/ellipsis -/nbspace -/Agrave -/Atilde -/Otilde -/OE -/oe -/endash -/emdash -/quotedblleft -/quotedblright -/quoteleft -/quoteright -/divide -/lozenge -/ydieresis -/Ydieresis -/fraction -/currency -/guilsinglleft -/guilsinglright -/fi -/fl -/daggerdbl -/periodcentered -/quotesinglbase -/quotedblbase -/perthousand -/Acircumflex -/Ecircumflex -/Aacute -/Edieresis -/Egrave -/Iacute -/Icircumflex -/Idieresis -/Igrave -/Oacute -/Ocircumflex -/apple -/Ograve -/Uacute -/Ucircumflex -/Ugrave -/dotlessi -/circumflex -/tilde -/macron -/breve -/dotaccent -/ring -/cedilla -/hungarumlaut -/ogonek -/caron -/_Device/Device 0 0 0 TZ -%AI3_EndEncoding AdobeType -[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal -181/mu/partialdiff/summation/product/pi/integral 189/Omega -195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple -/_Symbol_/Symbol 0 0 0 TZ -%AI5_Begin_NonPrinting -Np -%AI3_BeginPattern: (Brick) -(Brick) 0 0 72 72 [ -%AI3_Tile -(0 O 0 R 0.3 0.85 0.85 0 k - 0.3 0.85 0.85 0 K -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR -0 0 m -0 72 L -72 72 L -72 0 L -0 0 L -f -%AI6_EndPatternLayer -) & -(0 O 0 R 1 g - 1 G -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 0.3 w 4 M []0 d -%AI3_Note: -0 D -0 XR -0 68.4097 m -72 68.4097 l -S -0 61.209 m -72 61.209 L -S -0 54.0088 m -72 54.0088 L -S -0 46.8076 m -72 46.8076 L -S -0 39.6084 m -72 39.6084 L -S -0 32.4072 m -72 32.4072 L -S -0 25.207 m -72 25.207 L -S -0 18.0059 m -72 18.0059 L -S -0 10.8057 m -72 10.8057 L -S -0 3.6064 m -72 3.6064 L -S -68.4102 68.4097 m -68.4102 61.2217 l -S -54.0098 68.4097 m -54.0098 61.2217 L -S -39.6094 68.4097 m -39.6094 61.2217 L -S -25.21 68.4097 m -25.21 61.2217 L -S -10.8105 68.4097 m -10.8105 61.2217 L -S -68.4102 53.9717 m -68.4102 46.7842 l -S -54.0098 53.9717 m -54.0098 46.7842 L -S -39.6094 53.9717 m -39.6094 46.7842 L -S -25.21 53.9717 m -25.21 46.7842 L -S -10.8105 53.9717 m -10.8105 46.7842 L -S -68.4102 39.5967 m -68.4102 32.4092 l -S -54.0098 39.5967 m -54.0098 32.4092 L -S -39.6094 39.5967 m -39.6094 32.4092 L -S -25.21 39.5967 m -25.21 32.4092 L -S -10.8105 39.5967 m -10.8105 32.4092 L -S -68.4102 25.2217 m -68.4102 18.0342 l -S -54.0098 25.2217 m -54.0098 18.0342 L -S -39.6094 25.2217 m -39.6094 18.0342 L -S -25.21 25.2217 m -25.21 18.0342 L -S -10.8105 25.2217 m -10.8105 18.0342 L -S -68.4102 10.7842 m -68.4102 3.5967 l -S -54.0098 10.7842 m -54.0098 3.5967 L -S -39.6094 10.7842 m -39.6094 3.5967 L -S -25.21 10.7842 m -25.21 3.5967 L -S -10.8105 10.7842 m -10.8105 3.5967 L -S -61.1973 3.5967 m -61.1973 0 L -S -46.7969 3.5967 m -46.7969 0 L -S -32.3965 3.5967 m -32.3965 0 L -S -17.9971 3.5967 m -17.9971 0 L -S -3.5967 3.5967 m -3.5967 0 l -S -61.1973 18.0342 m -61.1973 10.8467 L -S -46.7969 18.0342 m -46.7969 10.8467 L -S -32.3965 18.0342 m -32.3965 10.8467 L -S -17.9971 18.0342 m -17.9971 10.8467 L -S -3.5967 18.0342 m -3.5967 10.8467 l -S -61.1973 32.4092 m -61.1973 25.2217 L -S -46.7969 32.4092 m -46.7969 25.2217 L -S -17.9971 32.4092 m -17.9971 25.2217 L -S -3.5967 32.4092 m -3.5967 25.2217 l -S -61.1973 46.7842 m -61.1973 39.5967 L -S -46.7969 46.7842 m -46.7969 39.5967 L -S -32.3965 46.7842 m -32.3965 39.5967 L -S -17.9971 46.7842 m -17.9971 39.5967 L -S -3.5967 46.7842 m -3.5967 39.5967 l -S -61.1973 61.2217 m -61.1973 54.0347 L -S -46.7969 61.2217 m -46.7969 54.0347 L -S -32.3965 61.2217 m -32.3965 54.0347 L -S -17.9971 61.2217 m -17.9971 54.0347 L -S -3.5967 61.2217 m -3.5967 54.0347 l -S -61.1973 71.959 m -61.1973 68.4717 L -S -46.7969 71.959 m -46.7969 68.4717 L -S -32.3965 71.959 m -32.3965 68.4717 L -S -17.9971 71.959 m -17.9971 68.4717 L -S -3.5967 71.959 m -3.5967 68.4717 l -S -32.3965 32.4092 m -32.3965 25.2217 L -S -%AI6_EndPatternLayer -) & -] E -%AI3_EndPattern -%AI3_BeginPattern: (Confetti) -(Confetti) 4.85 3.617 76.85 75.617 [ -%AI3_Tile -(0 O 0 R 1 g - 1 G -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR -4.85 3.617 m -4.85 75.617 L -76.85 75.617 L -76.85 3.617 L -4.85 3.617 L -f -%AI6_EndPatternLayer -) & -(0 O 0 R 0 g - 0 G -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 0.3 w 4 M []0 d -%AI3_Note: -0 D -0 XR -10.6 64.867 m -7.85 62.867 l -S -9.1 8.617 m -6.85 6.867 l -S -78.1 68.617 m -74.85 67.867 l -S -76.85 56.867 m -74.35 55.117 l -S -79.6 51.617 m -76.6 51.617 l -S -76.35 44.117 m -73.6 45.867 l -S -78.6 35.867 m -76.6 34.367 l -S -76.1 23.867 m -73.35 26.117 l -S -78.1 12.867 m -73.85 13.617 l -S -68.35 14.617 m -66.1 12.867 l -S -76.6 30.617 m -73.6 30.617 l -S -62.85 58.117 m -60.956 60.941 l -S -32.85 59.617 m -31.196 62.181 l -S -47.891 64.061 m -49.744 66.742 l -S -72.814 2.769 m -73.928 5.729 l -S -67.976 2.633 m -67.35 5.909 l -S -61.85 27.617 m -59.956 30.441 l -S -53.504 56.053 m -51.85 58.617 l -S -52.762 1.779 m -52.876 4.776 l -S -45.391 5.311 m -47.244 7.992 l -S -37.062 3.375 m -35.639 5.43 l -S -55.165 34.828 m -57.518 37.491 l -S -20.795 3.242 m -22.12 5.193 l -S -14.097 4.747 m -15.008 8.965 l -S -9.736 1.91 m -8.073 4.225 l -S -31.891 5.573 m -32.005 8.571 l -S -12.1 70.367 m -15.6 68.867 l -S -9.35 54.867 m -9.6 58.117 l -S -12.85 31.867 m -14.35 28.117 l -S -10.1 37.367 m -12.35 41.117 l -S -34.1 71.117 m -31.85 68.617 l -S -38.35 71.117 m -41.6 68.367 l -S -55.1 71.117 m -58.35 69.117 l -S -57.35 65.117 m -55.35 61.867 l -S -64.35 66.367 m -69.35 68.617 l -S -71.85 62.867 m -69.35 61.117 l -S -23.6 70.867 m -23.6 67.867 l -S -20.6 65.867 m -17.35 65.367 l -S -24.85 61.367 m -25.35 58.117 l -S -25.85 65.867 m -29.35 66.617 l -S -14.1 54.117 m -16.85 56.117 l -S -12.35 11.617 m -12.6 15.617 l -S -12.1 19.867 m -14.35 22.367 l -S -26.1 9.867 m -23.6 13.367 l -S -34.6 47.117 m -32.1 45.367 l -S -62.6 41.867 m -59.85 43.367 l -S -31.6 35.617 m -27.85 36.367 l -S -36.35 26.117 m -34.35 24.617 l -S -33.85 14.117 m -31.1 16.367 l -S -37.1 9.867 m -35.1 11.117 l -S -34.35 20.867 m -31.35 20.867 l -S -44.6 56.617 m -42.1 54.867 l -S -47.35 51.367 m -44.35 51.367 l -S -44.1 43.867 m -41.35 45.617 l -S -43.35 33.117 m -42.6 30.617 l -S -43.85 23.617 m -41.1 25.867 l -S -44.35 15.617 m -42.35 16.867 l -S -67.823 31.1 m -64.823 31.1 l -S -27.1 32.617 m -29.6 30.867 l -S -31.85 55.117 m -34.85 55.117 l -S -19.6 40.867 m -22.1 39.117 l -S -16.85 35.617 m -19.85 35.617 l -S -20.1 28.117 m -22.85 29.867 l -S -52.1 42.617 m -54.484 44.178 l -S -52.437 50.146 m -54.821 48.325 l -S -59.572 54.133 m -59.35 51.117 l -S -50.185 10.055 m -53.234 9.928 l -S -51.187 15.896 m -53.571 14.075 l -S -58.322 19.883 m -59.445 16.823 l -S -53.1 32.117 m -50.6 30.367 l -S -52.85 24.617 m -49.6 25.617 l -S -61.85 9.117 m -59.1 10.867 l -S -69.35 34.617 m -66.6 36.367 l -S -67.1 23.617 m -65.1 22.117 l -S -24.435 46.055 m -27.484 45.928 l -S -25.437 51.896 m -27.821 50.075 l -S -62.6 47.117 m -65.321 46.575 l -S -19.85 19.867 m -20.35 16.617 l -S -21.85 21.867 m -25.35 22.617 l -S -37.6 62.867 m -41.6 62.117 l -S -38.323 42.1 m -38.823 38.6 l -S -69.35 52.617 m -66.85 53.867 l -S -14.85 62.117 m -18.1 59.367 l -S -9.6 46.117 m -7.1 44.367 l -S -20.6 51.617 m -18.6 50.117 l -S -46.141 70.811 m -47.994 73.492 l -S -69.391 40.561 m -71.244 43.242 l -S -38.641 49.311 m -39.35 52.117 l -S -25.141 16.811 m -25.85 19.617 l -S -36.6 32.867 m -34.6 31.367 l -S -6.1 68.617 m -2.85 67.867 l -S -4.85 56.867 m -2.35 55.117 l -S -7.6 51.617 m -4.6 51.617 l -S -6.6 35.867 m -4.6 34.367 l -S -6.1 12.867 m -1.85 13.617 l -S -4.6 30.617 m -1.6 30.617 l -S -72.814 74.769 m -73.928 77.729 l -S -67.976 74.633 m -67.35 77.909 l -S -52.762 73.779 m -52.876 76.776 l -S -37.062 75.375 m -35.639 77.43 l -S -20.795 75.242 m -22.12 77.193 l -S -9.736 73.91 m -8.073 76.225 l -S -10.1 23.617 m -6.35 24.367 l -S -73.217 18.276 m -71.323 21.1 l -S -28.823 39.6 m -29.505 42.389 l -S -49.6 38.617 m -47.6 37.117 l -S -60.323 73.6 m -62.323 76.6 l -S -60.323 1.6 m -62.323 4.6 l -S -%AI6_EndPatternLayer -) & -] E -%AI3_EndPattern -%AI3_BeginPattern: (Leaves - Fall ) -(Leaves - Fall ) 0 0 64.0781 78.9336 [ -%AI3_Tile -(0 O 0 R 0.05 0.2 1 0 k - 0.05 0.2 1 0 K -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR -64.0781 78.9336 m -64.0781 0 L -0 0 L -0 78.9336 L -64.0781 78.9336 L -f -%AI6_EndPatternLayer -) & -(0 O 0 R 0.83 0 1 0 k - 0.83 0 1 0 K -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -1 D -0 XR -29.7578 0.9902 m -30.4346 1.1914 30.7246 1.3428 V -29.2559 4.0547 33.707 8.3359 34.627 9.0762 C -35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C -35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C -38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C -40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C -39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C -42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C -44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C -42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C -40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C -43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C -41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C -38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C -36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C -35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C -32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C -32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C -32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C -30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C -27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C -30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C -29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C -f -13.8525 29.9844 m -13.3281 29.5127 13.1309 29.25 V -15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C -12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C -9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C -7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C -6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C -8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C -4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C -4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C -7.2256 14.5 9.2598 15.6133 10.166 15.5645 C -10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C -8.1875 11.041 9.207 9.5107 10.166 7.0947 C -10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C -12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C -13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C -16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C -18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C -17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C -15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C -18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C -19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C -17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C -15.373 24.3779 15.373 27.2959 13.8525 29.9844 C -f -41.2324 26.0742 m -41.5518 26.7021 41.7549 26.959 V -44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C -49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C -46.3408 31.123 45.4395 33.084 44.2402 34.126 C -45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C -48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C -51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C -51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C -53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C -54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C -55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C -57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C -60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C -58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C -55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C -59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C -59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C -55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C -53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C -53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C -51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C -49.749 24.9766 50.584 26.9941 50.25 28.4609 C -45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C -f -27.7578 38.7324 m -28.4346 38.9316 28.7246 39.084 V -27.2559 41.7969 31.707 46.0776 32.627 46.8169 C -33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C -33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C -36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C -38.002 44.582 37.3359 46.0547 36.5742 47.5039 C -37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C -40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C -42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C -40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C -38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C -41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C -39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C -36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C -34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C -33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C -30.7373 55.5146 30.166 54.314 29.2969 53.0366 C -30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C -30.9775 50.46 29.2852 51.2036 28.793 52.1958 C -28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C -25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C -28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C -27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C -f -13.5195 70.3916 m -12.9941 69.9209 12.7988 69.6587 V -15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C -11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C -9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C -6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C -6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C -8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C -4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C -4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C -6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C -9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C -7.8545 51.4497 8.873 49.9189 9.832 47.5039 C -10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C -11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C -13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C -16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C -18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C -16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C -15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C -18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C -19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C -16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C -15.041 64.7856 15.041 67.7046 13.5195 70.3916 C -f -41.2324 64.4824 m -41.5518 65.1113 41.7549 65.3682 V -44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C -49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C -46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C -45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C -48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C -51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C -51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C -53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C -54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C -55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C -57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C -60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C -58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C -55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C -59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C -59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C -55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C -53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C -53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C -51.2881 60.583 50.4268 61.8882 48.5645 62.333 C -49.749 63.3862 50.584 65.4033 50.25 66.8691 C -45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C -f -%AI6_EndPatternLayer -) & -] E -%AI3_EndPattern -%AI3_BeginPattern: (Stripes) -(Stripes) 8.45 4.6001 80.45 76.6001 [ -%AI3_Tile -(0 O 0 R 1 0.07 1 0 k - 1 0.07 1 0 K -) @ -( -%AI6_BeginPatternLayer -800 Ar -0 J 0 j 3.6 w 4 M []0 d -%AI3_Note: -0 D -0 XR -8.2 8.2 m -80.7 8.2 L -S -8.2 22.6001 m -80.7 22.6001 L -S -8.2 37.0002 m -80.7 37.0002 L -S -8.2 51.4 m -80.7 51.4 L -S -8.2 65.8001 m -80.7 65.8001 L -S -8.2 15.4 m -80.7 15.4 L -S -8.2 29.8001 m -80.7 29.8001 L -S -8.2 44.2 m -80.7 44.2 L -S -8.2 58.6001 m -80.7 58.6001 L -S -8.2 73.0002 m -80.7 73.0002 L -S -%AI6_EndPatternLayer -) & -] E -%AI3_EndPattern -%AI5_End_NonPrinting-- -%AI5_Begin_NonPrinting -Np -%AI8_BeginBrushPattern -(New Pattern 1) -0 A -u -1 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7834.75 8587 m --7834.75 8563 L --7884.75 8563 L --7884.75 8587 L --7834.75 8587 L -n -u -0 Ap -0 O -1 g --7854.75 8585 m --7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C -F --7844.75 8585 m --7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C -F --7884.75 8565 m --7864.75 8560 -7854.75 8590 -7834.75 8585 C -F --7874.75 8565 m --7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C -F --7864.75 8565 m --7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C -F --7844.75 8565 m --7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C -F --7874.75 8585 m --7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C -F --7844.7817 8565.125 m --7850.9009 8563.6162 -7854.7817 8565.125 V --7858.877 8563.6484 -7864.7817 8565.125 V --7869.7446 8563.4492 -7874.7817 8565.125 V --7880.7969 8563.5742 -7884.7817 8565.125 V --7884.7817 8584.8096 L --7881.6958 8585.7842 -7878.2969 8585.9912 -7874.3799 8584.9082 C --7868.2134 8586.4912 -7864.4634 8584.9082 V --7859.4634 8586.4912 -7854.3799 8584.8242 V --7850.0474 8586.4082 -7844.3799 8584.9082 V --7838.8799 8586.3242 -7834.7817 8585.125 V --7834.7817 8565.4404 L --7837.5254 8564.4287 -7840.6514 8563.9287 -7844.7817 8565.125 C -f -0 R -0 G -1 J 1 j 0.5 w --7864.75 8585 m --7872.54 8586.9473 -7878.813 8583.585 -7884.75 8579.0488 C -S --7854.75 8585 m --7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C -S --7844.75 8585 m --7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C -S --7884.75 8565 m --7864.75 8560 -7854.75 8590 -7834.75 8585 C -S --7874.75 8565 m --7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C -S --7864.75 8565 m --7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C -S --7854.75 8565 m --7846.96 8563.0527 -7840.687 8566.415 -7834.75 8570.9512 C -S --7844.75 8565 m --7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C -S --7874.75 8585 m --7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C -S -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 2) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884 8586 m --7819.187 8586 L --7819.187 8521.9023 L --7884 8521.9023 L --7884 8586 L -n -u -0 O -0 g --7849.6978 8544.4297 m --7851.6094 8521.9023 L --7853.5215 8544.4297 L --7852.9033 8544.3066 -7852.2642 8544.2402 -7851.6094 8544.2402 c --7850.9551 8544.2402 -7850.3159 8544.3066 -7849.6978 8544.4297 C -f --7861.2402 8552.3975 m --7884 8554.3301 L --7861.1138 8556.2734 L --7861.2856 8555.5469 -7861.3848 8554.793 -7861.3848 8554.0156 c --7861.3848 8553.4629 -7861.3281 8552.9248 -7861.2402 8552.3975 C -f --7856.519 8545.5723 m --7870.1626 8536.8047 L --7860.2153 8549.377 L --7859.3574 8547.791 -7858.0718 8546.4766 -7856.519 8545.5723 C -f --7853.481 8563.6074 m --7851.5786 8586 L --7849.6768 8563.5967 L --7850.3018 8563.7227 -7850.9473 8563.791 -7851.6094 8563.791 c --7852.25 8563.791 -7852.873 8563.7246 -7853.481 8563.6074 C -f --7841.9609 8555.5068 m --7819.187 8553.5732 L --7842.083 8551.6289 L --7842.083 8551.8506 L --7841.9258 8552.5488 -7841.834 8553.2695 -7841.834 8554.0156 c --7841.834 8554.5234 -7841.8848 8555.0195 -7841.9609 8555.5068 C -f --7860.1138 8558.8262 m --7870.1641 8571.5293 L --7856.2778 8562.6055 L --7857.8823 8561.7305 -7859.2114 8560.416 -7860.1138 8558.8262 C -f --7842.9961 8549.3945 m --7832.875 8536.6055 L --7846.7666 8545.5313 L --7845.1768 8546.4414 -7843.8633 8547.7793 -7842.9961 8549.3945 C -f --7846.6895 8562.4512 m --7832.873 8571.3281 L --7842.9658 8558.5732 L --7843.8198 8560.1895 -7845.1152 8561.5313 -7846.6895 8562.4512 C -f --7842.8887 8558.6133 m --7842.3862 8557.6641 -7842.043 8556.6211 -7841.875 8555.5195 c --7841.7993 8555.0293 -7841.748 8554.5273 -7841.748 8554.0156 c --7841.748 8553.2637 -7841.8398 8552.5352 -7841.998 8551.8311 c --7842.1958 8550.957 -7842.5049 8550.124 -7842.918 8549.3545 c --7843.7954 8547.7246 -7845.1191 8546.374 -7846.7241 8545.4561 c --7847.6294 8544.9375 -7848.6226 8544.5537 -7849.6802 8544.3457 c --7850.3047 8544.2207 -7850.9497 8544.1523 -7851.6094 8544.1523 c --7852.2695 8544.1523 -7852.915 8544.2207 -7853.5391 8544.3457 c --7854.623 8544.5605 -7855.6382 8544.957 -7856.5625 8545.4961 c --7858.1313 8546.4102 -7859.4282 8547.7363 -7860.291 8549.335 c --7860.7969 8550.2695 -7861.145 8551.2969 -7861.3262 8552.3828 c --7861.415 8552.916 -7861.4727 8553.459 -7861.4727 8554.0156 c --7861.4727 8554.8008 -7861.3711 8555.5605 -7861.1978 8556.293 c --7860.981 8557.207 -7860.6406 8558.0732 -7860.187 8558.8701 c --7859.2793 8560.4727 -7857.939 8561.8008 -7856.3174 8562.6826 c --7855.4487 8563.1553 -7854.5 8563.498 -7853.4961 8563.6934 c --7852.8848 8563.8115 -7852.2554 8563.8779 -7851.6094 8563.8779 c --7850.9414 8563.8779 -7850.29 8563.8086 -7849.6602 8563.6826 c --7848.5786 8563.4668 -7847.5664 8563.0654 -7846.6455 8562.5273 c --7845.0566 8561.5977 -7843.751 8560.2441 -7842.8887 8558.6133 c -f -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 3) -0 A -u -1 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7874.75 8587 m --7874.75 8563 L --7884.75 8563 L --7884.75 8587 L --7874.75 8587 L -n -u -u -0 Ap -0 O -1 g --7875.4058 8578.5361 m --7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c --7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 c --7877.897 8566.9736 -7881.0898 8565 -7884.75 8565 C --7884.75 8585 L --7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 c --7881.9121 8584.7754 -7880.1807 8584.0645 -7878.7441 8582.9824 c --7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 c -f -0 R -0 G -1 J 1 j 0.5 w --7884.75 8565.3174 m --7881.7207 8566.2744 -7878.8926 8567.9326 -7876.1543 8569.9072 C -S --7884.75 8570.9512 m --7881.5991 8573.3564 -7878.543 8576.0869 -7875.4058 8578.5361 C -S --7878.7441 8582.9824 m --7880.8105 8581.8916 -7882.7993 8580.5342 -7884.75 8579.043 C -S --7883.8018 8584.9521 m --7884.1191 8584.8682 -7884.4375 8584.7852 -7884.75 8584.6865 C -S --7878.7441 8582.9824 m --7880.1807 8584.0645 -7881.9121 8584.7744 -7883.8018 8584.9521 C -S --7875.4058 8578.5361 m --7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c --7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 C -S --7884.75 8585 m --7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 C -S --7878.7441 8582.9824 m --7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 C -S --7876.1543 8569.9072 m --7877.8975 8566.9736 -7881.0898 8565 -7884.75 8565 C -S -U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 5) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7726.3994 8587 m --7726.3994 8573.4199 L --7885 8573.4199 L --7885 8587 L --7726.3994 8587 L -n -u -u -0 O -0.285 0.228 0.171 0 k --7741.0786 8585.4844 m --7741.043 8586.6895 L --7727.5103 8587.5176 -7726.8418 8586.2822 v --7726.7441 8586.1016 -7726.647 8585.7148 -7726.561 8585.1934 C --7728.584 8585.8242 -7738.291 8585.5713 -7741.0786 8585.4844 C -f -0.44 0.352 0.264 0 k --7741.4063 8574.0234 m --7741.3711 8575.2676 L --7738.4912 8575.0488 -7728.1914 8574.3164 -7726.543 8574.8652 C --7726.7031 8574.2188 -7726.9199 8573.7646 -7727.2046 8573.6152 c --7728.8306 8572.7656 -7741.4063 8574.0234 Y -f -0.145 0.116 0.087 0 k --7741.3711 8575.2676 m --7741.0786 8585.4844 L --7738.291 8585.5713 -7728.584 8585.8242 -7726.561 8585.1934 C --7726.1519 8582.7773 -7725.9258 8577.3604 -7726.543 8574.8652 C --7728.1914 8574.3164 -7738.4912 8575.0488 -7741.3711 8575.2676 C -f -U -u -0.155 0.124 0.093 0 k --7766.9375 8579.2734 m --7765.897 8579.6563 L --7747.0728 8575.1465 L --7747.481 8574.3145 L --7766.3633 8576.7246 L --7767.252 8577.0059 L --7767.6504 8576.8936 -7768.1934 8576.8242 V --7767.6094 8577.2373 -7767.1426 8578.1406 -7766.9375 8579.2734 C -f -u -0.085 0.068 0.051 0 k --7771.7993 8583.666 m --7772.5977 8583.7217 -7769.749 8583.6641 Y --7770.3481 8583.0176 -7770.771 8581.8203 -7770.8105 8580.4375 c --7770.8169 8580.2246 -7770.8105 8580.0176 -7770.7993 8579.8135 C --7771.041 8579.707 -7771.0918 8579.7734 -7771.6289 8579.5645 C --7771 8583.6113 -7771.7993 8583.666 v -f -0.305 0.244 0.183 0 k --7770.3442 8576.8672 m --7770.5527 8576.8105 -7770.4937 8578.9307 Y --7769.4785 8579.7588 L --7767.8359 8578.9434 L --7766.9375 8579.2734 L --7767.1426 8578.1406 -7767.6094 8577.2373 -7768.1934 8576.8242 C --7768.6094 8576.7715 -7769.874 8576.7998 -7770.3442 8576.8672 C -f -U -0.115 0.092 0.069 0 k --7766.9375 8579.2734 m --7767.8359 8578.9434 L --7769.4785 8579.7588 L --7770.4937 8578.9307 L --7770.793 8579.708 -7770.7993 8579.8135 V --7769.5137 8580.3789 -7768.1831 8580.7402 -7766.8398 8580.9258 C --7766.79 8580.7275 -7766.7842 8580.543 -7766.79 8580.3369 c --7766.7998 8579.9717 -7766.8218 8579.6182 -7766.9375 8579.2734 C -f -0.41 0.328 0.246 0 k --7747.4512 8575.3965 m --7749.377 8576.6426 -7758.3862 8582.0986 -7766.8398 8580.9258 C --7766.9038 8582.0928 -7767.248 8583.0908 -7767.75 8583.6631 C --7767.1895 8583.6621 L --7746.7402 8586.7559 L --7747.0366 8576.4258 L --7747.0728 8575.1465 L --7747.2046 8575.2373 -7747.4512 8575.3965 v -f -0.395 0.316 0.237 0 k --7770.8105 8580.4375 m --7770.771 8581.8203 -7770.3481 8583.0176 -7769.749 8583.6641 C --7767.6807 8583.6631 L --7767.1782 8583.0908 -7766.8218 8582.0713 -7766.8398 8580.9258 C --7768.1831 8580.7402 -7769.5137 8580.3789 -7770.7993 8579.8135 C --7770.8105 8580.0176 -7770.8169 8580.2246 -7770.8105 8580.4375 c -f -U -u -0 0 0 0.11 k --7741.2642 8574.2012 m --7740.2407 8574.0352 L --7741.2642 8574.2012 L --7741.2642 8574.2012 L -f -0 0 0 0.34 k --7747.481 8574.3145 m --7747.0728 8575.1465 L --7745.6714 8574.918 L --7744.5234 8574.7314 L --7742.6758 8574.4307 L --7741.2642 8574.2012 L --7740.2407 8574.0352 L --7740.2954 8573.7168 -7740.3672 8573.498 -7740.4648 8573.4199 C --7747.481 8574.3145 L -f -0 0 0 0.32 k --7745.8042 8579.207 m --7746.041 8586.8613 L --7740.7144 8587 L --7739.7266 8583.5146 -7740.1816 8579.1543 V --7745.8042 8579.207 L -f -U -0.025 0.02 0.015 0 k --7739.3223 8576.3848 m --7736.373 8576.9199 -7733.2402 8577.1602 -7730.3159 8576.3613 c --7730.2856 8576.3496 -7730.2754 8576.3184 -7730.2871 8576.2969 c --7730.2881 8576.2656 -7730.3198 8576.2559 -7730.3418 8576.2559 c --7733.2422 8577.0645 -7736.375 8576.8242 -7739.3042 8576.2783 c --7739.3262 8576.2793 -7739.3574 8576.291 -7739.3672 8576.3223 c --7739.3662 8576.3438 -7739.355 8576.375 -7739.3223 8576.3848 c --7739.3223 8576.3848 l -f --7737.8374 8575.3076 m --7737.7295 8575.3789 -7737.6313 8575.4941 -7737.5234 8575.502 c --7733.7886 8575.832 -7730.1631 8575.7813 -7726.4746 8575.6641 c --7726.4526 8575.6641 -7726.4209 8575.6426 -7726.4214 8575.6211 c --7726.4214 8575.5879 -7726.4551 8575.5684 -7726.4766 8575.5684 c --7729.3223 8575.6816 -7732.1401 8575.6992 -7735.0039 8575.5352 c --7735.9336 8575.4766 -7736.9082 8575.7402 -7737.7778 8575.2207 c --7737.7993 8575.2109 -7737.8306 8575.2109 -7737.8506 8575.2334 c --7737.8618 8575.2559 -7737.8594 8575.2871 -7737.8374 8575.3076 c --7737.8374 8575.3076 l -f --7733.373 8577.3672 m --7731.5098 8578.6797 -7729.3022 8579.374 -7727.1001 8579.8867 c --7727.0679 8579.8965 -7727.0474 8579.8848 -7727.0366 8579.8535 c --7727.0273 8579.8203 -7727.0488 8579.8008 -7727.0703 8579.79 c --7729.2617 8579.2656 -7731.459 8578.6035 -7733.3105 8577.2803 c --7733.3433 8577.2598 -7733.375 8577.2715 -7733.3848 8577.293 c --7733.4058 8577.3145 -7733.3945 8577.3457 -7733.373 8577.3672 c --7733.373 8577.3672 l -f --7738.9321 8584.0566 m --7736.7295 8584.5703 -7734.5298 8585.0303 -7732.2798 8585.2754 c --7732.2598 8585.2852 -7732.229 8585.2637 -7732.229 8585.2422 c --7732.2183 8585.209 -7732.2407 8585.1777 -7732.2729 8585.1787 c --7734.5122 8584.8809 -7736.7305 8584.5176 -7738.9126 8583.9502 c --7738.9351 8583.9512 -7738.9673 8583.9629 -7738.9766 8583.9941 c --7738.9751 8584.0156 -7738.9648 8584.0479 -7738.9321 8584.0566 c --7738.9321 8584.0566 l -f --7738.439 8583.3604 m --7736.3457 8584.1973 -7734.1016 8583.9297 -7731.9023 8583.9629 c --7731.8706 8583.9609 -7731.8496 8583.9395 -7731.8506 8583.9082 c --7731.8521 8583.875 -7731.873 8583.8555 -7731.8945 8583.8555 c --7734.0928 8583.8438 -7736.3374 8584.0996 -7738.4209 8583.2529 c --7738.4434 8583.2539 -7738.4746 8583.2656 -7738.4834 8583.2969 c --7738.4834 8583.3184 -7738.4722 8583.3506 -7738.439 8583.3604 c --7738.439 8583.3604 l -f --7737.707 8584.7051 m --7736.3833 8584.752 -7735.1504 8584.5469 -7733.8271 8584.209 c --7733.3594 8584.0996 -7732.9199 8584.2266 -7732.4609 8584.2129 c --7731.897 8584.1973 l --7731.874 8584.1963 -7731.8633 8584.1855 -7731.8535 8584.1738 c --7731.834 8584.1523 -7731.8442 8584.1211 -7731.8662 8584.0996 c --7732.0625 8583.9453 l --7732.0742 8583.9453 -7732.085 8583.9355 -7732.0962 8583.9355 c --7732.5 8583.9473 l --7733.9551 8584.1914 -7735.457 8584.6719 -7736.8926 8584.0742 c --7736.9258 8584.0645 -7736.957 8584.0859 -7736.9673 8584.1074 c --7736.9673 8584.1396 -7736.9551 8584.1602 -7736.9336 8584.1709 c --7735.647 8584.6992 -7734.1714 8584.4756 -7732.8818 8584.0547 c --7732.0918 8584.043 L --7732.124 8584.0332 L --7731.9282 8584.1875 L --7731.8984 8584.0898 L --7732.4639 8584.1064 l --7732.9321 8584.1406 -7733.3848 8583.9834 -7733.8398 8584.1035 c --7735.1543 8584.4609 -7736.3975 8584.625 -7737.71 8584.5986 c --7737.7422 8584.5996 -7737.7642 8584.6211 -7737.7617 8584.6533 c --7737.7617 8584.6855 -7737.7402 8584.7061 -7737.707 8584.7051 c --7737.707 8584.7051 l -f --7738.5718 8585.0605 m --7735.8711 8586.2207 -7732.9023 8585.5703 -7730.1279 8585.1816 c --7729.7832 8585.2891 l --7729.7617 8585.2988 -7729.7417 8585.2871 -7729.7207 8585.2656 c --7729.71 8585.2441 -7729.7217 8585.2129 -7729.7422 8585.2021 c --7730.0801 8585.0098 l --7732.7754 8584.3926 -7735.5391 8584.7813 -7738.271 8584.7852 c --7738.3022 8584.7871 -7738.3232 8584.8086 -7738.3223 8584.8398 c --7738.3198 8584.8721 -7738.2983 8584.8926 -7738.2681 8584.8926 c --7735.6738 8584.9355 -7733.0303 8584.4434 -7730.4727 8585.0742 c --7729.7954 8585.2891 L --7729.7534 8585.1914 L --7730.1406 8585.0859 l --7732.9058 8585.4424 -7735.8418 8586.1348 -7738.5313 8584.9746 c --7738.5537 8584.9648 -7738.585 8584.9648 -7738.5962 8584.998 c --7738.6055 8585.0195 -7738.605 8585.0508 -7738.5718 8585.0605 c --7738.5718 8585.0605 l -f --7735.6895 8578.3945 m --7734.3945 8578.9004 -7732.9834 8578.6465 -7731.6802 8578.3438 c --7731.647 8578.3418 -7731.6367 8578.3203 -7731.6382 8578.2891 c --7731.6504 8578.2568 -7731.6714 8578.2461 -7731.7031 8578.248 c --7732.998 8578.5303 -7734.377 8578.8154 -7735.6504 8578.2969 c --7735.6826 8578.2871 -7735.7144 8578.2988 -7735.7246 8578.3311 c --7735.7222 8578.3525 -7735.7114 8578.3848 -7735.6895 8578.3945 c --7735.6895 8578.3945 l -f --7736.1401 8580.2207 m --7734.2266 8580.6895 -7732.3145 8581.1035 -7730.355 8581.3242 c --7730.3242 8581.334 -7730.3022 8581.3125 -7730.293 8581.2803 c --7730.2954 8581.2598 -7730.3159 8581.2285 -7730.3374 8581.2285 c --7732.2959 8581.0078 -7734.209 8580.582 -7736.1206 8580.1133 c --7736.1426 8580.1152 -7736.1738 8580.126 -7736.1831 8580.1582 c --7736.1831 8580.1797 -7736.1719 8580.2109 -7736.1401 8580.2207 c --7736.1401 8580.2207 l -f --7736.9336 8582.6348 m --7734.499 8583.4609 -7731.8647 8583.0547 -7729.3457 8583.0879 c --7729.313 8583.0879 -7729.293 8583.0664 -7729.293 8583.0332 c --7729.2954 8583.0117 -7729.3159 8582.9922 -7729.3481 8582.9922 c --7731.8574 8582.916 -7734.481 8583.3848 -7736.8945 8582.5264 c --7736.9282 8582.5273 -7736.959 8582.5391 -7736.9688 8582.5605 c --7736.9678 8582.5918 -7736.9561 8582.624 -7736.9336 8582.6348 c --7736.9336 8582.6348 l -f --7732.0542 8583.8496 m --7730.6582 8584.5449 -7729.0503 8584.4033 -7727.5342 8584.4668 c --7727.502 8584.4648 -7727.4824 8584.4434 -7727.4824 8584.4121 c --7727.4834 8584.3906 -7727.5054 8584.3594 -7727.5366 8584.3594 c --7729.0137 8584.2207 -7730.6489 8584.5234 -7732.0039 8583.7617 c --7732.0366 8583.7529 -7732.0679 8583.7637 -7732.0786 8583.7861 c --7732.0879 8583.8076 -7732.0767 8583.8398 -7732.0542 8583.8496 c --7732.0542 8583.8496 l -f --7731.3418 8580.4248 m --7730.3926 8580.3975 -7729.4336 8580.3701 -7728.4839 8580.3428 c --7728.4526 8580.3418 -7728.4312 8580.3203 -7728.4336 8580.2881 c --7728.4336 8580.2559 -7728.4551 8580.2354 -7728.4878 8580.2363 c --7729.437 8580.2637 -7730.397 8580.291 -7731.3457 8580.3184 c --7731.377 8580.3184 -7731.3975 8580.3418 -7731.3975 8580.373 c --7731.397 8580.4043 -7731.374 8580.4258 -7731.3418 8580.4248 c --7731.3418 8580.4248 l -f --7729.1592 8578.0361 m --7728.6895 8578.0645 -7728.209 8578.0723 -7727.7383 8578.0918 c --7727.7168 8578.0908 -7727.6855 8578.0684 -7727.6865 8578.0371 c --7727.687 8578.0039 -7727.71 8577.9844 -7727.7417 8577.9844 c --7728.2114 8577.9873 -7728.6816 8577.9375 -7729.1514 8577.9395 c --7729.1831 8577.9297 -7729.2031 8577.9512 -7729.2134 8577.9844 c --7729.2129 8578.0156 -7729.1914 8578.0371 -7729.1592 8578.0361 c --7729.1592 8578.0361 l -f --7736.9702 8580.2344 m --7736.5688 8580.5107 -7736.125 8580.6797 -7735.645 8580.751 c --7735.6113 8580.7607 -7735.5918 8580.7383 -7735.5806 8580.7168 c --7735.5703 8580.6855 -7735.5928 8580.6543 -7735.6152 8580.6543 c --7736.0854 8580.5723 -7736.5176 8580.4023 -7736.9209 8580.1475 c --7736.9521 8580.1377 -7736.9849 8580.1387 -7736.9946 8580.1709 c --7737.0039 8580.1934 -7736.9922 8580.2246 -7736.9702 8580.2344 c --7736.9702 8580.2344 l -f --7738.1904 8586.085 m --7735.7344 8586.5273 -7733.2983 8587.001 -7730.7993 8586.7266 c --7730.7778 8586.7266 -7730.7568 8586.7041 -7730.7578 8586.6719 c --7730.7578 8586.6406 -7730.7798 8586.6191 -7730.8022 8586.6191 c --7733.291 8586.873 -7735.7344 8586.4844 -7738.1719 8585.9775 c --7738.1934 8585.9785 -7738.2256 8585.9902 -7738.2344 8586.0215 c --7738.2344 8586.043 -7738.2222 8586.0752 -7738.1904 8586.085 c --7738.1904 8586.085 l -f -0.195 0.156 0.117 0 k --7738.166 8574.6445 m --7735.7969 8574.2676 -7733.4058 8574.3477 -7731.0298 8574.5898 c --7730.998 8574.5879 -7730.9766 8574.5664 -7730.9766 8574.5352 c --7730.9785 8574.5137 -7731 8574.4824 -7731.0215 8574.4824 c --7733.4082 8574.2422 -7735.791 8574.1602 -7738.1694 8574.5391 c --7738.2026 8574.5391 -7738.2222 8574.5605 -7738.2217 8574.5938 c --7738.2207 8574.625 -7738.1992 8574.6465 -7738.166 8574.6445 c --7738.166 8574.6445 l -f -0.335 0.268 0.201 0 k --7737.4351 8574.1113 m --7734.9282 8574.1152 -7732.4146 8574.2773 -7729.918 8573.8965 c --7729.8862 8573.8945 -7729.8647 8573.873 -7729.8662 8573.8418 c --7729.8672 8573.8086 -7729.8896 8573.7891 -7729.9209 8573.7891 c --7732.418 8574.1699 -7734.9297 8574.0293 -7737.4375 8574.0059 c --7737.46 8574.0059 -7737.481 8574.0273 -7737.4785 8574.0596 c --7737.4785 8574.0918 -7737.457 8574.1123 -7737.4351 8574.1113 c --7737.4351 8574.1113 l -f -0.205 0.164 0.123 0 k --7738.9766 8574.3262 m --7737.5039 8574.668 -7736.0078 8574.4023 -7734.5391 8574.2207 c --7734.5078 8574.2207 -7734.4873 8574.1973 -7734.499 8574.166 c --7734.5 8574.1348 -7734.5215 8574.1133 -7734.5537 8574.125 c --7736.0103 8574.2842 -7737.4961 8574.583 -7738.9473 8574.2188 c --7738.9785 8574.2207 -7739.0103 8574.2324 -7739.0098 8574.2637 c --7739.019 8574.2852 -7738.998 8574.3164 -7738.9766 8574.3262 c --7738.9766 8574.3262 l -f --7732.3535 8573.7949 m --7731.1978 8573.9219 -7730.0273 8573.8145 -7728.8926 8573.5898 c --7728.8711 8573.5781 -7728.8506 8573.5566 -7728.8618 8573.5244 c --7728.8623 8573.5029 -7728.8945 8573.4824 -7728.916 8573.4941 c --7730.0503 8573.7402 -7731.1914 8573.7939 -7732.3462 8573.6885 c --7732.3794 8573.6895 -7732.3984 8573.7109 -7732.4087 8573.7324 c --7732.4082 8573.7646 -7732.3862 8573.7852 -7732.3535 8573.7949 c --7732.3535 8573.7949 l -f -0.335 0.268 0.201 0 k --7739.2681 8576.4473 m --7737.9214 8577.1885 -7736.3066 8576.5977 -7734.855 8576.6416 c --7734.8223 8576.6406 -7734.8022 8576.6191 -7734.8022 8576.5859 c --7734.8042 8576.5654 -7734.8262 8576.5449 -7734.8574 8576.5449 c --7736.2886 8576.4902 -7737.8823 8577.0801 -7739.2168 8576.3506 c --7739.2383 8576.3398 -7739.2695 8576.3516 -7739.291 8576.374 c --7739.3008 8576.3955 -7739.2886 8576.4277 -7739.2681 8576.4473 c --7739.2681 8576.4473 l -f --7737.8945 8578.5645 m --7735.6719 8579.0449 -7733.3896 8578.6162 -7731.1504 8578.5625 c --7731.1177 8578.5615 -7731.0977 8578.5391 -7731.0977 8578.5078 c --7731.1001 8578.4863 -7731.1318 8578.4668 -7731.1519 8578.4668 c --7733.3833 8578.4775 -7735.6519 8578.9805 -7737.875 8578.457 c --7737.8975 8578.457 -7737.9287 8578.4688 -7737.9375 8578.502 c --7737.9375 8578.5225 -7737.9258 8578.5547 -7737.8945 8578.5645 c --7737.8945 8578.5645 l -f --7732.0273 8575.1406 m --7730.3496 8575.9688 -7728.499 8576.502 -7726.603 8576.3613 c --7726.5718 8576.3613 -7726.5513 8576.3389 -7726.5527 8576.3066 c --7726.5527 8576.2754 -7726.5742 8576.2539 -7726.6074 8576.2559 c --7728.481 8576.416 -7730.3198 8575.8604 -7731.9873 8575.0547 c --7732.0078 8575.0449 -7732.041 8575.0449 -7732.0503 8575.0781 c --7732.061 8575.0996 -7732.061 8575.1309 -7732.0273 8575.1406 c --7732.0273 8575.1406 l -f -u -0.5 0.85 1 0.45 k --7885 8581.9082 m --7885.0254 8582.4883 -7884.5664 8583.1875 -7883.167 8583.9902 C --7882.8521 8584.0029 -7881.3945 8584.0234 -7879.0889 8584.0488 C --7879.0889 8581.8223 L --7881.1382 8581.8457 -7883.1177 8581.8867 -7885 8581.9082 C -f --7884.5088 8580.9688 m --7879.0889 8580.8447 L --7879.0889 8579.8145 L --7882.644 8579.959 L --7883.8145 8580.3301 -7884.5088 8580.9688 V -f -0.5 0.85 1 0.32 k --7879.0889 8580.8252 m --7884.4746 8580.9434 L --7884.7695 8581.2148 -7884.9849 8581.5566 -7885 8581.9277 C --7883.1177 8581.9063 -7881.1382 8581.8848 -7879.0889 8581.8613 C --7879.0889 8580.8252 L -f -0.5 0.85 1 0.45 k --7774.1504 8580.6172 m --7852.3584 8581.541 -7879.1079 8581.8418 V --7879.1079 8584.0488 L --7862.8145 8584.2324 -7803.9902 8584.707 Y --7769.749 8583.6641 L --7770.457 8580.5684 L --7774.1504 8580.6172 L -f -0.5 0.85 1 0.12 k --7879.1079 8579.8145 m --7879.1079 8580.8447 L --7770.4258 8579 L --7770.3833 8576.8633 L --7803.6553 8576.7129 L --7879.1079 8579.8145 L -f -u -0.065 0.052 0.039 0 k --7747.0728 8575.1465 m --7747.0366 8576.4258 L --7747.2954 8575.1172 L --7765.897 8579.6563 L --7766.9375 8579.2734 L --7766.8794 8579.6055 -7766.8398 8579.957 -7766.8306 8580.3223 c --7766.8242 8580.5283 -7766.8281 8580.7285 -7766.8398 8580.9258 C --7758.3862 8582.0986 -7748.9634 8577.6719 -7747.0366 8576.4258 C --7746.7402 8586.7559 L --7746.041 8586.8613 L --7745.8042 8579.207 L --7740.1816 8579.1543 L --7740.0898 8577.0137 -7740.0718 8575.0215 -7740.2407 8574.0352 C --7747.0728 8575.1465 L -f -0.4 0.7 1 0 k --7770.457 8580.5879 m --7770.4258 8578.9805 L --7879.1079 8580.8252 L --7879.1079 8581.8613 L --7852.3584 8581.5605 -7770.457 8580.5879 Y -f -U -U -0.025 0.02 0.015 0 k --7734.7344 8583.0293 m --7734.7344 8583.0625 -7734.7129 8583.082 -7734.6802 8583.082 c --7731.6714 8583.1133 -7729.4214 8582.9453 -7726.415 8582.8594 C --7726.4087 8582.7656 L --7729.3262 8582.8701 -7731.7607 8583.0078 -7734.6841 8582.9746 C --7734.7168 8582.9766 -7734.7358 8582.998 -7734.7344 8583.0293 C -f --7726.3994 8582.7656 m --7726.4082 8582.7441 L --7726.4087 8582.7656 L --7726.4063 8582.7656 -7726.4033 8582.7656 -7726.3994 8582.7656 C -f --7730.4487 8581.4238 m --7731.4458 8581.292 -7732.3394 8581.7656 -7733.2114 8582.1973 C --7733.2441 8582.208 -7733.2534 8582.2402 -7733.2422 8582.2715 C --7733.2305 8582.293 -7733.1982 8582.3027 -7733.1777 8582.291 c --7732.3262 8581.8301 -7731.4312 8581.4199 -7730.4678 8581.5195 c --7729.1079 8581.6621 -7727.9038 8582.375 -7726.5254 8582.4531 C --7726.4463 8582.3594 L --7728.04 8582.2656 -7728.8647 8581.623 -7730.4487 8581.4238 c -f -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 6) -0 A -u -1 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884.75 8563 m --7884.75 8587 L --7874.75 8587 L --7874.75 8563 L --7884.75 8563 L -n -0 Ap -0 O -1 g --7874.75 8565 m --7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 c --7877.5879 8565.2256 -7879.3198 8565.9346 -7880.7559 8567.0176 c --7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 c --7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c --7884.75 8576.8623 -7884.2319 8578.5996 -7883.3457 8580.0918 c --7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C --7874.75 8565 L -f -0 R -0 G -1 J 1 j 0.5 w --7874.75 8584.6816 m --7877.7793 8583.7256 -7880.6074 8582.0674 -7883.3457 8580.0918 C -S --7874.75 8579.0488 m --7877.8999 8576.6436 -7880.957 8573.9131 -7884.0942 8571.4639 C -S --7880.7559 8567.0176 m --7878.6904 8568.1084 -7876.7017 8569.4668 -7874.75 8570.957 C -S --7875.6982 8565.0479 m --7875.3809 8565.1309 -7875.063 8565.2148 -7874.75 8565.3145 C -S --7880.7559 8567.0176 m --7879.3193 8565.9355 -7877.5879 8565.2256 -7875.6982 8565.0479 C -S --7884.0942 8571.4639 m --7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c --7884.75 8576.8623 -7884.231 8578.5996 -7883.3457 8580.0918 C -S --7874.75 8565 m --7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 C -S --7880.7559 8567.0176 m --7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 C -S --7883.3457 8580.0918 m --7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C -S -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 8) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7883.9521 8584.3125 m --7776.7954 8584.3125 L --7776.7954 8570.1855 L --7883.9521 8570.1855 L --7883.9521 8584.3125 L -n -u -0 O -0 0 0 1 k --7882.2832 8583.623 m --7882.8535 8586 -7882.8184 8582.0039 V --7883.0479 8578.8027 L --7883.6167 8576.4551 L --7883.4502 8574.123 L --7881.9502 8573.4551 -7865.2832 8572.123 V --7858.6167 8570.7891 -7849.6167 8570.7891 V --7784.3936 8571.4766 -7779.4912 8572.8848 v --7820.3882 8570.875 -7822.9688 8571.5117 v --7783.8569 8573.1602 -7780.8545 8574.4316 v --7818.79 8572.5469 -7822.167 8574.1777 v --7787.249 8575.9102 -7783.021 8577.5313 v --7789.7217 8576.8828 -7791.5127 8577.082 v --7788.3896 8577.5703 l --7793.4194 8577.502 l --7796.3218 8577.1289 l --7788.4521 8578.2422 -7787.9033 8578.8086 v --7784.3154 8578.1309 -7798.5186 8578.3848 v --7832.1177 8574.4551 -7882.2832 8583.623 V -f -/BBAccumRotation (5.805971) XT -0 R -0 0 0 0.5 K -0.025 w --7883.9502 8573.123 m --7863.667 8571.2949 -7843.9727 8570.2207 v --7801.1514 8570.502 -7796.5737 8570.9004 v --7784.1631 8571.0313 -7776.7959 8572.0273 v -S -/BBAccumRotation (5.805971) XT -0 0 0 1 K --7821.8369 8570.4082 m --7825.2959 8570.0273 -7851.2607 8570.2793 Y --7861.627 8570.1602 -7883.9502 8573.123 Y -S -/BBAccumRotation (5.805971) XT --7820.9873 8573.6641 m --7790.3608 8574.582 -7783.6606 8575.2324 v -S -/BBAccumRotation (5.805971) XT -0 0 0 0.5 K --7829.6201 8578.2051 m --7794.3706 8579.6172 -7791.4058 8580.1406 v -S -/BBAccumRotation (5.805971) XT -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 10) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884 8586 m --7833.8921 8586 L --7833.8921 8529.9756 L --7884 8529.9756 L --7884 8586 L -n -u -0 O -0.1 1 1 0 k --7846.9014 8551.5752 m --7848.7178 8545.0957 -7858.8247 8548.4658 Y --7858.791 8548.5303 L --7868.8999 8545.1611 -7870.7144 8551.6396 V --7876.6758 8569.0068 -7871.4922 8575.7451 V --7864.7529 8585.3369 -7860.6055 8585.3369 V --7857.0103 8585.2705 L --7852.8638 8585.2705 -7846.125 8575.6816 Y --7840.9409 8568.9424 -7846.9014 8551.5752 Y -f -u -0 0 0 1 k --7851.3926 8529.9756 m --7852.1167 8531.4199 -7852.9238 8532.4756 V --7852.4058 8532.0635 -7851.5151 8531.1924 -7851.3926 8529.9756 C -f --7865.064 8532.4854 m --7865.8711 8531.4307 -7866.5942 8529.9863 Y --7866.4727 8531.2021 -7865.582 8532.0732 -7865.064 8532.4854 C -f -U -0 0.61 0.74 0 k --7850.5977 8554.4609 m --7851.9038 8549.7959 -7859.1816 8552.2217 Y --7859.1567 8552.2686 L --7866.436 8549.8428 -7867.7417 8554.5078 V --7872.0337 8567.0117 -7868.3018 8571.8633 V --7863.4487 8578.7686 -7860.4634 8578.7686 V --7857.875 8578.7227 L --7854.8887 8578.7227 -7850.0366 8571.8174 Y --7846.3042 8566.9639 -7850.5977 8554.4609 Y -f -u -1 Ap -0.73 0.43 1 0.22 k -0 R -0 0 0 1 K --7854.6226 8557.2754 m --7853.813 8557.2754 -7853.1558 8556.6182 -7853.1558 8555.8096 c --7853.1558 8555 -7853.813 8554.3428 -7854.6226 8554.3428 c --7855.4321 8554.3428 -7856.0889 8555 -7856.0889 8555.8096 c --7856.0889 8556.6182 -7855.4321 8557.2754 -7854.6226 8557.2754 c -b --7854.3638 8568.9971 m --7853.0806 8568.9971 -7852.0415 8568.1201 -7852.0415 8567.042 c --7852.0415 8565.9619 -7853.0806 8565.0869 -7854.3638 8565.0869 c --7855.645 8565.0869 -7856.6846 8565.9619 -7856.6846 8567.042 c --7856.6846 8568.1201 -7855.645 8568.9971 -7854.3638 8568.9971 c -b --7853.834 8580.7861 m --7852.2817 8580.7861 -7851.0239 8580.1299 -7851.0239 8579.3213 c --7851.0239 8578.5117 -7852.2817 8577.8545 -7853.834 8577.8545 c --7855.3862 8577.8545 -7856.645 8578.5117 -7856.645 8579.3213 c --7856.645 8580.1299 -7855.3862 8580.7861 -7853.834 8580.7861 c -b --7849.6104 8552.5264 m --7848.8687 8552.5264 -7848.2671 8551.8154 -7848.2671 8550.9365 c --7848.2671 8550.0596 -7848.8687 8549.3477 -7849.6104 8549.3477 c --7850.353 8549.3477 -7850.9546 8550.0596 -7850.9546 8550.9365 c --7850.9546 8551.8154 -7850.353 8552.5264 -7849.6104 8552.5264 c -b --7848.0034 8574.083 m --7848.8818 8573.7354 -7849.1494 8572.335 -7848.603 8570.9541 c --7848.0566 8569.5752 -7846.9014 8568.7363 -7846.0234 8569.085 c --7845.145 8569.4326 -7844.877 8570.833 -7845.4233 8572.2139 c --7845.9702 8573.5947 -7847.125 8574.4316 -7848.0034 8574.083 c -b -u --7863.0566 8557.1592 m --7863.8662 8557.1592 -7864.5239 8556.502 -7864.5239 8555.6934 c --7864.5239 8554.8828 -7863.8662 8554.2266 -7863.0566 8554.2266 c --7862.248 8554.2266 -7861.5913 8554.8828 -7861.5913 8555.6934 c --7861.5913 8556.502 -7862.248 8557.1592 -7863.0566 8557.1592 c -b --7863.3159 8568.8799 m --7864.5991 8568.8799 -7865.6382 8568.0049 -7865.6382 8566.9248 c --7865.6382 8565.8447 -7864.5991 8564.9697 -7863.3159 8564.9697 c --7862.0342 8564.9697 -7860.9951 8565.8447 -7860.9951 8566.9248 c --7860.9951 8568.0049 -7862.0342 8568.8799 -7863.3159 8568.8799 c -b --7863.8457 8580.6709 m --7865.3975 8580.6709 -7866.6558 8580.0146 -7866.6558 8579.2041 c --7866.6558 8578.3936 -7865.3975 8577.7383 -7863.8457 8577.7383 c --7862.293 8577.7383 -7861.0352 8578.3936 -7861.0352 8579.2041 c --7861.0352 8580.0146 -7862.293 8580.6709 -7863.8457 8580.6709 c -b --7868.0679 8552.4092 m --7868.811 8552.4092 -7869.4121 8551.6982 -7869.4121 8550.8213 c --7869.4121 8549.9443 -7868.811 8549.2334 -7868.0679 8549.2334 c --7867.3262 8549.2334 -7866.7241 8549.9443 -7866.7241 8550.8213 c --7866.7241 8551.6982 -7867.3262 8552.4092 -7868.0679 8552.4092 c -b --7869.6758 8573.9678 m --7868.7983 8573.6201 -7868.5298 8572.2188 -7869.0762 8570.8379 c --7869.6226 8569.457 -7870.7778 8568.6201 -7871.6558 8568.9678 c --7872.5342 8569.3164 -7872.8032 8570.7178 -7872.2568 8572.0967 c --7871.7104 8573.4775 -7870.5552 8574.3154 -7869.6758 8573.9678 c -b -U -U -0 Ap -0 0 0 1 k --7859.1318 8552.6553 m --7859.1318 8585.3145 l -F -u --7843.3906 8538.5303 m --7844.0815 8537.8369 -7847.019 8538.7021 Y --7848.229 8538.874 -7848.0562 8541.2939 Y --7847.019 8543.3682 -7847.7104 8543.1943 Y --7848.2998 8543.1943 -7849.855 8543.1143 -7850.7822 8543.0635 C --7851.1226 8541.6689 -7852.6128 8540.4756 -7854.7217 8539.7695 C --7852.7578 8536.4775 -7854.5176 8535.7949 -7856.2935 8535.79 C --7856.3096 8535.7021 -7856.332 8535.6162 -7856.3599 8535.5332 C --7854.1089 8535.5791 -7853.6392 8533.2588 Y --7853.4048 8533.0635 -7853.1606 8532.7861 -7852.9238 8532.4756 C --7853.1416 8532.6475 -7853.2944 8532.7393 Y --7854.2583 8532.7393 -7855.8774 8534.4941 -7856.4966 8535.207 C --7856.9194 8534.4434 -7857.853 8533.9111 -7858.9434 8533.9111 c --7860.0698 8533.9111 -7861.0322 8534.4795 -7861.4312 8535.2852 C --7861.9985 8534.624 -7863.6968 8532.751 -7864.6943 8532.751 C --7864.8462 8532.6572 -7865.064 8532.4854 V --7864.8281 8532.7939 -7864.583 8533.0732 -7864.3481 8533.2686 C --7863.8638 8535.6563 -7861.5254 8535.5342 V --7861.5449 8535.5889 -7861.5674 8535.6436 -7861.5806 8535.7021 C --7864.9238 8535.6924 -7863.937 8538.3174 -7863.2104 8539.6602 C --7865.5918 8540.376 -7867.2646 8541.7012 -7867.5239 8543.25 C --7868.4473 8543.2998 -7869.6729 8543.3584 -7870.1802 8543.3584 C --7870.8726 8543.5313 -7869.835 8541.458 V --7869.6626 8539.0391 -7870.8726 8538.8662 V --7873.8096 8538.002 -7874.501 8538.6934 V --7875.1919 8539.5566 -7876.0562 8538.3467 V --7875.1919 8540.0752 -7873.291 8539.5566 V --7870.6982 8538.8662 -7871.3906 8540.5938 V --7871.9087 8544.0498 -7870.1802 8544.7402 V --7868.0342 8545.8545 -7866.2822 8546.0889 V --7865.9087 8546.4141 -7865.4639 8546.7109 -7864.958 8546.9766 C --7867.5562 8547.0469 -7870.2246 8547.9209 -7871.0752 8550.9561 C --7871.5151 8552.2432 -7872.0518 8554.2432 V --7873.1025 8554.8252 -7874.3022 8556.0078 -7875.541 8558.2627 C --7876.394 8561.4502 -7877.167 8556.7129 V --7878.3975 8553.6494 -7879.6504 8553.5381 V --7878.4702 8555.2871 -7878.9038 8556.416 V --7877.2998 8560.917 -7875.6138 8559.8994 V --7874.0986 8559.2197 -7872.688 8556.8154 V --7873.0698 8558.4971 -7873.4326 8560.417 -7873.6743 8562.3906 C --7874.4888 8562.3975 L --7876.3506 8561.4795 -7876.3262 8564.959 V --7877.1226 8568.9453 -7876.3594 8571.6826 V --7875.647 8574.1504 -7878.1274 8572.9307 V --7879.2842 8573.3242 -7879.9839 8572.7881 V --7882.3882 8571.4131 -7884 8573.124 V --7882.147 8572.8799 -7881.4482 8573.417 V --7879.9785 8573.5615 -7879.897 8574.1787 V --7876.9561 8574.8555 -7876.188 8574.0771 V --7874.417 8573.2139 -7875.1304 8570.3604 V --7875.8799 8562.4814 -7874.3198 8564.4053 V --7874.1182 8564.4219 -7873.8784 8564.5176 V --7874.1519 8568.4326 -7873.8018 8572.3252 -7871.9961 8574.8516 C --7875.4536 8567.333 -7870.2974 8552.3037 Y --7868.9609 8547.5303 -7863.127 8548.1016 -7860.145 8548.7344 C --7860.0718 8550.1299 -7859.8374 8551.9492 -7859.1318 8552.6553 C --7858.2134 8550.6963 -7858.2358 8549.0732 V --7857.0762 8548.7217 -7850.2817 8546.8447 -7847.4487 8550.3369 C --7848.4312 8547.8135 -7850.8262 8547.0186 -7853.2007 8546.9189 C --7852.667 8546.6318 -7852.2041 8546.3047 -7851.8257 8545.9502 C --7850.041 8545.7861 -7847.7104 8544.5771 Y --7845.9814 8543.8857 -7846.5015 8540.4307 Y --7847.1919 8538.7021 -7844.5991 8539.3936 Y --7842.7002 8539.9111 -7841.835 8538.1836 Y --7842.7002 8539.3936 -7843.3906 8538.5303 Y -f --7837.9082 8572.9521 m --7838.6074 8573.4893 -7839.7632 8573.0938 Y --7842.2446 8574.3135 -7841.5327 8571.8467 Y --7840.769 8569.1104 -7841.564 8565.1221 Y --7841.541 8561.6445 -7843.4014 8562.5596 Y --7844.0342 8562.5557 L --7844.3198 8560.6123 -7844.7046 8558.7549 -7845.0898 8557.1699 C --7843.7129 8559.4199 -7842.2778 8560.0635 Y --7840.5913 8561.082 -7838.9878 8556.5791 Y --7839.4214 8555.4502 -7838.2417 8553.7021 Y --7839.4937 8553.8125 -7840.7246 8556.876 Y --7841.4976 8561.6152 -7842.3511 8558.4268 Y --7843.5776 8556.1904 -7844.769 8555.0098 -7845.814 8554.4229 C --7846.2026 8553.0635 -7846.4858 8552.2393 Y --7846.7002 8551.4727 -7847.0337 8550.8486 -7847.4487 8550.3369 C --7847.3799 8550.5127 -7847.3174 8550.6982 -7847.2632 8550.8916 C --7841.3022 8568.2588 -7846.4858 8574.9971 V --7853.2246 8584.5869 -7857.3721 8584.5869 V --7860.9663 8584.6514 L --7865.1138 8584.6514 -7871.853 8575.0615 Y --7871.9038 8574.9961 -7871.9463 8574.9219 -7871.9961 8574.8516 C --7871.7378 8575.4141 -7871.437 8575.9404 -7871.0752 8576.4092 C --7864.3359 8586 -7860.189 8586 V --7856.5942 8585.9346 L --7852.4482 8585.9346 -7845.709 8576.3447 Y --7843.5801 8573.5771 -7843.3306 8569.0176 -7843.7769 8564.6055 C --7843.6553 8564.5752 -7843.5698 8564.5684 Y --7842.0112 8562.6475 -7842.7598 8570.5244 Y --7843.4746 8573.3789 -7841.7026 8574.2402 Y --7840.9351 8575.0186 -7837.9946 8574.3428 Y --7837.9136 8573.7256 -7836.4434 8573.5811 Y --7835.7446 8573.0449 -7833.8921 8573.2881 Y --7835.5024 8571.5771 -7837.9082 8572.9521 Y -f -U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 34) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884.0254 8586.0264 m --7828.0542 8586.0264 L --7828.0542 8524.5342 L --7884.0254 8524.5342 L --7884.0254 8586.0264 L -n -u -u -0 O -0.0745 0.9 0.9019 0.18 k -0 R -0 0 0 1 K -1 J 1 j 0.0518 w --7857.5991 8562.7217 m --7857.3594 8573.5215 -7862.8794 8583.8398 v --7862.4009 8586 -7860.959 8586 v --7861.2002 8582.6406 -7860.2393 8582.1611 v --7855.9199 8570.1602 -7856.6382 8562.2402 v --7857.5991 8562.7217 l -b --7857.5991 8562.7217 m --7859.2793 8568 -7871.0391 8569.2012 v --7875.3594 8569.6807 -7875.5991 8571.1211 v --7869.1206 8561.5195 -7868.1602 8561.7607 v --7881.3594 8556.001 -7884 8550.7197 v --7878.959 8553.6006 -7875.5991 8551.4404 v --7867.6802 8551.2012 -7862.6406 8553.3613 v --7858.8008 8555.2813 -7866.7202 8539.2012 v --7862.8794 8550.9609 -7859.2793 8524.5605 v --7858.3198 8529.8408 -7856.8799 8531.2813 v --7850.8799 8538.9609 -7851.8398 8541.1211 v --7852.3198 8544.9609 -7847.7598 8538.7207 v --7848 8548.3213 -7850.4009 8551.6807 v --7852.5591 8555.2813 -7846.5591 8553.1211 v --7840.5591 8551.2012 -7835.2793 8552.8809 v --7829.7598 8554.3203 -7828.0801 8551.4404 v --7839.8398 8563.9209 -7845.5991 8563.6807 v --7843.9194 8567.2813 l --7841.519 8572.0811 -7842 8573.2813 v --7857.2681 8563.8828 -7857.5991 8562.7217 v -b --7857.5991 8562.7217 m --7854.959 8544.2402 -7857.5991 8536.5605 v --7859.998 8526.001 -7859.2793 8524.5605 v -S --7856.1602 8551.4404 m --7850.1602 8546.6406 -7848.959 8541.3604 v -S --7856.1602 8550.7197 m --7865.0391 8543.041 -7866.7202 8539.2012 v -S --7828.0801 8551.4404 m --7829.2793 8553.6006 -7857.3594 8561.7607 y --7862.4009 8556.2422 -7873.9199 8553.8408 v --7881.5986 8552.8809 -7884 8550.7197 v -S --7874.6382 8569.6807 m --7863.1191 8560.5615 -7857.3594 8561.7607 y --7843.1992 8568 -7842 8573.2813 v -S -U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 36) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7883.8496 8585.9961 m --7833.96 8585.9961 L --7833.96 8534.9258 L --7883.8496 8534.9258 L --7883.8496 8585.9961 L -n -u -0 O -0.025 0.1 0.475 0 k --7862.1504 8553.9043 m --7864.4766 8552.8125 -7866.6914 8552.4434 -7868.373 8552.9238 c --7869.0518 8553.1172 -7869.645 8553.4473 -7870.123 8553.9238 c --7870.6006 8554.4023 -7870.9297 8554.9951 -7871.123 8555.6729 c --7872.0088 8558.7715 -7870.0103 8563.6777 -7865.9233 8567.7666 c --7861.834 8571.8535 -7856.9297 8573.8516 -7853.8286 8572.9668 c --7853.1519 8572.7715 -7852.5586 8572.4424 -7852.0806 8571.9658 c --7851.603 8571.4883 -7851.2754 8570.8955 -7851.082 8570.2168 c --7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c --7853.582 8561.21 -7854.791 8559.6133 -7856.2793 8558.123 c --7858.1504 8556.2539 -7860.1914 8554.8242 -7862.1504 8553.9043 c -f -u -0.0035 0.014 0.0665 0 k --7861.2183 8552.9727 m --7863.8306 8552.0215 -7866.3975 8551.9688 -7868.373 8552.9238 C --7866.6914 8552.4434 -7864.4766 8552.8125 -7862.1504 8553.9043 c --7861.6191 8554.1543 -7861.0806 8554.4434 -7860.543 8554.7676 C --7858.8984 8554.0537 L --7859.667 8553.6172 -7860.4434 8553.2539 -7861.2183 8552.9727 c -f -0.015 0.06 0.285 0 k --7858.8984 8554.0537 m --7860.543 8554.7676 L --7859.0962 8555.6348 -7857.6426 8556.7607 -7856.2793 8558.123 c --7856.1538 8558.25 -7856.0327 8558.3779 -7855.9102 8558.5059 C --7855.2153 8556.8633 L --7856.3706 8555.7236 -7857.6191 8554.7813 -7858.8984 8554.0537 C -f -U -u -0.039 0.156 0.741 0 k --7849.687 8541.4043 m --7849.9746 8541.6914 -7861.2183 8552.9727 Y --7860.4434 8553.2539 -7859.667 8553.6172 -7858.8984 8554.0537 C --7845.4146 8540.5703 L --7847.061 8540.0996 -7848.6406 8540.3555 -7849.687 8541.4043 c -f -0.025 0.1 0.475 0 k --7845.4146 8540.5703 m --7858.8984 8554.0537 L --7857.584 8554.8027 -7856.2969 8555.7754 -7855.1143 8556.957 c --7855.084 8556.9863 -7855.0586 8557.0156 -7855.0278 8557.0449 C --7841.3408 8543.3574 L --7841.5264 8543.1328 -7841.7202 8542.9141 -7841.9302 8542.7012 c --7843.0103 8541.623 -7844.2305 8540.9082 -7845.4146 8540.5703 C -f -U -u -0.0115 0.046 0.2185 0 k --7835.9346 8550.3926 m --7833.5337 8547.9893 -7833.335 8544.0898 -7835.1382 8540.6973 C --7836.2954 8541.1182 L --7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c -f -0.015 0.06 0.285 0 k --7843.5337 8535.5957 m --7842.582 8534.9258 L --7845.2046 8534.3516 -7847.8306 8534.9141 -7849.6206 8536.7061 c --7848.1719 8535.2578 -7845.9082 8534.9307 -7843.5337 8535.5957 C -f -0.0295 0.118 0.5605 0 k --7843.5337 8535.5957 m --7845.9082 8534.9307 -7848.1719 8535.2578 -7849.6206 8536.7061 c --7851.019 8538.1055 -7851.3706 8540.2637 -7850.7954 8542.5469 C --7848.8672 8539.5449 -7845.4082 8540.5537 V --7843.585 8535.6309 L --7843.5337 8535.5957 L -f -*u -0.048 0.192 0.912 0 k -1 D --7835.9346 8550.3926 m --7837.2817 8551.7383 -7839.332 8552.1133 -7841.5234 8551.627 C --7851.6714 8561.7734 L --7851.7695 8561.5684 -7851.7695 8561.5684 -7851.6714 8561.7734 c --7850.2246 8564.8145 -7849.9702 8567.916 -7851.082 8570.2168 C --7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c --7853.5054 8561.3438 -7854.5918 8559.8848 -7855.9102 8558.5059 C --7855.2153 8556.8633 L --7855.1816 8556.8945 -7855.1465 8556.9238 -7855.1143 8556.957 c --7855.084 8556.9883 -7855.0566 8557.0176 -7855.0273 8557.0469 c --7855.0278 8557.0469 -7855.0278 8557.0469 -7855.0278 8557.0449 C --7841.3408 8543.3574 L --7836.3262 8541.1289 L --7836.2954 8541.1182 L --7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c -f -*U -0.0215 0.086 0.4085 0 k -0 D --7842.582 8534.9258 m --7843.5337 8535.5957 L --7841.6846 8536.1113 -7839.7656 8537.2285 -7838.1138 8538.8828 c --7837.4063 8539.5889 -7836.7998 8540.3418 -7836.2954 8541.1182 C --7835.1382 8540.6973 L --7835.6553 8539.7246 -7836.3374 8538.793 -7837.1802 8537.9512 c --7838.7695 8536.3594 -7840.6758 8535.3428 -7842.582 8534.9258 C -f -0.0205 0.082 0.3895 0 k --7836.2954 8541.1182 m --7836.7998 8540.3418 -7837.4063 8539.5889 -7838.1138 8538.8828 c --7839.7656 8537.2285 -7841.6846 8536.1113 -7843.5337 8535.5957 C --7843.585 8535.6309 L --7845.4082 8540.5537 L --7844.2114 8540.9219 -7842.9878 8541.6436 -7841.9302 8542.7012 c --7841.7202 8542.9141 -7841.5264 8543.1328 -7841.3408 8543.3574 C --7836.3262 8541.1289 L --7836.2954 8541.1182 L -f -U -u -0.445 0.356 0.267 0 k --7883.8496 8585.9961 m --7861.957 8562.9688 L --7862.2007 8562.6494 -7862.5752 8562.6133 -7862.8887 8562.6592 C --7867.1802 8567.2891 -7878.3145 8579.4561 -7882.7266 8584.2793 C --7883.5649 8585.3516 -7884 8585.9932 -7883.8496 8585.9961 C -f -0.15 0.12 0.09 0 k --7883.834 8585.9961 m --7882.6606 8585.7031 -7861.6934 8564.0029 Y --7861.6934 8563.502 -7861.7993 8563.1758 -7861.957 8562.9688 C --7883.8496 8585.9961 L --7883.8442 8585.9961 -7883.8418 8586 -7883.834 8585.9961 c -f -0.2 0.16 0.12 0 k --7882.7266 8584.2793 m --7878.3145 8579.4561 -7867.1802 8567.2891 -7862.8887 8562.6592 C --7863.2002 8562.7041 -7863.4526 8562.8301 Y --7864.603 8563.1328 -7878.5742 8578.9619 -7882.7266 8584.2793 C -f -U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 37) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7882.9502 8585.2324 m --7833.0391 8585.2324 L --7833.0391 8521.1152 L --7882.9502 8521.1152 L --7882.9502 8585.2324 L -n -u -0 O -0 0 0 1 k -0 R -0 0 0 1 K -0 w --7833.2358 8521.1152 m --7833.6064 8521.248 -7833.9858 8521.2832 -7834.3833 8521.2031 c --7834.4863 8521.168 l --7834.5254 8521.1602 -7834.5703 8521.1787 -7834.6025 8521.1992 c --7834.9434 8521.3926 l --7838.7129 8523.2959 -7842.0962 8525.8965 -7844.5 8529.4473 c --7845.9634 8531.5918 -7847.123 8533.8789 -7848.7993 8535.8564 c --7849.1729 8536.209 -7849.1758 8536.7725 -7848.834 8537.1309 c --7848.4951 8537.501 -7847.918 8537.5078 -7847.561 8537.165 c --7847.4038 8537.21 l --7847.2642 8537.1289 -7847.0742 8537.0703 -7847.0234 8536.957 c --7845.853 8534.2031 -7845.1895 8531.5137 -7843.4336 8529.1387 c --7841.1719 8526.0947 -7838.1777 8523.9941 -7835.0298 8522.0234 c --7834.3672 8521.6055 L --7834.4966 8521.6348 L --7833.7695 8521.6426 l --7833.791 8521.6113 -7833.8008 8521.5957 -7833.8223 8521.5645 C --7833.6064 8521.5234 -7833.377 8521.4746 -7833.1626 8521.4336 c --7833.0762 8521.4238 -7833.0186 8521.3389 -7833.0391 8521.2383 c --7833.0503 8521.1523 -7833.1382 8521.1084 -7833.2358 8521.1152 c --7833.2358 8521.1152 l -b --7849.2222 8534.9951 m --7849.5742 8534.8066 -7849.9658 8534.6719 -7850.248 8534.3887 c --7856.4521 8528.1719 -7866.6802 8527.2734 -7874.0488 8533.6855 C --7874.1582 8533.7813 -7874.1582 8533.957 -7874.063 8534.0645 C --7871.0527 8532.9434 -7862.8838 8534.375 -7859.3223 8537.4121 C --7859.2534 8537.4668 -7859.1465 8537.4531 -7859.1055 8537.3711 C --7859.0503 8537.3047 -7859.0664 8537.1953 -7859.1328 8537.1563 C --7862.5625 8534.0859 -7867.0674 8532.29 -7871.6729 8532.748 C --7868.8535 8531.1855 -7865.6313 8530.4941 -7862.3984 8530.6885 c --7857.7144 8530.9717 -7853.4634 8533.1191 -7849.3711 8535.2793 c --7849.291 8535.3193 -7849.1978 8535.293 -7849.1553 8535.2109 C --7849.1016 8535.1309 -7849.1426 8535.0352 -7849.2222 8534.9951 c -b --7858.647 8536.3359 m --7860.2266 8540.3613 -7862.3911 8544.3203 -7865.8018 8547.0762 c --7865.9648 8547.2119 -7865.9946 8547.4492 -7865.8711 8547.6055 c --7865.7344 8547.7676 -7865.5049 8547.7793 -7865.3481 8547.6563 c --7861.123 8545.5967 -7858.1904 8541.1309 -7858.1626 8536.4014 c --7858.1626 8536.4014 l --7858.1328 8536.2676 -7858.2354 8536.1348 -7858.3633 8536.1221 c --7858.5039 8536.1055 -7858.6318 8536.1973 -7858.647 8536.3359 c --7858.647 8536.3359 l -b --7852.9414 8541.0176 m --7853.042 8541.1816 -7853.1152 8541.3838 -7853.2617 8541.4824 c --7856.0806 8543.3906 -7858.9785 8544.6309 -7861.8848 8546.1328 c --7862.0503 8546.209 -7862.1118 8546.418 -7862.0313 8546.5703 c --7861.9512 8546.7227 -7861.7559 8546.7793 -7861.5898 8546.7041 c --7858.439 8545.3232 -7854.313 8544.5 -7852.6729 8541.1797 c --7852.6289 8541.1113 -7852.6455 8541.0146 -7852.7266 8540.9648 c --7852.7959 8540.9199 -7852.897 8540.9492 -7852.9414 8541.0176 c --7852.9414 8541.0176 l -b --7852.6602 8541.918 m --7852.4438 8542.4297 -7852.1431 8542.8896 -7852.0503 8543.4355 c --7851.2183 8548.2773 -7851.1152 8553.042 -7852.248 8557.6875 c --7852.248 8557.6875 l --7852.3418 8557.9531 -7852.2114 8558.2441 -7851.9438 8558.3389 c --7851.6777 8558.4336 -7851.3882 8558.3125 -7851.2935 8558.0479 c --7849.293 8552.8115 -7849.897 8546.7373 -7852.3711 8541.7832 c --7852.4063 8541.7002 -7852.498 8541.6689 -7852.582 8541.6914 c --7852.6641 8541.7275 -7852.6978 8541.835 -7852.6602 8541.918 c --7852.6602 8541.918 l -b --7851.5352 8557.5938 m --7848.8984 8555.2275 -7846.6816 8552.252 -7845.853 8548.7363 c --7845.853 8548.7363 l --7845.7246 8548.1816 -7846.0742 8547.623 -7846.6416 8547.4902 c --7847.1992 8547.375 -7847.7578 8547.7246 -7847.8862 8548.2793 c --7848.5649 8551.5313 -7849.8711 8554.6729 -7851.7954 8557.3867 c --7851.7954 8557.3867 l --7851.8462 8557.4551 -7851.834 8557.5576 -7851.7695 8557.6201 c --7851.6992 8557.6699 -7851.5977 8557.6582 -7851.5352 8557.5938 c --7851.5352 8557.5938 l -b --7836.3711 8550.1826 m --7837.7114 8545.8301 -7840.2598 8542.0693 -7843.689 8539.1533 C --7843.729 8539.0723 -7843.8242 8539.0322 -7843.9038 8539.0859 C --7843.9863 8539.127 -7844.0122 8539.2207 -7843.9722 8539.3018 C --7843.957 8539.7891 -7843.7144 8540.2334 -7843.4458 8540.5313 c --7838.4063 8546.1621 -7834.9902 8554.7197 -7837.3433 8561.9551 C --7837.0762 8556.4512 -7838.7241 8550.3008 -7842.1362 8545.6738 c --7843.1606 8544.2695 -7844.7422 8544.1211 -7846.3081 8544.2031 C --7846.4023 8544.1895 -7846.4834 8544.2432 -7846.4961 8544.3369 c --7846.5098 8544.4189 -7846.4551 8544.5137 -7846.3623 8544.5254 C --7843.1479 8545.7695 -7841.4878 8549.2246 -7840.084 8552.1943 c --7838.415 8555.7441 -7837.7017 8559.6387 -7838.0054 8563.5 C --7838.0454 8563.6777 -7838.1138 8565.3975 -7837.9775 8565.4102 C --7837.8306 8565.4395 -7837.709 8565.3438 -7837.6802 8565.1943 C --7837.645 8565.0449 -7834.6426 8555.7988 -7836.3711 8550.1826 c -b --7844.4863 8537.4912 m --7843.3945 8533.6211 -7841.1094 8530.251 -7838.4824 8527.2383 c --7838.3306 8527.1045 -7838.3145 8526.8867 -7838.4502 8526.7354 c --7838.5752 8526.6006 -7838.8047 8526.582 -7838.957 8526.7178 c --7842.3306 8529.332 -7843.4487 8533.541 -7844.7954 8537.375 c --7844.7954 8537.375 l --7844.8262 8537.4648 -7844.7754 8537.5586 -7844.6982 8537.5869 c --7844.6094 8537.6191 -7844.5166 8537.5684 -7844.4863 8537.4912 c --7844.4863 8537.4912 l -b --7838.5313 8562.1094 m --7838.5991 8562.0566 -7838.707 8562.083 -7838.748 8562.1504 C --7838.9634 8562.4746 -7840.6914 8564.5195 -7841.3926 8565.1406 c --7846.1719 8569.3945 -7849.5137 8573.9609 -7857.5391 8577.7227 c --7864.4512 8580.9639 -7867.1113 8583.5957 -7874.3862 8581.8262 c --7877.687 8581.0293 -7879.0313 8580.5313 -7880.4351 8575.4551 C --7881.9473 8569.2988 -7880.8672 8571.7832 -7881.084 8564.4385 c --7881.2222 8559.6973 -7884 8548.4551 -7871.5254 8534.2598 C --7871.4199 8534.1484 -7871.4336 8533.9961 -7871.5337 8533.9072 C --7871.6328 8533.8027 -7871.7959 8533.8164 -7871.8862 8533.916 C --7877.5786 8538.7168 -7881.0234 8545.6582 -7882.3145 8552.9424 c --7883.2871 8558.4668 -7882.9199 8563.25 -7882.666 8569.6367 c --7882.5688 8572.0938 -7883.6855 8579.0723 -7878.9102 8583.0625 c --7875.3926 8586 -7870.3911 8585.5469 -7866.3545 8584.1563 c --7860.6992 8582.2119 -7855.9727 8579.1465 -7850.8711 8575.6094 c --7847.2656 8573.125 -7839.2881 8563.2852 -7838.4785 8562.3262 C --7838.4351 8562.2588 -7838.4502 8562.1504 -7838.5313 8562.1094 C -b --7873.0503 8549.3057 m --7872.168 8548.5029 -7871.7017 8549.8457 -7871.4297 8550.6016 c --7871.1626 8551.3574 -7870.189 8551.25 -7870.5127 8551.5732 c --7870.8369 8551.8975 -7870.8369 8551.9521 -7871.3232 8551.5195 c --7871.8086 8551.0879 -7871.8086 8551.7363 -7872.5649 8551.25 c --7873.3198 8550.7627 -7873.645 8549.8457 -7873.0503 8549.3057 c -b --7865.6519 8553.9492 m --7865.3657 8553.5918 -7864.6802 8553.5723 -7864.4648 8553.8945 c --7864.25 8554.2197 -7863.3306 8554.2734 -7863.4937 8554.5967 c --7863.6543 8554.9219 -7863.6016 8555.1387 -7864.0874 8554.9219 c --7864.5737 8554.7051 -7864.4121 8555.2998 -7864.897 8555.084 c --7865.3833 8554.8672 -7865.8687 8554.2197 -7865.6519 8553.9492 c -b --7857.6074 8559.0791 m --7857.1206 8558.7559 -7855.8794 8559.5117 -7856.4727 8559.5117 c --7857.0674 8559.5117 -7856.311 8560.2676 -7856.8521 8560.4834 c --7857.3906 8560.6992 -7857.2832 8560.4297 -7857.6074 8560.6445 c --7857.9297 8560.8613 -7858.3633 8561.2393 -7858.5239 8560.4297 c --7858.6855 8559.6191 -7858.3633 8559.6191 -7857.9849 8559.3496 c --7857.6074 8559.0791 -7857.6074 8559.0791 y -b --7872.2402 8559.3496 m --7871.1074 8559.2422 -7871.8633 8559.998 -7871.269 8560.4834 c --7870.6738 8560.9697 -7869.918 8561.6172 -7870.729 8561.4004 c --7871.5391 8561.1855 -7872.9961 8561.6719 -7872.9434 8560.5381 c --7872.8887 8559.4033 -7872.6328 8559.3867 -7872.2402 8559.3496 c -b --7866.5703 8567.6113 m --7866.1016 8567.3438 -7866.6802 8567.7197 -7866.0303 8567.6113 c --7865.3833 8567.5039 -7864.7886 8567.6113 -7865.2207 8567.8281 c --7865.6519 8568.0439 -7866.3008 8568.1523 -7866.4634 8567.9893 c --7866.625 8567.8281 -7866.9473 8567.8281 -7866.5703 8567.6113 c -b --7857.0674 8567.1797 m --7857.4785 8566.1797 -7856.0962 8566.4238 -7855.4473 8566.7461 c --7854.7998 8567.0723 -7853.8262 8566.4775 -7854.4209 8566.9102 c --7855.0137 8567.3418 -7854.7998 8566.9102 -7855.3926 8567.2334 c --7855.9873 8567.5566 -7856.6895 8568.0977 -7857.0674 8567.1797 c -b --7872.6738 8573.0664 m --7872.7222 8572.0752 -7871.8086 8572.957 -7871.269 8573.0117 c --7870.729 8573.0664 -7870.0801 8573.0664 -7870.2432 8573.2813 c --7870.4038 8573.498 -7870.459 8573.498 -7871.1626 8573.7129 c --7871.8633 8573.9297 -7872.6191 8574.1445 -7872.6738 8573.0664 c -b --7873.1582 8567.6113 m --7874.0664 8567.9746 -7874.293 8567.8809 -7874.5625 8568.2051 c --7874.834 8568.5293 -7875.1558 8569.2314 -7875.5352 8568.0977 c --7875.9121 8566.9629 -7875.4282 8565.7764 -7875.0479 8565.9375 c --7874.6714 8566.0996 -7874.293 8566.7461 -7873.8618 8566.9629 c --7873.4297 8567.1797 -7872.6191 8567.3945 -7873.1582 8567.6113 c -b -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 41) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884 8586 m --7803 8586 L --7803 8481 L --7884 8481 L --7884 8586 L -n -u -u -u -0 O -0 0 0 1 k --7865.8057 8498.4258 m --7866.0742 8496.6621 -7867.1602 8495.291 -7868.5239 8495.3965 c --7869.8862 8495.502 -7870.707 8497.0234 -7870.7432 8498.8066 c --7870.748 8499.0693 -7870.6743 8500.2441 -7870.6304 8500.4775 C --7870.6382 8500.582 -7870.6191 8500.6738 -7870.6104 8500.7803 c --7870.5142 8502.0254 -7869.3574 8503.3604 -7867.9414 8503.25 c --7866.5249 8503.1406 -7865.4897 8501.8613 -7865.6367 8500.4727 c --7865.644 8500.4072 -7865.6958 8499.626 -7865.707 8499.5625 C --7865.6816 8499.2852 -7865.7598 8498.7256 -7865.8057 8498.4258 c -f --7876.2646 8507.7334 m --7876.9946 8515.916 -7871.5015 8515.1191 v --7868.3682 8514.0186 -7869.4414 8511.1211 v --7869.6426 8509.752 -7871.7847 8508.498 v --7872.146 8508.25 -7872.7632 8507.1016 v --7873.1294 8505.5977 -7874.5186 8505.2979 v --7876.0762 8505.251 -7876.2646 8507.7334 v -f --7850.7646 8516.4971 m -F --7850.0762 8514.3408 m --7850.7847 8513.1934 -7853.8848 8513.6279 Y --7854.811 8513.6885 -7855.3799 8513.1113 Y --7857.8394 8509.0918 -7861.0386 8509.8857 -7861.4082 8509.9932 C --7861.4097 8509.9863 L --7864.999 8510.6045 -7865.2666 8515.6035 V --7865.4912 8516.3828 -7866.335 8516.7695 V --7869.2695 8517.8613 -7869.3481 8519.208 V --7869.8999 8521.1152 -7867.6006 8521.7422 V --7865.6792 8522.2568 -7863.7886 8519.8945 V --7862.6113 8518.6797 -7859.5762 8517.9395 V --7859.5728 8517.9531 L --7856.3594 8517.0459 -7854.6392 8517.5889 Y --7851.8521 8518.7676 -7850.4063 8517.4014 Y --7848.6826 8515.7559 -7850.0762 8514.3408 Y -f --7863.9834 8497.8789 m --7864.5854 8496.2002 -7864.2822 8494.4775 -7863.0327 8493.9229 c --7861.7842 8493.3672 -7860.3384 8494.3164 -7859.4585 8495.8672 c --7859.3286 8496.0957 -7858.8359 8497.165 -7858.7632 8497.3906 C --7858.7065 8497.4785 -7858.6792 8497.5684 -7858.6362 8497.667 c --7858.1289 8498.8086 -7858.5122 8500.5303 -7859.8105 8501.1074 c --7861.1089 8501.6855 -7862.6279 8501.0527 -7863.1582 8499.7617 c --7863.1831 8499.7002 -7863.5078 8498.9883 -7863.5298 8498.9268 C --7863.6831 8498.6963 -7863.8809 8498.166 -7863.9834 8497.8789 c -f --7849.7129 8500.9316 m --7845.1802 8507.7822 -7850.3911 8509.6943 v --7853.6714 8510.2168 -7854.103 8507.1572 v --7854.5786 8505.8564 -7853.29 8503.7354 v --7853.0903 8503.3447 -7853.0938 8502.04 v --7853.4858 8500.5449 -7852.4082 8499.6182 v --7851.0591 8498.8359 -7849.7129 8500.9316 v -f -U -u --7824.7358 8550.1074 m --7824.3687 8548.3623 -7824.9048 8546.6963 -7826.2183 8546.3164 c --7827.5322 8545.9375 -7828.8345 8547.0752 -7829.4937 8548.7324 c --7829.5903 8548.9775 -7829.9326 8550.1025 -7829.9746 8550.3369 C --7830.0176 8550.4326 -7830.0322 8550.5244 -7830.0625 8550.6279 c --7830.4087 8551.8271 -7829.7935 8553.4805 -7828.4282 8553.875 c --7827.063 8554.2695 -7825.645 8553.4365 -7825.2969 8552.085 c --7825.2793 8552.0205 -7825.0552 8551.2705 -7825.0425 8551.207 C --7824.9214 8550.9551 -7824.7983 8550.4053 -7824.7358 8550.1074 c -f --7838.2705 8554.6172 m --7841.8242 8562.0244 -7836.3999 8563.2061 v --7833.0801 8563.2754 -7833.0688 8560.1846 v --7832.7778 8558.8311 -7834.3433 8556.9072 v --7834.5942 8556.5459 -7834.7695 8555.2539 v --7834.5854 8553.7188 -7835.7793 8552.9492 v --7837.2222 8552.3594 -7838.2705 8554.6172 v -f --7817.4648 8571.7695 m -F --7816.063 8569.9912 m --7816.3247 8568.6689 -7819.3799 8567.9883 Y --7820.27 8567.7197 -7820.5986 8566.9795 Y --7821.4922 8562.3535 -7824.7666 8561.9746 -7825.1494 8561.9453 C --7825.1494 8561.9395 L --7828.7271 8561.2588 -7830.731 8565.8467 V --7831.2153 8566.4961 -7832.1416 8566.5625 V --7835.272 8566.5557 -7835.8169 8567.7891 V --7837.0039 8569.3809 -7835.0713 8570.7764 V --7833.4526 8571.9316 -7830.853 8570.3818 V --7829.3242 8569.6582 -7826.2222 8570.0293 V --7826.2231 8570.042 L --7822.896 8570.3213 -7821.4766 8571.4326 Y --7819.2793 8573.5146 -7817.4463 8572.7432 Y --7815.2554 8571.8057 -7816.063 8569.9912 Y -f --7822.8374 8550.2354 m --7822.813 8548.4512 -7821.9258 8546.9453 -7820.5601 8546.8633 c --7819.1943 8546.7803 -7818.1743 8548.1768 -7817.895 8549.9385 c --7817.854 8550.1973 -7817.7666 8551.3711 -7817.7778 8551.6094 C --7817.7559 8551.7109 -7817.7617 8551.8037 -7817.7559 8551.9121 c --7817.6807 8553.1592 -7818.644 8554.6367 -7820.0625 8554.7217 c --7821.4814 8554.8066 -7822.6826 8553.6826 -7822.7246 8552.2871 c --7822.7271 8552.2217 -7822.7822 8551.4404 -7822.7798 8551.375 C --7822.8433 8551.1045 -7822.8423 8550.54 -7822.8374 8550.2354 c -f --7811.0186 8557.5625 m --7809.1777 8565.5684 -7814.7271 8565.5303 v --7817.9834 8564.8691 -7817.3154 8561.8516 v --7817.3032 8560.4668 -7815.353 8558.9326 v --7815.0278 8558.6377 -7814.5742 8557.415 v --7814.417 8555.876 -7813.083 8555.3877 v --7811.5454 8555.1279 -7811.0186 8557.5625 v -f -U -U -1 Ap --7884 8586 m --7884 8481 L --7803 8481 L --7803 8586 L --7884 8586 L -n -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 42) -0 A -u -0 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7857.4609 8559.085 m --7885 8559.085 L --7885 8586.624 L --7857.4609 8586.624 L --7857.4609 8559.085 L -n -0 O -0 0.55 1 0.12 k --7871.7598 8577.3623 m --7871.7598 8587 L --7870.6343 8587 L --7870.6343 8577.3623 L --7871.7598 8577.3623 L -f -0 0.55 1 0.3 k --7875.4233 8572.876 m --7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c --7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C --7857.5718 8572.874 L --7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c --7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 45) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7885 8543.918 m --7885 8587 L --7798.2217 8587 L --7798.2217 8543.918 L --7885 8543.918 L -n -u -u -0 O -0 0 0 1 k --7825.2217 8573.2363 m --7825.2217 8581.0742 L --7813.2217 8574.1445 L --7801.2217 8567.2168 L --7813.2217 8560.2891 L --7825.2217 8553.3613 L --7825.2217 8561.4824 L --7883.9351 8547.7168 L --7870.9878 8566.8027 L --7885 8587 L --7825.2217 8573.2363 L -f -0 1 1 0.1 k -0 R -0 0 0 1 K --7823.2217 8570.2363 m --7823.2217 8578.0742 L --7811.2217 8571.1445 L --7799.2217 8564.2168 L --7811.2217 8557.2891 L --7823.2217 8550.3613 L --7823.2217 8558.4824 L --7881.9351 8544.7168 L --7867.2754 8564.3594 L --7881.9351 8584 L --7823.2217 8570.2363 L -b -U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 50) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884 8586 m --7756.877 8586 L --7756.877 8538.415 L --7884 8538.415 L --7884 8586 L -n -u -*u -0 O -0.9529 0.949 0.1961 0.0745 k --7857.793 8570.417 m --7857.8232 8570.2676 L --7859.9849 8564.3643 -7860.9438 8561.6377 -7861.2754 8560.2891 c --7861.3657 8560.2891 L --7861.6953 8561.6074 -7862.7754 8564.335 -7864.9673 8570.2676 c --7864.9966 8570.417 L --7857.793 8570.417 l -f -1 D --7868.1182 8578.9678 m --7869.6191 8582.5371 -7870.3994 8584.709 -7868.1182 8584.917 c --7868.1182 8585.9678 L --7870.6992 8585.9375 -7873.5806 8585.917 -7876.3418 8585.917 c --7880.0649 8585.917 -7882.5273 8585.9375 -7884 8585.9678 c --7884 8584.917 L --7882.1064 8584.709 -7881.0542 8582.5674 -7873.5513 8565.5029 c --7861.6953 8538.415 L --7859.8638 8538.415 L --7848.1582 8565.5029 L --7840.8047 8582.5078 -7839.7246 8584.709 -7837.8887 8584.917 c --7837.8887 8585.9678 L --7839.5142 8585.9375 -7841.916 8585.917 -7845.5767 8585.917 c --7848.5488 8585.917 -7851.6694 8585.9375 -7854.7026 8585.9678 c --7854.7026 8584.917 L --7852.481 8584.709 -7853.3218 8582.5078 -7854.7617 8578.9678 C --7868.1182 8578.9678 l -f -*U -*u -0 D --7813.0762 8554.0811 m --7813.0762 8550.4717 -7815.3535 8548.0947 -7819.1294 8548.0947 c --7820.2383 8548.0947 -7821.0767 8548.2158 -7821.5273 8548.2451 c --7821.5273 8560.5479 L --7820.8672 8560.6084 -7820.208 8560.6084 -7819.729 8560.6084 c --7818.2002 8560.6084 -7816.7026 8560.127 -7815.6841 8559.4053 c --7814.3945 8558.5332 -7813.0762 8556.7881 -7813.0762 8554.1416 C --7813.0762 8554.0811 l -f -1 D --7832.0806 8558.3926 m --7832.0806 8542.6445 -7832.0806 8540.4287 -7834.542 8540.2783 c --7834.542 8539.3184 L --7833.042 8539.2588 -7830.3174 8539.1992 -7827.5664 8539.1689 c --7825.6538 8539.1084 -7822.3945 8539.0186 -7820.1479 8538.9775 c --7816.582 8538.9775 -7813.585 8539.4258 -7811.0049 8540.2627 c --7806.353 8541.8477 -7801.9702 8545.8525 -7801.9702 8553.6602 c --7801.9702 8558.7432 -7804.4014 8562.3193 -7806.5034 8564.0605 c --7807.583 8565.0215 -7808.8135 8565.832 -7809.7744 8566.3125 c --7809.7744 8566.4629 L --7807.5234 8569.4912 -7805.6025 8572.0625 -7799.3906 8580.6426 c --7797.5 8583.0645 -7795.9102 8584.7383 -7794.7402 8584.9775 c --7794.7402 8586 L --7796.6602 8586 -7799 8585.8848 -7801.1294 8585.8848 c --7803.3511 8585.8848 -7804.8521 8586 -7806.4424 8586 c --7807.6729 8586 -7808.7241 8585.9404 -7809.5039 8585.2725 c --7813.0151 8579.8477 -7816.9121 8573.7559 -7820.1182 8568.7139 c --7820.5078 8568.7139 -7820.957 8568.7139 -7821.5273 8568.7139 c --7821.5273 8571.2852 L --7821.5273 8582.5264 -7821.437 8584.7686 -7819.1895 8584.9775 c --7819.1895 8585.9697 L --7820.6279 8585.9404 -7823.9194 8585.915 -7826.6992 8585.915 c --7829.9287 8585.915 -7832.8921 8585.9404 -7834.5122 8585.9697 c --7834.5122 8584.9775 L --7832.0518 8584.7686 -7832.0806 8582.5264 -7832.0806 8565.5918 C --7832.0806 8558.3926 l -f -*U -*u -0 D --7781.4561 8565.5928 m --7781.4561 8582.4941 -7781.4561 8584.6484 -7784.2832 8584.9775 C --7784.2832 8585.9697 l --7782.3887 8585.9404 -7779.0542 8585.915 -7775.7822 8585.915 c --7772.6294 8585.915 -7769.5688 8585.9404 -7767.2881 8585.9697 C --7767.2881 8584.9775 l --7770.2578 8584.9775 -7770.2881 8582.5244 -7770.2881 8565.5928 C --7770.2881 8548.1514 L --7762.8193 8548.1514 l --7759.999 8548.1514 -7758.5298 8548.96 -7757.8994 8551.2627 C --7756.9072 8551.2627 l --7756.9072 8546.4697 -7756.877 8542.415 -7756.877 8539.1709 c --7761.3486 8539.2012 -7766.748 8539.2314 -7772.0601 8539.2314 C --7779.7446 8539.2314 l --7784.5537 8539.2314 -7789.9966 8539.2012 -7794.9614 8539.1709 c --7794.9614 8542.3848 -7794.9326 8546.4697 -7794.9326 8551.2627 C --7793.9072 8551.2627 l --7793.3657 8549.1094 -7791.771 8548.1514 -7788.9438 8548.1514 C --7781.4561 8548.1514 l --7781.4561 8565.5928 L -f -*U -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 62) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7885 8587 m --7885 8548.7305 L --7846.7305 8548.7305 L --7846.7305 8587 L --7885 8587 L -n -0 O -1 0.14 0.09 0 k --7846.7305 8569.9043 m --7846.7305 8561.3408 L --7885 8561.3408 L --7885 8569.9043 L --7846.7305 8569.9043 L -f --7846.7305 8573.0967 m --7846.7305 8572.4229 L --7885 8572.4229 L --7885 8573.0967 L --7846.7305 8573.0967 L -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 63) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7885 8587 m --7885 8548.7305 L --7846.7305 8548.7305 L --7846.7305 8587 L --7885 8587 L -n -0 O -1 0.14 0.09 0 k --7846.7305 8565.8262 m --7846.7305 8574.3896 L --7859.3408 8574.3896 L --7859.3408 8587 L --7867.9038 8587 L --7867.9063 8565.8262 L --7867.9038 8565.8262 L --7867.9038 8565.8252 L --7846.7305 8565.8262 L -f --7846.7305 8563.3076 m --7870.4233 8563.3076 L --7870.4233 8587 L --7871.0967 8587 L --7871.0977 8562.6328 L --7846.7305 8562.6328 L --7846.7305 8563.3076 L -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 64) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7885 8586.999 m --7885 8548.7285 L --7846.7305 8548.7285 L --7846.7305 8586.999 L --7885 8586.999 L -n -0 O -1 0.14 0.09 0 k --7846.7305 8561.3389 m --7872.3896 8561.3389 L --7872.3896 8586.999 L --7863.8262 8587 L --7863.8262 8569.9033 L --7846.7305 8569.9033 L --7846.7305 8561.3389 L -f --7846.7305 8572.4219 m --7861.3081 8572.4219 L --7861.3081 8587 L --7860.6338 8587 L --7860.6338 8573.0957 L --7846.7305 8573.0957 L --7846.7305 8572.4219 L -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 65) -0 A -u -1 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7857.0625 8559.4609 m --7884.6025 8559.4609 L --7884.6025 8587 L --7857.0625 8587 L --7857.0625 8559.4609 L -n -0 O -0 0.55 1 0.12 k --7856.8418 8572.7002 m --7885 8572.7002 L --7885 8573.8252 L --7856.8418 8573.8252 L --7856.8418 8572.7002 L -f -u -0 0.55 1 0.3 k --7883.9814 8560.5215 m --7884.4102 8562.5254 -7883.1865 8566.1514 -7880.0874 8569.251 c --7876.9878 8572.3496 -7873.3457 8573.6602 -7871.3594 8573.1455 C --7871.3594 8573.1455 L --7870.875 8571.1895 -7872.1519 8567.5117 -7875.25 8564.4141 c --7878.3457 8561.3184 -7882.0122 8560.1064 -7883.9814 8560.5215 C -f -0 0.39 0.7 0.12 k --7883.9814 8585.9912 m --7884.4102 8583.9883 -7883.1865 8580.3613 -7880.0874 8577.2617 c --7876.9878 8574.1641 -7873.3457 8572.8535 -7871.3594 8573.3672 C --7871.3594 8573.3672 L --7870.875 8575.3242 -7872.1519 8579.001 -7875.25 8582.0996 c --7878.3457 8585.1953 -7882.0122 8586.4063 -7883.9814 8585.9912 C -f -U -u -0 0.55 1 0.3 k --7870.1782 8585.9912 m --7870.6074 8583.9883 -7869.3838 8580.3613 -7866.2842 8577.2617 c --7863.1855 8574.1641 -7859.543 8572.8535 -7857.5576 8573.3672 C --7857.5566 8573.3672 L --7857.0718 8575.3242 -7858.3496 8579.001 -7861.4473 8582.0996 c --7864.543 8585.1953 -7868.209 8586.4063 -7870.1782 8585.9912 C -f -0 0.39 0.7 0.12 k --7870.1782 8560.5215 m --7870.6074 8562.5254 -7869.3838 8566.1514 -7866.2842 8569.251 c --7863.1855 8572.3496 -7859.543 8573.6602 -7857.5576 8573.1455 C --7857.5566 8573.1455 L --7857.0718 8571.1895 -7858.3496 8567.5117 -7861.4473 8564.4141 c --7864.543 8561.3184 -7868.209 8560.1064 -7870.1782 8560.5215 C -f -U -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 67) -0 A -u -0 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7857.4609 8559.085 m --7885 8559.085 L --7885 8586.624 L --7857.4609 8586.624 L --7857.4609 8559.085 L -n -0 O -0 0.55 1 0.12 k --7871.7598 8577.3623 m --7871.7598 8587 L --7870.6343 8587 L --7870.6343 8577.3623 L --7871.7598 8577.3623 L -f -0 0.55 1 0.3 k --7875.4233 8572.876 m --7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c --7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C --7857.5718 8572.874 L --7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c --7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 69) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7857.4609 8559.4609 m --7885 8559.4609 L --7885 8587 L --7857.4609 8587 L --7857.4609 8559.4609 L -n -0 O -0 0.55 1 0.3 k --7875.4233 8573.252 m --7874.3096 8571.5313 -7870.8809 8569.833 -7866.4966 8569.833 c --7862.1152 8569.833 -7858.6138 8571.4824 -7857.5718 8573.25 C --7857.5718 8573.25 L --7858.6138 8574.9766 -7862.1152 8576.6738 -7866.4966 8576.6738 c --7870.875 8576.6738 -7874.3242 8574.9375 -7875.4233 8573.252 C -f -U -%AI8_EndBrushPattern -%AI8_BeginBrushPattern -(New Pattern 83) -0 A -u -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR --7884 8585.9355 m --7670.4009 8585.9355 L --7670.4009 8578.1348 L --7884 8578.1348 L --7884 8585.9355 L -n -0 O -0 0 0 1 k --7884 8582.0352 m --7873.9858 8584.5273 -7867.187 8585.875 -7855.2007 8585.9355 c --7842.2183 8586 -7777.2002 8585.9355 y --7712.1816 8586 -7699.2002 8585.9355 v --7687.2129 8585.875 -7680.415 8584.5273 -7670.4009 8582.0352 C --7680.415 8579.543 -7687.2129 8578.1953 -7699.2002 8578.1348 c --7712.1816 8578.0693 -7777.2002 8578.1348 y --7842.2183 8578.0693 -7855.2007 8578.1348 v --7867.187 8578.1953 -7873.9858 8579.543 -7884 8582.0352 C -f -U -%AI8_EndBrushPattern -%AI5_End_NonPrinting-- -%AI5_Begin_NonPrinting -Np -4 Bn -%AI5_BeginGradient: (Black, White) -(Black, White) 0 2 Bd -[ -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -0 %_Br -[ -0 0 50 100 %_BS -%_0 0 50 100 Bs -1 0 50 0 %_BS -%_1 0 50 0 Bs -BD -%AI5_EndGradient -%AI5_BeginGradient: (Chrome) -(Chrome) 0 6 Bd -[ -0 -< -464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B -3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 -3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625 -2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A -1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F -0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 -04040403030302020202010101010000 -> -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -< -1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A -1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 -15151515151414141414141414131313131313131312121212121212121211111111111111111010 -1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C -0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 -07060606060606060606050505050505050504040404040404040303030303030303030202020202 -02020201010101010101010000000000 -> -1 %_Br -0 -0.275 -1 -< -6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 -434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F -> -1 %_Br -0 -< -00000101010102020202030303040404040505050506060607070707080808090909090A0A0A0A0B -0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101011111112121212131313141414141515151516 -161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 -212122222222232323232424242525252526262626272727282828282929292A2A2A2A2B2B2B2B2C -2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313132323233333333343434353535353636363637 -373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142 -42424343434344444444454545464646 -> -< -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 -28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F -505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 -78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 -C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF -F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF -> -< -00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010 -1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 -222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 -32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 -434444444545464647474748484949494A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 -54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464 -6565666666676768686969696A6A6B6B -> -1 %_Br -1 -0 %_Br -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -< -4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 -414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 -35343434333333323232323131313030302F2F2F2E2E2E2E2D2D2D2C2C2C2B2B2B2B2A2A2A292929 -282828282727272626262525252524242423232322222222212121202020201F1F1F1E1E1E1D1D1D -1D1C1C1C1B1B1B1A1A1A1A1919191818181717171616161615151514141413131313121212111111 -101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505 -04040404030303020202010101010000 -> -0 -0 -1 %_Br -[ -1 0 50 92 %_BS -%_1 0 50 92 Bs -0 0.275 1 0.12 1 50 59 %_BS -%_0 0.275 1 0.12 1 50 59 Bs -0 0.275 1 0.42 1 50 50 %_BS -%_0 0.275 1 0.42 1 50 50 Bs -1 0 50 49 %_BS -%_1 0 50 49 Bs -1 0 50 41 %_BS -%_1 0 50 41 Bs -1 0.3 0 0 1 50 0 %_BS -%_1 0.3 0 0 1 50 0 Bs -BD -%AI5_EndGradient -%AI5_BeginGradient: (Rainbow) -(Rainbow) 0 6 Bd -[ -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -1 -0 -0 -1 %_Br -1 -< -0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E -2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 -5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E -7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 -A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE -CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 -F7F8F9FAFBFCFDFEFF -> -0 -0 -1 %_Br -1 -< -00000000000000000000000000000000000001010101010101010101010101010101010101010101 -01010101010101010101010101010202020202020202020202020202020202020202020202020202 -02020202020202020202030303030303030303030303030303030303030303030303030303030303 -03030303030304040404040404040404040404040404040404040404040404040404040404040404 -04040505050505050505050505050505050505050505050505050505050505050505050505050606 -06060606060606060606060606060606060606060606060606060606060606060607070707070707 -07070707070707070707070707070707 -> -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -0 -1 %_Br -< -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 -28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F -505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 -78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 -C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF -F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF -> -0 -1 -0 -1 %_Br -0 -< -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 -D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 -AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 -87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 -5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 -37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 -0F0E0D0C0B0A09080706050403020100 -> -1 -0 -1 %_Br -[ -0 1 0 0 1 50 100 %_BS -%_0 1 0 0 1 50 100 Bs -1 1 0 0 1 50 80 %_BS -%_1 1 0 0 1 50 80 Bs -1 0.0279 0 0 1 50 60 %_BS -%_1 0.0279 0 0 1 50 60 Bs -1 0 1 0 1 50 40 %_BS -%_1 0 1 0 1 50 40 Bs -0 0 1 0 1 50 20 %_BS -%_0 0 1 0 1 50 20 Bs -0 1 1 0 1 50 0 %_BS -%_0 1 1 0 1 50 0 Bs -BD -%AI5_EndGradient -%AI5_BeginGradient: (Yellow & Orange Radial) -(Yellow & Orange Radial) 1 2 Bd -[ -0 -< -0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 -232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 -494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F -707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C -> -< -FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 -F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 -F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB -EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6 -> -0 -1 %_Br -[ -0 0 1 0 1 52 19 %_BS -%_0 0 1 0 1 52 19 Bs -0 0.55 0.9 0 1 50 100 %_BS -%_0 0.55 0.9 0 1 50 100 Bs -BD -%AI5_EndGradient -%AI5_End_NonPrinting-- -%AI5_BeginPalette -0 0 Pb -0 0 0 0 k -(WHITE) Pc -1 1 1 1 ([Registration]) 0 Xs -([Registration]) Pc -0 0 0 1 k -(C=0 M=0 Y=0 K=100) Pc -Bb -2 (Black, White) -7885 8587 0 0 1 0 0 1 0 0 Bg -0 BB -(Black, White) Pc -Bb -2 (Chrome) -7885 8587 0 0 1 0 0 1 0 0 Bg -0 BB -(Chrome) Pc -Bb -2 (Rainbow) -7885 8587 0 0 1 0 0 1 0 0 Bg -0 BB -(Rainbow) Pc -Bb -0 0 0 0 Bh -2 (Yellow & Orange Radial) -7885 8587 0 0 1 0 0 1 0 0 Bg -0 BB -(Yellow & Orange Radial) Pc -(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p -(Brick) Pc -(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p -(Confetti) Pc -(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p -(Leaves - Fall ) Pc -(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p -(Stripes) Pc -0.91 0.01 0.93 0 (PANTONE 354 2X CVC) 0 x -(PANTONE 354 2X CVC) Pc -0 1 0.91 0 (PANTONE 485 CVC) 0 x -(PANTONE 485 CVC) Pc -0 0.51 1 0 (PANTONE 152 CVC) 0 x -(PANTONE 152 CVC) Pc -PB -%AI5_EndPalette -%AI5_Begin_NonPrinting -Np -%AI8_BeginPluginObject -(Adobe Brush Manager Order) -(Adobe Brush Manager Order) -( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic Brush T) - -(ool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt Oval / Adobe Cal) - -(ligraphic Brush Tool/ 20 pt Oval/ Adobe Calligraphic Brush Tool/ 25 pt) - -( Round / Adobe Calligraphic Brush Tool/ 50 pt Flat/ Adobe Scatter Brus) - -(h Tool/ Dog Tracks/ Adobe Scatter Brush Tool/ Fall Leaf/ Adobe Scatter) - -( Brush Tool/ Ladybug/ Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatte) - -(r Brush Tool/ Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Ado) - -(be ArtOnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered S) - -(troke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Brush Tool/ ) - -(Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe PatternOnPath Brus) - -(h Tool/ Double Lines/ Adobe PatternOnPath Brush Tool/ Laurel/ Adobe Pa) - -(tternOnPath Brush Tool/ Rope /) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(6 pt Flat ) -(1 4 8 10 10 90 90 2 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(10 pt Oval) -(1 1 19 15 15 130 130 2 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(12 pt Oval ) -(1 7 17 45 45 0 0 2 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(20 pt Oval) -(1 20 20 20 100 40 80 0 2 1 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(25 pt Round ) -(1 10 40 100 100 0 0 2 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Calligraphic Brush Tool) -(50 pt Flat) -(1 40 60 0 0 44 44 0 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe ArtOnPath Brush Tool) -(Arrow) -(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe ArtOnPath Brush Tool) -(Marker) -(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe ArtOnPath Brush Tool) -(Paintbrush) -(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe ArtOnPath Brush Tool) -(Tapered Stroke) -(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe ArtOnPath Brush Tool) -(Type) -(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745098 / 1) - -( 0 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe PatternOnPath Brush Tool) -(Double Lines) -(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.14 0.09 ) - -(0 / 1 0 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe PatternOnPath Brush Tool) -(Laurel) -(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Pattern 69/ ) - -(1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe PatternOnPath Brush Tool) -(Rope ) -(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 / 1 0 1 ) - -(0 1 0 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Dog Tracks) -(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Fall Leaf) -(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0.1 1 1 -) - -(1 1 1 -180 180 1 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Ladybug) -(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.55 1.55 ) - -(1 -180 180 1 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Push Pin) -(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 -1.06145) - -( 1.06 1 -180 180 1 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Strawberry) -(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.5 0.5 1 ) - -(-75 75.419 1 0 0) . -%AI8_EndPluginObject -%AI8_BeginPluginObject -(Adobe Scatter Brush Tool) -(Twinkle Star ) -(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 0) . -%AI8_EndPluginObject -%AI5_End_NonPrinting-- -%AI5_Begin_NonPrinting -Np -%AI8_PluginGroupInfo -(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends) -%AI8_PluginGroupInfo -(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool) -%AI8_PluginGroupInfo -(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool) -%AI8_PluginGroupInfo -(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool) -%AI8_PluginGroupInfo -(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool) -%AI5_End_NonPrinting-- -%%EndSetup -%AI5_BeginLayer -1 1 0 1 0 0 1 8 0 0 0 0 50 Lb -(border) Ln -0 A -1 Ap -0 R -0 0 0 1 K -800 Ar -0 J 0 j 5.2327 w 4 M []0 d -%AI3_Note: -0 D -0 XR -390.7588 335.9102 m -390.7588 333.4834 388.5283 331.5156 385.7754 331.5156 C -220.209 331.5156 L -217.457 331.5156 215.2256 333.4834 215.2256 335.9102 C -215.2256 481.3916 L -215.2256 483.8184 217.457 485.7856 220.209 485.7856 C -385.7754 485.7856 L -388.5283 485.7856 390.7588 483.8184 390.7588 481.3916 C -390.7588 335.9102 L -s -LB -%AI5_EndLayer-- -%AI5_BeginLayer -1 1 0 1 0 0 1 20 102 102 0 0 50 Lb -(tv) Ln -0 A -0 O -0 0 0 1 k -0 R -0 0 0 1 K -800 Ar -0 J 0 j 3 w 4 M []0 d -%AI3_Note: -0 D -0 XR -377.3408 366.4893 m -377.3408 363.1758 374.6543 360.4893 371.3408 360.4893 C -234.6743 360.4893 L -231.3608 360.4893 228.6743 363.1758 228.6743 366.4893 C -228.6743 461.1563 L -228.6743 464.4697 231.3608 467.1563 234.6743 467.1563 C -371.3408 467.1563 L -374.6543 467.1563 377.3408 464.4697 377.3408 461.1563 C -377.3408 366.4893 L -b -0 0 0 0 k -360.3711 382.1641 m -360.3711 378.8506 357.6846 376.1641 354.3711 376.1641 C -253.0381 376.1641 L -249.7246 376.1641 247.0381 378.8506 247.0381 382.1641 C -247.0381 444.1641 L -247.0381 447.4775 249.7246 450.1641 253.0381 450.1641 C -354.3711 450.1641 L -357.6846 450.1641 360.3711 447.4775 360.3711 444.1641 C -360.3711 382.1641 L -b -u -0 Ap -0 0 0 1 k -1 w -325.7354 369.5391 m -322.2354 375.0391 318.2354 351.5391 342.2354 344.5391 c -265.4619 344.5391 l -289.4619 351.5391 285.4619 375.0391 281.9619 369.5391 c -325.7354 369.5391 l -b -1 Ap -1.0096 w -342.9453 343.0273 m -342.9453 342.1924 342.2539 341.5156 341.4043 341.5156 C -266.0039 341.5156 L -265.1523 341.5156 264.4639 342.1924 264.4639 343.0273 C -264.4639 343.0273 L -264.4639 343.8623 265.1523 344.5391 266.0039 344.5391 C -341.4043 344.5391 L -342.2539 344.5391 342.9453 343.8623 342.9453 343.0273 C -342.9453 343.0273 L -b -U -LB -%AI5_EndLayer-- -%AI5_BeginLayer -1 1 1 1 0 0 1 1 255 79 79 0 50 Lb -(flames!) Ln -0 A -u -0 Ap -0 O -0 0.51 1 0 (PANTONE 152 CVC) 0 x -0 R -0 0 0 1 K -800 Ar -0 J 0 j 3 w 4 M []0 d -%AI3_Note: -0 D -0 XR -268.1118 375.1055 m -278.0723 371.9902 285.0166 362.1172 307.6953 356.7012 C -328.5361 364.6758 339.9619 383.5098 345.8936 389.666 C -343.8018 403.9888 340.0576 432.1499 332.6553 443.0522 C -319.5771 453.9092 308.0566 485.27 318.7891 505.4521 C -325.9775 515.9902 288.2168 468.6289 304.229 442.3589 C -318.9365 416.1494 313.5049 417.688 311.5088 418.7856 C -306.4565 424.1489 308.7578 428.8916 297.6426 440.9727 C -282.4565 457.4297 280.1528 461.7734 296.6025 495.0522 C -301.0166 499.0298 277.292 523.6685 275.7539 530.4106 C -277.292 523.6685 293.3374 492.3101 277.8828 480.4922 C -265.1763 462.8696 265.939 450.7354 264.7095 445.1323 C -268.3765 438.5493 275.417 425.7495 278.5762 413.9326 C -284.3765 406.5493 284.7471 391.6973 275.8027 404.2261 C -273.8164 414.5488 252.376 431.5088 257.4292 460.0386 C -269.9766 491.3496 240.8564 433.4292 244.603 410.4658 C -256.2168 392.4688 270.3921 380.3086 268.1118 375.1055 C -b -0 1 0.91 0 (PANTONE 485 CVC) 0 x -1 w -263.0464 378.707 m -271.0464 370.041 280.3799 358.707 303.0464 360.041 c -325.7129 361.373 339.7129 382.041 341.7129 392.707 c -343.7129 403.374 337.7129 432.708 327.0459 444.041 c -316.3799 455.374 304.3794 488.041 313.7129 504.041 c -323.0469 520.041 283.7129 470.707 299.7129 443.374 c -315.7129 416.041 310.0547 417.644 306.7129 420.7075 c -302.7129 424.374 305.1094 429.314 293.3799 442.041 c -277.7129 459.041 275.3135 463.5659 292.3799 494.041 c -297.0464 502.374 272.333 528.0396 y -289.0469 495.3745 274.3799 480.041 v -259.7129 464.7075 260.5073 452.0679 261.7129 446.041 c -263.0464 439.374 270.3799 426.041 275.0464 416.041 c -279.7129 406.041 280.0986 390.5684 272.3799 406.7075 c -268.7129 414.374 246.3794 432.0405 254.7129 460.374 c -264.7129 494.374 234.3799 434.041 242.3799 412.7075 c -250.3799 391.373 263.0464 378.707 y -b -U -LB -%AI5_EndLayer-- -%AI5_BeginLayer -1 1 0 1 0 0 1 2 79 255 79 0 50 Lb -(text) Ln -0 A -1 To -1 0 0 1 179.3335 327.2939 0 Tp -0 Tv -1 Ap -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR -428.666 249.9619 m -428.666 327.2939 L -179.3335 327.2939 L -179.3335 249.9619 L -428.666 249.9619 L -n -TP -14.3068 -43.125 Td -2 Tr -0 O -0 0 0 1 k -0 R -0 1 0.91 0 (PANTONE 485 CVC) 0 X -%_ 0 50 XQ -/_Device 48 46.752 -7.1038 Tf -0 Ts -100 100 Tz -0 Tt -%_0 0 100 100 Xu -%AI55J_GlyphSubst: GlyphSubstNone -1 TA -%_ 0 XL -0 TY -0 TV -36 0 Xb -XB -0 0 5 TC -100 100 200 TW -25 TG -0 0 0 Ti -1 Ta -0 1 2 2 3 Th -0 Tq -240 Tg -0 0 Tl -0 Tc -0 Tw -(XSCREENSA) Tx 1 91 Tk -(VER) Tx 1 0 Tk -(\r) TX -TO -LB -%AI5_EndLayer-- -%%PageTrailer -gsave annotatepage grestore showpage -%%Trailer -Adobe_Illustrator_AI5 /terminate get exec -Adobe_shading_AI8 /terminate get exec -Adobe_ColorImage_AI6 /terminate get exec -Adobe_typography_AI5 /terminate get exec -Adobe_cshow /terminate get exec -Adobe_level2_AI5 /terminate get exec -%%EOF diff --git a/utils/images/screensaver-cmndln.png b/utils/images/screensaver-cmndln.png Binary files differdeleted file mode 100644 index fdb8e13..0000000 --- a/utils/images/screensaver-cmndln.png +++ /dev/null diff --git a/utils/images/screensaver-colorselector.png b/utils/images/screensaver-colorselector.png Binary files differdeleted file mode 100644 index f18c86f..0000000 --- a/utils/images/screensaver-colorselector.png +++ /dev/null diff --git a/utils/images/screensaver-diagnostic.png b/utils/images/screensaver-diagnostic.png Binary files differdeleted file mode 100644 index 52de31a..0000000 --- a/utils/images/screensaver-diagnostic.png +++ /dev/null diff --git a/utils/images/screensaver-locking.png b/utils/images/screensaver-locking.png Binary files differdeleted file mode 100644 index 61ee436..0000000 --- a/utils/images/screensaver-locking.png +++ /dev/null diff --git a/utils/images/screensaver-power.png b/utils/images/screensaver-power.png Binary files differdeleted file mode 100644 index 38c861d..0000000 --- a/utils/images/screensaver-power.png +++ /dev/null diff --git a/utils/images/screensaver-snap.png b/utils/images/screensaver-snap.png Binary files differdeleted file mode 100644 index 720f51a..0000000 --- a/utils/images/screensaver-snap.png +++ /dev/null diff --git a/utils/pow2.c b/utils/pow2.c index 9cce3d8..155ce07 100644 --- a/utils/pow2.c +++ b/utils/pow2.c @@ -11,8 +11,6 @@ #include "pow2.h" -#include <limits.h> - int i_log2 (size_t x) { @@ -21,8 +19,11 @@ i_log2 (size_t x) return -1; /* GCC 3.4 also has this. */ + /* The preprocessor criteria here must match what's in pow2.h, to prevent + * infinite recursion. + */ # if defined __GNUC__ && __GNUC__ >= 4 || defined __clang__ - return sizeof(long) * CHAR_BIT - __builtin_clzl(x) - 1; + return i_log2_fast(x); # else { unsigned bits = sizeof(x) * CHAR_BIT; diff --git a/utils/pow2.h b/utils/pow2.h index 3927e84..0298b45 100644 --- a/utils/pow2.h +++ b/utils/pow2.h @@ -13,6 +13,14 @@ #define POW2_H #include <stdlib.h> +#include <limits.h> + +/* Like i_log2, but no check for 0. */ +#if defined __GNUC__ && __GNUC__ >= 4 || defined __clang__ +# define i_log2_fast(x) (sizeof(long) * CHAR_BIT - __builtin_clzl(x) - 1) +#else +# define i_log2_fast(x) i_log2(x) +#endif extern int i_log2(size_t x); extern size_t to_pow2 (size_t x); /* return the next larger power of 2. */ diff --git a/utils/resources.c b/utils/resources.c index 7b54adc..1e35023 100644 --- a/utils/resources.c +++ b/utils/resources.c @@ -43,6 +43,7 @@ get_string_resource (Display *dpy, char *res_name, char *res_class) XrmValue value; char *type; char full_name [1024], full_class [1024]; + if (!dpy) return 0; strcpy (full_name, progname); strcat (full_name, "."); strcat (full_name, res_name); diff --git a/utils/screenshot.c b/utils/screenshot.c new file mode 100644 index 0000000..bfdb95c --- /dev/null +++ b/utils/screenshot.c @@ -0,0 +1,331 @@ +/* xscreensaver-command, Copyright © 2022 Jamie Zawinski <jwz@jwz.org> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * Grab images of the desktop. See the comments at the top of + * ../hacks/xscreensaver-getimage.c for the how and why of it. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stdio.h> +#include <stdlib.h> + +#include <X11/Xproto.h> /* for CARD32 */ +#include <X11/Xlib.h> +#include <X11/Xatom.h> + +#include "screenshot.h" +#include "visual.h" +#include "../driver/blurb.h" + +static Atom XA_SCREENSAVER_SCREENSHOT = 0; + +static void +screenshot_init (Display *dpy) +{ + if (!XA_SCREENSAVER_SCREENSHOT) + XA_SCREENSAVER_SCREENSHOT = + XInternAtom (dpy, "_SCREENSAVER_SCREENSHOT", False); +} + + +/* Returns the absolute position of the window on its root window. + */ +void +window_root_offset (Display *dpy, Window window, int *x, int *y) +{ + *x = 0; + *y = 0; + while (1) + { + Window root, parent, *kids = 0; + XWindowAttributes xgwa; + unsigned int nkids = 0; + XGetWindowAttributes (dpy, window, &xgwa); + *x += xgwa.x; + *y += xgwa.y; + + if (! XQueryTree (dpy, window, &root, &parent, &kids, &nkids)) + abort (); + if (kids) XFree ((char *) kids); + if (!parent || parent == root) break; + window = parent; + } +} + + +static Bool error_handler_hit_p = False; + +static int +ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error) +{ + error_handler_hit_p = True; + return 0; +} + + +/* Grab a screenshot and return it. + It will be the size and extent of the given window, + or the full screen, as requested. + Might be None if we failed. + */ +Pixmap +screenshot_grab (Display *dpy, Window window, Bool full_screen_p, + Bool verbose_p) +{ + Window root_window; + XWindowAttributes root_xgwa, win_xgwa, owin_xgwa; + Pixmap pixmap; + XGCValues gcv; + GC gc; + struct { int x, y, x2, y2; } root, win; + XErrorHandler old_handler; + + XGetWindowAttributes (dpy, window, &win_xgwa); + root_window = XRootWindowOfScreen (win_xgwa.screen); + XGetWindowAttributes (dpy, root_window, &root_xgwa); + + if (visual_class (win_xgwa.screen, win_xgwa.visual) != TrueColor) + { + if (verbose_p) + fprintf (stderr, "%s: no screenshot, not TrueColor\n", blurb()); + return None; + } + +# ifdef __APPLE__ /* Can't XCopyArea root window under rootless XQuartz. */ + if (verbose_p) + fprintf (stderr, "%s: no screenshot under XQuartz\n", blurb()); + return None; +# endif + + root.x = 0; + root.y = 0; + root.x2 = root_xgwa.width; + root.y2 = root_xgwa.height; + + owin_xgwa = win_xgwa; + if (full_screen_p) + { + win_xgwa = root_xgwa; + win = root; + } + else + { + window_root_offset (dpy, window, &win.x, &win.y); + owin_xgwa.x = win.x; + owin_xgwa.y = win.y; + win.x2 = win.x + win_xgwa.width; + win.y2 = win.y + win_xgwa.height; + } + + /* Clip win to within root, in case it is partially off screen. */ + if (win.x < 0) win.x = 0; + if (win.y < 0) win.y = 0; + if (win.x2 > root.x2) win.x2 = root.x2; + if (win.y2 > root.y2) win.y2 = root.y2; + + gcv.function = GXcopy; + gcv.subwindow_mode = IncludeInferiors; + pixmap = XCreatePixmap (dpy, root_window, + win_xgwa.width, win_xgwa.height, + win_xgwa.depth); + gc = XCreateGC (dpy, pixmap, GCFunction | GCSubwindowMode, &gcv); + + /* I do not understand why some systems get a BadMatch on this XCopyArea. + (Sep 2022, Debian 11.5 x86 under VirtualBox.) */ + XSync (dpy, False); + error_handler_hit_p = False; + old_handler = XSetErrorHandler (ignore_all_errors_ehandler); + + XCopyArea (dpy, root_window, pixmap, gc, + win.x, win.y, + win.x2 - win.x, + win.y2 - win.y, + 0, 0); + + XSync (dpy, False); + XSetErrorHandler (old_handler); + if (error_handler_hit_p) + { + XFreePixmap (dpy, pixmap); + pixmap = 0; + } + + XFreeGC (dpy, gc); + + if (verbose_p || !pixmap) + fprintf (stderr, "%s: %s screenshot 0x%lx %dx%d" + " for window 0x%lx %dx%d+%d+%d\n", blurb(), + (pixmap ? "saved" : "failed to save"), + (unsigned long) pixmap, win_xgwa.width, win_xgwa.height, + (unsigned long) window, + owin_xgwa.width, owin_xgwa.height, owin_xgwa.x, owin_xgwa.y); + return pixmap; +} + + +/* Store the screenshot pixmap on a property on the window. */ +void +screenshot_save (Display *dpy, Window window, Pixmap pixmap) +{ + screenshot_init (dpy); + XChangeProperty (dpy, window, XA_SCREENSAVER_SCREENSHOT, XA_PIXMAP, 32, + PropModeReplace, (unsigned char *) &pixmap, 1); +} + + +/* Returns a screenshot pixmap from a property on the window. */ +static Pixmap +screenshot_load_prop (Display *dpy, Window window) +{ + Atom type; + int format; + unsigned long nitems, bytesafter; + unsigned char *ret = 0; + int status; + Pixmap pixmap = None; + + screenshot_init (dpy); + status = XGetWindowProperty (dpy, window, XA_SCREENSAVER_SCREENSHOT, + 0, 2, False, XA_PIXMAP, + &type, &format, &nitems, &bytesafter, + &ret); + if (status == Success && + type == XA_PIXMAP && + nitems == 1 && + bytesafter == 0) + pixmap = ((Pixmap *) ret)[0]; + + if (ret) XFree (ret); + return pixmap; +} + + +/* Loads the screenshot from screenshot_save() and returns a new pixmap + that is the same size as the window. + */ +Pixmap +screenshot_load (Display *dpy, Window window, Bool verbose_p) +{ + /* The screenshot pixmap might be bigger than the window: an image + of the whole screen, and we want the section at our origin and + size. It also might be smaller than the window if the screenshot + was taken and then later the size of our window changed + (e.g. because of XRANDR). + */ + XWindowAttributes win_xgwa; + struct { int x, y, x2, y2, w, h; } root, win, from, to; + Pixmap screenshot, p2; + XGCValues gcv; + GC gc; + + screenshot = screenshot_load_prop (dpy, window); + if (!screenshot) return 0; + + XGetWindowAttributes (dpy, window, &win_xgwa); + window_root_offset (dpy, window, &win.x, &win.y); + win.w = win_xgwa.width; + win.h = win_xgwa.height; + win.x2 = win.x + win.w; + win.y2 = win.y + win.h; + + { + Window r; + int x, y; + unsigned int w, h, bw, d; + XGetGeometry (dpy, screenshot, &r, &x, &y, &w, &h, &bw, &d); + root.x = 0; + root.y = 0; + root.w = w; + root.h = h; + root.x2 = w; + root.y2 = h; + } + + /* If win is larger than root, copy root to center of win. + Else copy the portion of root that is overlapped by win. + */ + if (win.w >= root.w) + { + from.x = 0; + to.x = (win.w - root.w) / 2; + to.w = root.w; + from.w = to.w; + } + else + { + from.x = win.x; + from.x2 = win.x2; + from.w = from.x2 - from.x; + + to.x = 0; + to.x2 = win.w; + to.w = to.x2 - to.x; + + if (from.x < root.x) from.x = root.x; + if (from.x2 > root.x2) from.x2 = root.x2; + if (to.x < 0) to.x = 0; + if (to.x2 > win.w) to.x2 = win.w; + + from.w = from.x2 - from.x; + to.w = to.x2 - to.x; + } + + if (win.h >= root.h) + { + from.y = 0; + to.y = (win.h - root.h) / 2; + to.h = root.h; + from.h = to.h; + } + else + { + from.y = win.y; + from.y2 = win.y2; + from.h = from.y2 - from.y; + + to.y = 0; + to.y2 = win.h; + to.h = to.y2 - to.y; + + if (from.y < root.y) from.y = root.y; + if (from.y2 > root.y2) from.y2 = root.y2; + if (to.y < 0) to.y = 0; + if (to.y2 > win.h) to.y2 = win.h; + + from.h = from.y2 - from.y; + to.h = to.y2 - to.y; + } + + /* Create target pixmap the same size as our window. */ + p2 = XCreatePixmap (dpy, window, win_xgwa.width, win_xgwa.height, + win_xgwa.depth); + + /* Blank it, in case the copied bits do not completely cover it. */ + gcv.function = GXcopy; + gcv.foreground = BlackPixelOfScreen (win_xgwa.screen); + gc = XCreateGC (dpy, window, GCFunction | GCForeground, &gcv); + XFillRectangle (dpy, p2, gc, 0, 0, win_xgwa.width, win_xgwa.height); + XCopyArea (dpy, screenshot, p2, gc, + from.x, from.y, from.w, from.h, to.x, to.y); + XFreeGC (dpy, gc); + + if (verbose_p) + fprintf (stderr, "%s: loaded screenshot 0x%lx" + " for window 0x%lx %dx%d+%d+%d" + " from saved 0x%lx %dx%d\n", blurb(), + (unsigned long) p2, + (unsigned long) window, + win_xgwa.width, win_xgwa.height, win_xgwa.x, win_xgwa.y, + (unsigned long) screenshot, root.w, root.h); + return p2; +} diff --git a/utils/screenshot.h b/utils/screenshot.h new file mode 100644 index 0000000..f7bc893 --- /dev/null +++ b/utils/screenshot.h @@ -0,0 +1,34 @@ +/* xscreensaver, Copyright © 2022 Jamie Zawinski <jwz@jwz.org> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +#ifndef _XSCREENSAVER_SCREENSHOT_H_ +#define _XSCREENSAVER_SCREENSHOT_H_ + +/* Grab a screenshot and return it. + It will be the size and extent of the given window, + or the full screen, as requested. + Might be None if we failed. + */ +extern Pixmap screenshot_grab (Display *, Window, Bool full_screen_p, + Bool verbose_p); + +/* Store the screenshot pixmap on a property on the window. */ +extern void screenshot_save (Display *, Window, Pixmap); + +/* Loads the screenshot from screenshot_save() and returns a new pixmap + that is the same size as the winow. + */ +extern Pixmap screenshot_load (Display *, Window, Bool verbose_p); + +/* Returns the absolute position of the window on its root window. */ +void window_root_offset (Display *, Window, int *x, int *y); + +#endif /* _XSCREENSAVER_SCREENSHOT_H_ */ diff --git a/utils/thread_util.c b/utils/thread_util.c index 7d7fd10..107af75 100644 --- a/utils/thread_util.c +++ b/utils/thread_util.c @@ -266,7 +266,7 @@ static unsigned _threadpool_count_serial(struct threadpool *self) #if HAVE_PTHREAD assert(_has_pthread); if(_has_pthread >= 0) - return self->count ? 1 : 0; + return 0; #endif return self->count; } @@ -290,7 +290,7 @@ static void _serial_destroy(struct threadpool *self) static void _parallel_abort(struct threadpool *self) { assert(self->count > 1); - self->count = self->parallel_unfinished + 1 /* The '+ 1' should technically be _threadpool_count_serial(self). */; + self->count = self->parallel_unfinished; PTHREAD_VERIFY(pthread_cond_broadcast(&self->cond)); } @@ -304,8 +304,7 @@ struct _parallel_startup_type static unsigned _threadpool_count_parallel(struct threadpool *self) { assert(_has_pthread); - assert(self->count >= 1); - return self->count - 1 /* The '- 1' should technically be _threadpool_count_serial(self). */; + return self->count; } static void *_start_routine(void *startup_raw); @@ -354,7 +353,6 @@ static void *_start_routine(void *startup_raw) void *thread; PTHREAD_VERIFY(pthread_mutex_lock(&parent->mutex)); - ++parent->parallel_unfinished; # if HAVE_ALLOCA /* Ideally, the thread object goes on the thread's stack. This guarantees no false sharing with other threads, and in a NUMA @@ -392,6 +390,8 @@ static void *_start_routine(void *startup_raw) return _thread_free_and_unlock(parent, thread); /* Tail calls make everything better. */ } + ++parent->parallel_unfinished; + assert(!startup->last_errno); _add_next_thread(startup); /* Calls _parallel_abort() on failure. */ if(startup->last_errno) @@ -718,6 +718,12 @@ void *io_thread_create(struct io_thread *self, void *parent, void *(*start_routi pthread_attr_t attr; pthread_attr_t *attr_ptr = NULL; +# if (defined __APPLE__ && defined __MACH__) + /* For Apple silicon. Requires macOS 10.10 or iOS 8.0. */ + attr_ptr = &attr; + pthread_attr_set_qos_class_np(attr_ptr, QOS_CLASS_USER_INTERACTIVE, 0); +# endif + if(stacksize) { attr_ptr = &attr; diff --git a/utils/utf8wc.c b/utils/utf8wc.c index b445f30..ee96f93 100644 --- a/utils/utf8wc.c +++ b/utils/utf8wc.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2014-2016 Jamie Zawinski <jwz@jwz.org> +/* xscreensaver, Copyright © 2014-2024 Jamie Zawinski <jwz@jwz.org> * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -90,7 +90,7 @@ utf8_decode (const unsigned char *in, long length, unsigned long *unicode_ret) if (in+3 > end) PREMATURE_EOF; min = 1 << 16; uc = (((c & 0x07) << 18) | /* 00000111--+-------+------- */ - ((in[0] & 0x3F) << 12) | /* 01111111----+------- */ + ((in[0] & 0x3F) << 12) | /* 00111111----+------- */ ((in[1] & 0x3F) << 6) | /* 00111111------ */ ((in[2] & 0x3F))); /* 00111111 */ in += 3; @@ -370,7 +370,7 @@ utf8_to_latin1 (const char *string, Bool ascii_p) long in_len = strlen(string); const unsigned char *in = (const unsigned char *) string; const unsigned char *in_end = in + in_len; - unsigned char *ret = (unsigned char *) malloc (in_len + 1); + unsigned char *ret = (unsigned char *) malloc ((in_len * 4) + 1); unsigned char *out = ret; if (! ret) return 0; @@ -463,12 +463,25 @@ utf8_to_latin1 (const char *string, Bool ascii_p) if (ascii_p) /* Map Latin1 to the closest ASCII versions. */ { - const unsigned char latin1_to_ascii[96] = - " !C##Y|S_C#<=-R_##23'uP.,1o>###?" - "AAAAAAECEEEEIIIIDNOOOOOx0UUUUYpS" - "aaaaaaeceeeeiiiionooooo/ouuuuypy"; + const char * const latin1_to_ascii[96] = { + " ", "!", "C", "#", "#", "Y", "|", "SS", + "_", "(c)", "#", "<", "=", "-", "(r)", "_", + "#", "+-", "2", "3", "'", "u", "PP", ".", + ",", "1", "o", ">", "1/4", "1/2", "3/4", "?", + "A", "A", "A", "A", "A", "A", "AE", "C", + "E", "E", "E", "E", "I", "I", "I", "I", + "D", "N", "O", "O", "O", "O", "O", "x", + "0", "U", "U", "U", "U", "Y", "p", "S", + "a", "a", "a", "a", "a", "a", "ae", "c", + "e", "e", "e", "e", "i", "i", "i", "i", + "o", "n", "o", "o", "o", "o", "o", "/", + "o", "u", "u", "u", "u", "y", "p", "y" }; if (uc >= 0xA0) - uc = latin1_to_ascii[uc - 0xA0]; + { + const char *c2 = latin1_to_ascii[uc - 0xA0]; + while (*c2) { *out++ = *c2++; } + uc = 0; + } } if (uc > 0) @@ -840,14 +853,18 @@ main (int argc, char **argv) const char *utf8 = ("son \303\256le int\303\251rieure, \303\240 " "c\303\264t\303\251 de l'alc\303\264ve " "ovo\303\257de, o\303\271 les b\303\273ches " - "se consument dans l'\303\242tre"); + "se consument dans l'\303\242tre " + "\302\251\302\256\302\261\302\274\302\275\302\276" + "\303\206\303\246"); const char *latin1 = ("son \356le int\351rieure, \340 " "c\364t\351 de l'alc\364ve ovo\357de, " "o\371 les b\373ches se consument dans " - "l'\342tre"); + "l'\342tre " + "\251\256\261\274\275\276\306\346"); const char *ascii = ("son ile interieure, a cote de l'alcove " "ovoide, ou les buches se consument dans " - "l'atre"); + "l'atre " + "(c)(r)+-1/41/23/4AEae"); char *latin1b = utf8_to_latin1 (utf8, False); char *ascii2 = utf8_to_latin1 (utf8, True); if (strcmp (latin1, latin1b)) diff --git a/utils/version.h b/utils/version.h index 8e38585..101847c 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,4 +1,4 @@ static const char screensaver_id[] = - "@(#)xscreensaver 6.00 (01-Apr-2021), by Jamie Zawinski (jwz@jwz.org)"; -#define XSCREENSAVER_VERSION "6.00" -#define XSCREENSAVER_RELEASED 1617303600 + "@(#)xscreensaver 6.09 (07-Jun-2024), by Jamie Zawinski (jwz@jwz.org)"; +#define XSCREENSAVER_VERSION "6.09" +#define XSCREENSAVER_RELEASED 1717786800 diff --git a/utils/visual-gl.c b/utils/visual-gl.c index cca4ecf..da8c3ba 100644 --- a/utils/visual-gl.c +++ b/utils/visual-gl.c @@ -67,8 +67,10 @@ get_gl_visual (Screen *screen) if (! eglInitialize (egl_display, &egl_major, &egl_minor)) { - fprintf (stderr, "%s: eglInitialize failed\n", progname); - abort(); + /* The library already printed this, but without progname: + "libEGL warning: DRI2: failed to create any config" */ + /* fprintf (stderr, "%s: eglInitialize failed\n", progname); */ + return 0; /* We get here if running Xephyr in 8-bit pseudocolor */ } /* Get the best EGL config on any visual, then see what visual it used. */ @@ -230,13 +232,13 @@ get_egl_config (Display *dpy, EGLDisplay *egl_display, }; EGLint attrs[40]; EGLint nconfig; - int i, j, k, iter, pass; + int i, i_start, j, k, iter, pass; Bool glslp; - i = 0; + i_start = 0; # ifdef SB if (! get_boolean_resource (dpy, "multiSample", "MultiSample")) - i = SB_COUNT; /* skip over the multibuffer entries in 'attrs' */ + i_start = SB_COUNT; /* skip over the multibuffer entries in 'attrs' */ # endif /* SB */ glslp = get_boolean_resource (dpy, "prefersGLSL", "PrefersGLSL"); @@ -245,7 +247,7 @@ get_egl_config (Display *dpy, EGLDisplay *egl_display, *egl_config = 0; for (pass = 0; pass < iter; pass++) { - for (; i < countof(templates); i++) + for (i = i_start ; i < countof(templates); i++) { for (j = 0, k = 0; templates[i][j] != EGL_NONE; j += 2) { @@ -284,8 +286,9 @@ get_egl_config (Display *dpy, EGLDisplay *egl_display, if (! *egl_config) { - fprintf (stderr, "%s: eglChooseConfig: no configs found\n", progname); - abort(); + fprintf (stderr, "%s: no matching EGL config for X11 visual 0x%lx\n", + progname, (unsigned long) x11_visual_id); + return; } } #endif /* HAVE_EGL */ diff --git a/utils/xft.c b/utils/xft.c index 6decd22..17c0eaf 100644 --- a/utils/xft.c +++ b/utils/xft.c @@ -215,6 +215,7 @@ XftFontOpenName (Display *dpy, int screen, _Xconst char *xft_name) void XftFontClose (Display *dpy, XftFont *font) { + if (!dpy || !font) return; /* Fuck it, just leak */ if (!dpy || !font) abort(); free (font->name); XFreeFont (dpy, font->xfont); @@ -333,6 +334,7 @@ XftColorFree (Display *dpy, Colormap cmap, XftColor *color) { + if (!dpy || !visual || !color) return; /* Fuck it, just leak */ if (!dpy || !visual || !color) abort(); if (visual->class != TrueColor) XFreeColors (dpy, cmap, &color->pixel, 1, 0); @@ -361,6 +363,7 @@ XftDrawCreate (Display *dpy, void XftDrawDestroy (XftDraw *draw) { + if (!draw) return; /* Fuck it, just leak */ if (!draw) abort(); XFreeGC (draw->dpy, draw->gc); free (draw); diff --git a/utils/xft.h b/utils/xft.h index 0da0188..c5819bb 100644 --- a/utils/xft.h +++ b/utils/xft.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2014-2015 Jamie Zawinski <jwz@jwz.org> +/* xscreensaver, Copyright © 2014-2022 Jamie Zawinski <jwz@jwz.org> * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -60,13 +60,22 @@ # ifdef HAVE_XFT +# if (__GNUC__ >= 4) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wlong-long" +# endif + # include <X11/Xft/Xft.h> +# if (__GNUC__ >= 4) +# pragma GCC diagnostic pop +# endif + # else /* !HAVE_XFT -- the rest of the file */ # ifdef HAVE_COCOA # include "jwxyz.h" -#elif defined(HAVE_ANDROID) +# elif defined(HAVE_ANDROID) # include "jwxyz.h" # else # include <X11/Xlib.h> diff --git a/utils/xftwrap.c b/utils/xftwrap.c index e880407..5190550 100644 --- a/utils/xftwrap.c +++ b/utils/xftwrap.c @@ -174,7 +174,6 @@ XftDrawStringUtf8_multi (XftDraw *xftdraw, const XftColor *color, { Display *dpy = XftDrawDisplay (xftdraw); int i, start = 0; - int lines = 0; XGlyphInfo overall; if (len == 0) return; @@ -198,7 +197,6 @@ XftDrawStringUtf8_multi (XftDraw *xftdraw, const XftColor *color, str + start, i - start); y += font->ascent + font->descent; - lines++; start = i+1; } } |