From 6e874ddf043fc66cb16ff63c93acf34dfcd394d8 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev <32916582+dennisafa@users.noreply.github.com> Date: Sat, 20 Apr 2019 17:57:37 -0400 Subject: [PATCH 01/14] Small fix in load_balancer --- examples/load_balancer/load_balancer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/load_balancer/load_balancer.c b/examples/load_balancer/load_balancer.c index 0d609c3bd..4b8055205 100644 --- a/examples/load_balancer/load_balancer.c +++ b/examples/load_balancer/load_balancer.c @@ -545,7 +545,7 @@ packet_handler(struct rte_mbuf *pkt, struct onvm_pkt_meta *meta, __attribute__(( ehdr->d_addr.addr_bytes[i] = lb->server[flow_info->dest].d_addr_bytes[i]; } - ip->dst_addr = lb->server[flow_info->dest].d_ip; + ip->dst_addr = rte_cpu_to_be_32(lb->server[flow_info->dest].d_ip); meta->destination = lb->server_port; } From 17b3e6ad4bf18b160237888f77e3f36ecc1f6cfe Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Mon, 16 Dec 2019 23:51:58 -0500 Subject: [PATCH 02/14] Added the nf_setup call before run --- examples/load_generator/load_generator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/load_generator/load_generator.c b/examples/load_generator/load_generator.c index 53812df63..13a72b3c4 100644 --- a/examples/load_generator/load_generator.c +++ b/examples/load_generator/load_generator.c @@ -365,7 +365,8 @@ main(int argc, char *argv[]) { onvm_nflib_stop(nf_local_ctx); rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } - + + nf_setup(nf_local_ctx); onvm_nflib_run(nf_local_ctx); free(ehdr); From b9a245f22972369a73585102790274a4ce7fc6f0 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Thu, 2 Jan 2020 19:58:46 +0000 Subject: [PATCH 03/14] Merging --- examples/load_generator/load_generator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/load_generator/load_generator.c b/examples/load_generator/load_generator.c index 13a72b3c4..c59d6f507 100644 --- a/examples/load_generator/load_generator.c +++ b/examples/load_generator/load_generator.c @@ -365,8 +365,8 @@ main(int argc, char *argv[]) { onvm_nflib_stop(nf_local_ctx); rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } - - nf_setup(nf_local_ctx); + + nf_setup(nf_local_ctx); onvm_nflib_run(nf_local_ctx); free(ehdr); From 0f8b9df701b70a8271ee8e81846540a84c40dd57 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Sat, 6 Jun 2020 04:33:41 +0000 Subject: [PATCH 04/14] setting up ring request/hash structures --- .vscode/c_cpp_properties.json | 16 ++++++++++++++++ .vscode/settings.json | 3 +++ onvm/onvm_mgr/onvm_init.c | 27 +++++++++++++++++++++++++++ onvm/onvm_mgr/onvm_nf.c | 27 +++++++++++++++++++++++++++ onvm/onvm_nflib/onvm_common.h | 8 ++++++++ onvm/onvm_nflib/onvm_msg_common.h | 1 + onvm/onvm_nflib/onvm_nflib.c | 26 ++++++++++++++++++++++++++ onvm/onvm_nflib/onvm_nflib.h | 8 ++++++++ 8 files changed, 116 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 000000000..4016d8822 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "gnu11", + "cppStandard": "gnu++14", + "intelliSenseMode": "clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..3b6641073 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/onvm/onvm_mgr/onvm_init.c b/onvm/onvm_mgr/onvm_init.c index 28535f051..7a25fa61a 100644 --- a/onvm/onvm_mgr/onvm_init.c +++ b/onvm/onvm_mgr/onvm_init.c @@ -86,6 +86,9 @@ init_port(uint8_t port_num); static void init_shared_sem(void); +static void +init_nf_pool(void); + static int init_info_queue(void); @@ -263,6 +266,7 @@ init(int argc, char *argv[]) { onvm_sc_print(default_chain); onvm_flow_dir_init(); + init_nf_pool(); return 0; } @@ -402,6 +406,29 @@ init_port(uint8_t port_num) { return 0; } +static void +init_nf_pool(void) { + struct rte_hash_parameters *nf_pool_hash_parameters; + char *name = rte_malloc(NULL, 64, 0); + + if (name == NULL) { + RTE_LOG(INFO, APP, "Could not allocate name for nf pool hash structure\n"); + } + + nf_pool_hash_parameters = (struct rte_hash_parameters *) rte_malloc(NULL, sizeof(struct rte_hash_parameters), 0); + if (nf_pool_hash_parameters == NULL) { + RTE_LOG(INFO, APP, "Could not create nf pool hash structure\n"); + } + + nf_pool_hash_parameters->entries = 128; + nf_pool_hash_parameters->key_len = sizeof(struct rte_ring); + nf_pool_hash_parameters->hash_func = NULL; + nf_pool_hash_parameters->hash_func_init_val = 0; + nf_pool_hash_parameters->name = name; + nf_pool_hash_parameters->socket_id = rte_socket_id(); + snprintf(name, 64, "onvm_nf_pool"); +} + /** * Initialize shared core structs (mutex/semaphore) */ diff --git a/onvm/onvm_mgr/onvm_nf.c b/onvm/onvm_mgr/onvm_nf.c index 674424ed0..33716cd76 100644 --- a/onvm/onvm_mgr/onvm_nf.c +++ b/onvm/onvm_mgr/onvm_nf.c @@ -87,6 +87,9 @@ onvm_nf_ready(struct onvm_nf *nf); inline static int onvm_nf_stop(struct onvm_nf *nf); +inline static int +onvm_nf_get_next_instance_id(void); + /* * Function to move a NF to another core. * @@ -108,6 +111,9 @@ onvm_nf_relocate_nf(uint16_t nf, uint16_t new_core); static void onvm_nf_init_lpm_region(struct lpm_request *req_lpm); +static void +onvm_nf_init_single_ring(struct ring_request *ring_req); + /* * Function that initializes a hashtable for a flow_table struct * @@ -173,6 +179,7 @@ onvm_nf_check_status(void) { struct onvm_nf_init_cfg *nf_init_cfg; struct lpm_request *req_lpm; struct ft_request *ft; + struct ring_request *ring_req; uint16_t stop_nf_id; int num_msgs = rte_ring_count(incoming_msg_queue); @@ -195,6 +202,10 @@ onvm_nf_check_status(void) { ft = (struct ft_request *) msg->msg_data; onvm_nf_init_ft(ft); break; + case MSF_REQUEST_RING: + ring_req = (struct ring_request *) msg->msg_data; + onvm_nf_init_single_ring(); + break; case MSG_NF_STARTING: nf_init_cfg = (struct onvm_nf_init_cfg *)msg->msg_data; if (onvm_nf_start(nf_init_cfg) == 0) { @@ -454,6 +465,17 @@ onvm_nf_init_ft(struct ft_request *ft) { } } +static void +onvm_nf_init_single_ring(struct ring_request *ring_req) { + struct rte_ring *ring; + ring = rte_ring_create(ring_req->name, ring_req->count, rte_socket_id(), RING_F_SC_DEQ); + if (ring) { + ring_req->status = 0; + } else { + ring_req->status = -1; + } +} + inline int onvm_nf_relocate_nf(uint16_t dest, uint16_t new_core) { uint16_t *msg_data; @@ -506,3 +528,8 @@ onvm_nf_init_rings(struct onvm_nf *nf) { if (nf->msg_q == NULL) rte_exit(EXIT_FAILURE, "Cannot create msg queue for NF %u\n", instance_id); } + +inline static int +onvm_nf_get_next_instance_id(void) { + return next_instance_id; +} diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index bb623d5b1..93eab1535 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -372,6 +372,13 @@ struct ft_request { int status; }; +struct ring_request { + char name[64]; + unsigned count; + unsigned flags; + int status; +}; + /* define common names for structures shared between server and NF */ #define MP_NF_RXQ_NAME "MProc_Client_%u_RX" #define MP_NF_TXQ_NAME "MProc_Client_%u_TX" @@ -411,6 +418,7 @@ struct ft_request { #define NF_CORE_BUSY 12 // The manually selected core is busy #define NF_WAITING_FOR_LPM 13 // NF is waiting for a LPM request to be fulfilled #define NF_WAITING_FOR_FT 14 // NF is waiting for a flow-table request to be fulfilled +#define NF_WAITING_FOR_RING 15 // NF is waiting for a ring request to be fulfilled #define NF_NO_ID -1 diff --git a/onvm/onvm_nflib/onvm_msg_common.h b/onvm/onvm_nflib/onvm_msg_common.h index a285401a9..49ef14e9c 100644 --- a/onvm/onvm_nflib/onvm_msg_common.h +++ b/onvm/onvm_nflib/onvm_msg_common.h @@ -55,6 +55,7 @@ #define MSG_REQUEST_LPM_REGION 7 #define MSG_CHANGE_CORE 8 #define MSG_REQUEST_FT 9 +#define MSG_REQUEST_RING 10 struct onvm_nf_msg { uint8_t msg_type; /* Constant saying what type of message is */ diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index 7d282bd97..b9230a21f 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -287,6 +287,32 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { return lpm_req->status; } +int +onvm_nflib_request_ring(struct ring_request *ring_req) { + struct onvm_nf_msg *request_message; + int ret; + + ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); + if (ret != 0) return ret; + + request_message->msg_type = MSG_REQUEST_RING; + request_message->msg_data = ring_req; + + ret = rte_ring_enqueue(mgr_msg_queue, request_message); + if (ret < 0) { + rte_mempool_put(nf_msg_pool, request_message); + return ret; + } + + ring_req->status = NF_WAITING_FOR_RING; + for (; ring_req->status == (uint16_t) NF_WAITING_FOR_RING;) { + sleep(1); + } + + rte_mempool_put(nf_msg_pool, request_message); + return ring_req->status; +} + int onvm_nflib_request_ft(struct rte_hash_parameters *ipv4_hash_params) { struct onvm_nf_msg *request_message; diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index 858f95e45..4693d2007 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -270,6 +270,14 @@ onvm_nflib_scale(struct onvm_nf_scale_info *scale_info); int onvm_nflib_request_lpm(struct lpm_request *req); +/** + * Request ring data structure. Return success or failure of this initiatlization + * @param ring_request + * @return response status + */ +int +onvm_nflib_request_ring(struct ring_request *ring_req); + /* * Initializes a flow_tables hashmap. Returns the status code, representing the success or failure of the initialization * From a2cc7750c7ca49eda1413abcbd346250ab269a8b Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Thu, 11 Jun 2020 02:37:19 +0000 Subject: [PATCH 05/14] Working implementation of pool enqueue/dequeue --- examples/simple_forward/forward.c | 6 +- examples/speed_tester/perf.data | Bin 0 -> 61924 bytes examples/speed_tester/speed_tester.c | 38 ++++ onvm/go.sh | 4 +- onvm/onvm_mgr/main.c | 5 + onvm/onvm_mgr/onvm_init.c | 70 +++--- onvm/onvm_mgr/onvm_init.h | 1 + onvm/onvm_mgr/onvm_nf.c | 11 +- onvm/onvm_mgr/onvm_stats.c | 3 + onvm/onvm_nflib/onvm_common.h | 33 ++- onvm/onvm_nflib/onvm_msg_common.h | 1 + onvm/onvm_nflib/onvm_nflib.c | 320 +++++++++++++++++++++++---- onvm/onvm_nflib/onvm_nflib.h | 9 + onvm/perf.data | Bin 0 -> 533920 bytes onvm/perf.data.old | Bin 0 -> 997912 bytes 15 files changed, 425 insertions(+), 76 deletions(-) create mode 100644 examples/speed_tester/perf.data create mode 100644 onvm/perf.data create mode 100644 onvm/perf.data.old diff --git a/examples/simple_forward/forward.c b/examples/simple_forward/forward.c index 2fc321336..d3296c00a 100644 --- a/examples/simple_forward/forward.c +++ b/examples/simple_forward/forward.c @@ -52,6 +52,7 @@ #include #include #include +#include #include "onvm_nflib.h" #include "onvm_pkt_helper.h" @@ -159,8 +160,8 @@ packet_handler(struct rte_mbuf *pkt, struct onvm_pkt_meta *meta, counter = 0; } - meta->action = ONVM_NF_ACTION_TONF; meta->destination = destination; + meta->action = ONVM_NF_ACTION_TONF; return 0; } @@ -169,7 +170,6 @@ main(int argc, char *argv[]) { struct onvm_nf_local_ctx *nf_local_ctx; struct onvm_nf_function_table *nf_function_table; int arg_offset; - const char *progname = argv[0]; nf_local_ctx = onvm_nflib_init_nf_local_ctx(); @@ -195,9 +195,7 @@ main(int argc, char *argv[]) { onvm_nflib_stop(nf_local_ctx); rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } - onvm_nflib_run(nf_local_ctx); - onvm_nflib_stop(nf_local_ctx); printf("If we reach here, program is ending\n"); return 0; diff --git a/examples/speed_tester/perf.data b/examples/speed_tester/perf.data new file mode 100644 index 0000000000000000000000000000000000000000..7caa0331dd3b997dc88487a619ac1fc99c1d7ace GIT binary patch literal 61924 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 #include #include +#include #ifdef LIBPCAP #include @@ -451,6 +452,43 @@ main(int argc, char *argv[]) { rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } + struct simple_forward_args *args; + args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); + args->destination_id = "1"; + args->service_id = "2"; + args->optional_args.packet_delay= "10000"; + if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { + RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); + } + + args->destination_id = "1"; + args->service_id = "3"; + args->optional_args.packet_delay= "10000"; + if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { + RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); + } + + args->destination_id = "1"; + args->service_id = "4"; + args->optional_args.packet_delay= "10000"; + if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { + RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); + } + + sleep(1); + if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); + } + if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); + } + if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); + } + if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); + } + onvm_nflib_run(nf_local_ctx); onvm_nflib_stop(nf_local_ctx); diff --git a/onvm/go.sh b/onvm/go.sh index 56d72ca1e..613f38aa3 100755 --- a/onvm/go.sh +++ b/onvm/go.sh @@ -57,7 +57,7 @@ ports_detected=$("$RTE_SDK"/usertools/dpdk-devbind.py --status-dev net | sed '/N if [[ $ports_detected -lt $ports ]] then echo "Error: Invalid port mask. Insufficient NICs bound." - exit 1 + # exit 1 fi while getopts "a:r:d:s:t:l:p:z:cv" opt; do @@ -102,7 +102,7 @@ fi sudo rm -rf /mnt/huge/rtemap_* # watch out for variable expansion # shellcheck disable=SC2086 -sudo "$SCRIPTPATH"/onvm_mgr/"$RTE_TARGET"/onvm_mgr -l "$cpu" -n 4 --proc-type=primary ${virt_addr} -- -p ${ports} -n ${nf_cores} ${num_srvc} ${def_srvc} ${stats} ${stats_sleep_time} ${verbosity_level} ${ttl} ${packet_limit} ${shared_cpu_flag} +sudo "$SCRIPTPATH"/onvm_mgr/x86_64-native-linuxapp-gcc/onvm_mgr -l "$cpu" -n 4 --proc-type=primary ${virt_addr} -- -p ${ports} -n ${nf_cores} ${num_srvc} ${def_srvc} ${stats} ${stats_sleep_time} ${verbosity_level} ${ttl} ${packet_limit} ${shared_cpu_flag} if [ "${stats}" = "-s web" ] then diff --git a/onvm/onvm_mgr/main.c b/onvm/onvm_mgr/main.c index ba8655fcf..d615ed5b9 100644 --- a/onvm/onvm_mgr/main.c +++ b/onvm/onvm_mgr/main.c @@ -171,6 +171,11 @@ master_thread_main(void) { } } + for (i = 0; i < MAX_NFS; i++) { + sem_close(nf_pool_wakeup_infos[i].mutex); + sem_unlink(nf_pool_wakeup_infos[i].sem_name); + } + RTE_LOG(INFO, APP, "Core %d: Master thread done\n", rte_lcore_id()); } diff --git a/onvm/onvm_mgr/onvm_init.c b/onvm/onvm_mgr/onvm_init.c index 7a25fa61a..414655e4d 100644 --- a/onvm/onvm_mgr/onvm_init.c +++ b/onvm/onvm_mgr/onvm_init.c @@ -56,6 +56,7 @@ struct port_info *ports = NULL; struct core_status *cores = NULL; struct onvm_configuration *onvm_config = NULL; struct nf_wakeup_info *nf_wakeup_infos = NULL; +struct nf_wakeup_info *nf_pool_wakeup_infos = NULL; struct rte_mempool *pktmbuf_pool; struct rte_mempool *nf_init_cfg_pool; @@ -87,7 +88,7 @@ static void init_shared_sem(void); static void -init_nf_pool(void); +init_pool_sem(void); static int init_info_queue(void); @@ -247,6 +248,9 @@ init(int argc, char *argv[]) { /* initialise the shared memory for shared core mode */ init_shared_sem(); + /* Init mutex's for NF pool structures */ + init_pool_sem(); + /*initialize a default service chain*/ default_chain = onvm_sc_create(); retval = onvm_sc_append_entry(default_chain, ONVM_NF_ACTION_TONF, 1); @@ -266,8 +270,6 @@ init(int argc, char *argv[]) { onvm_sc_print(default_chain); onvm_flow_dir_init(); - init_nf_pool(); - return 0; } @@ -406,29 +408,6 @@ init_port(uint8_t port_num) { return 0; } -static void -init_nf_pool(void) { - struct rte_hash_parameters *nf_pool_hash_parameters; - char *name = rte_malloc(NULL, 64, 0); - - if (name == NULL) { - RTE_LOG(INFO, APP, "Could not allocate name for nf pool hash structure\n"); - } - - nf_pool_hash_parameters = (struct rte_hash_parameters *) rte_malloc(NULL, sizeof(struct rte_hash_parameters), 0); - if (nf_pool_hash_parameters == NULL) { - RTE_LOG(INFO, APP, "Could not create nf pool hash structure\n"); - } - - nf_pool_hash_parameters->entries = 128; - nf_pool_hash_parameters->key_len = sizeof(struct rte_ring); - nf_pool_hash_parameters->hash_func = NULL; - nf_pool_hash_parameters->hash_func_init_val = 0; - nf_pool_hash_parameters->name = name; - nf_pool_hash_parameters->socket_id = rte_socket_id(); - snprintf(name, 64, "onvm_nf_pool"); -} - /** * Initialize shared core structs (mutex/semaphore) */ @@ -473,6 +452,45 @@ init_shared_sem(void) { } } +static void +init_pool_sem(void) { + uint16_t i; + key_t key; + int shmid; + char *shm; + sem_t *mutex; + char * sem_name; + + nf_pool_wakeup_infos = rte_calloc("POOL_SHM_INFOS", sizeof(struct nf_wakeup_info), MAX_NFS, 0); + + + for (i = 0; i < MAX_NFS; i++) { + sem_name = rte_malloc(NULL, sizeof(char) * 64, 0); + snprintf(sem_name, 64, "nf_pool_%d", i); + nf_pool_wakeup_infos[i].sem_name = sem_name; + + mutex = sem_open(sem_name, O_CREAT, 06666, 0); + if (mutex == SEM_FAILED) { + fprintf(stderr, "can not create semaphore for NF %d\n", i); + sem_unlink(sem_name); + exit(1); + } + nf_pool_wakeup_infos[i].mutex = mutex; + + key = get_rx_shmpoolkey(i); + if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) { + fprintf(stderr, "can not create the shared memory segment for NF %d\n", i); + exit(1); + } + + if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) { + fprintf(stderr, "can not attach the shared segment to the server space for NF %d\n", i); + exit(1); + } + nf_pool_wakeup_infos[i].shm_server = (rte_atomic16_t *)shm; + } +} + /** * Allocate a rte_ring for newly created NFs */ diff --git a/onvm/onvm_mgr/onvm_init.h b/onvm/onvm_mgr/onvm_init.h index f133038e4..8319eedfe 100644 --- a/onvm/onvm_mgr/onvm_init.h +++ b/onvm/onvm_mgr/onvm_init.h @@ -129,6 +129,7 @@ extern uint8_t ONVM_NF_SHARE_CORES; /* For handling shared core logic */ extern struct nf_wakeup_info *nf_wakeup_infos; +extern struct nf_wakeup_info *nf_pool_wakeup_infos; /**********************************Functions**********************************/ diff --git a/onvm/onvm_mgr/onvm_nf.c b/onvm/onvm_mgr/onvm_nf.c index 33716cd76..a592bdf21 100644 --- a/onvm/onvm_mgr/onvm_nf.c +++ b/onvm/onvm_mgr/onvm_nf.c @@ -180,6 +180,7 @@ onvm_nf_check_status(void) { struct lpm_request *req_lpm; struct ft_request *ft; struct ring_request *ring_req; + struct id_request *id_req; uint16_t stop_nf_id; int num_msgs = rte_ring_count(incoming_msg_queue); @@ -202,9 +203,9 @@ onvm_nf_check_status(void) { ft = (struct ft_request *) msg->msg_data; onvm_nf_init_ft(ft); break; - case MSF_REQUEST_RING: + case MSG_REQUEST_RING: ring_req = (struct ring_request *) msg->msg_data; - onvm_nf_init_single_ring(); + onvm_nf_init_single_ring(ring_req); break; case MSG_NF_STARTING: nf_init_cfg = (struct onvm_nf_init_cfg *)msg->msg_data; @@ -212,6 +213,11 @@ onvm_nf_check_status(void) { onvm_stats_gen_event_nf_info("NF Starting", &nfs[nf_init_cfg->instance_id]); } break; + case MSG_REQUEST_ID: + id_req = (struct id_request *) msg->msg_data; + id_req->instance_id = next_instance_id; + id_req->status = 0; + break; case MSG_NF_READY: nf = (struct onvm_nf *)msg->msg_data; if (onvm_nf_ready(nf) == 0) { @@ -302,6 +308,7 @@ onvm_nf_start(struct onvm_nf_init_cfg *nf_init_cfg) { return 1; } + spawned_nf->pool_nf = 0; spawned_nf->instance_id = nf_id; spawned_nf->service_id = nf_init_cfg->service_id; spawned_nf->status = NF_STARTING; diff --git a/onvm/onvm_mgr/onvm_stats.c b/onvm/onvm_mgr/onvm_stats.c index 5347545fd..70e9d0287 100644 --- a/onvm/onvm_mgr/onvm_stats.c +++ b/onvm/onvm_mgr/onvm_stats.c @@ -443,6 +443,9 @@ onvm_stats_display_nfs(unsigned difftime, uint8_t verbosity_level) { for (i = 0; i < MAX_NFS; i++) { if (!onvm_nf_is_valid(&nfs[i])) continue; + if (nfs[i].pool_nf == 1) { + continue; + } const uint64_t rx = nfs[i].stats.rx; const uint64_t rx_drop = nfs[i].stats.rx_drop; const uint64_t tx = nfs[i].stats.tx; diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index 93eab1535..4c3d11616 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -270,6 +270,7 @@ struct onvm_nf { uint16_t instance_id; uint16_t service_id; uint8_t status; + uint8_t pool_nf; char *tag; /* Pointer to NF defined state data */ void *data; @@ -324,6 +325,15 @@ struct onvm_nf { /* Mutex for NF sem_wait */ sem_t *nf_mutex; } shared_core; + + struct { + /* + * Sleep state to track state of whether the NF is active + * Same logic as shared core + */ + rte_atomic16_t *pool_state; + sem_t *pool_mutex; + } pool_status; }; /* @@ -373,12 +383,26 @@ struct ft_request { }; struct ring_request { - char name[64]; + char *name; unsigned count; unsigned flags; int status; }; +struct id_request { + int instance_id; + int status; +}; + +// If the values in optional args are not -1, use the optional args +struct simple_forward_args { + const char *service_id; + const char *destination_id; + struct { + const char *packet_delay; + } optional_args; +}; + /* define common names for structures shared between server and NF */ #define MP_NF_RXQ_NAME "MProc_Client_%u_RX" #define MP_NF_TXQ_NAME "MProc_Client_%u_TX" @@ -397,6 +421,7 @@ struct ring_request { #define _NF_MSG_QUEUE_NAME "NF_%u_MSG_QUEUE" #define _NF_MEMPOOL_NAME "NF_INFO_MEMPOOL" #define _NF_MSG_POOL_NAME "NF_MSG_MEMPOOL" +#define _NF_POOL_NAME "onvm_nf_pool" /* interrupt semaphore specific updates */ #define SHMSZ 4 // size of shared memory segement (page_size) @@ -419,6 +444,7 @@ struct ring_request { #define NF_WAITING_FOR_LPM 13 // NF is waiting for a LPM request to be fulfilled #define NF_WAITING_FOR_FT 14 // NF is waiting for a flow-table request to be fulfilled #define NF_WAITING_FOR_RING 15 // NF is waiting for a ring request to be fulfilled +#define NF_WAITING_FOR_INSTANCE_ID 16 // NF is waiting for the manager to return the next instance ID #define NF_NO_ID -1 @@ -477,6 +503,11 @@ get_rx_shmkey(unsigned id) { return KEY_PREFIX * 10 + id; } +static inline key_t +get_rx_shmpoolkey(unsigned id) { + return KEY_PREFIX * 10 + id * 2; +} + /* * Given the sem name template above, get the sem name */ diff --git a/onvm/onvm_nflib/onvm_msg_common.h b/onvm/onvm_nflib/onvm_msg_common.h index 49ef14e9c..e9d57ff5f 100644 --- a/onvm/onvm_nflib/onvm_msg_common.h +++ b/onvm/onvm_nflib/onvm_msg_common.h @@ -56,6 +56,7 @@ #define MSG_CHANGE_CORE 8 #define MSG_REQUEST_FT 9 #define MSG_REQUEST_RING 10 +#define MSG_REQUEST_ID 11 struct onvm_nf_msg { uint8_t msg_type; /* Constant saying what type of message is */ diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index b9230a21f..eeb2ac07a 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -146,8 +146,8 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c * Check if there are packets in this NF's RX Queue and process them */ static inline uint16_t -onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, - nf_pkt_handler_fn handler) __attribute__((always_inline)); +onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, nf_pkt_handler_fn handler) + __attribute__((always_inline)); /* * Check if there is a message available for this NF and process it @@ -221,6 +221,16 @@ onvm_nflib_thread_main_loop(void *arg); static void init_shared_core_mode_info(uint16_t instance_id); +// new stuff below +static void +init_pool_info(uint16_t instance_id); + +struct onvm_nf * +onvm_nflib_fork(const char *nf_name, void *nf_args); + +char * +onvm_nflib_create_binary_exec_string(const char *nf_name); + /* * Signal handler to catch SIGINT/SIGTERM. * @@ -236,7 +246,7 @@ struct onvm_nf_local_ctx * onvm_nflib_init_nf_local_ctx(void) { struct onvm_nf_local_ctx *nf_local_ctx; - nf_local_ctx = (struct onvm_nf_local_ctx*)calloc(1, sizeof(struct onvm_nf_local_ctx)); + nf_local_ctx = (struct onvm_nf_local_ctx *)calloc(1, sizeof(struct onvm_nf_local_ctx)); if (nf_local_ctx == NULL) rte_exit(EXIT_FAILURE, "Failed to allocate memory for NF context\n"); @@ -254,7 +264,7 @@ struct onvm_nf_function_table * onvm_nflib_init_nf_function_table(void) { struct onvm_nf_function_table *nf_function_table; - nf_function_table = (struct onvm_nf_function_table*)calloc(1, sizeof(struct onvm_nf_function_table)); + nf_function_table = (struct onvm_nf_function_table *)calloc(1, sizeof(struct onvm_nf_function_table)); if (nf_function_table == NULL) rte_exit(EXIT_FAILURE, "Failed to allocate memory for NF context\n"); @@ -266,8 +276,9 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { struct onvm_nf_msg *request_message; int ret; - ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); - if (ret != 0) return ret; + ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); + if (ret != 0) + return ret; request_message->msg_type = MSG_REQUEST_LPM_REGION; request_message->msg_data = lpm_req; @@ -279,7 +290,7 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { } lpm_req->status = NF_WAITING_FOR_LPM; - for (; lpm_req->status == (uint16_t) NF_WAITING_FOR_LPM;) { + for (; lpm_req->status == (uint16_t)NF_WAITING_FOR_LPM;) { sleep(1); } @@ -287,13 +298,14 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { return lpm_req->status; } -int +int onvm_nflib_request_ring(struct ring_request *ring_req) { struct onvm_nf_msg *request_message; int ret; - ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); - if (ret != 0) return ret; + ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); + if (ret != 0) + return ret; request_message->msg_type = MSG_REQUEST_RING; request_message->msg_data = ring_req; @@ -305,7 +317,7 @@ onvm_nflib_request_ring(struct ring_request *ring_req) { } ring_req->status = NF_WAITING_FOR_RING; - for (; ring_req->status == (uint16_t) NF_WAITING_FOR_RING;) { + for (; ring_req->status == (uint16_t)NF_WAITING_FOR_RING;) { sleep(1); } @@ -319,12 +331,12 @@ onvm_nflib_request_ft(struct rte_hash_parameters *ipv4_hash_params) { struct ft_request *ft_req; int ret; - ft_req = (struct ft_request *) rte_malloc(NULL, sizeof(struct ft_request), 0); + ft_req = (struct ft_request *)rte_malloc(NULL, sizeof(struct ft_request), 0); if (!ft_req) { return -1; } - ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); + ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); if (ret != 0) { rte_mempool_put(nf_msg_pool, request_message); return ret; @@ -342,7 +354,7 @@ onvm_nflib_request_ft(struct rte_hash_parameters *ipv4_hash_params) { } ft_req->status = NF_WAITING_FOR_FT; - for (; ft_req->status == (uint16_t) NF_WAITING_FOR_FT;) { + for (; ft_req->status == (uint16_t)NF_WAITING_FOR_FT;) { sleep(1); } @@ -556,6 +568,7 @@ onvm_nflib_start_nf(struct onvm_nf_local_ctx *nf_local_ctx, struct onvm_nf_init_ RTE_LOG(INFO, APP, "Shared CPU support enabled\n"); init_shared_core_mode_info(nf->instance_id); } + init_pool_info(nf->instance_id); RTE_LOG(INFO, APP, "Using Instance ID %d\n", nf->instance_id); RTE_LOG(INFO, APP, "Using Service ID %d\n", nf->service_id); @@ -567,12 +580,13 @@ onvm_nflib_start_nf(struct onvm_nf_local_ctx *nf_local_ctx, struct onvm_nf_init_ RTE_LOG(INFO, APP, "Packet limit (rx) set to %u\n", nf->flags.pkt_limit); /* - * Allow this for cases when there is not enough cores and using + * Allow this for cases when there is not enough cores and using * the shared core mode is not an option */ if (ONVM_CHECK_BIT(nf->flags.init_options, SHARE_CORE_BIT) && !ONVM_NF_SHARE_CORES) - RTE_LOG(WARNING, APP, "Requested shared core allocation but shared core mode is NOT " - "enabled, this will hurt performance, proceed with caution\n"); + RTE_LOG(WARNING, APP, + "Requested shared core allocation but shared core mode is NOT " + "enabled, this will hurt performance, proceed with caution\n"); RTE_LOG(INFO, APP, "Finished Process Init.\n"); @@ -617,7 +631,7 @@ onvm_nflib_thread_main_loop(void *arg) { nf->function_table->setup(nf_local_ctx); start_time = rte_get_tsc_cycles(); - for (;rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { + for (; rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { /* Possibly sleep if in shared core mode, otherwise continue */ if (ONVM_NF_SHARE_CORES) { if (unlikely(rte_ring_count(nf->rx_q) == 0) && likely(rte_ring_count(nf->msg_q) == 0)) { @@ -626,8 +640,14 @@ onvm_nflib_thread_main_loop(void *arg) { } } + if (nf->pool_nf == 1) { + RTE_LOG(INFO, APP, "Put into the pool, going to sleep\n"); + sem_wait(nf->pool_status.pool_mutex); + RTE_LOG(INFO, APP, "Taken out of the pool, waking up\n\n\n"); + } + nb_pkts_added = - onvm_nflib_dequeue_packets((void **)pkts, nf_local_ctx, nf->function_table->pkt_handler); + onvm_nflib_dequeue_packets((void **)pkts, nf_local_ctx, nf->function_table->pkt_handler); if (likely(nb_pkts_added > 0)) { onvm_pkt_process_tx_batch(nf->nf_tx_mgr, pkts, nb_pkts_added, nf); @@ -641,16 +661,17 @@ onvm_nflib_thread_main_loop(void *arg) { if (nf->function_table->user_actions != ONVM_NO_CALLBACK) { rte_atomic16_set(&nf_local_ctx->keep_running, !(*nf->function_table->user_actions)(nf_local_ctx) && - rte_atomic16_read(&nf_local_ctx->keep_running)); + rte_atomic16_read(&nf_local_ctx->keep_running)); } - if (nf->flags.time_to_live && unlikely((rte_get_tsc_cycles() - start_time) * - TIME_TTL_MULTIPLIER / rte_get_timer_hz() >= nf->flags.time_to_live)) { + if (nf->flags.time_to_live && + unlikely((rte_get_tsc_cycles() - start_time) * TIME_TTL_MULTIPLIER / rte_get_timer_hz() >= + nf->flags.time_to_live)) { printf("Time to live exceeded, shutting down\n"); rte_atomic16_set(&nf_local_ctx->keep_running, 0); } - if (nf->flags.pkt_limit && unlikely(nf->stats.rx >= (uint64_t)nf->flags.pkt_limit * - PKT_TTL_MULTIPLIER)) { + if (nf->flags.pkt_limit && + unlikely(nf->stats.rx >= (uint64_t)nf->flags.pkt_limit * PKT_TTL_MULTIPLIER)) { printf("Packet limit exceeded, shutting down\n"); rte_atomic16_set(&nf_local_ctx->keep_running, 0); } @@ -716,7 +737,7 @@ onvm_nflib_handle_msg(struct onvm_nf_msg *msg, struct onvm_nf_local_ctx *nf_loca break; case MSG_SCALE: RTE_LOG(INFO, APP, "Received scale message...\n"); - onvm_nflib_scale((struct onvm_nf_scale_info*)msg->msg_data); + onvm_nflib_scale((struct onvm_nf_scale_info *)msg->msg_data); break; case MSG_FROM_NF: RTE_LOG(INFO, APP, "Received MSG from other NF\n"); @@ -744,7 +765,7 @@ onvm_nflib_send_msg_to_nf(uint16_t dest, void *msg_data) { int ret; struct onvm_nf_msg *msg; - ret = rte_mempool_get(nf_msg_pool, (void**)(&msg)); + ret = rte_mempool_get(nf_msg_pool, (void **)(&msg)); if (ret != 0) { RTE_LOG(INFO, APP, "Oh the huge manatee! Unable to allocate msg from pool :(\n"); return ret; @@ -753,7 +774,7 @@ onvm_nflib_send_msg_to_nf(uint16_t dest, void *msg_data) { msg->msg_type = MSG_FROM_NF; msg->msg_data = msg_data; - return rte_ring_enqueue(nfs[dest].msg_q, (void*)msg); + return rte_ring_enqueue(nfs[dest].msg_q, (void *)msg); } void @@ -978,7 +999,7 @@ onvm_nflib_parse_config(struct onvm_configuration *config) { } static inline uint16_t -onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, nf_pkt_handler_fn handler) { +onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, nf_pkt_handler_fn handler) { struct onvm_nf *nf; struct onvm_pkt_meta *meta; uint16_t i, nb_pkts; @@ -1111,7 +1132,6 @@ onvm_nflib_is_scale_info_valid(struct onvm_nf_scale_info *scale_info) { scale_info->function_table->pkt_handler != NULL; } - static void onvm_nflib_nf_tx_mgr_init(struct onvm_nf *nf) { nf->nf_tx_mgr = calloc(1, sizeof(struct queue_mgr)); @@ -1141,7 +1161,7 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c int service_id = -1; opterr = 0; - while ((c = getopt (argc, argv, "n:r:t:l:ms")) != -1) + while ((c = getopt(argc, argv, "n:r:t:l:ms")) != -1) switch (c) { case 'n': initial_instance_id = (uint16_t)strtoul(optarg, NULL, 10); @@ -1154,22 +1174,22 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c service_id = -1; break; case 't': - nf_init_cfg->time_to_live = (uint16_t) strtoul(optarg, NULL, 10); + nf_init_cfg->time_to_live = (uint16_t)strtoul(optarg, NULL, 10); if (nf_init_cfg->time_to_live == 0) { fprintf(stderr, "Time to live argument can't be 0\n"); return -1; } break; case 'l': - nf_init_cfg->pkt_limit = (uint16_t) strtoul(optarg, NULL, 10); + nf_init_cfg->pkt_limit = (uint16_t)strtoul(optarg, NULL, 10); if (nf_init_cfg->pkt_limit == 0) { fprintf(stderr, "Packet time to live argument can't be 0\n"); return -1; } break; case 'm': - nf_init_cfg->init_options = ONVM_SET_BIT(nf_init_cfg->init_options, - MANUAL_CORE_ASSIGNMENT_BIT); + nf_init_cfg->init_options = + ONVM_SET_BIT(nf_init_cfg->init_options, MANUAL_CORE_ASSIGNMENT_BIT); break; case 's': nf_init_cfg->init_options = ONVM_SET_BIT(nf_init_cfg->init_options, SHARE_CORE_BIT); @@ -1209,7 +1229,7 @@ onvm_nflib_terminate_children(struct onvm_nf *nf) { continue; if (!onvm_nf_is_valid(&nfs[i])) - continue; + continue; /* Wake up the child if its sleeping */ if (ONVM_NF_SHARE_CORES && rte_atomic16_read(nfs[i].shared_core.sleep_state) == 1) { @@ -1217,8 +1237,8 @@ onvm_nflib_terminate_children(struct onvm_nf *nf) { sem_post(nfs[i].shared_core.nf_mutex); } } - RTE_LOG(INFO, APP, "NF %d: Waiting for %d children to exit\n", - nf->instance_id, rte_atomic16_read(&nf->thread_info.children_cnt)); + RTE_LOG(INFO, APP, "NF %d: Waiting for %d children to exit\n", nf->instance_id, + rte_atomic16_read(&nf->thread_info.children_cnt)); sleep(NF_TERM_WAIT_TIME); iter_cnt++; } @@ -1315,20 +1335,48 @@ init_shared_core_mode_info(uint16_t instance_id) { if ((shmid = shmget(key, SHMSZ, 0666)) < 0) rte_exit(EXIT_FAILURE, "Unable to locate the segment for NF %d\n", instance_id); - if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) + if ((shm = shmat(shmid, NULL, 0)) == (char *)-1) rte_exit(EXIT_FAILURE, "Can not attach the shared segment to the NF space for NF %d\n", instance_id); nf->shared_core.sleep_state = (rte_atomic16_t *)shm; } +static void +init_pool_info(uint16_t instance_id) { + key_t key; + int shmid; + char *shm; + struct onvm_nf *nf; + char *sem_name; + + nf = &nfs[instance_id]; + sem_name = rte_malloc(NULL, sizeof(char) * 64, 0); + snprintf(sem_name, 64, "nf_pool_%d", instance_id); + + nf->pool_status.pool_mutex = sem_open(sem_name, 0, 0666, 0); + if (nf->pool_status.pool_mutex == SEM_FAILED) + rte_exit(EXIT_FAILURE, "Unable to execute semphore for NF %d\n", instance_id); + + /* Get flag which is shared by server */ + key = get_rx_shmpoolkey(instance_id); + if ((shmid = shmget(key, SHMSZ, 0666)) < 0) + rte_exit(EXIT_FAILURE, "Unable to locate the segment for NF %d\n", instance_id); + + if ((shm = shmat(shmid, NULL, 0)) == (char *)-1) + rte_exit(EXIT_FAILURE, "Can not attach the shared segment to the NF space for NF %d\n", instance_id); + + nf->pool_status.pool_state = (rte_atomic16_t *) shm; +} + void onvm_nflib_stats_summary_output(uint16_t id) { const char clr[] = {27, '[', '2', 'J', '\0'}; const char topLeft[] = {27, '[', '1', ';', '1', 'H', '\0'}; const char *csv_suffix = "_stats.csv"; - const char *csv_stats_headers = "NF tag, NF instance ID, NF service ID, NF assigned core, RX total," - "RX total dropped, TX total, TX total dropped, NF sent out, NF sent to NF," - "NF dropped, NF next, NF tx buffered, NF tx buffered, NF tx returned"; + const char *csv_stats_headers = + "NF tag, NF instance ID, NF service ID, NF assigned core, RX total," + "RX total dropped, TX total, TX total dropped, NF sent out, NF sent to NF," + "NF dropped, NF next, NF tx buffered, NF tx buffered, NF tx returned"; const uint64_t rx = nfs[id].stats.rx; const uint64_t rx_drop = nfs[id].stats.rx_drop; const uint64_t tx = nfs[id].stats.tx; @@ -1412,3 +1460,193 @@ onvm_nflib_stats_summary_output(uint16_t id) { printf("CSV file written to %s directory\n", nf_tag); free(csv_filename); } + +struct onvm_nf * +onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args) { + struct rte_ring *nf_pool_ring; + struct ring_request *rte_ring_request; + char *nf_ring_name; + struct onvm_nf *spawned_nf; + + nf_pool_ring = rte_ring_lookup(nf_name); + if (nf_pool_ring == NULL) { + rte_ring_request = rte_malloc(NULL, sizeof(struct ring_request), 0); + nf_ring_name = rte_malloc(NULL, sizeof(char) * 64, 0); + if (rte_ring_request == NULL || nf_ring_name == NULL) { + RTE_LOG(INFO, APP, "Could not allocate ring request objects\n"); + return NULL; + } + rte_ring_request->count = 128; + snprintf(nf_ring_name, 64, "%s", nf_name); + rte_ring_request->name = nf_ring_name; + + if (onvm_nflib_request_ring(rte_ring_request) == -1) { + RTE_LOG(INFO, APP, "Could not request a ring for %s from manager\n", nf_name); + return NULL; + } + + RTE_LOG(INFO, APP, "Created %s nf pool ring\n", nf_name); + nf_pool_ring = rte_ring_lookup(nf_name); + if (nf_pool_ring == NULL) { + RTE_LOG(INFO, APP, "Could not lookup %s ring\n", nf_name); + return NULL; + } + } + if (nf_args == NULL) { + RTE_LOG(INFO, APP, "NF args structs is NULL\n"); + return NULL; + } + spawned_nf = onvm_nflib_fork(nf_name, nf_args); + while (spawned_nf->status != NF_STARTING) { + sleep(1); + } + + if (rte_ring_enqueue(nf_pool_ring, (void *) spawned_nf) != 0) { + RTE_LOG(INFO, APP, "Failed to enqueue spawned NF into the ring\n"); + return NULL; + } + + spawned_nf->pool_nf = 1; + return spawned_nf; +} + +struct onvm_nf * +onvm_nflib_pool_dequeue(const char *nf_name) { + struct rte_ring *nf_pool_ring; + struct onvm_nf *dequeued_nf = NULL; + sem_t *sem; + char *sem_name; + + nf_pool_ring = rte_ring_lookup(nf_name); + if (nf_pool_ring == NULL) { + return NULL; + } + if (rte_ring_dequeue(nf_pool_ring, (void *) &dequeued_nf) != 0) { + RTE_LOG(INFO, APP, "Could not dequeue the %s NF\n", nf_name); + return NULL; + } + RTE_LOG(INFO, APP, "Dequeued ID: %d Dequeued pool status: %d\n", dequeued_nf->instance_id, dequeued_nf->pool_nf); + + sem_name = rte_malloc(NULL, sizeof(char) * 64, 0); + snprintf(sem_name, 64, "nf_pool_%d", dequeued_nf->instance_id); + sem = sem_open(sem_name, 0, 0666, 0); + dequeued_nf->pool_nf = 0; + if (sem_post(sem) < 0) { + RTE_LOG(INFO, APP, "Could not post to semaphore\n"); + } + + rte_free(sem_name); + return dequeued_nf; +} + +struct onvm_nf * +onvm_nflib_fork(const char *nf_name, void *nf_args) { + struct simple_forward_args *args_sf; + char *binary_string; + int fork_error; + int instance_id; + + if (nf_name == NULL) { + RTE_LOG(INFO, APP, "onvm_nflib_fork(): nf_name is null\n"); + return NULL; + } + if (nf_args == NULL) { + RTE_LOG(INFO, APP, "onvm_nflib_fork(): nf_args is null\n"); + return NULL; + } + + instance_id = onvm_nflib_request_current_instance_id(); + binary_string = onvm_nflib_create_binary_exec_string(nf_name); + if (fork() == 0) { + if (strcmp(nf_name, "simple_forward") == 0) { + RTE_LOG(INFO, APP, "Creating new Simple_forward NF with exec\n"); + args_sf = (struct simple_forward_args *) nf_args; + if (args_sf->optional_args.packet_delay != NULL) { + fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", + args_sf->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_sf->optional_args.packet_delay, NULL); + RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); + return NULL; + } + // Default case is user does not specify packet delay args + fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", + args_sf->service_id, "--", "-d", args_sf->destination_id, NULL); + RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); + return NULL; + } else { + RTE_LOG(INFO, APP, "NF_name not found"); + return NULL; + } + } + + return &nfs[instance_id]; +} + +char * +onvm_nflib_create_binary_exec_string(const char *nf_name) { + char *token; + const char *wd_nf = "/examples/"; + const char *build_nf = "/build/app/"; + char *binary_directory; + uint16_t total_directory_size, nf_name_len, wd_nf_len, build_nf_len, token_len, cwd_len; + char *cwd = rte_malloc(0, sizeof(char) * 4096, 0); + + if (getcwd(cwd, 4096) == NULL) { + RTE_LOG(INFO, APP, "Could not extract current working CWD"); + } + // A little bit hacky but idk a better way, idea is: find first position of /examples/ string, use that to parse + // the CWD then construct the full directory to NF binary. Works only if user is running NF from examples + // directory + token = strstr(cwd, wd_nf); + *token = '\0'; + token_len = strlen(token); + cwd = cwd + token_len; + + // Get the strlen's of all the needed string for our binary string + cwd_len = strlen(cwd); + nf_name_len = strlen(nf_name); + wd_nf_len = strlen(wd_nf); + build_nf_len = strlen(build_nf); + + // Allocate the memory needed for the full binary string + total_directory_size = wd_nf_len + nf_name_len + cwd_len + nf_name_len; + binary_directory = rte_malloc(0, sizeof(char) * total_directory_size, 0); + + strncat(binary_directory, cwd, cwd_len); + strncat(binary_directory, wd_nf, wd_nf_len); + strncat(binary_directory, nf_name, nf_name_len); + strncat(binary_directory, build_nf, build_nf_len); + strncat(binary_directory, nf_name, nf_name_len); + + return binary_directory; +} + +int +onvm_nflib_request_current_instance_id(void) { + struct id_request *get_next_id; + struct onvm_nf_msg *request_message; + int ret, instance_id; + + ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); + if (ret != 0) + return ret; + + get_next_id = rte_malloc(NULL, sizeof(struct id_request), 0); + request_message->msg_type = MSG_REQUEST_ID; + request_message->msg_data = get_next_id; + + ret = rte_ring_enqueue(mgr_msg_queue, request_message); + if (ret < 0) { + rte_mempool_put(nf_msg_pool, request_message); + return ret; + } + + get_next_id->status = NF_WAITING_FOR_INSTANCE_ID; + for (; get_next_id->status == (uint16_t)NF_WAITING_FOR_INSTANCE_ID;) { + sleep(1); + } + instance_id = get_next_id->instance_id; + + rte_mempool_put(nf_msg_pool, request_message); + rte_free(get_next_id); + return instance_id; +} diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index 4693d2007..1caa9a74d 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -278,6 +278,9 @@ onvm_nflib_request_lpm(struct lpm_request *req); int onvm_nflib_request_ring(struct ring_request *ring_req); +int +onvm_nflib_request_current_instance_id(void); + /* * Initializes a flow_tables hashmap. Returns the status code, representing the success or failure of the initialization * @@ -305,4 +308,10 @@ onvm_nflib_get_onvm_config(void); void onvm_nflib_stats_summary_output(uint16_t id); +struct onvm_nf * +onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args); + +struct onvm_nf * +onvm_nflib_pool_dequeue(const char *nf_name); + #endif // _ONVM_NFLIB_H_ diff --git a/onvm/perf.data b/onvm/perf.data new file mode 100644 index 0000000000000000000000000000000000000000..a88eed6b652ea4916eb0171cdc545adc7fa2c00c GIT binary patch literal 533920 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�C`Eng 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 literal 0 HcmV?d00001 diff --git a/onvm/perf.data.old b/onvm/perf.data.old new file mode 100644 index 0000000000000000000000000000000000000000..f1a1d5ce83c252232b55d634241177f4d9e01d88 GIT binary patch literal 997912 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

V8`=b-Ur&zytxn6 z_er_mWzCcC13nuXxFqEb@+h8C*V?7C7-zIHr!-yWz7TLCdnu}`y0Txv4)u*ZhX2#P zImV9IjU=wt$kkd##{+ep7PEqb?<4OO!zUM z@s=q1tm7c{?TVAP0@Zg~iL13f9|xY>fjl0b_Y&jba~|fLf*txe;tWoY8tp4mU9pwx zPS~MN5od4)_YPf&a(*jy3OjdoHDk^q#w)Glo92J~9q7xoKYwMa@266yuru``F5tzw zdxi0|_oZORd2;XY589~;)z?w!c~_;tqnt@Jb4K^O7_oV%;KRHwQYE7v`+a~Hokrz7}M z9==Cz`paGX7Qb7@IDI@ipUkIIk&D)#dQK~OVCq4g!%s0Y-(s8~N?yWF>ob+hb+1YF zOjFLqIsEw{fA;;L9U|AF9AD@CPxHFV)9*Vp9>0?D$|-#YdCl`c&dJ#ui`S<5?7crK z=l9}(JB(MvL%$(!5y!2cde))3J}dnhcIG+pI(QvpMypGC+V8%=&g7xbf)_RK8piWc z<}K_vPv(EGS|#gIeUrS*|3*FUGY+1+Yt}W-TN%fYQ~T7XddhfIM{A4>n{ZV|gN<;+v^)KmX&9KMn9nkn~v;2)m%vj3!6RjvuumtL7`8V~mk5r;D; zo-kesWv_;vJAGSU4QxvF-BJ3GrVp<}U)l)qno-^=Wxs$O*C+R3da%3G_< zQP^>PG7jA?ZDYJM9(`V4_TA+_Dz~D#>L?uEzooxo$9cs#iIhC^)L+H&4{J?zC2{7N zxyNY!LZ5>F&(=-chVt@zH1A}8TQXoLdTON593v^sSojizDT8N zbfEf9D*9l@^~rgiC9Y&4rNOdK0_91h>a@TKXuTIg4av~^m&-#3F zj#fUikMR;K{n68W3-i8KXR5D?Qtw*-fNsQdO5{(Bx7*hJBw6=0vX1LQ^{r9z4LZ#H z7($+Z_UAe+RF%|SDQ}!ppBY!!q3$;u@9&)NdXRB)DSm?;e}6}wbK8`<-Kee;w)`gN zOPI}H7;m~#2j+Z1-XNaIFHPu9bwyMB4?FIEnZFIbrR_m^CvEX$oo%G7w>1%?+KS?=uJ7p zls=@z5%q<73FpRoJS?=ny4 zt#J&XoWn}}n0adE)&A2n7^kVtJr6o@zPfL-4y3wLD!O2YyfXdn7x@h1lv3s{?06rP z`Oq$N3qPvsp@;q1^jEM-K?YIIC0qWg;K1h!;jeO?XERe#Z{vT5+%xKD6V=JEWoE_UNX1oSU|2EHwJjOXMjV>^T>YA?f zN!Xd^L|+H5!1}9-(aWB_Z>aDPN2F@DEWar;Q1lrnPW!8 ziIjIo$y+m?@FUK5WczZ)Nw35cc3hX7E6;BgokVqM*VD)=&Xec7^8FU$eRI~k>3{Q_ z@FULIH-3-FR982fdoB3jwapu43gvxt#?!SfIp=(vtzw*fO8+q#`hw9{O>YeYGn_C9r7M=g{~WidrhOd(kY)8h8@=>^Q-NXXwxZgno>s^ z4|xoIgF>ujylOV*iJ2ESl9!r6^_5fRChRo79W4HUaqj=+Is3NgJCo{~spLQW<1P+w zhsT^ndD`>ItmEM0=wjSAOSy7Ae^{@oYVp&sb|Q~EsS$n znQvT=yf5gVu+l=R2cL&F_a4keo~QDB^9sCRJp3MznGgJYvR^l7Fk}(c702l(Qy1dS zbxGd&0SOmVUOA<{J>{iayq)nf{H4Bc2dgZh`cf+MMAK*Xi&u|cG2UGz|6%9Of2)HJ zUrO~oQr-v9^x<{X`>m8o{3-8+a$f>=T%YV`^NR0cyvRyDnEed@4qb1XR9{AQl~C@h z!VdEUI>E^{;w|HhSFWpJ=k9z9{6{XQx*{lZ&eVmvg|4orlC7Ye1Xrz}p9MQp7d{^i z-piMJ7;lcU&%*9Mf62a4JYvn2R98jiddch?$Y1E$knscKtW@#}cKm$uzCph#V^&dJ zBW=xH*@rrGNx7Qx%GsQA(2etEnYN$ty4tLB#2LJ1TWhbO`cf%<5_YElaGd~N@2j5} z@2S!!VQ2F2J|%edzl~c<^(|5S2RrjVFrFI^-h;Sl)={4J{2Qbt(OI_3gB6R98EXbV<(2Xj!&X&TwU}o99FSMLiD4c8YO|DfdfYXXa^a zdkggT|<;Sg&ps+K8{z$?|P)_7HB8s9aKKw0z0i9mrS3@IH_&+9h@J2%d$P& zE~-oW{ypqWzad}13v}}g<9$&420N37x&UwU_ZGXUzGg~XVaIuLPo5P!=pM?`?$4Qf zB>2#kKldEQnW~%>0O^aZV}o#M3ye zSd;HC)s@B8o+0PTwSdcv7e?8Cc)rPfvDSwUN2sodUi#}p^sq-Mr}1C<>r(b5jMvC! z-l8udFIv?oc#P@`qv(U3nYV~Dcs;vcW4!Z99l(zBWZw=kwexYRZ<(_W%>B$=-_Eu< z{0Yi=XRDs%bIe*@@n^iS%I86}>pS!T_-)#k!Y8Rd?fq-malgsEFIwE2jJH$K=P567 z!EUFhzCp_8kUZs;svqez5lli~8|0{Wtj?tPx>%c$HBgPqAk-huac zb@U6A=VPlM$+)noa*j^R z-tQ9C)k%53-a0>|zfSwcx=eY;lzo}|OP=p>w+)Pw-8t_}znk?0oydnxGs<3}dL}CM z1Uoao5D)MIZ+pym<&`}Fb|$Zfab4W}`hcrc-yJ1iVP{?!;QY`xR*4ok~?*|Nc zmE=CU+mAS7pHN-eb24G4)qBkRsh(0!RAmqMG@gCy9bmkT%HCjo zPMN=72G)5-_3g8nzqlTU-`3Cn%y`e0`2st4`S$kU_~%rg_8da%^U8eta4*dZ$}8w$ zzM)UyoHv6VW}LN3Tw%x0Df@W)=tUAW)xy1&Ui{A;Oij59%*cjlae|8TxnttP#q zdY&r#F6_+nfe+r+G3j4ZUVbm8K;b*%etPVzxtnP_=f8G?18R7zl-?H_+3Pw zL_Zk^&!;he7ZG;a?;=|JQ`T+FqEp{e-P`=FKYwHG2RX0n)y(vc@*-`w=6RaWfjgdH zyrxc`>wK2?1rv;F@}BCtr2Oumr~Rbl(%+1COyPMNhwz7|f1vvADA&=}agg~q^Ffx6 zlvmQD-w~AkWKFQsj5E^1y%2sx-G)or{1esFSveo<%sznm2wsU|fj?8;OAmD+9^hW$`cR*qeqI`V z4*nbP=_2C=`OEh?21alHo9fG~?7z_AE*@!fhjw(S71V)zeXG=$)<>!u_w^n%TEuuC zmHWN0Gw)xRc|2lp{ye#a^Z7%u>x{QW>6@6J zm=EAX*ViUpf>B*zl>P)eu1oHf;fF;CPI;$o#?_2NmHKot7J=`+#}*LvudBj>l8#8aLq%7;yb19qmL5Kriu8ogvVs;iXJ zFJOoB;ore=9LusDC7? zC#|i0Po6JJ;@FWXZ-R0^jOT-#8-0pyWSr$n-_!CPd4h9RY*a1^)zwnb1v~f)d~gO1 ze!@5lm3 zndijo;4PT4jq&Cvdk^f~@qD*cjz#sIQ}RUPnQ=&Q(*m|w`VBrQ@TqMVgVzQRtMdyR+fW1L?~ zet7DyR4ZyFrn;so{ZY#g{2iRL&WVqV7gzB=?0CNUIG!8d)9e3yY!a$(vQwW~pRm*X z<_MEIDdl9fnPrp*Do4t+yAeqp>QN?c)Q z>Vt0ZrcaoVoa)P~%stqdJme2}pEjmVL3u5dc)*VH=@zyDOF6{XIc&Ts1>Z}>5KKw41XM2sTgDR&^GhQwwuDlLpy+?W7JQLN0 z&nKF?(8o-_!JqJ3qX7lYp`Akd|M?&P^AGG^?fd?(eeYxc{omo)>;L=je!2hqznMZgX8!r#O_#UAf-i^)5L#eG25Iy22{^DCfvI+_U9X#`&b= zy{G4UI-*lPs%x=Fy5xPKA2Q zx(X`S+1&4v^E~_w&hf}ka<2%PxobhHC!TVhsMRChA3;4vtQfHn<#kf(5q8{PGQW~{ zTF!X*om_K%Tj!TN@A8R73sZgC^Kh)sEAy<;hFgqR!=pU&akMs`1KR&w_aao+7H6L| z^A&cuk8r}cAL0Kta#70Jro{XguT*&bxZWBgSi`=!2c94}Jx2?TP+n zsJ_~Y|6u2ixA9f%vXpn<*1jM=r+pyoCdSjAqp!^yypHqkN>{!d)mK-^KiIiD@5eGv z8Ly5_{~=D$m#4j7d8%)c&Ax}d0=y@a<5i%%HBO${-(iQjgLs1zXUi7GnQk+#<~a{s zuUL`l>ZJ53*zq{XIUV`ybH{I4Bd4KnD;P>iq&aZKXRHC}ND*l4qfBusD+u^(k zD^pGsW!`hYOHTOu+ZjiDuByqwIdQIdeX3NUdV+cAA8^5$J?|CcL{cQ?-=*Rz2=&8uK7Is+0VXW)`q1&!w%SZB@L8FwZ^uIqUs9eXUy3UwtFr(dqU2`Cjh5KNT<0H~)OECbE3zIW>F@ zY&EL3^u>KqmxGS|B#v-yk4Rrfat<1O5S?D1e_fVk*>=TSW}I_YyvRTN9Y0v7uJrf7 z$bWR!IQH|#eL*36J z-Rd`xzRnx9W@`At*PYXH||TIi_BMrdHWPEn{nMAnXeQ(n>3TY-VW;=DI4*-^PbXU zSN~SLl19AHk!QRgntl8=`sC))7w>Cx@4KMW@$%2#3Yl|$AbFLIejPk7d|vc&-zpyO z^>h7MJocIOo^I2;h4i=H@Q2P_FZBVh&8Vk}XT9$Poy)^FyxA+Jwv_%x8~qVoWW1Tj zbGMSbuExA!@$ikm-)_>2ae*dkWCrTU1H`;)En`?d4HDTv^Vk$ottO;9p1d;`8!BoUm10P&gHrJ5v}lX#fuSE zo%+{zZ!~V#QTjU@*iSca_59)Y%Mk-(c9NW|MxL=Acb%-CxaFNcNAZ{=-8w+$^7wb) zt=Uj@7hL|$CtnC+)erl@7(wM zTZ7{-c9*=2#(b~)n_pk=-dU(Pxx&g{KVAot7VjZ_S5<0z) z{(X-WwY&C|z8V?*EjZ6#=d~X3dr97<5T9RxPyXkh_J!hD?_ETv*Xf^EKdvj$Tl(UC zLT=xU?7TXA>IcPn(Wvv_zWh9U>tXjk($`Vr{0rXK%0}FFt`~MEOW0TP_}-|yPIO!^ zz$gAg3oKQfNn!e;zTow!|876&YpZb`gAQNB5zd^xKPpak!xuW87yf*;c6P7+($|MZ zpSAiTe(|?)d*T6-cjI5qSCua=SDe0qJahL^=c`|j(_@q!DE+)a)7UQ+??Fg&ncru&t|>o6 z`l=9kZ-W~rci*_*N*-l9c13aW8F_@xs+UqX`wx|VP8pv^2Co-?eYxW&8zyH1ZssUZ3CZx}997cz2C>h05E0zw$`w?|Fa6a%=MIidQ47 ze(cXTs|ybOSo%wATqgz3fB(F$-7wWC$=hngFL=KByvakpQoKgb$(uX>{n65&b^jr_ zKfm7l?D}2ttoQBfdhqjZ>gA8dNME;%In&C!?9TgfM#O%7tmI`hzCVr5eJ%>W)Yz9t*@?<`-Of2{M>Dj7bNya6H2bADfJ(0PaAlr-wm^2NIGm3?B} zNzzvd<9#6Ltoq6F1&1Yy&-hOpMDJ| zN9;$6^VH}M=-m9G4&YTu|LIKW>$QJ5zkX0Q`z*x=qv z)6b-@V*m2I=(6~+;xrA@7x}?D6Cav9Tlz|2_(Dfs@!xQA|B-W!=1yG=es{Yr|C9rp7eLdxW2Xe7vEPS z{%a@anJ;;j4S(qLT~pDE5UWA3)1D({cs}@j^jy3Jigz;1b*^x(4~`cox>EW}YV=Wb)Fp8wUYqKiR-D|%`H0SqKYa*Z z;=Uh#DScH9oIh?}ptJf;rKxdONlsFue%OC&ebF{AQk-*P#vPxmZ}QpVtEI2D#(atn zUwpp}PR2)P6(^C=Z_q_{P8UnjZH@G`)yP+CABiLWiWPoot>h&N#LeADbgYwlfYYP? zV#Rr8_(G@i%deyR152)xzVZa-diTDPwNCa0e-GxISG<-X?kD{gPLf?c)=OV2jr~OD zu9Nk{TW~qy2Fbf+-1kN2@>oB-?6H?A-ZsM@I+urUcug{u{!04$*617PTps@pyov8! zRJ^Um+=|ZS@$bNk+otzM>CgHdZgiUGpLgp=yu3;BDg^TQf7L^j;;kaKC+n=yB;8ZI*sVR}21q3v^cfc5ZfA zagGcOe*ehIL;lXbENR(qi}clCTsXY45!V;2t5KsyLNMc{u~W|KjcoI^xCL z1?S1oRf@A|dGL6lBVObqoTfA1+a~?|xHb6t(CNJM=a3HTt}5PCgGZb-&!01(L*IfCZ+*P%Vf-B6sA#@uDq6YC~#H?1AMU;657eEx|} z=b7Kv(wuz#8_64FTzBZc=Etk}z0HcV?O)ElE0fmzR{9xc+D+QYsD#OTrZ>3>-2rS+^XJD=_}j6^i}8MzZB<=albFPFF*bRmW(?leVsM-GkE-c zUb{n?k4s)^qn?8E{J15%y-V?Og!K89_P;dj#43;#0y4f8%wobEY7)k@X+?8@{Sc-K#hSjeSI?efj)we6PF3#@*K(YeyuQZg$!`ClU$VZZMZQs- zC`MmIr{nL>i}4yZJ0pD+HSUu}7O&R_KT(`%hOgl9^7Eq8k|}4UFY9wjD=(PWh+DUB zbDfjC1jby9j=X5&JePL&=L3q<$M`%FoxU&W&r_>nwD>{#dMS|qZoay{h$HJOl|JIU zf8!t!1Yx-ce&-K}WpU4>*llzjZ*t{1LJ&IF?#-SyEw$cH~KEl`|1#`@6deDM3>mgvQvMjeKlpPzP!_q*h+3Nh~aoH^p~sLvH=rg1K! zbLR;5m3=I{@|_#f*RLU65Bc#LaP*ww+&1zdc)a}n-05z&Kcuf?fp~>>|JBd?<1Z(; zDS4%g`XN5_XZ#Yc%lVclj`e38TpD%`||tO zk!d~ul)m`=MK}HykMjwC=e8ueEqOb_I&Z5)Ty)-l8{>y%ir3pXKhWtq@bh>3lhSvj zKc262*Bg9a{rvqR)g{Hd64+OlN1XJ2`2GL$qJ8d4e>IKsP4|C)oqsh*@|Wb)3ad{2 zy1GATrQ%uh9eK~WL?0(Vb}TG+Px@+a^dWTAXL6@MM%jB=aRwXfLl;?I#Jbk+zVvm` z=tIHt!atwZ#(DLDI^_(SKemwkp;>eyPv%VM0z=rqsY z*A#zMdMy3L{g?atZjx(?)BHL2wMo7qPo%FSM%+T(hb*;Tdn$RyjQ(xy1Ak{9miF49 zcn^&851qRY{4OrMp_8jVlm5O4_;c$N9sP)XhV#o;zbTIOoHsh{%Rg7XK07R;d%frp z_!wv8o3&2vyWsDWC#j=I-Y>?vf{y-8KZg_LwM~kXBH#<3{2mE9ICY)(InF3rJ*xEc zz2OI)758~f|4^Jt#^)_o-1$4}t2<;wH0i6gaju|q_mRKD8@4EIbjeE=mOphv5RSNh6qoWtmJ{QY_D?I~}@le`f|Jy`k6 z-|?4y<8H;vZ}>x}{rU4yjtdRrOMgj>e&n7jb89J-)wjI(Wq4Z__oZ_t#nI^S>4E z-LT^3_l>)ICnb{ptou27on<4cJM+fhzvM_PIdzSAp<`}=OI}Qh^{wJG3@N|-bq&hg z{AKBb_xJt1NBL4p ze-S%^^MdcYUw0K>KCXDNb_S1|TX*$zLtF(+!s3fF?=|ymVU1|$&B+4osO4(p1yFP zLmKHTcA$TT7Jr}j-XF1Fm%P139}RUs@5P(1crP3CuDhS`iCeNiq7XQ54LyDEdBBODeiuvb3b>XKJZuka)LJ{uZ)qm=v;sN9bT?zOBJuO z(J#@tJn|4;oQ&^gk^Z_F{?NHR_6gqCrGHes8DZ|P%iGktS61oouQ2nNI>F!Qk%_ZO z-a_MkI6CT!^}|`Ubh+XbHu4Ugj+@_)O6@O`UHU3!oHM!~`SZs+*DonfYomX-b&5~c z*YkzGIi#ODMxLS5>+|QoyxEfGl)Q3Ao(0cafBx%G=}X1yZuIZS_OV9i^0}n1CC|B! zm#1A(ydRDH();MoF=xK&pIiERVBF85ULuSCpJ!jqBYC}yI+1rg+?+cjqZ| zRzCb4WoUls>t?x4QFndHvD(R;aqd$hAy(XCClQE3Q1q3jkpEh2mgFKw9tLYGsyV7(W*=M#DDJ#HHt`It3!I8-ap?~ym?b`q8Prcc=5S3zA9H5SycLZ zXgr^fj($O&z&X_Mjbf6+=X(D;zx=*B^pmZMQ`(3V|2}z29pESR+FHe>pL<4qqto@{ ze{Ue#$v+ius4-Urzs~g6ndbheccj0cL%g5MzOv31$upFY9P7D!bnZI&JG?Rlb|_vQ zqwk<|dDH{EU+dK^DgC82;)c%U@$bNE-RG|2#WnU7U1YqEW{oW+{Z$OJo;YXlH+Ng6 zcO`F8i03Bjhco-qPR04o@P#h2b=Hp3ptSV0(U|kBxbb-a{^q8=uXx`Z`-(2IbKrc5 z31y_e&d<58!#~JUR`RTQJNSD2dObXBkLHC`uRiDCl1AmEuTKJV=>P7M{=BjN@I%Ep zZ^S=%fAf81z4=Lb=_|EyT^L#4?Vd3Edy>=Fn6pFml|T1>#p@BGFY1DPEm)&z1?g+0 z;R{`4^|YnyW5rt(R-g3a|I^gT6{WvJf&Kj7dEx&Kd*QEgR+5~P#`kgD^PJCXiC44J z-ztvvJ6q_O3wS;W&icE}D@#8UjDCoY^PF=OPWvR!6z87to(^>G{*iC+j=nvuiu5(w z$Om*TkG=t~LESu6C9k7#e-@qQ`PW}>^gg6`$&7x(`9u8Ox%2L{mhVen%!_Vbp@T!6 zv%WtzMX4q^-9ntpSTCGw7iK8VQsZ1hr{m=J!OPF`R+qjegmwSOufvUR992BNN8`qe z_z*AR$2xy5)ux8@^~ktCh7Jx~IF~<&UQ=>r?XJpS+_2DyU}mZMOKHOjO@`|`b!>CUik4( zxH#bllEe4J-18&U{k(H46$ zhcTz1qYmhg_&S`ucT4H(ig6yHbN7?;4&H~=UT!6Mn*;ggo*(G&#lFDF-era2{9;_E zq0_$nI>#bmw~h2S-|&adT`zx!H}*l& zwvxyFtkCk;pMOrLT%~x)1O6i0SMmm5)PFu>n*oyjpA9)VWHD~#P>Jta>b6) z-x?!+mOtL(gultLepS3Ljq?Vb_UGqarc8r7Nq^SwIq81lpQo|Pr|c{_t&RM3=LUX1 zk@bygyIyh58+{2~Wb2DLuF8kfS3P5%(d+Z~anFkDio<=tQ1h1hV4b&)4ecU*jWF^8 zotwAh3%qByQgxNQs7Bn-xjgzZyi$obD&7slA3B$ZZ+NHkRO=@F?F*|f`FVS*<_*RB z+L+(;zWSUWx)1LzeRU4$y3^-0nD%-P$vF~|AOE^~)K{AoXPxm}0P&41?hDV>=qY{u zV)V!0JipFcKE0`Ui;Q{Ft#k5(e0Vq2$GxPlipKelF0yrg_D;Iqk~hZai=nRbPLpkl z_kKv%i~e=lq(Qa&NMFAheNkVR`TggExwjQ(sj-h%ee-wX-+1@vzS38C@1yX)KeOjb zhJKP~`3wHJmmjxh(Z5!_6CuWpd|{m(($(uPeO(N2+`f%Y=b4}XY0Cbkcu$S_JF@(5 z(Q@1X>FbQKpTT|k`BC=c%mXE_mXZJDfnKLS&o5oFOYv?zr@yZcHy9-S9S?Kv<31Mq zy6DDz#rwqQAL#UY{okqRmtf*x>F>JH*CP9!ic2}O4w0N?fpa*rIi7uCech|=Rh$fA z?Wdo&tGYBEDt&!s_;T}>eu=N0lOHM07^9xh>A3rOwsX^`!=$g@jr)$l>%d>

x?k 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±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 z Date: Thu, 11 Jun 2020 22:08:34 +0000 Subject: [PATCH 06/14] Using volatile int for sleep --- examples/speed_tester/speed_tester.c | 11 +++----- onvm/onvm_mgr/main.c | 5 ++++ onvm/onvm_mgr/onvm_init.c | 16 ----------- onvm/onvm_mgr/onvm_nf.c | 2 +- onvm/onvm_mgr/onvm_stats.c | 2 +- onvm/onvm_nflib/onvm_common.h | 5 ++-- onvm/onvm_nflib/onvm_nflib.c | 41 ++++++++++++---------------- 7 files changed, 31 insertions(+), 51 deletions(-) diff --git a/examples/speed_tester/speed_tester.c b/examples/speed_tester/speed_tester.c index dbaeb8722..2a5a32f59 100644 --- a/examples/speed_tester/speed_tester.c +++ b/examples/speed_tester/speed_tester.c @@ -456,7 +456,7 @@ main(int argc, char *argv[]) { args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); args->destination_id = "1"; args->service_id = "2"; - args->optional_args.packet_delay= "10000"; + args->optional_args.packet_delay= "1000000"; if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); } @@ -482,12 +482,9 @@ main(int argc, char *argv[]) { if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); } - if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { - RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); - } - if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { - RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); - } + // if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + // RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); + // } onvm_nflib_run(nf_local_ctx); diff --git a/onvm/onvm_mgr/main.c b/onvm/onvm_mgr/main.c index d615ed5b9..1c9941ff4 100644 --- a/onvm/onvm_mgr/main.c +++ b/onvm/onvm_mgr/main.c @@ -149,6 +149,10 @@ master_thread_main(void) { rte_atomic16_set(nf_wakeup_infos[i].shm_server, 0); sem_post(nf_wakeup_infos[i].mutex); } + if (nfs[i].pool_status.pool_sleep_state == 1) { + nfs[i].pool_status.pool_sleep_state = 0; + sem_post(nf_pool_wakeup_infos[i].mutex); + } } /* Wait to process all exits */ @@ -171,6 +175,7 @@ master_thread_main(void) { } } + /* Clean up the nf pool structs */ for (i = 0; i < MAX_NFS; i++) { sem_close(nf_pool_wakeup_infos[i].mutex); sem_unlink(nf_pool_wakeup_infos[i].sem_name); diff --git a/onvm/onvm_mgr/onvm_init.c b/onvm/onvm_mgr/onvm_init.c index 414655e4d..270c1b3a0 100644 --- a/onvm/onvm_mgr/onvm_init.c +++ b/onvm/onvm_mgr/onvm_init.c @@ -414,9 +414,6 @@ init_port(uint8_t port_num) { static void init_shared_sem(void) { uint16_t i; - key_t key; - int shmid; - char *shm; sem_t *mutex; const char * sem_name; @@ -436,19 +433,6 @@ init_shared_sem(void) { exit(1); } nf_wakeup_infos[i].mutex = mutex; - - key = get_rx_shmkey(i); - if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) { - fprintf(stderr, "can not create the shared memory segment for NF %d\n", i); - exit(1); - } - - if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) { - fprintf(stderr, "can not attach the shared segment to the server space for NF %d\n", i); - exit(1); - } - - nf_wakeup_infos[i].shm_server = (rte_atomic16_t *)shm; } } diff --git a/onvm/onvm_mgr/onvm_nf.c b/onvm/onvm_mgr/onvm_nf.c index a592bdf21..2fe732a2d 100644 --- a/onvm/onvm_mgr/onvm_nf.c +++ b/onvm/onvm_mgr/onvm_nf.c @@ -308,7 +308,7 @@ onvm_nf_start(struct onvm_nf_init_cfg *nf_init_cfg) { return 1; } - spawned_nf->pool_nf = 0; + spawned_nf->pool_status.pool_sleep_state = 0; spawned_nf->instance_id = nf_id; spawned_nf->service_id = nf_init_cfg->service_id; spawned_nf->status = NF_STARTING; diff --git a/onvm/onvm_mgr/onvm_stats.c b/onvm/onvm_mgr/onvm_stats.c index 70e9d0287..194ecf29b 100644 --- a/onvm/onvm_mgr/onvm_stats.c +++ b/onvm/onvm_mgr/onvm_stats.c @@ -443,7 +443,7 @@ onvm_stats_display_nfs(unsigned difftime, uint8_t verbosity_level) { for (i = 0; i < MAX_NFS; i++) { if (!onvm_nf_is_valid(&nfs[i])) continue; - if (nfs[i].pool_nf == 1) { + if (nfs[i].pool_status.pool_sleep_state == 1) { continue; } const uint64_t rx = nfs[i].stats.rx; diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index 4c3d11616..612f89c01 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -331,8 +331,9 @@ struct onvm_nf { * Sleep state to track state of whether the NF is active * Same logic as shared core */ - rte_atomic16_t *pool_state; + volatile int16_t pool_sleep_state; sem_t *pool_mutex; + const char *pool_mutex_name; } pool_status; }; @@ -505,7 +506,7 @@ get_rx_shmkey(unsigned id) { static inline key_t get_rx_shmpoolkey(unsigned id) { - return KEY_PREFIX * 10 + id * 2; + return KEY_PREFIX * 11 + id; } /* diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index eeb2ac07a..ac11ce660 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -640,10 +640,8 @@ onvm_nflib_thread_main_loop(void *arg) { } } - if (nf->pool_nf == 1) { - RTE_LOG(INFO, APP, "Put into the pool, going to sleep\n"); + if (unlikely(nf->pool_status.pool_sleep_state == 1)) { sem_wait(nf->pool_status.pool_mutex); - RTE_LOG(INFO, APP, "Taken out of the pool, waking up\n\n\n"); } nb_pkts_added = @@ -1278,6 +1276,14 @@ onvm_nflib_cleanup(struct onvm_nf_local_ctx *nf_local_ctx) { nf->data = NULL; } + if (nf->rx_q) { + rte_ring_free(nf->rx_q); + } + + if (nf->tx_q) { + rte_ring_free(nf->tx_q); + } + /* Cleanup for the nf_tx_mgr pointers */ if (nf->nf_tx_mgr) { if (nf->nf_tx_mgr->to_tx_buf != NULL) { @@ -1343,9 +1349,6 @@ init_shared_core_mode_info(uint16_t instance_id) { static void init_pool_info(uint16_t instance_id) { - key_t key; - int shmid; - char *shm; struct onvm_nf *nf; char *sem_name; @@ -1354,18 +1357,10 @@ init_pool_info(uint16_t instance_id) { snprintf(sem_name, 64, "nf_pool_%d", instance_id); nf->pool_status.pool_mutex = sem_open(sem_name, 0, 0666, 0); + nf->pool_status.pool_mutex_name = sem_name; if (nf->pool_status.pool_mutex == SEM_FAILED) rte_exit(EXIT_FAILURE, "Unable to execute semphore for NF %d\n", instance_id); - /* Get flag which is shared by server */ - key = get_rx_shmpoolkey(instance_id); - if ((shmid = shmget(key, SHMSZ, 0666)) < 0) - rte_exit(EXIT_FAILURE, "Unable to locate the segment for NF %d\n", instance_id); - - if ((shm = shmat(shmid, NULL, 0)) == (char *)-1) - rte_exit(EXIT_FAILURE, "Can not attach the shared segment to the NF space for NF %d\n", instance_id); - - nf->pool_status.pool_state = (rte_atomic16_t *) shm; } void @@ -1491,6 +1486,8 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args) { RTE_LOG(INFO, APP, "Could not lookup %s ring\n", nf_name); return NULL; } + rte_free(rte_ring_request); + rte_free(nf_ring_name); } if (nf_args == NULL) { RTE_LOG(INFO, APP, "NF args structs is NULL\n"); @@ -1506,7 +1503,7 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args) { return NULL; } - spawned_nf->pool_nf = 1; + spawned_nf->pool_status.pool_sleep_state = 1; return spawned_nf; } @@ -1515,7 +1512,6 @@ onvm_nflib_pool_dequeue(const char *nf_name) { struct rte_ring *nf_pool_ring; struct onvm_nf *dequeued_nf = NULL; sem_t *sem; - char *sem_name; nf_pool_ring = rte_ring_lookup(nf_name); if (nf_pool_ring == NULL) { @@ -1525,17 +1521,12 @@ onvm_nflib_pool_dequeue(const char *nf_name) { RTE_LOG(INFO, APP, "Could not dequeue the %s NF\n", nf_name); return NULL; } - RTE_LOG(INFO, APP, "Dequeued ID: %d Dequeued pool status: %d\n", dequeued_nf->instance_id, dequeued_nf->pool_nf); - - sem_name = rte_malloc(NULL, sizeof(char) * 64, 0); - snprintf(sem_name, 64, "nf_pool_%d", dequeued_nf->instance_id); - sem = sem_open(sem_name, 0, 0666, 0); - dequeued_nf->pool_nf = 0; + sem = sem_open(dequeued_nf->pool_status.pool_mutex_name, 0, 0666, 0); + dequeued_nf->pool_status.pool_sleep_state = 0; if (sem_post(sem) < 0) { RTE_LOG(INFO, APP, "Could not post to semaphore\n"); } - rte_free(sem_name); return dequeued_nf; } @@ -1578,6 +1569,7 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { } } + //rte_free(binary_string); return &nfs[instance_id]; } @@ -1617,6 +1609,7 @@ onvm_nflib_create_binary_exec_string(const char *nf_name) { strncat(binary_directory, build_nf, build_nf_len); strncat(binary_directory, nf_name, nf_name_len); + rte_free(cwd); return binary_directory; } From af14c1558922a556538675e25d7ecfc63f2bc6c9 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Thu, 18 Jun 2020 23:53:30 +0000 Subject: [PATCH 07/14] NF pool updates, hash instead of rte_ring_lookup, functions in header files. Structs of prototype NF's --- examples/simple_forward/forward.c | 1 - examples/speed_tester/speed_tester.c | 44 ++--- onvm/onvm_mgr/onvm_stats.c | 3 + onvm/onvm_nflib/onvm_common.h | 63 ++++++- onvm/onvm_nflib/onvm_nflib.c | 237 ++++++++++++++++++++------- onvm/onvm_nflib/onvm_nflib.h | 22 ++- onvm/perf.data | Bin 533920 -> 0 bytes onvm/perf.data.old | Bin 997912 -> 0 bytes 8 files changed, 276 insertions(+), 94 deletions(-) delete mode 100644 onvm/perf.data delete mode 100644 onvm/perf.data.old diff --git a/examples/simple_forward/forward.c b/examples/simple_forward/forward.c index d3296c00a..a221b9a17 100644 --- a/examples/simple_forward/forward.c +++ b/examples/simple_forward/forward.c @@ -52,7 +52,6 @@ #include #include #include -#include #include "onvm_nflib.h" #include "onvm_pkt_helper.h" diff --git a/examples/speed_tester/speed_tester.c b/examples/speed_tester/speed_tester.c index 2a5a32f59..0aea30a1c 100644 --- a/examples/speed_tester/speed_tester.c +++ b/examples/speed_tester/speed_tester.c @@ -452,40 +452,22 @@ main(int argc, char *argv[]) { rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } - struct simple_forward_args *args; - args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); - args->destination_id = "1"; - args->service_id = "2"; - args->optional_args.packet_delay= "1000000"; - if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { - RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); - } - - args->destination_id = "1"; - args->service_id = "3"; - args->optional_args.packet_delay= "10000"; - if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { - RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); - } - - args->destination_id = "1"; - args->service_id = "4"; - args->optional_args.packet_delay= "10000"; - if (onvm_nflib_pool_enqueue("simple_forward", args) != NULL) { - RTE_LOG(INFO, APP, "Spawned a new simple_forward nf and added to ring\n"); - } + // struct simple_forward_args *args; + // args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); + // args->destination_id = "1"; + // args->service_id = "2"; + // args->optional_args.print_delay= "1000000"; + // RTE_LOG(INFO, APP, "Spawning 2 instances of simple_forward\n"); + + // if (onvm_nflib_pool_enqueue("simple_forward", args, 2) == 0) { + // RTE_LOG(INFO, APP, "Spawned 5 new simple_forward nf and added to ring\n"); + // } - sleep(1); - if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { - RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); - } - if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { - RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); - } - // if (onvm_nflib_pool_dequeue("simple_forward") != NULL) { + // RTE_LOG(INFO, APP, "Dequeueing single simple_forward instance\n"); + // if (onvm_nflib_pool_dequeue("simple_forward", 2, 2) == 0) { // RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); // } - + onvm_nflib_run(nf_local_ctx); onvm_nflib_stop(nf_local_ctx); diff --git a/onvm/onvm_mgr/onvm_stats.c b/onvm/onvm_mgr/onvm_stats.c index 194ecf29b..80673d86b 100644 --- a/onvm/onvm_mgr/onvm_stats.c +++ b/onvm/onvm_mgr/onvm_stats.c @@ -406,6 +406,7 @@ onvm_stats_display_nfs(unsigned difftime, uint8_t verbosity_level) { /* For same service id TX/RX stats */ uint8_t print_total_stats = 0; + uint64_t pool_count = 0; uint64_t rx_for_service[MAX_SERVICES]; uint64_t tx_for_service[MAX_SERVICES]; uint64_t rx_drop_for_service[MAX_SERVICES]; @@ -444,6 +445,7 @@ onvm_stats_display_nfs(unsigned difftime, uint8_t verbosity_level) { if (!onvm_nf_is_valid(&nfs[i])) continue; if (nfs[i].pool_status.pool_sleep_state == 1) { + pool_count++; continue; } const uint64_t rx = nfs[i].stats.rx; @@ -573,6 +575,7 @@ onvm_stats_display_nfs(unsigned difftime, uint8_t verbosity_level) { onvm_stats_display_client_wakeup_thread_context(difftime); } + fprintf(stats_out, "\n\nNumber of NF's in pool: %ld\n--------------------------\n", pool_count); } /***************************Helper functions**********************************/ diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index 612f89c01..f530a6ab9 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -274,6 +274,8 @@ struct onvm_nf { char *tag; /* Pointer to NF defined state data */ void *data; + /* Args struct that can be used for nf pool operations */ + void *args; struct { uint16_t core; @@ -334,6 +336,7 @@ struct onvm_nf { volatile int16_t pool_sleep_state; sem_t *pool_mutex; const char *pool_mutex_name; + char *binary_executable; } pool_status; }; @@ -353,6 +356,14 @@ struct onvm_nf_init_cfg { uint16_t pkt_limit; }; +struct onvm_nf_pool_ctx { + struct rte_ring *pool_ring; + void *args; + const char *binary_executable; + const char *nf_name; + unsigned refill; +}; + /* * Define a structure to describe a service chain entry */ @@ -400,10 +411,60 @@ struct simple_forward_args { const char *service_id; const char *destination_id; struct { - const char *packet_delay; + const char *print_delay; + } optional_args; +}; + +struct aes_decrypt_args { + const char *service_id; + const char *destination_id; + struct { + const char *print_delay; } optional_args; }; +struct aes_encrypt_args { + const char *service_id; + const char *destination_id; + struct { + const char *print_delay; + } optional_args; +}; + +struct arp_response_args { + const char *service_id; + const char *destination_id; + const char *source_ip_list; + struct { + const char *print_flag; + } optional_args; +}; + +struct basic_monitor_args { + const char *service_id; + struct { + const char *print_delay; + } optional_args; +}; + +struct bridge_args { + const char *service_id; + struct { + const char *print_delay; + } optional_args; +}; + +struct firewall_args { + const char *service_id; + const char *destination_id; + const char *rules_file; + struct { + const char *print_delay; + const char *debug_mode; + } optional_args; +}; + + /* define common names for structures shared between server and NF */ #define MP_NF_RXQ_NAME "MProc_Client_%u_RX" #define MP_NF_TXQ_NAME "MProc_Client_%u_TX" diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index ac11ce660..aa5c4b6c9 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -61,6 +61,7 @@ #include "onvm_includes.h" #include "onvm_nflib.h" #include "onvm_sc_common.h" +#include /**********************************Macros*************************************/ @@ -70,6 +71,7 @@ #define NF_MODE_RING 2 #define ONVM_NO_CALLBACK NULL +#define TIMEOUT_NF_REQUEST 3 /******************************Global Variables*******************************/ @@ -101,6 +103,9 @@ static struct onvm_nf_local_ctx *main_nf_local_ctx; // Global NF specific signal handler static handle_signal_func global_nf_signal_handler = NULL; +// Global NF pool table +struct rte_hash *pool_map; + // Shared data for default service chain struct onvm_service_chain *default_chain; @@ -220,17 +225,6 @@ onvm_nflib_thread_main_loop(void *arg); */ static void init_shared_core_mode_info(uint16_t instance_id); - -// new stuff below -static void -init_pool_info(uint16_t instance_id); - -struct onvm_nf * -onvm_nflib_fork(const char *nf_name, void *nf_args); - -char * -onvm_nflib_create_binary_exec_string(const char *nf_name); - /* * Signal handler to catch SIGINT/SIGTERM. * @@ -630,6 +624,21 @@ onvm_nflib_thread_main_loop(void *arg) { if (nf->function_table->setup != NULL) nf->function_table->setup(nf_local_ctx); + + if (strcmp(nf->tag, "speed_tester") == 0) { + struct simple_forward_args *args; + args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); + args->destination_id = "1"; + args->service_id = "2"; + args->optional_args.print_delay= "1000000"; + RTE_LOG(INFO, APP, "Spawning 5 instances of simple_forward\n"); + + if (onvm_nflib_pool_enqueue("simple_forward", args, 10, 3) == 0) { + RTE_LOG(INFO, APP, "Spawned 5 new simple_forward nf and added to ring\n"); + } + + onvm_nflib_pool_dequeue("simple_forward", 6, -1); + } start_time = rte_get_tsc_cycles(); for (; rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { /* Possibly sleep if in shared core mode, otherwise continue */ @@ -988,9 +997,55 @@ onvm_nflib_lookup_shared_structs(void) { if (mgr_msg_queue == NULL) rte_exit(EXIT_FAILURE, "Cannot get mgr message ring"); + pool_map = onvm_nflib_get_nfpool_hashmap(); + if (pool_map == NULL) { + rte_exit(EXIT_FAILURE, "Could not lookup/create hashmap\n"); + } + return 0; } +struct rte_hash * +onvm_nflib_get_nfpool_hashmap(void) { + struct rte_hash_parameters *ipv4_hash_params; + struct rte_hash *map; + size_t nf_pool_name_size; + char *name; + int status; + + if ((map = rte_hash_find_existing(_NF_POOL_NAME)) != NULL) { + return map; + } + + ipv4_hash_params = (struct rte_hash_parameters *) rte_malloc(NULL, sizeof(struct rte_hash_parameters), 0); + if (!ipv4_hash_params) { + return NULL; + } + + nf_pool_name_size = strlen(_NF_POOL_NAME) + 1; + name = rte_malloc(NULL, 64, 0); + /* create ipv4 hash table. use core number and cycle counter to get a unique name. */ + ipv4_hash_params->entries = 256; + ipv4_hash_params->key_len = 64; + ipv4_hash_params->hash_func = rte_jhash; + ipv4_hash_params->hash_func_init_val = 0; + ipv4_hash_params->name = name; + ipv4_hash_params->socket_id = rte_socket_id(); + snprintf(name, nf_pool_name_size, "%s", _NF_POOL_NAME); + + status = onvm_nflib_request_ft(ipv4_hash_params); + if (status < 0) { + return NULL; + } + RTE_LOG(INFO, APP, "Looking up:%s\n", name); + map = rte_hash_find_existing(name); + if (map == NULL) { + return NULL; + } + + return map; +} + static void onvm_nflib_parse_config(struct onvm_configuration *config) { ONVM_NF_SHARE_CORES = config->flags.ONVM_NF_SHARE_CORES; @@ -1276,14 +1331,6 @@ onvm_nflib_cleanup(struct onvm_nf_local_ctx *nf_local_ctx) { nf->data = NULL; } - if (nf->rx_q) { - rte_ring_free(nf->rx_q); - } - - if (nf->tx_q) { - rte_ring_free(nf->tx_q); - } - /* Cleanup for the nf_tx_mgr pointers */ if (nf->nf_tx_mgr) { if (nf->nf_tx_mgr->to_tx_buf != NULL) { @@ -1347,7 +1394,7 @@ init_shared_core_mode_info(uint16_t instance_id) { nf->shared_core.sleep_state = (rte_atomic16_t *)shm; } -static void +void init_pool_info(uint16_t instance_id) { struct onvm_nf *nf; char *sem_name; @@ -1456,20 +1503,35 @@ onvm_nflib_stats_summary_output(uint16_t id) { free(csv_filename); } -struct onvm_nf * -onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args) { +int +onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int eq_num, int refill) { struct rte_ring *nf_pool_ring; struct ring_request *rte_ring_request; char *nf_ring_name; - struct onvm_nf *spawned_nf; + char *global_nf_name; + int spawned_nf_count, ret; + struct onvm_nf_pool_ctx *pool_ctx = NULL; - nf_pool_ring = rte_ring_lookup(nf_name); - if (nf_pool_ring == NULL) { + if (nf_args == NULL) { + RTE_LOG(INFO, APP, "NF args structs is NULL\n"); + return -1; + } + + if (eq_num <= 0) { + RTE_LOG(INFO, APP, "Invalid amount of NF's requested for pool\n"); + return -1; + } + + global_nf_name = rte_calloc(NULL, 1, 64, 0); + snprintf(global_nf_name, 64, "%s", nf_name); + ret = rte_hash_lookup_data(pool_map, global_nf_name, (void *) &pool_ctx); + if (ret < 0) { + pool_ctx = rte_malloc(NULL, sizeof(struct onvm_nf_pool_ctx), 0); rte_ring_request = rte_malloc(NULL, sizeof(struct ring_request), 0); nf_ring_name = rte_malloc(NULL, sizeof(char) * 64, 0); - if (rte_ring_request == NULL || nf_ring_name == NULL) { + if (rte_ring_request == NULL || nf_ring_name == NULL || pool_ctx == NULL) { RTE_LOG(INFO, APP, "Could not allocate ring request objects\n"); - return NULL; + return -1; } rte_ring_request->count = 128; snprintf(nf_ring_name, 64, "%s", nf_name); @@ -1477,62 +1539,109 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args) { if (onvm_nflib_request_ring(rte_ring_request) == -1) { RTE_LOG(INFO, APP, "Could not request a ring for %s from manager\n", nf_name); - return NULL; + return -1; } RTE_LOG(INFO, APP, "Created %s nf pool ring\n", nf_name); nf_pool_ring = rte_ring_lookup(nf_name); if (nf_pool_ring == NULL) { RTE_LOG(INFO, APP, "Could not lookup %s ring\n", nf_name); - return NULL; + return -1; } + pool_ctx->pool_ring = nf_pool_ring; + pool_ctx->args = nf_args; + pool_ctx->nf_name = nf_name; + if (rte_hash_add_key_data(pool_map, global_nf_name, (void *) pool_ctx) != 0) { + RTE_LOG(INFO, APP, "Could not add to hash table\n"); + return -1; + } + rte_free(rte_ring_request); rte_free(nf_ring_name); } - if (nf_args == NULL) { - RTE_LOG(INFO, APP, "NF args structs is NULL\n"); - return NULL; - } - spawned_nf = onvm_nflib_fork(nf_name, nf_args); - while (spawned_nf->status != NF_STARTING) { - sleep(1); + + if (refill >= 0) { + pool_ctx->refill = refill; } - if (rte_ring_enqueue(nf_pool_ring, (void *) spawned_nf) != 0) { - RTE_LOG(INFO, APP, "Failed to enqueue spawned NF into the ring\n"); - return NULL; + spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, pool_ctx->pool_ring, eq_num); + return spawned_nf_count; +} + +int +onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count) { + struct onvm_nf *spawned_nf; + int i, count_sleep; + + for (i = 0; i < nf_count; i++) { + spawned_nf = onvm_nflib_fork(nf_name, nf_args); + count_sleep = 0; + while (spawned_nf->status != NF_RUNNING) { + if (count_sleep == TIMEOUT_NF_REQUEST) { + RTE_LOG(INFO, APP, "nf %d of requested %d nf request timed out\n", i, nf_count); + return i; + } + count_sleep++; + sleep(1); + } + if (rte_ring_enqueue(nf_pool_ring, (void *) spawned_nf) != 0) { + RTE_LOG(INFO, APP, "Failed to enqueue spawned NF into the ring\n"); + break; + } + spawned_nf->args = nf_args; + spawned_nf->pool_status.pool_sleep_state = 1; } - spawned_nf->pool_status.pool_sleep_state = 1; - return spawned_nf; + return i; } -struct onvm_nf * -onvm_nflib_pool_dequeue(const char *nf_name) { +int +onvm_nflib_pool_dequeue(const char *nf_name, int dq_num, int refill) { struct rte_ring *nf_pool_ring; + struct onvm_nf_pool_ctx *pool_ctx; struct onvm_nf *dequeued_nf = NULL; sem_t *sem; + int i, ret, total_refill, spawned_nf_count; + char *global_nf_name; - nf_pool_ring = rte_ring_lookup(nf_name); - if (nf_pool_ring == NULL) { - return NULL; + global_nf_name = rte_calloc(NULL, 1, 64, 0); + snprintf(global_nf_name, 64, "%s", nf_name); + ret = rte_hash_lookup_data(pool_map, global_nf_name, (void *) &pool_ctx); + if (ret < 0) { + RTE_LOG(INFO, APP, "NF does not have an associated pool\n"); + return -1; } - if (rte_ring_dequeue(nf_pool_ring, (void *) &dequeued_nf) != 0) { - RTE_LOG(INFO, APP, "Could not dequeue the %s NF\n", nf_name); - return NULL; + + nf_pool_ring = pool_ctx->pool_ring; + for (i = 0; i < dq_num; i++) { + if (rte_ring_dequeue(nf_pool_ring, (void *) &dequeued_nf) != 0) { + RTE_LOG(INFO, APP, "Could not dequeue %s, ring is empty\n", nf_name); + break; + } + sem = sem_open(dequeued_nf->pool_status.pool_mutex_name, 0, 0666, 0); + dequeued_nf->pool_status.pool_sleep_state = 0; + if (sem_post(sem) < 0) { + RTE_LOG(INFO, APP, "Could not post to semaphore\n"); + break; + } } - sem = sem_open(dequeued_nf->pool_status.pool_mutex_name, 0, 0666, 0); - dequeued_nf->pool_status.pool_sleep_state = 0; - if (sem_post(sem) < 0) { - RTE_LOG(INFO, APP, "Could not post to semaphore\n"); + if (refill >= 0) { + pool_ctx->refill = refill; } - return dequeued_nf; + if (rte_ring_count(nf_pool_ring) < pool_ctx->refill) { + total_refill = pool_ctx->refill - rte_ring_count(nf_pool_ring); + spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, nf_pool_ring, total_refill); + RTE_LOG(INFO, APP, "Refilled NF pool with %d NF's\n", spawned_nf_count); + } + + return i; } struct onvm_nf * onvm_nflib_fork(const char *nf_name, void *nf_args) { struct simple_forward_args *args_sf; + struct aes_decrypt_args *args_aesdec; char *binary_string; int fork_error; int instance_id; @@ -1550,11 +1659,10 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { binary_string = onvm_nflib_create_binary_exec_string(nf_name); if (fork() == 0) { if (strcmp(nf_name, "simple_forward") == 0) { - RTE_LOG(INFO, APP, "Creating new Simple_forward NF with exec\n"); args_sf = (struct simple_forward_args *) nf_args; - if (args_sf->optional_args.packet_delay != NULL) { + if (args_sf->optional_args.print_delay != NULL) { fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", - args_sf->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_sf->optional_args.packet_delay, NULL); + args_sf->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_sf->optional_args.print_delay, NULL); RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); return NULL; } @@ -1563,13 +1671,26 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { args_sf->service_id, "--", "-d", args_sf->destination_id, NULL); RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); return NULL; + if (strcmp(nf_name, "aes_decrypt") == 0) { + args_aesdec = (struct aes_decrypt_args *) nf_args; + if (args_aesdec->optional_args.print_delay != NULL) { + fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", + args_aesdec->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_aesdec->optional_args.print_delay, NULL); + RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); + return NULL; + } + // Default case is user does not specify packet delay args + fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", + args_aesdec->service_id, "--", "-d", args_aesdec->destination_id, NULL); + RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); + return NULL; + } } else { RTE_LOG(INFO, APP, "NF_name not found"); return NULL; } } - //rte_free(binary_string); return &nfs[instance_id]; } diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index 1caa9a74d..5c7611f06 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -308,10 +308,26 @@ onvm_nflib_get_onvm_config(void); void onvm_nflib_stats_summary_output(uint16_t id); -struct onvm_nf * -onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args); +int +onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int nf_count, int refill); + +int +onvm_nflib_pool_dequeue(const char *nf_name, int nf_count, int refill_threshold); + +struct rte_hash * +onvm_nflib_get_nfpool_hashmap(void); + +int +onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count); + +void +init_pool_info(uint16_t instance_id); struct onvm_nf * -onvm_nflib_pool_dequeue(const char *nf_name); +onvm_nflib_fork(const char *nf_name, void *nf_args); + +char * +onvm_nflib_create_binary_exec_string(const char *nf_name); + #endif // _ONVM_NFLIB_H_ diff --git a/onvm/perf.data b/onvm/perf.data deleted file mode 100644 index a88eed6b652ea4916eb0171cdc545adc7fa2c00c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533920 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�C`Eng z1t1SN-xD1|nuuflV_uz@^q03d?$hLA@BGkI9Q!)f`|o$NHW$bEazEPp)|%seMDWYj zMsGgm%lwO|`J%n-vJd0?0_R&S=^&2r;Jxydl}9>>V;yIF*Ti4eMI7^#{YHtj)*SnY zrFABDlb%23OS`Y4ll2zIeV@-iZs*_EM;z}X=;y=biuV;q|1l3%Rqbau<|+Gws`a)Q zj{ajjVzqc{IM(O9_`l8H+vV}o__)p)w?wN`^cTl|gZa{7pEXCl)VqR>UIWB~+?DLB z2gxq$DdVzu#i+IU2TDbk}~ zSWj<_@VDgn{3zao=F_Fe{Of;lfZgv_guJolIN$XzW*fb+@E^ICE3eLxT{j2Zhy%fM z#WAn=oy~Ojt_#F*o%6o^Y`)coW4-5hkR40gIQp6U{sq5~MY1~t^Kixg)ymUt@Jew7 zz%j4hUTnNZ9P1zJ)q)&h>#XKWKi@3ZYrQzmgLcdRwsGuFx!$%dO&lsc_QibOb8kaU z!!hqW!7uf1?%rfIKHgjOPuX#cIM!Y6(=Kk-9P@r<+lkwx*9-BW|Ax$r+%B#pIPOQM zHgDP?j(r&Y?Ax$-xH!g_zaz42sn1?agj(JbJr4Q8GCq2fOzvDIToHfV1 zFMIK%(HjiE@OSAtzgTlbcHO{ne0zUCF&x)9`_AY%ZbzlZyrN&qcQ1WH9M?JH+kaEG zQ{o)u)%<v@Y4N+_=x5%`pXp@H@%LH^ zuJO4qy)MXm?$eEmcYQ35dC&7(Jik;=#W|`QpU2ra`kD7be-_1iCcQBjANP;tH`2Zr z$NrCTtA8b(;W)l8_@2GIN7=un$9rm?1A5f|Y&f3dS=UNLjQ=7%uHPN_E-?J+5yP=R z;5|d5n8K0LW4_SttJJRy$MwtiN}FW2=J;MlhnyY1$!;ISgXfv3*Y~5v@w*s)ANs7- z_ut|i`LFVt%&}em;pjicciCYZ$Mwd3^39Q}Mz1mEK|gmIa6O*vx`AVVzhK_!_~MvX z9AA-F`4fp_e3|#zqHUa``ux)AsnKJdWF9og`8$>Da{cygXaD@@SDnwP#W`9>JXXgk zP|(VMJZ~kBzt(W{AN!`Xjn5XA9`E(Ie|U9GP(&Q_na>SU4LE4YaeNN~tU2bv6#p2b z$NQI}KKAusO1-d>8Xxoi(NFv5oC*5(DkYBjOg~3v4lOT^b%TB>RN|H4SSLAOr!KR+ zq{q6!_qks5ykt1WgX3#Hc49^8F&^|w#+lX}_3|$|X7oBCpV=q6R5?-YzxZ$dV&9tL z*mu%yo;52C$9h1nVT6riKGV-2YwgEovfCJb;r?-_ z*3ees_+1w3X}z|e4VMjiw0mx?OIztVx|c7oXNKVz51xPhv-Ig8J+3$A!NdI49Q}8! zL$glO>xg;qy{|prJ9QOT3>@_uZ1C+Rj{OVI$(#l2 z<2qtI-X*QvS9;7-_NRk0S##8@Txx)y^oGGNyuYgYVc;Nfj_x~u_OCWf9Ph(;9?Tc+ z;V+JP#dvrC=_d7sbQTT=D>DAo}jTXn} zU_4(onA1K`9R0%ku>0$69QzIKZ>KNJ7$ZGDjE~Ph;sqt0B#!$p^PuCEqQO?#|lH z_f_6|A3bKxu^u!$>TUF?kuYSWW$l3lKI`q`z}oNeN`etF(^?&h>Z9R0$4xwJjc zE^+h=?asNl(s0}tIFGPvnZu;V{NsB77m}XZEslPs-4_|GImRuhbX2(XhQQC9Z_xXn z2gLDvd)nQa^zXmK@%>oNqh2YugW?zu)|YFiJdTRv{z3m`eDTb1j^YuPG~IFO(a-GH z4(2^?I7fbt|Js_P|2&H(Iw8BP&y2_LCch2mXdd5MmOUvw_G`TNS>DCQG5`3TNVcLy z&P%T-@_>F`*XP~^al8j%9{ik`;i5S9YvdNpxMVnaggMI8GQ z_PdcSgRYCCU-5akoxPMIU-tn_IzVAcs_~J`n#L>@; zN0IXtBE>Q9nFsk_?=c+fB>RI!PMg0;kM)K3D&I47{w|K|gMK-Xb%o)$KKS0qohoyF zNRR7-ednRq)*SOCZl4oTR(@gK__S?HwAFkWk5LiU9Oql$NS+w!O-3Gcsce70cE8hr zSn2=aSWh{Rse|*y7RUZ&Vh{WOM^IsGSHrRHa=sgrN)*SVkeEZAjjYl4kOP%3%64_-xL_fc4m?)Vzo{y+^Wrur8ajd)4Ykp*j;keGZ z-j)qqYB@Od;|ui;H5~Jb_4HM*SB7K0FrSO|$eB*#Bggvpsc%P1j?V|bkF@6KmjXkV8NCU} zKd#F+yKAS{_&mW~!tV%oPO>?pIDY>&`mFuAJD|cF!!e(kR~ZHdWsx59ndiJMp~bU` zV;=Av;JUq^;aFd|pMN`K%L7JyN=$ z6~}dX??aD5Rvhhi|7FcFzN->sFDyOYzvOp|vAah~)oOfEar`c(b~*d~ckaZp#l*Q` z9dRBLCxsb~=N@vN3kwyOo})ZCu)3GwxIXwjd*JpLhGQPY%(U-Ik{q^i%mbc}E+1)M zLgVB8ALHS)pjlaQ>`TZEzZSc^IQH%2^1iEJIG&SP|0XB$s~|nr1N!-5ip_>&Js{V! zYNm?PwX1lQ|Drekgf++Uef+DR(c?Wj=Nq}RRc+a2 z+^Co2VyZggct6g#Rf}DvOF++AV$XU?b`E!@A^o(5Fp} zX5zRmsdwRAdmnLJm-OG<>q`vhC{LGv@@^?T<|&_BeTtr8IQoTkJc-jq!*Ts`9&cT1 zwUS-tDdYRBK&;kQ9QWUhMax@qwCm+%&9OdTFE`xijYQn2=Q_G$TaB+EIL6~v=&W|) zxKEP{e-OKaIL4QD-~5R*9OFi=Mv`J3rN_9DJC$Lx;aFej=Y~Z)cak3C#(5kmx5AR6 z-OF_|b+*#ubKSQstvTA=G_E$Z4^9Q!8beQ20#A8|Za z(0}*NUN;=$#(R*kJJuZMyXQwdKiM7PV7^Zu4<0Ozb&`6ke|QWL$2!UV_e{RUL#^h^ z^Fp->Hje!P`_72cw~gL32lIGcEY@h*j(Np(w5!RAQ0eiz z6V7Ab7|&he9Myvz5s$;f(Jtq)<+6=q{bOFOj}8f!9_tm~k7)B_XM{MO_c@ON6&4>7 z$MZhzp6zk|usGHO-h&i6Sm>BI)@Ry1eQ|@~c%I>RC!g-wI7jQZz+?C0vdey>AHFBv zv*q3yaeUvAzw3O>ZSQ%j`7&;2me;*(HD5j_S-IWmia7QWT$gzcjWitR%loSd*Y_EY zb%=d&vYW-P$}Ty^cj#klj`JP)p`XzU!un-=+jnrjDZ6~0%x z#xegmzCQ&b?n$o&#>ek}>zv%TitV0><2vVl^s>kF=i<0N zIFGZ#61@<|^^tkUM!Wls<&$k3_bu+z$ z9V@i4zmF)M;I84^pvSuFQf0zh>9J2_|CcW~^u0LxkNw}a`PLlQTk5ULK1h%6;nD8H zMRg;^v7Uz2w14hWBK4{t;@Fq)oLs!c^?-d-f=kvM_tlhHS7nx- zqkEryw;yK{$2?_T-Hm%AyExWezRz_pacXxfj{945hAD<)Jjl%~RyBw8nD@-TgSDd# z$9<4~_6m8LOM2Yj_`LDfLTiqGskfv}Zt3w}ne}C5v7Y(G@%&4@InA;c5XW`I^WfJ0 zO+3UoT1TVD+c>Tx=GC$>(~aIn|jwSa*4^_o!{k%F^@0 zJUHJ8(?(ShR}9>?8ut4~-nciaTg~?jzBfIP(Z(@fnD?8?RjnyKf7oUI9ZFKBzBu+d z^j}b|=MBU$zT{rDY}Zg6_d&kjeqwOCM&cNcHCgPR<9vNm$Xguy9NMi|J4tgZj`2v< z(wf_k|3_6nXm|_h@x03K7SHC0(?%Tk1?H(&kr9StJz!swt@1a+F`rkW|BL5imy?niv@rt!cXhU0!jy=7ypIez!# zzv5{h+2wxpKYDu(4;II~;=SINt7V6XqhFZ!4L*G~oFl(!XCgR$axkIDWZU)Ys# z;#g0qH||2vcyZiU8Q*&7o55v*V?5{jKT?>+3M}BV7*P3I0 zkS)N*@&A7D_bBqNdpc8g7a|^v+na#f^Tn~>W#0dqo^F9S-gEJLwThb)EfmLiu$~4! z3tJ?P>w~}BbL~r^#o`>r<5cXzhU5BJovOdxd4K=!UWS_vzc63g*KWF0b_;@||Gu_K zvP@hqaMas0H+;D`)_dm5j{~7A#4%5K4sCRQ*-CNr3-2+@r>nDC9P^apYvOLrF>d$r z95;GHFkj~1otS+aWtV+1^`5x&4;9CC&hG>Ks;t^1j(Np-xOSemSse3CrCt)d#7qInE=b^pu^_8;y97%ks6+9&zli zc)xZhZ<&2o^Xp=lI{xhaMEiK7#kV zH8%}29P^&{r>C8JAF>)B>)Nt3)*OFV=uOe3hov_X@!-A{8WQW6xT4@#4;m%Ed{P|m z8R)-^F3C=b@OYzq>Fp-z38^PnlO)I~O}6yYw^X`)1LKv*Nf9avtf= zCO>b*vF_fzYRz$c?(dy0NN*|p%=bV?KiYOp9QzWk^N{=qy5E>P#4IL3qZZ_E(C58}A5^8EH>R_?#W z(J%CK*@c}A$9lzm`ox(lAEn2*(a)c5SaY0jnm-jkOON|B<5971%Sdqr5D(@-1!T7))-UJrVBv&9;`p8d^SMB* z+EN7QqE80967e&PE9Jw6PmD319;y-KON zRT4+P@Hy<|EY=+JGACT?;g~P9yKMJ=;~rg4R9|-c!higov9NY`8;Rq(OpX6D z8aya{V{!B|^I&A)MZ@tqC(pkgAxWA@kL#TA@LfN_aLiM__pmZzxVQ9}r+s4C|IT*6 zRU7B1u01>d)#&kg1=m}#IGviwZbA5&{d1#Ymz#^DUwE&axu%VyU+Cw+`jc8nZyfA0 zU%q4yXe*BUCF@WY|3~e`aeXjPGdwuZNgU%ryT?D-IIa)g`!q?J-&cCwF%OQfM8g|h z#8q~{ZM?m5+w>I2c+k(u;@mPE_Zf0MQaA1;J?^a5YKVG*Iy7U zJ^GJzJh;1!bF{y?9o{iTdbN-*^z)%Mzh;PIzR=H=XRn_n&QU+q{pYy3;y7QPlUJ1Q zJzpI2iuFEax1|fjalTwfxdvNvT)$;zU0f)=KJW|IuiF;CmEw4R%KP1Nse{*u<32;Z z$(c?Xj`ffG;J$*D)=H25BiG+Ez;LXSw0m$wm-W(PUXgpWsO1K6tdm^l_10N)%$N1I zoI|C@=LYYq+n>+F@|WBst~%l|ys`Z~SK@Nk+-vA{tYhP9#<2+|{O6CpW8rgH*I6?o zWVa0Lavq6q4?iT1?@`cyr(S(E9P@zZ{d_-)9F`vI2G{xVRGSRP^+CJ$Q|CG&J;s;w zNLlc{;TT_jSMFJ%`BCYS<2pK5+nVFO#g6)yjb48Te%`Tr^9kAIdq$i`tW&v9ier6d zo@T$h!f?E|;5zE_CetbDalO%QVBD*Qqn}w1Zl$hw+RA?%-#Axmj`59~IoRmUf&a+e z9-H@^>^iFBPiH?e9Q#2AqU?^cqwH?8!zej8`LWyw+RUaqvatn@hFCxseYa@1>7a+)Pa zy;YUYS#rGJjcGadw$=Ff9>8f|YmVdF*!`E$3q&0v=Xt2zJ=x{^L%h#9c|YBKagO%Y z1Mj9Aj{7R}bn>_JhGRanpR63G<^$Pf9pXIxBpGiw?!U~JOqu@}j(JMG*SX3)w2BA0 zoF#W#a-8pm8igPI7rmg4FD*IN(<41{Jhsx~bD`z|)*RGME5$cWS1Q0aV*5^^?%{=&KdEaxZ7*L{U@rV}MEp0d<4HfG*Aw|d zz3WbM-^nibLFV(G+`;d~@%cXWW=zQYQ5^HCcP0DpFuYEu{4CB?3;kRR1N8=T-Wza}OKGx=U`s z{7=87Hwoiw*~b2Nw{mQ48ZXm7oTEPWN_dj^;@HPB56&L0WjOXjTu1XRA2l53!S~3r z-;I?(b{Svl?R-++aE|(+hwp|P&QU+~{!6&wSYKFAbNu>hIMxm3%iFB46KWphIFDMj zGA6d-7~f-Cz9qHd_tCv~5f#O8pW*sw`gTVpajXZl`}mtR$LAF#3N5N4J?1^*J9*Wv>f(yR&s^v4 z2XCw^j&+>hM_pNdx1KoGamKgWv!e~f(SNj?uI}>2;@Bsa#dF=hJ!dx&$Mr$GQS**_ zi=&^JrzO@}bJPo47N@E7`on)*AAJg^@Day6<$Q}(4K^I}ly;q3S86Fe_6O7(GLT!499qIzJW`vIo?z6ycpP7cE@18 zjPJf7z5T>7UpU_?3p?}^$MNxbS=frDhGV`kz7?KN7$7~aOWOVP_Nd{wzfrGkolb+L z$9&=c*KlrO&G9|PjNZ$Q9{tDvlhiM-&j{IdbYGHk@zzn|+z=0*FB3m*87PkXAm{P( zQ_3;oxZdc$u&DZmqn|S%|9-_xHXPR_^%kZ*Z8-Xwd387Y=&>3fIqFp_XU$RXY?p51 zrB?&~5B_e?mU=dh@nBvR=rS!tdfZo8 zud0sjJ=(J!3Ggq&5@NpBYNk9Je} zHr^(V`N#gM+45i8#W}hcZP@s?;W!W0q0u|b?2ukIjF0{4+B7a<;&_hYdUFpfyhj}C z2IE$1;Y-7@Z=zqWuD5Z_7ut1Qm1D2$PR2ay;CJ7a$3C`SoEJEb&o_hr0dWPvaUDf? z7X3>c^NRQF6@79=h~s+Wd=Kr5b66bf0e@d$?@=$q(a+Q?^>nY{=x6rNzAuX%kzM+k ze)*W~;Zbp{&*U=X&wR{^|?u3v*zfRx2s>? zlOFFQ7>{8m<2)C~ew^!k*4uA}<2jVi1L9Sk`$~Gu1NPbTn^<#vPwVQ4xNoF46nVQ^(u$E%P%YL{c-#MvvR7m zHOKLl8om3E^tf-)FFST_jFtHxj`fdqZN;aHam2Cyao}nEIo4U+pm<(oWzP_ULB}z%`p!q zSNAb`v$1|T53ecR(#kI5!TL9F!5YIkI(HXcn>C&E*#9wZ@gr;;>lN2|-dzif9^XTz zUWQ*))5|WO)A9d#J?pV3lQ=%d;l4UBpMI7frKhHdAV&colQZ{Ghh-|&u`49EF0zDc{i zHXP6K%)dE@T`%&XPg_ZO8O=fQj#k!*emahwPH zm-QYYp5jK3w>v9JOSZ&);}Xc5<3kTO9i)=F6*Yed~$id7A4Z z=jl2Pt>#<5Mti&O96T;fG933A){P!7y&6f6`vUDof3fB`k8vMI7`;IFkNNjGaVsC$ zWuMLX&Mw@br8wpb@AV!B3~Viqb%XPWb9zBrajcWfgI|vtwi8GHvELo^@r>bE4>-OI zzib@W8~s$NGxn^M%Q{- zeyjH^+E04if0-{&hrc!)^NMjBJ0Vwp>9JlhZjp;R8IF0y^O4_z<%VNkaeUiXXB;5A zT<472@&nc!e^24?g*pSJ$M<)+-u`+MXOK8g#Fy*nN2xqR#PR!m`sJf<=Aq&kH{RPu zrgt4Fj_a4tUFH-@6(ElLCEr_WJ*?ztar7VW3Fl0-<`|ETw{MJ*UTgS;=cB%3vrQD| z29A17lk}P_j`ffJ8rI1kSEWu-ie#BsgRe~}GW8jg8Dy(aB!9M>E3{_2!^OJuh<{6f9$ zC9kg#m)8N8YX0`s;^;r>9eJO6ojCfh6Z(T%Um6;Y{-a;KW2P96{^L42;W}o$?9zYK zi^+A+aI9-_XW8GE{CsNT=x2Tpo2YP%(c^p>k9eg^Z_xOd&+G92b(>WhY&h19x7+Oh z-^ANQLk!1xjH+(mhn23q({PUVk2F3W8?DC2|9@25t)SsJz90BMx7WM&FdXkKcn(cA z_?h9D2V8FjM`sJw_?QRGzt9DX3`f84{$=jAX`7_S_@=lSW!J}cJ88}Fej{f@!p+k2 z#yVpDy`1xBhdA~_yocMlefLgrTyNA%7jrjE9R0`rZBfpo;o=xK`gvF}YmR;K)$Wmd zq&F1v<#UpU1^Y#a<9zuXwp6XRhU0w8e6e4b4@dYMk{n-{AxJSfsUDAIg(mg&V z&QV?sE8gn3IMx^1jZ<{KCCB@<-KDM@j`_#?u$lcwpOjth`?ULeq&3$V{>wYn#!W-q zuGh8qbDpRhXJofpY#aFh-*Ylwer_yxQyk;VbvZ43x8Zo-L~hW_jkl!7d}dz~lqtg< zam;7#3mrQ9-xJ5UF%SHE?lBze2G0vWhuApAjpxgGcP~Gb-Hz}x`;C0Nf}e}y{>$+V zy0ZU;INsBcyO?hED{;KHAh*46tJmV_XU5}VB^$?mi+PZ?{CuOg6!T@j_IpT=&$7#X zfqJKpPx~s4{UqOC`|{&gq}4oVw@~p7-^FpA^SMyRpu|7LF%MXu6E7HVIIc_fu~Dn7 zIi4@0!-qx7E}svwzfUrBPpmBeaJk`Uo{yg1p6w)#^^fPvAs=iU^MLim^Fy+@(hGoH z=F6C@tCNUh9cTW%Dcvfm)%dtR3N@H-IOZSiR-H6Dx%5~M$R+u@AeA_-U*=WGI14Q~ z_E)!l-!L5g!u>b$^tAM{%jcYo@2%p!GKr)A_@s=z%t#1#ccy<*EZ)GODng{3zH@#X#-*5Y~* zaaF+mPrdp(tEV{j8;tMz-wO;!Ka*>cJWWaIu}*Tn9kNa}9M=(_2Q)2UUr}z;<(OP51M?xY&f1PR^dDy8Y_8S>2V&suiILy zcztn_X*p9**bmUi<$3;P1E3K4Z7v;FqbEUKiMz^;%H-Zrx40taGU6nLBr1 z!!h1ym%hc9SRDO|+>=@lEslOgZfU=o{Y|^9@5yDE7-xX8AM2~7^EAitI?pa|>2-ts z0@~ZYhdZO>X+P60{g2{iZT2rQ9G}}W zU%3n~w$yN32YF9F+qm8q$MXo*r}=N)SRR$}-uQ85h2a=S%tI%_;;l3s=a+eW|3C39 zj`7C(7Tt<(U1jw6yqo@4cTc5thGQOQ|C(JmWN|!~;`7iMnO1KwdbA(s2eK^N_MZcd@==w3E$9spJ4%yzL4ZE7p8=*K49J6XGz_QhT}LmA6eH-vN+};&WG2&1ec5+{fc@k zk5;lc#xM8#-!F%Aj9;#UOTTZsY})OGyv8{1I%3py!{r0Va{=e;FK-%-`R@w$Gc#Va zx@9=#Kb~{Vf49Km=vQpF==Zx8M>{iqmqtr}+q6qNvwq&6D4e66x$ZYi*wE4&54+Hx zJGk_CY})1e#`(SIk^70VAAcu!!t8)&hGSl19TBiLoTL3{mop)6Ul={+XXdr!!+yRt z9G@F-y=;BEX^7#NpXpa~GFNu8ScrWu~? zlhGT9`Q>*%QU{I-H5}J1t~0;mEc|Ua<`>>?`X}x^$+3SyEe1u;^hb~D7W37It@mRZ zj{dv~zbox{I-H~Zc)xwru|~0sUQ^hG^U-K-&G?36ey0B&iV>2~a9n3tCqA^x^N-@# z?#Kq?6B~~H!geS7dL%I%?Z^Grul_?Vj(LOgv0?ari=+KGADwSxNp9NZy3gnPJ?}M@ z9LKSJRkJ8@(PGz05f!`iO?lShI9}%6`4vl~GJ33YcrKN8OWm|;yc|b?gPP;~9z1r= z(({eP|K6-EZExCT9-=>&`j9iL;kd70{u>c%p~W%pa(?F&Nu1s2(SFpcTWO5N(O;%v zz1-n>%;IQg>cwjmGl#M>>ovc2gCxiKsMS+*9Pfv2yDYsim=8Y3`7o?WUeiCG1G66L zHZPg8;g}EDzeb7j6fhjuw>_|5{T^`(8;)_#cx&F*!{Rt^Jco-lCY)nFrJwo^8*1qd zfL(Y_7;o!47t=piaMX+ES)#b%=+CU{%5G0x%5bc&sONTklErcTB{$_qSZSk2yO3L) zqd-~1(Jq{~RIcG1{ht18*Ry^(qvs8~@H<{Z;xDXVI6j}IpPs8!t&-um58!&9)F)-|8ZS#x|E@s;kX`gpVIDTBa5S-GN0Zo{Jndl0xz8B9Pf~AG+<}JUI!*h%ndo70 zk*(85FTNXO^qBu>zg@4N3^p9?M?aWX|DeC&80TC+f|q9-ZaBsf?Q(Cc=2(|Z+0fk5 z8-+OHIP%T7FxIq7`;Eont%G?Z z@7ZNIdvKiJJ@vj@9M4%f-cL=6>^6FgOX~I6G;^=vXg~VBOWIxs49EP;Iyj3bV>-1za&4afN4ct6k8 z9R1+suKh2J9{ry2*6io57`VB*k z9`hRg;6~$V7RU1@>dkH)&M|(O*G9FzWa&+V{m5-yvFn%Vp9?t7htH9(7Uu+xdRb1d z`)%}ChjBif?>UAUj&Z~~Csl?k(K7$x=r7c(n>}fC!*Sl2pUYP(7sGIo<;jEJ!a2?x z=i_TVKTD5(MK06kOtDS7jC0!W)}fge$9)RN>v;33#YN^X1G2itHSN-0sOMTNL~`t3 zaFzD)lpe?1c}$7~ilbhFiM1rh_cbQW(H!+Etc;t`w9D^<@cDkLgewvm&Kds9aeViV zpVV;n;Ap>tOSdL79Q|+dG~4_VYhAwNhNB_Wa z2l;#I3!WZHZ~Di4&vAH%4#;4*$m*OgNxoPd$4fi!Pg*FWvJ2;TLhr=(hNIuJ&aOUG zbF80p-+PtS==H?>@;rN1+I>!jqaUz7Et)gb;%L9_c<%S0W&6Bpy!3cc)7HrL5tY|LA|c(rb?QZIh%a?IDU_tb?n%n6m<;8b8qJHd!d`_8IJzP@qTn^*1&KaFYOmxEmcFq(XZ(DGuni6 z%+HL=*X_?*di5~B)T{8ZxtD2|`*`-RaJ~M`49B{Ov_cV*+y2bHUA9Bg!7{7cTRek1|cBWl&JXdjDraAU+ z(&1h0jb3}q8^24p_Sh0%!`XuiLcYKJJ6U(balK^!?#B$YIOa*lTag5(EROTRaTLzI zuZL-ub|%-YWH`rl)$dBx17UyuxcvFhV6i`c^=+1?m(gp4@p3;srtQRm$}Vg-`u-1t zm0dXAd^cD68IFF+=djD)H6LO)o|mxQj3q}7H5~22eE*}8=IE!<+HN0a^n76#a*0c= z9b-7wovg#Wn){439P=NaR}39LZJgmE%YXLox{WtnWPVkx;kZeLqn&A&E2FvUwl&uuC|{d`i7Jg`Qe^^grg8G#%?KFzptC zomm(6zR_v1;b=d$yVhgmGQ%;iF&}*OFR;RJ%vU_WKQ^X|#W8-_Zqv!DEsl1fA5@z2 z!s3|MSZ^F#({iQhAJ-51%e38^V|?V?bH~!-d{A%p{jVEMyL|r3ag6`aZIj{ne3fz55CuN@9dHthNGX7s~FF7m*JQXxR3Hq9%yl#57t9YxlUOe z=Y#j*e&=!DZQ3PAJI5=fxrt?Mf9L1jZ0~(WuMXma^Rcmeog;?h{)p$SRagH$YB2 zMvu?!Io>S^ia#|R_qEIiopNunIIh#|U%4KsUKl;D(`>i!xU&|=`Q>x*7wZnbGUG`r+v1ofc`g;bWthd$UwH2G?AnK5(=Oxf{Z!lY#9z-e$9Nn6INvLyHye3l0Dgye za*CrL4M#ik`9~l77@rKsyg@$=9Gm{D;b<3fgXV^FvDOQ^pEQ=pPvU+ z4(Awe97pcT9WA|uh+lFEx4lSV+U0(bcCPbbN-D!eR&Vsld^EM;BAd5>0Y2#r$2`gY zEeH(fm=Cy5sW9=LrPl}J<$UyQdBxte%X=-XPeYDv$YwakFa0X##Wxlg*?2vImt;43 z90$jn@K-oTKmFIa#m9%19-q&!f4$}{%VpZ-y(O-f=MH=4HXQd0qpz;UbIQby-H2FdY4g&!=4+j#?b^AICe+y-Z1?N53K$z5GDQ(aw1q z7b<1+XlK?DA#F5Ay-NWLOB=n`urvMd)9P{+3>Vq{sL(1u$?^Hy^(z}H8a>*N{TuZt zcO}C`7QYqVhja8(+BsVBz$!+s8^+t{yzTeRYIv=vZ8*j+ADs^LG@LUyJ}+zT*Q}4>crME4&U4nC z?Q1yZdp=*ivrluZbDrM*-OuRtMgKV7dWX9VF&uvvit*9-SK6V5W8K7ce@oUx!wkpy z<$Qe0Q`O=)zwFneViLI)o_umTX!~wbIiNE$Mbk?o@quevig42jJmvx4t zpR(N=#n)RL?<0{LUboG9qeuHOAH-|-z~bmv)GO5`;|8P0JkGl0+l(3;4M#h3ek;G; zu-R~|BeXzDlDptue6Qh{Cpq3s zwYOLt=Y#iYj*rN?-{>(<^7|WSrf81ueI}UH%+ebVyKudXmiW#Q({5ybnt5fZ3(BA9wBhJ~Y`0V8suoB8qhHWTZ<2a5!m?k-nqj0KN7nL6S_pFf1CB^Z)WMHxGl4CvT;h{M`51mju*Jaag zKloKNym#lEsND_2@%tsr8^7JJ-83BQ7ml}R+f%m;$MuqRZ1mNe?ih}KMZG1PLM)Dc zMJ{=|Gxv=i>v66#OC2jbFdY4ge(t`*F=N7bI(7pKa zj2_3!`S|jzqQ!CFO)h50aEqf|lHfbc&fgAN9Q}oM>1kIozUd$1oa0?$AI?P<=PSJC zB{X_vU_bhOub|3_499y=+^1Bz{3)^FXlHUQo^(lKIIh2Z53S~>aE^5e{cl{Z2FZ*b zf0vB*YxitgYQyn49q*6tPBS)*;kd7$ofCCwliqNwuee?&FWJ`Om|vK$y7@1*IOa9( zqc+W(kwLY~@#frIBctJHKh8((JARoA$90DL#_O*%$9ppU(>d82y&mu@+OL212@Zy% zUok&BOkR=OaP%ws>D}2+EspWay7Ty!IZj58ahW-Jcbn&QXP(B-YdGfTQn;rY`+Y@= zV_nDbw)i^S;uycolhtC5u(-(L_dx4;`Az@Y!OqNUgYu*+VmNznwBK--1{TNqnd6w~ zG1cN2zvMoy@hzt8Ozz~5OC=1){C5H8vC)!Vwm8lQ{r+Oou_cXO3yhas*}_ZR4aes$ zy!T(LmY0X&80Xxdx84w1(Qu46-piP_)3uV}=zq*>6YjRJY`Dn$YRYrXu?}nT?y;q} z5O$%z?7ddU)3nR_Ahn(C{k0>HCR!Z*ssX<@^75?3MHavRypLbYv`fEY{MHJsXmPYN z-y^sXeT2m^uT3jtd#|Na{BVx`$MxJT{vk{673@d9I_Gq^kr@Z=!tL#y+N9+J(PYd8I`Yi;FBS zFFz~S#^|wKo~slI@v}JQ1J)5Y;|;Mm_K*3rXu_gxO}h;-AIvXzH-~mKTx8Fqj_-5r zWH{zY`b+e(XSy1W^TGa|_pIP+INF7JGaC-GIQlc^?cHSO?naO6CH?f*Jk9a>$I=gH zdm6oey^n+6kMh1zYJlOGC)vMHm%D=u$2ezvq%56ou;G{|X}`_^Wri4z_G7-PJawSO z(XY6Vzgl&W#nG>LPSbmJA%D{@*Fo;%?hUY=NM^af(QT#wS9 z*|*tnT=%K>F?-N9!_j`!t6#PDcEd$xKeyvqcN>oD0{69!_itJp?Z@X#&)#T`<5>H? z&K}clf7pd_o;>}Cy@o3dj(+7?wB$a+@jQZhOB;N&xX8{Uw)A+u-{>)ZsrP&QyaR?~ z{PKOUpxJ2-8jkVH=i)V2g>#&bFuYF}`{v<8M$Z>^;rk!)TTeY^I6m*;I65vFc*1a8 zS6N@pU%S)dnD05ivA2D(IOcoKoBv7Qlcrt9FW2*iq4!Q1F0yrDaiJt<3>R5kHtX(k z&T!0=w4cXd&2hXb2XwdeMq@t6dA4|T#k9-!#ktNrnVS5X;dtIo`|aD|e%)|94`aJ_ zC-zw!?OgqCN1Jn+WDk1XFnY8z^TGP~%WoQvcAo5PyUsX$4d-ZQ)*E+HKC$!|A8dDV zo}gQ%UFIR?XZI4Cqh8BWDQ_FS0g=ty&1Uxv$NHZ8sMzmQJun>Sjq_1Dw2s9^mS3jE zm}GIxFN|O3^ye&&d4tdMTFtrr#PpBzM!#zK`0z8sao)&f{#5F@;@H2C?WHA0z1gvM zSRDO;dRdC(d}-Q^%n#zYYmW2LqS69OZxH-o|6yByo{)8Vh-sJmH})^SYm#?{L}~o=5yH9cFRN2h5YDs%Vbm2&vgGj_KcO zjF*0pGWLK3hU2`E^UhQ-q2V}ht?}L8S4Fy79P4q~rG2rN7RP+WcI_&+`p2|Oj{B{N z^)<)+QL>&>6B)f`unYJ5-CMY&G#u|euztSTd$+|gjyT>9gTGl^Wd7ndzI!UuF6Sf6 z-S+&s=FIgLM}Oh>%;zo1mD=cWK4|9}+ZS6L?M%O_d`NRyQI|YB^}x~_3OiFTd!{() zO#k?PH|Hba_EVV*$2ykpd9^te&T${b->qtR$vv~t3qb#PpKHPDJ~<2*+4@oE*Bl4K zG0u6u5gh%Ni!J?jd`Qyo-&0E7g_v<{&FZ{ zIL0OO^S0cLiW-jd#&f;<#V%VM>mlAl$>llL)#%aAwBJ-O%`rX#I)rn)w?sRKCO%op zwA&zhxS`|y`CIfqx0Bev-`zjfFdY4g`@yY)^Vc*S{fgsooEXk=yqw?C2h-Ftdez|v zT&LZNcdcu<$nKSHu9LH#;dsuF6yKH1++l&mF^}{81&2u&>l;1#3&-1NM~sGsqrZ@I zIvvh2&S{rkneR6?dQD&#=C$%uzj+(Z865rK(5BZ-4QCII`MGN4qOA zx*3l4bII`2W*jf-9I`mtZ!ylfrg()(j(+OcMRW9f-+|#A?>CYAJ@0uBGmhEFS3D29 zHT|2v8ZY%$Ezumu@$~kCVMfmf{=ztN?)r9=;drjcIGS^m|Pdq#2saE953h1t>ot*qZe7;U0bf;9K&%v=kKev^bF^i z*XUO%y+9bp&xbImwcSD1FW9?_paxeZxmIQjv({Pn^)+J)aGF42ACYNIy<{o^?L zfAL>$IQl*F>CW=YHyVz9&-sHV%i@?%Io{NVif=V~951=^Q%hJJ z{ebsw-iJNiX7uQ%w9EZ8bGI9g^TGA#R_0q4$Nur&$eaA(9Q#MVKT@yKPSdV0=8f&9 zeKUEl;rKk6~Yf^?bp9* zqvJ-eA^ad!CEIg`3FF;P8mUDJtu=Ij3Ue?()9tB=9?eaX9dOfQyziK${ zLs=h`^vZJ0a6D&V{;Schsl`QRm+G5_-7tDwx9C@G4r`A4+Gf#L-ZFZ1VHfVZ%Lewl zXE@fyTo=B(?|5uD=5hK}+@@Wh7>;>^?>#MetUxk3y_ z|6~6~eSKhYoDbT?DQ2d3MvrmH{tb)Q#Ns#~)JvUprp0kSsJB1;Rmss0W@b(H-t>=p zY`1Hknv$cQi%WpyXuoIW<9txNoby zEiN*@e^Vf8+_y(_Ej{j&>8C4iw1}1MPycuhN55M1E=_F1v5si7($)_i$F6U2v@_@J zm-_%aqenY)9lTpdb3Ffh-|(}g$NPz#-*!W*Co%2XBabuh#uz`=;xuF59?#JeUTF=-=e5j# zYii`pXgJ0j>!!22E7%*3@xgu1qqkeK7>@ac{W~10Ir>$}82PdqJ%5asa9F_5H_d z*&UUgdA`y2Ynoh!V;iMGVZ0Fj9xd)2mL-rNymbQa|TDh|JbQfA;WQ> z%=cY74NX$maExD`pQasK-QqZJ{GG>fOJcbgJ+7G*rX6<3>0~ ze`db=^`f|k(Ho9&@Okp{ps>n@i!6TI$GlU`aGYQI{d@Q5H4VqOe2M!_i|T2P-#d)s zS=!QDj&ab=WfxR$XxinvN|qnb(SDrYF?qu|`YH8N)U4@k^y;C1Tz_+&ebn4= zk$rdT<%?@A43`CZ%zv>zCU0pt?n4>p(-NJwIQkX!Dpu<4WAwPLGEe4g^v>cU+s_0Z zIMdeXF)kUujpKc2uQ>MaR0_>;K9*(4*TLuwhW)zVXlp$e%Kv8q%wH)Q-+UGS4;MWW z?qzq)1tuD7qxZ`%oQng!j-LnFa0>#%xf0-xKm1|Co!%49dBg|@|31fV@YI&OQsuTa zj!$;sTuk#fdq-=GW}H1*hgYtD$Ni+;eT$F(2aECNE#$xdJX+a$fByXWha3KSo)L-` zE$*McjE!>qXC^bGy0O{(^Vom>it(p-$=9-dmwbO4`SZ{I>ZO|;v7I6R{pZmqjd_dkFBwv+fjH}HEE-ETem{%<>-+PBQt*R@EqB8BsIYTu<--@I+R^vc)C zCvQRLf<>KsbPZSeU;B?AL~OtL|Jq*=7T&)7-~Y$|{dcSVKZ{V4-ab9LdjC)Vc9sX0 z9skY?=P&E2@PFUd0Du03+dG0CF6;{L#}I9Y7XPusj31dcn*aabe&o}3Xy39&Ys)Nu zOyOMM5C3-_rrdlOVZI}@e_%j(`$@_e`Tzd;I}d68)Bd@nTcXx}E8Cg)+y41;k97MB z>i%aQ{#MH2UHIF6lmE0ou-l|M=HEm*e&1HzTbscbaxPHFxzK;dzwhK@-G1}J;q8~T z4{!KC|M|E5^#5tUbm2Pl%)g4XeV0fSU!ElcC8M)PE!nv!~c%w!8I}UOumQS)vVAh}i*yk^| z>dyb(e=z;a)@qr(;kZ6VT+a+Q&Fit`BGz$++dp7-7Nr;QdAZ?Uo%xwfacM(s`&aW( z@9c_;ct6GHrT+L%auMG%Fjw2vvvz&@cy2;jG8rGWVpty+7{Y|@pJq|i5 zF5+`E!`%$%n@e$=54-svB-eSMuN5bM{p!w&e7Tigo*}ke@Q#&|i+HYO`q%ZqGs(S; z@ck^q<+|D2NwpjCJ3WTW7j1GL#YNno8qRIv{QQcGxW6~tj=6UvH~HiL&b18Zvc7%+ zr5Ew}o#BRF992+pY`5>jBa)+DiA-w?D?QHdsr(Kuii=pcn*OyPSgokyBAyQ$F8}Fn z#S}+7*Lvz$TyYVf%Nf0@A+04B@p+8lc8A@U9Q)V3O6*dq-OdrtBaL3_X5}Q8Ey8yy z4CmL*PjV6WC5C&H#J`+sm-!%L0oU@1dse~Lug<$`u3PQlHgOqRGn{LMJpKlH4_k$E z6T%m`|K@x8%k$U8I+^})pUAv>CZ2O=!|{BH{_N}c)Z+fHb4z2tOkLyqD!b6H_PR&w ztvK2_=ky$X6~{Olb8t#O#YKD%)$}j^#S4<_*TFXbeSJErztY=1(RO~Th8~gJzK*tf zTa)Y@p!AskmZ$q7x%lU8*TMe&mj)|6#>e>SiTxBuzu$T0>k!37JhwFVtMT@gzvAdG znSVPDjS82+bKLN#a5G!Q9uXBT)_^^dyY|6$-t1G^ja7QABVxOTN{(@KeQ}EMO7A1u zec*X>a#Xls1LIFs9Q(KC$+PK-<9q};oS&&U##_DVFM<@uy6MD@J98BGFMrAUWxnDf z-d`|&waFuRf#M?G%Q9R=pM?t*7xBFi!{rzg(W$kH~b3QZP`BN(HFdXwe z{b1*lmAlk9Uc&E-)IPjdaS?wP*tGku|Mq=~qg|@Zd$C_}>|f5E^A9L4;`b6wyKyrQ zJgm5K5#CoY+{G!Ejw$X`g!{UNOSfEetedhesdn7x@!kpN_io!0XAH;nJmPzvrrpP9 zmz*~opHI*(=QEwUsK&8so9#NYy=$H;ihG^$fA`rHS^lv95DU+2^O?sOMq7MRHtc;`Xl-ru67n ztKW2rk?>DG;CT-7M#=^wV=In+aA;-$JH^p{Cl0lYt2oZvz*!9wDUR{h^+L=fisQbq z{m|Gc6-Ph4IeU-fzT(_s<%Kt?lpg1;^S!pI703DL_cc=*#Zj+{yL-B*aCJ9(XH*>9 z?UJ^*z2Z0@E4;I2jS9EaFI6_haU7S&Pm~<{H~MY9oJx=Lwz%YEN5wVAIai=>wA_kg zyYChja8exo@7KN@c@)R`d3KVj&WfX5?9z{x+_(t$z|FdvIZv5+?MoM}ID#G*NBE(VvqPFH=Wx%r6ZLgP%g;eIB$vd?_B`j!j1!WJH_0|WzRxM=t=f(F z9auBJ32T>^T*UkKhRe`lh{f@q2E8E>pW?V*81a3{FvW3x zOIJ8GLUBB2_&U1RD8+H#-ERBi(TeL5&Hlgdo16J4x#@}ISVzRaaea)@<2ucC!R2*0 z$8#T^hwXlnVyw|?i#me#b9ujYlHr(#IB!?y^`EZB%Y2aV^y(Rkke z|G2Nncp>q8#c@8;KN%yrF{tm~y^py->2cjEvm}<}iun$-soU3tm9;qDt7JWtBlS0n z<2f+rV^v0%g{FUuU&eWX?AFUMmbo`!PP;ssyey9PM(hMEL!szjefm zes-%2N4s$S9oj!sa*XrJ+n23TdR+G(U-e!a74BQMVe1vgec8(P9XCdWn=xh1rl@ev zKl*M}9P5KRj?cF#j^lMLl6|}4=zn*r+?E{e+^1oh9ZHXW@On_?orZQrms)iVrC+DUSZKzQBRYisL!!ymro4 z6}L6QcLz+~?f3BD4aIT1Bi{d(9PL*+X1|+J(aX}I-W|npKjVF=%YDVMzVc0&?xEtC zC!goIC^_1BXR)e}l-{KFw)I->Rs$a^j`doeUOOc>9_vw&z_m}59?x_9<~ux9TsoXb ze5>XtIo2;Rcigi$K1bwzy{*U7KQrxeePiBz_%!iz!*O51`XF78jIY!kcWCJOUUAgByR_Fw#Zk}eVEa#sY*uU(ZoWCoMar7x5>kq|o-hPCY_@y}7@1o19--=^gURrQC`ahx`;`%Y{ zN`aV)<9KHUua+G1_^4Q|VkteI)ATK0HICvq-uAUdOOEyAfpre?lpeXyA&Cfc>1CSm!wUPnI10Ds*qDoJx;& z8DDT}F2zNB|JsZrZuvyH6-U2+xGFf0;uuFecR1u#+>i*rk6_x}`fQrB;^-J=alB2PmKIgq%+9v;K^q^>Vv1v4yLmXIgyJT;+SZA?FWxAn zIOetLxz3bUT*UYFjhz#J&>ZWRxv|e$daMuVf4fRoC}Z07#eSM~Vv8QPD;kdH5zIrc zR*kG|xX9XV@%U2}!|^u+ag75X)K_{OZ?rt^ znkbI*`=P*6$?<$BL2WNDrN=lQcVtsD#j)L$SMoGh9Ot)R!k`w4<9PR^OW9I!$?$&9 zeOzE0B?(!956i2%_yqP#ID%`!6vy>w>HSjM6c>v77JEK#mmKY~r}%;$ zN{`&ex(#+Jj(K;?u0neh$MH7!d~a`5xVMhg_bZP1;8DS`lH+`osX6$7(#wPQ_*zcL zbx3i{SH8c?9aY@F<}J_0V~XQC=u-Tx^khD(&IV$_r3=tcM$J~UMq1>a(w>rU~KVErd{rTc^|#= zs`nPh=gEwZ)i;`bQRCox`8-X6Z;Io*B^dJjhvMi5JtnjWRUGqy+va*d6~}R;e|Y$p z;uuFmLZbav9N+H=DfTiv{CpC-WAK=ieujWHhfh%#nDgm?M>sZIF5JByOADI;p#gTtQZw;bJGQt6h}W@ zwd`mW#nCR8_YSP8IL>d#*WhZ3<2ics1dFOGj`s6$YE&aC+>yf5CC7Yq?v3Wy?o#(8 zHBGy$H^{YYFxKLDF2HlHb1h?e8a>_vV0}=ptDD7fU1j{HnZLf4vJ3snKYl=6#c|$_ zmikdID%^~AP7M^tcysQzRB~*0)9U1nlpe?N_MU%Z#nFCUY6N*Jj(*U)@0q5GD|FR% z|8`?syk?5ybFd*B`ZQM@^Y~o*Nv#xD8~Yh|mjphFqg}F97$G_8g^caoM(Humx4a+O zUU6Ipo5zgaL26RIQrGj7_Xwl1-Ufp9u>XjlfU(h z3O9U7_g+!qeC}uLqd1N?d9l6y6h}W;)UVwD#qqs~)ziENDvo||Yi;sDii`ODcT+!S zxaB@rahwmw1ik&D!Y!}a)ITcR3jZ@h6~}R0%TRZe;%H~zk@?3ej^lW;ciuR~ab4K* zy>g)9*zT_;IVUQP&!ZaeJ33i$%rCD#`%YCH{Uy{T!*s>5e zEmwMWPPXgJf(^eUR|5AQe0@r+PG51(N=Qe^dElDX*ZN1Ie*DH>C752A~9KV-V>0!MMN{{agRe3*I za)I~`TC0xc&4}ON8 zzhXGn_vAc1K3`MgAQz|O%j;3$4&EK0*R*X>;?C??^+oCNdy&TvWdEu-+V4@U3*QvS zxXj*WO{n4m@Z4`f?5|;pWBkT*Z5=)FpSa{cneE0Zxkz%XBXT!x6hrCpJ>i#~lEhRT z{a{L;>XPGglD31!N{;U_KdvxNa`W)s#IEtNVwwK&+=A!8!&dLMIOer`xozu`UnNe) zRpVtnG`?2(c#5N+w(Iyqa;!^EEq|0i>G8REt-GH8D31P8^L3!)*uUf7?Gh=yOStz{ zrSbA4ier3C8F3@2;+S6s9T=8eam?cZ)h4A@9QOeoCihFLIF9$miRbAQ$8p?>GbMxK z_?#}tyI|(1a0@0buvc9B#?1V(-ePIQo5n$D$mHqrW&d$&gcVjPoRu zk2@%i?LJ>U*imu({y`l3nNEsZf;jiC8Yi#fIF9opdO9nP_eQRr^vbU|j^oI?zygZn zdp5-e2e~MYbz*{`+C>z{`Au?aSW(6C`Tme-`HCrydX5vqN-B=e>BjHKUs`dDk0ysY zOOESNowLs+N4?y4vX@cqa(>Uou3uJhd@dBHbJy~UV;(PcXsU^{psgB}k=U1OR>qUjDaFvCi3#qqlf&Q95yDvtT!YN@%Bqu;-3Qn#7XBX?jy$rg&^{4PD&xuxQmPnRaB z@1r={*|GSj){3J)d)%+uL2(?1vt8MaiensIPcTSw>|g$>j-8br+fD9sUviAM8R;|i zPU{oD z;p!L9HdJx!-$$?1!=l3doG@Z|RJdyk!X(GKJywFWqm>@_zg4P7AFDWy<7e;Bl4E=< ziXL-<(qmn6HbGg*aXvz-yqc)=$c3snV`d9NRtH_wzc%F;C80+iHX2*sj;^1(IWa zp7ZqLMx{q?ZIYOq702^~oi$%=Q5?rnd03-uihJNJ)d?RR@g_3cKF=OFZ# zCA*GW9M3@*M|n@V?J#=0zrnhs_4VBr$8#w@pGmghyX1I2bnx5yoysn(b6j&g+@(0~ zSKn8>x?6FKH}@_l_b85fjsbi3DvtSJ)uxU66vsT2qs8XKile{$9QWji;uz=EE}l82 zIPUX?lvsIEag3wnP3N9c9P?VPqub6Zj(#=tpZVt%M?0r;`{$zK==Vqa@3^Emem}O& z)>c;($NBjFVCq%HF&`vJ6Z5*_IB&f?*WFMY^XZwci*728^_tJ_v9}dRyX<))U21@4}2HFBC^R|0ucg zjpBIEGBDs=h~oIYmI}xEy;mIfJq=UM|EM^Qar_Tam)wrYIpmoIQFmZ>EmIFV;y_ap>2#LQFu-gSgA=& z#nH}9W)F$2IIgP!n~TO#9PKiyd9ehFqg{G;>Mc3O+lro>qr}}0?2u5k%lX}Pu682D z(Vy42bxNu@K40BZWu@f!e7{?}xyh6se~;A3Uvu0?RUeuFbj_X^O1c}Qjj&b?MtFXJ` zINphSFIP|;?VRp-l8TDs^Rg%Ta#v9tpU2OynW?JcSPvx%ic>u*+`0Jno{D3gGpk12 z+KQvUOzrkFN?h8h@9HQ$?mxOdNLfEB+?9$S8Y+(dGI?huFU7IWZhtvUa`XeA_uIUc z9`7~BEqbS!;+Q7~mr2_^DqNdk(OW8x>!sV5bgdP~aZF5cNphTzzGY&zReHP^e)dF? zj*8=bv(B;nIw_9p+W@B?ofXI5ZEo+dL2~rd@r5rimv$x?Q zyGPb?O^3dQ?n7Mz@_ zIM!hmU%#EMxEA=H>Z@4GW+;w+P z>jK5`cbnJyKU=6cwmW^=+(n9G{>#64(qhFiU!}V=Vu|AT{jeDi4@r*sz|LpN3Z*w0 z`}j4}j;vH1*M)tLa;{Mv1)09{k9@9{Uu>e3f|gPsuS~?cUYl zKveYVKMgvlIDW^$XU5!PisSlwfAuZN@jGKF4^BF+^my*Q=g>LH@pqvn1SCA6^q5Z@ ze=T`ZarBn}hc2fS$2{p&Hpgkj(XR$h8+BH3jPu987Fa>N3VPb~ zsp6Pl>>T1hR~+}r-)fb3p*XHHt=fN(9M_pt`|7?@di3XNPF>zAj_qD3x>|C~FO{SD zd{TPMf6r6hlN{|F+`8;nrN{4vc3tE6U2$x8_sRQ`<9OFz%J4(!@tmgH?M9Mg9GyxP z`=`?5xoE?ZMSdxc{p-=>jpTyP+dh{Z*MG@xrN_Fs`Rba{l8SR5+OI<5kQj<%zE54; zJC@>Tmjab%ORgKf*SE#1R&1q5{|jxaIS0J2Hn-z=OV1DcDB30W^DOa9yE(woE@x~1 zPGGn+k#J!hwb$)dO(@on$P?5Vdwa{N8bQEhW)ReI%cfBZx5C6Z&F>^e46Hl;^y zeb7wFRXHAN^Sztmp+9mcJ;r%(>X4j@B^*CogEzsf=Tb1OaWldnEr zo=0(f?>P0#Cz50TYGtnDtn`>Cm$&VkUvYf?mUG6+0*YfEzjOawA;ob%;-oI+qB!b( zZacrI;&_f!WBxzI6vy|SGj|Ryp*Y6T`0oxS702@zrwl%lqu#u%_asNVjLok(KJQss zd|D~fzxK%E0o!cz{rEkOZiY(>j{S4GcHiQ-zIozz6kYCRC};F|KFRvPKJ2o^G2fF* zoOWD!W#@BP-%dNmc2`_i{4P&Or9F~!!|y``R{AbE?vJk4DB_{oW!;{n%x(|+Z!p4^+waqEt@Egc`ea`3toz&UV|&8n<|d}T+424GsSU#c{fS0 z?3-Y@T|IQFkjn}dB6$2f91 z+`PZy80X$+=1PwDy}e&d8ld#pzb@Ys3{)KJjqGtMOODUqwwx|CNa-<8UdYp5a{tP^ zMYl`t=VaS`)W~^LhNyOF=QU@J_$!Y0j5fzxJ4|u(mjoFdhAWPFt!jsABNfNrG2UK0 z)+ojG#&p%n6F) z^N-AL<4jT<m^5E;wBOC5{TC{ZcCjzJU2;6%b)8>-iPC$C@1sB8 z?YmrYw2O;lM||tBCn{WwW)=4oz=;9P`HLotdsH zJ??88_wkY($9wMFOv$m{J#xS14b?9FG+Q3mTZ&^{(r0ptyNaV3wm^FPm5qa??8TNZ0z zGNs4y+GYGAIqKcdsUkzR4EhrS(pm`QP52isrBlv#0%qsE<=Wm6pUU%*iN?22QZQ-67_9ExMR zFHU*nR2=;!;me{hCxK5W_ajdxF=zp)?uPdoI`c=9H z(YB4!W4vWZ8Q4y7^uOAL{M##zel@pYuMUdi^S9t-*E=aLE$*wh#46rZakNX9-V?hk zj^k)>w^J|0g`T&qhr&XhNsfMBtV5}ON{@D4y>tEm#c>>^opugZ9OGk}hp(UF*uQAC z*Gi6d88*71e^m4wLc0xD9PeFk%~*4k;`sb1}K_b6EJHou>5mgyhw zQLz4Nm#@-AzcMT+CRrLX0?SaH|z9PEOR!xC~aqB%w@n|XY_diA13bNTaI4(9h9 zI)=>t7Z?2xR|?;ka_qHGa?20f=BxNaH0M{&mWwtvoLdFIy82JFps+uG{`N24?lH^E zIHJc42jl(uo9Q3x>=Ic5HyAE6^mty}XodF{!|{G6^Iu5P;@b_!?-c!OzcoMpZo|<} znJ4Qlt|&RapX~9v(_W>={adZ8cMdC#d1CHEe@uQ=MT z$m!pbh@ZN5oADm}(q?;CGED~|29`1Z>KnpW6+`1@fFAZ{U~tsAH{JWFr;{lM2h2i*!{zalPQk&i}UoD z_ULvcmEu;y&P#4=NUJ#NrD*7$QE^-sj?T%GS#k9H z6swm>j`7=f`(w%R{mUnrhGkXl(q9^Qcg(K1Zk=uSJr#Yk=1?5%;x+cB8G2f>vbX0P@M|QeunSx4>b*Fu|8O0UHc1w(|Q9^M%cTBc# zPf5km&h|HYlu{hyt@qd5r4^T8ifui4tc+(_#nE4!s|QMs`~8yj?c9_e??Em1c9$IE z!>PT0l(@%zL!-oP8{4a#>fg)Ew!dGtb5r~BisO7-$}p^g;#h~J9o?+5;+WTded${* zD%^=^+a$+49=l|V8cL6L4y~J}rs9}iJ`b<#sW|#er^5wmD~@{Oi&w3uIIfpPyB2Do zIF93KkWWL!O~CWjfy)+3t|jgPw0F2KIlkvwYH!0vs@+j|A1D3sX_8}|7-Q3P$#J}~ zZzOJP+U5H=e9vLvvuYN{ef(S8lg<*`t%({3^IyAejhia2RYKeIzhJ)^lH-2n@|iu& zmEKPLo@2*t780#%ZaRvhEfYpUy5#qr#%!k#?i z6vugMaqY3>7?;1sWu2t-xDN=M*-UcGyW75%n5y(RUeBc4Bu778U8%)%rN?vhWUbQ7 zP#ojD@Uc&`6vzIxf4F+K;`rT}w81YVNBd2Q-YQ7xF+M8WEsz|ahxST%S8@+F*zTu? z98Nb!wafZBXXXZyRi<>=Qqp1FY^?~bCt{UgXb%bem^Z~ zti_6BeO0{ggQbe&y|jm;GcHpc{cq~84J#GLI(uT_%&Qg0djLIlhOAQ@_cNbz#@nPg z?z{K743ix5`0>e4w(=V_F2!+vhhP4*S8?oL8<(jEqQVs`eNl4E z2Q`-lA69x?7na{@cvNxx-Kr#sj~`PU_iy_5}3&AFfA3B**;MBhQ(uN{?KMDJyO$j&a^4#-ZDaW1Ro4@%*mh=%=ne z^X@5*{Y%;}&3(nuum0Iz>Y?Homwk`-mmK>yq}bFaN{`R!9+bW)Ii6c=ZBX^8(xaW7 z$L)NkIOf0eGYUOd9P9Rl8IA`lj_p1gy7-Oact5-Dv2h`a%j{x%Zqez}_jih8K7G{5 z^ONFuzrERLyU&Va9(P%=Pjd9D&^4h^;=XNj{i53C_hY*s*d)0%*k8_cnDAZc(XWzC zTk%tItegCQ4i8ftfA8~2_I}Y)i1TskwXN7Wy5gAEN(@UAQ*nGxr0I?Ru@%SpNLg`e zT*Wc}&0g!9Kyi%U7+@{GOUeam+(IHu~mM9Ot8Yn(74=$9$S&crKTyaK4ilOYUF(_qLp?(&Kz2 zZ0c1)arA=+)9gwqj&YfGoxkL0m)M70ODjFbTaTNYB**y3=33iL>9K#a=Q+D8j_+04 zpPJ*LIJUbmR)UI(W1X|^pGuPBdX%P1_9{w`em~=3sp^WO{c^Z2sHwP)g>Bd0Ddp06 zDvo)hPTi@J@_0XGI77^^rwm;7+4 zS)k(R_sM?N8Lv3@?{}helH+{%4|+aH>2d%2==R~MisQa^q5FavisL!lhz99qDvo;B zvtFL7xOupzP+N3zf zrAz8_lH+_VEp}+L(o2fpqwiC>+>ARv98;hbka4YNB?sj z-1(;B=m*K3kG!Ke=7SgMKi^dx>w}s#TisV2?R>i70?F~buFLL$kCfgv+z-o;qtR2v zF^{*I;POIo9Pfb_SArEse_j$j;FaPyjyQcDy;U67)d5%i-z$!GepkBbC&h7oudVL$ zRdMu}u*9iSv+k(HaX&+U?tQpS9Mdk}Q=(p+gstPM{_)=M z`GSq&DURdyne38KaqQmyk^srEexA_9DVfsa{C2-;mr`+Tx7$5;$#K86 zv22z!N{{PI|3$yjDUN!%))!B&IL=#xgtszAg)5k$ZYISszZ}XsNpd`oaPSVxtn}yy zF^1;PqBz>6Ye?nnienzy=H4}@;<&CBuJuxK+;_Y0kC9vHmBBrzsUqg_gl*_}^uNpSzA^~`UQWB*z%a>=jsxPH`#m8_8B9^iZWU$dN)9PM1% zv#5*GW4u-NeJeToeUl5PT$LXE^xQqWVv6H?cMaG6Dy=x~1G*%g>!!FuS8dOcvY*l% z@9!2&eaq5Ig>xVJecLe~-A%hZZ{qs4b8>zU!||RVqnN!gX<`cdR1ocmK^){bMZIHu|8dNGFLs-F5@j- zysPyU$2#%bg+MRGaefozdDm2N<0skr-}JJ}n<*{;zbja)W|roP<9B~&Cdw)~#$}9F zK^DjNQt4MocKm8-+GSm`3BQZCHtpQjs(+lf=h<#aj&bB#JwaQgS03#?tzSuU^uH&Q zKDJYOoVQWm&v#TD`&X<%*Di|VbM`N7UrLU3MCifM-IN~Vfk{w&l(=`p{w zE`7hJ;@EDc*@OEij_)Om+}6FX;$oM#_50KQJtW8PQ)j=~rk~McKIL;Mha2hV7>98Xlc{r_aX8$LFSg%Fku7cr9KKf&{nxC=xZ47Uc?0XWj!(cHfy41V#>?TfE*S!c zaj*r(<1Y)3zt1?duali=CgU)VS6h1S5##WD?6aM%A2SZ~!EyuVXXbZ2&V?`8HaJu>Qskp#$g^`mGP5u821ki;y*EY$bB=f`I&L( z=gO;Ed}AEStDspWmvPwtHXZi)C*$rGQ@syz;kB}b^hliI`m?ozsV3u4@6|ZX;*7(* zHZ=7c<hamI|p`!p+rTi0M5uItq})8B+~=$C3=&eUQYj_ay)dR>Qc z7^lNyXV+yMo_lcHtyzz8=;ye~4;wHJeH9`)k#eH~u)q%;w{ye=*k5smUrHS1C+yfwtNun%jDsEzv`4| z?a#Ov8`XJ~zs*<5U54k{uYTGvfXTytzd^^5l*9IB)ME$buphk8=QZVUzHoWHb`Y}< z*BMF|e;dL$^z*(7bwe44@!Z371LZLOZbe3fF?kUeRo~kZId~G~(9dVTFB>Pw!+9u{ zBXsDf2~2M-*gyYt@KyxlFitC*WlvFuv$2n#$~atK^V~6Q2IJ7rtID~}W*qvt_MjPa z8Hei(g+`5=$GF1Kem`XPk76A9#pG=?<#4^JXTw7anLNz*`rSt^VjRZ(lOwYiGYT+WW>a4%^Z64GvowclM;}b0*5~J4rd52e{nZw~fie=O^yyUM7KYI6qGuewuQa z|I#Lo+r{J|cXe&RZpNYiG+*`K%Q%#GYMIkP#^HJ83mX(Dio|TlF49|_K zena;HlZSaX`e`KPFb>AQN}(Lq$N0Pw$xJW$*``oO%0<^#9luOE$vKR_9$F_vdANR$ zdH1nP%}dNatlwGD3ofg}8EbC6$~Zh<*Q-jcYm7txefFGjgK=n|;f{cG#vSm1=VP9$ zeUot*2R8ROhxTQqxr_38!}=Aj>&rJ@++}5V*8UJbb=m#dg`0!+ctJXQ_`& z9*#>KaxFhI4)3oxYvT5WaTo`~y*htm9QrR|Mxh+W;Xc^bcNw{i!#uRv`RgynVSYKV z)u2$N{J6q>7t9;e3LPn;4)>$pTTRAcySx*WR*Z32Z&PC~6lWaHLo2+iSCVl!9y+h} zm~!Z6^MK=Jm^^Gp;b|+h8Have^;EY!UEhsydURN(M{%z!?@qr_o5}^Q16eh<5rBr zJlX8#iiV6sy|ML9G-e$3`?VVVq8yG(hIdbF!sKE7I(z!sG7igYl(?W7@e z_#D19Z+7)$9OexZolU(Mhy6@K=;XePL;G56%j(BC)I0vgiUEv6c}p6e7|1x37th*`!Z^$?SF@TdV_eBAs_Ww! zer;kTu9PVSgwQhWXaoFBI$5%Ma zIP~*}^B2_O24;Uh!sKB*f2#QYDC02i-h1`r6yq?j?K8i0hH;p8Tlf5RmT~A8iy_U= zF%Ijk>XADa7>9ASN`Gt$<1nr!nSG)hK3~3_wbdmi57%ja`rfTpqpDnC9LB-c zm{iJPUVHQ7Mi3?-b;)9S&Tz@zKc^oGHxln&${QuR-YM%{h(#h z?Ozy&_uXYyU;CAD*nZFWpUqK+`Q6a*j^PvM7nH;M5?1@V=`p>y{&#Bh8p_Rped3K1?@-09Ga%1j>S$!}%0>oX4DlN1p=s~Y1lUgjq>G-MpEw@BPTl5r?+tzDEA zTFS+ixpy`1~B~2Oo}iYo<;) z%BL4<$vCvHtX5zv#^Lx`FQ98{#x;Zc+2suG? z$T*burb`>jVLy}gxouY_59bS`YKC@W96o1p>Y?L38HejHRj)Md#W;+YX1{!TtHqhF z?87)Lufw2@{TPS+!k!ctC&pnr8up>jK*r&I&w^hID2I8id;^U^Odje@Y}Ar+nD6KJ z{zN%kr*1x`))1x_`~BW)`weBBD?In8)z<^AjKgxAD{14#IP7P%9IFmv+(NjIIb%Xs z55{4;bUoS7QyuQqQ&TU--LI>tO`(iq$r1>)r%klmW=g`j$ zO>9RB@&>~A8QaH%l$zrO4#(}7C*Op z?dao}aZ%yBs&Se}vXQFI&Cgm{SpRGJ_9+QXtTSUzp zlrw~RUT9kR`Ai<>-9gQ}Qx4}_A6w0#9QwISzoL;$FZK(0-!Cj;9QyfyS#C7rupAc$ zc`s%hj!$dPSiXdDSYEs1?UykQ_4;dkSk5?Xmnp4ouVftNjcI-*S2GUt`0FdrVi||= zk`m;K;3w4p)A` z^23b7IKBU>=`qG-eplU(^3EMaIUGm)Xt6Sh$;1Ar!mJY~8HaJdI5qw><8Zze_q662 z#$o;HwmWr>aoCQIjPbv~ILsSor*5Sj)^D=@!Ane@5%fn*_7u6sIE<@Tr^Ztb%h5Wc z;dLet+ed}09cpo(^)qiUdH5XHFZTzgF)kVAq19e+4(+QkF}PA5t+{@htJg*yUye#(~Ij|Gm6}$9JUXC`{}QlJnVm0 z&fEHyahP{6>|FDXak&21R5$zs<4|w#w3ttf!*==ewEY*xVZJ~4e&koiVP5kcIOjX# zP+qq)o9mYyUneFI$T`Ua9zgXdC}HW22^Go+E?Xd5q-v? zUjnXi4*k5p=6VA`9zJIW+eboCotgrN&)LEK#+D7+nFt*2lVH3Y>XIvRxW0z-t+J7i zYqRoVITF_ouERJS*HtRktS;r?y?FKQpVng>wl}AddJPzd`vGoaqbP^{Z*c5Xb0!bl z@7K`9l5u$M(62`)8^&RNJ~Qo8L&jk{H{4gNG2_raqgr-N)#2LAsoH{Z z=$EZ$&$eV7wxjx$%j(MZxD=2u)XPSH0r|iqF)lqHtWtfly|uM(;ke&_B$^`ucta( z*UqK;GY-f1Hsi()U>w#*(t=Nv!@M@}aIJw%9>)F9oK$DVVLokNtMFjPVSYBT3a1>7 zJ2TpUp&XWX{E+QKm|om>X>PcKa+uf3L{)VW9-t+rcH-Y=7 z^D0%_SMy-yz~{UtdzT;1IE=s0{Byou4Bahw)O~F)o;KSZ|%j-40m9F* zRY#sr@TqZ(!+v4k%(3B&!@QQe!D>9?aGrAbX_bkL!*bZJs5+H#=$A(Ouc^f)rOukh zDhSxu578HakE;vO$#9G)+6xKS~hahP95R7{Ft9Jb$0 zT}CWn+(Ed{tLt>VWsF0;wRe?{!iIq%NF)lMbZ9Ye599E8pv|^!+Q&HbU-pH;`x%FEb?44a%3-~2?P-3P$wN+m+R7v9aFMUW zjx!GZ_s)9t3C7_#XK25LCmDz3Efvz~lsa73`5LDghw;+n!qzj4!#sIM`|3Hy;kkn0 zMqSP`ZreW9b@WKHnUq6$%j2r1FnP!|`ZfMC<8a(`%6#V)#^Ji7;e_(n7>DEMoQ#AU zj6=Q7nj6y?hw*o9hxZ-E;krP0r70PV!+opAHqGuc4)dvF?+=v2bE-|}4$WlpFisnM z4tvZv^xymi8ZQ`!>*(7ya1QhR`qTa|1$oXe55@d1ZIFz^V(Ap-9`wHh? z9qtXVWgM;}71Ppe#yFh!`0qa7ig9S)q9-|a>Tv0myjnBvCB(t5-a2g=hjCEl@cZ_R z!}ogBNPFCYaf2%OtK^qCwMuki9G=@u>d~w-pz-u*iWyIeA1K==UdA#%&IecGCl?c_mc0t3vpCAwO75c@q$IJn&yvQBBHDD0qaJ)OG z)VaZo!?+(by_zfIFt1IjP|t&LsJE)!py7FFyk=)4Q$~T!Z@st0}D%!W*n}stw`M; z#yD&rgVL);Fb?BoL-WIv)!}N*$ehYJe4bI~r30ri4(Fkhi-gQ%9L~G|2cJ*e$~bJlr9X4d5cXHKN`-6_a?=i+6Cm4tQLY3D2PcaV1VHpFvg-pIJ}R(QvGw3L%o_ECL}X?$T?0jOJN-5m!j!&E;A10?aXR(g>mTTBX!@U zG7j5sQg_2^j6-?vh7O_}KEFM8ZS1J7s!+6fVP(GV+C~xld?v%rGBlEI~eq{16AB-^x`NTL}U%NJ-!%xOx{k~rE;TPku z-bN(G-Hf-#x78jCug>txFr;|Lr zIMa*qH|vgu7UOVTp!b`xlw0MeI`3ZlaX;no{Vtn#eJR8A;yk5DW}R}3!#F))q+OnI zIG=ew?TrrOus?72rD!F_;k-M+`B4?dVSAgKoNK^1ykD}^z0him!+37i_?98#uzegI zRKl2X7^h=4eyG7X^k0o)muoQ&~)xjvtdv%ovAy zJYjsEjKh8_-spNm#$h=+*v)RF4i`OlXA{O@zIwiWy)ENV z@1@-H%@~L4&&k!kH)kBm>tCO9*gm!n+SpQ%=Lze7n1>2!U+yGuxUPr!VEfv;-2@Kz zU2vQj=NQ|Il>_ZdSbC-p<8VEv*nxw68CU3;>U!tNG@E{mL;nT8e5Dq*z4qb(OdgiQ z!CKo%9j@Bo)&m)b@!Z4zFy(MRd27^8XC@EZQOwslLl}qSwO>X@hcXWR_ros4g>h%# zJ z&8_Ja&N%G%KQ7%lk#TrmhyK-SlNg8dnPDHxPi7p(%kA9ml*4*^Uprz7lZV_VAFpYQ zL;rPLlRjM??($B@8H~en)c6rPi*Y#aOc@?IR~^o2>*)E6!*U#WRU=9rZnj>Z1?q6) zr}{;!!==SMrySPD`%SJfOdiHn-PfI#Fb?Mn<|ph{F%H{hw`YN?8Hahu&D0>4ap-4j zODD?VJlT42qxDQ4<^vz&wwoD;{ost@_2LyQ|w6?_?a# zkD}N8+{HM|LzlKU+s(M!uuoEd=<@+=KbGYs?|T#$WR{lTsOndbhVXzRoypc+N?? zLAN-!TlIc})DgNjm^{qm6B2%=F)qSfbzZi*YNgwZ!+zSgWvM%i!}-G9NgwYr4(&6K zdw!2`hoe;O3(771fN`jI#M#168He@z^34~@VZXJY^Wqok$ZI=6^OZVW(b#X4!~4|7 z)-Cp)$;0ua!>D&zj4J~B`{(Z_e`FlS^R6yWzAz5Qb>Y6ZzA_Hw4Vc*L8{;s)T-=qE z!#I>z+xX58#$o;H)vffCaag}sr|-*S9G16U{1y#^{COj;k7K`@^!`d=#$h=+S&!3X z9QsAa<7H9C;kx7M=LbtL4*gQqYF#PDVLP&EWl)-NI3J96aH1T_yR_nPStbwd>!+Po zUL9_w)rAU-!+KjiYF99K^@u_%H&PDE8@tg^kICCt?T5;_&C?!6l$!_7 ziRpSIUF2~656fY7-LaCO7w;Q$gy*Aodyp)0xK4=s-7Z}=>$7rT|7#S{%YbpXemY@h zB<1k^#2pSLRb%q7e(M^qGE#@z5w))-e7>DE2A6vFi4#$aWvKQ87@~|A6 zij}FuIIQ17#-}NV9QxX>CzFTg1n2w+rySZB+1#TylZV{6Ax?c5hvhI? zaIP=ouzgh6I-wuqFb;GrdJJS7%8QE#8N@g&$CgXWhA`fg9sc zuX`WP;W*6N+t^)@=L-9I=;ywBEqw(J-9vEHJj@5t>-B>fhxJh< zwMz)&M!|X3(3>+Uhxe5m#mu4{&I5EeOB~iO?k{*WF&!<~=LPYC^E~e`;~4^n<27tY ziDx>@V&%pCvR=o1=P(Y}o8Hu{IhS!52gmL2P!99K)SVwAnLI26y+p=g`*866e1LJd ze^g|R`ys|*K6tt%#I zjDu4RmY!i8%CoTJ9QyglwD0Exd99#-!?+53lb$Sac%MiMSRWto-SMKp;eG1(ew^D^ zv{D4_pYA8=aV{lQ;BY*IaaCyP$#lk{U;1rtag%Y_uXfqDk8;>PB8uI+&E#SGnBYC` z9^DdR9t&UyCj8RKyNcDRxAOU9vn zJ(i#B~2O*!l@9Y1x^ zWb$ynFwbE}F~;F}i|G0fOEYd^jOu>W_U6uI7>D(HeBse@jKg`r^Iz!|7>DIOFmRME z<1nAL9MwRNacJM2W4e_YhyJ^JK9X`c?(ApbTb0Q}E_Pn2>WsrUO^KaGIqbLM_qQ-) z^02@B^8L9H<8WL&Rm;toaTw3z!^fF0uDPx1eXi@>4pI*1=UPhwYB713*T!tvMmaoJ zFmq?^+DsmoM((avMW5!|q)+u$9a@cQG8{D)hlZXAeO;{G? zu)J-q_G-c8p?yX_r?g}owvXw$&08@J+gnDBM9QJwXggm!CJ*D~=8Ofc8He=|veuyu z<52J0<9TXv{q@}1t0OPYZcztyxOB%d9T|uHZ$x-22gYH2M7{3cg>i`vs`={9&$3+^ zhwZn0_lDgWhkEq~j-(upHyV{s=*{Hex#nfn-%<|sYM9pT!{nj=>e)Y}9F9Akm$dEA zj3+-m*AHME+V|#1H03aF9JH|?$>d?Z zE$nIP^=k=}a(G^#=-Z5iOdhuL7TpiUFb>Dr%VG_dGOmP$ z>b$YSk?WL0z0>NyUBTqxJSrpd!fM9h_*5(J(OPx5*%L->WE{pz&-7cH8HaId^eZJ! z9qy4s_7=uQXYw!)Wt!DWV;uG~ z=B|s<8Hav0o;l+t<66S=UW3PPzs&11#^J$}u8``xQ8^Xgz3r1}g{FZ~v6VnT*4@dQ(66G2^g5THE|B z<**!^y3~EbUN0GU2G-?mMooUhIPBl_ZVh?QIDB49NR6o<7>D!5 zw_U=r8Hek@M~_|p%s9+zJI<5G#eo%yQxGry>;-twqjF;dVM~bP#6>Sk*oN?&q_|-j1G7j5E=kM=IGY;r$C^N43{x^05D?HuE^;FdsN%80#>3IDQV+>Rpj>DDQcdOKNegx;58h z@^Bnc>ip#@j6?t3s%~Y#IIOp!b2}R{P7m&%*%n{Oh;iuWS9@Af4##2pzSge6pYgRAhkiLR_ABMEe$QMoFlF*^9>2R`<9dw4_EyUwfpS>h zMzfq7FnQQ7j44^)igEbff;~Z64H<{`$u$mdPdW6T-PFmHL;Lp4I!-xU&$+Xlb9g_A zWzV0YJa;&6fqG8|_G=@Q7sn+ykII=>rmeu?xkK!?GBk&EVE(fzt-7x4Remkyuzs6# z@9MzhVLxrP)3giY@VrG{x>HxiVR_A(=5%Kq)`w5G;2w;_=TzR?TA>%?aGsZ4=6xT= z;kdZOc&!19!+z%QtoD?{c6s^1lYvYgj&q)s)EmS&%r8^s#t&s2zR&P%u&WE>Fi!6z z-k}`E-<0!xT$wz~&j$5AxvRr9S(rMUaTup*_dk0v4#!RA-?n)(4)2aI4G?x!qoe~ogO@2h#8^=0yq8@g?WzdD?4hCv|XFrF`DEv6jSM@*se zBbhwR2g^G&4rUzc{k1hMR2}YU`Q2fR!*#-It&GMp4*S8H<1db59Oj|;saoNT!**#q zzdhy9f5on3jc4*Op0D&jF^O@zVcfKGYt5;Q!#w^q=?>*kUbicirZIWgJ|a!`&tM#m z!+ckz&So6OL1v-t^B9M5Z>m#gKI5?7e&`OP9G(X$V_r3q$-{YoYYWa{92{vnK$JHX z#s?S&+qN%VCg`mM9QH>=D(_w?aJX)P_0eSF{51miPv@FnzuCNwl^5lin)TkmIJ}?a zQrC_f8He>@JI`V>Bf!ED2L;}TPIe99SR_@g<#$mr7J;gqeaTxcZnd|ne!yTUdvB14*QwLb1$A^9OnCq?|jZO4*im87j>R-cpt`Cr>PehhvUv6 zyPsWT9O^B9-X(=`7*}_0+@Tz<16PRYca6zIy+cX|rZEodBc|eZ%3*sOZg)SO$wR$I z`p4X49LkFc>UxWDXkY&i5AHG!^N@eXHuo8K=Ar63^+BhJltcTnosLir?VCKeZYI-< z_6?{!R!PSxxBG^wpHrUh zdCBDAxP8w1EXv_{qtvGcub900aQ@&{v8R;7_Sf zz00&aWit-P2btC_KQa#Euiu?76~KkEmRhvn!v^DO1EomHPJ?%YcACzCf9-kbJo&3MXT988KkM7cfizU_et zUnz(3o}AbBo*31$l)&No z74FmZygRClz~R0c_R~3eK4lq)`DJsNIJLO8)oYYfM_zxolI7LmqGG}-sKX7~X`#b7 z9KYO7dPX^HzgMr;tjOfy`8AC@E|kMOS+A)^B_J9OdhuLt|qyZ!+oY31HBtCc{tyCmG;AuahR{BeaW(79L_67j40WNaTtG% zuRm+TIIItoyESbYhko8$c41S-p**9er=}pk`%urOHREtU zW##YzZ5fB{!!0m|a=4$jKkORi#=v`7;aTtHo zn-1;IIBdV=d+QBg9NPDN#3jn%I)Ct`cxNUL$90=qo*Ke9jK4+e*SInc{c^n0!C{QU z`b{_bLOGPD9Xi01$-}(nynL1y%~aNTU2(|JF}VZD_-wIPsk zSYH3n6@nOtakZ@2Jj!AJd%SEi<ddN0Cz5N<^+AH_JFhvu!hNx5UN?!DG8 zDxAr~{-gG(>T`?E^~<1h{k58j)m4tKgz_)NxO{28~}K8tZUem*{6 z*lfmO9Bi2pGly}g*LlF41&qV>@oteh3mJ!cy-#^YGYQK)WOdgiQR%`Ss#&sL4Iu8xe|3EqHf3LNuv4+XR=WgBY zdz*5Y$KQGOj%D(2JUR4S_BzI4`{;4ccRk~cX~to`%8KrIhH+R9%Y)6&G7kHrSDC)&7>9YN zZ13sGjKjG9va{AD#^Jns_|rv~8TaL}>U!sZ&z!@&d)L4&Rgj0{Vq7QO>s0=>z~OVy z(0_MR>fRGLJdcEVO~a=61A)VFG5YU>|L#nI!}T1L=ey465#w+l?Ad*-Cyc}VJWyx! zQ^qxhb>&8NIEUk1tzf+uf;@cBGQN*=ko}dn0*BAV!Sg=N_tyF#aOh{OU$<(7KM5TA z+1g1pUY^gZ`c>f2&yAy1xf?snePf*VAk}^*?d&Ydp;et9vT?FXxtH>A$I!UBhW#yq~LVeujYhwGErZw+qWPUO(f7|%`C zKQ1cBLk{zXaoL|*j6?r@Zed=MahTU)9iLJT&%@0OyIqRO!+h}Jeqvd5xHiwTDTn2l z-|b3yCJ*D_!u}T(8HfHWWpt(zO4mV^R*6&K!8%B)7=TS_&`nD$HuwR|^dV>k$upB#b9#RhT{n6&hwV6ER4*1)e zG7j_Pu@#%l7>DD;3vrJrhxxg}-JbQBJZ$IgI!W~zhw=B=`KdYMaDMrDrk*9^u)Q@s zd%}uwSRaL6Bw8~L^W^>gTWuMKF$XiqBaBIe4y!7%~ z(vETHzn4pkc3>RthgQCx(2;Q%2mPMcbzmIUZ&a&!of(JrX>9cF#yBkRhTV@ThvR3B z0dc*UymxS)YmNu!@SNL=prO45c|)N8MZc`f$?hj`)qz95++WnvS>W)woH$>-x!-?~ zz+pd)?Y!Q_7b1uKG{$MDNtdC5JnVm4!1y5EY$oM!|81>{jVqIf`FYRcwQh{V_%l2d zQPFkrnSvIgIDRrAmY_d037~ zRi{u6`vt3ULq{`t=)Wo}^}-m3^)~tLuQ80na$J4ce5^X$$Lui5;XL`=y} zwt#UM2fI5uE@T|Wz4xa2F^t2!JNfqV#f-za8vo=b<#0SX!l1)aCJ+5mbV7|4jKlHs znO#vU8He|OJUhiXT$i_g{A-mUuM6aRd|uVao|V@M9QF&?&W$&IpOnLSUZ)Ptjxu?eug=dKdYp0C-WsmGO*!=Q;g=^)FnI?* zsMc>!n=PjphxM__>F#O9VLTgzUpd1#%##L|SCbis@94-tE(GGYd9Jccvi3XH>kA$Hw%UB;oj`cGmiF%JD#xzy~+jKjRK zXoOi+#$mos3|&t-JSVti`4R&r5ATO4wx@eF#^HIrkSg_z7>D!tid~i&GY-d1s}pQZ z7>99i-!!rg*BZ5W4f8rx-1d&XgZw9uJz=s&YPwhn?kTxZ=}-d|d13hy09_#>!#p`|UoPdc+KyF;tH#G|eVIHghqhfx0OPQ~d>v&T#5k0<@x!GM z#$kDF3Oj@{4(IWH-X>v;!}Y5m^Vso>!}tqroF-w8>M&K zOky04?`!I6PgRGT(^zvF<8U0I(RBjlus?b-YUgw&56{gx&oG<8I2>=hd|Pxjx9ckETbIyZ%cIYd?pXu`H|g|A{mGAa{bUT%3;5Mvw`j+CJ+1HT?;m#-abp7Av)kak&4X;s1OE<1h~e+|gLWI6U7p+{S$^<1k)y zTf|Zh^)9u~pd7YKk0DprF}>)QF$rHbFb?ajlD>8v<1lY53J==CIGk5}d~tp|<8XWx z((h3M;}*jG6^?t_?O`1DN9l(rsl~m&luJ3x_gWUW_A$LUo^;5(eVB20zxd9q-bWaR z`}TEya<0@O$S*&mM0rzSzYOP>-V0VI33{slhyHu>rsXMt!+kLHi(#jXGXjU>cFfQ2 z!=ul#@}l060aq!9dChxk_<1G|+ehCsffpEuf&K42WSH~mj~nT*5u8&zZh<#3(fX2O=oOdhT~ zZvNKtIpge#tKKhEszvRWj5`>mnh!1w(|^S{^z)S?2j4Ib%X_fe;`fZh=QT$()XriY z_Jdo)zI{-KbIO_XnQ<6bp2IeNV;r`RX%{BtG7jUu?i1S|jKlHxlcp}Q6y&!ZfU zCmTJUUXsbX3-@VWG_WqsI9yi=YxIb&={eH>q3>k;#o2oS#QiE}* zw@Z&(l*4jVaqU%;$wU7&jvHNzaTxcnb5_=29O`{n_>NlK7M(t(Odjf;*YTto<1nvX zpX^tUap*t$mz~TRhk4_0vu&1)!#K^|bjF5pD9`nfT|>rUeUveEYQi}5%d?i(DQ5`# z-Rb>j+cJ4rj%MQzH)R~2L*6^5Q8UJ2zBkvo(2{XD51p@HtQF%huDbZtvsZ^(Gj=28 zu)Ix9B)4JmFs|O-Y}b}?*ngz8GVZ`QjK5wxnss6v>J2Wks*5_@&?%NZ7>9YN<D!o9NU0CjKer>+PijN#$mlR^NFP#jw7}mEIfe8!*WbAHE?De`q_Qf;lYeUKX+UF zjdIxDhHeZR!sKCjLywpZWgPnNp@W#o9L9aS?9!tchw+@z z$~ug3sCQMT0Lr1>8cr|O;@YgfI+p20c{|P*4rd(NH~p%eT3lYX&3Gmc{c_9v!34(P zI#QEP*C#R#?JLz^JA!c-f0veio5VQGe|_#{PGKC*0|scOO=TR;Ya0c;o546N$L-@f zvl)kZsM_sh%HcZy^tMmtF?qON623Pnig9S)Jk6Sm)ZtRA-=Q4(xy8FH%a}ZjQ{A7X zmopCcnI74FUctDs@VwXk&M#Lo4*RVN$!FFu4(p?w?SplU!~8sC_2G?-yI)r|Klkz9 zwUu$$K1>sqZD$Zw*^4s~XF9;m=zm;HJwD7a_7a525&ul7O zJ%w@Tzi!2yDTmMBH7S=yIa~)hY0NpCAAK{Za7nPw3-)JlTr#<>Pny8tJ`Tp!KCdC^ z0*Cd1@|Net-4Qsf5A=(6*=Hh$^?`ZP+jm-qAP+g*XE&cW=04-_e8jN!2OcvH`}0}u z0Z$l*^PZQ7%RXmZbbZzQ_a=QN<Y&>2ud6*}EjGz66ahS(_=AEM)=D&akX78Ci z>{st;Jfs}fZwamHSxg@KIij31YZ=d;{(%+eopV&Hk)xcpGhBjlyd05 z`C%a+nLNBt^T;m4&y2%;@yDslD2M*r^~CWDlZScNuuaxCbvQ3S3fCn01><Cs9uqAI6s;(rb#8nVf+m|^r$l9I-gU$A8hNC!BrTC zaka&)%9Oq!(onEE7Ei3O5ogfvze4OyT8RJmzvWtc-8Hf4mm;Pis#^Lz6#P-OxjKh5J z9nI zcQnP5ad@uTT07gDaTo{n>&5%1!^JgxM!6Loq;>DQ^))nvuh|XTjS%D&g1m-YT3huv z$1W0A0_24bQq^nLSK=_AE?hrC%zq8?Z4g>o0tFx5bL^+*2@%duNa5?Dm|W@IXsQP3Ia8RQX| z|0`L4*!{wsk7|6Sqy*}D9D4g0?NpZs428s-1<`y+@IO(-%}{Nd)_VoktA|4jBB~k5#Wr^5uFt_fWN-KLu)v<=u4IQ&T-w`6c0?FaJIoYzBzv?Fj~4%8r){XKG9O zU3fgSQ|NDyY9z+`KkD}#>*p#sp^zG4Fwad%$t~7DWuANsPO0ycDNi>*dhOg^oMdhE-x(Q2SXcQF@^r4 zA3WWI#sr24W?1LP!(Z%Jb)qEqN8k#{jx6qvI*R(J+{O5`oy zo+zg#a7N{%`C-HSzESwvc$$wtkc+v&xj9j@M7^@SEB7Q$h*#kw+o#uhwhCwURN}%U ztbp@xu}+2CUZcG@j%rn00%duX3u~;%%l|aWFGJ(}uahR%o0li!8RSeH)Z;?>NSr3v zXJuY5Nm*}|5fWzx+)btX(FOY|-crab^t&8|^T#tIVqb~zC6^S1TS#lJINp)<)=Zc@9yvkpY}eoOe?jls3*HMEhvnTA z@3@(9&%nOwqnjLI+!o-Xn^eEbI6bB3-w5{gy`}Mzar(gdgg^g@oZy$YV^r(I$L?~4 z3Zy=Qz&`(BiFFv)Wtgh}&UnvtU>ue=_~NL6j8lFty-?mSt@;Hq?l9PwmSsDeamx1r z2=dR0)>ND+i(-~H( zBB>8-=f&2vt<5-WZ`EEJwqqRHSKlLV2;Y%3{~-k|7_&Y_B}I^7mpF%I)? zkqhB%8Hahz{Kimc#wA1h?O3$4ALFpzel=_`jd8iqUmEymuVNgIugsRd-_JO#U%NT! zDU9m@<>>!w*DJXK zeZ;1>I$Y*5ZGXn0pU?mNK9O-aUoeZlvz&3*f9%pcvyE|Bjs_NSrx}OsyvE1*w;6}y ztD=da?-+;m``yq*qYA0FiO?Uds?xSHa%`L!d)U|pIbocLdD7*&mILGNLY#KG_j)Mf zus=V3=voNl{*n)B?v7*}>J6G6vzc)>z`ie+CLUxQ)^E?NZdVzn4gKo2kL_PFPF}Z= z+tK_Ci(GZM#0{2|E95>+rCoj+W+igP#RdQ0>kL?Lt8**r=;y~vq+%j3uODEX4m7*j zo^jYd8m2^#6Sxh+LQnojmWTc`=<2waaTo`_ejjofhjD-Ruo|hEwJq9JB&lUr5e>Ss7~ZHhx*ts;O;=iVIKcz zvuH8n&_0j)9n%CEp8)2j#SKD0T6k$-%&Obj_ozIwgNt}h0 z4hlGogJiAcwt{{0fkVHvT)eOqmJu@f|$6@~4I*RW}K@Q7%W})qLb@V#xSc&f!L3x-b z=f;?c?*l;&^G01`J@I`O$l?6M>#p>k3gkBY@Dckri~O}0;j8|obaDM&Ii7{QhFt11 z&SmOK>*KP##UCXO_vex8QRt?qwyuT~UTWBtE17MvxS+Nf+bK{;$+-SvyfZSi! ze=hA8%bexXyP{s5GLmAcyS5a4Av41Fd-0D%PX67HIO%6u?q-D_<^71`@#WsKa}LPW zI>kBJKeD{y*CY=8n3EZyvTt$Yp~N);Kg#1GS)T1LiAz=57ZB<>dxLboLgv=K(H6@Q zAQUwJBcF4SuLp+?6Zb{spGRHL5qW9f-Aml-5v~=SbNItPYZGf}pHrjvXR&6*{Ve5k z4hluGp2nY*^+f#E^Dm!sko9LdR8%Ub%WwVv<2eUezR?V2`AX$WIwb8^NAdmY5{iAn zq(Nr6LVbyT{JZlDuA#%c#ckUBE&Kc}L0SK~WqL~GQ_^q0RIy*r^}8zcFZo_wy>kn} z9^$bQalbm>URnQ(IhDA6?J!BdrIAp)f{(mUT~DFk`@x)B!o`0qe`tue^3JTRUpK6> zs9$d1U5lxsl*Zw7r$V+x*&5vQysI7vf#m;1|9R z6^xYjZRH~-vYlTCRN;O~s3htCm(G{S`mJm0E9swEP=6XOUlse;Mq)YTf8=^9s;H-* zd!Hl<*Z#4d++713_!J=mv8b{N%>O%T7!b~r2S2p_qiw{YPf z?Fe)a@(`@BF}JcYw<*wX@aqryH4-HK_C}&!`5#&T|9Xx6ll z6IVYeSZ(to<#(KFR%xiDU#Xt5K7AI?0sSFP1}XIGCEMKmXZ^t*?x8{6A!958UHyi7 z_>cPS2-y$CEIV;K?5|69Bp8e3m;aIduv%ek=cbIG7U+SUU z*q)*ta=Vqs-Lju@K1tW#E5?CRyNxO+hlag_WUmo#x0Q{g@!bZC5<6AwmD}xK&zO3< z36>5G%C9u>I9vW9GD~w?g(GCU0^@r9!GComdoqm_e<6L7{Z~n0PhQVk!szsOd;VK{ z+&s`4*^ajxdn?(Y6vqigB|HAmo=g>S^kn9uSQR_|lvjd0f&+X<6$G-ZzgAcuCH+cq zr19jFm{O$%%g{v+G*Lt#gGvoq?q+Yv!- zjl}TyeI#18qsogv*rBZ_*esRE#uKU{>g`56^h&q~s5! z_L}#rcumsp!u!3C z3O^hxvU`k*{=aJ{USj7LAh;qwIK_jXvK?k~okctTl=tH%4ic|l5dtFrBjtT1d$o5d z?B)IBD}}vJ_4OJGf3H@(1qF=o@E5GLvQ?N{;I}6`Bzq(~l~H;$t1a2_wMC0zYTMyG%wJ6Rf)O^tU;Vb@d%#d` zM{Hrqj?5;~A1MBn{gI=v!`r%rxa6mnKk`SA!68B3(lju?W|Y<|j&^k6b_71m7TdEW zkBhN73V#^CULlyMmK`B-VriUz%wJk*lj~(gT~}_0_A$whKeX#diuhQS{pq~gcKCaQ zg!qcH(Z=Rt>-t?UON+X3J5rZRcG&a$a#mqSke7qFvZ0ngyaGH&dw7WVel%1VBKsry z`XB5_3X<&5HdRE1^i7VBlL|YsZ_ag7+aI2O!oXG-CfW%1UI-uAjv;&9MSuJ$&uwt> z5U=-DocI1qp0jk6?ES;K+ZRQio9wdZxu91qzm4|xSKKfoFY6T8s~siT^A|hpEhIa# zj080WAK7nN3Og2iT&gErRLc%w+~DRKEJl*F3|L@C%*^3Dj$%tncEs}WT#mwypF2Ku zRo{-VMwU&58f;Y1VaxTms;eirL;KDLv3*Ag+41*B_Q#e6Qu`j-qS-y+s#^XC9_i~H z;$b6Ll0V}x7e{+-}^^pUOmjie@uSJNCIU)<+<+^?UC*EN}j5+ zU-MMgrDTUvd}sd365G3rQGpG@e`GthDg5zn z^O8Nn@BhC3@{NUG~P|PFX{h-AC@chA6#~S_ii6^L6o;faAf{Rwhzm3BI2UR1(lUJX}D*pA)FT!${>H& ziOIYfm@e#G-B zi{I4jRVtr*B{{Ib-*{eV&f&WE}#yMIYIkAwE@ zb5lJ>6(KN_-E%vi0^knPJ8$7_s0ugh#>iCkg}^8t(^2rV#UANgkCczS3VvU3ekHJ`q)_p%+<#40Jh^gM zW|Nn~C9(e!&aVj1=#Z7<|6aDs<)N~kh=Sj1{LAN8Wc?A%9*cgF%IWf3|NnS?MV8-l zys~_y@>%Ya&L#Xy`|+~=yP8jx%BQ41D@M})hjGaNx*sp=|DN^-{h5k$A^+033|W8m zCC`+~Kl69}W;K+`pJl9wVCkD2$N#^cuOQnoW8-tt4xxPtc`Kn^fT&--UON4ac>Ncg zzmu=a-%kAF&)bHo_3Hf!-sQIx%KcPq?1^EHF8&RAqsd!$2+<%r@ zEpf{Iv5;Te+ssoL2Q=6rahT_BHU2Edhx!+-GSW$7>DO~hb(z> zgmId1zP)tM$l~QduMmfLj(ePcqaMf!em?nDb-d6-_tH9n+Y9Rz=)Y!TLtilt%hBzI zNquc15B+y*cxoWyP;WQC3A@$d_8OUfWn5rM>A98ib3uaUR}E$K5{Kgj3&nFfWUlZ@iIZ2cZ91+WUl^8iK{N28kNQYLj6VrP80Kt%*7qA zE|z1Kkm&M1vb>_Xkt*^|SF0g%{Y$HIAD-o?aIW=hi`-n`w7Nv8a4mGrMJ^OL4fB~Q z+{}sXMJ^KNFDUQKVrNO7P=Nf8Tn_m;b#i&vwDA+Ua42s@u&>k7aFNS~c=pUut+&Yj zvqi2eaPK>-mUnY>jL02<`C2W|Tfg)gk!uGWmP5ZyyvRLNtZ&HW{Z&X+@6A5DMJ@uk z4vKTxvR|B|4~yJun0KBlrz$UX<4KWQ58Qb_)#uN>TX9$d?`;US2p?Hq$M=#xNl!$<@Bi)bx2)f~=T5QSWPkLm zDy@6S*GnyyuAf)54|$v}U)T5_$LX@1ZJQ)LfAK?t;+**(o)_q#Sbs|F+*Ng7pRV`j z|1!kef4F!8p^>?e(`EhN*6$Mi@E84o%m3AJx~$)G+-|Pl#aYt-FOAb>{r&CssKi0y zYiV6ezP`~-x;`E9xIAx`xwRhqML9EpYjItghs)ezhod5g{lcy0QofS8B2_Mk+#nct zo*Ch%(rzuEUlh4xihe=DEj8-pkHH05^7nR$DIzD!f4oQfS%`n3zYg5wE&5x&UgD~h zS4)F_dA(8Q2JF5h=1ZBA^_wg7%in*TxGZw=->puPewN!G`m^xhD!BB=>#~33`VMkyDz0P7oaYlOQO+!-`WE6MNk^5NvY@%hjZoB!RPLF-{rw-E zqn7P{-=vL_|CQ|ckIqrcc06%tr({ROZ-4yD=cr}<^8?$9`sFx~+mn1f_q239OQky5-}Ut$pQD!T+2_*bZ|m>!Ug`Q+mHJcm z-+y!7TDI3KsH>9yl;Y@LK5s4S_jBx~q+iJo|IvAC*^aFG-T$`U9?X)ixBOGR{YU4r zWqapW>B0T>ADzpV?KuAK4|e=V=dxuxJ{0TuxAo^7C|wWxQ~mu%=eK2h+kTVm`Afh1 zAD!Qp?Wpy(mr@)lwf}$l{I;w=Dy6qdy}56eo`Wl2w=?e}UQhT_z5Pe$yk&cW6D528 zT5tc&`EA(_tzCV2z5UDQw`KjF^ZF_2SIXP}(fMuJ4quo4D)EEkrJuW{>)-wqKmXA= zZ`s~1;RCqe{-bl=vK@v!oVXqT(K&C~j;3`7s??vnKP_KB`$4*{^{08te{>#Pwx?A! zXYRNE=sdV=M~jbtu;V{E4=&pgc6HGIYwlQMqbR~l1?2~5#UC}GNrONt-u13eY67@~ z2B`QzkVj$=j_bCZz3v@%R|=+RV-PU}eyE5FA%#>SN)Q7{p}|_^AyVX3QhBH-BnAUi zsv=0yIN!{E-0s|g-JR=YCfS{xo$oo{?Ci|!w=>DhBTatZD94ryvn}$sZi$c<%I^4>A_dVdZlowy$GdESz{PEnp+b_nvDAE~zw3^W|!NGjd z=xc1B8-%-=RZHR48Shb?fAS7y{&5I5JXlZR3OTq-L#=RoB1lE(L z|G-^X`38kM&*{2$6ay%P4L*e@mV024q)L&`%lX2K<_*;};XK9wND4V(TB`)p#+X^2u(#Gdi zrH;#Q<wOsJ4kLd{21}P3_*eR}^tNmR zfJA+ias~DXdUZud=eFO<9-A?+X+ZnYoX8ioor3}Dg(@wgYr)(qUoaS5TpgVqNA2-d zhQVXdwJ|TR8XBzd7EWEa^7y^~e&zo0c_2dlolX80Jtk}dL>}d5hrBx|r^NH~vZce; zpHx11`0&RkD39bm1_^t7nMfvFB9AxUYacuA!Bz7=^&IRUx_WVY*>(SA0LFa>6A*3O zKps1?TAS&Ydqi*+a3n1?(nqH9JzG;H(w=I*Tl-}1(`5&M6*XyK7;4WA@y zPas`$j69Y-wYH_}{=-Ep3a1`I+LV186eWcoqV*5HnX{67`6CXVL+K_pf zP3pe(wyY0Z%g%L=t))ERzbFs+jgu@h;H&U?LSapRMvKjO+7r?jR@2j*>dFXihpGEw zfrT2|71I|EyDREI{6b@50z^L#ySgd-%d~oFj?b+{6Ou_^X9oLHC>AY z{B|fXIVg=hTy4o7K0vGFVATOq&I0*;LV;#oB}bVa(}FouAI+Yng>;C=Pnn)QtEjlh zo2_Q&=N6BeIEnq}O<0 zv5iqlqFY1vI>_JXgNUVdW?IK*Q=GNN(5+DuMSdnqXZ}zyS@nqmqm>0y(0w z@=#4Ie$Va|RM@bA1hLT_QX1&nf%L-+e@mo$*Qj^6JD6iXRtbt|y~-dofR5MA)>$E! zj)F?Cirs82A4dcT61GJ`6@$=G$&rdWYOnPoOu3+vwDTv85d#{9?9%ZWXoy*tm8o?_ zH~Zp%9M;u}oY8Rp)@1xZ4*c)Iz65a^WEnc4pb~7cCnnAw8x?q-A>g>k7!J~P#aIs8 z_Z;Bi0CMSxpi%*)3JN$!Isx{-(@!OOFRyQNAu8SN%IHz~8- zQl*=Wb`zZsmf3Ep(oIUc2~H|VZ8t&PG88r!sE`Ys=bEkuDgv7GkLpkd@{5XvCMbc1 z==`M2x(S*M%%wmX$!IsxxgeQ!6P+)SSvS!+1(|gd9e2yDo9Nh7X5B=`Z!+s9I>wP% zH_>r`%({v8m8I5Auww%LakO7TI&YcAbt?LkdHMMzB?3K4kV(|vL}uMYeO~?pFk3SZ diff --git a/onvm/perf.data.old b/onvm/perf.data.old deleted file mode 100644 index f1a1d5ce83c252232b55d634241177f4d9e01d88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997912 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

V8`=b-Ur&zytxn6 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

x?k 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±2m-}?0Y!5C#`avx@&@W$lgtM^CSXNvfqEIAzBKj57C826KP z7K`5tM-GSQS)90u*E-H@aUVer$9ug!=U4u-?ej@|pPd{I$4Q?g4emS6Q}Mom91imm z=ifg4zSurlMIUlF>{mEZXC?S*9rgZ<91bqd@SW=&r=%EXa>}W8>z8k~kGfCyI?PM@ zT>JLWao&mdUgYS*`NL_EdSHki=I;w16VEZ^aOj8gXYs@#t&_;d@nIg|^l84yaY~8n zEjjwI591UXTsf5OQ(L@8A&2AVd2d>0+24+{OI%OL;c&g9PxO<6L)$*;=kCejaGW@y zpCt`rowDM5kyB2tm|GoZjyNu_!*SB*r`*-T+CHtsJS3<3w5$1#x3b zaJElN(T5y;xUay8^hb*D)`=~~ha3*qMVxEfwmVKzalIgi!*d_bt&24x*gipGUnPgb z{Kh%(>bc{@7UN6~hk1b0KkkT#wogy-9869*d-A7_WSuW!oV^a$d-@cuwaammiu+=6 z^kKc>-0oH@vhAb(E+;u0&L7U4X|Eios(3CZr<^65M@6xH)ZcOTIy~3V=gXC}QLQsp zeD8o9ec1PL4t?6=IR0Xs$>Gos=T6c((QKb$V*ZfB;XVc@Zi%;!qkbW1b#e=b91imdXX}dnjuRxVr{r+F&-d$(){ANTOc3Xb91h>p zpwF_0?;NLxI4*KH94F4^C=+7YKDoqm9yuKE{l>d&nPXdLgSZZo!{Pk{eI{2wl{W#1Q9;oN^|P{@^&@#Jcc0%uD)=Up*kc^_@B5+SNgBtueIAPI1vwo0(dTrb&yF)q+#ixt&eaA} z64*Xr#XR&noIm>f-7`l*>(mhUE#&CK_cU-?Pd)B94aIpU_uUEZ_t>|p&@7SdQ~t;M zS6_dR{Y}r$Pjf#(&qnRPIsV?d!9S0a<9L~`I7!=1Pi%Wu9~Qhr4u|_ToCh6pC$UbY z3Bfz$aCl#b^KZ{nj+1j`@D4c~<~>fOu`QC?KEpNy?~udcdVo`OS;%D8X(`@&ki%iV z;ym0x({bYL4ZaUK99*2Gck(8;eHw`O-{f#`aY}qW<2V80@4S%1VZ3m1ByXL<_EA6A zOAg1+vrjfJ7AB>2%8274hr_(2&*8>%9H)`k2gu=Ye}i*jz)z`cpKs#1gB%X)4JXCi z^Ntfk?AzpUI8K~wd)ubAeM*VzBRL$d-#7>Eg-c_dc%lzEoJ5}UH6-+W$64m%{?B;P zXIk2VX>Ff&V*e*cpFq#g(Pk`l(Q%TB^G*(j-`h@~HZ3}&vwa$fKICxNk8lzViig;BaCnb~(`eB`$EhOjKgr?n^Mg1a4i(N|`^*scA>?ql&fzS%d)aaJi~ButI6N2O zR0`KAqwVuve11X>hk1!pEn}2S)|n=**W_^6A90pfT;e$D_W+Z_;dvP6TdQK3ZJ**| z{*c4rz657vz%|F2DxNpV;jqu*Ojy|^i|wO+j+PvbcfD6VA1$kOB8oobaQHnZ^r`S- znd5X9<3kRI`%#>SaY|&feYT4}L z4d-&Vm^rMoUaT*2IE*{a%vmcPXQ@~hs^g7G~`kZN3HjnM|QQZHK zqYwKL&d=lSI?f<*T;y<=-#AlN^vP@cBoybJ91hnroKi>Q<+ILlalXjm@E!zb?!&c? zQ$?%`ayZNYA{Cb&B|SU*~n^Oxxf%>OCGg`Y;dZQ)6RAKig-nxE~{j!#epN=kg=RIW5jRIULpr zPT!z`1#O>KVx5x1;r;_BN&F;*tP?`)^W<>ohcm0dX2)qN<_|d>uJ<@qYF8<2`fKoRdV#9A5NnOTOCJz zK1&XV`&XPvVX7CieJ+aeA&0|zPn;cTpE-{Dc_wl=94F463d4W4eHx2#CWpg3z!}jZ zWpV3V5c@ni96tZU85OX@aTbVmK@NxG#Oc4%zl816Qj9Y>9KN54^WxMC$9W>2o5;?qW#v3*jA^G*&27w6CI>B?FsgpYl^&L6k;I!Mcd~e(T5xkE>58+St?maT`$Pt;No=2aM*FuiFH8^hxv`urc$HIw$EU3-64m= zxa0Kh_|b7fiup_qhv#0L4paW9V*B(L^O+nD&j~nHHe{=6ok-&Qa^!HBmpEB29(5eG zzR2Nl9l|;Org1gfNBzB8ayT3(&W?m%9A~cB$H?IXdfu;g^_yDV_DLh&_macm{R@4z z)z4YOI0W8@>koZ zi|9iRhxLzhs&%N^))^+oha3*;1gFWUS&lP7oOg0K?2kB~7U!#D`?U7){+WI_fyd4| z&Lpv~lA{m(aAG`ZUDx(W;Nx+zPH>7w3tP`R4a9sVM<3<^&W3Dr9Ve0)A96UXf1I<` z3e>lKzKQEHIUKG-ICZ;TaGY~u-ynzMJ@1PqwrgPf)E3t-ayUF^(r3rk@C~igUz{&; z$_ctY-*MWBK3>N=fBODgu#xR^Pu#DPqYvkg<0_x%lH=qS=ZhQ;?_Y4rK?Q>R~ zFLF3sUvW;?j?~yXE5!ao4u^g?5&AE3oQGmvki%i!;)I@Gq>1g*U7UAvIIK6E&WElz zP84xm=s3pKjdYP|2@YkE3Oyhlry_~-;TCVOL1IYhj~Ds5HsWdZkkVhY-gS<%M(ktcaM-VL*59en$@Y0Fu7l)om@8oc}F5-M?ywP!D3WpqypXWVW`B9a++CF>4c_)X%c+qF& z^2d%7U0j#R;c(x8)9U!3Znn=5aa`nZ_`DG3_JbtdtNu^$`Xcw;3GREyZ)XqfY5UCj|NI`Z_vfa)<929o z@?O>txjgvqwUXm_d5^~N#<{r7arW;B-XVv>bp>bc)9Sr#pGG@_cgW%J{X(1<5uQ6v za`7BQ4u^dT=SpT*D z$lV1qIAz2>Ne+jfhs4>^ddwi( z=d)NBjZl`3h(F%6*PgR=oEhhr@LR=flamLu{Yg;`&GqhvUS_ z_;--wBogz791i!9I4vWMA8PyjF0M!9aJX;7*_boaFzbZ&@%I3+kKm-ManNx}iRWK( z^kMzur0?8dxb3r2tW$D0?AJJ*CjRR$Gx&FWTODTmyA*C`; zh3^7qHB)bg4!=w8hd0_x`IGty#k@}eosUz+s@86E&6+hWD|LFy%Kz{Gl$tm0LDzrp zTL`f4e`%M0TJrz@U&Gk{xApVafBpj<{;`kew!SB5B=EKet$js#d1hV<_5T{Yrv)B# zp{)P>zb)6zK4IU4x2)F9J9KN5qfs^R&(0V9&MsKxHRTVja6!w5&dR>Y`hTt~U3FLR zZ~E7dj~{5cdx`u(9bXH4@1ZmQ;iG-vA3DA7K&zL;UEg`k8|wRfTzv*KTkqW^}mTYjYeH~#Xi6J-C;Ik&gl`X;r{&NiVwQGSx^dOmcXJ6nDJ zuhi1`544_0{jlHcSpt9bW*=W3_t0_u5aSH-wZOI9pQ-O#bM?NVv*y|HYN{??xvgRe z#dzB$$~l2wBS_DO&eZM&B!1t#ZN5iQ`nAFT2gk_l^2})mP8s=1as$^pBs%E(p98{q?^e zI@f4lzxE8#^=r5FR%+i0AKQJWerMQz<#7p}>-EO}j2q9RYMODQj?0CK!~dZCChhh9 zgU4kjdtA2E`B$G`h7t<|{@#xI_U4{nU8z5$E?e*)>i26uJr6puKdAXm$vT$>-p9%M z-|ug}gZPO4k*P(;pVaTH8G1f+Asv5*`b7Li`FmFC`51rR%)aqwrPhr`N#Z+_8GRZu+@#^uhq8b`OvvG*yCrpuKxvE*`;~m_@%!D{-=#TzC15L z$IT0OrFKdBzH=z*d(L*fZ|I!cMIATcqC^Qz`GvOn`2NK`x3x&hAEstmD)1iI^+Y+2 zK<656=O_Jj`AHQE;|tF*QYBXy>NjYI-Y<0Wxcnl;y`EjJ3%vCE^z93sx07$)wOZ-t zUBoZ=Z8))80QEc1ZeO`QpmQy;ysZ>bhamh2;YO z%r<@d1m`73eb3XiSNA+seut06!%_e982`ciCHA~NTOU_2KcRiL#J(l)|FZAll-mb7 zZzX$OQd;L)S2R5z{TBXbEh-g}`meV~?;kqTIumgM{4w4;0)H(N z5215@o^I=>6b~lc?j4ExUu!>4xqYCsPW$Ew*CE|Jq4t;ZzhXtE{JwU)@vpzAydtUB z3cONwfBA2DmrIw8Lj85I2kCAM5jO)$i+E1EW*FPnq}uzuw-y z=V^8J?|FW#nIHz`A7JKVJWp3MUwe4!>Doi>FPZyp68QO;`38LNLEHZ>y?@Nx=X1 z|K0O+TS1cl7R{dt{3?up=&YKy|B8D5TO@wgprLW8|58jo0iAPvROh#NtCGf}{10}1 z=a!_kmwJsAeMSKMUg@I!_4eSe4hl7Wn7vb1QOx=i)E=E&LX|FfuXq`;Ez$ zp)<{=a{P+@B~=p2=khP;OwSX42mf8;?G^aZnehajiH~&$_y_U@CZ+xtG5H2`R-nDU zt*oD)TqVT$X;y=G0^iHbf6$ryBX5BJOan$Iqy9%R{-N`%_0<==OZ4>xI#+Vv zde;-rzxD3mfR6&dI@A8>Ki;l(eW9(c|ETldx(wq|QvcKJcq7LHuD*bOFWUQJ*$k;D zFApjaVY zaSZ(z{3qQer>FksF?j)Wo|``Z-itc_>V9I0DOod6{$<<090$1l#AQ<6o^Z!8fp?$r z3!U}UUKiZe=SkR?L3=d1)g&YJyOddXKxgXb7|-BGv;GnIyP3K%bS6H2C-~n|Ov^<5 z*JJu4be<%>_VLEnx6c`=&X~7Yj?9!Fz{Fwbto(L=%&zZ`_?_^7yv0d@zm9pn(3#pN zos`$)AKW|(^}m;SzR;QY*q4O=RSSO!{ESQ<51omRxB-5cLo>2c{{hVNh0eLo>$b3- z0Kd+YT-hi;8Iw0b=MAv)f*<<+b4}_$y+fZ7_^8v!aUMF)MLX|1p^NkCJnKo{Dm(SR z;h?^5<6r+#>rAc6gw8?v$?f)$;~BTk!M_*n{jS4oftQupH-XO7UrtHu?%AXBv)`)NwSuXZt+V|A`QeqaZ0S7%)40Udmg=jC<&u{kkpGanK&KcP$Y3 zotfteovFXvl-7HfZWqi){dZyJ4d}c#eR0vcq>GDcdw&geMc|LH{reZU0s0dm1D%QgSeoD3 z_AOG7`VY;_&(L|jzI@u+uFI$07S=oHhdUNr75J~2egd6mo1L$()$=j0fZy$CmqOJ4 z9wx3pXKEjuKL)??vnYirKPTfKIurl2wD0*L%rb#Li}4SgY2O3$3;Y*JU#tlAKZfxS zooSq+{sI2HayJBiB-_6{PN73w$NK~yrT$*0WA~!e?{ua=LT74ktOMcq?D*eYlwXtK zL+6~2s&UJ+Z-v0WYVR}4?ZM?+nWX%G^VJf?sNYeW^!XulA#IPCUv3HfWlUZX+#ZH~ zeZ)Dm_nP>7P0!PLpFlmYTdl!rfuD-;kGibY->zGC^RMpM zz*D*;^`9n$bw@lGwD+^6cLiPn!}Bzqv%|U@{6ok3l%jrTGUq6u^JcU6-P7sU(}-)} zH+&SkH076N@@VLs&%dhUb8Faj0)HA4uekBKLfRM4k-1zM>Ng#eXF+G`-&m)jJzAG} zAn;2weCWJA?D@Hae*VPYf&ZXw|FYD7MrJ(+ool3z@A2sPY8^ApxOn9#KeL@5$$6Kl zj*0vLzDum#AaGAH^Conr{TTc{@Kc?tP@ei;$<#5SGwp98KLh{$%ZCEL4l_=nGxZy+ z6TmMT$y0&)kI(R-^X|0k(;M}55uCdKe`@xG6)C?UlUG3Jisy@qo@lzb=(Z65!M|K- zv%r7$KjzgkziyjKe^CD&nYpSjd_01nVuis#{&OE!RG=$DKqaw=gil%M}uKissFEb|L`|Y#QX}smj)!OMtOsn zIy7{q{au`^0Ds299Rj~I(;m<{pSM%@U*8<8UY+`X$*lLebp-NX_}zd1rNHaQ_=V2- z`MIsb(mG}8&!8IAZ!TuugwC0-?n5n4ow6q7H)6)OejiG0-}a?<3p||vm;0N)?K`A- zty`)EmI$Z&Z_6jOI+1-d5PPKDXptYuOC&L`hU&r-$Lj7 z{M2>Bm@}yZDZc`f#|Ez(^4R{f=>5xievS`&1^x{t|AEeHc;5nX7wumlW}Q0Je`x!> zh}>VGljj%wd%i~|InHGBi2Xoe|K}e`qY17h7X;qke#pP(&uZa zqk|vz@<)MRml;pcnd(@mr-9%1%eV&A{~jjZLT73p%!A7Y2M0_>-9a1D)%ly-qx# zi)U3V0Gx3i~b?0lDz6<;-Oui4DtEHXqH`L|(>OCbns!eH1{dZ>8 z&xrS?`5WT`&v#;{Y|SWtF*CnHXKEk3hX;P5KaUH1?)))y&gZ1me60NXrp>8;)J5g_ zmCMI4&%p1ev;PRZc+C6?ook41e)aUx&#zcFfq&=2v=-FwHYOi~&eY!6j{(0<+qy0F-`b8Ra{F@mF5ZKM-`}!_X-9djnD_^stGFFs^XvLs6|1sz zZ^o#Ka|C`w`@Dnf7dq4P8`VBl zK>d$o;!|+^J7?#&NA>wF@&fqJb24m4%D=$GSLm$SzVi;QN&cO8DF14nz;9sB_ww`P z`XBNx_-z`sKqu;V7SsQrGu>Z>c^do^IWGzPpUilN&Kt?szpc=^{_VD~p9_9K?GBx( z{~%_5htAYrFmHgrsZWG1ls}qzp3s^2Xh-mu%~~k%3oz>y=q$tfAN>may!#4urT+6W z`$Eu}?kS2Z#q(14uL%5f%zO!*bNi_I&%&Rbx>5gY?RX&fcYXe&#_wGzB6p{}knZat zPel7ZEWAYEC1&~ubk4uuZDCyseouGN9@K9GCSQQg#K&_6KdI-M!0*UBKj@s#Ik+wS zPVf^i?Anw1PssFd=$!ql`A+e@QF~GTOeP+3`3c4?{I+ zuSN8}lz*Jb-=K4SxAUQQy7@wlC&hzS3j7hafB)i%dM-Qh`jY*q-*ilS``cfz4~_PS za`v{sf6T;h=)4(x{l!Y5?=Q&9z)$j_SAXi?!;DYpOwSYN+k^QrV-2AEmQ4JD&iNdO z`aE0YUL)|=Fymi8Kd9%MGc+tSkotYeJWtezP4A;4E~7m{4ZbJvJ23TO=uGX6btw3I z=Jxea|Gk<10-dL&{hmxi{rVnxHu#>saRyO-ZH5n>vw!t@e!sg;;19Oj-{0|xIt%>v z2wi?K^;??B51})?R~4tExWAq&_1^-2BNGpyb8Zi{-haB_fFaa>EGED3x89F?0?%|{R`5Tz=37yG*G->@gx!*>C--f9-LucaS{UZ3^wxHrL>OZ&rJqWp;4V{UPbszYd z_CFH%+_^#Myt91uY-^IPo~`BsH6M9~Q~$G=^B>3uoY(*A`xMu8_knYRf1TFm?bopbxE`Q7pIl}Awj-|h9I91pns4(m$z?cMdMz&p;wcj!##!LUyS ze%1*?MpC~GnfK?Rb6v6Xm(#lZMXi^g-kf9<6VB5U0`JyHmUn_zxI9bk6t6tM~Pkbqya){nugYQ9<^5 zJKl-*`zxdL^&GSt{3mIVd<^C931R+%-vwT&kvj!m1ja9P)^cC}bIsHDKg2cg16J1< zOa0Dd>P65ww};z8-Uoid!>xQ_<_zjUa9@1XSh`3 zDL*RHAA|dg<9Q2pz40XT9)bUy$v6D? z@OIntvm9^r^PB3g+50+^slQ1f^5?c{mJ;*ZGtoW>y!*^}ht4!!&~Na(o@E_7h58-N ziJ&$gJc1YX|k5Y}V;nW>fxVW*z6>Ia#-rQd)-=+a%`5XPv6XA!zAH~ee(3$*Weg*$qhN*L@|J8iTEUId-%gfCC`?APV#>OHvI$2OZ!{qJD>W1qxZ z)vg1S)7JqIui-!Px}O4n22nw;>ozqu;(cK}XZ-#R1zIkm{`xY{4?5>_iEaz;FM$8LL8!%) ze~uYH(7C?Y=N@0{`v?9G{5$<;3H(19|InH4NyhpQ{F3u?FQNV~G2;h1YoTwS!8Jp_ z&w%|r@W1UmEASIC{-JY@Ux8M1>E4Elw^}cy{-ZPV9(3HiS3n{A@6*Fzn_T<(3$EnXh-lT zJu0w@`oF-`@1gUIw)cC6=;m!Tt_MZDEbxoi^$h>w`oH~AI!~N5d&kw(?{X&2K<9if zpE^&wD@R;I`7xOF0On~^{S|dk-`L+Hucy4oOuT~5v|opF#^4uEvQ*%6 z?}J0<{QT7Ks-?>3+Ccs9VERY!cy#>Up}Jo*tlo8j&)utrJjV3?#wBUKTi3VSM(V!= zGao_cy>Fj4xUSCw?k^D6r|aiO+eG7x*#-JtXl#v4^tn8&Xnh)AAvtSRnINd?;)mrq4WH-&li2vKR@IJ z;BP4zV=LufV*Eqr{QT7KJCtv^O5l5$bqeZ5ruR+eOZTa598qc;^*@XmpU|1^$-q2? z_Nlb~j=(=_nBPp_kAV;Hzh3CQo%$cee~nVz~EQy*>4y1&(#^A^IWm>xzoCQPMx26%!<34@((fo5g$zTSmZhIzjx<)fuDwX zzR;Q4AM+Ua=dYFDL;YuB{6puR;%gskjJ|zPPXs^Wx4#Ac6K4K{&g38GtiT@*? zKN^#-Ll@F}mvZJ$u#fV;G4UVyuVjKe4~ZBj>cdYJNeGWiH} z&fk{|w3bTyLDBYY7xba>_`BNODykhpak^7yVr{=-W8|)Hz z8JTrE@?ei4k4L_P-(ROs&EwQ>KBnJ6=iI(-Yl?JlO8VKa1%6Uyo`BB8$8(1Ng4;)) zp#HxzaTYpfzPgSKb1l_L%1>|46Y}%auOrpE)Yxx(1m08Td1796<+sO6cKvuk{*Cr1 zo+|JZ_4}Ne7oc-}^v#=|7y5Y<`4jlnO1u;J`0b{S$S3&K!{T4CUWi>+>%^Pi}l7{=#qPxn6-+kh$LyI_Go2s^2?1>z<{4 zliByV`sY`j7n@!GAn=ac^MK6b=0(H-{QfWR$DX79PB3*==$yx&`krp6m>JGfekUf+ z_jkW|rt}_u+k6KF{vKw(9y*hMGn@z2FS#9jDJ+B)lB zl-G?J|Ii_S;=aR-JO=#bqmK#vDNK7nXF6w$c@_LBYnoi8{`)ZbC3L29u84EsCph&( z;JXs-#3_Bg0-ZBoy@%@W2EPQpbwZy{aQ9GQT)=P4;WKVhzmsg9{2mi@ zu7-AgSW}-L;yf$(oi^mUMfn$w>)Qi5=k`$F^WJvqw7|d3)Sdi$o@)G>@uuZ%>VJuS zKG5Izg?bL!<8YkNcPOtmGe1LT`u-g5cLl$5f!PB8KEsF3)ZVBUfuA8T&t2-j9K(ms zI^^pwu3h^6f;b2Mp#kRv{uyTegwAwMAN6YRx6W#FkNOYA)DNIDvMQ z>bf9Ll_F26Z+st3o~O8V0mcLTe(H8r;B8^z7wjw zl;@QDyFEY2?ZB-!@V++M!F_G1z?;p~&!BUDZtA}G`d_XW)bBH9KE?XWbp9226#Rcq zc|+h|VAe~}Ir~??TlTtm_m|ZFV7qs6Xz$ zXy}~pi&Nhh9}+3%TgtD+j2p}YrgQIj&gdV9GOQN(%b0l>I_Kx-wooqxKUam)@2G$7 zepTq4&qJusb9B4A0>7I*5Bv8#)%bs5T%Y&UZx5!UJk)LFbs==l z-`!F7lT%(^EAU4%;~ROb>Aq8ZCmsIteJ=Zv`Y*`r=R;@eA6PGeKPScmf&T|n2Z7GS zM|=lAZl3<1sQ(_!J{EMQJQ?R!!7mjU?=$6}WAZfUJgI!^2ya5&IzsJ_U;1tk_*d=r zm-{!@ACXtU@8-D`zEHovG5rNPPkY;MGo4@c{r|$d9}4`UOuWLrvgtiBoFjn$g*OI% zrT)40hR)PqFz&z~_$$FT%HPGzXV7^J=YR1#!9SE_v%uf6Okc-=&iOm#YCLRRu+n$x ze*<%VLZ7#(`>5Fip9s7v8})TEZXXrv2mJoV-3I@l{|ABpUXM`uobP7oju74a67lBNt0%b*~p-p&dsseCSN|fa%gbUtyc?5ct0_ z^9*#(aYKE6YdqCMQUBR(|8ktxKRe^@_%{pUZ>ap#`UKKR{N zveXKoKDqm^p$qAJou&L6fuAab`}8<}0l%Jhqry_Z<(Yl}oo9+&ha0W0!=;wiZ{4S) z4oCS_nQ;f5^SDsoUp%mBufQ+Lx6x7X1_ikLwp2(UXFATDSrx+ze8s_?;a$rf3sBE zFYv!Gbzc0<@PeNxJU)b*i-*YBI6w3E9{S!J9AL}ge&%HV*@J})OywExG)%DGo7!9LR|4EpA zSZ;lT^M~;JXTC22Zyw_pI%mJ?{atz76QfbT`CKeAAcMd z_yKl%%XyJ$Uj@$_zF%}`8jJd_!L&1U&fh^&&(C_t{v+_Ydy~;F&Uu$wC*8hjT5Rf{ zdv62lc2gY|{R!=p|7?ypl%JKU|3l~857qsP$nQ=He9KU$GOe!=-{AjI>=tpU|0T?R zC3GhLSEcukqvo>WQGOn#|3GKDX9M{T{70!eQ{ZQ3;tX`o>v}bhoYd|2_|$)D#y|2% z=Q^PpXZp-MBk(ubaoE2&qw>P-Zk2%g-D}VL{_)%v@(r|a*E^vTQeJar{|q`)|3E$f ze&n!o1bzc1Pl3+FM?MMuh%|WUV=(hm_}O=Q^R9e|E_p zAvxu8_fzQ1 zI@A3ZsAqzIa7(9@)c*@6jzMR-e;o4(_$@9)N=5l$nEhDjO!sXgUV#7d^J0NNjfn%$ zIjwg?xjfdRcCBare<2S1G?j{`rvAIxqeQ1poecov#W1{u2}R`zz3y>M8g;@RN@0nuh+q&kLOSru|&Zr{EWx8#OKE z_hIh~s7XEvR?LH!lJe@_=Z1LeM9@)78~73_6j3H^MI@d*CdvMUAt zQzlMBXUZ3Fp9A>Y+n3Bp{m)_I1a!{*M9sH@M%)(o0nBem>7dq4XlvuaGfAv?Z1%6>>Jp!HSyHWU^;8%`R zCJXh?-BSXcDUPB33VuMAdjkIt=G-H6rh9;p&w!u4O5d#1zn57LLTBoqK~i1&Xva9& zD4+Yz8+4}cQlS0{|EtEW6Zqknb0g51{Nua;_`}zf%TE0tW9pR9neJJ^dmrGBIQu~0 z$7kLzg3jb0-^T^N;_Lo7sQ(oVA3D!w`yP>1`uKqJYv6Z|6F(>Aw`Taznf#+J2L9FG zHwyguOr8s!^LNP9a~a?3R?J2HSFr0v@_LA?6Jy?i--~@83A}L3dI&nxd2=~$>b%(V zJN3Js>5tG^^X&Isrt0TI^egypc_3kK%FoBlhtN4cPqn?L-rFqjZ!zaax%S392ET(s zRn9~GzGKEebk6Oe`c0blslZ=pKhOWRf8;AYBro+_jPZ;9;e2i<(5fNr_or^1Bp>DP zxBbfNW$5(#{c1ZL8@Wy3E@aLnaL*0>5zno|hN}6g&+*K>51m!d-mk5u->*d;4}Ruz z&jtQM=KKKeqY(8!hG`$@oazhu@Ax|8!BmzccX$I_G#3 zX!Vlf?(61hicx-7J5Q10E_C|1tKJjcd)PjKyN+2u;{9CbdyCx`o;TX%$nrYHsqcYI zyFlms9NiY~3kJXc;r9Z+HdE(=&csK(6#Si!#+0D`A2In5bk2PBy_tJq(wC(Cp>`aQ z`=S258MU8O%5Xs7ZL;&tkoFU-htUolOV=+&eI{q(6?C4mzIfs-s*5LTJ*sK@PXhl% zi1yvoeX_{Y$Csvlm;8_ObLbA@{mS__XDmbcgPCyyovB}-&W84Wa_Nx3zrn;O=zLXM z%ffd#FrL6m`>A1B>h~fuPM~x4tB&(paleXurjFn*A9)S@H_JPz9QE&I<{Rit-#@^; z+TfpRl%+i7;1~BC75F8Xd;&UC`^)>D=VmpoK>g2V*0Io;_*l=t z|GFLD1^z{*{h>3hJ8|C-`0MXasYw0rV)_qs&i>W-GV@oqKPZ2bJznKFs~=A)FGuPV z0&gM{xAi==&YGljvr5!o4<=tm`#P`N{*8yyeW0;g{}lPmJPch(+jq_I>6NMfY&PHD z_QifM`opJ{Ijc}!I=jEgJm}>3hjj&b<4&Fuc=&FTJiejx1Z=b3gtsj3cm4S~+=mAK z*q1G;QorMv_zImB*{+*})~|Q4E(QNX^ib6(|0PpLh0gWbejn$N?!21YLYx7=^zX9- zejlcPK7EMg_n`d;Yza{1C=l{4V%SSh`(p>UR&be-EAKi*G!6U+c#c z?$HN-TB~q@lwXF42hf?~Io^W3|#-$G})M*(>|_#2iNs6+h^X67U4O!*M{ zE%@t>UlRD-y*SXB?oY>k4&Wzy-Jve^KaKGZohcrm&I5kxs1fT?K6lOxI@9-a@Lmo0 zbF(ZG_^X)p1#~9=Xh-l{mn~eM`k&A6q4Om1%~#&oy78*stMq%jzXbj#CZ3@l;=J#z z#)Cp*J2#;IH-;#mQ|G588zVQQyseC1%umkm->B!}mS0#R@DtnfpTGHxT;B`$RJ0NG z`cb50vN=k=o6|E}~~F7R{M?Jqx1F8{~80>5Dw6mLTPzBSCx&ihR2x%)7OZwmZS zO#X%Ta5_&G+NFM1IL^}^O{sqm6Hom8o(I51lFA{+K7`j|0n=YEJz}XV(AFIrG(e_W4$K1b$Iwy~ORGA+Di4c8%=ag8H4o z^cUz%=UVW0;7?u?t0m`+Lp@`#SL7q~m&l--elwpmXvc$~E1p^rW3|9=6<=@@=XA zy!JVhD0X21=V76Hwg3Bn^!<+e{(EE|_kaHHAq9N@og<=nPIk9FzdG;xsNXy8x$$qo zR~lws2+s3uzxw;1)x2cq)dB73?@q|n-MKo;BzZ-eZA#k~s&&wKK*I+9C0PK^>{j zI7~Z3=iCnJz1N3kB;F-X$$>a;rIk&$W|L12O+J*YRYCm5&zvSj~EWzmp>8JJ31z_dqMTbiSc;{+d0h|B80|%W)Sv?tBB*FYw*8{%e8zl$k%FGqpSN zMex`39@&ff{=u|6bf))=aPATORWnlcruL1_Tmis+)&i>W& zA6fIK?ML|+nEXqB{zJXjuU}oSz)Q!>t2j??`fef4&ER=f>tDA&^*f(=p3s@v1M?U7 z&*yy*_z7+Q{?2=tU%-30f9wG2ce`O;@@%uut*q6@b(!D)ar%LjKa=Ty&^g~Dq29~1 zF5*Ffzx#j6Gu#&H^=O|AnHzYh|G|uZ=sXkc_8F;fpQzHl+^veA1wQxw6LhBjf_fVK zm+ClS5cMC#tdpS=_lea!{ppxYgDLNfohQltkIU1szXg9QHyjptWtsj5ooSx{`}5#8 zxzcC|_4|yO-=K4DU$<3F`mSa4_g@8m2gW~iXkY#MQ_WklB%VB!`X9x_6XY$<`-Uoi zx-082%0J4~-M}|}e+c{cX#ZhNj|u!4Ox_5c>0UF;gW%`s-()!Tzn9tPgU>mQZAv6Ez`@1@y-P|=bi26;+)Wx~^4DZ?C_iwqEeFWt-V)7s8T!rj9TQ2|VY~910 z6!?4W{7oM3n5WRcan25T9sG7q(R?KJdx04*(0S+j@+oVoKA%Ee2mJFze+m3L%)SqF zrhQ+mPr)D4Y{n?+KQEIHLg(Dy)N_JA2j%*c^4~G>%D;7l`n`H@ zSKariaG>RA>c0y!Ui9;g+miQvUOx^shVqs(@eexZ`$Ge*lG3_rZ1mXz|2DI(f{t5P zp^lAyav@8evD7zrA2@WTdw39Ez<*QeoWO6ZJ^afx^i-iDrS#!>Zb##8<_X59OCPTXxRk?wDMzGJSypT(>*p)-w3)a}qdZ!YDVK>ZJ8`XO{CKH3rd z?;kD*{CEr>I@5R8f~5C=ZzO0xk@|nfFQf>ssH+0T%L7gw!MqVuN-`njj=NH_3(O9ZSG|5_I8uhz~ zi8Iido+H-jXpb1>uL}GlOq_wvnXlHhueI(no%%n|%%5DoC6CKHqod5Aylc$*7&=qk z8NUndv2p!Ufsb<@a{UK7=k`$FzbbXkHIw=e!#q#Ce}#F@`$fP0Mtp$(%Ac+a{0B_F z2%Xn(uPFA1!GD;f`z-2zH8x7nu0~I@5dH zh%?}iT)S4_7iPvcbk6lhb^g70rtBi>|E+y5mE7<2^RLR=@b13Ao5-w7^gMOl5Hm*q z#nfM0rXTyeZU~a{;;~udEus9XO#4D-x?c(B)$#n2RM{Z#%QN*a=v?{j_x!W#&k>{F zga4yPg{9PgBvXF2)5o_q>iMW+gI{#cLxDem;X~)GVb^Oa>c*qGzqVn|z-83`MP|HX zf66&dsr~2Z{RGP?KZu#%{p&w!e-HI@lfd81%rjhnPbcNCbCOkBLH%ZC`XhAC^P;++ z@wV_2fzQ?3@jNllc$3$51;>Pc{~_ibMf+JpSmsFrvZMXLseE&zrUDuC3MdF zUut`leDX}-#0xf zdm_*|w}X1Fa@naA8z{ddGmeAvnxejaPfs5Gx(o3e{@15ho{#4Z ze!qCNHd6o3n0W;{=k^J-sz`O?O-0@a{C9Rgk)JDcT>guFDflj1Z`3C0`yCVip>y`F z?)Nq8lX^4dbMYVX*>s;L>YebPcGg~jzlnLS(3$+>eRlAh>_0s`MV!xaRe?Q~zO@bEwdn_~^IrKWfxRfj@&8PtZBnUELP; zsllJKZrl#)e-y)q&a}UcbsYF9&u7?4`L~#RgP}9+*P(s@e!h1H1%5%hf6DVSbjSyh z|KXezc>Nf6L(YpH<;%MoiksJ zFAG~`-b4BEL-?I2n>htBlfHFRD7n$x5tw_AL-X$>N;jctKW}M zznhtTb*y8Y>!)fy{bcMJfxnJv@8JBRzpsAa>ZY$Bd}}Yh7u#%0tE1F^C1yN9XL_E< zi}5@oTnc@R@((k7=$!fL^PKc?w!m*=w~xQi6ZgZxZ=M)=k5j+hnfwAeXTNH_W_{lC z0-t+N6ZyK=>znVa?fUu7CDr$`G-!K*`rpIM7tlHTSL-cLdWStp`6-!vj;ptzpQ62A z&Yvgnsxb2>bRNTZOYwd?_zS%GPf@>TnRPmJ&h4RoukX{{ivs@?Gya3~XT!Zd_?_^d zC0vKo)IaX6koUi#L;mbtuCKqpT_leGZ0RGMq5S5|`Vl(QJr<~Q!+)pJ3k7~VW;{V> zYJYt94E%O23Z13?_cHMjIujq?^#i~8&?^Fe3B!lZ#IGXlbB1I^aAy}#-1aJ9`RaFF51hLp@bMjIxh`t@t}FUGe8+j;{R;Ix zfLZrLXSxpye+T}H1kwMZ{PfIoh0gRIB-WGQhbp>K;MZZsIdoP{`~Jg<`gsENJn)+| zD|warKgsZ+Gu^+3x;XgLhu;?X-9zlF)` zpmTnn>OOP!ihXZV{|}k|f_-Mwxd+s*;J;bxIJYQ&HM6e|o%4O4YJdDTe4W7m#q5J} z^BkTF{4QKs?l$#1hl#t;c@Ns>D0b=3QDFT6{(=(^1pY3jJ)m>`?y}k*!(aEmL;c?g z;XI1p1;1Bf#J@{3W9Nve;BxVIVn=-D?4{MSr-KxgXT<)w98p9&T4QU5oY z@dKTSk8|Jf|D(erfj^juFVLCRq4+!S(@yo=r~Vr-bwKEx&uOUlDR0`I@B!s#X69@E z&UdQ($Tv0%{9KHGfBBf#(LM!#RQj9x55tUC=uCBKx&N0-@l@cyVEE9P@<^m*0# zRDDeS*RuB=0G?n0N!7^LrR-on&8x z|yYoE&fmV=oULrx(odW+Mb6x^E?z}_|DGu*1UE>+`U6)xeLFe30)O#Uw zws|G+TQYG5&(*ZQi*ufMu1Us>cuxJ7X3n2M=PGWWch0ZR3%pYOsNLF>FDQRF(=VYj zz5jta5d4=sy<6ZXVEjX8YJa?61^$;8wO&&HgP3^)I%mH6y|zE1y%qS&?E5t2^{Vst z+SGd~mSz6)74=<;xo5;b-|BaL@>EXqn)096`^a+L@xOiV#?xh=z@NqWzwN76dJXUM zos#Mt|IDiMhWfw2j4SAzpR0P`Vz%Ay1%5*&|MPc!vqd^LUjF`=x72?DX8waNc>Sk6 zN2}KDeh-`e9pyK%*H7~Nq~8Zq=ev~Y4+y;Rc6-P?Zob2QB*tZ;GWFk6f4?(zW9UrJ z5AhBBlr269e0=v&?%&Y4uGn$$v@R~H>zO-4$A6&y)7bR^xjne`9p*v!eX%~{N6JgV ztaqU^-ItHN5B%~M4hj66hWpW+-#>C&ccuGJ4}5C)iTW?h_=nE)JZ1lxVty6)iw*vr z-``co%ip;seWw1GGj(bGcyU|U-$Z*Kub$-#Mye{FVCe#N_|bImairg>^Fctu}oZ`1hIk3Z1EaFfPCkePzlw>OTxK z|3K$l&v0AGrM$7>r)=LTe>;;mLg(yX?T?}2oe=nWZ2xk6;rgT1LEHzdov+ys>h}ZV z7dmIZZcDD04yf@{;Cq>R19T=n@?kvB-QB1EL;b&G&XGaq?P2e$chK*vqmBjs*Eui+`M-q1PUTchT4-0yF2slxm{T5w-wVr zpmQEC>iy9-%ZCd``Gc8rum5d*YfIbt0{AU)bC^_zC!1G&RBhZ zefM4x_@$Zm`nczZxDLPL?{tVj{SIQrA9SYsZU#&d=i^7eB1EKo?%qb|O#K7n3jSLr zS|sozFyjR}S4(?7Yp5HKYJSqFVBtvAe-~!ImCH}$czvtkUjpwt;}<$poeAfU(H`vw zb&gE^j$`Iu=$yaLrk-0kvovxP%D-Z_2j)x5ey`MYZUOaI_#Sm&iNKA<_=e7OFE{pM z!0-2@XjJMuF4OMNnf6(6&JO&A5w8n;?mj)}ocp;tkIm22EgJP7K7{ia&XL1!nm?lb zMtQTDeShej{i^lg=AD)c{B2BJK^*i<@r_IGXx+GUTR67||24-Kk52vfVdi1zobQ`f z$Nlz=HwAu*5RQBNd*S!;n>fzHH7J_mlQe5GPh{~4KeK6F+L-@3;YLBH<7dKCQr_3jA#6HJ~A zoykAmn*cv|pWd;l|CnGPgxKv4(0#B^dIP)-$zyRith*32>d+u zc=9hVRO3~dhh^eYznScPIGLx(1PsZ<0vwn-fpUUjRL1!Jc-(T9RKi`gX z!{9HtQaKs*zl~W(LuYz^h^ydRpPmZ*229-vI`R3bb?sR3hbE_fGck2af9u+_N{Z`7 zSFWTfD1RyQJfU-L54VLlfc7X-bGyKQebV{;JWm_@KAXn+=ZW)~;Q!sLT1x7FC6g~f z=Zfd!d!p(2I3ElCUkhFc{HRQSgwC{H!uccclO7zNiuy0hy|k9O0ZTcrQx5 z7I-n3br^Kc_xP#j|5~;jnU?x(#q>je&;Mbc8vb()O_h%FA2Iv;&^eD&HP2bOY>&Wi zZO0jTp5WpZ@)h_keX@3X>i3!e-<#&E z$G1}G_-Y>4KlDL?Z!zmeE*|!k)=djiHpoi-a{F)4nVx4HDX*wku*cI_4)7Wgivzo5=w zdF*v@PyM{3`IzGtU<~Q~S$#W8=`1 zb5j4@{v33s_>SL+_DP;2Yc9&?&M!dc3D{=632#~6@A~$U=fA7fjtP7Zb6y8J=XBASJ{PIkHgwD$Do2Ojqbn}$@y}qUu76|-*nD*el*N5K)zc)G-EKdDqVxAv#rgb|0 z4*a0$mj!+RQ*VXNR6oN$Irw>ZcPv5ucV^E0L+9N8)bH~qxe~D?5N{6e&ghzh&Y(bf*1YoVN#mQQoTpzbDh*p)<8V;t=@B z>vSni{crjo;}`C21pj=WC}k+0yN?k%rCx~^ZoFDY@e$v z^>apP)1GvF{K5mV4I){&dDably(BcxJWI#WVF@26ve5<*5G&OkD=`dn>=aPR*`g zhhZLu|JiAOD^K}H8UN5(r)~Zr9bcWFnwME2@Kc6x9fo-ee!Xo=RG@zEhiLy#{a)qj zk+%fiQ6@g(dzGg5fRKm4@7R?+D^kBJnK}S;)(N|gv0q=uz~6yi>r9M4D8D%qzo4`7 z*!(PdKKAv%pZR)~z%RqZFX)`dkJ>-d$0%Ki`p3Nn@;Vs(K-|Yr*VRF}?h3qBO#k5O z^jKfw_rI>&r!w`&eIEll??YevTDNrVtNQKPCw3Le&%wOcruVD1=Zo2E1ztpZzVxp> z)$hI3+EcbF^>>b`YX{eX(%R?elIY@t%8z^hzQ8}j%LR~{Ef``fX;b*xGm%{;E&0-LEz)NvGRMB(3#$o!8`AMujv%yb(GC?iMAI_ZbgwA8AFQ6ZTpYGKrfnS}O-=TBv|LXannUO2irv8^PbxZF2 z5Z0ye8zuV_f!C7Br=WB0?}64EX+QpJ*};L-ZzP*9*Xf|s@5ihA{E@mPu0y#A?K+gq zb>8P!<89EitpXSKA^I0@RbIhuRq9fovzYmSn-B5N@x0z#eJ1d_+2hYYf9gK|tWQJh zQGeY1rvBFR@OSW=Hg2-|lwXC3N6r z&zpLGcbHeZ1paR3yd};Xnf4tKr{KRq^jdD}f6!+Ac`WEm{SS3j@c+#CM&Q?G;yrZE zeD!&TE9(-X0)Fp>flaCZ!c07Y&bhtS?}c?b@J`?#V&)ao_rmZ#1bkOUb9x1e*r2Uo3^{Nep3@b@$I4Sl^t{eDEBhm+e=zxkN@S#bS7 zq~{F7X6r!t4ej|&o{u@d$OG{FhNM0&@KE29$02m4=ZC)oe@x+~9jV_bOnX3Q;v-K2 zKd8w+0>2wG??7kbWBvnw@rY@isQ>)Td3xxa`Rcq-c~y?il;4;+2h7b2SXaRB&Wk4n z-WX<{gwC}8k9{`q|9aiL3-#Na$*-VuK8LQ}+ZH~q)s^zQGyeU3o`}crA1U`tf&ZPU zA3-Sgi-5~JC*7>~~^}mAY@6egvj|h_DVZPpH1b!-J{RW-s{0{yO{v*z6 z)t&k;!n8khuHkn5w7+JG#gpSLHP}hO)EsOH^p}uo5;}bgP=cv9v zR%7o)f#07QKmNWyhJ8}_e}1=pU+VuEvp)}=slJOm0sK7y5&BX7S!SIA9r_Kv2Z}rl zynqY~1zt>MT?L&fo*+*E|7Q6@{i)wP%sL1<=jW-;&vjZ}5%{&E*ALxn0(*A_Ez81x$>cihx#AE ztUEFPp#OQb_o})r-2067sS)Rzz^}}Vf9RasN9`}|b95a<{a;|>IM-kBoly8~Q!DCV z%DcskALyL@x-I0X;3w&^OyF~M73fTSyblL{pXtShQ2#FGdy&wY`01qgBCKsU1pZX! zc|vF6BX5QO50|rd!R^9kX--c0sI%d9r&g36;YVhMEUn%fAFz@X^ z=h^Jb=e(=*`5fXj_^*nW98UeWW%5zzoY&|7?hi@Nw|M#wZuNp zG+TGxM*W`etvYf3qGycXmRNgmcgEJ8nY436$5G8UN6k`Zw}U z@LR9iEbs?0eCV9N7p}I)$dW>ri)cN2y#mgrGuQB5nI_G;7)&2AYv4%{d ze*a<4ry}35X8X=(xhCn)XJNk${`2QcGMVycG3y)XoS&z94`kO`+XQ})T{n^I4yJn` zF`vMX7O8qBd@(h3H zA-R3NUr08M@;5Vi9(2y{@u=q>^L^SO@ar>mg8%m1W9xV|rc?hLnSPJBYkL11-#tP9 zv5LMD_%5b>pff#R#AomiHX1R5`p;~br%mr^p{@x2jG-xKQho)deV{Y#-{XEB@RKas zE%1vnc@lJ<(RLm`M4!i_{s;c#!?k8n{|T751D&b;ab5}h@Q>aI{5MSdKxcYC9`!%) z$4CBiHudjj;sbQvQ1*KzU-fYr;}HD6Go_hB`AeB|RM2^D`r@1SqCUQrm@mFJ+oa|` zfq#hUpU{OguQ}Ya&Rpt0HgnDlGMA5O#Kt*Xuw}`G2ML1f61)#p$lpMeD`U;z)!=(H}p^EbKPnlpE5!H1=N2g zyZ^{}C6~wJxuZSex;_cKc1%2g&eR^57r-Cgc>F@@w-S?QL+48FyD!5NueK}rH~rg* zunxg_PVl1+&bWy3-!aby z9*e&Nf7QJ&0>29r&!97nSM&q$KSr3eg!*62^mphyhW7xFPlLZNOO~aS-K@RU_~^&r zf15XDIraaR;X@bPf0()-@)q#p9?78AvKB_>WnXY!By4gCH)Tdbk} zhcoR1op+mWy>G44=atxJ0>9}kYc1t-_uxTi@{f25{*7NV1%64xJZ^d)TIPFFlF!#c=Q?NCKacuX|Eyf}tiTV?%;UlJ&zpApU(&Zf<}XW(a_KS$srV6o@XI|qFYt3Pc?fi-br0ra@OwsTw~6}i&a@A7rg;Rv6Z~@-!fmGf0A^hd zo#}lH{7&#IR-P~L2Q%>vI?qL4|M#BI_kZlOf`7Mjfi2Yk4`%#AXNo`go!}oHcS+!1 zV8$ftQ2nkI*`!;og#kdZo8@f>UR6f{n6h# z#kthc_E26bro9m#y@vb%e~0#{UVgd256!d(bf)|d>n-rhHY>iD`rq>{HgXcE?L*K*H z=RZupgU-~iQBMbdT=cj{D1Rl>FQ7B=(f`3;kaxYn&(G{*LT5eotv6hE{mU2Y)GdFM z`VV6A3xD%P^e6ZaH{fr9AC9SuL1$WTpneJdf<*(4QU52IaSxsI_vqC5`R9@N$0`4i zo$vZPKO-K%@2$T#3cPAeofbONc_8^dzl{NZoS=T&G5I-krv8X?obbOi`D1}UjhX+U z^H#FgFQxVM4dlh(H!eBoB=yhThXKjJ<3Um7PmMfpvc@d}+csxP0m!s_#B)G5GU zF?fr>-^An>&^ez^Q{Rt0xuEiC>fgioNBeue+xy<{bn!raKeqAFrvg7BQ>W$L2XRaD z#MVbc&QQPgnf?NuXMy9DgTEv5c7eZ*sn4}^VNoaX`0O7vRbt!MIb=$!qkdGq%|BQH_EqnZ8@+}?(Gen>i}_M=g%%aos- zsRu%5@*lc`xNa%mcaOmDz{Er7Onl@CX#b9LYG0xLFEITPI#c|@c@OX}9(gP9*D~!7 z9r_D*KMwK+@T)!f^DpXuGjpy0I&TeoJXO?>CwaXdJ6zhUl%Jl-AE9$@e|24yF}YXZ zS7qW0w=TkaKxmIeCF@?Je)BNx4P8k6dYgO@_`Pht91l6asGGp=@lj*1Q@?YV{24ma z{mJ+{@H4MVe}nP^n0ygB=X$GpKj+2s2L%2PrhlOSS&rYQRp+10AM4+w{s-IRQ*Lkl z{G;-&$N4Pq^4RN8|9I*-)T?ARn_m=T-g0p;74TQcJTSK zqBcK|jvr`kl-^fAbAQrZ>c13IuYiuLS72PBT^5ARdXI8rG5Iod&i5s#^ZoWL#{~XN zX1$F0-gNE}>vs6xSgpx@>i-L~e+HfD+$qkRfFHNZ4}t$TQy+%TIex2kvvw1vKA`@K zG5HGoo8GVcvPjHV_N~qSH|3vV-Uoutb=uxPKBQZ}srL~*K666g2Ql@3j4RXn9C;bq zzu=o@52^o;O#49R-2Uo(-#x}Jfj>8d^F7YBz;Bx0XFQ^Q?=$%ibk2U&_f;cT%k`M@ z+cV?U-})Jz3;dVva$4a3V(Nd;nZ^^=k>C%S*zyVWzkyj_Kxg_cB>oQknp;CXrTqC! zz6G80ez97gd;8ZcfghUbFWh+HI8SjC?Z|1rAUQ)kbnDGgnvtRXojDEW=2>hbVxlI4oKk9wSQ?IvsMg4DK@_+yK zFVyif{hx5JDSu=L>lOH2XzvaQ7YID=JA%-e+8c2h{CY(SzM*~>F!$j==ge30|4fZ8 z3;YOnd;6FFtGp&7I=-cTC)n}ZKc3sdxdr_Guxlc|qr3;q{0?16fB&L0iv)gSd%fbH zU$uV)yf6Ho`d!Yfhq?HS_n+|l@5Z_+@V+s>A3Epn9thg*JtJ}=uCXf5AZ*1s_PT=--pQ) zptBCy`;fcz^CIpE13%ZE>jJ+avtEPFlgfUdETL|_rjEngx4M0%{`=bf#@~L8`T_jD zv3~nPd3WsR=^xK+VZH(HujDHP-X|t6fX?*%Fdu;5p=gP()bAChe?VvAH-cGoI_ z--nsUp)<7)>do-K@^+~o)PHzpodBKb+%V27fWIl=uE6iZj8EvC{i}K3#FTyhq5khM z^A4ByVgCw#FPDn_lky@n?G2r?U$=$*TJUc*SS#?kdw!rZ^+)W-gWqLv*G5rPO$5q_7PvXh1-zPy`5&jS7t`M5~PsYSw=)8OEa}!(i=Oz$` zz<*TZp}^nFI9g_!GG0jU>NFup=n*|c(0h6C)S*mAb|4AG4m;xCnDd4-`x8* z2|PEGuRv$&FIZ22zy9tYVX5DiOnXCT;-j7beuYp^1pa)+KXj)4B0tY5$p?p{{+Ba# zG3bK#9hvV5p#B8^1&SvQPx)_|d>1;?xi8ea!H>{OUhhUZHc| zcT@LQ);voZiSlu8@b$*JUxq4*kzYep`=jJE; zF8Hln>7~GH#_aP!XL|1p^Dg-NI|fCeekU>c7j(|;;kGa?z+XE)MO4a<$IMUAxh~rK zWhZpwNp0^_2X+bk6CwPL+_$#kKFZQNHKS3#TbcKqpfj}x@&>fWlkcwu{stz#Kx<&6Zp-Ub@hLHk5$Z_qhnJ4dzict{!Q=m zVc!z%llErXSd`E0&p_wg57l|D<3C=3Kag2BVxDt;Us)aZ>66uqP5l>T@;WZgVjmjq z(Y(Y*fmfc1gU~teU#sKtbJKBgsNeebxc6^d{`)E5zv{QAM#1G z$I_Jt1^#5F|3PQsPA?}?E$a{|gw!pxKY&BJPY6fJ*5;CHa|HhNgHk_khmy{7@f3d&IhsH8JJyWco97CO+1W z;6MIwOyJLD+8a7&zWV;(jaW^SQ2&K(|MEQV{QjS&KA!gb&wRYJdCfOrmmirzVrQT|sZ?m-8?-2H0EYr$VQ_oTr8i&?)y zXL{ccc^vpF4m3|r{r9!!1%Jmm@(J)F-Tx)Fw+juIX^#joiHzI+qBd#;;P)g|J!xKf^1>aQT`$3Jt90u z&o;YWwN|&jc3Y36{okF{=L!6!Or8myseQ1XK>Kg&nm;}DUxtad&^hzf`KR@Sivquv zJ+H~}keh$-{ww@?cC^nx{hnm{3v`~cc6%4qw>Q2I1OAu4!e^xXgUmT7=$zXl(7GYT zlL!F|1%6j%Ttdgi6Fd+2{wGDDOw@O1=6o)6&c4-gzt?p|;GbvaHGju_+9sVcQ@=Hs z^UD5?d#qE?9?OSD%0l_gnS2mB=k`#~6ZcrOSm6J|)R9of56)AV@3I9+_p5w6TqG;? zpNkpy(0QlZ`%2^W`$~vEXrCW1t_u8cOg;;p^Z8A;h5N|CAMjh(Y}EhXOx^;Wsr|9; z0>4+rsM#t1F%t)%Gx2e*2>g6ymkInTOr0G%tB-vyrn5fJ#r_=lsX7$PLH$o-{6l92 z`kt?=vi|wvTq*cf|GXjaXEAv$bk6%IYFtmUzI#sUA92jzxQ=#%-`AIZ%SCy$nEno( z>Aex`AAmpf%L;*CnBhZb>MvN|fPdh(lD|{`lbLw~I_LWe)H;5}JhuftcaF-xb&Gn= ztao6q+|+*-CQtYGoEh>dw9nygG4oLV6eiDr&bj^7`6i24h*3D}DC+&^90xvOBFU5Ki^99!7I3I`hj2*gfKI-o?GrvLS{M}BqzxB%+CqL!i zV&XUYoAW-Y+P)ELtP}X%?R`dn;|Jy?w8!V}b&~ z|3m-qhWE9H^-Dj0ANO>O#{3ncm=)ALR|C4mj(`})y z2!4uMo+8x$D`xyaXY!Bpq2Pb$p0Ft8|HkZ>Kxg9PIf0*a%4UH-o|!M9Gu>Z-JRAIy zdn&o8|J;m!=uG}`-U0lwcb*9RHOzblo#}latgpdu9(G7E>i-op-$Q5ee@VJurCjnP z#VOy*^dIQFk?i;TL+k28>iVT$iERQuHuHS3elhL;q934r_B5+ng8E<2oP&YRQ^Duo zTU_rS^*ium41X^0=P>OLovHotJHdasXjn<=Ka{C`9P12fzB21rvQm_f`#9z~{a%3!O7x%{LC0 z9Z`n*&uYhexxKkM6y|mK4cj4QS;{-f#4qSf@dfXZf}dvmZh>Ei>3`6Lv^@r`uT_rv z|IXygTzg<01Ha8rzY%!Xne`@gru#!trviWNn^EPd-?hy80XpaQa9i*Jeuao>Dp3Ay zCLe&#liar+_r}xbGg!xfUp>P#DBK04d`93prru#%NFM_|a z+k1h({)GPiY3Q8qZ&LH$#WTkILH*~n`@1|o_4%(l-iz!@SBdiQ-iOTN`Zsc=Z^+(1q0R;R#b}QNK+?7+>%l;P=ReY_%yb1vCDkGktGG&c9b*JTCCdGV?KX zu7tkzxhIBxeU3Uh{NMZ1G?4l)$Fw(eruc$$Kj7C-^i$w3X2vIUA$^{q3s0{@{pV)R zlX3kIc{KcXYnZbxOo2au$>*Un@v*Kz``-KZdjsl!rQsZc z>3%8Xx!@m&e^%gMX8c2Es+ZyKz<-jjbwlbu0yAGi=S^#$D@&^1Z$q2}zfqGgjVS*a zlfOb|YJb!P!QVW1j=(?7tOub(|K{#{#JUdr@yqkNssBvO^M%gjALr-5-+$!1z#qoM zbLdR_3HUqk`#x{mnEH>)>^DPaS})_=I`~f_g=<3j>6v^2I_r`BUe_)CdtJ!m!JnUN z{{K~X9q?5YUw0FVD7`nq&_Pm22%*EHNRc7}fq(+3kU$zK^b&fJ5{RH6(wkBh5Tu5V zN>i%zB26jMQQG%*XHS^f-Mjmefd72&_j?R4@0~Me+MPRhW_Jbtp~QRvob3+dPq=E# zk98RMt9Pgs#Or@S*k9nx&k^a@L(+hw0>2xv|72``_2-h>e-#-~s`H#zEmA`Xc9 zD6%J82+v=H@c)4`KcCmRG-MG)B z_PiNzR^t@cA)#Kp3ZD@8ec^JCx|>z*#-#2=)#9p<90!`12EX z1vuME)z4jI?B`-V3H}*ZVtexXy@|24qIx&8LGp`SS3HMO~f8l=`NAdb`e-W*{ z1G$E<`Sg$G^{*%DANJPjoFDdIpubzY{JnYp>x6#b ztm+5;H~8B|uMqh25cUN)X_o4DB^mogh$n&n=cJ}Fy#75z{QzfveS&@+S!v@%f&Y$b zUmP7zhz~;Vl#>HvdA(x^KMpvn`qr-Vc0VZ?$MeS%el&2l+*-dSB_YBIa=SLntk}BfkXQ6de;*D8#t>t z6!u?H-|goY>C5xaAlALWS@jo;WANAA`n|yafS5mlv*O4468ugVTK41hQ}^!z&Wa!9 z1b?gNR|S4tzoxbCz?t*w=l`swhV|$5f2r=vY5ODPk7E4+y<3_VAHehdMbtNN$s1LF z^m}7}6!#4Se}kUu1b*r{D!`f7hrfjDuE0NV^hX1E{iBKg4xAM~?oSW?50~8#__q@M z9XQ)K)!$7p_IF|Dz~Aq{h(WymB19YjIIH;xzXN}}yCnwm{4T_N1f2PG_5RX2O`LF4 z{tW{E075@-R`m}Z(BGw6+abJuoRig#C*Z978Jyn-zki3D0>2Lt_Xf^fzkc6kSHICi zdHv6bII?lvThBM+OP2(mucx}Ns~!KweEw3B=G^7TO&bNiw}|x+aOUOL`-`PdwI9ao z%|@JSOYs*i*1NxH?vuLXpW6ceQ=)$ZmlDS$u4@U<)X)7A`APJ@ z-L=b%;Q4P6_7^xSeyn@Ie=cB)z~6(2!vbf1pIUzj_kjX`&k-F*^7{7^;|Dk^{W$*# z{^E=73j7O+`T@?0AM*hCo9*~)6tDjeqW=SD#Sgy${EaS`8_o02Ch8wJbAG)&*yNln z@Q+dFKS%8W=5^>T=h}G;uQ!>PPl2BZ{ z{gb06jpg-I`>?wDX@w0^d|34rR>eFCm_UdUY#4KOf^%&B_yaeh;GE92U6nQsAuWAO0Blf7_NciPyh}s2||0_Uq`L=1Zj*Wb{=_^1oYj6E z#xL~u%Cb-3zem_D;F6P7yRyO9u1wST8Gm~QCi40}A1@koRxm;XMumm-ryu&|3t!10?vvb*ENEF@AVe~zdup`z*+I5oZ!#?&Wz7_{nT^Z zfwSVrb$;MK;Z}7T&!0rtH{h(+sn{O^f8%xs1pd}U{R3xpA6wWF@K5jCV>++jotR&M zGk?CNKJK$)y3-dte<5{#)cSc;+z0V&=g zRKVG~vba)$uW?)n`xW5tdFznCe~{=ez`>uP&adFPwcvkLsOJn`|8wGeI&fC~9rFVC zU2A5Z$@6a^<}2V*dtS9`=h*`PbHbjX{>}Xbz5lm(K#i|>{R`D~x3)i0{vYfR>f^h4 zzX^PGh;6mn{Y?ma3!M4&9s1{&eg4_ob9w#+1b>RZVR3#6=OLi~pOp&){vkx%3OK8C2w1m( z|LsF{=kfZx5bX<`RsEwMfIt7;69PY;Po<5^0%ygKdIbN4oH6rx{R@b=A#hgLlVY5J ze?_$%3wZwWMEwINWoPq~&DnT++U&g%Xh=m+4R{naUf--B2$0B6;{cy2iOJ8p_w#Opsq*kj<#?XiCRZoQCeG0#uM z4O9BhPPP6w8P&g^G)8kCufOv*0>7`i9@NHZfTPaiVZDxexmdc<5?=RLM7;o)+UH=O zY;;!O?@8DN)QinspA27la$yx;KrvxqnXa8~^i_6htG zmo5|dTN3Li;H>zs&lAsEzPs~-Z+ZPuMEwJ2#gFj~{r9e%7x+IU{9@qD&qLU+J2)rm zzma3WGG6~CqW*z1U+3t@?G>*A%X$8ZR`aguI$!UnjcL15;QvdtYmWM97#FDT__$^( zc)hKy^jbWx2m3tW|26TF!0$oKBfy#W7ybUho>hZZ^7`8memu3Gh&Vd*F8#I8DxR-A zQ6Ior-G>bEQt-EbyjtKdN~~*uGp`T*b(V>FTdd~w-zVaHj-Jm!IibI`=M{mUdX6%1 zR?kPmdI{weTpBkBh@^L3`azh_@Iay_rVq1rzk>+kyct<`~&8+bl1wZ64{R9pt~Rp9kqYkdC` z;H>N-#s~PHg!paab$>zl0l=BtMSlt71N>)3-xK)b3BMOOt8t5Rg5Pz~gk)a-P{OVO zXH`GbHSw4#{4a=c3!D`{#s~C|I-M-=cO&LK;LNWx@Rty01b^M$MSf05~fz+dNL*UGxJK-;l(ViPA;<}gTk0H(-0Vj=M{)cUVvHyW}8}z?l zYmdM$5&k=H=GRN<$5AIg|9!mvTB@CNbQ~dH=p8oTUxDuqVHbh3I!A+bCioZ3`TQqd z@9)Go1xlXWE@1+T>nD#ej_YGy2mk&{`vm?W#CiZYt8+lf z3&i-^W2c~Bc>UiJb^ti5=XXK}^j9wTT;TU5=564t)_d>^!SCJli~YR*^gfRm=V8EK zu)F60p8pmxuL5V)e=r|_zx>Ew1b%0tet@&O&pql9{MEk=Imqh|BIXg`%;Tr}^<<6x zF9rT%YX8yN11f%k`?EstqB}DV@p`Wk^$ncOg`L+;DBRJOlBa$12KNO=yMX`8oZg3d z{tCqPp1@hP=YGxg0l&H(6!<-f`UcK?pGhA-l|BmnmDlgA+MATJtIs>7;-~PBQ6Gc* zI{(J=wIJ*Za8~0Jad_~*J!_W0Uz3>cfHOb8tiLZ&=oX(Ny#BpJdpa8L!Ff~Y|LWLb zfj<|qE&$G|zhIn!zs$p)M|u6;MEwJ2b>9@sli<%?BFizJ-o~z*yWSjuzYj5g0B0-A_!Dv&^Y3mT&QIS3);!MZKSYct;H>H&ejD^R9CbwCr|we? zocVp5{3I8RpZaon#0g%1UUj@`{Z!y6KNag9=>B8RTPJzmwM3i%IIHy-))C+@eq)}% zUyAT+fU~+^&=ZZ{@ibeV-+BFkM4Se=godi$RMXgR!u~7tmvB8U@J}S>5#X%)4c6u0 zpZ!7fDPI2>qTd5&#jo{iz6g8gG|zvTScd>-#gBCs^fw;9P~fNT2L+rtzuqqhSy=B3 zum6~OzD_$&QGNmL^9H@ScAgaYuy3e6{{viV^>)4zbC%azP(6R?s9wZ{ptnf2oacDH z&V*kFTtW}Ee|I(N-+Diwq5BenzpdIow0bE&0M~;<@7-1n&hvUhiFFuoR`rW~!T%!S zw7?&s+HptqVtxXjEh+v2uQxvtUjWYPzAU(}9r*ih$bFILpHH+OaH*}2;itY4_~)gv z{cw&8dgGoqy2R__6|;BVfv-(_C^ z<8{XIW8ji6sd4X9#(o6uX9fP~9{K*@`F|qj8{nkEY+Yf?WxTF{KL-BK#w-{3{~-KC z;LPJL`hAnHS2Vf8>mNwW$Bxbin3te`*X|1f|1rW(2hO~|>(ANr_+!9TUVjiVUQ_DF zbYDaNeDeHG1+Ve^M~V43t@D}x`>O>0szm&ln$J3D)`@dkHowm6%}?|f;8NC!PmISa zt~)?`&hB|x;O|TLKfooNSI;3FH;yynTqO9TCJes8>pw`?8{ks(6VF$_5Fz^gYgZKh zljqN`#_hE81#sZUx*zLF=-qngJAtnt(LaC#ANAa9Tz?P#>33WF#q0f$sBhq`#t-5> z;Lno#s=(inh+_gL`KsrKTN?Qj`sY=3@kzMJ>%U9PcZdU6?SEljg#Hh@6}!druOrr> zz?s*NpX9GuXT=R(EASUk`=fT91)T9Z%TJOtyhp!oeVf{0Z7x=vhd+X@Al4gxQzRTZ1?K#J>_MACx z)IDDR6^r%0v`ZcTn~cW4emyaN*?aeS{<3O+)Y@D4^{|hyx42&o>Z8CfKMH)G68082 z^YO0N`}@sy4|u)dYI{1W7x5_Q9hBp?z&DVHBLbH^jn%I-(Wrj){!g68*oVB{A%y*g z|6_ii3;lZA=cCe(c>Y$Zerf=fHW`S?5m3^|k9ocOi1`vY z^Zwy4AwCEGCF}kc_ydXc3UF5Eq+l1oKjrNBC%pb4M0^G~t8?$L3*bNFRPG<1e;jv;+8WIX@EkI1mc-nVe&&r_Xvz4-`#B4z$m9TaN)hJK6sK6uO3ndiT2(ci6}$BF$$ z@Ndt#SKzNm=m*ZKJ>mC)KhPr}6R&>;VNZY){Wrb;eea{E0^h%cJu&9Gd!~J{2vhg4>&28y3d)#D1N9PFH?T}N#Gx(#t$7GFPKN6 zx7dZCti0Y8#CjVz^ZuaUm)-a5xxl}K@ZaFiT3v?%I}H7EN__biuRoB`51f^LvB>c3yW2V&0+b3jEy^ zy*UmEd>%wxA2?e9wr)$vZoFi~@Du?CZ^-d%FWZ=x}!+xK*V%>aweI*I}*BfWb z$@7;W)( ziTVf5>OM{Q9qOm_$zHj6{ga8f3UE>tHLg;@xc{J^f&bRiEO~f->b?@dnXiNN^OCpA zT#-LjaT`5fT-{oEdA%3a@$cw7hwFk-{!3kt3VhUk7l5%AkJo#j7(c*S z?Rz5L0RF5?vgPOb>l5=Fa8~+p&KUfkADA!jA75jgh$8E<@FAJ_@-_sMob;QxiVo(?$k>o)ZJ5^Y_37v%LP65~H*{FpxHQs3WOw#;6L z=XWCFX4JYF@pIJ2jHpEd-&4Zx0?uk3R6%pyM(0WO3-fvp5%vl=tNw!ZDfHi8`n$j% zMA&oS%=!JKP>tVm@<416UjO^*Iza2U07v;PV>I(b$eo-;dERn_9RSX1p1^%(P%m%g zUMlcsCi)?8=JldK$6CXqVKH8R0I_~?bbW}p5%l-_=#0R>S*;(fT?bBFAL{SR(V}mk z;=JCq#Ci_2{&w5G75FC-elBpyIoWv-DU0!W z5S%jtzw4#OC3yYW2|EB>!ZdaNeS-0R5Ojclt@C+-{|w>x0%sMk!2Mak|80f-C3*eX zi17rRR6yO&%5JRRU-R6UiB0mq$Mc5}@nPVs<|X)-&|fKhg~0!k7_Y!3tYz_lNc*7@L{v*e<{-5E`vYQ3j#%~$%KCkx% z(O-bGx_>I-;NUNIsYGR-zaugJfwQ_U89Kn<#A$=Te}?dffV1lFm{-BSw_;mYUO(ke z0GHfCJzvqtD9+MG!nr^2-)wqQ;J=~T7wz~5PPE_p=LogyHQJ5W`vc*>Vf=uPy5BSW zcIaI`&c&VQ_ayuu;LOL5e*PJ>bfdr@rH&tMeZY=FKhE>OuYle{KezYb_4Xv<*}$b% z@2nfQ1^#%|UOA>$-ybf&J+2C`w<9tCI@%v1Jj!_TeAIJZ&>zg7^P)cwQ0wC@0)Gq< zcQf`s^yiH}jqB*e>!tiV#C>cB)VTOAqw%IcZ+&&rU4j2IVm^0t{|9yj{q4~5&#LnJ z4-@N4;G_igdWOD6^Ot^neD_;9Z=OG^y54rIzv=hejy%{V@QoqtGvZ)Y&o#t#4ycd9 z#XDEy_0A;f1Gr?1`{!fc1pkcM4+Q>Ogg*kD`S|via2*BsTYfUhhu0rV=m*YLQ|*sc zjQb<(4ETM9RIJYPZzJ~Cfiu^y?=J^t?-2M`tL^J(e}SI}y_vUsT7%bHjqq=PGhe^! z^-jF}NZ_xY%KnY(yrB2(EK_Roda37V0cT#n`hBpPWh&R=`Q3>A;n?~>f8Ujl>+Kf! zseOVmYFyE3{e5cLCGvc+=^ zac&6uKm8`D4zGV55q|{EynX$o_L{iw?!9hxd48NH)y92+qvF13f9RfcZLh$)g3t|| zxo&@Hh339mdou^t<8}W**mdB{`StVu#){7b{#vQH|EQC#pL8`mZ01Y*3-$5agOKXB&lpuhiE&Qrk+c>U`Z81tw28y43G!j7PRNiL?xRc*xcV@PNQ~orupE^Z84-t`zmT zEuu$bUf&*Kz6Z|gzDr9q`$?V?oj&0C-zVa`z*+e#m=~dc+^Vkx{zO7Qa8~^paXIj> z+h45-um2pizEtnGZWUkBo|nAv_aT9wx?Tb}tNZj|odEp{v-fPu>n~5lBY-onA3v#| zWC4@ccQ6 zevkUGdY%RBJ@oHV(S{&>|6XzPQD6XE(5=ygi2`w_3#nP@-Y%+GuIOJz0Z1-D;0A@H9f#y@c8cF|wD zP*gmR7?CBW4X^(K(Z7K+=hw&GyOhuIG0(q>sBbFn4!eW;zSnxOz_*&1r-75Ivi@Ov z-?)Fk{{a7^Xj@xeZ;4cn7sMOD_e;_#fzOqg*MKvxU;Vj^LhIw&@p^rT_JhA*b>Ak$ zlc2xn@m%eB{z4Y_=|EgLnYeEO>?HVe|Fcx!4(4~!2hQBS z>hIIhsK!}={|GVvJKDbJx6tqA+qVO+{}2(U15WZ$b`$*f;`4Uo`9CAp zyTDmJuL|!hnuH&R>(H&%Em$8wzn9k)fqx@W-@sYT8;BQzzgfGX-FW@8iSY@XdH?p8 zu&xJx$KFN#dH&7B_yNv}zqH10Y%y_-z#m4mFL37k`u>=CRjUAAf4Nlpbyy#uKI;8? zP2k&2=mpN|IWVw0;7@uoERfgRRMo3JzXF_9ePACQ{M+7rH;Cu2O4uvl;3r}K9d-eH zP7Qt#_`W0T6>wJ1Z^pSk@aOk$6U^)Vil}ek%z~7nh>wq)o*Y9_o zn>{jw*T0$Qe^hKNArj1EPqaT2O#Mn&&e@|jQ0?z8Wdsy#)ztale zp1gjFA2_S~4MGR_T@T+8_y-gA1~{wpBk(K1f8qAHUcCPEME?iQ>ijp(C4m3W9A(3K z{{2M%0nVy@5pM&36ZfqGe?DUV0M2SZd5mWN!J~~|1h3zTu*bk9TdW7LUW5K^QTGJ? zlSKan&g%LHZJgkC;)F{ z(aOK8xc{-hmz&skNvYpYRDYwbk-wpjb4UC&C63pd+VhZ&H2d+ba=6Cxd{u}zBXCys z74r!C^AV3d0)J(~J^^RGkEZVr!EOBe@cQ?u>p5-v8TSYMKFANT{|bB$340BH&MNMT z>nl+oQzw1im)E<5=pVpY)i>hz;IF^Ry&unijHqwm%=z{8U2Xq9f&ZX7-#c30XlLkM z{2;JDuQxAoe@oy}>)(zl^jzTgA?%%_{w>BW^mp_5VgRq-i%2)t2i#|5&Q)Q{vzxHl%2LAhBhYaHN?;`vM;H;iY zg?SqMBX_?P_|FjI6*#NwHQ>j9f9cH`gL(Z^2!7x&KN#W>(A(4Td+&oEwpf1f_p2K!h`nYK6HZ@1``YWk+OgryUaeAC@g5KfLM+83Vc}~Dt^>g?m z;D0eGVid1;7BMdYXZ74s_zU1Kwf?QqJby`I{|`7b{Z6(7DLPM#a{je)E=iK#KpIg2wpC(Girdb>RO zaqTgD`I6N7)3!Hdmtj9pUkhB03w-y8_5jZ6x;*Spfd9`1(PMeNy$HJxoLPG~+w|87 z#dm#Y9M2z3w6~-E75g{PziH?~fxi>s=KyE5uZjH?@XuLTZ#=Jm2*D4WdHv|^!`bAM z0zaB*e6+5 zd4lrQTj~!mzJS|Uh>cJ8!4b;%**TP@pDhkiJ|C0(l~f*2PPS0#@EA7!kl*~fxz@*V z`3-woO!+FSCO_b!9Li^`B>C4!me0L6tSCwHyWFz8SNMFE)@Av;qsa%j(+?{t`1rV=m;+TSt_Wc_lG1Lc+5&Hs=%F0MbUIFr};U8mxT zK5e@Jw^GG7{gv_5ILFe07g_3@Th*QSO_pP>syk)= z1THa>;V-Lc`}l22{l^VrY5Y=_7X6;3jh3_2vGEZtmDAXtm&@l};Pw4bIk%!rYkz?I zU2R{->_VtCT^+xukEox1d}frN*8TwJSh*6UFN!@=>Pf9u>CYo;iud8h%izAO-nD)U zaE;T|fA#r)IHyyS|1$qxN5hr!qn;`>C9E#q(UlQu8QiWA{VKIngYk6ydO>s;}iwZFEW zfJ+ku zvie2&J~~w2W|V&(^#>>)a4|O-e%0SB)%J(?ud{iwrYq|Yo6EkQeu45s_tcha+8F76 zGxe4z`F0cipB{5J2J-oPPGx>+c1^tjw`DfNf2#UHqw+BS;ceBAXqXCrT=wf$ckis+ zuNZdn<40~oc|9&JMHD4kzYaLLo{a3$%i7N08}YoEdi9q^tM>D^a*}l2{&pVktvuHo zYYwo_81GzlX-;I^>qMR$e#Bx4y-z(^w`f#yfIe}y4TrCx!vqRCN{Mi1Fdz}Tr z@_G&ZbnVd|%2&*rdS$18JKQu%!MA9}()=S?nkRP<<9)4uXEvuP%NHrUPUYw~v;2a+c|G%+-rn{;7`T*ghZX@Xm3;rJ{L7Av`sRO`|Bm;L{7>`0^!B{veEFxp zGvE!@{{<%Z!Mz^x5s_zlxoTJZ~(Zf|x#8BcDlS$bmg ze&zEv8~a@9A{&?5^~~#C-!7HvA7JqV%p(i))vYi4+psfb>y1~+r(K5w_vj$Qdmm=$ zoI5NnlAq0Mf7N2?saq_5QQ!_ssd->!T{hn-ncDwh_Pd|7cabW{k_E73~NIXl+6=Lf^`0J~h4^`$)8Jye|a62s)mBGQ^r@oK@ z%3DM&@4>ulzmtD}d_0WH8x|NOmKf#zWqpEBUN-M+kbXbhOPM#2dDW~f^ULc%^oJ}f z&nRE9Xv3@dAGrU`ew}`Ps9b-nvOf;pT}nVfZV+4L-U;!H+yPM@XNq zV4wRfV`=HGHx-_fSg2T{60jf^Ve!`)Zs3*SQW`M_*9S9e6ip z=MdHwWc%;AyRr7%wv(m4581e^{ucAEj=#hFv~l@addFfv9QAl|w{iV#4iW29TfhHb zK2zlgJRbK`t1^;=a#;138a-J*spLOJX~EB97bxl0IF@#Q#?l*kS1W(dQ-q~8Vp)1R zRsCtT^n5#8M{Kpn7?0TBpSQ9t=lj$0iT+AHxs`uk^(Wx6?PK`Zhb&!Og{?z6c&TX^ z`+JEfmJaE|QfmAb3~i^(L$5#ue8xHfIK-h-bDl;%clG`bwvUZ`%bz^Fn9nyLv6b=_{37HFT0TYssze<4Y> zh0s~7?`ML}6QTVSow8pgztDexgB>lJlktZH1jkApA{w)L(DQel_p87^F=4U7YsJ6w zEyf?6Qz|R_{fvKuf^W~8m1C{j?bPp^NpeXiK zb)%kvgWdlBp8o%wpY(Px`dW46I(4+)hwY=3mV4cHFtfs1BV`?i^~)zKW+>-*@p-KZMS5t2@3C-7>$tZlAkh&CJJkA6T|G-R$0^~nzWjiH* z`&aCxKA##m{2BG|tKDbj-|c>R_(EQv;cwwTvCrUVI#x?_x2{x7wx@kc19|32CQc`4mmx`NUyfu zfIB_fMe$$c^2vUKbd8<=n3z|RX4>BeR(`d`h)?S`05_`(^RuaWaa6bATz+Gvfj-Pn zhyJ-M#+^3GPmZt1FU&K*&HIw!D=cFvm2coO7MEC@>w&UPVf_U2MS@gcJ@3MDvHKAD zyD8^3we612&;eX}&dE60#-`Le>fzkXI)!C_4f&n%V*B^ndO*Ez+ZCMC+TUNwte#^=Jsj8=A8n*VJ1+xgey(h(6mpft**)wXQht~H{nK4M|D;y!m8`XX z8gMRuGJMHfES<1hJh$1tBs3&6;xqcg>)2m(w)s2#efqh=4?9#T(F`4N`@x(ntr)=4 z(=jYP630^4s^a&tk?ixR-YkvD^HSj%S#rCQ_IF`v*vBkwJ&vVQ3lw*ff6%bzH%eOP zY}(ezR`xP;RHC9IeQ}ACQd}2tUAAyfcIEm^)bIAb)s%dgwSQ%IfNMRU;Y)tQ(vb&P z+@a|I^gO=4-zK_6D)Tt(Mx~44O1V(Z*V%84&gXR7$>wq7|3j9THeyNui( zvfuVo-&gxo!S;D@Z{rcl`WNj{s;IY8Wm>-tIMgTWzk2^6--H1J_R zAL_O`r8FJW5iKRD@do%YQ%~1k!RuJ`wyPqYjn`N04IJgag}F1oP4rjCO0KHEiu{sq z-&OWoQO=cf-IV>*3# z1s%XSUt@mEuM)EdN1R!jmi+_yxjwKLYIaiYDOHv0_qBSo;~luPoxe?#lKZRY-qeiU zPlYM-56WFEZ)fEjd`3M0*C~PFFTTg@jbFO1Q`#W;tMk0Pu9U~w*PhjtbtUqDT(730 zM;iwMuI!gg$2-eeTI(R2Cu;9{J$`3SPZkGKcAX=mWQmew-*=YhFZqqFV0`}V?-$B^ z2K{n-%KOgv{&np;gYQU@mj?NbeU;xE-gkzMEI~#(LSN}f=e{%YsXx~!AFjM_c;6X1 z3cTy|QjS-kon<>CpYP4#bWT}6<9F4|XA*uVJ*sH`rQ9dfm%1(hj@hezQh3t)$@2Bf zb!yqqYTMt7U2O;DbvN>xw6ml_ptTRct%-G2@Xrdd>$My^x4BySW(pfea(wfy{hj;J z`l+&?g?#hfEvn>;_zLU;a0TA*cpNqPni3yi^`!TwS9Cn+Ezf7r+b;*ZentMh{DR)s zu?}>yB}#=Zv;9-qe)X`w!#cSuegg8Zc9eOf_>BC4JMz@$Maw#=c*}n+$oT;Q#ef++*g`u7|Qy=>F@Xnn{iR+{MQ;#u!^3CM0A2(Om z)hHuh*Mj{0cH~$30X1&obF=aCV?oEpO=Fd9^;>L2L}yX{Ai3mZpV{~JxlQwVspj)d z&F3n)7#=!nsGq?%Nb@;a^ZR}3=TOzqRLRTul9@c|Z}oG68fc3y#J*pveqXk*s$a#2 z7Gb^H&@B#xdJGRqKo1fMTHJzvEd z9v4TCEIa$8w5-IzZ;zVfp*w@+NFL+9JW{Vgkx8MeJbum=_3*DX&7TC_l5sd+WyWFk zowKx1X^+`I&)D{VxvPsg1g0q#Kwihcm&3Wg$H{CL`MsMwo+mKJ?i@Y_I+O+y0p+1+-<>? zJY!Bjx=?)YM~cSySbN6yGj?$i@oWdvoX_Z6)We7pquTquoz%U|rfbrbJ0)9n3i()B z+-U2;y-#dVRB(t}Y)DKWx!CsHt5x@@8eFqV&ERU?J-xbzc-HLhLDsiQr36!2Zttf?EYKQyIZCd?Emq%GS)+`hgjvX zVQgry6`S$*$fIxQol19oZ;t<^aK!3)FMh0?_|feNVjk*6N@>Ukc`W*7cv9Xf|1RtM zsM5`@w!poQM(?w4P^;yT&-5V+kG?TsaUtD$!~{f#+W*5HVKgp;{jbR5_LkQ57i?b; z?2~l&(e$`$Nr{0=jthC{&q;;_#>52M^Kh@>?&)5I%t6kBjh*^4KN?;oet5)~<@joSFS_*L_%R>j5U;^ppBy=k)n_Mee2oBf-n zA(8Q6ks%6|tB$3XrNp;R5K-N)R{8Oqw$sB2)@mO{;M>tpHcsIrdq zjTk$D`hrn$RzG9CiuFC>+49%&Z}FCYFaKZuy`0Lwms9!oaw@MY-{cE=XASz-o}2wX z0n&CQwb}nouT7HmyFPrX@a_MOtzu-}^x7%ZmCO}uKM>kCASO*~4?A3v_jhdecYLJX z$4E1aB+20enI|YZ-u`deUvk-O_IFThT!4LfkY-VG_(kRkj0p+o6&)288E5~HhL^J) zW3#{GVgiCf(!m3NP%T$4ie>b`M6T!8&! znqM|MvZ_~$G~;EU&HhfOc}popMr*h9 z`aW{sl*^T1e`mCIdtGId%a_sGExrC`MsBy)Rkn=SZt3;$GjhAVuCissc1!QNDkHbs z>ndADY`65TWixWSy{@ul#CA(>{2(K@+v_S@Mr^nA#%wZjyS=WmWyE$%Z=5V6x7+I~ zTSjcR^u{JLa=X2*vSq|}^Gs*JBqO)m>ndA@Y`1g<6*6?YrL%0#5{m^%_WvMW;u{&( zJuD>H{!Q9mHapC#noqg{lrl#;hnrj^CC-%*%a+b&%g|*@Z!9Pyw_AGSB^kMF>5VC5 z Date: Wed, 24 Jun 2020 21:52:06 +0000 Subject: [PATCH 08/14] Documentation and tidying up code --- .vscode/c_cpp_properties.json | 16 ----- .vscode/settings.json | 3 - examples/simple_forward/forward.c | 5 +- examples/speed_tester/speed_tester.c | 17 ----- onvm/go.sh | 4 +- onvm/onvm_mgr/onvm_init.c | 33 +++++----- onvm/onvm_mgr/onvm_nf.c | 17 +++-- onvm/onvm_nflib/onvm_common.h | 49 -------------- onvm/onvm_nflib/onvm_nflib.c | 95 ++++++++++++++++------------ onvm/onvm_nflib/onvm_nflib.h | 31 ++++++--- 10 files changed, 105 insertions(+), 165 deletions(-) delete mode 100644 .vscode/c_cpp_properties.json delete mode 100644 .vscode/settings.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json deleted file mode 100644 index 4016d8822..000000000 --- a/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**" - ], - "defines": [], - "compilerPath": "/usr/bin/gcc", - "cStandard": "gnu11", - "cppStandard": "gnu++14", - "intelliSenseMode": "clang-x64" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 3b6641073..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} \ No newline at end of file diff --git a/examples/simple_forward/forward.c b/examples/simple_forward/forward.c index a221b9a17..2fc321336 100644 --- a/examples/simple_forward/forward.c +++ b/examples/simple_forward/forward.c @@ -159,8 +159,8 @@ packet_handler(struct rte_mbuf *pkt, struct onvm_pkt_meta *meta, counter = 0; } - meta->destination = destination; meta->action = ONVM_NF_ACTION_TONF; + meta->destination = destination; return 0; } @@ -169,6 +169,7 @@ main(int argc, char *argv[]) { struct onvm_nf_local_ctx *nf_local_ctx; struct onvm_nf_function_table *nf_function_table; int arg_offset; + const char *progname = argv[0]; nf_local_ctx = onvm_nflib_init_nf_local_ctx(); @@ -194,7 +195,9 @@ main(int argc, char *argv[]) { onvm_nflib_stop(nf_local_ctx); rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } + onvm_nflib_run(nf_local_ctx); + onvm_nflib_stop(nf_local_ctx); printf("If we reach here, program is ending\n"); return 0; diff --git a/examples/speed_tester/speed_tester.c b/examples/speed_tester/speed_tester.c index 0aea30a1c..736970fd0 100644 --- a/examples/speed_tester/speed_tester.c +++ b/examples/speed_tester/speed_tester.c @@ -58,7 +58,6 @@ #include #include #include -#include #ifdef LIBPCAP #include @@ -452,22 +451,6 @@ main(int argc, char *argv[]) { rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); } - // struct simple_forward_args *args; - // args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); - // args->destination_id = "1"; - // args->service_id = "2"; - // args->optional_args.print_delay= "1000000"; - // RTE_LOG(INFO, APP, "Spawning 2 instances of simple_forward\n"); - - // if (onvm_nflib_pool_enqueue("simple_forward", args, 2) == 0) { - // RTE_LOG(INFO, APP, "Spawned 5 new simple_forward nf and added to ring\n"); - // } - - // RTE_LOG(INFO, APP, "Dequeueing single simple_forward instance\n"); - // if (onvm_nflib_pool_dequeue("simple_forward", 2, 2) == 0) { - // RTE_LOG(INFO, APP, "Dequeued NF from the pool\n"); - // } - onvm_nflib_run(nf_local_ctx); onvm_nflib_stop(nf_local_ctx); diff --git a/onvm/go.sh b/onvm/go.sh index 613f38aa3..56d72ca1e 100755 --- a/onvm/go.sh +++ b/onvm/go.sh @@ -57,7 +57,7 @@ ports_detected=$("$RTE_SDK"/usertools/dpdk-devbind.py --status-dev net | sed '/N if [[ $ports_detected -lt $ports ]] then echo "Error: Invalid port mask. Insufficient NICs bound." - # exit 1 + exit 1 fi while getopts "a:r:d:s:t:l:p:z:cv" opt; do @@ -102,7 +102,7 @@ fi sudo rm -rf /mnt/huge/rtemap_* # watch out for variable expansion # shellcheck disable=SC2086 -sudo "$SCRIPTPATH"/onvm_mgr/x86_64-native-linuxapp-gcc/onvm_mgr -l "$cpu" -n 4 --proc-type=primary ${virt_addr} -- -p ${ports} -n ${nf_cores} ${num_srvc} ${def_srvc} ${stats} ${stats_sleep_time} ${verbosity_level} ${ttl} ${packet_limit} ${shared_cpu_flag} +sudo "$SCRIPTPATH"/onvm_mgr/"$RTE_TARGET"/onvm_mgr -l "$cpu" -n 4 --proc-type=primary ${virt_addr} -- -p ${ports} -n ${nf_cores} ${num_srvc} ${def_srvc} ${stats} ${stats_sleep_time} ${verbosity_level} ${ttl} ${packet_limit} ${shared_cpu_flag} if [ "${stats}" = "-s web" ] then diff --git a/onvm/onvm_mgr/onvm_init.c b/onvm/onvm_mgr/onvm_init.c index 270c1b3a0..a0a4a6a62 100644 --- a/onvm/onvm_mgr/onvm_init.c +++ b/onvm/onvm_mgr/onvm_init.c @@ -414,6 +414,9 @@ init_port(uint8_t port_num) { static void init_shared_sem(void) { uint16_t i; + key_t key; + int shmid; + char *shm; sem_t *mutex; const char * sem_name; @@ -433,21 +436,29 @@ init_shared_sem(void) { exit(1); } nf_wakeup_infos[i].mutex = mutex; + + key = get_rx_shmkey(i); + if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) { + fprintf(stderr, "can not create the shared memory segment for NF %d\n", i); + exit(1); + } + + if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) { + fprintf(stderr, "can not attach the shared segment to the server space for NF %d\n", i); + exit(1); + } + + nf_wakeup_infos[i].shm_server = (rte_atomic16_t *)shm; } } static void init_pool_sem(void) { uint16_t i; - key_t key; - int shmid; - char *shm; sem_t *mutex; char * sem_name; nf_pool_wakeup_infos = rte_calloc("POOL_SHM_INFOS", sizeof(struct nf_wakeup_info), MAX_NFS, 0); - - for (i = 0; i < MAX_NFS; i++) { sem_name = rte_malloc(NULL, sizeof(char) * 64, 0); snprintf(sem_name, 64, "nf_pool_%d", i); @@ -460,18 +471,6 @@ init_pool_sem(void) { exit(1); } nf_pool_wakeup_infos[i].mutex = mutex; - - key = get_rx_shmpoolkey(i); - if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) { - fprintf(stderr, "can not create the shared memory segment for NF %d\n", i); - exit(1); - } - - if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) { - fprintf(stderr, "can not attach the shared segment to the server space for NF %d\n", i); - exit(1); - } - nf_pool_wakeup_infos[i].shm_server = (rte_atomic16_t *)shm; } } diff --git a/onvm/onvm_mgr/onvm_nf.c b/onvm/onvm_mgr/onvm_nf.c index 2fe732a2d..a3c85e389 100644 --- a/onvm/onvm_mgr/onvm_nf.c +++ b/onvm/onvm_mgr/onvm_nf.c @@ -87,9 +87,6 @@ onvm_nf_ready(struct onvm_nf *nf); inline static int onvm_nf_stop(struct onvm_nf *nf); -inline static int -onvm_nf_get_next_instance_id(void); - /* * Function to move a NF to another core. * @@ -111,6 +108,13 @@ onvm_nf_relocate_nf(uint16_t nf, uint16_t new_core); static void onvm_nf_init_lpm_region(struct lpm_request *req_lpm); +/* + * Function that initializes an rte_ring + * + * Input : the address of an ring request struct + * Output : a return code based on initialization of the ring object + * + */ static void onvm_nf_init_single_ring(struct ring_request *ring_req); @@ -534,9 +538,4 @@ onvm_nf_init_rings(struct onvm_nf *nf) { if (nf->msg_q == NULL) rte_exit(EXIT_FAILURE, "Cannot create msg queue for NF %u\n", instance_id); -} - -inline static int -onvm_nf_get_next_instance_id(void) { - return next_instance_id; -} +} \ No newline at end of file diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index f530a6ab9..b430643dc 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -274,8 +274,6 @@ struct onvm_nf { char *tag; /* Pointer to NF defined state data */ void *data; - /* Args struct that can be used for nf pool operations */ - void *args; struct { uint16_t core; @@ -423,48 +421,6 @@ struct aes_decrypt_args { } optional_args; }; -struct aes_encrypt_args { - const char *service_id; - const char *destination_id; - struct { - const char *print_delay; - } optional_args; -}; - -struct arp_response_args { - const char *service_id; - const char *destination_id; - const char *source_ip_list; - struct { - const char *print_flag; - } optional_args; -}; - -struct basic_monitor_args { - const char *service_id; - struct { - const char *print_delay; - } optional_args; -}; - -struct bridge_args { - const char *service_id; - struct { - const char *print_delay; - } optional_args; -}; - -struct firewall_args { - const char *service_id; - const char *destination_id; - const char *rules_file; - struct { - const char *print_delay; - const char *debug_mode; - } optional_args; -}; - - /* define common names for structures shared between server and NF */ #define MP_NF_RXQ_NAME "MProc_Client_%u_RX" #define MP_NF_TXQ_NAME "MProc_Client_%u_TX" @@ -565,11 +521,6 @@ get_rx_shmkey(unsigned id) { return KEY_PREFIX * 10 + id; } -static inline key_t -get_rx_shmpoolkey(unsigned id) { - return KEY_PREFIX * 11 + id; -} - /* * Given the sem name template above, get the sem name */ diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index aa5c4b6c9..cd008fc55 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -151,8 +151,8 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c * Check if there are packets in this NF's RX Queue and process them */ static inline uint16_t -onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, nf_pkt_handler_fn handler) - __attribute__((always_inline)); +onvm_nflib_dequeue_packets(void **pkts, struct onvm_nf_local_ctx *nf_local_ctx, + nf_pkt_handler_fn handler) __attribute__((always_inline)); /* * Check if there is a message available for this NF and process it @@ -234,13 +234,32 @@ init_shared_core_mode_info(uint16_t instance_id); void onvm_nflib_handle_signal(int signal); +/* + * Forks NF's and enqueues them into a given ring. The ring stores NF struct pointers corresponding + * to its pool. + */ +int +onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count); + +/** + * Obtains the nfpool hashmap used for NF pool API + */ +struct rte_hash * +onvm_nflib_get_nfpool_hashmap(void); + +/** + * Function to initialize the semaphore used for pool nf's + */ +void +init_pool_info(uint16_t instance_id); + /************************************API**************************************/ struct onvm_nf_local_ctx * onvm_nflib_init_nf_local_ctx(void) { struct onvm_nf_local_ctx *nf_local_ctx; - nf_local_ctx = (struct onvm_nf_local_ctx *)calloc(1, sizeof(struct onvm_nf_local_ctx)); + nf_local_ctx = (struct onvm_nf_local_ctx*)calloc(1, sizeof(struct onvm_nf_local_ctx)); if (nf_local_ctx == NULL) rte_exit(EXIT_FAILURE, "Failed to allocate memory for NF context\n"); @@ -258,7 +277,7 @@ struct onvm_nf_function_table * onvm_nflib_init_nf_function_table(void) { struct onvm_nf_function_table *nf_function_table; - nf_function_table = (struct onvm_nf_function_table *)calloc(1, sizeof(struct onvm_nf_function_table)); + nf_function_table = (struct onvm_nf_function_table*)calloc(1, sizeof(struct onvm_nf_function_table)); if (nf_function_table == NULL) rte_exit(EXIT_FAILURE, "Failed to allocate memory for NF context\n"); @@ -270,9 +289,8 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { struct onvm_nf_msg *request_message; int ret; - ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); - if (ret != 0) - return ret; + ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); + if (ret != 0) return ret; request_message->msg_type = MSG_REQUEST_LPM_REGION; request_message->msg_data = lpm_req; @@ -284,7 +302,7 @@ onvm_nflib_request_lpm(struct lpm_request *lpm_req) { } lpm_req->status = NF_WAITING_FOR_LPM; - for (; lpm_req->status == (uint16_t)NF_WAITING_FOR_LPM;) { + for (; lpm_req->status == (uint16_t) NF_WAITING_FOR_LPM;) { sleep(1); } @@ -325,12 +343,12 @@ onvm_nflib_request_ft(struct rte_hash_parameters *ipv4_hash_params) { struct ft_request *ft_req; int ret; - ft_req = (struct ft_request *)rte_malloc(NULL, sizeof(struct ft_request), 0); + ft_req = (struct ft_request *) rte_malloc(NULL, sizeof(struct ft_request), 0); if (!ft_req) { return -1; } - ret = rte_mempool_get(nf_msg_pool, (void **)(&request_message)); + ret = rte_mempool_get(nf_msg_pool, (void **) (&request_message)); if (ret != 0) { rte_mempool_put(nf_msg_pool, request_message); return ret; @@ -348,7 +366,7 @@ onvm_nflib_request_ft(struct rte_hash_parameters *ipv4_hash_params) { } ft_req->status = NF_WAITING_FOR_FT; - for (; ft_req->status == (uint16_t)NF_WAITING_FOR_FT;) { + for (; ft_req->status == (uint16_t) NF_WAITING_FOR_FT;) { sleep(1); } @@ -574,13 +592,12 @@ onvm_nflib_start_nf(struct onvm_nf_local_ctx *nf_local_ctx, struct onvm_nf_init_ RTE_LOG(INFO, APP, "Packet limit (rx) set to %u\n", nf->flags.pkt_limit); /* - * Allow this for cases when there is not enough cores and using + * Allow this for cases when there is not enough cores and using * the shared core mode is not an option */ if (ONVM_CHECK_BIT(nf->flags.init_options, SHARE_CORE_BIT) && !ONVM_NF_SHARE_CORES) - RTE_LOG(WARNING, APP, - "Requested shared core allocation but shared core mode is NOT " - "enabled, this will hurt performance, proceed with caution\n"); + RTE_LOG(WARNING, APP, "Requested shared core allocation but shared core mode is NOT " + "enabled, this will hurt performance, proceed with caution\n"); RTE_LOG(INFO, APP, "Finished Process Init.\n"); @@ -640,7 +657,7 @@ onvm_nflib_thread_main_loop(void *arg) { onvm_nflib_pool_dequeue("simple_forward", 6, -1); } start_time = rte_get_tsc_cycles(); - for (; rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { + for (;rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { /* Possibly sleep if in shared core mode, otherwise continue */ if (ONVM_NF_SHARE_CORES) { if (unlikely(rte_ring_count(nf->rx_q) == 0) && likely(rte_ring_count(nf->msg_q) == 0)) { @@ -654,7 +671,7 @@ onvm_nflib_thread_main_loop(void *arg) { } nb_pkts_added = - onvm_nflib_dequeue_packets((void **)pkts, nf_local_ctx, nf->function_table->pkt_handler); + onvm_nflib_dequeue_packets((void **)pkts, nf_local_ctx, nf->function_table->pkt_handler); if (likely(nb_pkts_added > 0)) { onvm_pkt_process_tx_batch(nf->nf_tx_mgr, pkts, nb_pkts_added, nf); @@ -668,17 +685,16 @@ onvm_nflib_thread_main_loop(void *arg) { if (nf->function_table->user_actions != ONVM_NO_CALLBACK) { rte_atomic16_set(&nf_local_ctx->keep_running, !(*nf->function_table->user_actions)(nf_local_ctx) && - rte_atomic16_read(&nf_local_ctx->keep_running)); + rte_atomic16_read(&nf_local_ctx->keep_running)); } - if (nf->flags.time_to_live && - unlikely((rte_get_tsc_cycles() - start_time) * TIME_TTL_MULTIPLIER / rte_get_timer_hz() >= - nf->flags.time_to_live)) { + if (nf->flags.time_to_live && unlikely((rte_get_tsc_cycles() - start_time) * + TIME_TTL_MULTIPLIER / rte_get_timer_hz() >= nf->flags.time_to_live)) { printf("Time to live exceeded, shutting down\n"); rte_atomic16_set(&nf_local_ctx->keep_running, 0); } - if (nf->flags.pkt_limit && - unlikely(nf->stats.rx >= (uint64_t)nf->flags.pkt_limit * PKT_TTL_MULTIPLIER)) { + if (nf->flags.pkt_limit && unlikely(nf->stats.rx >= (uint64_t)nf->flags.pkt_limit * + PKT_TTL_MULTIPLIER)) { printf("Packet limit exceeded, shutting down\n"); rte_atomic16_set(&nf_local_ctx->keep_running, 0); } @@ -744,7 +760,7 @@ onvm_nflib_handle_msg(struct onvm_nf_msg *msg, struct onvm_nf_local_ctx *nf_loca break; case MSG_SCALE: RTE_LOG(INFO, APP, "Received scale message...\n"); - onvm_nflib_scale((struct onvm_nf_scale_info *)msg->msg_data); + onvm_nflib_scale((struct onvm_nf_scale_info*)msg->msg_data); break; case MSG_FROM_NF: RTE_LOG(INFO, APP, "Received MSG from other NF\n"); @@ -772,7 +788,7 @@ onvm_nflib_send_msg_to_nf(uint16_t dest, void *msg_data) { int ret; struct onvm_nf_msg *msg; - ret = rte_mempool_get(nf_msg_pool, (void **)(&msg)); + ret = rte_mempool_get(nf_msg_pool, (void**)(&msg)); if (ret != 0) { RTE_LOG(INFO, APP, "Oh the huge manatee! Unable to allocate msg from pool :(\n"); return ret; @@ -781,7 +797,7 @@ onvm_nflib_send_msg_to_nf(uint16_t dest, void *msg_data) { msg->msg_type = MSG_FROM_NF; msg->msg_data = msg_data; - return rte_ring_enqueue(nfs[dest].msg_q, (void *)msg); + return rte_ring_enqueue(nfs[dest].msg_q, (void*)msg); } void @@ -1214,7 +1230,7 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c int service_id = -1; opterr = 0; - while ((c = getopt(argc, argv, "n:r:t:l:ms")) != -1) + while ((c = getopt (argc, argv, "n:r:t:l:ms")) != -1) switch (c) { case 'n': initial_instance_id = (uint16_t)strtoul(optarg, NULL, 10); @@ -1227,22 +1243,22 @@ onvm_nflib_parse_args(int argc, char *argv[], struct onvm_nf_init_cfg *nf_init_c service_id = -1; break; case 't': - nf_init_cfg->time_to_live = (uint16_t)strtoul(optarg, NULL, 10); + nf_init_cfg->time_to_live = (uint16_t) strtoul(optarg, NULL, 10); if (nf_init_cfg->time_to_live == 0) { fprintf(stderr, "Time to live argument can't be 0\n"); return -1; } break; case 'l': - nf_init_cfg->pkt_limit = (uint16_t)strtoul(optarg, NULL, 10); + nf_init_cfg->pkt_limit = (uint16_t) strtoul(optarg, NULL, 10); if (nf_init_cfg->pkt_limit == 0) { fprintf(stderr, "Packet time to live argument can't be 0\n"); return -1; } break; case 'm': - nf_init_cfg->init_options = - ONVM_SET_BIT(nf_init_cfg->init_options, MANUAL_CORE_ASSIGNMENT_BIT); + nf_init_cfg->init_options = ONVM_SET_BIT(nf_init_cfg->init_options, + MANUAL_CORE_ASSIGNMENT_BIT); break; case 's': nf_init_cfg->init_options = ONVM_SET_BIT(nf_init_cfg->init_options, SHARE_CORE_BIT); @@ -1282,7 +1298,7 @@ onvm_nflib_terminate_children(struct onvm_nf *nf) { continue; if (!onvm_nf_is_valid(&nfs[i])) - continue; + continue; /* Wake up the child if its sleeping */ if (ONVM_NF_SHARE_CORES && rte_atomic16_read(nfs[i].shared_core.sleep_state) == 1) { @@ -1290,8 +1306,8 @@ onvm_nflib_terminate_children(struct onvm_nf *nf) { sem_post(nfs[i].shared_core.nf_mutex); } } - RTE_LOG(INFO, APP, "NF %d: Waiting for %d children to exit\n", nf->instance_id, - rte_atomic16_read(&nf->thread_info.children_cnt)); + RTE_LOG(INFO, APP, "NF %d: Waiting for %d children to exit\n", + nf->instance_id, rte_atomic16_read(&nf->thread_info.children_cnt)); sleep(NF_TERM_WAIT_TIME); iter_cnt++; } @@ -1388,7 +1404,7 @@ init_shared_core_mode_info(uint16_t instance_id) { if ((shmid = shmget(key, SHMSZ, 0666)) < 0) rte_exit(EXIT_FAILURE, "Unable to locate the segment for NF %d\n", instance_id); - if ((shm = shmat(shmid, NULL, 0)) == (char *)-1) + if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) rte_exit(EXIT_FAILURE, "Can not attach the shared segment to the NF space for NF %d\n", instance_id); nf->shared_core.sleep_state = (rte_atomic16_t *)shm; @@ -1407,7 +1423,6 @@ init_pool_info(uint16_t instance_id) { nf->pool_status.pool_mutex_name = sem_name; if (nf->pool_status.pool_mutex == SEM_FAILED) rte_exit(EXIT_FAILURE, "Unable to execute semphore for NF %d\n", instance_id); - } void @@ -1415,10 +1430,9 @@ onvm_nflib_stats_summary_output(uint16_t id) { const char clr[] = {27, '[', '2', 'J', '\0'}; const char topLeft[] = {27, '[', '1', ';', '1', 'H', '\0'}; const char *csv_suffix = "_stats.csv"; - const char *csv_stats_headers = - "NF tag, NF instance ID, NF service ID, NF assigned core, RX total," - "RX total dropped, TX total, TX total dropped, NF sent out, NF sent to NF," - "NF dropped, NF next, NF tx buffered, NF tx buffered, NF tx returned"; + const char *csv_stats_headers = "NF tag, NF instance ID, NF service ID, NF assigned core, RX total," + "RX total dropped, TX total, TX total dropped, NF sent out, NF sent to NF," + "NF dropped, NF next, NF tx buffered, NF tx buffered, NF tx returned"; const uint64_t rx = nfs[id].stats.rx; const uint64_t rx_drop = nfs[id].stats.rx_drop; const uint64_t tx = nfs[id].stats.tx; @@ -1588,7 +1602,6 @@ onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf RTE_LOG(INFO, APP, "Failed to enqueue spawned NF into the ring\n"); break; } - spawned_nf->args = nf_args; spawned_nf->pool_status.pool_sleep_state = 1; } diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index 5c7611f06..df780c15b 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -308,26 +308,37 @@ onvm_nflib_get_onvm_config(void); void onvm_nflib_stats_summary_output(uint16_t id); +/** + * Enqueues an NF into its corresponding pool. + * Input: Name of the nf, args to the nf, number of nf's to enqueue, (optional) pool refll threshold + * Output: Number of nf's enqueued into pool, -1 on error + */ int onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int nf_count, int refill); +/** + * Dequeues NF from its corresponding pool + * Input: Name of the nf, amount of nf's to dequeue, (optional) pool refill threshold + * Output: Number of nf's dequeued from pool, -1 on error + */ int onvm_nflib_pool_dequeue(const char *nf_name, int nf_count, int refill_threshold); -struct rte_hash * -onvm_nflib_get_nfpool_hashmap(void); - -int -onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count); - -void -init_pool_info(uint16_t instance_id); - +/** + * Forks a NF based off its name. Assumes the NF is within the examples directory. + * Input: Name of the nf, argument struct to the NF + * Output: Pointer to NF struct that was forked + */ struct onvm_nf * onvm_nflib_fork(const char *nf_name, void *nf_args); +/** + * Creates a path to the binary executable of the NF. Assumes the NF is in the + * examples directory and its executable is within a /build folder + * Input: Name of the NF + * Output: String to binary executable + */ char * onvm_nflib_create_binary_exec_string(const char *nf_name); - #endif // _ONVM_NFLIB_H_ From 38e6bd1e6187d6f1babce3dce14812ad079b6c3f Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Wed, 24 Jun 2020 21:53:18 +0000 Subject: [PATCH 09/14] remove testing from main loop --- onvm/onvm_nflib/onvm_nflib.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index cd008fc55..c0faeab21 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -641,21 +641,6 @@ onvm_nflib_thread_main_loop(void *arg) { if (nf->function_table->setup != NULL) nf->function_table->setup(nf_local_ctx); - - if (strcmp(nf->tag, "speed_tester") == 0) { - struct simple_forward_args *args; - args = rte_malloc(NULL, sizeof(struct simple_forward_args), 0); - args->destination_id = "1"; - args->service_id = "2"; - args->optional_args.print_delay= "1000000"; - RTE_LOG(INFO, APP, "Spawning 5 instances of simple_forward\n"); - - if (onvm_nflib_pool_enqueue("simple_forward", args, 10, 3) == 0) { - RTE_LOG(INFO, APP, "Spawned 5 new simple_forward nf and added to ring\n"); - } - - onvm_nflib_pool_dequeue("simple_forward", 6, -1); - } start_time = rte_get_tsc_cycles(); for (;rte_atomic16_read(&nf_local_ctx->keep_running) && rte_atomic16_read(&main_nf_local_ctx->keep_running);) { /* Possibly sleep if in shared core mode, otherwise continue */ From 348b8593f2e796250e8cae6f9eff7ddcd7c59939 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Wed, 24 Jun 2020 22:18:27 +0000 Subject: [PATCH 10/14] Remove redundant file --- examples/speed_tester/perf.data | Bin 61924 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/speed_tester/perf.data diff --git a/examples/speed_tester/perf.data b/examples/speed_tester/perf.data deleted file mode 100644 index 7caa0331dd3b997dc88487a619ac1fc99c1d7ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61924 zcmd6w2Ut_r7r-NKg^GLB5jR>P0TtZFjhniyS_mOP3M4TJDpo6XS6fBvzjai_(OOqU zagVCix?1j~20gfosUESmMbG|$M zqE=NA4{S<$r6FGz&hP$J#;aGah|)Z&5S8%t6+^;i)9)#3YRdNq#29U6W2|3{J~q~# z5N970>M#y-Fhc&$oD3h!$KYUaKTU~ zx`_qZ^_OD$N#V;j7xPW@o2)|`$c!*qbFw0v->v1D{t%gR;j4@KBW$K2Mw?w@wbECp z!D2I#+=nZr@qEk5+q=R$(d)2ktPU$t>7w2gQLj#E;Tz^R!l2g(uh;3FsFLc7?n9Pe z_wtlGl*O(QzWI`GzTqavYvWC3N76g7V~8ojXwgK5M;M1_NSSNw33j0p#M+Do z+?s50mnqtj=vF!C9ePr7`e=iRmIZCI ztn$xvORvF}V0BnD^dkZ*?rixCtHkn|>{dRBf4Os&g2X+hSJs|-SAG}%HAd(S8dDGn ztx)nE%QCfq>6gWKqNv|Hzrx-(tly+vH9De6UnVrLW`{9WV``u^(l^wWY<479XMQ-M zFyl?zRYSDiCN%JICi)f{XOD{3n*%1mQ5-ka4QFcGnWPV6eTKtA_VKtaE(H4g_ zHa<#YkG2}3Y1f0;kxjq47So^RmVV#|J8kt;uITr!?M@u%ZH8#guttHb1+r-LM!T=D z8yeVv=ys}K*54>9h53$(jW>oy8)L1k214yz zzbyW>KFsg#bT>7dB1B3wVUG5&Q~xZo4=Dqy(vly->|)jvc_v7Y;l^n zD1B6bR?9z;3MZ<`W=CROvEK8UB?I5k4y-?n3fGvT!kw7H?2y+(Uw6s@)(#uGBX#L)?euuv{!W1d90h&PfvzLckcJTg?3{B$n!k~l`bW;z3K7@2m_4roNSc(A?`{c(DO-~x+1S|fZ5jW*Hh zN&JB8m$iq<{_f--#-lJSvq$^Va5S5IX{q29BU?PE0+=0dH$Ic>Fb*-A9m1@T4OPjz zufgunJLs$!Iz!mcW=EK4N3w^4e#3Txw^u@&6&e#~mvxo6JF>5bBnC2nBr42sbKGpV zo9JLM`-nNa9~!w67rb6z{k17BDm)gS9rN;#^;<_oJJbafj(Gd>AO&D_GC!8J3z@B0 z{?pzn4y1S#J5FJo=t_N%>DRVn`jbh?WNmMmZ-*mJBfLo7@c?AyFY|kH2d1A!<{Rr5 z)*&P92E8z2;-5sVpg&6z`<6{_O0YX|C+IcD(pPA_BeD@unv-7Hcud=o>3zHQhmVg8 z)Ww2cJfAXsNuoZTl60|rMSXD*bl%}qpR7DH-O@M2WOGo{Ot!({30A!wALSzTH>s28 z*TRa7x|mO?9>ola(+Dq8pgF8(%lwU;aVTp~GYvbb%#gPl|HC-UX=p=DVOo4tE$gZ1OPDA}LL13GsTFxt zKB}Y>&*^ofwgOLHF&Bz1^Bj~O4mPB56An!XrrMxbSJ9fnMK0mDFN~exTIS*jpw2nu+V)9Bq z&x(KI7u}XyAs838RH?Vkv;XzLI7_IKOQ^WFC&v9-<%Pm8*1KE#V;uC$X-)J1jI$k7 z=Hs`fmr)M-Z^Xv~2V(MkcPaBR*;H~6#$9i(h94xnMKmCkyHGzF$AID9>8``bVuvb1-?Zo_lKdy2PbVj-2O;ymQ)&g%}6RZI)@^VvGxapv>>cC}rijyTZZ=*NjVnpN<(q#a%0d5C>(O@;CT|JI z?}jb)w_+U3?=el+?HC93Ci+i8xf7sY9nv}94osdJ^wTT*e1USXUF-j%_3xNGI6m0t zzj_bG!MGpSJOkxmJpW-CxDS&D{a2-Bk3$#-{a4$*<1ofS`wp(~JBo2P!FVIp^0>Qd`WcMtU&5@2d+nyfC|B?FQw2Bl)cCWQJlOx1 z`=|LijDzF4i=C3sV_enZ%6{R%w)$xp2g@zv-v#Nea2vj_a~(RrG z8MiPF)}!C7RsO-af*=k~=}OzL9BdCV#@={_ zanR3KQhUF^IM~1adTZB9jDz_I47m9U<6u3C=y^f)0Wu%FTvyp{%-!)QFUG<7;G!DG z3t(JXtx{gUPS;Qlw&Q-0UlhXR!MJan@C4j!;+amCw>R>X7M(vad92ji-T?o4TngXKGONc*xF2iwUnDopzj<6vAp z?U7IkBUO~;yG?t%F2=z)m^FKqFUH*ge#ui{zZT=5ytJl40T>74dG%kv24Y+!m`C+f zr3PVKc~FmDw3yQv<9dU6_qq7OO);(p82=5aGOZ=X67!BKT37;?oPPUfP>?@)y8}wgyX*g;p;j5<}35jJn;+4!SzJg z9vqvu>SH1gaOHH*zXs5G~R@9aK4aPD9>jY z2lG33fFTy+;5uu>;Sm;$D+t<+&M#J4F%J4AW9kzJ#zDPZ7ue!44$jZ3->x(i;{v-X z>&NuqMF|+!DqT6>A2|T$V0p|L68$-m*ACQQ7^mk_n~Wt~Nx;E%5L@kD69`ufa4W&O z#fWdTldyci^1ayFG8N-afc9^s0q3B+)#0_0h`az`Uj*>;i30t;BU~B4!S%ZS3meWN zTnWIz`9jNs-G9LH0qxr!|IvJmgZ*#61p|{Y4wi4*LX8(;9GovCgjD?z5e5B2ix7HsV`CPBek+Wy0Z`Gb|xw7N1nq&e_xIUe7-XIR3-r2BgTc@Q^wV?R+lzm z99-wx(x&2OjJt3}8820~Hr$4B(9Z{(w%Lhsu$@fq{S4)1g7)upM9^=TJUEVMG$sS( z;5t`@>j!?vZ++w1B-7zh2_e@y8Nj4Kb;Pru!~ z<1WUn1M|j4b@q8IkRusuCnd1gV(zMJ5B?V|1l3S%6sZ;eN< zE`o7I+A8PqPgY(oigB=?E}RkKg>f(r(lQUA9JKG*muHG&@)G}0&KETK%w;hSwtr*0 z4KI&zuzh)$_uGmX2gjY}DxE4}9K2q3GcurxD_oU1$!d&)eu>GmxjM!@0P8OugBRAs zIJj8Gd0+FnK+jD%a6B zo_Nq4<6wR(ZjEb!aj<>vzJD3YL3x3vYqZ4VL2j`}A05WE4^g(e`!tT$7zgDw-!`Ki z#=&)@s^>em$2cf&RJ~t2h zfpKvCYV9Y!{V)!;8;2)<+8^U!ztHbY`vDl&A6)0W{&ej?jPvqTUY|a=V;#!D>#Jod z#SS9!;Q9u<4`oZurIeG;FUkGQu>ZJxzxt<`eXxAzcRYu3uw6?V*elc(d6|ow=`jvo zKT5r=H((sJ?^TgL5f}&Moei2`#5fo)1swrV7zg#f$g7LNI0u-&ec&|`RE1eBl1wYu|i2662uWqa`(8 zVjS#eh6Yt1jd8Huc-+727>tAC;<5X*<1r4_%YwzrPsBJljy*FzU^2$Raad@9yi+j_ zUhlS-(4icxzr%XnPQv6tz4tcen}Km~{P*(27L}% z_G}i$!RxSX@_#%R@klUfFeq6pVxSW!$-RbT!67 z`xblVO~trT;JRr>lLl)s4&G05r2lP{%LMn8UjC;4dQ4uv80EZs$;wF^Fb<9Gv~aefOU)TW`eV!Fj;6zqX(p?BCYBT(t?42mO4nX8LA~gL?ONJh=tqV18>` z_HV^F*dA>AcH1_LgYDYbEvtXUI9Sj1(W$#I4%W*($N$`eaqxbNZq1hN$2jPhaZ7&t z6XT$t{k-NM#<D2mmVx_Z4*fmj zB*sC#eR}?K2IHXrCT^be7sllW>ok3?ZaI%}@cQLsuapZI2krZ)-r|cG2jkD{#mq|> z2jw-Lk(iEgFu(c#n|0L{?!bwuw=fR2&tJA)dI#fRdoX#*p}QD&1l*U_s-XXUjDz|8 zc7O5{jDz_doH64m#=&-@MA0tKFb=jG#aeHEj&X2Y^2aBGUtk;@uQfWk_Z7xLKkx25 zAg?#FZVT&W+0{V>Fb>9*rtqLb80Yhea$VrmBVAF9gMKbBBo*c0^{8<(KJ&!n!Rvz~ zw$AawI4JMVxgH;29PIZ82QMv-aWJk9KF2xOUp@@4UV_Mj_dQgeru1KJ^IXco`7az# z-k8vgZTye zxz)%P6$l6K2dNI`Z!_=qt%TV(XnUmMzJecXeN`Fb9)R&xhk*^$7zgc()JE09xGO2j z`vgDkSh+UFL3#NH&O|x5u6)*b66IidwEMA59Zc_haR1Bj$I%~Q9PEEH3k|A=ad17N zTlG@D7zfAWn=~Jz99+*{aCr*K!Ey1H_{JJc?-me$&oZV4U>t0(0@`RAVjOJ8Q}owS z4z|0;Pc>_d$%FH#W94c##W+~c$9>hJ1;)YgTA_y(T45ZFzXHXIwRVMDFrYzOjI(N# zsY9{+!uw;3T{)A0aWEgDJ?@XdICwu&Sn8os7zf*pz|+4ay29CO z{5{$g&JuZKEXKk0oK;hIkHa{)o;c&hg^3sk<8(rcuO?v}tZ!>0Hc!Sl_`8G^ixz%^ zaoO6TgU6>}92_46_gy?4=d;F%Dk;eQDaf3ge)Cclt%G z$G8&kx>d^ljTi^Vr=R{-U=zl{dNj_~?pKV1gK@t%a^!JLUXwP;b%F0{e}Qsef%~u0 zdsaO`h0LVeiqXU+voM4)IEoBP~L|(f-btk4JvNBgmG~E{MWE{moYA2@F>MR zetDTOCz^wzO8-><6u8%K3nu3jDzb<;{%pwU>v-TeQoiC zdl(1Hqf3d4|GL6ejnX~FI9MKqR`@){IM`lw-G2$?puEg8{hwj-;CN_Kx%@9M4(eUe zD)1%7!Rw}~g!KO~4*Kt-72Q?j`Ec;QSJ;1?^SbMSaj-ot*?dqwjLQ$MtL5uD8|C2d zVs?dooF9`1>u*sj&O!f`iJd~_@jo2mzpI4hw*JAVg^At@U|s>&;mQqY>Pa|wzYqL< zsJ--;URXY$Uay^Hi(wqhN8R&>P!7&(HwE~Yz~sSxHNK4*39rbMn?Mhv|j&V^7tKDE9{#A6VKItANRa z^Z1R?c|XKB=)clKbSMYMYyJz*pd7q!q<_+5l!N1!`(G}qgxLq@DV5VIR>nA3FZHdT zsxb~eXKZ?3dsU2s<<=vnZZ(X9&%szZbTP`o>u;UEsazeC2lf6kcP7fgc(MMyttKW9 za-&Mzt%Y&0KcCx5?SpZ!eOWcEL0yc4^K-+(?I;Jwi7(Ta)WhV#IQZ<|Rg{DCg*iSw z{V;iO9tb<;MEv%6RtqFi_-I1$$H)L4{>gdO38Jv!8n_&ekmb_l=x|fVSw-<6- z&g0zRAHP({>zlzi@v)ZD^IX@6&xhrDC*-|P_45C%Pqw{S2;En3Jv$a8PWvvdcDBf3SUW*bNf`FAsqa>D=Cg`3P8nKG{DZn|7g zVwRo|77wcAYDA2*aXrOUE$FfMpzU?Y7fBEKA5Qjo;L@X%{Xj?p5QFUy~99+U6gQX!b< zubh~_L&evwCIFXDpUa*-f2MGQGKV~Wjt9?Z{&@Z2$N6WCy?GXp`oQ;B{m%AbJhc&G zg}eeT6{0+RZu0GW6KTER+<_m9pxoX2Un#hM_A`$Eiv!oY3UJ|<8AsB|#yP(SN_qM` zMXBC~43jusFSvcZ?lA6^$gz6iL-RE0EJQT<;#^TT_tXWR~hhc~r@*E4>cf2PbYL(}Xj(7$^V5Iy`sS-+4LJ5&O#n#%6R$#!W_IY*>;&38O@hpXH z$+-I{sSu((;=gsz?@7=3A?)^Mew3>!{*Md%f0lM)zjy1ghH_l~7mwIJb0?cO6V|AY zCI5|M^JQTw#bua9OV8)|m#-HPnZN&1pQiT&e*gD_tmhLDZpDnIlq)B4(BAf?^-{I^`~ddOJ&Y zJ(S2ytu>2sn*jIhx-u>*ADvIR?*RwnY;=X6C^rajDnDgDZul;vTr0pO9GjrX$Nt?b zDc1sUT2Q|6D^^pk4dCKIdF(o}4&|WUa{ikr*AmDJ)hhFGq|-Labp)JsoK2CBHQqZZ z*A8%_|5C<5lE?3qYY#Zs?iEAC3!}V! zxx6y#`Z=i|J{8lcyyvBq?GTjL;r12EEqo0Zdiy%%ric&P;d-IGL4|Kou9Ns+L}#3? z=^e`5dJVVZi%iNTh!2`|ChwCI4=DHKHJne2$CQf_)&|MuOrCbrGs^9H4cG75OUikd zSIXn_QT{(~+Ck6fW9z?=o1W+zw{tS%#O7YgM~9-U{o{ITe$O~QucpnfI_v-EqAY&) zXu)*O>*h0_`z5Usd(H_@Z^L*`GN?eCOlu;o>^&XXWNBAW3xm z&DUweg+B=vd9JU^6{e4mTlw+#z0Sn-G}gVK<;MNN%a8nf7B1z z^jl}Y*ZCILKR@^tu0L!5)Bm34FI@kOr%XSI12SGte#EX5@bon+^U(F~N^}(vw9IN9hcfct6H>-eeiZrm6xrD%uT))f@J9>(K@In0$D*9nsyW>$V z`N5tbELF!v5JzbJ0)!PdCYIY#^iXBo54!ryjzl$Thr8>cT>tMYtKj<6yqW$mJRaJL ze(*h_rq^6)y~-&bVu!Oe#)f{vmD;R0Xs=hx^vlXYeV475?Wl_8KhcBL>;6l-9wvaK zKc{uh*x?P>GG~wF|a z2oT~Sn;jL-Gdpz@HOkj$vsr9n zO%7l+ncMMcd<|*`FE>7Z<>`s@{Al{V;>;18+x={+qI`8;jVaems7qwy+=Mx7{gcZZ zR(<59d6idr_{PI1b_RIs&e2&Ce)z9jucs`9LYJN61LZtt5dbvoA_q zN8x(!ub4);4Wz(j+|*)9d7FDKpxh}oK$7yy*YUW#q&}-CR{?MvlG*wQ=khJvO1ayl zKxKMidE8L%rkoLQ%fj7a|cDgw}!2155m)N|P z%dynWq+FQD@%bmY4~#JUGjcuS_<0M~v3(wgd|u1be=D7zUH=05p`EYxF)mGvSFWGj zA46pE&w1JcR34XqOT+fL{z2(%y_%<2`>YD(?P3GQ+7TbA9@yg}=y;U#8H=k@-f8>c zWPBSGz{Z!Vo)2jb==gxFpYeI4sEF%1wNtJ~7Ps$t-pKVQK9%ball-B2NA1EAsxXjjm>1K-aDcnxIXy^CODzA3QPP>ubeo8GBPT+Q2(bT~G=<_Kz2i;8#X$WzkK=Tju!$zmq? z3?<6hIGEos!u5~pUK7uMN?E4=J*^*d{g;n2{X9@1`P7CQ9X}3VSTh z8`RVv{Ee4WezBZhuD!aBq)C2qHg7QKt-j_crL%kE)co+BuSIvL{YCvr8e5g zY8^kH+iB|7nCj0KpW4z)Zy#P18TQ%A)an3Wk73Btq9Lu*XE;Ijq zNdBiwrBjn^NgL1iKr!EC4%9zQ5_8VC-DrrnnH&ikA@`w1^N_3p;P%wr(nXQ~qT>DV zJbn1Kt~7m|GkbN%nY}4hC0ofCZtpzNUhjaBm&oxqus7ap8YUUc?a9}y8?`4}yzE%T z>`1Im)JPk*qk?Eh{Q>hmNn*}+2th=b(X#HsJOSd;1`$l zo9*)MSE`RKmofc3UWUR#owv!4|4 z6&sf=Z4Y$MN zuH249$v#y|erAW0`s5?V(bb9HCM)c4*6!Jic1!FKDUiAT!V`K?Kkzt$?Ov4~EZxgl z9I3AUOWP?Yc1D+B<@e8y53ecg%&GkBdV6dDX{Ck5Prm^A6C7^uqZYmKa?9M#?C`EZ z)JPjIHxIGg?se<6ge1BYM^SdW-fAL-)aTchxE*ayI+uErwUVd5~v*U=5WCQua?RX*DQM}IYuD1g* zw(y2DjIu5bayyQuIkCgL46{RB7q#P#Xh*#^)*}RP$sc;V*`L_ah(}RYJG5tXKbb#d z_5aAj2RZfs4aDm~n_k}Eq_D$T{Wn;Ip5I2VDv+x|+z*+W{)+hF*MWF?q>iQUa~40= zW6aJlyuW=Q`s>%cYZ4T8=2ZWqX{Sr?S`mVsUI5|toI1z_q(@5JFZnI zqr7h>Cp&DG7^9gKoPQ(H49Ra-{`ZN(Z&SqUXWY)!jR(;5Y9v5}E!#LnHZu1m1FDM`Dv4{qWqI+3~npvj~^%Fh!VY_d$%PPtMA+ zBX+?+MY-|&dAOa{|5*A~MY+kw2gx4H-n1YlSbXPxdn(#%3TW1xB)Q}_VT5aU*i3Bt zE|j2bJ<7MwAZl;6^0TJjr|p9lkDuWsMZZ4isVbCgbDHr=q(JhU0$o zK6j6{14*Q{&Dyx%mie-FAhcPN^CZ*#eBKGy=h@dxxrut=i!MT#9zM$M>@cRUqkF`%2XP0p#AJ9IvWek;9l4MlaoXsbXt^S5`w@6^* z!1WwHmvW5&2e1FNN?b%ao0#8h?ORePiwCuu>f>)bF8hn)tgsmiE|4@SF41w8Vx2?y z(RPARMVLhH*V=cMPuj*6=sK4O>k-BerqkxKYlLLY6(ev1HTDZDkQf_c1*0YOlF6yKBxVcN!zzD zwPXYN!tGcg`Xgh>_o?J~&UOfe%CrmPWaYYo)qA;2zpR~4xybZ8@xyFU|E5_N2ftpw zB7TG)L)&AxCwO^Wnz)kM;Vgdc+-K=`oQ^9tGkY`fanM(yy)X7X{`(E>&AP)>IFZ|X z`KvX!-x6mtJ9KKIM%s9}*+o01p1EKniLWg;vT_|~vKz!sNxUsivZLOpRGA&J_)!gK zb~x#m+`Ye*`{7*swKHVCQ+mZe`#@RU0Uw;7<=hg<)>dd1Vr*V{tvy+jH|*f>`iaMym?PPv=r!En zPP-^qQ}h#SCfV3$>t#r%+d%ws(J-9C{^ ze%HLEv_Jj*S00AZd=oCXd)DvK3FoiP&XIn$vRe4znBYfAUI)gB*^%V6eyP-(`YGf1 zXp-cE=soIfrq9XZ^7`LsMD0tL*+=xspVLBq@4Tm4^KALRxOt7Ub42gxGg*3xyr?dW zljnoT3obr_UPmPM5iTr-al%)+wWaTcr1(ioohI?*oR(*fHzm)HyPl8ny!`mQoG|27 zu*XTt@$nDCv!3I|xj9!E$M=t45%)zqj_hQ5`29-S-`PI1Q>Ai%{f%J%1=!c^Vdsls zr3x1JxxBBz{t>{R5%+7*yMI)w7yFpJ9qdE3bwB%(DEg<_A-2C(OwSbe+luEmILZ=I z)FL2!?sojBkJkpz<41gK+lOXUAk=^uqs?rL^^4KR#@Z9&?80Nm z-gxs6bwphH@VgQ|jWp@w$JUs4Mzy@sp=BqCFekrH%l3SWoD_2%U(Gz;qE)#m(W^8E z3RxcBPVM-_K%c3>pP81EjMt@c9c#<(*gWF*!v&5W{q>Zw-knV~n}yN!UMKm;_T03b z^l%+MdzM|at~udVrC9SK6+Bl~*jT3RRC1nE9ZsGJg6ZNq7I*dCe&F+~uR7j8b129> z*3)-lu$t=N>v*rZ-v*P-k8vHn{~2ssY(HTtc_8EY{}v={sOFzhEW3{E*Z#SjoIX8N zi)rl6J1}d{(h0llt!{Ph)#sm8FTS|*YBtsJj-H>ClMOkg>4ZeHu*zVzL>TLfYmGVa zSQ?QbtaA&KeqW(m@r^Q?jW&}3Bb^_UWcc$doz7WjDMSXloa&5t{c+*eMU|)U(h0AQ zW`{A>r$-%iKcmG=KHG%!R`+Wd*ift1sRR51gE|DW#R-AMHl1*=gV7vsG8?I=dV%#C zG^nRsug1=kAKN$h5$(!J`>YdQ^u9_mw_^`=bXY90cHb=LYlKNsr2KsNoyf2m4HjDj zOmTgm$nZ6~&SNBzVbB|*jlRO5*lx6A%Rc#Bv7ovi)`dGFa4%cCDYbS7=zGA5)YE}pc&vuR@$3>(+MZITb^VHK;&qB+1kDE z^{qCYa8{r%yN>i$0)&%z8=zd3d~<0!;S_hvmB@IrRzo-eY&v28Et_{q5|P2zF{OiV z_=U)DuXI_ADDO^qLn8#7*rB`v_I5JfzPDofh#lm)2JUP+;bh^K3b!^Y!`(m?E#Qp` zsn2BNa|<#zA{$w&;~Qc5i}2(-;mIePOEI48lR3cq+_=3zjCdw!Q>n&kchXOt@a}G# zMC`Bkklxy_nz3i7B-h<`iu;P#XtzWmW?<#M(vE1Ap5*a$~u< zyMBvn(xw*R*l$-PB?s`dX&YQby3b{FN?#{b&bKcyYo95=cxjTQ$&3SWo zj+2}7=I%ToH|NdWv2w1?o0|g@a(^5hmk5J5Z}I!P7*F~K1T<>o#)y*G Date: Wed, 24 Jun 2020 22:30:48 +0000 Subject: [PATCH 11/14] Linter fixes --- onvm/onvm_mgr/onvm_nf.c | 8 ++++---- onvm/onvm_nflib/onvm_common.h | 3 +-- onvm/onvm_nflib/onvm_includes.h | 1 + onvm/onvm_nflib/onvm_nflib.c | 14 +++++++------- onvm/onvm_nflib/onvm_nflib.h | 9 ++++++--- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/onvm/onvm_mgr/onvm_nf.c b/onvm/onvm_mgr/onvm_nf.c index a3c85e389..54baf3de1 100644 --- a/onvm/onvm_mgr/onvm_nf.c +++ b/onvm/onvm_mgr/onvm_nf.c @@ -210,7 +210,7 @@ onvm_nf_check_status(void) { case MSG_REQUEST_RING: ring_req = (struct ring_request *) msg->msg_data; onvm_nf_init_single_ring(ring_req); - break; + break; case MSG_NF_STARTING: nf_init_cfg = (struct onvm_nf_init_cfg *)msg->msg_data; if (onvm_nf_start(nf_init_cfg) == 0) { @@ -221,7 +221,7 @@ onvm_nf_check_status(void) { id_req = (struct id_request *) msg->msg_data; id_req->instance_id = next_instance_id; id_req->status = 0; - break; + break; case MSG_NF_READY: nf = (struct onvm_nf *)msg->msg_data; if (onvm_nf_ready(nf) == 0) { @@ -476,7 +476,7 @@ onvm_nf_init_ft(struct ft_request *ft) { } } -static void +static void onvm_nf_init_single_ring(struct ring_request *ring_req) { struct rte_ring *ring; ring = rte_ring_create(ring_req->name, ring_req->count, rte_socket_id(), RING_F_SC_DEQ); @@ -538,4 +538,4 @@ onvm_nf_init_rings(struct onvm_nf *nf) { if (nf->msg_q == NULL) rte_exit(EXIT_FAILURE, "Cannot create msg queue for NF %u\n", instance_id); -} \ No newline at end of file +} diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index b430643dc..46254b96d 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -396,7 +396,7 @@ struct ring_request { char *name; unsigned count; unsigned flags; - int status; + int status; }; struct id_request { @@ -404,7 +404,6 @@ struct id_request { int status; }; -// If the values in optional args are not -1, use the optional args struct simple_forward_args { const char *service_id; const char *destination_id; diff --git a/onvm/onvm_nflib/onvm_includes.h b/onvm/onvm_nflib/onvm_includes.h index e2c6dedb1..888ba384f 100644 --- a/onvm/onvm_nflib/onvm_includes.h +++ b/onvm/onvm_nflib/onvm_includes.h @@ -85,6 +85,7 @@ #include #include #include +#include /******************************Internal headers*******************************/ diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index c0faeab21..8efdc34bd 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -61,7 +61,6 @@ #include "onvm_includes.h" #include "onvm_nflib.h" #include "onvm_sc_common.h" -#include /**********************************Macros*************************************/ @@ -238,7 +237,7 @@ onvm_nflib_handle_signal(int signal); * Forks NF's and enqueues them into a given ring. The ring stores NF struct pointers corresponding * to its pool. */ -int +int onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count); /** @@ -1567,7 +1566,7 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int eq_num, int refi return spawned_nf_count; } -int +int onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count) { struct onvm_nf *spawned_nf; int i, count_sleep; @@ -1629,7 +1628,8 @@ onvm_nflib_pool_dequeue(const char *nf_name, int dq_num, int refill) { if (rte_ring_count(nf_pool_ring) < pool_ctx->refill) { total_refill = pool_ctx->refill - rte_ring_count(nf_pool_ring); - spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, nf_pool_ring, total_refill); + spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, + nf_pool_ring, total_refill); RTE_LOG(INFO, APP, "Refilled NF pool with %d NF's\n", spawned_nf_count); } @@ -1653,7 +1653,7 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { return NULL; } - instance_id = onvm_nflib_request_current_instance_id(); + instance_id = onvm_nflib_request_next_instance_id(); binary_string = onvm_nflib_create_binary_exec_string(nf_name); if (fork() == 0) { if (strcmp(nf_name, "simple_forward") == 0) { @@ -1732,8 +1732,8 @@ onvm_nflib_create_binary_exec_string(const char *nf_name) { return binary_directory; } -int -onvm_nflib_request_current_instance_id(void) { +int +onvm_nflib_request_next_instance_id(void) { struct id_request *get_next_id; struct onvm_nf_msg *request_message; int ret, instance_id; diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index df780c15b..8378f2559 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -275,11 +275,14 @@ onvm_nflib_request_lpm(struct lpm_request *req); * @param ring_request * @return response status */ -int +int onvm_nflib_request_ring(struct ring_request *ring_req); -int -onvm_nflib_request_current_instance_id(void); +/** + * Requests the next available instance ID from the manager. Not MT safe. + */ +int +onvm_nflib_request_next_instance_id(void); /* * Initializes a flow_tables hashmap. Returns the status code, representing the success or failure of the initialization From ce0636245e1f28c1290c9477a68d77e73f92fa28 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Wed, 24 Jun 2020 22:33:37 +0000 Subject: [PATCH 12/14] Linter fixes --- onvm/onvm_nflib/onvm_nflib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index 8efdc34bd..7cff967f9 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -1628,7 +1628,7 @@ onvm_nflib_pool_dequeue(const char *nf_name, int dq_num, int refill) { if (rte_ring_count(nf_pool_ring) < pool_ctx->refill) { total_refill = pool_ctx->refill - rte_ring_count(nf_pool_ring); - spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, + spawned_nf_count = onvm_nflib_fork_pool_nfs(pool_ctx->nf_name, pool_ctx->args, nf_pool_ring, total_refill); RTE_LOG(INFO, APP, "Refilled NF pool with %d NF's\n", spawned_nf_count); } @@ -1659,7 +1659,7 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { if (strcmp(nf_name, "simple_forward") == 0) { args_sf = (struct simple_forward_args *) nf_args; if (args_sf->optional_args.print_delay != NULL) { - fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", + fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", args_sf->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_sf->optional_args.print_delay, NULL); RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); return NULL; From 93c301ee915745f00f789e5a5c527a66d7fc8e3e Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Sat, 3 Oct 2020 22:08:34 +0000 Subject: [PATCH 13/14] Simplified arg parsing --- onvm/onvm_nflib/onvm_common.h | 2 +- onvm/onvm_nflib/onvm_nflib.c | 98 +++++++++++++---------------------- onvm/onvm_nflib/onvm_nflib.h | 12 ++--- 3 files changed, 43 insertions(+), 69 deletions(-) diff --git a/onvm/onvm_nflib/onvm_common.h b/onvm/onvm_nflib/onvm_common.h index 46254b96d..a5f892bcb 100755 --- a/onvm/onvm_nflib/onvm_common.h +++ b/onvm/onvm_nflib/onvm_common.h @@ -356,7 +356,7 @@ struct onvm_nf_init_cfg { struct onvm_nf_pool_ctx { struct rte_ring *pool_ring; - void *args; + const char *args; const char *binary_executable; const char *nf_name; unsigned refill; diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index 7cff967f9..06fabb0ae 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -238,7 +238,7 @@ onvm_nflib_handle_signal(int signal); * to its pool. */ int -onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count); +onvm_nflib_fork_pool_nfs(const char *nf_name, const char *nf_args, struct rte_ring *nf_pool_ring, int nf_count); /** * Obtains the nfpool hashmap used for NF pool API @@ -1502,7 +1502,7 @@ onvm_nflib_stats_summary_output(uint16_t id) { } int -onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int eq_num, int refill) { +onvm_nflib_pool_enqueue(const char *nf_name, const char *nf_args, int eq_num, int refill) { struct rte_ring *nf_pool_ring; struct ring_request *rte_ring_request; char *nf_ring_name; @@ -1511,7 +1511,7 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int eq_num, int refi struct onvm_nf_pool_ctx *pool_ctx = NULL; if (nf_args == NULL) { - RTE_LOG(INFO, APP, "NF args structs is NULL\n"); + RTE_LOG(INFO, APP, "Invalid NF args string\n"); return -1; } @@ -1567,7 +1567,7 @@ onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int eq_num, int refi } int -onvm_nflib_fork_pool_nfs(const char *nf_name, void *nf_args, struct rte_ring *nf_pool_ring, int nf_count) { +onvm_nflib_fork_pool_nfs(const char *nf_name, const char *nf_args, struct rte_ring *nf_pool_ring, int nf_count) { struct onvm_nf *spawned_nf; int i, count_sleep; @@ -1637,11 +1637,8 @@ onvm_nflib_pool_dequeue(const char *nf_name, int dq_num, int refill) { } struct onvm_nf * -onvm_nflib_fork(const char *nf_name, void *nf_args) { - struct simple_forward_args *args_sf; - struct aes_decrypt_args *args_aesdec; - char *binary_string; - int fork_error; +onvm_nflib_fork(const char *nf_name, const char *nf_args) { + char *go_script_path; int instance_id; if (nf_name == NULL) { @@ -1654,37 +1651,21 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { } instance_id = onvm_nflib_request_next_instance_id(); - binary_string = onvm_nflib_create_binary_exec_string(nf_name); + go_script_path = onvm_nflib_get_go_script_path(); + if (go_script_path == NULL) { + return NULL; + } if (fork() == 0) { - if (strcmp(nf_name, "simple_forward") == 0) { - args_sf = (struct simple_forward_args *) nf_args; - if (args_sf->optional_args.print_delay != NULL) { - fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", - args_sf->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_sf->optional_args.print_delay, NULL); - RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); - return NULL; - } - // Default case is user does not specify packet delay args - fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", - args_sf->service_id, "--", "-d", args_sf->destination_id, NULL); - RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); - return NULL; - if (strcmp(nf_name, "aes_decrypt") == 0) { - args_aesdec = (struct aes_decrypt_args *) nf_args; - if (args_aesdec->optional_args.print_delay != NULL) { - fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", - args_aesdec->service_id, "--","-d", args_sf->destination_id, "--", "-p", args_aesdec->optional_args.print_delay, NULL); - RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); - return NULL; - } - // Default case is user does not specify packet delay args - fork_error = execl(binary_string, "-l", "7", "-n", "3", "--proc-type=secondary", "--", "-r", - args_aesdec->service_id, "--", "-d", args_aesdec->destination_id, NULL); - RTE_LOG(INFO, APP, "Execl error %d\n", fork_error); + char *command; + int ret; + ret = asprintf(&command, "%s %s %s", go_script_path, nf_name, nf_args); + if (ret < 0) { + RTE_LOG(INFO, APP, "Could not allocate command string for bash script call\n"); return NULL; } - } else { - RTE_LOG(INFO, APP, "NF_name not found"); + ret = system(command); + if (ret < 0) { + RTE_LOG(INFO, APP, "Could not execute NF go script\n"); return NULL; } } @@ -1693,43 +1674,36 @@ onvm_nflib_fork(const char *nf_name, void *nf_args) { } char * -onvm_nflib_create_binary_exec_string(const char *nf_name) { +onvm_nflib_get_go_script_path(void) { char *token; - const char *wd_nf = "/examples/"; - const char *build_nf = "/build/app/"; - char *binary_directory; - uint16_t total_directory_size, nf_name_len, wd_nf_len, build_nf_len, token_len, cwd_len; + const char *examples_path = "/examples/"; + const char *go_script = "start_nf.sh"; + char *go_script_path; + uint16_t total_directory_size, wd_nf_len, token_len, cwd_len, go_script_len; char *cwd = rte_malloc(0, sizeof(char) * 4096, 0); if (getcwd(cwd, 4096) == NULL) { RTE_LOG(INFO, APP, "Could not extract current working CWD"); + return NULL; } - // A little bit hacky but idk a better way, idea is: find first position of /examples/ string, use that to parse - // the CWD then construct the full directory to NF binary. Works only if user is running NF from examples - // directory - token = strstr(cwd, wd_nf); + + token = strstr(cwd, examples_path); *token = '\0'; token_len = strlen(token); cwd = cwd + token_len; - // Get the strlen's of all the needed string for our binary string - cwd_len = strlen(cwd); - nf_name_len = strlen(nf_name); - wd_nf_len = strlen(wd_nf); - build_nf_len = strlen(build_nf); - - // Allocate the memory needed for the full binary string - total_directory_size = wd_nf_len + nf_name_len + cwd_len + nf_name_len; - binary_directory = rte_malloc(0, sizeof(char) * total_directory_size, 0); - - strncat(binary_directory, cwd, cwd_len); - strncat(binary_directory, wd_nf, wd_nf_len); - strncat(binary_directory, nf_name, nf_name_len); - strncat(binary_directory, build_nf, build_nf_len); - strncat(binary_directory, nf_name, nf_name_len); + cwd_len = strlen(cwd); + go_script_len = strlen(go_script); + wd_nf_len = strlen(examples_path); + total_directory_size = cwd_len + go_script_len; + go_script_path = rte_malloc(0, sizeof(char) * total_directory_size, 0); + strncat(go_script_path, cwd, cwd_len); + strncat(go_script_path, examples_path, wd_nf_len); + strncat(go_script_path, go_script, go_script_len); + rte_free(cwd); - return binary_directory; + return go_script_path; } int diff --git a/onvm/onvm_nflib/onvm_nflib.h b/onvm/onvm_nflib/onvm_nflib.h index 8378f2559..178210d24 100644 --- a/onvm/onvm_nflib/onvm_nflib.h +++ b/onvm/onvm_nflib/onvm_nflib.h @@ -317,7 +317,7 @@ onvm_nflib_stats_summary_output(uint16_t id); * Output: Number of nf's enqueued into pool, -1 on error */ int -onvm_nflib_pool_enqueue(const char *nf_name, void *nf_args, int nf_count, int refill); +onvm_nflib_pool_enqueue(const char *nf_name, const char *nf_args, int nf_count, int refill); /** * Dequeues NF from its corresponding pool @@ -333,15 +333,15 @@ onvm_nflib_pool_dequeue(const char *nf_name, int nf_count, int refill_threshold) * Output: Pointer to NF struct that was forked */ struct onvm_nf * -onvm_nflib_fork(const char *nf_name, void *nf_args); +onvm_nflib_fork(const char *nf_name, const char *nf_args); /** - * Creates a path to the binary executable of the NF. Assumes the NF is in the - * examples directory and its executable is within a /build folder - * Input: Name of the NF + * Creates a path to the start_nf.sh script from the calling process, which is used + * to dynamically start NF's during runtime + * Input: None * Output: String to binary executable */ char * -onvm_nflib_create_binary_exec_string(const char *nf_name); +onvm_nflib_get_go_script_path(void); #endif // _ONVM_NFLIB_H_ From 360b166087f3bd0055e8a91f60e91f4ff4a67645 Mon Sep 17 00:00:00 2001 From: Dennis Afanasev Date: Sat, 3 Oct 2020 22:13:27 +0000 Subject: [PATCH 14/14] Linter --- onvm/onvm_nflib/onvm_flow_table.h | 2 +- onvm/onvm_nflib/onvm_nflib.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/onvm/onvm_nflib/onvm_flow_table.h b/onvm/onvm_nflib/onvm_flow_table.h index 45c3b00e0..d5d02692f 100644 --- a/onvm/onvm_nflib/onvm_flow_table.h +++ b/onvm/onvm_nflib/onvm_flow_table.h @@ -196,7 +196,7 @@ onvm_ft_ipv4_hash_crc(const void *data, __rte_unused uint32_t data_len, uint32_t const uint32_t *p; k = (union ipv4_5tuple_host*) malloc(sizeof(union ipv4_5tuple_host)); - memcpy(k, data, sizeof(union ipv4_5tuple_host)); + memcpy(k, data, sizeof(union ipv4_5tuple_host)); t = k->proto; p = (const uint32_t *)&k->port_src; diff --git a/onvm/onvm_nflib/onvm_nflib.c b/onvm/onvm_nflib/onvm_nflib.c index 06fabb0ae..556e94efc 100755 --- a/onvm/onvm_nflib/onvm_nflib.c +++ b/onvm/onvm_nflib/onvm_nflib.c @@ -1692,7 +1692,7 @@ onvm_nflib_get_go_script_path(void) { token_len = strlen(token); cwd = cwd + token_len; - cwd_len = strlen(cwd); + cwd_len = strlen(cwd); go_script_len = strlen(go_script); wd_nf_len = strlen(examples_path); total_directory_size = cwd_len + go_script_len; @@ -1701,7 +1701,7 @@ onvm_nflib_get_go_script_path(void) { strncat(go_script_path, cwd, cwd_len); strncat(go_script_path, examples_path, wd_nf_len); strncat(go_script_path, go_script, go_script_len); - + rte_free(cwd); return go_script_path; }