From 0cf5d56bc86b690567f7630ddd09515c6d23d3d9 Mon Sep 17 00:00:00 2001 From: David Read Date: Thu, 20 Feb 2025 15:04:20 -0500 Subject: [PATCH 1/9] Updates from Chase Covello (Aug, 2019) --- Makefile | 21 +++- README.org | 38 ++++++- httpd.c | 314 ++++++++++++++++++++++++++++++++++++++++++----------- 3 files changed, 307 insertions(+), 66 deletions(-) diff --git a/Makefile b/Makefile index 01acb0f..c8f0d03 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,20 @@ -all: - cc httpd.c -o httpd +DESTDIR= /usr/libexec +CFLAGS= -O +PROGRAM= httpd +SRCS= httpd.c +OBJS= httpd.o +LIBS= +all: ${PROGRAM} + +${PROGRAM}: ${OBJS} + ${CC} ${CFLAGS} -o $@ ${OBJS} ${LIBS} + +install: ${PROGRAM} + install -s -m 755 ${PROGRAM} ${DESTDIR} + +tags: + ctags -tdw *.c + +clean: + rm -f a.out core *.o ${PROGRAM} diff --git a/README.org b/README.org index 3c4b9bc..cca1a25 100644 --- a/README.org +++ b/README.org @@ -1,7 +1,43 @@ * 2.11BSD httpd -This web server rapidly grew into something very different and reasonably powerful. Strongly recommended that you use the later versions, which can be found on the PiDP-11 google groups. At the time of writing, the latest version is https://groups.google.com/forum/#!msg/pidp-11/nE5W6wAEIxA/7mGpfjAYAwAJ +A web server for 2.11 BSD running on the PiDP-11/70 + +The original thread discussing the server can be found at https://groups.google.com/g/pidp-11/c/nE5W6wAEIxA/m/7mGpfjAYAwAJ + +=== Key Update Notes from Chase Covello (Aug, 2019) + +I've recently made these changes to httpd.c, which I'm running on my PiDP-11 at http://chasecovello.ddns.net/: + +1) Logging with source IP, date, HTTP request, response code, and file size or error message. Make sure /usr/adm/httpd.log exists and has correct permissions or all requests will return an HTTP 500. + +2) Rudimentary CGI support. It will execute non-setuid/setuid binaries only if they are in a path that includes /cgi-bin/ somewhere. It doesn't pass an environment because I didn't need it. + +3) More robust error checking and some buffer overrun fixes. +4) Use of a buffer and fread/fwrite to serve the file instead of fgetc/fputc. It's noticeably faster now. + +I've made a few more changes since the last version; I will be including this one in the new 2.11BSD disk image for testing. I think it's time I set up a github repo, but for now the new httpd.c is attached, along with a Makefile to make rebuilding and installing easier. + +The big changes are: + + Added a 60 second timeout to kill the httpd process if the client fails to complete the HTTP request. I noticed after a few days I have several httpd processes sitting there and I got tired of manually killing them. + Changed document dir to /home/www because /home has much more free space than / on the PiDP-11 2.11BSD disk image. + Tuned the buffer size to save memory; testing shows little to no performance improvement beyond 64 bytes when serving big files. I went with 256 for no real reason other than it's not too big and not too small. Below are the test results for a 30MB file from my system: + +BUF_SIZE SPEED (kB/s) + 1 20 + 2 36 + 4 44 + 8 90 + 16 120 + 32 120 + 64 125 + 128 125 + 256 125 + +=== Original Release Notes from Aaron Jackson (Aug, 2019) + +This web server rapidly grew into something very different and reasonably powerful. Strongly recommended that you use the later versions, which can be found on the PiDP-11 google groups. At the time of writing, the latest version is https://groups.google.com/forum/#!msg/pidp-11/nE5W6wAEIxA/7mGpfjAYAwAJ A small, and fairly bad, web server which runs under 2.11BSD. diff --git a/httpd.c b/httpd.c index 0bc8dcd..0801fc3 100644 --- a/httpd.c +++ b/httpd.c @@ -1,78 +1,266 @@ /* 2.11BSD httpd */ #include +#include #include #include #include -#include -#include #include +#include +#include +#include #include +#include #include -#include +#include +#include +#include + +#define CGI_BIN +#define BUF_SIZE 256 +#define PATH_LEN 512 +#define WWW_ROOT "/home/www/" +#define LOGFILE "/usr/adm/httpd.log" + +#define HTTP_200 "HTTP/1.1 200 OK" +#define HTTP_403 "HTTP/1.1 403 Forbidden" +#define HTTP_404 "HTTP/1.1 404 Not Found" +#define HTTP_500 "HTTP/1.1 500 Internal Server Error" + +FILE *htlog; + +/* Get path information and handle errors */ +void chk_path(path, st) +char *path; +struct stat *st; +{ + /* stat the path. If there's an error, log it and terminate. */ + if (stat(path, st) != 0) { + if (errno & (ENOENT | ENOTDIR | EINVAL | ENAMETOOLONG)) { + fprintf(htlog, "404 %s\n", strerror(errno)); + printf("%s\r\n", HTTP_403); + } else if (errno & EACCES) { + fprintf(htlog, "403 %s\n", strerror(errno)); + printf("%s\r\n", HTTP_403); + } else { + fprintf(htlog, "500 %s\n", strerror(errno)); + printf("%s\r\n", HTTP_500); + } + + fclose(htlog); + exit(1); + } +} int main(argc, argv) int argc; char *argv[]; { - char line[1024]; - int fd; - struct stat st; - char path[200]; - char *ext; - int c; - - char req_verb[5]; - - strncpy(path, "/var/www/", 200); - while (fgets(line, sizeof(line), stdin) != NULL) { - /* Detect the double line break to end req header */ - if (strlen(line) < 5) break; - - /* Get the path from the GET or POST request */ - if (strstr(line, "GET ") == line || - strstr(line, "POST ") == line) - sscanf(line, "%s %s", req_verb, &path[strlen(path)]); - } - - /* Check for parent directories in path */ - if (strstr(path, "..") != NULL) - exit(1); - - /* Check that we are not going to dump an inode */ - if (path[strlen(path)-1] == '/') - strcat(path, "/index.html"); - - /* Request information about the file, such as the size... */ - stat(path, &st); - - /* Open file, 404 if not found. */ - fd = fopen(path, "r"); - if (fd == NULL) { - printf("HTTP/1.1 404 Not Found\r\n"); - printf("Content-Type: text/plain\r\n\r\n"); - printf("File not found.\r\n"); - exit(1); - } - - printf("HTTP/1.1 200 OK\r\n"); - - /* Extract file type and output content-type header */ - ext = rindex(path, '.'); - if (!ext) ext = rindex(path, NULL); - if (!strcmp(ext, ".html")) - printf("Content-Type: text/html\r\n"); - else if (!strcmp(ext, ".jpg")) - printf("Content-Type: image/jpeg\r\n"); - else - printf("Content-Type: text/plain\r\n"); - printf("Content-Length: %ld\r\n", st.st_size); - - printf("\r\n"); - - while (feof(fd) == 0 && (c = fgetc(fd)) != -1) - fputc(c, stdout); - - fclose(fd); - return 0; + char path[PATH_LEN]; + struct stat st; + struct itimerval timeout; + + /* Open log file, quit with HTTP 500 if there's an error */ + htlog = fopen(LOGFILE, "a"); + if (!htlog) { + printf("%s\r\n", HTTP_500); + exit(1); + } + + /* Log requesting host address */ + { + struct sockaddr_in sin; + int sval; + struct hostent *hp; + char *host; + + sval = sizeof(sin); + if (getpeername(0, (struct sockaddr *)&sin, &sval) == 0) { + /* This is a connected socket, so get the address */ + if (hp = gethostbyaddr((char *)&sin.sin_addr.s_addr, + sizeof(sin.sin_addr.s_addr), AF_INET)) + host = hp->h_name; + else + host = inet_ntoa(sin.sin_addr); + } else { + /* Not a socket or address otherwise unavailable */ + host = strerror(errno); + } + + fprintf(htlog, "%s ", host); + } + + /* Log request time */ + { + long secs; + char *logtime; + + time(&secs); + logtime = ctime(&secs); + /* Strip trailing newline from ctime string */ + logtime[strcspn(logtime, "\r\n")] = '\0'; + fprintf(htlog, "[%s] ", logtime); + } + + /* Path starts with WWW_ROOT */ + strncpy(path, WWW_ROOT, sizeof(path)); + + /* Set a timeout to terminate the process if the client is holding the + * socket open and not completing the http request */ + timerclear(&timeout.it_interval); + timerclear(&timeout.it_value); + timeout.it_value.tv_sec = 60; + /* Default action for SIGALRM is to terminate the process, so no need + * to set up a signal handler */ + setitimer(ITIMER_REAL, &timeout, 0); + + /* Fill in path with GET/POST request */ + { + char line[PATH_LEN]; + char *lineptr; + + while (fgets(line, sizeof(line), stdin)) { + + /* Remove trailing newline left by fgets() */ + line[strcspn(line, "\r\n")] = '\0'; + + /* Detect the double line break to end req header */ + if (strlen(line) == 0) + break; + + /* Get the path from the GET or POST request */ + if (strstr(line, "GET ") == line || + strstr(line, "POST ") == line) { + + fprintf(htlog, "\"%s\" ", line); + + /* Append rest of request to path */ + /* Skip request method */ + strtok(line, " "); + /* Next token is path */ + lineptr = strtok(NULL, " "); + if (lineptr) + strncat(path, lineptr, sizeof(path)-strlen(path)-1); + } + } + } + + /* Cancel the timeout onw that we have the http request */ + timerclear(&timeout.it_interval); + timerclear(&timeout.it_value); + setitimer(ITIMER_REAL, &timeout, 0); + + /* Check for parent directories in path */ + if (strstr(path, "/..")) { + printf("%s\r\n", HTTP_403); + fprintf(htlog, "403 Request contains \"..\"\n"); + fclose(htlog); + exit(1); + } + + /* stat the path and handle errors */ + chk_path(path, &st); + + /* If a directory is requested, default page is index.html */ + if (st.st_mode & S_IFDIR) { + strncat(path, "index.html", sizeof(path)-strlen(path)-1); + /* stat and handle errors again */ + chk_path(path, &st); + } + + /* Only serve regular files */ + if (!(st.st_mode & S_IFREG)) { + printf("%s\r\n", HTTP_403); + fprintf(htlog, "403 Not a regular file\n"); + fclose(htlog); + exit(1); + } + +#ifdef CGI_BIN + /* Check if a CGI program has been requested */ + if (strstr(path, "/cgi-bin/")) { + + int pid; + union wait status; + + /* CGI program must be executable and not setuid/setgid */ + if (!(st.st_mode & S_IEXEC) || + (st.st_mode & (S_ISUID | S_ISGID))) { + printf("%s\r\n", HTTP_403); + fprintf(htlog, + "403 File not executable and/or is setuid/setgid\n"); + fclose(htlog); + exit(1); + } + + /* Execute CGI program */ + if (!(pid = vfork())) { + /* Child process */ + execve(path, NULL, NULL); + fprintf(htlog, "500 %s\n", strerror(errno)); + printf("%s\r\n", HTTP_500); + _exit(1); + + } else { + /* Parent process, wait for child to exit */ + wait(&status); + + if (WIFEXITED(status)) + fprintf(htlog, "Exited with status %d\n", + status.w_retcode); + else if (WIFSIGNALED(status)) + fprintf(htlog, "Terminated with signal %d\n", + status.w_termsig); + } + + } else +#endif /* CGI_BIN */ + + /* Serve the file */ + { + FILE *fd; + char *ext; + + char buf[BUF_SIZE]; + int pos; + + /* Open file */ + fd = fopen(path, "r"); + if (!fd) { + /* Earlier stat should have caught any errors, so we shouldn't + * get here unless the file changed after the call */ + fprintf(htlog, "500 %s\n", strerror(errno)); + printf("%s\r\n", HTTP_500); + fclose(htlog); + exit(1); + } + + printf("%s\r\n", HTTP_200); + fprintf(htlog, "200 %ld\n", st.st_size); + + /* Extract file type and output content-type header */ + ext = rindex(path, '.'); + if (!ext) + ext = ""; + + if (!strcmp(ext, ".html")) + printf("Content-Type: text/html\r\n"); + else if (!strcmp(ext, ".jpg")) + printf("Content-Type: image/jpeg\r\n"); + else if (!strcmp(ext, ".ico")) + printf("Content-Type: image/x-icon\r\n"); + else + printf("Content-Type: text/plain\r\n"); + + printf("Content-Length: %ld\r\n\r\n", st.st_size); + + while (!feof(fd) && + (pos = fread(buf, sizeof(*buf), sizeof(buf), fd)) > 0) + fwrite(buf, sizeof(*buf), pos, stdout); + + fclose(fd); + } + + fclose(htlog); + return 0; } From 96f286803b26d08d88910c3fee014636f29c685f Mon Sep 17 00:00:00 2001 From: David Read Date: Thu, 20 Feb 2025 15:10:04 -0500 Subject: [PATCH 2/9] Expanded CGI-BIN support to forward request parameters and content to the CGI program --- README.org | 14 +++ httpd.c | 300 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 300 insertions(+), 14 deletions(-) diff --git a/README.org b/README.org index cca1a25..6fdeb60 100644 --- a/README.org +++ b/README.org @@ -4,6 +4,20 @@ A web server for 2.11 BSD running on the PiDP-11/70 The original thread discussing the server can be found at https://groups.google.com/g/pidp-11/c/nE5W6wAEIxA/m/7mGpfjAYAwAJ +The current version: + - Supports GET and POST requests + - Assumes web root is /home/www + - Provides support for cgi-bin + - Forwards HTTP headers and content to CGI program's command line + - Only supports HTTP (insecure) + - Welcomes further contributions + +=== Latest Update Notes from Dave Read (Feb, 2025) + +I've added support for forwarding request data (header and content) to the CGI program's command line. Constraints on the amount of data that will be forwarded is + +Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as a proof-of-concept for accessing the request parameters and content. That code is available in my 2.11BSD-Dr.Nim repository. + === Key Update Notes from Chase Covello (Aug, 2019) I've recently made these changes to httpd.c, which I'm running on my PiDP-11 at http://chasecovello.ddns.net/: diff --git a/httpd.c b/httpd.c index 0801fc3..d37f4c9 100644 --- a/httpd.c +++ b/httpd.c @@ -17,6 +17,8 @@ #include #define CGI_BIN +#define CGI_FORWARD_REQUEST_PAYLOAD +/* #define DETAILED_LOGGING */ #define BUF_SIZE 256 #define PATH_LEN 512 #define WWW_ROOT "/home/www/" @@ -29,6 +31,27 @@ FILE *htlog; +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + +/* These values are conservative */ +#define MAX_HEADER_BYTES_TO_FORWARD 5000 +#define MAX_HEADER_ITEM_BYTES 500 +#define MAX_HEADER_ITEM_COUNT 30 +#define MAX_CONTENT_LENGTH_TO_FORWARD 10000 + +/* Linked list structure used to pass + request data to the CGI program */ +struct linked_list { + char *data; + struct linked_list *next; +} *request_content = NULL; + +/* Functions for managing the linked list */ +int add_node(); +char **get_parameters(); + +#endif /* CGI_FORWARD_REQUEST_PAYLOAD */ + /* Get path information and handle errors */ void chk_path(path, st) char *path; @@ -37,13 +60,13 @@ struct stat *st; /* stat the path. If there's an error, log it and terminate. */ if (stat(path, st) != 0) { if (errno & (ENOENT | ENOTDIR | EINVAL | ENAMETOOLONG)) { - fprintf(htlog, "404 %s\n", strerror(errno)); + fprintf(htlog, "404 %s (%s)\n", strerror(errno), path); printf("%s\r\n", HTTP_403); } else if (errno & EACCES) { - fprintf(htlog, "403 %s\n", strerror(errno)); + fprintf(htlog, "403 %s (%s)\n", strerror(errno), path); printf("%s\r\n", HTTP_403); } else { - fprintf(htlog, "500 %s\n", strerror(errno)); + fprintf(htlog, "500 %s (%s)\n", strerror(errno), path); printf("%s\r\n", HTTP_500); } @@ -59,7 +82,15 @@ char *argv[]; char path[PATH_LEN]; struct stat st; struct itimerval timeout; - + +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + int is_content = 0; + int content_length = -1; + int content_bytes_read = 0; + int request_header_bytes_used = 0; + int request_header_item_count = 0; +#endif + /* Open log file, quit with HTTP 500 if there's an error */ htlog = fopen(LOGFILE, "a"); if (!htlog) { @@ -114,20 +145,50 @@ char *argv[]; * to set up a signal handler */ setitimer(ITIMER_REAL, &timeout, 0); - /* Fill in path with GET/POST request */ + /* Fill in path with GET/POST request + + Optionally, pass parameters as arguments to CGI program. */ { char line[PATH_LEN]; char *lineptr; - + while (fgets(line, sizeof(line), stdin)) { /* Remove trailing newline left by fgets() */ line[strcspn(line, "\r\n")] = '\0'; - /* Detect the double line break to end req header */ +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + if (request_header_item_count < MAX_HEADER_ITEM_COUNT && + request_header_bytes_used < MAX_HEADER_BYTES_TO_FORWARD) { + int node_bytes = add_node(line, 0, 0); + if (node_bytes > 0) { + request_header_bytes_used += node_bytes; + ++request_header_item_count; + } +#ifdef DETAILED_LOGGING + } else if (request_header_item_count >= MAX_HEADER_ITEM_COUNT) { + fprintf(htlog, "Reached limit for number of payload items to forward\n"); + } else { + fprintf(htlog, "Reached limit for number of bytes of payload to forward\n"); +#endif + } + + /* Detect the double line break to end req header and start content */ + if (strlen(line) == 0) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Reached content, length %d\n", content_length); +#endif + /* If Content-Length found, signal loading of content */ + if (content_length > 0) { + is_content = 1; + } + break; + } +#else + /* Detect the double line break to end req header */ if (strlen(line) == 0) break; - +#endif /* Get the path from the GET or POST request */ if (strstr(line, "GET ") == line || strstr(line, "POST ") == line) { @@ -139,13 +200,41 @@ char *argv[]; strtok(line, " "); /* Next token is path */ lineptr = strtok(NULL, " "); - if (lineptr) + if (lineptr) { + if (*lineptr == '/') { + ++lineptr; + } strncat(path, lineptr, sizeof(path)-strlen(path)-1); + } + } + +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + /* Found the Content-Length. If within allowed range, store it */ + if (strstr(line, "Content-Length: ") == line) { + int temp_length = atoi(line + strlen("Content-Length: ")); + if (temp_length > 0 || temp_length <= MAX_CONTENT_LENGTH_TO_FORWARD) { + content_length = temp_length; +#ifdef DETAILED_LOGGING + fprintf(htlog, "Content-Length: %d\n", content_length); +#endif + } } +#endif } } - /* Cancel the timeout onw that we have the http request */ +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + /* Get the content and place it in the request content linked list */ + if (is_content) { + add_request_content_to_payload(content_length); +#ifdef DETAILED_LOGGING + } else { + fprintf(htlog, "No Content-Length in header, skip loading content\n"); +#endif + } +#endif + + /* Cancel the timeout now that we have the http request */ timerclear(&timeout.it_interval); timerclear(&timeout.it_value); setitimer(ITIMER_REAL, &timeout, 0); @@ -196,7 +285,13 @@ char *argv[]; /* Execute CGI program */ if (!(pid = vfork())) { /* Child process */ +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + /* Place program name in first argument */ + add_node(path, 1, 0); + execve(path, get_parameters(), NULL); +#else execve(path, NULL, NULL); +#endif fprintf(htlog, "500 %s\n", strerror(errno)); printf("%s\r\n", HTTP_500); _exit(1); @@ -207,11 +302,13 @@ char *argv[]; if (WIFEXITED(status)) fprintf(htlog, "Exited with status %d\n", - status.w_retcode); - else if (WIFSIGNALED(status)) + status.w_retcode); +/* (int)(WEXITSTATUS(status))); */ + else if (WIFSIGNALED(status)) fprintf(htlog, "Terminated with signal %d\n", - status.w_termsig); - } + status.w_termsig); +/* (int)(WTERMSIG(status))); */ + } } else #endif /* CGI_BIN */ @@ -247,6 +344,8 @@ char *argv[]; printf("Content-Type: text/html\r\n"); else if (!strcmp(ext, ".jpg")) printf("Content-Type: image/jpeg\r\n"); + else if (!strcmp(ext, ".png")) + printf("Content-Type: image/png\r\n"); else if (!strcmp(ext, ".ico")) printf("Content-Type: image/x-icon\r\n"); else @@ -264,3 +363,176 @@ char *argv[]; fclose(htlog); return 0; } + +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + +/* Add a node containing the param value to the linked list. + The value is copied into allocated memory before being added. + If at_front is non-zero (true), value inserted at front of the list. */ +int add_node(param, at_front, ignore_size_limit) +char *param; +int at_front; +int ignore_size_limit; +{ + char *param_storage = NULL; + struct linked_list *node = NULL; + int bytes_to_allocate; + int bytes_allocated = 0; + + if (param == NULL) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "NULL request parameter, skip storing"); +#endif + return; + } + + if (!ignore_size_limit && strlen(param) > MAX_HEADER_ITEM_BYTES) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Request parameter being ignored, too long (%d bytes): %s\n", strlen(param), param); +#endif + return 0; + } + + /* Allocate memory for parameter value */ + bytes_to_allocate = (strlen(param) + 1) * sizeof(char); + errno = 0; + param_storage = (char *) malloc(bytes_to_allocate); + if (errno) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Allocation error trying to store request parameter (%s): %s\n", strerror(errno), param); +#endif + return 0; + } else if (param_storage == NULL) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Unable to store request parameter (no memory allocated): %s\n", param); +#endif + return 0; + } + bytes_allocated += bytes_to_allocate; +#ifdef DETAILED_LOGGING + fprintf(htlog, "Storing request param: %s\n", param); +#endif + /* Allocate memory for node */ + bytes_to_allocate = sizeof(struct linked_list); + errno = 0; + node = (struct linked_list *) malloc(bytes_to_allocate); + if (errno) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Allocation error trying to create node for request parameter (%s): %s\n", strerror(errno), param); +#endif + free(param_storage); + return 0; + } else if (param_storage == NULL) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Unable to create node for request parameter (no memory allocated): %s\n", param); +#endif + free(param_storage); + return 0; + } + bytes_allocated += bytes_to_allocate; + + /* Populate the node */ + strcpy(param_storage, param); + node->data = param_storage; + node->next = NULL; + + /* Add the node to the linked list of parameters */ + if (request_content == NULL) { + request_content = node; + } else if (at_front) { + /* insert new node at the front of the list */ + node->next = request_content; + request_content = node; + } else { + /* insert new node at the end of the list */ + struct linked_list *next = request_content; + while (next->next != NULL) { + next = next->next; + } + next->next = node; + } + +#ifdef DETAILED_LOGGING + fprintf(htlog, "Param added to linked list\n"); +#endif + + return bytes_allocated; +} + +void add_request_content_to_payload(content_length) +int content_length; +{ + char *content; + int bytes_read; + + errno = 0; + content = (char *) malloc((content_length + 1) * sizeof(char)); + if (errno) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Allocation error trying to store request content: length=%d\n", content_length); +#endif + return; + } else if (content == NULL) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Unable to store request content (no memory allocated): length=%d\n", content_length); +#endif + return; + } +#ifdef DETAILED_LOGGING + fprintf(htlog, "Reading content, up to %d bytes\n", content_length); +#endif + + bytes_read = fread(content, sizeof(char), content_length, stdin); + *(content + bytes_read) = '\0'; + +#ifdef DETAILED_LOGGING + fprintf(htlog, "Read %d bytes of content\n", bytes_read); +#endif + + add_node(content, 0, 1); +} + +/* Get a vector of the parameter values to pass to the CGI program via execve(). */ +char **get_parameters() { + int num_parameters = 0; + struct linked_list *next; + char **parameters; + + if (!request_content) { + return NULL; + } + + for (next = request_content;next;next = next->next) { + ++num_parameters; + } + + /* Account for the null pointer for the end of the vector */ + ++num_parameters; + + /* Allocate the vector to hold the parameters */ + errno = 0; + parameters = (char **) malloc(num_parameters * sizeof(char *)); + if (errno) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Allocation error trying to create vector for %d request items (%s)\n", num_parameters, strerror(errno)); +#endif + return NULL; + } else if (parameters == NULL) { +#ifdef DETAILED_LOGGING + fprintf(htlog, "Unable to allocate vector for %d request items (no memory allocated)\n", num_parameters); +#endif + return NULL; + } + + num_parameters = 0; + for (next = request_content;next;next = next->next) { + *(parameters + num_parameters++) = next->data; + } + + /* Add the null pointer at the end */ + *(parameters + num_parameters) = NULL; + + return parameters; +} + +#endif /* CGI_FORWARD_REQUEST_PAYLOAD */ From ddf79a92077d31f32762115658a75ee190820523 Mon Sep 17 00:00:00 2001 From: David Read Date: Fri, 21 Feb 2025 14:16:07 -0500 Subject: [PATCH 3/9] Switched stdin to unbuffered so CGI apps could read content, added env variables CONTENT_LENGTH (POST request) and QUERY_STRING (get request) --- httpd.c | 162 +++++++++++++++++++++++++------------------------------- 1 file changed, 73 insertions(+), 89 deletions(-) diff --git a/httpd.c b/httpd.c index d37f4c9..ffc09e1 100644 --- a/httpd.c +++ b/httpd.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -37,7 +38,9 @@ FILE *htlog; #define MAX_HEADER_BYTES_TO_FORWARD 5000 #define MAX_HEADER_ITEM_BYTES 500 #define MAX_HEADER_ITEM_COUNT 30 -#define MAX_CONTENT_LENGTH_TO_FORWARD 10000 + +#define QUERY_STRING_ENV "QUERY_STRING" +#define CONTENT_LENGTH_ENV "CONTENT_LENGTH" /* Linked list structure used to pass request data to the CGI program */ @@ -146,11 +149,14 @@ char *argv[]; setitimer(ITIMER_REAL, &timeout, 0); /* Fill in path with GET/POST request - Optionally, pass parameters as arguments to CGI program. */ { char line[PATH_LEN]; char *lineptr; + + /* Disable buffering for stdin so that request content + is available for CGI programs */ + setvbuf(stdin, NULL, _IONBF, 0); while (fgets(line, sizeof(line), stdin)) { @@ -158,37 +164,43 @@ char *argv[]; line[strcspn(line, "\r\n")] = '\0'; #ifdef CGI_FORWARD_REQUEST_PAYLOAD + /* Copy the Content-Length into an environment variable named CONTENT_LENGTH + for compatability with Apache HTTPD CGI handling */ + if (strstr(line, "Content-Length: ") == line) { + char *content_length_value = NULL; + strtok(line, " "); + content_length_value = strtok(NULL, " "); + if (content_length_value) { + int chars_needed = strlen(CONTENT_LENGTH_ENV) + strlen(content_length_value) + 2; + char *temp_content_len = (char *) malloc(sizeof(char) * chars_needed); + if (temp_content_len) { + sprintf(temp_content_len, "%s=%s", CONTENT_LENGTH_ENV, content_length_value); + add_node(temp_content_len, 0, 0); + free(temp_content_len); + } + } + } + if (request_header_item_count < MAX_HEADER_ITEM_COUNT && request_header_bytes_used < MAX_HEADER_BYTES_TO_FORWARD) { - int node_bytes = add_node(line, 0, 0); + int node_bytes = add_node(line, 0, 1); if (node_bytes > 0) { request_header_bytes_used += node_bytes; ++request_header_item_count; } #ifdef DETAILED_LOGGING } else if (request_header_item_count >= MAX_HEADER_ITEM_COUNT) { - fprintf(htlog, "Reached limit for number of payload items to forward\n"); + fprintf(htlog, "Reached limit for number of parameters to forward\n"); } else { - fprintf(htlog, "Reached limit for number of bytes of payload to forward\n"); + fprintf(htlog, "Reached limit for number of bytes of parameter values to forward\n"); #endif } - - /* Detect the double line break to end req header and start content */ - if (strlen(line) == 0) { -#ifdef DETAILED_LOGGING - fprintf(htlog, "Reached content, length %d\n", content_length); #endif - /* If Content-Length found, signal loading of content */ - if (content_length > 0) { - is_content = 1; - } - break; - } -#else + /* Detect the double line break to end req header */ if (strlen(line) == 0) break; -#endif + /* Get the path from the GET or POST request */ if (strstr(line, "GET ") == line || strstr(line, "POST ") == line) { @@ -203,37 +215,36 @@ char *argv[]; if (lineptr) { if (*lineptr == '/') { ++lineptr; - } + } +#ifdef CGI_FORWARD_REQUEST_PAYLOAD + /* If there is a request string, place it in an + environment variable named QUERY_STRING, which + if compatable with Apache HTTPD CGI handling */ + { + char *query_start = strchr(lineptr, '?'); + if (query_start) { + int chars_needed; + char *temp_env_param; + chars_needed = strlen(QUERY_STRING_ENV) + strlen(query_start + 1) + 2; + temp_env_param = (char *) malloc(sizeof(char) * chars_needed); + if (temp_env_param) { + sprintf(temp_env_param, "%s=%s", QUERY_STRING_ENV, query_start + 1); + } + add_node(temp_env_param, 0, 0); + free(temp_env_param); + + /* Remove the query from the path */ + *query_start = '\0'; + } + } +#endif strncat(path, lineptr, sizeof(path)-strlen(path)-1); } } -#ifdef CGI_FORWARD_REQUEST_PAYLOAD - /* Found the Content-Length. If within allowed range, store it */ - if (strstr(line, "Content-Length: ") == line) { - int temp_length = atoi(line + strlen("Content-Length: ")); - if (temp_length > 0 || temp_length <= MAX_CONTENT_LENGTH_TO_FORWARD) { - content_length = temp_length; -#ifdef DETAILED_LOGGING - fprintf(htlog, "Content-Length: %d\n", content_length); -#endif - } - } -#endif } } -#ifdef CGI_FORWARD_REQUEST_PAYLOAD - /* Get the content and place it in the request content linked list */ - if (is_content) { - add_request_content_to_payload(content_length); -#ifdef DETAILED_LOGGING - } else { - fprintf(htlog, "No Content-Length in header, skip loading content\n"); -#endif - } -#endif - /* Cancel the timeout now that we have the http request */ timerclear(&timeout.it_interval); timerclear(&timeout.it_value); @@ -286,9 +297,13 @@ char *argv[]; if (!(pid = vfork())) { /* Child process */ #ifdef CGI_FORWARD_REQUEST_PAYLOAD + char **argv = (char **) malloc(sizeof (char *) * 2); + /* Place program name in first argument */ - add_node(path, 1, 0); - execve(path, get_parameters(), NULL); + *argv = strdup(path); + *(argv + 1) = NULL; + + execve(path, argv, get_parameters()); #else execve(path, NULL, NULL); #endif @@ -301,14 +316,10 @@ char *argv[]; wait(&status); if (WIFEXITED(status)) - fprintf(htlog, "Exited with status %d\n", - status.w_retcode); -/* (int)(WEXITSTATUS(status))); */ - else if (WIFSIGNALED(status)) - fprintf(htlog, "Terminated with signal %d\n", - status.w_termsig); -/* (int)(WTERMSIG(status))); */ - } + fprintf(htlog, "Exited with status %d\n", status.w_retcode); + else if (WIFSIGNALED(status)) + fprintf(htlog, "Terminated with signal %d\n", status.w_termsig); + } } else #endif /* CGI_BIN */ @@ -369,10 +380,10 @@ char *argv[]; /* Add a node containing the param value to the linked list. The value is copied into allocated memory before being added. If at_front is non-zero (true), value inserted at front of the list. */ -int add_node(param, at_front, ignore_size_limit) +int add_node(param, at_front, replace_colon) char *param; int at_front; -int ignore_size_limit; +int replace_colon; { char *param_storage = NULL; struct linked_list *node = NULL; @@ -386,13 +397,20 @@ int ignore_size_limit; return; } - if (!ignore_size_limit && strlen(param) > MAX_HEADER_ITEM_BYTES) { + if (strlen(param) > MAX_HEADER_ITEM_BYTES) { #ifdef DETAILED_LOGGING fprintf(htlog, "Request parameter being ignored, too long (%d bytes): %s\n", strlen(param), param); #endif return 0; } + if (replace_colon) { + char *colon_position = strchr(param, ':'); + if (colon_position) { + *colon_position = '='; + } + } + /* Allocate memory for parameter value */ bytes_to_allocate = (strlen(param) + 1) * sizeof(char); errno = 0; @@ -459,39 +477,6 @@ int ignore_size_limit; return bytes_allocated; } -void add_request_content_to_payload(content_length) -int content_length; -{ - char *content; - int bytes_read; - - errno = 0; - content = (char *) malloc((content_length + 1) * sizeof(char)); - if (errno) { -#ifdef DETAILED_LOGGING - fprintf(htlog, "Allocation error trying to store request content: length=%d\n", content_length); -#endif - return; - } else if (content == NULL) { -#ifdef DETAILED_LOGGING - fprintf(htlog, "Unable to store request content (no memory allocated): length=%d\n", content_length); -#endif - return; - } -#ifdef DETAILED_LOGGING - fprintf(htlog, "Reading content, up to %d bytes\n", content_length); -#endif - - bytes_read = fread(content, sizeof(char), content_length, stdin); - *(content + bytes_read) = '\0'; - -#ifdef DETAILED_LOGGING - fprintf(htlog, "Read %d bytes of content\n", bytes_read); -#endif - - add_node(content, 0, 1); -} - /* Get a vector of the parameter values to pass to the CGI program via execve(). */ char **get_parameters() { int num_parameters = 0; @@ -534,5 +519,4 @@ char **get_parameters() { return parameters; } - #endif /* CGI_FORWARD_REQUEST_PAYLOAD */ From 20d04dc53c84cbe3f73a3b4a5e8c4d9e55b19896 Mon Sep 17 00:00:00 2001 From: David Read Date: Fri, 21 Feb 2025 21:33:18 -0500 Subject: [PATCH 4/9] Provided details of recent changes --- README.org | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.org b/README.org index 6fdeb60..486bac3 100644 --- a/README.org +++ b/README.org @@ -5,18 +5,25 @@ A web server for 2.11 BSD running on the PiDP-11/70 The original thread discussing the server can be found at https://groups.google.com/g/pidp-11/c/nE5W6wAEIxA/m/7mGpfjAYAwAJ The current version: - - Supports GET and POST requests - - Assumes web root is /home/www - - Provides support for cgi-bin - - Forwards HTTP headers and content to CGI program's command line + - Supports static file retrieval (HTML and images) + - Supports CGI GET and POST requests + - Assumes web root is /home/www + - Assumes CGI root is /home/www/cgi-bin + - Places HTTP headers in the environment for CGI programs + - Passes QUERY_STRING and CONTENT_LENGTH enviroment variables, aligning with Apache HTTPD CGI - Only supports HTTP (insecure) - Welcomes further contributions === Latest Update Notes from Dave Read (Feb, 2025) -I've added support for forwarding request data (header and content) to the CGI program's command line. Constraints on the amount of data that will be forwarded is +I've added passing of request header data to the CGI program's environment. +Constraints on the amount of data that will be passed are set conservatively. The +stdin channel has been set to unbuffered so that CGI applications called with POST +will be able to read the content. -Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as a proof-of-concept for accessing the request parameters and content. That code is available in my 2.11BSD-Dr.Nim repository. +Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as a +proof-of-concept for accessing the request parameters and content. That code is +available in my 2.11BSD-Dr.Nim repository. === Key Update Notes from Chase Covello (Aug, 2019) From 00162c00ea2a37590317f62a4aaeb74f7a0f968f Mon Sep 17 00:00:00 2001 From: David Read Date: Fri, 21 Feb 2025 21:34:45 -0500 Subject: [PATCH 5/9] Provided details of recent changes --- README.org | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.org b/README.org index 486bac3..7a4ff31 100644 --- a/README.org +++ b/README.org @@ -14,7 +14,7 @@ The current version: - Only supports HTTP (insecure) - Welcomes further contributions -=== Latest Update Notes from Dave Read (Feb, 2025) +# Latest Update Notes from Dave Read (Feb, 2025) I've added passing of request header data to the CGI program's environment. Constraints on the amount of data that will be passed are set conservatively. The @@ -25,7 +25,7 @@ Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as proof-of-concept for accessing the request parameters and content. That code is available in my 2.11BSD-Dr.Nim repository. -=== Key Update Notes from Chase Covello (Aug, 2019) +# Key Update Notes from Chase Covello (Aug, 2019) I've recently made these changes to httpd.c, which I'm running on my PiDP-11 at http://chasecovello.ddns.net/: @@ -56,7 +56,7 @@ BUF_SIZE SPEED (kB/s) 128 125 256 125 -=== Original Release Notes from Aaron Jackson (Aug, 2019) +# Original Release Notes from Aaron Jackson (Aug, 2019) This web server rapidly grew into something very different and reasonably powerful. Strongly recommended that you use the later versions, which can be found on the PiDP-11 google groups. At the time of writing, the latest version is https://groups.google.com/forum/#!msg/pidp-11/nE5W6wAEIxA/7mGpfjAYAwAJ From 45122f575059a2c34e84e09c5ef4ecb606ec52e4 Mon Sep 17 00:00:00 2001 From: David Read Date: Fri, 21 Feb 2025 21:37:23 -0500 Subject: [PATCH 6/9] Provided details of recent changes --- README.org | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.org b/README.org index 7a4ff31..210ae86 100644 --- a/README.org +++ b/README.org @@ -14,7 +14,7 @@ The current version: - Only supports HTTP (insecure) - Welcomes further contributions -# Latest Update Notes from Dave Read (Feb, 2025) +** Latest Update Notes from Dave Read (Feb, 2025) I've added passing of request header data to the CGI program's environment. Constraints on the amount of data that will be passed are set conservatively. The @@ -25,16 +25,13 @@ Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as proof-of-concept for accessing the request parameters and content. That code is available in my 2.11BSD-Dr.Nim repository. -# Key Update Notes from Chase Covello (Aug, 2019) +** Key Update Notes from Chase Covello (Aug, 2019) I've recently made these changes to httpd.c, which I'm running on my PiDP-11 at http://chasecovello.ddns.net/: 1) Logging with source IP, date, HTTP request, response code, and file size or error message. Make sure /usr/adm/httpd.log exists and has correct permissions or all requests will return an HTTP 500. - 2) Rudimentary CGI support. It will execute non-setuid/setuid binaries only if they are in a path that includes /cgi-bin/ somewhere. It doesn't pass an environment because I didn't need it. - 3) More robust error checking and some buffer overrun fixes. - 4) Use of a buffer and fread/fwrite to serve the file instead of fgetc/fputc. It's noticeably faster now. I've made a few more changes since the last version; I will be including this one in the new 2.11BSD disk image for testing. I think it's time I set up a github repo, but for now the new httpd.c is attached, along with a Makefile to make rebuilding and installing easier. @@ -56,7 +53,7 @@ BUF_SIZE SPEED (kB/s) 128 125 256 125 -# Original Release Notes from Aaron Jackson (Aug, 2019) +** Original Release Notes from Aaron Jackson (Aug, 2019) This web server rapidly grew into something very different and reasonably powerful. Strongly recommended that you use the later versions, which can be found on the PiDP-11 google groups. At the time of writing, the latest version is https://groups.google.com/forum/#!msg/pidp-11/nE5W6wAEIxA/7mGpfjAYAwAJ From a4adc29d9d1f824b81d92c54ae0ba421ab5f9ee5 Mon Sep 17 00:00:00 2001 From: David Read Date: Wed, 26 Feb 2025 14:00:33 -0500 Subject: [PATCH 7/9] Added image of PiDP-11 --- pidp11-cropped-small.png | Bin 0 -> 149787 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pidp11-cropped-small.png diff --git a/pidp11-cropped-small.png b/pidp11-cropped-small.png new file mode 100644 index 0000000000000000000000000000000000000000..f6987c568aa45b7d8d7ca1ff1bd55d8b719ac05c GIT binary patch literal 149787 zcmeFYWl)@5);0lP)5FCO-f?Lo4Ay|T*&hyO7 zJ5%SYI`vka@81AT_q}E9y{;u&*6L_YbwvzRQdAfi7z`z#oE8iWoEQuYtS~Ynv?Pt? zz6JXB$yZ0;T?_05aCUXFvbDDaxcfL;0xZ34tzclhR~Mr#pO6I5>l(Z|WY_1N zy~Ef(%{Xm-_qA?(!8R*beOmzZgCW($ZB@!4$(fZKv9&_2eSHRaId4e{Fds80s?M;+ zg)$dlD=Vw1BrE$*exO|B`6r75WkAFch40y8G|5w<>^fxmziHvLrX%3uM-f!;y9dt0 zU);FX&(9OLAYweR8DOwaw+gf%O3z}+y`R-t#C6@PD3ZHnKim=DdT{Bx3o@EG{;2okOW3p=SHIsYogi{DFLB{Y@QZsQOqA)yDHsUg=zNwdLl45Yc zPz!nz-fIDPCsYA9`QBUg#^S(fLqlwlS;aJigXrQS5S>Z_9JooJspC^LuI=tcFIo1AE?H8+d?%Htb3{^Q8 z7%@q2XR!G@OLu^orM0c2IL$?OKMlavLYzjAUyV!6S=Q3V7U=70sqL$-WA6LTT-bs} zQUX=XTLenL!O|TJ@OH3wbQAFwr}>Mn2=w!xVon;sUrpTKiPPw-X#!-OTrB~79DE#H z?DF2Wo;)-Xr~oln3o8*VIfZ|afIf-S*tokpi*Ry!d3kYo@p3r1T61y>3k!2{@o@6+ zutQt0yZJb}gT2`u-Dv-i_?w2DrJK2{t+TtWlOx~{O|Y4hhr2ip4YVHc&-pnxtEv5q zyrbJcP=MmW=?!+~XF{IVW?EKhsl^6Q}tzzKDgBxvhoB z-ygZTEqK9P=IlazX2R@z=2lkh!h+la?EGBjTwp6RFt4Q*_}@q=Il8%n9nCHOkb)BD zu!YjG=}YKX^&bCF*MFAV{vT99kdK#704gbVets(fc0LO}FuO1x zzYx0>kD0lUAg?(eSV-_csk=E@xqE?KEv2oYI6|?4s^?!=0hs<06!U+!_Oh}3BLyg6 z>|8wT{{xudKLF$W2g96ye8xXH7UTSXVIuZdgMV`}(0+fHL7f-W7jpi~8U6#aKW^v$ z;?F;1@qcjyDCz$W^1s6Ozi|B*uKyJR|EtFT)vo`-^}j;kf7STE+V%e%T&VwZoU(L; z?t;9ahb4!ZY-;F13(-tPQ4Z$i&u>w0c`CF7#TjVe1_Q%E`{xDgT_))XEktrxQjv*qz@3l>$AN67P3e&d{^>0}_eU5ycugaz zK>)QDKDEJoGlgLRyQJirByn3Am1`J5K#Vs}WjR+R@>~XevQ8909*%}kA}9zMQ|c`Y zx)3k%RG*W$IB)M(8P9@bRgw^jU{b@w0LsvNDa-h-?9^%T($kflK%aDG7}r#!0HLq+Zk5QLiw5VWY^>k-YN#Fd%Ka_ynv%*c30c ziBSCE_Ukv#@KqTvn~3EPAhTJaXzf7hJ;X)aqO0!N%!)f`jXlrJ`Sa5Q14+$?fxYF< zIVZa>;jc|4KiiKgJSc6!*g2KpB{gw#l=eaAd{^-XZ^@5rFyC(LcUNHhspQrf-qH)2 zrI_bx5^o`^p!d9_UaR5o^)(+N5|Y0t!}9h{p1GYJD$KT!dR6#zQ_aWAgF{F#*$qv0 zK2Gb8?5$H#*JksQdQR95L}Y5dAvn(7!*~JrDFg;@jUcUzpYn{9A=u%Nbnii65nCM9Fwr}{PfrA*H#|r48kUl<94En;eE`u##XAuyuU)i&}r^F z@K(wBm9i>Lk^@Th#MfHlQdX*vCXRFtUlO&0jW#4!eMM74v0K1u1@9YJm1uj^liId% zb4Vl;q(#DG&0wk*Uwz;c;^ToXDOu%TBA{DKObk9%SocQt7XbD%r;G&d^UD+#&lR%g zL^Wo?i-?c&mSPcn>O&rXY2Wkz#zvjl_Rw)p&TeT!sFjoswOMmaPy(UvU_Z?W%vA0}t=qEd|_ z^WCPiF38@EZ%0!eUZOeA`>pwjsrkLk_l`o?b)={YmG)S^_d%7rk;2nxoxj`sN5d48 zKclhZhk?|%sc=cB`6tplmzOEG*ZnN}o2JGw!!*9{-@j?gN)=*1<5;gHRaPR;Jwh=L zh%uvLyni0Joifp2)qVj|^W0LR0bC9~;p>{-z(rnQueo)1uFzJF`rxzG zYOI4(TgRuhW1FML1jzg@&&MF)eB(EH`yxvB#w0Qm&MJo6gAAW_JFJz~`SGH8IzyGB zUf)v)-(gF%av1=^KICW&uJWBdei0dEB@aHrZ)Zg(0q${+O;oCOHzvpkl^QEZzXDXV zRuP0M7QPY<4=O_-hwQ`1EsW4OyfB3-_B(z#&^BJ+VZ07E#CJ{efNf<%gNM2MtX*jN zaf3QHB1-jG=s1minwL~)M^^r%XT;z2vOk`-;(&_ zq55~k;I@wZP0;lw)`_vH_mjLD(d&uRXogq(>)W6`ZHogd_vP(m1 zecC9=LN{a_@)x<@L~0Hyk34J-Y4Zghc_4Op#%IC^p=P&6Q`tcw7_`mU>!@77aQPj*60Fg3*!BFArQChD5Pb zZG4E$JETkjQdV9qE9WS9B8BdGcR~Y2z)y5qwLRCc&H~^>h47spOhtJ&c(5bpj^q`# z*rP}YZFi^4>Je5crNs8o5S93@MBJ=1Y3i!&NxyX~ag?egcG}koT<_P5`o2uj{YYmP zkSzOX&8<~oIy=UUaqI;0>G>Fe9v&l3(#mF0nL)K!BmY_8_*a$R{;%IiufBvj5I8b1gNDTt1&@`1iQsmM%__BehcgfvQK< z%g>+B%Q)Fi6lI>L8+LputEcNW`z6}o;j<*8A>g`jNNQ$>zpLM(>HURAtZKafNY?T9 zNiTTls3ttFOtS$U&L%%oGIOz3G6lcvH-y;xXXgygIkxDOhYzRVCr-~OjTWoS=^5bU ztGDxt)G*~|l7G$C80f0G=P^LoO2IBvcheFH=b9E2WKeV^JbJIPispL}G4QF|_8NOw zsST##*4R)P|dISk} z!XBirZcnH&N-66Ux;Tv;(b7*BE@$x?TUv?Z!;KJMrRr%Zuc>e5WN0t4C^DUSxP4;e zyb7kXoIXyy{q_4`%0fQtX9^LoZ-ON;q?YVY!}S4b{XGnn zX9H~T)dqS<`vEI!$L=5#W-K<%$7oQ$qGh8aQMT4PCGR`WYNJdhIu`r(Qc1mXuMq>B zyg&2n(6$%!t$G90Y`?K^csBj;{MzH{54+HL{02DtigX*iVk1yns?F1M0lqq1PmGD_ z?tAX8Dvw6C1o3g;qpE>)PyEEIREjmgBN^C(iE@*JYV*Iv&WK%Vk5!Mj=!r)`^>ZSo|Y3WbfJ0H)q_7V@O-#S@nHTWA@j2fx$|d#*&^+Tv@XZx zu=n|F6JMZ;{g=S$InnqsGqB-W4W|XAh>!i$8N|)T+Z?vwv}4AVqGZX74T`xYwm}h! z)xhvw-pY3@wCtGNG+`gx&NLH1Stg1ZB4yK+=>p;M^FG2&sYHH3*TICOGII`LwABR~ z<)yQ(@Qj>jK9og*JfxFNZ2B2X1Rmg#FFlonGmKqn|H36HVQ67H7g#ie)|8Ny6%{Ju z<6fXj`bklcR24o-D+g6r27M5xtd0E6k3q2VjltvsjiiB_OWA9i&p1Ure%Q(Rxdg>y zIN3cdtoTd^+n zBE);|F|B$6jGl5w4F|{lMoi>@WYLqdvPYILv7IO#(v#TLIv2YRadHX|CP62SfX2>7 zA*gR)K!TcYh`m56Qv1_2Z3lN4PwVb5Pga?vvdE8@(RuRkf!EhL8h*?A@IW$vv21b_ z)&?2%HF*p~&e6qFl=lpyE|11lls83zTUD4E-Q;=d@}{jh-y}GN zwHDMi^3{)r_kr3bKV4~66VwkUWU7n|DebvmI$LI`Ef`gDBGgOR;u`%*rvAY$!i9FG z?tFp-ds8VZ{pmU2%A25;fWWSxjWW-TYs3tvuw(0{#|$+-IwoZvl+F}JZ-4kD9{Zke z&f!R^MZdj6)Q5x14?vLE9iInTN=8{2x(7JuxQ6fb>{|va+IsB6#yNZCOT{6;-5mbQ zgZ(y&)t0kuz3)!&4Rd)r=y~lTTwRhB+H%jQ1e771Z{EEL6W7CaC0KD}34QRx&26TU zKDe@2IvY=>Sl1cTC{K@Z%3#~H#m;-&7@w4xtX-%Ak{DWM%xY zK(BPcsHgwg!?P)mYIwZ!tDDa;PKiNMQHN)I_oj?&(9eqIJiNu|b>kQq$O!7Rm+hbR z$(4=~x=x|}Y`8wBL9pRQJ+fj~+W$_rBq1Ea+kcjwF3NBEl;OcxaIt>H_T#tr7+RMM zK{Cf+>XpJj9DvXGBvPk7$fsmp&fyrOJYl2!E*`phpRzwuy3r!fVxp~k^L4b@)%tq< z4frg>Ba-r__bcXszu(pYhL+hm;oX@14B1%>j?Az1SkDe7U%t2NcP>x0TY@Jd1`n-E zHdT%;u8TLNBWlZAONS8O+)>7OYx>;FfIS9kMNh}7+xVE1H#U0$)#r)u0AP)Z3d701 z4hzB5)YMxmD?~Rpx9qS7Rm**dO$F1u>!J%wp6H1s_sj}WMMZQi!MulVDCdbU2(9yL zL9IF_Xy<7o<<~{V0G_4LW<}=f`assyR)d#@OJXZzcAe1jrK_d{K}*e+hi-K^1sP50 zoN&NN-yaMKu_G0cNw|C$<<5mLt*orLBqS0pFI`ksRp0vhk}la1B#%iX~-akb%%TA7HZ8P%0HpKa^9{$2Drc8vNc)XVIE^5y=CyB&6zQ+*|-YtDyA& zpA{ZR96aQPJyzZ+efzyo$XZGDhWq@+H*A^{d`1@OEI*BwpOAs^9%8K1049?GwK1RL11Pcob&_&&u z94YS#rmK|2uzp25Jaa}5M+=6>W)^`_iv0uo$Tm0QlzL}G3PYC=QTlT}&;IpoV#}>n~wA%T6FX+ji`% z1_Z7e@zQgm@G<#LKW2KE9%p-CdtvdabVN_{!A&XQyh308wpUm2Zu}6wEcb*^%m!2N zuO%!uhY=D6b`qHT(A-)E$V(lzj1)>Gt<%6ZhfwYa*Uq@$ zVA$*1+Y%#=a`jK_W%k5k67%2=6_#|=k&zMSok4`S#6%>3@l$d2Qq{}H3`?+?8Fam@ zRpS1_$5nz(z4Z3P?`jxD1qDZ7j*l8?R$GrxBgrnsjS(Ofwf$R(qnW8}UkF~w>oj|` zGH|a$0nC|GU|GOT_|*}F7MoKu70xmxKOa+oOHJqe1SBeJw8HW5f34w`KA$Pf3`rhGkTyS-U$v=z@L4c{H-(Tojt6End$GiG9Za493E;c*d3RX$W%`hdYF1*Aq|MpqwUfos@XpmggF~dULVQIib z7|WEdd~|#~u)Ph4h>YYG6N@V-DA4Ir(_MG0(5igv=SP0{Ie%zzQO6$XYg>GDG)i22 z{LW&fc8A|@9;k8pK}K7C3=tmiLCjKLrN!fKcvH`(q%bpE$b3+JML&VNEIQbB_TfUU znqN7IYocojqnB%lW}Lo+Fd)^uOd|@_Q*Cb*h1X{3W@y_Zu;D#g@Gx88Au^E5Dj2(? zdpC($on0>E>Z4N_H&^U$#FqO7x0>U#^cHO;nO`MF9xiz`Tza~=A;j&e38#k@6eT|5 z3qO{;TtN}I=JB4;tzz(=&><7_?eYWeTji(^;hAof-z~yBvZCno05pu9+#>5&5ZX7M z;e26_z_It=II?bh#ouCQiJJC*HgT1!?8OVd{Pvajo_Ka)O|G-GIPt#K=%7!ptz-!s7`N-m#Q&D_kO^8WyW_FRO%{dY?J^o`p8KM%P#xETVM}nXBRy zfqL$-w~PBr92Nyud(y}#kSq|IY@@!Mlamuna9&PGIdBttONZfej~!p;H&;rjVxUyzH`h8B*#?I?zJ(x(ir0?WcOI}IGsr&rL z>$UMc6E0;~f1aOxPKHu)j|uFR{&=bSAyT-Uhr$}ylf4tP& z{Ni0!P63Q141|EnnEDkn2OuoSlKU)NS$F_%mt*nyEq_Vf^=CBl73XNBu$^uQ2^=N> z>AWtAc_l|!(is-+Bg17BTJ!gYG^(UD1c^6I9Q+dp%RiLpb}A**)-6jkaCY{2;bCLF zg8o>N{+P7P1EcCN36a!-EQ0=!9FBvAAPXxknT`z6X;z;X+vFJLnc=kz&z-nlg&E$7 zGzs$jW&NOAI!cgpzloNzW}zYztTPsOYEsIpA_>c*@mdudDsfZ z>-h0xA!@M!i;w0Cpm1?hQgy`~A62IrJ`eM_;15Y;K$@>S6L5&(fV$*d-CJ6;^2w)y z?kF?4?#l3u7YR6!vhO*ay87aUfv}L$p?s_P@-4ry-92xfup8ox_#HVibq5q6e+$N` zc>U@n&01X$8{tBD*`I(0D+jd1FC@?4*seALiu}&cZ<7P6Jv?KWQDl+bV&2YbmcHNQqUK)h49>cEDJo&8w1fp4Vx?rrv2HJJoxe@@EtThx)HTQIAZ zot!uVPKb!x90_$8Rx|5)>82us7t_w{o=wy!xaU#QVx2810$ zy<9uqnR-Ij^hYs`=;x{ej0r9&sn&IvUvCCDZd&m`oICZIH$%7I+VpyQDgBX0>-Z*i^sl{0!1-Dk1 z8<-gD{6>F)JeOdOK&As|4zDDvmep0~Olf8MiCS5&-eha3!Hz zH(PYdW9~coA;k-~*T_;R(4*SfE^(bvHz`TM_io~-f!BbJ9j%u}(KP{K{0tQ8B(hXP z>J#scvLPl|ZXn$hqZ@G{$xV1W97l15Z}uVC)&r;4C*SIoA%Bv17a9WFxd)T570D{3 zH)p1iq?3v<0dus7s_=}=1j;F=Rm=pjC#D>aNmjiSkjPI=bz$$RLR(md9wsA=Xhz<* z<$FxHuo>faAfVynr&R!{NvpDo8B{_LBbj3I)Wu>2Q!G3!VB42CpolUC4G3UX!f&uIs+TrN{AR4@m5i(8hae)a<>dS! zgwD>mNK+6%ipGaQQz*9pnjcNnAW4_VoRpMU_#7-ipXvI$wt!lB7pJmii&us$$ExY_ zF&mw#Qd1iRjjo|nd&MOT=I$V;;i&!&lk($N?NR870DT-4hQ268a9ltrAylgpo?GaTtP5Ho@X_Xa~>a#P&+6{mOheNMZ#wFf2*Jyu~H@}VBIEQW&1mJja3|w zqsv+GmCw|=Y`${av8l$VJ1R!$ondtnUL~U#-TPo}#9SV#TIw)wnbf&^DudxKCD$G_ z{L+4n{m%4T4Mx_s1m0?xY9bI-0mYOykdAlXIK7fxdksiX>1@+3fu0x??6O|iaQLne zZ!xFohaW3z`I7{{9&=epa}!pIfNSs(Ux?=C?3_0FF;5z|5$@mS9L%GY!>r%zL-t+8|- zdEK(hbk~ydnP!Xjj|moz_Z1eDZ7sP9#u}l(rA#`oKleXcVIekeA-(HYub&^k|;j zub%Svvho=K)NQgCv&-MmgrWZ^+Wi@bfSrm=#;zJUW@=J<<1@Ipy}ay4ql*-2AN741SDrYbQ_nIfTpyXWpko9!vZZQh43ChG^nb@{uSy-dbs zHDAZ~Mj|Dw<&QZ$Vjj}+^F9N@rtB{&1ey)Mf|9X{I6Ib%bOqlTaGlYU`9$nve7SV} zJV2~MrM6T?VdF~&c#xToeg+1@98WwACds4-bj7qX&5aDnQogq;=lE?>UAvz_3&yfveDhy@Z~pK^71@|<+Dpe;wVIR22~HzlvgUWk=3iC zqzylnFWJzHx~$8UYJE#{6(-POkf#biJ+birOh><81F}AI9neY~l~S+$E~?UOQp?c= z77fU^E>R>xym8wtok&w|?!V#(I7!mK4&iArNaPcJhlc|!)t~G&l7U_t+^e0*^;*bd zmYkITiWiYo)a$!#?wMSUtJhr|?IsxxN5BQGHN|~`139Y4{;+&)gZW_c4WVWzmo^OE ze7XrNeZ9EQn1T!AM71+MiLvXxUsgKy@c|RQqX*74hNbJrIu5&c2*oGTHh)HK}WUplR;>!Zf_@IcmM{&B)Tl z6m<>RXq0y`Hr$BLxzh`*6gJ}SOd&RR{PYG5EvnMAjInjmE8gmT3#sJ--+5O};vQ{H z93pluQz)FqjZ#Ni6%o7AO_jU%D6n7g z%f2~%s9>#Giol$Cw6L11R2UqICnPt{5JXw+{G>644c_IC!!G=XNf^`o+S z;xabhWxPwr_CRMEKw3LSwQhbF9SAzX}nk^7oyQOvROK=!2=rk-AM>g6<+r z6*5se31vy#rH4&1Dc6|=g;Ys>{zn3ti{7Gy5IPDsc2BcW`=5@xt|9y*ap?Pyd11{( zIl%QhM!GD5f=BDrK^KJtPExKD6#0a_zDR!1e) zg_^Tylz$Z}>t!@=8JBX4UwoX7=bLhaFma;keEVwWkP=d;l<&#prCDw8xmkgvOy0hW zV0ei=zeruNwQO2qi+R6%0c5_RP}QV>&~{I0aS)QUj18Z9O3>M?lI_raDF(l;^f_Lh z31ym^;D$W@`}yTeR@)O<9t9k;{P#}|3Kp$ZX=~&8edFw?r;_6DJjzSDWl9f$haHsp zGH(a#7T9G1%9AU}z+!arC~Y~k>@075S5HAFm+pK`{>7Rw<{8VMeJ`!owIf66O<+3A1_FNNJ{u zj?;?qZp0+g&XK)te>TaY(W13?1(qk3=$1|y%FlL%FUrZsmrd`KcGEQ_wWqE!I!IHwDVe6J7{l<_F44cX4zRR%x# zOcO0B+^&UJ$RBOqw!O1Zxht7P-yja`u_ed%7yI%fiGB$ar%OB@ArfhRP-Ps@s-A*k z7B#O;c3V0iCDlSvV~svWKgcexvMXL|J1GMir0Jh%fIoy7k3);}0vyt#`>lFA8v$#SX40!tgM&15i`JML zNKuGxHsRDZ_dZ=FYUC^OPuwGq6(T6Rr&#c5Df-orV9gGY(h+3XFiv>cjH$~-<1~An>K=Wm+g&$~r9RBXWv^-#pXM#tP#e-7zpqrQx>ax)g$45qw`fFfh||WCFQJ zqDD{($*--E+v0F#*a%~t$r)2}%U8p_M@#Fdg?QrZzmsZ)bbhj94vk0<`FsGA94~Ur zArBWMZILsNyu*Ya3jjdFqaFi$IAZA~1H2aG^r`jeDAdvrLc)t1jUcA@2x&!20sMyI z(Y*w$C91Tpou~C}5s+oU+I&*fs@=E6+&Y(szE)fQR z_C)?5dy`&!y%1nR(fQ`og=w%>8UY6mOf7c>CJ@O}S#H4P9A> zm_$NfvGigqg$?@2!o*-w@{ny0pU5Br-nCYa z!!1lN23DFE_TZZ!19sW&{5GJx2r|AsJw%>Z?T zsqf*e9|=J-?A^6cMQK9LjHp4kC#~ms4@M@3@!4UGTsl9yD$3g`XiJyw6@2 z1~h1LbbK}x{OY06;Z%U!?+)AZVl#fBTpj$@8QaaR85&WE)0&$4{I;Q=>f-wvk|HWH z+|;EAB#oGy{1Y_fNZbtKNaq$2i3z>vi+x?KyE9*=qA%7(tT$5s*6(}MY5h;p<<>B$ z+Ace+aR~?@QisiCpFj=z*DoPLPJ<9=pbVc4l^K3ybOg{!$c&HbSimYXx3zLnB6%ai zwl=uGPiMb|NDrUz>iYV+$gr}+uzC=OKvVs#cFge!KDiPU18BZ5tPGc4IJ=6+M#Ws_))udNJX!sp`U-K(|ZSsGk^!&F?Z;|K`DaWohv;oV5d$|a)w=N`^bi-g^aBX0`PIaP|LU%xrY|c z7mZ+1??mPQh*NqBUX7Wjaos_{5?T))+Q>K85s7q^Gq}dMHb0&(^S)X#1)#0Sxz43a zp~o6D*0JzY)0g$xWS(A0k6~)`gpa$B17`+J`FfDsHv&ZKj7Vf(wgLAK53_4)v74Jb z=e-vu!?C}nXbXo^=vAOlCCbanc6gqVPKftbeEuw# zki6!#8S(z&Yq)Y*2sF5CRG1~zsWUhdpUWjE82fUQ_(F{71&Hr0!iM|iO49#)YO2s` zGIVJ^+TcBoi!A+Pv-qwdUA)qe%w0tJo@czzG>|u(xfBk){pDI_tNukqd_Yp2{Tko4fUR~E0L(cL6RQO?Vh7}hXWQm)xJWd={AVI3C835)TuH`CVBL$6QQ zgd`V}JoEHdvfVpapNVjNDGzeoI`#@@h+nbegNp1o7f&mW-|#D0f$>_K;F)9Z3Wv|; zA08eWAD$mvUS46n9g4tca3G_lrR{jSU2A-|!ck+=ylQHHBc|Mi<>T&-e=1lrn)7D4 zNS_TZEJ*a+F~}{!tTD=At=-(l1{s=A1dRb#uhb00q_cw8+IEN_eNOq9^?Z@=!@~EN{{H?@S1D7gJGwIz398k_W9+w7$ut|irGPqqq%wS! zOb+N>?C@7!Ye3k?-)M)8e#59W2F+cKD0DD~>P7w)Fmlt<4s9U=n*nSld~uzXBza<< zjr#Bam;E2$8pB@F($dnp%Z31P=;{CqGc-gC4XGt4TXM`U$8qbt zdyS7OZ`2<^A?nnP(Q1g1E8s8^jz;9X=Fq;g5qhz^KaQ7`pFi;ZJDdGlh;f5IWm;Xf zH1fd5k1)jaLf7Zi=vaw=K>m~Gv}6ZeHXI{d23|eljk*BBq{_4geqS9n+Ac7pOu$6KgMyj!W0 zH#Id?`HlLNU)_f7xY2~r>+k=i^Gaax)T8I-AeWegWZ?M~l2nDL#_i3`pRd@M)bHJY zfpECvvuslz3W zc(YnDW9;-{Qmuv#6W|YSLytE6PWB_kmS8t|E%B*SWNJUb8i@cA%kO+AOs}9>9}nli zCn2ymciP(A3vU6QA$(~;s=BG(v=7bsT|*mx;L7O~MZvfb--RNwbfZ4lwA(VAbk4s$e6qhdiQ-;Hv2J=Z>qi#;%q&ym$ib(jd8Gx3?^SIl(q6uAS1q32qS7(^lN07^lwOejBNHo!_mBUtt^BX@o%p(*uQjpaZ(2S z!t>sde1Y%2=%*T%nZsaTfvn#3{B+Bc@F3;oQ;5%T#7ughi{EqdOA=XAai3*9=Q z4N#;_%0rcW_x;v`KwUyS*usLYLlp7HNp-#1!|hpzrvu!=0`HfXNz>i3%z&8TQqu^B zwO=EG&ra7jH}ZC_@$vCsXjYa}?+sxXwtlZK|Lym$p+u&Be>w0N0#+`lk18(+AWg#6 z*47Tby1Up)#A8%{+fa`ci--i>8zqXrzkLg344QM4m6tP^Tspcfgj=mw4_Ag?8moAj ztr18%^LQmGI~x(3tB?OD=vhnk%(dz5#`(e8s=;Os8{&>J3^hDx7!;b4=^oZSCOq2T z_sD~Yh&Z>h6$#z-?v``*MQH^5O#RaCM3q1;5!cx%tU1weo6)M@V5=75GHkyzAB`HV8&+Q?S(5=H|GBneMDBvfLZoNV1 z*G?r>byYAFv@ds`MTHsyC9SNjcZ4u~eSLqhVu^>{oC@reb3WlCVUmCPxD5kM?GMKC zw?QJrV249?zTA};yIIsGCMN!vKtVN_!7i%VLgMX#DH(7Q`D^&i!|cKW)TG{{zgwvt zo-y%3A^Kc+_c(={qJ@0UFjci=_odATjnemrv{A3;wEsc-<{)%|hr#}{<0yPyEa!q| z_Br`o9|$xjj8-ff@}v1 z&~Nl3d7gRsaVX^Sh>wUw6pS6RP_AJ<%|6K`>_cJtbfRZosHPkZP1<~<3cNoQdVhe9 z8cqZKE~m5QBbc;;=(^Uq=v9xR4-Q5Z90Ty>paCditySux)9|-Om zWbpujKyW8$aCf=Gt@{3M)o#ty_H@6G4sO2Wy8MFk&Wk89h8CTa)Mt4H4lV)WjzszO zBHMD=M$Tek%W(t|eiX4+(sU-KA`%wJSPXVC(eDDK9OC^n!Rj+6lK*bzC~5j>!y!UZ zgAG^VC}9?Dn=7d+Q-^wr*vQ>6=H>-vJ&qe?6EoxN7lqJ`pW8?qkWsL)7cbY(1KJTO zHBOJ&KsmRpkTtrUSj0T`{bOSY`}_MBYp&D5vWQ53?}_h65@Df`=R^vXV+wi=1)n;n zO>JF}N`Xnl?U6I!<%O%#`OM`rO+Ss8qY}FP>fI5TlSR2|JOyh~ohhqU1L`!J`$_&E zkCa9CbWT09{BqZygVscxPNbpz*OH^s1SO_0YeTlvd!Ax~!+-H^ED=A|WlJb!hrk&u z#Fu(~w*rUfdb?6Ku$ZLs3;^~Ed3y`sZO`Qm1VA|+pJ14qBzYJ{$oLw`+cxGWujAVGi(ifb*oh)#R zE7|kQ!Q~cRATEShunvVGh#n#?fpr91>E#nrc*p@3VoEQ4xptR51AxJtZ^kfBx~%Y# zV2Qsto0U1qCCoFvy`8_4NrZ+11Lng&rN9^f?Y$h)2?ygcX$Embgr1WP@xDLRHv+Tx z%iH-Y+1p^@JKxBZ!J${%E;>@XrLb#mCw=J9?vOjM+d>o>#}(~&Hm7_}r#HjUFVf8p zPa=Va_TO5Aq=dNUL4Qh+O%{pOFB;KdnnsAQtZB7}yy$$^s^EKs3vNFeA? zg|=lA!ea<*(*sTN97{O9n)DU>3KKFS5Vb2;?&PF~bm{Dt-WWx>Q72cr@mi_7up{8W z1k)OPmaxrRWOQG9!^M*9V1#oPu#PE;6f@sY;l((~7jO)Bq)oS}fZ?%{W&aF~{%H>@~<;MEv4$m4|IxyEzye_nu(E5?8*e7dQ) z5P5qJOzeA6dPkhdU>(lveUN&Yf4{w*(Z4m7j zH4g2lMEhPMN&946JOpX0<|Lchz)Jhy_o14ttvQz&a=Fl?Ui&Xcs$J^NJ$pw@#k)1v zWM81?(y&2(59|P%h_;x>{7kD5PaQAby$B5M?A+Y24CNC{C;z}}lV6HnS^n-9eo6?E zq9;hEXODrR)ZSQ3gl}^kEFO$>TFi)l*xQz%R~BW5Lkr2-r4Ss8w8x}JVWcY+x@!Im z@{8%ijr7Zkir_=b_2M!ZcekdZ)k&^ux&0#UG5{*{=`QpCc8emP$yA+?ST~4mbs`y2 z-d=|hlfbZZw$_PVp;S0B9dO5080Pi1#`m(m`AXV*m0oXb?nPiVl?MhKt-$V}BKUGK z_;D`*mn&>9XzR}-#Fgs%7h9v}qs5`4el)h$)|fmFYf(b=y)mA5r`M>-A2Shv2JSar zRbCEdL2CFC8Y|j*QlC<$G=fV_>y8Y%k<{ns_<&2f{k64gg$* zllMtedys4pa$#2Iae?m^2n~%)FlzJdbW^(45FotZFCM1@$sBuc@dB=1uHX8fRu+2` z=n5W?3LeI_E_&$tA_MO?-v!p10!S4}MUoFxbRc|bg;YA!>UXlO3Sf%|VnZON@`Qke zJXIisy8rcI`?2f?B5Z$R!Bg=4ay|sBKImAi9cEY@vUP<-6e5;WJFfVs=cWg(;m7aD zTfET}7s6`k%wm1|5M*OhTOzGb_1jk`FjKgMtWz2)wXQ)+?Dtc)iluRIun?_JgIs48 zAqsMZ6zjuA0)?|d5wV^9$Jo|Ob0t&wHk;54Dh)z2@ZlF>G-p&znC$~$L!6Mz40w%Y zzhkAs4I4t@yLKxVZ7ZiHO}?l*lVWLwg~|<3ib8dE;FwAg!ootP&Pr_*-9@vm?1QlK zMqB7CewXV2*PmGLe|ij@rfc8J6GBYmg0Y||Y3mXacZfG1BD$lm2bR7sqm#`J(@P|C z#&JeKjyH_47J2#Oi983s8G#gGWsF`BEz3gF=SJKSzYIbq!>lPOP#qXhTNX4Iu9q>7 zh8xt-i0l8E(t-%l+QxwU1Pj7N4cCR>K?<_kd-h?c#3R42JB_%y`y1cmSY%ia-}Gb% zz}E`J{DB;9yAR9|3>L#dg4NCle|^4(uaOvab~-ua@VlWV2Ul@3QG&sh;kU<&p%@|e zXrwNl+P7UIm?S>u7#?S9(O|HlI^!RLJ{QF2O>cM!faeMcDMr&Q94_{}Gd2A$!sQ); z$DtcHq$|Xt%-G~|7Bh~OY+&_yBPhu|FoY`1cw(VeyT=l>z~_ho7$k&>(*FJpkNr3a zfdYe#weI$x1Ft`?MZn}QU~&kGkE8`pjZxwsI>k1J3v(&+l7w^hg>xF%L*o3;+(!X< zJ`DKuupOeE#x?@P{}``BI@KU7PF3DMJjJ;eQfGqJe#Sk%W}U&x=V;{6u&$Mv|9vyBhY;xiy# zoZzZ=ga#}?Z-W|W;Hh!Ya4EJ3GEj~uENU2UOGOE%wCJ3jY~i$E#p1E%Vt8y5M0@Ju z(J4*5S-;97RJL#rjX~DWQBs(4pO{q3j&^1bW_9H z>TEhCmd=R-8_BZ9x0Vb;l|&Wh{h#uW*#?}P1bHYeIL`)&X$0(EVCyv(?l<6Em|x*9TPT7fmGIpW?e04-Cb-2E+qk z{#9ni;{fRG$ls>mLy}8N&LeojbxK`Tex-OG`-fCKQ?eKjNJ&r-P7Y@i=Yu{c8FP$n zITWl02Exr8th_&po_y%TP-&v+MBgiCOm#-FB10w3p+P&@vEyb!vEIT?dEcY&507ma zX|U4_)P5B4_*u1&7a}i%MMLEt)+w#u-rugRGpGrA=2)P19M zePexD8u)7CU<>BhCR4V^8dqN{{bD8A7EVpp<;y2p`LJSi90kJBIz7+7XCg24#_Mg+ zP3;g+2~yl!8PCEAS0WoB?S1di+B=I49g5Du9o)?Xp*0F~m9WGl$A}k)N39QIho&f4 z#CXl@gP?@?uUq7s0#Stu@RD~y<37fil$3v%W=e%94XFN0Yy8u2UQ&YdWfmcy@LvR? z?+EVw^^5`z4ZE)Kl6KR@?@;uusrRczm6cw^7Ikr{Nz+w(*j%zF+#h%Aw@e7l2nb055*!`ycAh9ZFQ~e$$H8^+{Rz=9plu;kF0|GqH0NL8i#ns!E zFb?OaGr392zJGMdeqOIlZ#rM40rI_L1{MjF@WSb8d#OI_&b-$B)(3h{XVUtBxx9XF z3%N)hydWMkB%94=I52`;@5Ha#u)fDmIKWkKc%GU51cB} zJrK2uUaEiYqIT}W|7j}AOW<3Ur-S(-VWD!BwNv_2SpS*^hae#i(9&q}bDt$FQ$Y#g zXxrj8x{i9Bc>U#As@4p;qROI|D1o7pPx6=0ei;j0df1X_teT63lr}*`Qy?xK4_Bd> z{6%!;qzu_d##7w8J>z8aQ{9Jf=2ZsjJ1&CF7ilE_`A6uvEkulvv4H>5N<;}OlN!oa z>n2@iDl4g_Q4BC4G9YUBM}t}#+^>DsUN`+KSVjz#{4kHt z-|68L@SYry@ya*!!J-Vo5+J&;Mp6ULF=XcWH7lgj)3m<_Xg@~2$%k+`TClC%qA|2=gCLW*0JkRCy7;p=I z;kkO#(6zP9YX0tsjdxl`zE~6a=f&4p*!b6Vh@sU)+Y7x=dG0<4t%HuY$f^Y$`AP`POS-h1s0L1oMpD*u63KZaL z-d8^KioHe-zcbfDWCFntX#TNrrP3*x&Xh<2x}%wy*_$ykC$DU3u>yirv3CDOi4@5H z$;~)~5eI3h(F|TO4-{J@`a!0_dL@X{Jy`7Bd zx6f4w1|FJ^a3t_73`U}lvQpqRL(yFRaLb*h&h^MrIVBfb9)p+`+mo23j<6qJixPuY zVZ=bP#6}V5uj+0GuXK=XLCsPXi36)sjur_jsnlQlc`KiQH67xUD6OZfoDFv)13<~+ z{1DkMrl}%hwkU*$7JMIV7=5m#f7 zIGgbmf?0bO(rPVz|31&p{u1FV;DM5v{76QmdF}JHF8p#$f;-+|?JISq79&Li$8Uj< zjRF%KbHYC%X5ZICBQt8n(DOr!6g`975_xxJ3K1Vh3g7ToGF3~y1kHrR=aat^j0?04 zVhIJMRpJsVH$Y1F+mO1cAa)A}kT0Monx<(RTdErlh_5)5Wf>P35U>yuXezVtl?cP| z8ZCH>N5hLNqsM0u?i;XWYO=>Vm}!}u4f$sl;I*3WZ*$VU)1yVH+J4Fi->FdCE-VZ{ zDtwx&aN6|m29v^PSZv??`?J(+h5oJk)#D>4{fvGx+S7eDEaLaPN{@&1z}xrS{cS*a zG)`Mj~!t^wBIE7Ssz-SL4FvEzzpPkC0W$C=%}4IGo$k3=4ztj zxvra?mpdL?CSkytB#+-8snB~D)9(NPjgGGij@wFa4~fqEHPv<9_RB7DMtu<#fiG+i zS35=nKdDFAJ^lf;*H!fS`7I2TvxdA!!i-i*ImfN36HI5G6HPfF2piWRT7%7uIoez- zC`AY=SbN*@aRy5ryfS=eSOfTo4mMT`9Pz3(F~bZ;RzK=C&1!Inn>Xi>6!TFCbc#vQ zT&R>?W*4j8ndv=13Ti^{K$T5FQqFMk$EYe{!rFv#lymIZN^nSFn-Y5h zsfy#i$nFB_P?LDCq7`j~F~MBo4k2S#|3OnG6=~Yh2Tv`;LsKZ_+@DV^8DFYRkp=j1 zr{c}rl?W|5_&Q)5!qNqt_yjSqGGaz%87QT@q#4YE;CB-BFmMDrp?>evBo4W@vQPV0 zV(_dsL5Q0mMw=|eZo60a*H9tUmsl#WQ?A{yuq%&KL=Bb9PjJlfLb&|ntfXkz?$V5Q zx^*jy(Cw5paVro%`bVaNi7Cp@FU|l<4Wqt8^)OR89{#T)0&}U+f=QGf!IhT!toQjF zP>BG<3sXC;r@EbPk3axv(dhT+LIQGvsDJ(I?ljeC^2&d*(L)S~CtgoR1=8i5$JJ~d zPu$zGY%PMOD*CiwSRTifFhE0MHtHowP5lGtP9FN8K(aqvf0kOjxd5CbAs@Xrp|y39 zJm}?cZnzX?I`M>Bsea(}aufaETVkvw>J*q&hK^vkvi?~S+mSAwRVnQ_nS!7^JuBRx zi-f*B{u5%q_Dl~MZqh7dd0U27?2utMHA#VoaWlAB>}A9%0Q!TyGkTpjGI6uU92XMG z%E=K2ILZ&L8_+ccUvK_=Ko4md{GH90v-7|I0w3`K;b=m;FF+{E!sKNf7e|5C@2X_XhpTw)yyeypw>VOH164 zS#Y#85-?)I?Ck7RPHI3oH2SZ4d{I<11?vBf7itGLdVKvo*AoM7s9(0pUnqNT%GtK{ zHlOg?>^I`N&$^KFkOkjgTtV)4%w)bdDmXE)FBg#_lcmj^`zKv9-IAmO-?FK3;=B@B zxRGuU`oGU}2xvh@g{6_CI3+p`QGO39B7wn*Q)n;+r>|1~`WFxD9K8(HpQm;m{`ciT zj^kzEs8&@?l10~f`^hIq&8EWvbnwj_(;6mG>WLNe)o^@x+be|Qt0T9{4@SVZb>Rbx z1?w0}O#vIZixyTHDsEgE2r)!SG0UCzVhpR;Pb)T$N$;|Cl6`$hPUQAnHw7uC{C$D) z*+&fKHU;rI!DUL_Wkj=OmY}==0onv65At>;FS97UcnbkRoPr)+k~Cydxmq2JAlBKw zh_555=VMZ!nmn3JFuUK%}9C6MsN*e%xYOm&|PK$Aa%0LhmF^f?M}SU5i9)(rV@EXEVz z27DzP#_oH}1-O6EhbH0^AF3QdtB_d&Xr92I`e99IbKDH>T-LFFzld}`JXHB&RM=0Q zC>YYEHX8Wy6qtwqHW?ze&Q+7FNl-2H3zm5T_fSngQxlI~n&GIGh`_AlxUTymTFDP8 zbK2-4Jt=mWDuGNWhFs_tr_PsftT5n+LGXbI{V#8!7ZgC{;IkUS++UfePgvZb-ITW1 zPiys_0`{lZ}%dvY99^?_)Q@Mc|sn?jSv};cW?b4PLP{V3++y~;~>#L{|;ynQU8-tZj%0* z9aSLCGs%3@wIQ4HY!OXmr<%vTBDUx!D_-(NG5lhz`wdN==jOkXPlUJKvv#&CI=QlTEm& zO#?%LMnM8hE#X zN*~An(7rY{NaQ`RxEB=HxXXzmjp%kqS2t@lEdCcXC!31L_!+JZ@ry6%oIM36Uc3)< zEHbj}vbf&pVpN2E|0`0^7J+e1@WOwNjj6mjBw5P`2YMus)S^v$P+!gpTJk zU%<>1Dc_p&SbLgXAYD4sZ|RRc8E4xXlbwB?#U~Q#d)A2z!71g;Rz_X;(>fk@5N#I$ zZnt~hc6&U%8sNACNQC_ePCba{j|l$KPaP86T4MjwYkdF#fcL{+^zs)UFfoOq3kEeF5#VKJ zd;qeV`dW7}_vyDoogWuF_)dR=;hlEJFtzQR_fK>t^F$I?(bj{XmGb%l+B1(xo>)IC z8_fH5Nq+fu-$#B=B8*}Q2+%%=RvSLZ3JMD0#B}9D|9Ch1y&O<5KNF$KRJARH|IPP4 zX0iXa7GcoJI5NuE;j$+W{;G)(+}g@b0`kJ}TyutJ)$a%z4i5)3N#d_B2k+M+JBN*C zUVl>yhpdDF{ZQA;#u?M-X*Sd8DV{fpXN5Ps;59b&>P``Ia3tP<%UtG%0(_&kd^|Eb zWd|r4Zbdr*Wvcgr6HUaK$g}sIGHV|$ix#Gxk_o05CucG9;;C5#d@?|?B2CS`f-A_! zZE73u_`UNdp`h85nn&e3w;BhB-`pj7-yj&4+;NrGQOH8UK)I+S}s`*dH z^Fc-9{VRG&PiHhJ2CNyHih~8U_HBDEv0(IQ1@1_aU3~Wpml6|7OAj^ApeOkLY&q22 z71!O!tzDO;jJZKK_F`nf-5$d@LX=9+z#w{XZ9BP*(@cL?wgJ6ygu@SVVTX$Jh{k+bg^mGlHg^thHoSh!Zr$_B$(dCd1NfXvT`FQ=Xi>+jA;Z2B)tPr(>AbA0+go~Yut!-#H!Zq!O-S@T& zbS^Mfwqupq#L#@j7{#^D|Mo{IQkqdXK!YFERy|#_vhIsz2Y#n8Uw4e~4r~9N;NyK- z6e1)T&RlH>N?Si`uo*d40$zlD*+|G8slI?;+IKnx>NKd&={*{6loDV?SJOFBp?(&JUl!Aa;U4@ z>3exJ!b4f@Uu!*SY6RVn*i7aLt8KM86?|eD9+Oqb*5f+aglEYLM`Od)BLYMet|~U+nZY6A#fr9D#J@OtzyDliX0~)4d>^v1kZ(;*VW15r z4!ln6czKD3l4#P~4gRpYIz&AA7^?pt#KEe4pD2gU53bM2t-vdh3 zGV;Vr)vb-8AyY*U4lxofT6G~Al41)J@sp%H-|m>pr^Rz8SlB3jGu9=4BLZnEMAYeP z#B=hf2}0AoU*f3tcfAmlwDJEDjD|lFFTMXd-+FZpYwSJ?YGttRMzulg%HC={C>Z`} z6%dpWU7QOS5iBh!3k%i`PGhNK9BALiqZpz|IL(%JbthD{bE;`zpmTP4gfp~lEwY&R z-rfB%YD}n#L4kl+Be6Dy>lIg%^RwLGzF?Gr$$Mppx%|=f|8BxD2_b}*ajmsyj zpzejqZc;hm!y|;xr`N%f~Y6stP1_{xE%XXv7odptpNSrZ}pUrH{(O- zDn(8CELA-}5cs6@4u53W`aIeGhA8s-4_P(^rrNF=nsh5YDSOqe-u6$3iHkg=<;Z5> zM}XGt^?XYBd0~+P=3+7M`8_1N zpP9mOl0?a!FZJcsu< zcNdWG@6kPPsib7BgRsIX{6r=1)-}3!?~07JoO=AUNSyiHLTsbaV-8z-`b*BhJ@-dz z*iG-V6QHBkMJx3*g|jcMacn|$&F3$@dkcW|B+V)h?eTc#W{t6;MZg2O2hJx({y6aD-faI>RCionw>$kSU%XtIs5c%au$RUp zisu)tT7~gZa9obBmE?<6%+JGT2@PeDA^Qf{)->j7feunC&;2vO2hd)<}efeMAP z7CQ3-Df}kIzdlS1CJd`j;lr11Qz;QB875AYCN!IGly!N1LEU8D=m~xguN0qJ@U)zt z3XQ z(~g4~=XV<{l9G4Wmpa@Z8fjs#UYuNGXwka}$H|G2#+Ee_#;i6wCyRZtmyf6>*~xs@Q-te zDN@QWQUbKZ^}1$7IolRYU0tz9aw{y&Px3q$9)>_=X|jKC;-#T~SzeQ#Fgxk+3Ne(7&xiW&f-j8ZpBOARe4gD2rj36=(WvrjG zm;F$Z7(w=T|70#Z9z_2Nt(E6lyKnwUScX9Go|5M_kO3eJnPDTJxZ}GN*rN+J_^&fI zEr_Wlq%Y&9V#UcZ3pUK80jFcc0iifa8WWGzXk@i{@#2b0L{h)nw6-xi4V9-xQi7o- zhey*5nmNC_t?jI<%#FvG`+r^lS_;Z6Srak#-ep}WhdQ*MqT+ZC3hYf#u!swI-^r`v zB25Sv2r6YQDvj!$$3`UX?~^!2`hBK60}S{0f*%hCbdk4vVq2mbXlSNB5k=dW{tL%< zex7ioh=HZY3rf+}HUh66A8S`@G@^{e*g)<+xa7M_L#*0Zp|k>_&Ah9@5AawR+UHUm}w5xxm<@e3)XjyPT=@j>p4iE2qYKM(7jF77d8{QHkZs zrOuVlTNdFRJ`(}n1c=^?a5iIqe^kOi+X~LEw4qcb;b==c>`XSJl^L?#b-FXBNto~ zM`p7fQFEXZju&kQ-H8gREKTus7Oe~o(Nx-&djWTwgqOV!F>ZpWtYs@6HA-WOKNU{2 zie=?(Upb@qXoVx1il7#=9416mL3?gSToOwfi(njAN|Ujt6#0pJ7XF zP>)7Lp_QqwqFPf6uUR7E@`c1I`n%`t$P>L9_AtAkLw$YpR=BomCvO9}rfHcX636jk3kn&@et_C~{KBbL=0tB}+mT2T=7Jd(%S8)1|@TK_I z22bz;RFJcHDe3h)Qs9b;wd09Gc8D#&qw??vK%-V^`?V*yRB0SD#R#IHf6wT);eWFI zZmR7V zbhG#(i0)gItF};)DnMjYMy0hD_5gFnLXKw3YQkstYr&+yDnxsDqkS}7tqFq_`KOgH z;T}Fcl{zyuT+)EJOk7yyPBU~w+u3<=^d)X#eWV#myyk92JCvG(@8Oq7 z@7z4ML~Mx-50_TQ1*7urletmuGH&M6o=f!>6-6jvdqHbqMo9*+>A!k^2E10OYh0S^ zI6r|PDwSc|#+S^Y#-N1%hDQ167eSd@DavA558`sFUBX}?FLiKnQGsstMD0+TC(cYE ze`4X*514L~dW`2G9XaK9Nk;`o#Y7owF(VqmVCpIJyv?QN;_2efmb#e}nzMw#nldC~ zHP{5VB_-tUM1r#r92VG9R8*iepeU%UVa~}BC(hR49TvajLuIs1+?a|{ll~XofzdPL z-eq++&Mc5JZvDVdi^M`>*D8Wzp57^P!Ol6Zkx+`YFO@CuhYhwTa70UZHP&?j4y+&p z0X=6DJPnNj$R8igXH?=TElD(TCesLu*ix8)`SXr0ri7V_fkJ4604T^T)vPvoe|rUa ztvYxC4sQT{9@ta96vxzrhd`)B;;$e-{_8CaAZ^3ijWaVI+fVUjp&8pVP`!tgcj%KW z&ld|kQM^{-$F5ojTH~!{{Pm*{YAum%Qr_en7Xz1jrMWfNoZaFEo26cnMf;Y9RZhY; zc_NKFP+27en4ePk*X^EolGs3!6gy8LA+^DnFe$9?Oy-Ze=MY~8WXeUw5j-NC$iR>g z#U%rXOBo>Q6?|1NceZ?R{DQ9a84S%nvMW_cQeDGQD;R;&*v3i5kWnMeM$HNvaXSuj z<}|(Sn*-9mA~FQoHb{e2jtG zsRQMUy+zSP>tKX|$l)stOi=`4R5Of5uA5lD&voWrA-zuF4Kg%{NI5Qr&@HvJLOYD^ zh=LKX1v~wFtL4KUmEjDeNSksQrLAojj}zysHp!O)X=20Fs!;lr&48PJ&G%fTLR!yA zCa23g=|3AvL45|R2%=FAptJNZXsU)x{H-(%OUug2d8;3C&3)0p*ph_b4WaO1i0-14 z{1qWKRw4ZHYa9!8kl-#EirS~D)4WQFku+5-Ia~Orh97!1OZjdV-41FcDtLJV1MFM3 z6L~qO{KV+pQ>^49wa*)uhEfJwTqs15e-GS=&wo{cBm6f^#%3EXQQ7S}GleVrx-}vX zRFHhOb(;Ns-=GV)%;F?Yd>$CwDSYm}RSKzloFwU4iV9pC%FIf^<2u7?-$!%CrK*05 zWV;`^rkjQOSJ3sd@pX>i%yT#C7EUT%@n@z?#2CV#%U$~No=#1JEf?qHKeM-MF4mKK zXGxKnpcX$DX0xX9ek4NN9hu6k#QDS}!+oCkBQ-3Hfg(8W6aD`}6>2T?TojMqUo4it zb{>Bv|xM`tV@ue-%+5pKgnbA0PV8gQvW5y2_eLCCe8SE)VeNsXE#{XV% z<1;Yr-6&x$si(MBauvxN9{EM}GJ8j_|0l8o^S)uwKmEou6quX=ixijT$>0id3WCF3u==Da9FB8_2M% z$<((#F)e07R$y>#=H15mtZu@~VM#E{99FsN)G+)uS8xDQx8<+i@*mko82~D{$ zo}fabjTz`-;VE<7mJe{Lt4+fk*9p)0aL-yVA00FDk3B~^8@KrpDMn`+?3>T^Jf_7( z3e(Zr%gv|QHko--ggGtlhbll19M+YN@oC6g z9v3jB(eK3VsVH6<%H%`k<#9GlgAPjB%965aCGk1;q@Y#Dp%SIX5hl};Cz@%q5hthI z1rr}U){QVczAFCxY4lFB;rbVHXr2R*qlnMC&xI#{{Q{g7)zjw;1Rqc*O2yRWW(q&O*oKK^+ z)~&17grnPPG;j+LJX)^oYb0@SOOrRYl>5nK^Uus(LftkmP>d;Wd&qsim$lAu;14qR zzW&*27QSTr)H{d!wLxN9=}?yaPutwjb~uq8&r_nV5*Zh>Km|?X|HK>TCeSMvH=iM$ z#bpu1gyMI7QdAvX^q=F&F^e^;x3|%SLXKUpD;Iei8ykaHzjZ_B=DL3j#z3f9yp|^c z8vf1<=mEvX#{RfXV3|g@-nz4MeWLqx(GN}6(AE|KB!LE(S|X*b?Xdj;m5J_5Bp3+L zfpueV}NeJhIGRud*Jxaz`dRF_+!KUL2XOI0Qn7%`eb`US=z(Pfk+~{@D;n}!oqKRp38Bj`mM%M zGWh1$boP;=d0R1t@JGN!?z)Qrv87h{hVphY{f06bH!AW33OK(HAcwfPtrv=~_kaDD z%vF4~gR`(L%ka`I@bQ^CNAr=6}Bqayta9^&=QsRKU9V3x+2j0*AsU z|Hts*UeABOB%Pd|#_#ZlDOy)7N)xYMmQJBjPG-dT0ZnIx^8}d;;X=RM@LId}O^dgg z!2W=D5Ha()AWSCrD(-jAmXYmdc7C5Q(O>xnu2Fl3FC3i3iJ1oie0Rp6#?(O}WQFFOuOjpLA z!&>Yvc+`R`he-c=!futa(pjU7S+1%y+A1mP-CGXy9Ec+95V?#Igq^%lQQa))<_Y=Y zp^H3G0%Z`N{p`c+2z3fG4`q7+87}wsD?RPUf%*D$oA;jD|6PsF`SwTy7=!!=LG#q> zh2g_eACF~qb+wK!TY{PFzm39d%u$Y68nMzDrz1JDA8hGTI1DE%+(7F4Z`6kWh73bE zP@4HSLBcaA8-PleR}*YI=e;kulhbTL*^PF#NQpvslq7;)7#|XYOaciQ2*Wo2sMG9@ zSErkTEkIDgvB0|d&^|wsCk4J|k0+ZIpXg?+Spf2+s8z*NuvnHax@%!dG1MX0#hFWS zVK9MroG64lNWJaYZ7wza?9~US^NpBFx_bRi=;<4$Lv~@Ys#W-U0xcCX`#gsfuKHjE zhWN?SojP74WL(3NGDnJJG2@qo1GeWW&|zyTPySCgU#FDuvhgOi__V2JZv9L}f10p+ zmY+?w_OfGWxE3din0*&9SJ84M4tZcb5bLQ6t&%o`77Z1bf z(yO-yY0T~Utk}UFB(p63VSQsiK>Y)Sy_ppPnLoes40ifN+HT)06~Al+k10mH{w}HM zWhBk?NwR^$4udj;J8zzSc2mpFUYclq{0s=NhGh9DHq zNC<?pJFmIBtg` zg}j}(`LAT~MN>YQdA1WI@QjpnFh{z)plhA&lU=#puLw)xF&8M_eBJj}O~HlO3%D+f zl|0N;$6qk=CyBH3j4YFhAk^xd_6&bjsG2Cjfcd6SbH%--HW283kR!tVOi)tG&YPrl zON;v@dnx_!r2}%j+az0#5Rvetqnr%$WcZg8g4jFD)b}LWk zBU?vE z`LY|1Pa&CXJDdTzT&s9;For@!veZY;R9*cMk<`@GydVZ-_H5s`kAB&SOtu|lqX(!A zEluUx5x{~0m64IrV7FN2s`Du#1*UYBwT~?_XwRT98sX3L{UEzpkILxy2!HR*z0ttc z73W#kF`D4jM^@q>ztYj(G$4SiofH(MShHH}n7B(H1xqXi^aPy<}gc0vs6eCONe=r+cs?eyJ=u&>PM-7Lyd0G3Bv?nSR|Ho(y zrLGz_fT$ia2D^d;GN?Dx#2#V74wn&*N%M@jMQhyP=b`@f1j}9Y#o|wCQ=dXswGJdk z+;7u%NT;7765z*(u#iOhLIV_bw=+a%^y-B;)SlpOTMosz;RMhUwL8INk|rLHIab}k zqAtGgnISi9;{@@j_fyHKJxE@zFu0`o>qLseyay~Rx}E%8|48( zi`K^$1_TjrXaxgK8FNnY41G_nfD}18|Hk-VDjr^*hNiBVzSrD7Fd#Ss+GVt5b2yOJ zHw`cmmQW0M**W-_|9<^K%@cI5n&|YI7{k`{yNop&8WnkS*6(zIMMg&c$fP?z-RK#& zb#MwGo1ygHPI3WkT>tnuS%WM7?4PIujaw%IckJs!BdD%ct zg0PPb);CpC0Q^d~5jsDQ`r~q+xKf$}jjRKj_!xEWn1!ac1;U&lv1*<9M26Z0M+07* z6FNFhhfO)EM8dJVlNL9X5^BsCKL~!r79?yaHm{xZO%&NYzRCqWIGfL(4m%Pz1XN_;@#49cytKP7c=aoaTp+{;VeT#LgZ=VFqgW@hNfWUxYIR){?(*YImJvk;GR+&>B1DqX#1WV#*x+ zsh#AcrUc?u!Bc_EE{!1;;6y>#)AT0vhA9b^ymRo}n?25c@?@mJLBUiHZ-~HAI3<>) z;J{53(?K*p-1*seoWD+STWfvQa;>WPGz9t~$Psllr0hy|^%Lno|ilnmaL4uO=1 zv5i#-MU1^34?)vPMyT(Kq)?g1{_b;PjFC4^|9N5Yg^I=vtz#MvtZ%Q$miP0e<9WAY ztHI0Bn10T__%jT<))4mdC{02R%JXLyO8(iN#N06HIO*Y)NFgOnLFyll{y35*d|e|` zrvj5lijtR@bxwvHezAP)vJUU>+=$!jBNo#hmRl7|c|KM6E<=zPmeSqx1D<`)2HNKj zuP=##`b!68X&@1<&}?LUq_IgLz}>uPV5kE|54;)dHAoV~B53M;`c6RFK5qJN1Q7E7 zC|Mn^tm3obHMOLvdfm1z0z)?PIUlb`A?cxE;Oi}`c}1qGC!ksaZw?7d!vZE|z?*_D z{6L{wi}zu-Xa(E@wRj&fqz_k91Y&9`k>`dt9Z+zAw_itT!;P%?wgQ?mZ(bgf?g=m7 z(~z7Y$jDr1{LvC7%Q$Dt{pFkwVtv87ou@f&V(0)P;#mjoOP04xt<+rigcGH#2m210 z7)UdBC`+!mMnG-9-32`Nr;j@MMA2IF@h7V*g>_+iY8PsWz$ui9wn^t`bgAxl2%HBz zQ>O^{&dJ=lu!4H#&f@Wu8qFZ%WF%>G7G^p2Fad^p5;3)v);&=P=zI~@N6oO*<_ux@ zPQ#%8DjT{P7s9c*k`omU8>ta7;=YNk@-P!5(_+LzF|?WapZic#ri3x$@?m7e7*g*Q zGKslD3CaFJ(e_Ox;r57hCgj;9Hhgx1t>}=~&RzCRok3=^w93QEcJl3OQM0tS%orS5QT;3u9isdGnQPa z#9jKKId5_X22Mls6ypvAxu=*}4n=L)7j9W~3^8#csN>%w*ux80)(ARX57!Ir*bbVN zx<*OQTAX#T%-cVUM%;)}gtn+uuGT4!8~%%lp`Z@`+$y^a(YJM`b@xg2P-YKhnbgS( zjdExtD=xBm{a8g6V7$!S-ML-m3V>}AFvDNY#^dYWQCC^Hy1#0y0!eS<1}JDhNI)-NO+kG?0p>}fU5_X?&Fsyw31sERBCzHIXHqF zS3qtnjBQ`#^{E*wK8BLs=52v7&O27#D4$EUPoC)z9r<13x_IYGKaQLw& zHsday40d!<-d&L6@MQI@l{QQr;7**SnjApN+HIv7d2d~k_`Kr|%AW)!s>cF>Zm#TuObaxFAv{1U;=1N}g_>9>4}vsh%iZlxobBqzJ!u_G4tD1!(^Xp|Bp z=8E6OvP?x1E^1?N*U{6IMAX%i5@NEP6=V~s4dpU8-es-neus7sV^9P5aqGlP2V@=m z*jczORHKem$V@TPLi+Sx>idC%TdZiNk0e;B3O0cki)4e~RkXjkn-6q;N6m#JLY|wU z?Etrz82G>}e7!tvYU+aZ(Nk6T%W$|t5fIV2;Do3JbEk#PI-1j_p1-xd7TP0x2&7YjKZbN z`oh_Ifi5ftfw?RYSEn+mKDrR}OimL!yj4W?=P#4aUT{yk-b6u)slBE#TWKTaDG(A1!|BW(fN~n$9t}uJ3KbZPeIFV;jHN zX>8jz8{4*R+fEug4Nh!3X{^S{yZfJcznqU}&dffu*ILiI?&}U~8&0~s?6B?CGwyQw z4?BRTSQ?4q>V!>c=kdv9(E^+$(7{-cz9mQw6fmhBo`iKnhFU9bJueTgMAQ;zRJ1Ms z_d||nJ@nCZ50xo-tKo4yHg_7ncyy}k}=QH*tGm}@vpI+_Xi+tq`v%1J$Fp8Hd(sShXnDS<3_bTGA~pX2ME5-oz9@ikQQ)A)#5{6Xjxb(v zS@-={9rD=o2tn{Zw(ov%f7X82%A=5#?XO#7j>l&0{Hgrab;+&@c~fyO8iv}?CwHmy z216)7+`(g6%WYWtz7cUHVG9<;xsqiau>`$xk!Fspe|%iZ^@q~P%-YUI$6b0>mN?+8 z(gp6Jd9J$9fce)ynix0dQz zf|U|z)!v=71<0gPu!CmseK~yGvnz{UMXG~wEWwZZT#y}EzY8Ro{XYxPo6BhE1G#b2 zY9CV{4Y4@-xo_se#p+2Z`1fs75=mf42tXsWXPdl~22WBUfHE>{j@qnIyOn;LZ>4u^PLr=&mbjR2;a9 zwLc;p2^PHNKy_vB-rA^k@3hjkL?Vd>O$y5=u#bjj!HNS6mw`_#+^p+L{Sja#sBQrs z@!-Fk?SIdA6j(vP0p#@g*<%s}+B>%EinVrfn$hY^cEJoUl;sq2DjvajpxxC!k@dR5#a`Bj`F;`=RCn?u%g`op7iGAE^J3EV9GZTT8?axixT ztP1xHiZ7E)oBNl<&36axX|i77k>5z&S3ZnOLfSF=lydo77CZBK92}6$yW$V8sL)OC zb;Wnvb|_QU*#hIZA^JpW{i4|~00BM9+0;A4XUp?|0X)$yKt zagAqwwlRM{`lsl5ywq*K>UlMYrloVv1Vc|=-zb_f)(^H=7TPNK36V0>bwSMAeK6wz z6^oKPY9u(|%yUXY&zjUJw;~j1Q2!rU?KmuzrJD+I?!&e<6l^bwwDC+L7)N!;E_&2O zixIb%CBH&XdE@4GUFuW&Q)Y`;+E^`dkWlq^6-IkJq;p#3jEjZ zXx=;W8%;sM)LJP#L_wHzRxC`6NC8E#a_GXGJ{o})kj|O!6L_lZE%FJYm9C8#i}2@evPf+Ivh zGeM);Rwdjs9+LhyF2S5vY)ceda7QEw|9}rWt!X8*%+ihq`qYj6Lq2-wk8_lwTRZl( za*@fxRw2TeF>4aW!=^eCxS!kwhVCMGqyJFkW8b?b;D+~q8BHE9j4IqS2{s~8c(VYt zsu;DZuc&hA$)(f~WW~;~W|xNjb1c^ML~ijC^uT^LIie{wfQr*UEx|6qiBDa7lIaK;h^sE)31ith>3TZ4nu-xvOSKtM>fOrSFI?+dC-B}+%w)Nf>6cM@~T9poR# z?EE0&ulO$MROvB|WE|~=UqW8J+>ul06LHq-4gR2$MQ)7XR-Vtaj!P6u2uK+eY7HtW zjZW81re^*fUQWY47|pPgWbB#v?hA>Uqy8>I&XPfoA(xUJqpwhL09Q$uTt5g2*;Sz5 z+OdMnOcl@oOGHY>k=idNB$@L39fsNAFlKu8z za%b@h5{6MC3N$|%g}7E7<42{xTI8f^MTp`RH8nUaf2}sA`c0npMcgKpgr-OyYEZHU;Cf~a47`mEi9T~1Z&fc^i`n7w(xxc zGX3kaYm8A@t&9xr2#y`-$k*Po0mhiM+H^9fVo)Qh4V3d0g%}f+f&bIEIHI#m3+yh7 zBfofH?=+7%5!HN)?;E-9$Lz*j7ssTNy6ek0mp?rT1r>NYnW$CEYxNbFtB?(V{Um%r z$A!KvN9t_ZfKnd*#5TxA(bg+4HEX6m|2`S*X^bZI{2w@1RG?HzBv5Dkug^0K5q|(U zS26PNL;;uYf>IG-1fI~3TV4#nKFHp~6%)ui^~aR3Rae^p$qiENxJ^D2M=8^-ub&rL zBJQCN@F7GDlBESdrt~lXje506lCg~h0|ThWVyaq*_UCy&XDv#HXcv^wBqlw(!J;O& zwActfr9O333XcnB;@d+Dl|y7xeZ9w5TyrbpC>j5+=l7BmU|HFJCiCZUCWgbzp|uod(_pv#brf5ro4IfM0w+mM^IZfFlLu=;=>70!(NN%) zc~Uv=`Vfp0m-Y$D8KEi;Mkqa%T4!-L*#8XjvMr?ZQJ?PT-n5N z(zP>)Dc8gv%5ivyOlv$_()TJzEGFv8YyR!#W7!qM9*uOjI(;r?9 zcH4aa{(Zn{&V~QjgC9^;{+o<$x^2h!y#6(u-s)~Y-rCpD)EhmWH@}&a<`)EbceN_~ z+$1CqZ~A!&##W|<^DXqEL~Bp5Jse3Mew9Xx_`Kwjx;i{ z3osfPvstsL9^L~BQSwkW6|suUyivFqvj01658DbtlH97uP`Edyj?-Di`j6%Uvcj49 z7+w>bB8c9HNKgfupwUNYac1%AfUiP&uwIGlsf_ADj|T;{QYcv>>}0np@osFIFZYBy zEiWbl}Bap#Jp=nnr0?+^XQh zQwZia!P2m=HGo|f_C=EbM@`3mMnR=E2uId@ybG#M`=zBrK39%Hg`R)77Z6tZv_kw} zWXbb5N;0tuE3qLF0t&v*H426D7{Q;+X)ca4-~G!IXy47|j)BTFUJZ@(uN6n=-bLXC zkR3PC-H!>IYVJ>C$KGJbFhbQ3=wVCjg0FWuJBZU0T0ztAf9>`!qU`pc8utG^JV0O& zJ3K7P$ny7cGmK-~8{Bw*-~By?!yZsTvu4TubEU0R+wH9_S_4W_vf4?Inds=T?^)aR zigDcT!Ea^v7i)Q>dr2IVdcd^ji~7&45P?R?$kqb)`uA$^tgbh99dRr4A2QW(oI8l` zwh@q~?*Ta)hd%)u4a7(bdNfCWD^oTA5Vli`5${Jr+`n+N#U`4B%3r|6XK`91Q&joWNsFPb~qPsEKZ*SyhN@XAG+>(0RNX9nQ2S`_<_Nzb=D{RBq)u^n)Hb4$Y@u{lwfuveZ0ci$4K~4O(p)Kw zAi?nB69`5y18ndjoBG3VJaj5b=<$Rgp25PToa6^TOMB?U`dSy0ucQH(nigiqBtnCO z>O3D@8$l4yAZ%Ai${j(v-zx1&+^8EIO_dBX)FMZDiX^i4ayS3!#^o0(=1~#H3X0B# zOdjAn-Q5X2H(O&8(Pw+;U;astCyJ))_CfPooRZv%^9qz8ZvEtX0rUCZ7_a%mLWAUZJTgh^o*I> zh^dBZMW@&VmaL_2;Bjmv`rot+Oei^=5!^&y5urB(q0gIfdWSv1KZ&}Ux_X1RF(l!~ zwfN1Nb=_VNp*#BG4bz6t0abFc1tpBqRJ*GS!DF5~($5Wz{s*9|qw=5|i7)*58PfaD zd>(MQiSYIm@?D3Ao+A#>CJ~_?zG~K}-2iC&Ki&_^d^)>7;@ei#MB0Bv?CcRmqjCm+ z$4$L&Bjk7guG;~&5yFAX%}#(rSW;V#Z)PKSo(XfIJZ1A|m zOGikTE!9a>`WHm^hohS6#FGaYkD>R+{r$Wrh(ZaVo%RP7A?{#p1@$>jo&r9-s)Y2V`YM`lP>40q(`mE6Odn0q|TLx zZO!6wN0|Ue%2#8$rKKg};66Zw4eV6lO2|q}DSp@~lf)XcX5|FlPp-18w0JGIzPD7X zqshz465o`M0`&~hZ2#U%y1-l!Kx73fpn=s!xI_sU6N~FaC|0O6dG{!=YE9^FWcy2C z8_!s^GzOXj+T4Fa$6B49Xb$MDE*?iPJU535+-JDRTxE;^ydiMrwGP70 zdj4ivQ=n{4!3pf2fF0GeE;wKe{XqQ3fJ6glLIKZ&s4wxYXk-^A;@RbG+`<^&DBck3 z)(5?fOvc^>?97LHdPw;sxzZ_9zD>p6`**a8mMHzEP+0w9MH?yyysIP=O}-|qGy{hAkWg*wDn`WNWFU@vo+N|?kCWcB}i}HCeP$bxy7xWb#yp+9; zS@~l=K312DRKNI~@W~rnZtJNxSbqlF!$Xs^XF7*1QQ%8GaE0 zN!@>@XEC(jIO!knV*WgNq#&~-ZvDt05>(*Z&*e3wa_*>Uscj+0Yj}OxaOwJZzuKQ2 z<%9SFRe|2F#ONZp z`NWpmev57LFS;VZO8vGy_Bc^lcBD0(CG4Po1mzNm2t<4~@~u7rv@ADcK@7 zOOm)W4$)Mx0I<|{=wuu%h}SuHS*e|_UxCkz|0wt|&8g^8MFV|O$+m9+?n z?r^IFp#dO_j%ug%Ruvcb?3A_BMYyP@#=sQ40FV!mNyZodZXG4VYO#IX`uV+tW;;y) z9wBSZwP)nb2m7I8{l+C1YFZ8!ThHUN#7;LVTQ!L4X0{ml$q(?IhMA4f)^!~q=Td>K ztj20gq-SIVK+Y^tgK~M`7_UouUs1!MB@^4PEpp7lI{1NvwcA((JJ;^`lIxsWXGrf` zRIh&nCZ&9Ca3WJMKOXiz>@*-dWmDGcdD@GrAE7mQ@7IM5SV*eUu3`U}(0|96fC;n!_5Z$pi12-vaE~<34`NXY zV}!eDR6#(M1|xhdp%R#H?!Ruo5&%E-SZC7<4@@cNC$0|As4OUo?C&tds=dd1&nx)? zV;SKu0XA;PN>N^njHF^2!YE>Gd-ULRJO>Vr2{Qut4!`= zCXR?nK|0ink;$zd4GT8b05b_{xP*zPXA^?>W|rhR!k<`xK>*9FU-S`XQfL6f30_#a zJfmQ;pFgGJh9av@nohc_S%tllMlKLTwWJL&T4Uy(JSe1~peyulEpGH6G@{b!p`#b9C?yHS#;^9%wQJO7Em+0Gx*A^%u^UukH{=jQ;3${s z8$y@iR;9Z2_^-zC6t48BH?i_VVag6TV`r^eTG@^<#;CW8J3(MDzQOCp;C7K;ka z6UeOx;2uB6o;Dnwfg6>-yjgi|G|4Rg!WJUVUVGy3bxn) zorRmFp{?1s{(Wm?;|*`^qV*FGN(yGk;a|~21AkX-ZFQhmb-+7HLm?Gue)@BF`T1P7 zy5(x$H`7sbmCci}C7MTVOS|jKb=tScc$<2sRrxD)Sd->ZOh+p5(!3((3nIr>TQZig z>+>NK$}U{4xxu`z<2luBWyc5Sk8Z)$j%bjlay2BxM+Ou0txDQug#H*>*Bn7xAI!cF z_(%t13+DqN>k>H+wid_k@&po)h7X<1nlqijs@Jmk)wnTGfWkEj*c_Wf+F5kAtzS&8 zFrlv;o10z#9gYIUthVWMaIhQrhzoiqfo^VYgl5}50i%J0wkD<=fTiW9wBNZ^pAjKhtlM57$>7suHV~i(HJ#p^ZOl?28J)I}-C*)427xccE6TJH8mW zLZy>!%vPPZ&2r4sapc*6^d+OiksrAO!WtaIVQp#Y>E3)9^ajg&^+5=K+CCtf8S`pX z|9Y-ksp-^lH7C)B)i@?dIP=L1RNWfm3{cdx5LGCopwK9hg!(st(32!MK`>1DH05PD zYgiiLGMgIExFx%q&f06(9sEMsSI!#N{Ugx_=Ut`;_ThE1I~x!*B7o9*X|hifzH5Oq z7S6&5t6@DcF<$EI3?xI*p7{EA#W4CW60UsQE>_A057-G}Jv4$7y8 z&(YEGGe1sLm}d~?aR*_h&p9BdwEvze3V*++ifm-nuqir3kz*>#=a#CFiBNSmFnz3_ zohlnZQqqV?{Izw~%<8s|LEL_GWn{iVWgGm4y8(N-7;j|~((hfJmk{Tq3J1oJ=!sU}Y1H@qqL zs)|T3`qD8t*ZgE=^n6vbtvEwC3HPAs`V48h^}2g>TqVHb?|n-1)`&k z5Y6tzI$f(N@7;}!yJ`nNTN5}dT^)DfY2_?2lff`rN(dtR>du5JpaffqU>&0;sTl}~ zrTYVME(laxg>S~#)Htd6-TZOEA*L|Gh1WensX=;jGmXin;v2RrTr_SpCUB`pv>xA1 zm@}Ei-|-H6!U9cPT``xmWaQ;vS8{$r7D_7-PC&mrdtm=9e%t;EAn}F(trH_gs;wT) z6fcGTH@v2tWb=_HB*iq#LI-oM}eZYuA)9h;-twHnND zIfE-%m}pHCW9i5*qv@=aga_P!!)gmy1~HBR)LGeB%N_TP^Nvtn6xL|*6F{+i7F$jf z9p>hR7)6&BSK3uVDOB%NAHyrD_scDaBqH6rSyE2S%BLZ*G2m;^Du&e@CP#$fUX^be zZ9CR>|6ImQ#0CZW$N(zQitA071?3UlcIIN)xhPpMUd7_)#K1N+l5#OtG1h$QP5(Fn zUS9Ps2<_4E^OXSNVimH0UJax>^sp>%YR_e$lc9<{NbX{a3hXwV8ZkT*gGO z7+1txoe%AjpA5Tp0{TXX(!YzMs?|Lwe}_k~3!`}W6+cwuz^n2nD)*u0^?xU4aLN0~ zrlNVh&;7q0tDvRJ!`m8(L+5oF`)I11Lmh<1$J7Z7$AwdT-s7Q&*foD@0j&8deN{`f z3oirm3K)~5`5FyY`*0P6tn^w3b+;@3+LGlt)Ovq`LI3skX zWTkQc2Q%y`s5?GhPeMM|m^}E4_xO_^{6It(DSOj_8 zZXn^{1C{UZi`IEqtf`07b{&u1Yc$_&I(2e+w;f$vFwV}-{v~*TQzVdVrC6haV;Iky z*NS451wscvoe;1o^1Q{kgWjW}AJW6Cql$&S;xE_33cS8fm1uoKG$1{MRFHBjZZp%M zn4h{MwLlNJ#x)lBe-_}s2hi<`Ttm|Xf!}`z^Kns3>#BtJ+g29o17;F0n1?FpgFlQo zN6&W>KN-wtWfHN*!IagA%tj!jRp`DXS}+yJ1qVYcA&??4i(FnTjCZ)v6Mb8_vU)`h zdAE}5$%I9mUx1dAli zVxl$pr@gCqg|j#(E}Rgw&3F4%Z4#hj!XGsn2W{l$v+1!^Hr3?VXZy+~!{e%^vi6Tp zPK|lL0V5nV@=m<)mkm1qL}Dh9iDF67l}7U3{PXFZ>u>Rc40z~=(4s4)f>zTmGcHd{Dt|3?njUEq^m2MwpIvG~j~&6eh=@)raa>I~$>-i>f8OaE z$T?F)xzd-aX;VJvYLdSmv@BskH$-JJQXy!OXG1%UGb&)t z!o(So4XD7>9F(f@`p1s(HcJr@?!xNo!@EntV(Gi@)}o?u8h;0-`L*zBT?BM zvfoMm-0S>Je?gKw_U(4yb5@~Nd-_uf296|~M(Wb<&5-XU&JV$BRI_v;nYgg4qyj2E z?~Rdgu@|&-OY^Y^HwjaHDVdk%_8aNdfQI^^r~t`tLVy#+(90{UriOmJvDhAQ`8mTf zB}&faOYw^KN%PhnVb)`7@0cQ?#Y7X!$Jnx|uyqkc}nXD&g5uq(e96S}#7DV?G*m6or5{z zOCF!hXEfJojP#Z`M%+q#-D5<7|lpT&*&HRoTw3~)n-g`TsEw;8ilUa zs1dVsE5UZ9;jOw}6s~vNB)@l~#c<=$2NICED9AB~wJJ4*(PBsoZkSM$%0zaRisb^- z$X__U!)7q#?1>c&6+oy$WD+9IvDgw!2}6bU_p>573b3A%oVpgEEUwt8X{V1Trr2Db zekz!U6zl4k){geZVeOt>&+uwZS>g!2dznIo@UNRnH1bO1K8yRoWG`z5&i!Wd%qol| zv%g?1#mgZSJ(^=qmiCKFu49$&GCQd_o0^C4k$y;A4KdNp=xH6j3{O=5w6oVF`Oc2p zDk~i|pcN-cza~xsDVL&xIn>N~rKtc}EK;OR@v9gUoV7UqSppR`B}|LDdPxIS+-8U1 zh)d}&U`=EU>L4JAXlFmTJwn)Wpdb8VEj;~ewtZ#pkvu?Th!jlDI-4_@2|iGPCOv++ zq9AgWhL~E%rd)Zkq~e=*bn(ILcmP@StqQlIm2irqt7>!P1$ub0jBWrTy_Qxo*mqu- z{wf%5%Rt9usF%HTq)5mr>=GF5ky#2+XoMI{XLwF{l89h&l_N9{1S7gi=*idchzOHD ziU|o+WBk)7F=@53sWFfiSbrOqQJW`^7I+1+4RrgC0;kd_1}yi%pb<2uVmMoP#Oin2 zLl;ZC+zt4E?%(>7t|&iOf3NW${{0h0{i!;r#N%CHxa zh}=sMcR%6qO?d$1yQVvR3QpC%LnePLi-bC1w>=oA(CuLg{!D&fZ{2*p8d(GF)b-=Y z&M)BqvV$SM5M+gWj3qh`f{OIwtT zcp4q$nzW=E>&%#nyoR^qoVD=RO?i=Bw#ita18Ft0zyn|MgXmk><1V95r{{h*7jH$B zYVv<)cbmiuSxwC!srOdqKYXN3wo)f)rBMRr8nLyPl>2az{hD}Aw_aTm>m}2jFq}kx zXNy2gX{|R_+y>J|1-8%gaes-R4#6x~5bAZFJkyFYA}{GzHusmz{=wmQ6pp{2ITR1MvAA>$f@|S*5~kU_qO)8 zrPevN=%Y4MgkZ-LXN*^d_zy(div`Ca!1^A&z4Nv^M+eMyHFivLY`bTfw^CHA`Y7#I z7;mcj2_cC(NA8bb6L0P(c*);A@xQ!oygu!p%#SAI@6M^#zU@%wzPv2EzjSbW0w+*amo`~aIKEvgcWJ_mC5&nGX!S__blxU(G$5|?*u z%oZ0q2#xme@CvdfP@zj8VX{S|F;y`k%Ct4-G{PgK_Vhj(!;5>nWw;)j{vhimc;05c^=W;$9h@>iJ^JQ>6Ez17%{`AOw z4q~|8bNkHvNbu-s>WCgO6k$vp1rH`C#Y-Ctl5~IT59>I4lJu6+(disd`o47#!roXw z+pNrL8?>0Iq^*LR0VW=E`0s~wu};hT{7q{=i^%KG;g*y@*iC73zd769>9~6LR}an7 z(JjY{2_@^Z5+)9uXD=d_b5aTpqZyRX=}h90iJPfvZ~t+`z@WPm^2^W!zZ89=xD?|X zI!}1iEKUt-7@GIWUk~R~Msp;3MXgaX&yPR1qT~o zUce+X)AY%%|-g9sKJ^ z>uRfSCjU~TMUNCU&TdVLBxGeIG)|Xt2WvBvxn!J&s{$g2Zsa>J--|l^XWvR zgXiPCgD71OC28)z(kDI@YzZ`7gIqPu9kRfm-9z3wT43 zo2L~}TX6ax<-S6l3F4rRKUV`*38&6O!#wqJ;;2?<-E`-27FaMBB%JB60Q@@D_O@VX2>^a zB;(OwNSBJR5mzx(o0)j&}=ge15VP^M9$hdGFi?cHPLH2=g{f%o&WH_@5AZonOx@Nko92Ry#4OY zQtEi6=fzH=w`cqi8O4_IzfSfukh4{O$TXhrfsbznVb7as zdWQ_HBdqVjHqR|N8!fBt7PwqEBzb(^>AhZmfLR# z|Jm=!t^ID9Pu}?l7*q}G-~s z_w*3QKXTJJ>TVsLHr7EJ=3&4%x?D$pceVXXiibn|mVgqLR3V}tY*h5-DaY;h+MIt7 z{PX&*T)FI~R-7E+rKj`hM4nIJweA?(Zw{T;bHzYIBRi&eAt%!~?aUZWTG8F;hN{jutJZZGS{zah>DO6#0Qb7nwx!ng|)u0JW!N)1@}6iz|EYgLjlJb8EwB zrm{8blvz3Yr}X+IgKW~`VALNhJJa8Ku;XA)7$%iLND8!>@_c`>CH>REa+8?XskS&W zfKD!bnctF(&e7_kAN zkdpBB@X1Btkt8&7rvzo=9^>Uyf2ri$pbhYCv}uH=HOA9VLdH;Rxk~Y+NhZOgRFTZ- z9oHwV3e+)G)QW_pOE7-a*h3v5#~QacVJVcmAr(-^6xLy=M&An;m!YLda`MXYhD{Kp z{Lb4~o0Fm)5DpUcy&W@5m6_@wEo(nM_mCstno8J0jj|jlyW|`!f(rw5xp-gFAkxq& zsh>hv-1bW8_i?i%a4RSgaF^9)&(7Yuk@)+-OZxGzB~en!h4#u@d4Z-&`&;Eafrr;* z$%JO{Q$!=C8~dB5yw?>`Q5)6=u_u-1;%JJqsfqMSvfd7QrC^E7?VkvBqk?8PGjmMYwNw=AyuaMj;~4PE zpuJ%FJob*MkPQnEc(w42hy!5>mYtgA(w{;<>UWLr#M_&`&{E&&{z`|(fJ_S>T(Und zdUSlbdZ%-+{Q4a-WK^mzGT@nX<59YItcd@U1q(v~^>jVacXeVoX)bx>)?#+w38;-1 zVlmW^uQwgeKPmVlu#tKF6v4u~a>fFkz+8%dIdy(qU(vpA9Ow9G?iVluDi}86VWqJO zuN>Vlj=Mgo`-JVTEIx-#dGidxj7b>E(Ce?`eSwBsYwT$iocH{Lj{P%^lehMH<3^cx zgO*BZCyKg^E=IiB!M)ok6@>?b>Y(V_IlFk%1+Imw6Z8iw2~dvHUQ!C<&K&)Xc);9>-Y9 z*t`NfTeMKLqjUd~KghoVW}=@K=3ofed;&of)n0kO%HgHZ-Tnkl6Yxy8e8u|msC0XpMEP{R;qSP%*F6(oKb0>2@`KOqFMOD=mw!T| zA7r|E=)7s1sA)aw?17ruGzXsK0E+rf^HvP5Qkzq>5`SaewcbO)HV#T{wL#)JV~WVd zM{cnMZ0-fFwM<(m5uY=69ZvVJK3neZF2HJf z?0d;ljO8X~%3bq3qVJn@V=<8Sc`&gspP8ob8FEoWujl!ExQ+?!)l~MAT#BkHa@Jy~ zt>;-bbkNW>11VrIEUo?XQdq?MNpOu3LZqFODT`9$Dx=;B_jy4pE6AI5o+Um1J5L8)X=9uc3`$o(K zF0G!CmyF@Xh8?Gt&(KX0?jM{c!DAjtFfnDwXmoBlYGAw#C7^j5bB30OGhMEPwH2P8 z_5n1CxuU2yRzrJpFfATj?KG!t6LY45^fmV_@TBwq=av=P}kGLPvnY87l>k=LQ?5Y09 zqKxj&$cR7ObNhD*g3iDzS%;~j!Uqhgjdpsr@J0&_eV)1D!Z3m26a)IC-Q)th3h%vn z^Q*m@v$U1VvC(k~?`Vq)>Zm}L$BigHUlM%|%S1H`(sFc#dFpOqa1gIM(xSc(5|hw2 zWi=>6DzKyu6$w9QzxY25?QH{J1xE`*M4=60Gej|CK94b3-pKpujyQanJdMV=S=msR&3eUr-%@)+|68O7)?bri=beUhykkU%|jBW+R>I- zsIucYL);j+$euHKSBkQ#ZK)^xG9de9@*qG=Yn`}GW%c_btbA(!_p^e?+`TQZI5 zrN8k`BRBpv8bB10ghsjmj>1rA;d!R@1YR0!);*RgD6^$cQYPtG!9QVcf%*<#6g%*0 zAqNOgZ&}_EX{N9X%XUolvwR+OQ=tkfm8qz>OUh*Lt&QVwYCv6*9E3v>|Uw!OMyqSLv*Ud>x5c=N4J$3qh-n9<^C9B>cJeTc3Wx1Y_ zq~dXoFALNZMJRqB=K4j9m?775a16JDz|rW>qBR}-OV``L9Uf2DSkv^636pjNVxwPy z)6(NkMsbexoyBE7;bASQ4-dHBces9_wB9$ubp7g1zq$GfZ;c9MUyR7KB z^Zm6Z8hv}d?WE5|3Dw5(5gW@lJ~bUBtSD@j+=x~3P^WpFM9GRH>!Osd<`L<1EN-fI z&sEI72}!$bOa)^0(nqs*`i(s?usq~szm`mMGgr5lP<0G~vJN8&bpIbowB*nXvdm47 zaA8(*dSs!3rdEau1?(DGyZf1Sxf^z#5^l4i#C;Ci=cGIPU@g>yJ97uQUYWm=rUwKYDq8va^r%!iBq^=x7;VwkA# z=X`xnI6opV2Bs)PjdqAj37@n0)r-RJCpjilUR|VMoRu#k2F{TDtegT?IKrOwo^y0; zLS=RN%a6bww&6-TX)QwR#Q;mV{nPY#RF`|3pK%sS32?_1g0Icr2C^J35&jz(^1`eP z6kIGie^ii~RR_08M-^9=13hBF3$B4@S3<}Ik89DG&XOfh=6_5Qo~;I!)-p9d7AJnz z(xYtp~#XGWTH6ylC?w_?lkehKD*{Kvgc$fCt|gYu_NK8u?g%T znNSW|W3yz@N~#{VE+=_f#I-P1kj6Y6OT`H|k)&3#9G*?0yk_X>mPcDE9W$)qDx}S{ zjG@N^b-ev(vHkvGr9eD4?|KY`+6}77B?@5&jO+xio=|5+$XYeS8-(*^$YA`g%W+#Z` zStguf@iig-QptxY`xL*B6|o_+kwy_J6U)A^VLZR+cx4Z@u_JcQbGv);!@&TKhP4p? zZmB@&*eTgDyaX#qHQ$G1Q%SY#r=wJEhDeWB)S+utl^Gr>?mo=-j{{s4U?(;=h=c+? zb0D;WMfE4tt>+bN+V5T4W*MQS@6Rp5$D!RPqMqsOXz$CmUl>-u#ROopYaos4{f*Ah zpZ9h{cy%D^b7Ac#CKbWpa~h>#-LU~_4=SYL8|yjondp7(-X<*>vf$kV%8doBr)cYX z8l9#zt*;nz-=cg}VsA`7Ek$5h+|xVZJ^RKjQPd(ML2 z23?INziS!?i}YQ$OXam7f8zRc(s^mgneLbp#B8Lb1b2q*JFBB_VB}bSNJHt~y=^1XZrR)k$VRU~|J(bRJQIb4ILc^_1gi&LwAkTwJ z3MsYW2D?qH*okAGtM+_p_$;^fq8s(%v)yn#GH-C1MpTjR#${#S|wd#{)Q>4 zGEA441>4jZQmhY^Ub-W5m~&tktwQJ4BvT0;tc`QGLXd}I<=dhTa+Ggc%!6eEsA!-IWi{aq3@;wCU^U|A81agGB(O%X{T{2a%ogNWkCda}>4uQ;45n%Az)lF2S!yWv z!h>5u-Zm#@JO5x2Ts()kEs%r~Fm)4;VZNFeY6(55>LX>lf+yeJ`opx!7NuJqGTBu{ zzUje}JEOj|fVU@^gN87Joo#-G`351W)zF%EP4OW=>fKi+F{ia<5#r{lb!uE4Vm7C# z^8jAR7M|PED3a&dx8sD@VmkqmQ*oPsc;ztFH37a5T5FbKI1@$hsUPX)bKpAE6Y3uVL3_gtmOUw|R1WiUQ5jC6!&byiUb?yY|m*CZ5?Bs~4 z9kIjAprxJn&?_~oQexIdh56akmP30=q!s(I>hX0>R8#Yn9-?n3Qsn))HOj?rv@U$N zNyb6>?PH*drj#T3zoeILp;Y&X94`P*07=flxIMCSn!<5734B{}8a>JVJu7p|~j z@-37mp(8;<>UEDuGD?4cU`rL|M=-Uyau2JDq{lOgFM!#|}Xvx<>- zjlab#$lbt_Bv`_F=_vfotBG!S!nzhjQ7QA7i@aEgR}d+>M$Kp?Fvquz*9K(qkg{$0 zkTB7*YO=E73nGb+GD=(NhnVdO``UV|TDuJ&*c&fUaNUh8Gj}$&cBJ#E6Ag!}540I^ z@g{k2amzDS?p{72QzejZ7GUEfN-QYD%@vx~S_27*Q4j1F1bL*2GgzWUL?L4(=K4ot zo8}UpxaSlwF=N1gN=B<1tG3%Gd!BSdWi!sI0$Ix0Pjmo!GG!IIPjEZCtRSc;?izN7LS4uK6F_JqzFLH3U-J&Ee zp4>oHo)k7I-uDfWcn3kbRX9{?gj-M;SS()K0~Ei4d6+Z-xwMzxYA zMZ;v$u-Om1y1h!RO{Z4O&r^(v5Cfa_l;sQWaL39TYC(~rLZ$;$S)e2$%@pMdZoKdc z!|ONpjKnS)F)rYxwQGEQ@qQ+wDI}ra@8d(Dj*<0g!(6||we?NnEqrPk3!Ckf%P+mo z(kDNLw^OuhP^Lg5_^l1na05rAS>0gTwoEM;zZV6}qr5sDp;0VgsY44PXE%+N?L%}Wacz5pc=!(5X3V6nnX7a9bX_-WZf`M+E!U?*lFP`|-nFBZ zEIVFp$J~e&x}LD*TY9dfFovyZ%SN5>L~b-=g4&O^>u#>r2ClXf&Qr3ownkrToEEm) znvL<883~?7|_KW^<{5Smyw9z{b&+$ibTK=HX4bC}EoH)VjZ(TUR(XriT)w%8ND7g++gDLyAib5xg zSBgy{hhjcG*pAIV(HbwpL`A%Ul=MFS(B9A2rbJ_1X359gJ_sh{KAuroh8aSvoIf3 z(xk|+O~gWBW=pNnh|}1ZNRl9GHbm&r^}xjt#Nbtfjh3MMTx@GbIHayAltyWC!uTF! zZLQJh5{_xZkO)5e_24XG9M?n`NkB+w=ZHyl+$IpwNGy4FTJsY=ayV)(Ub;%(74(Xd zjq#XC8~BSGD?C4LskNYt>d>N$PV}P2TE+8z!ncQkk1ZbJ%G!;*Fc+4xwe%N`@Y2SZ zXD3^TvzSI`QeZ?NCPxUK^}gnrC!gZ3d(JR-<^;*Ngw{imFhzkGEU@+3WuAKSDOP=p zj*40*N)n<42|`QBwE(Yq#a*T()}wraO$wt5D0;j;oN~c8Bx5KGQ>PCz98RcJplLm00TuesVZ{P5Z5xZ?+RbMDa((~d`2QJ7$8v|yZN zbY+zno_dDWn3zZ;Xh%yT(vp(LYsYKjn)|j}?l0z89j(ziNGTUC3d0+lo;Rlrx+rl7 z5lzyL*da4h75U23Kj84Wvpn#`qqJ*pk;($ouP~)U&s9v{xyDmp_+u`Ow%Lvi+uBlU z%`^!@AVkfpb>#T~cMg^qO(xWB=9op*P*!ui6BXazSfjNT?Gh;lyw-S$w5_magdcwA z8P5F7LoD8N7tQiAJxW9c)NqI^45O7be(;yyW_dIu2BGQ5`gI!+X_?}9Zan4H*7Nw$ zQ!H;^W-U(X*&gHCV~?HSwPbm6b)8@xRn$ZxO6zP4C_HO6AsM z=$x>$7KWnm6QSul&RN5a>4dqJ>lCZ21n+Z~Kqs~dY`Kcn@w8iy8zLq{JDnd;2T_0Z)nWO)5R<(fl!Fl#d*AnVS!{ok*4E$T|IfIx))<`1 z$oZ|Dpwqz&yqnZog0(Z_W7FA&#COec+}E-CZ~ohV`akvi{oSYqau&wc))pHZ8#hCC zCVN*Xfh+I4!`qiH9r(icr#72CWT%6LR0sjou0^z&vZef4ah+vEu(aE@RU-Y8n58AZ=1Mx-kUGF)wUWbQkb)Lm9n4mwmj4{u0T~Ce9r{jV|WcY$D6khOgXM=Ig6#jBTIL+4vXQV6>t3ZN3ky zsY}c1))u8LnVVZ;Q1%%V1-@M1%@p{`r8ihM5YPngan@!@b{jDWr6ictjILba$kHL^ z?mvqw3tX>X>OF7t06ld_pD>wHnhQ`w84vTed`8GWsk!Piy)q&66&JITQTvi z8_T>p86rhV+dZ#yWsfL{HnjANL6652*VpN5%i@v6Y_=I9spptp+u-Tn{|e7M^E{ij z;2rO2fH_yu1kbRoLBYrhSGU$!Tw3Dn;t3Xu1+1Gx78kkLO!&f!FY;On1Z^RLkZ?uL z8}i=g=S>Tf@epeq#||%`HFyaGqj=RfeDnG>F8N4OE-(C&pS#ely(U3RE+`9E5RAo( zL4szi;9_WaZnVid3Z-`A7@TvtB_9LcDjFqhjkd5=g>ofr9T-jnE81{TJl`3uag~(k zK?n#?6$K(f<2}k~LWh)>Hroh9Q8XyVMlp4U%{mY|S$gP9V`qkWGYEXIeaQ}=@Li%8 z_C^&PY$fda+9~R`WjVCG)p#z{EpJY0-l!Yi^q$uyH5VJtJE3Jm1!^UoN6>)^=RJ(_ zZWn_3eq`A17MeP1!K5Ekw&AUe1P>MrKhCI%ziFtf)q00hc+1w=d%!>as^FuKJ;vO^ zAyS8*EA|k?J9^3d{5(}v?eJT7_WbwK+aLTmk_7EEjjtIFhx|>`&Ud^tQzW*LvMlq5 zvW_IshK?*O`QVY1#cE5F+Rjlj^G#+dtyvFU+pG{7rnU=J%uuZtO*EQPYnr;bEs~|W z7MLhS5KkR!mnP9YEJ`TLlBQ{hUEy`BFV0$n2u!8pPe{ys4%sDBO3YO+T_wJcOVmkj zTa`D1srP8{5OX2sl}4AAswimNW_MzzUEdgMvyV{}VWo$zd({; zJ7V5!g0?C!9}Jr<{LzgYeCNguj`imeNo>>;-c~SjJt{GH2_%V~N0Y*uyctR(#HwTi z!@pm?&QZO>-Gd$lo-3ooRo~D!#~_w8soo{(rR*tEr^KexT=J30Yp=2P_A*Dmbsryk z_#-$!({vP2Vdg; z@BfhV4}J*aG#hVS;+2V}({nM}WooAor!w)_PO0l-G%G+;W;p)aF zLlhg@F^!X*MLwU>5-B7mh2stJ{QiYY+&#C&>4hH7MK-1_FRZPyY&2pkT#(G;>53j9 zBdA+SaV13l{QJ*w@xnWN^d}zU*nQ{dFD`KDt#^3sub$)5${LqNm@304M6}Igk#m|9 zF+`$ryb=Qc;+gMp-d5au>;y%x$D5n$yfj{CBN`^Qq{1Quk|fgJ1Cu1CXf7(v#_|d; zZmx6Z;UiS8;QIO+FO7z*DMhP`yw)6CV`GFUG{*3DifnDKGiMwNw#@fF4J^~LYBK8U z)Gop-k`-fB%z06*j=XGPeQTAIw&aL$lw!Fun($6LX0^;>5IuX|4{#ww1W#Z?389HB zri`oys~OjxY4V_4E@-sEIk)qi?aegWpFQ>N0X};X5o;}V+a3tx%5KC#DU!*=cxN;z z#T+E8AO=O0L_!E+NJ^n&HYl7q?(QHSnaJ~jH}KmbD0@BG-k0yqd!$Re8)9i~m`=&@7t58iTb4YYbIc;=Rvb)}9+`)c!mjKO?5KIr6}uD7)18vMial zZFh|hA;RYOM~F(Hyz0~?LTVbeCQ}fo`W01GLEG*i5=i#J0fiVts}w1!w5`hgi1ll*UdmlvwL_IaLO1QYf)R zEXfM1O0hbr2__>*VoHR>Mhv77FvjkXFO4w=Zh1dp0IY;>~KE-gzOt=25-#6}Xnd;L0vtI(!kJI-T7uo0pU1QqicXs^#l%0%96 zWtdpQwb=55^&6;|2nMh{bjr%HHe`onqjuN0Bnj~eEe3Ipq0tPLutFlKgjPbrp+u3; zv_6X)jLjjB6RW6wlMhVFkW|TyC~SllNmFbpX{<)+KBXjl41^TWDvK@-ZWt!zHruu{ z)U6OxAbGO!V=8j-q9D$S=pPe7Mr)0+2JO{8_vV?%Bcd|LEAWe5qyvoI57ztBTGQ|M zv9~Ik_DH_>o`76e#g$c+|9?#M%Zjk4V40C-)r^W!Du*Wm)EHq@16ndwpUE zJJqF%-ASdpkUDSznH5ZxEg%S1TU>vhX~@M;6Z}4B>6tjkc7=>1_s+_)%m#!$69N~? z-cCLjZDe}D_|B4jHguYWFJ{SU;Yw2Du}L^o4VX+ONRqB_o86BhN|%8W^5^i9zu(H` zfH-5aFnqr1GmiNbuN$G&`J~l$Fk%Wb9~`xFa;s#He%ZsCf*1n})dG|0goL1cKnTb* zE8uoZ=kfmN23Jy*WrpX0vNDhY(FZO~hg_K?P#ZZo5(TQuu}S%45JeLeEEavrs)tWd zxQaP6bqGu)A%PrbNlQd`#kI!-p93eOv9?U%v}6t<#Q_0Y*si3Z!JZ5yNk znucay#!+(%bU|U1r7$H%JCw8Zqo!#af+Qp)lFlu_9E6qfHTQguC|SW*xqdES)oofL z?{mwDG2*O4%KW_SD5egOJhV}ug|_2bO5mobpjou95fGh7I_*R{ii%kcEVF>$1L|YN zK1Go12?17WR_sM$%xHg_?Txo>4QaHVAwZcrv9~2Nn`gRH0%q@?-Sh})*{_P;b zsw@e{bS;EkhuoVS8~5~JjWMXW>(esZsKcJZ={8}=`xXK_Lu7!mD0UDd4iLEZ%;uX& zTC;4hnM|?Y@8{ps`zL_vE_%DUs`j)S`u+Y6Iea&)&fGK(`zBjV`3r znbqjvY9!gt+G=T|KQh}tGn$>XmBwsGtL505W_QPi9BFwDMG_=}xKs@9P}NP@zm3`9~9 zRTQyKoQ{;y=p@2ei46oDV~G96J2o~3N>TM(X>iIghntZ3^37%6>wj1;bn?e$!$l`26PW#66HBCjDGhwOZ`p&CZc+}3|E3_^l> zkSU7?J~2?%tMcaBh-2ZpI}+(cQq$$3QmrDRki_Uh9w%1dGz8vIGRhOUjeR7w(lU04Zm@2-u)C1PRd z%7=I!j_?^=-u*Mvr*f^^N`x5gHfFgFv?pCp(&r_!x+q&y2%QNT_S=9}x=f1|G7+`H|AgcO;rH3Nglxz=cUEBerl~S%LGD{@#|&ShX#*`DpZgEPX!xefGZ1wGxWnzwfzD|93(g0wKHeYn@!8D2xbHFgTzahVU3;oSuSIBf(DA z7>sbOVfA|brbAGJB)NOp?t_t}QNJhOt(E>=k_#jXe#$8uR>n$`qGdDP$HnU~pwX;XV@>2$dwT79~Jx zi)nX|0<^YBVVx$ChQt%C7&(`zsxy z(j`s0Lu6b4YfD`tvf#ZG49HM34wST5V~DLm89e&YU96RoC|`d9kaYP8sZ2rUxmW6X zO7(uyrjFI}E%IbnrIc$>DZ42O+jCu_%Tew-zcXH7>3m1g<59|$>m0&kJ&K=hthSf{ z4GDP4>AICYeNx>;dPH)vdl>y9Ap30m<<&u~9WyX8r&(vMYqGI}1G?A4_MyOG3Pvku z4RUc$1IYB4)oK+Lc#^#_*>LycEoJ&Vxo0$3yDEZk%A-Gd_4tD2C$sc>MymIr#oCUS zsZX!+S&^k|b=dd!GyWS%m@?5Tlg-xnilrL^YcJ>}2KL2b6SuUGC+)99WIwsbo>%Dt!jX4kM9fkRf55>6(;3KCoy$JmauddRZB zZV;Gln0*GoI{;+aWEQxWbfe1HmNpul=%M6BI{-ovHof1)WKhVoRJJnduwyj|&^8YB zLKG#@EoxE?p6^T)ve}8Y4N7U>(m2n0A70Y|>rOhFm zH$mtoOBSp^u9Ht93&$-52qQ)d<@q_N@F7f};aJBqX|(YhIGGu%EIkuuWUqvc*FP4c zOzL&c1D$9uM7jDvK8TP`+1Ep5g$;5gH&ZEGcY=rJv&`L&-letCre+LarEdhXl(}X5 z5|&)aD@+tlq~J0?%J<~Y-c(LP3(cJ!Ic2G7mN@x&d8APV^a`R~qTb__T+Fv+wVTh-8UlQ{3Qt5diIt zTXF$sJ_EB3F-p6PQsgAv&~>RxR``rfBC!&xRw5Ed*lY@cBtT%$_)@GN9AmsnGzP2N z8HXd5(lK=W&N&dlNCU@GX*W*CAcN5R;l?Uc4pyePMH?%9$Rzsu-P)X03c1pl%<(9U zgT5R;qZ|SF2qjPo5eRQ7kyoir++|tUacYo0NbV*ltI3ednQ3;r`|gOt-K4t#XhziV zk8JmND?Pa~pJDqpaWR6&QHkVHD9xG`b}!q5D41fHZ`FoSR`cf0x^TVjbj_f^&X$me zeo4;?h~B_)6QgyTWeq56Z0qjf)(E;S{~qx%UES~DNoU5T+F*+aj|f_82Wt0iMB96+ zcE755le^Aft%0XbG|gs{*V9$wC$GO-FWYCHiayTFHzUEwbC5RTBFadb81NjHGcqH( zes7sukrmFSB^OX-ft8XVWVhs}R=1(|)9|n(E`a^Kh1Pm+%2N4x@2Gy6p3ck(yRz_o z%?|&6_Kf6B8UHT4+tyRf#waCnRkGtN#FK?vTLTyTV9IDKPQiaT_=lTY0 zV(I4+iX1IFq+Xx*vl-<+8DrM8jjrT5m*2UQ6ynoq$+Q3WIg&7FBOTe1MyfNTuQ^vZ6{nO=-XL-8Fhn4}qd_In!- ziS9>b;keHQN_i6PXjsFBAv+t8)Yv{HIXi$uq>YP+5+gEVF9lz(9{aa-DWr7`5Lu;~ z*UGooZgA3Phy8*0al<>gX%qn=9CBC`M-*=`Tx=~Yyq~-_0?BzTP{g#kpf4}Xu70Wn z#SG1Mh3NXWsS1quMv9XLnb^%L5Qcn4nRfH61|l1TxU7}4Q~rLD^hZR}0)#Ae8LjvG z2L1gY*ZENqqEV5eMC$^FWhK&cU&Lexq9;e>bQP39@!AW3wQj>s+mqY6)a4;%0r4qM z*(7Bk2uiw025ZI8amsf9uIB!26f~TgIwqd0AWL06+7uZU-S$?W^`Q&nVoFv1LHDPJ z3pSt)wM^PBBRwW(7>GBX%+8>Xhmo|hcO?_WHu)l(Iqit@Tn^K(3rh5ed>Ly{LV3Nx zVgP8w=+AN4#kwETw3^JfAA-?utsnG$7a{QEexWiE&sA}ea_Y;XFc)NRyS7<5EX$Wr zQ;y7Pb$JGlWB)etQOU;T^BZJ}JqXz-k6X73t!b&dbZx8MEW^nw8=HEhyntfZaVlZ_>wZSpsz+OH(_ZZv^!xi& z;T&RAsgM5i#;$R`-drR{yoP^wvk{h`ynccZZ4g3aSC8ujt2nPlcl(al*Fr7CvOrc~u#Or8vnRxFwrk;4~;j#=8YAa`w zVHoy&SHH}4WDg`UTxqt|#Ie!eGqmKQlgv~GsLbjR9{)_LhGcE(f1z*yRK~2uF!z`M$2zA5jeZXGZTZLcUxA< zTUTd{5Q0vpGf=NbtfC!ulvny)>4LfL=T@wIKDH+SwV8r<{s8uM>s#sfe5_BUIJa}ZD3u}O{P&cRf>d2}kYZ^0 zyw*dO9@^D1;uD{a%TUC?_CJ35Z>p@RJvk*D0BMxlpa&vGfkjz~Fd-I2N3@)LeJXI} zyMKfdT}}mHJxSK6(AQ2afw5?*Gwui?r#PLu_{j8L+stc5;5=`zT{Bqg5dk4eWmQ|` z@aXdIhw#jdHQD~%?HnxXqQnwHEl^>Iu+GcOcm?LP#AH(M7%@b#TojL=f~9%RlPJ{m zymdwnv9Y=HR?_S5q;2RWZj-c5tT5E>*oo|Fc~~J(!az>1CH3kt{fHSNvk`K^vyupH zF-d}yPVw4i`Z%UbvK}P&63E=RiR^sE3OY8z6xTRo1j-0vnR1GBX62E(hYRnch1Q^C z*ABvuzZG5YFOj-|j*6iE3Lc!Jn7PUZdDLO=-7qN(vNr|41qNy(x3%IdX2%$ zfbmk^&LeLbAX76Y3)UuBjGISNV20=r^&n_MBCI4Z?pf8+k7$WE8T_CN%3X4$*(rNr!1@#2eqKB{67G%gA0Wy;7tKwLGXZ;LyYBd+E*a6ca`bXrY+k1dIp zycSaXO+*rDfwY2+T#>AhB@TD-X|RZ_F~BQajz*ghvOogYep+m_t-+`ya?^**J#1OE zeS{MS1y_bbFTe`m@jAIvB{z2~N=_GI_;f5hx?*E{`;=0dPg}pF*`|Bc8wApGX&Cgm$;nCn+mC#NAPBg0=@OeZZKBz1(r&lex^*kpuU}{D)~#H=e3?y~ zHnDm0X1?>C@9@oUezTx}Tz=hg#~mCzbdWQzoZ**#>6d6Wn_Qcj;mF~`oH})i$;nAh zojS!Azxc(zH*QqjofI)j-)|%xTJ3h1ACU9jB0~a7nVHYXwN7#-eIl1xbPrb6)oYrMH7DQC!)x)M<|a!oU} zH1igLD0HG2S?mJRrcKgm@TQ4rrlJ6AKnayCB-;9JvJ&S-Ntr<+HgD=BG{)$Hhl2p5 zQck(Nl)Z_ZdvlU#l#*E>?{tb(=9-*s@==6N68CHv9U~T5F_{pd?0gedvtrx}0mHv+G+)FwFsVKF~?5+fC4I*cCV=Ph^?{^})h?TVvA_%GW`>gTSu@iuy*0B^qzk1Uc^>ogzZs0mZFGwjg-;nks2jj$EN3yrXFQ| z%_~Jtk$PBlPUH}coGGYEm)L%RjO_;7qj-Szl|~NQs^k%LD{V_g{F!*ujXk z&8#OI9bX9!jtFCBuPS&B;98zCpy|sCu>wrQ`sZS z8IV$V23PiklZEvlc)e*kiPj`Z!j-F6vDR|o!Ue|0#uytLE0nv0a1OpoDXL>*BSoTH zrniv93C}+JEW3B_X2A#^8 zNG#it+&{gY-H|1*7HM4elUh~aeblnRAvJg~AN+T7ys2w;wl9Rn1t)$| z%Cw{|4N4e0ig0#xV>Hg%Ga2#2yr zzp!N9Th^iiXXLq3nb-KzkTupJi|P5RB9fSHNQr1;g+Uw5QZwe(O2E;nDUx=FC@}~k z9~2j}_%tX~LKcG-8TH_Q+8e7%A$!Q*UH53~OH~0TxA|IcER_<>rF73;7>2GrJl9rl zt;GZpGXlPS^&+ZLWkQS>=8-7{IATyg`ar7*iBa9P$XRWe?s0rcE<&tUN zl8x=&2WQmM+e<2?bY{1|mR9OG|v}Q=j7e`Sa}BwTlOS>H!{m{Bhc? z7Gt#4e>~Wfy<+M}NfBrWzN{U*s?U z>aY07M?S(=zWfyc{?Ug&48UWL9%FoB0&6UH-*Y!X5ODSCB`#jP$il(`^?IE@|95{@ zaHG~9&7j?)TB*9MtmKELgc#~&m2IyEs>bk+$t@fRC9(G&va0L{W^<(#a^78UfPiYaEi+UAN2-G$D% zEa%QBjthz-#+dFo=QhPOAhkIThcsYBLKH`612!=T6tPiYHIlCDu#`bomUGX9E(D4l zEJ8t)xc?R?uanWoXj1o6{^_nWKH|t8Bw;N9rJ4k$>l$h;A)yPbY|CY)i6v@ltW7{@ zw2*}WyUfY3vP(g?*5<}vWZW|89T+XWS)?$+Co?|qk%mwy;y5nO2hl|wq>>2hHpYzm z<3AIkskJqUO^}I!zvZDvI)MHdkXh4M+8gBF!F8PCz3rwi(1W6;82g~|oU79-?}Wgt@q zUVF?!P2r7lXJR)HE52`h=Vjna^ZArPB2Z}p7fMtVP^nazoSfvqzJ2W3wVS9CaeekW z7cO1q+=WYAxqO*cyG?8j34&I;NrehyQ3Yv6SA2FQYn|gfX{7Q2yH#M#icJVcI4v-& z+uL4u4o?!toIQIMfb-|i^QljLI@_#L^yAE#GZ|z&%#tE~ojZ4qKmF4`@kl`T#((4M zUq=W*9LKH{WLQ^=W)K9fW|_o&C#sMFr2?c>JpAy(yyrbX$GhJ3GlXHpgAYE)^DjKl z%*-`jdg%lQ4;(-$#nVrJpCn1xx@{YO{rS)G&;R>>PN&o1^Z(_)4CEXoNkS4NL^50- z2T4FpMNCx2ReA~zJLn)D;Fz|IK{@GrDZ8@(Q3EZT%F1$X|`tknnVs8BP-m- z5L?Ycqrr4kBeVh~B|^vnLZvG!dgae2ExC@e5Q?&es};TCf-5HdVio;PV#Uv-*FEwY zGN@d#My2wNZX?!8GQN8Yzx4OtPbCa_{L#mF@!9A3rGNMCHq@#Pswu`wkxBj)f&I zT)4mwo_?CkSFSkmLSu-Ngh~(&5f-_LV&k?CMJ>_EKwpkQH@e>@GwA)aW|*%X=DlrH zsT(WtT!efX2p|kY4-<>NKT4^r)|WqiIx)*Pcde#t#u#5C9}FpjB@6@J{qA@3>X|d_ z-@l(Yj@h|u7hxDNJ-vmuzy0kjEiY%~nzrWw9e?gP&mDh`PN%~+Ja1{m8!F|Bn|}HC zStXPk-{=j4NH2PBg|kOAX<$dRL5yMCQt`A5IXt~cGv;WyvKJKy(S zo;vFU=@7wO@E$?_6x7>Lc5h`EluJm-&=I`sU^R|BeIiE8#aus2%_cWbD z=}#W%&j<1O{bQvc6v#+WsVHiZq8>=b{7)ntJs_|U2}MN(4!vICch7m=|BAqp8o##IdbF(yLa#6lt9fWKem>Dm>sOIJn~ ziJ`UJ;BUVAbq>Di2zT9oFE^UY)M{f~o1JB8X^C@Z&+)VG`B`4Qc!763_|ts$g;S`s zg}@f64>Bd_j=I+K;R*kbcKLDd-nJQ zUUTmJxr`6S8=*@pk4W@HQ3c)hz}4lgK?Qc*3d%!;^{k~Sx=Pz;4MCug zo;;vDnYL1?u)MrH)ckQ&Mdz{ta=DApq@5V0F_Tu%Se)g5{#XAKaS~&V;eY*K{xz*; z%b&MGDoLl^;hCquhqab=tL3t#N(J3+^U1&bD{A$ct8eGMiabY106|W(W;NY%Jxa&4 zF-8!Jn3{mZC*j5zR1kQMhRqa@ttXyKf8AqNB13`f7?ccArbtway_=Fi_6>-1kkB+S z&Gs^ygiFoq)W>!q6HSc8nxN2CqC6KQ>oV(Un|Ix0U2=7Cm+Tob?KlnTeX*uPEeS}B z#i#&b;_i6#3pPAaIn6k3NX5$wHwa|FiP`HM9^b@-aAaN`2$Zoak`Q&;)+|c;OP;(e z)6IIo4jKj(&=#cwv}!XJf{+Q?bO>XC4I&UhMvg5Ni!ioJ8c&jhX1j^jZDw2Z?5Nh5 zRCNMWhQ!K1p;KpjA-tDU*W=3MNG@7y0wEp8%%)9N6pv64+Ri1Obr= zFky%=fz$FCRQ8k#JQ>zv!4!E@MionyT1bq@>6OU723#2lR~R6XY@Oc8fAc%POM5A1 z|MV>^U6~`=EP2~KZ(}T|bI0L3X)nht&Mon#BX=UAG0bwCij`EYq-~9RUI%pBq$q+m zI&0E!oG6LL5?e!TS5|};LO4>q5WVHwvIEnA|H z15u5=+qN*dV+*miEY2-5b9t6)t(Y0pVnGUK+6HYEN(mBwz0z8+Nsg-|3QV$I&dw^4 z5tFcKa)O;ZcTum``RRAPlc~*HdG<#y^5|pVK?Q;!s20j}Ns?p%Paq_b42WB8>eVVc zcI=>1sc`DlDUu{%a%zgP@o}_v+|r%9wsOy#@1)UMWM*cDcG5(sitC=T24O5w5Eang zl|s67%@tBO#)Y*Q(@SN@5I>5<_1B%lGfYMG;K2iI*|LRGr%usowF+%;U{PxD#7x`i zI-O2dMp>)i;4p>a@@G?H)Kuh9DM=7iX*3!nahws=TCHZ*qL}z@g!FIP?RF-t*lM;M zA=yLdVHi5XpH4PZj3>~7SV^u4XbVN;y9=~1C=@0rwwFr_sxs!eMV195^DT|C5-lw4 zps1u48n?-$WaEx0DkU#=nq0Xt>$=b+%ypW)x-i4mi76z4311se;btvuA>$9rMANh* z#s>>p77+qfq6pZ?%*O?zn9jq-MZ>Gc}ftFt2dn1QB(ge_|!3Q-1(jdG2_`2Tm;TtFDBHDo>FN3^=nol;5}Z8w694HF{}HVOr%s$?%cf0Sx_F7|*cjsz z<2?I=r zLMfTDf?ZX`PmOQo?)&fK&A<7})D9g&1Qj}SbDaI=qdfPuzvcPop5vNsa5A!-?N~Zi zxYqbSW}qAWio$?hyLPdA_Z~j*fnQb*m;mP07ytq&~f|5!)jfWwK!7!!eL4O|v0e9YY7u$Ah=kk>+G@DJ7 zQf%J5nfvd*pF@WZapA%R&YwAr5YXwwEG;c^(wQ! zE5k^oFmZ>22M+MT4}Op@ed$a5!Y}*+?RJ}s7ccVQgAY=x)%eO+zQUnHhxqolzs*Ar zJ;cX8_Awg1ODxT1wAS2p*Im5#z3=5O{^BqA(1$+60}njF)vH%IapDAxMuWG!Icw#!U%E#TyI zW2C8|rC?EaxY21a7YB5tCA1c!#`uvnymI0N_Cx`j#sXv*W~DP@44rnzw?w-zAyNv7 z%d+AmVXRU`NlB;EAq>Mz11Qaqj3}2ZBvGw~Obqj#CX0aRG+BxbHp%mSeY>&WzLn?v zNCS;do4L5jvhI)sKB!WP*|^DzS6`)Gt)Z0b)aou|-9R(tK1nIP3arhf8l>@vkcY9- z-)0D!Z|_!t^W75KB{_+0(bgTlcVmguH|7vZx*)*n44HA=NlRg?$o+1bfoJ(k^&UcB@DL9%jxkv^V&M;UL!2XKy}A(g+Rn53!cPY;&5iXAwQRE zwHm+v>%Y$Q^fX`p`q!ycD(v06m+jlPQ>)cDd-g0r5b%jle4@ZH9K>hKI9wRQ5F!Cv zV!@jyr@8yx5AajJ|J#Iz4`OsgtQ5ia9lUApAr8FxKE%KM-#GDuXIKs;S37Nl3VFxd z?&rCeUS!|F13dZtr=PWIBK}ToIDuQ~I)13y*r8$HywmtWhMr}I_9*ogg z6%f)PvWAYRIPHej8Er z<}zAmWptZbg;?1mmYEVJG0xHg8&j)>%!q&sjf4bCBI(gZ>C=x=9H6Fa4shRPv)`vB zxcmlcbN*rF1=9P*RepMXFj*t=4I^I?N@VKGp#xtBM@*B$X`iV}y1# z5gB?R(?D-P8@s=rta-zi#BAGSnk{9aIwh5tl;|RZnLwVDOpQ-aRRP3$WUf+LJ~20G zecrrzGyC@K_HcxNnO>erLr=EI>=bn3R73;pi z3WKzoDI$*SJH%T*{L83A2hesBt6~D%L7D)qDn$3aiTgkNUvuu|SEwy6Q$@4)&>`-- z>mDlADpOmgdE$Fda?d??bKhI;%Xz*|TpiCr`f2!qPm;jb&P`7PsDd8~gU{XMS#;#ksj| zKsbcMGt9>&T@VC==qUgIAOJ~3K~zLy2yoqD*RNma6QB45ANtUT zNKnkp&2#YZQCh7Qd8S6MPKqFkP>`(wzfDpSn7@{x_1LG!f zEHsJjWLzV1WKvPq)5s}Mi_$(3EA5m+Y*%8v5O8=Ml@!>vx{EAGB-X}WuSa(Ey)v;u z*Y+xf1*_fLI#m+)9I{AJk&5NS`npY8xk){eT%e$BzQmDUg94L~ATct?$}X|&`Wp$M z3ISVAKE(wf#uGt>gru9*NP2bdMPCkrCD4v@XO$$>0;?0WG)}k3IMKxP0=mk&##;r5 zZUB&~WDm1;wY^?tnYM>5A|FZyB>^$Ffe1yxE+c(Bt#l|&Bos&|Kx_fyaAbnyR`B)!AZvLN88>uh-~>4ARGyEzo*St5}`8C#3<4c zFn3AORvW9rkr>NfQlbQKD=M)_xG~C@f3bGkDMW9*&2Hy(+GmiYq-td3;xh19W5YT} zyYzUR0y0vs{jiHwE}+1`N81AB(_(*uiyNnHwr8C9^+A-WuL&R%ln?}dUp3P_b3e7l z@m^Cf!RM8o*WP~!cy&9NhkV%bh&7VqlPFaD$C{37XY5q9U*rMvG!U-J2s{Zzv~y=` z-7%I+RX|i+eSv!{kKgs^fh0wlK>y_V+Df}Cy`vOtUb^AVAQ8EqN7C9QM{l;4%gyrM zP@U{5%Xf&r*!R~5$E#@pAQH7Nj#!MtV7X`S@X((9mnGldV*PLC?=z^5y+!{s*?thkZn!q zI7u~Q`(1@*h^!e{Sd3OH`EPx0Z0%)TdXeM5E)PAegZQLGoZqX3+x|1;ba*|Vw_r6f z1wFHWp6K0jf1bHM?eTvYeLQWwF~;z_z!+&aD;Fw~Mz>ox|d7 zvpJuqQ%3Tc-uEhaZ^t=By48+110V&->t1Mj0Kj7Esk=D^xE36KpG@EcyB#KuxvFyQ zi~uTLG?3nB*|26knaSA)#CU3GYZ?-7EF)*>$2(v7pPl9}PfVORBD_Z#(Drp&oDFAO zY!~ItgXN0V`KZWQpp(`OB9#1x-TacBLg8xK+0$kM-t?(mZ+rHE$E`e5{F!fLTSwa3 zX&!T8MsD7~T#nILP`mn^<6~pslg$9}biVaQtIKuIR1JLi0<~J}K{7AR_!Kig|5Ry; z-eHqaGn(?1S{si7(@Wz|>p6}{5%pX~MS=?9T-?V|vQ!RHvoRpGQjtq&cOoI7KgzgD zyL0gF(0tH>^*>#&V-c70m9hSP6#TdCAMVcwDQSAz+qFPz;P(UXC@-5B3`!|M2?y{k z2C6AzGDD;pn-Gl1&7Z! zu65BKGv#&2jKlwdLk>(=hF+O68RVRHcKjLawuk*;3Hqda_Y>n2dXEQt&VzWTj#92V zash9pY)B)R^Q0=3stS^`HjPgq_%8^q8_wvyFU7v2fWMou++m~DT2~ejd&bPj=m&#R zsT#48hKU9&AKy+q%2%pBcYnNpjsO`h`0q#fSFhclz^}&_)R=7H%!7>Au!!^w;@*K(2Qe-1Efmi>pv_D%an`Cv z;;hF0EM&QqZ@t!FooX*@oS8*1oV6Vex1Qwc&4>bAYQA0Brh&9N#-#ngC z8>SQNL#QrLT*|0*{{&x4snN!JbU3c9NSHTcdEy7gDT{O} zj%W>a?R~K+9wCh2vz7V~fI$QZf*tNiF&voQ-2A#%9C6Z6Em*7eFABdQP!u5w79g;V zcF`JEYvzS9A9-vx8j&qoV)(DYBL-{MEf7TsKcD$ONewW5L#eB4PcHhey5W|h{Cfe@ zFmm);Yo#%Q0bf0(N>y{Vi~+@R`%P=Ycv`LI8tXOHLl7v;B7ufIIV~fn&uk*<8Jk1` z+j{rR-Q#s_a}aP7JNCwN&izudV8N+mb6NhQ#&L;`@2JpUW%j~L2Q z$1$(vilr5rQ7u=0UVc_-zZjzG(3UQnY}yz!{uVGKDDqC^uH#(`q{d^?G zFKNX(#rKHQyy=2XpW~GVaK!;6(P?_>|C;`m+XwDg#X8$d-PLn8-y3q@-rZe8-$ZtH zbwLO&iQe^rv3}-yVS|BpJ_dF38i|mW#zWED zDQOv*+M4aw(!GRCu6L+^EOYDQrlKwm4kZ0Ck{H9qPo+C=K|36a;7<`AnindXUu#q6fw`a#8;%Mtkcd|CeYCDS#Fi(W<(#jT2yKoT`qJyqL7IuY;j=SLO zW%3Uy{Rj|tQ~E^JmpuzGaU%tcM48yU5;~d?%JQ`;eWOCfLd+pEYsWUpK9Dn4vkHQI z^#Z`zXe?>!_H_Q-#M4)Zrv!h!0H>7VV(LR6k1>ONiA0=c#4^vKQ)d8An_DC*ASh8T zS+vw{ck`3UV0Sz}QE39mtAA`Ez{l1a{qX(7fBOoCdVN+uR60-I>U56UKv~5|In=KX zJ?b8p)*?b&qs<;}SzPUK;uv#PvH1)wQ>eO?|~Hb@yK0n7Cax1&!>pX|;whvCHl6Pf!b3rDYeNJGY)q z&$b+YJA$U_eLpLKhdd6O{g8pIXvNCJVoZ=C(hsP(+ExtBHT~;~0Rhdp2SLcisjUt{ z9OlHt;=iKQWqvP&>cebgiiOjuO=(7)7ds|_+`ms2aNul%GdSrTyT7T5!Kpt|lZqd3 zvP#6)bTo_;$MEz%^>Z}iwIx}vH7Qi8rlqIv>V1s)4*cMM5&&M9$+tJK=JmRif0@cg zEY;bZeaXk>c@%==kn~+wL_^WIdz0K31UJ!@&lOG^X5mLVh9U;7v|YsCy)K4=Z*Gik zJo0k|`$oas&D==Ae|8+ESG;?7^>f8gE{2PT!crbQLM>FHx+9)?x`>GG>%6|BVp3rt zxy5i^bJa81KFl?*?zwW|0`=W}e@w4Ob1b=1Yo*hZ9Z<0hw$b&9b=^QzXSxSzdPgGD zcm4(XD}crY{iJVEejrSSvZfhBo1~q*xdY)JE=+laJq$pLuZ=`n=bMD6eI8QceRO}u zV?&S8XbI8yNe*ipg~@q;IFbz7J>M92y);(O9y_^RJlXTzm&(l?JN*j=25J*MeCJ~) zkb?NHhidM=r~UWMZh0Sn6;=u)3jye&B{Q>ji=7|9Su-#)_5i29t@o+c3R7nq0R%u` zvu`=V1GIv^yLnnzn8d^7)>JlcGXpDYkfN+n74{Ve<91;o>EYpFT2_{`cr3!%Msv*H zF`GaG@j@=qMlR7pO;U*7C1crd12A($m1n0C@r}G5!UEy~%RgX8OiSGNf1!YjKkJjc zw{t{85~I(YueT-)42W#rSGgKgW@IX56g{=(yaI>x_Y^vv-JT!#`%0h3)v23269E2& zPN!S2V&MQZGyV(|1n}lH#<0WTMtRj?5hQG)txA%|4ce+BMB^NIg3$%oEEYwLcoduq zR_gR(WD|;ud+v$dTc@pLNsj%xVG(Sh+zGm3oF#Fb`Rj3=_QL3O^ro8uOxMa(e2yA& zs`xdWn~_43ffp!<{>m*i{m&Fr%u6fh+-9l_inu|yxrupumlE#Lkz8~lvav_EPq64B zW5R@LW{tSRl!~)q!jfr_Bvr;;RsGCZ#<=1+%}(bs+`g)v*-wngy3*Cv>Cckl37C`5 zBjs%9oHhYcgld4-k7Ld&j-1b>1WYmjhZzE*Jc>fICQW5(RN&W6O=}%}>*cw0fAj?M zw!6lU=ja2DvzCsvPe}BI1Z1Sr75s8o4-g3`+0&hxj7eSCm`mdWdl5u>*&G5)+63$Uw&Y9H3y zSg(`PVqio{ka!{ov%X|Fl#%QV|jT_R{e!M!M}TQ9wgxVq&Uc z!#UAGtJNf5y=2~)3}so1aO`vHTNZ0RJ#4l=AECSP8 zjr;9k7j&3TF?wnfr)*H;B&4f#Z2!y2m5Z})3Z2y{tn^F5e>QdFC#S!!)>-<^`u}r9 zfJ&W%rSTbj__QJ@L@qfCt=KnMnwFr15}$&iyL>pTr0W$#3GTO#Wb{}No4QS9+kIP% zEQ5gRD7%lf0k5u}TEd1cWgFCQ)B^nz2*+Yf?8Wf=v84lZ>pja+rpEz^q=anO88|&aUen5mqqd9$Q>5Qen=@PSQ9xu0lEdO2{PObXUvkNp|q^d_+#w>`yZ5%zPd|nMrTl`hc(VzM*?;g z!lVBgAw{0w;jqr6*N{Lo#lwNM4qLP0;Db~xwb3x5=IWq~XsR>4lSU>ofcaZST1JkU zz4xkwB5ymES zTwP*=@`E6}T%%}?Gz%n4;ua`K6}U{KA+bc#V0HMVfhdw1Obr+VPNt=`tl#qfc%7h+#p9E%z2{f0M$h;%lAOi*e}jT8qY zM>lPrbn(+4>kc|RWMsnmLElOtrDt4zHNeOc3zdkAM2>?^!DJP@c4*~{g!fjWV-T?T zV|}q+)3t}5ChZsY%*y!N)=Ieew|LwW{#e$(0ql6jgjkiGEH_EmtwA#K_fbtSBYg!j zjEI{eqmU5{(vD`|m-49Q(-B7=F!2hZ4ZBB%OMcZw(z-YiC=qG|imz&+>Q=5L&Y8<4 znk{|^Xa=b21OC5B0dHLaD=G{ctn)^1Z7|$diGsPtt*UuMY9`j(jv+P7k%mQ&`(I(Q zG*kSaJjlq%JXe3eM#jY4E{Ngf&R8i{FHKX}(6Ib%YIU*>R;tc4aWM3+Tx+WHe58ZJ z;rI(2Pw4cz`)|(?VXpeRkTWvlvr_SFrGiF;@W{8+M;j!*Uev5Zv<*og0EdYHW%zJJb5y3g&7y`$8JI<_3g$l&1 zj|D}bGe5&EjhrEa!?dB!Sv0nI9YE1{J%J%3J4fU3hA*aLv)j~koN4auafnJTRVEWD za(%^Skw7vk{7J>kL}dAb(G5raUe#a=PEAL?8RjIP5_7g!*tiP8yH$zm$|bxYxk!j0 zLRe{%0Q3;R6-SdCiy^saSF_+89UW=xdFZqDF)7$C@0!XM|9v;|(5R+XV zaRdM{AyaF;#s>5xz@P?HA6a_(M;PgNlC*^$0>7?JdkVT-KW85WKN;^dMTZPZ9?8`u zI+^JMH0Kv5lENZiA@skQn%5Q_!tQs}DuJlpeB3ARjhpOZlws$oewfQYg$wpeIyQe( z!hb$6L*uAaQyjonxO7P!x5dwb3deUapWVQE2?%22m({^+@fnITX&RD#FHlrNWHxCG zb!inLfeR}#qKO95N{CQZBn9@ic&(eI;D~E1-x-0sCkOTuM5(p1ZnjIwPuCqU;jO!R zc}rLq*10^}erv;4hW0~>pQdi)y5v*3>aEj#UMngzB}8OekWmOU_(^P2oj-roG>DYV|DcI^`Ftr{?EzeBDMnW|leXgZ{X)v)qm(^a zkqYoKdssGVSfiaPws-gspu;_^p(?*AQYj-K3^6L80QZgsXf@yeslAcOWv?>2pEI<( z`G$ZS&EfsRqEVl(DedT|A^4mXj8(lSYnlXQK1K zIx_hka(`t#5H=uIc&I^(77lNDYV&-~3$*MCq#J|oj^}7-=>RzwFrIt4C{;FgoLAZ& zlrmmx9oGXz#Abox>e`hCFIdr97Q44?E+D&gC0}idJ#SjW=bSKFF4>|b7X>@ zkKCXLfr$hjF1w46BJDPHig1uYs+eb^@y8|cl==twV9QU!x!KwQ(KJ93Ib&91tohV0 zpjfHOBz70@@{QJBWL0r1NoetQ8vF{r-&eU)=$;C(LT#)+}RE zQs5a>o1^4b^vC7d26IxJDyy0z_t-o0=pWagXs(NXa|T`r zI!$TGq3vp71;5^OGG?SI=pO&LKgdXk3ZuOV?WOB)bkm>h*r;;rT&!c)Dri zws>VSz#t0#60pLnm8?(qN>&wB7bJu(_mxB%Z@_=!`~}k4-mW;?&)iC#wIc6n+ZNO+ z_#)U5Z&Q2u)6F+OJlV{=gtCVNQYKe{qi;$RLtd=5)Ebg#A`l^v&2Xi`%xsLvSs#-a zXGtjSJ1VEF2o)C>VV(%V*FZlB(h^J|6$x>cFcg+R z!#{Xv;}|3Ynf!&-{Rx0sEVqy_j-wlgIIB6XM!9AlOoG|oU5$W5kX<6t83zeEtidcl z%NFg+_b?T(N|rd8l2D9*TwLX8B#R=U4XiRjMAF4?{A?x?<#eJlB|l9tKEi;6bOC3YT-5N1{q2@wH2_^)^< ztr1w+XiSd0Q-%Htc8UdypUaR$B;9aiVp5rBTh=U-;R|t~<(qoXntTCSsqUP4Y_GFL zcKRj9>G3b*wmS^ypHb0~n8h6xU#Lk{TRyj#z^GCC2@>FFap&05!GmVtB;q82e#9rd z`|;y(4#2g6IElZ2@&G~54g{nK0>o^NHFuL^1UqjQ20kc4?*$1sO!Z!eK2yh1=$TnL zN7B^vjJGzuy&fEM&NZ~=8mZ6Y6$RgY&pKBUNS2%rpW7omty&k-HL#n?z{0^pgZ_g= zDiB6ePB2So6KhBwpHH{Zm}-bR7I+~(RDr*pX3lT6vBYdl6SbZd7Yd7j@F#%)0~ZEU z`Dsu}_2*%9e3X}2^|5`t&-w8xG*a8*i+DQac)YNQh+B(Zx6dW#*7M|}U#)Ut5f`I` zg<=O}iR>n6b61`Cd;fb--Rrz^6o5Z609uNVcTWY$nbUhYJ74Bp{2;O}^cU445K<13#jWRamx92ZA)ZvBTL14&HJ$st;FzToj`ew*50qgF%1 z^QqHV@o_j_mEYo#UkxgTH5iZt7jGP1o}flkOn6H& zC|NQ%o`K{0oysH_+LG_G>8lGc2yA~_N_5q4BKl81#re&K`EZT)?8 z7ib_U5iN#DjvbCXbg{QX&l{1RPNW+D%RKI}`}r%~wcdxBwxi zrV@{QrNizKBh>;HR8Q|Z4m!8>Bt3mS5h;5mp~Tm+or(cWi=m0P#;8K!R;!WC(|Dr0*lK@2i-iXeDM{JuX~wnXksE`>}@ODuXbYW@AmCI2L0+P zv|Gm4gT}P2s_hnfUM;OX6qTY32XXEy3WG$T#(Z!c`+G~n?D67$j#*83P-`GA1n%%a}kauYgk9{uDg=~?W=O`0I z1>=0q8E)!PF`8RSX`xutwz+H4-lwu=R9nU%n%e>I*K%tHVo(Qn{ZA}GK3V!sF@M#Ch*pDPl;WD{B~V;6i;pBnt$dq`X%PEeMSa} zgm0O(P{WX*P!JkZGWYNDG6ryZ{W37fB|s=PmuJ=0(K+Z3Aa_5VU~hfQ_6%hrTnGz; zv}nYF=ehdt^z@YHaosVK)7wK!K-tn-9PZS)Ee+vx1`v=eFY6n6`3D7kYuljPL9qsad1yq?vpIz_L=PP~l^S^4^F`%fbwOfI8)PFn70n8zx<<2MfSSi)oCieFB z!rZm(=RbiwFkdBjI}xU(bFV&1M>J7;n>-4vp3c~I#itDmA*jyx+|1gBhJGOV*L^RF zT|7Pz)cvZX>vb&>ox{5aqZ zlnNlwsO+Zh?yU%>vzj4*0fqZUIHuM!oH$`gKjWSxW5CX`de)TpJ+Nfx`l*IRei4*D zxYOFbV6;~__qN~t&iSyhq`@Gu=uC_-icA?}C*On2$>F!Z6umK|Bxc&;Y8Yuz*lSfc z3BT!?)7{N5hKjo*ENG!)m(wY7>L(LEwuve*=8~Y8RPilX%D4S`3-iMZ(_C`S>1VUa z{B`ix6a(J4FZLsd={zE8y9oZI_3;6V>9WO2SJY6QnYnbC=Pl-a!%82>lrjY@qtFeo z1qPL0XZM39vv>u5pFar>-j$m1ysab7@&9VJt(|tRd)|V_!ykF5POzM%_E*Gqz{y0yQv{VWnPD+ayR`;K3OB=c)_*yHMp~5?CS0ZGP*DA zzWev^bh#FGT`2?=#Z@S$y@*m%KB$f)@jR}V_Sv2<5^%f>0T#-3ynQ#jRQx{AthyYI z(T=^fe7eRyjbSeS>J)|~wevVts?W-#hhy+L`*Yp5tYt%&gafkx$yjkyANtzlXX3x3xLX(0q&zVx7yY!L;V*NqC=L zH=@!sEOa(iLbxxD!bAl|l49%BJf9w)cwKi##5kMGBB*lIjG68B370xgztK}bX~>AB z;b!E#M7br~jJ=2wV?L$NkB&wnaQ1(a(5 zXEnP1r*>S@^9?A@`Ct)?!P&XmAqLQ2h)dq;t{1Agxw(#~eEg_}d5WAA#^6rRhZ-{& z!2Sui%*XpHP-nKUcKQI8yuPWa7jRVuP3dj#k0b!I{Xabq@RjXx_HwW0($mwa7Eb}Z zL0_@Y`<#wBB*t#<#X0-4_;Oat0|H(C#X>dg*m;ec>L_Nmnrh1y1V*SG{+AhR;0x}^ z&U4A$HNZ`cRogU6;S5z&RVmuCxE(s?>?Nt`nizQpEJIdxct^um>=g6AG1}*=#@0qk z2)S6m{6BfZ|7KsM+bs%cl*5VAC&=pS>zipW8WSMW{wr$Zy~yDl27MM+-;Ddd=&aXz z)}l2)@I*K{WWK2JO(`L(EPlp(W;|{_VP?r9r7P7xXao^BWD7Og`xtoyPo44q9AIH= zk{Y-G%`0bl$M6bUY*$y&Psd|fCbS24g{^HjoI&BP_qLuk%~!q4HqEy0-GpjcIU>3i zDph=D)y9f{=?!90f=UW&)~E;&r#38%({NQjp@HRrKcT|sXX@+my*H-H@j)pks)(%N z%Og5r;bWidD-+u5?z>0VBYg0iLNIB(oQQr;}PdkWUk8hWI%+V=7 zbol|eS#^IZjPzt~_J`zdo_#;pgyr}pxEB8^iL}r?)KWg+bN41FjIa8>Gpi;ix2&J; zc&Ylw!ky!WC}(Z0`~EfsUL&I%_dpae!wiaZ&h4S6lj59$Tx_p*)9M*}mp?|b&=Mk) za2{@FR|45DIiIiz-7lDm=rhL+2&h8$(*k(eCEF6u_`cVlGnVAz*gv?Ah*c5|*TtjD zQ>T2-NaQ|WOfk6~Vhh&tjc64q^1LDCydMy;6mOTdKKN)^)P!SK=&>>7G>3|dA8ram z@DAr^^5?NoJESlz*;nv!ca}c_o^m>RZ=uU8BxMA#s`@-h;Ar*raBfSD9Jl~X!w{3IP@A5Yym&m$;XsM`S3~UI z-0UnrmxuTU)0j;|sZe!4M*i(g;CUSh0E-x7JgYtg~f* zcqj$ThxQcu6==U ze}EMjVbTOQJB6;!7B^886(r1upybhnDm%vTq(;VZ-?gX8;rODM-zlmQmIRiIlLx(^ zB*$^CtI zSiT`#In*3HU#QQK@YNoncJUn+2!$=0<0eS%X212ZCG?i(0n zIo_aRu`^y}))EZcwm-zOyw4bV9G_pZ@N*6uz;_ghzQy_5?6%t0O_omai{4E`R)n}+ zV%Rr+uM%r(3T&&L3=_lO-2>6rxS7K>6j~5BK)+GYD?U&Rq+D>1jtF^{sFE&{Qjkn? zSTP%P-+3KBDd_5TNvKgQ{^n3rr?fWR0~)edh@kbIxiIR|3&?|Up@t1?XjEUNRH&5Sc~}E_@vWyp_SE(I5PGj`Xbw!2 z*`)a=mWq&j58O(l$YV#8E$>&{$!zb0TXecVf%=A1BtRh*RtR*AwrLk>Zm%~#qFAsq zf??9)$!er16UY2wqhw5|H{=K>hj_Kl#0w%e+yqffZSr~oPD9$=K3O6BANJW^clLDJ z98=u3-9qgfbmHcKu4?aShL~k=$h=9@%kJ86_>c4VD81I+x3{+tpG~NqxYr8-_gD57QCt<(=sUqKM8v_KMMLDZiv)RGvfu-FAlymd$|iZbAfq2Z zh}eNtL*n2N&>PNY|H8jzR)>qZJ3h}s}8ML@6A+A8ufRZqk{2g$;9mZr*ayZ zP{3NXHWE7V1>8w6R+aS!zB@x|L=ogs1+EU%6`Y@d_|#^?PzmmOK)V<0L0=xC2;#;( z6CdB;ew=v)qj)ugl5>e{;Mov2!}mR$(`>lcRv0ivHQ`x8`Lim!2p-?fUsKc>cOAHaZ$~z?y>p%{;WE>*7uX| zD!O1Jmv80hR+D+^PkJm)4rf1hrACAKu5ncj64=6VY3CWIJ3LmDWm8SUp2kpezY2_l zb-*w*p3jwluG{%Jk{%y?2P$wh9so$%Fh%enhv6lQvZdRazvJs}K&*(Y?n%;ljVR9kk?gzQo~nMKBbD|6}{*{*>qC zD8Iw?Li>-NI`cG|EolMiG3~jC+4s>41+12s{$~<7{&$xDY&)*M!~5+XNcMy|TThxDZI=Xv-Mrl14-I zUsF`YJAB{(sq5$%ySt|yr(H^q{qR2R!y2TbToGNgHd1f zQf1pG?y;BBGP1Au@vc7ti5! z6gtK}LE|5qPeGsq?z*iy+Xv_|zoBHwq7%}h5-LDcG?Q>REwVNhZbrB8dS@Bb>FTAu zCZF;UgH)ms4&jwsxh<3-9iDia6r(4&MWF)4k7c;9wW7pY>9n1+VBH@R@0o(X{>gkz z*iuVb$aE~2=L+e8r-0=~kIngM$9Ctz+W`*+5`@S^Dp*v=zz|v}7dIt17c98$4WWa{ z*o|i!#j5dxCr|3-j#0&$V-+tA-Aip#ZqfCRg%xHc+b>269EVt^tV1HkUZ}xLu7Z~P zeQ1g5Rs17NOfv>qAVX9Xijs$Z&-V>c*##(op7Xi0AN>JjqHI%1FWGgF#dG{%oPn%L`;G zoYA(AcD=b-L-&f>^stiqn{!e~Jl>sIyPuUpDn#oi-xZ5nu7A!tm5O*?ZJ@Nz2udYg zt1xYf<@VC}s|3T}3bJA`Fn+QBmILue#CVFMs#Q}x2x4Z-K%}SzhtRxVh3iyiFfVNS z-9r1Qe{}kM7;;cKu(7j(c_z1@|MhQSWPT`xea(!>0yRY`!vvdob3`<2sjINALX=^J zBgtldWg*|RN~?D?&-%Oa)s+i^=}Kiv@~weYm0tHG{#y?|Oof5_57UpWXODVdO$z_> z8h@`7B=@l|_uYH6VAyM_PWDf(t=tvI4&x@WRH&mnI6B|fZ8RPqkI^Q8y)SqB`Z9)K zMRA?WrT|l{!}AR(*&sOvKDLAM_WwBx@%CHpP_P%Etf8Q5n5oTxaWg?8ylfd<>DZ3Fl6 z+{TQtte5t<0Cl7L&7blfuG{BrFC{fQ`*3=v57;JAv~+u1Z{050v@r0Hm^sZ6O8q6U zc5}nTZaY3}#U|Ed5CZ!^M@$IkK?W-ruxS+4V;XA&xej+mEVI23hta%MaC zPMwA4u$A+59ktOYXi8DXPFmt56DIJODy?l@(rWIJ0Z%r6Y5j9D+@n899gXOlTS4&Z zAD-DPC?1sN!4)LOP3Ss{xlDuGNjMlr83J+sBa4I(80<5Gvvz4UJ_yR^jL-;5-x>8H(IC7kpM^YrVT zkq-f%8o!VW0VkzQRrMqZq&pb%_JEu1_{3{XT)jVOE4!q;r6?7}ysDnKN6rY63e^k# zef70YbAirtMk^2Ew?R_J2q7}o^&*Hwf^HGEw%ayzJD#-3fJ$v^ z`LB9JZS-)9J|&?+?%XeLgt2Uq#M|9WYbBtYHw9gh ztcu5aXBFj7XZ81A`cj z8i&_DMgnp|F14hXnJ{9SrsZ){8;cgLs;cVIFRv_zL!HADx2+KJU{0?5xESr8M*iur z`kqL}MfHTbY>&y$Gnz5mu7P>-oWITN(@9jx@}oC&q82gj9#Qq5ciuKGG;|BY5J*`> zYu`(APnGCa@st+0i0qX$DJLNU&lK#lS>if6H+Q3S<8{Oi_mq&FcbibEQORUn&L6Cd zB|3Wp5Hp;kMjiDr3>+3s(8Taa*^yIS6+<_n+-aC!#|lKrUC73gxNG|9-dje8e`$CY zuM;MdKe!fN=b9&rao%sUAsonCXKSoLvhiSvGE)L@An zS^S-o%}*`f#`5coIif~iZ-#CCy2b1nYnXD>JY`_XERlf$>p{*I$5_1_Z*UB$jW;YK zB3syYhzY_5?BZni#Ow_bFX$LUKurQBzUr}ptM7+e)lL5yO{B)|09qSkFgsfJYJZbz zsC54dwVK9BLs&rpNV`@Z+SZQlaKa>m9EPQ%sC6@U26}2NU1O*b*RrekbpsCcr|KCK%KZI(`~C7O6N=VE@b6}{6hI*6eW$7!8r^3mQhlr;g>2E) zt4-CiD02*j+Y&6eqhvRjmuc!^9I$f0S=2C8!Fp}9M?rgCiRR<{HI3_#jZ0h8b~fQV zDN~{QX)I>mPS9#=VA89AF%#lqyG~MB=VMDQsP1iDP`;b)6zsgA>U>!yxm?F~kBgp( zwlNzWg8gV=p*a=7?G%`LKKusNiJAX8cRZ|G5`f=2I(A&oE&UTrxwrrZRRHLsgzp*p z{G2hq+0vs2>;u*{wGHO@zRPji>GR(@-d0pr&mB9JES)~hgI^e%!%i&aFD$44rb-?j zZ9kQYi;JJ1h~aM+SL)Y4|9<7M+a>&XHsuG5J-THq{ITj8@wOm6tv4sA>;6hv3ZR$+ zi;>|cVOQA=OGd|sU`5ysp8a%V$=;S2YA1hHRxq>>IxE1b*b$f5A+bzzmhfEyvxq6V z+fpsEzHt>H=s;gJ(vcZ9&mH!*-hPRWGRiw!Uer`H5>E)!tyV)w9u-(q2P@2J;7ZpSD*YK9z-&lly0p` z7D26T#mc!2+qU^Tnb3j@%S@TqqzA*NrDIrdcEFgb^921rBE)9w{D>L9p{ynMR*`DV zHTr6A@GkAaRcS(X*!k6{`V5FIKN5VfRoNxGy;UA|ACGiTzFQOVtyZeJ2#?NU9IGv^cWEyV>r4FwG|?C+xQu=H5>BVt#hWdK#w{tQDSs+soOz`=l+==^3cH z#S==|QS+7to;D4YQ?oxS8)c?Hu4`-M=kw6js^i=9ncHU(gmUQn5`)E<5+2{Y!26DN zm3rfNpY1sv5Q$0_Fq#>KMS)Jz9^GEE9@U%CE{#oc@~^}*S4T4fGXe&cSgba*2K}Ys+bfyBi|I&c0{p z6pq^-R4ytd3v>Ys0u}vCeaNw~+a=B}-*{pGJZyB%yaAS`epN6UM*cHhv}g{QT3U{O zR4Zdew@T^e_D&u&ePrN8jib{Jsp=tvQz)$~LfvZjijF7>s8%gq26qn8XzvaJvCtdA zG!vyfVi`^7TpzBLZFshWE1JNf2(_kY$sW^%jQ5NM=lWZ!tr&d zJQ~qybBmKgr+-M`0v(xTjcDmOrWXNV04@mU2OJK8j8eAyA!gTu)+b=k$GPdY2Mf@c zVqT{iTLo*!z}f_>{Oavy0tsZ6YzT=27`~hs3l=O@l4LEYdCeNlmTvmoiLW5)aPgw_ zMepPG^Pzj`^uDVlUg~Fv#Z(xgfaSY^V9BzAGK3PRYU@#5#HRcFZtsj2L73(G2oSSOv=I_heM z`J1^?#pB#!9ObXMT0k~^?ud$Ly8OgiC7nY%64L1!6nFAV>U;mw0z_Qp2UgzvUk&%l40P-+dQfEIg%nQWM&uX0F#z zp3XRNY4`5>8*6b|a!PsnlvQV;8zN5nnc9u3v(k@%bpQW@MJ zb$S&e2g;seLPcf$&E^mB)8%H@a1UalWVr68p7pU}_gCA`ut)kSrW`K5qo%L|{SIB@ z%DKXF@LII_4x{HvXfqJ78-)ZZl38?g0DI_jr_}X%-+j3HJVul2R=p<7A)qs0MWVAx zHiEPI&GH=1^7d4k#o{b&St?Q7L#Hq38TR90A?N1gg^E4NBtL_o;7<`TmqbjJOq^`I z#fX<<(0zdvl8QuVY};U4$&GG%pJjOj%`ZG_>~p%f>BuERF1kW%#WJqERVl=X)Be(8 zMow90kML#5@m((TO`f6VoX;<|^mH|4hKKExnxe{uhWRP8_B~8xq}#Jm*cFAiCU7{v z>X@R#vBzCtw%lKNyWDqp>fJmf=OmQ^k(8aT_UZ!ftD9>F*Bd#@SSPZ*UrUFf6dGl# zQ?52&*`H1?KYqKaE~&@IACL%83CK`#>GTEL_uB_Gto-^2px%aI{sD)iC0`l1_y$%D z*sgs%Jg2mp&{EIVCX!L$B8tR2&*iVxyW!3>=q%dMF!MEqaFijdSqzuR<{4&pdxiOG zry7Y+;!GdkhZc}Tqim2A9`F){AGsi*p{tfGSe|913b#WLTWXs>KKV{{j67Da>o?^w z;&GXW3+72-TQlUKYI&L_jVp^J@5fUf6)nP*WZMocP=8uIYF{Lm50k|()LPdl9d_+| zZmNQqaCn{x=__us+c#R_FDvtr8nOm+7cAn6D1kQgpJYP%JZ(2)>jjOz;|k1lGBbDX zSiXD-x=RjESi`bZwOm?O7VvxmdSHDouT0HK(MnYz2mt`YvvG;GDW1EGUmg6k7(-CM z0}XW!UF-ntjCiF&oM@@Er$y*jHh}hAURL)jIRI7cfUHSqIXw0u00RP}t**|0J2kS+ zQk9y8y48D`wASfhpzl)h67<3;L{L~cgMn-}991xhkd8*(?P1{itO5#kq%Bo#^T-p8 z>Nlg7)eaZu^*C<(0)ud8#5RxWU3S^?Cprcf~#$ZsY6`qjV{MvvJH&fNLYF= zEvxW<0MI}$zjp$;xXRLB{{z=vJ;Q1);PB~Pg5w`LSux$ihw8xtw_=? z83!b1KFd8X{e*iTyq8vLxprli>x)ZV z>@?|CVp5?9I?)om!lOu?q2nArlAO1e>+f9PwJY>{&&^?gqK_$_Ak?xRwza%1)e=Vs?Q*KN^^HQl0gBk&oyN;%Dn zgZH&zeenkK|Kl6H{QXy`PK*&b!Fs#N`Kt@8sh9=Xp(8_}> zcoG%Sa+XL65|x`WZ_0?^#e9J z84?|hjfHue1yNclbS6Tqv!r!(ZH*RHTEqGz z3}yU|`J1!++Lyn~#Y-1Cd-iSKefJ$so;=C?{5S8lYT zv)iION$#LivrQLJ?)MZF$^{mQ^nx2{432(wc6! z#Vm$iWrC*g#O)TB&%ICegNVo*1dha6+Rm^pYg}%x&@x>nDpOb=6DdR7?Xr>>E@{WO zFf59Q`i%wj>;ldj5CY>I8!lqi8g8~%NxY*LDU24xQH1JxTD=tG1W_FG0dTEn_{sYp z6j@vsL2ARC>UP^0>#0;?QXx?)!YfP58i&WJ#4K`SEMZ1CKncZRF)U$Sxf3XP6>LkWW#7yJ58)fk&&XKB~nXN*U(Nw z5N4#Jr8JA34zFErhj}7`fohs5Or*UIse*>8AiSn3Ds+rzLs+cPbcJTE2Ny2RA}?J- zN`bYGj)-ad2C0Q+uY+)sil|~`6%IkPN-APHQgO|~4et<(8~6-K^r8wLtb$HvyW_Q@XFV#8h;4_& zr8E;w8^?96Ios+YvhsO~!g^0CJl+essUxxq6<4t$px?s?@yM>vA;VTja7-88Qr__FRgipcfQXv%)dAP`+%V-BW*Iu9ZmVq z($W%N|N7Ud*XyARt5!oJP)ZjDqf#lP%pBB**6+NOmUMe8E-tdMu@T~f(!b}vhqr>T zmG6nQ7L>qiiBd7rRlo!eT%nydyw7-t5TO)rrTRrcc;NIKuk+TMZ{mGlFz({Tiv_B) zoww64yL@|h^AAt)Q)x}T(SWo=%NQ>8nnX%dF|zQ;3MaOX(hAcFrHi;yM`x{p0F6e2 zW~+32~@J+K-@(Q9<5a9GIM4C0}T`$l`@Zc0I9FL_RcqTHyns-gj`3Vrp!H$!dedTHhJxG`Zm= zDz#|WMWzm?BTUKR7@ysL70$m_uj9QZjv^Y3F_wE>IzC18(r{l2WrZ+ttq&Wl=!FF{ zs>W2S)euZZF?9i*ZZF6+NQ&~XHyI4Caz0-er>cWm98<5?aNbj|)&l3G-KEuRvn(x2 zOEi{9D6BUa5v2Wl&LCYxBqJ)7i1Attyr*8TVeqti9X4!|sj!C4x)9!!Swn{FOK()8 z7@gT<#8HfQ9%FiRjNyjc;HFfl#0J4WA+xskHd04H5KRi|wJP;mJqS%k5xQETm-I+X zLbq+XX)K~65Kjw5%rYI=;xKX-;;kR%OZtqnHFTNz--oX^4+MrwWm~;Eoestr#>dAC z4V{5u^=z`@$&<6SwKY~&R%o?aA1d#05I4WIJx_1mxZIAUEGt}qakm-3QQli4(S+iL z*nygC(b6X5uDf$a{rhfpW_GI&v|X?zrDRMuK!c2QCg7C@QffAFx+WkBu?ZV>D}$uV zuSTP>2`T97J`W)zULk}m+L)!^{=B6aRASz0e591baZE*42aus$(OAmed8XBL1ysCw zJhwoaY^Hsj2NikUxUBmleE;(n7djEPP(IEH?71|$^k9uG(5T!y%Q;uHLEP4XL$= ztgFdnWADAEUaO(1HE^Z-Ikfh;kaLFnpkyIzmp|h*S)m$L`kigwjcohP*NMn`Dk^B0 zIPVb_8gUgJ*HB*IL;^Up51YGC5ypq$FK-DJPK4|=4eOZo5LaSUCF*M;`MwN*7ZmeA zScmYSv??~>oIqQxR;k)JoWB%!DNuf}z-vW@3}*US`TX-4GCMv#MkTHEp8;=!Z|Wxc3sHb1P(?}rc1nGIS) zWQMm^lC{R?+!1-pyqT@KK!p(0D^;p-Txc#0&xbr2%XMz@^UAqFTNc+#hP?rx5u5e7 zGHs-SN0hBMuKfK&+?nk>#L7hL@_y?xtspUE1rd(t3it3)oXoNwne#40YumWf4=Yh` z2E_ks(`hY%lIO{H@|6La_4ttqmb#M2WV<%TO0vOv~EVCw`FKxWMfQ9zxG4R#1s@LFc)A;b3zS12)ughL@A zD5|^Qjb=q@V>FJ~=LWWlH0O3@-El&@%v>`B`Kj~REdoRdNF@rdr`)B!yb+q5f3(H( z6J>#KKG(ejuYG~wi7bHXZ>0XNigT&Vw{7!6D2n?uik!P+H&tE|%guv_1E3NKwtPH` z$5IZw#1K>@1}%89e-{F*by++z*e34rMTssKpUi_yA#_o~8w~hFkw`e_a`F_GQ1UO% z-wm=9HwBh{2o@@Lie|#6&1Q4+_X~k4?L~Pock86&+b9VQjPM->JVFfC_BNL)Wf1z? zk_4=W5SKwNPe0DlTWsmW)ERfnNKBbqGs;A5C&+LVa#0+Q!2yqk3Z|(H3x3aq4uiUn z10s=qKGi{lF1WZt;)))HoV~hz&DdlmosuiP$D+%~$#ycsAZ zxtv@n`rlWS$ubDPe4bk&XZg5$?~1@iYmKxflpn<418cH*D!k8lSA!URp>&=>)y@e7 zF$#w<4r>ju))*T$1Sb{JL8=5U56*26kweI=#t%08E-7Teq3AEX`TZ4Pe0^|u_5{w7 z_Z}}J&_SrpB_6BY00+a0Y}3gWT1Vj8D4`Ha;H)n=2>HD%mt2Gwq4mBre}weKDj+== zn{jGHX5IdJ-C+6WnJ2)xVgNxmv(X0k$Jvd;w6+YYS5-trO1iaWqZo}{i6R9bjVBRX9u5KAxcP(_c)*F4CMi`AKcRhy1#Po!tBTU zV6Iz~5X;Y5x!qk1S{tc>Mh!7I{v)YRV$-;Wj^r#j^C77AZtyyNY67|^HwQX91)R6j z+~k}?$r!ByVYZX~3iW~AwSflr++vQ3{MJU(~0&p1@&fTvjG z@}xK0uySjRVNu3mh3Zj+MZcwAa?Tbi>lY1Tra5w!2Q+R-3fMXqh_XZLLViBOriA_$ zpOi9+*blIS{6KCwGpN*SgVtJhe>RmeHVuxyttG+V!uxJ7pT4_D&%eAr`u%bM;j(r> zoAwLK9909`)=pA7cOWWWtpOvU@&MY(V~w4fYJG^KT~&n_C%+QCc^-xb47rjQZXA-E)_Q zZn+Sm&`sNoBJ^&r`&P$kJK;ttwjS4=j$hV3+wMB@`4>geuFGax>jAg)9c4zuFS*~* z?QE#Gro6n11$k%?mH%bUdwwx8ww(|bt#wwC65F1x&)RG6{$<^r18#-yz0pyqEFkag5F0n__P)~wJm3}Mi|xVYE%rmv zy&d-Wa6`z27=*%$Zl60@0N8z(+lVX7EI%kpaHGb%Z?1RyU2nJInYAUyDm83Zd~mWK z?QgZgk3uN>=P|lybh{O|O~{N6S1G-7eA( z?1O!TL}p}dac4qqn*tP{*+q#gCLG)ljPQ8n3+~5Golb@CVyQDKFD;O9eFl`sg)EsD z=i?xDUF-5Wx!HNVmwj@5F|MZQ?9I=8fKxHFAyOviiqRzD;WFYNiCOf!uto-MVxR`M z>HF_OIi-A_JHB6Tk9f$leN6v0}-u@Q&W`2u+ zdF$~IcU7AA=Z*7P=ZXM9d;|zij!dW#(igjZj=b0!A^DfrN5@~?GT;&099ZtqrL~pb z&Q^%ZKnA^wr)ej|Xh%}6*d6z!_~;wxy!fwKD(_#;H{sJppTSo z_sngFAl<6RmK<^$-_7UxO45A}RC&Da^m*86j@_+e?=+61xIWg}O$pBJa*jql?_qE4 zcMl6STBoQ$@k<_C`WBmTKC~P_+(!N}>YKDy1(ePRmn1Rbul~04t&cvU6}ui8KhWJH zwm7;NdHem2{4JZ=ENG$tG4FtoG&Q(#Gtzw6JDei(@&URbO zPETjKizg2xAql^h8vDJaXVB`DYN5wgGV z`)#^-@^*Al;xGjs#2~^{RzePJ-odWH+^eckP!@7fcP1AO%r-)~De$qBRak6xV{=91 zd~Br>BLi)(1d)X#%i5#j{QXu%`@#E>YmsCfSkjAuntwXP8c{M+z$I8tL_SkG&TIdE za5Id2&=u*IM*3<~`2_V|;H*P<*}qq26Su62h7VWdDc42|BzlHN<=#+Jx*?|U&Bs{ zymIJ%k?Bh1bQvLrbWj3EsPJqOqEKQUm4Qnk*p8)Gm{b;;O|C326P&V3tGyUHz7RvY zISfMFl_%n*2&33k|dZ9jX2bpRE(&?+Q&+et*Vk6XmYE;bdhyij{C6T(Rd_ zA+ZBOhT(q%A``hBoFkhMPO%vP5S~HAv;28s3vt!39tEM#{5{SaqDU2}mdm<4b+*6f zd+qRi--;9Dyeny(d6d*h5f^h&lyru6)wwm=?V39@DPfm-Fal(ZLy*YK2h9z(d8@p; zAnO9LGTad5!pR#kqz&ce$a51uZxa^-oUQcRz`?Lo?D zh>W4|9ug@r3RGHpU^WF#9wS1)r@bI@fHvU|dB-jKHXpcMkYRVUr;^-( zCzVvHoXYY;{)<$SiXBI`m8v*S$yMSpGiJ}OK1VCaRECXVI8O+i%)7!h; zd(L_C!#Vf9_kH_)djTLRjY193J$>JM&ppete3#0Aw`u(q!C-B&+wf9Nsnv@b4m-g_ z55PI=bigtD{GzrcXF3VU+veGt1tFt3+}||J=&;Q*|D0F7opfKP_lvrY>_S=_=`4{0 z-|unWN83}(#ySAi^gc{_XjMlo`XCxG5}GqF%17I}`)I5sHED)7M*uqjH+TZt2s9j@~L*zWZ46O+rf_bKKsnuAiX&N3!q z5i~0tt8po!m)O#o&`FjeZfY~N8gu5TIA@c)_*6vfru4AmN}KsR`t z#-woBnrY&c5IiQc!-5q$At}2KT{^saW1$EUZ*qV^on^LID2+$Vcq)(xCIvl(T3pa3 zi%lw*HnoIQld`jb7e}lm>QN+^nF*GxA8N^TwfWdI79V_aJD0jLGGPa4{?pI0v1XTK zuF%v+iqmB65lQ!J>uOe}Vyl^iCpEsK{rfg%$$FdU?V5w_X8zg$Az~#(Q;MC^y^%&8 zH(jwqL?s|jSPF*d6SFC{*eX-PU`^Z?001BWNklAvYdoyh;! zJ9ccwKA7ywWN0d{6AY0w8F1QEZKFX`f0Z^Ty^JZ;UV*}$R>23-^i6)FjoCMinS!DbAex{z&hD<(>2 zfPX-&UVYz<<?ieobZL?j#$Vt=f>34f{tmA|hQyHqU$y$M2$PhaL348C+Skmuw={lPz&+TeNY>5+gLdAwy&abR+ z+B$kBP9cz@nHi0xA=@0LYUlp-CBy;p>)FSIOhGG+q|QZs#Rj`1So7b85ANZP{^laX!Uth zODG*wh)`9@QM_C9TN~*C7#p1wp0p7d^n}XO>vj;a$?&lbSFo;h*K z&&F6LSfgA?@J84SV=iu8=i%NuXO>r~s%k;NlkX*CT6U$!)!kig#xZ+Esv3$WU!=l0 z`lgt!VW?}Wf4t5+uhMlQVjzfL}v+Z*Q9i`s=LQ0%yz& z{XAEA>PZ&+RK{}4kGNj#v7<_8xjqYmsL&}o7$X!h1*xWG3dvN!m)eyfc!EYc(n)Qe zCIGK3RkEdrOq|z6gs~_=(g7MY5JGA*6-5$vD?-)|tJj|fAU2vjm5F%MvX}UX(HcF5 zECtV*rB!;-AnK;9CMuimUqmR&iW@=LRYTjbr>>H9TtQD>~vBo#I{^?Qi3-be=8>Wq}8oE zS1a*{tYWTHg|zibShHRFu7gv-*a|VBmEd=X+GS*v?J#C1M)n;_`96#hdQp<^W399< z*`&BN-$RTobZ0tm3xzdTuw=SO^ttjXAaTloeB=yU-m@1xl}*)0`6wsJF=v!p5N7Rb zZ8fES$~56@LG4U&9I-wlVh;Dd&x71ks>&jT$e(@*U@nO!L~DBsilr#Y>zP> zqmC8n=8|XI72HoNRMTnQN{6l(ZkF5Z*pfBiY^TrDs~en_h|?0E1Cgnd-AuR1)LEib zTn)*)>2B-kh{>h>x;1F#mieXA%{|bFBHWfGcEUCfF7@e&Z(4ix_}5@o*9h08phb=0 zk>zEc*&A`OiVT3lDknQ@bj<|VJXMZ2oqf75&RU`ocEgY|RGchUrw-&4c(yQ8VLB@? zCLNmIz*tL0cF0O+iN5rRVi9~(@scU*)r>BW69zh9D-5~asaR6aCwpsrYN?m1F1507 zQ!|`_eP`bqE6TF5yrTu@oZ~JxOM5o+qc>Y81rep-vMG4i>~QB&kNaIgbOoqlXIXPI z?Z?U*#;Yf|v^(ZI!w~}s6qT~xU8Qfjbi~Z9?n>Pz3IWZE&azEC7IyccC}XBh)~<%pq{1fxv_ zFUGj9MPv?a@dQjvxWiRn@_4Vq`IBephE&OJ#5dcOk@}r1Dc1wMaC4K3HlnsmuX6M| zUHY!uRC`5WvJLCRn<^@Ox5O}1?35!)n=0t5e!%_9!UJnvPR0TorIo`ULFAJwOPuZYS+O0Q zSC9(CH+x`$7#K`cv^c?AdwaY%9I~T^AQ27EcNPe$hgfdRIycS3Lg>Cf>!4-@HS4%}<9fffOa(2}!q1P<3`uFScu-3BNUt%z*SS~9b za?3oiv`#mUm_R4@KU2d>b1nr{G1ksg&FeU>QjVxL?U|+}(Q=b&U#|T;B7!YFD@DNr zE9<;B^1MDCQMe9W>*z{>=wgEfX^pS!GZ>WVR!Rego_RW*qkE{6!|yQm-aZUVgnrRs z*E@m+?y`*KJ`%-C zF{<>9p(mE7PT$G!(q*ow;))I{-4zOP%|@RvjEiOcMJ0Eq7yo@8NuJnMlDO4YrA@oU(m-uA8buEhNbN`Ji-Mff!5Bk{Bx1 zs=z0g*E!$o(a8jgKy1M8t&Iqc5r?6N^0Bp(?8Yqy;}PKlNpgHh@Q-kCODk$bj7bRW zmh1M^#tM{WIak|bkrJ-hf+&_{0(ZI`rJ`98bQ1k9(nkpz=~Hp0Yv}GO6!Vo;4^!xM z&K=7WibJK>9oAWDq3Bt6@P+Te8f-N5O~FRd;m*Qf!jK_VuF!-dH5zSUr(EvUPJeWL zkk7gE*83EERi&0rRnaZ>lQHYSVAij!2A7`*6&qd0<1@L} zhn30Pn~mfXc)P6ylFTff6 H+f-Y~o081<4bAh;Y68J-m!ceTW~qk>gN5(2EdV#A z+oN&vS!VxuwlOOQ^`wn8Dfp`o^qf}CTPN-7SmQ80(Dx(Gbqd}q4ZWgA$2g47*|%^A zW^bOJPjY}Z)=c3cm;sH35HR-WqH7Hcsnw^SHZe?D-fFK;7*^cV>u@4?T&M`*8YSq3 z9!Q#j#0ILeYFg#uiUv1yJl&XSO_g~VgxcG!Zutladu|ohi9C2>o$I%^SnjW9K!4ol z!*v`mXViFX1>KlRrBlKGQM{3ArQkrMV;sFsm+{z7VJ{A9bnVl5(bV=ROyr(kmo+7+ zhKESd{Yt}a-7XQK6G~3of_wYR+}<10?d4!6D3<+7zO&C|5u6eFuAqtm345GgTA~{~ zWyqMGIo?=}PK+3=Duu7Ox7*>}qTsSuy3S!EgsA)6y$@o^b!|aejabphJu6GtP=ZKm z(T0GJg0;!fK#alT2{w5i1|vxDoa=VDFc5Z)Wv%F^;7F2-Ld=pKwYzw?+im>!j4?=z z*a%CmL-1oxTEm&84n{rWAUQq=2k7bu&M0;?;{K&Rmqr6_VLlK@*%*T{Hb1NEn@4R- z=J7zwf1DK_bwnfBSh3^-He+M7?$yVGV}#0rqoivr&e?qt>PMqia&(X334qfRB+N*w z>k++o1RJ3ch^C?>;!!$&e{icGfdleESFp|!_WTjE!u_9VUBq-087W<#usON_M0nKC zXtz!4#k5~oZ=!RfAK|!kf?&L|B;Y!V1epRB9wdsPM~Ha!hzU##VN&5ahReG*;55;; zmrP<1namI}2ZYm$6sBe7UPB0k7#0U?AF&{bkZI(ZPQKo;xG+xk2S$<RjQNm3gSEGlsgxb$z6r4s* zI!mvt@YWIa2;PYTrYh+ahF<>MTK?d;&LuV`jAplEaea8?t6wK{`slD?^WDot5zd~! zkBe`-$)k@xLRpR&Zf)`A%dhbCSH4V$L!SHQw>fDY1Z7MDTOC(9RyE+N#14pUg-)H;Rhb&FOh2^| zoHN8A1OyGCAvp<9#5Rq1(a41c8(^$L^gw|zE@@a0ro61`zrWZk#Y{iD92{ZVnV05+ zp(8FS^Ju_DK`?YPAxx?;DS^&gEY6@}(O71UlgRf)8I>dvlrr0M%KF*av!_4T7ff;znMEccdRZ-6uDEyNllGtaZ>fC@pB zlyzHYs5GA@Qr}jX&ghNg7J#<&i_$t!p<%1dR+JVgutp=z$0Y_xWF!VPV1iE-9ATl- zw3C(+cz~)3sCr`Trplc9=5}V4zhwc2#$+IRk_?zcc_E}gaH?XWlRz{Wz&JW(g_@8) zx5eH$O282C`S7WT;xWfm@wOqgXNyc_j*_&a>cCQF=BAj$s;XN#J{g5IuHZ3xFiECD zRTIvFiPEhohn`%b(DTAla12aLt^EwR)*1Cit@pGlcO;4qUWLL%yo_+FXx3Z`<|rOi zc?@!5uxgj+swET_TM2=(@vN);BHIaAJzmiW1f^#R45?}!1fpoJGqo@)Q-q)yFESO> z3aH204rd>Jj2~USMgK&XhaP&A>({T-Uti~JcbT}p&XN_1Q$t4AHYx79kLz!~N~I7@ zAgWMd>8z}>ar!JfJ40Nj!>POP;GPE`;JkBe@9u&Xwzjs}9__NXy-PJ3;KX2~rDG#q z(_s`VYzU}CMB+l_@?bnR3Q-DVoLb7Z6(AiJ0Je3hLI{aKB3WxFCh|u;|K?S9+WKR) zl+B;oS36ptvV>^w>x)p``cWxb>Yu8r@?j1*m7TuBS=~dk01dN9i6qJapPdzTt#u2P zMN2zvlIUcCwhDE|=k|ev53(<@)?q{`tN5WMNcCvR{^6Rkq94+WXoBmqR*t13p$&V> z;tr{bO{>CA`*w#A@M=dc%{{(<8o`}Yw&#s}+1sP!>%5!Yj@ z?rQd03O;03sC=+JO+SJ%&j;KFb&*>8hjpUYNhM4oje3=4-c+J3BG9Hg}-Ycy=K#n-B%JET)99J#pLsocN6Lt}nC4nNR1D1IPYX??!o&H}MH*k?e%N0qQD6<|V4HhL|Cum|A z%(iOU0*dV_!epFk%t&H8B<#qfk8bkt)RqXrO}`Hpldh*S@h?eW*|sulx?Tt&sc4HK zWNKw>#h0B<2N{l2KY!*uHW(mnDFCBQiMPJr7!NLGx4p^|uEjQP+SSdjA>qIVsV%{kl0^qoz_9onYEJI zCNTt3TtBUOa?s(b5>XArno1i2(IoZJdF`-$S&qv}z6PQX(+a9{>cqxox_q3*k<9ZL zJC3Ppqk|H2CRSIdyoWj0i80RiFfv(XUE);h#D~=PsDo|Snly)E%qq@dYKFuRpj8E)#cb8Yg%2Bt*4U>hD)SL4cM~Pzm|WeB!B?J+o33aX zVPOpRT?|v3h$L* zTq6u>Q(fAbd+V<@YNXTS4D zJon7^8fv`FRmm74UXzwk$Uy2CV>(Cj=hv9AMVKgUbsdZ`O=5D?mS^LU7bBfcr}5I7 z{r&cOpLJPRCimz*XeQJSaE_&Vc*tKh-41u3{}_9_JKVT(nUkkaqvMh=7#^uS5>;7R z>GRa59_Ot$-^5p*^ACQE*I#~>y{(-??x&@Q90I4#ZeX3z>2*1C#~r-*?DK@uA8W#P zmU}F(tb)L~d+*_mS6*ZH_BPhJ8H`HOiJAQ>O_FBsudbs4o!%1FaKPa9t(i3>`My2g z2dr^3rEjIPvdnHZX7!Fc7~Q(bU^t|&wz-e8EVGWw0%vIvI;Ykd?Cr6fs8*U}tZN?SmXVSrk}aUu85LvA%YS!QOySmQyT;dB5Kd zR#HpTpix*ovBqdPq#Ta-1$d2AyUuSa8|T0n{J2Do!Du*AlH6>RMiA@J5OR6eqE&T3 zPBcHTQh-cVC-}KTs5KVId%UDTqv;RjOBTH@RaFsu%q;}w3wttsa=dF-iA5q;#DU-=ir&G#Ft2wCJsHkT|hea|sOd<+yC511`- zgztPfgRI)$O*3S}dY|n*G|O8}%v4cO8>cGLCRl7Nn#8$IqW!p>$bra2MO~t%*1h)- zLaT)^N%XBtNopf=uQCOGk2#q(BFWu8C~ECO!||gUxO(p!hk*||#tU_L>L|Tkp=mR7 z+Fm7fue!Y{E^-4`1ZUiI-?C+j_t59Rz}-)L28{zQU%1HQUwoSH{pN47`TgfnwIqE~ z3uQPlrY@Fgh{~!Ka zws&?A5mr}L_~d7v;#dB!zfT!GMaW%vV<}9B5X)x5*9T&!zsBeP@?W99c9L7$o1A_0 zllZHb`4@lZZ_yih#99;!60x>}6_2HlO2kA*lmN!@xnKB;tloEyw_d%-1D||?(fe=n zoqzBTk#U%=eo4&oOaW2B1)JJxh2_&f`)7IJGoRtRzyF6k{@JJ4efKKQ{L24JIUHol zry#~+OvDy~b6t#0FvJ*BmFZ{x%3t8=&wqix^MC#y{M4WS8BVOO^GpBB-+*zIbd*ey z{9h=6K#U=0z>Qf8kAL}d{On))i~R2I{w_~{;qy4L{O$ksZ!oxVE3sU%0<4H3s6jk< z>vPa%2;TF^XP@9_|Kq>Rcfb1#pZna?^txUC_Fwdh zhq?SN-YAx|*@dQGZn36|Xn}~uOGv_hMmTZ*UHrBG{=cKJj$i(}f0uV(eUn)EMr|Bb zg12Zal3!B$P|q3F6JPoqKmS+%DuuE9vw!@LdFFS%g`&-Tj*`@fQHzNdQ`ko7HIk~2 zYiCaK^Z)gK#hE+K@PGgBe~0&8duxAERa?VEFcow(jcc@tHdNekmM{POe}Wl1p82Q$ z52MX%R3_k5u^Fop8!si>^vxAV6zGQJM|bxZpXRYIe}&)to4*L70XB=PwGYaemBg(z z>?^RHJImL9;Xh*(4gc#Ij8PFPn=JyY!H49nmNa(i zFfj==I)%F*d4Rw4pZ)>{_?!RZ|BT-mrZ($T#mEp#pE7%q3}%)F_p(0<$zE17URR#L zh>~c97zMwy45v2eZfx+czxxbNfBtF0>I(Nf@dSms*3fKCwTYL6{=wgc*bEwm;Efr;_MmpeTQ1nXagA_o6C`8gviiJ{meFp6JMO!S6L;Og#S3q8{`~!1d;e-;qdLc# zJI;VAufO;TemEwg$-+hq!@i?ag8JG=jA_3$v)?*Hjk4Dfyfa9EXazfklS_MS1FAPN zAu>2gKbM%Di9B8sZqP|USC?5ie;?z$0c$5ua_hzo%AFln)>g1feM(=k((AMP#@jI3 zP1w4;>gu^^nPy=w!t~UCM`A=m%+?+IZEPA3w>lnas`Tm4KUECRyy*7jH!rZcy3WJ* zo#pj6-r&?@4?({}6sBbD+pgW-`6>Cg-}>e^`RX^m&Z*UPtTBA++ke1Qk3L4H+oc?h z4=fYa|9AOEmw5IE&(m95q9jt5WA3@{zI_#~McfW!4coW2`2KUxao_#-vD9B;d36;Z z{8R~0TF(*i`z{m*173Xlbw2UbXZXE;^IQDH@(OP}_eY5LQ@!k|Cul28tAaJW@Y<_9 zasQpH-g_VA$|?hOsO=#-n95G9wb+)BSUevP&DHEzHA{@fKeFIyaq$6VdoVP$QV z&AkEimawi!*^Q~qcjZ8ny4$-0LZ?r0;xwI&Gdy$g0uMa-7|;Lkc}#4Z`{@EqP}5rT!W0Zy%O$0we|oVp8l@-*SbXhIh{>esm9r60V&lVA8U zz0)TcZC<4~MvX=RS2*5y{S6-d#3y**p$B>K=GFl+6Z5~ys$zA0jr-4^pAb-Fj%lSX z&afZ(#G`EQ?r>)PB%gZfNnZGa@9m?V8)F+9{%osZekVW=z|N8EZ6aKH=UqPa_~Tr? zc7-o|_DSA+=>>?&%K9p&&YqgdD!_F+{F$HrDbxttTU(so*x-d1 zUf|1L`Vz0b{yO)ZJ4e6Q=O6#Wf5eYocw^zhuhj7IC!WOIbq6c!C+T;3TzdN=_uPMu zYI}=s{i9zYkViC5001BWNkl5Xc9Eh}IV%;fs{p-Q8C?8#4Z=BZC}<=S=5o;}Oz<|f@vA5lZM-{to9 zHfPqBd10`}_K$XvxSurhC;ep(>IqA$hd$d=Z};WrDx@y5r>%hO_eEj2&P*&BxvUjcH zGVeZp<&%7Wh`f98M`&5Ged~6@P_*=J+9ltqUUqiH-P_xx-|N%qbhvQg0(Wd|P!yf4 zDUjGuwN6Qqdz9@yWhZ#{Hm~8TlKbwugA?kx_R34CC}k%->IMTdyQ!GeOWwPAi%zBJ z?ufTue1&so&ZM@1PA~-~Yw0xJI@TiH0^2DNg=%MyzFNwiJ)VE|IZmHAL8sSim?$ZvHb>?~b-S<#c?m2f48yg$kdG;))&ur{F7{#PT)*kEH4&?Hs_Xsg^{{H(D z{zrt<8ygs7k|l(%rZtIT!o1Y|XMjs@{fOC;R|2n`_DhiTNmD>DywFGw&~eA zqdlam5CYdOy+ape`@MJR1dp>5U~uC{gXR{dOvWm|6vH1E0nej3GEANcB5zsifRyu{|!>xUocQKy-oc|F{|d5dy1=97E$K|V6c;UGp z%-ydN=B=e}JnMlJBH#Y@w;LACA{0W>;~{%PO|Ikpv|WeyVaoM;7NgYOr@i+L&S{~5 zVt(HCzt$K!k}Q9&T)LF3K;FNC4*^pYY@FU;d3l-lue?vU+nr)eHS;AV{6+|=H9Gbc zd*zsw6YD(m=p&3`VB_o=)Eaij13JB4bI()jC%@Ma14XC9-rgQnSuqZtDn@n(175rE zI(|56sSTT^b!hAav)AwSxp8ANVSIc=S&n)C{r9==zWaFnjW>Ab(mPzea%D>WJ*qMo z4!K>9xLyso;fHL7AveO1>wdsyNdLd-M{I@>H~f$re#mw?WHcTVV!&mkd|!F0vZ5?Y zss$QjdoOV7 zy-hy()gR}T=f2N)_ck4uXkadT!H_rq6s$OWPG~!>U{reE{=xJ3>(_beC%(jm7k|KT zXS>nfNIE$sYuA%Jcq2u;cn(=-8Hd0tue`!r zZ@$S-{>)GFqf77b?vLJ~tjf8Z3tiwqeDSS|jK?FEmij#L_@{XBkDlf7t8X2KqMLeC z<@@ilz1(GKZ<{NxyZ}`>T?09UcDXVxx$)*3RGZhha`6owI(?3B{rW$rz~Dv6q^=el zXb$U6p@-$3{yIDFywCNQUuQWc>a#g;4eAso@AcO%@b#bkbBK#v`q4WFAR!i4y#%2g zm%RA$OADEJH6Cnk1{Rc;zyCa+|M9P|+UxViE3aamBaFvK?%GRk0sh#JeT7iLl~-R! ze3$}Ah%&=vG>zK309_C7Klc*9cKsG#{Fy(`@XC8QwYfSw9WWkLuh}Vw{M0wT#%M5P zw0R4+P`P~mZcbO^Y`7)*3LGMeDYCV_@ifAjJ>1ji7CqV))trFdoLXxb2NkI zK^mo%7{2u4i+uSTUt{yiRW82%#vdDNwe5mc#Q@fE?&A-#aqdo{bh&zSi~An=1Vyil zXk>I_6SsDfuzCW2;|4Ah6Ew>o6cN;We&?It(+I6~RMdcRHi1F@# zU;njV<$;es%)k1zU*{8#KFX^vzQoSfHm*}J8jP^k;CxQL936#e2+}0L1OqZpiH}lG4O9Ec9F|ldPawS)MRF%PCuL;0x71_FUg%fA5 zaQpQ)xEW(=4MxxU#!0rXUT3+t#Gunh}l&+bs!~KKByu#;Y+So zmVbBc9e(_dvz(J|Q({gMmD>23Npc=dfl@AY7t*0{kxK!7^V&^LET5uJmnaVK)9puV zQcpk5cWbVK=Vm!zt?02<^pXzGOl3~8d-S|>*oZKSo~z|9CyOOkOferMtC3E(i&ROX ze)4_AMr9x)wgsR^8sSVC`AZ9GlQ~+Tuh{+IJbVRA7;4?q@ z=NR|<$$n#bh0E_>!8ylhG@`q_#HrPF-u}*W+`8~Gs*xWKhrBu*bEbcKN(bz)(9q(r z7`&;t>33LNL%ML)#Om zP5+&%#&Za%rTu#|Y=)#PTx2uN1Ex`k**G#DkA2yG!l;d6?&1l3@Ss{TgtBVH@Ag}5 zB)zB*0>*U`Go==N%t?W0oHm!7^9~l(N2bRqRg`1j=PKaFlpERF&-Aua`o0K^26W!Eh--~PB3H&y={ynOHr0Qpe2}M z;RYceR+DS$Jx{YY^&`@XIc#7e;H@J_+UH!qgD=Op!V+ykcWH@gXMmI*G~lzlJ-LA2 z>2~<^lb>d1G@!q-%-ZT2Uwrxtj6%t++qZfD>ie9(|2(~3k9V$K<<0Ha2w9MK{|TXo zjIkba@_oRw>;qoeEoxEC^GlkINSmMQ(P(8gtD?E#?8O6msABUz{7}Y-G)l+u_+D75 zEv%6_`1coid!^oD0_$pw$Ooj}B`k_LvZvQ%yzI1HL$&{1&KrY8)(%PYB{pqJ4e?0t zbqY=2%Km06ILA?eO};*+(V{r4$E&JXO=gr6oX37@dRsT=APic~j+&Sg%ArclW=6kC zRB$z2d;vYS-It!NB*qv}B1x_$_opRJK!o;SMPBP{GJ;g0Dl3e!joG9!Ur%KoUT=z3 zl(SnOLiR#9T(9Q1J^NW*m*&4kFeZ;n%cm+5=gyLY6pI_v&DOIoawXRpT-MwIyCeXp zF%x6jd7nSedLe{B%+$VmP9DpeK?GlU)E(^vXq0d@B$im#UaGZ{Y6*uLGj&)cqOBWM z6h(t+TI7{6`F)))pIV-q~?nG@c2NoY;5u`4Ft(@vnT9Jq)WSR_QEt*}8R`Rkd7v z=S}|XPkf#4ed`Z->-iTcB!LA&jE#nn_ny7M9vf#iIC=UMepIr%yTk5yi0u^IdCxsu zzJ8TE@4S=y&Y$PCXJ5i=!uTYex}$re?F)hqS@#Etj?Us+C9~INWi#6PNE691nIG`{ zaf7IxOD!#8b*zGr&SX>akyfSj!)GE{N9U*;dEF{2eKn11kdH#ZqMd8Xu@qp<3`^^S zwO0QWp!ljsKvo@JdG(mG83+6Y`M{qlAJFINsF~8d0QgX~<3FL5mITnkOt2yQs&7pt zNRIjTjyPA_7{yr+w|P^(9l##0> zFPUx-VuT=yIz_!D20Lvv0=SUdnC7F9cwY2vIeZE0oI~p)RKV6uQ>WYIu6ysJDhkHH zsnd5+-Pq>JOF!h|`|t72<@b{1LI@ysN~f+WD}MOG3!J{=4CS~ahQKr5`y+SE$QGyG# zGkugeGk^vSN;Hv*2`zAuTlzjXcx$ObMMT(EhwnfUBI*@y1QX3v#bBRHur+`slGT%q z!$^TuhjRwa2)9)J_e5)^-dC+G-M)TFBowJ~=I82Ww7i@0hF>c-7r+i>D$VQhMbcu< zC~KwVlqK&UzXg?jqE-nP6+tM_5Qzq?Njggn?;+zL>^`ft1Pl%)t%ad_#=#Rs@#+z^ zlMHj7H(AD9nVi{*ffzLD3z=HaDl}D{!@ddt>0qo!oyqer&~{+a0}duH2B)4v99~C= zmXvYKQnyDp2p&V^a7EtP^;AmvxBO5YOuDL=#Z&T&lD9yhiI~1 z(E{3dQ#Z(!Q)88?SD-sdTSQ~3k}Tej%uGcjD~DUtR5jXuWQS$aYNgRdnXp+TY1ka$ z#CDm<9J60lR82TLGe6Uh%v3hiWT0%@CPb+$6uln3-IB^!ln!1~HGOW^&Q36OO-8RY z%*Z1L@ZuXRO7{B3nhsV1CKxO=hEEpuuY!U@@F8aSfb3%kPZZD1OwT+{lTI|I`5u+h zf&_z8xct%&c(( zpL?3?+qd|MpZO_PS63MfhTPb^&X>OQWiDR4$j0f@JowOq+`4g-TW?=UQ_dPF(z((N z0j~v$5KLG&zJet>MPf;$fUNnX#~?)2*Y>p(3$|GU**dV9yQyuXI587^DNt!7m_KnZ zEv>=eR0cL<$wt>v#3TkLZL`jNvo1`;lq7>%hpyntXqO!-mV>8~v}t{K1h^jC`Rc=d zWR$#77-29TGd62`-2D_w?y#ep_PEC z%wFc%OvtfyRFDsrFd9uj^0C4WCTWrwO%^U;Mrrv^;VXtf$e`JyvTQJ;B<%!DbV&>)lPrvH3zg{mN zwkTMyw=%%(K}BCo1KUik*`w{@Opsp<2junB;wi(Rni zX$iG)Ftb13_gtb!a@{@*gHzKWD^+&KLq=3c47_>$77w2|$qC~qVug2xd3BP>b+yq) zan=%|CmKPW#r3+$tWuH+E8e1I*<_%#LwQp%%9sf86MFjWq^WT+_2+jp8OJ(D6+G|7 z$d%!kQ1sZVhIBir_bf-8U!sZ{MS>jYw=z4f&3m#5zAhmmAz@b9erkukH?0F5B4h6v z`XOGF7jItY)LrK}7Ec6Lx^h+XE_N2;&jm-V&~GXwZG0M^j#Lvzc2KJ99ZOuJt?GHZ!xhn`tTk zbZ<%6u*F!bpRMJtJ?}bEU|5w5$}z#f8+*Gv(p_U2C^c0{LaPO~kM%;nUrFut7?PHk zwT5Vt>awUzd8#$oDv?H;tj4%WW~rooL@;WQ1Gd6$mG;eGgi4g_QF(VTB8a7o9&Z8# zb}>d~k&Arx9F!wsciODCnDxx+mUaxW0lmu%5PH^?I@Wrh)=>J2aj0_fLym>LFr%vH~iPS34rryscnn$MXRi+a`z8cIOKOmAg#u}>Inn#E1BPP3dOU#C! z))LFmbQ2E4K+Ubx=4%;aupw75avwo#7`SQ$#1extC`U*aOjJ79sasN+ zgR`#}49WM$I-7ghmO$BP63ngo$o>*7qD?7w?&r10Wwo}6*dzish$Wt6dGC$z(s+m6 zEzif-*I4fwx^0l&937KbJ4I(oUKIneu-K&@w%f(J^s~`$gf|h_>m^}2C6znpWY9@) zUkDhY#3`u*$Qnk)mjB|)7kSsW;ale~;n%4=v zI*5_$RJ^q})%hfVLo}%FH}&y}vpT4Kd`oGQEfC9PC@7 z^v}?)7w`pRUawvQ<5=Z+^uhD@Zct1V#)aYSP_l7*lLuB;an?|%Awl>x$sb6P3os^C zVG?P?VsVHmQOZ0|=i}DqpHI4vN?)&6gF}c@)*tgwaZw}%)6r+MT50wku_l|f=D<~E zeEMV&YcO56$e1gQnOtHVl4U!hD$%B*tsxsoH~YL~$eJQ5Y+kv_wfC=qGu*zhiHPvS z?>~pLmfM%FHA!OK@-Cw%2wW@RrO`I7x5kEX6eN&;y-p>I*Cydz#aqKJo-4yWF8RR7 zS!@h^I1JC?^Fa^k*SOiU#Aq5UA0uiLhGdd~3dVGRh_Q;X5m#73@J&`V3x3?^f~=_} zPy~mVK6_F5-tG>C8354p({ALZIT+F;+e0Q=J6NI#cnf>F2W1N%)lz0XtQ@^p?I0vM zaMyD4K8STvBj%$4430-Z8>Z1ScI{FFhA;+{Or;DI5l<$|@TX zPFH+1MhaIDH8SuOdw70(cZa1>Nx##j(=G6|VWjuO5R;8X?QK-M$lAni8hasVpWnN+ zjRAUDye=I?>40z8CrAPl8lm!@0PLD{Fhiu&F*l_|%H1Y|>=gZ}md@;ZYM4Sfz`f>o zrplMIF5|PvKs?s_Mb5^Wq!LlU~fF6(^Oh=028Lwx*Oe@*aAzq$W9!x zSB+AjS62o_FrG$dO0)2#wq3#thnHmka7)K@#ix0c4{%fa>{NB&7h1Yi%21PYHC9nl zCVR20xOHWd)2>Iqh=};P*f3P_Mu`Z8vka?>SSZg8Z}TH5==juXij8JZs*JX^CZ$!a zEQ*57GGQ5B-Wl@lDB@*Aj8#*iYn05h!DuHIL}S>d;zl)KONEF}mKMO49kCP2gl(Bq zp{frSYh7AX*+JfiKt*6D46rJVxun$;G}erkQShkArjGUX^V$p=i0auE*sU|_klPXq zzABrN1n)gTQ$?iqeLIpH_RIla8H;2b)Ck8j<6T}2J8ZZmmSgsNYE^hbRt-pIl?D?W zp2*c0DAlvALtLvFC3V`76FZ&JfvaTF5-p`-yDa&^uAxw&(DXiKpA*<5zSZ3RNvh_a zs{ul%!!1fMWtK~5br`bULT$|xvMPL&@H>bSxK_gRyJKv*N2f^dHe`d`_IV(AK#drj zbwqJ&`w=@TRMvCLjFRiSHa^1%dY~=XLrby6hjdm%iC9fZ+f|KxXLE-$#S&|UAUbXZ zCW6MvysdznWyxk7Gw2ws9L&_6-52Xtsf$9_7IeE^a5jOlYuzysJercgoOJn|sHg~0 za&j6uScm7ZPFuIzK|Wx)P^PBfgiSr}nkhHw8i5k?j%%c|0NbEh7%em#@If@vxe5zH zlMVXJo>~;}%(ftmG1-2gI+(U?S_iyL4(__OM5vO^LcZ@yK9|ZgC5BOg zhjkp4aojM%l7%Ig^ohJG(Kvz;$}pr#$_zO}tVU{*P^99U&2pl4 zJte?5Cu6FaHX)7=9LL7+unEYfosC0QQ(n}1^uh1Lc&bb!7V1Ci19+4Jg?7ou<7qThtd_9 zWwpO028xprBB{-i4z^-0hD_sp+ld-RP|ak?_5O1^j1vV}8fDZeM|p|K9;3bP>VUTn zTE|t{eCFOEI#i~{Sc-fk#3bE^5nSRraDAKr;%cVfugNXQI4jt4 zup0S|lmGxA07*naR1^2`G3Vn z)0uS?o?UTA#Uvd^S7zSWnwg4{6*ohl&X}1z9#)HKT5eFR+7w6y5a+PbA>JmoT~T2r zv8hB9rIXrCF;$FaQPGyz0@o&{Q=^?$`;yc_r?%+8Gpw&g<7DJuLgQ>DXI@!zRz&ik z_u-?Tn)r1OxJLaqMtrrRwM<`kU%*Xj}>*aR(!k7A1r&K-SO$?Ip?x31!SBkVu&RNm$$Q0v4vs1D%xT#bV za#0<2gPMk$${Cb0QgC~(CWe->qqF${KFA!qGeO9@th}0jOxE!dw2fTOa$b(@&s~Dx z6o-0VJb;xQ9n9;YZ`?6u?2(r4P_qbhAVBDdPTGdx0@>d%FqC+Yym1Dx1#R}c zGTKjkS;yiDEeX{7(fqZrMWE`6Cf7vLV&YUF8E`a5E~PsMLwcr4`W^Dr?}wd;w8K6C z(8F@s*ie%&)pK;ETTV*}*L$@nw)~vL14^if08d~c2s?PpN|c^#QgKKTT{`J2CqpZ~+pfnSkMhtuP?(vxlJ7^!ybranYgrd>|gwbP&0(V2ce zOf+m>dj0;X{hdK}<-qXMfXTa23Bhb8JcK+19-{l;L^MMYAuypfJ*J9Dd;cjzyxfR5 zqvS^XcaObY#lflc|G?KN54U}{)VQQFeILnV#2fM#UY8fY&+LridX&db-GRSvgfBlo zA0X#Rx1pDE+<21+aL^H_OWaf+!%gl-N8>a!M!jAIXbdsyv`d-};)=bSc~NrceQiCB zO@OCXEN+in+QiP265DusC0C}bY4#zz!){F)c!vd<^nwK=Rzd{CK=v4Q7ar_KMd&dX z1Z$xLa%!>|P~-~Jb--p|u%dXV&g#3Pi zt08Us-)}*m6eJcelxbrT{P?$j8?RnHqGfr(KGq{VTyBthIF;RAheU(JK(@qc?7@Mm z8Rm;Qe*gD=AAj|ie~rKY`~NVCxb_*uBmn4;0t%xIZ{MXe`SXBFaEvtP$sI+An0a)d zcY#yz;kcsVrS6|AgP>DgTGt{)Iyn$sDYm*!Rm~rlJNLzF$C3FtDHxf$ny!^ULy+V@A53vb2{9G_VUVw3Gr_43SJ#+|52P2 z6CD2awCm^^-L#=OY3G&ZF^O=dALvQ%HgBaTBvYB61xxx6$kmUTPaQkcuvrlx==D^Wr7xtjz1;H*ZsV5#qd#2ybnD@ zl#11kAqB1{|DVlpkC2Ur9Jia4oQwMOXpb!&KL;L27fN8$E~PFJ={bFqE-dSU8TGG89E;&a74q%6V^i&14)N&*w zHlBaed;uO{Ki)4%-GJPGs08ju)5aI?&w?lwJtTKZ_Vh-y#qPz8-?MgQ%@fxfR05PP zS@n!2|+VgG8r(4%d86f4N#G*JxGi3!YD}9B=P!-|P$(72idT7my z_bdnD%+D_k%rQ@>V;(xwpASo8Iv`7*yME?;)HiGRyw{Y(y!T*Xgd+>9C-DyWD9lE9 z9*+Ad;iywc*Hmw2|9j<#XVsDC*Yoc|3%RvNBqr|ir=Iha?n{U84Cjx1Q?C?0EOkwx z(rLX|FJ#DmkiK-fEkuW1Xj2cJ?)L|0?cZGx-(}@P&8utlO{U1#^!J|n^E6XBd|p35 z_{Jpjj$<`N(azn^rFA=;XM67)9rvvBCwtLTVSiyON*JCn$6-c-fYs6#2ZQyRa3 zG!B2>8HL`WQzHYn_8~5I5wV*hkmTShcks^7A%N4p?z}gb+=L+YpF6Vddc6&14e}!{%_5_7FrUrlBNE~< zxAE>i_KAY_fm?@gbfuV1@1h&$tmFCB&4=zl*n7$B-_?9R2eXXko^v*Ct}7A9;Ln3L z@D7LW6re$S?ptTxYUAG3ru;|M2Y}~Qg8#i`Fe?|6P1_GDYC=(A!=KGCoDoD70 z-k~LhmizL~4gRilM;7jh^m-`hxltp^N2wxrZOkObx#{q^kCCuaiYw#T1)Rg~6*{xgb=^C|edt*7*j@kDjCr)b5rNd!@2GUC zXAsOX{`+7`d#F^YD`{z8iWD}p({3JjvH{M!-cDlp{+)A2u?6Q&VJhQ)-vt1^pku-| zo}CGAuYlamM;bq55k|Bjj#94S}}Be1ZS=pZzoZ^uPKk z9v>h3^%Vm4=ClJb%%f+o9w0p477=C3(#zm=D9$mGZYKcb1}(h~9>4WFzl|S$`6d4B z&;AVm?$7@mUw`#AHk);Su%whB!k7yo%@j|~3VGdv3Tzc)H1oVcTPshZ87*Enox&*- z<6*u893eZP+3rS9I`gH=sBlYY0#)WB8aQV_21?D`AB^WsUX_451T>m4^8r!_Ze1I8 zN16?jgR1MqaHZXuRE?lIw=z*fVupAzoy|WdO=}1s%xDR53D5vYghKlR-29j(-5sj% z!Q{z>OQ&;i@ahpc^>czoZQ^>gSl~1u2#}q?skLy*XrcL0Rf8r-mt*sesfvtzHwQYw zN*XA@9*uNq>P6+ut4;RwVLBK2j^4L|T)=`E8G;OtiU1<*g$8AE@a#D#h4aGpTm7tp zI%_xYmG@xR8j=aRh1?@0Vmui0@lsUQ_chLt*1HjpWtu@nlg_c=R;{FxI0GW3n{4ma z-Xk(xxD};6dREPBlNO*+24%M26>!wsXs>fZqgr3~z&sboAB2o#T25W}(}dJXJu$!n zo0%^p(9TVpWq{gQf<|3%po-e%Q9xdiAbG&C!ij<_w8#_I#rIcq5v1r?Hzm5~Y(04cm5^nt5!PJrw@f>I&( z!bIIj$A{d21H|N@alhs&vIC2mL0RC*K|LXNf$5aG&BLy%))^6;y6b~VInAD@ z7hfeDX8tOL2SaF7Aldej4$ZNIV!#2KDtYfQxxUM9+=;jkXs9UF>wx5Jx-Eq(qku2M zo{iXE>sd#{V>t*UXtbV^WP7)2?cC~(gJb-`{aWkLU}c65=Co4<6QNQEbsq49F!b{4 zwUpe*GmNDOBoa_DkRWJD`j|^u3&+@4P~Ca%M%xjYOhy*dym8JrYBcdi>&WCqCEKYb zNEXOvY;%J~G9LU4GZ$>kqEE%D8d3^l}fAEL@6#w)O{}3rBq?87W zU$EP5@t6Pl|HA+FfBZ4()!HT;5$f6wX5vZdXtLq>Ok1OQ0Uw-M)2N1%n`P66^o z_^lK8a_4KYbG8HOnG~4_Ui2nyr%=?6S%H>%Q-xju+0KJ~0CtUuIukJ0K}X*}NLx?c z6z%`BQ$lovs@seQpm!&N*(GIe5HKl#S((7>y1;fq;2=3WDjgBm!$HXdvc+jVQ99rP zRAK>Rr6#Htoy{4q`_5U6wZ?iwJ{t8m+0TP>Xd#$M=ZUA+F%$*|aHE6-MNoyh0Wnxh zeoZI4_7Bcl9eT+P-q~R(#}1+(0xo)ynE-}j!9Yva5!8(fO|+TzzhZEJ5&>Yes#q3L zvzpE$S5nBV)E~NvmVoR_i@ofXp@&4!-kPlo{EOa+WD62w>A>l&VClHqw)BDr-Ttvx z`prc~VWx%nO@v4?DOR5ecn0i$3Jyw!6z_wOLP8y6k|Gw&b);b~$>t2ez4LJB+WuuP zOgXe3nY7JQaTDK(VA~;hN88wrmjtOaN(dCG?9e(86r^svXxz0n3edaKjw-xU%oV7l z2sHM4L-Cb#_HL;t2Dokwl=&>;(3lN!X)7NGcuF*4{_h1di#TDK(@Zw@o&?$L)$^&4 zqW7aRv1S4gR85c(+RuxT@M8H96&3LzLR6LKNlpKL5e@@%Z{R7Rv>e zizOC|1s)#m@#ft-eE-WI;PcNv$KBl>X4Twafew)uhWGwxMa2&UTaQ;pbYIfyGS;E& z^=vj9wX+Uk&@Ski3dW(AWEaer_qcO@#2E=7RCU5X|3Ci)YI?#?Uf-kg9r1O*QPA;5 z-2Yr0*a0mBo7iBdgzrDRMO9MUX@=;6KW#Qiz~5~?;6uH|Kl#Cr@F~svn*1dW&AzS+ zta6Kg`_<3zTc3Z4H_JIP=Y3XJN&tM~I^E&9^NK(H`CsGJL%?q=Ut4xZ`?kWPCwV7K zRWi8D89#5gn1u!Yn=ig+ZrEjFcjMO~X5GfiEIo{@P}CvfZ=ZMAWyX&`c|b^ILC{1e zr!RHssO{gwqlLqtK7E6q$A}-kdJ7Nif6pb7Bz4_Dgm1LLSIrh*EFLjqpwW!rOl8wK zKRQ?P#NVpxWJm-gQv6`?2+5r{&i?O*e3M~9-~2lnAY4G$~=>ZNu-z?~>S81w~+whzef|IQGa5)bN;9QsWB)TVW-Q09F91rHt5D_guP}jSmcZg;tVC6Cv8CXmJ z1Uaw*I8u5Zcs2c?TB1^ncxv4NdTf9@j@67jK4^Wc= zc8Tq z>o@R|-}^^s)zAU216c?+NUe`3jY~`Tmw)=NkiY#3zx(PP9xI2)30$&w?$DcoP029e zn1LWZ;Dads;{69K=5sifzO+LWtoK#-CEnhXuINV1$;ynss8`5fEK6HF4KluALN0_+ z8LC%Yh6UH3JUrsv>>ey^BCrKD9R>#7`!S=4J+CE;$3JXVSj+^!_WCuvBc!2HK98*~ z#x3^>RSzbQZ_^g9?jLcd4!K7R)x6(^oTUk^qeFdm$oRW&zrydl{RD5Ss-Qy_h)Pk1 z&M6n$k3GLiiY`+Y#s(R81ZB0RGUy5^2@c&P7=>f3A2M98Of8(c9Lbl&`bI-w}8TX4>p`+y(5eTV<-%>r}p z%&_jrR@ZS%I!?)4D`W?>9{Bs`kN9@y@oSHtqDnGIYUsS8az_v*U=w%P)Ej(0Ti^>_ zpmr0;t`AhkHIKd|MGnrJVBhBt4|s7NlF;_AO-5<~Zs9GX64$YkK zkKVj7sAYPf=#VT-BNFRe9k%50x4RWSq>SHv^_gu#rM7oK-961xiBEny`&vEo*y;q;ZW$6Q+UMTB`(Bv?~r;s3c#(KNL zPd@t|zNi#A#l14J>L}#t1oQUur-Hy?8ymEo@$PN`8gV7~EW0d_iA{b)z(4=y=lIFv z8+>+mXVCW%ayU=Uc`t^VIS{@MjHkb=@jI{H;Irx;(P?idGxBB{AP^l#tNZ$U-r=w6 z9lm_?h$TE6tmJU0j9TVJ)W{yYi4oi}vI2JldQRc14;b+<5&)z@d*FU+#C&7I5cu=N1MuxZXpq`udwcg{; zfBqGI=iNJe9x624mR9KV`ZPT!Q5X0Rsloc|f52~i{tkCiVQAH)m-<_rmH2+%Z19WC zNBrd7XP7IEgzknVS614WVM}&iu|4OXufE35n>D^%KH!IoS4d>uSc@!Q8y!Y74O zr=oqCyqkGkB2rPsDhU2+yTilX62W`8DirB~+q*Tpa#n9iGiY8oN0vVfc+?lAL|adtE@j!F)aVcessb|)yH{!g5Yg+g) z!z-y!d5@~{S1B%cFUl#f5=C`4$Ghblyq!exi~ETGzXJklI9SZ9cpc6b~R zbP#_*c7hbQ>frENGiK`W&MonpW`Hl5q8pH*{rQH@57OY;!+gdq|lQC0=`4i!j*RSyTYzc~a zbU2?PVX|X*ad4GF6T!Q0@pit%8$UDA!on{o@vxOp2bT$x3I+#{KM&vF_2L0v&=Nw% zQRxWTGPw;m=@w4j<5kZ1McU!fFY)E_t!?(5Lhc2f4i$kHAd;YYNO*Yr8ejT3I3+Xv zu_pRGUO&HMp(>PiX7ngDcy01n@0 zb`F&@-p=QDZ}B(n8jrJkJkp}j5VCPDPUxylNxt{Q_}OZWFuTLz?HhCMK4KO*vdtJG zv%bQQ|C1l%f2|f^M_2}j3VXdRnat1W$hhE9k>V2wUf+568R3o2!L5MF8^3Be0BT)X z`vBFHlv5!5aPbEJ`sqDBb8~#+7-?xWDdH;|)vGz~Dvy8l;akjAQK2fPJ~HUI88-_Y zOB~)lzQtdCyT)89JS;0vrK9mX4oY;$Zie>>Ut)>Be*c77Wk5vV9CM^AtqaDw@>n3k z5{iGA-{V6T%)=ZsQ&iDGkw>~v)AyON4^UshbacO_4eIA_@#z=ehllSGvUATd?Dp!o zhR5U#hMjr+e+L%|*LKaD77iUL@f_c1t5EftEJH!Qrrlw^`UsMYSJmRA20<8jVQEj! zvIC&&V2Uwf?w6*&hQP&XwVLqRu(qMt0 z;6#_fVIW4#5MhM*tneTXKNtKZaqR-N&t~@CT)0X}b#EPEizp>?y$(JgklU9uX&_~) zdn8~FF$a(W5{$^nEC@cJDpQr^m`Bl>an9bzuvJyco^q4chm^8i&Kbcw%oj5wAeJDo zngoCc=65Ba^U0x_&2hI}-lo1yCe1!$yARVv38-eiCv%@Iy*j{)gHrBGGTwVsp)ztV z50OzV)&Ro;bxa5G%!tXds`+dNCN_TBkVi8iZH-E9&KJ|d4ECivN6Co0I@t`4wP03- zv{@`ea?bG860WKYPA7M^)jZ5RDh)_VSU3VJAqu0a7Vt?y)VZRczfL!w=j2AM!@js- zPczMF8*rbQdWY<-gUdNfRGbXRyyQ=-VU|)Qd%`>fD{qSpxOct?A<6-Vg(hw4GdQp( z%*x&nV}yTrwMT)@u9@+H2}h{68?4qFeDCwm?OjoIrp)8G<*zFe11KqH^lq_MEW!pdLxIHvqe<7bj3L8Kd+q> z?vNWqM*en6sC?D)tb+F_G!*l=I-$!$L}15o;t*Vg%J4Jn+8V*Vg7aq0f-3^)-pk7Y zvsncZ!E&)c%nEhKO+Tj_b{8Oc5UQEM^Hl9STvW|Pjm`!<##3AR87eYr!0c|>2UJy0 z8b1C$0(s1f`R~Jg0at>t-rEYt^{vK8*I1)1)-^WU4ZiOPoh$95}L5c2osdBH&W1U1qz?<0}{$afV7B=3M^KhzA8kkS&VZi2uFed`J z89Y38sYUSj@Ws~-C%nau1#l0}W8r7mq!x?&J2>8#(wuV#zyDA<7`UeZb-;71@dMl+ zX!slptoQHRArN6v+S=I;{lVwm(SVvJvH~FlEar3k?Kf+*{0?t)hRS>-SH{Ibl&M9H++fRKPRT>^V?ZKBEB@fbZsEG*vw8g6)(2kN^N607*na zRGcn2ng&Rl-3puS3N9zyR{<~89PLzugX=gQc#&#u=8S4q0pCdrSxwP7gi8Rz*=uy| z>mdXny-ZP+nNbDb^)lT2c@aU=wlDhZQN3=$L2Y~F%~W7DnsC7Ag&LhlJO|@2ZEVWL9RwTV56ADGFD=VMCWvN%lF28Vu=n3r+ zULwG8D(&-J0!S-a_(CFgZ0)84NU`{@mER=AU#IYmybong(CG6-{-`K(Tl%s(q$>;+ zjEm6V5Yj%YAgtCJ(`L54N;~t_>jR$36XuIKV$QbbRa9Djj|V)*Y#V|e{=JPSncKXc z@6zlIAay@SI)sNxyZcbMe^jz0kII|;{!9YECSfrx$=&i*Igh80&k$zttqRSmSS*+L z;>$1a&7b{SG&$kHRX6QMN(v8$x66C{?As5vCz8L(TfxI2h~R#Chi%&w?VY`w{k2~+ z=W#cm7YD;*{d;tAH(k1b;3_o2BTc2N_7B>V^l4yr`jT^HxmZBF!>(=Mm-n{LZ+yKo z@~E=l|LNkMDW2woS1$H5jZBq z)iXYBKHwD=SUN6TAi9Wz3O(Ph4md_j2dgg_1; zz8HT^-@VWbE9dd+Bw(@kLwc@cGI8r>MRXZE$xszgF!v>>5dxD=+DIoH9HC-3SvK+j zBbd&81?JPwbKuE!xKPL~gu8Uf-&1uZw*u$%05lmP~hFwRK_i}(Ncn>#k=dQ7m%%g zkAS6SEL8AO9mEmx%z-i;9nUGrb?DCh7(8m{;T!`goaCwuQMY|S*p!xZ=dV3>9`xv2(!pq=>jFAVQ-x)2*xiIZ7M2I%`K?kjE1uC@aJn$(Phw zq^bnjh5; zbvt}A3;0F7!;j@1k~r&@`+9!Tb}G&QrC(lvNItoriPHYlQ$s zc8bsEcWBxccX#ufEg`%DZ=yqh$5(B_uPFnbjhm~dkr~&!v6t3+M|cF`{pvlM=Z|pT z|AA@jT#4|U3dW8p*mo1&IW_&W;sl77x`ki!?SqFeo=cfC)=y7}yBZ50FmwI|=z(=L z)hU)5k zB0^PFCO~@=Lev#46muUi3l(;;F@a9f3r3*FNcMz>#S$OBeUHu4GjdA51Qh3n3V_LU zyS+;{k2yTUTG=qz>EytN#N@uNKkBM75~|CBdbh*+<1^~j8V|FD$?27sxbK>XAz!b$R8)Wk8394!FBzftL2NExr%^Q z_Gkn2BC<2`66-|tNUz?2d-?s+(bth0I|%UFl7)32(SgSEMY44%eL3e%3gDEG-Bs(R zluFeVZk_7|6sf4LWJQ$IJpg+93N5K&lh;!Z4qIIqQjwr@F}iGXDczA%@9+< zp1FNpm!~gbZ08r3nc=;Iq9!Q0IgP zKfC&n@5}BESS}V=t+tT+*C#(ey&v|rt^(Pfad&rzb^RW7ig>u2Lvl9--Q&B)Hwwe-}__bI+&^}Is8-XO<} zne%;Dz%^ev=iXb(3!!1Na-i>!XScDP2*=%iweG%1e>n)xC{fYdQs@KEV0u}tHs_bu z@AviC<5=&danfHRa)w{>wO)cK=z;UwOJ7Z=_^RJ|Zhcq2+A)RMo7W$Gw|nbmR~zGA z6z_^RJ;gnoBd{psg*OtMGo-o*(B1lCnR6c`=y#ah9sbhBcCSr!%lHWkjY)6)~0rhf6;T|PcQ7Yj5gm4t(Cx*ukSBf?@f>(&0xDr}xYc>D|zf;uHriN4Wm z%#*|2Y+<5|A}?AqPK^sxr-X*{3%ubiv02RLh&lDv7uWHjY+h$!H~{l7!?wvt1$@w3 z_dzwJDAhZB{PsOIs}(rsUm1-@57#U8el38&!Jma*hZ$(^zfn4}y8n*4hbX{-p|L^w z#aCE8ud!yuug|Rodgvc?v~7EYL=e0H4LdwVJ&RbJ%6!?e38fKX!!>qj(Qrgoz_Gh1 z^?wlXK=B-Fy!H=!1IinaqTmz_B33CuoP%nHXandRpxkqKPESaI5MicsYyoUE8!uyk zzIFzN*SNePe4_vn3i!i)(G2ULya37DTo}2-&^T%j+8G=WS_s~{ zCB8<5?Mm=w<`5*0{yi5fkfR(*XZQ06JLfj*kEq{&gYd;?P+FJ{yV5ABJM~^Jy}wg) z%>A;sI~UQErormz8BNomZkt0vh-)KN1?t#hwcDC$-wDL!WW?QhdvHc8CWQ@pd8Qd9 zBXWk2-o)M?>f&TJQOC@3BZGhZZ`&9Vv-HpZl4p9Zci0VW7G7|X7$Y(tL5cLbY^FOy zy94^We6`AG^)x5y()ANFqU1p>`}Pz=L8x;=8rHn^!i}g73;@i8GBcxX+r7{qZWvDh zO^V0|0n%+F98;Q#Z@)P0((i!19UVr!6)&@rV`fIvv}WS?LVR{t*N8EFC&Vhoc(go! zeFm%8-JPtX3u1F4SVvDxZ zUVFi~Fchm;@3}yFJE|L*v5F0{@QaXHK*10^)mu#4F0Q?utb$q@o2ItednF_}rgACT zoREqoL+9Id8z;%CE339al6*7jy+2n3Pft%+JwIW)-P}CyU&@+v!^nM@opxFb$4XY6 zlX_?3RaI5LD2AFmU8b6I#(KTRZnr~S*HAHmvvZ4q+5AGf>-E=FMcp>oqy{Y&Yx%+N zoBsZ(ZG0$gv5_;jMY22>7x!Z*!71B$=Nz1OSnamh<`#8|$aH-W*WITDI@wymi4bEf z{w}z=owIG*-rIz8zG}1CbD8YlKDRqGY8yBNC$)*D<1)NX+qOoIE5y`e?_>HsdOzhr z-KA)yf`Kl`sr#6IcaFhNwFSmWiz4t~j!tb8j=djtz%I7Pq}ax$=Mwc9-idMO?}G)I zGgi$G8%cdoeCqSVj3wu6#NM(VqZaLu98K2xPzUVT_@tCj@9KfK)$M_KjK+1To7%caygPU| z=e~1h3sh1rMwl`}#D?7?!{_OK2N%vw&WxsRu5LS?UXROtY&l}b>16VCF#m_n?!suB z20KZ3O0^k5>U3YFqu1%b$)2UIYkd3uJyL1cpWg39#CXWerUJYHqFfeT&MpfMEKBbu#0hAfjA}}I3;mA2XR2_ z1nYW>7+W~M?~XdFGdJ)-6A`pIVO4L9|0SiMG18^eqkkT)8z`P~gF3~%6T{WIcl+x- zKR;u)+hMcbT-?v5^XG6LAOHEZR_3ln6S{zBu~=ZSSe)eXoJ07RDeO2}ft;JNGQnS?0ij9p{M%C&odp75x$an+kiI6ioY zS}C_}Uy0HP$r-OBk>E~FPWlPN(t-L z3iYnOSjIYv0+^u_cAT(DEz%1~Rzko|61HvqB7}z2uCe8WZQJzSe0sy@J4=imC)6o| z$V62`v3WSw{Wpa~r1*TTwl%if`eIk%u>>gRj3y^+OG4^iQsODvK3h)MwJkWm44GjO zY&IKgw;Mb^KSA=Z2H`o_4@HvosWTw#jw&s8!OeU=?-8B(e2)2ij@fKB5*a+q_!!b` zvHAE5H1P?$n2-c$lOT&lug6|?ha^qEY7zV*DW2Gag%G_0iF*Mqn%w{Ne#ikWXM9!H zh^Qdyv5E~EO#tQI#rPz$Q_5oVXzcW7M6?u8X9cmsm;3OO`#HzK*|K2e6Ig(4_U2iy z#ln&NQ3R{|RssSCkTTx4iY**ASr8TAvT2<~c8UNT0oa1^K^+7hADI!a;ASw{w-7*8 zfJ=;T+k{34TLAdNiz1$yjj&4>U}!LN*dmtHXyjW4l!(RwOkO({AjB-#W;MLI}v!98AE+ zl(F$1O(bNA5MortDft-k(4kN*F;Wph+BS+92=6IETrnEGLOGkfnLxIrc!~`mgdK~i z3JY#(JtpU{4T`84>N!1$OqsJsGBz%zUPW0`J`;%NrEjE^p2O^Td>rb$3{rXe-ifu_&H)eJb-a}}ras-LG~>rsm5-cAxC2=61XsTEC@kyXZ}0GUKV-sW9w zB6d$tXx^`&>)MpUaU5A1`e$|V$T>uK|NN#qRz$=u2YB=Oyhn9jg6sf_wrTME^n|vl zFLG=yeeK#7+t{Kl8Fywz@c!z^y_;CEe14DX=+zOsmWX|mTeO@JnGxl5aB=RdLz*%f z0dAWj@{OD#g_T{_sYO&p<~$`zTm^?TF=E>oVzo;VT{HA8+1WO=*rpa;bABCLNO8n< zSHezO-cO?$S#UxZPB_*kbssA@e%^o%?@pPIR~fVj7@6$ z_j~p9@E#db?j>VWP)+L5IlUS+%Pfcxw8FSW@rBC!RRxmT0i4v{liavwL>QSfVvJa? zS6HuBXk!c2myx}q2wFCTR!i`G%YNk5xOW?gWo-FHJdm0*)-fX8`gz@>B0EXgazrZ$ z#gg^*^PjT5LBP zy9EWi~d$KYOn=MB50IRr)YjGVhijT@;2mXfq+Icc4UN}7?X*zU9lJl9sH|U zaYW4-jfjb5`O}EvG47YD1%92t)~eou#l+!;wi4$!K;j77)MCvE&l(XWj}f{PT%Im# z(v*y(-_`&No^p#Qj6mk_OoXH3IQG*48cx_qL}I+G6s17Zw3cL$B9~xApjWNqK7$M% zb+({BilAmIH;`)2-?~)$@4DJV1v_PYthaqBh;W{h;KjHL3fN}tEQ766#JZ`$B1cOw z{rjF~o?6z8Dn7<7BJWLFuY&erDA6vq5Km||+Z-XX^+N6__h+O|EP|A*o3DXj%hA@{ zkpS=%S49gt5;-A}V3%67l5ZDvRqYS1^=5e==SkSg6=Gf$fI!81) z!QE)h;>>v(&$+?6%-3^>$dNWrkaK7x<3qc_y4m$-;$v#C;fN^K z{pu#%lXLnw&Jk+Ocxr2`o1OXnP2TBg4i14iBSNr~gk5Z}=6Mc{K!uGLlt{7Wh&smu zPsd~LxkKEBnoBBz)q0Jl1U$W=?gj4NElAIi3eEAq7@|5;gy)(-XSh+WRx313gSKgl zCB1dOnChcm6(WbCjJz!b(ynVpM@p!dJ+UHZtm~a2GlKaYO-dw$}+OP?2N@xrJV8bnTZELN|S0I7i^Tg8S!2sIUP?hT@hz|HW5vg>n zC1E=dRc~r2%))5J0%GajOW}%4Tc*$56AL3{Mgzrjv$M=wujlZw7!uOyiPR}#7n@#{ z_mq~E9z!&;t=~VfYq>XM2YQT%Y^X{S+xUk)5ZCRJ_MRJIB*_<(xC8yJuCxL| z5<$!PX744-+-(f%U5(9VgUx39LR4RoMGy-r7&(Iqed1c8eAfU`!xBq5p&)%}WW^b8 zWz#gKL{Hc4M&5fX=SxO*KuwHVGj7*h?%uDWmTUn_r-*;eWGj0`22hs<2KzkS*i~uQ zN-C&JhjK3bn-D^;6n@PgD%e>rmk^O2%{i8pU!xeS z%@)nK?}2RsXP{+9a=Z*Ci3GW1x2?CJL9=4ESX`Wh ztcr#N(VHFzJD}E#jT5|6xoA}pDWS>=Rsp9LF=jX+Wapua1$b9Fi-uX)Xv{4n=@P)% ztU}}W+69eRtyW2`nNh~k*nu8S<&Y&~EkM$MNQ`fgu@%Kz1Vo(QXao+V3@BmM0-I>& zjcZ?_E!jJlP74gYm!_=uE_$aFu+56(9GKMfZ$NO~8HeY@eCeL6a)PxcY*>(^Ey$V_ z(FtCOd4-+ZDyVdNffRMqAQj|bD~hOuaAHCA%G}BjGA>q486Q)FNP-y%Pm!?736H)q zZbYwPbQ>QmWwm`$ zfC&OQ?Lp@Qf)bu~jE~6!n$eJ=)`+>zAQz~MvG=DYY>=__4nYFMDW0iD1Y^$D%|=Jf z5vKo5(ijJ1pSAQ_FXuvQ>N#&Y3|uXJX9v>xzEAPLyA zE4(m|jRx!(sAIz2oi~K$h`x#zjV9Nb1Bsyrfe25D@T82lWyFLI1GuRkPsk2g2|E~v za@{uI%ph+lvKH^QLmkg9Oc6i@-v7l2w45ImfBW*jPF{FH$quJ^u20J16^IXnk@ zFUo>vC)j#ION@C401L8H^GyRC(G{}c$g??C!KiXg6x2@*+D!uwpqjZNYI=IU1tO?( zh{`4tAi#4&=@tc>VhI?TF4)7h=1^X1yLLCF|MD^cY!L3yQK$Rx?b+$3u$Sc_{zB zZJH}NGmT{okdbTpwWS*nuuIk&pGhGgwArHFTf_FIWV~Go%Sd;;hZ^;A*IFtq_OWno znrNL-bVdHsAu6pfYGLHABcNn>*K(VDvG~};7Hy|VL_n>K<|b%dd+vGgn z!xNcNOGbuetb2qgQ9U|9gwRDZus=zk3W`s#VtAbh>*EZ_wkOW-BVTD`l~(A)cN~WP3mZL(aMc z=u!;W1z=nd@2qNB_h1duDa#IbNNCnUcVfznl+C)sIl8LzGc!ZTxHiV)*`R3}Y&Toe zTDfvuI$ail@%id(yLF81sFCKHb*N-wi91eMcN{6YZvA!hUqQ%3*yd!qUUZ$uo)oTG zha9$S<)mF(BVA>`qvOfqOb2HZTkP7V@HMYgiz@Gz3!<6yy7w_WM>@0A1VN)2jWX7; zLEC#`UFYyMlpkoC25sBm`T5DpY~SI_IftsMP7CW2;j2@%vd70qESF1ERn`A@=$|#z z;hFxqswxmU?CKizZik$W$d+@q8eob&x#}D|*_DvCIbxMtt3jrWSXvf^WmGRerNbj) zHUFl-l1Z&R(YelcLC;ioX3DMTOIi@DC88iQvpWKLpVorx)Jjv=j;rYz zaVdM08oZchlHIRfrEk>cj7?i3sU51j+(L@JNjSqB9_j?GQ-h6KkkgW4lZ`y-$Xy2H zRnbDQ(bSv5*2H+uEpP?=?8}B9bHX;7*qG^hP~V#FgTMM9Q&r@YM+-cqJP^y&>vT;- zd;ObLY>e-9MZ)66zFFBgfL)0lf{jFM+xmdhc&_^-ixF`PZ8!h`AOJ~3K~&rQ~5cR>oVKmM(J6hM)|( zb7C)ffZh>(s3Lwzzoy$K+O{!WALd?rZM)g@yp8kgP6vB}g3G(v#nK>B?xoB6&*`y< zh>>zt(JEuBsWh4-0E8JF0$t#IC@>@Qvx~}D=N8{?S7>wEa}KZIu8A08D*&2o77=xd z{TiHdZ-!&)3sIY39iFW+>eQm)bU>0n_^6} zs`uDP!ZWv6=N5I2aOC>+Ii2qZ*Y63|37gFtDP`y`HMhG4;wrH9LTm<$mDc(%YO1sCkE~KV!f!3mr z(8dU@_Uam^B>sJ{z@Tm$FqKxsf%akBw$N~YF+lA(Cb2~#YxR@D?^x}&(EG)8F)k6B z*rFCA)pi-X$?Y>vSTG$82%8v@U{c}8K-<~@lKo{wqw?N}qp`&%wn$KDX@%T%-4%3M zJCk4;ZiEylzSu)(E{McXIrxm=1X0oPk$sCQ?OV97&1UKpdjt+W=Y&gfhOX|=%B5>X z)Sjri^VF6A<+XPuIcL3tj4EPEr(;8K}GQxIqcq2<42n+s_Ij$|g>6 z`TYhDmbCA#5=BI|;J_s;e7I`9D-=!Jlmo^@JG&+mb{WA}pb_I!FRSSSsOuUrM$;N& zIY5=p>c%ibAp5Q{$w=%>L#7;Zmn=BC5?-f+vyKg3g&7|Gd@mb97tjqI@&fG|ud9Gp z%cY3|ik=-;oglug=|%cWz|kh>-)?4l{BSAHO5%M6{K zA4l5$vkEq`!Ok~WhQ&#N*`e><@NyZ9Mg+AQp}S5IkDTEGfzLRaPpb|oXEaTVT#%lW zGhQzieL#DQWBOULGx{=T_}`BOJg2;qrvE+Z5fuX3Mp1DKq!z;2d|8;m<)tSNJoqpw z;Y_bf>Jh{vw>z{w6YGpG= z22UrkE|V=~vtm#?u-CD{=hXs)^CpW#1Sg73Y)~urHWitS?3an*Nx;fS4>amf6C!Li zqXD37iz$JyW7`;JLD8n-?K5<5r_gg8obzbmv8Djx40ax?hTsyg2o5dt$!@%E9c|hg zt2Tq9w+xXzT5(_jI4HEZo%im|6K^vm#V$rPNzA{B0A)p!&2w!TY}4tuk5jE9j|v{v zQd@(Og`q*gaM)462Qa=zf;l`|%_U$qMP-nwnh&3ELm3|ti;J-$dXJSdRxV=Z9ca3K z4>)HGr-W6qGAAh^v&VX;;0KRT0x4$esOp}l_cjs-7YI@^ot1%E1d9-$PJoWY ze9Xg2%rayrhUgMGGz2`SE#6iE>=tlvhO89pnh^&t7%@JDfVv2kky8lSI&4(InXq_x zfXmsOl1f6Os`mf;vbLhmEgFh&>cEm9+#)qQ*N)h-J3oHIy0q7YUh z*s|hrZY9|_503~T^nrpFq>c*NyPMF29$^hY1guD=>+`v~J4|lKjol6sU za9@zWH9UkJydyMVtjS}IfGCQG`5dvB=z8aRiidfVF}U~`wmDg#Si~hiG+Vq{++m*0 zyjB7MyhoOtv+fyoFnuZ?Y;A+V3J7LsvqN44YxgI?Y_>qw|C_yc>y>58(u2M+<|Qt9 zU2Cts&!uR0(=CvYKtl2_fH%a0g#{9}#Dn=C{1hH}09lqLg#3gAenJ8yWK1`Wo3grG zrs`bwK4-66W=7082M=S;$cV_ybvd^>-CZedRjqY$Wk$@HmodKajqgj7`zci%A_B(< zCJ#pzf&(HYJUo1a>>j~=hu9xbRnTCdg$R1(7t}jBJjx2-%;$e3-Ejo6usRmN&!wCYWkhy_1 z79xZg)5!xA0(@OTe3hSDoD>YofoKik@$s9J%MDS`$B0M*Q`dmiKx3F#ITJLj=A|rF z?Hgv?qmUJGwd84GiWpbE4=slXY?gf|u!=v*G0+=xtR&G3Iw?h6wB>l(#<8OBOX~ik zf8$P>E+)Vl7zZ#V*o3nI53>fo>OECZCBj}*A-sNJmqy5(t{krp!fGM{?|tFGpEdi` z^+8AvGPqyM$fcWeYp0Bm)k|4!(Y-168nWI;9|QUr;pgQfnj(}#38#Ece!PVXR7y+F zjtNb>Mhd@g-*xCE!P0YO2IcH1LX=MQhGJA(7V-YYim`prfJF>&dw9ey^hoevyv%=X zJQHFb*ARM;uRy{lVu&Z*H!}eu86jx}?x#fOg;cX~XwmN)5|Pp8kR@z38|5p-UIVji zc3XHtg#`Wn_M6F_^?j!Ze+)S64`^2HlaGfkbO)6l&6w4>>!v|%>@aVK05quu3mdh$ z`0()#mI=Ka_stP6CAJ-{t0S7qbXlmiY@@xYOJ zr-4!4A0i+;3Ocp)xmYYFQW&QJ52J|@);e_Qpb1l7YlVuXRzbTrL; z_wF5T*kL~+8;=np9k7Jk_z`{I58Y4W4hkZ|)%7(HJ0NsOSyl0fL>WFN z0zJLa6_|JMSxE_$(FtoUHrp-Qx*jCA=ZKXBLnz|$7LacRDV^%Mgb?7I!)nrD@B#Z??a!}KNT(M5kcN!b+v+z390Xu>p(^L&S*fM zOLJYPXa;2uphpQfAi>oYOmDz+9!Zs=dvW(Mx54JXfq4iH7R!aI9mmu8QSOUb5Z`}2 zY{pE;o??s?BkE-hKiZ&57hd@cCszHh?mnD2b*2;t-IR9Kz@(^uPg4#MMCVHqL41fq zGmHj8ocUiJ%wmb!*V>hIA!9Q}Cgt%!l0`%#9=ih;izQN@Cd6EtD@PNd@4FN3NZ<8H z$zgvuV7*?0jZx1pNtcoCbX<4DgaZk72XxK77eB7h!1B8_)0#**1hzuzMz?V5b+9N4&%gMFYdkaA20Ke94W%I`*ATDGz$ zjV4Uf5-l5}Qh6fES2U8jnnpX3i6L^?{hi58zC#-rvUnx|pS`_72)b9Kf+*5>e@n34 zvCK-OL3N4=Pu{&l^hVd~c&;Qu0KtNgEW_Vc7Ylbpgr;p(!MT*^Qkv}VED621iI=voqgY*YKfiM4@92#&`U@lp={kGu>bzQ`|qXyU>e)pmo;)fM(TZF_YyW=6949M_Swk*k z7%?XB`>%&*Gv1fk7%W#S=#-xRJ%NS{JVe#pnJX*D7~$(0+pDc^z*_f&z4utH*Qm2)#^gHlVOq%O_M<)Pbsj=QQ#V-EE8T2Rwu>C!O=N zpE42k_U;Z*5=5c~Rs|I+0S^(Zv+8R$nv&%l2%$#|J*>6xl^qVi`GKh7kP&8P^jVO> z5?mhkd)z0=r{sOV%iNW+UgzI$nIVRUF0c6^m_)GO?=@gJ)7e`Po-%%e zfaMvNd$RT<;2|+EhGC+hH#8_S(+mlxyeB_CJgN=QNN5nF(vxFCpm;2!=f692-H{(O zA}&7_@Vv}fLBOI5Erh6am4}D@|0p7VCxpIq{y(8pg7e5l4p>T1F_@Jl2XPK$bn!?M zRKoB{ox#7|N3GRTpLJMtTBM95kTp0UX|^S*Pr<{2i(pQ;zrTYMU@s~FcrG*&0a7Zy zK&rOt6L6n3Rw}lcj5#e271YC8I|KnD0%t577={^9dfnKa!Q;at`p13dyqxas%m$GI z4xs}%3)g9S8~5$ym}%)dT@0!H3;FY%V?61oXty11%=>40U=o35E!c7(Uw`m|WvN^c@~Q z-eND5v$pf(mB$#+(ecnU!r)|)5}{tM(N-<`KEP9bR_90z@FCq{XL_V)AczAQd{0`A za^9&+wX>Qj7V=|$-rAC$$;ybR2p~~}Byd2V1b26jfaL6b#90A5rJH7D=8i<+YynIZ z7yuxTW?7?;f=VQdwNG1v*;@360}hcih+x%ZaDw z3_SFJ02B5ppkpm>$6_p8wv!>C%>gPCx}=?Q93mVsI4UX=D4~x5AMfsv(s_|N$Baab z7$OV_0`=ME!$8EUikD#=`YxB6rwHB=O(b;t2sRdumDy*(piHb!5&-TIQwMA7vkBaw zFfJPKcYTMJ0Yj24I1KhASa}CSgg*4D>mvk7NA05`Utx?vv>qX82XV53#F``-VsyJb zdLleUF^`nsVIYRITxu+sJSwWtB#YZ`KH?D5N#J%YMldjf#8d&#BjXGR=;OnhmIrkS-uXz1&2OB=9JGp0_I2cCKXB z9Xj0J-Qo}ghNq|U;B21D8WPU8(#More)s3+QW=+~t`q9&hh7OB-4@4aR~t z#3oD7pV2KT>a8K*OGM6g zps2+RA*Blv{kg?cX6f>n%qv9L?e>t^AqG4d@DwC@U?9m3hUpgY)^Y?6a29xJ!=4DOD!T9*}TAu1C+F3ke;^ zJs_j1VR396|_q|Ni}x^W)NgqpYcQPPkCZ z*u4fk`~Ch;V~me6hDD71WKo{9cRv&G%xjU>TC7$p_^KL6lIZmJY#8^44t)p%l%FI= z3{h)to&{nFWDRVt`x%o{PY{}_Mif;6)pl-G{hW8JFf({jgC8xN)qZ_GB-o@p7T?sM z%3)Uw1kaJLb30#MJ2Y(zy8WOCg8-BW);aX7Fxuf#CjtS42upx-F8iru-=(OKpSKpK za!7{Jbvcl`&^0GcAy4lds)Ha(KxHjlRiQ(|F3ut{$|bg%VZ02pf_UNe~(&x@*$l~cWQu-1V>2O=IeIU>To@AUvK zC6C!h#ZILOIO|JLI&!JlFnWoam5d0Q2=ORsP6P=7sSjEILSf^gFHt!U<80n6141H& z#51C2C>uW#un*nfrkqmJ4a%r4#^G>4NTjw3^xnxi3Y-IMk)qQ1uK$R`3lu8uR#@27_zXTJs2_=o6aF< zV+>+Y-4QlsAX_uj@mUR|)6){IQk`f(;ih^;Gz6@7x3|hIx&(jc1Y*qbqLHr4z&DB! zT^|v;gg&MdQfu+^i7_hoCZ@sHjB}8<+dU$65hCaJ0&6Yq_Pc?+A2S!L><5yxD`;9G z;T-&>f!ad3qs4g#3V>lG~M6iYtV$x@lv*l*J#K8ca zH=wA9!%^Er2KfVLEXbJwk+aUi`%F-kOl*$v7$lzI6s439NG6_UM_wAkTivS;DPl(v z2cxK1nKMHY%M53X+W#293&V=Qv(YtGIqWFmVCYHhr&JDS5jbKrhEW-(L}q8PlPnxN zE*XzdeP*M7&x&Mt7&NW|TMN^8^`#T-^wdCL`g~ZDCLwvgq!i)EpmiRLs)nt-ItQd4 zDMpp5$UGpc<<5FHM*`tA7!*YpV##ozi%G!%ms}t0Q~3w z>3t>?EQh5&$p*KJ;7$W32El?mzMC}~fd>Toz!kj*9!OpR)>$l;3p`Q+b=pz2s#~OP54MVkJW1LXAml{K*A?oj z2JIh*>sc%oKxMJ-Is|iB7=;0}b%naCv0NlzeESF^YKc%+mDbZG;lW~11szz1qt}W6S5@%Vp<)Zp<7=2l8afk;z$N>p%avd%o%Pa!% z2F7VNS0oIKHF@LG06oQNTYJgC*)R+%Vqr~@L>E}2ZKqXL0nE7LPP6Kq28zTStm!xv+{0!UV@mBH#y<#F)_e2YNci{ zEQr!X!KZXeb|Gf_0Zjapcog{8b%TmjTd7Px?cR!z7zP2q32m?hbh+7KwOV1{_b?$0 zqJ=_0&p2w24FTwAz8j8j2B!8nP{M)rITot~k?Hz{QRHO1xx!ty8xFJazYrtt?(U9C%I6H8nQ+Lw zPKiATW|;TZ+C1L`0YIOh+K{9bgxly|TM&DQptcUnc7erm0rFP;t)6b^%g9KPXb{xK zp{*)3O$|7M2ShwlP&Q&*@R<3LbC6#;4JR+%bAbnFm> zAj=BNJC9Yr!)*kj7_6%mOyv+AE3=zu*ep3iwWT0noJ9h#YM0m@4p=&auS0^k9wrDZ z0ZHgYhvbB;SVDrjLESFl?!HDH308o{DC8FmA)Fz?>BCpOok!>3SJzl{9qN05NdW-@ z*H|=5i_X^wy8{l~Yk**;<7)HI3$$2Y3pU?=gza|d0W2GfWEcl=h=~TY=J;rjDag)R zm<6M5EqKT9!GWYhg@mRiNab-GIs~yud|L1{WY7WlmIP=T)K!gz^stn0pagFnuA3#i z_c-)BBsR+D$m-U^q&B)D`T#6f3$)*8ojsa_iW1g!4OA8Sq%FV0!KBJB1EfuX!POS_ z!w1+*$c)5TI1TEkt<9-d_(cQrn;t|7o)VlRP+jAm9CjQKOqwjJGHoPlYE+9F*Vbb}gj+-y?ooS# zxTx{bc|1g9eeLowX0}-wvVXe;cU zMc?=6z&bZaB+=4lZ;27>3O4MN>jeX6BDk&qZg7{qm`KzjL_}2CH%Bc7z`+?TDvSQ( zBLW0VHfUf_ZC2=7hdxCFwfxTLmU2!cBdQ4ryr^NKmTRpe_(W)24d1Rnl^*Qk3Qx%( zPB!DFStEQzRp6pu@5`6Ock93l0JTvxG&tvsr_hVyM+)+p`4)+>^NhrV zU;=zh@DW%o763DXWCZC#0+)#g=+Hwbq4okVdon2@L=ep_G88nL)&A0ah!c$caRb3$&LW*isndq|Px#X7dwyNRiL2J7J zDmJK$)hZ>QT7(VbG?LnPm51{Vo)o&SeTAy7k(dx?e?N2yQ0dqqu(MdSE!?-HlRr~Z zs;UBv9&+Vxn9W%(2pPs|wbTPD?;(xX%x>2ma@Lp2IW$I!ve{-%X_~r%_ZGD8Km@Fs z7VJGbLkJNF7u*L^?tp2QiUQUTw;)8A1k}EQ^&VYHNYAL(bdun_#df_x^U&e0SAxB- zs-gR%bn=PNq?|h*F8-x-rZMB516~vTo3B*Vuc;4nUt##L_jBE9O`bff+E_4kt#%PK_~&zBLuN ztq`0+7gZ5gMvw^S!+kjCtyT2#wu2{w)uKkbTq1glfQTKNtTJwnB}+M?W5k+_#jXb# zhPM{Wx`nSidJ>E^%7^jHleg@1byG~S~1HI|Ddhrg7na(RM zTRm_%0qfNoS9g#2>Tw5yga{?IG4oL3DQo&tz|m8JtvuSgLAAR@N&%J)tW&u4#NGS? z*F;3n)D5;(i~8XaYz$mg>4F`pM4pUaiFk9Cx2PM`&chydKonGDQ8|Z0-$4w)|Uw?~=7;ROfXVm@ z=sN^5FwPC-mhpx)h?tRTysTF%R9}7rcL=Df3eBQLGz1}KHGEa64G7b$Y^F7ea^Qy0 zqwD&?4cRcGCWBS80BVni)GO-dH1R3M3T3?l&M?g{v#eUh{{RZAxRAkXsHP{#=Ls?g5zCzo!xPEhux~^5z zXhv8*>C(#DNrsglRtcej!6KJULW(CP!spC)E2F%b&0>kwV)3Gbd5q|VKEQ#oB!_F? z;A*`_v;>JbB3zfatfa`ANdg}Pi?+sQv)1ZEjQJekC%w{QE*}~ptc3CDVuS0=7BO>5 zF>@$C$890fPBvo=YPMLBN9(Hr6)KM7ct&cbBrlC2ERDrxq3HcQ2tG$LPAP#>M9ADd zVnVxG;@#(;pQd~}FtabnZfA2s0yGbDb{Z?yF;>$^EEU34{UU4xwkS&K!}V!K?!8v{qcvZ~Qm^}tIiwfM6nEUQxAiGa;| zjb+`SW}^sCMpTpx8Ha!8TQ7mSZE(F>!Q^LCR~72I(He7xIWOt_jFFb@YK28p>*mcC z>$XMZJ;*Ssu2!h6g=faw?Uf3uF@}H7z3RF~+cblBRO>Uc;uvs7 zH7oM?p8O*qSi)kx%-3MBsvB&UEA6b|%=LM~HM-nqQ`cy$hZR9nRamZ8S}qy2jw(kh zcOQ-f5Rs({R;%R@AX+w9v<;T)wQ>|lU@8w&d63hRY9fHk=Mhf=Nfo1Hw7x=HRbaz< zKch7}{zpTAtn0d}Dp*#j{Z-Rqvs|jQLiVw;Y?KSfx{i?fXfbzvR&|ZK@~A40&3Xf8 z4Hiv<<@FX)SwzbaZ^7PzorTH&tN)B5g*hXwt4etlzQWaN4c}DQAu9L58o+7;LL`P* z3pfW;*AQb7nXt&?Y6Mu-4c=T|gN>H@=aq40GjM#4(*2^PBV$lokIia@?RKkVSi>Nv zYlXZ$8DGi~drYc>1R~Vd9Wt9Gf?gxmr5+(}sW_mmQ>2(Ie|ZdMyq&JSz*wf9pQhwJ4Ei?$tDl9e&VsKG3#kzL9%58ih73;zto(g7()Wn~>eT|*Uo~ju zQ3-1VbSZ$WQ8JaYlT^EuV2+570b7Tw1>>##79ZphHCxo8^`m$pd*GR?ZMomo_8RLC z??KLDWg7MCum;w-(=IV5DBySlz z5!AKEr%R6*4%qlwVQch|WG}Y&Wt9c^pzZgow+%Mm3Yt5@!dtXei;x6tEGlDl!^&B$ z_Z~#Zwg+;QZ1;>e*A43T2lN75Z`as)g+P5WsG3THkgUe3-A3JjM8y!We@M7qU13of zB8xS$xuGXksHOTFkI&Zj?Es_$M-)*i? zeeo--ti_FMfH<`Sq%%4qFP_J7^NU-FUqmp}*RT>|Iz@*6}QNzH^Y6
    i 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 A82|tP literal 0 HcmV?d00001 From 8c704836c87728ebbc6969992de22bc71777048b Mon Sep 17 00:00:00 2001 From: David Read Date: Wed, 26 Feb 2025 14:16:45 -0500 Subject: [PATCH 8/9] Update README.org with an image of the PiDP-11 --- README.org | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.org b/README.org index 210ae86..b56a644 100644 --- a/README.org +++ b/README.org @@ -2,6 +2,8 @@ A web server for 2.11 BSD running on the PiDP-11/70 +#+html:

    + The original thread discussing the server can be found at https://groups.google.com/g/pidp-11/c/nE5W6wAEIxA/m/7mGpfjAYAwAJ The current version: From 179f0fe731bc64d1752f41bdda270475810cd617 Mon Sep 17 00:00:00 2001 From: David Read Date: Wed, 26 Feb 2025 14:30:00 -0500 Subject: [PATCH 9/9] Update README.org to include link to demo CGI app (Dr. Nim) --- README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.org b/README.org index b56a644..1f94d41 100644 --- a/README.org +++ b/README.org @@ -25,7 +25,7 @@ will be able to read the content. Also, I've created a version of Dr. Nim (ESR 1960's mechanical computer game) as a proof-of-concept for accessing the request parameters and content. That code is -available in my 2.11BSD-Dr.Nim repository. +available in my https://github.com/DaveRead/2.11BSD-Dr.Nim repository. ** Key Update Notes from Chase Covello (Aug, 2019)