From 8f89a5c1f8c0a5f65fc4417996c71e0e6c4165e6 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Thu, 6 Sep 2018 21:25:51 -0400 Subject: [PATCH 01/19] stl_thread_add adds an existing thread to the thread table, use it for main thread and web server thread this helps the display with stl_log add printf attribute for log and error functions --- stl/httpd.c | 12 ++++++++++++ stl/stl.c | 46 ++++++++++++++++++++++++++++++++++++++++------ stl/stl.h | 5 +++-- 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/stl/httpd.c b/stl/httpd.c index 0c32246..dbdbf24 100644 --- a/stl/httpd.c +++ b/stl/httpd.c @@ -36,6 +36,9 @@ static char *req_method; int web_debug_flag = 1; +pthread_t web_pthread = NULL; +int page_request_once = 0; + static int page_request (void *cls, struct MHD_Connection *connection, const char *url, const char *method, @@ -48,6 +51,11 @@ MHD_get_connection_values (connection, MHD_HEADER_KIND, print_key, NULL); MHD_get_connection_values (connection, MHD_GET_ARGUMENT_KIND, print_key, NULL); */ + if (page_request_once == 0) { + page_request_once = 1; + stl_thread_add("WEB"); + } + WEB_DEBUG("web: %s request for URL %s using %s", method, url, version); // save some of the parameters for access by MATLAB calls @@ -205,6 +213,10 @@ web_start(int32_t port, char *callback) daemon = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD, port, NULL, NULL, &page_request, NULL, MHD_OPTION_END); + + // this starts a POSIX thread but its handle is very well buried + // its name will be MHD-single but this is not gettable under MacOS + if (daemon == NULL) stl_error("web server failed to launch: %s", strerror(errno)); diff --git a/stl/stl.c b/stl/stl.c index af29aef..c148009 100644 --- a/stl/stl.c +++ b/stl/stl.c @@ -113,10 +113,7 @@ stl_initialize(int argc, char **argv) stl_error("initialize: mutex create failed %s", strerror(status)); // allocate a dummy thread list entry for the main thread - threadlist[0].busy = 1; - threadlist[0].name = "user"; - threadlist[0].f = NULL; // no pointer to function entry - threadlist[0].pthread = (pthread_t)NULL; // it has no thread handle + stl_thread_add("user"); } void @@ -199,10 +196,47 @@ stl_thread_create(char *func, void *arg, char *name) return slot; } +int +stl_thread_add(char *name) +{ + int slot; + thread *p, *tp = NULL; + + // find an empty slot + LIST_LOCK + for (p=threadlist, slot=0; slotbusy == 0) { + tp = p; + tp->busy++; // mark it busy + break; + } + } + LIST_UNLOCK + if (tp == NULL) + stl_error("too many threads, increase NTHREADS (currently %d)", NTHREADS); + + tp->name = stl_stralloc(name); + tp->pthread = pthread_self(); + tp->f = NULL; + + return slot; +} + + static void stl_thread_wrapper( thread *tp) { STL_DEBUG("starting posix thread <%s> (0x%X)", tp->name, (uint32_t)tp->f); + + // tell kernel the thread's name + // under linux can see this with ps -o cat /proc/$PID/task/$TID/comm + // settable for MacOS but seemingly not visible +#ifdef __linux__ || __unix__ + pthread_setname_np(tp->pthread, tp->name); +#endif +#ifdef __APPLE__ + pthread_setname_np(tp->name); +#endif // invoke the user's compiled MATLAB code tp->f(tp->arg); @@ -215,9 +249,9 @@ stl_thread_wrapper( thread *tp) char * stl_thread_name(int32_t slot) { - if (slot < 0) + if (slot < 0) slot = stl_thread_self(); - + return threadlist[slot].name; } diff --git a/stl/stl.h b/stl/stl.h index fbed947..366b71a 100644 --- a/stl/stl.h +++ b/stl/stl.h @@ -2,8 +2,8 @@ // function signatures void stl_initialize(int argc, char **argv); -void stl_log(const char *fmt, ...); -void stl_error(const char *fmt, ...); +void stl_log(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +void stl_error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); void stl_debug(int32_t debug); void *stl_get_functionptr(char *name); char *stl_stralloc(char *s); @@ -17,6 +17,7 @@ int32_t stl_thread_join(int32_t slot); void stl_thread_cancel(int32_t slot); int32_t stl_thread_self(); char * stl_thread_name(int32_t id); +int stl_thread_add(char *name); // command line arguments int32_t stl_argc(); From c8b0492c2ad9329813de2a9736472360896a9146 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 7 Sep 2018 14:42:04 -0400 Subject: [PATCH 02/19] can now handle POST operations example web page templates/input.html --- examples/webserver/myserver.m | 14 ++ examples/webserver/templates/input.html | 14 ++ stl/httpd.c | 317 +++++++++++++++++------- stl/httpd.h | 4 +- stl/webserver.m | 61 +++-- 5 files changed, 308 insertions(+), 102 deletions(-) create mode 100644 examples/webserver/templates/input.html diff --git a/examples/webserver/myserver.m b/examples/webserver/myserver.m index 180aaee..664fe97 100644 --- a/examples/webserver/myserver.m +++ b/examples/webserver/myserver.m @@ -7,6 +7,9 @@ function myserver() % called from C case '/bob' %webserver.template('templates/home.html', values); stllog('in /bob'); + if webserver.isGET() + stllog('GET request'); + end a = webserver.getarg('a'); if ~isempty(a) stllog('a = %s', cstring(a)); @@ -19,4 +22,15 @@ function myserver() % called from C webserver.template('templates/alice.html', vals); case '/duck' webserver.file('duck.jpg', 'image/jpeg'); + case '/input' + if webserver.isPOST() + stllog('POST request'); + foo = webserver.postarg('Foo'); + stllog('foo = %s', cstring(foo)); + else + stllog('GET request'); + end + webserver.template('templates/input.html'); + end + end \ No newline at end of file diff --git a/examples/webserver/templates/input.html b/examples/webserver/templates/input.html new file mode 100644 index 0000000..d0a6e38 --- /dev/null +++ b/examples/webserver/templates/input.html @@ -0,0 +1,14 @@ + + +

This is a page to test POST

+
+

Enter value of foo: + + + + +

+

+
+ + diff --git a/stl/httpd.c b/stl/httpd.c index dbdbf24..c65fc4e 100644 --- a/stl/httpd.c +++ b/stl/httpd.c @@ -1,5 +1,6 @@ #include #include +//#include #include #include #include @@ -27,64 +28,202 @@ static void send_data(void *s, int len, char *type); static int print_key (void *cls, enum MHD_ValueKind kind, const char *key, const char *value); -// local copies of the request parameters -static TMPL_varlist *web_varlist; -static struct MHD_Connection *req_connection; -static int req_response_status; -static char *req_url; -static char *req_method; +// variables that hold state during the request +static struct MHD_Connection *req_connection; +static int req_response_status; +static char *req_url; +static char *req_method; +static TMPL_varlist *req_varlist = NULL; // list of template variables for this request +struct MHD_PostProcessor *pp; +// local variables int web_debug_flag = 1; - -pthread_t web_pthread = NULL; int page_request_once = 0; +int page_request_responses = 0; + + +// forward defines +static void postvar_add(char *key, char *value); +static char *postvar_find(char *key); +static void postvar_free(); +void *malloc(); // stdlib.h clashes with microhttpd.h +void free(void *); +int +post_data_iterator(void *cls, enum MHD_ValueKind kind, + const char *key, + const char *filename, const char *type, const char *encoding, + const char *data, uint64_t off, size_t size) +{ + // Called on every POST variable uploaded + + // make null terminated heap copy of the value + char *value = (char *)calloc(size+1); + strncpy(value, data, size); + + // add to the list of POST variables + postvar_add(stl_stralloc(key), value); + + stl_log("POST [%s] = %s", key, value); + + return MHD_YES; +} + + + +//------------------- handle the page request static int page_request (void *cls, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **con_cls) { + WEB_DEBUG("web: %s request using %s for URL %s ", method, version, url); - /* -MHD_get_connection_values (connection, MHD_HEADER_KIND, print_key, NULL); -MHD_get_connection_values (connection, MHD_GET_ARGUMENT_KIND, print_key, NULL); - */ + // on first invocation by this thread, add it to the local thread table if (page_request_once == 0) { page_request_once = 1; stl_thread_add("WEB"); } - WEB_DEBUG("web: %s request for URL %s using %s", method, url, version); - - // save some of the parameters for access by MATLAB calls + // save some of the parameters for access by MATLAB calls req_connection = connection; req_url = (char *)url; req_method = (char *)method; + + if (strcmp(method, MHD_HTTP_METHOD_POST) == 0) { - // free up the old list somewhere TMPL_free_varlist(varlist) - web_varlist = NULL; // set the template list to empty + pp = *con_cls; + if (pp == NULL) { + // new POST request + pp = MHD_create_post_processor(connection, 32*1024, post_data_iterator, pp); + *con_cls = (void *)pp; + return MHD_YES; + } + + if (*upload_data_size) { + // deal with POST data, feed the post processor + MHD_post_process(pp, upload_data, *upload_data_size); + *upload_data_size = 0; // flag that we've dealt with the data + return MHD_YES; + } + } + + // set the template varlist to empty + req_varlist = NULL; // set the return status to fail, it will be set by any of the callbacks req_response_status = MHD_NO; // call the user's MATLAB code + page_request_responses = 0; + request_matlab_callback(); + + // free up the template varlist + if (req_varlist) + TMPL_free_varlist(req_varlist); + + // free up the POST var list + postvar_free(); + + if (strcmp(method, MHD_HTTP_METHOD_GET) == 0) { + // GET // check whether user code responded + if (page_request_responses == 0) + web_error(404, "URL not found"); + } + - // return the status MHD_YES=1, MHD_NO=0 - stl_log("return status %d", req_response_status); - return req_response_status; + // return the status MHD_YES=1, MHD_NO=0 + if (req_response_status == MHD_NO) + stl_log("error creating a response"); + return req_response_status; } +//------------------- information about the response /** - * Send string to the web browser + * Return the URL for this request */ void -web_html(char *html) +web_url(char *buf, int buflen) +{ + strncpy(buf, req_url, buflen); +} + +int +web_isPOST() +{ + return strcmp(req_method, MHD_HTTP_METHOD_POST) == 0; +} + +int32_t +web_getarg(char *buf, int len, char *name) { + char *value = (char *)MHD_lookup_connection_value(req_connection, MHD_GET_ARGUMENT_KIND, name); + if (value) { + strncpy(buf, value, len); + buf[len-1] = 0; // for safety with long strings + return 1; // key found + } else + return 0; +} + +int32_t +web_postarg(char *buf, int len, char *name) +{ + char *value = postvar_find(name); + + if (value) { + strncpy(buf, value, len); + return 1; // key found + } else + return 0; +} + +int +web_reqheader(char *buf, int len, char *name) +{ + char *value = (char *)MHD_lookup_connection_value(req_connection, MHD_HEADER_KIND, name); + + if (value) { + strncpy(buf, value, len); + buf[len-1] = 0; // for safety with long strings + return 1; // key found + } else + return 0; +} + +//------------------- create a response to the request +void web_error(int errcode, char *errmsg) +{ + WEB_DEBUG("web_error: %d, %s", errcode, errmsg); + page_request_responses++; // indicate a reponse to the request + + struct MHD_Response *response; + response = MHD_create_response_from_buffer(strlen(errmsg), errmsg, MHD_RESPMEM_MUST_COPY); + + MHD_add_response_header(response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html"); + req_response_status = MHD_queue_response(req_connection, errcode, response); + MHD_destroy_response(response); +} + +void web_show_request_header() +{ + MHD_get_connection_values (req_connection, MHD_HEADER_KIND, print_key, "REQUEST"); + MHD_get_connection_values (req_connection, MHD_GET_ARGUMENT_KIND, print_key, "GET"); + MHD_get_connection_values (req_connection, MHD_POSTDATA_KIND, print_key, "POST"); +} + +/** + * Send string to the web browser + */ +void +web_html(char *html) +{ WEB_DEBUG("web_html: %s", html); + page_request_responses++; // indicate a reponse to the request send_data(html, strlen(html), "text/html"); } @@ -94,30 +233,24 @@ web_html(char *html) */ void web_template(char *filename) { + WEB_DEBUG("web_template: %s", filename); + page_request_responses++; // indicate a reponse to the request + + // process the template into a memory based file pointer char buffer[BUFSIZ]; FILE *html = fmemopen(buffer, BUFSIZ, "w"); - WEB_DEBUG("web_template: %s", filename); - TMPL_write(filename, 0, 0, web_varlist, html, stderr); + TMPL_write(filename, 0, 0, req_varlist, html, stderr); fclose(html); send_data(buffer, strlen(buffer), "text/html"); } -/** - * Return the URL for this request - */ -void -web_url(char *buf, int buflen) -{ - WEB_DEBUG("web_url: %s", req_url); - strncpy(buf, req_url, buflen); -} - void web_file(char *filename, char *type) { WEB_DEBUG("web_file: %s, type %s", filename, type); + page_request_responses++; // indicate a reponse to the request struct MHD_Response *response; int fd; @@ -131,7 +264,7 @@ web_file(char *filename, char *type) if (ret != 0) stl_error("web_file: couldn't stat file %s", filename); - stl_log("file is %ld bytes", (uint64_t) statbuf.st_size); + stl_log("file is %llu bytes", statbuf.st_size); response = MHD_create_response_from_fd(statbuf.st_size, fd); MHD_add_response_header(response, MHD_HTTP_HEADER_CONTENT_TYPE, type); MHD_add_response_header(response, MHD_HTTP_HEADER_CONNECTION, "close"); @@ -143,54 +276,12 @@ void web_data(void *data, int len, char *type) { WEB_DEBUG("web_data: %d bytes, type %s", len, type); + page_request_responses++; // indicate a reponse to the request send_data(data, len, type); } -int -web_ispost() -{ - return strcmp(req_method, MHD_HTTP_METHOD_POST); -} - -int32_t -web_getarg(char *buf, int len, char *name) -{ - char *value = (char *)MHD_lookup_connection_value(req_connection, MHD_GET_ARGUMENT_KIND, name); - - if (value) { - strncpy(buf, value, len); - buf[len-1] = 0; // for safety with long strings - return 1; // key found - } else - return 0; -} - -int32_t -web_postarg(char *buf, int len, char *name) -{ - char *value = (char *)MHD_lookup_connection_value(req_connection, MHD_POSTDATA_KIND, name); - - if (value) { - strncpy(buf, value, len); - buf[len-1] = 0; // for safety with long strings - return 1; // key found - } else - return 0; -} - -int -web_reqheader(char *buf, int len, char *name) -{ - char *value = (char *)MHD_lookup_connection_value(req_connection, MHD_HEADER_KIND, name); - - if (value) { - strncpy(buf, value, len); - buf[len-1] = 0; // for safety with long strings - return 1; // key found - } else - return 0; -} +//------------------- support /** * Set a value for the template processor @@ -198,7 +289,9 @@ web_reqheader(char *buf, int len, char *name) void web_setvalue(char *name, char *value) { WEB_DEBUG("web_setvalue: %s %s", name, value); - web_varlist = TMPL_add_var(web_varlist, stl_stralloc(name), stl_stralloc(value), NULL); + + // this function copies name/value to the heap + req_varlist = TMPL_add_var(req_varlist, name, value, NULL); } void @@ -234,12 +327,70 @@ send_data(void *s, int len, char *type) MHD_destroy_response(response); } +void +web_debug(int32_t debug) +{ + web_debug_flag = debug; +} + static int print_key (void *cls, enum MHD_ValueKind kind, const char *key, const char *value) { - (void)cls; /* Unused. Silent compiler warning. */ - (void)kind; /* Unused. Silent compiler warning. */ - printf ("%s: %s\n", key, value); + stl_log ("%s: %s=%s", (char *)cls, key, value); return MHD_YES; +} + +// manage list of POST variables +typedef struct _postvars { + char *key; + char *value; + struct _postvars *next; +} postvar; + +static postvar *pvhead = NULL; + +void +postvar_add(char *key, char *value) +{ + // expect both args to on the heap + + // create an entry for the list of POST vars + postvar *pv = (postvar *) malloc(sizeof(postvar)); + pv->key = key; + pv->value = value; + + // insert at head of list + pv->next = pvhead; + pvhead = pv; +} + +char * +postvar_find(char *key) +{ + postvar *pv = pvhead; + + while (pv) { + if (strcmp(pv->key, key) == 0) { + // found it + return pv->value; + } + pv = pv->next; + } + return NULL; +} + +void +postvar_free() +{ + postvar *pv = pvhead; + + while (pv) { + free(pv->key); + free(pv->value); + postvar *next = pv->next; + free(pv); + pv = next; + } + pvhead = NULL; } \ No newline at end of file diff --git a/stl/httpd.h b/stl/httpd.h index f4e660c..8e2f912 100644 --- a/stl/httpd.h +++ b/stl/httpd.h @@ -3,10 +3,12 @@ // C functions in httpd.c which are wrapped by webserver.m void web_start(int32_t port, char *callback); +void web_debug(int32_t debug); void web_url(char *buf, int len); -int web_ispost(); +int web_isPOST(); +void web_error(int errcode, char *errmsg); void web_html(char *html); void web_setvalue(char *name, char *value); void web_template(char *filename); diff --git a/stl/webserver.m b/stl/webserver.m index 4fd870f..5d528b9 100644 --- a/stl/webserver.m +++ b/stl/webserver.m @@ -9,6 +9,11 @@ coder.ceval('web_start', port, cstring(callback)); end + function debug(d) + coder.cinclude('httpd.h'); + coder.ceval('web_debug', d); + end + function u = url() coder.cinclude('httpd.h'); @@ -28,6 +33,14 @@ end end + function details() + coder.ceval('web_show_request_header'); + end + + function error(errno, msg) + coder.ceval('web_error', errno, cstring(s)); + end + function html(s) % webserver.html Send an HTML string to browser @@ -39,14 +52,20 @@ function template(filename, values) coder.cinclude('httpd.h'); - names = fieldnames(values); - for i=1:length(names) - name = names{i}; - v = values.(name); - if size(v,1) > 1 - fprintf('numeric value must be scalar or row vector'); - else - coder.ceval('web_setvalue', cstring(name), cstring(num2str(v))); + if nargin == 2 + if ~isa(values, 'struct') + stl_error('argument to template must be a struct'); + end + % get data from passed structure + names = fieldnames(values); + for i=1:length(names) + name = names{i}; + v = values.(name); + if size(v,1) > 1 + fprintf('numeric value must be scalar or row vector'); + else + coder.ceval('web_setvalue', cstring(name), cstring(num2str(v))); + end end end coder.ceval('web_template', cstring(filename)); @@ -62,14 +81,17 @@ function data(s, type) coder.ceval('web_data', s, length(s), cstring(type)); end - function v = ispost() + function v = isPOST() % webserver.ispost Test if POST request - v = coder.ceval('web_ispost'); + v = int32(0); + v = coder.ceval('web_isPOST'); end - function v = isget() + function v = isGET() % webserver.isget Test if GET request - v = ~coder.ceval('web_ispost'); + v = int32(0); + v = coder.ceval('web_isPOST'); + v = ~v; % codegen can't do this in the one line... end function s = reqheader(name) @@ -124,15 +146,18 @@ function data(s, type) BUFSIZ = 256; buf = char(zeros(1,BUFSIZ)); % create a buffer to write into, all nulls - % content - % coder.ceval('web_url', coder.wref(buf), BUFSIZ); % evaluate the C function + found = int32(0); + found = coder.ceval('web_postarg', coder.wref(buf), BUFSIZ, cstring(name)); % evaluate the C function - for i=1:BUFSIZ-1 % find the end of the string, where the first unwritten null is - if buf(i) == 0 - s = buf(1:i-1); % found a null, return variable length array up to here - return; + if found + for i=1:BUFSIZ-1 % find the end of the string, where the first unwritten null is + if buf(i) == 0 + s = buf(1:i-1); % found a null, return variable length array up to here + return; + end end end end + end % methods(Static) end % classdef \ No newline at end of file From b1ee7eb24c08f287924507289c380a9ccc56d976 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 7 Sep 2018 14:42:26 -0400 Subject: [PATCH 03/19] Static method version of STL primitives: stl.XXX --- stl/stl.m | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 stl/stl.m diff --git a/stl/stl.m b/stl/stl.m new file mode 100644 index 0000000..dea9468 --- /dev/null +++ b/stl/stl.m @@ -0,0 +1,112 @@ +classdef webserver < handle %#codegen + + methods(Static) + + // command line arguments + function ac = argc() + coder.cinclude('stl.h'); + + ac = int32(0); + ac = coder.ceval('stl_argc'); % evaluate the C function + end + + function s = argv(a) + coder.cinclude('stl.h'); + + s = ''; + coder.varsize('s'); + + BUFSIZ = 256; + buf = char(zeros(1,BUFSIZ)); % create a buffer to write into, all nulls + + coder.ceval('stl_argv', a, coder.wref(buf), BUFSIZ); % evaluate the C function + + % find the end of the string, where the first unwritten null is + for i=1:BUFSIZ-1 + if buf(i) == 0 + % found a null, return variable length array up to here + s = buf(1:i-1); + return; + end + end + end + + // thread + function tid = launch(name, arg) + coder.cinclude('stl.h'); + + if nargin < 2 + arg = 0; + end + tid = int32(0); + tid = coder.ceval('stl_thread_create', cstring(name), coder.ref(arg), int32(0)); % evaluate the C function + end + + function cancel(id) + coder.cinclude('stl.h'); + + coder.ceval('stl_thread_cancel', id ); % evaluate the C function + end + + function join(id) + coder.cinclude('stl.h'); + + coder.ceval('stl_thread_join', id ); % evaluate the C function + end + + function sleep(t) + coder.cinclude('stl.h'); + coder.ceval('stl_sleep', t); % evaluate the C function + end + + function id = self() + coder.cinclude('stl.h'); + + id = int32(0); + id = coder.ceval('stl_thread_self'); % evaluate the C function + end + + // mutex + function mutex(name) + coder.ceval('stl_launch', [name 0]); % evaluate the C function + end + + // semaphore + function sid = semaphore(name) + coder.cinclude('stl.h'); + + sid = int32(0); + sid = coder.ceval('stl_sem_create', cstring(name)); % evaluate the C function + end + + function sempost(id) + coder.cinclude('stl.h'); + + coder.ceval('stl_sem_post', id); % evaluate the C function + end + + function semwait(id, wait) + coder.cinclude('stl.h'); + + if nargin < 2 + wait = int32(0); + end + coder.ceval('stl_sem_wait', id, wait); % evaluate the C function + end + + // logging + function stllog(varargin) + %stl.log Send formatted string to log + % + % stl.log(fmt, args...) has printf() like semantics and sends the formatted + % string to the log where it is displayed with date, time and thread name. + % + % NOTES:: + % - String arguments, not the format string, must be wrapped with cstring, eg. cstring('hello') + coder.cinclude('stl.h'); + + coder.ceval('stl_log', cstring(varargin{1}), varargin{2:end} ); % evaluate the C function + end + + end % methods(Static) +end % classdef \ No newline at end of file From 8a1df41cdc39f85feb56c6972fad41c4a7605259 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 7 Sep 2018 15:23:03 -0400 Subject: [PATCH 04/19] linux complained about this --- stl/stl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stl/stl.c b/stl/stl.c index c148009..8ae2214 100644 --- a/stl/stl.c +++ b/stl/stl.c @@ -150,7 +150,7 @@ stl_sleep(double t) } -int +int32_t stl_thread_create(char *func, void *arg, char *name) { pthread_attr_t attr; From aea1833ba42d333a323703a2e4e17662e8b51a4f Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 7 Sep 2018 15:23:19 -0400 Subject: [PATCH 05/19] duh, wrong comments for MATLAB --- stl/stl.m | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/stl/stl.m b/stl/stl.m index dea9468..d2b0fe6 100644 --- a/stl/stl.m +++ b/stl/stl.m @@ -1,8 +1,8 @@ -classdef webserver < handle %#codegen +classdef stl < handle %#codegen methods(Static) - // command line arguments + % command line arguments function ac = argc() coder.cinclude('stl.h'); @@ -31,7 +31,7 @@ end end - // thread + % thread function tid = launch(name, arg) coder.cinclude('stl.h'); @@ -66,12 +66,12 @@ function sleep(t) id = coder.ceval('stl_thread_self'); % evaluate the C function end - // mutex + % mutex function mutex(name) coder.ceval('stl_launch', [name 0]); % evaluate the C function end - // semaphore + % semaphore function sid = semaphore(name) coder.cinclude('stl.h'); @@ -94,8 +94,16 @@ function semwait(id, wait) coder.ceval('stl_sem_wait', id, wait); % evaluate the C function end - // logging - function stllog(varargin) + % timer + function tmid = timer(name, interval, semid) + coder.cinclude('stl.h'); + + tmid = int32(0); + tmid = coder.ceval('stl_timer_create', cstring(name), interval, semid); % evaluate the C function + end + + % logging + function log(varargin) %stl.log Send formatted string to log % % stl.log(fmt, args...) has printf() like semantics and sends the formatted From b97386b1bb86fdce06daa313eb6117985a192877 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 7 Sep 2018 15:23:55 -0400 Subject: [PATCH 06/19] New example, periodic semaphores --- examples/timer/Makefile | 9 +++++++++ examples/timer/make.m | 43 ++++++++++++++++++++++++++++++++++++++++ examples/timer/thread1.m | 10 ++++++++++ examples/timer/user.m | 22 ++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 examples/timer/Makefile create mode 100644 examples/timer/make.m create mode 100644 examples/timer/thread1.m create mode 100644 examples/timer/user.m diff --git a/examples/timer/Makefile b/examples/timer/Makefile new file mode 100644 index 0000000..9f962b0 --- /dev/null +++ b/examples/timer/Makefile @@ -0,0 +1,9 @@ +# copy this into the codegen/exe/user folder on the target machine +# then run it, it will build the binary in this folder +vpath %c ../../../stl +OBJ = thread1.o thread2.o thread3.o user.o user_initialize.o user_terminate.o main.o stl.o +CFLAGS += -I . -I ../../../stl +LIBS = -ldl -lpthread -lrt + +user: $(OBJ) + $(CC) -o main -fPIC $(OBJ) $(LIBS) diff --git a/examples/timer/make.m b/examples/timer/make.m new file mode 100644 index 0000000..ac76c45 --- /dev/null +++ b/examples/timer/make.m @@ -0,0 +1,43 @@ +% make.m + +cfg = coder.config('exe') +cfg.TargetLang = 'C'; +cfg.MultiInstanceCode = true; + +cfg.GenerateReport = true; +%cfg.LaunchReport = true; + +% build options +%cfg.GenerateExampleMain = 'DoNotGenerate'; +cfg.GenCodeOnly = true; + +cfg.GenerateComments = true; +cfg.MATLABSourceComments = true; % lots of comments +cfg.PreserveVariableNames = 'UserNames'; + +% want to include some files from this directory, but this doesnt work?? +cfg.CustomSource = 'main.c stl.c' +cfg.CustomInclude = '../../stl'; + +cfg.BuildConfiguration = 'Faster Builds'; +%cfg.BuildConfiguration = 'Debug'; + +% would be nice if could set make -j to get some parallel building +% happening. + +%for Raspberry Pi +% hw = coder.hardware('Raspberry Pi'); +% cfg.Hardware = hw; +% cfg.GenCodeOnly = true; + +cfg.PostCodeGenCommand = 'postbuild(projectName, buildInfo)'; +%{ +cfg.InlineThreshold = 0; % tone down the aggressive inlining +codegen user.m thread1.m -args int32(0) thread2.m thread3.m -O disable:inline -config cfg +%} + +codegen user.m thread1.m -config cfg +%MAKE = gmake +%MAKE_FLAGS = -f $(MAKEFILE) +% hw = coder.hardware('Raspberry Pi'); +% cfg.Hardware = hw; diff --git a/examples/timer/thread1.m b/examples/timer/thread1.m new file mode 100644 index 0000000..28a44ab --- /dev/null +++ b/examples/timer/thread1.m @@ -0,0 +1,10 @@ +function thread1() %#codegen + + stllog('hello from thread1'); + + for i=1:20 + stl.semwait(0) + stl.log('wakeup'); + end +end + diff --git a/examples/timer/user.m b/examples/timer/user.m new file mode 100644 index 0000000..b81ce5b --- /dev/null +++ b/examples/timer/user.m @@ -0,0 +1,22 @@ +function user %#codegen + + + +% z.a = 1 +% z.b = 2 +% coder.cstructname(z, 'arg_t') + + s1 = stl.semaphore('sem1'); + stllog('sem id ', s1); + + t1 = launch('thread1', 0) % pass a value to this thread + stllog('thread id %d', t1) + + timer = stl.timer('timer1', 2.0, s1); + join(t1); % wait for thread 1 to finish + + + % done, exiting will tear down all the threads + +end + From 68d09fb9041a0cc0cc6d7bde44fdfd1933341210 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:42:46 -0400 Subject: [PATCH 07/19] update webserver example --- examples/webserver/myserver.m | 30 +++++++++---------- .../templates/{alice.html => page2.html} | 0 examples/webserver/user.m | 4 +-- 3 files changed, 16 insertions(+), 18 deletions(-) rename examples/webserver/templates/{alice.html => page2.html} (100%) diff --git a/examples/webserver/myserver.m b/examples/webserver/myserver.m index 664fe97..e2193d7 100644 --- a/examples/webserver/myserver.m +++ b/examples/webserver/myserver.m @@ -1,36 +1,34 @@ -function myserver() % called from C +function myserver() % called on every page request switch (webserver.url()) case '/' - stllog('in /') + stl.log('in /') webserver.html('home here'); - case '/bob' - %webserver.template('templates/home.html', values); - stllog('in /bob'); + case '/page1' + stl.log('in /page1'); if webserver.isGET() - stllog('GET request'); + stl.log('GET request'); end a = webserver.getarg('a'); if ~isempty(a) - stllog('a = %s', cstring(a)); + stl.log('a = %s', cstring(a)); end - webserver.html('hello from /bob'); - case '/alice' - stllog('in /alice') + webserver.html('hello from /page1'); + case '/page2' + stl.log('in /page2') vals.a = 1; vals.b = 2; - webserver.template('templates/alice.html', vals); + webserver.template('templates/page2.html', vals); case '/duck' webserver.file('duck.jpg', 'image/jpeg'); case '/input' if webserver.isPOST() - stllog('POST request'); + stl.log('POST request'); foo = webserver.postarg('Foo'); - stllog('foo = %s', cstring(foo)); + stl.log('foo = %s', cstring(foo)); else - stllog('GET request'); + stl.log('GET request'); end webserver.template('templates/input.html'); - end - + end end \ No newline at end of file diff --git a/examples/webserver/templates/alice.html b/examples/webserver/templates/page2.html similarity index 100% rename from examples/webserver/templates/alice.html rename to examples/webserver/templates/page2.html diff --git a/examples/webserver/user.m b/examples/webserver/user.m index 46760b0..8b04bc7 100644 --- a/examples/webserver/user.m +++ b/examples/webserver/user.m @@ -1,8 +1,8 @@ function user() %#codegen - stllog('user program starts'); + stl.log('user program starts'); webserver(8080, 'myserver'); - sleep(60); + stl.sleep(60); end \ No newline at end of file From dc48c965cda1c6f442f238b408811fe615b4a5f3 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:43:38 -0400 Subject: [PATCH 08/19] update README and figures --- README.md | 221 ++++++++++++++++++++++++++++++++++++-------------- doc/alice.png | Bin 26009 -> 0 bytes doc/duck.png | Bin 0 -> 212182 bytes doc/input.png | Bin 0 -> 59583 bytes doc/page1.png | Bin 0 -> 53003 bytes doc/page2.png | Bin 0 -> 21793 bytes doc/post.png | Bin 0 -> 23788 bytes 7 files changed, 160 insertions(+), 61 deletions(-) delete mode 100644 doc/alice.png create mode 100644 doc/duck.png create mode 100644 doc/input.png create mode 100644 doc/page1.png create mode 100644 doc/page2.png create mode 100644 doc/post.png diff --git a/README.md b/README.md index 2b612b0..a78d700 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ function user %#codegen % now we can launch a couple of threads, see thread1.m and thread2.m % launching returns a thread id, a small integer - t1 = launch('thread1', 24) % pass a value to this thread + t1 = launch('thread1') stllog('thread id %d', t1) t2 = launch('thread2') stllog('thread id %d', t2) @@ -62,7 +62,7 @@ function user %#codegen % launch a new thread, see thread3.m % it just waits for the semaphore, then prints a message - t3 = launch('thread3', 42); + t3 = launch('thread3'); stllog('thread id %d', t3); sleep(2); @@ -77,9 +77,9 @@ end `thread1.m` ```matlab -function thread1(arg) %#codegen +function thread1() %#codegen for i=1:10 - stllog('hello from thread1, arg=%d, id #%d', arg, self()); + stllog('hello from thread1, id #%d', self()); sleep(1) end end @@ -114,9 +114,9 @@ end The key parts of this file is the last line ```matlab -codegen user.m thread1.m -args int32(0) thread2.m thread3.m -config cfg +codegen user.m thread1.m thread2.m thread3.m -config cfg ``` -There are four files provided to `codegen`. The first is the user's "main" function which is executed when the executable is run. Then we list the three additional threads. Note that `thread1.m` has an attribute `-args int32(0)` which specifies that this function takes an `int32` argument. +There are four files provided to `codegen`. The first is the user's "main" function -- the file `user.m` -- which is executed when the executable is run. Then we list the three additional threads. The earlier lines in `make.m` simply configure the build process which is captured in the state of the `coder.config` object `cfg` which is passed as the last argument to `codegen`. @@ -126,77 +126,129 @@ The result is an executable `user` in the current directory which we can run ```shellsession % ./user bob alice hello world -got 4 arguments +got 3 arguments arg 0: ./user arg 1: bob arg 2: alice - arg 3: 123.5 -2018-08-27 09:24:48.460991 [user] hello world -2018-08-27 09:24:48.461848 [user] hello world -2018-08-27 09:24:48.461932 [user] thread id 1 -2018-08-27 09:24:48.461953 [user] thread id 2 -2018-08-27 09:24:48.461959 [user] waiting for thread #1 -2018-08-27 09:24:48.461964 [thread1] starting posix thread (0xA1620A0) -2018-08-27 09:24:48.461968 [thread2] starting posix thread (0xA162160) -2018-08-27 09:24:48.462000 [thread2] hello from thread2, id #2 -2018-08-27 09:24:48.462022 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:49.462176 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:50.463095 [thread2] hello from thread2, id #2 -2018-08-27 09:24:50.463103 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:51.466686 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:52.466779 [thread2] hello from thread2, id #2 -2018-08-27 09:24:52.469230 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:53.469441 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:54.469791 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:54.469757 [thread2] hello from thread2, id #2 -2018-08-27 09:24:55.472021 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:56.473077 [thread2] hello from thread2, id #2 -2018-08-27 09:24:56.475361 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:57.476450 [thread1] hello from thread1, arg=24, id #1 -2018-08-27 09:24:58.477224 [thread2] hello from thread2, id #2 -2018-08-27 09:24:58.477225 [thread1] posix thread has returned -2018-08-27 09:24:58.477471 [user] thread complete #1 -2018-08-27 09:25:00.479498 [thread2] hello from thread2, id #2 -2018-08-27 09:25:02.480656 [thread2] hello from thread2, id #2 -2018-08-27 09:25:03.479300 [user] cancelling thread #2 -2018-08-27 09:25:03.479371 [user] waiting for thread #2 -2018-08-27 09:25:03.479435 [user] thread complete #2 -2018-08-27 09:25:05.479844 [user] creating semaphore #0 -2018-08-27 09:25:05.479977 [user] sem id 0 -2018-08-27 09:25:06.481025 [user] thread id 1 -2018-08-27 09:25:06.481079 [thread3] starting posix thread (0xA162220) -2018-08-27 09:25:06.481109 [thread3] waiting for semaphore #0 -2018-08-27 09:25:08.484186 [user] posting semaphore #0 -2018-08-27 09:25:08.484330 [thread3] semaphore wait complete #0 -2018-08-27 09:25:08.484359 [thread3] hello from thread 3 -2018-08-27 09:25:08.484369 [thread3] waiting for semaphore #0 -2018-08-27 09:25:09.485037 [user] posting semaphore #0 -2018-08-27 09:25:09.485127 [thread3] semaphore wait complete #0 -2018-08-27 09:25:09.485140 [thread3] hello from thread 3 -2018-08-27 09:25:09.485149 [thread3] waiting for semaphore #0 +2018-09-16 16:52:38.281053 [user] hello world +2018-09-16 16:52:38.281793 [user] hello world +2018-09-16 16:52:38.281841 [user] thread id 1 +2018-09-16 16:52:38.281850 [thread1] starting posix thread (0xFCD5A10) +2018-09-16 16:52:38.281860 [user] thread id 2 +2018-09-16 16:52:38.281869 [thread2] starting posix thread (0xFCD5B10) +2018-09-16 16:52:38.281876 [user] waiting for thread #1 +2018-09-16 16:52:38.281914 [thread1] hello from thread1 +2018-09-16 16:52:38.281927 [thread2] hello from thread2, id #2 +2018-09-16 16:52:38.281963 [thread1] hello from thread1, id #1 +2018-09-16 16:52:39.286172 [thread1] hello from thread1, id #1 +2018-09-16 16:52:40.285643 [thread2] hello from thread2, id #2 +2018-09-16 16:52:40.286787 [thread1] hello from thread1, id #1 +2018-09-16 16:52:41.286863 [thread1] hello from thread1, id #1 +2018-09-16 16:52:42.286156 [thread2] hello from thread2, id #2 +2018-09-16 16:52:42.287227 [thread1] hello from thread1, id #1 +2018-09-16 16:52:43.287423 [thread1] hello from thread1, id #1 +2018-09-16 16:52:44.289092 [thread1] hello from thread1, id #1 +2018-09-16 16:52:44.289092 [thread2] hello from thread2, id #2 +2018-09-16 16:52:45.289178 [thread1] hello from thread1, id #1 +2018-09-16 16:52:46.292749 [thread1] hello from thread1, id #1 +2018-09-16 16:52:46.292746 [thread2] hello from thread2, id #2 +2018-09-16 16:52:47.297975 [thread1] hello from thread1, id #1 +2018-09-16 16:52:48.297823 [thread2] hello from thread2, id #2 +2018-09-16 16:52:48.299590 [thread1] MATLAB function has returned, thread exiting +2018-09-16 16:52:48.299666 [user] thread complete #1 +2018-09-16 16:52:50.302948 [thread2] hello from thread2, id #2 +2018-09-16 16:52:52.307330 [thread2] hello from thread2, id #2 +2018-09-16 16:52:53.301583 [user] cancelling thread #2 +2018-09-16 16:52:53.301710 [user] waiting for thread #2 +2018-09-16 16:52:53.301815 [user] thread complete #2 +2018-09-16 16:52:55.302909 [user] creating semaphore #0 +2018-09-16 16:52:55.302950 [user] sem id 0 +2018-09-16 16:52:56.307164 [user] thread id 1 +2018-09-16 16:52:56.307204 [thread3] starting posix thread (0xFCD5BD0) +2018-09-16 16:52:56.307233 [thread3] waiting for semaphore #0 +2018-09-16 16:52:58.311708 [user] posting semaphore #0 +2018-09-16 16:52:58.311830 [thread3] semaphore wait complete #0 +2018-09-16 16:52:58.311845 [thread3] hello from thread 3 +2018-09-16 16:52:58.311855 [thread3] waiting for semaphore #0 +2018-09-16 16:52:59.312160 [user] posting semaphore #0 +2018-09-16 16:52:59.312197 [thread3] semaphore wait complete #0 +2018-09-16 16:52:59.312204 [thread3] hello from thread 3 +2018-09-16 16:52:59.312208 [thread3] waiting for semaphore #0 ``` ## Example 2: Web server +The user's main program is quite simple: +```matlab +function user() %#codegen + stl.log('user program starts'); + webserver(8080, 'myserver'); + stl.sleep(60); +end +``` + +Pointing a browser at port 8080 on the host running the program interacts with the MATLAB webserver code which is fairly clearly expressed. ```matlab function myserver() % called on every page request switch (webserver.url()) case '/' - webserver.html('hello world'); % display a simple string - case '/bob' - webserver.html('hello from /bob'); - a = webserver.getarg('a'); % test for argument of the form ?a=X + stl.log('in /') + webserver.html('home here'); + case '/page1' + stl.log('in /page1'); + if webserver.isGET() + stl.log('GET request'); + end + a = webserver.getarg('a'); if ~isempty(a) - stllog('a = %s', cstring(a)); + stl.log('a = %s', cstring(a)); end - case '/alice' + webserver.html('hello from /page1'); + case '/page2' + stl.log('in /page2') vals.a = 1; vals.b = 2; - webserver.template('templates/alice.html', vals); % create a templated response - case '/duck': - webserver.file('duck.jpg', 'image/jpeg'); % return an image + webserver.template('templates/page2.html', vals); + case '/duck' + webserver.file('duck.jpg', 'image/jpeg'); + case '/input' + if webserver.isPOST() + stl.log('POST request'); + foo = webserver.postarg('Foo'); + stl.log('foo = %s', cstring(foo)); + else + stl.log('GET request'); + end + webserver.template('templates/input.html'); + end +end +``` +The switch statement is used to select the code according to the URL given, and other methods provide access to parameters of the HTTP request. +
+![page1](doc/page1.png) +```shell +2018-09-16 15:54:28.635937 [user] user program starts +2018-09-16 15:54:28.636843 [user] web server starting on port 8080 +2018-09-16 15:54:33.170370 [user] web: GET request using HTTP/1.1 for URL /page1 +2018-09-16 15:54:33.170410 [WEB] in /page1 +2018-09-16 15:54:33.170416 [WEB] GET request +2018-09-16 15:54:33.170421 [WEB] a = 7 +2018-09-16 15:54:33.170425 [WEB] web_html: hello from /page1 +``` +Note the arguements `?a=7&b=12` on the end of the URL. These are GET arguments of the form `key=value`, and the method `getarg` provides access to them by key. In this case we get the value of the key `a`. + +Note also, that log messages from the web server function are listed as coming from the `WEB` thread, which is created by `webserver()`. +
+![page2](doc/page2.png) + +```shell +2018-09-16 15:39:12.816790 [WEB] web: GET request using HTTP/1.1 for URL /page2 +2018-09-16 15:39:12.816822 [WEB] in /page2 +2018-09-16 15:39:12.816827 [WEB] web_setvalue: a 1 +2018-09-16 15:39:12.816849 [WEB] web_setvalue: b 2 +2018-09-16 15:39:12.816854 [WEB] web_template: templates/page2.html ``` -The template file looks like +The template file is sent to the browser with substitutions. The `page2.html` looks like ```html @@ -207,6 +259,53 @@ The template file looks like ``` and the values of the fields of the struct `vals` are substituted for the corresonding named `TMPL_VAR` tags. +
+![duck](doc/duck.png) + +```shell +2018-09-16 15:36:08.881139 [WEB] web: GET request using HTTP/1.1 for URL /duck +2018-09-16 15:36:08.881159 [WEB] web_file: duck.jpg, type image/jpeg +2018-09-16 15:36:08.881208 [WEB] file is 83234 bytes +``` +The local file `duck.png` is sent to the browser as an `image/jpeg` filetype. +
+![post](doc/post.png) + +```shell +2018-09-16 16:32:00.035029 [user] web: GET request using HTTP/1.1 for URL /input +2018-09-16 16:32:00.035101 [WEB] input called +2018-09-16 16:32:00.035109 [WEB] GET request +2018-09-16 16:32:00.035118 [WEB] web_template: templates/input.html +2018-09-16 16:32:04.385387 [WEB] web: POST request using HTTP/1.1 for URL /input +2018-09-16 16:32:04.385580 [WEB] web: POST request using HTTP/1.1 for URL /input +2018-09-16 16:32:04.385623 [WEB] POST [Foo] = 27 +2018-09-16 16:32:04.385634 [WEB] POST [button] = Button2 +2018-09-16 16:32:04.385655 [WEB] web: POST request using HTTP/1.1 for URL /input +2018-09-16 16:32:04.385666 [WEB] input called +2018-09-16 16:32:04.385671 [WEB] POST request +2018-09-16 16:32:04.385676 [WEB] foo = 27 +2018-09-16 16:32:04.385681 [WEB] web_template: templates/input.html +``` +This example is rather more complex. The page is requested with a standard GET request and the HTML file `input.html` is returned to the browser +```html + + +

This is a page to test POST

+
+

Enter value of foo: + + + + +

+

+
+ + +``` + The browser displays a form with a text input box and two buttons. When either button (or a newline) is entered, the browser sends the contents of the text box and the button that pushed as `name=value` pairs. The postarg method gets the value of the textbox which has `name=Foo`. The diagnostic messages show that `Button2` was pressed, and this could be tested by accessing the value for the name `button`. + + The POST request must return a value, and in this case it is template file. --- Created using Sublime3 with awesome packages `MarkdownEditing`, `MarkdownPreview` and `Livereload` for WYSIWYG markdown editing. diff --git a/doc/alice.png b/doc/alice.png deleted file mode 100644 index 01ba76c3568fa9fb95e0043e09027586d1d15e6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26009 zcmeFYXH=6**Dy>G5fM>oB3%UzARt2MO+k8*-kWqn4-h&cO+`SZ_ufnBEkHz+9(odb z?-+nz_s5g9a;+zEP7WyZz`k9v&W;8+%7lhdhuSgA zC-%k=;$T(`lL5NA>Pr{H1>$UM2Bh$cx+-7iIBFBVqqoQq7JT-Bk544*rSF}4?+9MF z5=}Zr%Thk1pdiV*(|W~$ae3wP2a0~VDvbxc8P+WZ=zPbrChKMTIbR|7R47+IZSUj`hNXcmNSzIZ1ZH zP7R~mRk>fd?!B5OsA7s3Tzw^uw^x*wX8Zx+#9Xg<#-r9L^|pYl%c_PyysDZytmp>m z(;Ua6{;L{>DN7cY|WF!U40+;ew+1*TsI%pBIrkLk==(n<~E*r&hwRHTC+zP z&)2WMKC$?bfp3EMhBJ|Y9>0p^r_GP;qVAVavu5TvBED^jN4(vZzqr}@I%m(%&teDCXBmd)HU~IAa+!5Qj@zDc@w^>cd(Dzb z3s`=V(Ag`}aYawKu{flkPj2(|32h1K!78b~Mu_l>7$&BQv`E#JN~-BY=7D8JHo3cd z%lq$T;yf*0i(C9)4k|N_qoEXAhpEOf@UO?z?N)azd+~pmdV1m}1M)kVf2)OzB-Aif zY57K1k>0~dle_$GDp=wBjrMo=d2dFgdAe`Bug~aYJXRKYaC=<(&I>$p;X8)mHcvU^ zLU(D2Z?~J>+k0o_ZTjVH9PxhkMPH@Pi3i@sr(yqJpP%jCS){**U%lW`{5HW=*yyqM zZSMD()gWe+W6^$9rsEwf3msqRLzO%1;SZeL2&c($?N1i?@k;p7AN|PoPFK~vKWmqZq{d=^9>NxB62YPZyRN<#OzBq2(c6QRv`{!{n5=mOKfRC2x zmJLha=O1=2Q7!ifk@D*aXg%wmU*jWKu!mb#hNcbYJ{*Wv+og=pyy(r%$5k(?$R7e= z6Vzol%(tDBRlJTpsT|I)e{!EGr6B)kMXw1Lf~NVgGWVAm&c&6YBBA<;&n7;hGvwW4G#Fb!BDPF+U3K z%+(sY;~{GJfjYNuNU8SbOq5_2`%vUMSuJ6}$0G|otzRB|TK)J3Ka=zY65i)qzIEi$ z{iI_K(3e2ox!M5g6C*!|(CeBIQ~(-|wx7D*aCf9`mp|Gox7< z+3P7X@0}?;{U+Iyv8?=wtxC}+@4<-Zi1P^Fh>j-vM((GQPai+kC>1Gv`t&AWA^(+i zVy{MgDd(WhY0o1oy#Ksx~9>G6RODkuu z3?~db*t6S{+cP279dZ%+4#ssp4hRP_2R(#oaV&xxL5L_Up()WTVtNBBo6UWRtQ;|S zs06G!XanhyjrqfciYSkf&&d8^wE`DpXHixl4y#qfolgaP5Oy1Wy4lzi$MNG^v1^;R?`e z_vM}t$nVNMqt%dF-26c9`vgmH=D>xXq-4?x`^_TrYn4XQ*KWJ?VZ~fVOOqwMC6y&a zr+gGtb)7AcjUX1m)}>~C zQ=w1uiNk^Jfhj3Pt*B{p zk*V2hNOsn;1kEJaZP}+inknyKG|GfP1V@dJ>czw*;4+4=pRf^siZFwC@}|vA^j&|d<%du2ic%g1Z@|+!#2G&mMGz(4YzVUp zdm5@8CVmG%3cpoOxzwO02b>D|y7Km!!E}ze-{AlePfX6&JoQrOG zCV9fuKH{Q*)5khX7h0uO8_hMVh91^f7qzMk&F3rU+9AagS}`hGnVlJ4%<*4R;+nZU-!Z@|EO7Z%BgjIm zds13mTH-Vw+QC_9Fi~&7F9V%wnlT%{kXpr=n~E8P%;Rn)z2|J->fh~GO=hajsqwPv zsgAA2trjiktu zLeN*qUR)n!;7a(3TW2rcOWq&jIpO7zp3`CGx#gBz zuT8(Q(dlE~H&5lZ1b1cLIFSUMII?Fe&suj&Mbt82Q@n7Rrx1J%(^@ZO2f;4L|Xt#n} z7fxBXq#Wm+8=LveEic$|RjpGcU8o(~T3H>HWukOcf9WnF&&vnvS)IksQrBGSrpW3O zovx~78gngew+FQ980+ewcfi~bnXNp}87MoZt(x6iU8_~*BB8a}ukR>0U?hMyQ2pX! z_430-Ik7nT7*nly5I{fre=y~;1WlIjXhe{WII2ymya4^($l>6Pm4(kC)MQBB*AQl{XI3owlV1k5-9iC zv-1Vg44Oy0&1Q~`%U&Bpna)9s4j>m`QU8>Jml0&!j1cQGI^_Pi^fHE z#txS3dT>lu}U(Q_m9bhQXiIPL!Z}x_EE#NT6tGb4c)}`*;dHF=f zE{Qf==)v-eR?legz@lxfE!CiE2FgnWT;~ztW#+@T@p?^pxbHIK8%*HJ@Tzwe(GDZL zY#S4+YB;DnuG@x>G@QDCTR;J*Nt#jIZot6VC3!v*RtkN-e6q2D@orM7suRz{@8a3@;0-~(V+tzAiCdk2afMEGZuCrgV}D zlIclofB|`rDe=5r;=bA+G$#xmHM#UA01>>vxFEtjGPj&DZwAD5=s@DCU;x6yqh|f{ zi?68pboV-{cx$h%@1d`%B5LX4#A9LQ^46Ni+sXAB8V^t0TlD(X$=bt$+1ts{86@g0 z@%Ud5*V-2SvzhlX^S?kmfD(`ORo^hnxVT$019${@oSvz}3YFWBlTRVg7Ts*}8)#V?5{)eDA@1I=!#?`+?{#Wa@%#ydo zdH>R%%1W^(_e{M zmgxYgjO+{NYZ*SLgRR!j=k^!-pM;rGIxu9FKc{k(FS9J-J|xiJeemfe2~rlHMCrS% z0yF+M*H;5UJ0RH8<)tqd;fU^gVeL;now4TpYaH8F~9rkF+@Xjt1`fCY=i$F&8~NE-!mUKlkRM9uc4|M70oD7Qc%Dq zf>~-h+(N1M^z=M>VfEn!KmSUL?aSXdz2y@#MG5Gtx^zkqLhlGek>CMxDrhX0^JQOjjBC zvi;0DEior>AlIvZ$u)&8ru1mHs|2{%H_E4cB==waH0#Z4&){Da*wu{iWRz`WHfdi# z8=83%0u3>(^%_AZMs<>YsF`N(Zaj6LHC-lAHP=nq^k{ksHk5sXh_J?n3_rl?jS`e7 zUDQoGq68Q}B=wSewb5dt!_(CL?8)@R>9l+CYAz=NkS6E^)KHpyV@vgYLn`$dycR0maC7`X-lRbN zv+&&c!3R^hsMM_RNpft1iJxa0JssIk>i_C1i};3`(AZWhZceXv_}Pr_(haP-!g{do zPu={f(3}8PmrZlk+~kM$g2X=@Js`QBjg`HNa`_djnh?_Apqb{-VIp`4o`JQ< zg^Wmm19WAy3`z6Uvd%&Rv4uMtT{G^uXC^`x-eX?2GHYA0#-7A=`+J!_Ki=9ca3m)J zkwR@*pX2H+%cf?E^n#!o#B?dDH_*p8NIB-UmXmdsL=ZO*Do(iqvl5g=5^p)fJ9H$} z1(Po{)dHYPwmc2!77%7u4xO)0$D;H&gb=VWz5j}a7o0(@m9I|&lGN9`(7){{McfSN`3w^#9xdtFbJAqd`QXw z^s=#*Nu-XyI0<_71NcqE+1NZnN~+-%9XNo}8)LTNAE0@#Cu8{FfhoT`kFIk8IJ~iH z)rs5WaIVC&P9kJQ(oJ@StwpKBLn8qeahdSzXmS$wc)}_sG9V)8baOV)>!stxcBJ3y ztH_v;AFuV)bkSMsIqK=6`GJHtW&68Rg8a4Ewtn`pZZ@6Kb!CrI2LHVlq{Rp-*w#EI zqj|fIu2e6({jh5`>j|Zu$2R2Zz^l}t;Sx_H)$EAFM27h0ol%;boOb8O5)!yg=fSfB zcggYz{=$tGS zciHf@nRXN2EnD96Uu8jAbC)Y70V@e4ZLL4dq8a_?;vSPRdWMDHxmC~M4~d3t2{Fs? zuMJ|3gXxD$Z!F@XcEMZ$adKpL$sus|yY^kByjyiB(@`#7SV?uSU3e<+|5mgL3MZ)#j5P=QNpfeG^5zW03WwQ5oC1Xi>N5gS^th+KSvRI zm5o8n{paXxObk6>;ScwO7cCcsscJVjD=H+*Vt2v^Mp@V*bij++-oXRVgi-f&hoP>z zsEomAB%-)@!di{ptIl$PdvjcVAU<{V6Kd>Z^M+Qgj9S1BBofl{61AGPc5?0kD$~1=)C%(|;Z##MSO+2&t5DA^#4-hK_VHMF!2;Yl&H+83w3UclqL%nVfrH^9x#5i!956{l_Gn$n&m zAr5Vh!}X!6t7C=oM}yC`wk6QD(I{V-(E#jYE_Qa0j5`*4d^?mK&XYK!{-kp`JbiG^ zJx6n@9&>a~^~Rqs<{@<2S*pGk=aE9&6 zgdpWJM#Vy~Yz3x8v{&8`IV(9c8l?6?w(iw=qUg{hpBYsCNqAW1V?(fALm;*vq~WO` z_O3$7s;iVp9=6$@L-{oxxGAzZY6m1DM~$6qavh&M4Vq|%QkHVl!IYwIEhvRbf1iR7Puu)DB=47}%C9M@ z-Imrvq*2^gN=YyR)3VU)bN@&&AxJiV@;4xgbDVmT*jU&8!66N9wo zvENDywn#@SG?kvJn3H2Z@r$*%O;B(OqEv$R+Jg`)6YYE8&bD)Gly61+Rw#RF6>KHE zFSi$bDItClt5d+f5DAjl|IDk3n#cc|uyD3l0U}tKTO5eL@2>rAK$#5wle@$p?4saJ zhW7QCb4G-RA*@*at^$a`Z^{1hGqUtU6CFBSl-{6-UPTaQxd?%E;LskhQ) zW|M`2LezERH_oJdMDLkWXpP3B&rF6v{pvwQGi)lyiCXephsU36pKR``d($Io`Vuxn znssf2E{J4X7^iSb%q<1hHa9D1;y47xmtwO9afv2(py97r@9 zij}&mc{I~LG1b|Du~$^^ZuLH7#gCl~2^!sJx{_lLIAhO$J*Ox%Ye* zH!E~;__0)S#Xur(R|1i~=@77bin75R=UGMT_-cB*+miB5>O5&9gyMqe5e1zoG8xiI zNus7Q#3wEao`yjtXC4aPs+wxi6!oorep4vmO0$qIo*lBh-+S^!t0c_9AWfbf;Fqht=DXZsc3 z4IBu$c{qIkKritiHXxPw4+#l_2ubJLb5Y>Goi_>2c`qguDHrl|@_BcE=zt)9_N=*q zS)EZ|q7TH!7`n)M(T8ixJLrFwKNX<4l_0Su#-?bNf>n)TLbqByJ4})~w=a|nvj4QE zJxo43zBm>1p>1zBq?ZpyC#oz1m%KP+hY6r`nrnACl$wK=*u&XM|KrdoEX(i@lZqUE=KNJM^dZE_;w~X^_41^FjkLpOHj-;+RI2%>MJp*%!fAsJ_4~Wk|Du zo~e6q3D@j!rfI+^NdN7oaKI+T+F9fqP(T!~Ihls8oLwc^cFvf6?UE5e`V z*VlrYiteXl0vPQS16T|?_%&;x3yo^>Gp&#KIy0^`z8E)0drUenIWZId{bR*AYQ05`riujDCZ?Y=DWpgEK2JUIRi=* z8j4xMmSSMT$_3|^XM&p{xtYj^2So)#n0nAryPoY#DQSc^%q*hU6!mHC(y{kcn%Cv( zjoF8XOZt-?lD53|!H!6${#LprI;=KiH4>D=VCFV&X1JM_8ekXv_ zxU1;Kw$YUIdF-m(;7N;8&v_o2V>euH?L+9#;1o^Q7?PM-=z3f89=tMH*fukpCQ37f zw?!1gFK3*6rFHyeLpfWH46BYzB7bn&BSkoFD5W{TR1P~ke5(2!Ow)EToBD&m{MD7f zMF$GDNQp6+ooLelBFjiZ^=y~)+I+y{_NCl~A$q>`SfH2d0AiSgC%t%3VV zB#@XXBSg&7R#y^E2Jjmiv;p5-K-rRLzmvrB4%4xqa+^)M>ZXLwPLl_N*q$HIh_k&O zIBLi^2}uqsf0Nr2rg(8??-~xKZgyXD!7g`UfTy+)oueU@bfG_9hukD55wV^y8%Z{! zI3*hcj9$G&)mEp1e6i$-=iqsYwPAtGhw-^FxYp8EVxYuS=H>9)8C*HWZu_~*_}%U4 zkMT7onWH~Pu?WtCa}A5eaNC<9LGM47*>{c_q@_MjxASPD;b}5nWz+8}?PsDCh1E80 z5?BTuqz4rS-$x0vKTRw2V>-cA-afx#OxyA>dbH)y@6UAJ#FlNA^I-I14#x>-oED7% zT6CN@pR%>#*KdTXCD8>FsXalXc(-{)G@_jL$m?*i2_JA8XEpeL?R4{Hqyj>|5G~c7 z?l)YCfRy5rdHZa62X)^`nnvmo`dIn^4y)1t*9w^czrIYkXAx_8;OubJ+KO=&5*;GI zY%lGt;S54q&Ly;myl?05D4Z{@_hkFt9FLTGnOo8Hng(W!_GyU%!MAF-u2#jKD#p5; zmN~cBd>dK1XPTDWL!(!=M+8{AseNVVEWH9dLD<4MkW4A5Boa<)G+y>_byUh|qpi2v z5*jrZRG&+6tTOtzc}GC7z5n(Z&6Ue)difv+J7B_SjYDr6#d)?R)e;1;1#Ep%_wm1& zN=H#d%%LEempb#ln?r-mwTvC(@(GwLocRF%5dT%3z`o@yxJKHauq*wiKL6gQHND4Q7A7v)5HgJoKF|Fc&xBJb;Dz^ss6pKM2fgsCu-U6o`sy2!2 za);`lo<{#{oO-(7JIDeD5q{v@w0lnPT(>pnuza+*sm#c=)C@`C)`<5V^|p zvc0+R?rEp-hNhZp3!ndl{d4S5YxbuR+?dDGc;#r8#IIC3Hilie7mmCsZAc^vT6WAm z$fLI!b+`7{#QgO1W`vZ<&Po4C42ZBQjU@zNHU5Sb8ncew!4OGq^(v)WG8x#-L!Bym zTHjVbpfJ3`4R5RIxf{(DcE9jps*x_clK)usoox^V8DP41r=W>KGMn6#S1VQokjp9p zPfNsbJGdI|){kd!bF*u!2SyDi&-|71sbT-J4ILib3nBI|9F!XiIJKG==#S)ixP7wQ z!ZJIDjb@rIU#b{Pl5dn%@5u0~7#1jWJQA|qsY??rS^OU5iyoVsbG0Amy;{;#-=u*B zJ;_--Zc$x#ab|P)Bi19u*>erj;NWMS4%O3X%I6u??^Qov+_V_|95zl_sW0?V44 z=DlMwZF8r)cWBYAS`d&eLTK(_aGc1< z{kSzSR9g$~BYL zi=(NM3Y=NkggQq^_w(H2qbr-w{=%J3T3^p$uTX`RqJB=+4brtvtI&26}(K=>{c7mA~rM8&54x8gJ8FT49i zY06LPd~CK{4r{JX<4LM!wMb^Tc@F4@G+P(^+MK+?g@(ksL~H7Dd1*JwHq)hA^Fq4R zdihCrCf*XP>?v`dUXmXk#{?Bo@uF|3+{UWYak|`z7rfYH_wDE}xS4t1&yb03Ftg$` z9TGR(OVV_(*H{X{IZ2fjCSF0J)A!{p6Pr$kM`Iv|>HFdendh?gE>gu@SS+1)u=C*s z-#i@4Rp$h*gG`T>j9;=}c-iK!T@-Dl8Jw6?PUxK$*q*KEnNfRA?rnU>)>2J^vUCgK zxF09zfJ$I#!daVqa3|P1KXc!CKjwl(0(U=%YOc@3_-*E7#yfnddui~R2=Zoc!E2le{z(Q3>(9i^zAnrxoEJh*s9^|h~pW-m~Um)~*5GjkG9gDS|wA(#>>x$P;`z13GH1^2shcZj0io6@e9<&gB!RBsb@gpD5A zw}y6)fu71}*v9O7+?OvoMwqK=FP^AU3KQPE7u&*^G0OM3H zerfZ?8H&sFz;Gu<5Pc(Mn=NyZ+F!yx*%2UM0 zwLbjJFb;h2^E(q^nkr!p`}$lP|CDjpBR3}6xl3A+#N;g*reU4jh~xSjW^!gmS&%tC zKqE_KLf-o`SUKI}SM>*OdYfB9&yD6TQ7#VtKR4RcnmXjnawDRYeY=I5qjk<~8hLe* z<`~@I1PXTNp?ekM36k&;t%j-G0F|%nKuFtK?I}!tKn1)t7g=8~Ht51|mCU=DileC& zJ<5dP=u$k-o?@5`{iEC`1#n+o=v=NooEULMrMT8zZir>i?abSjd73aU>@IYyep?<- zG=X~kYOApw3>0`^)j>qZ`dQ?>Z$;MxW`A|H_xD6pa}5b8BrKk8s7oF7;a#l3o;j-cp*sKt~_c0TPN=j!!@xzWu-Q( zHb`F*_l0?4l5e2?I+ZNWaJ`n(q1pK`T4m4(Xp!0a?%fQ{9SG+8(VUO-kmsHb*kN^z z=fK4oi$GYZAq3~LskLm}-OuKrx}+jYa%;3d3;hdSaQwPG7VUL)GO6%!AplfjZs#X{ zPloM{hI*!{#V11yxs1av4t`0TR-JqtKSvuWIWiVg9w;!Z8I8YXROtV^(lm5N^dPqX ziJ|Ctzbu8UDl*DmaXm9{?C61|3ah7A;iVEF8&UIfd^K-5?mI(}m=Un7i%da6y`x`U zKJl`LFy8Z}$2&(z+O=Tk(Ltu2Z_$ zc^0Kfi#U!yA5@>q%SHVI0FS^{E32dMUM9R#gXS-@_Mgot5TBsT?ET+Wp?^h?!KU2O z?{*L!GE4tMsB?lF`mh`Sq>o3?YWNOssx%^^^Y7^YUqf|F^gu~jdFE26iWj+!9OLCuEoO_oDAju9}>5| zxn_x!IE?Loup~=*&pcOk{O@`G?}{qvb(#5pk^kRTi?6_Uq#gzlZE}W~rcLS$nXGb3 z^@?NK?jKGUD`4N;HdYq7{Z~fg&l+>38gsi-0zcLP)BNi+2quO%9ij4qgKqa%ZnYx2w$NR38?HwQ(PO;yfI8dh$vV6OG6y zsu4SVnf#Br^Sz1V%eZNcI-{>@sUBrrgVCK#n)Qrijucn8%)(i;k}fprmeeZ;$DyxZ zoPMn^Db6sM`{fLLk*xkZEBWV~I`j5^>om~33bXpB$@mt=$mFdIa3mu#7lS@9~~IJ{q~AIv@42{`XD=f zw(43Z9+rbMgsF65p07@trYsDj|Lar!xvuy~Yxz$mvSiNs?b~b&DyuZ-Qd1~QT}STa zhdI&$9xK~(aC|#aR94nPrh`0W;FL2NK6URwjrP5;1Lct)a29zlSAg5+z&BdiV)gNg z21_3BJU)hJSrky5Y1P-W_6+8!6Bl1chayS)o>z-@AXwRvsEWzg0(pQLbQ>C&ob0G zNl;ZNX?IfXHpaZi2{TLKSwE9f5jaw`2J?*2O?um(N$=}#KYi9h0x19xr3>e`bQ!4= z{%$_z9dFgrnWv`le;{?y&~yHJ*aOS7xjn&-npnT@`SaMj-qJXd&RM=_a zYqxDOV?b#A`$3I&LRIF@ft!i3VB4Q)}8TuhQsW*=`WV3*!u1w(-%F=7IqUU5=q- z!ySk_2P$mk0(sgAbr zf=b7oXNNH8*Dl-9NG;cNeg+u)b!@a_Yx%Dkrq zIh#s}M9~`UkHG2B-d3;n&+~$2K0f>jja5D->mD!xd^>hcNnMj-E z*YU+I{?~^DSpmacY4*y`JX4mGBdMDXUa6c5p7?bB5tIxKsY`hPoZd>LlEZcAb+rKU zZ5=$vY+3tq(l4AmOcUeB!kD!5R!w#F@0kS6-of>9`~AR?`Ow75sJe~g*lQUwuDf zD@HqdZa_K>MA1O|jAeZ zR|xNc93s5;Elxb>>Mfa7FiWu;{ULz|x-dN-be;9WaAU>OWBK^^M6c1k zH(h>A*92tNfW!;4arbDfk!Ek1DDg5YpP|zvDGOrL9%{bVz=Mn?$NU=Z|B9 z_Fk_LQ~kP%>dNH7Ix34y-?=eIw^aG3KATB;l(U)NtW9OEnC?@D-dtA`jw`>DOqHQC zrerxeyIfN0j^W^P#u~Z$1e@2wZUnkOX&Si*e<2$a!~ENdggxSn z(K*t>@qX3@^Mf40xm?IW($B9g#>Y`jdIPrt)zf`x$_%zlo7~Hx{bzbq{Oz-fYtlPq z|MqwO?PY*(OtyZEJ;{fjQ4dOl-nO#oIBfNE*)`=#O3L+PA`1xIwrOpGAW`80swtv6 z6kT&!5dU9kEz_Ou+uf3L>=B-2eEx+WasE>Wj*}nY3u0ldk>zRt`dAo}a}dzL5|*br z^2CNyM_$w`U@drODkSWV>Rp(ifL|N|!D}%ciwe4EAA7F~k|SPz0nsTKI>-qbE)U!B zIn*#+@Rjf~I=1}82G4-_T$;eQ&Y3PCn->_dh56e}exB`l8kgVR`d){sN-?xjie>@J zsVrw}#YKxTDWEAzYip}NY|phNj^0Kg`(Lnwi4#r?Tk9szD%>)W#F+y==oB56+Rsn#=6Wy(hcmZVVO+fp)Sjb~~SyWi6vVVb;~NC#N*f8SB1 z&F-&H;BEauGhG2=VsZl){v-v=EVuG=XJ;4gT<8M#B_eeg74&Qd zqSW7(YH|8LSC6USBImN6Mu1DrH@hp>R>OCOdQ(Y8(ch#*SJdff+{(BfK2r6NL=Gw8 z^Etf`{wm}qdTa|1_yLYs99x>K14ejl?_M}gWt)g8Vb$y=UPJ7_MOBy@H4%Z=f^4-p z^{9^M-m8LrdD&TE4jJ5~YuH*0&84QP-@!XDfK{D5<)Ecixs3;-;n{RFs(mIX9dP|3=NbBEt{G$@DXUrKc*MY*}(r5wEdo2Q#Vdg%WS08S?(Wn$cw zojb4-xbGHtYCriVY^>yjh$7DQEO)XQ zMW?UXIaf-<1S_8ro4-lN!y4VFDn_@dt)*3{8l!?`oYF6M+S1*)+O;zY z(h$|Z)H_)$Ria6`mo8)w%YGJEkx|ytGup8!$id@U*4)mb@BJCL;k2DdeW|jT18e2Q zsQBj;NYrb20stkz@w{S@*jELE>>|X+}4r?0(hgR|%SM7)H*TO%*Xhwz5#T7`~0DL)_ITSYNxK zx%tucjhng)t%J{OL~Pv99+sh;hq`IDtIs~XVy_tO-{`dGh~k_(EVEHp zeRDKk3IKIUr)!9MX1yBx9*728fJWP!#epZy?%KO<;wGTzKT;Zg+Zqn>@wo`g;_^iX z^&AYw0Wkx1&PbV2cDwy;oqdywhbWeTlo#^xzxr}|r_XJ~9r9C8LxK!m1ZMnA#%YwPn~p=lDgY=Q6D@#S^Wg-vT@E)6vghjJ$=Mf>6LlN+$M z`pP$YL6;@6o*fWQl!oLLk3wOcrGwgbt@eE+j@AlR=?s(tTuVR27J(1Y^sJG!v zv<=`bp-g+ZsvU>L%^@#<$!XsFk$P_?JI>{}!kv9CA2HB0N~Em4Ay}BK{%C>Y%1R6w z+twsYdY(9x5?ksrkWqeJSk?)sH1308StS{_k(Db>tsDU>q$73K-fN$KqW_|Q$%t`oEDKBe zil@80jQm<6c=IFhMo-fvNIhRMR;FU+kbbQ023^aJW_q;Xjj3%)3G`&DObRxXTFQuV zU(&zM=SnmxO;S(CV9n2#2D<)6&r_h~{Xh$Fi%m_mC^2I{brm>3!{)0rr&IeQ%@}QT zyJEQULsl}SOc77eB}w`7*OV30Igi#ljWU4Yz_EGvt-Xm+0{+%ZhcpzANCfpy(cf%c zfNYjBetp|w`7U(0b2qYWDTUHEWl zgdP~2#`v{ZRBGL2Nk}!DWpGztvPoX`@GlmlM(7rP@dZVd2FV$%`i{}nw7f2~y-SL; z$S5|V^|wVj=(G$6soNX~iaheY3YP~gRD^|Flrsj+-?SDMn%y_%Ps@(u_xFS@(<9|( ze_Mw`LN}Tz%{^a;f8L37J1Q&KZ_TRk`K$(1Ht9~c!lfGYb+0T}nfH(Dc|KmWTzfoB zb=tt>@@d?e(Z{zpXvgm5IDU!>Wknliu6DzGxt-?(2+tJEM@%$!KN<6X zwrxJbb)6_?oNJQ#e&;W3$^QUUz;VZG>>Weg0@Ja z&Kh_CC!p$jM9k23jt|R;Zt!3OO>2 z`OwkbgCgFVJdX>6_I(B~1#-hA6k~(vU&Jy_Z}kIH*EZSdjv_ExtvWdM!0v`}X`?n8 z|2&PE>;RTC$!sySSxGt6%N|uv=6iUg0zWi7NNQOzjO2Irv+dAOD{jfdi--4SnqG<*bV={C~ zi4wTyG#*X+ZR%FoMZb~mGEZrd2Pz4~o=cMmEyx*{;N?9}A_6K;dtT0%c%nygh%BsA z=;j+ExwgcAH9gv#reX!oumy!}Yt5T#X)ZXs`jB#%2tL_0Xn$XaR?=$htA*xxtIjvJ z5YgqPqB;}wH$8;nLcJ*)Q3=}3s^#eLl-syTBBHjVWvGzuiP)r^bugR<*XiRE94IR~ zs9*WVP~y;FLY!|p!LQopk$F?GCu6*g84c#G&~}hYh~LHgbHObf%Am3OX-l}8u)wy# zsGP(J8cQ{c4ApyZQBmPxpiNstUFJcPn9$r%X0j-V)87xsSToh4c3v(qX4-EGlDgV@ zhRgA}+&ggLhn)0H&uVT?_wCEn6K~pEPJL!YOIVm}=79w8jeZNjD@~;tb}VEjdW*8= z$@#M(C(4iCM-|%*rWiOerNTxij&-SP_ab2=H~Z>gj1L|dO}QjM`$I!Utkveb!8FSa z)OZIo%Ab@}P55}o^7#-OH}u)H*JvnfABFGRa=RsV(wkm5mAXSXKHvI!QX{@FK4Gao z+;VSF9G8Q&z9gIqD(8saM3u491uP(f8v9JD*=nQj9kdvrb4EC?qT5kwqLdNm!|ewW zFIHUcsQb2y8XAz2SNfoT{Lp=68+;J)rSkCMAH^kBQB%`GqCd6J29fE+ zCi^P4$l%{Adb!Il`B)C;WX4a+>h90MuH$3Ff#3bK0D0#2jgpg<$%_0Y4fscnRmPvI zDr1ulItTz4pl8~(H@;;0zJZfuZ(ixGsHoLbjkO$ktsqa&czc-=V=Pt)-m9Z)*ez1e zP}aR66V)`V`PLz&`f*0nq`q0HD2N2;yP6DXaBS`MWtetRLje*!*$R@^S__t(SRB9oAW1vFXsHS7j z@%7TIZR-MpG6jrS_Ub6rYAD_NP*c-+-*icYGA`^dS7Av0#`R4jt1Kss&3K2?TW6aYptV0BYGs%PLu%v1M`^O+i^JKy_9cCp|6ZxNUSHQzHQp4o;q=;$Cs^%NChn`>A|{_HWADHCdfxZ>H4xiP z13`qX+NjVjfGzhi4-!%Po{@lTbLTVb6&i;fa#GK=y!$(tzTaI5=AjZi{CXW~!3-_} zsO}7;C3$uN-qIo-pOB)g0+%sUPN%A&e8x2#S;OuL1g8LTo4CR9;mIo>gZxyXQf;3M z!Oy)=LzHPysdLkcoa&=kM7dLz>u&>l`u-X}@8=f*vcE}!f8*J`c{VlbJC99%zx{=O z34X*cIFYH-?+FZoyB|Wp8462 zKSt&M(fpm@y6!;~qCoST{kqn48}oJDgEUu#>F;x3e*%zR&yD|O`mcffUrql%Iz56V z8O(t=XT;(eMci}GVh8SrD$V~&J^l3TKU=(uy~WGL!aavk6lHI>453)s1aS2YS; zehW32-(6?I12`K*+Of7V@R4b%`~?|3n#+XW4(I<1x>Y@k9R6Lro0r{T^_t2%K^vw-W`3|MDzlACflPf?D1?xI@E2nD|_&8+&T5xKSj6}NwS-*zk4oypiBg%ELa zmdEw&BtV^G5-7b>D|g$(xn~V$5J#^6r=2SeXER;HXz3|kEM;n~GIY?^kfBO78EUDm zQ;FDXn=*tdv9w7s#;C1fYQ(;)B_Rootq7)7(?O)xAoe<_C0bi(i4$fnM{=EC=Q`J1 z=ZD|9zW4ibzt4L=_j7;G_grJY1s4yFzvYZGEcjYMnnB~cl_KRZ*LcPYjHlZ-9x*#d zJn0FcgjQ&2%;=b0$Q(yJR5Z8C-8 zOa{xp6I##PiI}yf{_(0yQm3}CQ`GIQ^u?4B_E0>E$N`yAn=Mj;bYY-O(=|ZE{t$tXUUBBmRxe8Yo)Q2npFZ2pwUVi{P)*3dwh{g5NHYD zuQ;ZpKo+?pS=zp~Fga*qOz!XF1!#Pj+iJXLyuGAH>NjJ(!arX?iRvH=hN7bKhC~MznJgD?CjI* z?OR!iiWW_dA^_KUy<+7FSbL?_m~i3*`sd`isi#TsuZwe*eJ75e^H-zpN$u zPtT=Sy{~6|Jghe+ohcWTUE%z6ZiaFaDON^oPwdtvA5X)ew8}h2HLsLbDP|F3_IyIoYxYps_yp_QTvaB*^gJe5dB1J30Qi>x`87w(c|2x`}Bj_hDf__8+ zzIx5UngIzc6@_$A5@p|p|8{Yb)aGL@t}n87X94V|ggvX_e|)3E#Sd=S-?O=gnE#EK zzpdb+*_19z*F$JhGtgCMKQd|!OCVVJ_>d%!<}&IE&c0&f8R|Dx>m0Dkjs*?bUM>#vI4TjK{}L7&&M)ABk;TGG1L1T= zB@iD7KFdL6)<-*8V<-|uM9>=d@orHAC+qjZiV`H>CFly37rKQf*J6u4IbA zs$ZTAGL%3B2yiT-D)lpGdqNWa z#Gs<+(tzsasFU&&C)w6`>&BzTHy{IZ+ET`c8Bx*(sXyH<4WvaULEFtU9wfx_N6d(% zh&ACpK^fo6vt9XP^Pt#luVXCFN(FgM+r}2h=aH_iX8uC{c`xFdYqXJAJfY%w@9+~W z=ymX|C(N(Q6$}dS_j$ZAzNY@;B2bQGfPm(T0LncjQhQ6JDc7+oiQQ-&|FYJ24WK-c z?Dhklx}t+cRvY>BW~(!~UyP`FnHWmyY+SjrY2AT--g6zZ9(0;cmSBHCP%wXhTr(az znglU#^bK{+Rv&2YtAqJh%Z%Kok2W!;D%wE7t*rJS8;^rs8oQh8!K*FgY#u=tuYL%a z_FPOBUK|AH-;LaKA*BMhHGQ3fp^L0RN7!R)Q5qQ`A!&tCzUM^x zRS%lbyHUKF2`c7UD7*W5XtTquZsqY!34nW|JCJGQ;{XxtjMRfge=U|wQ^6y8C>mqIn=qFyd5JNM%FndYND5mtb05`~e;X4G%^h^g625JnUvzyr zNvuqX|7dgfrb^YjrUld@$m@cMWb3UHG=xQC3ev#bd8%YqDt{jCj1eRPTqcMoB zG|Yq~a(tx7$ipiS?8_9!g>6;O($_#4CBg@pMGz$W)mscWIwC5HfFjXX_^%sOS@f-a zyjpdoA$g;TR!^_5d)NqHoWF=>hQ|9(I`Jy7E1Z7>+?K_2YpNk3#y>8)ws&?VSX*{iZ>B|(kgX!;teH9k*~S?16m|TFkD;f{ z2?iAVm%L5Ut|_TC6e<2bpzH~&QA&&9e)YmBRTbv1bm^S_PanxBFAKBVkMisYu{e(E z%}1bR?abs*4YN$n$#FA|{x;Rd(#evBirf74R7!K17BeStS0IlgmD_nN8 zuiBcxq+f$a7IO>4wykbtxoP*M(sfIq6yPHg-Cju8##FzbRO^h5;JrU(=TF|z z%HTPEkJtinfmdnj)|i-nLAJWB@i zDQD$_xZ&e?o)(@sz@aH~<9I5L4g3;22P?G#Q*$BkOWx*=M0GeEjqcZpfEg2QIn=aP z6tA|ZGi8F=9l&b6-F)KG> z`FRwZZV|RMn!Q-YUEeFy8FuzPTzDUkLnscRI6NS`RC34_`-FN3#UT`j$#l;JJk%BY ruIM2Yhfo{}?>)Kre^P^l@0?TlMaNzLkHnbWLC7}^EN4AV?ewqmg$chOF;LFdOchK=#}>fn4g>ECOm7RiVi_rjjE;l^nFZ7SNq%X=Z}W2zd#~CX_p>r* zcwdYa2%iqV(2gVxI~Wewx79&#hZ6{bYs#9NNCt!sp$23{Uld*+nr%W>UxrOuVMjDT z#*+$ZM-fP|$g+X;I}j5ajW9Ra_W?N#sOsEkN_hS?;A*^}$pd~)pzETvG|k|7EBpqr zS8C}29{qwJgNC&Xfz>sr0YxCt#5tA^W1qD+pBnZx`2uWX+49djSE_E~HyuX%!b5Z@ zI}SZ{MW(^^_#M<+6mR=a7&@34v`3$Ri1d0gzG(r;QY7MFf2$_wGwwMn8scl!X~B;J zr90!oq!}{kr##Hjw6i|b^{n$HgABpyv8*OcTq{&eiHB!JcOc3f#0*{59Ey^WzY(n5 zgGS87SN`?XK}<=lKXoWXkcq*xN0cxy!q)qV{rz}nN;MzO_zw|A3H0p&w5r@MR{AJB zyo$6isr@RHwLAQYJuy;Y*z3I;e}OnBJt0oL9(zsT_D}Q-|}QyQq3+icvR>UY|7F8V~I^c8Y^ z=KDx){$tIKq{tmp=Q3&;i0+wnvZV7Tx^b)U82wRgfz!UBb)(pRU;AZ|kJJXzzQuJU0{{E>6g+!QR1$tdFxO7FE1|b2 z1Y$@Z;jk!0j2{F7IX#wIa2&zDC`t`zv5>b2ED>4sttf{*xZ7_>BAe*RpMmmnR&x;b z{DWB;rudkC1Gx%QFpli%!Kk^TQ{r`C>k-UZWK&^BKkB}Fg*@m1DfBziDU5x)?MqT+ zOz_V)(6^*k4pq`+Qsr8J`8>8z1z-5()f2*sW3mNn+a9^rucE{;+`}1r5}~BkVs3eeGwd_gGjuab@?^)kp(UXqp|#>g;-R6k z`J(y!Mu{VG@ud`#N-x8hh7vU_Y$;2=4NDOaAtV(N9MWns^*&YZszmmKg?C;wTolt0rTJI3ro;SREqFqJIgk5 z`4*~Xbj_=n4$KuTuos&0rwhdv9cRK9#-=q(nk8=Aj1y7CM#U)w!%CIP>XlCO7LeG5 zSqd4Bv0wOKm|x7?3z_9s)l>7+i?s^cMOvj=RYW8PmB{1@c?;DKgQbJ03oPi8x_&;M`}u@Om#T;RDa!ZXz|gfpcXHO*he=w<$?mP`6GWSTxLmWykk zwF|T>xjR1~645GkMCwfn96L`sD5*{Bi0&6|DNM49oVz$T#ki(u-qK$;Ubi{6Le*V1 zWLdfV-66EO(5>a!{8sr^8yYF>8nqU1LUo}Y1KA(5WcSoN4g52p#lqsH4ICdh<2zgKpue3>S(Z zOoY@q6gzf#T6wHBZk+7iYfnnMmm+Gykhz$-e2kRtN_W4|Pm_-6d?fLugOg>sw$;iM z&d!!{@p=2EqGjqB;|GWAUX-r4(h-(o|EQ2*_EBIg1T;l0qCvwI!KFQHfdd zqva758Vc{Eppxs1q^mRJY4_h0e-$q)L`f=S4rDmv$495cwNN_w;*3}5 zJ?2->EEL|`C#BV=C9VNom|L?RTlVHVn-p zm%;Kj)QMRU_4&g+@;F*K@ySYLH{b_64y@OmpX|(#IOeI1uKu)2<%w#dd}=wn3~kJl zg2ZYvs%dDwvbNxMa2tB)Gy#{|>F~{nZ^54@3_ENjYy%*vzNBfX$l3WcOrzI17he<~ zEMX0}QL8hf>rky~vI-fEagyjru$Q2TV@ptq`$4r&)qYhvTN&Rul8{ehp>fgSxeK)e zwH=yD`L1$7wMa!nPr;55%^y_M{;qlU~?MxkBcJ)ynDWAwq# zYsQPlTju@!;3N3G9Gnww4zG^0=>z^<*6jNXZEberpUtJ|xV1TN*R|~h%uE^fcF-mtx4m6={()ZWq$KvEf=j zlc@Atu0{Ke*SBrx3^Yud79Go`J?G=8Olu!pa|auXrZcvfHZE-rUW+SevyWF^6R#g|`FQs{7jJvd$7hFm zlasF|FwtNXolD+kADGwo9aJKuNY(w8{e?haC{i-uTjQ`mro%u}m0g!XVk51|{P6o; z@_t=DJtMEF{A=Hef@q#iSZ`T@UbEE4gIt<`fO4`2z=7uaja0#fVlH;d!t<5Efrb@H zJz}AOFiv=rBp2|AV!hPhhPA=BOcQUUf1*9(IM(K3Yca6_dB^#D&--DQGv|sk|8;eM zv=voz00KfK`Rn^lOrH4a>sG;Rrl{(uDkaHoU}HtCXK15uMD1#2`!yN}h|`t*>!+2G zqaMDim8G=mL`PsiUJUI}MGCiwm_21GSC42@M?^8ygKRJq@Ba?CyhIf8XHgacGCaW=(QgR|0s_cnL;B|hpUJai zuGn-#dWK}lo?6GG_C@W*P3`5{$J)=+PAXbRCMKruCnqNbEX>T(4XRWsCB(}ov6eA$ za>TsA|G7=cfs`or2gL=}3z(^!IkwxR&#~Yf zQb9z0|8vWU@kQ){|CJ+Y<4)rm4*BeF0GVyl3rFt#Q*l6nx8R5Fw+;+I*}+`pD2W&NAahY z%pDbmI&`W3!t2yAMDPMhN}{O_UCm1FN^`~Rz5fr={|Nro>4yptd_c0I5}pFh)*Rr- zDfnMdd4bate7_)JgLX%xSHCl-{byZ&iLZ{2zmix6oV?DDiA(rj$xcY(a}4NL6T2MX zR-OOn_5ZSqDeQ049eu#ze*cwP3)MF$U9E??8iW4^!tV==KKKnX8t6YY-b7N}^O<&o zLw1~R^^9h7b!y`Xu*CqaVj2QJ+F@)dOUV?ph9cQP*`goKs;ogHAc2vbmZ(zPOnVwK8Q& zeFKB(at)UA*|mU5%6pPEL5}aKwvWrI+F1reNn}aqVd)OEV@W~(k~oD3zIgNU;KYOz zQjo|m?A@C|ei76j_6&nFsS{x|nZYDyaE~+zmsX~bSXN6bA~Y1LufN|64LHufKl@k)RY-oLKPW4VTd3{7D8q`H)y$ zF0jv>Ia*vUBcGmJgJY=m|4^eJZ}O?Y7lhmYndQ+>S5{F0Z^jRaCgxB2o$!Jv^&Z{O zuz)6pG%E-CRZQ!Gac?z?n3E!TxY48{d++q~nJ zxbEoi8Z`3I@geuEzkD`0_68B;MZA_ME3#xxCG~zL2}#k){Yi#u-V(2_q!d4>Ue0hQ zgtl{MQ`_;RQ6J!r$Uf@^TVDy-x3Pi=7)ejl$eH}N`M_iQJ$$^wRw#`L0pkexKBiJ% zoO@~E9}d|T04>lh{t2s5mUA##$yN0hYJDlg$QdTx!)yk(46BEOQ<}5cL zc$;0Gbb!#ZVJiJZhYH|eYYa_={MXiiPX*HR{ECwRRt=9B4F7Gzh8d1M?Q2aVVN8nq z_Z^F$UtE8K^a%4}Z-hD@`g$1awy`V$I zbFigO8)5&;y6fQlY~Q^bWlmKoAnV}1&>O~>H2;Mj0IWJ%=EfKfVs2r<1$)`6YS|a| zr8Vr`Fp?xomjnEBGz1yymM`%AFYq8Ww(TwH31dSHk$O*Y?cra zP1AXsE?G1xtM`%he^)siN?X|#Q&zUoQ@n`cd;M5X~or# zfJ%T_v*KlO0OwV|51dDuN)$PXzwRRyJt2sCeMt&Fv#2}!`u7Uglq%!N>c=jh zO{M3lPjAimzg-g=(zo}=sZW<1ef_QuZB39Kr%nuNbB~9!?&VsO`kjuC7mIKVhJxNq zK(C!vF!RJVyUsQh*%upJ$Xz{d%Bsq>Aa_`xUR%tmRY=&;+(+F_<%3QIHfEg=n1tTH zi5&B9v0-t?;}IwxZEX|i_u59`DlSGZu;#aD!~s76O1s%5F!v)r%eoUH5q=riO2FYG zRB$>uIpOlSroY={H9PdV{_Q*bCd72dQ<##NtuWp1WO+38V6#8GgPPf>B0*N-d08)5 zdY8MtgTrp!9nYq0k@$p}Or-J2$sq`bqa#e1uV^Y4Ee4qGt{DR%jKEWvv?n8XIU>H1 z`h}(WYI^SX^uVhD|2d$(9~SvdqZUUf>;**$a6OJiypxU;a@VHpRE+J9B20Q&{vRH+b1e$bd|7B|TW74^STXF(_>~_``zeZ_hwWW_z{8ht2K?fkY6FZckMtl$x5FoQ8CqAC+ZgFq@vYQmS4F^>bv+2jSRkh{wmr z0FqP2!M#ELvJSx}`;yLps8XsT4tJ>bm>t{6A;I&49=#Ag94d6(`Yl~0B4J7dD$4N? zgLw)a%kSK44qzMxI8844Ja88n=bhs6oi)6o_NHn~L47^Nb=(=S3Fla|=GpCUa6 zfByEtjtIavHR8B!hAX*ipBR}WchsRINl$Po^hV-}tm6x-{Wf0*xdg}~N^V$8Mu_C( zWGTeQ^Hmk3#wctyf2~&M?G=kktC&E9awLd5jL|aU_hd1eUMeZZey3m{QrJ_$@p!X{ z9UfutqA~9>kT^PR+zR4$$wXv}U)t^N_0SRxm0DH8Wm7XV@@4AvBL;wk;dk2yOZQ(Z6s#wgH=t8teLx2z+(&1mBp@KMkOjN;=^aXpM{ORu7S3xcm zb}y1BEhJ=FE-uwKp+ad&&)4z`4G+T5)JojHJm$aIiNlmCbX>(Jf*O(z=q_TAna`g& zwh}4#7sm_4zh8ww^KzC{l{aBokBiR~2#jo|e()1j6|Bf9t3#6MN5}kuHTtz+=AYXF zvmalwA3`oFbKjsDRw;We)^VL)U|?y=3$o&!fm8I8a`B@AQGq_I?hqF8A(URRgy$m3 zHF6S`?OPe6B}kuF-$J=YebgFDJ?h@J<$8-#%4AkrTG~R)Eh}U+FEV_z2{B#5pToR^ zo@fGrx@CwozFF+-uH9d5ACROnTL37Zkzi=u9QaVT998dOff%_h^Ky?EWf0orT}q=N z=O({euk!SOBW~)QL`jdhMnA+oJQtnlL zjgVdEpU51K&PEg|>?Gd&svMEu{IP@0gDM?gaAZm3K9DJFr>t`qDJDC3T5sWzMX2gD ztuEQ@5wdV3RB6L^QKYyDD|nva9<5Ff8g*C-2CMPA+`>NlY)jFUTAO1D^s{&%18{mh z(TY|5sF+{sGwem{edFk9^I~Y2-{6@l*T#iMsjVJhwFz8YjKX_kyXL;gxyIz=S~{wz zl6cnr^0?VOFz&Hkf#C%fHF$UF0~b4JSfAF}g8p1t*;V4wDAq4qJ4N^QqG5L#bU8?LJX6C10XLl{t)BJMXU|2fOn_7}Y0D@0_3IWP zC(di^1%mhl0}qjZF#DU{qTpFR_f{0&#ZAwmIT(>pHZL!)PVH?5ivZ5y<~ykZVLlZC zSkFFo=J_nS%Y+TXwZ*|$aytLpOvtEf$6kyCC+xLRTbNj9+cLx=>*DFo039Y;in&-v#gm=lPm)s`myfSOE*mG*QJm-0d0 zmheiW$h5TB98n)z&Z2USKVSF=RrUN(g1qR+sjQhQpDo}Ufex*}!KOc*MR^&-YAM-? zH%dbV!`%HLmZPr#sj}+4r6|Sq65a%sORsgKrIBJxv*Dl523<8mtgv0+$yp1c`eey{ zAT>fSrZ+gy$r&7!i9j-d{vdEeo!ktP>dp22U{prYVD*Ma_k%t*1seKK=Lv@H2>;%v z9&U|fS=m`X*0t_LZwmar!mW4wV>5~B%?s%mx{-D*S^GOYH^Q|H=V!TTf01q#YX>O^w)zh1$!SrMPLqa4b$7JaM+T3_T$o6?j3QgwPyE&uBZt9NY7~H;?XBb(#_(y; zNKqgGI%$=ZIjJPmW}Sc>(O$tFyg8|p6~fz#+7ZfhJ5X00pYPf&@|F@9AYrWQYW@Ri zkt^u%Mk_3mvl$=UYr$Gbx}mbG;r&?$v#(Om)$|%TT$DY4DT=0-)NHtu!W|ARC&Ja$MwU;V!uy zGNCKw`{AyebpyV*pv!Yd7ndGSx%bneTuVl8BfL0?kqJDCTI*N6%$p!j=ppyg;qn5r zILl548T6XnY_v)hBHTm=q=JL}bzynwpVC6@584G(rBjcKOLI%_Sp^1EN{jMB)P4Pv zJh7o+FAxjGk4zW`GOc^KGw1P0dlA+uqvy-5VmCcpWoj>Y7O9lbH6a?^dwH30*R#jV z?oML^0a)wjrFsr4LSe@QwblVx+f)#C@^9DAB#{>i^K(XS)5kR47_CnG@hbWsZ_mh` z;j&Fqz;cpVMMa`WoqNwB8HaB?<4jt=sXwFgP)4h~Uf(YGQYiNbLpqa`JuENcgvWp- ze^WgFq3?*F#xnAhrMDin(*lZi_0pImdzCMUOaJpHTLk=m{2^d~=I4>#5HUrAsy9YI zjT_caN`J=(d>eoe2-3EMf3WTj9u)^iYd==U#KvVqT_$&zdI5=nu=iW1EGZqV2M*PV zF+W<@$jE6`Z60dwOA(v?$T#m_H|9De1sCaM){3pDo_3;auks6e5&GW>+C>*T>rKn` zLlTeUq?x?z2ko{>B=;F4_p3|T^R3ko=&8Ep`~-x+<=nN4tttAPBzn6DmWM>m_sPb1 zbRJ<~$x0YByykKD8Nt~99Qpjr9VGCUpczZmtj!?{OEA|*? zK_g%T){Z8)VBJ1jj}`mRQoX~4b~AeEjTGyBR=+87vZA&~E7sYib5y1fKF@r1Kf(06 zNn%Fo?9ue!qz%?HR=zv17{lRRibb8|E+t*A;5^9U8o$aYDL&&pjT3URxFm}!2EP|l z&~mS9)!ua9TW7o&MAKRmd`z}ob9?s$9&(0~K_%|eC95?b8TYf%Cum^n#Di5}7pl<$4>~B#ZbQbzPfv`-`(610Z^HW~-HzoB-6AJT zT(6Z}xwn?niq@97A5ql)Ay*`P1qs8^prOMrKW!*e)s4rJDe1g6mT$@Oqj%cL?iI_yOl#ez#_G)LcduDv1QOO#;1f>a0 z>f2oqcQQB0gU%kF>{vZz>P!ZCpk~TADcC1&sdOg!dEX#eZvOId;Lu-0I#)?hR!C@l z@I)n)%^8^(&)n7!fvRZs=A?(|(c_nwad|*?WMIOtC1g{p>~<13U7_qXxok$E8XE){ zq*6#Ol!=LR{*vJIxbQ*-phs=HuQz}kF%^=!EK*)QH;}rLX20~QoUKB&AFO%U&|T9Q z_d3<079S@PW}FYEro!pHg%^CZW9PSC`)P=@+FAN!vSa6STyJ)!S=i$m?<}j>{9ay} z7qajUXiW^xVur1>_WEYv30@#i)jn~H*5086K;BNxI{&h&;lOnBGMxt^&W5%1=42Uz z!OB9+NQYPu_5@!l7-H0cok@!>-*4m0q%16r!xFc~NVi{iD&9E+)3B#`&D~ZPmQE2< z>i2%sP33EeCy-b&%;v!3d(TrXB%wyOO`Vuk$+sB^tBa&QiR2dbvO>6n)N|-S^}&5M zkB2hjXA+z5Bz?tXuE`HSOFtd!r`8-rwVqDR->oEk`oNQ}XA|1c1k{^_LrvX}uH=mV zkf3Uf7AM!xwnNU%zMEzvQ{!&ec3x?% zm)+|xa%_IOpEjy<=RWOc+Vs>!*rM0q$SaFDc=gdJB@)cuklbEhQa+;FgH$DVj^TSh zH*onZ19NuN6p0b=-8Z|FdB+to4X0Jz_uH>uP1{+8jXRi1Z*M)9y`a80VR*EDRvxu8?T9Wc30X1w%P zs@uVBLou+y+OM^PL9)}rvOl_lw`;HY8Zi11YL!3m3sJ}KF+*kJv7Qz-_vO^tr0Y7} z9039V)7v*XZXu1y2&S-BTv9rh#SBTJ<9&cCcDPHQn^{$3<*J*K{6rE^*5luN01Z~e z^Z3`Xd!i>*Nh-)HE0oA}eSjj z9eYFL^thvxfr-l9uD-vTe{(){(_D|F`w>H2?<>i!K+NKqt`g+DM(<3F3@kmay#Eqx^2^XbP8dUdD(XAlU z?yIG-s8_x5^wz(mScYkX6`3D87zv=!OKBz9MeWF2Dco^Blb!t$yH@Rt&0`u3-^qT# z;5C`R1S(G~Gg}PdDae zF$Nb>KlTJM@%^A{V}ncENn4cYiMUpT7MA9LeJ^eb%q1ln$HM2NXJx$%~)caA= zYJSa$zvo5}_#_{kEUIPuX_%f7H8!7O3typi-Z|{aj64ePjA1fEc~CgdtHC^O0>-WF zgxT0WgIG2N+(469oSHZ?QDQD#ES&U=c^15s&q{h1@OV5P%sAiskcKo~@si@wFA$7p zYRR_ICb{>lCF<4jyJpLLnG?$1Y4*a09TQCi9`f8=ou-jvZ~V_|Da4;q90IV{&W{J_3`$3$*>|4Dc4WJADZ0CHwK-~<7$d7a@q(j{q3Nbfe zCN?_MJw55aXnJ?OxqdF$U`z7YG{`6p>cw@3^ci7-u;C_gRG9ViB81_9%qUKMZ9IQO zc&`&20bd5U_B(Gl4RpO>6X))(Z3!%S3$v1ky{}#GSS%}6OS(Qqt1=8Fb3g)I7P=k{4q2TR$SNrjw~(xH@pcl8c@kbG2C4h%zq=sUY~6mZ9OWR0@x6xlVY@eoqlE2TyOL_g zc5etlhD-mRl$#b^6dxY=m@6i3DIbJZ>Pa3dQoUvRSaCu3M$WFj-icLJe{iM8+|xZv z8B$MNA;d|)%6`)E5T&}wKoaIa6D5q`J&qQE5;~>{(B)`Bi_jUzyRft+Xzmivwx=sH zOwfpzqX%twm{j1M6HSM~GwGx;Z@J=|nn3FvT(LqRh$I`dUA_5Tf06O zODkRu!m7k3g`2sqSRQg&?2#`2ZX>S`jj)TlTVT2F7SFOCY(eVb+_sOgx{<*By?)Fw6alFQGL5!QyeEUHLmt3EvX?lFdV5HUP zr*A(P5#4+6qX$pI`-fZbcCs3JnvuQsIHEg&naDZG>Q&I76TvLiubZv=vCFGB)W)vk zOv5GHJSHx{NAaAuXY8$(oo(sr3N<)VpzC00d&%4`$3-^yCF3lyl?Nz_)~`=3GVnEKKuPS+Qt%QZsC6? zWV24;uUgA3J0pkb3wFYUJ(-f6)J%wqpPR!XmP%5rjkJ3IQ5n?b?#HSBrgs8dLquZ$Gp;wYaw zFaV_JQ^N&cZq^cIa7X4PgxtPa;d=JmevDtj%@-vo*!_d;HzAcfezo!URg{_9T&?{( zffD+EOcfTiDAI*+Mlo=q4Ji)K2+msoJBjYmriv3?V0U6F!!nI)MaoeN zTW5_Gg1Z-(CWNFzbd)bT^qO9+0rUX30G3Uw#q8p@{gK3tv65~QkA|$RTpHV}Ap&eR zCCKMhq{30YAmrP$17XAN2Mly>E3iNS<&-G$9zd8cV~zuct+`R}rtfkqg>tY2g<*Vk z#=NX$BWe9-@MPWdsADV{)A((^2<>qV6>&dvR*oUw!pAdd-A3fEfB7H*}?dqgI z%u>T4GA^T?KaEul#kCk5H+@`6MT_H$=f2!1N�La?~0Zq?(zSX_boZCYi-`>R^T< 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

C5R2j@B?X1VfOa&uOWa~+TzE#kH@su}0W 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 literal 0 HcmV?d00001 diff --git a/doc/post.png b/doc/post.png new file mode 100644 index 0000000000000000000000000000000000000000..972e452c3141d6c48f66bc77d74a80f11a302c41 GIT binary patch literal 23788 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 Date: Sun, 16 Sep 2018 20:44:52 -0400 Subject: [PATCH 09/19] remove separate STL wrappers and add comments to the static class --- stl/argc.m | 6 -- stl/argv.m | 20 ---- stl/cancel.m | 5 - stl/join.m | 5 - stl/launch.m | 9 -- stl/mutex.m | 3 - stl/newsemaphore.m | 6 -- stl/self.m | 6 -- stl/sempost.m | 5 - stl/semwait.m | 8 -- stl/sleep.m | 6 -- stl/stl.m | 222 +++++++++++++++++++++++++++++++++++++++++++-- stl/stllog.m | 12 --- 13 files changed, 212 insertions(+), 101 deletions(-) delete mode 100644 stl/argc.m delete mode 100644 stl/argv.m delete mode 100644 stl/cancel.m delete mode 100644 stl/join.m delete mode 100644 stl/launch.m delete mode 100644 stl/mutex.m delete mode 100644 stl/newsemaphore.m delete mode 100644 stl/self.m delete mode 100644 stl/sempost.m delete mode 100644 stl/semwait.m delete mode 100644 stl/sleep.m delete mode 100644 stl/stllog.m diff --git a/stl/argc.m b/stl/argc.m deleted file mode 100644 index 92a6afa..0000000 --- a/stl/argc.m +++ /dev/null @@ -1,6 +0,0 @@ -function ac = argc() - coder.cinclude('stl.h'); - - ac = int32(0); - ac = coder.ceval('stl_argc'); % evaluate the C function -end diff --git a/stl/argv.m b/stl/argv.m deleted file mode 100644 index dcd267e..0000000 --- a/stl/argv.m +++ /dev/null @@ -1,20 +0,0 @@ -function s = argv(a) - coder.cinclude('stl.h'); - - s = ''; - coder.varsize('s'); - - BUFSIZ = 256; - buf = char(zeros(1,BUFSIZ)); % create a buffer to write into, all nulls - - coder.ceval('stl_argv', a, coder.wref(buf), BUFSIZ); % evaluate the C function - - % find the end of the string, where the first unwritten null is - for i=1:BUFSIZ-1 - if buf(i) == 0 - % found a null, return variable length array up to here - s = buf(1:i-1); - return; - end - end -end diff --git a/stl/cancel.m b/stl/cancel.m deleted file mode 100644 index f4b489a..0000000 --- a/stl/cancel.m +++ /dev/null @@ -1,5 +0,0 @@ -function cancel(id) - coder.cinclude('stl.h'); - - coder.ceval('stl_thread_cancel', id ); % evaluate the C function -end diff --git a/stl/join.m b/stl/join.m deleted file mode 100644 index b703c2c..0000000 --- a/stl/join.m +++ /dev/null @@ -1,5 +0,0 @@ -function join(id) - coder.cinclude('stl.h'); - - coder.ceval('stl_thread_join', id ); % evaluate the C function -end diff --git a/stl/launch.m b/stl/launch.m deleted file mode 100644 index e1ad491..0000000 --- a/stl/launch.m +++ /dev/null @@ -1,9 +0,0 @@ -function tid = launch(name, arg) - coder.cinclude('stl.h'); - - if nargin < 2 - arg = 0; - end - tid = int32(0); - tid = coder.ceval('stl_thread_create', cstring(name), coder.ref(arg), int32(0)); % evaluate the C function -end diff --git a/stl/mutex.m b/stl/mutex.m deleted file mode 100644 index ee08115..0000000 --- a/stl/mutex.m +++ /dev/null @@ -1,3 +0,0 @@ -function mutex(name) - coder.ceval('stl_launch', [name 0]); % evaluate the C function -end diff --git a/stl/newsemaphore.m b/stl/newsemaphore.m deleted file mode 100644 index b86651b..0000000 --- a/stl/newsemaphore.m +++ /dev/null @@ -1,6 +0,0 @@ -function sid = semaphore(name) - coder.cinclude('stl.h'); - - sid = int32(0); - sid = coder.ceval('stl_sem_create', cstring(name)); % evaluate the C function -end diff --git a/stl/self.m b/stl/self.m deleted file mode 100644 index 2a5161a..0000000 --- a/stl/self.m +++ /dev/null @@ -1,6 +0,0 @@ -function id = self() - coder.cinclude('stl.h'); - - id = int32(0); - id = coder.ceval('stl_thread_self'); % evaluate the C function -end diff --git a/stl/sempost.m b/stl/sempost.m deleted file mode 100644 index c4e8f79..0000000 --- a/stl/sempost.m +++ /dev/null @@ -1,5 +0,0 @@ -function sempost(id) - coder.cinclude('stl.h'); - - coder.ceval('stl_sem_post', id); % evaluate the C function -end diff --git a/stl/semwait.m b/stl/semwait.m deleted file mode 100644 index 4886050..0000000 --- a/stl/semwait.m +++ /dev/null @@ -1,8 +0,0 @@ -function semwait(id, wait) - coder.cinclude('stl.h'); - - if nargin < 2 - wait = int32(0); - end - coder.ceval('stl_sem_wait', id, wait); % evaluate the C function -end diff --git a/stl/sleep.m b/stl/sleep.m deleted file mode 100644 index eeebc0d..0000000 --- a/stl/sleep.m +++ /dev/null @@ -1,6 +0,0 @@ - -function sleep(t) - coder.cinclude('stl.h'); - coder.ceval('stl_sleep', t); % evaluate the C function -end - diff --git a/stl/stl.m b/stl/stl.m index d2b0fe6..6e3d839 100644 --- a/stl/stl.m +++ b/stl/stl.m @@ -1,9 +1,47 @@ classdef stl < handle %#codegen +%STL simple thread library +% +% This class contains static-only methods that implement a simple thread interface +% for MATLAB Coder. +% +% Threads:: +% launch create a thread +% cancel cancel a thread +% join wait for a thread to terminate +% sleep pause a thread +% self get thread id +% +% Mutexes: +% mutex create a mutex +% mutex_lock acquire lock on mutex +% mutex_try test a mutex +% mutex_unlock unlock a mutex +% +% Semaphores:: +% semaphore create a semaphore +% semaphore_post post a semaphore +% semaphore_wait wait for a semaphore +% semaphore_try test a semaphore +% timer periodically post a semaphore +% +% Miscellaneous:: +% log send a message to log stream +% argc get number of command line arguments +% argv get a command line argument +% copy copy a variable to thwart optimization +% debug enable debugging messages +% +% Copyright (C) 2018, by Peter I. Corke methods(Static) % command line arguments function ac = argc() + %stl.argc Return number of command line arguments + % + % stl.argc is the number of command line arguments, and is always at least one. + % + % See also: stl.argv. coder.cinclude('stl.h'); ac = int32(0); @@ -11,6 +49,15 @@ end function s = argv(a) + %stl.argv Return command line argument + % + % S = stl.argv(I) is a character array representing the Ith command line argument. + % + % Notes:: + % - I is in the range 0 to stl.argc-1. + % - I=0 returns the name of the command. + % + % See also: stl.argc. coder.cinclude('stl.h'); s = ''; @@ -31,35 +78,101 @@ end end + function debug(v) + %stl.debug Control debugging + % + % stl.debug(D) controls the display of debug messages. If D is true messages + % are enabled. + % + % See also: stl.log. + coder.ceval('stl_debug', v); + end + + function v2 = copy(v) + %stl.copy Circumvent code optimization + % + % y = stl.copy(x) makes a copy y = x in such + v2 = v; + coder.ceval('stl_require', coder.ref(v2)); + end + % thread - function tid = launch(name, arg) + function tid = launch(name, arg, stackdata) + %stl.launch Create a new thread + % + % tid = stl.launch(name) is the integer id of a new thread called name, which executes the + % MATLAB entry point name. + % + % tid = stl.launch(name, arg) as above but passes by reference the struct arg as an + % argument to the thread. Values in the struct can be shared by the caller and the thread. + % + % tid = stl.launch(name, arg, hasstackdata) as above but the logical hasstackdata indicates + % whether the MATLAB entry point requires passed stack data. + % + % Notes:: + % - The thread id is a small integer which indexes into an internal thread table. If an error + % is obtained about too few threads then increase NTHREADS in stl.c and recompile. + % - If a struct is shared between threads then access should be controlled using a mutex. The + % most convenient way to do this is for the struct to contain a mutex id and the main thread + % to allocate a mutex. + % - The only way to tell if a thread has stack data is to look at the generated .c or .h file. + % If the function has 2 arguments then hasstackdata should be true. + % + % See also: stl.cancel, stl.join, stl.mutex, stl.copy. coder.cinclude('stl.h'); if nargin < 2 arg = 0; end + if nargin < 3 + stackdata = 0; + end tid = int32(0); - tid = coder.ceval('stl_thread_create', cstring(name), coder.ref(arg), int32(0)); % evaluate the C function + tid = coder.ceval('stl_thread_create', cstring(name), coder.ref(arg), stackdata); % evaluate the C function end function cancel(id) + %stl.cancel Cancel a thread + % + % stl.cancel(tid) cancels the thread with the specified id. + % + % See also: stl.launch. coder.cinclude('stl.h'); coder.ceval('stl_thread_cancel', id ); % evaluate the C function end function join(id) + %stl.join Wait for thread to exit + % + % stl.join(tid) waits until the thread with the specified id terminates. + % + % See also: stl.launch. coder.cinclude('stl.h'); coder.ceval('stl_thread_join', id ); % evaluate the C function end function sleep(t) + %stl.sleep Pause this thread + % + % stl.sleep(D) pauses the current thread for the specified time D. + % + % Notes:: + % - D does not have to be integer. + % - Precision ultimately depends on the system clock. + % + % See also: stl.timer. coder.cinclude('stl.h'); coder.ceval('stl_sleep', t); % evaluate the C function end function id = self() + %stl.self Get thread id + % + % tid = stl.self() is the id of the current thread. + % + % See also: stl.launch. coder.cinclude('stl.h'); id = int32(0); @@ -67,35 +180,122 @@ function sleep(t) end % mutex - function mutex(name) - coder.ceval('stl_launch', [name 0]); % evaluate the C function + function id = mutex(name) + %stl.mutex Create a mutex + % + % mid = stl.mutex(name) returns the id of a new mutex with the specified name. + % + % Notes:: + % - The mutex is initially unlocked. + % - The mutex id is a small integer which indexes into an internal mutex table. If an error + % is obtained about too few mutexes then increase NMUTEXS in stl.c and recompile. + % + % See also: stl.mutex_lock, stl.mutex_try, stl.mutex_unlock. + + id = int32(0); + id = coder.ceval('stl_mutex_create', cstring(name)); % evaluate the C function + end + + function mutex_lock(id) + %stl.mutex_lock Lock the mutex + % + % stl.mutex(mid) waits indefinitely until it can obtain a lock on the specified mutex. + % + % See also: stl.mutex_unlock, stl.mutex_try. + coder.ceval('stl_mutex_lock', id); % evaluate the C function + end + + function mutex_try(id) + %stl.mutex_try Test the mutex + % + % v = stl.mutex_try(mid) returns the mutex state: false if it is currently + % locked by another thread, or true if a lock on the mutex was obtained. It never blocks. + % + % See also: stl.mutex_unlock, stl.mutex. + coder.ceval('stl_mutex_lock_noblock', id); % evaluate the C function + end + + function mutex_unlock(id) + %stl.mutex_unlock Unlock the mutex + % + % stl.mutex_unlock(mid) unlocks the specified mutex. It never blocks. + % + % See also: stl.mutex, stl.mutex_try. + coder.ceval('stl_mutex_unlock', id); % evaluate the C function end % semaphore - function sid = semaphore(name) + function id = semaphore(name) + %stl.semaphore Create a semaphore + % + % sid = stl.semaphore(name) returns the id of a new semaphore with the specified name. + % + % Notes:: + % - The semaphore is initially not raised/posted. + % - The semaphore id is a small integer which indexes into an internal semaphore table. If an error + % is obtained about too few semaphores then increase NSEMAPHORES in stl.c and recompile. + % + % See also: stl.semaphore_post, stl.semaphore_wait, stl.semaphore_try. + coder.cinclude('stl.h'); - sid = int32(0); - sid = coder.ceval('stl_sem_create', cstring(name)); % evaluate the C function + id = int32(0); + id = coder.ceval('stl_sem_create', cstring(name)); % evaluate the C function end - function sempost(id) + function semaphore_post(id) + %stl.semaphore_post Post a semaphore + % + % stl.semaphore_post(sid) posts (raises) the specified semaphore. + % + % Notes:: + % - Only one of the threads waiting on the semaphore will be unblocked. + % + % See also: stl.semaphore_wait, stl.semaphore_try. coder.cinclude('stl.h'); coder.ceval('stl_sem_post', id); % evaluate the C function end - function semwait(id, wait) + function semaphore_wait(id) + %stl.semaphore_wait Wait for a semaphore + % + % stl.semaphore_wait(sid) waits indefinitely until the specified semaphore is raised. + % + % See also: stl.semaphore_post, stl.semaphore_try. + coder.cinclude('stl.h'); + + coder.ceval('stl_sem_wait', id); % evaluate the C function + end + + function semaphore_try(id) + %stl.semaphore_try Test a semaphore + % + % v = stl.semaphore_try(sid) returns without blocking the semaphore status: true if raised, otherwise false. + % + % See also: stl.semaphore_post, stl.semaphore_wait. coder.cinclude('stl.h'); if nargin < 2 wait = int32(0); end - coder.ceval('stl_sem_wait', id, wait); % evaluate the C function + coder.ceval('stl_sem_wait_noblock', id); % evaluate the C function end % timer function tmid = timer(name, interval, semid) + %stl.timer Create periodic timer + % + % tid = stl.timer(name, interval, semid) is the id of the timer that fires every interval seconds and + % raises the specified semaphore. + % + % Notes:: + % - The interval is a float. + % - The first semaphore raise happens at time interval after the call. + % - The timer id is a small integer which indexes into an internal timer table. If an error + % is obtained about too few timers then increase NTIMERS in stl.c and recompile. + % + % See also: stl.semaphore_wait, stl.semaphore_try. coder.cinclude('stl.h'); tmid = int32(0); @@ -111,6 +311,8 @@ function log(varargin) % % NOTES:: % - String arguments, not the format string, must be wrapped with cstring, eg. cstring('hello') + % + % See also: stl.debug. coder.cinclude('stl.h'); coder.ceval('stl_log', cstring(varargin{1}), varargin{2:end} ); % evaluate the C function diff --git a/stl/stllog.m b/stl/stllog.m deleted file mode 100644 index 09f2e32..0000000 --- a/stl/stllog.m +++ /dev/null @@ -1,12 +0,0 @@ - function stllog(varargin) - %stl.log Send formatted string to log - % - % stl.log(fmt, args...) has printf() like semantics and sends the formatted - % string to the log where it is displayed with date, time and thread name. - % - % NOTES:: - % - String arguments, not the format string, must be wrapped with cstring, eg. cstring('hello') - coder.cinclude('stl.h'); - - coder.ceval('stl_log', cstring(varargin{1}), varargin{2:end} ); % evaluate the C function -end From 23a0f102bb1b25300fdade3ef145fafd3c6f3f01 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:45:38 -0400 Subject: [PATCH 10/19] add comments finish reqheader() function --- stl/webserver.m | 163 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 144 insertions(+), 19 deletions(-) diff --git a/stl/webserver.m b/stl/webserver.m index 5d528b9..8177303 100644 --- a/stl/webserver.m +++ b/stl/webserver.m @@ -1,20 +1,66 @@ classdef webserver < handle %#codegen +%webserver Lightweight webserver library +% +% This class contains methods that implement a lightweight webserver +% for MATLAB Coder. +% +% Methods:: +% webserver create a webserver instance +% debug enable debugging messages +% details display HTTP header +%- +% html send string to browser +% template send file with substitutions to browser +% file send file to browser +% data send data to browser +% error send error code to browser +%- +% url URL for current request +% isGET test for GET request +% isPOST test for POST request +% reqheader get element of HTTP header +% getarg get element of HTTP GET header +% postarg get element of HTTP POST header +% +% Copyright (C) 2018, by Peter I. Corke methods(Static) - function obj = webserver(port, callback) + function obj = webserver(port, callback, arg) + %webserver Create a webserver + % + % webserver(port, callback) creates a new webserver executing it a separate + % thread and listening on the specified port (int). The MATLAB entrypoint + % named callback is invoked on every GET and PUT request to the server. + % webserver Create a web server instance port = int32(port); coder.cinclude('httpd.h'); - coder.ceval('web_start', port, cstring(callback)); + coder.cinclude('stl.h'); + if nargin == 3 + coder.ceval('web_start', port, cstring(callback), coder.ref(arg)); + else + coder.ceval('web_start', port, cstring(callback), coder.opaque('void *', 'NULL')); + end + end function debug(d) + %webserver.debug Control debugging + % + % webserver.debug(D) controls the display of debug messages. If D is true messages + % are enabled. + % + % See also: stl.log. coder.cinclude('httpd.h'); coder.ceval('web_debug', d); end function u = url() + %webserver.url Get the URL for the request + % + % url = webserver.url() is a character array representing the URL associated with + % this request. coder.cinclude('httpd.h'); u = ''; @@ -34,23 +80,48 @@ function debug(d) end function details() + %webserver.details Show HTTP header details + % + % webserver.details() displays the HTTP header via the logging channel. + % + % See also: stl.log. + coder.ceval('web_show_request_header'); end function error(errno, msg) + %webserver.error Send error code to browser + % + % websever.error(code, msg) send an error code (eg. 404) and message to the + % requesting browser. coder.ceval('web_error', errno, cstring(s)); end function html(s) - % webserver.html Send an HTML string to browser + %webserver.html Send an HTML string to browser + % + % weserver.html(str) the string str is sent to the requesting browser. The string + % can be plain text or HTML. + % + % See also: webserver.template, webserver.error. coder.ceval('web_html', cstring(s)); end function template(filename, values) - % webserver.template Send template file with substitution to browser + %webserver.template Send template file with substitution to browser + % + % webserver.template(filename, values) sends the contents of the specified file + % to the requesting browser with substitutions. Elements of the struct values + % are substituted for special HTML tags. + % + % For example the value of values.a is substitued by: + % + % + % See also: webserver.html, webserver.error, CTemplate. coder.cinclude('httpd.h'); + if nargin == 2 if ~isa(values, 'struct') @@ -64,7 +135,12 @@ function template(filename, values) if size(v,1) > 1 fprintf('numeric value must be scalar or row vector'); else - coder.ceval('web_setvalue', cstring(name), cstring(num2str(v))); + if isinteger(v) + fmt = '%d'; + else + fmt = '%g'; + end + coder.ceval('web_setvalue', cstring(name), cstring(sprintf(fmt, v))); end end end @@ -72,30 +148,58 @@ function template(filename, values) end function file(filename, type) - % webserver.file Send file and content type to browser + %webserver.file Send file and content type to browser + % + % webserver.file(filename, type) send the specified file to the requesting browser, with + % the specified MIME type. + % + % See also: webserver.template, webserver.html, webserver.error. + coder.ceval('web_file', cstring(filename), cstring(type)); end function data(s, type) - % webserver.file Send data and content type to browser + %webserver.file Send data and content type to browser + % + % webserver.data(data, type) send the character array data to the requesting browser, with + % the specified MIME type. + % + % Notes:: + % - The data could be a binary string, eg. an image. + % + % See also: webserver.template, webserver.html, webserver.error. coder.ceval('web_data', s, length(s), cstring(type)); end function v = isPOST() - % webserver.ispost Test if POST request + %webserver.isPOST Test for POST request + % + % v = webserver.isPOST() is true if this request is an HTTP POST. + % + % See also: webserver.isGET. v = int32(0); v = coder.ceval('web_isPOST'); end function v = isGET() - % webserver.isget Test if GET request + % webserver.isGET Test for GET request + % + % v = webserver.isGET() is true if this request is an HTTP GET. + % + % See also: webserver.isPOST. v = int32(0); v = coder.ceval('web_isPOST'); - v = ~v; % codegen can't do this in the one line... + v = ~v; % codegen cant do this in the one line... end function s = reqheader(name) - % webserver.reqheader Return value of request header item + %webserver.reqheader Return value of request header item + % + % v = webserver.reqheader(key) is a character array representing the value of + % the specified key in the HTTP request header. + % + % Notes:: + % - Returns empty string if the key is not found. coder.cinclude('httpd.h'); coder.varsize('s'); s = ''; @@ -104,18 +208,30 @@ function data(s, type) buf = char(zeros(1,BUFSIZ)); % create a buffer to write into, all nulls % content - % coder.ceval('web_url', coder.wref(buf), BUFSIZ); % evaluate the C function - - for i=1:BUFSIZ-1 % find the end of the string, where the first unwritten null is - if buf(i) == 0 - s = buf(1:i-1); % found a null, return variable length array up to here - return; + found = int32(0); + found = coder.ceval('web_reqheader', coder.wref(buf), BUFSIZ); % evaluate the C function + + if found + for i=1:BUFSIZ-1 % find the end of the string, where the first unwritten null is + if buf(i) == 0 + s = buf(1:i-1); % found a null, return variable length array up to here + return; + end end end end function s = getarg(name) - % webserver.getarg Return value of GET argument + %webserver.getarg Return value of GET argument + % + % v = webserver.getarg(key) is a character array representing the value of + % the specified key in the HTTP GET request header. + % + % Notes:: + % - These parameters are on the end of the URL, eg. ?key1=val1&key2=val2 + % - Returns empty string if the key is not found. + % + % See also: webserver.isGET, webserver.url. coder.cinclude('httpd.h'); coder.varsize('s'); @@ -138,7 +254,16 @@ function data(s, type) end function s = postarg(name) - % webserver.postarg Return value of POST argument + %webserver.postarg Return value of POST argument + % + % v = webserver.postarg(key) is a character array representing the value of + % the specified key in the HTTP POST request header. + % + % Notes:: + % - POST data is typically sent from the browser using
and tags. + % - Returns empty string if the key is not found. + % + % See also: webserver.isPOST, webserver.url. coder.cinclude('httpd.h'); coder.varsize('s'); s = ''; From 79d1b5c67edf4f31572aab543bdb80174c843bde Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:46:57 -0400 Subject: [PATCH 11/19] Update to use STL static methods --- examples/threads/make.m | 4 +-- examples/threads/thread1.m | 12 ++++----- examples/threads/thread2.m | 4 +-- examples/threads/thread3.m | 4 +-- examples/threads/user.m | 55 +++++++++++++++++--------------------- 5 files changed, 36 insertions(+), 43 deletions(-) diff --git a/examples/threads/make.m b/examples/threads/make.m index 62242a1..11502e4 100644 --- a/examples/threads/make.m +++ b/examples/threads/make.m @@ -33,10 +33,10 @@ cfg.PostCodeGenCommand = 'postbuild(projectName, buildInfo)'; %{ cfg.InlineThreshold = 0; % tone down the aggressive inlining -codegen user.m thread1.m -args int32(0) thread2.m thread3.m -O disable:inline -config cfg +codegen user.m thread1.m thread2.m thread3.m -O disable:inline -config cfg %} -codegen user.m thread1.m -args z thread2.m thread3.m -config cfg +codegen user.m thread1.m thread2.m thread3.m -config cfg %MAKE = gmake %MAKE_FLAGS = -f $(MAKEFILE) % hw = coder.hardware('Raspberry Pi'); diff --git a/examples/threads/thread1.m b/examples/threads/thread1.m index 9cde05c..61ba1f2 100644 --- a/examples/threads/thread1.m +++ b/examples/threads/thread1.m @@ -1,13 +1,11 @@ -function thread1(arg) %#codegen +function thread1() %#codegen + + stl.log('hello from thread1'); - stllog('hello from thread1'); - stllog('struct.a=%f', arg.a); - stllog('struct.b=%f', arg.b); for i=1:10 - %stllog('hello from thread1, arg=%d, id #%d', arg, self()); - stllog('hello from thread1, id #%d', self()); - sleep(1) + stl.log('hello from thread1, id #%d', stl.self()); + stl.sleep(1) end end diff --git a/examples/threads/thread2.m b/examples/threads/thread2.m index de652fc..05b664c 100644 --- a/examples/threads/thread2.m +++ b/examples/threads/thread2.m @@ -1,6 +1,6 @@ function thread2() %#codegen for i=1:20 - stllog('hello from thread2, id #%d', self()); - sleep(2) + stl.log('hello from thread2, id #%d', stl.self()); + stl.sleep(2) end end diff --git a/examples/threads/thread3.m b/examples/threads/thread3.m index 6cdae3c..f9c068f 100644 --- a/examples/threads/thread3.m +++ b/examples/threads/thread3.m @@ -1,7 +1,7 @@ function thread3() %#codegen while true - semwait(0); - stllog('hello from thread 3'); + stl.semaphore_wait(0); + stl.log('hello from thread 3'); end end diff --git a/examples/threads/user.m b/examples/threads/user.m index 9a12fa5..2525ff3 100644 --- a/examples/threads/user.m +++ b/examples/threads/user.m @@ -4,54 +4,49 @@ fprintf(2, 'hello world\n'); % we have access to command line arguments - fprintf(2, 'got %d arguments\n', argc() ); - for i=0:argc()-1 - fprintf(2, ' arg %d: %s\n', i, argv(i)); + fprintf(2, 'got %d arguments\n', stl.argc() ); + for i=0:stl.argc()-1 + fprintf(2, ' arg %d: %s\n', i, stl.argv(i)); end % we can send timestamped messages to the log % - no need to put a new line on the end - stllog('hello world'); + stl.log('hello world'); % note that if we send a string argument we need to convert it to a % C string - stllog('%s', cstring('hello world')); + stl.log('%s', cstring('hello world')); % now we can launch a couple of threads, see thread1.m and thread2.m % launching returns a thread id, a small integer - z.a = 1 - z.b = 2 + t1 = stl.launch('thread1') + stl.log('thread id %d', t1) + t2 = stl.launch('thread2') + stl.log('thread id %d', t2) - coder.cstructname(z, 'arg_t') + stl.join(t1); % wait for thread 1 to finish + stl.sleep(5); + stl.cancel(t2); % kill thread 2 and wait for it + stl.join(t2) - t1 = launch('thread1', z) % pass a value to this thread - stllog('thread id %d', t1) - t2 = launch('thread2') - stllog('thread id %d', t2) - - join(t1); % wait for thread 1 to finish - sleep(5); - cancel(t2); % kill thread 2 and wait for it - join(t2) - - sleep(2) + stl.sleep(2) % create a semaphore - s1 = newsemaphore('sem1'); - stllog('sem id %d', s1); - sleep(1) + s1 = stl.semaphore('sem1'); + stl.log('sem id %d', s1); + stl.sleep(1) % launch a new thread, see thread3.m % it just waits for the semaphore, then prints a message - t3 = launch('thread3', 42); - stllog('thread id %d', t3); - - sleep(2); - sempost(0); % wake up thread 3 - sleep(1); - sempost(0); % wake up thread 3 - sleep(2); + t3 = stl.launch('thread3', 42); + stl.log('thread id %d', t3); + + stl.sleep(2); + stl.semaphore_post(0); % wake up thread 3 + stl.sleep(1); + stl.semaphore_post(0); % wake up thread 3 + stl.sleep(2); % done, exiting will tear down all the threads From 3b076ec897089242674911357e1f6ced1cdd419f Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:50:07 -0400 Subject: [PATCH 12/19] pass arg to webserver callback fix bug in calloc cal --- stl/httpd.c | 18 +++++++++++++----- stl/httpd.h | 6 +++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/stl/httpd.c b/stl/httpd.c index c65fc4e..bf64db7 100644 --- a/stl/httpd.c +++ b/stl/httpd.c @@ -1,3 +1,8 @@ +/* + * Simple webserver for MATLAB Coder + * Peter Corke August 2018 + */ + #include #include //#include @@ -47,6 +52,7 @@ static void postvar_add(char *key, char *value); static char *postvar_find(char *key); static void postvar_free(); void *malloc(); // stdlib.h clashes with microhttpd.h +void *calloc(size_t count, size_t size); void free(void *); int @@ -58,7 +64,7 @@ post_data_iterator(void *cls, enum MHD_ValueKind kind, // Called on every POST variable uploaded // make null terminated heap copy of the value - char *value = (char *)calloc(size+1); + char *value = (char *)calloc(size+1, 1); strncpy(value, data, size); // add to the list of POST variables @@ -295,17 +301,19 @@ void web_setvalue(char *name, char *value) } void -web_start(int32_t port, char *callback) +web_start(int32_t port, char *callback, void *arg) { if (daemon) stl_error("web server already launched"); request_matlab_callback = stl_get_functionptr(callback); if (request_matlab_callback == NULL) - stl_error("thread named [%s] not found", callback); + stl_error("MATLAB entrypoint named [%s] not found", callback); - daemon = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD, port, NULL, NULL, - &page_request, NULL, MHD_OPTION_END); + daemon = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD, port, + NULL, NULL, + &page_request, arg, + MHD_OPTION_END); // this starts a POSIX thread but its handle is very well buried // its name will be MHD-single but this is not gettable under MacOS diff --git a/stl/httpd.h b/stl/httpd.h index 8e2f912..315c46d 100644 --- a/stl/httpd.h +++ b/stl/httpd.h @@ -1,8 +1,12 @@ +/* + * Simple webserver for MATLAB Coder + * Peter Corke August 2018 + */ #ifndef __httpd_h_ #define __httpd_h_ // C functions in httpd.c which are wrapped by webserver.m -void web_start(int32_t port, char *callback); +void web_start(int32_t port, char *callback, void *arg); void web_debug(int32_t debug); void web_url(char *buf, int len); From d8f8eb7e11e562f59f6cea72e4fd19bed8d72b53 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:55:26 -0400 Subject: [PATCH 13/19] add hasstackdata option to launch, other support for stackdata add require function to thwart the optimizer remove wait flag from mutex and semaphore, and have 2 separate functions: blocking and non blocking tidy up all log and error messages remove printf attribute from log, the MATLAB generated code makes it angry add stack traceback in error handler for __APPLE__ --- stl/stl.c | 224 +++++++++++++++++++++++++++++++++++------------------- stl/stl.h | 22 ++++-- 2 files changed, 162 insertions(+), 84 deletions(-) diff --git a/stl/stl.c b/stl/stl.c index 8ae2214..d75f7a2 100644 --- a/stl/stl.c +++ b/stl/stl.c @@ -14,17 +14,21 @@ #include #ifdef __linux__ -#define __USE_GNU + #define __USE_GNU #endif #include #include #ifdef __linux__ -#include -#include + #include + #include #endif #include -#include "user_types.h" +#ifdef __APPLE__ + #include +#endif + +#include "user_types.h" #include "stl.h" // parameters @@ -53,8 +57,9 @@ typedef struct _thread { pthread_t pthread; // the POSIX thread handle char *name; int busy; - void * (*f)(void *); // pointer to thread function entry point + void *f; // pointer to thread function entry point void *arg; + int hasstackdata; } thread; typedef struct _semaphore { @@ -136,6 +141,11 @@ stl_argv(int32_t a, char *arg, int32_t len) strncpy(arg, stl_cmdline_argv[a], len); } +void +stl_require(void *v) +{ +} + void stl_sleep(double t) { @@ -151,7 +161,7 @@ stl_sleep(double t) int32_t -stl_thread_create(char *func, void *arg, char *name) +stl_thread_create(char *func, void *arg, int hasstackdata) { pthread_attr_t attr; void * (*f)(void *); @@ -162,7 +172,7 @@ stl_thread_create(char *func, void *arg, char *name) // map function name to a pointer f = (void *(*)(void *)) stl_get_functionptr(func); if (f == NULL) - stl_error("thread function named [%s] not found", func); + stl_error("thread_create: MATLAB entrypoint named [%s] not found", func); // find an empty slot LIST_LOCK @@ -176,14 +186,12 @@ stl_thread_create(char *func, void *arg, char *name) } LIST_UNLOCK if (tp == NULL) - stl_error("too many threads, increase NTHREADS (currently %d)", NTHREADS); + stl_error("thread_create: too many threads, increase NTHREADS (currently %d)", NTHREADS); - if (name) - tp->name = stl_stralloc(name); - else - tp->name = stl_stralloc(func); + tp->name = stl_stralloc(func); tp->f = f; - tp->arg = (void *)arg; + tp->arg = arg; + tp->hasstackdata = hasstackdata; // set attributes pthread_attr_init(&attr); @@ -191,7 +199,7 @@ stl_thread_create(char *func, void *arg, char *name) // check result status = pthread_create(&(tp->pthread), &attr, (void *(*)(void *))stl_thread_wrapper, tp); if (status) - stl_error("create: failed %s", strerror(status)); + stl_error("thread_create: create <%s> failed %s", tp->name, strerror(status)); return slot; } @@ -213,7 +221,7 @@ stl_thread_add(char *name) } LIST_UNLOCK if (tp == NULL) - stl_error("too many threads, increase NTHREADS (currently %d)", NTHREADS); + stl_error("thread_add: too many threads, increase NTHREADS (currently %d)", NTHREADS); tp->name = stl_stralloc(name); tp->pthread = pthread_self(); @@ -226,22 +234,44 @@ stl_thread_add(char *name) static void stl_thread_wrapper( thread *tp) { - STL_DEBUG("starting posix thread <%s> (0x%X)", tp->name, (uint32_t)tp->f); + char *info; + if (tp->hasstackdata) + info = "[has stack data]"; + else + info = ""; + STL_DEBUG("starting posix thread <%s> (0x%X) %s", tp->name, (uint32_t)tp->f, info); - // tell kernel the thread's name + // inform kernel about the thread's name // under linux can see this with ps -o cat /proc/$PID/task/$TID/comm - // settable for MacOS but seemingly not visible -#ifdef __linux__ || __unix__ + // settable for MacOS but seemingly not visible, but it does show up in core dumps +#if defined(__linux__) || defined(__unix__) pthread_setname_np(tp->pthread, tp->name); #endif #ifdef __APPLE__ pthread_setname_np(tp->name); #endif + +#ifdef typedef_userStackData + extern userStackData SD; + // invoke the user's compiled MATLAB code - tp->f(tp->arg); + // if the function has stack data, need to pass that as first argument + if (tp->hasstackdata) { + void (*f)(void *, void *) = (void (*)(void *, void*)) tp->f; // pointer to thread function entry point + + f(&SD, tp->arg); + } + else { + void (*f)(void *) = (void (*)(void *))tp->f; // pointer to thread function entry point + f(tp->arg); + } +#else + void (*f)(void *) = (void (*)(void *))tp->f; // pointer to thread function entry point + f(tp->arg); +#endif - STL_DEBUG("posix thread <%s> has returned", tp->name); + STL_DEBUG("MATLAB function <%s> has returned, thread exiting", tp->name); tp->busy = 0; // free the slot in thread table } @@ -263,10 +293,10 @@ stl_thread_cancel(int32_t slot) STL_DEBUG("cancelling thread #%d <%s>", slot, threadlist[slot].name); if (threadlist[slot].busy == 0) - stl_error("cancel: thread %d not busy", slot+1); + stl_error("thread_cancel: thread %d not allocated", slot+1); status = pthread_cancel(threadlist[slot].pthread); if (status) - stl_error("cancel: failed %s", strerror(status)); + stl_error("thread_cancel: <%s> failed %s", threadlist[slot].name, strerror(status)); } @@ -279,11 +309,11 @@ stl_thread_join(int32_t slot) STL_DEBUG("waiting for thread #%d <%s>", slot, threadlist[slot].name); if (threadlist[slot].busy == 0) - stl_error("join: thread %d not busy", slot+1); + stl_error("thread_join: thread %d not allocated", slot+1); status = pthread_join(threadlist[slot].pthread, (void **)&exitval); if (status) - stl_error("join: failed %s", strerror(status)); + stl_error("thread_join: <%s> failed %s", threadlist[slot].name, strerror(status)); STL_DEBUG("thread complete #%d <%s>", slot, threadlist[slot].name); return (int32_t) exitval; @@ -322,11 +352,11 @@ stl_sem_create(char *name) } LIST_UNLOCK if (sp == NULL) - stl_error("too many semaphores, increase NSEMAPHORES (currently %d)", NSEMAPHORES); + stl_error("sem_create: too many semaphores, increase NSEMAPHORES (currently %d)", NSEMAPHORES); sem = sem_open(name, O_CREAT, 0700, 0); if (sem == SEM_FAILED) - stl_error("sem: failed %s", strerror(errno)); + stl_error("sem_create: <%s> failed %s", name, strerror(errno)); sp->sem = sem; sp->name = stl_stralloc(name); @@ -343,47 +373,57 @@ stl_sem_post(int32_t slot) STL_DEBUG("posting semaphore #%d <%s>", slot, semlist[slot].name); if (semlist[slot].busy == 0) - stl_error("join: sem %d not allocatedq", slot); + stl_error("sem_post: sem %d not allocated", slot); status = sem_post(semlist[slot].sem); if (status) - stl_error("join: failed %s", strerror(errno)); + stl_error("sem_post: <%s> failed %s", semlist[slot].name, strerror(errno)); } int -stl_sem_wait(int32_t slot, int32_t nowait) +stl_sem_wait(int32_t slot) { int status; if (semlist[slot].busy == 0) - stl_error("sem wait: sem %d not allocated", slot); - - if (nowait) { - // non-blocking wait - status = sem_trywait(semlist[slot].sem); + stl_error("sem_wait: sem %d not allocated", slot); - if (status == EAGAIN) { - STL_DEBUG("polling semaphore - BLOCKED #%d <%s>", slot, semlist[slot].name); - return 0; // still locked, return false - } else if (status == 0) { - STL_DEBUG("polling semaphore - FREE #%d <%s>", slot, semlist[slot].name); - return 1; // not locked, return true - } - } - else { - // blocking wait on semaphore - STL_DEBUG("waiting for semaphore #%d <%s>", slot, semlist[slot].name); - status = sem_wait(semlist[slot].sem); - } + // blocking wait on semaphore + STL_DEBUG("waiting for semaphore #%d <%s>", slot, semlist[slot].name); + status = sem_wait(semlist[slot].sem); if (status) - stl_error("sem: wait/trywait failed %s", strerror(errno)); + stl_error("sem_wait: <%s> failed %s", semlist[slot].name, strerror(errno)); STL_DEBUG("semaphore wait complete #%d", slot); return 1; // semaphore is ours, return true } +int +stl_sem_wait_noblock(int32_t slot) +{ + int status; + + if (semlist[slot].busy == 0) + stl_error("sem_wait_noblock: sem %d not allocated", slot); + + // non-blocking wait + status = sem_trywait(semlist[slot].sem); + + switch (status) { + case 0: + STL_DEBUG("polling semaphore - FREE #%d <%s>", slot, semlist[slot].name); + return 1; // not locked, it's ours, return true + case EAGAIN: + STL_DEBUG("polling semaphore - BLOCKED #%d <%s>", slot, semlist[slot].name); + return 0; // still locked, return false + default: + stl_error("sem_wait_noblock: <%s> failed %s", semlist[slot].name, strerror(errno)); + } + return 0; // return false +} + int32_t stl_mutex_create(char *name) { @@ -404,14 +444,16 @@ stl_mutex_create(char *name) } LIST_UNLOCK if (mp == NULL) - stl_error("too many mutexes, increase NMUTEXS (currently %d)", NMUTEXS); + stl_error("mutex_create: too many mutexes, increase NMUTEXS (currently %d)", NMUTEXS); + + mp->name = name; pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); status = pthread_mutex_init(&mp->pmutex, &attr); if (status) - stl_error("mutex create: failed %s", strerror(status)); + stl_error("mutex_create: <%s> failed %s", mutexlist[slot].name, strerror(status)); STL_DEBUG("create mutex #%d <%s>", slot, name); @@ -419,52 +461,64 @@ stl_mutex_create(char *name) } int32_t -stl_mutex_lock(int32_t slot, int32_t nowait) +stl_mutex_lock(int32_t slot) { int status; if (mutexlist[slot].busy == 0) - stl_error("lock: mutex %d not allocatedq", slot); + stl_error("mutex_lock: mutex %d not allocatedq", slot); - if (nowait) { - // non-blocking wait - status = pthread_mutex_trylock(&mutexlist[slot].pmutex); - if (status == EBUSY) { - STL_DEBUG("test mutex - LOCKED #%d <%s>", slot, semlist[slot].name); - return 0; // still locked, return false - } else if (status == 0) { - STL_DEBUG("test mutex - UNLOCKED #%d <%s>", slot, semlist[slot].name); - return 1; // unlocked, return true - } - } - else { - // blocking wait on mutex - STL_DEBUG("attempting lock on mutex #%d <%s>", slot, mutexlist[slot].name); - status = pthread_mutex_lock(&mutexlist[slot].pmutex); - } + // blocking wait on mutex + STL_DEBUG("attempting lock on mutex #%d <%s>", slot, mutexlist[slot].name); + status = pthread_mutex_lock(&mutexlist[slot].pmutex); if (status) - stl_error("mutex lock/trylock failed %s", strerror(status)); + stl_error("mutex_lock: <%s> failed %s", mutexlist[slot].name, strerror(status)); - STL_DEBUG("mutex UNLOCKED #%d", slot); + STL_DEBUG("mutex lock obtained #%d", slot); return 1; // unlocked, return true } +int32_t +stl_mutex_lock_noblock(int32_t slot) +{ + int status; + + if (mutexlist[slot].busy == 0) + stl_error("mutex_lock_noblock: mutex %d not allocatedq", slot); + + // non-blocking wait + status = pthread_mutex_trylock(&mutexlist[slot].pmutex); + + switch (status) { + case 0: + STL_DEBUG("test mutex - UNLOCKED #%d <%s>", slot, semlist[slot].name); + return 1; // unlocked, it's ours, return true + case EBUSY: + STL_DEBUG("test mutex - LOCKED #%d <%s>", slot, semlist[slot].name); + return 0; // still locked, return false + default: + stl_error("mutex_lock_noblock: <%s> failed %s", mutexlist[slot].name, strerror(status)); + } + + return 0; // return false +} + void -stl_mutex_unlock(int32_t slot, int32_t nowait) +stl_mutex_unlock(int32_t slot) { int status; - STL_DEBUG("lock mutex #%d <%s>", slot, mutexlist[slot].name); + STL_DEBUG("unlock mutex #%d <%s>", slot, mutexlist[slot].name); if (mutexlist[slot].busy == 0) - stl_error("unlock: mutex %d not allocatedq", slot); + stl_error("mutex_unlock: mutex %d not allocated", slot); status = pthread_mutex_unlock(&mutexlist[slot].pmutex); if (status) - stl_error("mutex lock: failed %s", strerror(status)); + stl_error("mutex_unlock: <%s> failed %s", mutexlist[slot].name, strerror(status)); } #ifdef __linux__ @@ -490,7 +544,7 @@ stl_timer_create(char *name, double interval, int32_t semid) } LIST_UNLOCK if (tp == NULL) - stl_error("too many timers, increase NTIMERS (currently %d)", NTIMERS); + stl_error("timer_create: too many timers, increase NTIMERS (currently %d)", NTIMERS); struct sigevent sevp; sevp.sigev_notify = SIGEV_THREAD; @@ -502,7 +556,7 @@ stl_timer_create(char *name, double interval, int32_t semid) status = timer_create(CLOCK_REALTIME, &sevp, &t); if (status) - stl_error("timer create: failed %s", strerror(errno)); + stl_error("timer create: <%s> failed %s", name, strerror(errno)); tp->timer = t; tp->name = stl_stralloc(name); @@ -517,7 +571,7 @@ stl_timer_create(char *name, double interval, int32_t semid) its.it_value = ts; // initial value status = timer_settime(t, 0, &its, NULL); if (status) - stl_error("timer settime failed %s", strerror(errno)); + stl_error("timer_create: <%s>, settime failed %s", name, strerror(errno)); STL_DEBUG("create timer #%d <%s>", slot, name); @@ -544,6 +598,17 @@ void stl_error(const char *fmt, ...) fprintf(stderr, "\n"); va_end(ap); + +#ifdef __APPLE__ + void* callstack[128]; + int i, frames = backtrace(callstack, 128); + char** strs = backtrace_symbols(callstack, frames); + for (i = 0; i < frames; ++i) { + printf("%s\n", strs[i]); + } + free(strs); +#endif + exit(1); } @@ -586,7 +651,8 @@ void * stl_get_functionptr(char *name) { #ifdef __linux__ - // this is ugly, but I can't figure how to make dlopen/dlsym work here + // this is ugly, but I can't figure how to make dlopen/dlsym work under Linux + // dlsym() is supported but always returns NULL. FILE *fp; char cmd[4096]; void *f; diff --git a/stl/stl.h b/stl/stl.h index 366b71a..4fa6b9f 100644 --- a/stl/stl.h +++ b/stl/stl.h @@ -1,18 +1,25 @@ +/* + * Simple thread library (STL) for MATLAB Coder + * Peter Corke August 2018 + */ +#ifndef __stl_h__ +#define __stl_h__ // function signatures void stl_initialize(int argc, char **argv); -void stl_log(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +void stl_log(const char *fmt, ...); //__attribute__ ((format (printf, 1, 2))); void stl_error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); void stl_debug(int32_t debug); void *stl_get_functionptr(char *name); char *stl_stralloc(char *s); +void stl_require(void *v); // sleep void stl_sleep(double t); // threads -int32_t stl_thread_create(char *func, void * arg, char *name); +int32_t stl_thread_create(char *func, void * arg, int32_t hasstackdata); int32_t stl_thread_join(int32_t slot); void stl_thread_cancel(int32_t slot); int32_t stl_thread_self(); @@ -26,9 +33,14 @@ void stl_argv(int a, char *arg, int32_t len); // semaphores int32_t stl_sem_create(char *name); void stl_sem_post(int32_t slot); -int stl_sem_wait(int32_t slot, int32_t nowait); +int stl_sem_wait(int32_t slot); +int stl_sem_wait_noblock(int32_t slot); + // mutexes int32_t stl_mutex_create(char *name); -int32_t stl_mutex_lock(int32_t slot, int32_t nowait); -void stl_mutex_unlock(int32_t slot, int32_t nowait); +int32_t stl_mutex_lock(int32_t slot); +int32_t stl_mutex_lock_noblock(int32_t slot); +void stl_mutex_unlock(int32_t slot); + +#endif \ No newline at end of file From 6ef2d99af2c26cb3d1f8375f64e69b0577f10608 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:55:39 -0400 Subject: [PATCH 14/19] add semicolon to end of line --- stl/postbuild.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stl/postbuild.m b/stl/postbuild.m index 4c578a9..aa08361 100644 --- a/stl/postbuild.m +++ b/stl/postbuild.m @@ -5,6 +5,6 @@ function postbuild(projectName, buildInfo) 'fileName', [projectName '.zip'], ... 'packType', 'hierarchical', ... 'nestedZipFiles', false ... - } + }; packNGo(buildInfo, options); end From 25916c053a3ae9cb31a2fadebfdd07881b800b5f Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:56:27 -0400 Subject: [PATCH 15/19] polish this example --- examples/timer/thread1.m | 5 +++-- examples/timer/user.m | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/timer/thread1.m b/examples/timer/thread1.m index 28a44ab..1e15cfd 100644 --- a/examples/timer/thread1.m +++ b/examples/timer/thread1.m @@ -2,9 +2,10 @@ function thread1() %#codegen stllog('hello from thread1'); - for i=1:20 + for i=1:100 stl.semwait(0) - stl.log('wakeup'); + ii = int32(i) + stl.log('wakeup %d', ii); end end diff --git a/examples/timer/user.m b/examples/timer/user.m index b81ce5b..cd98c08 100644 --- a/examples/timer/user.m +++ b/examples/timer/user.m @@ -13,9 +13,9 @@ stllog('thread id %d', t1) timer = stl.timer('timer1', 2.0, s1); + join(t1); % wait for thread 1 to finish - % done, exiting will tear down all the threads end From 58ee35ce847220f5a3f3f3a2468dea61a6e886bf Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 20:56:38 -0400 Subject: [PATCH 16/19] fixes for stack data --- stl/main.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/stl/main.c b/stl/main.c index dce2321..b76e8cd 100644 --- a/stl/main.c +++ b/stl/main.c @@ -12,15 +12,34 @@ #include "user_types.h" #include "stl.h" +#ifdef typedef_userStackData +userStackData SD; +#endif +#ifdef typedef_userPersistentData +userPersistentData pd; +#endif + int main(int argc, char **argv) { // initialize the thread library stl_initialize(argc, argv); - // call the user's function + // initialize stack data required for some MATLAB functions +#ifdef typedef_userStackData + #ifdef typedef_userPersistentData + SD.pd = &pd; + #endif + user_initialize(&SD); +#else user_initialize(); - user(); +#endif + + // call the user's function + user(); + // user(&SD); use this if user has a stack pointer argument + + user_terminate(); return 0; From 0cc916c06817857a3724d514e98499d5aeeba9d7 Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 21:08:34 -0400 Subject: [PATCH 17/19] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a78d700..004f628 100644 --- a/README.md +++ b/README.md @@ -224,7 +224,7 @@ end ``` The switch statement is used to select the code according to the URL given, and other methods provide access to parameters of the HTTP request.
-![page1](doc/page1.png) +![page1](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page1.png) ```shell 2018-09-16 15:54:28.635937 [user] user program starts 2018-09-16 15:54:28.636843 [user] web server starting on port 8080 @@ -238,7 +238,7 @@ Note the arguements `?a=7&b=12` on the end of the URL. These are GET arguments o Note also, that log messages from the web server function are listed as coming from the `WEB` thread, which is created by `webserver()`.
-![page2](doc/page2.png) +![page2](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page2.png) ```shell 2018-09-16 15:39:12.816790 [WEB] web: GET request using HTTP/1.1 for URL /page2 @@ -260,7 +260,7 @@ The template file is sent to the browser with substitutions. The `page2.html` ``` and the values of the fields of the struct `vals` are substituted for the corresonding named `TMPL_VAR` tags.
-![duck](doc/duck.png) +![duck](https://github.com/petercorke/simple-threads-coder/blob/master/doc/duck.png) ```shell 2018-09-16 15:36:08.881139 [WEB] web: GET request using HTTP/1.1 for URL /duck @@ -269,7 +269,7 @@ and the values of the fields of the struct `vals` are substituted for the corres ``` The local file `duck.png` is sent to the browser as an `image/jpeg` filetype.
-![post](doc/post.png) +![post](https://github.com/petercorke/simple-threads-coder/blob/master/doc/post.png) ```shell 2018-09-16 16:32:00.035029 [user] web: GET request using HTTP/1.1 for URL /input From 7c34ef6612af1060f7a4c381502fae773140ccfa Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 21:13:23 -0400 Subject: [PATCH 18/19] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 004f628..f33915a 100644 --- a/README.md +++ b/README.md @@ -224,7 +224,9 @@ end ``` The switch statement is used to select the code according to the URL given, and other methods provide access to parameters of the HTTP request.
+ ![page1](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page1.png) + ```shell 2018-09-16 15:54:28.635937 [user] user program starts 2018-09-16 15:54:28.636843 [user] web server starting on port 8080 @@ -238,6 +240,7 @@ Note the arguements `?a=7&b=12` on the end of the URL. These are GET arguments o Note also, that log messages from the web server function are listed as coming from the `WEB` thread, which is created by `webserver()`.
+ ![page2](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page2.png) ```shell @@ -260,6 +263,7 @@ The template file is sent to the browser with substitutions. The `page2.html` ``` and the values of the fields of the struct `vals` are substituted for the corresonding named `TMPL_VAR` tags.
+ ![duck](https://github.com/petercorke/simple-threads-coder/blob/master/doc/duck.png) ```shell @@ -269,6 +273,7 @@ and the values of the fields of the struct `vals` are substituted for the corres ``` The local file `duck.png` is sent to the browser as an `image/jpeg` filetype.
+ ![post](https://github.com/petercorke/simple-threads-coder/blob/master/doc/post.png) ```shell From f09b26f3efcf072d7a6d9918aec80bf335d47d4a Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Sun, 16 Sep 2018 21:15:27 -0400 Subject: [PATCH 19/19] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f33915a..cc6bb71 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ The earlier lines in `make.m` simply configure the build process which is captur Ensure that the folder `stl` is in your MATLAB path. The result is an executable `user` in the current directory which we can run -```shellsession +``` % ./user bob alice hello world got 3 arguments @@ -227,7 +227,7 @@ The switch statement is used to select the code according to the URL given, and ![page1](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page1.png) -```shell +``` 2018-09-16 15:54:28.635937 [user] user program starts 2018-09-16 15:54:28.636843 [user] web server starting on port 8080 2018-09-16 15:54:33.170370 [user] web: GET request using HTTP/1.1 for URL /page1 @@ -243,7 +243,7 @@ Note also, that log messages from the web server function are listed as coming f ![page2](https://github.com/petercorke/simple-threads-coder/blob/master/doc/page2.png) -```shell +``` 2018-09-16 15:39:12.816790 [WEB] web: GET request using HTTP/1.1 for URL /page2 2018-09-16 15:39:12.816822 [WEB] in /page2 2018-09-16 15:39:12.816827 [WEB] web_setvalue: a 1 @@ -266,7 +266,7 @@ and the values of the fields of the struct `vals` are substituted for the corres ![duck](https://github.com/petercorke/simple-threads-coder/blob/master/doc/duck.png) -```shell +``` 2018-09-16 15:36:08.881139 [WEB] web: GET request using HTTP/1.1 for URL /duck 2018-09-16 15:36:08.881159 [WEB] web_file: duck.jpg, type image/jpeg 2018-09-16 15:36:08.881208 [WEB] file is 83234 bytes @@ -276,7 +276,7 @@ The local file `duck.png` is sent to the browser as an `image/jpeg` filetype. ![post](https://github.com/petercorke/simple-threads-coder/blob/master/doc/post.png) -```shell +``` 2018-09-16 16:32:00.035029 [user] web: GET request using HTTP/1.1 for URL /input 2018-09-16 16:32:00.035101 [WEB] input called 2018-09-16 16:32:00.035109 [WEB] GET request